@ardium-ui/ui 4.4.2 → 5.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/ardium-ui-ui.mjs +2482 -2400
- package/fesm2022/ardium-ui-ui.mjs.map +1 -1
- package/lib/_internal/boolean-component.d.ts +1 -1
- package/lib/_internal/disablable-component.d.ts +1 -1
- package/lib/_internal/focusable-component.d.ts +1 -1
- package/lib/_internal/form-field-component.d.ts +1 -1
- package/lib/_internal/ngmodel-component.d.ts +1 -1
- package/lib/_internal/selectable-list-component.d.ts +1 -1
- package/lib/_internal/utils/date.utils.d.ts +3 -0
- package/lib/buttons/_button-base.d.ts +1 -1
- package/lib/calendar/calendar.component.d.ts +8 -2
- package/lib/file-inputs/file-input-base.d.ts +1 -1
- package/lib/form-field/form-field-base.d.ts +1 -1
- package/lib/inputs/_simple-input-base.d.ts +3 -3
- package/lib/inputs/autocomplete-input/autocomplete-input.component.d.ts +66 -0
- package/lib/inputs/autocomplete-input/autocomplete-input.defaults.d.ts +15 -0
- package/lib/inputs/autocomplete-input/autocomplete-input.directives.d.ts +33 -0
- package/lib/inputs/autocomplete-input/autocomplete-input.module.d.ts +13 -0
- package/lib/inputs/autocomplete-input/index.d.ts +3 -0
- package/lib/inputs/date-input/date-input.component.d.ts +5 -2
- package/lib/inputs/input/index.d.ts +2 -1
- package/lib/inputs/input/input.component.d.ts +3 -56
- package/lib/inputs/input/input.defaults.d.ts +1 -10
- package/lib/inputs/input/input.directives.d.ts +0 -13
- package/lib/inputs/input/input.module.d.ts +3 -5
- package/lib/inputs/input-utils.d.ts +8 -8
- package/lib/option/option.component.d.ts +1 -1
- package/lib/slider/abstract-slider.d.ts +1 -1
- package/package.json +1 -3
- package/prebuilt-themes/default/inputs/{simple-input.css → autocomplete-input.css} +40 -15
- package/prebuilt-themes/default/inputs/autocomplete-input.css.map +1 -0
- package/prebuilt-themes/default/inputs/input.css +0 -25
- package/prebuilt-themes/default/inputs/input.css.map +1 -1
- package/public-api.d.ts +1 -1
- package/themes/default/inputs/autocomplete-input.scss +46 -0
- package/themes/default/inputs/input.scss +0 -34
- package/esm2022/ardium-ui-ui.mjs +0 -5
- package/esm2022/lib/_internal/boolean-component.mjs +0 -95
- package/esm2022/lib/_internal/clear-button/clear-button.component.mjs +0 -15
- package/esm2022/lib/_internal/clear-button/clear-button.module.mjs +0 -18
- package/esm2022/lib/_internal/disablable-component.mjs +0 -51
- package/esm2022/lib/_internal/focusable-component.mjs +0 -85
- package/esm2022/lib/_internal/form-field-component.mjs +0 -33
- package/esm2022/lib/_internal/item-storages/dropdown-item-storage.mjs +0 -453
- package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +0 -370
- package/esm2022/lib/_internal/item-storages/simplest-item-storage.mjs +0 -157
- package/esm2022/lib/_internal/models/pagination.model.mjs +0 -90
- package/esm2022/lib/_internal/models/queue.mjs +0 -59
- package/esm2022/lib/_internal/ngmodel-component.mjs +0 -101
- package/esm2022/lib/_internal/public-api.mjs +0 -2
- package/esm2022/lib/_internal/selectable-list-component.mjs +0 -271
- package/esm2022/lib/badge/badge.defaults.mjs +0 -20
- package/esm2022/lib/badge/badge.directive.mjs +0 -97
- package/esm2022/lib/badge/badge.module.mjs +0 -18
- package/esm2022/lib/badge/badge.types.mjs +0 -16
- package/esm2022/lib/badge/index.mjs +0 -5
- package/esm2022/lib/buttons/_button-base.defaults.mjs +0 -17
- package/esm2022/lib/buttons/_button-base.mjs +0 -26
- package/esm2022/lib/buttons/button/button.component.mjs +0 -38
- package/esm2022/lib/buttons/button/button.defaults.mjs +0 -17
- package/esm2022/lib/buttons/button/button.module.mjs +0 -18
- package/esm2022/lib/buttons/button/index.mjs +0 -4
- package/esm2022/lib/buttons/fab/fab.component.mjs +0 -33
- package/esm2022/lib/buttons/fab/fab.defaults.mjs +0 -17
- package/esm2022/lib/buttons/fab/fab.module.mjs +0 -18
- package/esm2022/lib/buttons/fab/index.mjs +0 -4
- package/esm2022/lib/buttons/general-button.types.mjs +0 -55
- package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +0 -39
- package/esm2022/lib/buttons/icon-button/icon-button.defaults.mjs +0 -9
- package/esm2022/lib/buttons/icon-button/icon-button.module.mjs +0 -18
- package/esm2022/lib/buttons/icon-button/index.mjs +0 -4
- package/esm2022/lib/calendar/calendar.component.mjs +0 -466
- package/esm2022/lib/calendar/calendar.defaults.mjs +0 -26
- package/esm2022/lib/calendar/calendar.directives.mjs +0 -107
- package/esm2022/lib/calendar/calendar.internal-directives.mjs +0 -22
- package/esm2022/lib/calendar/calendar.internal-types.mjs +0 -2
- package/esm2022/lib/calendar/calendar.module.mjs +0 -71
- package/esm2022/lib/calendar/calendar.types.mjs +0 -6
- package/esm2022/lib/calendar/index.mjs +0 -6
- package/esm2022/lib/calendar/views/days-view/days-view.component.mjs +0 -282
- package/esm2022/lib/calendar/views/days-view/days-view.helpers.mjs +0 -65
- package/esm2022/lib/calendar/views/months-view/months-view.component.mjs +0 -245
- package/esm2022/lib/calendar/views/months-view/months-view.helpers.mjs +0 -22
- package/esm2022/lib/calendar/views/years-view/years-view.component.mjs +0 -244
- package/esm2022/lib/calendar/views/years-view/years-view.helpers.mjs +0 -14
- package/esm2022/lib/card/card.children.mjs +0 -96
- package/esm2022/lib/card/card.component.mjs +0 -38
- package/esm2022/lib/card/card.defaults.mjs +0 -17
- package/esm2022/lib/card/card.module.mjs +0 -59
- package/esm2022/lib/card/card.types.mjs +0 -9
- package/esm2022/lib/card/index.mjs +0 -6
- package/esm2022/lib/checkbox/checkbox.component.mjs +0 -68
- package/esm2022/lib/checkbox/checkbox.defaults.mjs +0 -17
- package/esm2022/lib/checkbox/checkbox.directives.mjs +0 -14
- package/esm2022/lib/checkbox/checkbox.internal-directives.mjs +0 -15
- package/esm2022/lib/checkbox/checkbox.module.mjs +0 -20
- package/esm2022/lib/checkbox/checkbox.types.mjs +0 -6
- package/esm2022/lib/checkbox/index.mjs +0 -6
- package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +0 -116
- package/esm2022/lib/checkbox-list/checkbox-list.defaults.mjs +0 -25
- package/esm2022/lib/checkbox-list/checkbox-list.directives.mjs +0 -14
- package/esm2022/lib/checkbox-list/checkbox-list.module.mjs +0 -21
- package/esm2022/lib/checkbox-list/checkbox-list.types.mjs +0 -7
- package/esm2022/lib/checkbox-list/index.mjs +0 -6
- package/esm2022/lib/chip/chip.component.mjs +0 -36
- package/esm2022/lib/chip/chip.defaults.mjs +0 -20
- package/esm2022/lib/chip/chip.module.mjs +0 -21
- package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +0 -53
- package/esm2022/lib/chip/deletable-chip/deletable-chip.defaults.mjs +0 -17
- package/esm2022/lib/chip/index.mjs +0 -8
- package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +0 -53
- package/esm2022/lib/chip/selectable-chip/selectable-chip.defaults.mjs +0 -18
- package/esm2022/lib/dialog/dialog.component.mjs +0 -109
- package/esm2022/lib/dialog/dialog.defaults.mjs +0 -26
- package/esm2022/lib/dialog/dialog.directives.mjs +0 -25
- package/esm2022/lib/dialog/dialog.module.mjs +0 -21
- package/esm2022/lib/dialog/dialog.types.mjs +0 -10
- package/esm2022/lib/dialog/index.mjs +0 -6
- package/esm2022/lib/divider/divider.component.mjs +0 -19
- package/esm2022/lib/divider/divider.defaults.mjs +0 -13
- package/esm2022/lib/divider/divider.module.mjs +0 -18
- package/esm2022/lib/divider/index.mjs +0 -4
- package/esm2022/lib/dropdown-panel/dropdown-panel.component.mjs +0 -112
- package/esm2022/lib/dropdown-panel/dropdown-panel.defaults.mjs +0 -17
- package/esm2022/lib/dropdown-panel/dropdown-panel.module.mjs +0 -18
- package/esm2022/lib/dropdown-panel/dropdown-panel.types.mjs +0 -10
- package/esm2022/lib/dropdown-panel/index.mjs +0 -5
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +0 -70
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.defaults.mjs +0 -18
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.directives.mjs +0 -42
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.module.mjs +0 -52
- package/esm2022/lib/file-inputs/file-drop-area/index.mjs +0 -5
- package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +0 -120
- package/esm2022/lib/file-inputs/file-input/file-input.defaults.mjs +0 -23
- package/esm2022/lib/file-inputs/file-input/file-input.directives.mjs +0 -86
- package/esm2022/lib/file-inputs/file-input/file-input.module.mjs +0 -55
- package/esm2022/lib/file-inputs/file-input/index.mjs +0 -5
- package/esm2022/lib/file-inputs/file-input-base.defaults.mjs +0 -8
- package/esm2022/lib/file-inputs/file-input-base.mjs +0 -356
- package/esm2022/lib/file-inputs/file-input-types.mjs +0 -8
- package/esm2022/lib/form-field/error/error.component.mjs +0 -17
- package/esm2022/lib/form-field/error/error.directive.mjs +0 -17
- package/esm2022/lib/form-field/form-field-base.mjs +0 -53
- package/esm2022/lib/form-field/form-field-child.token.mjs +0 -3
- package/esm2022/lib/form-field/form-field-native-inputs.mjs +0 -80
- package/esm2022/lib/form-field/form-field.component.mjs +0 -12
- package/esm2022/lib/form-field/form-field.defaults.mjs +0 -17
- package/esm2022/lib/form-field/form-field.module.mjs +0 -49
- package/esm2022/lib/form-field/hint/hint.component.mjs +0 -17
- package/esm2022/lib/form-field/hint/hint.directive.mjs +0 -30
- package/esm2022/lib/form-field/horizontal-form-field.component.mjs +0 -12
- package/esm2022/lib/form-field/index.mjs +0 -10
- package/esm2022/lib/form-field/label/label.component.mjs +0 -27
- package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +0 -58
- package/esm2022/lib/form-field-frame/form-field-frame.defaults.mjs +0 -18
- package/esm2022/lib/form-field-frame/form-field-frame.directives.mjs +0 -25
- package/esm2022/lib/form-field-frame/form-field-frame.module.mjs +0 -19
- package/esm2022/lib/form-field-frame/index.mjs +0 -5
- package/esm2022/lib/icon/icon.component.mjs +0 -52
- package/esm2022/lib/icon/icon.defaults.mjs +0 -17
- package/esm2022/lib/icon/icon.module.mjs +0 -19
- package/esm2022/lib/icon/icon.pipe.mjs +0 -18
- package/esm2022/lib/icon/index.mjs +0 -5
- package/esm2022/lib/inputs/_simple-input-base.mjs +0 -153
- package/esm2022/lib/inputs/date-input/date-input.component.mjs +0 -375
- package/esm2022/lib/inputs/date-input/date-input.defaults.mjs +0 -38
- package/esm2022/lib/inputs/date-input/date-input.directive.mjs +0 -163
- package/esm2022/lib/inputs/date-input/date-input.module.mjs +0 -108
- package/esm2022/lib/inputs/date-input/date-input.serializers.mjs +0 -49
- package/esm2022/lib/inputs/date-input/date-input.types.mjs +0 -5
- package/esm2022/lib/inputs/date-input/index.mjs +0 -6
- package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +0 -265
- package/esm2022/lib/inputs/digit-input/digit-input.defaults.mjs +0 -24
- package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +0 -267
- package/esm2022/lib/inputs/digit-input/digit-input.module.mjs +0 -19
- package/esm2022/lib/inputs/digit-input/digit-input.types.mjs +0 -15
- package/esm2022/lib/inputs/digit-input/digit-input.utils.mjs +0 -8
- package/esm2022/lib/inputs/digit-input/index.mjs +0 -5
- package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +0 -180
- package/esm2022/lib/inputs/hex-input/hex-input.defaults.mjs +0 -26
- package/esm2022/lib/inputs/hex-input/hex-input.directives.mjs +0 -36
- package/esm2022/lib/inputs/hex-input/hex-input.model.mjs +0 -97
- package/esm2022/lib/inputs/hex-input/hex-input.module.mjs +0 -37
- package/esm2022/lib/inputs/hex-input/index.mjs +0 -5
- package/esm2022/lib/inputs/input/index.mjs +0 -4
- package/esm2022/lib/inputs/input/input.component.mjs +0 -278
- package/esm2022/lib/inputs/input/input.defaults.mjs +0 -21
- package/esm2022/lib/inputs/input/input.directives.mjs +0 -58
- package/esm2022/lib/inputs/input/input.module.mjs +0 -61
- package/esm2022/lib/inputs/input-transformers.mjs +0 -66
- package/esm2022/lib/inputs/input-types.mjs +0 -6
- package/esm2022/lib/inputs/input-utils.mjs +0 -186
- package/esm2022/lib/inputs/number-input/index.mjs +0 -5
- package/esm2022/lib/inputs/number-input/number-input.component.mjs +0 -250
- package/esm2022/lib/inputs/number-input/number-input.defaults.mjs +0 -27
- package/esm2022/lib/inputs/number-input/number-input.directives.mjs +0 -14
- package/esm2022/lib/inputs/number-input/number-input.module.mjs +0 -21
- package/esm2022/lib/inputs/password-input/index.mjs +0 -6
- package/esm2022/lib/inputs/password-input/password-input.component.mjs +0 -167
- package/esm2022/lib/inputs/password-input/password-input.defaults.mjs +0 -24
- package/esm2022/lib/inputs/password-input/password-input.directives.mjs +0 -49
- package/esm2022/lib/inputs/password-input/password-input.module.mjs +0 -41
- package/esm2022/lib/inputs/password-input/password-input.types.mjs +0 -2
- package/esm2022/lib/inputs/simple-input/index.mjs +0 -5
- package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +0 -50
- package/esm2022/lib/inputs/simple-input/simple-input.defaults.mjs +0 -25
- package/esm2022/lib/inputs/simple-input/simple-input.directives.mjs +0 -36
- package/esm2022/lib/inputs/simple-input/simple-input.module.mjs +0 -37
- package/esm2022/lib/kbd/index.mjs +0 -6
- package/esm2022/lib/kbd/kbd.component.mjs +0 -30
- package/esm2022/lib/kbd/kbd.defaults.mjs +0 -15
- package/esm2022/lib/kbd/kbd.directive.mjs +0 -33
- package/esm2022/lib/kbd/kbd.module.mjs +0 -20
- package/esm2022/lib/kbd/kbd.pipe.mjs +0 -21
- package/esm2022/lib/kbd-shortcut/index.mjs +0 -4
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.component.mjs +0 -36
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.defaults.mjs +0 -8
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.module.mjs +0 -19
- package/esm2022/lib/modal/index.mjs +0 -5
- package/esm2022/lib/modal/modal.component.mjs +0 -95
- package/esm2022/lib/modal/modal.defaults.mjs +0 -20
- package/esm2022/lib/modal/modal.directives.mjs +0 -14
- package/esm2022/lib/modal/modal.module.mjs +0 -22
- package/esm2022/lib/option/index.mjs +0 -3
- package/esm2022/lib/option/option.component.mjs +0 -55
- package/esm2022/lib/option/option.module.mjs +0 -18
- package/esm2022/lib/progress-bar/index.mjs +0 -6
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +0 -58
- package/esm2022/lib/progress-bar/progress-bar.defaults.mjs +0 -21
- package/esm2022/lib/progress-bar/progress-bar.directive.mjs +0 -14
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -19
- package/esm2022/lib/progress-bar/progress-bar.types.mjs +0 -19
- package/esm2022/lib/progress-circle/index.mjs +0 -6
- package/esm2022/lib/progress-circle/progress-circle.component.mjs +0 -45
- package/esm2022/lib/progress-circle/progress-circle.defaults.mjs +0 -21
- package/esm2022/lib/progress-circle/progress-circle.directive.mjs +0 -14
- package/esm2022/lib/progress-circle/progress-circle.module.mjs +0 -19
- package/esm2022/lib/progress-circle/progress-circle.types.mjs +0 -10
- package/esm2022/lib/radio/index.mjs +0 -5
- package/esm2022/lib/radio/radio/radio.component.mjs +0 -119
- package/esm2022/lib/radio/radio/radio.defaults.mjs +0 -16
- package/esm2022/lib/radio/radio-group.component.mjs +0 -203
- package/esm2022/lib/radio/radio.module.mjs +0 -19
- package/esm2022/lib/search-functions.mjs +0 -64
- package/esm2022/lib/segment/index.mjs +0 -6
- package/esm2022/lib/segment/segment.component.mjs +0 -125
- package/esm2022/lib/segment/segment.defaults.mjs +0 -26
- package/esm2022/lib/segment/segment.directives.mjs +0 -14
- package/esm2022/lib/segment/segment.module.mjs +0 -19
- package/esm2022/lib/segment/segment.types.mjs +0 -13
- package/esm2022/lib/select/index.mjs +0 -6
- package/esm2022/lib/select/select.component.mjs +0 -836
- package/esm2022/lib/select/select.defaults.mjs +0 -53
- package/esm2022/lib/select/select.directive.mjs +0 -171
- package/esm2022/lib/select/select.module.mjs +0 -112
- package/esm2022/lib/select/select.types.mjs +0 -2
- package/esm2022/lib/slide-toggle/index.mjs +0 -5
- package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +0 -43
- package/esm2022/lib/slide-toggle/slide-toggle.defaults.mjs +0 -21
- package/esm2022/lib/slide-toggle/slide-toggle.module.mjs +0 -18
- package/esm2022/lib/slide-toggle/slide-toggle.types.mjs +0 -5
- package/esm2022/lib/slider/abstract-slider.mjs +0 -251
- package/esm2022/lib/slider/index.mjs +0 -8
- package/esm2022/lib/slider/range-slider/range-slider.component.mjs +0 -151
- package/esm2022/lib/slider/range-slider/range-slider.module.mjs +0 -18
- package/esm2022/lib/slider/slider.component.mjs +0 -100
- package/esm2022/lib/slider/slider.defaults.mjs +0 -14
- package/esm2022/lib/slider/slider.directive.mjs +0 -16
- package/esm2022/lib/slider/slider.module.mjs +0 -20
- package/esm2022/lib/slider/slider.types.mjs +0 -10
- package/esm2022/lib/snackbar/index.mjs +0 -5
- package/esm2022/lib/snackbar/snackbar-ref.mjs +0 -51
- package/esm2022/lib/snackbar/snackbar.component.mjs +0 -48
- package/esm2022/lib/snackbar/snackbar.service.mjs +0 -224
- package/esm2022/lib/snackbar/snackbar.token.mjs +0 -26
- package/esm2022/lib/snackbar/snackbar.types.mjs +0 -25
- package/esm2022/lib/spinner/index.mjs +0 -4
- package/esm2022/lib/spinner/spinner.component.mjs +0 -19
- package/esm2022/lib/spinner/spinner.defaults.mjs +0 -14
- package/esm2022/lib/spinner/spinner.module.mjs +0 -18
- package/esm2022/lib/star/index.mjs +0 -6
- package/esm2022/lib/star/rating-display/index.mjs +0 -6
- package/esm2022/lib/star/rating-display/rating-display.component.mjs +0 -71
- package/esm2022/lib/star/rating-display/rating-display.defaults.mjs +0 -16
- package/esm2022/lib/star/rating-display/rating-display.directives.mjs +0 -16
- package/esm2022/lib/star/rating-display/rating-display.module.mjs +0 -20
- package/esm2022/lib/star/rating-display/rating-display.types.mjs +0 -2
- package/esm2022/lib/star/rating-input/index.mjs +0 -6
- package/esm2022/lib/star/rating-input/rating-input.component.mjs +0 -191
- package/esm2022/lib/star/rating-input/rating-input.defaults.mjs +0 -17
- package/esm2022/lib/star/rating-input/rating-input.directives.mjs +0 -16
- package/esm2022/lib/star/rating-input/rating-input.module.mjs +0 -20
- package/esm2022/lib/star/rating-input/rating-input.types.mjs +0 -2
- package/esm2022/lib/star/star-button/index.mjs +0 -6
- package/esm2022/lib/star/star-button/star-button.component.mjs +0 -55
- package/esm2022/lib/star/star-button/star-button.defaults.mjs +0 -18
- package/esm2022/lib/star/star-button/star-button.directives.mjs +0 -16
- package/esm2022/lib/star/star-button/star-button.module.mjs +0 -20
- package/esm2022/lib/star/star-button/star-button.types.mjs +0 -2
- package/esm2022/lib/star/star.component.mjs +0 -36
- package/esm2022/lib/star/star.defaults.mjs +0 -15
- package/esm2022/lib/star/star.directives.mjs +0 -16
- package/esm2022/lib/star/star.module.mjs +0 -20
- package/esm2022/lib/star/star.types.mjs +0 -23
- package/esm2022/lib/statebox/index.mjs +0 -4
- package/esm2022/lib/statebox/statebox.component.mjs +0 -114
- package/esm2022/lib/statebox/statebox.defaults.mjs +0 -20
- package/esm2022/lib/statebox/statebox.module.mjs +0 -18
- package/esm2022/lib/statebox/statebox.types.mjs +0 -2
- package/esm2022/lib/tabber/index.mjs +0 -6
- package/esm2022/lib/tabber/tab/tab.component.mjs +0 -44
- package/esm2022/lib/tabber/tab/tab.defaults.mjs +0 -13
- package/esm2022/lib/tabber/tabber.component.mjs +0 -90
- package/esm2022/lib/tabber/tabber.defaults.mjs +0 -19
- package/esm2022/lib/tabber/tabber.module.mjs +0 -19
- package/esm2022/lib/table/index.mjs +0 -6
- package/esm2022/lib/table/table-item-storage.mjs +0 -564
- package/esm2022/lib/table/table.component.mjs +0 -367
- package/esm2022/lib/table/table.defaults.mjs +0 -53
- package/esm2022/lib/table/table.directives.mjs +0 -62
- package/esm2022/lib/table/table.module.mjs +0 -47
- package/esm2022/lib/table/table.types.mjs +0 -30
- package/esm2022/lib/table/utils.mjs +0 -18
- package/esm2022/lib/table-from-csv/index.mjs +0 -4
- package/esm2022/lib/table-from-csv/table-from-csv.component.mjs +0 -120
- package/esm2022/lib/table-from-csv/table-from-csv.defaults.mjs +0 -15
- package/esm2022/lib/table-from-csv/table-from-csv.module.mjs +0 -19
- package/esm2022/lib/table-pagination/index.mjs +0 -5
- package/esm2022/lib/table-pagination/table-pagination.component.mjs +0 -108
- package/esm2022/lib/table-pagination/table-pagination.defaults.mjs +0 -25
- package/esm2022/lib/table-pagination/table-pagination.module.mjs +0 -21
- package/esm2022/lib/table-pagination/table-pagination.types.mjs +0 -7
- package/esm2022/lib/text-list/index.mjs +0 -4
- package/esm2022/lib/text-list/text-list.component.mjs +0 -18
- package/esm2022/lib/text-list/text-list.module.mjs +0 -19
- package/esm2022/lib/text-list/text-list.pipe.mjs +0 -16
- package/esm2022/lib/types/alignment.types.mjs +0 -10
- package/esm2022/lib/types/button.types.mjs +0 -6
- package/esm2022/lib/types/colors.types.mjs +0 -43
- package/esm2022/lib/types/item-storage.types.mjs +0 -6
- package/esm2022/lib/types/theming.types.mjs +0 -48
- package/esm2022/lib/types/utility.types.mjs +0 -5
- package/esm2022/public-api.mjs +0 -74
- package/lib/inputs/simple-input/index.d.ts +0 -4
- package/lib/inputs/simple-input/simple-input.component.d.ts +0 -13
- package/lib/inputs/simple-input/simple-input.defaults.d.ts +0 -6
- package/lib/inputs/simple-input/simple-input.directives.d.ts +0 -20
- package/lib/inputs/simple-input/simple-input.module.d.ts +0 -11
- package/prebuilt-themes/default/inputs/simple-input.css.map +0 -1
- package/themes/default/inputs/simple-input.scss +0 -12
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
import { Overlay, ScrollStrategyOptions } from '@angular/cdk/overlay';
|
|
2
|
-
import { DOCUMENT } from '@angular/common';
|
|
3
|
-
import { Directive, HostListener, Input, Renderer2, ViewContainerRef, computed, contentChild, inject, input, output, signal, viewChild, } from '@angular/core';
|
|
4
|
-
import { coerceBooleanProperty, coerceNumberProperty } from '@ardium-ui/devkit';
|
|
5
|
-
import { roundToMultiple, roundToPrecision } from 'more-rounding';
|
|
6
|
-
import { isDefined, isObject } from 'simple-bool';
|
|
7
|
-
import { _NgModelComponentBase, _ngModelComponentDefaults } from '../_internal/ngmodel-component';
|
|
8
|
-
import { SimpleComponentColor } from '../types/colors.types';
|
|
9
|
-
import { ArdSliderTooltipDirective } from './slider.directive';
|
|
10
|
-
import { SliderDecorationPosition, SliderTooltipBehavior, } from './slider.types';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
export const _asbtractSliderDefaults = {
|
|
13
|
-
..._ngModelComponentDefaults,
|
|
14
|
-
noTooltip: false,
|
|
15
|
-
showValueTicks: false,
|
|
16
|
-
formatTooltipFn: undefined,
|
|
17
|
-
min: 0,
|
|
18
|
-
max: 100,
|
|
19
|
-
step: 1,
|
|
20
|
-
shiftMultiplier: 5,
|
|
21
|
-
labelPosition: SliderDecorationPosition.Bottom,
|
|
22
|
-
labels: [],
|
|
23
|
-
color: SimpleComponentColor.Primary,
|
|
24
|
-
compact: false,
|
|
25
|
-
tooltipPosition: SliderDecorationPosition.Top,
|
|
26
|
-
tooltipBehavior: SliderTooltipBehavior.Auto,
|
|
27
|
-
};
|
|
28
|
-
export class _AbstractSlider extends _NgModelComponentBase {
|
|
29
|
-
constructor() {
|
|
30
|
-
super(...arguments);
|
|
31
|
-
this.elementRef = viewChild('track');
|
|
32
|
-
this.document = inject(DOCUMENT);
|
|
33
|
-
this.renderer = inject(Renderer2);
|
|
34
|
-
this.overlay = inject(Overlay);
|
|
35
|
-
this.scrollStrategyOpts = inject(ScrollStrategyOptions);
|
|
36
|
-
this.viewContainerRef = inject(ViewContainerRef);
|
|
37
|
-
this.noTooltip = input(this._DEFAULTS.noTooltip, { transform: v => coerceBooleanProperty(v) });
|
|
38
|
-
this.tooltipFormatFn = input(this._DEFAULTS.formatTooltipFn);
|
|
39
|
-
//! min, max, step sizes
|
|
40
|
-
this.min = input(this._DEFAULTS.min, { transform: v => coerceNumberProperty(v, this._DEFAULTS.min) });
|
|
41
|
-
this.max = input(this._DEFAULTS.max, { transform: v => coerceNumberProperty(v, this._DEFAULTS.max) });
|
|
42
|
-
this.step = input(this._DEFAULTS.step, {
|
|
43
|
-
transform: v => {
|
|
44
|
-
const step = coerceNumberProperty(v, this._DEFAULTS.step);
|
|
45
|
-
if (step === 0) {
|
|
46
|
-
throw new Error(`ARD-FT${this.componentId}0a: Cannot set <ard-${this.componentName}>'s [step] to 0.`);
|
|
47
|
-
}
|
|
48
|
-
if (step < 0) {
|
|
49
|
-
throw new Error(`ARD-FT${this.componentId}0b: Cannot set <ard-${this.componentName}>'s [step] to a negative value, got ${step}.`);
|
|
50
|
-
}
|
|
51
|
-
return step;
|
|
52
|
-
},
|
|
53
|
-
});
|
|
54
|
-
this.shiftMultiplier = input(this._DEFAULTS.shiftMultiplier, {
|
|
55
|
-
transform: v => coerceNumberProperty(v, this._DEFAULTS.shiftMultiplier),
|
|
56
|
-
});
|
|
57
|
-
this._stepSizeComputed = computed(() => this.step() / Math.abs(this.min() - this.max()));
|
|
58
|
-
//! value ticks
|
|
59
|
-
this.showValueTicks = input(this._DEFAULTS.showValueTicks, { transform: v => coerceBooleanProperty(v) });
|
|
60
|
-
this.percentStepSize = computed(() => this._stepSizeComputed() * 100);
|
|
61
|
-
this._tickArray = computed(() => {
|
|
62
|
-
const newArr = [];
|
|
63
|
-
let positionPercentCumulative = 0;
|
|
64
|
-
while (positionPercentCumulative < 100) {
|
|
65
|
-
newArr.push(positionPercentCumulative);
|
|
66
|
-
positionPercentCumulative += this._stepSizeComputed() * 100;
|
|
67
|
-
positionPercentCumulative = roundToPrecision(positionPercentCumulative, 6);
|
|
68
|
-
}
|
|
69
|
-
newArr.push(100);
|
|
70
|
-
return newArr.map(v => `${v}%`);
|
|
71
|
-
});
|
|
72
|
-
//! labels
|
|
73
|
-
this.labelPosition = input(this._DEFAULTS.labelPosition);
|
|
74
|
-
this.labels = input(this._DEFAULTS.labels);
|
|
75
|
-
this.labelObjects = computed(() => {
|
|
76
|
-
const v = this.labels();
|
|
77
|
-
if (!isDefined(v) || v.length === 0) {
|
|
78
|
-
return [];
|
|
79
|
-
}
|
|
80
|
-
return v.map(label => {
|
|
81
|
-
const obj = isObject(label) ? label : { label, for: label };
|
|
82
|
-
const v = this._clampValue(obj.for);
|
|
83
|
-
return {
|
|
84
|
-
label: String(obj.label),
|
|
85
|
-
positionPercent: `${this._valueToPercent(v) * 100}%`,
|
|
86
|
-
};
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
//! appearance
|
|
90
|
-
this.color = input(SimpleComponentColor.Primary);
|
|
91
|
-
this.compact = input(false, { transform: v => coerceBooleanProperty(v) });
|
|
92
|
-
this.ngClasses = computed(() => [
|
|
93
|
-
`ard-color-${this.color()}`,
|
|
94
|
-
`ard-labels-${this.labelPosition()}`,
|
|
95
|
-
`ard-tooltip-${this.tooltipPosition()}`,
|
|
96
|
-
this.compact() ? 'ard-compact' : '',
|
|
97
|
-
].join(' '));
|
|
98
|
-
//! determining transition
|
|
99
|
-
this.sliderTransition = computed(() => {
|
|
100
|
-
const x = this._totalSteps();
|
|
101
|
-
//this is determined using this graph: https://www.geogebra.org/calculator/nqgnhpap
|
|
102
|
-
//capped at y=80
|
|
103
|
-
//this specific graph is chosen because it looks the best in my opinion
|
|
104
|
-
const formulaResult = (20 * (x + 200)) / (x + 20) - 80;
|
|
105
|
-
const formulaResultRounded = roundToPrecision(formulaResult, 3);
|
|
106
|
-
if (formulaResultRounded < 0)
|
|
107
|
-
return '0';
|
|
108
|
-
const transitionDuration = Math.min(80, formulaResultRounded);
|
|
109
|
-
return transitionDuration + 'ms';
|
|
110
|
-
});
|
|
111
|
-
this._totalSteps = computed(() => (this.max() - this.min()) / this.step());
|
|
112
|
-
this.valueChange = output();
|
|
113
|
-
//! tooltip
|
|
114
|
-
this.tooltipTemplate = contentChild(ArdSliderTooltipDirective);
|
|
115
|
-
this.tooltipPosition = input(SliderDecorationPosition.Top);
|
|
116
|
-
this.tooltipBehavior = input(SliderTooltipBehavior.Auto);
|
|
117
|
-
//! event handlers
|
|
118
|
-
this._grabbedHandleId = signal(null);
|
|
119
|
-
this._shouldCheckForMovement = false;
|
|
120
|
-
this._bodyHasClass = false;
|
|
121
|
-
this.isSliderHandleGrabbed = computed(() => !!this._grabbedHandleId());
|
|
122
|
-
//! position calculators
|
|
123
|
-
this._positionPercent = [0];
|
|
124
|
-
}
|
|
125
|
-
set value(newValue) {
|
|
126
|
-
this.writeValue(newValue);
|
|
127
|
-
}
|
|
128
|
-
get value() {
|
|
129
|
-
return this._value;
|
|
130
|
-
}
|
|
131
|
-
_offset(offset, hasShift, handleId = 1) {
|
|
132
|
-
const stepSize = this._stepSizeComputed() * (hasShift ? this.shiftMultiplier() : 1);
|
|
133
|
-
let newPercent = this._positionPercent[handleId - 1] + stepSize * offset;
|
|
134
|
-
newPercent = this._clampPercentValue(newPercent);
|
|
135
|
-
this._setValueFromPercent(newPercent);
|
|
136
|
-
}
|
|
137
|
-
//! helper methods
|
|
138
|
-
_clampValue(v) {
|
|
139
|
-
//clamp between min and max
|
|
140
|
-
v = Math.min(v, this.max());
|
|
141
|
-
v = Math.max(v, this.min());
|
|
142
|
-
//round to the nearest step
|
|
143
|
-
v -= this.min();
|
|
144
|
-
v = roundToMultiple(v, this.step());
|
|
145
|
-
v += this.min();
|
|
146
|
-
return v;
|
|
147
|
-
}
|
|
148
|
-
_valueToPercent(v) {
|
|
149
|
-
const minMaxDifference = Math.abs(this.min() - this.max());
|
|
150
|
-
return (v - this.min()) / minMaxDifference;
|
|
151
|
-
}
|
|
152
|
-
_emitChange() {
|
|
153
|
-
const v = this.value;
|
|
154
|
-
this._onChangeRegistered?.(v);
|
|
155
|
-
this.valueChange.emit(v);
|
|
156
|
-
}
|
|
157
|
-
onPointerDownOnHandle(event, handleId = 1) {
|
|
158
|
-
this._grabbedHandleId.set(handleId);
|
|
159
|
-
this._shouldCheckForMovement = true;
|
|
160
|
-
if (!this._bodyHasClass) {
|
|
161
|
-
this._bodyHasClass = true;
|
|
162
|
-
this.renderer.addClass(this.document.body, 'ard-prevent-touch-actions');
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
onPointerUp() {
|
|
166
|
-
if (!this._shouldCheckForMovement)
|
|
167
|
-
return;
|
|
168
|
-
this._grabbedHandleId.set(null);
|
|
169
|
-
this._shouldCheckForMovement = false;
|
|
170
|
-
if (this._bodyHasClass) {
|
|
171
|
-
this._bodyHasClass = false;
|
|
172
|
-
this.renderer.removeClass(this.document.body, 'ard-prevent-touch-actions');
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
getHandlePosition(handleId = 1) {
|
|
176
|
-
return this._positionPercent[handleId - 1] * 100 + '%';
|
|
177
|
-
}
|
|
178
|
-
_setValueFromPercent(percent, handleId = 1) {
|
|
179
|
-
if (!handleId)
|
|
180
|
-
return;
|
|
181
|
-
if (this._positionPercent[handleId - 1] === percent)
|
|
182
|
-
return;
|
|
183
|
-
this._positionPercent[handleId - 1] = percent;
|
|
184
|
-
this._value = this._percentValueToValue(percent, handleId);
|
|
185
|
-
this._updateTooltipValue();
|
|
186
|
-
this._emitChange();
|
|
187
|
-
}
|
|
188
|
-
_writeValueFromEvent(event, handleId) {
|
|
189
|
-
const percent = this._getPercentValueFromEvent(event);
|
|
190
|
-
this._setValueFromPercent(percent, handleId);
|
|
191
|
-
}
|
|
192
|
-
_getElementRect() {
|
|
193
|
-
return this.elementRef().nativeElement.getBoundingClientRect();
|
|
194
|
-
}
|
|
195
|
-
_clampPercentValue(percent) {
|
|
196
|
-
//clamp between 0 and 1
|
|
197
|
-
percent = Math.min(percent, 1);
|
|
198
|
-
percent = Math.max(percent, 0);
|
|
199
|
-
//round to the nearest step
|
|
200
|
-
percent = roundToMultiple(percent, this._stepSizeComputed());
|
|
201
|
-
return percent;
|
|
202
|
-
}
|
|
203
|
-
_getPercentValueFromEvent(event) {
|
|
204
|
-
const rect = this._getElementRect();
|
|
205
|
-
let position;
|
|
206
|
-
if (event instanceof MouseEvent) {
|
|
207
|
-
position = event.clientX;
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
position = event.targetTouches[0].clientX;
|
|
211
|
-
}
|
|
212
|
-
const percent = (position - rect.left) / rect.width;
|
|
213
|
-
return this._clampPercentValue(percent);
|
|
214
|
-
}
|
|
215
|
-
//! key press handlers
|
|
216
|
-
onKeyPress(event) {
|
|
217
|
-
switch (event.code) {
|
|
218
|
-
case 'ArrowLeft': {
|
|
219
|
-
this._decrement(event);
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
case 'ArrowRight': {
|
|
223
|
-
this._increment(event);
|
|
224
|
-
return;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
_decrement(event, steps = 1) {
|
|
229
|
-
this._offset(-steps, event.shiftKey);
|
|
230
|
-
}
|
|
231
|
-
_increment(event, steps = 1) {
|
|
232
|
-
this._offset(+steps, event.shiftKey);
|
|
233
|
-
}
|
|
234
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: _AbstractSlider, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
235
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.13", type: _AbstractSlider, inputs: { noTooltip: { classPropertyName: "noTooltip", publicName: "noTooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipFormatFn: { classPropertyName: "tooltipFormatFn", publicName: "tooltipFormatFn", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, shiftMultiplier: { classPropertyName: "shiftMultiplier", publicName: "shiftMultiplier", isSignal: true, isRequired: false, transformFunction: null }, showValueTicks: { classPropertyName: "showValueTicks", publicName: "showValueTicks", isSignal: true, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, tooltipBehavior: { classPropertyName: "tooltipBehavior", publicName: "tooltipBehavior", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { listeners: { "document:pointerup": "onPointerUp($event)", "document:touchend": "onPointerUp($event)", "keydown": "onKeyPress($event)" } }, queries: [{ propertyName: "tooltipTemplate", first: true, predicate: ArdSliderTooltipDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "elementRef", first: true, predicate: ["track"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 }); }
|
|
236
|
-
}
|
|
237
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: _AbstractSlider, decorators: [{
|
|
238
|
-
type: Directive
|
|
239
|
-
}], propDecorators: { value: [{
|
|
240
|
-
type: Input
|
|
241
|
-
}], onPointerUp: [{
|
|
242
|
-
type: HostListener,
|
|
243
|
-
args: ['document:pointerup', ['$event']]
|
|
244
|
-
}, {
|
|
245
|
-
type: HostListener,
|
|
246
|
-
args: ['document:touchend', ['$event']]
|
|
247
|
-
}], onKeyPress: [{
|
|
248
|
-
type: HostListener,
|
|
249
|
-
args: ['keydown', ['$event']]
|
|
250
|
-
}] } });
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc2xpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9zbGlkZXIvYWJzdHJhY3Qtc2xpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUE2Qix5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTdELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9ELE9BQU8sRUFDTCx3QkFBd0IsRUFFeEIscUJBQXFCLEdBR3RCLE1BQU0sZ0JBQWdCLENBQUM7O0FBa0J4QixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBNEI7SUFDOUQsR0FBRyx5QkFBeUI7SUFDNUIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsY0FBYyxFQUFFLEtBQUs7SUFDckIsZUFBZSxFQUFFLFNBQVM7SUFDMUIsR0FB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QVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZCLE9BQU87WUFDVCxDQUFDO1lBQ0QsS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QixPQUFPO1lBQ1QsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ1MsVUFBVSxDQUFDLEtBQW9CLEVBQUUsS0FBSyxHQUFHLENBQUM7UUFDbEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNTLFVBQVUsQ0FBQyxLQUFvQixFQUFFLEtBQUssR0FBRyxDQUFDO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7K0dBcFFtQixlQUFlO21HQUFmLGVBQWUsaWxFQWlLSyx5QkFBeUI7OzRGQWpLN0MsZUFBZTtrQkFEcEMsU0FBUzs4QkF1SEosS0FBSztzQkFEUixLQUFLO2dCQXVFTixXQUFXO3NCQUZWLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUM3QyxZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXdEN0MsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBjb21wdXRlZCxcclxuICBjb250ZW50Q2hpbGQsXHJcbiAgaW5qZWN0LFxyXG4gIGlucHV0LFxyXG4gIG91dHB1dCxcclxuICBzaWduYWwsXHJcbiAgdmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xyXG5pbXBvcnQgeyByb3VuZFRvTXVsdGlwbGUsIHJvdW5kVG9QcmVjaXNpb24gfSBmcm9tICdtb3JlLXJvdW5kaW5nJztcclxuaW1wb3J0IHsgaXNEZWZpbmVkLCBpc09iamVjdCB9IGZyb20gJ3NpbXBsZS1ib29sJztcclxuaW1wb3J0IHsgX05nTW9kZWxDb21wb25lbnRCYXNlLCBfTmdNb2RlbENvbXBvbmVudERlZmF1bHRzLCBfbmdNb2RlbENvbXBvbmVudERlZmF1bHRzIH0gZnJvbSAnLi4vX2ludGVybmFsL25nbW9kZWwtY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2ltcGxlQ29tcG9uZW50Q29sb3IgfSBmcm9tICcuLi90eXBlcy9jb2xvcnMudHlwZXMnO1xyXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xyXG5pbXBvcnQgeyBBcmRTbGlkZXJUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi9zbGlkZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHtcclxuICBTbGlkZXJEZWNvcmF0aW9uUG9zaXRpb24sXHJcbiAgU2xpZGVyTGFiZWxPYmplY3QsXHJcbiAgU2xpZGVyVG9vbHRpcEJlaGF2aW9yLFxyXG4gIFNsaWRlclRvb2x0aXBGb3JtYXRGbixcclxuICBfSW50ZXJuYWxTbGlkZXJMYWJlbE9iamVjdCxcclxufSBmcm9tICcuL3NsaWRlci50eXBlcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIF9Bc2J0cmFjdFNsaWRlckRlZmF1bHRzIGV4dGVuZHMgX05nTW9kZWxDb21wb25lbnREZWZhdWx0cyB7XHJcbiAgbm9Ub29sdGlwOiBib29sZWFuO1xyXG4gIHNob3dWYWx1ZVRpY2tzOiBib29sZWFuO1xyXG4gIGZvcm1hdFRvb2x0aXBGbjogTnVsbGFibGU8U2xpZGVyVG9vbHRpcEZvcm1hdEZuPjtcclxuICBtaW46IG51bWJlcjtcclxuICBtYXg6IG51bWJlcjtcclxuICBzdGVwOiBudW1iZXI7XHJcbiAgc2hpZnRNdWx0aXBsaWVyOiBudW1iZXI7XHJcbiAgbGFiZWxQb3NpdGlvbjogU2xpZGVyRGVjb3JhdGlvblBvc2l0aW9uO1xyXG4gIGxhYmVsczogU2xpZGVyTGFiZWxPYmplY3RbXSB8IG51bWJlcltdIHwgbnVsbDtcclxuICBjb2xvcjogU2ltcGxlQ29tcG9uZW50Q29sb3I7XHJcbiAgY29tcGFjdDogYm9vbGVhbjtcclxuICB0b29sdGlwUG9zaXRpb246IFNsaWRlckRlY29yYXRpb25Qb3NpdGlvbjtcclxuICB0b29sdGlwQmVoYXZpb3I6IFNsaWRlclRvb2x0aXBCZWhhdmlvcjtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IF9hc2J0cmFjdFNsaWRlckRlZmF1bHRzOiBfQXNidHJhY3RTbGlkZXJEZWZhdWx0cyA9IHtcclxuICAuLi5fbmdNb2RlbENvbXBvbmVudERlZmF1bHRzLFxyXG4gIG5vVG9vbHRpcDogZmFsc2UsXHJcbiAgc2hvd1ZhbHVlVGlja3M6IGZhbHNlLFxyXG4gIGZvcm1hdFRvb2x0aXBGbjogdW5kZWZpbmVkLFxyXG4gIG1pbjogMCxcclxuICBtYXg6IDEwMCxcclxuICBzdGVwOiAxLFxyXG4gIHNoaWZ0TXVsdGlwbGllcjogNSxcclxuICBsYWJlbFBvc2l0aW9uOiBTbGlkZXJEZWNvcmF0aW9uUG9zaXRpb24uQm90dG9tLFxyXG4gIGxhYmVsczogW10sXHJcbiAgY29sb3I6IFNpbXBsZUNvbXBvbmVudENvbG9yLlByaW1hcnksXHJcbiAgY29tcGFjdDogZmFsc2UsXHJcbiAgdG9vbHRpcFBvc2l0aW9uOiBTbGlkZXJEZWNvcmF0aW9uUG9zaXRpb24uVG9wLFxyXG4gIHRvb2x0aXBCZWhhdmlvcjogU2xpZGVyVG9vbHRpcEJlaGF2aW9yLkF1dG8sXHJcbn07XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIF9BYnN0cmFjdFNsaWRlcjxUPiBleHRlbmRzIF9OZ01vZGVsQ29tcG9uZW50QmFzZSB7XHJcbiAgYWJzdHJhY3QgcmVhZG9ubHkgY29tcG9uZW50SWQ6IHN0cmluZztcclxuICBhYnN0cmFjdCByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XHJcblxyXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfREVGQVVMVFMhOiBfQXNidHJhY3RTbGlkZXJEZWZhdWx0cztcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCd0cmFjaycpO1xyXG5cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBzY3JvbGxTdHJhdGVneU9wdHMgPSBpbmplY3QoU2Nyb2xsU3RyYXRlZ3lPcHRpb25zKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcclxuXHJcbiAgcmVhZG9ubHkgbm9Ub29sdGlwID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5ub1Rvb2x0aXAsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgdG9vbHRpcEZvcm1hdEZuID0gaW5wdXQ8TnVsbGFibGU8U2xpZGVyVG9vbHRpcEZvcm1hdEZuPj4odGhpcy5fREVGQVVMVFMuZm9ybWF0VG9vbHRpcEZuKTtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IF91cGRhdGVUb29sdGlwVmFsdWUoKTogdm9pZDtcclxuXHJcbiAgLy8hIG1pbiwgbWF4LCBzdGVwIHNpemVzXHJcbiAgcmVhZG9ubHkgbWluID0gaW5wdXQ8bnVtYmVyLCBhbnk+KHRoaXMuX0RFRkFVTFRTLm1pbiwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgdGhpcy5fREVGQVVMVFMubWluKSB9KTtcclxuICByZWFkb25seSBtYXggPSBpbnB1dDxudW1iZXIsIGFueT4odGhpcy5fREVGQVVMVFMubWF4LCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCB0aGlzLl9ERUZBVUxUUy5tYXgpIH0pO1xyXG5cclxuICByZWFkb25seSBzdGVwID0gaW5wdXQ8bnVtYmVyLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnN0ZXAsIHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiB7XHJcbiAgICAgIGNvbnN0IHN0ZXAgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCB0aGlzLl9ERUZBVUxUUy5zdGVwKTtcclxuICAgICAgaWYgKHN0ZXAgPT09IDApIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVCR7dGhpcy5jb21wb25lbnRJZH0wYTogQ2Fubm90IHNldCA8YXJkLSR7dGhpcy5jb21wb25lbnROYW1lfT4ncyBbc3RlcF0gdG8gMC5gKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoc3RlcCA8IDApIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICBgQVJELUZUJHt0aGlzLmNvbXBvbmVudElkfTBiOiBDYW5ub3Qgc2V0IDxhcmQtJHt0aGlzLmNvbXBvbmVudE5hbWV9PidzIFtzdGVwXSB0byBhIG5lZ2F0aXZlIHZhbHVlLCBnb3QgJHtzdGVwfS5gXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gc3RlcDtcclxuICAgIH0sXHJcbiAgfSk7XHJcblxyXG4gIHJlYWRvbmx5IHNoaWZ0TXVsdGlwbGllciA9IGlucHV0PG51bWJlciwgYW55Pih0aGlzLl9ERUZBVUxUUy5zaGlmdE11bHRpcGxpZXIsIHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCB0aGlzLl9ERUZBVUxUUy5zaGlmdE11bHRpcGxpZXIpLFxyXG4gIH0pO1xyXG5cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3N0ZXBTaXplQ29tcHV0ZWQgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHRoaXMuc3RlcCgpIC8gTWF0aC5hYnModGhpcy5taW4oKSAtIHRoaXMubWF4KCkpKTtcclxuXHJcbiAgLy8hIHZhbHVlIHRpY2tzXHJcbiAgcmVhZG9ubHkgc2hvd1ZhbHVlVGlja3MgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnNob3dWYWx1ZVRpY2tzLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcblxyXG4gIHJlYWRvbmx5IHBlcmNlbnRTdGVwU2l6ZSA9IGNvbXB1dGVkPG51bWJlcj4oKCkgPT4gdGhpcy5fc3RlcFNpemVDb21wdXRlZCgpICogMTAwKTtcclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF90aWNrQXJyYXkgPSBjb21wdXRlZDxzdHJpbmdbXT4oKCkgPT4ge1xyXG4gICAgY29uc3QgbmV3QXJyOiBudW1iZXJbXSA9IFtdO1xyXG5cclxuICAgIGxldCBwb3NpdGlvblBlcmNlbnRDdW11bGF0aXZlID0gMDtcclxuICAgIHdoaWxlIChwb3NpdGlvblBlcmNlbnRDdW11bGF0aXZlIDwgMTAwKSB7XHJcbiAgICAgIG5ld0Fyci5wdXNoKHBvc2l0aW9uUGVyY2VudEN1bXVsYXRpdmUpO1xyXG4gICAgICBwb3NpdGlvblBlcmNlbnRDdW11bGF0aXZlICs9IHRoaXMuX3N0ZXBTaXplQ29tcHV0ZWQoKSAqIDEwMDtcclxuICAgICAgcG9zaXRpb25QZXJjZW50Q3VtdWxhdGl2ZSA9IHJvdW5kVG9QcmVjaXNpb24ocG9zaXRpb25QZXJjZW50Q3VtdWxhdGl2ZSwgNik7XHJcbiAgICB9XHJcbiAgICBuZXdBcnIucHVzaCgxMDApO1xyXG5cclxuICAgIHJldHVybiBuZXdBcnIubWFwKHYgPT4gYCR7dn0lYCk7XHJcbiAgfSk7XHJcblxyXG4gIC8vISBsYWJlbHNcclxuICByZWFkb25seSBsYWJlbFBvc2l0aW9uID0gaW5wdXQ8U2xpZGVyRGVjb3JhdGlvblBvc2l0aW9uPih0aGlzLl9ERUZBVUxUUy5sYWJlbFBvc2l0aW9uKTtcclxuXHJcbiAgcmVhZG9ubHkgbGFiZWxzID0gaW5wdXQ8U2xpZGVyTGFiZWxPYmplY3RbXSB8IG51bWJlcltdIHwgbnVsbD4odGhpcy5fREVGQVVMVFMubGFiZWxzKTtcclxuXHJcbiAgcmVhZG9ubHkgbGFiZWxPYmplY3RzID0gY29tcHV0ZWQ8X0ludGVybmFsU2xpZGVyTGFiZWxPYmplY3RbXT4oKCkgPT4ge1xyXG4gICAgY29uc3QgdiA9IHRoaXMubGFiZWxzKCk7XHJcbiAgICBpZiAoIWlzRGVmaW5lZCh2KSB8fCB2Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdi5tYXAobGFiZWwgPT4ge1xyXG4gICAgICBjb25zdCBvYmogPSBpc09iamVjdChsYWJlbCkgPyBsYWJlbCA6IHsgbGFiZWwsIGZvcjogbGFiZWwgfTtcclxuICAgICAgY29uc3QgdiA9IHRoaXMuX2NsYW1wVmFsdWUob2JqLmZvcik7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbGFiZWw6IFN0cmluZyhvYmoubGFiZWwpLFxyXG4gICAgICAgIHBvc2l0aW9uUGVyY2VudDogYCR7dGhpcy5fdmFsdWVUb1BlcmNlbnQodikgKiAxMDB9JWAsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9KTtcclxuXHJcbiAgLy8hIGFwcGVhcmFuY2VcclxuICByZWFkb25seSBjb2xvciA9IGlucHV0PFNpbXBsZUNvbXBvbmVudENvbG9yPihTaW1wbGVDb21wb25lbnRDb2xvci5QcmltYXJ5KTtcclxuXHJcbiAgcmVhZG9ubHkgY29tcGFjdCA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgbmdDbGFzc2VzID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PlxyXG4gICAgW1xyXG4gICAgICBgYXJkLWNvbG9yLSR7dGhpcy5jb2xvcigpfWAsXHJcbiAgICAgIGBhcmQtbGFiZWxzLSR7dGhpcy5sYWJlbFBvc2l0aW9uKCl9YCxcclxuICAgICAgYGFyZC10b29sdGlwLSR7dGhpcy50b29sdGlwUG9zaXRpb24oKX1gLFxyXG4gICAgICB0aGlzLmNvbXBhY3QoKSA/ICdhcmQtY29tcGFjdCcgOiAnJyxcclxuICAgIF0uam9pbignICcpXHJcbiAgKTtcclxuXHJcbiAgLy8hIGRldGVybWluaW5nIHRyYW5zaXRpb25cclxuICByZWFkb25seSBzbGlkZXJUcmFuc2l0aW9uID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgY29uc3QgeCA9IHRoaXMuX3RvdGFsU3RlcHMoKTtcclxuICAgIC8vdGhpcyBpcyBkZXRlcm1pbmVkIHVzaW5nIHRoaXMgZ3JhcGg6IGh0dHBzOi8vd3d3Lmdlb2dlYnJhLm9yZy9jYWxjdWxhdG9yL25xZ25ocGFwXHJcbiAgICAvL2NhcHBlZCBhdCB5PTgwXHJcbiAgICAvL3RoaXMgc3BlY2lmaWMgZ3JhcGggaXMgY2hvc2VuIGJlY2F1c2UgaXQgbG9va3MgdGhlIGJlc3QgaW4gbXkgb3BpbmlvblxyXG4gICAgY29uc3QgZm9ybXVsYVJlc3VsdCA9ICgyMCAqICh4ICsgMjAwKSkgLyAoeCArIDIwKSAtIDgwO1xyXG4gICAgY29uc3QgZm9ybXVsYVJlc3VsdFJvdW5kZWQgPSByb3VuZFRvUHJlY2lzaW9uKGZvcm11bGFSZXN1bHQsIDMpO1xyXG5cclxuICAgIGlmIChmb3JtdWxhUmVzdWx0Um91bmRlZCA8IDApIHJldHVybiAnMCc7XHJcblxyXG4gICAgY29uc3QgdHJhbnNpdGlvbkR1cmF0aW9uID0gTWF0aC5taW4oODAsIGZvcm11bGFSZXN1bHRSb3VuZGVkKTtcclxuICAgIHJldHVybiB0cmFuc2l0aW9uRHVyYXRpb24gKyAnbXMnO1xyXG4gIH0pO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3RvdGFsU3RlcHMgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+ICh0aGlzLm1heCgpIC0gdGhpcy5taW4oKSkgLyB0aGlzLnN0ZXAoKSk7XHJcblxyXG4gIC8vISB2YWx1ZSBpbnB1dCAmIG91dHB1dFxyXG4gIC8vISBhYnN0cmFjdCBoZXJlXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IF92YWx1ZTogVDtcclxuICBASW5wdXQoKVxyXG4gIHNldCB2YWx1ZShuZXdWYWx1ZTogVCkge1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKG5ld1ZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IHZhbHVlKCk6IFQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG91dHB1dDxUPigpO1xyXG5cclxuICAvLyEgd3JpdGVWYWx1ZVxyXG4gIC8vISBhYnN0cmFjdCBoZXJlXHJcbiAgYWJzdHJhY3Qgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2OiBhbnkpOiB2b2lkOyAvLyogYWJzdGFjdFxyXG4gIC8vISBtZXRob2RzIGZvciBwcm9ncmFtbWF0aWMgbWFuaXB1bGF0aW9uXHJcbiAgYWJzdHJhY3QgcmVzZXQoKTogdm9pZDtcclxuXHJcbiAgcHJvdGVjdGVkIF9vZmZzZXQob2Zmc2V0OiBudW1iZXIsIGhhc1NoaWZ0OiBib29sZWFuLCBoYW5kbGVJZCA9IDEpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0ZXBTaXplID0gdGhpcy5fc3RlcFNpemVDb21wdXRlZCgpICogKGhhc1NoaWZ0ID8gdGhpcy5zaGlmdE11bHRpcGxpZXIoKSA6IDEpO1xyXG4gICAgbGV0IG5ld1BlcmNlbnQgPSB0aGlzLl9wb3NpdGlvblBlcmNlbnRbaGFuZGxlSWQgLSAxXSArIHN0ZXBTaXplICogb2Zmc2V0O1xyXG4gICAgbmV3UGVyY2VudCA9IHRoaXMuX2NsYW1wUGVyY2VudFZhbHVlKG5ld1BlcmNlbnQpO1xyXG4gICAgdGhpcy5fc2V0VmFsdWVGcm9tUGVyY2VudChuZXdQZXJjZW50KTtcclxuICB9XHJcblxyXG4gIC8vISBoZWxwZXIgbWV0aG9kc1xyXG4gIHByb3RlY3RlZCBfY2xhbXBWYWx1ZSh2OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgLy9jbGFtcCBiZXR3ZWVuIG1pbiBhbmQgbWF4XHJcbiAgICB2ID0gTWF0aC5taW4odiwgdGhpcy5tYXgoKSk7XHJcbiAgICB2ID0gTWF0aC5tYXgodiwgdGhpcy5taW4oKSk7XHJcbiAgICAvL3JvdW5kIHRvIHRoZSBuZWFyZXN0IHN0ZXBcclxuICAgIHYgLT0gdGhpcy5taW4oKTtcclxuICAgIHYgPSByb3VuZFRvTXVsdGlwbGUodiwgdGhpcy5zdGVwKCkpO1xyXG4gICAgdiArPSB0aGlzLm1pbigpO1xyXG4gICAgcmV0dXJuIHY7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBfdmFsdWVUb1BlcmNlbnQodjogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IG1pbk1heERpZmZlcmVuY2UgPSBNYXRoLmFicyh0aGlzLm1pbigpIC0gdGhpcy5tYXgoKSk7XHJcbiAgICByZXR1cm4gKHYgLSB0aGlzLm1pbigpKSAvIG1pbk1heERpZmZlcmVuY2U7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBfZW1pdENoYW5nZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHYgPSB0aGlzLnZhbHVlO1xyXG4gICAgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkPy4odik7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XHJcbiAgfVxyXG5cclxuICAvLyEgdG9vbHRpcFxyXG4gIHJlYWRvbmx5IHRvb2x0aXBUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRTbGlkZXJUb29sdGlwRGlyZWN0aXZlKTtcclxuXHJcbiAgcmVhZG9ubHkgdG9vbHRpcFBvc2l0aW9uID0gaW5wdXQ8U2xpZGVyRGVjb3JhdGlvblBvc2l0aW9uPihTbGlkZXJEZWNvcmF0aW9uUG9zaXRpb24uVG9wKTtcclxuICByZWFkb25seSB0b29sdGlwQmVoYXZpb3IgPSBpbnB1dDxTbGlkZXJUb29sdGlwQmVoYXZpb3I+KFNsaWRlclRvb2x0aXBCZWhhdmlvci5BdXRvKTtcclxuXHJcbiAgLy8hIGV2ZW50IGhhbmRsZXJzXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9ncmFiYmVkSGFuZGxlSWQgPSBzaWduYWw8bnVsbCB8IG51bWJlcj4obnVsbCk7XHJcbiAgcHJvdGVjdGVkIF9zaG91bGRDaGVja0Zvck1vdmVtZW50ID0gZmFsc2U7XHJcbiAgcHJvdGVjdGVkIF9ib2R5SGFzQ2xhc3MgPSBmYWxzZTtcclxuXHJcbiAgcmVhZG9ubHkgaXNTbGlkZXJIYW5kbGVHcmFiYmVkID0gY29tcHV0ZWQoKCkgPT4gISF0aGlzLl9ncmFiYmVkSGFuZGxlSWQoKSk7XHJcblxyXG4gIGFic3RyYWN0IG9uVHJhY2tIaXRib3hQb2ludGVyRG93bihldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkOyAvLyogYWJzdGFjdFxyXG5cclxuICBvblBvaW50ZXJEb3duT25IYW5kbGUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LCBoYW5kbGVJZCA9IDEpOiB2b2lkIHtcclxuICAgIHRoaXMuX2dyYWJiZWRIYW5kbGVJZC5zZXQoaGFuZGxlSWQpO1xyXG4gICAgdGhpcy5fc2hvdWxkQ2hlY2tGb3JNb3ZlbWVudCA9IHRydWU7XHJcbiAgICBpZiAoIXRoaXMuX2JvZHlIYXNDbGFzcykge1xyXG4gICAgICB0aGlzLl9ib2R5SGFzQ2xhc3MgPSB0cnVlO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2FyZC1wcmV2ZW50LXRvdWNoLWFjdGlvbnMnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFic3RyYWN0IG9uUG9pbnRlck1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZDsgLy8qIGFic3RhY3RcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6cG9pbnRlcnVwJywgWyckZXZlbnQnXSlcclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDp0b3VjaGVuZCcsIFsnJGV2ZW50J10pXHJcbiAgb25Qb2ludGVyVXAoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX3Nob3VsZENoZWNrRm9yTW92ZW1lbnQpIHJldHVybjtcclxuICAgIHRoaXMuX2dyYWJiZWRIYW5kbGVJZC5zZXQobnVsbCk7XHJcbiAgICB0aGlzLl9zaG91bGRDaGVja0Zvck1vdmVtZW50ID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5fYm9keUhhc0NsYXNzKSB7XHJcbiAgICAgIHRoaXMuX2JvZHlIYXNDbGFzcyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2FyZC1wcmV2ZW50LXRvdWNoLWFjdGlvbnMnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vISBwb3NpdGlvbiBjYWxjdWxhdG9yc1xyXG4gIHByb3RlY3RlZCBfcG9zaXRpb25QZXJjZW50OiBbbnVtYmVyXSB8IFtudW1iZXIsIG51bWJlcl0gPSBbMF07XHJcbiAgZ2V0SGFuZGxlUG9zaXRpb24oaGFuZGxlSWQgPSAxKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9wb3NpdGlvblBlcmNlbnRbaGFuZGxlSWQgLSAxXSAqIDEwMCArICclJztcclxuICB9XHJcbiAgcHJvdGVjdGVkIF9zZXRWYWx1ZUZyb21QZXJjZW50KHBlcmNlbnQ6IG51bWJlciwgaGFuZGxlSWQ6IG51bWJlciB8IG51bGwgPSAxKTogdm9pZCB7XHJcbiAgICBpZiAoIWhhbmRsZUlkKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5fcG9zaXRpb25QZXJjZW50W2hhbmRsZUlkIC0gMV0gPT09IHBlcmNlbnQpIHJldHVybjtcclxuICAgIHRoaXMuX3Bvc2l0aW9uUGVyY2VudFtoYW5kbGVJZCAtIDFdID0gcGVyY2VudDtcclxuICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fcGVyY2VudFZhbHVlVG9WYWx1ZShwZXJjZW50LCBoYW5kbGVJZCk7XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlVG9vbHRpcFZhbHVlKCk7XHJcblxyXG4gICAgdGhpcy5fZW1pdENoYW5nZSgpO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgX3dyaXRlVmFsdWVGcm9tRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LCBoYW5kbGVJZD86IG51bWJlciB8IG51bGwpOiB2b2lkIHtcclxuICAgIGNvbnN0IHBlcmNlbnQgPSB0aGlzLl9nZXRQZXJjZW50VmFsdWVGcm9tRXZlbnQoZXZlbnQpO1xyXG4gICAgdGhpcy5fc2V0VmFsdWVGcm9tUGVyY2VudChwZXJjZW50LCBoYW5kbGVJZCk7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfcGVyY2VudFZhbHVlVG9WYWx1ZShwZXJjZW50OiBudW1iZXIsIGhhbmRsZUlkPzogbnVtYmVyKTogVDsgLy8qIGFic3RhY3RcclxuXHJcbiAgcHJvdGVjdGVkIF9nZXRFbGVtZW50UmVjdCgpOiBET01SZWN0IHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYoKSEubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIF9jbGFtcFBlcmNlbnRWYWx1ZShwZXJjZW50OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgLy9jbGFtcCBiZXR3ZWVuIDAgYW5kIDFcclxuICAgIHBlcmNlbnQgPSBNYXRoLm1pbihwZXJjZW50LCAxKTtcclxuICAgIHBlcmNlbnQgPSBNYXRoLm1heChwZXJjZW50LCAwKTtcclxuICAgIC8vcm91bmQgdG8gdGhlIG5lYXJlc3Qgc3RlcFxyXG4gICAgcGVyY2VudCA9IHJvdW5kVG9NdWx0aXBsZShwZXJjZW50LCB0aGlzLl9zdGVwU2l6ZUNvbXB1dGVkKCkpO1xyXG4gICAgcmV0dXJuIHBlcmNlbnQ7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBfZ2V0UGVyY2VudFZhbHVlRnJvbUV2ZW50KGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IG51bWJlciB7XHJcbiAgICBjb25zdCByZWN0ID0gdGhpcy5fZ2V0RWxlbWVudFJlY3QoKTtcclxuICAgIGxldCBwb3NpdGlvbjogbnVtYmVyO1xyXG4gICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCkge1xyXG4gICAgICBwb3NpdGlvbiA9IGV2ZW50LmNsaWVudFg7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBwb3NpdGlvbiA9IGV2ZW50LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WDtcclxuICAgIH1cclxuICAgIGNvbnN0IHBlcmNlbnQgPSAocG9zaXRpb24gLSByZWN0LmxlZnQpIC8gcmVjdC53aWR0aDtcclxuICAgIHJldHVybiB0aGlzLl9jbGFtcFBlcmNlbnRWYWx1ZShwZXJjZW50KTtcclxuICB9XHJcbiAgLy8hIGtleSBwcmVzcyBoYW5kbGVyc1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxyXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xyXG4gICAgICBjYXNlICdBcnJvd0xlZnQnOiB7XHJcbiAgICAgICAgdGhpcy5fZGVjcmVtZW50KGV2ZW50KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6IHtcclxuICAgICAgICB0aGlzLl9pbmNyZW1lbnQoZXZlbnQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBwcm90ZWN0ZWQgX2RlY3JlbWVudChldmVudDogS2V5Ym9hcmRFdmVudCwgc3RlcHMgPSAxKTogdm9pZCB7XHJcbiAgICB0aGlzLl9vZmZzZXQoLXN0ZXBzLCBldmVudC5zaGlmdEtleSk7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBfaW5jcmVtZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50LCBzdGVwcyA9IDEpOiB2b2lkIHtcclxuICAgIHRoaXMuX29mZnNldCgrc3RlcHMsIGV2ZW50LnNoaWZ0S2V5KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export * from './range-slider/range-slider.component';
|
|
2
|
-
export * from './range-slider/range-slider.module';
|
|
3
|
-
export * from './slider.component';
|
|
4
|
-
export * from './slider.defaults';
|
|
5
|
-
export * from './slider.directive';
|
|
6
|
-
export * from './slider.module';
|
|
7
|
-
export * from './slider.types';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3NsaWRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yYW5nZS1zbGlkZXIvcmFuZ2Utc2xpZGVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmFuZ2Utc2xpZGVyL3JhbmdlLXNsaWRlci5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NsaWRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NsaWRlci5kZWZhdWx0cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2xpZGVyLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2xpZGVyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2xpZGVyLnR5cGVzJztcclxuIl19
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, HostListener, Inject, ViewEncapsulation, signal } from '@angular/core';
|
|
2
|
-
import { roundToPrecision } from 'more-rounding';
|
|
3
|
-
import { isNumber, isObject } from 'simple-bool';
|
|
4
|
-
import { _AbstractSlider } from '../abstract-slider';
|
|
5
|
-
import { ARD_SLIDER_DEFAULTS } from '../slider.defaults';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common";
|
|
8
|
-
export class ArdiumRangeSliderComponent extends _AbstractSlider {
|
|
9
|
-
constructor(defaults) {
|
|
10
|
-
super(defaults);
|
|
11
|
-
this.componentId = '106';
|
|
12
|
-
this.componentName = 'range-slider';
|
|
13
|
-
this._value = { low: -Infinity, high: Infinity };
|
|
14
|
-
//! tooltip updater
|
|
15
|
-
this._tooltipValue = this.value;
|
|
16
|
-
//! handle focus monitors
|
|
17
|
-
this.currentHandle = signal(null);
|
|
18
|
-
}
|
|
19
|
-
ngOnInit() {
|
|
20
|
-
super.ngOnInit();
|
|
21
|
-
if (this._value.low !== -Infinity && this._value.high !== Infinity)
|
|
22
|
-
return;
|
|
23
|
-
this.writeValue({ low: this.min(), high: this.max() });
|
|
24
|
-
}
|
|
25
|
-
//! writeValue
|
|
26
|
-
_isValidObject(v) {
|
|
27
|
-
return isObject(v) && isNumber(v['low']) && isNumber(v['high']);
|
|
28
|
-
}
|
|
29
|
-
_isValidTuple(v) {
|
|
30
|
-
return Array.isArray(v) && isNumber(v[0]) && isNumber(v[1]) && v.length === 2;
|
|
31
|
-
}
|
|
32
|
-
_arrayValueToObjectValue(v) {
|
|
33
|
-
return { low: v[0], high: v[1] };
|
|
34
|
-
}
|
|
35
|
-
_normalizeSliderRange(v) {
|
|
36
|
-
if (v.low <= v.high)
|
|
37
|
-
return v;
|
|
38
|
-
return { low: v.high, high: v.low };
|
|
39
|
-
}
|
|
40
|
-
writeValue(v) {
|
|
41
|
-
if (!this._isValidObject(v) && !this._isValidTuple(v)) {
|
|
42
|
-
this.reset();
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
let low = -Infinity;
|
|
46
|
-
let high = Infinity;
|
|
47
|
-
if (this._isValidObject(v)) {
|
|
48
|
-
low = v.low;
|
|
49
|
-
high = v.high;
|
|
50
|
-
}
|
|
51
|
-
else if (this._isValidTuple(v)) {
|
|
52
|
-
low = v[0];
|
|
53
|
-
high = v[1];
|
|
54
|
-
}
|
|
55
|
-
const lowClamped = this._clampValue(low);
|
|
56
|
-
const highClamped = this._clampValue(high);
|
|
57
|
-
const value = this._arrayValueToObjectValue([lowClamped, highClamped]);
|
|
58
|
-
this._value = value;
|
|
59
|
-
this._positionPercent[0] = this._valueToPercent(lowClamped);
|
|
60
|
-
this._positionPercent[1] = this._valueToPercent(highClamped);
|
|
61
|
-
this._updateTooltipValue();
|
|
62
|
-
}
|
|
63
|
-
get value() {
|
|
64
|
-
return this._normalizeSliderRange(this._value);
|
|
65
|
-
}
|
|
66
|
-
set value(v) {
|
|
67
|
-
this.writeValue(v);
|
|
68
|
-
}
|
|
69
|
-
_updateTooltipValue() {
|
|
70
|
-
const v = Object.create(this._value);
|
|
71
|
-
const formatFn = this.tooltipFormatFn();
|
|
72
|
-
if (formatFn) {
|
|
73
|
-
v.low = formatFn(v.low);
|
|
74
|
-
v.high = formatFn(v.high);
|
|
75
|
-
}
|
|
76
|
-
this._tooltipValue = v;
|
|
77
|
-
}
|
|
78
|
-
getTooltipContext(type) {
|
|
79
|
-
return {
|
|
80
|
-
value: this._tooltipValue[type],
|
|
81
|
-
$implicit: this._tooltipValue[type],
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
//! methods for programmatic manipulation
|
|
85
|
-
reset() {
|
|
86
|
-
this._value = { low: -Infinity, high: Infinity };
|
|
87
|
-
this._positionPercent[0] = 0;
|
|
88
|
-
this._positionPercent[1] = 1;
|
|
89
|
-
}
|
|
90
|
-
//! track overlay getters
|
|
91
|
-
get trackOverlayLeft() {
|
|
92
|
-
return Math.min(...this._positionPercent) * 100 + '%';
|
|
93
|
-
}
|
|
94
|
-
get trackOverlayWidth() {
|
|
95
|
-
return Math.abs(this._positionPercent[0] - this._positionPercent[1]) * 100 + '%';
|
|
96
|
-
}
|
|
97
|
-
//! event handlers
|
|
98
|
-
onTrackHitboxPointerDown(event) {
|
|
99
|
-
this._writeValueFromEvent(event);
|
|
100
|
-
this.onPointerDownOnHandle(event);
|
|
101
|
-
}
|
|
102
|
-
onPointerMove(event) {
|
|
103
|
-
if (!this._shouldCheckForMovement)
|
|
104
|
-
return;
|
|
105
|
-
if (!this._bodyHasClass) {
|
|
106
|
-
this._bodyHasClass = true;
|
|
107
|
-
this.renderer.addClass(this.document.body, 'ard-prevent-touch-actions');
|
|
108
|
-
}
|
|
109
|
-
this._writeValueFromEvent(event, this._grabbedHandleId());
|
|
110
|
-
}
|
|
111
|
-
//! position calculators
|
|
112
|
-
_percentValueToValue(percent, handleId) {
|
|
113
|
-
const minMaxDifference = Math.abs(this.min() - this.max());
|
|
114
|
-
let newVal = percent * minMaxDifference + this.min();
|
|
115
|
-
//round to 9 decimal places to avoid floating point arithmetic errors
|
|
116
|
-
//9 is an arbitrary number that just works well. ¯\_(ツ)_/¯
|
|
117
|
-
newVal = roundToPrecision(newVal, 9);
|
|
118
|
-
const newValObj = { low: this._value.low, high: this._value.high };
|
|
119
|
-
if (handleId === 1) {
|
|
120
|
-
newValObj.low = newVal;
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
newValObj.high = newVal;
|
|
124
|
-
}
|
|
125
|
-
return newValObj;
|
|
126
|
-
}
|
|
127
|
-
onHandleFocus(event, handleId) {
|
|
128
|
-
this.onFocus(event);
|
|
129
|
-
this.currentHandle.set(handleId);
|
|
130
|
-
}
|
|
131
|
-
onBlur(event) {
|
|
132
|
-
super.onBlur(event);
|
|
133
|
-
this.currentHandle.set(null);
|
|
134
|
-
}
|
|
135
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumRangeSliderComponent, deps: [{ token: ARD_SLIDER_DEFAULTS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
136
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumRangeSliderComponent, selector: "ard-range-slider", host: { listeners: { "document:mousemove": "onPointerMove($event)", "document:touchmove": "onPointerMove($event)" } }, usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"ard-range-slider-container-master\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-slider-handle-grabbed]=\"isSliderHandleGrabbed()\"\r\n [style]=\"{ '--_ard-slider-transition': sliderTransition() }\"\r\n>\r\n <div class=\"ard-slider-container\">\r\n <div\r\n #track\r\n class=\"ard-slider-track\"\r\n (pointerdown)=\"onTrackHitboxPointerDown($event)\"\r\n >\r\n <div class=\"ard-hitbox\"></div>\r\n <div class=\"ard-slider-track-overlay ard-slider-track-inactive\"></div>\r\n <div\r\n class=\"ard-slider-track-overlay ard-slider-track-active\"\r\n [style]=\"{\r\n left: trackOverlayLeft,\r\n width: trackOverlayWidth\r\n }\"\r\n ></div>\r\n @if (showValueTicks()) {\r\n <div class=\"ard-value-tick-container\">\r\n @for (tick of _tickArray(); track tick) {\r\n <div\r\n class=\"ard-value-tick\"\r\n [style]=\"{ left: tick }\"\r\n ></div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <button\r\n #focusableElement\r\n type=\"button\"\r\n class=\"ard-slider-handle\"\r\n [tabindex]=\"tabIndex()\"\r\n [class.ard-grabbed]=\"isSliderHandleGrabbed() && currentHandle() === 1\"\r\n (pointerdown)=\"onPointerDownOnHandle($event, 1)\"\r\n (focus)=\"onHandleFocus($event, 1)\"\r\n (blur)=\"onBlur($event)\"\r\n [style]=\"{ left: getHandlePosition(1) }\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-hitbox\"></div>\r\n </button>\r\n @if (tooltipBehavior() !== 'never') {\r\n <div\r\n class=\"ard-slider-tooltip-wrapper\"\r\n [class.ard-tooltip-always]=\"tooltipBehavior() === 'always'\"\r\n [style]=\"{ left: getHandlePosition(1) }\"\r\n >\r\n <ng-template\r\n #defaultTooltipTemplate\r\n let-value\r\n >\r\n <div class=\"ard-slider-tooltip\">{{ value }}</div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"tooltipTemplate()?.template || defaultTooltipTemplate\"\r\n [ngTemplateOutletContext]=\"getTooltipContext('low')\"\r\n >\r\n </ng-template>\r\n </div>\r\n }\r\n <button\r\n #focusableElement\r\n type=\"button\"\r\n class=\"ard-slider-handle\"\r\n [tabindex]=\"tabIndex()\"\r\n [class.ard-grabbed]=\"isSliderHandleGrabbed() && currentHandle() === 2\"\r\n (pointerdown)=\"onPointerDownOnHandle($event, 2)\"\r\n (focus)=\"onHandleFocus($event, 2)\"\r\n (blur)=\"onBlur($event)\"\r\n [style]=\"{ left: getHandlePosition(2) }\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-hitbox\"></div>\r\n </button>\r\n @if (tooltipBehavior() !== 'never') {\r\n <div\r\n class=\"ard-slider-tooltip-wrapper\"\r\n [class.ard-tooltip-always]=\"tooltipBehavior() === 'always'\"\r\n [style]=\"{ left: getHandlePosition(2) }\"\r\n >\r\n <ng-template\r\n #defaultTooltipTemplate\r\n let-value\r\n >\r\n <div class=\"ard-slider-tooltip\">{{ value }}</div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"tooltipTemplate()?.template || defaultTooltipTemplate\"\r\n [ngTemplateOutletContext]=\"getTooltipContext('high')\"\r\n >\r\n </ng-template>\r\n </div>\r\n }\r\n </div>\r\n @if (labelObjects().length) {\r\n <div\r\n class=\"ard-slider-label-container\"\r\n *ngIf=\"labelObjects.length\"\r\n >\r\n @for (label of labelObjects(); track $index) {\r\n <div\r\n class=\"ard-slider-label\"\r\n [style]=\"{ left: label.positionPercent }\"\r\n >\r\n {{ label.label }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n\r\n<ng-template #handleThumbBase>\r\n <div class=\"ard-slide-thumb\"></div>\r\n</ng-template>\r\n", styles: ["body.ard-prevent-touch-actions,body.ard-prevent-touch-actions *{touch-action:none}.ard-range-slider-container-master{display:flex;flex-direction:column}.ard-range-slider-container-master.ard-labels-top{flex-direction:column-reverse}.ard-range-slider-container-master .ard-slider-tooltip-wrapper{position:absolute;transform:translate(-50%);pointer-events:none}.ard-range-slider-container-master.ard-tooltip-top .ard-slider-tooltip-wrapper{bottom:100%}.ard-range-slider-container-master.ard-tooltip-bottom .ard-slider-tooltip-wrapper{top:100%}.ard-range-slider-container-master .ard-slider-handle{position:absolute;left:0;transform:translate(-50%)}.ard-range-slider-container-master .ard-slider-tooltip,.ard-range-slider-container-master .ard-slider-track,.ard-range-slider-container-master .ard-value-tick-container{position:relative}.ard-range-slider-container-master .ard-value-tick{position:absolute}.ard-range-slider-container-master .ard-slider-label-container{position:relative;width:100%;height:1em}.ard-range-slider-container-master .ard-slider-label{position:absolute;line-height:1em}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
137
|
-
}
|
|
138
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumRangeSliderComponent, decorators: [{
|
|
139
|
-
type: Component,
|
|
140
|
-
args: [{ selector: 'ard-range-slider', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"ard-range-slider-container-master\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-slider-handle-grabbed]=\"isSliderHandleGrabbed()\"\r\n [style]=\"{ '--_ard-slider-transition': sliderTransition() }\"\r\n>\r\n <div class=\"ard-slider-container\">\r\n <div\r\n #track\r\n class=\"ard-slider-track\"\r\n (pointerdown)=\"onTrackHitboxPointerDown($event)\"\r\n >\r\n <div class=\"ard-hitbox\"></div>\r\n <div class=\"ard-slider-track-overlay ard-slider-track-inactive\"></div>\r\n <div\r\n class=\"ard-slider-track-overlay ard-slider-track-active\"\r\n [style]=\"{\r\n left: trackOverlayLeft,\r\n width: trackOverlayWidth\r\n }\"\r\n ></div>\r\n @if (showValueTicks()) {\r\n <div class=\"ard-value-tick-container\">\r\n @for (tick of _tickArray(); track tick) {\r\n <div\r\n class=\"ard-value-tick\"\r\n [style]=\"{ left: tick }\"\r\n ></div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <button\r\n #focusableElement\r\n type=\"button\"\r\n class=\"ard-slider-handle\"\r\n [tabindex]=\"tabIndex()\"\r\n [class.ard-grabbed]=\"isSliderHandleGrabbed() && currentHandle() === 1\"\r\n (pointerdown)=\"onPointerDownOnHandle($event, 1)\"\r\n (focus)=\"onHandleFocus($event, 1)\"\r\n (blur)=\"onBlur($event)\"\r\n [style]=\"{ left: getHandlePosition(1) }\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-hitbox\"></div>\r\n </button>\r\n @if (tooltipBehavior() !== 'never') {\r\n <div\r\n class=\"ard-slider-tooltip-wrapper\"\r\n [class.ard-tooltip-always]=\"tooltipBehavior() === 'always'\"\r\n [style]=\"{ left: getHandlePosition(1) }\"\r\n >\r\n <ng-template\r\n #defaultTooltipTemplate\r\n let-value\r\n >\r\n <div class=\"ard-slider-tooltip\">{{ value }}</div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"tooltipTemplate()?.template || defaultTooltipTemplate\"\r\n [ngTemplateOutletContext]=\"getTooltipContext('low')\"\r\n >\r\n </ng-template>\r\n </div>\r\n }\r\n <button\r\n #focusableElement\r\n type=\"button\"\r\n class=\"ard-slider-handle\"\r\n [tabindex]=\"tabIndex()\"\r\n [class.ard-grabbed]=\"isSliderHandleGrabbed() && currentHandle() === 2\"\r\n (pointerdown)=\"onPointerDownOnHandle($event, 2)\"\r\n (focus)=\"onHandleFocus($event, 2)\"\r\n (blur)=\"onBlur($event)\"\r\n [style]=\"{ left: getHandlePosition(2) }\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-hitbox\"></div>\r\n </button>\r\n @if (tooltipBehavior() !== 'never') {\r\n <div\r\n class=\"ard-slider-tooltip-wrapper\"\r\n [class.ard-tooltip-always]=\"tooltipBehavior() === 'always'\"\r\n [style]=\"{ left: getHandlePosition(2) }\"\r\n >\r\n <ng-template\r\n #defaultTooltipTemplate\r\n let-value\r\n >\r\n <div class=\"ard-slider-tooltip\">{{ value }}</div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"tooltipTemplate()?.template || defaultTooltipTemplate\"\r\n [ngTemplateOutletContext]=\"getTooltipContext('high')\"\r\n >\r\n </ng-template>\r\n </div>\r\n }\r\n </div>\r\n @if (labelObjects().length) {\r\n <div\r\n class=\"ard-slider-label-container\"\r\n *ngIf=\"labelObjects.length\"\r\n >\r\n @for (label of labelObjects(); track $index) {\r\n <div\r\n class=\"ard-slider-label\"\r\n [style]=\"{ left: label.positionPercent }\"\r\n >\r\n {{ label.label }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n\r\n<ng-template #handleThumbBase>\r\n <div class=\"ard-slide-thumb\"></div>\r\n</ng-template>\r\n", styles: ["body.ard-prevent-touch-actions,body.ard-prevent-touch-actions *{touch-action:none}.ard-range-slider-container-master{display:flex;flex-direction:column}.ard-range-slider-container-master.ard-labels-top{flex-direction:column-reverse}.ard-range-slider-container-master .ard-slider-tooltip-wrapper{position:absolute;transform:translate(-50%);pointer-events:none}.ard-range-slider-container-master.ard-tooltip-top .ard-slider-tooltip-wrapper{bottom:100%}.ard-range-slider-container-master.ard-tooltip-bottom .ard-slider-tooltip-wrapper{top:100%}.ard-range-slider-container-master .ard-slider-handle{position:absolute;left:0;transform:translate(-50%)}.ard-range-slider-container-master .ard-slider-tooltip,.ard-range-slider-container-master .ard-slider-track,.ard-range-slider-container-master .ard-value-tick-container{position:relative}.ard-range-slider-container-master .ard-value-tick{position:absolute}.ard-range-slider-container-master .ard-slider-label-container{position:relative;width:100%;height:1em}.ard-range-slider-container-master .ard-slider-label{position:absolute;line-height:1em}\n"] }]
|
|
141
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
142
|
-
type: Inject,
|
|
143
|
-
args: [ARD_SLIDER_DEFAULTS]
|
|
144
|
-
}] }], propDecorators: { onPointerMove: [{
|
|
145
|
-
type: HostListener,
|
|
146
|
-
args: ['document:mousemove', ['$event']]
|
|
147
|
-
}, {
|
|
148
|
-
type: HostListener,
|
|
149
|
-
args: ['document:touchmove', ['$event']]
|
|
150
|
-
}] } });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvc2xpZGVyL3JhbmdlLXNsaWRlci9yYW5nZS1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9zbGlkZXIvcmFuZ2Utc2xpZGVyL3JhbmdlLXNsaWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFxQixNQUFNLG9CQUFvQixDQUFDOzs7QUFVNUUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGVBQTRCO0lBSzFFLFlBQXlDLFFBQTJCO1FBQ2xFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUxULGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsY0FBYyxDQUFDO1FBTzlCLFdBQU0sR0FBZ0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBb0RuRSxtQkFBbUI7UUFDbkIsa0JBQWEsR0FBaUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQW1FekQseUJBQXlCO1FBQ2hCLGtCQUFhLEdBQUcsTUFBTSxDQUFlLElBQUksQ0FBQyxDQUFDO0lBM0hwRCxDQUFDO0lBSVEsUUFBUTtRQUNmLEtBQUss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QyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIEluamVjdCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHJvdW5kVG9QcmVjaXNpb24gfSBmcm9tICdtb3JlLXJvdW5kaW5nJztcclxuaW1wb3J0IHsgaXNOdW1iZXIsIGlzT2JqZWN0IH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xyXG5pbXBvcnQgeyBfQWJzdHJhY3RTbGlkZXIgfSBmcm9tICcuLi9hYnN0cmFjdC1zbGlkZXInO1xyXG5pbXBvcnQgeyBBUkRfU0xJREVSX0RFRkFVTFRTLCBBcmRTbGlkZXJEZWZhdWx0cyB9IGZyb20gJy4uL3NsaWRlci5kZWZhdWx0cyc7XHJcbmltcG9ydCB7IFNsaWRlclJhbmdlLCBTbGlkZXJUb29sdGlwQ29udGV4dCB9IGZyb20gJy4uL3NsaWRlci50eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FyZC1yYW5nZS1zbGlkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yYW5nZS1zbGlkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JhbmdlLXNsaWRlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcmRpdW1SYW5nZVNsaWRlckNvbXBvbmVudCBleHRlbmRzIF9BYnN0cmFjdFNsaWRlcjxTbGlkZXJSYW5nZT4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlYWRvbmx5IGNvbXBvbmVudElkID0gJzEwNic7XHJcbiAgcmVhZG9ubHkgY29tcG9uZW50TmFtZSA9ICdyYW5nZS1zbGlkZXInO1xyXG5cclxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX0RFRkFVTFRTITogQXJkU2xpZGVyRGVmYXVsdHM7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBUkRfU0xJREVSX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkU2xpZGVyRGVmYXVsdHMpIHtcclxuICAgIHN1cGVyKGRlZmF1bHRzKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfdmFsdWU6IFNsaWRlclJhbmdlID0geyBsb3c6IC1JbmZpbml0eSwgaGlnaDogSW5maW5pdHkgfTtcclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgaWYgKHRoaXMuX3ZhbHVlLmxvdyAhPT0gLUluZmluaXR5ICYmIHRoaXMuX3ZhbHVlLmhpZ2ggIT09IEluZmluaXR5KSByZXR1cm47XHJcblxyXG4gICAgdGhpcy53cml0ZVZhbHVlKHsgbG93OiB0aGlzLm1pbigpLCBoaWdoOiB0aGlzLm1heCgpIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8hIHdyaXRlVmFsdWVcclxuICBwcml2YXRlIF9pc1ZhbGlkT2JqZWN0KHY6IGFueSk6IHYgaXMgU2xpZGVyUmFuZ2Uge1xyXG4gICAgcmV0dXJuIGlzT2JqZWN0KHYpICYmIGlzTnVtYmVyKHZbJ2xvdyddKSAmJiBpc051bWJlcih2WydoaWdoJ10pO1xyXG4gIH1cclxuICBwcml2YXRlIF9pc1ZhbGlkVHVwbGUodjogYW55KTogdiBpcyBbbnVtYmVyLCBudW1iZXJdIHtcclxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHYpICYmIGlzTnVtYmVyKHZbMF0pICYmIGlzTnVtYmVyKHZbMV0pICYmIHYubGVuZ3RoID09PSAyO1xyXG4gIH1cclxuICBwcml2YXRlIF9hcnJheVZhbHVlVG9PYmplY3RWYWx1ZSh2OiBbbnVtYmVyLCBudW1iZXJdKTogU2xpZGVyUmFuZ2Uge1xyXG4gICAgcmV0dXJuIHsgbG93OiB2WzBdLCBoaWdoOiB2WzFdIH07XHJcbiAgfVxyXG4gIHByaXZhdGUgX25vcm1hbGl6ZVNsaWRlclJhbmdlKHY6IFNsaWRlclJhbmdlKTogU2xpZGVyUmFuZ2Uge1xyXG4gICAgaWYgKHYubG93IDw9IHYuaGlnaCkgcmV0dXJuIHY7XHJcbiAgICByZXR1cm4geyBsb3c6IHYuaGlnaCwgaGlnaDogdi5sb3cgfTtcclxuICB9XHJcbiAgd3JpdGVWYWx1ZSh2OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5faXNWYWxpZE9iamVjdCh2KSAmJiAhdGhpcy5faXNWYWxpZFR1cGxlKHYpKSB7XHJcbiAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGxvdyA9IC1JbmZpbml0eTtcclxuICAgIGxldCBoaWdoID0gSW5maW5pdHk7XHJcbiAgICBpZiAodGhpcy5faXNWYWxpZE9iamVjdCh2KSkge1xyXG4gICAgICBsb3cgPSB2LmxvdztcclxuICAgICAgaGlnaCA9IHYuaGlnaDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5faXNWYWxpZFR1cGxlKHYpKSB7XHJcbiAgICAgIGxvdyA9IHZbMF07XHJcbiAgICAgIGhpZ2ggPSB2WzFdO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbG93Q2xhbXBlZCA9IHRoaXMuX2NsYW1wVmFsdWUobG93KTtcclxuICAgIGNvbnN0IGhpZ2hDbGFtcGVkID0gdGhpcy5fY2xhbXBWYWx1ZShoaWdoKTtcclxuICAgIGNvbnN0IHZhbHVlOiBTbGlkZXJSYW5nZSA9IHRoaXMuX2FycmF5VmFsdWVUb09iamVjdFZhbHVlKFtsb3dDbGFtcGVkLCBoaWdoQ2xhbXBlZF0pO1xyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3Bvc2l0aW9uUGVyY2VudFswXSA9IHRoaXMuX3ZhbHVlVG9QZXJjZW50KGxvd0NsYW1wZWQpO1xyXG4gICAgdGhpcy5fcG9zaXRpb25QZXJjZW50WzFdID0gdGhpcy5fdmFsdWVUb1BlcmNlbnQoaGlnaENsYW1wZWQpO1xyXG4gICAgdGhpcy5fdXBkYXRlVG9vbHRpcFZhbHVlKCk7XHJcbiAgfVxyXG4gIG92ZXJyaWRlIGdldCB2YWx1ZSgpOiBTbGlkZXJSYW5nZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbm9ybWFsaXplU2xpZGVyUmFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gIH1cclxuICBvdmVycmlkZSBzZXQgdmFsdWUodjogYW55KSB7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUodik7XHJcbiAgfVxyXG5cclxuICAvLyEgdG9vbHRpcCB1cGRhdGVyXHJcbiAgX3Rvb2x0aXBWYWx1ZTogU2xpZGVyUmFuZ2U8c3RyaW5nIHwgbnVtYmVyPiA9IHRoaXMudmFsdWU7XHJcblxyXG4gIHByb3RlY3RlZCBfdXBkYXRlVG9vbHRpcFZhbHVlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgdjogU2xpZGVyUmFuZ2U8c3RyaW5nIHwgbnVtYmVyPiA9IE9iamVjdC5jcmVhdGUodGhpcy5fdmFsdWUpO1xyXG4gICAgY29uc3QgZm9ybWF0Rm4gPSB0aGlzLnRvb2x0aXBGb3JtYXRGbigpO1xyXG4gICAgaWYgKGZvcm1hdEZuKSB7XHJcbiAgICAgIHYubG93ID0gZm9ybWF0Rm4odi5sb3cgYXMgbnVtYmVyKTtcclxuICAgICAgdi5oaWdoID0gZm9ybWF0Rm4odi5oaWdoIGFzIG51bWJlcik7XHJcbiAgICB9XHJcbiAgICB0aGlzLl90b29sdGlwVmFsdWUgPSB2O1xyXG4gIH1cclxuXHJcbiAgZ2V0VG9vbHRpcENvbnRleHQodHlwZTogJ2xvdycgfCAnaGlnaCcpOiBTbGlkZXJUb29sdGlwQ29udGV4dCB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB2YWx1ZTogdGhpcy5fdG9vbHRpcFZhbHVlW3R5cGVdLFxyXG4gICAgICAkaW1wbGljaXQ6IHRoaXMuX3Rvb2x0aXBWYWx1ZVt0eXBlXSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyEgbWV0aG9kcyBmb3IgcHJvZ3JhbW1hdGljIG1hbmlwdWxhdGlvblxyXG4gIHJlc2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdmFsdWUgPSB7IGxvdzogLUluZmluaXR5LCBoaWdoOiBJbmZpbml0eSB9O1xyXG4gICAgdGhpcy5fcG9zaXRpb25QZXJjZW50WzBdID0gMDtcclxuICAgIHRoaXMuX3Bvc2l0aW9uUGVyY2VudFsxXSA9IDE7XHJcbiAgfVxyXG5cclxuICAvLyEgdHJhY2sgb3ZlcmxheSBnZXR0ZXJzXHJcbiAgZ2V0IHRyYWNrT3ZlcmxheUxlZnQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBNYXRoLm1pbiguLi50aGlzLl9wb3NpdGlvblBlcmNlbnQpICogMTAwICsgJyUnO1xyXG4gIH1cclxuICBnZXQgdHJhY2tPdmVybGF5V2lkdGgoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBNYXRoLmFicyh0aGlzLl9wb3NpdGlvblBlcmNlbnRbMF0gLSB0aGlzLl9wb3NpdGlvblBlcmNlbnRbMV0hKSAqIDEwMCArICclJztcclxuICB9XHJcblxyXG4gIC8vISBldmVudCBoYW5kbGVyc1xyXG4gIG9uVHJhY2tIaXRib3hQb2ludGVyRG93bihldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuX3dyaXRlVmFsdWVGcm9tRXZlbnQoZXZlbnQpO1xyXG4gICAgdGhpcy5vblBvaW50ZXJEb3duT25IYW5kbGUoZXZlbnQpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZW1vdmUnLCBbJyRldmVudCddKVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnRvdWNobW92ZScsIFsnJGV2ZW50J10pXHJcbiAgb25Qb2ludGVyTW92ZShldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5fc2hvdWxkQ2hlY2tGb3JNb3ZlbWVudCkgcmV0dXJuO1xyXG4gICAgaWYgKCF0aGlzLl9ib2R5SGFzQ2xhc3MpIHtcclxuICAgICAgdGhpcy5fYm9keUhhc0NsYXNzID0gdHJ1ZTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdhcmQtcHJldmVudC10b3VjaC1hY3Rpb25zJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl93cml0ZVZhbHVlRnJvbUV2ZW50KGV2ZW50LCB0aGlzLl9ncmFiYmVkSGFuZGxlSWQoKSk7XHJcbiAgfVxyXG5cclxuICAvLyEgcG9zaXRpb24gY2FsY3VsYXRvcnNcclxuICBwcm90ZWN0ZWQgX3BlcmNlbnRWYWx1ZVRvVmFsdWUocGVyY2VudDogbnVtYmVyLCBoYW5kbGVJZDogbnVtYmVyKTogU2xpZGVyUmFuZ2Uge1xyXG4gICAgY29uc3QgbWluTWF4RGlmZmVyZW5jZSA9IE1hdGguYWJzKHRoaXMubWluKCkgLSB0aGlzLm1heCgpKTtcclxuICAgIGxldCBuZXdWYWwgPSBwZXJjZW50ICogbWluTWF4RGlmZmVyZW5jZSArIHRoaXMubWluKCk7XHJcbiAgICAvL3JvdW5kIHRvIDkgZGVjaW1hbCBwbGFjZXMgdG8gYXZvaWQgZmxvYXRpbmcgcG9pbnQgYXJpdGhtZXRpYyBlcnJvcnNcclxuICAgIC8vOSBpcyBhbiBhcmJpdHJhcnkgbnVtYmVyIHRoYXQganVzdCB3b3JrcyB3ZWxsLiDCr1xcXyjjg4QpXy/Cr1xyXG4gICAgbmV3VmFsID0gcm91bmRUb1ByZWNpc2lvbihuZXdWYWwsIDkpO1xyXG5cclxuICAgIGNvbnN0IG5ld1ZhbE9iaiA9IHsgbG93OiB0aGlzLl92YWx1ZS5sb3csIGhpZ2g6IHRoaXMuX3ZhbHVlLmhpZ2ggfTtcclxuICAgIGlmIChoYW5kbGVJZCA9PT0gMSkge1xyXG4gICAgICBuZXdWYWxPYmoubG93ID0gbmV3VmFsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3VmFsT2JqLmhpZ2ggPSBuZXdWYWw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3VmFsT2JqO1xyXG4gIH1cclxuXHJcbiAgLy8hIGhhbmRsZSBmb2N1cyBtb25pdG9yc1xyXG4gIHJlYWRvbmx5IGN1cnJlbnRIYW5kbGUgPSBzaWduYWw8MSB8IDIgfCBudWxsPihudWxsKTtcclxuICBvbkhhbmRsZUZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50LCBoYW5kbGVJZDogMSB8IDIpIHtcclxuICAgIHRoaXMub25Gb2N1cyhldmVudCk7XHJcblxyXG4gICAgdGhpcy5jdXJyZW50SGFuZGxlLnNldChoYW5kbGVJZCk7XHJcbiAgfVxyXG4gIG92ZXJyaWRlIG9uQmx1cihldmVudDogRm9jdXNFdmVudCkge1xyXG4gICAgc3VwZXIub25CbHVyKGV2ZW50KTtcclxuICAgIHRoaXMuY3VycmVudEhhbmRsZS5zZXQobnVsbCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImFyZC1yYW5nZS1zbGlkZXItY29udGFpbmVyLW1hc3RlclwiXHJcbiAgW25nQ2xhc3NdPVwibmdDbGFzc2VzKClcIlxyXG4gIFtjbGFzcy5hcmQtc2xpZGVyLWhhbmRsZS1ncmFiYmVkXT1cImlzU2xpZGVySGFuZGxlR3JhYmJlZCgpXCJcclxuICBbc3R5bGVdPVwieyAnLS1fYXJkLXNsaWRlci10cmFuc2l0aW9uJzogc2xpZGVyVHJhbnNpdGlvbigpIH1cIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImFyZC1zbGlkZXItY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgICN0cmFja1xyXG4gICAgICBjbGFzcz1cImFyZC1zbGlkZXItdHJhY2tcIlxyXG4gICAgICAocG9pbnRlcmRvd24pPVwib25UcmFja0hpdGJveFBvaW50ZXJEb3duKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXJkLWhpdGJveFwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXJkLXNsaWRlci10cmFjay1vdmVybGF5IGFyZC1zbGlkZXItdHJhY2staW5hY3RpdmVcIj48L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiYXJkLXNsaWRlci10cmFjay1vdmVybGF5IGFyZC1zbGlkZXItdHJhY2stYWN0aXZlXCJcclxuICAgICAgICBbc3R5bGVdPVwie1xyXG4gICAgICAgICAgbGVmdDogdHJhY2tPdmVybGF5TGVmdCxcclxuICAgICAgICAgIHdpZHRoOiB0cmFja092ZXJsYXlXaWR0aFxyXG4gICAgICAgIH1cIlxyXG4gICAgICA+PC9kaXY+XHJcbiAgICAgIEBpZiAoc2hvd1ZhbHVlVGlja3MoKSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtdmFsdWUtdGljay1jb250YWluZXJcIj5cclxuICAgICAgICAgIEBmb3IgKHRpY2sgb2YgX3RpY2tBcnJheSgpOyB0cmFjayB0aWNrKSB7XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cImFyZC12YWx1ZS10aWNrXCJcclxuICAgICAgICAgICAgICBbc3R5bGVdPVwieyBsZWZ0OiB0aWNrIH1cIlxyXG4gICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAjZm9jdXNhYmxlRWxlbWVudFxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgY2xhc3M9XCJhcmQtc2xpZGVyLWhhbmRsZVwiXHJcbiAgICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleCgpXCJcclxuICAgICAgW2NsYXNzLmFyZC1ncmFiYmVkXT1cImlzU2xpZGVySGFuZGxlR3JhYmJlZCgpICYmIGN1cnJlbnRIYW5kbGUoKSA9PT0gMVwiXHJcbiAgICAgIChwb2ludGVyZG93bik9XCJvblBvaW50ZXJEb3duT25IYW5kbGUoJGV2ZW50LCAxKVwiXHJcbiAgICAgIChmb2N1cyk9XCJvbkhhbmRsZUZvY3VzKCRldmVudCwgMSlcIlxyXG4gICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAgIFtzdHlsZV09XCJ7IGxlZnQ6IGdldEhhbmRsZVBvc2l0aW9uKDEpIH1cIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvY3VzLW92ZXJsYXlcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFyZC1oaXRib3hcIj48L2Rpdj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgQGlmICh0b29sdGlwQmVoYXZpb3IoKSAhPT0gJ25ldmVyJykge1xyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJhcmQtc2xpZGVyLXRvb2x0aXAtd3JhcHBlclwiXHJcbiAgICAgICAgW2NsYXNzLmFyZC10b29sdGlwLWFsd2F5c109XCJ0b29sdGlwQmVoYXZpb3IoKSA9PT0gJ2Fsd2F5cydcIlxyXG4gICAgICAgIFtzdHlsZV09XCJ7IGxlZnQ6IGdldEhhbmRsZVBvc2l0aW9uKDEpIH1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAjZGVmYXVsdFRvb2x0aXBUZW1wbGF0ZVxyXG4gICAgICAgICAgbGV0LXZhbHVlXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1zbGlkZXItdG9vbHRpcFwiPnt7IHZhbHVlIH19PC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0b29sdGlwVGVtcGxhdGUoKT8udGVtcGxhdGUgfHwgZGVmYXVsdFRvb2x0aXBUZW1wbGF0ZVwiXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0VG9vbHRpcENvbnRleHQoJ2xvdycpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICNmb2N1c2FibGVFbGVtZW50XHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBjbGFzcz1cImFyZC1zbGlkZXItaGFuZGxlXCJcclxuICAgICAgW3RhYmluZGV4XT1cInRhYkluZGV4KClcIlxyXG4gICAgICBbY2xhc3MuYXJkLWdyYWJiZWRdPVwiaXNTbGlkZXJIYW5kbGVHcmFiYmVkKCkgJiYgY3VycmVudEhhbmRsZSgpID09PSAyXCJcclxuICAgICAgKHBvaW50ZXJkb3duKT1cIm9uUG9pbnRlckRvd25PbkhhbmRsZSgkZXZlbnQsIDIpXCJcclxuICAgICAgKGZvY3VzKT1cIm9uSGFuZGxlRm9jdXMoJGV2ZW50LCAyKVwiXHJcbiAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgW3N0eWxlXT1cInsgbGVmdDogZ2V0SGFuZGxlUG9zaXRpb24oMikgfVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZm9jdXMtb3ZlcmxheVwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXJkLWhpdGJveFwiPjwvZGl2PlxyXG4gICAgPC9idXR0b24+XHJcbiAgICBAaWYgKHRvb2x0aXBCZWhhdmlvcigpICE9PSAnbmV2ZXInKSB7XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImFyZC1zbGlkZXItdG9vbHRpcC13cmFwcGVyXCJcclxuICAgICAgICBbY2xhc3MuYXJkLXRvb2x0aXAtYWx3YXlzXT1cInRvb2x0aXBCZWhhdmlvcigpID09PSAnYWx3YXlzJ1wiXHJcbiAgICAgICAgW3N0eWxlXT1cInsgbGVmdDogZ2V0SGFuZGxlUG9zaXRpb24oMikgfVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICNkZWZhdWx0VG9vbHRpcFRlbXBsYXRlXHJcbiAgICAgICAgICBsZXQtdmFsdWVcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLXNsaWRlci10b29sdGlwXCI+e3sgdmFsdWUgfX08L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRvb2x0aXBUZW1wbGF0ZSgpPy50ZW1wbGF0ZSB8fCBkZWZhdWx0VG9vbHRpcFRlbXBsYXRlXCJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRUb29sdGlwQ29udGV4dCgnaGlnaCcpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbiAgQGlmIChsYWJlbE9iamVjdHMoKS5sZW5ndGgpIHtcclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJhcmQtc2xpZGVyLWxhYmVsLWNvbnRhaW5lclwiXHJcbiAgICAgICpuZ0lmPVwibGFiZWxPYmplY3RzLmxlbmd0aFwiXHJcbiAgICA+XHJcbiAgICAgIEBmb3IgKGxhYmVsIG9mIGxhYmVsT2JqZWN0cygpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImFyZC1zbGlkZXItbGFiZWxcIlxyXG4gICAgICAgICAgW3N0eWxlXT1cInsgbGVmdDogbGFiZWwucG9zaXRpb25QZXJjZW50IH1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGxhYmVsLmxhYmVsIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2hhbmRsZVRodW1iQmFzZT5cclxuICA8ZGl2IGNsYXNzPVwiYXJkLXNsaWRlLXRodW1iXCI+PC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { ArdiumRangeSliderComponent } from './range-slider.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class ArdiumRangeSliderModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumRangeSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ArdiumRangeSliderModule, declarations: [ArdiumRangeSliderComponent], imports: [CommonModule], exports: [ArdiumRangeSliderComponent] }); }
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumRangeSliderModule, imports: [CommonModule] }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumRangeSliderModule, decorators: [{
|
|
11
|
-
type: NgModule,
|
|
12
|
-
args: [{
|
|
13
|
-
declarations: [ArdiumRangeSliderComponent],
|
|
14
|
-
imports: [CommonModule],
|
|
15
|
-
exports: [ArdiumRangeSliderComponent],
|
|
16
|
-
}]
|
|
17
|
-
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2Utc2xpZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvc2xpZGVyL3JhbmdlLXNsaWRlci9yYW5nZS1zbGlkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU90RSxNQUFNLE9BQU8sdUJBQXVCOytHQUF2Qix1QkFBdUI7Z0hBQXZCLHVCQUF1QixpQkFKbkIsMEJBQTBCLGFBQy9CLFlBQVksYUFDWiwwQkFBMEI7Z0hBRXpCLHVCQUF1QixZQUh4QixZQUFZOzs0RkFHWCx1QkFBdUI7a0JBTG5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQzFDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXJkaXVtUmFuZ2VTbGlkZXJDb21wb25lbnQgfSBmcm9tICcuL3JhbmdlLXNsaWRlci5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtBcmRpdW1SYW5nZVNsaWRlckNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgZXhwb3J0czogW0FyZGl1bVJhbmdlU2xpZGVyQ29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bVJhbmdlU2xpZGVyTW9kdWxlIHt9XHJcbiJdfQ==
|