@colijnit/corecomponents_v12 261.1.1 → 261.20.1
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/{fesm2015/colijnit-corecomponents_v12.js → fesm2022/colijnit-corecomponents_v12.mjs} +20197 -15310
- package/fesm2022/colijnit-corecomponents_v12.mjs.map +1 -0
- package/index.d.ts +3985 -0
- package/lib/components/popup/popup-message-display.component.scss +0 -2
- package/lib/components/scroll-container/style/_layout.scss +68 -0
- package/lib/components/scroll-container/style/_material-definition.scss +0 -0
- package/lib/components/scroll-container/style/_theme.scss +4 -0
- package/lib/components/scroll-container/style/material.scss +4 -0
- package/package.json +17 -13
- package/bundles/colijnit-corecomponents_v12.umd.js +0 -16057
- package/bundles/colijnit-corecomponents_v12.umd.js.map +0 -1
- package/colijnit-corecomponents_v12-261.1.0.tgz +0 -0
- package/colijnit-corecomponents_v12.d.ts +0 -45
- package/colijnit-corecomponents_v12.metadata.json +0 -1
- package/esm2015/colijnit-corecomponents_v12.js +0 -46
- package/esm2015/lib/components/article-tile/article-tile.component.js +0 -81
- package/esm2015/lib/components/article-tile/article-tile.module.js +0 -35
- package/esm2015/lib/components/base/base-input.component.js +0 -849
- package/esm2015/lib/components/base/base.module.js +0 -22
- package/esm2015/lib/components/base/commit-buttons/commit-buttons.component.js +0 -103
- package/esm2015/lib/components/base/commit-buttons/commit-buttons.module.js +0 -21
- package/esm2015/lib/components/base/dialog-base.component.js +0 -6
- package/esm2015/lib/components/base-input-date-picker/base-input-date-picker.directive.js +0 -25
- package/esm2015/lib/components/base-input-time/base-input-time-directive.js +0 -25
- package/esm2015/lib/components/button/button.component.js +0 -79
- package/esm2015/lib/components/button/button.module.js +0 -19
- package/esm2015/lib/components/calendar/calendar-template.component.js +0 -404
- package/esm2015/lib/components/calendar/calendar.component.js +0 -46
- package/esm2015/lib/components/calendar/calendar.module.js +0 -30
- package/esm2015/lib/components/card/card.component.js +0 -72
- package/esm2015/lib/components/card/card.module.js +0 -35
- package/esm2015/lib/components/carousel/carousel.component.js +0 -130
- package/esm2015/lib/components/carousel/carousel.module.js +0 -32
- package/esm2015/lib/components/carousel-3d/carousel-3d.component.js +0 -315
- package/esm2015/lib/components/carousel-3d/carousel-3d.module.js +0 -19
- package/esm2015/lib/components/carousel-3d/carouselItem.js +0 -54
- package/esm2015/lib/components/checkmark-overlay/checkmark-overlay.component.js +0 -87
- package/esm2015/lib/components/checkmark-overlay/checkmark-overlay.module.js +0 -19
- package/esm2015/lib/components/co-dialog/co-dialog.component.js +0 -113
- package/esm2015/lib/components/co-dialog/co-dialog.module.js +0 -19
- package/esm2015/lib/components/co-dialog-wizard/co-dialog-wizard.component.js +0 -51
- package/esm2015/lib/components/co-dialog-wizard/co-dialog-wizard.module.js +0 -17
- package/esm2015/lib/components/collapsible/collapsible.component.js +0 -92
- package/esm2015/lib/components/collapsible/collapsible.module.js +0 -19
- package/esm2015/lib/components/color-picker/color-picker.component.js +0 -41
- package/esm2015/lib/components/color-picker/color-picker.module.js +0 -21
- package/esm2015/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.js +0 -79
- package/esm2015/lib/components/core-dialog/core-dialog.module.js +0 -39
- package/esm2015/lib/components/core-dialog/core-dialog.service.js +0 -67
- package/esm2015/lib/components/core-dialog/core-dynamic-component.service.js +0 -93
- package/esm2015/lib/components/double-calendar/double-calendar.component.js +0 -112
- package/esm2015/lib/components/double-calendar/double-calendar.module.js +0 -25
- package/esm2015/lib/components/filter-item/filter-item-viewmodel.js +0 -13
- package/esm2015/lib/components/filter-item/filter-item.component.js +0 -1019
- package/esm2015/lib/components/filter-item/filter-item.module.js +0 -43
- package/esm2015/lib/components/filter-item/filter-viewmodel.js +0 -11
- package/esm2015/lib/components/form/form.component.js +0 -184
- package/esm2015/lib/components/form/form.module.js +0 -23
- package/esm2015/lib/components/grid-toolbar/grid-toolbar.component.js +0 -57
- package/esm2015/lib/components/grid-toolbar/grid-toolbar.module.js +0 -23
- package/esm2015/lib/components/grid-toolbar-button/grid-toolbar-button.component.js +0 -28
- package/esm2015/lib/components/grid-toolbar-button/grid-toolbar-button.module.js +0 -19
- package/esm2015/lib/components/hour-scheduling/components/hour-scheduling-test-object/hour-scheduling-test-object.component.js +0 -22
- package/esm2015/lib/components/hour-scheduling/hour-scheduling.component.js +0 -276
- package/esm2015/lib/components/hour-scheduling/hour-scheduling.module.js +0 -23
- package/esm2015/lib/components/hour-scheduling/model/enum/scheduling-object.interface.js +0 -2
- package/esm2015/lib/components/hour-scheduling-expandable/components/hour-scheduling-expandable-template/hour-scheduling-expandable-template.component.js +0 -111
- package/esm2015/lib/components/hour-scheduling-expandable/components/hour-scheduling-expandable-template/hour-scheduling-expandable-template.module.js +0 -20
- package/esm2015/lib/components/hour-scheduling-expandable/hour-scheduling-expandable.component.js +0 -337
- package/esm2015/lib/components/hour-scheduling-expandable/hour-scheduling-expandable.module.js +0 -24
- package/esm2015/lib/components/icon/icon-cache.service.js +0 -52
- package/esm2015/lib/components/icon/icon.component.js +0 -48
- package/esm2015/lib/components/icon/icon.module.js +0 -25
- package/esm2015/lib/components/icon-collapse-handle/icon-collapse-handle.component.js +0 -64
- package/esm2015/lib/components/icon-collapse-handle/icon-collapse-handle.module.js +0 -23
- package/esm2015/lib/components/image/image.component.js +0 -42
- package/esm2015/lib/components/image/image.module.js +0 -14
- package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +0 -79
- package/esm2015/lib/components/input-checkbox/input-checkbox.module.js +0 -19
- package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +0 -145
- package/esm2015/lib/components/input-date-picker/input-date-picker.module.js +0 -28
- package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.component.js +0 -178
- package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.module.js +0 -27
- package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +0 -320
- package/esm2015/lib/components/input-number-picker/input-number-picker.module.js +0 -23
- package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +0 -84
- package/esm2015/lib/components/input-radio-button/input-radio-button.module.js +0 -19
- package/esm2015/lib/components/input-scanner/bar-code-scanner.js +0 -36
- package/esm2015/lib/components/input-scanner/input-scanner.component.js +0 -94
- package/esm2015/lib/components/input-scanner/input-scanner.module.js +0 -21
- package/esm2015/lib/components/input-scanner/scanner.service.js +0 -28
- package/esm2015/lib/components/input-search/input-search.component.js +0 -92
- package/esm2015/lib/components/input-search/input-search.module.js +0 -21
- package/esm2015/lib/components/input-text/input-text.component.js +0 -381
- package/esm2015/lib/components/input-text/input-text.module.js +0 -33
- package/esm2015/lib/components/input-textarea/input-textarea.component.js +0 -78
- package/esm2015/lib/components/input-textarea/input-textarea.module.js +0 -27
- package/esm2015/lib/components/input-time/input-time.component.js +0 -74
- package/esm2015/lib/components/input-time/input-time.module.js +0 -24
- package/esm2015/lib/components/level-indicator/level-indicator-level.enum.js +0 -7
- package/esm2015/lib/components/level-indicator/level-indicator.component.js +0 -36
- package/esm2015/lib/components/level-indicator/level-indicator.module.js +0 -15
- package/esm2015/lib/components/list-of-icons/list-of-icons.component.js +0 -98
- package/esm2015/lib/components/list-of-icons/list-of-icons.module.js +0 -27
- package/esm2015/lib/components/list-of-values/list-of-values-multiselect-popup.component.js +0 -112
- package/esm2015/lib/components/list-of-values/list-of-values-popup.component.js +0 -321
- package/esm2015/lib/components/list-of-values/list-of-values.component.js +0 -344
- package/esm2015/lib/components/list-of-values/list-of-values.module.js +0 -39
- package/esm2015/lib/components/loader/loader.component.js +0 -84
- package/esm2015/lib/components/loader/loader.module.js +0 -19
- package/esm2015/lib/components/pagination/paginate.pipe.js +0 -99
- package/esm2015/lib/components/pagination/pagination-instance.js +0 -2
- package/esm2015/lib/components/pagination/pagination.component.js +0 -126
- package/esm2015/lib/components/pagination/pagination.module.js +0 -28
- package/esm2015/lib/components/pagination/pagination.service.js +0 -88
- package/esm2015/lib/components/pagination-bar/pagination-bar.component.js +0 -151
- package/esm2015/lib/components/pagination-bar/pagination-bar.module.js +0 -19
- package/esm2015/lib/components/popup/const/popup-window-token.js +0 -3
- package/esm2015/lib/components/popup/interface/popup-button.js +0 -8
- package/esm2015/lib/components/popup/interface/popup-close-event.js +0 -2
- package/esm2015/lib/components/popup/interface/popup-settings.js +0 -42
- package/esm2015/lib/components/popup/interface/popup.js +0 -2
- package/esm2015/lib/components/popup/model/popup-button-globals.js +0 -11
- package/esm2015/lib/components/popup/model/popup-window.js +0 -38
- package/esm2015/lib/components/popup/popup-buttons.component.js +0 -53
- package/esm2015/lib/components/popup/popup-message-display.component.js +0 -48
- package/esm2015/lib/components/popup/popup-window-shell.component.js +0 -159
- package/esm2015/lib/components/popup/popup.module.js +0 -49
- package/esm2015/lib/components/popup/service/popup-shower.service.js +0 -90
- package/esm2015/lib/components/popup/service/prompt.service.js +0 -127
- package/esm2015/lib/components/popup/text-input-popup.component.js +0 -36
- package/esm2015/lib/components/responsive-text/responsive-text.component.js +0 -24
- package/esm2015/lib/components/responsive-text/responsive-text.module.js +0 -19
- package/esm2015/lib/components/simple-grid/base-simple-grid.component.js +0 -193
- package/esm2015/lib/components/simple-grid/simple-grid-cell.component.js +0 -172
- package/esm2015/lib/components/simple-grid/simple-grid-column.directive.js +0 -113
- package/esm2015/lib/components/simple-grid/simple-grid.component.js +0 -773
- package/esm2015/lib/components/simple-grid/simple-grid.module.js +0 -47
- package/esm2015/lib/components/tile/tile.component.js +0 -73
- package/esm2015/lib/components/tile/tile.module.js +0 -23
- package/esm2015/lib/components/tile-select/tile-select.component.js +0 -36
- package/esm2015/lib/components/tile-select/tile-select.module.js +0 -21
- package/esm2015/lib/components/tooltip/tooltip.component.js +0 -95
- package/esm2015/lib/components/tooltip/tooltip.module.js +0 -19
- package/esm2015/lib/components/validation-error/validation-error.component.js +0 -38
- package/esm2015/lib/components/validation-error/validation-error.module.js +0 -25
- package/esm2015/lib/components/view-mode-buttons/content-view-mode.enum.js +0 -11
- package/esm2015/lib/components/view-mode-buttons/view-mode-buttons.component.js +0 -64
- package/esm2015/lib/components/view-mode-buttons/view-mode-buttons.module.js +0 -21
- package/esm2015/lib/core/constant/default-upper-bound-for-range-components.js +0 -4
- package/esm2015/lib/core/constant/java-max-int.js +0 -2
- package/esm2015/lib/core/constant/number-inputs-key-down-white-list.js +0 -45
- package/esm2015/lib/core/decorator/input-boolean.decorator.js +0 -34
- package/esm2015/lib/core/enum/co-direction.js +0 -9
- package/esm2015/lib/core/enum/co-document-type.enum.js +0 -11
- package/esm2015/lib/core/enum/co-orientation.js +0 -17
- package/esm2015/lib/core/enum/core-components-icon.enum.js +0 -307
- package/esm2015/lib/core/enum/file-type-internal.enum.js +0 -17
- package/esm2015/lib/core/enum/file-type.enum.js +0 -11
- package/esm2015/lib/core/enum/filterItem-mode.enum.js +0 -49
- package/esm2015/lib/core/enum/input-number-picker-show-mode.enum.js +0 -8
- package/esm2015/lib/core/enum/keyboard-code.enum.js +0 -74
- package/esm2015/lib/core/enum/keyboard-key.enum.js +0 -76
- package/esm2015/lib/core/enum/popup-button-type.enum.js +0 -12
- package/esm2015/lib/core/enum/popup-type.enum.js +0 -11
- package/esm2015/lib/core/function/any-nill.function.js +0 -6
- package/esm2015/lib/core/function/is-nill.function.js +0 -5
- package/esm2015/lib/core/function/none-nill.function.js +0 -17
- package/esm2015/lib/core/function/not-nill.function.js +0 -5
- package/esm2015/lib/core/model/bounds-constrained-number-value.js +0 -171
- package/esm2015/lib/core/model/check-precision-and-scale-result.js +0 -2
- package/esm2015/lib/core/model/check-within-stepped-bounds-result.js +0 -2
- package/esm2015/lib/core/model/core-components-icon-svg.js +0 -306
- package/esm2015/lib/core/model/element-position.js +0 -10
- package/esm2015/lib/core/model/event/string-prompt-result-event.js +0 -8
- package/esm2015/lib/core/service/form-input-user-change-listener.service.js +0 -25
- package/esm2015/lib/core/service/form-master.service.js +0 -102
- package/esm2015/lib/core/service/ng-zone-wrapper.service.js +0 -20
- package/esm2015/lib/core/utils/array-utils.js +0 -264
- package/esm2015/lib/core/utils/browser-utils.js +0 -100
- package/esm2015/lib/core/utils/direction-enum-utils.js +0 -14
- package/esm2015/lib/core/utils/event-utils.js +0 -53
- package/esm2015/lib/core/utils/file-utils.js +0 -267
- package/esm2015/lib/core/utils/number-utils.js +0 -309
- package/esm2015/lib/core/utils/object-utils.js +0 -186
- package/esm2015/lib/core/utils/string-utils.js +0 -94
- package/esm2015/lib/core/validator/email.validator.js +0 -6
- package/esm2015/lib/core/validator/equal.validator.js +0 -11
- package/esm2015/lib/core/validator/max-string-length.validator.js +0 -10
- package/esm2015/lib/core/validator/password.validator.js +0 -31
- package/esm2015/lib/core/validator/precision-scale.validator.js +0 -11
- package/esm2015/lib/core/validator/required.validator.js +0 -5
- package/esm2015/lib/directives/clickoutside/click-outside-master.service.js +0 -57
- package/esm2015/lib/directives/clickoutside/click-outside.directive.js +0 -71
- package/esm2015/lib/directives/clickoutside/clickoutside.module.js +0 -19
- package/esm2015/lib/directives/observe-visibility/observe-visibility.directive.js +0 -53
- package/esm2015/lib/directives/observe-visibility/observe-visibility.module.js +0 -15
- package/esm2015/lib/directives/overlay/overlay-parent.directive.js +0 -19
- package/esm2015/lib/directives/overlay/overlay.directive.js +0 -161
- package/esm2015/lib/directives/overlay/overlay.module.js +0 -18
- package/esm2015/lib/directives/ripple/ripple-ref.js +0 -26
- package/esm2015/lib/directives/ripple/ripple-renderer.js +0 -160
- package/esm2015/lib/directives/ripple/ripple.directive.js +0 -80
- package/esm2015/lib/directives/ripple/ripple.module.js +0 -24
- package/esm2015/lib/directives/ripple/scroll-dispatcher.service.js +0 -108
- package/esm2015/lib/directives/ripple/scrollable.directive.js +0 -40
- package/esm2015/lib/directives/ripple/viewport-ruler.service.js +0 -73
- package/esm2015/lib/directives/screen-configuration/screen-configuration.directive.js +0 -159
- package/esm2015/lib/directives/screen-configuration/screen-configuration.module.js +0 -19
- package/esm2015/lib/directives/stopclick/stop-click.directive.js +0 -38
- package/esm2015/lib/directives/stopclick/stop-click.module.js +0 -15
- package/esm2015/lib/directives/template-wrapper/template-wrapper.directive.js +0 -68
- package/esm2015/lib/directives/template-wrapper/template-wrapper.module.js +0 -15
- package/esm2015/lib/directives/tooltip/tooltip-directive.module.js +0 -19
- package/esm2015/lib/directives/tooltip/tooltip.directive.js +0 -78
- package/esm2015/lib/interfaces/dialog-response.interface.js +0 -2
- package/esm2015/lib/interfaces/scanner-input.interface.js +0 -2
- package/esm2015/lib/interfaces/screen-config-adapter-component-interface-name.js +0 -4
- package/esm2015/lib/interfaces/screen-config-adapter.component.interface.js +0 -2
- package/esm2015/lib/model/enum/app-button-type.enum.js +0 -11
- package/esm2015/lib/model/enum/app-popup-type.enum.js +0 -8
- package/esm2015/lib/model/icon-list-item.js +0 -2
- package/esm2015/lib/pipes/append.pipe.js +0 -17
- package/esm2015/lib/pipes/append.pipe.module.js +0 -15
- package/esm2015/lib/pipes/filter.pipe.js +0 -16
- package/esm2015/lib/pipes/filter.pipe.module.js +0 -15
- package/esm2015/lib/pipes/prepend.pipe.js +0 -17
- package/esm2015/lib/pipes/prepend.pipe.module.js +0 -15
- package/esm2015/lib/pipes/price-display-pipe.module.js +0 -15
- package/esm2015/lib/pipes/price-display.pipe.js +0 -20
- package/esm2015/lib/service/base-module-screen-config.service.js +0 -205
- package/esm2015/lib/service/base-module.service.js +0 -42
- package/esm2015/lib/service/color-sequence.service.js +0 -49
- package/esm2015/lib/service/excel-export.service.js +0 -128
- package/esm2015/lib/service/overlay.service.js +0 -75
- package/esm2015/lib/translation/core-components-translation.module.js +0 -26
- package/esm2015/lib/translation/core-components-translation.service.js +0 -17
- package/esm2015/lib/translation/core-dictionary.service.js +0 -29
- package/esm2015/lib/translation/core-localize.pipe.js +0 -26
- package/esm2015/public-api.js +0 -142
- package/fesm2015/colijnit-corecomponents_v12.js.map +0 -1
- package/lib/components/article-tile/article-tile.component.d.ts +0 -22
- package/lib/components/article-tile/article-tile.module.d.ts +0 -2
- package/lib/components/base/base-input.component.d.ts +0 -189
- package/lib/components/base/base.module.d.ts +0 -2
- package/lib/components/base/commit-buttons/commit-buttons.component.d.ts +0 -21
- package/lib/components/base/commit-buttons/commit-buttons.module.d.ts +0 -2
- package/lib/components/base/dialog-base.component.d.ts +0 -4
- package/lib/components/base-input-date-picker/base-input-date-picker.directive.d.ts +0 -15
- package/lib/components/base-input-time/base-input-time-directive.d.ts +0 -14
- package/lib/components/button/button.component.d.ts +0 -31
- package/lib/components/button/button.module.d.ts +0 -2
- package/lib/components/calendar/calendar-template.component.d.ts +0 -70
- package/lib/components/calendar/calendar.component.d.ts +0 -13
- package/lib/components/calendar/calendar.module.d.ts +0 -2
- package/lib/components/card/card.component.d.ts +0 -23
- package/lib/components/card/card.module.d.ts +0 -2
- package/lib/components/carousel/carousel.component.d.ts +0 -23
- package/lib/components/carousel/carousel.module.d.ts +0 -6
- package/lib/components/carousel-3d/carousel-3d.component.d.ts +0 -55
- package/lib/components/carousel-3d/carousel-3d.module.d.ts +0 -2
- package/lib/components/carousel-3d/carouselItem.d.ts +0 -13
- package/lib/components/checkmark-overlay/checkmark-overlay.component.d.ts +0 -17
- package/lib/components/checkmark-overlay/checkmark-overlay.module.d.ts +0 -2
- package/lib/components/co-dialog/co-dialog.component.d.ts +0 -23
- package/lib/components/co-dialog/co-dialog.module.d.ts +0 -2
- package/lib/components/co-dialog-wizard/co-dialog-wizard.component.d.ts +0 -9
- package/lib/components/co-dialog-wizard/co-dialog-wizard.module.d.ts +0 -2
- package/lib/components/collapsible/collapsible.component.d.ts +0 -22
- package/lib/components/collapsible/collapsible.module.d.ts +0 -2
- package/lib/components/color-picker/color-picker.component.d.ts +0 -6
- package/lib/components/color-picker/color-picker.module.d.ts +0 -2
- package/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.d.ts +0 -20
- package/lib/components/core-dialog/core-dialog.module.d.ts +0 -4
- package/lib/components/core-dialog/core-dialog.service.d.ts +0 -15
- package/lib/components/core-dialog/core-dynamic-component.service.d.ts +0 -12
- package/lib/components/double-calendar/double-calendar.component.d.ts +0 -20
- package/lib/components/double-calendar/double-calendar.module.d.ts +0 -2
- package/lib/components/filter-item/filter-item-viewmodel.d.ts +0 -9
- package/lib/components/filter-item/filter-item.component.d.ts +0 -126
- package/lib/components/filter-item/filter-item.module.d.ts +0 -2
- package/lib/components/filter-item/filter-viewmodel.d.ts +0 -8
- package/lib/components/form/form.component.d.ts +0 -39
- package/lib/components/form/form.module.d.ts +0 -2
- package/lib/components/grid-toolbar/grid-toolbar.component.d.ts +0 -19
- package/lib/components/grid-toolbar/grid-toolbar.module.d.ts +0 -2
- package/lib/components/grid-toolbar-button/grid-toolbar-button.component.d.ts +0 -8
- package/lib/components/grid-toolbar-button/grid-toolbar-button.module.d.ts +0 -2
- package/lib/components/hour-scheduling/components/hour-scheduling-test-object/hour-scheduling-test-object.component.d.ts +0 -5
- package/lib/components/hour-scheduling/hour-scheduling.component.d.ts +0 -48
- package/lib/components/hour-scheduling/hour-scheduling.module.d.ts +0 -2
- package/lib/components/hour-scheduling/model/enum/scheduling-object.interface.d.ts +0 -10
- package/lib/components/hour-scheduling-expandable/components/hour-scheduling-expandable-template/hour-scheduling-expandable-template.component.d.ts +0 -23
- package/lib/components/hour-scheduling-expandable/components/hour-scheduling-expandable-template/hour-scheduling-expandable-template.module.d.ts +0 -2
- package/lib/components/hour-scheduling-expandable/hour-scheduling-expandable.component.d.ts +0 -78
- package/lib/components/hour-scheduling-expandable/hour-scheduling-expandable.module.d.ts +0 -2
- package/lib/components/icon/icon-cache.service.d.ts +0 -20
- package/lib/components/icon/icon.component.d.ts +0 -17
- package/lib/components/icon/icon.module.d.ts +0 -2
- package/lib/components/icon-collapse-handle/icon-collapse-handle.component.d.ts +0 -21
- package/lib/components/icon-collapse-handle/icon-collapse-handle.module.d.ts +0 -2
- package/lib/components/image/image.component.d.ts +0 -20
- package/lib/components/image/image.module.d.ts +0 -2
- package/lib/components/input-checkbox/input-checkbox.component.d.ts +0 -24
- package/lib/components/input-checkbox/input-checkbox.module.d.ts +0 -2
- package/lib/components/input-date-picker/input-date-picker.component.d.ts +0 -30
- package/lib/components/input-date-picker/input-date-picker.module.d.ts +0 -2
- package/lib/components/input-date-range-picker/input-date-range-picker.component.d.ts +0 -27
- package/lib/components/input-date-range-picker/input-date-range-picker.module.d.ts +0 -2
- package/lib/components/input-number-picker/input-number-picker.component.d.ts +0 -74
- package/lib/components/input-number-picker/input-number-picker.module.d.ts +0 -2
- package/lib/components/input-radio-button/input-radio-button.component.d.ts +0 -19
- package/lib/components/input-radio-button/input-radio-button.module.d.ts +0 -2
- package/lib/components/input-scanner/bar-code-scanner.d.ts +0 -10
- package/lib/components/input-scanner/input-scanner.component.d.ts +0 -29
- package/lib/components/input-scanner/input-scanner.module.d.ts +0 -2
- package/lib/components/input-scanner/scanner.service.d.ts +0 -11
- package/lib/components/input-search/input-search.component.d.ts +0 -22
- package/lib/components/input-search/input-search.module.d.ts +0 -2
- package/lib/components/input-text/input-text.component.d.ts +0 -78
- package/lib/components/input-text/input-text.module.d.ts +0 -2
- package/lib/components/input-textarea/input-textarea.component.d.ts +0 -19
- package/lib/components/input-textarea/input-textarea.module.d.ts +0 -2
- package/lib/components/input-time/input-time.component.d.ts +0 -8
- package/lib/components/input-time/input-time.module.d.ts +0 -2
- package/lib/components/level-indicator/level-indicator-level.enum.d.ts +0 -5
- package/lib/components/level-indicator/level-indicator.component.d.ts +0 -10
- package/lib/components/level-indicator/level-indicator.module.d.ts +0 -2
- package/lib/components/list-of-icons/list-of-icons.component.d.ts +0 -22
- package/lib/components/list-of-icons/list-of-icons.module.d.ts +0 -2
- package/lib/components/list-of-values/list-of-values-multiselect-popup.component.d.ts +0 -25
- package/lib/components/list-of-values/list-of-values-popup.component.d.ts +0 -58
- package/lib/components/list-of-values/list-of-values.component.d.ts +0 -63
- package/lib/components/list-of-values/list-of-values.module.d.ts +0 -2
- package/lib/components/loader/loader.component.d.ts +0 -3
- package/lib/components/loader/loader.module.d.ts +0 -2
- package/lib/components/pagination/paginate.pipe.d.ts +0 -15
- package/lib/components/pagination/pagination-instance.d.ts +0 -14
- package/lib/components/pagination/pagination.component.d.ts +0 -38
- package/lib/components/pagination/pagination.module.d.ts +0 -2
- package/lib/components/pagination/pagination.service.d.ts +0 -24
- package/lib/components/pagination-bar/pagination-bar.component.d.ts +0 -33
- package/lib/components/pagination-bar/pagination-bar.module.d.ts +0 -2
- package/lib/components/popup/const/popup-window-token.d.ts +0 -3
- package/lib/components/popup/interface/popup-button.d.ts +0 -8
- package/lib/components/popup/interface/popup-close-event.d.ts +0 -5
- package/lib/components/popup/interface/popup-settings.d.ts +0 -21
- package/lib/components/popup/interface/popup.d.ts +0 -9
- package/lib/components/popup/model/popup-button-globals.d.ts +0 -9
- package/lib/components/popup/model/popup-window.d.ts +0 -21
- package/lib/components/popup/popup-buttons.component.d.ts +0 -13
- package/lib/components/popup/popup-message-display.component.d.ts +0 -12
- package/lib/components/popup/popup-window-shell.component.d.ts +0 -42
- package/lib/components/popup/popup.module.d.ts +0 -4
- package/lib/components/popup/service/popup-shower.service.d.ts +0 -17
- package/lib/components/popup/service/prompt.service.d.ts +0 -17
- package/lib/components/popup/text-input-popup.component.d.ts +0 -12
- package/lib/components/responsive-text/responsive-text.component.d.ts +0 -4
- package/lib/components/responsive-text/responsive-text.module.d.ts +0 -2
- package/lib/components/simple-grid/base-simple-grid.component.d.ts +0 -59
- package/lib/components/simple-grid/simple-grid-cell.component.d.ts +0 -30
- package/lib/components/simple-grid/simple-grid-column.directive.d.ts +0 -43
- package/lib/components/simple-grid/simple-grid.component.d.ts +0 -87
- package/lib/components/simple-grid/simple-grid.module.d.ts +0 -2
- package/lib/components/tile/tile.component.d.ts +0 -16
- package/lib/components/tile/tile.module.d.ts +0 -2
- package/lib/components/tile-select/tile-select.component.d.ts +0 -8
- package/lib/components/tile-select/tile-select.module.d.ts +0 -2
- package/lib/components/tooltip/tooltip.component.d.ts +0 -23
- package/lib/components/tooltip/tooltip.module.d.ts +0 -2
- package/lib/components/validation-error/validation-error.component.d.ts +0 -12
- package/lib/components/validation-error/validation-error.module.d.ts +0 -2
- package/lib/components/view-mode-buttons/content-view-mode.enum.d.ts +0 -8
- package/lib/components/view-mode-buttons/view-mode-buttons.component.d.ts +0 -17
- package/lib/components/view-mode-buttons/view-mode-buttons.module.d.ts +0 -2
- package/lib/core/constant/default-upper-bound-for-range-components.d.ts +0 -2
- package/lib/core/constant/java-max-int.d.ts +0 -1
- package/lib/core/constant/number-inputs-key-down-white-list.d.ts +0 -2
- package/lib/core/decorator/input-boolean.decorator.d.ts +0 -8
- package/lib/core/enum/co-direction.d.ts +0 -6
- package/lib/core/enum/co-document-type.enum.d.ts +0 -5
- package/lib/core/enum/co-orientation.d.ts +0 -6
- package/lib/core/enum/core-components-icon.enum.d.ts +0 -305
- package/lib/core/enum/file-type-internal.enum.d.ts +0 -15
- package/lib/core/enum/file-type.enum.d.ts +0 -5
- package/lib/core/enum/filterItem-mode.enum.d.ts +0 -17
- package/lib/core/enum/input-number-picker-show-mode.enum.d.ts +0 -5
- package/lib/core/enum/keyboard-code.enum.d.ts +0 -71
- package/lib/core/enum/keyboard-key.enum.d.ts +0 -70
- package/lib/core/enum/popup-button-type.enum.d.ts +0 -9
- package/lib/core/enum/popup-type.enum.d.ts +0 -9
- package/lib/core/function/any-nill.function.d.ts +0 -1
- package/lib/core/function/is-nill.function.d.ts +0 -1
- package/lib/core/function/none-nill.function.d.ts +0 -1
- package/lib/core/function/not-nill.function.d.ts +0 -1
- package/lib/core/model/bounds-constrained-number-value.d.ts +0 -46
- package/lib/core/model/check-precision-and-scale-result.d.ts +0 -4
- package/lib/core/model/check-within-stepped-bounds-result.d.ts +0 -8
- package/lib/core/model/core-components-icon-svg.d.ts +0 -4
- package/lib/core/model/element-position.d.ts +0 -7
- package/lib/core/model/event/string-prompt-result-event.d.ts +0 -6
- package/lib/core/service/form-input-user-change-listener.service.d.ts +0 -10
- package/lib/core/service/form-master.service.d.ts +0 -26
- package/lib/core/service/ng-zone-wrapper.service.d.ts +0 -6
- package/lib/core/utils/array-utils.d.ts +0 -85
- package/lib/core/utils/browser-utils.d.ts +0 -15
- package/lib/core/utils/direction-enum-utils.d.ts +0 -5
- package/lib/core/utils/event-utils.d.ts +0 -12
- package/lib/core/utils/file-utils.d.ts +0 -29
- package/lib/core/utils/number-utils.d.ts +0 -89
- package/lib/core/utils/object-utils.d.ts +0 -31
- package/lib/core/utils/string-utils.d.ts +0 -25
- package/lib/core/validator/email.validator.d.ts +0 -2
- package/lib/core/validator/equal.validator.d.ts +0 -2
- package/lib/core/validator/max-string-length.validator.d.ts +0 -2
- package/lib/core/validator/password.validator.d.ts +0 -3
- package/lib/core/validator/precision-scale.validator.d.ts +0 -2
- package/lib/core/validator/required.validator.d.ts +0 -2
- package/lib/directives/clickoutside/click-outside-master.service.d.ts +0 -15
- package/lib/directives/clickoutside/click-outside.directive.d.ts +0 -18
- package/lib/directives/clickoutside/clickoutside.module.d.ts +0 -2
- package/lib/directives/observe-visibility/observe-visibility.directive.d.ts +0 -14
- package/lib/directives/observe-visibility/observe-visibility.module.d.ts +0 -2
- package/lib/directives/overlay/overlay-parent.directive.d.ts +0 -6
- package/lib/directives/overlay/overlay.directive.d.ts +0 -25
- package/lib/directives/overlay/overlay.module.d.ts +0 -2
- package/lib/directives/ripple/ripple-ref.d.ts +0 -21
- package/lib/directives/ripple/ripple-renderer.d.ts +0 -56
- package/lib/directives/ripple/ripple.directive.d.ts +0 -56
- package/lib/directives/ripple/ripple.module.d.ts +0 -2
- package/lib/directives/ripple/scroll-dispatcher.service.d.ts +0 -51
- package/lib/directives/ripple/scrollable.directive.d.ts +0 -20
- package/lib/directives/ripple/viewport-ruler.service.d.ts +0 -29
- package/lib/directives/screen-configuration/screen-configuration.directive.d.ts +0 -32
- package/lib/directives/screen-configuration/screen-configuration.module.d.ts +0 -2
- package/lib/directives/stopclick/stop-click.directive.d.ts +0 -10
- package/lib/directives/stopclick/stop-click.module.d.ts +0 -2
- package/lib/directives/template-wrapper/template-wrapper.directive.d.ts +0 -13
- package/lib/directives/template-wrapper/template-wrapper.module.d.ts +0 -2
- package/lib/directives/tooltip/tooltip-directive.module.d.ts +0 -2
- package/lib/directives/tooltip/tooltip.directive.d.ts +0 -20
- package/lib/interfaces/dialog-response.interface.d.ts +0 -6
- package/lib/interfaces/scanner-input.interface.d.ts +0 -3
- package/lib/interfaces/screen-config-adapter-component-interface-name.d.ts +0 -3
- package/lib/interfaces/screen-config-adapter.component.interface.d.ts +0 -14
- package/lib/model/enum/app-button-type.enum.d.ts +0 -9
- package/lib/model/enum/app-popup-type.enum.d.ts +0 -6
- package/lib/model/icon-list-item.d.ts +0 -7
- package/lib/pipes/append.pipe.d.ts +0 -4
- package/lib/pipes/append.pipe.module.d.ts +0 -2
- package/lib/pipes/filter.pipe.d.ts +0 -4
- package/lib/pipes/filter.pipe.module.d.ts +0 -2
- package/lib/pipes/prepend.pipe.d.ts +0 -4
- package/lib/pipes/prepend.pipe.module.d.ts +0 -2
- package/lib/pipes/price-display-pipe.module.d.ts +0 -2
- package/lib/pipes/price-display.pipe.d.ts +0 -4
- package/lib/service/base-module-screen-config.service.d.ts +0 -47
- package/lib/service/base-module.service.d.ts +0 -22
- package/lib/service/color-sequence.service.d.ts +0 -7
- package/lib/service/excel-export.service.d.ts +0 -45
- package/lib/service/overlay.service.d.ts +0 -13
- package/lib/translation/core-components-translation.module.d.ts +0 -4
- package/lib/translation/core-components-translation.service.d.ts +0 -6
- package/lib/translation/core-dictionary.service.d.ts +0 -12
- package/lib/translation/core-localize.pipe.d.ts +0 -7
- package/public-api.d.ts +0 -138
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
import { Component, forwardRef, HostBinding, Input, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME } from '../../interfaces/screen-config-adapter-component-interface-name';
|
|
3
|
-
import { OverlayService } from '../../service/overlay.service';
|
|
4
|
-
import { BaseInputDatePickerDirective } from "../base-input-date-picker/base-input-date-picker.directive";
|
|
5
|
-
import { DoubleCalendarComponent } from "../double-calendar/double-calendar.component";
|
|
6
|
-
export class InputDateRangePickerComponent extends BaseInputDatePickerDirective {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.EARLIEST_DATE = new Date(1900, 0, 1); // 1900-01-01
|
|
10
|
-
this.LATEST_DATE = new Date(2100, 11, 31); // 2100-12-31
|
|
11
|
-
this.firstDayOfWeek = '';
|
|
12
|
-
}
|
|
13
|
-
showClass() {
|
|
14
|
-
return true;
|
|
15
|
-
}
|
|
16
|
-
handleFirstInputClick(event) {
|
|
17
|
-
event.stopPropagation();
|
|
18
|
-
}
|
|
19
|
-
handleSecondInputClick(event) {
|
|
20
|
-
event.stopPropagation();
|
|
21
|
-
}
|
|
22
|
-
handleDatesSelected(dates) {
|
|
23
|
-
this.setModel(dates);
|
|
24
|
-
}
|
|
25
|
-
handleSecondDateSelected() {
|
|
26
|
-
if (this.closeAfterDateSelection) {
|
|
27
|
-
this.toggleCalendar();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
clearDate(index) {
|
|
31
|
-
this.model[index] = undefined;
|
|
32
|
-
}
|
|
33
|
-
toggleCalendar() {
|
|
34
|
-
if (this.readonly) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
this.showCalendar = !this.showCalendar;
|
|
38
|
-
if (this.showCalendar) {
|
|
39
|
-
this._doubleCalendarComponentRef = this.overlayService.createComponent(DoubleCalendarComponent, {
|
|
40
|
-
parentForOverlay: this.parentForOverlay,
|
|
41
|
-
selectedDates: this.model
|
|
42
|
-
}, {
|
|
43
|
-
datesSelected: (event) => this.handleDatesSelected(event),
|
|
44
|
-
secondDateSelected: () => this.handleSecondDateSelected(),
|
|
45
|
-
clickedOutside: () => this.toggleCalendar()
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
this.overlayService.removeComponent(this._doubleCalendarComponentRef);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
handleFirstDateChanged(value) {
|
|
53
|
-
setTimeout(() => {
|
|
54
|
-
var _a, _b;
|
|
55
|
-
if (this.isValidDateString(value)) {
|
|
56
|
-
const [year, month, day] = value.split('-').map(Number);
|
|
57
|
-
const date = new Date(year, month - 1, day);
|
|
58
|
-
if (!this.model)
|
|
59
|
-
this.setModel([]);
|
|
60
|
-
this.setModel([date, (_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : null]);
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
handleSecondDateChanged(value) {
|
|
65
|
-
setTimeout(() => {
|
|
66
|
-
var _a, _b;
|
|
67
|
-
if (this.isValidDateString(value)) {
|
|
68
|
-
const [year, month, day] = value.split('-').map(Number);
|
|
69
|
-
const date = new Date(year, month - 1, day);
|
|
70
|
-
if (!this.model)
|
|
71
|
-
this.setModel([]);
|
|
72
|
-
this.setModel([(_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null, date]);
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
finalizeDates() {
|
|
77
|
-
let startDate = this.EARLIEST_DATE;
|
|
78
|
-
let endDate = this.LATEST_DATE;
|
|
79
|
-
if (this.isValidDateString(this.firstDateAsString)) {
|
|
80
|
-
const [y, m, d] = this.firstDateAsString.split('-').map(Number);
|
|
81
|
-
startDate = new Date(y, m - 1, d);
|
|
82
|
-
}
|
|
83
|
-
if (this.isValidDateString(this.secondDateAsString)) {
|
|
84
|
-
const [y, m, d] = this.secondDateAsString.split('-').map(Number);
|
|
85
|
-
endDate = new Date(y, m - 1, d);
|
|
86
|
-
}
|
|
87
|
-
this.setModel([startDate, endDate]);
|
|
88
|
-
}
|
|
89
|
-
finalize() {
|
|
90
|
-
var _a;
|
|
91
|
-
(_a = this.finalizeDates) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
92
|
-
}
|
|
93
|
-
isValidDateString(value) {
|
|
94
|
-
const regex = /^\d{4}-\d{2}-\d{2}$/;
|
|
95
|
-
if (!regex.test(value))
|
|
96
|
-
return false;
|
|
97
|
-
const [yearStr, monthStr, dayStr] = value.split('-');
|
|
98
|
-
const [year, month, day] = [Number(yearStr), Number(monthStr), Number(dayStr)];
|
|
99
|
-
// Prevent ancient years or too-far future
|
|
100
|
-
if (year < 1900 || year > 2100)
|
|
101
|
-
return false;
|
|
102
|
-
const date = new Date(year, month - 1, day);
|
|
103
|
-
return (date.getFullYear() === year &&
|
|
104
|
-
date.getMonth() === month - 1 &&
|
|
105
|
-
date.getDate() === day);
|
|
106
|
-
}
|
|
107
|
-
modelSet() {
|
|
108
|
-
this.setModelAsString();
|
|
109
|
-
}
|
|
110
|
-
setModelAsString() {
|
|
111
|
-
var _a, _b;
|
|
112
|
-
const isStartDefault = ((_a = this.model[0]) === null || _a === void 0 ? void 0 : _a.getTime()) === this.EARLIEST_DATE.getTime();
|
|
113
|
-
const isEndDefault = ((_b = this.model[1]) === null || _b === void 0 ? void 0 : _b.getTime()) === this.LATEST_DATE.getTime();
|
|
114
|
-
this.firstDateAsString = (!this.model[0] || isStartDefault) ? '' : this.formatDate(this.model[0]);
|
|
115
|
-
this.secondDateAsString = (!this.model[1] || isEndDefault) ? '' : this.formatDate(this.model[1]);
|
|
116
|
-
}
|
|
117
|
-
formatDate(date) {
|
|
118
|
-
const year = date.toLocaleString("default", { year: "numeric" });
|
|
119
|
-
const month = date.toLocaleString("default", { month: "2-digit" });
|
|
120
|
-
const day = date.toLocaleString("default", { day: "2-digit" });
|
|
121
|
-
return `${year}-${month}-${day}`;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
InputDateRangePickerComponent.decorators = [
|
|
125
|
-
{ type: Component, args: [{
|
|
126
|
-
selector: 'co-input-date-range',
|
|
127
|
-
template: `
|
|
128
|
-
<div class="inputs-wrapper" overlayParent #parentForOverlay="overlayParent">
|
|
129
|
-
<co-input-text #firstInput class="no-focus-line custom-height"
|
|
130
|
-
[(model)]="firstDateAsString"
|
|
131
|
-
[noClickFocus]="true"
|
|
132
|
-
[pattern]="'yyyy-MM-dd'"
|
|
133
|
-
[type]="'date'"
|
|
134
|
-
[leftIcon]="leftIcon"
|
|
135
|
-
[leftIconData]="leftIconData"
|
|
136
|
-
[placeholder]="placeholder"
|
|
137
|
-
(modelChange)="handleFirstDateChanged(firstDateAsString)"
|
|
138
|
-
(clearIconClick)="clearDate(0)"
|
|
139
|
-
(click)="handleFirstInputClick($event)"
|
|
140
|
-
[emptyPlace]="true"
|
|
141
|
-
(keyup.enter)="finalizeDates()"
|
|
142
|
-
></co-input-text>
|
|
143
|
-
<co-input-text #secondInput class="no-focus-line custom-height"
|
|
144
|
-
[(model)]= "secondDateAsString"
|
|
145
|
-
[noClickFocus]="true"
|
|
146
|
-
[pattern]="'yyyy-MM-dd'"
|
|
147
|
-
[type]="'date'"
|
|
148
|
-
[rightIcon]="rightIcon"
|
|
149
|
-
[firstDayOfWeek]="firstDayOfWeek"
|
|
150
|
-
(rightIconClick)="toggleCalendar()"
|
|
151
|
-
(modelChange)="handleSecondDateChanged(secondDateAsString)"
|
|
152
|
-
(clearIconClick)="clearDate(1)"
|
|
153
|
-
(click)="handleSecondInputClick($event)"
|
|
154
|
-
[emptyPlace]="true"
|
|
155
|
-
(keyup.enter)="finalizeDates()"
|
|
156
|
-
></co-input-text>
|
|
157
|
-
</div>
|
|
158
|
-
`,
|
|
159
|
-
providers: [
|
|
160
|
-
OverlayService,
|
|
161
|
-
{
|
|
162
|
-
provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,
|
|
163
|
-
useExisting: forwardRef(() => InputDateRangePickerComponent)
|
|
164
|
-
}, {
|
|
165
|
-
provide: BaseInputDatePickerDirective,
|
|
166
|
-
useExisting: InputDateRangePickerComponent
|
|
167
|
-
}
|
|
168
|
-
],
|
|
169
|
-
encapsulation: ViewEncapsulation.None
|
|
170
|
-
},] }
|
|
171
|
-
];
|
|
172
|
-
InputDateRangePickerComponent.propDecorators = {
|
|
173
|
-
firstDayOfWeek: [{ type: Input }],
|
|
174
|
-
firstInput: [{ type: ViewChild, args: ['firstInput',] }],
|
|
175
|
-
secondInput: [{ type: ViewChild, args: ['secondInput',] }],
|
|
176
|
-
showClass: [{ type: HostBinding, args: ['class.co-input-date-range',] }]
|
|
177
|
-
};
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0LWRhdGUtcmFuZ2UtcGlja2VyL2lucHV0LWRhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNILDhDQUE4QyxFQUNqRCxNQUFNLGlFQUFpRSxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN4RyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQStDckYsTUFBTSxPQUFPLDZCQUE4QixTQUFRLDRCQUE0QjtJQTdDL0U7O1FBa0RtQixrQkFBYSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBRSxhQUFhO1FBQ3BELGdCQUFXLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFFLGFBQWE7UUFLOUQsbUJBQWMsR0FBVyxFQUFFLENBQUM7SUFrSXJDLENBQUM7SUE3SFUsU0FBUztRQUNaLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDSCxxQkFBcUIsQ0FBQyxLQUFZO1FBQ2hDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBWTtRQUNqQyxLQUFLLENBQUMsZUFBZSxFQUFFLENB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QUFFLDRCQUE0Qjt3QkFDckMsV0FBVyxFQUFFLDZCQUE2QjtxQkFDN0M7aUJBQUM7Z0JBQ04sYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDeEM7Ozs2QkFXRSxLQUFLO3lCQUdMLFNBQVMsU0FBQyxZQUFZOzBCQUN0QixTQUFTLFNBQUMsYUFBYTt3QkFDckIsV0FBVyxTQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbXBvbmVudFJlZiwgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QmFzZUlucHV0Q29tcG9uZW50fSBmcm9tICcuLi9iYXNlL2Jhc2UtaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUVcclxufSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NjcmVlbi1jb25maWctYWRhcHRlci1jb21wb25lbnQtaW50ZXJmYWNlLW5hbWUnO1xyXG5pbXBvcnQge092ZXJsYXlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL292ZXJsYXkuc2VydmljZSc7XHJcbmltcG9ydCB7QmFzZUlucHV0RGF0ZVBpY2tlckRpcmVjdGl2ZX0gZnJvbSBcIi4uL2Jhc2UtaW5wdXQtZGF0ZS1waWNrZXIvYmFzZS1pbnB1dC1kYXRlLXBpY2tlci5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtEb3VibGVDYWxlbmRhckNvbXBvbmVudH0gZnJvbSBcIi4uL2RvdWJsZS1jYWxlbmRhci9kb3VibGUtY2FsZW5kYXIuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY28taW5wdXQtZGF0ZS1yYW5nZScsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXRzLXdyYXBwZXJcIiBvdmVybGF5UGFyZW50ICNwYXJlbnRGb3JPdmVybGF5PVwib3ZlcmxheVBhcmVudFwiPlxyXG4gICAgICAgIDxjby1pbnB1dC10ZXh0ICNmaXJzdElucHV0IGNsYXNzPVwibm8tZm9jdXMtbGluZSBjdXN0b20taGVpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJmaXJzdERhdGVBc1N0cmluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW25vQ2xpY2tGb2N1c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcGF0dGVybl09XCIneXl5eS1NTS1kZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidkYXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2xlZnRJY29uXT1cImxlZnRJY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbGVmdEljb25EYXRhXT1cImxlZnRJY29uRGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlRmlyc3REYXRlQ2hhbmdlZChmaXJzdERhdGVBc1N0cmluZylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGVhckljb25DbGljayk9XCJjbGVhckRhdGUoMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVGaXJzdElucHV0Q2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2VtcHR5UGxhY2VdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImZpbmFsaXplRGF0ZXMoKVwiXHJcbiAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICA8Y28taW5wdXQtdGV4dCAjc2Vjb25kSW5wdXQgY2xhc3M9XCJuby1mb2N1cy1saW5lIGN1c3RvbS1oZWlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT0gXCJzZWNvbmREYXRlQXNTdHJpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtub0NsaWNrRm9jdXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3BhdHRlcm5dPVwiJ3l5eXktTU0tZGQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInZGF0ZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtyaWdodEljb25dPVwicmlnaHRJY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZmlyc3REYXlPZldlZWtdPVwiZmlyc3REYXlPZldlZWtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChyaWdodEljb25DbGljayk9XCJ0b2dnbGVDYWxlbmRhcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlU2Vjb25kRGF0ZUNoYW5nZWQoc2Vjb25kRGF0ZUFzU3RyaW5nKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsZWFySWNvbkNsaWNrKT1cImNsZWFyRGF0ZSgxKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVNlY29uZElucHV0Q2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2VtcHR5UGxhY2VdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImZpbmFsaXplRGF0ZXMoKVwiXHJcbiAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgT3ZlcmxheVNlcnZpY2UsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dERhdGVSYW5nZVBpY2tlckNvbXBvbmVudClcclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IEJhc2VJbnB1dERhdGVQaWNrZXJEaXJlY3RpdmUsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBJbnB1dERhdGVSYW5nZVBpY2tlckNvbXBvbmVudFxyXG4gICAgICAgIH1dLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXREYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXREYXRlUGlja2VyRGlyZWN0aXZlIHtcclxuXHJcbiAgcHVibGljIGZpcnN0RGF0ZUFzU3RyaW5nO1xyXG4gIHB1YmxpYyBzZWNvbmREYXRlQXNTdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgRUFSTElFU1RfREFURSA9IG5ldyBEYXRlKDE5MDAsIDAsIDEpOyAgLy8gMTkwMC0wMS0wMVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgTEFURVNUX0RBVEUgPSBuZXcgRGF0ZSgyMTAwLCAxMSwgMzEpOyAgLy8gMjEwMC0xMi0zMVxyXG5cclxuICBwcml2YXRlIF9kb3VibGVDYWxlbmRhckNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPERvdWJsZUNhbGVuZGFyQ29tcG9uZW50PjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZmlyc3REYXlPZldlZWs6IHN0cmluZyA9ICcnO1xyXG5cclxuICBAVmlld0NoaWxkKCdmaXJzdElucHV0JykgZmlyc3RJbnB1dDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdzZWNvbmRJbnB1dCcpIHNlY29uZElucHV0OiBFbGVtZW50UmVmO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1pbnB1dC1kYXRlLXJhbmdlJylcclxuICAgIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgaGFuZGxlRmlyc3RJbnB1dENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZWNvbmRJbnB1dENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBoYW5kbGVEYXRlc1NlbGVjdGVkKGRhdGVzOiBEYXRlW10pOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0TW9kZWwoZGF0ZXMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNlY29uZERhdGVTZWxlY3RlZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNsb3NlQWZ0ZXJEYXRlU2VsZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlQ2FsZW5kYXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhckRhdGUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICB0aGlzLm1vZGVsW2luZGV4XSA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVDYWxlbmRhcigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd0NhbGVuZGFyID0gIXRoaXMuc2hvd0NhbGVuZGFyO1xyXG5cclxuICAgIGlmICh0aGlzLnNob3dDYWxlbmRhcikge1xyXG4gICAgICB0aGlzLl9kb3VibGVDYWxlbmRhckNvbXBvbmVudFJlZiA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlQ29tcG9uZW50KERvdWJsZUNhbGVuZGFyQ29tcG9uZW50LCB7XHJcbiAgICAgICAgcGFyZW50Rm9yT3ZlcmxheTogdGhpcy5wYXJlbnRGb3JPdmVybGF5LFxyXG4gICAgICAgIHNlbGVjdGVkRGF0ZXM6IHRoaXMubW9kZWxcclxuICAgICAgfSwge1xyXG4gICAgICAgIGRhdGVzU2VsZWN0ZWQ6IChldmVudCkgPT4gdGhpcy5oYW5kbGVEYXRlc1NlbGVjdGVkKGV2ZW50KSxcclxuICAgICAgICBzZWNvbmREYXRlU2VsZWN0ZWQ6ICgpID0+IHRoaXMuaGFuZGxlU2Vjb25kRGF0ZVNlbGVjdGVkKCksXHJcbiAgICAgICAgY2xpY2tlZE91dHNpZGU6ICgpID0+IHRoaXMudG9nZ2xlQ2FsZW5kYXIoKVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3ZlcmxheVNlcnZpY2UucmVtb3ZlQ29tcG9uZW50KHRoaXMuX2RvdWJsZUNhbGVuZGFyQ29tcG9uZW50UmVmKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVGaXJzdERhdGVDaGFuZ2VkKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5pc1ZhbGlkRGF0ZVN0cmluZyh2YWx1ZSkpIHtcclxuICAgICAgICBjb25zdCBbeWVhciwgbW9udGgsIGRheV0gPSB2YWx1ZS5zcGxpdCgnLScpLm1hcChOdW1iZXIpO1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5tb2RlbCkgdGhpcy5zZXRNb2RlbChbXSk7XHJcbiAgICAgICAgdGhpcy5zZXRNb2RlbChbZGF0ZSwgdGhpcy5tb2RlbD8uWzFdID8/IG51bGxdKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2Vjb25kRGF0ZUNoYW5nZWQodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzVmFsaWREYXRlU3RyaW5nKHZhbHVlKSkge1xyXG4gICAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IHZhbHVlLnNwbGl0KCctJykubWFwKE51bWJlcik7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLm1vZGVsKSB0aGlzLnNldE1vZGVsKFtdKTtcclxuICAgICAgICB0aGlzLnNldE1vZGVsKFt0aGlzLm1vZGVsPy5bMF0gPz8gbnVsbCwgZGF0ZV0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaW5hbGl6ZURhdGVzKCk6IHZvaWQge1xyXG4gICAgbGV0IHN0YXJ0RGF0ZSA9IHRoaXMuRUFSTElFU1RfREFURTtcclxuICAgIGxldCBlbmREYXRlID0gdGhpcy5MQVRFU1RfREFURTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1ZhbGlkRGF0ZVN0cmluZyh0aGlzLmZpcnN0RGF0ZUFzU3RyaW5nKSkge1xyXG4gICAgICBjb25zdCBbeSwgbSwgZF0gPSB0aGlzLmZpcnN0RGF0ZUFzU3RyaW5nLnNwbGl0KCctJykubWFwKE51bWJlcik7XHJcbiAgICAgIHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHksIG0gLSAxLCBkKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc1ZhbGlkRGF0ZVN0cmluZyh0aGlzLnNlY29uZERhdGVBc1N0cmluZykpIHtcclxuICAgICAgY29uc3QgW3ksIG0sIGRdID0gdGhpcy5zZWNvbmREYXRlQXNTdHJpbmcuc3BsaXQoJy0nKS5tYXAoTnVtYmVyKTtcclxuICAgICAgZW5kRGF0ZSA9IG5ldyBEYXRlKHksIG0gLSAxLCBkKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldE1vZGVsKFtzdGFydERhdGUsIGVuZERhdGVdKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaW5hbGl6ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmluYWxpemVEYXRlcz8uKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzVmFsaWREYXRlU3RyaW5nKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHJlZ2V4ID0gL15cXGR7NH0tXFxkezJ9LVxcZHsyfSQvO1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KHZhbHVlKSkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IFt5ZWFyU3RyLCBtb250aFN0ciwgZGF5U3RyXSA9IHZhbHVlLnNwbGl0KCctJyk7XHJcbiAgICBjb25zdCBbeWVhciwgbW9udGgsIGRheV0gPSBbTnVtYmVyKHllYXJTdHIpLCBOdW1iZXIobW9udGhTdHIpLCBOdW1iZXIoZGF5U3RyKV07XHJcblxyXG4gICAgLy8gUHJldmVudCBhbmNpZW50IHllYXJzIG9yIHRvby1mYXIgZnV0dXJlXHJcbiAgICBpZiAoeWVhciA8IDE5MDAgfHwgeWVhciA+IDIxMDApIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXkpO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpID09PSB5ZWFyICYmXHJcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSA9PT0gbW9udGggLSAxICYmXHJcbiAgICAgIGRhdGUuZ2V0RGF0ZSgpID09PSBkYXlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgbW9kZWxTZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE1vZGVsQXNTdHJpbmcoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TW9kZWxBc1N0cmluZygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlzU3RhcnREZWZhdWx0ID0gdGhpcy5tb2RlbFswXT8uZ2V0VGltZSgpID09PSB0aGlzLkVBUkxJRVNUX0RBVEUuZ2V0VGltZSgpO1xyXG4gICAgY29uc3QgaXNFbmREZWZhdWx0ID0gdGhpcy5tb2RlbFsxXT8uZ2V0VGltZSgpID09PSB0aGlzLkxBVEVTVF9EQVRFLmdldFRpbWUoKTtcclxuXHJcbiAgICB0aGlzLmZpcnN0RGF0ZUFzU3RyaW5nID0gKCF0aGlzLm1vZGVsWzBdIHx8IGlzU3RhcnREZWZhdWx0KSA/ICcnIDogdGhpcy5mb3JtYXREYXRlKHRoaXMubW9kZWxbMF0pO1xyXG4gICAgdGhpcy5zZWNvbmREYXRlQXNTdHJpbmcgPSAoIXRoaXMubW9kZWxbMV0gfHwgaXNFbmREZWZhdWx0KSA/ICcnIDogdGhpcy5mb3JtYXREYXRlKHRoaXMubW9kZWxbMV0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgeWVhciA9IGRhdGUudG9Mb2NhbGVTdHJpbmcoXCJkZWZhdWx0XCIsIHsgeWVhcjogXCJudW1lcmljXCIgfSk7XHJcbiAgICBjb25zdCBtb250aCA9IGRhdGUudG9Mb2NhbGVTdHJpbmcoXCJkZWZhdWx0XCIsIHsgbW9udGg6IFwiMi1kaWdpdFwiIH0pO1xyXG4gICAgY29uc3QgZGF5ID0gZGF0ZS50b0xvY2FsZVN0cmluZyhcImRlZmF1bHRcIiwgeyBkYXk6IFwiMi1kaWdpdFwiIH0pO1xyXG4gICAgcmV0dXJuIGAke3llYXJ9LSR7bW9udGh9LSR7ZGF5fWA7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { NgModule } from "@angular/core";
|
|
2
|
-
import { InputDateRangePickerComponent } from "./input-date-range-picker.component";
|
|
3
|
-
import { OverlayModule } from '../../directives/overlay/overlay.module';
|
|
4
|
-
import { CommonModule } from "@angular/common";
|
|
5
|
-
import { InputTextModule } from "../input-text/input-text.module";
|
|
6
|
-
import { ClickoutsideModule } from "../../directives/clickoutside/clickoutside.module";
|
|
7
|
-
import { DoubleCalendarModule } from "../double-calendar/double-calendar.module";
|
|
8
|
-
export class InputDateRangePickerModule {
|
|
9
|
-
}
|
|
10
|
-
InputDateRangePickerModule.decorators = [
|
|
11
|
-
{ type: NgModule, args: [{
|
|
12
|
-
imports: [
|
|
13
|
-
CommonModule,
|
|
14
|
-
InputTextModule,
|
|
15
|
-
ClickoutsideModule,
|
|
16
|
-
OverlayModule,
|
|
17
|
-
DoubleCalendarModule
|
|
18
|
-
],
|
|
19
|
-
declarations: [
|
|
20
|
-
InputDateRangePickerComponent
|
|
21
|
-
],
|
|
22
|
-
exports: [
|
|
23
|
-
InputDateRangePickerComponent
|
|
24
|
-
]
|
|
25
|
-
},] }
|
|
26
|
-
];
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1yYW5nZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0LWRhdGUtcmFuZ2UtcGlja2VyL2lucHV0LWRhdGUtcmFuZ2UtcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBaUIvRSxNQUFNLE9BQU8sMEJBQTBCOzs7WUFmdEMsUUFBUSxTQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGVBQWU7b0JBQ2Ysa0JBQWtCO29CQUNsQixhQUFhO29CQUNiLG9CQUFvQjtpQkFDckI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLDZCQUE2QjtpQkFDOUI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLDZCQUE2QjtpQkFDOUI7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SW5wdXREYXRlUmFuZ2VQaWNrZXJDb21wb25lbnR9IGZyb20gXCIuL2lucHV0LWRhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge092ZXJsYXlNb2R1bGV9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvb3ZlcmxheS9vdmVybGF5Lm1vZHVsZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7SW5wdXRUZXh0TW9kdWxlfSBmcm9tIFwiLi4vaW5wdXQtdGV4dC9pbnB1dC10ZXh0Lm1vZHVsZVwiO1xyXG5pbXBvcnQge0NsaWNrb3V0c2lkZU1vZHVsZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvY2xpY2tvdXRzaWRlL2NsaWNrb3V0c2lkZS5tb2R1bGVcIjtcclxuaW1wb3J0IHtEb3VibGVDYWxlbmRhck1vZHVsZX0gZnJvbSBcIi4uL2RvdWJsZS1jYWxlbmRhci9kb3VibGUtY2FsZW5kYXIubW9kdWxlXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgIElucHV0VGV4dE1vZHVsZSxcclxuICAgICAgQ2xpY2tvdXRzaWRlTW9kdWxlLFxyXG4gICAgICBPdmVybGF5TW9kdWxlLFxyXG4gICAgICBEb3VibGVDYWxlbmRhck1vZHVsZVxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICBJbnB1dERhdGVSYW5nZVBpY2tlckNvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgSW5wdXREYXRlUmFuZ2VQaWNrZXJDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0RGF0ZVJhbmdlUGlja2VyTW9kdWxlIHtcclxufVxyXG4iXX0=
|
|
@@ -1,320 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, EventEmitter, forwardRef, HostBinding, Inject, Input, NgZone, Optional, Output, ViewEncapsulation } from '@angular/core';
|
|
3
|
-
import { BaseInputComponent } from '../base/base-input.component';
|
|
4
|
-
import { InputBoolean } from '../../core/decorator/input-boolean.decorator';
|
|
5
|
-
import { BoundsConstrainedNumberValue } from '../../core/model/bounds-constrained-number-value';
|
|
6
|
-
import { NUMBER_INPUTS_KEY_DOWN_WHITE_LIST } from '../../core/constant/number-inputs-key-down-white-list';
|
|
7
|
-
import { FormInputUserModelChangeListenerService } from '../../core/service/form-input-user-change-listener.service';
|
|
8
|
-
import { InputNumberPickerButtonShowMode } from '../../core/enum/input-number-picker-show-mode.enum';
|
|
9
|
-
import { IconCacheService } from '../icon/icon-cache.service';
|
|
10
|
-
import { CoreComponentsIcon } from '../../core/enum/core-components-icon.enum';
|
|
11
|
-
import { SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME } from '../../interfaces/screen-config-adapter-component-interface-name';
|
|
12
|
-
import { FormComponent } from '../form/form.component';
|
|
13
|
-
import { OverlayService } from '../../service/overlay.service';
|
|
14
|
-
import { NgZoneWrapperService } from '../../core/service/ng-zone-wrapper.service';
|
|
15
|
-
// A component that lets users pick a number by increasing and decreasing it with buttons, or by typing.
|
|
16
|
-
export class InputNumberPickerComponent extends BaseInputComponent {
|
|
17
|
-
constructor(formComponent, iconCacheService, overlayService, _ngZone, componentFactoryResolver, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) {
|
|
18
|
-
super(changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef);
|
|
19
|
-
this.formComponent = formComponent;
|
|
20
|
-
this.iconCacheService = iconCacheService;
|
|
21
|
-
this.overlayService = overlayService;
|
|
22
|
-
this._ngZone = _ngZone;
|
|
23
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
24
|
-
this.ngZoneWrapper = ngZoneWrapper;
|
|
25
|
-
this.elementRef = elementRef;
|
|
26
|
-
this.modelChangeOnEnter = true;
|
|
27
|
-
this.showPermanentLabel = false;
|
|
28
|
-
this.minusIcon = CoreComponentsIcon.MinusSimple;
|
|
29
|
-
this.plusIcon = CoreComponentsIcon.PlusSimple;
|
|
30
|
-
// Whether to show buttons 'always', 'onFocusOnly', or 'never'
|
|
31
|
-
this.buttonShowMode = InputNumberPickerButtonShowMode.Always;
|
|
32
|
-
// @override Default true for us.
|
|
33
|
-
this.noValidation = true;
|
|
34
|
-
// @override
|
|
35
|
-
this.modelChange = new EventEmitter();
|
|
36
|
-
this.iconClick = new EventEmitter();
|
|
37
|
-
this.myKeyDownWhiteList = NUMBER_INPUTS_KEY_DOWN_WHITE_LIST;
|
|
38
|
-
this.numberLogic = new BoundsConstrainedNumberValue();
|
|
39
|
-
this.minSelected = false;
|
|
40
|
-
this.plusSelected = false;
|
|
41
|
-
this._numberInputHasFocus = false;
|
|
42
|
-
this._changeFromButton = false;
|
|
43
|
-
this._delayBeforeStartAutoCountMs = 666;
|
|
44
|
-
// the 'speed gears' for auto counting
|
|
45
|
-
this._stepFactors = [1, 10, 20];
|
|
46
|
-
// increase step size timing
|
|
47
|
-
this._msChangeStepFactor = 1000;
|
|
48
|
-
// step speed
|
|
49
|
-
this._msDoStep = 5;
|
|
50
|
-
// hold the mouse down and this increases for a faster auto increment
|
|
51
|
-
this._stepFactor = this._stepFactors[0];
|
|
52
|
-
this._mayAutoCount = false;
|
|
53
|
-
this._numberLogicValueChangeSub = this.numberLogic.valueChange.subscribe((value) => {
|
|
54
|
-
if (!this._mayAutoCount) {
|
|
55
|
-
this.model = value;
|
|
56
|
-
if (!this.modelChangeOnEnter || this._changeFromButton) {
|
|
57
|
-
this.modelChange.emit(value);
|
|
58
|
-
}
|
|
59
|
-
// custom form user chagne listener .next because we don't user super.updateModel() which normally does that for us
|
|
60
|
-
if (this._markedAsUserTouched) {
|
|
61
|
-
this.formUserChangeListener.userModelChange.next(value);
|
|
62
|
-
this.userModelChange.next(value);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
// @override
|
|
68
|
-
set model(model) {
|
|
69
|
-
this.setValue(model, true);
|
|
70
|
-
super.model = model;
|
|
71
|
-
}
|
|
72
|
-
get model() {
|
|
73
|
-
return super.model;
|
|
74
|
-
}
|
|
75
|
-
set min(min) {
|
|
76
|
-
this.numberLogic.min = min;
|
|
77
|
-
}
|
|
78
|
-
set step(step) {
|
|
79
|
-
this.numberLogic.step = step;
|
|
80
|
-
}
|
|
81
|
-
set max(max) {
|
|
82
|
-
this.numberLogic.max = max;
|
|
83
|
-
}
|
|
84
|
-
set decimals(decimals) {
|
|
85
|
-
this.numberLogic.decimals = decimals;
|
|
86
|
-
}
|
|
87
|
-
get showButtonsOnFocusOnly() {
|
|
88
|
-
return this.buttonShowMode === InputNumberPickerButtonShowMode.OnFocusOnly;
|
|
89
|
-
}
|
|
90
|
-
get hasLabel() {
|
|
91
|
-
return !!this.label;
|
|
92
|
-
}
|
|
93
|
-
showClass() {
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
ngOnInit() {
|
|
97
|
-
// this.numberLogic.setValue(this.model, true);
|
|
98
|
-
// this.numberLogic.init(true);
|
|
99
|
-
this._updateButtonsShowState();
|
|
100
|
-
}
|
|
101
|
-
ngOnDestroy() {
|
|
102
|
-
this._numberLogicValueChangeSub.unsubscribe();
|
|
103
|
-
clearTimeout(this._autoCountTimeout);
|
|
104
|
-
clearTimeout(this._stepIncrementTimeout);
|
|
105
|
-
clearTimeout(this._startAutocountTimeout);
|
|
106
|
-
}
|
|
107
|
-
// Note: recursive through setTimeout().
|
|
108
|
-
doIncrementAuto() {
|
|
109
|
-
this._mayAutoCount = true;
|
|
110
|
-
this.increment(this._stepFactor);
|
|
111
|
-
this._ngZone.runOutsideAngular(() => {
|
|
112
|
-
this._autoCountTimeout = window.setTimeout(() => {
|
|
113
|
-
if (this._mayAutoCount) {
|
|
114
|
-
this.doIncrementAuto();
|
|
115
|
-
this.changeDetector.detectChanges();
|
|
116
|
-
}
|
|
117
|
-
}, this._msDoStep);
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
handleInputKeyDown(event) {
|
|
121
|
-
// event.preventDefault();
|
|
122
|
-
if (event.code === 'Enter' || event.code === 'NumpadEnter') {
|
|
123
|
-
this.modelChange.next(this.model);
|
|
124
|
-
return false;
|
|
125
|
-
}
|
|
126
|
-
if (this.myKeyDownWhiteList.find((k) => k === event.keyCode) === undefined) {
|
|
127
|
-
return false;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
handleBlur() {
|
|
131
|
-
this.modelChange.next(this.model);
|
|
132
|
-
}
|
|
133
|
-
handleChangeModel(value) {
|
|
134
|
-
this._changeFromButton = false;
|
|
135
|
-
this.numberLogic.setValue(value);
|
|
136
|
-
}
|
|
137
|
-
// Note: recursive through setTimeout().
|
|
138
|
-
doDecrementAuto() {
|
|
139
|
-
this._mayAutoCount = true;
|
|
140
|
-
this.decrement(this._stepFactor);
|
|
141
|
-
this._ngZone.runOutsideAngular(() => {
|
|
142
|
-
this._autoCountTimeout = window.setTimeout(() => {
|
|
143
|
-
if (this._mayAutoCount) {
|
|
144
|
-
this.doDecrementAuto();
|
|
145
|
-
this.changeDetector.detectChanges();
|
|
146
|
-
}
|
|
147
|
-
}, this._msDoStep);
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
stopAutoCounting() {
|
|
151
|
-
this.minSelected = false;
|
|
152
|
-
this.plusSelected = false;
|
|
153
|
-
this._mayAutoCount = false;
|
|
154
|
-
this._stepFactor = this._stepFactors[0];
|
|
155
|
-
}
|
|
156
|
-
// Sets the current number value with given newValue, optionally silent (no valueChange event fired).
|
|
157
|
-
setValue(newValue, silent = false) {
|
|
158
|
-
this.numberLogic.setValue(newValue, silent);
|
|
159
|
-
}
|
|
160
|
-
increment(steps = 1) {
|
|
161
|
-
this._changeFromButton = true;
|
|
162
|
-
this.numberLogic.increment(steps);
|
|
163
|
-
}
|
|
164
|
-
decrement(steps = 1) {
|
|
165
|
-
this._changeFromButton = true;
|
|
166
|
-
this.numberLogic.decrement(steps);
|
|
167
|
-
}
|
|
168
|
-
onPlusMouseDown(event) {
|
|
169
|
-
if (this.readonly) {
|
|
170
|
-
event.preventDefault();
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
this.plusSelected = true;
|
|
174
|
-
this._markedAsUserTouched = true;
|
|
175
|
-
// keeps focus on input text instead of button
|
|
176
|
-
event.preventDefault();
|
|
177
|
-
this.increment();
|
|
178
|
-
this._mayAutoCount = true;
|
|
179
|
-
clearTimeout(this._startAutocountTimeout);
|
|
180
|
-
this._startAutocountTimeout = window.setTimeout(() => {
|
|
181
|
-
if (this._mayAutoCount) {
|
|
182
|
-
this.doIncrementAuto();
|
|
183
|
-
this._doIncreaseStepFactor();
|
|
184
|
-
}
|
|
185
|
-
}, this._delayBeforeStartAutoCountMs);
|
|
186
|
-
}
|
|
187
|
-
onMinusMouseDown(event) {
|
|
188
|
-
if (this.readonly) {
|
|
189
|
-
event.preventDefault();
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
|
-
this.minSelected = true;
|
|
193
|
-
this._markedAsUserTouched = true;
|
|
194
|
-
// keeps focus on input text instead of button
|
|
195
|
-
event.preventDefault();
|
|
196
|
-
this.decrement();
|
|
197
|
-
this._mayAutoCount = true;
|
|
198
|
-
clearTimeout(this._startAutocountTimeout);
|
|
199
|
-
this._startAutocountTimeout = window.setTimeout(() => {
|
|
200
|
-
if (this._mayAutoCount) {
|
|
201
|
-
this.doDecrementAuto();
|
|
202
|
-
this._doIncreaseStepFactor();
|
|
203
|
-
}
|
|
204
|
-
}, this._delayBeforeStartAutoCountMs);
|
|
205
|
-
}
|
|
206
|
-
// Note: recursive.
|
|
207
|
-
_doIncreaseStepFactor() {
|
|
208
|
-
this._stepIncrementTimeout = window.setTimeout(() => {
|
|
209
|
-
if (this._mayAutoCount) {
|
|
210
|
-
this._stepFactor = this._getNextStepFactorMouseDown();
|
|
211
|
-
this._doIncreaseStepFactor();
|
|
212
|
-
}
|
|
213
|
-
}, this._msChangeStepFactor);
|
|
214
|
-
}
|
|
215
|
-
_getNextStepFactorMouseDown() {
|
|
216
|
-
const curIdx = this._stepFactors.indexOf(this._stepFactor);
|
|
217
|
-
if (curIdx < this._stepFactors.length - 1) {
|
|
218
|
-
return this._stepFactors[curIdx + 1];
|
|
219
|
-
}
|
|
220
|
-
return this._stepFactor;
|
|
221
|
-
}
|
|
222
|
-
// Show or hide + and - buttons. Might hide buttons if number input lost focus and button show mode is on focus only.
|
|
223
|
-
_updateButtonsShowState() {
|
|
224
|
-
switch (this.buttonShowMode) {
|
|
225
|
-
case InputNumberPickerButtonShowMode.Always:
|
|
226
|
-
default:
|
|
227
|
-
this.showButtons = true;
|
|
228
|
-
break;
|
|
229
|
-
case InputNumberPickerButtonShowMode.OnFocusOnly:
|
|
230
|
-
this.showButtons = this._numberInputHasFocus;
|
|
231
|
-
break;
|
|
232
|
-
case InputNumberPickerButtonShowMode.Never:
|
|
233
|
-
this.showButtons = false;
|
|
234
|
-
break;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
InputNumberPickerComponent.decorators = [
|
|
239
|
-
{ type: Component, args: [{
|
|
240
|
-
selector: 'co-input-number-picker',
|
|
241
|
-
template: `
|
|
242
|
-
<div class="icon-wrapper" *ngIf="leftIconData">
|
|
243
|
-
<co-icon class="input-number-picker-icon" [iconData]="leftIconData" (click)="iconClick.emit($event)"></co-icon>
|
|
244
|
-
<div class="spacer"></div>
|
|
245
|
-
</div>
|
|
246
|
-
<div class="button-wrapper">
|
|
247
|
-
<co-button *ngIf="showButtons" class="minus-operator" [class.select]="minSelected" tabindex="-1"
|
|
248
|
-
[disabled]="readonly"
|
|
249
|
-
[iconData]="iconCacheService.getIcon(minusIcon)"
|
|
250
|
-
(mousedown)="onMinusMouseDown($event)"
|
|
251
|
-
(mouseup)="stopAutoCounting()" (mouseleave)="stopAutoCounting()"></co-button>
|
|
252
|
-
</div>
|
|
253
|
-
<div class="input-wrapper">
|
|
254
|
-
<span class='permanent-label' [textContent]="label" *ngIf="showPermanentLabel"></span>
|
|
255
|
-
<input type="number"
|
|
256
|
-
[tabIndex]="readonly ? -1 : 0"
|
|
257
|
-
[ngModel]="model"
|
|
258
|
-
[readonly]="readonly"
|
|
259
|
-
[disabled]="disabled"
|
|
260
|
-
[required]="required"
|
|
261
|
-
[placeholder]="label"
|
|
262
|
-
(ngModelChange)="handleChangeModel($event)"
|
|
263
|
-
(keydown)="handleInputKeyDown($event)"
|
|
264
|
-
(blur)="handleBlur()"/>
|
|
265
|
-
</div>
|
|
266
|
-
<div class="button-wrapper">
|
|
267
|
-
<co-button *ngIf="showButtons" class="plus-operator" [class.select]="plusSelected" tabindex="-1"
|
|
268
|
-
[disabled]="readonly"
|
|
269
|
-
[iconData]="iconCacheService.getIcon(plusIcon)"
|
|
270
|
-
(mousedown)="onPlusMouseDown($event)"
|
|
271
|
-
(mouseup)="stopAutoCounting()" (mouseleave)="stopAutoCounting()"></co-button>
|
|
272
|
-
</div>
|
|
273
|
-
`,
|
|
274
|
-
providers: [
|
|
275
|
-
OverlayService, {
|
|
276
|
-
provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME, useExisting: forwardRef(() => InputNumberPickerComponent)
|
|
277
|
-
}, {
|
|
278
|
-
provide: BaseInputComponent,
|
|
279
|
-
useExisting: InputNumberPickerComponent
|
|
280
|
-
}
|
|
281
|
-
],
|
|
282
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
283
|
-
encapsulation: ViewEncapsulation.None
|
|
284
|
-
},] }
|
|
285
|
-
];
|
|
286
|
-
InputNumberPickerComponent.ctorParameters = () => [
|
|
287
|
-
{ type: FormComponent, decorators: [{ type: Optional }] },
|
|
288
|
-
{ type: IconCacheService, decorators: [{ type: Inject, args: [IconCacheService,] }] },
|
|
289
|
-
{ type: OverlayService },
|
|
290
|
-
{ type: NgZone },
|
|
291
|
-
{ type: ComponentFactoryResolver },
|
|
292
|
-
{ type: ChangeDetectorRef },
|
|
293
|
-
{ type: FormInputUserModelChangeListenerService },
|
|
294
|
-
{ type: NgZoneWrapperService },
|
|
295
|
-
{ type: ElementRef }
|
|
296
|
-
];
|
|
297
|
-
InputNumberPickerComponent.propDecorators = {
|
|
298
|
-
model: [{ type: Input }],
|
|
299
|
-
modelChangeOnEnter: [{ type: Input }],
|
|
300
|
-
showPermanentLabel: [{ type: Input }],
|
|
301
|
-
leftIconData: [{ type: HostBinding, args: ['class.has-icon',] }, { type: Input }],
|
|
302
|
-
min: [{ type: Input }],
|
|
303
|
-
step: [{ type: Input }],
|
|
304
|
-
max: [{ type: Input }],
|
|
305
|
-
ngModelOptions: [{ type: Input }],
|
|
306
|
-
minusIcon: [{ type: Input }],
|
|
307
|
-
plusIcon: [{ type: Input }],
|
|
308
|
-
buttonShowMode: [{ type: Input }],
|
|
309
|
-
noValidation: [{ type: Input }],
|
|
310
|
-
decimals: [{ type: Input }],
|
|
311
|
-
modelChange: [{ type: Output }],
|
|
312
|
-
iconClick: [{ type: Output }],
|
|
313
|
-
showButtonsOnFocusOnly: [{ type: HostBinding, args: ['class.show-buttons-on-focus-only',] }],
|
|
314
|
-
hasLabel: [{ type: HostBinding, args: ['class.has-label',] }],
|
|
315
|
-
showClass: [{ type: HostBinding, args: ['class.co-input-number-picker',] }]
|
|
316
|
-
};
|
|
317
|
-
__decorate([
|
|
318
|
-
InputBoolean()
|
|
319
|
-
], InputNumberPickerComponent.prototype, "noValidation", void 0);
|
|
320
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXQtbnVtYmVyLXBpY2tlci9pbnB1dC1udW1iZXItcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULHdCQUF3QixFQUFFLFVBQVUsRUFDcEMsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBR04sUUFBUSxFQUNSLE1BQU0sRUFFTixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBRTFFLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBR3hHLE9BQU8sRUFBQyx1Q0FBdUMsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ25ILE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ25HLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyw4Q0FBOEMsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQy9ILE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFN0Qs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QUFLOzBCQU1MLE1BQU07d0JBR04sTUFBTTtxQ0FHTixXQUFXLFNBQUMsa0NBQWtDO3VCQUs5QyxXQUFXLFNBQUMsaUJBQWlCO3dCQUs3QixXQUFXLFNBQUMsOEJBQThCOztBQXhCM0M7SUFEVSxZQUFZLEVBQUU7Z0VBQ1kiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIGZvcndhcmRSZWYsXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIEluamVjdCxcclxuICAgIElucHV0LFxyXG4gICAgTmdab25lLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Jhc2VJbnB1dENvbXBvbmVudH0gZnJvbSAnLi4vYmFzZS9iYXNlLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7SW5wdXRCb29sZWFufSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvci9pbnB1dC1ib29sZWFuLmRlY29yYXRvcic7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtCb3VuZHNDb25zdHJhaW5lZE51bWJlclZhbHVlfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2JvdW5kcy1jb25zdHJhaW5lZC1udW1iZXItdmFsdWUnO1xyXG5pbXBvcnQge05VTUJFUl9JTlBVVFNfS0VZX0RPV05fV0hJVEVfTElTVH0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudC9udW1iZXItaW5wdXRzLWtleS1kb3duLXdoaXRlLWxpc3QnO1xyXG5pbXBvcnQge0tleWJvYXJkQ29kZX0gZnJvbSAnLi4vLi4vY29yZS9lbnVtL2tleWJvYXJkLWNvZGUuZW51bSc7XHJcbmltcG9ydCB7SW5wdXRUZXh0Q29tcG9uZW50fSBmcm9tICcuLi9pbnB1dC10ZXh0L2lucHV0LXRleHQuY29tcG9uZW50JztcclxuaW1wb3J0IHtGb3JtSW5wdXRVc2VyTW9kZWxDaGFuZ2VMaXN0ZW5lclNlcnZpY2V9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZS9mb3JtLWlucHV0LXVzZXItY2hhbmdlLWxpc3RlbmVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge0lucHV0TnVtYmVyUGlja2VyQnV0dG9uU2hvd01vZGV9IGZyb20gJy4uLy4uL2NvcmUvZW51bS9pbnB1dC1udW1iZXItcGlja2VyLXNob3ctbW9kZS5lbnVtJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi9pY29uL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7Q29yZUNvbXBvbmVudHNJY29ufSBmcm9tICcuLi8uLi9jb3JlL2VudW0vY29yZS1jb21wb25lbnRzLWljb24uZW51bSc7XHJcbmltcG9ydCB7U0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zY3JlZW4tY29uZmlnLWFkYXB0ZXItY29tcG9uZW50LWludGVyZmFjZS1uYW1lJztcclxuaW1wb3J0IHtGb3JtQ29tcG9uZW50fSBmcm9tICcuLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHtPdmVybGF5U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9vdmVybGF5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1NhZmVIdG1sfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHtOZ1pvbmVXcmFwcGVyU2VydmljZX0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlL25nLXpvbmUtd3JhcHBlci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjby1pbnB1dC1udW1iZXItcGlja2VyJyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImljb24td3JhcHBlclwiICpuZ0lmPVwibGVmdEljb25EYXRhXCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwiaW5wdXQtbnVtYmVyLXBpY2tlci1pY29uXCIgW2ljb25EYXRhXT1cImxlZnRJY29uRGF0YVwiIChjbGljayk9XCJpY29uQ2xpY2suZW1pdCgkZXZlbnQpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2VyXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxjby1idXR0b24gKm5nSWY9XCJzaG93QnV0dG9uc1wiIGNsYXNzPVwibWludXMtb3BlcmF0b3JcIiBbY2xhc3Muc2VsZWN0XT1cIm1pblNlbGVjdGVkXCIgdGFiaW5kZXg9XCItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKG1pbnVzSWNvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25NaW51c01vdXNlRG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAobW91c2V1cCk9XCJzdG9wQXV0b0NvdW50aW5nKClcIiAobW91c2VsZWF2ZSk9XCJzdG9wQXV0b0NvdW50aW5nKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9J3Blcm1hbmVudC1sYWJlbCcgW3RleHRDb250ZW50XT1cImxhYmVsXCIgKm5nSWY9XCJzaG93UGVybWFuZW50TGFiZWxcIj48L3NwYW4+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cInJlYWRvbmx5ID8gLTEgOiAwXCJcclxuICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVDaGFuZ2VNb2RlbCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJoYW5kbGVJbnB1dEtleURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgKGJsdXIpPVwiaGFuZGxlQmx1cigpXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24td3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8Y28tYnV0dG9uICpuZ0lmPVwic2hvd0J1dHRvbnNcIiBjbGFzcz1cInBsdXMtb3BlcmF0b3JcIiBbY2xhc3Muc2VsZWN0XT1cInBsdXNTZWxlY3RlZFwiIHRhYmluZGV4PVwiLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihwbHVzSWNvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25QbHVzTW91c2VEb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChtb3VzZXVwKT1cInN0b3BBdXRvQ291bnRpbmcoKVwiIChtb3VzZWxlYXZlKT1cInN0b3BBdXRvQ291bnRpbmcoKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIE92ZXJsYXlTZXJ2aWNlLCB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0TnVtYmVyUGlja2VyQ29tcG9uZW50KVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogQmFzZUlucHV0Q29tcG9uZW50LFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogSW5wdXROdW1iZXJQaWNrZXJDb21wb25lbnRcclxuICAgICAgICB9XSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuLy8gQSBjb21wb25lbnQgdGhhdCBsZXRzIHVzZXJzIHBpY2sgYSBudW1iZXIgYnkgaW5jcmVhc2luZyBhbmQgZGVjcmVhc2luZyBpdCB3aXRoIGJ1dHRvbnMsIG9yIGJ5IHR5cGluZy5cclxuZXhwb3J0IGNsYXNzIElucHV0TnVtYmVyUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50PG51bWJlcj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gICAgLy8gQG92ZXJyaWRlXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBtb2RlbChtb2RlbDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShtb2RlbCwgdHJ1ZSk7XHJcbiAgICAgICAgc3VwZXIubW9kZWwgPSBtb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IG1vZGVsKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHN1cGVyLm1vZGVsO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbW9kZWxDaGFuZ2VPbkVudGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dQZXJtYW5lbnRMYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaGFzLWljb24nKVxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsZWZ0SWNvbkRhdGE6IFNhZmVIdG1sIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IG1pbihtaW46IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMubnVtYmVyTG9naWMubWluID0gbWluO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHN0ZXAoc3RlcDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5udW1iZXJMb2dpYy5zdGVwID0gc3RlcDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBtYXgobWF4OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLm51bWJlckxvZ2ljLm1heCA9IG1heDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIG5nTW9kZWxPcHRpb25zOiBhbnk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBtaW51c0ljb246IENvcmVDb21wb25lbnRzSWNvbiA9IENvcmVDb21wb25lbnRzSWNvbi5NaW51c1NpbXBsZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBsdXNJY29uOiBDb3JlQ29tcG9uZW50c0ljb24gPSBDb3JlQ29tcG9uZW50c0ljb24uUGx1c1NpbXBsZTtcclxuXHJcbiAgICAvLyBXaGV0aGVyIHRvIHNob3cgYnV0dG9ucyAnYWx3YXlzJywgJ29uRm9jdXNPbmx5Jywgb3IgJ25ldmVyJ1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBidXR0b25TaG93TW9kZTogSW5wdXROdW1iZXJQaWNrZXJCdXR0b25TaG93TW9kZSA9IElucHV0TnVtYmVyUGlja2VyQnV0dG9uU2hvd01vZGUuQWx3YXlzO1xyXG5cclxuICAgIC8vIEBvdmVycmlkZSBEZWZhdWx0IHRydWUgZm9yIHVzLlxyXG4gICAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgbm9WYWxpZGF0aW9uOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBkZWNpbWFscyhkZWNpbWFsczogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5udW1iZXJMb2dpYy5kZWNpbWFscyA9IGRlY2ltYWxzO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEBvdmVycmlkZVxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbW9kZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWNvbkNsaWNrOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zaG93LWJ1dHRvbnMtb24tZm9jdXMtb25seScpXHJcbiAgICBwdWJsaWMgZ2V0IHNob3dCdXR0b25zT25Gb2N1c09ubHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYnV0dG9uU2hvd01vZGUgPT09IElucHV0TnVtYmVyUGlja2VyQnV0dG9uU2hvd01vZGUuT25Gb2N1c09ubHk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oYXMtbGFiZWwnKVxyXG4gICAgcHVibGljIGdldCBoYXNMYWJlbCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gISF0aGlzLmxhYmVsO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY28taW5wdXQtbnVtYmVyLXBpY2tlcicpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzaG93QnV0dG9uczogYm9vbGVhbjtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbXlLZXlEb3duV2hpdGVMaXN0OiBLZXlib2FyZENvZGVbXSA9IE5VTUJFUl9JTlBVVFNfS0VZX0RPV05fV0hJVEVfTElTVDtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbnVtYmVyTG9naWM6IEJvdW5kc0NvbnN0cmFpbmVkTnVtYmVyVmFsdWUgPSBuZXcgQm91bmRzQ29uc3RyYWluZWROdW1iZXJWYWx1ZSgpO1xyXG5cclxuICAgIHB1YmxpYyBtaW5TZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHBsdXNTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHByaXZhdGUgX251bWJlcklucHV0SGFzRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX2NoYW5nZUZyb21CdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIF9udW1iZXJMb2dpY1ZhbHVlQ2hhbmdlU3ViOiBTdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZWxheUJlZm9yZVN0YXJ0QXV0b0NvdW50TXM6IG51bWJlciA9IDY2NjtcclxuICAgIC8vIHRoZSAnc3BlZWQgZ2VhcnMnIGZvciBhdXRvIGNvdW50aW5nXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zdGVwRmFjdG9yczogbnVtYmVyW10gPSBbMSwgMTAsIDIwXTtcclxuICAgIC8vIGluY3JlYXNlIHN0ZXAgc2l6ZSB0aW1pbmdcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX21zQ2hhbmdlU3RlcEZhY3RvcjogbnVtYmVyID0gMTAwMDtcclxuICAgIC8vIHN0ZXAgc3BlZWRcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX21zRG9TdGVwOiBudW1iZXIgPSA1O1xyXG4gICAgLy8gaG9sZCB0aGUgbW91c2UgZG93biBhbmQgdGhpcyBpbmNyZWFzZXMgZm9yIGEgZmFzdGVyIGF1dG8gaW5jcmVtZW50XHJcbiAgICBwcml2YXRlIF9zdGVwRmFjdG9yOiBudW1iZXIgPSB0aGlzLl9zdGVwRmFjdG9yc1swXTtcclxuICAgIHByaXZhdGUgX21heUF1dG9Db3VudDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHByaXZhdGUgX2F1dG9Db3VudFRpbWVvdXQ6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX3N0ZXBJbmNyZW1lbnRUaW1lb3V0OiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9zdGFydEF1dG9jb3VudFRpbWVvdXQ6IG51bWJlcjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZm9ybUNvbXBvbmVudDogRm9ybUNvbXBvbmVudCxcclxuICAgICAgICBASW5qZWN0KEljb25DYWNoZVNlcnZpY2UpIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBvdmVybGF5U2VydmljZTogT3ZlcmxheVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXHJcbiAgICAgICAgcHJvdGVjdGVkIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBmb3JtVXNlckNoYW5nZUxpc3RlbmVyOiBGb3JtSW5wdXRVc2VyTW9kZWxDaGFuZ2VMaXN0ZW5lclNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIG5nWm9uZVdyYXBwZXI/OiBOZ1pvbmVXcmFwcGVyU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZj86IEVsZW1lbnRSZWYsXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihjaGFuZ2VEZXRlY3RvciwgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBvdmVybGF5U2VydmljZSwgZm9ybVVzZXJDaGFuZ2VMaXN0ZW5lciwgbmdab25lV3JhcHBlciwgZWxlbWVudFJlZik7XHJcblxyXG4gICAgICAgIHRoaXMuX251bWJlckxvZ2ljVmFsdWVDaGFuZ2VTdWIgPSB0aGlzLm51bWJlckxvZ2ljLnZhbHVlQ2hhbmdlLnN1YnNjcmliZSgodmFsdWU6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX21heUF1dG9Db3VudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbCA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1vZGVsQ2hhbmdlT25FbnRlciB8fCB0aGlzLl9jaGFuZ2VGcm9tQnV0dG9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIGN1c3RvbSBmb3JtIHVzZXIgY2hhZ25lIGxpc3RlbmVyIC5uZXh0IGJlY2F1c2Ugd2UgZG9uJ3QgdXNlciBzdXBlci51cGRhdGVNb2RlbCgpIHdoaWNoIG5vcm1hbGx5IGRvZXMgdGhhdCBmb3IgdXNcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9tYXJrZWRBc1VzZXJUb3VjaGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtVXNlckNoYW5nZUxpc3RlbmVyLnVzZXJNb2RlbENoYW5nZS5uZXh0KHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJNb2RlbENoYW5nZS5uZXh0KHZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHRoaXMubnVtYmVyTG9naWMuc2V0VmFsdWUodGhpcy5tb2RlbCwgdHJ1ZSk7XHJcbiAgICAgICAgLy8gdGhpcy5udW1iZXJMb2dpYy5pbml0KHRydWUpO1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZUJ1dHRvbnNTaG93U3RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9udW1iZXJMb2dpY1ZhbHVlQ2hhbmdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2F1dG9Db3VudFRpbWVvdXQpO1xyXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9zdGVwSW5jcmVtZW50VGltZW91dCk7XHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3N0YXJ0QXV0b2NvdW50VGltZW91dCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTm90ZTogcmVjdXJzaXZlIHRocm91Z2ggc2V0VGltZW91dCgpLlxyXG4gICAgcHVibGljIGRvSW5jcmVtZW50QXV0bygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9tYXlBdXRvQ291bnQgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLmluY3JlbWVudCh0aGlzLl9zdGVwRmFjdG9yKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fYXV0b0NvdW50VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9tYXlBdXRvQ291bnQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRvSW5jcmVtZW50QXV0bygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LCB0aGlzLl9tc0RvU3RlcCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUlucHV0S2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8vIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgaWYgKGV2ZW50LmNvZGUgPT09ICdFbnRlcicgfHwgZXZlbnQuY29kZSA9PT0gJ051bXBhZEVudGVyJykge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLm5leHQodGhpcy5tb2RlbCk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubXlLZXlEb3duV2hpdGVMaXN0LmZpbmQoKGspID0+IGsgPT09IGV2ZW50LmtleUNvZGUpID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlQmx1cigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLm5leHQodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUNoYW5nZU1vZGVsKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jaGFuZ2VGcm9tQnV0dG9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5udW1iZXJMb2dpYy5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTm90ZTogcmVjdXJzaXZlIHRocm91Z2ggc2V0VGltZW91dCgpLlxyXG4gICAgcHVibGljIGRvRGVjcmVtZW50QXV0bygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9tYXlBdXRvQ291bnQgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLmRlY3JlbWVudCh0aGlzLl9zdGVwRmFjdG9yKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fYXV0b0NvdW50VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9tYXlBdXRvQ291bnQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRvRGVjcmVtZW50QXV0bygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LCB0aGlzLl9tc0RvU3RlcCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0b3BBdXRvQ291bnRpbmcoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5taW5TZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucGx1c1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fbWF5QXV0b0NvdW50ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fc3RlcEZhY3RvciA9IHRoaXMuX3N0ZXBGYWN0b3JzWzBdO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFNldHMgdGhlIGN1cnJlbnQgbnVtYmVyIHZhbHVlIHdpdGggZ2l2ZW4gbmV3VmFsdWUsIG9wdGlvbmFsbHkgc2lsZW50IChubyB2YWx1ZUNoYW5nZSBldmVudCBmaXJlZCkuXHJcbiAgICBwdWJsaWMgc2V0VmFsdWUobmV3VmFsdWU6IG51bWJlciwgc2lsZW50OiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm51bWJlckxvZ2ljLnNldFZhbHVlKG5ld1ZhbHVlLCBzaWxlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpbmNyZW1lbnQoc3RlcHM6IG51bWJlciA9IDEpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jaGFuZ2VGcm9tQnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm51bWJlckxvZ2ljLmluY3JlbWVudChzdGVwcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRlY3JlbWVudChzdGVwczogbnVtYmVyID0gMSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZUZyb21CdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubnVtYmVyTG9naWMuZGVjcmVtZW50KHN0ZXBzKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25QbHVzTW91c2VEb3duKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5wbHVzU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX21hcmtlZEFzVXNlclRvdWNoZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAvLyBrZWVwcyBmb2N1cyBvbiBpbnB1dCB0ZXh0IGluc3RlYWQgb2YgYnV0dG9uXHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICAgICAgdGhpcy5pbmNyZW1lbnQoKTtcclxuICAgICAgICB0aGlzLl9tYXlBdXRvQ291bnQgPSB0cnVlO1xyXG5cclxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fc3RhcnRBdXRvY291bnRUaW1lb3V0KTtcclxuICAgICAgICB0aGlzLl9zdGFydEF1dG9jb3VudFRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9tYXlBdXRvQ291bnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZG9JbmNyZW1lbnRBdXRvKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kb0luY3JlYXNlU3RlcEZhY3RvcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgdGhpcy5fZGVsYXlCZWZvcmVTdGFydEF1dG9Db3VudE1zKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25NaW51c01vdXNlRG93bihldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubWluU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX21hcmtlZEFzVXNlclRvdWNoZWQgPSB0cnVlO1xyXG4gICAgICAgIC8vIGtlZXBzIGZvY3VzIG9uIGlucHV0IHRleHQgaW5zdGVhZCBvZiBidXR0b25cclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgICAgICB0aGlzLmRlY3JlbWVudCgpO1xyXG4gICAgICAgIHRoaXMuX21heUF1dG9Db3VudCA9IHRydWU7XHJcblxyXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9zdGFydEF1dG9jb3VudFRpbWVvdXQpO1xyXG4gICAgICAgIHRoaXMuX3N0YXJ0QXV0b2NvdW50VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX21heUF1dG9Db3VudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kb0RlY3JlbWVudEF1dG8oKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RvSW5jcmVhc2VTdGVwRmFjdG9yKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCB0aGlzLl9kZWxheUJlZm9yZVN0YXJ0QXV0b0NvdW50TXMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIE5vdGU6IHJlY3Vyc2l2ZS5cclxuICAgIHByaXZhdGUgX2RvSW5jcmVhc2VTdGVwRmFjdG9yKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3N0ZXBJbmNyZW1lbnRUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fbWF5QXV0b0NvdW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGVwRmFjdG9yID0gdGhpcy5fZ2V0TmV4dFN0ZXBGYWN0b3JNb3VzZURvd24oKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RvSW5jcmVhc2VTdGVwRmFjdG9yKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCB0aGlzLl9tc0NoYW5nZVN0ZXBGYWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldE5leHRTdGVwRmFjdG9yTW91c2VEb3duKCk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgY3VySWR4OiBudW1iZXIgPSB0aGlzLl9zdGVwRmFjdG9ycy5pbmRleE9mKHRoaXMuX3N0ZXBGYWN0b3IpO1xyXG4gICAgICAgIGlmIChjdXJJZHggPCB0aGlzLl9zdGVwRmFjdG9ycy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGVwRmFjdG9yc1tjdXJJZHggKyAxXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0ZXBGYWN0b3I7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2hvdyBvciBoaWRlICsgYW5kIC0gYnV0dG9ucy4gTWlnaHQgaGlkZSBidXR0b25zIGlmIG51bWJlciBpbnB1dCBsb3N0IGZvY3VzIGFuZCBidXR0b24gc2hvdyBtb2RlIGlzIG9uIGZvY3VzIG9ubHkuXHJcbiAgICBwcml2YXRlIF91cGRhdGVCdXR0b25zU2hvd1N0YXRlKCk6IHZvaWQge1xyXG4gICAgICAgIHN3aXRjaCAodGhpcy5idXR0b25TaG93TW9kZSkge1xyXG4gICAgICAgICAgICBjYXNlIElucHV0TnVtYmVyUGlja2VyQnV0dG9uU2hvd01vZGUuQWx3YXlzOlxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93QnV0dG9ucyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBJbnB1dE51bWJlclBpY2tlckJ1dHRvblNob3dNb2RlLk9uRm9jdXNPbmx5OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93QnV0dG9ucyA9IHRoaXMuX251bWJlcklucHV0SGFzRm9jdXM7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBJbnB1dE51bWJlclBpY2tlckJ1dHRvblNob3dNb2RlLk5ldmVyOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93QnV0dG9ucyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { NgModule } from "@angular/core";
|
|
2
|
-
import { CommonModule } from "@angular/common";
|
|
3
|
-
import { InputNumberPickerComponent } from "./input-number-picker.component";
|
|
4
|
-
import { ButtonModule } from "../button/button.module";
|
|
5
|
-
import { InputTextModule } from "../input-text/input-text.module";
|
|
6
|
-
import { FormsModule } from "@angular/forms";
|
|
7
|
-
import { IconModule } from '../icon/icon.module';
|
|
8
|
-
export class InputNumberPickerModule {
|
|
9
|
-
}
|
|
10
|
-
InputNumberPickerModule.decorators = [
|
|
11
|
-
{ type: NgModule, args: [{
|
|
12
|
-
imports: [
|
|
13
|
-
CommonModule,
|
|
14
|
-
FormsModule,
|
|
15
|
-
ButtonModule,
|
|
16
|
-
InputTextModule,
|
|
17
|
-
IconModule
|
|
18
|
-
],
|
|
19
|
-
declarations: [InputNumberPickerComponent],
|
|
20
|
-
exports: [InputNumberPickerComponent]
|
|
21
|
-
},] }
|
|
22
|
-
];
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLXBpY2tlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXQtbnVtYmVyLXBpY2tlci9pbnB1dC1udW1iZXItcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFhL0MsTUFBTSxPQUFPLHVCQUF1Qjs7O1lBWG5DLFFBQVEsU0FBQztnQkFDTixPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixXQUFXO29CQUNYLFlBQVk7b0JBQ1osZUFBZTtvQkFDZixVQUFVO2lCQUNiO2dCQUNILFlBQVksRUFBRSxDQUFDLDBCQUEwQixDQUFDO2dCQUMxQyxPQUFPLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQzthQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7SW5wdXROdW1iZXJQaWNrZXJDb21wb25lbnR9IGZyb20gXCIuL2lucHV0LW51bWJlci1waWNrZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7QnV0dG9uTW9kdWxlfSBmcm9tIFwiLi4vYnV0dG9uL2J1dHRvbi5tb2R1bGVcIjtcclxuaW1wb3J0IHtJbnB1dFRleHRNb2R1bGV9IGZyb20gXCIuLi9pbnB1dC10ZXh0L2lucHV0LXRleHQubW9kdWxlXCI7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0ljb25Nb2R1bGV9IGZyb20gJy4uL2ljb24vaWNvbi5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIElucHV0VGV4dE1vZHVsZSxcclxuICAgICAgICBJY29uTW9kdWxlXHJcbiAgICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW0lucHV0TnVtYmVyUGlja2VyQ29tcG9uZW50XSxcclxuICBleHBvcnRzOiBbSW5wdXROdW1iZXJQaWNrZXJDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dE51bWJlclBpY2tlck1vZHVsZSB7IH1cclxuIl19
|