{"id":21174838,"url":"https://github.com/mindinventory/progressive_time_picker","last_synced_at":"2025-04-09T07:08:03.008Z","repository":{"id":56837286,"uuid":"397845386","full_name":"Mindinventory/progressive_time_picker","owner":"Mindinventory","description":"A Customizable Progressive Time Picker for Flutter. ","archived":false,"fork":false,"pushed_at":"2024-12-23T13:05:18.000Z","size":105716,"stargazers_count":70,"open_issues_count":0,"forks_count":14,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-02T05:09:12.209Z","etag":null,"topics":["android","dart","flutter","flutter-library","flutter-plugin","ios","picker","timepicker","websupport"],"latest_commit_sha":null,"homepage":"https://www.mindinventory.com/flutter-app-development.php","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mindinventory.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-19T06:49:42.000Z","updated_at":"2024-12-23T13:05:21.000Z","dependencies_parsed_at":"2024-12-12T12:22:31.359Z","dependency_job_id":"14992897-8137-4a16-ba95-b98d5682d437","html_url":"https://github.com/Mindinventory/progressive_time_picker","commit_stats":{"total_commits":17,"total_committers":3,"mean_commits":5.666666666666667,"dds":"0.47058823529411764","last_synced_commit":"0aa6aa638ef453296eeab2e030a8dff0db2c413a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mindinventory%2Fprogressive_time_picker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mindinventory%2Fprogressive_time_picker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mindinventory%2Fprogressive_time_picker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mindinventory%2Fprogressive_time_picker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mindinventory","download_url":"https://codeload.github.com/Mindinventory/progressive_time_picker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247994121,"owners_count":21030050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","dart","flutter","flutter-library","flutter-plugin","ios","picker","timepicker","websupport"],"created_at":"2024-11-20T16:56:23.996Z","updated_at":"2025-04-09T07:08:02.988Z","avatar_url":"https://github.com/Mindinventory.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# progressive_time_picker\n\n\u003ca href=\"https://flutter.dev/\"\u003e\u003cimg src=\"https://img.shields.io/badge/flutter-website-deepskyblue.svg\" alt=\"Flutter Website\"\u003e\u003c/a\u003e\n\u003ca href=\"https://dart.dev\"\u003e\u003cimg src=\"https://img.shields.io/badge/dart-website-deepskyblue.svg\" alt=\"Dart Website\"\u003e\u003c/a\u003e\n\u003ca href=\"https://developer.android.com\" style=\"pointer-events: stroke;\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/platform-Android-deepskyblue\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://developer.apple.com/ios/\" style=\"pointer-events: stroke;\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/platform-iOS-deepskyblue\"\u003e\n\u003c/a\u003e\n\u003ca href=\"\" style=\"pointer-events: stroke;\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/platform-Web-deepskyblue\"\u003e\n\u003c/a\u003e\n\u003ca href=\"\" style=\"pointer-events: stroke;\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/platform-Mac-deepskyblue\"\u003e\n\u003c/a\u003e\n\u003ca href=\"\" style=\"pointer-events: stroke;\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/platform-Linux-deepskyblue\"\u003e\n\u003c/a\u003e\n\u003ca href=\"\" style=\"pointer-events: stroke;\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/platform-Windows-deepskyblue\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://www.codacy.com/gh/mohit-chauhan-mi/progressive_time_picker/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=mohit-chauhan-mi/progressive_time_picker\u0026amp;utm_campaign=Badge_Grade\"\u003e\u003cimg src=\"https://app.codacy.com/project/badge/Grade/dc683c9cc61b499fa7cdbf54e4d9ff35\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Mindinventory/progressive_time_picker/blob/main/LICENSE\" style=\"pointer-events: stroke;\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/github/license/Mindinventory/progressive_time_picker\"\u003e\u003c/a\u003e\n\u003ca href=\"https://pub.dev/packages/progressive_time_picker\"\u003e\u003cimg src=\"https://img.shields.io/pub/v/progressive_time_picker?color=as\u0026label=progressive_time_picker\u0026logo=as1\u0026logoColor=blue\u0026style=social\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Mindinventory/progressive_time_picker\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/Mindinventory/progressive_time_picker?style=social\" alt=\"MIT License\"\u003e\u003c/a\u003e\n\nA Customizable Progressive Time Picker for Flutter. This package allow us to customize time picker\nbased on our requirements for selecting a specific range from time picker and it's supports multiple\nplatforms.\n\n# Key Features\n\n* Supports selecting either a single picker handler or both simultaneously.\n* Provides easy customization options for decorating the time picker.\n* Offers the ability to display clock numbers in both 12-hour and 24-hour formats, with full customization support.\n* Allows disabling specific time ranges for more control.\n\n# Preview\n\n### progressive time picker\n![progressive_time_picker](https://github.com/Mindinventory/progressive_time_picker/raw/main/screenshots/progressive_time_picker.gif)\n\n### progressive time picker with disabled ranges\n![progressive_time_picker_disabled_range](https://github.com/Mindinventory/progressive_time_picker/raw/main/screenshots/progressive_time_picker_disabled_range.gif)\n![progressive_time_picker_multiple_disabled_ranges](https://github.com/Mindinventory/progressive_time_picker/raw/main/screenshots/progressive_time_picker_multiple_disabled_ranges.gif)\n\n## Basic Usage\n\nImport it to your project file\n\n```dart\nimport 'package:progressive_time_picker/progressive_time_picker.dart';\n```\n\nAnd add it in its most basic form like it:\n\n```dart\n  TimePicker(\n    initTime: PickedTime(h: 0, m: 0),\n    endTime: PickedTime(h: 8, m: 0),\n    onSelectionChange: (start, end, isDisableRange) =\u003e\n        print(\n            'onSelectionChange =\u003e init : ${start.h}:${start.m}, end : ${end.h}:${end.m}, isDisableRangeRange: $isDisableRange'),\n    onSelectionEnd: (start, end, isDisableRange) =\u003e\n        print(\n            'onSelectionEnd =\u003e init : ${start.h}:${start.m}, end : ${end.h}:${end.m},, isDisableRangeRange: $isDisableRange'),\n  );\n```\n\nAnd for the DisabledRanges:\n\n```dart\nTimePicker(\n    initTime: PickedTime(h: 0, m: 0),\n    endTime: PickedTime(h: 8, m: 0),\n    disabledRanges: [\n      DisabledRange(\n        initTime: PickedTime(h: 12, m: 0),\n        endTime: PickedTime(h: 20, m: 0),\n      ),\n    ],\n    disabledRangesColor: Colors.grey,\n    disabledRangesErrorColor: Colors.red,\n    onSelectionChange: (start, end, isDisableRange) =\u003e print(\n      'onSelectionChange =\u003e init : ${start.h}:${start.m}, end : ${end.h}:${end.m}, isDisableRangeRange: $isDisableRange'),\n    onSelectionEnd: (start, end, isDisableRange) =\u003e print(\n      'onSelectionEnd =\u003e init : ${start.h}:${start.m}, end : ${end.h}:${end.m},, isDisableRangeRange: $isDisableRange'),\n);\n```\n\n## Required parameters of TimePicker\n\n| Parameter           | Description                                           |\n|---------------------|-------------------------------------------------------|\n| PickedTime initTime | the init PickedTime value in the selection            |\n| PickedTime endTime  | the end PickedTime value in the selection             |\n| onSelectionChange   | callback function when init and end PickedTime change |\n| onSelectionEnd      | callback function when init and end PickedTime finish |\n\n## Optional parameters of TimePicker\n\n| Parameter                          | Default     | Description                                                                                                                      |\n|------------------------------------|-------------|----------------------------------------------------------------------------------------------------------------------------------|\n| double height                      | 220         | height of the canvas                                                                                                             |\n| double width                       | 220         | width of the canvas                                                                                                              |\n| int primarySectors                 | 0           | the number of primary sectors to be painted                                                                                      |\n| int secondarySectors               | 0           | the number of secondary sectors to be painted                                                                                    |\n| Widget child                       | Container   | widget that would be mounted inside the circle                                                                                   |\n| TimePickerDecoration decoration    | -           | used to decorate our TimePicker widget                                                                                           |\n| bool isInitHandlerSelectable       | true        | used to enabled or disabled Selection of Init Handler                                                                            |\n| bool isEndHandlerSelectable        | true        | used to enabled or disabled Selection of End Handler                                                                             |\n| bool isSelectableHandlerMoveAble   | true        | used to enabled or disabled the Movement of Init and End Handler when its not Selectable (disable the dragging of both handlers) |\n| List\u003cDisabledRange\u003e disabledRanges | null        | used to disable Selection ranges, If null so there is no disable time ranges                                                     |\n| Color disabledRangesColor          | Colors.grey | defines the color for the disabled range                                                                                         |\n| Color disabledRangesErrorColor     | Colors.red  | defines the color for the error in disabled range                                                                                |\n| bool drawInitHandlerOnTop          | false       | used to set priority to draw init or end handler on the top                                                                      |\n\n## Required parameters of TimePickerDecoration\n\n| Parameter                                         | Description                                                                                   |\n|---------------------------------------------------|-----------------------------------------------------------------------------------------------|\n| TimePickerSweepDecoration sweepDecoration         | used to decorate our sweep part or a part between our init and end point with various options |\n| TimePickerHandlerDecoration initHandlerDecoration | used to decorate our init or end handler of time picker                                       |\n| TimePickerHandlerDecoration endHandlerDecoration  | used to decorate our init or end handler of time picker                                       |\n\n## Optional parameters of TimePickerDecoration\n\n| Parameter                                             | Default    | Description                                                                                    |\n|-------------------------------------------------------|------------|------------------------------------------------------------------------------------------------|\n| Color baseColor                                       | cyanAccent | defines the background color of the picker                                                     |\n| double pickerBaseCirclePadding                        | 0.0        | to add extra padding for picker base or outer circle                                           |\n| TimePickerSectorDecoration primarySectorsDecoration   | -          | used to decorate the primary sectors of out time picker                                        |\n| TimePickerSectorDecoration secondarySectorsDecoration | -          | used to decorate the secondary of out time picker                                              |\n| TimePickerClockNumberDecoration clockNumberDecoration | -          | Provides decoration options which will get applied to the internal clock's numbers when enable |\n| SystemMouseCursor mouseCursor                         | -          | Used to set SystemMouseCursor for PanGestureRecognizer                                         |\n\n## Guideline for contributors\n\n* Contribution towards our repository is always welcome, we request contributors to create a pull\n  request for development.\n\n## Guideline to report an issue/feature request\n\nIt would be great for us if the reporter can share the below things to understand the root cause of\nthe issue.\n\n* Library version\n* Code snippet\n* Logs if applicable\n* Device specification like (Manufacturer, OS version, etc)\n* Screenshot/video with steps to reproduce the issue\n* Library used\n\n## LICENSE!\n\n**progressive_time_picker**\nis [MIT-licensed.](https://github.com/Mindinventory/progressive_time_picker/blob/main/LICENSE)\n\n## Let us know!\n\nWe’d be really happy if you send us links to your projects where you use our open-source libraries. \nJust send an email to [sales@mindinventory.com](mailto:sales@mindinventory.com) And do let us know \nif you have any questions or suggestion regarding our work.\n\nVisit our website [mindinventory.com](https://www.mindinventory.com)\n\nLet us know if you are interested to building Apps or Designing Products.\n\u003cp\u003e\u003ca href=\"https://www.mindinventory.com/contact-us.php?utm_source=gthb\u0026utm_medium=repo\u0026utm_campaign=progressive_time_picker\" target=\"__blank\"\u003e\n\u003cimg src=\"https://github.com/Mindinventory/progressive_time_picker/raw/main/assets/have_a_project_button.png\" width=\"203\" height=\"43\"  alt=\"flutter app development\"\u003e\n\u003c/a\u003e\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindinventory%2Fprogressive_time_picker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmindinventory%2Fprogressive_time_picker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindinventory%2Fprogressive_time_picker/lists"}