ngx-tethys 19.1.13 → 20.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/action/index.d.ts +107 -3
- package/affix/index.d.ts +65 -2
- package/alert/index.d.ts +74 -3
- package/anchor/index.d.ts +118 -3
- package/arrow-switcher/index.d.ts +79 -2
- package/autocomplete/index.d.ts +280 -7
- package/avatar/index.d.ts +195 -5
- package/back-top/index.d.ts +68 -2
- package/badge/index.d.ts +87 -2
- package/breadcrumb/index.d.ts +71 -3
- package/button/index.d.ts +156 -4
- package/calendar/index.d.ts +161 -4
- package/card/index.d.ts +100 -4
- package/carousel/index.d.ts +210 -4
- package/cascader/index.d.ts +471 -5
- package/checkbox/index.d.ts +27 -2
- package/collapse/index.d.ts +108 -3
- package/color-picker/index.d.ts +494 -13
- package/comment/index.d.ts +53 -4
- package/copy/index.d.ts +59 -2
- package/core/index.d.ts +680 -15
- package/date-picker/index.d.ts +1148 -36
- package/date-range/index.d.ts +158 -4
- package/dialog/index.d.ts +393 -11
- package/divider/index.d.ts +60 -2
- package/dot/index.d.ts +56 -2
- package/drag-drop/index.d.ts +281 -9
- package/dropdown/index.d.ts +282 -6
- package/empty/index.d.ts +116 -3
- package/fesm2022/ngx-tethys-action.mjs +26 -26
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +14 -14
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +19 -19
- package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
- package/fesm2022/ngx-tethys-anchor.mjs +25 -25
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +20 -20
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +41 -36
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +45 -45
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +15 -15
- package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs +27 -27
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +20 -20
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +57 -51
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +29 -29
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +28 -28
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +29 -29
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +93 -87
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +9 -9
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +24 -24
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +75 -73
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +17 -17
- package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +15 -15
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +38 -38
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +323 -305
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +23 -23
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +56 -54
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +16 -16
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dot.mjs +20 -20
- package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
- package/fesm2022/ngx-tethys-drag-drop.mjs +20 -21
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +85 -83
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +28 -28
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-flexible-text.mjs +13 -13
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +99 -95
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +22 -21
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +60 -60
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +20 -20
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +4 -4
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +20 -20
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +26 -26
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +28 -24
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +72 -71
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +128 -118
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +37 -37
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +11 -11
- package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
- package/fesm2022/ngx-tethys-mention.mjs +18 -18
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +57 -57
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +43 -40
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +58 -58
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +35 -32
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +38 -38
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +46 -38
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +64 -57
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +29 -29
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +23 -23
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +28 -28
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +38 -38
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +16 -16
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +23 -23
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +76 -64
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +163 -155
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +84 -84
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +50 -46
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +21 -21
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +16 -16
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-statistic.mjs +29 -29
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +37 -37
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +22 -22
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +19 -19
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +22 -22
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +31 -31
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +18 -18
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +75 -74
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +28 -28
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +28 -28
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +36 -36
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +58 -58
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +77 -72
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +19 -19
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +68 -68
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +25 -25
- package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
- package/fesm2022/ngx-tethys-watermark.mjs +12 -12
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/flexible-text/index.d.ts +64 -2
- package/form/index.d.ts +405 -11
- package/fullscreen/index.d.ts +117 -6
- package/grid/index.d.ts +262 -7
- package/guider/index.d.ts +304 -8
- package/i18n/index.d.ts +1053 -6
- package/icon/index.d.ts +145 -4
- package/image/index.d.ts +263 -8
- package/index.d.ts +5 -5
- package/input/index.d.ts +281 -6
- package/input-number/index.d.ts +133 -2
- package/layout/index.d.ts +362 -10
- package/list/index.d.ts +182 -6
- package/loading/index.d.ts +34 -2
- package/mention/index.d.ts +147 -4
- package/menu/index.d.ts +191 -8
- package/message/index.d.ts +203 -8
- package/nav/index.d.ts +269 -6
- package/notify/index.d.ts +158 -7
- package/package.json +13 -13
- package/pagination/index.d.ts +248 -5
- package/popover/index.d.ts +339 -9
- package/progress/index.d.ts +154 -5
- package/property/index.d.ts +118 -3
- package/property-operation/index.d.ts +114 -3
- package/radio/index.d.ts +102 -4
- package/rate/index.d.ts +99 -3
- package/resizable/index.d.ts +197 -7
- package/result/index.d.ts +63 -2
- package/schematics/ng-update/migration-collection.json +4 -4
- package/schematics/ng-update/{update-19 → update-20}/index.js +1 -1
- package/schematics/ng-update/{update-19 → update-20}/index.spec.js +5 -5
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/index.d.ts +119 -4
- package/select/index.d.ts +332 -4
- package/shared/index.d.ts +516 -16
- package/skeleton/index.d.ts +301 -8
- package/slide/index.d.ts +270 -12
- package/slider/index.d.ts +117 -2
- package/space/index.d.ts +48 -2
- package/statistic/index.d.ts +124 -2
- package/stepper/index.d.ts +112 -5
- package/strength/index.d.ts +77 -2
- package/switch/index.d.ts +69 -2
- package/table/index.d.ts +670 -9
- package/tabs/index.d.ts +114 -4
- package/tag/index.d.ts +71 -3
- package/testing/index.d.ts +178 -7
- package/time-picker/index.d.ts +468 -7
- package/timeline/index.d.ts +109 -5
- package/tooltip/index.d.ts +198 -8
- package/transfer/index.d.ts +212 -4
- package/tree/index.d.ts +469 -5
- package/tree-select/index.d.ts +231 -3
- package/types/index.d.ts +22 -3
- package/typography/index.d.ts +69 -4
- package/upload/index.d.ts +253 -6
- package/util/index.d.ts +595 -14
- package/vote/index.d.ts +66 -2
- package/watermark/index.d.ts +75 -2
- package/action/action.component.d.ts +0 -76
- package/action/action.module.d.ts +0 -10
- package/action/actions.component.d.ts +0 -21
- package/affix/affix.component.d.ts +0 -54
- package/affix/affix.module.d.ts +0 -9
- package/affix/respond-events.d.ts +0 -9
- package/alert/alert.component.d.ts +0 -51
- package/alert/alert.directive.d.ts +0 -12
- package/alert/alert.module.d.ts +0 -10
- package/anchor/anchor-link.component.d.ts +0 -34
- package/anchor/anchor.component.d.ts +0 -68
- package/anchor/anchor.module.d.ts +0 -11
- package/anchor/anchor.token.d.ts +0 -9
- package/arrow-switcher/arrow-switcher.component.d.ts +0 -64
- package/arrow-switcher/module.d.ts +0 -12
- package/autocomplete/autocomplete.component.d.ts +0 -79
- package/autocomplete/autocomplete.trigger.directive.d.ts +0 -77
- package/autocomplete/module.d.ts +0 -18
- package/autocomplete/overlay/autocomplete-animations.d.ts +0 -8
- package/autocomplete/overlay/autocomplete-container.component.d.ts +0 -33
- package/autocomplete/overlay/autocomplete-ref.d.ts +0 -14
- package/autocomplete/overlay/autocomplete.config.d.ts +0 -36
- package/autocomplete/overlay/autocomplete.options.d.ts +0 -2
- package/autocomplete/overlay/autocomplete.service.d.ts +0 -32
- package/avatar/avatar-list/avatar-list.component.d.ts +0 -41
- package/avatar/avatar.component.d.ts +0 -95
- package/avatar/avatar.module.d.ts +0 -11
- package/avatar/avatar.pipe.d.ts +0 -30
- package/avatar/avatar.service.d.ts +0 -21
- package/back-top/back-top.component.d.ts +0 -57
- package/back-top/back-top.module.d.ts +0 -9
- package/badge/badge.component.d.ts +0 -75
- package/badge/badge.module.d.ts +0 -9
- package/breadcrumb/breadcrumb-item.component.d.ts +0 -15
- package/breadcrumb/breadcrumb.component.d.ts +0 -44
- package/breadcrumb/module.d.ts +0 -12
- package/button/button-group.component.d.ts +0 -32
- package/button/button-icon.component.d.ts +0 -51
- package/button/button.component.d.ts +0 -61
- package/button/button.module.d.ts +0 -11
- package/calendar/calendar-cells.d.ts +0 -17
- package/calendar/calendar-header.component.d.ts +0 -51
- package/calendar/calendar.component.d.ts +0 -78
- package/calendar/module.d.ts +0 -18
- package/card/card.component.d.ts +0 -28
- package/card/card.module.d.ts +0 -10
- package/card/content.component.d.ts +0 -21
- package/card/header.component.d.ts +0 -42
- package/carousel/carousel-item.directive.d.ts +0 -14
- package/carousel/carousel.component.d.ts +0 -112
- package/carousel/carousel.service.d.ts +0 -19
- package/carousel/carousel.token.d.ts +0 -7
- package/carousel/engine/carousel-base.d.ts +0 -27
- package/carousel/engine/carousel-fade.d.ts +0 -15
- package/carousel/engine/carousel-noop.d.ts +0 -14
- package/carousel/engine/carousel-slide.d.ts +0 -16
- package/carousel/engine/index.d.ts +0 -4
- package/carousel/module.d.ts +0 -11
- package/carousel/typings.d.ts +0 -20
- package/cascader/cascader-li.component.d.ts +0 -24
- package/cascader/cascader-search-option.component.d.ts +0 -21
- package/cascader/cascader.component.d.ts +0 -284
- package/cascader/cascader.pipe.d.ts +0 -11
- package/cascader/cascader.service.d.ts +0 -97
- package/cascader/module.d.ts +0 -19
- package/cascader/types.d.ts +0 -23
- package/checkbox/checkbox.component.d.ts +0 -16
- package/checkbox/module.d.ts +0 -9
- package/collapse/collapse-item.component.d.ts +0 -52
- package/collapse/collapse.component.d.ts +0 -29
- package/collapse/collapse.token.d.ts +0 -15
- package/collapse/module.d.ts +0 -13
- package/color-picker/color-picker-custom-panel.component.d.ts +0 -17
- package/color-picker/color-picker-panel.component.d.ts +0 -28
- package/color-picker/color-picker.component.d.ts +0 -100
- package/color-picker/constant.d.ts +0 -1
- package/color-picker/coordinates.directive.d.ts +0 -28
- package/color-picker/helpers/color.class.d.ts +0 -32
- package/color-picker/helpers/colors-table.class.d.ts +0 -154
- package/color-picker/helpers/rgba.class.d.ts +0 -20
- package/color-picker/module.d.ts +0 -22
- package/color-picker/parts/alpha/alpha.component.d.ts +0 -28
- package/color-picker/parts/hue/hue.component.d.ts +0 -26
- package/color-picker/parts/indicator/indicator.component.d.ts +0 -13
- package/color-picker/parts/inputs/inputs.component.d.ts +0 -18
- package/color-picker/parts/saturation/saturation.component.d.ts +0 -28
- package/comment/comment-actions.directive.d.ts +0 -8
- package/comment/comment-content.directive.d.ts +0 -8
- package/comment/comment.component.d.ts +0 -24
- package/comment/comment.module.d.ts +0 -13
- package/copy/copy.directive.d.ts +0 -47
- package/copy/module.d.ts +0 -9
- package/core/animation/animation-consts.d.ts +0 -22
- package/core/animation/collapse.d.ts +0 -2
- package/core/animation/fade.d.ts +0 -2
- package/core/animation/index.d.ts +0 -1
- package/core/animation/public-api.d.ts +0 -5
- package/core/animation/thumb.d.ts +0 -6
- package/core/animation/zoom.d.ts +0 -4
- package/core/behaviors/constructor.d.ts +0 -5
- package/core/behaviors/control-value-accessor.d.ts +0 -7
- package/core/behaviors/decorators.d.ts +0 -9
- package/core/behaviors/disabled.d.ts +0 -7
- package/core/behaviors/focus-control.d.ts +0 -14
- package/core/behaviors/index.d.ts +0 -10
- package/core/behaviors/initialized.d.ts +0 -6
- package/core/behaviors/loading-done.d.ts +0 -5
- package/core/behaviors/mixin.d.ts +0 -5
- package/core/behaviors/tabindex.d.ts +0 -11
- package/core/behaviors/unsubscribe.d.ts +0 -11
- package/core/click-positioner.d.ts +0 -15
- package/core/color/color.d.ts +0 -9
- package/core/color/index.d.ts +0 -1
- package/core/debounce-time.d.ts +0 -8
- package/core/event-dispatchers/index.d.ts +0 -1
- package/core/overlay/abstract-overlay-container.d.ts +0 -43
- package/core/overlay/abstract-overlay-ref.d.ts +0 -101
- package/core/overlay/abstract-overlay.config.d.ts +0 -131
- package/core/overlay/abstract-overlay.service.d.ts +0 -56
- package/core/overlay/index.d.ts +0 -9
- package/core/overlay/interface.d.ts +0 -5
- package/core/overlay/overlay-position-map.d.ts +0 -5
- package/core/overlay/overlay.directive.d.ts +0 -51
- package/core/overlay/portal-directives.d.ts +0 -14
- package/core/overlay/utils.d.ts +0 -14
- package/core/request-animation.d.ts +0 -2
- package/core/scroll-to.service.d.ts +0 -4
- package/core/scroll.d.ts +0 -22
- package/core/spacing/index.d.ts +0 -1
- package/core/spacing/spacing.d.ts +0 -2
- package/core/store/action-state.d.ts +0 -5
- package/core/store/action.d.ts +0 -4
- package/core/store/actions-stream.d.ts +0 -14
- package/core/store/index.d.ts +0 -3
- package/core/store/store.d.ts +0 -43
- package/core/store/types.d.ts +0 -12
- package/core/store/utils.d.ts +0 -2
- package/core/theme/enum.d.ts +0 -5
- package/core/theme/index.d.ts +0 -3
- package/core/theme/store.d.ts +0 -12
- package/core/theme/theme.d.ts +0 -2
- package/core/translate.d.ts +0 -8
- package/core/update-host-class.service.d.ts +0 -15
- package/date-picker/abstract-picker.component.d.ts +0 -174
- package/date-picker/abstract-picker.directive.d.ts +0 -57
- package/date-picker/base-picker.component.d.ts +0 -49
- package/date-picker/date-helper.service.d.ts +0 -20
- package/date-picker/date-picker.component.d.ts +0 -15
- package/date-picker/date-picker.config.d.ts +0 -27
- package/date-picker/date-picker.directive.d.ts +0 -13
- package/date-picker/date-picker.module.d.ts +0 -24
- package/date-picker/date-picker.service.d.ts +0 -14
- package/date-picker/inner-types.d.ts +0 -19
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +0 -37
- package/date-picker/lib/calendar/calendar-header.component.d.ts +0 -44
- package/date-picker/lib/calendar/calendar-table.component.d.ts +0 -41
- package/date-picker/lib/date/date-header.component.d.ts +0 -10
- package/date-picker/lib/date/date-table-cell.component.d.ts +0 -18
- package/date-picker/lib/date/date-table.component.d.ts +0 -23
- package/date-picker/lib/date/types.d.ts +0 -41
- package/date-picker/lib/date-carousel/date-carousel.component.d.ts +0 -65
- package/date-picker/lib/decade/decade-header.component.d.ts +0 -14
- package/date-picker/lib/decade/decade-table.component.d.ts +0 -21
- package/date-picker/lib/lib-packer.module.d.ts +0 -28
- package/date-picker/lib/month/month-header.component.d.ts +0 -10
- package/date-picker/lib/month/month-table.component.d.ts +0 -22
- package/date-picker/lib/popups/date-popup.component.d.ts +0 -99
- package/date-picker/lib/popups/inner-popup.component.d.ts +0 -43
- package/date-picker/lib/quarter/quarter-table.component.d.ts +0 -21
- package/date-picker/lib/year/year-header.component.d.ts +0 -14
- package/date-picker/lib/year/year-table.component.d.ts +0 -21
- package/date-picker/month-picker.component.d.ts +0 -19
- package/date-picker/picker.component.d.ts +0 -76
- package/date-picker/picker.pipes.d.ts +0 -40
- package/date-picker/picker.util.d.ts +0 -30
- package/date-picker/picker.validators.d.ts +0 -22
- package/date-picker/quarter-picker.component.d.ts +0 -22
- package/date-picker/range-picker.component.d.ts +0 -16
- package/date-picker/range-picker.directive.d.ts +0 -14
- package/date-picker/standard-types.d.ts +0 -45
- package/date-picker/week-picker.component.d.ts +0 -15
- package/date-picker/year-picker.component.d.ts +0 -22
- package/date-range/date-range.class.d.ts +0 -29
- package/date-range/date-range.component.d.ts +0 -89
- package/date-range/module.d.ts +0 -15
- package/date-range/optional-dates/optional-dates.component.d.ts +0 -25
- package/dialog/body/dialog-body.component.d.ts +0 -18
- package/dialog/confirm/confirm.component.d.ts +0 -29
- package/dialog/confirm/token.d.ts +0 -8
- package/dialog/confirm.config.d.ts +0 -71
- package/dialog/dialog-animations.d.ts +0 -8
- package/dialog/dialog-container.component.d.ts +0 -46
- package/dialog/dialog-ref.d.ts +0 -32
- package/dialog/dialog.config.d.ts +0 -79
- package/dialog/dialog.module.d.ts +0 -20
- package/dialog/dialog.options.d.ts +0 -2
- package/dialog/dialog.service.d.ts +0 -52
- package/dialog/footer/dialog-footer.component.d.ts +0 -33
- package/dialog/header/dialog-header.component.d.ts +0 -47
- package/divider/divider.component.d.ts +0 -47
- package/divider/divider.module.d.ts +0 -10
- package/dot/dot.component.d.ts +0 -45
- package/dot/dot.module.d.ts +0 -8
- package/drag-drop/drag-content.directive.d.ts +0 -15
- package/drag-drop/drag-drop.class.d.ts +0 -36
- package/drag-drop/drag-drop.service.d.ts +0 -27
- package/drag-drop/drag-drop.token.d.ts +0 -24
- package/drag-drop/drag-handle.directive.d.ts +0 -24
- package/drag-drop/drag-ref.d.ts +0 -47
- package/drag-drop/drag.directive.d.ts +0 -39
- package/drag-drop/drop-container.directive.d.ts +0 -70
- package/drag-drop/module.d.ts +0 -14
- package/dropdown/dropdown-active.directive.d.ts +0 -27
- package/dropdown/dropdown-menu-item.directive.d.ts +0 -95
- package/dropdown/dropdown-menu.component.d.ts +0 -54
- package/dropdown/dropdown-submenu.component.d.ts +0 -23
- package/dropdown/dropdown.directive.d.ts +0 -77
- package/dropdown/module.d.ts +0 -13
- package/empty/empty.component.d.ts +0 -92
- package/empty/empty.config.d.ts +0 -10
- package/empty/empty.module.d.ts +0 -10
- package/empty/svgs.d.ts +0 -4
- package/flexible-text/flexible-text.component.d.ts +0 -53
- package/flexible-text/flexible-text.module.d.ts +0 -10
- package/form/form-group-error/form-group-error.component.d.ts +0 -21
- package/form/form-group-label.directive.d.ts +0 -18
- package/form/form-group.component.d.ts +0 -68
- package/form/form-submit.directive.d.ts +0 -18
- package/form/form-validator-loader.d.ts +0 -28
- package/form/form-validator.service.d.ts +0 -54
- package/form/form.class.d.ts +0 -54
- package/form/form.directive.d.ts +0 -56
- package/form/from-group-footer/form-group-footer.component.d.ts +0 -27
- package/form/module.d.ts +0 -25
- package/form/validator/confirm-validator.directive.d.ts +0 -17
- package/form/validator/index.d.ts +0 -4
- package/form/validator/max-validator.directive.d.ts +0 -15
- package/form/validator/min-validator.directive.d.ts +0 -15
- package/form/validator/unique-validator.directive.d.ts +0 -16
- package/fullscreen/fullscreen-launch.directive.d.ts +0 -9
- package/fullscreen/fullscreen-ref.d.ts +0 -25
- package/fullscreen/fullscreen.component.d.ts +0 -34
- package/fullscreen/fullscreen.config.d.ts +0 -23
- package/fullscreen/fullscreen.module.d.ts +0 -8
- package/fullscreen/fullscreen.service.d.ts +0 -20
- package/grid/flex.d.ts +0 -85
- package/grid/grid.token.d.ts +0 -7
- package/grid/grid.type.d.ts +0 -5
- package/grid/module.d.ts +0 -11
- package/grid/thy-col.directive.d.ts +0 -33
- package/grid/thy-grid-item.component.d.ts +0 -28
- package/grid/thy-grid.component.d.ts +0 -71
- package/grid/thy-row.directive.d.ts +0 -30
- package/guider/guider-hint/guider-hint.component.d.ts +0 -28
- package/guider/guider-manager.d.ts +0 -23
- package/guider/guider-ref.d.ts +0 -42
- package/guider/guider-step-ref.d.ts +0 -44
- package/guider/guider.class.d.ts +0 -95
- package/guider/guider.directive.d.ts +0 -21
- package/guider/guider.interface.d.ts +0 -26
- package/guider/guider.module.d.ts +0 -13
- package/guider/guider.service.d.ts +0 -25
- package/guider/utils.d.ts +0 -4
- package/i18n/i18n.d.ts +0 -191
- package/i18n/i18n.service.d.ts +0 -19
- package/i18n/i18n.token.d.ts +0 -8
- package/i18n/locale.d.ts +0 -4
- package/i18n/locales/de-de.d.ts +0 -162
- package/i18n/locales/en-us.d.ts +0 -183
- package/i18n/locales/index.d.ts +0 -5
- package/i18n/locales/ja-jp.d.ts +0 -162
- package/i18n/locales/zh-hans.d.ts +0 -162
- package/i18n/locales/zh-hant.d.ts +0 -162
- package/i18n/util.d.ts +0 -3
- package/icon/config.d.ts +0 -2
- package/icon/icon-registry.d.ts +0 -84
- package/icon/icon.component.d.ts +0 -47
- package/icon/icon.module.d.ts +0 -9
- package/image/image-group.component.d.ts +0 -16
- package/image/image.class.d.ts +0 -38
- package/image/image.config.d.ts +0 -21
- package/image/image.directive.d.ts +0 -50
- package/image/image.service.d.ts +0 -30
- package/image/image.token.d.ts +0 -17
- package/image/module.d.ts +0 -19
- package/image/preview/image-preview-ref.d.ts +0 -14
- package/image/preview/image-preview.component.d.ts +0 -73
- package/image/utils.d.ts +0 -1
- package/input/input-count.component.d.ts +0 -27
- package/input/input-group.component.d.ts +0 -71
- package/input/input-search.component.d.ts +0 -70
- package/input/input.component.d.ts +0 -82
- package/input/input.directive.d.ts +0 -26
- package/input/module.d.ts +0 -16
- package/input-number/input-number.component.d.ts +0 -115
- package/input-number/module.d.ts +0 -13
- package/layout/content-main.component.d.ts +0 -19
- package/layout/content-section.component.d.ts +0 -19
- package/layout/content.component.d.ts +0 -19
- package/layout/header.component.d.ts +0 -69
- package/layout/layout.component.d.ts +0 -22
- package/layout/layout.module.d.ts +0 -21
- package/layout/sidebar-content.component.d.ts +0 -19
- package/layout/sidebar-footer.component.d.ts +0 -19
- package/layout/sidebar-header.component.d.ts +0 -40
- package/layout/sidebar.component.d.ts +0 -123
- package/list/list-item-meta.component.d.ts +0 -25
- package/list/list-item.component.d.ts +0 -9
- package/list/list.component.d.ts +0 -14
- package/list/list.module.d.ts +0 -13
- package/list/selection/selection-list.d.ts +0 -116
- package/list/selection/selection.interface.d.ts +0 -8
- package/loading/loading.component.d.ts +0 -24
- package/loading/loading.module.d.ts +0 -8
- package/mention/adapter/adapter.d.ts +0 -19
- package/mention/adapter/editable.adapter.d.ts +0 -9
- package/mention/adapter/index.d.ts +0 -7
- package/mention/adapter/textarea.adapter.d.ts +0 -11
- package/mention/caret-positioner.d.ts +0 -19
- package/mention/interfaces.d.ts +0 -61
- package/mention/mention.directive.d.ts +0 -43
- package/mention/mention.module.d.ts +0 -13
- package/mention/suggestions/suggestions.component.d.ts +0 -28
- package/menu/divider/menu-divider.component.d.ts +0 -12
- package/menu/group/menu-group.component.d.ts +0 -61
- package/menu/item/action/menu-item-action.component.d.ts +0 -34
- package/menu/item/icon/menu-item-icon.component.d.ts +0 -18
- package/menu/item/menu-item.component.d.ts +0 -20
- package/menu/item/name/menu-item-name.component.d.ts +0 -17
- package/menu/menu.component.d.ts +0 -23
- package/menu/menu.module.d.ts +0 -16
- package/message/abstract/abstract-message-container.component.d.ts +0 -13
- package/message/abstract/abstract-message-queue.service.d.ts +0 -13
- package/message/abstract/abstract-message-ref.d.ts +0 -18
- package/message/abstract/abstract-message.component.d.ts +0 -35
- package/message/abstract/abstract-message.service.d.ts +0 -17
- package/message/abstract/index.d.ts +0 -5
- package/message/message-container.component.d.ts +0 -12
- package/message/message-queue.service.d.ts +0 -11
- package/message/message-ref.d.ts +0 -4
- package/message/message.component.d.ts +0 -13
- package/message/message.config.d.ts +0 -29
- package/message/message.service.d.ts +0 -36
- package/message/module.d.ts +0 -13
- package/nav/icon-nav/icon-nav-link.directive.d.ts +0 -10
- package/nav/icon-nav/icon-nav.component.d.ts +0 -15
- package/nav/nav-ink-bar.directive.d.ts +0 -22
- package/nav/nav-item.directive.d.ts +0 -60
- package/nav/nav.component.d.ts +0 -142
- package/nav/nav.module.d.ts +0 -17
- package/nav/nav.pipe.d.ts +0 -11
- package/notify/module.d.ts +0 -13
- package/notify/notify-container.component.d.ts +0 -12
- package/notify/notify-queue.service.d.ts +0 -15
- package/notify/notify-ref.d.ts +0 -4
- package/notify/notify.component.d.ts +0 -19
- package/notify/notify.config.d.ts +0 -55
- package/notify/notify.service.d.ts +0 -42
- package/pagination/pagination.class.d.ts +0 -79
- package/pagination/pagination.component.d.ts +0 -132
- package/pagination/pagination.config.d.ts +0 -8
- package/pagination/pagination.module.d.ts +0 -13
- package/pagination/pagination.pipe.d.ts +0 -17
- package/popover/body/popover-body.component.d.ts +0 -10
- package/popover/header/popover-header.component.d.ts +0 -35
- package/popover/module.d.ts +0 -14
- package/popover/popover-animations.d.ts +0 -8
- package/popover/popover-container.component.d.ts +0 -38
- package/popover/popover-ref.d.ts +0 -14
- package/popover/popover.config.d.ts +0 -110
- package/popover/popover.directive.d.ts +0 -67
- package/popover/popover.options.d.ts +0 -2
- package/popover/popover.service.d.ts +0 -58
- package/progress/interfaces.d.ts +0 -23
- package/progress/progress-circle.component.d.ts +0 -43
- package/progress/progress-strip.component.d.ts +0 -23
- package/progress/progress.component.d.ts +0 -59
- package/progress/progress.module.d.ts +0 -11
- package/property/module.d.ts +0 -11
- package/property/properties.component.d.ts +0 -25
- package/property/property-item.component.d.ts +0 -80
- package/property-operation/group/property-operation-group.component.d.ts +0 -10
- package/property-operation/module.d.ts +0 -12
- package/property-operation/property-operation.component.d.ts +0 -92
- package/public-api.d.ts +0 -1
- package/radio/button/radio-button.component.d.ts +0 -18
- package/radio/group/radio-group.component.d.ts +0 -46
- package/radio/module.d.ts +0 -11
- package/radio/radio.component.d.ts +0 -22
- package/radio/radio.token.d.ts +0 -12
- package/rate/module.d.ts +0 -13
- package/rate/rate-item.component.d.ts +0 -17
- package/rate/rate.component.d.ts +0 -69
- package/resizable/interface.d.ts +0 -12
- package/resizable/module.d.ts +0 -10
- package/resizable/resizable.directive.d.ts +0 -91
- package/resizable/resizable.service.d.ts +0 -32
- package/resizable/resize-handle.component.d.ts +0 -31
- package/resizable/resize-handles.component.d.ts +0 -21
- package/resizable/utils.d.ts +0 -3
- package/result/result.component.d.ts +0 -54
- package/result/result.module.d.ts +0 -8
- package/segment/segment-item.component.d.ts +0 -34
- package/segment/segment.component.d.ts +0 -55
- package/segment/segment.module.d.ts +0 -11
- package/segment/segment.token.d.ts +0 -16
- package/segment/types.d.ts +0 -5
- package/select/custom-select/custom-select.component.d.ts +0 -271
- package/select/module.d.ts +0 -16
- package/select/native-select/native-select.component.d.ts +0 -30
- package/select/select.config.d.ts +0 -34
- package/shared/base-form-check.component.d.ts +0 -51
- package/shared/directives/string-or-template-outlet.directive.d.ts +0 -17
- package/shared/directives/thy-autofocus.directive.d.ts +0 -23
- package/shared/directives/thy-contextmenu.directive.d.ts +0 -17
- package/shared/directives/thy-ctrl-enter.directive.d.ts +0 -17
- package/shared/directives/thy-drag-drop.directive.d.ts +0 -15
- package/shared/directives/thy-enter.directive.d.ts +0 -18
- package/shared/directives/thy-scroll.directive.d.ts +0 -39
- package/shared/directives/thy-show.d.ts +0 -19
- package/shared/directives/thy-stop-propagation.directive.d.ts +0 -17
- package/shared/directives/view-outlet.directive.d.ts +0 -27
- package/shared/ng-transclude.directive.d.ts +0 -14
- package/shared/option/group/option-group.component.d.ts +0 -22
- package/shared/option/index.d.ts +0 -8
- package/shared/option/list-option/list-option.component.d.ts +0 -32
- package/shared/option/module.d.ts +0 -13
- package/shared/option/option-group.component.d.ts +0 -12
- package/shared/option/option.component.d.ts +0 -51
- package/shared/option/option.token.d.ts +0 -30
- package/shared/option/options-container.component.d.ts +0 -9
- package/shared/option/select-option-base.d.ts +0 -5
- package/shared/select/index.d.ts +0 -2
- package/shared/select/module.d.ts +0 -11
- package/shared/select/select-control/select-control.component.d.ts +0 -73
- package/shared/shared.module.d.ts +0 -17
- package/shared/shared.type.d.ts +0 -1
- package/skeleton/module.d.ts +0 -16
- package/skeleton/skeleton-circle.component.d.ts +0 -45
- package/skeleton/skeleton-rectangle.component.d.ts +0 -55
- package/skeleton/skeleton.component.d.ts +0 -27
- package/skeleton/skeleton.config.d.ts +0 -8
- package/skeleton/stylized/bullet-list.component.d.ts +0 -55
- package/skeleton/stylized/list.component.d.ts +0 -44
- package/skeleton/stylized/paragraph.component.d.ts +0 -52
- package/slide/drawer/drawer-container.directive.d.ts +0 -11
- package/slide/slide-animations.d.ts +0 -4
- package/slide/slide-body/slide-body-section.component.d.ts +0 -16
- package/slide/slide-body/slide-body.component.d.ts +0 -10
- package/slide/slide-container.component.d.ts +0 -49
- package/slide/slide-footer/slide-footer.component.d.ts +0 -12
- package/slide/slide-header/slide-header.component.d.ts +0 -33
- package/slide/slide-layout/slide-layout.component.d.ts +0 -13
- package/slide/slide-ref.service.d.ts +0 -20
- package/slide/slide.config.d.ts +0 -73
- package/slide/slide.module.d.ts +0 -19
- package/slide/slide.service.d.ts +0 -28
- package/slider/slider.component.d.ts +0 -105
- package/slider/slider.module.d.ts +0 -9
- package/space/space.component.d.ts +0 -38
- package/space/space.module.d.ts +0 -8
- package/statistic/statistic.component.d.ts +0 -111
- package/statistic/statistic.module.d.ts +0 -10
- package/stepper/step-header.component.d.ts +0 -15
- package/stepper/step.component.d.ts +0 -28
- package/stepper/stepper-button.directive.d.ts +0 -25
- package/stepper/stepper.component.d.ts +0 -34
- package/stepper/stepper.module.d.ts +0 -11
- package/strength/strength.component.d.ts +0 -69
- package/strength/strength.module.d.ts +0 -7
- package/switch/switch.component.d.ts +0 -59
- package/switch/switch.module.d.ts +0 -8
- package/table/enums/column-skeleton-type.d.ts +0 -6
- package/table/enums/index.d.ts +0 -1
- package/table/pipes/drag.pipe.d.ts +0 -11
- package/table/pipes/table.pipe.d.ts +0 -10
- package/table/table-column.component.d.ts +0 -131
- package/table/table-skeleton.component.d.ts +0 -93
- package/table/table.component.d.ts +0 -333
- package/table/table.interface.d.ts +0 -87
- package/table/table.module.d.ts +0 -22
- package/table/table.type.d.ts +0 -3
- package/tabs/tab-content.component.d.ts +0 -12
- package/tabs/tab.component.d.ts +0 -31
- package/tabs/tabs.component.d.ts +0 -59
- package/tabs/tabs.module.d.ts +0 -12
- package/tabs/types.d.ts +0 -2
- package/tag/tag.component.d.ts +0 -48
- package/tag/tag.module.d.ts +0 -10
- package/tag/tags.component.d.ts +0 -11
- package/testing/data-transfer.d.ts +0 -22
- package/testing/dispatcher-events.d.ts +0 -32
- package/testing/element-focus.d.ts +0 -13
- package/testing/events.d.ts +0 -33
- package/testing/thy-icon.d.ts +0 -5
- package/testing/type-in-element.d.ts +0 -14
- package/testing/xhr-mock.d.ts +0 -51
- package/time-picker/inner/inner-time-picker.class.d.ts +0 -37
- package/time-picker/inner/inner-time-picker.component.d.ts +0 -91
- package/time-picker/inner/inner-time-picker.config.d.ts +0 -42
- package/time-picker/inner/inner-time-picker.store.d.ts +0 -23
- package/time-picker/time-picker-controls.util.d.ts +0 -7
- package/time-picker/time-picker-panel.component.d.ts +0 -113
- package/time-picker/time-picker.component.d.ts +0 -136
- package/time-picker/time-picker.module.d.ts +0 -17
- package/time-picker/time-picker.utils.d.ts +0 -16
- package/timeline/timeline-item.component.d.ts +0 -43
- package/timeline/timeline.component.d.ts +0 -47
- package/timeline/timeline.module.d.ts +0 -11
- package/timeline/timeline.service.d.ts +0 -8
- package/timeline/timeline.type.d.ts +0 -1
- package/tooltip/interface.d.ts +0 -5
- package/tooltip/tooltip-animations.d.ts +0 -4
- package/tooltip/tooltip-ref.d.ts +0 -31
- package/tooltip/tooltip.component.d.ts +0 -36
- package/tooltip/tooltip.config.d.ts +0 -22
- package/tooltip/tooltip.directive.d.ts +0 -81
- package/tooltip/tooltip.module.d.ts +0 -11
- package/tooltip/tooltip.service.d.ts +0 -16
- package/transfer/transfer-list.component.d.ts +0 -41
- package/transfer/transfer.component.d.ts +0 -90
- package/transfer/transfer.interface.d.ts +0 -66
- package/transfer/transfer.module.d.ts +0 -15
- package/tree/tree-abstract.d.ts +0 -19
- package/tree/tree-node.component.d.ts +0 -95
- package/tree/tree.class.d.ts +0 -106
- package/tree/tree.component.d.ts +0 -199
- package/tree/tree.module.d.ts +0 -20
- package/tree/tree.pipe.d.ts +0 -12
- package/tree/tree.service.d.ts +0 -34
- package/tree-select/module.d.ts +0 -14
- package/tree-select/tree-select.class.d.ts +0 -12
- package/tree-select/tree-select.component.d.ts +0 -203
- package/types/common.d.ts +0 -2
- package/types/dictionary.d.ts +0 -10
- package/types/pagination.d.ts +0 -6
- package/typography/bg-color.directive.d.ts +0 -20
- package/typography/module.d.ts +0 -11
- package/typography/text/text.component.d.ts +0 -17
- package/typography/text-color.directive.d.ts +0 -22
- package/upload/constant.d.ts +0 -73
- package/upload/file-drop.directive.d.ts +0 -32
- package/upload/file-select-base.d.ts +0 -22
- package/upload/file-select.component.d.ts +0 -34
- package/upload/module.d.ts +0 -9
- package/upload/types.d.ts +0 -11
- package/upload/upload.config.d.ts +0 -17
- package/upload/upload.service.d.ts +0 -140
- package/upload/util.d.ts +0 -1
- package/util/date/functions.d.ts +0 -85
- package/util/date/tiny-date.d.ts +0 -124
- package/util/dom.d.ts +0 -101
- package/util/helpers/helpers.d.ts +0 -55
- package/util/helpers/index.d.ts +0 -1
- package/util/immutable.d.ts +0 -70
- package/util/keycodes.d.ts +0 -2
- package/util/logger/index.d.ts +0 -1
- package/util/logger/logger.d.ts +0 -6
- package/util/ng.d.ts +0 -2
- package/util/references.d.ts +0 -58
- package/version.d.ts +0 -2
- package/vote/vote.component.d.ts +0 -53
- package/vote/vote.module.d.ts +0 -10
- package/watermark/config.d.ts +0 -19
- package/watermark/watermark.directive.d.ts +0 -63
- package/watermark/watermark.module.d.ts +0 -9
- /package/schematics/ng-update/{update-19 → update-20}/class-name-migration.d.ts +0 -0
- /package/schematics/ng-update/{update-19 → update-20}/class-name-migration.js +0 -0
- /package/schematics/ng-update/{update-19 → update-20}/index.d.ts +0 -0
- /package/schematics/ng-update/{update-19 → update-20}/index.spec.d.ts +0 -0
- /package/schematics/ng-update/{update-19 → update-20}/update-data.d.ts +0 -0
- /package/schematics/ng-update/{update-19 → update-20}/update-data.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-time-picker.mjs","sources":["../../../src/time-picker/time-picker.utils.ts","../../../src/time-picker/time-picker-controls.util.ts","../../../src/time-picker/inner/inner-time-picker.config.ts","../../../src/time-picker/inner/inner-time-picker.store.ts","../../../src/time-picker/inner/inner-time-picker.component.ts","../../../src/time-picker/inner/inner-time-picker.component.html","../../../src/time-picker/time-picker-panel.component.ts","../../../src/time-picker/time-picker-panel.component.html","../../../src/time-picker/time-picker.component.ts","../../../src/time-picker/time-picker.component.html","../../../src/time-picker/time-picker.module.ts","../../../src/time-picker/ngx-tethys-time-picker.ts"],"sourcesContent":["import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { isFunction, TinyDate } from 'ngx-tethys/util';\nimport { Time, TimePickerComponentState } from './inner/inner-time-picker.class';\n\nconst hoursPerDay = 24;\nconst hoursPerDayHalf = 12;\nconst minutesPerHour = 60;\nconst secondsPerMinute = 60;\n\nexport function isValidDate(value?: string | Date): boolean {\n if (!value) {\n return false;\n }\n\n if (value instanceof Date && isNaN(value.getHours())) {\n return false;\n }\n\n if (typeof value === 'string') {\n return isValidDate(new TinyDate(value)?.nativeDate);\n }\n\n return true;\n}\n\nexport function isValidLimit(controls: TimePickerComponentState, newDate: Date): boolean {\n const min = isFunction(controls.min) ? controls.min() : controls.min;\n const max = isFunction(controls.max) ? controls.max() : controls.max;\n if (min && newDate < min) {\n return false;\n }\n\n if (max && newDate > max) {\n return false;\n }\n\n return true;\n}\n\nexport function parseHours(value: string | number, isPM = false): number {\n const hour = coerceNumberProperty(value);\n if (isNaN(hour) || hour < 0 || hour > (isPM ? hoursPerDayHalf : hoursPerDay)) {\n return NaN;\n }\n\n return hour;\n}\n\nexport function parseMinutes(value: string | number): number {\n const minute = coerceNumberProperty(value);\n if (isNaN(minute) || minute < 0 || minute > minutesPerHour) {\n return NaN;\n }\n\n return minute;\n}\n\nexport function parseSeconds(value: string | number): number {\n const seconds = coerceNumberProperty(value);\n if (isNaN(seconds) || seconds < 0 || seconds > secondsPerMinute) {\n return NaN;\n }\n\n return seconds;\n}\n\nexport function parseTime(value: string | Date, timeZone?: string): Date {\n if (typeof value === 'string') {\n return new TinyDate(value, timeZone)?.nativeDate;\n } else if (value instanceof TinyDate) {\n return value?.nativeDate;\n } else {\n return new TinyDate(value, timeZone)?.nativeDate;\n }\n}\n\nexport function changeTime(value: Date, diff: Time, timeZone?: string): Date {\n if (!value) {\n return changeTime(createDate(new TinyDate(undefined, timeZone)?.nativeDate, 0, 0, 0), diff, timeZone);\n }\n\n let hour = value.getHours();\n let minutes = value.getMinutes();\n let seconds = value.getSeconds();\n\n if (diff.hour) {\n hour = (hour + coerceNumberProperty(diff.hour)) % hoursPerDay;\n if (hour < 0) {\n hour += hoursPerDay;\n }\n }\n\n if (diff.minute) {\n minutes = minutes + coerceNumberProperty(diff.minute);\n }\n\n if (diff.seconds) {\n seconds = seconds + coerceNumberProperty(diff.seconds);\n }\n\n return createDate(value, hour, minutes, seconds, timeZone);\n}\n\nexport function setTime(value: Date, opts: Time, timeZone?: string): Date {\n let hour = parseHours(opts.hour);\n const minute = parseMinutes(opts.minute);\n const seconds = parseSeconds(opts.seconds) || 0;\n\n if (opts.isPM && hour !== 12) {\n hour += hoursPerDayHalf;\n }\n\n if (!value) {\n if (!isNaN(hour) && !isNaN(minute)) {\n return createDate(new TinyDate(undefined, timeZone)?.nativeDate, hour, minute, seconds, timeZone);\n }\n\n return value;\n }\n\n if (isNaN(hour) || isNaN(minute)) {\n return value;\n }\n\n return createDate(value, hour, minute, seconds, timeZone);\n}\n\nexport function createDate(value: Date, hours: number, minutes: number, seconds: number, timeZone?: string): Date {\n return new TinyDate(value, timeZone).setHours(hours).setMinutes(minutes).setSeconds(seconds).nativeDate;\n}\n\nexport function padNumber(value: number): string {\n const _value = value.toString();\n if (_value.length > 1) {\n return _value;\n }\n\n return `0${_value}`;\n}\n\nexport function isHourInputValid(hours: string, isPM: boolean): boolean {\n return !isNaN(parseHours(hours, isPM));\n}\n\nexport function isMinuteInputValid(minutes: string): boolean {\n return !isNaN(parseMinutes(minutes));\n}\n\nexport function isSecondInputValid(seconds: string): boolean {\n return !isNaN(parseSeconds(seconds));\n}\n\nexport function isInputLimitValid(diff: Time, max: Date, min: Date, timeZone?: string): boolean {\n const newDate = setTime(new TinyDate(undefined, timeZone)?.nativeDate, diff, timeZone);\n\n if (max && newDate > max) {\n return false;\n }\n\n if (min && newDate < min) {\n return false;\n }\n\n return true;\n}\n\nexport function isInputValid(hours: string, minutes = '0', seconds = '0', isPM: boolean): boolean {\n return isHourInputValid(hours, isPM) && isMinuteInputValid(minutes) && isSecondInputValid(seconds);\n}\n","import { TimeChangeEvent, TimePickerComponentState, TimePickerControls } from './inner/inner-time-picker.class';\nimport { changeTime } from './time-picker.utils';\n\nexport function canChangeValue(state: TimePickerComponentState, event?: TimeChangeEvent): boolean {\n const mousewheel = state.mousewheel();\n const arrowKeys = state.arrowKeys();\n const readonlyInput = state.readonlyInput();\n const disabled = state.disabled();\n\n if (readonlyInput || disabled) {\n return false;\n }\n\n if (event) {\n if (event.source === 'wheel' && !mousewheel) {\n return false;\n }\n\n if (event.source === 'key' && !arrowKeys) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function canChangeHours(event: TimeChangeEvent, controls: TimePickerControls): boolean {\n if (!event.step) {\n return false;\n }\n\n if (event.step > 0 && !controls.canIncrementHours) {\n return false;\n }\n\n if (event.step < 0 && !controls.canDecrementHours) {\n return false;\n }\n\n return true;\n}\n\nexport function canChangeMinutes(event: TimeChangeEvent, controls: TimePickerControls): boolean {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementMinutes) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementMinutes) {\n return false;\n }\n\n return true;\n}\n\nexport function canChangeSeconds(event: TimeChangeEvent, controls: TimePickerControls): boolean {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementSeconds) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementSeconds) {\n return false;\n }\n\n return true;\n}\n\nexport function getControlsValue(state: TimePickerComponentState): TimePickerComponentState {\n const {\n hourStep,\n minuteStep,\n secondsStep,\n readonlyInput,\n disabled,\n mousewheel,\n arrowKeys,\n showSpinners,\n showMeridian,\n showSeconds,\n meridians,\n min,\n max\n } = state;\n\n return {\n hourStep,\n minuteStep,\n secondsStep,\n readonlyInput,\n disabled,\n mousewheel,\n arrowKeys,\n showSpinners,\n showMeridian,\n showSeconds,\n meridians,\n min,\n max\n };\n}\n\nexport function timePickerControls(value: Date, state: TimePickerComponentState): TimePickerControls {\n const hoursPerDayHalf = 12;\n const min = state.min();\n const max = state.max();\n const hourStep = state.hourStep();\n const minuteStep = state.minuteStep();\n const secondsStep = state.secondsStep();\n const showSeconds = state.showSeconds();\n\n const res: TimePickerControls = {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n\n canToggleMeridian: true\n };\n\n if (!value) {\n return res;\n }\n\n // compare dates\n if (max) {\n const _newHour = changeTime(value, { hour: hourStep });\n res.canIncrementHours = max > _newHour;\n\n if (!res.canIncrementHours) {\n const _newMinutes = changeTime(value, { minute: minuteStep });\n res.canIncrementMinutes = showSeconds ? max > _newMinutes : max >= _newMinutes;\n }\n\n if (!res.canIncrementMinutes) {\n const _newSeconds = changeTime(value, { seconds: secondsStep });\n res.canIncrementSeconds = max >= _newSeconds;\n }\n\n if (value.getHours() < hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, { hour: hoursPerDayHalf }) < max;\n }\n }\n\n if (min) {\n const _newHour = changeTime(value, { hour: -hourStep });\n res.canDecrementHours = min < _newHour;\n\n if (!res.canDecrementHours) {\n const _newMinutes = changeTime(value, { minute: -minuteStep });\n res.canDecrementMinutes = showSeconds ? min < _newMinutes : min <= _newMinutes;\n }\n\n if (!res.canDecrementMinutes) {\n const _newSeconds = changeTime(value, { seconds: -secondsStep });\n res.canDecrementSeconds = min <= _newSeconds;\n }\n\n if (value.getHours() >= hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, { hour: -hoursPerDayHalf }) > min;\n }\n }\n\n return res;\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class TimePickerConfig {\n /** hours change step */\n hourStep = 1;\n /** hours change step */\n minuteStep = 5;\n /** seconds changes step */\n secondsStep = 10;\n /** if true works in 12H mode and displays AM/PM. If false works in 24H mode and hides AM/PM */\n showMeridian = true;\n /** meridian labels based on locale */\n meridians = ['AM', 'PM'];\n /** if true hours and minutes fields will be readonly */\n readonlyInput = false;\n /** if true hours and minutes fields will be disabled */\n disabled = false;\n /** if true scroll inside hours and minutes inputs will change time */\n mousewheel = true;\n /** if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard */\n arrowKeys = true;\n /** if true spinner arrows above and below the inputs will be shown */\n showSpinners = true;\n /** show seconds in timePicker */\n showSeconds = false;\n /** show minutes in timePicker */\n showMinutes = true;\n /** minimum time user can select */\n min: Date;\n /** maximum time user can select */\n max: Date;\n /** placeholder for hours field in timePicker */\n hoursPlaceholder = 'HH';\n /** placeholder for minutes field in timePicker */\n minutesPlaceholder = 'MM';\n /** placeholder for seconds field in timePicker */\n secondsPlaceholder = 'SS';\n}\n","import { Injectable } from '@angular/core';\nimport { MiniAction, MiniStore } from 'ngx-tethys/core';\nimport { isFunction, TinyDate } from 'ngx-tethys/util';\nimport { canChangeHours, canChangeMinutes, canChangeSeconds, canChangeValue, timePickerControls } from '../time-picker-controls.util';\nimport { changeTime, isValidLimit, setTime } from '../time-picker.utils';\nimport { Time, TimeChangeEvent, TimePickerComponentState, TimePickerControls } from './inner-time-picker.class';\nimport { TimePickerConfig } from './inner-time-picker.config';\n\nexport interface TimePickerState {\n value: Date;\n config: TimePickerComponentState;\n controls: TimePickerControls;\n}\n\nexport const initialState: TimePickerState = {\n value: null,\n config: new TimePickerConfig() as unknown as TimePickerComponentState,\n controls: {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n\n canToggleMeridian: true\n }\n};\n\n/**\n * @internal\n */\n@Injectable()\nexport class ThyTimePickerStore extends MiniStore<TimePickerState> {\n constructor() {\n super(initialState);\n }\n\n @MiniAction()\n writeValue(value: Date) {\n if (value?.getTime() !== this.snapshot.value?.getTime()) {\n this.setState({ value: value });\n }\n }\n\n @MiniAction()\n changeHours(event: TimeChangeEvent, timeZone?: string) {\n const state = this.snapshot;\n if (!canChangeValue(state.config, event) || !canChangeHours(event, state.controls)) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { hour: event.step }, timeZone);\n const max = state.config.max();\n const min = state.config.min();\n if ((max || min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n this.setState({ value: _newTime });\n }\n\n @MiniAction()\n changeMinutes(event: TimeChangeEvent, timeZone?: string) {\n const state = this.snapshot;\n if (!canChangeValue(state.config, event) || !canChangeMinutes(event, state.controls)) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { minute: event.step }, timeZone);\n\n const max = state.config.max();\n const min = state.config.min();\n\n if ((max || min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n this.setState({ value: _newTime });\n }\n\n @MiniAction()\n changeSeconds(event: TimeChangeEvent, timeZone?: string) {\n const state = this.snapshot;\n if (!canChangeValue(state.config, event) || !canChangeSeconds(event, state.controls)) {\n return state;\n }\n\n const _newTime = changeTime(\n state.value,\n {\n seconds: event.step\n },\n timeZone\n );\n\n const max = state.config.max();\n const min = state.config.min();\n\n if ((max || min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n this.setState({ value: _newTime });\n }\n\n @MiniAction()\n setTime(value: Time, timeZone?: string) {\n const state = this.snapshot;\n if (!canChangeValue(state.config)) {\n return state;\n }\n\n const _newTime = setTime(state.value, value, timeZone);\n this.setState({ value: _newTime });\n }\n\n @MiniAction()\n updateControls(value: TimePickerComponentState, timeZone?: string) {\n const state = this.snapshot;\n const _newControlsState = timePickerControls(state.value, value);\n const _newState: TimePickerState = {\n value: state.value,\n config: value,\n controls: _newControlsState\n };\n\n const showMeridian = isFunction(state.config.showMeridian) ? state.config.showMeridian() : state.config.showMeridian;\n const newShowMeridian = isFunction(_newState.config.showMeridian) ? _newState.config.showMeridian() : _newState.config.showMeridian;\n if (showMeridian !== newShowMeridian) {\n if (state.value) {\n _newState.value = new TinyDate(state.value, timeZone)?.nativeDate;\n }\n }\n\n this.setState(_newState);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n forwardRef,\n inject,\n input,\n model,\n OnDestroy,\n output,\n StaticProvider\n} from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { getControlsValue } from '../time-picker-controls.util';\nimport { TimePickerConfig } from './inner-time-picker.config';\n\nimport { TimeChangeSource, TimePickerComponentState, TimePickerControls } from './inner-time-picker.class';\n\nimport {\n isHourInputValid,\n isInputLimitValid,\n isInputValid,\n isMinuteInputValid,\n isSecondInputValid,\n isValidDate,\n padNumber,\n parseTime\n} from '../time-picker.utils';\n\nimport { Subscription } from 'rxjs';\n\nimport { ThyTimePickerStore } from './inner-time-picker.store';\n\nexport const TIMEPICKER_CONTROL_VALUE_ACCESSOR: StaticProvider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyInnerTimePicker),\n multi: true\n};\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-inner-time-picker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TIMEPICKER_CONTROL_VALUE_ACCESSOR, ThyTimePickerStore],\n templateUrl: './inner-time-picker.component.html',\n imports: []\n})\nexport class ThyInnerTimePicker implements ControlValueAccessor, TimePickerComponentState, TimePickerControls, OnDestroy {\n private _cd = inject(ChangeDetectorRef);\n private _store = inject(ThyTimePickerStore);\n private _config = inject(TimePickerConfig);\n\n /** hours change step */\n readonly hourStep = input<number>(this._config.hourStep);\n /** minutes change step */\n readonly minuteStep = input<number>(this._config.minuteStep);\n /** seconds change step */\n readonly secondsStep = input<number>(this._config.secondsStep);\n /** if true hours and minutes fields will be readonly */\n readonly readonlyInput = input<boolean>(this._config.readonlyInput);\n /** if true hours and minutes fields will be disabled */\n readonly disabled = model<boolean>(this._config.disabled);\n /** if true scroll inside hours and minutes inputs will change time */\n readonly mousewheel = input<boolean>(this._config.mousewheel);\n /** if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard */\n readonly arrowKeys = input<boolean>(this._config.arrowKeys);\n /** if true spinner arrows above and below the inputs will be shown */\n readonly showSpinners = input<boolean>(this._config.showSpinners);\n /** if true meridian button will be shown */\n readonly showMeridian = input<boolean>(this._config.showMeridian);\n /** show minutes in timePicker */\n readonly showMinutes = input<boolean>(this._config.showMinutes);\n /** show seconds in timePicker */\n readonly showSeconds = input<boolean>(this._config.showSeconds);\n /** meridian labels based on locale */\n readonly meridians = input<string[]>(this._config.meridians);\n /** minimum time user can select */\n readonly min = input<Date>(this._config.min);\n /** maximum time user can select */\n readonly max = input<Date>(this._config.max);\n /** placeholder for hours field in timePicker */\n readonly hoursPlaceholder = input<string>(this._config.hoursPlaceholder);\n /** placeholder for minutes field in timePicker */\n readonly minutesPlaceholder = input<string>(this._config.minutesPlaceholder);\n /** placeholder for seconds field in timePicker */\n readonly secondsPlaceholder = input<string>(this._config.secondsPlaceholder);\n /** timezone */\n readonly timeZone = input<string>();\n\n /** emits true if value is a valid date */\n readonly isValid = output<boolean>();\n\n readonly isEditable = computed(() => !(this.readonlyInput() || this.disabled()));\n\n readonly isPM = computed(() => this.showMeridian() && this.meridian === this.meridians()[1]);\n\n // ui variables\n hours: string;\n minutes: string;\n seconds: string;\n meridian: string;\n\n // min/max validation for input fields\n invalidHours = false;\n invalidMinutes = false;\n invalidSeconds = false;\n\n // time picker controls state\n canIncrementHours: boolean;\n canIncrementMinutes: boolean;\n canIncrementSeconds: boolean;\n\n canDecrementHours: boolean;\n canDecrementMinutes: boolean;\n canDecrementSeconds: boolean;\n\n canToggleMeridian: boolean;\n\n // control value accessor methods\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n private timerPickerSubscription = new Subscription();\n\n constructor() {\n const _cd = this._cd;\n const _store = this._store;\n\n this.timerPickerSubscription.add(\n _store\n .select(state => state.value)\n .subscribe((value: Date) => {\n // update UI values if date changed\n this._renderTime(value);\n this.onChange(value);\n this._store.updateControls(getControlsValue(this), this.timeZone());\n })\n );\n\n this.timerPickerSubscription.add(\n _store\n .select(state => state.controls)\n .subscribe((controlsState: TimePickerControls) => {\n this.isValid.emit(isInputValid(this.hours, this.minutes, this.seconds, this.isPM()));\n Object.assign(this, controlsState);\n _cd.markForCheck();\n })\n );\n }\n\n resetValidation(): void {\n this.invalidHours = false;\n this.invalidMinutes = false;\n this.invalidSeconds = false;\n }\n\n prevDef($event: Event) {\n $event.preventDefault();\n }\n\n wheelSign($event: WheelEventInit): number {\n return Math.sign($event.deltaY) * -1;\n }\n\n changeHours(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.changeHours({ step, source }, this.timeZone());\n }\n\n changeMinutes(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.changeMinutes({ step, source }, this.timeZone());\n }\n\n changeSeconds(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.changeSeconds({ step, source }, this.timeZone());\n }\n\n updateHours(hours: string): void {\n this.resetValidation();\n this.hours = hours;\n\n const isValid = isHourInputValid(this.hours, this.isPM()) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidHours = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n updateMinutes(minutes: string) {\n this.resetValidation();\n this.minutes = minutes;\n\n const isValid = isMinuteInputValid(this.minutes) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidMinutes = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n updateSeconds(seconds: string) {\n this.resetValidation();\n this.seconds = seconds;\n\n const isValid = isSecondInputValid(this.seconds) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidSeconds = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n isValidLimit(): boolean {\n return isInputLimitValid(\n {\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n },\n this.max(),\n this.min(),\n this.timeZone()\n );\n }\n\n _updateTime() {\n const _seconds = this.showSeconds() ? this.seconds : void 0;\n const _minutes = this.showMinutes() ? this.minutes : void 0;\n if (!isInputValid(this.hours, _minutes, _seconds, this.isPM())) {\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._store.setTime(\n {\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n },\n this.timeZone()\n );\n }\n\n toggleMeridian(): void {\n if (!this.showMeridian() || !this.isEditable()) {\n return;\n }\n\n const _hoursPerDayHalf = 12;\n this._store.changeHours({\n step: _hoursPerDayHalf,\n source: ''\n });\n }\n\n writeValue(obj: string | null | undefined | Date): void {\n if (isValidDate(obj)) {\n this._store.writeValue(parseTime(obj, this.timeZone()));\n } else if (obj == null) {\n this._store.writeValue(null);\n }\n }\n\n registerOnChange(fn: (_: any) => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n this._cd.markForCheck();\n }\n\n ngOnDestroy(): void {\n this.timerPickerSubscription.unsubscribe();\n }\n\n private _renderTime(value: string | Date): void {\n if (!isValidDate(value)) {\n this.hours = '';\n this.minutes = '';\n this.seconds = '';\n this.meridian = this.meridians()[0];\n\n return;\n }\n\n const _value = parseTime(value, this.timeZone());\n const _hoursPerDayHalf = 12;\n let _hours = _value.getHours();\n\n if (this.showMeridian()) {\n this.meridian = this.meridians()[_hours >= _hoursPerDayHalf ? 1 : 0];\n _hours = _hours % _hoursPerDayHalf;\n // should be 12 PM, not 00 PM\n if (_hours === 0) {\n _hours = _hoursPerDayHalf;\n }\n }\n\n this.hours = padNumber(_hours);\n this.minutes = padNumber(_value.getMinutes());\n this.seconds = padNumber(_value.getUTCSeconds());\n }\n}\n","<table>\n <tbody>\n <tr class=\"text-center\" [hidden]=\"!showSpinners()\">\n <!-- increment hours button-->\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementHours || !isEditable()\" (click)=\"changeHours(hourStep())\"\n ><span class=\"thy-chevron thy-chevron-up\"></span\n ></a>\n </td>\n <!-- divider -->\n @if (showMinutes()) {\n <td> </td>\n }\n <!-- increment minutes button -->\n @if (showMinutes()) {\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementMinutes || !isEditable()\" (click)=\"changeMinutes(minuteStep())\"\n ><span class=\"thy-chevron thy-chevron-up\"></span\n ></a>\n </td>\n }\n <!-- divider -->\n @if (showSeconds()) {\n <td> </td>\n }\n <!-- increment seconds button -->\n @if (showSeconds()) {\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementSeconds || !isEditable()\" (click)=\"changeSeconds(secondsStep())\">\n <span class=\"thy-chevron thy-chevron-up\"></span>\n </a>\n </td>\n }\n <!-- space between -->\n @if (showMeridian()) {\n <td> </td>\n }\n <!-- meridian placeholder-->\n @if (showMeridian()) {\n <td></td>\n }\n </tr>\n <tr>\n <!-- hours -->\n <td class=\"form-group\" [class.has-error]=\"invalidHours\">\n <input\n type=\"text\"\n [class.is-invalid]=\"invalidHours\"\n class=\"form-control text-center thy-time-picker-field\"\n [placeholder]=\"hoursPlaceholder()\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput()\"\n [disabled]=\"disabled()\"\n [value]=\"hours\"\n (wheel)=\"prevDef($event); changeHours(hourStep() * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeHours(hourStep(), 'key')\"\n (keydown.ArrowDown)=\"changeHours(-hourStep(), 'key')\"\n (change)=\"updateHours($event.target.value)\" />\n </td>\n\n <!-- divider -->\n @if (showMinutes()) {\n <td> : </td>\n }\n <!-- minutes -->\n @if (showMinutes()) {\n <td class=\"form-group\" [class.has-error]=\"invalidMinutes\">\n <input\n type=\"text\"\n [class.is-invalid]=\"invalidMinutes\"\n class=\"form-control text-center thy-time-picker-field\"\n [placeholder]=\"minutesPlaceholder()\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput()\"\n [disabled]=\"disabled()\"\n [value]=\"minutes\"\n (wheel)=\"prevDef($event); changeMinutes(minuteStep() * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeMinutes(minuteStep(), 'key')\"\n (keydown.ArrowDown)=\"changeMinutes(-minuteStep(), 'key')\"\n (change)=\"updateMinutes($event.target.value)\" />\n </td>\n }\n <!-- divider -->\n @if (showSeconds()) {\n <td> : </td>\n }\n <!-- seconds -->\n @if (showSeconds()) {\n <td class=\"form-group\" [class.has-error]=\"invalidSeconds\">\n <input\n type=\"text\"\n [class.is-invalid]=\"invalidSeconds\"\n class=\"form-control text-center thy-time-picker-field\"\n [placeholder]=\"secondsPlaceholder()\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput()\"\n [disabled]=\"disabled()\"\n [value]=\"seconds\"\n (wheel)=\"prevDef($event); changeSeconds(secondsStep() * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeSeconds(secondsStep(), 'key')\"\n (keydown.ArrowDown)=\"changeSeconds(-secondsStep(), 'key')\"\n (change)=\"updateSeconds($event.target.value)\" />\n </td>\n }\n <!-- space between -->\n @if (showMeridian()) {\n <td> </td>\n }\n <!-- meridian -->\n @if (showMeridian()) {\n <td>\n <button\n type=\"button\"\n class=\"btn btn-default text-center\"\n [disabled]=\"!isEditable() || !canToggleMeridian\"\n [class.disabled]=\"!isEditable() || !canToggleMeridian\"\n (click)=\"toggleMeridian()\">\n {{ meridian }}\n </button>\n </td>\n }\n </tr>\n <tr class=\"text-center\" [hidden]=\"!showSpinners()\">\n <!-- decrement hours button-->\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementHours || !isEditable()\" (click)=\"changeHours(-hourStep())\">\n <span class=\"thy-chevron thy-chevron-down\"></span>\n </a>\n </td>\n <!-- divider -->\n @if (showMinutes()) {\n <td> </td>\n }\n <!-- decrement minutes button-->\n @if (showMinutes()) {\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementMinutes || !isEditable()\" (click)=\"changeMinutes(-minuteStep())\">\n <span class=\"thy-chevron thy-chevron-down\"></span>\n </a>\n </td>\n }\n <!-- divider -->\n @if (showSeconds()) {\n <td> </td>\n }\n <!-- decrement seconds button-->\n @if (showSeconds()) {\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementSeconds || !isEditable()\" (click)=\"changeSeconds(-secondsStep())\">\n <span class=\"thy-chevron thy-chevron-down\"></span>\n </a>\n </td>\n }\n <!-- space between -->\n @if (showMeridian()) {\n <td> </td>\n }\n <!-- meridian placeholder-->\n @if (showMeridian()) {\n <td></td>\n }\n </tr>\n </tbody>\n</table>\n","import { DecimalPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n output,\n Signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyButton } from 'ngx-tethys/button';\nimport { reqAnimFrame } from 'ngx-tethys/core';\nimport { injectLocale, ThyTimePickerLocale } from 'ngx-tethys/i18n';\nimport { coerceBooleanProperty, isValid, TinyDate } from 'ngx-tethys/util';\n\n/**\n * 时间选择面板组件\n * @name thy-time-picker-panel\n */\n@Component({\n selector: 'thy-time-picker-panel',\n templateUrl: './time-picker-panel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyTimePanel)\n }\n ],\n host: {\n class: 'thy-time-picker-panel',\n '[class.thy-time-picker-panel-has-bottom-operation]': `thyShowOperations()`,\n '[class.thy-time-picker-panel-columns-2]': `showColumnCount() === 2`,\n '[class.thy-time-picker-panel-columns-3]': `showColumnCount() === 3`\n },\n imports: [ThyButton, DecimalPipe]\n})\nexport class ThyTimePanel implements OnInit, OnDestroy, ControlValueAccessor {\n private cdr = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n locale: Signal<ThyTimePickerLocale> = injectLocale('timePicker');\n\n readonly hourListRef = viewChild<ElementRef<HTMLElement>>('hourListElement');\n\n readonly minuteListRef = viewChild<ElementRef<HTMLElement>>('minuteListElement');\n\n readonly secondListRef = viewChild<ElementRef<HTMLElement>>('secondListElement');\n\n /**\n * 展示的日期格式,支持 'HH:mm:ss' | 'HH:mm' | 'mm:ss'\n * @type string\n * @default HH:mm:ss\n */\n readonly thyFormat = input<string>('HH:mm:ss');\n\n /**\n * 小时间隔步长\n * @type number\n */\n readonly thyHourStep = input<number>(1);\n\n /**\n * 分钟间隔步长\n * @type number\n */\n readonly thyMinuteStep = input<number>(1);\n\n /**\n * 秒间隔步长\n * @type number\n */\n readonly thySecondStep = input<number>(1);\n\n /**\n * 展示选择此刻\n * @type boolean\n */\n readonly thyShowSelectNow = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 展示底部操作\n * @type boolean\n */\n readonly thyShowOperations = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 选择时间触发的事件\n * @type EventEmitter<Date>\n */\n readonly thyPickChange = output<Date>();\n\n /**\n * 关闭面板事件\n * @type EventEmitter<void>\n */\n readonly thyClosePanel = output<void>();\n\n // margin-top + 1px border\n SCROLL_OFFSET_SPACING = 5;\n\n SCROLL_DEFAULT_DURATION = 120;\n\n prefixCls = 'thy-time-picker-panel';\n\n hourRange: ReadonlyArray<{ value: number; disabled: boolean }> = [];\n\n minuteRange: ReadonlyArray<{ value: number; disabled: boolean }> = [];\n\n secondRange: ReadonlyArray<{ value: number; disabled: boolean }> = [];\n\n public readonly showHourColumn = computed(() => {\n const format = this.thyFormat();\n if (format) {\n return new Set(format).has('H') || new Set(format).has('h');\n }\n return true;\n });\n\n public readonly showMinuteColumn = computed(() => {\n const format = this.thyFormat();\n if (format) {\n return new Set(format).has('m');\n }\n return true;\n });\n\n public readonly showSecondColumn = computed(() => {\n const format = this.thyFormat();\n if (format) {\n return new Set(format).has('s');\n }\n return true;\n });\n\n readonly showColumnCount = computed(() => {\n const showHour = this.showHourColumn();\n const showMinute = this.showMinuteColumn();\n const showSecond = this.showSecondColumn();\n return [showHour, showMinute, showSecond].filter(m => m).length || 3;\n });\n\n value: Date;\n\n hour: number;\n\n minute: number;\n\n second: number;\n\n initialScrollPosition: boolean;\n\n onValueChangeFn: (val: Date) => void = () => void 0;\n\n onTouchedFn: () => void = () => void 0;\n\n constructor() {}\n\n ngOnInit(): void {\n this.generateTimeRange();\n this.initialValue();\n setTimeout(() => {\n this.initialScrollPosition = true;\n });\n }\n\n generateTimeRange() {\n this.hourRange = this.buildTimeRange(24, this.thyHourStep());\n this.minuteRange = this.buildTimeRange(60, this.thyMinuteStep());\n this.secondRange = this.buildTimeRange(60, this.thySecondStep());\n }\n\n pickHours(hours: { value: number; disabled: boolean }, index: number) {\n this.value.setHours(hours.value);\n this.hour = hours.value;\n this.thyPickChange.emit(this.value);\n this.scrollTo(this.hourListRef().nativeElement, index);\n }\n\n pickMinutes(minutes: { value: number; disabled: boolean }, index: number) {\n this.value.setMinutes(minutes.value);\n this.minute = minutes.value;\n this.thyPickChange.emit(this.value);\n this.scrollTo(this.minuteListRef().nativeElement, index);\n }\n\n pickSeconds(seconds: { value: number; disabled: boolean }, index: number) {\n this.value.setSeconds(seconds.value);\n this.second = seconds.value;\n this.thyPickChange.emit(this.value);\n this.scrollTo(this.secondListRef().nativeElement, index);\n }\n\n selectNow() {\n this.value = new TinyDate()?.nativeDate;\n this.setHMSProperty();\n this.thyPickChange.emit(this.value);\n this.thyClosePanel.emit();\n }\n\n confirmPickTime() {\n this.onValueChangeFn(this.value || new TinyDate()?.nativeDate);\n this.thyClosePanel.emit();\n }\n\n scrollTo(container: HTMLElement, index: number = 0, duration: number = this.SCROLL_DEFAULT_DURATION) {\n const offsetTop = (container.children[index] as HTMLElement).offsetTop - this.SCROLL_OFFSET_SPACING;\n this.runScrollAnimationFrame(container, offsetTop, duration);\n }\n\n writeValue(value: Date | number): void {\n if (value && isValid(value)) {\n this.value = new TinyDate(value)?.nativeDate;\n this.setHMSProperty();\n } else {\n this.initialValue();\n }\n this.autoScroll(this.initialScrollPosition ? this.SCROLL_DEFAULT_DURATION : 0);\n\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: (value: Date) => void): void {\n this.onValueChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = fn;\n }\n\n private initialValue() {\n this.hour = 0;\n this.minute = 0;\n this.second = 0;\n this.value = new TinyDate().setHms(0, 0, 0).nativeDate;\n }\n\n private buildTimeRange(length: number, step: number = 1, start: number = 0, disables: number[] = []) {\n return new Array(Math.ceil(length / step)).fill(0).map((_, i) => {\n const value = (i + start) * step;\n return {\n value: value,\n disabled: disables.indexOf(value) > -1\n };\n });\n }\n\n private setHMSProperty() {\n this.hour = this.value.getHours();\n this.minute = this.value.getMinutes();\n this.second = this.value.getSeconds();\n }\n\n private resetScrollPosition() {\n const hourListRef = this.hourListRef();\n if (hourListRef) {\n hourListRef.nativeElement.scrollTop = 0;\n }\n const minuteListRef = this.minuteListRef();\n if (minuteListRef) {\n minuteListRef.nativeElement.scrollTop = 0;\n }\n const secondListRef = this.secondListRef();\n if (secondListRef) {\n secondListRef.nativeElement.scrollTop = 0;\n }\n this.initialScrollPosition = false;\n }\n\n private runScrollAnimationFrame(container: HTMLElement, to: number, duration: number = this.SCROLL_DEFAULT_DURATION) {\n if (duration <= 0) {\n container.scrollTop = to;\n return;\n }\n const offset = to - container.scrollTop;\n const frame = (offset / duration) * 10;\n this.ngZone.runOutsideAngular(() => {\n reqAnimFrame(() => {\n container.scrollTop += frame;\n if (container.scrollTop === to) {\n return;\n }\n this.runScrollAnimationFrame(container, to, duration - 10);\n });\n });\n }\n\n private autoScroll(duration: number = this.SCROLL_DEFAULT_DURATION) {\n const hourListRef = this.hourListRef();\n if (hourListRef) {\n this.scrollTo(\n hourListRef.nativeElement,\n this.hourRange.findIndex(m => m.value === this.hour),\n duration\n );\n }\n const minuteListRef = this.minuteListRef();\n if (minuteListRef) {\n this.scrollTo(\n minuteListRef.nativeElement,\n this.minuteRange.findIndex(m => m.value === this.minute),\n duration\n );\n }\n const secondListRef = this.secondListRef();\n if (secondListRef) {\n this.scrollTo(\n secondListRef.nativeElement,\n this.secondRange.findIndex(m => m.value === this.second),\n duration\n );\n }\n }\n\n ngOnDestroy(): void {\n // 关闭面板时有 0.2s 的动画,所以延迟 200ms 再重置滚动位置\n setTimeout(() => {\n this.resetScrollPosition();\n }, 200);\n }\n}\n","<div class=\"{{ prefixCls }}-content\">\n @if (showHourColumn()) {\n <ul #hourListElement class=\"{{ prefixCls }}-time-column {{ prefixCls }}-hour-column\">\n @for (time of hourRange; track $index; let i = $index) {\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"hour === time.value\"\n (click)=\"pickHours(time, i)\">\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n }\n </ul>\n }\n @if (showMinuteColumn()) {\n <ul #minuteListElement class=\"{{ prefixCls }}-time-column {{ prefixCls }}-minute-column\">\n @for (time of minuteRange; track $index; let i = $index) {\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"minute === time.value\"\n (click)=\"pickMinutes(time, i)\">\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n }\n </ul>\n }\n @if (showSecondColumn()) {\n <ul #secondListElement class=\"{{ prefixCls }}-time-column {{ prefixCls }}-second-column\">\n @for (time of secondRange; track $index; let i = $index) {\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"second === time.value\"\n (click)=\"pickSeconds(time, i)\">\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n }\n </ul>\n }\n</div>\n\n@if (thyShowOperations()) {\n <div class=\"{{ prefixCls }}-bottom-operation\">\n @if (thyShowSelectNow()) {\n <a href=\"javascript:;\" class=\"{{ prefixCls }}-time-now\" (click)=\"selectNow()\">{{ locale().now }}</a>\n }\n <button class=\"{{ prefixCls }}-time-confirm\" thyButton=\"primary\" thySize=\"xs\" class=\"confirm\" (click)=\"confirmPickTime()\">\n {{ locale().ok }}\n </button>\n </div>\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n effect,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n input,\n model,\n OnInit,\n output,\n Signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getFlexiblePositions, scaleMotion, scaleXMotion, scaleYMotion, ThyPlacement } from 'ngx-tethys/core';\nimport { injectLocale, ThyTimePickerLocale } from 'ngx-tethys/i18n';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyInputDirective } from 'ngx-tethys/input';\nimport { coerceBooleanProperty, isValid, TinyDate } from 'ngx-tethys/util';\nimport { ThyTimePanel } from './time-picker-panel.component';\n\nexport type TimePickerSize = 'xs' | 'sm' | 'md' | 'lg' | 'default';\n\n/**\n * 时间选择组件\n * @name thy-time-picker\n */\n@Component({\n selector: 'thy-time-picker',\n templateUrl: './time-picker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyTimePicker)\n }\n ],\n host: {\n class: 'thy-time-picker',\n '[class.thy-time-picker-disabled]': `thyDisabled()`,\n '[class.thy-time-picker-readonly]': `thyReadonly()`\n },\n imports: [CdkOverlayOrigin, ThyInputDirective, FormsModule, NgTemplateOutlet, ThyIcon, NgClass, CdkConnectedOverlay, ThyTimePanel],\n animations: [scaleXMotion, scaleYMotion, scaleMotion]\n})\nexport class ThyTimePicker implements OnInit, AfterViewInit, ControlValueAccessor {\n private cdr = inject(ChangeDetectorRef);\n private elementRef = inject(ElementRef);\n locale: Signal<ThyTimePickerLocale> = injectLocale('timePicker');\n\n readonly cdkConnectedOverlay = viewChild(CdkConnectedOverlay);\n\n readonly origin = viewChild<CdkOverlayOrigin>('origin');\n\n readonly inputRef = viewChild<ElementRef<HTMLInputElement>>('pickerInput');\n\n readonly overlayContainer = viewChild<ElementRef<HTMLElement>>('overlayContainer');\n\n /**\n * 输入框大小\n * @type 'xs' | 'sm' | 'md' | 'lg' | 'default'\n */\n readonly thySize = input<TimePickerSize>('default');\n\n /**\n * 输入框提示文字\n * @type string\n */\n readonly thyPlaceholder = input<string>(this.locale().placeholder);\n\n /**\n * 弹出位置\n * @type 'top' | 'topLeft'| 'topRight' | 'bottom' | 'bottomLeft' | 'bottomRight' | 'left' | 'leftTop' | 'leftBottom' | 'right' | 'rightTop' | 'rightBottom'\n */\n readonly thyPlacement = input<ThyPlacement>('bottomLeft');\n\n /**\n * 展示的日期格式,支持 'HH:mm:ss' | 'HH:mm' | 'mm:ss'\n * @type string\n * @default HH:mm:ss\n */\n readonly thyFormat = input<string, string>('HH:mm:ss', { transform: (value: string) => value || 'HH:mm:ss' });\n\n /**\n * 小时间隔步长\n * @type number\n */\n readonly thyHourStep = input<number>(1);\n\n /**\n * 分钟间隔步长\n * @type number\n */\n readonly thyMinuteStep = input<number>(1);\n\n /**\n * 秒间隔步长\n * @type number\n */\n readonly thySecondStep = input<number>(1);\n\n /**\n * 弹出层组件 class\n * @type string\n */\n readonly thyPopupClass = input<string>();\n\n /**\n * 是否显示弹出层遮罩\n * @type boolean\n * @default false\n */\n readonly thyBackdrop = input<boolean, unknown>(false, { transform: coerceBooleanProperty });\n\n /**\n * 禁用\n * @type boolean\n * @default false\n */\n readonly thyDisabled = model<boolean>(false);\n\n /**\n * 只读\n * @type boolean\n * @default false\n */\n readonly thyReadonly = input<boolean, unknown>(false, { transform: coerceBooleanProperty });\n\n /**\n * 展示选择此刻\n * @type boolean\n */\n readonly thyShowSelectNow = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 可清空值\n * @type boolean\n */\n readonly thyAllowClear = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 打开/关闭弹窗事件\n * @type EventEmitter<boolean>\n */\n readonly thyOpenChange = output<boolean>();\n\n prefixCls = 'thy-time-picker';\n\n overlayPositions: ConnectionPositionPair[] = getFlexiblePositions(this.thyPlacement(), 4);\n\n readonly showText = model<string>('');\n\n openState: boolean;\n\n value: Date = new TinyDate().setHms(0, 0, 0).nativeDate;\n\n originValue: Date;\n\n keepFocus: boolean;\n\n private isDisabledFirstChange = true;\n\n onValueChangeFn: (val: number | Date) => void = () => void 0;\n\n onTouchedFn: () => void = () => void 0;\n\n constructor() {\n effect(() => {\n if (this.thyFormat() && this.value && isValid(this.value)) {\n this.showText.set(new TinyDate(this.value).format(this.thyFormat()));\n }\n });\n }\n\n ngOnInit() {}\n\n ngAfterViewInit() {\n this.overlayPositions = getFlexiblePositions(this.thyPlacement(), 4);\n }\n\n onInputPickerClick() {\n if (this.disabledUserOperation()) {\n return;\n }\n this.openOverlay();\n }\n\n onInputPickerBlur() {\n if (this.keepFocus) {\n this.focus();\n } else {\n if (this.openState) {\n this.closeOverlay();\n }\n }\n }\n\n onPickTime(value: Date) {\n this.originValue = new TinyDate(value)?.nativeDate;\n this.setValue(value);\n this.emitValue();\n }\n\n onPickTimeConfirm(value: Date) {\n this.originValue = new TinyDate(value)?.nativeDate;\n this.confirmValue(value);\n }\n\n onClearTime(e: Event) {\n e.stopPropagation();\n this.originValue = null;\n this.setValue(null);\n this.emitValue();\n }\n\n onCustomizeInput(value: string) {\n this.formatInputValue(value);\n this.cdr.detectChanges();\n }\n\n onKeyupEnter() {\n this.confirmValue(this.value);\n this.closeOverlay();\n }\n\n onKeyupEsc() {\n this.closeOverlay();\n }\n\n onPositionChange(e: Event) {\n this.cdr.detectChanges();\n }\n\n onClickBackdrop() {\n this.closeOverlay();\n }\n\n onOverlayDetach() {\n this.closeOverlay();\n }\n\n onOutsideClick(event: Event) {\n if (\n this.openState &&\n !this.elementRef.nativeElement.contains(event.target) &&\n !this.overlayContainer().nativeElement.contains(event.target as Node)\n ) {\n this.closeOverlay();\n this.cdr.detectChanges();\n }\n }\n\n onOverlayAttach() {\n const cdkConnectedOverlay = this.cdkConnectedOverlay();\n if (cdkConnectedOverlay && cdkConnectedOverlay.overlayRef) {\n cdkConnectedOverlay.overlayRef.updatePosition();\n }\n }\n\n openOverlay() {\n if (this.disabledUserOperation()) {\n return;\n }\n this.keepFocus = true;\n this.openState = true;\n this.thyOpenChange.emit(this.openState);\n }\n\n closeOverlay() {\n if (this.openState) {\n this.keepFocus = false;\n this.openState = false;\n this.blur();\n if (this.showText()?.length) {\n if (!this.validateCustomizeInput(this.showText())) {\n this.setValue(this.originValue);\n } else {\n this.showText.set(new TinyDate(this.value).format(this.thyFormat()));\n }\n } else {\n if (!this.thyAllowClear()) {\n this.setValue(this.originValue);\n }\n }\n this.thyOpenChange.emit(this.openState);\n }\n }\n\n focus() {\n const inputRef = this.inputRef();\n if (inputRef) {\n inputRef.nativeElement.focus();\n }\n }\n\n blur() {\n const inputRef = this.inputRef();\n if (inputRef) {\n inputRef.nativeElement.blur();\n }\n }\n\n writeValue(value: Date | number): void {\n if (value && isValid(value)) {\n this.originValue = new TinyDate(value)?.nativeDate;\n this.setValue(new TinyDate(value).nativeDate);\n } else {\n this.value = new TinyDate().setHms(0, 0, 0).nativeDate;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onValueChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.thyDisabled.set((this.isDisabledFirstChange && this.thyDisabled()) || isDisabled);\n this.isDisabledFirstChange = false;\n }\n\n private setValue(value: Date, formatText: boolean = true) {\n if (value && isValid(value)) {\n this.value = new TinyDate(value)?.nativeDate;\n if (formatText) {\n this.showText.set(new TinyDate(this.value).format(this.thyFormat()));\n }\n } else {\n this.value = null;\n this.showText.set('');\n }\n this.cdr.markForCheck();\n }\n\n private confirmValue(value: Date) {\n this.setValue(value);\n this.emitValue();\n this.cdr.markForCheck();\n }\n\n private emitValue() {\n if (this.onValueChangeFn) {\n this.onValueChangeFn(this.value);\n }\n if (this.onTouchedFn) {\n this.onTouchedFn();\n }\n }\n\n private formatInputValue(value: string) {\n if (!this.openState) {\n this.openOverlay();\n }\n if (value?.length) {\n if (this.validateCustomizeInput(value)) {\n const formatter = value.split(':');\n const hour = formatter[0] || 0;\n const minute = formatter[1] || 0;\n const second = formatter[2] || 0;\n this.setValue(new TinyDate().setHms(+hour, +minute, +second).nativeDate, false);\n this.originValue = new TinyDate(this.value)?.nativeDate;\n this.emitValue();\n }\n } else {\n if (this.thyAllowClear()) {\n this.originValue = null;\n this.setValue(null);\n this.emitValue();\n } else {\n this.value = new TinyDate(this.originValue)?.nativeDate;\n this.showText.set('');\n this.cdr.markForCheck();\n }\n }\n }\n\n private validateCustomizeInput(value: string): boolean {\n let valid: boolean = false;\n if (value.length > this.thyFormat().length) {\n return valid;\n }\n const formatRule = this.thyFormat().split(':');\n const formatter = value.split(':');\n valid = !formatRule\n .map((m, i) => {\n return !!formatter[i];\n })\n .includes(false);\n return valid;\n }\n\n private disabledUserOperation() {\n return this.thyDisabled() || this.thyReadonly();\n }\n}\n","<span cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" (click)=\"onInputPickerClick()\" class=\"{{ prefixCls }}-wrapper\">\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control {{ prefixCls }}-input\"\n [class.thy-input-disabled]=\"thyDisabled()\"\n [class.thy-input-readonly]=\"thyReadonly()\"\n [class.thy-time-picker-panel-opened]=\"openState\"\n [(ngModel)]=\"showText\"\n [thySize]=\"thySize()\"\n [disabled]=\"thyDisabled()\"\n [readonly]=\"thyReadonly()\"\n [placeholder]=\"thyPlaceholder()\"\n (blur)=\"onInputPickerBlur()\"\n (keyup.enter)=\"onKeyupEnter()\"\n (keyup.escape)=\"onKeyupEsc()\"\n (ngModelChange)=\"onCustomizeInput($event)\" />\n <ng-container *ngTemplateOutlet=\"rightIcon\"></ng-container>\n </ng-container>\n</span>\n\n<ng-template #rightIcon>\n @if (!thyDisabled() && thyAllowClear() && !thyReadonly() && showText()) {\n <span class=\"{{ prefixCls }}-clear\">\n <thy-icon\n thyIconName=\"close-circle-bold-fill\"\n (click)=\"onClearTime($event)\"\n ngClass=\"remove-link remove-link-{{ thySize() }}\"></thy-icon>\n </span>\n }\n <span class=\"{{ prefixCls }}-icon\">\n <thy-icon [thyIconName]=\"'clock-circle-moment'\" ngClass=\"remove-link-{{ thySize() }}\"></thy-icon>\n </span>\n</ng-template>\n\n<!-- Overlay -->\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"openState\"\n [cdkConnectedOverlayHasBackdrop]=\"thyBackdrop()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlayTransformOriginOn=\".thy-time-picker-container\"\n (positionChange)=\"onPositionChange($event)\"\n (backdropClick)=\"onClickBackdrop()\"\n (overlayOutsideClick)=\"onOutsideClick($event)\"\n (detach)=\"onOverlayDetach()\"\n (attach)=\"onOverlayAttach()\">\n <div\n #overlayContainer\n style=\"position: relative\"\n [@scaleXMotion]=\"thyPlacement() === 'left' || thyPlacement() === 'right' ? 'enter' : 'void'\"\n [@scaleYMotion]=\"thyPlacement() === 'top' || thyPlacement() === 'bottom' ? 'enter' : 'void'\"\n [@scaleMotion]=\"\n thyPlacement() !== 'left' && thyPlacement() !== 'right' && thyPlacement() !== 'top' && thyPlacement() !== 'bottom' ? 'enter' : 'void'\n \"\n class=\"thy-time-picker-container\">\n <!-- Compatible for overlay that not support offset dynamically and immediately -->\n <thy-time-picker-panel\n [ngClass]=\"thyPopupClass()\"\n [(ngModel)]=\"value\"\n [thyFormat]=\"thyFormat()\"\n [thyHourStep]=\"thyHourStep()\"\n [thyMinuteStep]=\"thyMinuteStep()\"\n [thySecondStep]=\"thySecondStep()\"\n [thyShowSelectNow]=\"thyShowSelectNow()\"\n (ngModelChange)=\"onPickTimeConfirm($event)\"\n (thyPickChange)=\"onPickTime($event)\"\n (thyClosePanel)=\"closeOverlay()\"></thy-time-picker-panel>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { FormsModule } from '@angular/forms';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyInnerTimePicker } from './inner/inner-time-picker.component';\nimport { TimePickerConfig } from './inner/inner-time-picker.config';\nimport { ThyTimePickerStore } from './inner/inner-time-picker.store';\nimport { ThyTimePanel } from './time-picker-panel.component';\nimport { ThyTimePicker } from './time-picker.component';\n\nconst COMPONENTS = [ThyInnerTimePicker, ThyTimePicker, ThyTimePanel];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ThySharedModule,\n ThyIconModule,\n ThyInputModule,\n OverlayModule,\n ThyPopoverModule,\n ThyButtonModule,\n ...COMPONENTS\n ],\n exports: [...COMPONENTS],\n providers: [TimePickerConfig, ThyTimePickerStore]\n})\nexport class ThyTimePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-time-picker.mjs","sources":["../../../src/time-picker/time-picker.utils.ts","../../../src/time-picker/time-picker-controls.util.ts","../../../src/time-picker/inner/inner-time-picker.config.ts","../../../src/time-picker/inner/inner-time-picker.store.ts","../../../src/time-picker/inner/inner-time-picker.component.ts","../../../src/time-picker/inner/inner-time-picker.component.html","../../../src/time-picker/time-picker-panel.component.ts","../../../src/time-picker/time-picker-panel.component.html","../../../src/time-picker/time-picker.component.ts","../../../src/time-picker/time-picker.component.html","../../../src/time-picker/time-picker.module.ts","../../../src/time-picker/ngx-tethys-time-picker.ts"],"sourcesContent":["import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { isFunction, TinyDate } from 'ngx-tethys/util';\nimport { Time, TimePickerComponentState } from './inner/inner-time-picker.class';\n\nconst hoursPerDay = 24;\nconst hoursPerDayHalf = 12;\nconst minutesPerHour = 60;\nconst secondsPerMinute = 60;\n\nexport function isValidDate(value?: string | Date): boolean {\n if (!value) {\n return false;\n }\n\n if (value instanceof Date && isNaN(value.getHours())) {\n return false;\n }\n\n if (typeof value === 'string') {\n return isValidDate(new TinyDate(value)?.nativeDate);\n }\n\n return true;\n}\n\nexport function isValidLimit(controls: TimePickerComponentState, newDate: Date): boolean {\n const min = isFunction(controls.min) ? controls.min() : controls.min;\n const max = isFunction(controls.max) ? controls.max() : controls.max;\n if (min && newDate < min) {\n return false;\n }\n\n if (max && newDate > max) {\n return false;\n }\n\n return true;\n}\n\nexport function parseHours(value: string | number, isPM = false): number {\n const hour = coerceNumberProperty(value);\n if (isNaN(hour) || hour < 0 || hour > (isPM ? hoursPerDayHalf : hoursPerDay)) {\n return NaN;\n }\n\n return hour;\n}\n\nexport function parseMinutes(value: string | number): number {\n const minute = coerceNumberProperty(value);\n if (isNaN(minute) || minute < 0 || minute > minutesPerHour) {\n return NaN;\n }\n\n return minute;\n}\n\nexport function parseSeconds(value: string | number): number {\n const seconds = coerceNumberProperty(value);\n if (isNaN(seconds) || seconds < 0 || seconds > secondsPerMinute) {\n return NaN;\n }\n\n return seconds;\n}\n\nexport function parseTime(value: string | Date, timeZone?: string): Date {\n if (typeof value === 'string') {\n return new TinyDate(value, timeZone)?.nativeDate;\n } else if (value instanceof TinyDate) {\n return value?.nativeDate;\n } else {\n return new TinyDate(value, timeZone)?.nativeDate;\n }\n}\n\nexport function changeTime(value: Date, diff: Time, timeZone?: string): Date {\n if (!value) {\n return changeTime(createDate(new TinyDate(undefined, timeZone)?.nativeDate, 0, 0, 0), diff, timeZone);\n }\n\n let hour = value.getHours();\n let minutes = value.getMinutes();\n let seconds = value.getSeconds();\n\n if (diff.hour) {\n hour = (hour + coerceNumberProperty(diff.hour)) % hoursPerDay;\n if (hour < 0) {\n hour += hoursPerDay;\n }\n }\n\n if (diff.minute) {\n minutes = minutes + coerceNumberProperty(diff.minute);\n }\n\n if (diff.seconds) {\n seconds = seconds + coerceNumberProperty(diff.seconds);\n }\n\n return createDate(value, hour, minutes, seconds, timeZone);\n}\n\nexport function setTime(value: Date, opts: Time, timeZone?: string): Date {\n let hour = parseHours(opts.hour);\n const minute = parseMinutes(opts.minute);\n const seconds = parseSeconds(opts.seconds) || 0;\n\n if (opts.isPM && hour !== 12) {\n hour += hoursPerDayHalf;\n }\n\n if (!value) {\n if (!isNaN(hour) && !isNaN(minute)) {\n return createDate(new TinyDate(undefined, timeZone)?.nativeDate, hour, minute, seconds, timeZone);\n }\n\n return value;\n }\n\n if (isNaN(hour) || isNaN(minute)) {\n return value;\n }\n\n return createDate(value, hour, minute, seconds, timeZone);\n}\n\nexport function createDate(value: Date, hours: number, minutes: number, seconds: number, timeZone?: string): Date {\n return new TinyDate(value, timeZone).setHours(hours).setMinutes(minutes).setSeconds(seconds).nativeDate;\n}\n\nexport function padNumber(value: number): string {\n const _value = value.toString();\n if (_value.length > 1) {\n return _value;\n }\n\n return `0${_value}`;\n}\n\nexport function isHourInputValid(hours: string, isPM: boolean): boolean {\n return !isNaN(parseHours(hours, isPM));\n}\n\nexport function isMinuteInputValid(minutes: string): boolean {\n return !isNaN(parseMinutes(minutes));\n}\n\nexport function isSecondInputValid(seconds: string): boolean {\n return !isNaN(parseSeconds(seconds));\n}\n\nexport function isInputLimitValid(diff: Time, max: Date, min: Date, timeZone?: string): boolean {\n const newDate = setTime(new TinyDate(undefined, timeZone)?.nativeDate, diff, timeZone);\n\n if (max && newDate > max) {\n return false;\n }\n\n if (min && newDate < min) {\n return false;\n }\n\n return true;\n}\n\nexport function isInputValid(hours: string, minutes = '0', seconds = '0', isPM: boolean): boolean {\n return isHourInputValid(hours, isPM) && isMinuteInputValid(minutes) && isSecondInputValid(seconds);\n}\n","import { TimeChangeEvent, TimePickerComponentState, TimePickerControls } from './inner/inner-time-picker.class';\nimport { changeTime } from './time-picker.utils';\n\nexport function canChangeValue(state: TimePickerComponentState, event?: TimeChangeEvent): boolean {\n const mousewheel = state.mousewheel();\n const arrowKeys = state.arrowKeys();\n const readonlyInput = state.readonlyInput();\n const disabled = state.disabled();\n\n if (readonlyInput || disabled) {\n return false;\n }\n\n if (event) {\n if (event.source === 'wheel' && !mousewheel) {\n return false;\n }\n\n if (event.source === 'key' && !arrowKeys) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function canChangeHours(event: TimeChangeEvent, controls: TimePickerControls): boolean {\n if (!event.step) {\n return false;\n }\n\n if (event.step > 0 && !controls.canIncrementHours) {\n return false;\n }\n\n if (event.step < 0 && !controls.canDecrementHours) {\n return false;\n }\n\n return true;\n}\n\nexport function canChangeMinutes(event: TimeChangeEvent, controls: TimePickerControls): boolean {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementMinutes) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementMinutes) {\n return false;\n }\n\n return true;\n}\n\nexport function canChangeSeconds(event: TimeChangeEvent, controls: TimePickerControls): boolean {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementSeconds) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementSeconds) {\n return false;\n }\n\n return true;\n}\n\nexport function getControlsValue(state: TimePickerComponentState): TimePickerComponentState {\n const {\n hourStep,\n minuteStep,\n secondsStep,\n readonlyInput,\n disabled,\n mousewheel,\n arrowKeys,\n showSpinners,\n showMeridian,\n showSeconds,\n meridians,\n min,\n max\n } = state;\n\n return {\n hourStep,\n minuteStep,\n secondsStep,\n readonlyInput,\n disabled,\n mousewheel,\n arrowKeys,\n showSpinners,\n showMeridian,\n showSeconds,\n meridians,\n min,\n max\n };\n}\n\nexport function timePickerControls(value: Date, state: TimePickerComponentState): TimePickerControls {\n const hoursPerDayHalf = 12;\n const min = state.min();\n const max = state.max();\n const hourStep = state.hourStep();\n const minuteStep = state.minuteStep();\n const secondsStep = state.secondsStep();\n const showSeconds = state.showSeconds();\n\n const res: TimePickerControls = {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n\n canToggleMeridian: true\n };\n\n if (!value) {\n return res;\n }\n\n // compare dates\n if (max) {\n const _newHour = changeTime(value, { hour: hourStep });\n res.canIncrementHours = max > _newHour;\n\n if (!res.canIncrementHours) {\n const _newMinutes = changeTime(value, { minute: minuteStep });\n res.canIncrementMinutes = showSeconds ? max > _newMinutes : max >= _newMinutes;\n }\n\n if (!res.canIncrementMinutes) {\n const _newSeconds = changeTime(value, { seconds: secondsStep });\n res.canIncrementSeconds = max >= _newSeconds;\n }\n\n if (value.getHours() < hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, { hour: hoursPerDayHalf }) < max;\n }\n }\n\n if (min) {\n const _newHour = changeTime(value, { hour: -hourStep });\n res.canDecrementHours = min < _newHour;\n\n if (!res.canDecrementHours) {\n const _newMinutes = changeTime(value, { minute: -minuteStep });\n res.canDecrementMinutes = showSeconds ? min < _newMinutes : min <= _newMinutes;\n }\n\n if (!res.canDecrementMinutes) {\n const _newSeconds = changeTime(value, { seconds: -secondsStep });\n res.canDecrementSeconds = min <= _newSeconds;\n }\n\n if (value.getHours() >= hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, { hour: -hoursPerDayHalf }) > min;\n }\n }\n\n return res;\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class TimePickerConfig {\n /** hours change step */\n hourStep = 1;\n /** hours change step */\n minuteStep = 5;\n /** seconds changes step */\n secondsStep = 10;\n /** if true works in 12H mode and displays AM/PM. If false works in 24H mode and hides AM/PM */\n showMeridian = true;\n /** meridian labels based on locale */\n meridians = ['AM', 'PM'];\n /** if true hours and minutes fields will be readonly */\n readonlyInput = false;\n /** if true hours and minutes fields will be disabled */\n disabled = false;\n /** if true scroll inside hours and minutes inputs will change time */\n mousewheel = true;\n /** if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard */\n arrowKeys = true;\n /** if true spinner arrows above and below the inputs will be shown */\n showSpinners = true;\n /** show seconds in timePicker */\n showSeconds = false;\n /** show minutes in timePicker */\n showMinutes = true;\n /** minimum time user can select */\n min: Date;\n /** maximum time user can select */\n max: Date;\n /** placeholder for hours field in timePicker */\n hoursPlaceholder = 'HH';\n /** placeholder for minutes field in timePicker */\n minutesPlaceholder = 'MM';\n /** placeholder for seconds field in timePicker */\n secondsPlaceholder = 'SS';\n}\n","import { Injectable } from '@angular/core';\nimport { MiniAction, MiniStore } from 'ngx-tethys/core';\nimport { isFunction, TinyDate } from 'ngx-tethys/util';\nimport { canChangeHours, canChangeMinutes, canChangeSeconds, canChangeValue, timePickerControls } from '../time-picker-controls.util';\nimport { changeTime, isValidLimit, setTime } from '../time-picker.utils';\nimport { Time, TimeChangeEvent, TimePickerComponentState, TimePickerControls } from './inner-time-picker.class';\nimport { TimePickerConfig } from './inner-time-picker.config';\n\nexport interface TimePickerState {\n value: Date;\n config: TimePickerComponentState;\n controls: TimePickerControls;\n}\n\nexport const initialState: TimePickerState = {\n value: null,\n config: new TimePickerConfig() as unknown as TimePickerComponentState,\n controls: {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n\n canToggleMeridian: true\n }\n};\n\n/**\n * @internal\n */\n@Injectable()\nexport class ThyTimePickerStore extends MiniStore<TimePickerState> {\n constructor() {\n super();\n this.initialize(initialState);\n }\n\n @MiniAction()\n writeValue(value: Date) {\n if (value?.getTime() !== this.snapshot.value?.getTime()) {\n this.setState({ value: value });\n }\n }\n\n @MiniAction()\n changeHours(event: TimeChangeEvent, timeZone?: string) {\n const state = this.snapshot;\n if (!canChangeValue(state.config, event) || !canChangeHours(event, state.controls)) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { hour: event.step }, timeZone);\n const max = state.config.max();\n const min = state.config.min();\n if ((max || min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n this.setState({ value: _newTime });\n }\n\n @MiniAction()\n changeMinutes(event: TimeChangeEvent, timeZone?: string) {\n const state = this.snapshot;\n if (!canChangeValue(state.config, event) || !canChangeMinutes(event, state.controls)) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { minute: event.step }, timeZone);\n\n const max = state.config.max();\n const min = state.config.min();\n\n if ((max || min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n this.setState({ value: _newTime });\n }\n\n @MiniAction()\n changeSeconds(event: TimeChangeEvent, timeZone?: string) {\n const state = this.snapshot;\n if (!canChangeValue(state.config, event) || !canChangeSeconds(event, state.controls)) {\n return state;\n }\n\n const _newTime = changeTime(\n state.value,\n {\n seconds: event.step\n },\n timeZone\n );\n\n const max = state.config.max();\n const min = state.config.min();\n\n if ((max || min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n this.setState({ value: _newTime });\n }\n\n @MiniAction()\n setTime(value: Time, timeZone?: string) {\n const state = this.snapshot;\n if (!canChangeValue(state.config)) {\n return state;\n }\n\n const _newTime = setTime(state.value, value, timeZone);\n this.setState({ value: _newTime });\n }\n\n @MiniAction()\n updateControls(value: TimePickerComponentState, timeZone?: string) {\n const state = this.snapshot;\n const _newControlsState = timePickerControls(state.value, value);\n const _newState: TimePickerState = {\n value: state.value,\n config: value,\n controls: _newControlsState\n };\n\n const showMeridian = isFunction(state.config.showMeridian) ? state.config.showMeridian() : state.config.showMeridian;\n const newShowMeridian = isFunction(_newState.config.showMeridian) ? _newState.config.showMeridian() : _newState.config.showMeridian;\n if (showMeridian !== newShowMeridian) {\n if (state.value) {\n _newState.value = new TinyDate(state.value, timeZone)?.nativeDate;\n }\n }\n\n this.setState(_newState);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n forwardRef,\n inject,\n input,\n model,\n OnDestroy,\n output,\n StaticProvider\n} from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { getControlsValue } from '../time-picker-controls.util';\nimport { TimePickerConfig } from './inner-time-picker.config';\n\nimport { TimeChangeSource, TimePickerComponentState, TimePickerControls } from './inner-time-picker.class';\n\nimport {\n isHourInputValid,\n isInputLimitValid,\n isInputValid,\n isMinuteInputValid,\n isSecondInputValid,\n isValidDate,\n padNumber,\n parseTime\n} from '../time-picker.utils';\n\nimport { Subscription } from 'rxjs';\n\nimport { ThyTimePickerStore } from './inner-time-picker.store';\n\nexport const TIMEPICKER_CONTROL_VALUE_ACCESSOR: StaticProvider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyInnerTimePicker),\n multi: true\n};\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-inner-time-picker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TIMEPICKER_CONTROL_VALUE_ACCESSOR, ThyTimePickerStore],\n templateUrl: './inner-time-picker.component.html',\n imports: []\n})\nexport class ThyInnerTimePicker implements ControlValueAccessor, TimePickerComponentState, TimePickerControls, OnDestroy {\n private _cd = inject(ChangeDetectorRef);\n private _store = inject(ThyTimePickerStore);\n private _config = inject(TimePickerConfig);\n\n /** hours change step */\n readonly hourStep = input<number>(this._config.hourStep);\n /** minutes change step */\n readonly minuteStep = input<number>(this._config.minuteStep);\n /** seconds change step */\n readonly secondsStep = input<number>(this._config.secondsStep);\n /** if true hours and minutes fields will be readonly */\n readonly readonlyInput = input<boolean>(this._config.readonlyInput);\n /** if true hours and minutes fields will be disabled */\n readonly disabled = model<boolean>(this._config.disabled);\n /** if true scroll inside hours and minutes inputs will change time */\n readonly mousewheel = input<boolean>(this._config.mousewheel);\n /** if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard */\n readonly arrowKeys = input<boolean>(this._config.arrowKeys);\n /** if true spinner arrows above and below the inputs will be shown */\n readonly showSpinners = input<boolean>(this._config.showSpinners);\n /** if true meridian button will be shown */\n readonly showMeridian = input<boolean>(this._config.showMeridian);\n /** show minutes in timePicker */\n readonly showMinutes = input<boolean>(this._config.showMinutes);\n /** show seconds in timePicker */\n readonly showSeconds = input<boolean>(this._config.showSeconds);\n /** meridian labels based on locale */\n readonly meridians = input<string[]>(this._config.meridians);\n /** minimum time user can select */\n readonly min = input<Date>(this._config.min);\n /** maximum time user can select */\n readonly max = input<Date>(this._config.max);\n /** placeholder for hours field in timePicker */\n readonly hoursPlaceholder = input<string>(this._config.hoursPlaceholder);\n /** placeholder for minutes field in timePicker */\n readonly minutesPlaceholder = input<string>(this._config.minutesPlaceholder);\n /** placeholder for seconds field in timePicker */\n readonly secondsPlaceholder = input<string>(this._config.secondsPlaceholder);\n /** timezone */\n readonly timeZone = input<string>();\n\n /** emits true if value is a valid date */\n readonly isValid = output<boolean>();\n\n readonly isEditable = computed(() => !(this.readonlyInput() || this.disabled()));\n\n readonly isPM = computed(() => this.showMeridian() && this.meridian === this.meridians()[1]);\n\n // ui variables\n hours: string;\n minutes: string;\n seconds: string;\n meridian: string;\n\n // min/max validation for input fields\n invalidHours = false;\n invalidMinutes = false;\n invalidSeconds = false;\n\n // time picker controls state\n canIncrementHours: boolean;\n canIncrementMinutes: boolean;\n canIncrementSeconds: boolean;\n\n canDecrementHours: boolean;\n canDecrementMinutes: boolean;\n canDecrementSeconds: boolean;\n\n canToggleMeridian: boolean;\n\n // control value accessor methods\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n private timerPickerSubscription = new Subscription();\n\n constructor() {\n const _cd = this._cd;\n const _store = this._store;\n\n this.timerPickerSubscription.add(\n _store\n .select(state => state.value)\n .subscribe((value: Date) => {\n // update UI values if date changed\n this._renderTime(value);\n this.onChange(value);\n this._store.updateControls(getControlsValue(this), this.timeZone());\n })\n );\n\n this.timerPickerSubscription.add(\n _store\n .select(state => state.controls)\n .subscribe((controlsState: TimePickerControls) => {\n this.isValid.emit(isInputValid(this.hours, this.minutes, this.seconds, this.isPM()));\n Object.assign(this, controlsState);\n _cd.markForCheck();\n })\n );\n }\n\n resetValidation(): void {\n this.invalidHours = false;\n this.invalidMinutes = false;\n this.invalidSeconds = false;\n }\n\n prevDef($event: Event) {\n $event.preventDefault();\n }\n\n wheelSign($event: WheelEventInit): number {\n return Math.sign($event.deltaY) * -1;\n }\n\n changeHours(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.changeHours({ step, source }, this.timeZone());\n }\n\n changeMinutes(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.changeMinutes({ step, source }, this.timeZone());\n }\n\n changeSeconds(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.changeSeconds({ step, source }, this.timeZone());\n }\n\n updateHours(hours: string): void {\n this.resetValidation();\n this.hours = hours;\n\n const isValid = isHourInputValid(this.hours, this.isPM()) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidHours = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n updateMinutes(minutes: string) {\n this.resetValidation();\n this.minutes = minutes;\n\n const isValid = isMinuteInputValid(this.minutes) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidMinutes = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n updateSeconds(seconds: string) {\n this.resetValidation();\n this.seconds = seconds;\n\n const isValid = isSecondInputValid(this.seconds) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidSeconds = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n isValidLimit(): boolean {\n return isInputLimitValid(\n {\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n },\n this.max(),\n this.min(),\n this.timeZone()\n );\n }\n\n _updateTime() {\n const _seconds = this.showSeconds() ? this.seconds : void 0;\n const _minutes = this.showMinutes() ? this.minutes : void 0;\n if (!isInputValid(this.hours, _minutes, _seconds, this.isPM())) {\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._store.setTime(\n {\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n },\n this.timeZone()\n );\n }\n\n toggleMeridian(): void {\n if (!this.showMeridian() || !this.isEditable()) {\n return;\n }\n\n const _hoursPerDayHalf = 12;\n this._store.changeHours({\n step: _hoursPerDayHalf,\n source: ''\n });\n }\n\n writeValue(obj: string | null | undefined | Date): void {\n if (isValidDate(obj)) {\n this._store.writeValue(parseTime(obj, this.timeZone()));\n } else if (obj == null) {\n this._store.writeValue(null);\n }\n }\n\n registerOnChange(fn: (_: any) => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n this._cd.markForCheck();\n }\n\n ngOnDestroy(): void {\n this.timerPickerSubscription.unsubscribe();\n }\n\n private _renderTime(value: string | Date): void {\n if (!isValidDate(value)) {\n this.hours = '';\n this.minutes = '';\n this.seconds = '';\n this.meridian = this.meridians()[0];\n\n return;\n }\n\n const _value = parseTime(value, this.timeZone());\n const _hoursPerDayHalf = 12;\n let _hours = _value.getHours();\n\n if (this.showMeridian()) {\n this.meridian = this.meridians()[_hours >= _hoursPerDayHalf ? 1 : 0];\n _hours = _hours % _hoursPerDayHalf;\n // should be 12 PM, not 00 PM\n if (_hours === 0) {\n _hours = _hoursPerDayHalf;\n }\n }\n\n this.hours = padNumber(_hours);\n this.minutes = padNumber(_value.getMinutes());\n this.seconds = padNumber(_value.getUTCSeconds());\n }\n}\n","<table>\n <tbody>\n <tr class=\"text-center\" [hidden]=\"!showSpinners()\">\n <!-- increment hours button-->\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementHours || !isEditable()\" (click)=\"changeHours(hourStep())\"\n ><span class=\"thy-chevron thy-chevron-up\"></span\n ></a>\n </td>\n <!-- divider -->\n @if (showMinutes()) {\n <td> </td>\n }\n <!-- increment minutes button -->\n @if (showMinutes()) {\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementMinutes || !isEditable()\" (click)=\"changeMinutes(minuteStep())\"\n ><span class=\"thy-chevron thy-chevron-up\"></span\n ></a>\n </td>\n }\n <!-- divider -->\n @if (showSeconds()) {\n <td> </td>\n }\n <!-- increment seconds button -->\n @if (showSeconds()) {\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementSeconds || !isEditable()\" (click)=\"changeSeconds(secondsStep())\">\n <span class=\"thy-chevron thy-chevron-up\"></span>\n </a>\n </td>\n }\n <!-- space between -->\n @if (showMeridian()) {\n <td> </td>\n }\n <!-- meridian placeholder-->\n @if (showMeridian()) {\n <td></td>\n }\n </tr>\n <tr>\n <!-- hours -->\n <td class=\"form-group\" [class.has-error]=\"invalidHours\">\n <input\n type=\"text\"\n [class.is-invalid]=\"invalidHours\"\n class=\"form-control text-center thy-time-picker-field\"\n [placeholder]=\"hoursPlaceholder()\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput()\"\n [disabled]=\"disabled()\"\n [value]=\"hours\"\n (wheel)=\"prevDef($event); changeHours(hourStep() * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeHours(hourStep(), 'key')\"\n (keydown.ArrowDown)=\"changeHours(-hourStep(), 'key')\"\n (change)=\"updateHours($event.target.value)\" />\n </td>\n\n <!-- divider -->\n @if (showMinutes()) {\n <td> : </td>\n }\n <!-- minutes -->\n @if (showMinutes()) {\n <td class=\"form-group\" [class.has-error]=\"invalidMinutes\">\n <input\n type=\"text\"\n [class.is-invalid]=\"invalidMinutes\"\n class=\"form-control text-center thy-time-picker-field\"\n [placeholder]=\"minutesPlaceholder()\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput()\"\n [disabled]=\"disabled()\"\n [value]=\"minutes\"\n (wheel)=\"prevDef($event); changeMinutes(minuteStep() * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeMinutes(minuteStep(), 'key')\"\n (keydown.ArrowDown)=\"changeMinutes(-minuteStep(), 'key')\"\n (change)=\"updateMinutes($event.target.value)\" />\n </td>\n }\n <!-- divider -->\n @if (showSeconds()) {\n <td> : </td>\n }\n <!-- seconds -->\n @if (showSeconds()) {\n <td class=\"form-group\" [class.has-error]=\"invalidSeconds\">\n <input\n type=\"text\"\n [class.is-invalid]=\"invalidSeconds\"\n class=\"form-control text-center thy-time-picker-field\"\n [placeholder]=\"secondsPlaceholder()\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput()\"\n [disabled]=\"disabled()\"\n [value]=\"seconds\"\n (wheel)=\"prevDef($event); changeSeconds(secondsStep() * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeSeconds(secondsStep(), 'key')\"\n (keydown.ArrowDown)=\"changeSeconds(-secondsStep(), 'key')\"\n (change)=\"updateSeconds($event.target.value)\" />\n </td>\n }\n <!-- space between -->\n @if (showMeridian()) {\n <td> </td>\n }\n <!-- meridian -->\n @if (showMeridian()) {\n <td>\n <button\n type=\"button\"\n class=\"btn btn-default text-center\"\n [disabled]=\"!isEditable() || !canToggleMeridian\"\n [class.disabled]=\"!isEditable() || !canToggleMeridian\"\n (click)=\"toggleMeridian()\">\n {{ meridian }}\n </button>\n </td>\n }\n </tr>\n <tr class=\"text-center\" [hidden]=\"!showSpinners()\">\n <!-- decrement hours button-->\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementHours || !isEditable()\" (click)=\"changeHours(-hourStep())\">\n <span class=\"thy-chevron thy-chevron-down\"></span>\n </a>\n </td>\n <!-- divider -->\n @if (showMinutes()) {\n <td> </td>\n }\n <!-- decrement minutes button-->\n @if (showMinutes()) {\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementMinutes || !isEditable()\" (click)=\"changeMinutes(-minuteStep())\">\n <span class=\"thy-chevron thy-chevron-down\"></span>\n </a>\n </td>\n }\n <!-- divider -->\n @if (showSeconds()) {\n <td> </td>\n }\n <!-- decrement seconds button-->\n @if (showSeconds()) {\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementSeconds || !isEditable()\" (click)=\"changeSeconds(-secondsStep())\">\n <span class=\"thy-chevron thy-chevron-down\"></span>\n </a>\n </td>\n }\n <!-- space between -->\n @if (showMeridian()) {\n <td> </td>\n }\n <!-- meridian placeholder-->\n @if (showMeridian()) {\n <td></td>\n }\n </tr>\n </tbody>\n</table>\n","import { DecimalPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n output,\n Signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyButton } from 'ngx-tethys/button';\nimport { reqAnimFrame } from 'ngx-tethys/core';\nimport { injectLocale, ThyTimePickerLocale } from 'ngx-tethys/i18n';\nimport { coerceBooleanProperty, isValid, TinyDate } from 'ngx-tethys/util';\n\n/**\n * 时间选择面板组件\n * @name thy-time-picker-panel\n */\n@Component({\n selector: 'thy-time-picker-panel',\n templateUrl: './time-picker-panel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyTimePanel)\n }\n ],\n host: {\n class: 'thy-time-picker-panel',\n '[class.thy-time-picker-panel-has-bottom-operation]': `thyShowOperations()`,\n '[class.thy-time-picker-panel-columns-2]': `showColumnCount() === 2`,\n '[class.thy-time-picker-panel-columns-3]': `showColumnCount() === 3`\n },\n imports: [ThyButton, DecimalPipe]\n})\nexport class ThyTimePanel implements OnInit, OnDestroy, ControlValueAccessor {\n private cdr = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n locale: Signal<ThyTimePickerLocale> = injectLocale('timePicker');\n\n readonly hourListRef = viewChild<ElementRef<HTMLElement>>('hourListElement');\n\n readonly minuteListRef = viewChild<ElementRef<HTMLElement>>('minuteListElement');\n\n readonly secondListRef = viewChild<ElementRef<HTMLElement>>('secondListElement');\n\n /**\n * 展示的日期格式,支持 'HH:mm:ss' | 'HH:mm' | 'mm:ss'\n * @type string\n * @default HH:mm:ss\n */\n readonly thyFormat = input<string>('HH:mm:ss');\n\n /**\n * 小时间隔步长\n * @type number\n */\n readonly thyHourStep = input<number>(1);\n\n /**\n * 分钟间隔步长\n * @type number\n */\n readonly thyMinuteStep = input<number>(1);\n\n /**\n * 秒间隔步长\n * @type number\n */\n readonly thySecondStep = input<number>(1);\n\n /**\n * 展示选择此刻\n * @type boolean\n */\n readonly thyShowSelectNow = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 展示底部操作\n * @type boolean\n */\n readonly thyShowOperations = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 选择时间触发的事件\n * @type EventEmitter<Date>\n */\n readonly thyPickChange = output<Date>();\n\n /**\n * 关闭面板事件\n * @type EventEmitter<void>\n */\n readonly thyClosePanel = output<void>();\n\n // margin-top + 1px border\n SCROLL_OFFSET_SPACING = 5;\n\n SCROLL_DEFAULT_DURATION = 120;\n\n prefixCls = 'thy-time-picker-panel';\n\n hourRange: ReadonlyArray<{ value: number; disabled: boolean }> = [];\n\n minuteRange: ReadonlyArray<{ value: number; disabled: boolean }> = [];\n\n secondRange: ReadonlyArray<{ value: number; disabled: boolean }> = [];\n\n public readonly showHourColumn = computed(() => {\n const format = this.thyFormat();\n if (format) {\n return new Set(format).has('H') || new Set(format).has('h');\n }\n return true;\n });\n\n public readonly showMinuteColumn = computed(() => {\n const format = this.thyFormat();\n if (format) {\n return new Set(format).has('m');\n }\n return true;\n });\n\n public readonly showSecondColumn = computed(() => {\n const format = this.thyFormat();\n if (format) {\n return new Set(format).has('s');\n }\n return true;\n });\n\n readonly showColumnCount = computed(() => {\n const showHour = this.showHourColumn();\n const showMinute = this.showMinuteColumn();\n const showSecond = this.showSecondColumn();\n return [showHour, showMinute, showSecond].filter(m => m).length || 3;\n });\n\n value: Date;\n\n hour: number;\n\n minute: number;\n\n second: number;\n\n initialScrollPosition: boolean;\n\n onValueChangeFn: (val: Date) => void = () => void 0;\n\n onTouchedFn: () => void = () => void 0;\n\n constructor() {}\n\n ngOnInit(): void {\n this.generateTimeRange();\n this.initialValue();\n setTimeout(() => {\n this.initialScrollPosition = true;\n });\n }\n\n generateTimeRange() {\n this.hourRange = this.buildTimeRange(24, this.thyHourStep());\n this.minuteRange = this.buildTimeRange(60, this.thyMinuteStep());\n this.secondRange = this.buildTimeRange(60, this.thySecondStep());\n }\n\n pickHours(hours: { value: number; disabled: boolean }, index: number) {\n this.value.setHours(hours.value);\n this.hour = hours.value;\n this.thyPickChange.emit(this.value);\n this.scrollTo(this.hourListRef().nativeElement, index);\n }\n\n pickMinutes(minutes: { value: number; disabled: boolean }, index: number) {\n this.value.setMinutes(minutes.value);\n this.minute = minutes.value;\n this.thyPickChange.emit(this.value);\n this.scrollTo(this.minuteListRef().nativeElement, index);\n }\n\n pickSeconds(seconds: { value: number; disabled: boolean }, index: number) {\n this.value.setSeconds(seconds.value);\n this.second = seconds.value;\n this.thyPickChange.emit(this.value);\n this.scrollTo(this.secondListRef().nativeElement, index);\n }\n\n selectNow() {\n this.value = new TinyDate()?.nativeDate;\n this.setHMSProperty();\n this.thyPickChange.emit(this.value);\n this.thyClosePanel.emit();\n }\n\n confirmPickTime() {\n this.onValueChangeFn(this.value || new TinyDate()?.nativeDate);\n this.thyClosePanel.emit();\n }\n\n scrollTo(container: HTMLElement, index: number = 0, duration: number = this.SCROLL_DEFAULT_DURATION) {\n const offsetTop = (container.children[index] as HTMLElement).offsetTop - this.SCROLL_OFFSET_SPACING;\n this.runScrollAnimationFrame(container, offsetTop, duration);\n }\n\n writeValue(value: Date | number): void {\n if (value && isValid(value)) {\n this.value = new TinyDate(value)?.nativeDate;\n this.setHMSProperty();\n } else {\n this.initialValue();\n }\n this.autoScroll(this.initialScrollPosition ? this.SCROLL_DEFAULT_DURATION : 0);\n\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: (value: Date) => void): void {\n this.onValueChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = fn;\n }\n\n private initialValue() {\n this.hour = 0;\n this.minute = 0;\n this.second = 0;\n this.value = new TinyDate().setHms(0, 0, 0).nativeDate;\n }\n\n private buildTimeRange(length: number, step: number = 1, start: number = 0, disables: number[] = []) {\n return new Array(Math.ceil(length / step)).fill(0).map((_, i) => {\n const value = (i + start) * step;\n return {\n value: value,\n disabled: disables.indexOf(value) > -1\n };\n });\n }\n\n private setHMSProperty() {\n this.hour = this.value.getHours();\n this.minute = this.value.getMinutes();\n this.second = this.value.getSeconds();\n }\n\n private resetScrollPosition() {\n const hourListRef = this.hourListRef();\n if (hourListRef) {\n hourListRef.nativeElement.scrollTop = 0;\n }\n const minuteListRef = this.minuteListRef();\n if (minuteListRef) {\n minuteListRef.nativeElement.scrollTop = 0;\n }\n const secondListRef = this.secondListRef();\n if (secondListRef) {\n secondListRef.nativeElement.scrollTop = 0;\n }\n this.initialScrollPosition = false;\n }\n\n private runScrollAnimationFrame(container: HTMLElement, to: number, duration: number = this.SCROLL_DEFAULT_DURATION) {\n if (duration <= 0) {\n container.scrollTop = to;\n return;\n }\n const offset = to - container.scrollTop;\n const frame = (offset / duration) * 10;\n this.ngZone.runOutsideAngular(() => {\n reqAnimFrame(() => {\n container.scrollTop += frame;\n if (container.scrollTop === to) {\n return;\n }\n this.runScrollAnimationFrame(container, to, duration - 10);\n });\n });\n }\n\n private autoScroll(duration: number = this.SCROLL_DEFAULT_DURATION) {\n const hourListRef = this.hourListRef();\n if (hourListRef) {\n this.scrollTo(\n hourListRef.nativeElement,\n this.hourRange.findIndex(m => m.value === this.hour),\n duration\n );\n }\n const minuteListRef = this.minuteListRef();\n if (minuteListRef) {\n this.scrollTo(\n minuteListRef.nativeElement,\n this.minuteRange.findIndex(m => m.value === this.minute),\n duration\n );\n }\n const secondListRef = this.secondListRef();\n if (secondListRef) {\n this.scrollTo(\n secondListRef.nativeElement,\n this.secondRange.findIndex(m => m.value === this.second),\n duration\n );\n }\n }\n\n ngOnDestroy(): void {\n // 关闭面板时有 0.2s 的动画,所以延迟 200ms 再重置滚动位置\n setTimeout(() => {\n this.resetScrollPosition();\n }, 200);\n }\n}\n","<div class=\"{{ prefixCls }}-content\">\n @if (showHourColumn()) {\n <ul #hourListElement class=\"{{ prefixCls }}-time-column {{ prefixCls }}-hour-column\">\n @for (time of hourRange; track $index; let i = $index) {\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"hour === time.value\"\n (click)=\"pickHours(time, i)\">\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n }\n </ul>\n }\n @if (showMinuteColumn()) {\n <ul #minuteListElement class=\"{{ prefixCls }}-time-column {{ prefixCls }}-minute-column\">\n @for (time of minuteRange; track $index; let i = $index) {\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"minute === time.value\"\n (click)=\"pickMinutes(time, i)\">\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n }\n </ul>\n }\n @if (showSecondColumn()) {\n <ul #secondListElement class=\"{{ prefixCls }}-time-column {{ prefixCls }}-second-column\">\n @for (time of secondRange; track $index; let i = $index) {\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"second === time.value\"\n (click)=\"pickSeconds(time, i)\">\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n }\n </ul>\n }\n</div>\n\n@if (thyShowOperations()) {\n <div class=\"{{ prefixCls }}-bottom-operation\">\n @if (thyShowSelectNow()) {\n <a href=\"javascript:;\" class=\"{{ prefixCls }}-time-now\" (click)=\"selectNow()\">{{ locale().now }}</a>\n }\n <button class=\"{{ prefixCls }}-time-confirm\" thyButton=\"primary\" thySize=\"xs\" class=\"confirm\" (click)=\"confirmPickTime()\">\n {{ locale().ok }}\n </button>\n </div>\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n effect,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n input,\n model,\n OnInit,\n output,\n Signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getFlexiblePositions, scaleMotion, scaleXMotion, scaleYMotion, ThyPlacement } from 'ngx-tethys/core';\nimport { injectLocale, ThyTimePickerLocale } from 'ngx-tethys/i18n';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyInputDirective } from 'ngx-tethys/input';\nimport { coerceBooleanProperty, isValid, TinyDate } from 'ngx-tethys/util';\nimport { ThyTimePanel } from './time-picker-panel.component';\n\nexport type TimePickerSize = 'xs' | 'sm' | 'md' | 'lg' | 'default';\n\n/**\n * 时间选择组件\n * @name thy-time-picker\n */\n@Component({\n selector: 'thy-time-picker',\n templateUrl: './time-picker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyTimePicker)\n }\n ],\n host: {\n class: 'thy-time-picker',\n '[class.thy-time-picker-disabled]': `thyDisabled()`,\n '[class.thy-time-picker-readonly]': `thyReadonly()`\n },\n imports: [CdkOverlayOrigin, ThyInputDirective, FormsModule, NgTemplateOutlet, ThyIcon, NgClass, CdkConnectedOverlay, ThyTimePanel],\n animations: [scaleXMotion, scaleYMotion, scaleMotion]\n})\nexport class ThyTimePicker implements OnInit, AfterViewInit, ControlValueAccessor {\n private cdr = inject(ChangeDetectorRef);\n private elementRef = inject(ElementRef);\n locale: Signal<ThyTimePickerLocale> = injectLocale('timePicker');\n\n readonly cdkConnectedOverlay = viewChild(CdkConnectedOverlay);\n\n readonly origin = viewChild<CdkOverlayOrigin>('origin');\n\n readonly inputRef = viewChild<ElementRef<HTMLInputElement>>('pickerInput');\n\n readonly overlayContainer = viewChild<ElementRef<HTMLElement>>('overlayContainer');\n\n /**\n * 输入框大小\n * @type 'xs' | 'sm' | 'md' | 'lg' | 'default'\n */\n readonly thySize = input<TimePickerSize>('default');\n\n /**\n * 输入框提示文字\n * @type string\n */\n readonly thyPlaceholder = input<string>(this.locale().placeholder);\n\n /**\n * 弹出位置\n * @type 'top' | 'topLeft'| 'topRight' | 'bottom' | 'bottomLeft' | 'bottomRight' | 'left' | 'leftTop' | 'leftBottom' | 'right' | 'rightTop' | 'rightBottom'\n */\n readonly thyPlacement = input<ThyPlacement>('bottomLeft');\n\n /**\n * 展示的日期格式,支持 'HH:mm:ss' | 'HH:mm' | 'mm:ss'\n * @type string\n * @default HH:mm:ss\n */\n readonly thyFormat = input<string, string>('HH:mm:ss', { transform: (value: string) => value || 'HH:mm:ss' });\n\n /**\n * 小时间隔步长\n * @type number\n */\n readonly thyHourStep = input<number>(1);\n\n /**\n * 分钟间隔步长\n * @type number\n */\n readonly thyMinuteStep = input<number>(1);\n\n /**\n * 秒间隔步长\n * @type number\n */\n readonly thySecondStep = input<number>(1);\n\n /**\n * 弹出层组件 class\n * @type string\n */\n readonly thyPopupClass = input<string>();\n\n /**\n * 是否显示弹出层遮罩\n * @type boolean\n * @default false\n */\n readonly thyBackdrop = input<boolean, unknown>(false, { transform: coerceBooleanProperty });\n\n /**\n * 禁用\n * @type boolean\n * @default false\n */\n readonly thyDisabled = model<boolean>(false);\n\n /**\n * 只读\n * @type boolean\n * @default false\n */\n readonly thyReadonly = input<boolean, unknown>(false, { transform: coerceBooleanProperty });\n\n /**\n * 展示选择此刻\n * @type boolean\n */\n readonly thyShowSelectNow = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 可清空值\n * @type boolean\n */\n readonly thyAllowClear = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 打开/关闭弹窗事件\n * @type EventEmitter<boolean>\n */\n readonly thyOpenChange = output<boolean>();\n\n prefixCls = 'thy-time-picker';\n\n overlayPositions: ConnectionPositionPair[] = getFlexiblePositions(this.thyPlacement(), 4);\n\n readonly showText = model<string>('');\n\n openState: boolean;\n\n value: Date = new TinyDate().setHms(0, 0, 0).nativeDate;\n\n originValue: Date;\n\n keepFocus: boolean;\n\n private isDisabledFirstChange = true;\n\n onValueChangeFn: (val: number | Date) => void = () => void 0;\n\n onTouchedFn: () => void = () => void 0;\n\n constructor() {\n effect(() => {\n if (this.thyFormat() && this.value && isValid(this.value)) {\n this.showText.set(new TinyDate(this.value).format(this.thyFormat()));\n }\n });\n }\n\n ngOnInit() {}\n\n ngAfterViewInit() {\n this.overlayPositions = getFlexiblePositions(this.thyPlacement(), 4);\n }\n\n onInputPickerClick() {\n if (this.disabledUserOperation()) {\n return;\n }\n this.openOverlay();\n }\n\n onInputPickerBlur() {\n if (this.keepFocus) {\n this.focus();\n } else {\n if (this.openState) {\n this.closeOverlay();\n }\n }\n }\n\n onPickTime(value: Date) {\n this.originValue = new TinyDate(value)?.nativeDate;\n this.setValue(value);\n this.emitValue();\n }\n\n onPickTimeConfirm(value: Date) {\n this.originValue = new TinyDate(value)?.nativeDate;\n this.confirmValue(value);\n }\n\n onClearTime(e: Event) {\n e.stopPropagation();\n this.originValue = null;\n this.setValue(null);\n this.emitValue();\n }\n\n onCustomizeInput(value: string) {\n this.formatInputValue(value);\n this.cdr.detectChanges();\n }\n\n onKeyupEnter() {\n this.confirmValue(this.value);\n this.closeOverlay();\n }\n\n onKeyupEsc() {\n this.closeOverlay();\n }\n\n onPositionChange(e: Event) {\n this.cdr.detectChanges();\n }\n\n onClickBackdrop() {\n this.closeOverlay();\n }\n\n onOverlayDetach() {\n this.closeOverlay();\n }\n\n onOutsideClick(event: Event) {\n if (\n this.openState &&\n !this.elementRef.nativeElement.contains(event.target) &&\n !this.overlayContainer().nativeElement.contains(event.target as Node)\n ) {\n this.closeOverlay();\n this.cdr.detectChanges();\n }\n }\n\n onOverlayAttach() {\n const cdkConnectedOverlay = this.cdkConnectedOverlay();\n if (cdkConnectedOverlay && cdkConnectedOverlay.overlayRef) {\n cdkConnectedOverlay.overlayRef.updatePosition();\n }\n }\n\n openOverlay() {\n if (this.disabledUserOperation()) {\n return;\n }\n this.keepFocus = true;\n this.openState = true;\n this.thyOpenChange.emit(this.openState);\n }\n\n closeOverlay() {\n if (this.openState) {\n this.keepFocus = false;\n this.openState = false;\n this.blur();\n if (this.showText()?.length) {\n if (!this.validateCustomizeInput(this.showText())) {\n this.setValue(this.originValue);\n } else {\n this.showText.set(new TinyDate(this.value).format(this.thyFormat()));\n }\n } else {\n if (!this.thyAllowClear()) {\n this.setValue(this.originValue);\n }\n }\n this.thyOpenChange.emit(this.openState);\n }\n }\n\n focus() {\n const inputRef = this.inputRef();\n if (inputRef) {\n inputRef.nativeElement.focus();\n }\n }\n\n blur() {\n const inputRef = this.inputRef();\n if (inputRef) {\n inputRef.nativeElement.blur();\n }\n }\n\n writeValue(value: Date | number): void {\n if (value && isValid(value)) {\n this.originValue = new TinyDate(value)?.nativeDate;\n this.setValue(new TinyDate(value).nativeDate);\n } else {\n this.value = new TinyDate().setHms(0, 0, 0).nativeDate;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onValueChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.thyDisabled.set((this.isDisabledFirstChange && this.thyDisabled()) || isDisabled);\n this.isDisabledFirstChange = false;\n }\n\n private setValue(value: Date, formatText: boolean = true) {\n if (value && isValid(value)) {\n this.value = new TinyDate(value)?.nativeDate;\n if (formatText) {\n this.showText.set(new TinyDate(this.value).format(this.thyFormat()));\n }\n } else {\n this.value = null;\n this.showText.set('');\n }\n this.cdr.markForCheck();\n }\n\n private confirmValue(value: Date) {\n this.setValue(value);\n this.emitValue();\n this.cdr.markForCheck();\n }\n\n private emitValue() {\n if (this.onValueChangeFn) {\n this.onValueChangeFn(this.value);\n }\n if (this.onTouchedFn) {\n this.onTouchedFn();\n }\n }\n\n private formatInputValue(value: string) {\n if (!this.openState) {\n this.openOverlay();\n }\n if (value?.length) {\n if (this.validateCustomizeInput(value)) {\n const formatter = value.split(':');\n const hour = formatter[0] || 0;\n const minute = formatter[1] || 0;\n const second = formatter[2] || 0;\n this.setValue(new TinyDate().setHms(+hour, +minute, +second).nativeDate, false);\n this.originValue = new TinyDate(this.value)?.nativeDate;\n this.emitValue();\n }\n } else {\n if (this.thyAllowClear()) {\n this.originValue = null;\n this.setValue(null);\n this.emitValue();\n } else {\n this.value = new TinyDate(this.originValue)?.nativeDate;\n this.showText.set('');\n this.cdr.markForCheck();\n }\n }\n }\n\n private validateCustomizeInput(value: string): boolean {\n let valid: boolean = false;\n if (value.length > this.thyFormat().length) {\n return valid;\n }\n const formatRule = this.thyFormat().split(':');\n const formatter = value.split(':');\n valid = !formatRule\n .map((m, i) => {\n return !!formatter[i];\n })\n .includes(false);\n return valid;\n }\n\n private disabledUserOperation() {\n return this.thyDisabled() || this.thyReadonly();\n }\n}\n","<span cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" (click)=\"onInputPickerClick()\" class=\"{{ prefixCls }}-wrapper\">\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control {{ prefixCls }}-input\"\n [class.thy-input-disabled]=\"thyDisabled()\"\n [class.thy-input-readonly]=\"thyReadonly()\"\n [class.thy-time-picker-panel-opened]=\"openState\"\n [(ngModel)]=\"showText\"\n [thySize]=\"thySize()\"\n [disabled]=\"thyDisabled()\"\n [readonly]=\"thyReadonly()\"\n [placeholder]=\"thyPlaceholder()\"\n (blur)=\"onInputPickerBlur()\"\n (keyup.enter)=\"onKeyupEnter()\"\n (keyup.escape)=\"onKeyupEsc()\"\n (ngModelChange)=\"onCustomizeInput($event)\" />\n <ng-container *ngTemplateOutlet=\"rightIcon\"></ng-container>\n </ng-container>\n</span>\n\n<ng-template #rightIcon>\n @if (!thyDisabled() && thyAllowClear() && !thyReadonly() && showText()) {\n <span class=\"{{ prefixCls }}-clear\">\n <thy-icon\n thyIconName=\"close-circle-bold-fill\"\n (click)=\"onClearTime($event)\"\n ngClass=\"remove-link remove-link-{{ thySize() }}\"></thy-icon>\n </span>\n }\n <span class=\"{{ prefixCls }}-icon\">\n <thy-icon [thyIconName]=\"'clock-circle-moment'\" ngClass=\"remove-link-{{ thySize() }}\"></thy-icon>\n </span>\n</ng-template>\n\n<!-- Overlay -->\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"openState\"\n [cdkConnectedOverlayHasBackdrop]=\"thyBackdrop()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlayTransformOriginOn=\".thy-time-picker-container\"\n (positionChange)=\"onPositionChange($event)\"\n (backdropClick)=\"onClickBackdrop()\"\n (overlayOutsideClick)=\"onOutsideClick($event)\"\n (detach)=\"onOverlayDetach()\"\n (attach)=\"onOverlayAttach()\">\n <div\n #overlayContainer\n style=\"position: relative\"\n [@scaleXMotion]=\"thyPlacement() === 'left' || thyPlacement() === 'right' ? 'enter' : 'void'\"\n [@scaleYMotion]=\"thyPlacement() === 'top' || thyPlacement() === 'bottom' ? 'enter' : 'void'\"\n [@scaleMotion]=\"\n thyPlacement() !== 'left' && thyPlacement() !== 'right' && thyPlacement() !== 'top' && thyPlacement() !== 'bottom' ? 'enter' : 'void'\n \"\n class=\"thy-time-picker-container\">\n <!-- Compatible for overlay that not support offset dynamically and immediately -->\n <thy-time-picker-panel\n [ngClass]=\"thyPopupClass()\"\n [(ngModel)]=\"value\"\n [thyFormat]=\"thyFormat()\"\n [thyHourStep]=\"thyHourStep()\"\n [thyMinuteStep]=\"thyMinuteStep()\"\n [thySecondStep]=\"thySecondStep()\"\n [thyShowSelectNow]=\"thyShowSelectNow()\"\n (ngModelChange)=\"onPickTimeConfirm($event)\"\n (thyPickChange)=\"onPickTime($event)\"\n (thyClosePanel)=\"closeOverlay()\"></thy-time-picker-panel>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { FormsModule } from '@angular/forms';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyInnerTimePicker } from './inner/inner-time-picker.component';\nimport { TimePickerConfig } from './inner/inner-time-picker.config';\nimport { ThyTimePickerStore } from './inner/inner-time-picker.store';\nimport { ThyTimePanel } from './time-picker-panel.component';\nimport { ThyTimePicker } from './time-picker.component';\n\nconst COMPONENTS = [ThyInnerTimePicker, ThyTimePicker, ThyTimePanel];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ThySharedModule,\n ThyIconModule,\n ThyInputModule,\n OverlayModule,\n ThyPopoverModule,\n ThyButtonModule,\n ...COMPONENTS\n ],\n exports: [...COMPONENTS],\n providers: [TimePickerConfig, ThyTimePickerStore]\n})\nexport class ThyTimePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|