@ardium-ui/ui 1.0.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/README.md +25 -0
- package/esm2022/ardium-ui-ui.mjs +5 -0
- package/esm2022/lib/_internal/boolean-component.mjs +108 -0
- package/esm2022/lib/_internal/clear-button/clear-button.component.mjs +12 -0
- package/esm2022/lib/_internal/clear-button/clear-button.module.mjs +18 -0
- package/esm2022/lib/_internal/disablable-component.mjs +44 -0
- package/esm2022/lib/_internal/focusable-component.mjs +91 -0
- package/esm2022/lib/_internal/item-storages/dropdown-item-storage.mjs +436 -0
- package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +349 -0
- package/esm2022/lib/_internal/item-storages/simplest-item-storage.mjs +155 -0
- package/esm2022/lib/_internal/models/pagination.model.mjs +124 -0
- package/esm2022/lib/_internal/ngmodel-component.mjs +42 -0
- package/esm2022/lib/_internal/queue.mjs +59 -0
- package/esm2022/lib/_internal/selectable-list-component.mjs +304 -0
- package/esm2022/lib/badge/badge.directive.mjs +123 -0
- package/esm2022/lib/badge/badge.module.mjs +18 -0
- package/esm2022/lib/badge/badge.types.mjs +16 -0
- package/esm2022/lib/buttons/_button-base.mjs +45 -0
- package/esm2022/lib/buttons/button/button.component.mjs +49 -0
- package/esm2022/lib/buttons/button/button.module.mjs +18 -0
- package/esm2022/lib/buttons/fab/fab.component.mjs +40 -0
- package/esm2022/lib/buttons/fab/fab.module.mjs +18 -0
- package/esm2022/lib/buttons/general-button.types.mjs +55 -0
- package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +37 -0
- package/esm2022/lib/buttons/icon-button/icon-button.module.mjs +18 -0
- package/esm2022/lib/calendar/calendar.component.mjs +982 -0
- package/esm2022/lib/calendar/calendar.directives.mjs +107 -0
- package/esm2022/lib/calendar/calendar.helpers.mjs +47 -0
- package/esm2022/lib/calendar/calendar.module.mjs +21 -0
- package/esm2022/lib/calendar/calendar.types.mjs +11 -0
- package/esm2022/lib/card/card.children.mjs +97 -0
- package/esm2022/lib/card/card.component.mjs +40 -0
- package/esm2022/lib/card/card.module.mjs +59 -0
- package/esm2022/lib/card/card.types.mjs +9 -0
- package/esm2022/lib/checkbox/checkbox.component.mjs +73 -0
- package/esm2022/lib/checkbox/checkbox.module.mjs +18 -0
- package/esm2022/lib/checkbox/checkbox.types.mjs +6 -0
- package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +139 -0
- package/esm2022/lib/checkbox-list/checkbox-list.module.mjs +19 -0
- package/esm2022/lib/checkbox-list/checkbox-list.types.mjs +7 -0
- package/esm2022/lib/chip/chip.component.mjs +55 -0
- package/esm2022/lib/chip/chip.module.mjs +21 -0
- package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +80 -0
- package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +77 -0
- package/esm2022/lib/color/color-display/color-display.component.mjs +48 -0
- package/esm2022/lib/color/color-display/color-display.module.mjs +18 -0
- package/esm2022/lib/color/color-display/color-display.types.mjs +9 -0
- package/esm2022/lib/color/color-picker/color-picker.component.mjs +484 -0
- package/esm2022/lib/color/color-picker/color-picker.directives.mjs +55 -0
- package/esm2022/lib/color/color-picker/color-picker.module.mjs +43 -0
- package/esm2022/lib/color/color-picker/color-picker.types.mjs +11 -0
- package/esm2022/lib/dialog/dialog.component.mjs +167 -0
- package/esm2022/lib/dialog/dialog.directives.mjs +14 -0
- package/esm2022/lib/dialog/dialog.module.mjs +21 -0
- package/esm2022/lib/dialog/dialog.types.mjs +6 -0
- package/esm2022/lib/divider/divider.component.mjs +26 -0
- package/esm2022/lib/divider/divider.module.mjs +18 -0
- package/esm2022/lib/dropdown-panel/dropdown-panel.component.mjs +130 -0
- package/esm2022/lib/dropdown-panel/dropdown-panel.module.mjs +18 -0
- package/esm2022/lib/dropdown-panel/dropdown-panel.types.mjs +10 -0
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +82 -0
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.directives.mjs +42 -0
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.module.mjs +58 -0
- package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +153 -0
- package/esm2022/lib/file-inputs/file-input/file-input.directives.mjs +73 -0
- package/esm2022/lib/file-inputs/file-input/file-input.module.mjs +21 -0
- package/esm2022/lib/file-inputs/file-input-base.mjs +187 -0
- package/esm2022/lib/file-inputs/file-input-types.mjs +2 -0
- package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +74 -0
- package/esm2022/lib/form-field-frame/form-field-frame.directives.mjs +25 -0
- package/esm2022/lib/form-field-frame/form-field-frame.module.mjs +19 -0
- package/esm2022/lib/icon/icon.component.mjs +85 -0
- package/esm2022/lib/icon/icon.module.mjs +19 -0
- package/esm2022/lib/icon/icon.pipe.mjs +18 -0
- package/esm2022/lib/inputs/color-input/color-input.component.mjs +421 -0
- package/esm2022/lib/inputs/color-input/color-input.directives.mjs +101 -0
- package/esm2022/lib/inputs/color-input/color-input.module.mjs +85 -0
- package/esm2022/lib/inputs/color-input/color-input.types.mjs +2 -0
- package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +218 -0
- package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +217 -0
- package/esm2022/lib/inputs/digit-input/digit-input.module.mjs +18 -0
- package/esm2022/lib/inputs/digit-input/digit-input.types.mjs +15 -0
- package/esm2022/lib/inputs/digit-input/digit-input.utils.mjs +8 -0
- package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +234 -0
- package/esm2022/lib/inputs/hex-input/hex-input.directives.mjs +36 -0
- package/esm2022/lib/inputs/hex-input/hex-input.module.mjs +21 -0
- package/esm2022/lib/inputs/hex-input.model.mjs +106 -0
- package/esm2022/lib/inputs/input/input.component.mjs +344 -0
- package/esm2022/lib/inputs/input/input.directives.mjs +58 -0
- package/esm2022/lib/inputs/input/input.module.mjs +47 -0
- package/esm2022/lib/inputs/input-transformers.mjs +66 -0
- package/esm2022/lib/inputs/input-types.mjs +6 -0
- package/esm2022/lib/inputs/input-utils.mjs +205 -0
- package/esm2022/lib/inputs/number-input/number-input.component.mjs +289 -0
- package/esm2022/lib/inputs/number-input/number-input.directives.mjs +14 -0
- package/esm2022/lib/inputs/number-input/number-input.module.mjs +21 -0
- package/esm2022/lib/inputs/password-input/password-input.component.mjs +222 -0
- package/esm2022/lib/inputs/password-input/password-input.directives.mjs +49 -0
- package/esm2022/lib/inputs/password-input/password-input.module.mjs +41 -0
- package/esm2022/lib/inputs/password-input/password-input.types.mjs +2 -0
- package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +219 -0
- package/esm2022/lib/inputs/simple-input/simple-input.directives.mjs +36 -0
- package/esm2022/lib/inputs/simple-input/simple-input.module.mjs +37 -0
- package/esm2022/lib/kbd/kbd.component.mjs +42 -0
- package/esm2022/lib/kbd/kbd.module.mjs +19 -0
- package/esm2022/lib/kbd/kbd.pipe.mjs +17 -0
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.component.mjs +55 -0
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.module.mjs +19 -0
- package/esm2022/lib/modal/modal.component.mjs +120 -0
- package/esm2022/lib/modal/modal.module.mjs +21 -0
- package/esm2022/lib/option/option.component.mjs +77 -0
- package/esm2022/lib/option/option.module.mjs +18 -0
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +95 -0
- package/esm2022/lib/progress-bar/progress-bar.directive.mjs +14 -0
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +19 -0
- package/esm2022/lib/progress-bar/progress-bar.types.mjs +19 -0
- package/esm2022/lib/progress-circle/progress-circle.component.mjs +94 -0
- package/esm2022/lib/progress-circle/progress-circle.directive.mjs +14 -0
- package/esm2022/lib/progress-circle/progress-circle.module.mjs +19 -0
- package/esm2022/lib/progress-circle/progress-circle.types.mjs +10 -0
- package/esm2022/lib/radio/radio/radio.component.mjs +53 -0
- package/esm2022/lib/radio/radio-group.component.mjs +207 -0
- package/esm2022/lib/radio/radio.module.mjs +19 -0
- package/esm2022/lib/search-functions.mjs +64 -0
- package/esm2022/lib/segment/segment.component.mjs +168 -0
- package/esm2022/lib/segment/segment.directives.mjs +14 -0
- package/esm2022/lib/segment/segment.module.mjs +19 -0
- package/esm2022/lib/segment/segment.types.mjs +12 -0
- package/esm2022/lib/select/select.component.mjs +1160 -0
- package/esm2022/lib/select/select.directive.mjs +171 -0
- package/esm2022/lib/select/select.module.mjs +112 -0
- package/esm2022/lib/select/select.types.mjs +2 -0
- package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +46 -0
- package/esm2022/lib/slide-toggle/slide-toggle.module.mjs +18 -0
- package/esm2022/lib/slider/abstract-slider.mjs +330 -0
- package/esm2022/lib/slider/range-slider/range-slider.component.mjs +143 -0
- package/esm2022/lib/slider/range-slider/range-slider.module.mjs +18 -0
- package/esm2022/lib/slider/slider.component.mjs +93 -0
- package/esm2022/lib/slider/slider.directive.mjs +16 -0
- package/esm2022/lib/slider/slider.module.mjs +20 -0
- package/esm2022/lib/slider/slider.types.mjs +10 -0
- package/esm2022/lib/snackbar/index.mjs +5 -0
- package/esm2022/lib/snackbar/snackbar-ref.mjs +51 -0
- package/esm2022/lib/snackbar/snackbar.component.mjs +48 -0
- package/esm2022/lib/snackbar/snackbar.service.mjs +227 -0
- package/esm2022/lib/snackbar/snackbar.token.mjs +20 -0
- package/esm2022/lib/snackbar/snackbar.types.mjs +25 -0
- package/esm2022/lib/spinner/spinner.component.mjs +22 -0
- package/esm2022/lib/spinner/spinner.module.mjs +18 -0
- package/esm2022/lib/star/star-button/star-button.component.mjs +53 -0
- package/esm2022/lib/star/star-button/star-button.module.mjs +19 -0
- package/esm2022/lib/star/star-display/star-display.component.mjs +66 -0
- package/esm2022/lib/star/star-display/star-display.module.mjs +19 -0
- package/esm2022/lib/star/star-input/star-input.component.mjs +221 -0
- package/esm2022/lib/star/star-input/star-input.module.mjs +19 -0
- package/esm2022/lib/star/star.component.mjs +28 -0
- package/esm2022/lib/star/star.module.mjs +18 -0
- package/esm2022/lib/star/star.types.mjs +23 -0
- package/esm2022/lib/statebox/statebox.component.mjs +158 -0
- package/esm2022/lib/statebox/statebox.module.mjs +18 -0
- package/esm2022/lib/statebox/statebox.types.mjs +2 -0
- package/esm2022/lib/table/table-item-storage.mjs +560 -0
- package/esm2022/lib/table/table.component.mjs +468 -0
- package/esm2022/lib/table/table.directives.mjs +64 -0
- package/esm2022/lib/table/table.module.mjs +46 -0
- package/esm2022/lib/table/table.types.mjs +30 -0
- package/esm2022/lib/table/utils.mjs +18 -0
- package/esm2022/lib/table-from-csv/table-from-csv.component.mjs +64 -0
- package/esm2022/lib/table-from-csv/table-from-csv.module.mjs +19 -0
- package/esm2022/lib/table-pagination/table-pagination.component.mjs +172 -0
- package/esm2022/lib/table-pagination/table-pagination.module.mjs +21 -0
- package/esm2022/lib/table-pagination/table-pagination.types.mjs +7 -0
- package/esm2022/lib/types/alignment.types.mjs +10 -0
- package/esm2022/lib/types/colors.types.mjs +43 -0
- package/esm2022/lib/types/item-storage.types.mjs +6 -0
- package/esm2022/lib/types/theming.types.mjs +48 -0
- package/esm2022/lib/types/utility.types.mjs +5 -0
- package/esm2022/public-api.mjs +194 -0
- package/fesm2022/ardium-ui-ui.mjs +14316 -0
- package/fesm2022/ardium-ui-ui.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/_internal/boolean-component.d.ts +50 -0
- package/lib/_internal/clear-button/clear-button.component.d.ts +6 -0
- package/lib/_internal/clear-button/clear-button.module.d.ts +8 -0
- package/lib/_internal/disablable-component.d.ts +11 -0
- package/lib/_internal/focusable-component.d.ts +52 -0
- package/lib/_internal/item-storages/dropdown-item-storage.d.ts +87 -0
- package/lib/_internal/item-storages/simple-item-storage.d.ts +159 -0
- package/lib/_internal/item-storages/simplest-item-storage.d.ts +70 -0
- package/lib/_internal/models/pagination.model.d.ts +53 -0
- package/lib/_internal/ngmodel-component.d.ts +42 -0
- package/lib/_internal/queue.d.ts +21 -0
- package/lib/_internal/selectable-list-component.d.ts +71 -0
- package/lib/badge/badge.directive.d.ts +31 -0
- package/lib/badge/badge.module.d.ts +8 -0
- package/lib/badge/badge.types.d.ts +17 -0
- package/lib/buttons/_button-base.d.ts +18 -0
- package/lib/buttons/button/button.component.d.ts +15 -0
- package/lib/buttons/button/button.module.d.ts +8 -0
- package/lib/buttons/fab/fab.component.d.ts +12 -0
- package/lib/buttons/fab/fab.module.d.ts +8 -0
- package/lib/buttons/general-button.types.d.ts +57 -0
- package/lib/buttons/icon-button/icon-button.component.d.ts +13 -0
- package/lib/buttons/icon-button/icon-button.module.d.ts +8 -0
- package/lib/calendar/calendar.component.d.ts +155 -0
- package/lib/calendar/calendar.directives.d.ts +51 -0
- package/lib/calendar/calendar.helpers.d.ts +15 -0
- package/lib/calendar/calendar.module.d.ts +11 -0
- package/lib/calendar/calendar.types.d.ts +80 -0
- package/lib/card/card.children.d.ts +43 -0
- package/lib/card/card.component.d.ts +13 -0
- package/lib/card/card.module.d.ts +9 -0
- package/lib/card/card.types.d.ts +10 -0
- package/lib/checkbox/checkbox.component.d.ts +21 -0
- package/lib/checkbox/checkbox.module.d.ts +8 -0
- package/lib/checkbox/checkbox.types.d.ts +6 -0
- package/lib/checkbox-list/checkbox-list.component.d.ts +50 -0
- package/lib/checkbox-list/checkbox-list.module.d.ts +9 -0
- package/lib/checkbox-list/checkbox-list.types.d.ts +7 -0
- package/lib/chip/chip.component.d.ts +18 -0
- package/lib/chip/chip.module.d.ts +11 -0
- package/lib/chip/deletable-chip/deletable-chip.component.d.ts +24 -0
- package/lib/chip/selectable-chip/selectable-chip.component.d.ts +24 -0
- package/lib/color/color-display/color-display.component.d.ts +17 -0
- package/lib/color/color-display/color-display.module.d.ts +8 -0
- package/lib/color/color-display/color-display.types.d.ts +9 -0
- package/lib/color/color-picker/color-picker.component.d.ts +125 -0
- package/lib/color/color-picker/color-picker.directives.d.ts +27 -0
- package/lib/color/color-picker/color-picker.module.d.ts +13 -0
- package/lib/color/color-picker/color-picker.types.d.ts +21 -0
- package/lib/dialog/dialog.component.d.ts +44 -0
- package/lib/dialog/dialog.directives.d.ts +9 -0
- package/lib/dialog/dialog.module.d.ts +11 -0
- package/lib/dialog/dialog.types.d.ts +28 -0
- package/lib/divider/divider.component.d.ts +8 -0
- package/lib/divider/divider.module.d.ts +8 -0
- package/lib/dropdown-panel/dropdown-panel.component.d.ts +37 -0
- package/lib/dropdown-panel/dropdown-panel.module.d.ts +8 -0
- package/lib/dropdown-panel/dropdown-panel.types.d.ts +12 -0
- package/lib/file-inputs/file-drop-area/file-drop-area.component.d.ts +22 -0
- package/lib/file-inputs/file-drop-area/file-drop-area.directives.d.ts +21 -0
- package/lib/file-inputs/file-drop-area/file-drop-area.module.d.ts +12 -0
- package/lib/file-inputs/file-input/file-input.component.d.ts +41 -0
- package/lib/file-inputs/file-input/file-input.directives.d.ts +39 -0
- package/lib/file-inputs/file-input/file-input.module.d.ts +11 -0
- package/lib/file-inputs/file-input-base.d.ts +43 -0
- package/lib/file-inputs/file-input-types.d.ts +10 -0
- package/lib/form-field-frame/form-field-frame.component.d.ts +32 -0
- package/lib/form-field-frame/form-field-frame.directives.d.ts +14 -0
- package/lib/form-field-frame/form-field-frame.module.d.ts +9 -0
- package/lib/icon/icon.component.d.ts +32 -0
- package/lib/icon/icon.module.d.ts +9 -0
- package/lib/icon/icon.pipe.d.ts +7 -0
- package/lib/inputs/color-input/color-input.component.d.ts +147 -0
- package/lib/inputs/color-input/color-input.directives.d.ts +52 -0
- package/lib/inputs/color-input/color-input.module.d.ts +16 -0
- package/lib/inputs/color-input/color-input.types.d.ts +5 -0
- package/lib/inputs/digit-input/digit-input.component.d.ts +50 -0
- package/lib/inputs/digit-input/digit-input.model.d.ts +26 -0
- package/lib/inputs/digit-input/digit-input.module.d.ts +8 -0
- package/lib/inputs/digit-input/digit-input.types.d.ts +27 -0
- package/lib/inputs/digit-input/digit-input.utils.d.ts +17 -0
- package/lib/inputs/hex-input/hex-input.component.d.ts +60 -0
- package/lib/inputs/hex-input/hex-input.directives.d.ts +20 -0
- package/lib/inputs/hex-input/hex-input.module.d.ts +11 -0
- package/lib/inputs/hex-input.model.d.ts +27 -0
- package/lib/inputs/input/input.component.d.ts +79 -0
- package/lib/inputs/input/input.directives.d.ts +33 -0
- package/lib/inputs/input/input.module.d.ts +13 -0
- package/lib/inputs/input-transformers.d.ts +24 -0
- package/lib/inputs/input-types.d.ts +6 -0
- package/lib/inputs/input-utils.d.ts +58 -0
- package/lib/inputs/number-input/number-input.component.d.ts +70 -0
- package/lib/inputs/number-input/number-input.directives.d.ts +8 -0
- package/lib/inputs/number-input/number-input.module.d.ts +11 -0
- package/lib/inputs/password-input/password-input.component.d.ts +54 -0
- package/lib/inputs/password-input/password-input.directives.d.ts +27 -0
- package/lib/inputs/password-input/password-input.module.d.ts +11 -0
- package/lib/inputs/password-input/password-input.types.d.ts +3 -0
- package/lib/inputs/simple-input/simple-input.component.d.ts +58 -0
- package/lib/inputs/simple-input/simple-input.directives.d.ts +20 -0
- package/lib/inputs/simple-input/simple-input.module.d.ts +11 -0
- package/lib/kbd/kbd.component.d.ts +15 -0
- package/lib/kbd/kbd.module.d.ts +9 -0
- package/lib/kbd/kbd.pipe.d.ts +7 -0
- package/lib/kbd-shortcut/kbd-shortcut.component.d.ts +18 -0
- package/lib/kbd-shortcut/kbd-shortcut.module.d.ts +9 -0
- package/lib/modal/modal.component.d.ts +36 -0
- package/lib/modal/modal.module.d.ts +11 -0
- package/lib/option/option.component.d.ts +29 -0
- package/lib/option/option.module.d.ts +8 -0
- package/lib/progress-bar/progress-bar.component.d.ts +26 -0
- package/lib/progress-bar/progress-bar.directive.d.ts +9 -0
- package/lib/progress-bar/progress-bar.module.d.ts +9 -0
- package/lib/progress-bar/progress-bar.types.d.ts +26 -0
- package/lib/progress-circle/progress-circle.component.d.ts +28 -0
- package/lib/progress-circle/progress-circle.directive.d.ts +9 -0
- package/lib/progress-circle/progress-circle.module.d.ts +9 -0
- package/lib/progress-circle/progress-circle.types.d.ts +17 -0
- package/lib/radio/radio/radio.component.d.ts +23 -0
- package/lib/radio/radio-group.component.d.ts +43 -0
- package/lib/radio/radio.module.d.ts +9 -0
- package/lib/search-functions.d.ts +10 -0
- package/lib/segment/segment.component.d.ts +48 -0
- package/lib/segment/segment.directives.d.ts +9 -0
- package/lib/segment/segment.module.d.ts +9 -0
- package/lib/segment/segment.types.d.ts +16 -0
- package/lib/select/select.component.d.ts +255 -0
- package/lib/select/select.directive.d.ts +94 -0
- package/lib/select/select.module.d.ts +14 -0
- package/lib/select/select.types.d.ts +109 -0
- package/lib/slide-toggle/slide-toggle.component.d.ts +14 -0
- package/lib/slide-toggle/slide-toggle.module.d.ts +8 -0
- package/lib/slider/abstract-slider.d.ts +88 -0
- package/lib/slider/range-slider/range-slider.component.d.ts +29 -0
- package/lib/slider/range-slider/range-slider.module.d.ts +8 -0
- package/lib/slider/slider.component.d.ts +18 -0
- package/lib/slider/slider.directive.d.ts +9 -0
- package/lib/slider/slider.module.d.ts +10 -0
- package/lib/slider/slider.types.d.ts +28 -0
- package/lib/snackbar/index.d.ts +4 -0
- package/lib/snackbar/snackbar-ref.d.ts +37 -0
- package/lib/snackbar/snackbar.component.d.ts +16 -0
- package/lib/snackbar/snackbar.service.d.ts +31 -0
- package/lib/snackbar/snackbar.token.d.ts +5 -0
- package/lib/snackbar/snackbar.types.d.ts +48 -0
- package/lib/spinner/spinner.component.d.ts +8 -0
- package/lib/spinner/spinner.module.d.ts +8 -0
- package/lib/star/star-button/star-button.component.d.ts +16 -0
- package/lib/star/star-button/star-button.module.d.ts +9 -0
- package/lib/star/star-display/star-display.component.d.ts +16 -0
- package/lib/star/star-display/star-display.module.d.ts +9 -0
- package/lib/star/star-input/star-input.component.d.ts +51 -0
- package/lib/star/star-input/star-input.module.d.ts +9 -0
- package/lib/star/star.component.d.ts +10 -0
- package/lib/star/star.module.d.ts +8 -0
- package/lib/star/star.types.d.ts +30 -0
- package/lib/statebox/statebox.component.d.ts +31 -0
- package/lib/statebox/statebox.module.d.ts +8 -0
- package/lib/statebox/statebox.types.d.ts +22 -0
- package/lib/table/table-item-storage.d.ts +266 -0
- package/lib/table/table.component.d.ts +127 -0
- package/lib/table/table.directives.d.ts +35 -0
- package/lib/table/table.module.d.ts +12 -0
- package/lib/table/table.types.d.ts +83 -0
- package/lib/table/utils.d.ts +4 -0
- package/lib/table-from-csv/table-from-csv.component.d.ts +16 -0
- package/lib/table-from-csv/table-from-csv.module.d.ts +9 -0
- package/lib/table-pagination/table-pagination.component.d.ts +48 -0
- package/lib/table-pagination/table-pagination.module.d.ts +11 -0
- package/lib/table-pagination/table-pagination.types.d.ts +9 -0
- package/lib/types/alignment.types.d.ts +11 -0
- package/lib/types/colors.types.d.ts +71 -0
- package/lib/types/item-storage.types.d.ts +98 -0
- package/lib/types/theming.types.d.ts +61 -0
- package/lib/types/utility.types.d.ts +11 -0
- package/package.json +36 -0
- package/prebuilt-themes/default/badge.css +208 -0
- package/prebuilt-themes/default/badge.css.map +1 -0
- package/prebuilt-themes/default/buttons/button.css +290 -0
- package/prebuilt-themes/default/buttons/button.css.map +1 -0
- package/prebuilt-themes/default/buttons/fab.css +307 -0
- package/prebuilt-themes/default/buttons/fab.css.map +1 -0
- package/prebuilt-themes/default/buttons/icon-button.css +288 -0
- package/prebuilt-themes/default/buttons/icon-button.css.map +1 -0
- package/prebuilt-themes/default/calendar.css +293 -0
- package/prebuilt-themes/default/calendar.css.map +1 -0
- package/prebuilt-themes/default/card.css +122 -0
- package/prebuilt-themes/default/card.css.map +1 -0
- package/prebuilt-themes/default/checkbox-list.css +65 -0
- package/prebuilt-themes/default/checkbox-list.css.map +1 -0
- package/prebuilt-themes/default/checkbox.css +365 -0
- package/prebuilt-themes/default/checkbox.css.map +1 -0
- package/prebuilt-themes/default/chips.css +367 -0
- package/prebuilt-themes/default/chips.css.map +1 -0
- package/prebuilt-themes/default/color-display.css +29 -0
- package/prebuilt-themes/default/color-display.css.map +1 -0
- package/prebuilt-themes/default/color-picker.css +106 -0
- package/prebuilt-themes/default/color-picker.css.map +1 -0
- package/prebuilt-themes/default/core.css +84 -0
- package/prebuilt-themes/default/core.css.map +1 -0
- package/prebuilt-themes/default/dialog.css +18 -0
- package/prebuilt-themes/default/dialog.css.map +1 -0
- package/prebuilt-themes/default/divider.css +11 -0
- package/prebuilt-themes/default/divider.css.map +1 -0
- package/prebuilt-themes/default/dropdown-panel.css +37 -0
- package/prebuilt-themes/default/dropdown-panel.css.map +1 -0
- package/prebuilt-themes/default/file-drop-area.css +279 -0
- package/prebuilt-themes/default/file-drop-area.css.map +1 -0
- package/prebuilt-themes/default/form-field-frame.css +84 -0
- package/prebuilt-themes/default/form-field-frame.css.map +1 -0
- package/prebuilt-themes/default/inputs/color-input.css +139 -0
- package/prebuilt-themes/default/inputs/color-input.css.map +1 -0
- package/prebuilt-themes/default/inputs/digit-input.css +45 -0
- package/prebuilt-themes/default/inputs/digit-input.css.map +1 -0
- package/prebuilt-themes/default/inputs/file-input.css +169 -0
- package/prebuilt-themes/default/inputs/file-input.css.map +1 -0
- package/prebuilt-themes/default/inputs/hex-input.css +119 -0
- package/prebuilt-themes/default/inputs/hex-input.css.map +1 -0
- package/prebuilt-themes/default/inputs/input.css +139 -0
- package/prebuilt-themes/default/inputs/input.css.map +1 -0
- package/prebuilt-themes/default/inputs/number-input.css +150 -0
- package/prebuilt-themes/default/inputs/number-input.css.map +1 -0
- package/prebuilt-themes/default/inputs/password-input.css +73 -0
- package/prebuilt-themes/default/inputs/password-input.css.map +1 -0
- package/prebuilt-themes/default/inputs/search-bar.css +114 -0
- package/prebuilt-themes/default/inputs/search-bar.css.map +1 -0
- package/prebuilt-themes/default/inputs/simple-input.css +114 -0
- package/prebuilt-themes/default/inputs/simple-input.css.map +1 -0
- package/prebuilt-themes/default/kbd-shortcut.css +12 -0
- package/prebuilt-themes/default/kbd-shortcut.css.map +1 -0
- package/prebuilt-themes/default/kbd.css +17 -0
- package/prebuilt-themes/default/kbd.css.map +1 -0
- package/prebuilt-themes/default/modal.css +73 -0
- package/prebuilt-themes/default/modal.css.map +1 -0
- package/prebuilt-themes/default/progress-bar.css +267 -0
- package/prebuilt-themes/default/progress-bar.css.map +1 -0
- package/prebuilt-themes/default/progress-circle.css +167 -0
- package/prebuilt-themes/default/progress-circle.css.map +1 -0
- package/prebuilt-themes/default/radio.css +226 -0
- package/prebuilt-themes/default/radio.css.map +1 -0
- package/prebuilt-themes/default/segment.css +391 -0
- package/prebuilt-themes/default/segment.css.map +1 -0
- package/prebuilt-themes/default/select.css +275 -0
- package/prebuilt-themes/default/select.css.map +1 -0
- package/prebuilt-themes/default/slide-toggle.css +264 -0
- package/prebuilt-themes/default/slide-toggle.css.map +1 -0
- package/prebuilt-themes/default/slider.css +354 -0
- package/prebuilt-themes/default/slider.css.map +1 -0
- package/prebuilt-themes/default/snackbar.css +183 -0
- package/prebuilt-themes/default/snackbar.css.map +1 -0
- package/prebuilt-themes/default/spinner.css +151 -0
- package/prebuilt-themes/default/spinner.css.map +1 -0
- package/prebuilt-themes/default/stars.css +291 -0
- package/prebuilt-themes/default/stars.css.map +1 -0
- package/prebuilt-themes/default/statebox.css +235 -0
- package/prebuilt-themes/default/statebox.css.map +1 -0
- package/prebuilt-themes/default/table-pagination.css +48 -0
- package/prebuilt-themes/default/table-pagination.css.map +1 -0
- package/prebuilt-themes/default/table.css +418 -0
- package/prebuilt-themes/default/table.css.map +1 -0
- package/public-api.d.ts +145 -0
- package/themes/_variables.scss +121 -0
- package/themes/default/_clear-button.scss +73 -0
- package/themes/default/_coloring.scss +137 -0
- package/themes/default/_dropdown-arrow.scss +12 -0
- package/themes/default/_mixins.scss +70 -0
- package/themes/default/badge.scss +94 -0
- package/themes/default/buttons/_button-mixins.scss +144 -0
- package/themes/default/buttons/button.scss +62 -0
- package/themes/default/buttons/fab.scss +72 -0
- package/themes/default/buttons/icon-button.scss +59 -0
- package/themes/default/calendar.scss +182 -0
- package/themes/default/card.scss +126 -0
- package/themes/default/checkbox-list.scss +83 -0
- package/themes/default/checkbox.scss +109 -0
- package/themes/default/chips.scss +206 -0
- package/themes/default/color-display.scss +41 -0
- package/themes/default/color-picker.scss +111 -0
- package/themes/default/core.scss +96 -0
- package/themes/default/dialog.scss +16 -0
- package/themes/default/divider.scss +13 -0
- package/themes/default/dropdown-panel.scss +45 -0
- package/themes/default/file-drop-area.scss +162 -0
- package/themes/default/form-field-frame.scss +78 -0
- package/themes/default/inputs/_shared.scss +46 -0
- package/themes/default/inputs/color-input.scss +46 -0
- package/themes/default/inputs/digit-input.scss +56 -0
- package/themes/default/inputs/file-input.scss +78 -0
- package/themes/default/inputs/hex-input.scss +27 -0
- package/themes/default/inputs/input.scss +52 -0
- package/themes/default/inputs/number-input.scss +121 -0
- package/themes/default/inputs/password-input.scss +43 -0
- package/themes/default/inputs/search-bar.scss +19 -0
- package/themes/default/inputs/simple-input.scss +19 -0
- package/themes/default/kbd-shortcut.scss +13 -0
- package/themes/default/kbd.scss +20 -0
- package/themes/default/modal.scss +93 -0
- package/themes/default/progress-bar.scss +166 -0
- package/themes/default/progress-circle.scss +56 -0
- package/themes/default/radio.scss +112 -0
- package/themes/default/segment.scss +339 -0
- package/themes/default/select.scss +253 -0
- package/themes/default/slide-toggle.scss +151 -0
- package/themes/default/slider.scss +224 -0
- package/themes/default/snackbar.scss +60 -0
- package/themes/default/spinner.scss +21 -0
- package/themes/default/stars.scss +122 -0
- package/themes/default/statebox.scss +109 -0
- package/themes/default/table-pagination.scss +56 -0
- package/themes/default/table.scss +403 -0
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
|
2
|
+
import { ContentChild, Directive, EventEmitter, HostListener, Inject, Input, Output, TemplateRef, ViewChild, } from '@angular/core';
|
|
3
|
+
import { coerceBooleanProperty, coerceNumberProperty } from '@ardium-ui/devkit';
|
|
4
|
+
import { roundToMultiple, roundToPrecision } from 'more-rounding';
|
|
5
|
+
import { isDefined, isObject } from 'simple-bool';
|
|
6
|
+
import { _NgModelComponentBase } from '../_internal/ngmodel-component';
|
|
7
|
+
import { SimpleComponentColor } from '../types/colors.types';
|
|
8
|
+
import { ArdSliderTooltipDirective } from './slider.directive';
|
|
9
|
+
import { SliderDecorationPosition, SliderTooltipBehavior } from './slider.types';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
12
|
+
export class _AbstractSlider extends _NgModelComponentBase {
|
|
13
|
+
constructor(document, renderer, overlay, scrollStrategyOpts, viewContainerRef) {
|
|
14
|
+
super();
|
|
15
|
+
this.document = document;
|
|
16
|
+
this.renderer = renderer;
|
|
17
|
+
this.overlay = overlay;
|
|
18
|
+
this.scrollStrategyOpts = scrollStrategyOpts;
|
|
19
|
+
this.viewContainerRef = viewContainerRef;
|
|
20
|
+
this._noTooltip = false;
|
|
21
|
+
//! min, max, step sizes
|
|
22
|
+
this._min = 0;
|
|
23
|
+
this._max = 100;
|
|
24
|
+
this._step = 1;
|
|
25
|
+
this._shiftMultiplier = 5;
|
|
26
|
+
this._stepSizeComputed = this._updateComputedStepSizes();
|
|
27
|
+
//! value ticks
|
|
28
|
+
this._showValueTicks = false;
|
|
29
|
+
this._tickArray = this._updateTickArray();
|
|
30
|
+
//! labels
|
|
31
|
+
this.labelPosition = SliderDecorationPosition.Bottom;
|
|
32
|
+
this.labelObjects = [];
|
|
33
|
+
//! appearance
|
|
34
|
+
this.color = SimpleComponentColor.Primary;
|
|
35
|
+
this._compact = false;
|
|
36
|
+
this.valueChange = new EventEmitter();
|
|
37
|
+
this.tooltipPosition = SliderDecorationPosition.Top;
|
|
38
|
+
this._tooltipBehavior = SliderTooltipBehavior.Auto;
|
|
39
|
+
//! event handlers
|
|
40
|
+
this._isGrabbed = 0;
|
|
41
|
+
this._shouldCheckForMovement = false;
|
|
42
|
+
this._bodyHasClass = false;
|
|
43
|
+
//! position calculators
|
|
44
|
+
this._positionPercent = [0];
|
|
45
|
+
}
|
|
46
|
+
get noTooltip() {
|
|
47
|
+
return this._noTooltip;
|
|
48
|
+
}
|
|
49
|
+
set noTooltip(v) {
|
|
50
|
+
this._noTooltip = coerceBooleanProperty(v);
|
|
51
|
+
}
|
|
52
|
+
get min() {
|
|
53
|
+
return this._min;
|
|
54
|
+
}
|
|
55
|
+
set min(v) {
|
|
56
|
+
this._min = coerceNumberProperty(v, 0);
|
|
57
|
+
this._updateComputedStepSizes();
|
|
58
|
+
this._updateTickArray();
|
|
59
|
+
}
|
|
60
|
+
get max() {
|
|
61
|
+
return this._max;
|
|
62
|
+
}
|
|
63
|
+
set max(v) {
|
|
64
|
+
this._max = coerceNumberProperty(v, 100);
|
|
65
|
+
this._updateComputedStepSizes();
|
|
66
|
+
this._updateTickArray();
|
|
67
|
+
}
|
|
68
|
+
get step() {
|
|
69
|
+
return this._step;
|
|
70
|
+
}
|
|
71
|
+
set step(v) {
|
|
72
|
+
this._step = coerceNumberProperty(v, 0.5);
|
|
73
|
+
if (this._step <= 0) {
|
|
74
|
+
throw new Error('Cannot use negative or zero step size for a slider.');
|
|
75
|
+
}
|
|
76
|
+
this._updateComputedStepSizes();
|
|
77
|
+
this._updateTickArray();
|
|
78
|
+
}
|
|
79
|
+
get shiftMultiplier() {
|
|
80
|
+
return this._shiftMultiplier;
|
|
81
|
+
}
|
|
82
|
+
set shiftMultiplier(v) {
|
|
83
|
+
this._shiftMultiplier = coerceNumberProperty(v, 1);
|
|
84
|
+
}
|
|
85
|
+
_updateComputedStepSizes() {
|
|
86
|
+
const minMaxDifference = Math.abs(this._min - this._max);
|
|
87
|
+
this._stepSizeComputed = this._step / minMaxDifference;
|
|
88
|
+
return this._stepSizeComputed;
|
|
89
|
+
}
|
|
90
|
+
get showValueTicks() {
|
|
91
|
+
return this._showValueTicks;
|
|
92
|
+
}
|
|
93
|
+
set showValueTicks(v) {
|
|
94
|
+
this._showValueTicks = coerceBooleanProperty(v);
|
|
95
|
+
}
|
|
96
|
+
get percentStepSize() {
|
|
97
|
+
return this._stepSizeComputed * 100;
|
|
98
|
+
}
|
|
99
|
+
_updateTickArray() {
|
|
100
|
+
let newArr = [];
|
|
101
|
+
let positionPercentCumulative = 0;
|
|
102
|
+
while (positionPercentCumulative < 100) {
|
|
103
|
+
newArr.push(positionPercentCumulative);
|
|
104
|
+
positionPercentCumulative += this._stepSizeComputed * 100;
|
|
105
|
+
positionPercentCumulative = roundToPrecision(positionPercentCumulative, 6);
|
|
106
|
+
}
|
|
107
|
+
newArr.push(100);
|
|
108
|
+
let stringArr = newArr.map(v => `${v}%`);
|
|
109
|
+
this._tickArray = stringArr;
|
|
110
|
+
return stringArr;
|
|
111
|
+
}
|
|
112
|
+
get tickArray() {
|
|
113
|
+
return this._tickArray;
|
|
114
|
+
}
|
|
115
|
+
set labels(val) {
|
|
116
|
+
if (!isDefined(val) || val.length == 0) {
|
|
117
|
+
this.labelObjects = [];
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
this.labelObjects = val.map(this._numberLabelArrayMapFn).map(label => {
|
|
121
|
+
let v = this._clampValue(label.for);
|
|
122
|
+
return {
|
|
123
|
+
label: String(label.label),
|
|
124
|
+
positionPercent: `${this._valueToPercent(v) * 100}%`,
|
|
125
|
+
};
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
_numberLabelArrayMapFn(val) {
|
|
129
|
+
if (isObject(val))
|
|
130
|
+
return val;
|
|
131
|
+
return {
|
|
132
|
+
label: val,
|
|
133
|
+
for: val,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
get compact() {
|
|
137
|
+
return this._compact;
|
|
138
|
+
}
|
|
139
|
+
set compact(v) {
|
|
140
|
+
this._compact = coerceBooleanProperty(v);
|
|
141
|
+
}
|
|
142
|
+
get ngClasses() {
|
|
143
|
+
return [`ard-color-${this.color}`, `ard-labels-${this.labelPosition}`, `ard-tooltip-${this.tooltipPosition}`, this.compact ? 'ard-compact' : ''].join(' ');
|
|
144
|
+
}
|
|
145
|
+
//! determining transition
|
|
146
|
+
get sliderTransition() {
|
|
147
|
+
const x = this._totalSteps;
|
|
148
|
+
//this is determined using this graph: https://www.geogebra.org/calculator/nqgnhpap
|
|
149
|
+
//capped at y=80
|
|
150
|
+
const formulaResult = (20 * (x + 200)) / (x + 20) - 80;
|
|
151
|
+
const formulaResultRounded = roundToPrecision(formulaResult, 3);
|
|
152
|
+
if (formulaResultRounded < 0)
|
|
153
|
+
return '0';
|
|
154
|
+
const transitionDuration = Math.min(80, formulaResultRounded);
|
|
155
|
+
return transitionDuration + 'ms';
|
|
156
|
+
}
|
|
157
|
+
get _totalSteps() {
|
|
158
|
+
return (this.max - this.min) / this.step;
|
|
159
|
+
}
|
|
160
|
+
set value(newValue) {
|
|
161
|
+
this.writeValue(newValue);
|
|
162
|
+
}
|
|
163
|
+
get value() {
|
|
164
|
+
return this._value;
|
|
165
|
+
}
|
|
166
|
+
_offset(offset, hasShift, handleId = 1) {
|
|
167
|
+
let stepSize = this._stepSizeComputed * (hasShift ? this._shiftMultiplier : 1);
|
|
168
|
+
let newPercent = this._positionPercent[handleId - 1] + stepSize * offset;
|
|
169
|
+
newPercent = this._clampPercentValue(newPercent);
|
|
170
|
+
this._setValueFromPercent(newPercent);
|
|
171
|
+
}
|
|
172
|
+
//! helper methods
|
|
173
|
+
_clampValue(v) {
|
|
174
|
+
//clamp between min and max
|
|
175
|
+
v = Math.min(v, this._max);
|
|
176
|
+
v = Math.max(v, this._min);
|
|
177
|
+
//round to the nearest step
|
|
178
|
+
v -= this._min;
|
|
179
|
+
v = roundToMultiple(v, this._step);
|
|
180
|
+
v += this._min;
|
|
181
|
+
return v;
|
|
182
|
+
}
|
|
183
|
+
_valueToPercent(v) {
|
|
184
|
+
const minMaxDifference = Math.abs(this._min - this._max);
|
|
185
|
+
return (v - this._min) / minMaxDifference;
|
|
186
|
+
}
|
|
187
|
+
_emitChange() {
|
|
188
|
+
let v = this.value;
|
|
189
|
+
this._onChangeRegistered?.(v);
|
|
190
|
+
this.valueChange.emit(v);
|
|
191
|
+
}
|
|
192
|
+
set tooltipBehavior(v) {
|
|
193
|
+
this._tooltipBehavior = v;
|
|
194
|
+
}
|
|
195
|
+
get tooltipBehavior() {
|
|
196
|
+
return this._tooltipBehavior;
|
|
197
|
+
}
|
|
198
|
+
get isSliderHandleGrabbed() {
|
|
199
|
+
return this._isGrabbed != 0;
|
|
200
|
+
}
|
|
201
|
+
onPointerDownOnHandle(event, handleId = 1) {
|
|
202
|
+
this._isGrabbed = handleId;
|
|
203
|
+
this._shouldCheckForMovement = true;
|
|
204
|
+
if (!this._bodyHasClass) {
|
|
205
|
+
this._bodyHasClass = true;
|
|
206
|
+
this.renderer.addClass(this.document.body, 'ard-prevent-touch-actions');
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
onPointerUp(event) {
|
|
210
|
+
if (!this._shouldCheckForMovement)
|
|
211
|
+
return;
|
|
212
|
+
this._isGrabbed = 0;
|
|
213
|
+
this._shouldCheckForMovement = false;
|
|
214
|
+
if (this._bodyHasClass) {
|
|
215
|
+
this._bodyHasClass = false;
|
|
216
|
+
this.renderer.removeClass(this.document.body, 'ard-prevent-touch-actions');
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
getHandlePosition(handleId = 1) {
|
|
220
|
+
return this._positionPercent[handleId - 1] * 100 + '%';
|
|
221
|
+
}
|
|
222
|
+
_setValueFromPercent(percent, handleId = 1) {
|
|
223
|
+
if (this._positionPercent[handleId - 1] == percent)
|
|
224
|
+
return;
|
|
225
|
+
this._positionPercent[handleId - 1] = percent;
|
|
226
|
+
this._value = this._percentValueToValue(percent, handleId);
|
|
227
|
+
this._updateTooltipValue();
|
|
228
|
+
this._emitChange();
|
|
229
|
+
}
|
|
230
|
+
_writeValueFromEvent(event, handleId) {
|
|
231
|
+
let percent = this._getPercentValueFromEvent(event);
|
|
232
|
+
this._setValueFromPercent(percent, handleId);
|
|
233
|
+
}
|
|
234
|
+
_getElementRect() {
|
|
235
|
+
return this.element.nativeElement.getBoundingClientRect();
|
|
236
|
+
}
|
|
237
|
+
_clampPercentValue(percent) {
|
|
238
|
+
//clamp between 0 and 1
|
|
239
|
+
percent = Math.min(percent, 1);
|
|
240
|
+
percent = Math.max(percent, 0);
|
|
241
|
+
//round to the nearest step
|
|
242
|
+
percent = roundToMultiple(percent, this._stepSizeComputed);
|
|
243
|
+
return percent;
|
|
244
|
+
}
|
|
245
|
+
_getPercentValueFromEvent(event) {
|
|
246
|
+
const rect = this._getElementRect();
|
|
247
|
+
let position;
|
|
248
|
+
if (event instanceof MouseEvent) {
|
|
249
|
+
position = event.clientX;
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
position = event.targetTouches[0].clientX;
|
|
253
|
+
}
|
|
254
|
+
let percent = (position - rect.left) / rect.width;
|
|
255
|
+
return this._clampPercentValue(percent);
|
|
256
|
+
}
|
|
257
|
+
//! key press handlers
|
|
258
|
+
onKeyPress(event) {
|
|
259
|
+
switch (event.code) {
|
|
260
|
+
case 'ArrowLeft': {
|
|
261
|
+
this._decrement(event);
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
case 'ArrowRight': {
|
|
265
|
+
this._increment(event);
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
_decrement(event, steps = 1) {
|
|
271
|
+
this._offset(-steps, event.shiftKey);
|
|
272
|
+
}
|
|
273
|
+
_increment(event, steps = 1) {
|
|
274
|
+
this._offset(+steps, event.shiftKey);
|
|
275
|
+
}
|
|
276
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: _AbstractSlider, deps: [{ token: DOCUMENT }, { token: i0.Renderer2 }, { token: i1.Overlay }, { token: i1.ScrollStrategyOptions }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
277
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: _AbstractSlider, inputs: { noTooltip: "noTooltip", tooltipFormat: "tooltipFormat", min: "min", max: "max", step: "step", shiftMultiplier: "shiftMultiplier", showValueTicks: "showValueTicks", labelPosition: "labelPosition", labels: "labels", color: "color", compact: "compact", value: "value", tooltipPosition: "tooltipPosition", tooltipBehavior: "tooltipBehavior" }, 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, read: TemplateRef }], viewQueries: [{ propertyName: "element", first: true, predicate: ["track"], descendants: true }], usesInheritance: true, ngImport: i0 }); }
|
|
278
|
+
}
|
|
279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: _AbstractSlider, decorators: [{
|
|
280
|
+
type: Directive
|
|
281
|
+
}], ctorParameters: () => [{ type: Document, decorators: [{
|
|
282
|
+
type: Inject,
|
|
283
|
+
args: [DOCUMENT]
|
|
284
|
+
}] }, { type: i0.Renderer2 }, { type: i1.Overlay }, { type: i1.ScrollStrategyOptions }, { type: i0.ViewContainerRef }], propDecorators: { element: [{
|
|
285
|
+
type: ViewChild,
|
|
286
|
+
args: ['track']
|
|
287
|
+
}], noTooltip: [{
|
|
288
|
+
type: Input
|
|
289
|
+
}], tooltipFormat: [{
|
|
290
|
+
type: Input
|
|
291
|
+
}], min: [{
|
|
292
|
+
type: Input
|
|
293
|
+
}], max: [{
|
|
294
|
+
type: Input
|
|
295
|
+
}], step: [{
|
|
296
|
+
type: Input
|
|
297
|
+
}], shiftMultiplier: [{
|
|
298
|
+
type: Input
|
|
299
|
+
}], showValueTicks: [{
|
|
300
|
+
type: Input
|
|
301
|
+
}], labelPosition: [{
|
|
302
|
+
type: Input
|
|
303
|
+
}], labels: [{
|
|
304
|
+
type: Input
|
|
305
|
+
}], color: [{
|
|
306
|
+
type: Input
|
|
307
|
+
}], compact: [{
|
|
308
|
+
type: Input
|
|
309
|
+
}], value: [{
|
|
310
|
+
type: Input
|
|
311
|
+
}], valueChange: [{
|
|
312
|
+
type: Output
|
|
313
|
+
}], tooltipTemplate: [{
|
|
314
|
+
type: ContentChild,
|
|
315
|
+
args: [ArdSliderTooltipDirective, { read: TemplateRef }]
|
|
316
|
+
}], tooltipPosition: [{
|
|
317
|
+
type: Input
|
|
318
|
+
}], tooltipBehavior: [{
|
|
319
|
+
type: Input
|
|
320
|
+
}], onPointerUp: [{
|
|
321
|
+
type: HostListener,
|
|
322
|
+
args: ['document:pointerup', ['$event']]
|
|
323
|
+
}, {
|
|
324
|
+
type: HostListener,
|
|
325
|
+
args: ['document:touchend', ['$event']]
|
|
326
|
+
}], onKeyPress: [{
|
|
327
|
+
type: HostListener,
|
|
328
|
+
args: ['keydown', ['$event']]
|
|
329
|
+
}] } });
|
|
330
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc2xpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9zbGlkZXIvYWJzdHJhY3Qtc2xpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsWUFBWSxFQUNaLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEdBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQXFCLHFCQUFxQixFQUFxRCxNQUFNLGdCQUFnQixDQUFDOzs7QUFHdkosTUFBTSxPQUFnQixlQUFtQixTQUFRLHFCQUFxQjtJQUlsRSxZQUNnQyxRQUFrQixFQUNwQyxRQUFtQixFQUNuQixPQUFnQixFQUNoQixrQkFBeUMsRUFDekMsZ0JBQWtDO1FBRTVDLEtBQUssRUFBRSxDQUFDO1FBTm9CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHVCQUFrQixHQUFsQixrQkFB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O2tCQURwQyxTQUFTOzswQkFNRCxNQUFNOzJCQUFDLFFBQVE7MEpBSEosT0FBTztzQkFEdEIsU0FBUzt1QkFBQyxPQUFPO2dCQWVkLFNBQVM7c0JBRFosS0FBSztnQkFRRyxhQUFhO3NCQUFyQixLQUFLO2dCQU9GLEdBQUc7c0JBRE4sS0FBSztnQkFXRixHQUFHO3NCQUROLEtBQUs7Z0JBV0YsSUFBSTtzQkFEUCxLQUFLO2dCQWNGLGVBQWU7c0JBRGxCLEtBQUs7Z0JBa0JGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBaUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0YsTUFBTTtzQkFEVCxLQUFLO2dCQXVCRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUYsT0FBTztzQkFEVixLQUFLO2dCQW1DRixLQUFLO3NCQURSLEtBQUs7Z0JBT0ksV0FBVztzQkFBcEIsTUFBTTtnQkFzQ1AsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLHlCQUF5QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFHckQsZUFBZTtzQkFBdkIsS0FBSztnQkFJRixlQUFlO3NCQURsQixLQUFLO2dCQStCTixXQUFXO3NCQUZWLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUM3QyxZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXVEN0MsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ29udGVudENoaWxkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcbmltcG9ydCB7IHJvdW5kVG9NdWx0aXBsZSwgcm91bmRUb1ByZWNpc2lvbiB9IGZyb20gJ21vcmUtcm91bmRpbmcnO1xuaW1wb3J0IHsgaXNEZWZpbmVkLCBpc09iamVjdCB9IGZyb20gJ3NpbXBsZS1ib29sJztcbmltcG9ydCB7IF9OZ01vZGVsQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uL19pbnRlcm5hbC9uZ21vZGVsLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVDb21wb25lbnRDb2xvciB9IGZyb20gJy4uL3R5cGVzL2NvbG9ycy50eXBlcyc7XG5pbXBvcnQgeyBBcmRTbGlkZXJUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi9zbGlkZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNsaWRlckRlY29yYXRpb25Qb3NpdGlvbiwgU2xpZGVyTGFiZWxPYmplY3QsIFNsaWRlclRvb2x0aXBCZWhhdmlvciwgU2xpZGVyVG9vbHRpcEZvcm1hdEZuLCBfSW50ZXJuYWxTbGlkZXJMYWJlbE9iamVjdCB9IGZyb20gJy4vc2xpZGVyLnR5cGVzJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgX0Fic3RyYWN0U2xpZGVyPFQ+IGV4dGVuZHMgX05nTW9kZWxDb21wb25lbnRCYXNlIHtcbiAgICBAVmlld0NoaWxkKCd0cmFjaycpXG4gICAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcm90ZWN0ZWQgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJvdGVjdGVkIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIHByb3RlY3RlZCBzY3JvbGxTdHJhdGVneU9wdHM6IFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyxcbiAgICAgICAgcHJvdGVjdGVkIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9ub1Rvb2x0aXA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBub1Rvb2x0aXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub1Rvb2x0aXA7XG4gICAgfVxuICAgIHNldCBub1Rvb2x0aXAodjogYW55KSB7XG4gICAgICAgIHRoaXMuX25vVG9vbHRpcCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSB0b29sdGlwRm9ybWF0PzogU2xpZGVyVG9vbHRpcEZvcm1hdEZuO1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IF91cGRhdGVUb29sdGlwVmFsdWUoKTogdm9pZDtcblxuICAgIC8vISBtaW4sIG1heCwgc3RlcCBzaXplc1xuICAgIHByb3RlY3RlZCBfbWluOiBudW1iZXIgPSAwO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IG1pbigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWluO1xuICAgIH1cbiAgICBzZXQgbWluKHY6IGFueSkge1xuICAgICAgICB0aGlzLl9taW4gPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCAwKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ29tcHV0ZWRTdGVwU2l6ZXMoKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlVGlja0FycmF5KCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfbWF4OiBudW1iZXIgPSAxMDA7XG4gICAgQElucHV0KClcbiAgICBnZXQgbWF4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXg7XG4gICAgfVxuICAgIHNldCBtYXgodjogYW55KSB7XG4gICAgICAgIHRoaXMuX21heCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHYsIDEwMCk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbXB1dGVkU3RlcFNpemVzKCk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZVRpY2tBcnJheSgpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3N0ZXA6IG51bWJlciA9IDE7XG4gICAgQElucHV0KClcbiAgICBnZXQgc3RlcCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RlcDtcbiAgICB9XG4gICAgc2V0IHN0ZXAodjogYW55KSB7XG4gICAgICAgIHRoaXMuX3N0ZXAgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCAwLjUpO1xuICAgICAgICBpZiAodGhpcy5fc3RlcCA8PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1c2UgbmVnYXRpdmUgb3IgemVybyBzdGVwIHNpemUgZm9yIGEgc2xpZGVyLicpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbXB1dGVkU3RlcFNpemVzKCk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZVRpY2tBcnJheSgpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NoaWZ0TXVsdGlwbGllcjogbnVtYmVyID0gNTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBzaGlmdE11bHRpcGxpZXIoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NoaWZ0TXVsdGlwbGllcjtcbiAgICB9XG4gICAgc2V0IHNoaWZ0TXVsdGlwbGllcih2OiBhbnkpIHtcbiAgICAgICAgdGhpcy5fc2hpZnRNdWx0aXBsaWVyID0gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgMSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9zdGVwU2l6ZUNvbXB1dGVkOiBudW1iZXIgPSB0aGlzLl91cGRhdGVDb21wdXRlZFN0ZXBTaXplcygpO1xuICAgIHByb3RlY3RlZCBfdXBkYXRlQ29tcHV0ZWRTdGVwU2l6ZXMoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgbWluTWF4RGlmZmVyZW5jZSA9IE1hdGguYWJzKHRoaXMuX21pbiAtIHRoaXMuX21heCk7XG4gICAgICAgIHRoaXMuX3N0ZXBTaXplQ29tcHV0ZWQgPSB0aGlzLl9zdGVwIC8gbWluTWF4RGlmZmVyZW5jZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0ZXBTaXplQ29tcHV0ZWQ7XG4gICAgfVxuXG4gICAgLy8hIHZhbHVlIHRpY2tzXG4gICAgcHJvdGVjdGVkIF9zaG93VmFsdWVUaWNrczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHNob3dWYWx1ZVRpY2tzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2hvd1ZhbHVlVGlja3M7XG4gICAgfVxuICAgIHNldCBzaG93VmFsdWVUaWNrcyh2OiBhbnkpIHtcbiAgICAgICAgdGhpcy5fc2hvd1ZhbHVlVGlja3MgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodik7XG4gICAgfVxuXG4gICAgZ2V0IHBlcmNlbnRTdGVwU2l6ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RlcFNpemVDb21wdXRlZCAqIDEwMDtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF90aWNrQXJyYXk6IHN0cmluZ1tdID0gdGhpcy5fdXBkYXRlVGlja0FycmF5KCk7XG4gICAgcHJvdGVjdGVkIF91cGRhdGVUaWNrQXJyYXkoKTogc3RyaW5nW10ge1xuICAgICAgICBsZXQgbmV3QXJyOiBudW1iZXJbXSA9IFtdO1xuICAgICAgICBsZXQgcG9zaXRpb25QZXJjZW50Q3VtdWxhdGl2ZTogbnVtYmVyID0gMDtcblxuICAgICAgICB3aGlsZSAocG9zaXRpb25QZXJjZW50Q3VtdWxhdGl2ZSA8IDEwMCkge1xuICAgICAgICAgICAgbmV3QXJyLnB1c2gocG9zaXRpb25QZXJjZW50Q3VtdWxhdGl2ZSk7XG4gICAgICAgICAgICBwb3NpdGlvblBlcmNlbnRDdW11bGF0aXZlICs9IHRoaXMuX3N0ZXBTaXplQ29tcHV0ZWQgKiAxMDA7XG4gICAgICAgICAgICBwb3NpdGlvblBlcmNlbnRDdW11bGF0aXZlID0gcm91bmRUb1ByZWNpc2lvbihwb3NpdGlvblBlcmNlbnRDdW11bGF0aXZlLCA2KTtcbiAgICAgICAgfVxuICAgICAgICBuZXdBcnIucHVzaCgxMDApO1xuXG4gICAgICAgIGxldCBzdHJpbmdBcnIgPSBuZXdBcnIubWFwKHYgPT4gYCR7dn0lYCk7XG5cbiAgICAgICAgdGhpcy5fdGlja0FycmF5ID0gc3RyaW5nQXJyO1xuICAgICAgICByZXR1cm4gc3RyaW5nQXJyO1xuICAgIH1cbiAgICBnZXQgdGlja0FycmF5KCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RpY2tBcnJheTtcbiAgICB9XG5cbiAgICAvLyEgbGFiZWxzXG4gICAgQElucHV0KCkgbGFiZWxQb3NpdGlvbjogU2xpZGVyRGVjb3JhdGlvblBvc2l0aW9uID0gU2xpZGVyRGVjb3JhdGlvblBvc2l0aW9uLkJvdHRvbTtcbiAgICBwdWJsaWMgbGFiZWxPYmplY3RzOiBfSW50ZXJuYWxTbGlkZXJMYWJlbE9iamVjdFtdID0gW107XG4gICAgQElucHV0KClcbiAgICBzZXQgbGFiZWxzKHZhbDogU2xpZGVyTGFiZWxPYmplY3RbXSB8IG51bWJlcltdIHwgbnVsbCkge1xuICAgICAgICBpZiAoIWlzRGVmaW5lZCh2YWwpIHx8IHZhbC5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5sYWJlbE9iamVjdHMgPSBbXTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxhYmVsT2JqZWN0cyA9IHZhbC5tYXAodGhpcy5fbnVtYmVyTGFiZWxBcnJheU1hcEZuKS5tYXAobGFiZWwgPT4ge1xuICAgICAgICAgICAgbGV0IHYgPSB0aGlzLl9jbGFtcFZhbHVlKGxhYmVsLmZvcik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGxhYmVsOiBTdHJpbmcobGFiZWwubGFiZWwpLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uUGVyY2VudDogYCR7dGhpcy5fdmFsdWVUb1BlcmNlbnQodikgKiAxMDB9JWAsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9udW1iZXJMYWJlbEFycmF5TWFwRm4odmFsOiBTbGlkZXJMYWJlbE9iamVjdCB8IG51bWJlcik6IFNsaWRlckxhYmVsT2JqZWN0IHtcbiAgICAgICAgaWYgKGlzT2JqZWN0KHZhbCkpIHJldHVybiB2YWw7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbDogdmFsLFxuICAgICAgICAgICAgZm9yOiB2YWwsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8hIGFwcGVhcmFuY2VcbiAgICBASW5wdXQoKSBjb2xvcjogU2ltcGxlQ29tcG9uZW50Q29sb3IgPSBTaW1wbGVDb21wb25lbnRDb2xvci5QcmltYXJ5O1xuXG4gICAgcHJpdmF0ZSBfY29tcGFjdDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGNvbXBhY3QoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21wYWN0O1xuICAgIH1cbiAgICBzZXQgY29tcGFjdCh2OiBhbnkpIHtcbiAgICAgICAgdGhpcy5fY29tcGFjdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KTtcbiAgICB9XG5cbiAgICBnZXQgbmdDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbYGFyZC1jb2xvci0ke3RoaXMuY29sb3J9YCwgYGFyZC1sYWJlbHMtJHt0aGlzLmxhYmVsUG9zaXRpb259YCwgYGFyZC10b29sdGlwLSR7dGhpcy50b29sdGlwUG9zaXRpb259YCwgdGhpcy5jb21wYWN0ID8gJ2FyZC1jb21wYWN0JyA6ICcnXS5qb2luKFxuICAgICAgICAgICAgJyAnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8hIGRldGVybWluaW5nIHRyYW5zaXRpb25cbiAgICBnZXQgc2xpZGVyVHJhbnNpdGlvbigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB4ID0gdGhpcy5fdG90YWxTdGVwcztcbiAgICAgICAgLy90aGlzIGlzIGRldGVybWluZWQgdXNpbmcgdGhpcyBncmFwaDogaHR0cHM6Ly93d3cuZ2VvZ2VicmEub3JnL2NhbGN1bGF0b3IvbnFnbmhwYXBcbiAgICAgICAgLy9jYXBwZWQgYXQgeT04MFxuICAgICAgICBjb25zdCBmb3JtdWxhUmVzdWx0ID0gKDIwICogKHggKyAyMDApKSAvICh4ICsgMjApIC0gODA7XG4gICAgICAgIGNvbnN0IGZvcm11bGFSZXN1bHRSb3VuZGVkID0gcm91bmRUb1ByZWNpc2lvbihmb3JtdWxhUmVzdWx0LCAzKTtcblxuICAgICAgICBpZiAoZm9ybXVsYVJlc3VsdFJvdW5kZWQgPCAwKSByZXR1cm4gJzAnO1xuXG4gICAgICAgIGNvbnN0IHRyYW5zaXRpb25EdXJhdGlvbiA9IE1hdGgubWluKDgwLCBmb3JtdWxhUmVzdWx0Um91bmRlZCk7XG4gICAgICAgIHJldHVybiB0cmFuc2l0aW9uRHVyYXRpb24gKyAnbXMnO1xuICAgIH1cbiAgICBwcml2YXRlIGdldCBfdG90YWxTdGVwcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKHRoaXMubWF4IC0gdGhpcy5taW4pIC8gdGhpcy5zdGVwO1xuICAgIH1cblxuICAgIC8vISB2YWx1ZSBpbnB1dCAmIG91dHB1dFxuICAgIC8vISBhYnN0cmFjdCBoZXJlXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IF92YWx1ZTogVDtcbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZShuZXdWYWx1ZTogVCkge1xuICAgICAgICB0aGlzLndyaXRlVmFsdWUobmV3VmFsdWUpO1xuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG4gICAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gICAgLy8hIHdyaXRlVmFsdWVcbiAgICAvLyEgYWJzdHJhY3QgaGVyZVxuICAgIGFic3RyYWN0IG92ZXJyaWRlIHdyaXRlVmFsdWUodjogYW55KTogdm9pZDsgLy8qIGFic3RhY3RcbiAgICAvLyEgbWV0aG9kcyBmb3IgcHJvZ3JhbW1hdGljIG1hbmlwdWxhdGlvblxuICAgIGFic3RyYWN0IHJlc2V0KCk6IHZvaWQ7XG5cbiAgICBwcm90ZWN0ZWQgX29mZnNldChvZmZzZXQ6IG51bWJlciwgaGFzU2hpZnQ6IGJvb2xlYW4sIGhhbmRsZUlkOiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgICAgIGxldCBzdGVwU2l6ZSA9IHRoaXMuX3N0ZXBTaXplQ29tcHV0ZWQgKiAoaGFzU2hpZnQgPyB0aGlzLl9zaGlmdE11bHRpcGxpZXIgOiAxKTtcbiAgICAgICAgbGV0IG5ld1BlcmNlbnQgPSB0aGlzLl9wb3NpdGlvblBlcmNlbnRbaGFuZGxlSWQgLSAxXSArIHN0ZXBTaXplICogb2Zmc2V0O1xuICAgICAgICBuZXdQZXJjZW50ID0gdGhpcy5fY2xhbXBQZXJjZW50VmFsdWUobmV3UGVyY2VudCk7XG4gICAgICAgIHRoaXMuX3NldFZhbHVlRnJvbVBlcmNlbnQobmV3UGVyY2VudCk7XG4gICAgfVxuXG4gICAgLy8hIGhlbHBlciBtZXRob2RzXG4gICAgcHJvdGVjdGVkIF9jbGFtcFZhbHVlKHY6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIC8vY2xhbXAgYmV0d2VlbiBtaW4gYW5kIG1heFxuICAgICAgICB2ID0gTWF0aC5taW4odiwgdGhpcy5fbWF4KTtcbiAgICAgICAgdiA9IE1hdGgubWF4KHYsIHRoaXMuX21pbik7XG4gICAgICAgIC8vcm91bmQgdG8gdGhlIG5lYXJlc3Qgc3RlcFxuICAgICAgICB2IC09IHRoaXMuX21pbjtcbiAgICAgICAgdiA9IHJvdW5kVG9NdWx0aXBsZSh2LCB0aGlzLl9zdGVwKTtcbiAgICAgICAgdiArPSB0aGlzLl9taW47XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3ZhbHVlVG9QZXJjZW50KHY6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG1pbk1heERpZmZlcmVuY2UgPSBNYXRoLmFicyh0aGlzLl9taW4gLSB0aGlzLl9tYXgpO1xuICAgICAgICByZXR1cm4gKHYgLSB0aGlzLl9taW4pIC8gbWluTWF4RGlmZmVyZW5jZTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9lbWl0Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICBsZXQgdiA9IHRoaXMudmFsdWU7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlUmVnaXN0ZXJlZD8uKHYpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XG4gICAgfVxuXG4gICAgLy8hIHRvb2x0aXBcbiAgICBAQ29udGVudENoaWxkKEFyZFNsaWRlclRvb2x0aXBEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICB0b29sdGlwVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KCkgdG9vbHRpcFBvc2l0aW9uOiBTbGlkZXJEZWNvcmF0aW9uUG9zaXRpb24gPSBTbGlkZXJEZWNvcmF0aW9uUG9zaXRpb24uVG9wO1xuXG4gICAgcHJpdmF0ZSBfdG9vbHRpcEJlaGF2aW9yOiBTbGlkZXJUb29sdGlwQmVoYXZpb3IgPSBTbGlkZXJUb29sdGlwQmVoYXZpb3IuQXV0bztcbiAgICBASW5wdXQoKVxuICAgIHNldCB0b29sdGlwQmVoYXZpb3IodjogU2xpZGVyVG9vbHRpcEJlaGF2aW9yKSB7XG4gICAgICAgIHRoaXMuX3Rvb2x0aXBCZWhhdmlvciA9IHY7XG4gICAgfVxuICAgIGdldCB0b29sdGlwQmVoYXZpb3IoKTogU2xpZGVyVG9vbHRpcEJlaGF2aW9yIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXBCZWhhdmlvcjtcbiAgICB9XG5cbiAgICAvLyEgZXZlbnQgaGFuZGxlcnNcbiAgICBwcm90ZWN0ZWQgX2lzR3JhYmJlZDogbnVtYmVyID0gMDtcbiAgICBwcm90ZWN0ZWQgX3Nob3VsZENoZWNrRm9yTW92ZW1lbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgX2JvZHlIYXNDbGFzczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZ2V0IGlzU2xpZGVySGFuZGxlR3JhYmJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzR3JhYmJlZCAhPSAwO1xuICAgIH1cbiAgICBhYnN0cmFjdCBvblRyYWNrSGl0Ym94UG9pbnRlckRvd24oZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZDsgLy8qIGFic3RhY3RcblxuICAgIG9uUG9pbnRlckRvd25PbkhhbmRsZShldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsIGhhbmRsZUlkOiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzR3JhYmJlZCA9IGhhbmRsZUlkO1xuICAgICAgICB0aGlzLl9zaG91bGRDaGVja0Zvck1vdmVtZW50ID0gdHJ1ZTtcbiAgICAgICAgaWYgKCF0aGlzLl9ib2R5SGFzQ2xhc3MpIHtcbiAgICAgICAgICAgIHRoaXMuX2JvZHlIYXNDbGFzcyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2FyZC1wcmV2ZW50LXRvdWNoLWFjdGlvbnMnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFic3RyYWN0IG9uUG9pbnRlck1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZDsgLy8qIGFic3RhY3RcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnBvaW50ZXJ1cCcsIFsnJGV2ZW50J10pXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6dG91Y2hlbmQnLCBbJyRldmVudCddKVxuICAgIG9uUG9pbnRlclVwKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3Nob3VsZENoZWNrRm9yTW92ZW1lbnQpIHJldHVybjtcbiAgICAgICAgdGhpcy5faXNHcmFiYmVkID0gMDtcbiAgICAgICAgdGhpcy5fc2hvdWxkQ2hlY2tGb3JNb3ZlbWVudCA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5fYm9keUhhc0NsYXNzKSB7XG4gICAgICAgICAgICB0aGlzLl9ib2R5SGFzQ2xhc3MgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCAnYXJkLXByZXZlbnQtdG91Y2gtYWN0aW9ucycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8hIHBvc2l0aW9uIGNhbGN1bGF0b3JzXG4gICAgcHJvdGVjdGVkIF9wb3NpdGlvblBlcmNlbnQ6IFtudW1iZXJdIHwgW251bWJlciwgbnVtYmVyXSA9IFswXTtcbiAgICBnZXRIYW5kbGVQb3NpdGlvbihoYW5kbGVJZDogbnVtYmVyID0gMSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wb3NpdGlvblBlcmNlbnRbaGFuZGxlSWQgLSAxXSAqIDEwMCArICclJztcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9zZXRWYWx1ZUZyb21QZXJjZW50KHBlcmNlbnQ6IG51bWJlciwgaGFuZGxlSWQ6IG51bWJlciA9IDEpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3Bvc2l0aW9uUGVyY2VudFtoYW5kbGVJZCAtIDFdID09IHBlcmNlbnQpIHJldHVybjtcbiAgICAgICAgdGhpcy5fcG9zaXRpb25QZXJjZW50W2hhbmRsZUlkIC0gMV0gPSBwZXJjZW50O1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX3BlcmNlbnRWYWx1ZVRvVmFsdWUocGVyY2VudCwgaGFuZGxlSWQpO1xuXG4gICAgICAgIHRoaXMuX3VwZGF0ZVRvb2x0aXBWYWx1ZSgpO1xuXG4gICAgICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF93cml0ZVZhbHVlRnJvbUV2ZW50KGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCwgaGFuZGxlSWQ/OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgbGV0IHBlcmNlbnQgPSB0aGlzLl9nZXRQZXJjZW50VmFsdWVGcm9tRXZlbnQoZXZlbnQpO1xuICAgICAgICB0aGlzLl9zZXRWYWx1ZUZyb21QZXJjZW50KHBlcmNlbnQsIGhhbmRsZUlkKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IF9wZXJjZW50VmFsdWVUb1ZhbHVlKHBlcmNlbnQ6IG51bWJlciwgaGFuZGxlSWQ/OiBudW1iZXIpOiBUOyAvLyogYWJzdGFjdFxuXG4gICAgcHJvdGVjdGVkIF9nZXRFbGVtZW50UmVjdCgpOiBET01SZWN0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2NsYW1wUGVyY2VudFZhbHVlKHBlcmNlbnQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIC8vY2xhbXAgYmV0d2VlbiAwIGFuZCAxXG4gICAgICAgIHBlcmNlbnQgPSBNYXRoLm1pbihwZXJjZW50LCAxKTtcbiAgICAgICAgcGVyY2VudCA9IE1hdGgubWF4KHBlcmNlbnQsIDApO1xuICAgICAgICAvL3JvdW5kIHRvIHRoZSBuZWFyZXN0IHN0ZXBcbiAgICAgICAgcGVyY2VudCA9IHJvdW5kVG9NdWx0aXBsZShwZXJjZW50LCB0aGlzLl9zdGVwU2l6ZUNvbXB1dGVkKTtcbiAgICAgICAgcmV0dXJuIHBlcmNlbnQ7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZ2V0UGVyY2VudFZhbHVlRnJvbUV2ZW50KGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLl9nZXRFbGVtZW50UmVjdCgpO1xuICAgICAgICBsZXQgcG9zaXRpb246IG51bWJlcjtcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCkge1xuICAgICAgICAgICAgcG9zaXRpb24gPSBldmVudC5jbGllbnRYO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcG9zaXRpb24gPSBldmVudC50YXJnZXRUb3VjaGVzWzBdLmNsaWVudFg7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHBlcmNlbnQgPSAocG9zaXRpb24gLSByZWN0LmxlZnQpIC8gcmVjdC53aWR0aDtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NsYW1wUGVyY2VudFZhbHVlKHBlcmNlbnQpO1xuICAgIH1cbiAgICAvLyEga2V5IHByZXNzIGhhbmRsZXJzXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgb25LZXlQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93TGVmdCc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWNyZW1lbnQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5jcmVtZW50KGV2ZW50KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9kZWNyZW1lbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHN0ZXBzOiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29mZnNldCgtc3RlcHMsIGV2ZW50LnNoaWZ0S2V5KTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9pbmNyZW1lbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHN0ZXBzOiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29mZnNldCgrc3RlcHMsIGV2ZW50LnNoaWZ0S2V5KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostListener, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { roundToPrecision } from 'more-rounding';
|
|
3
|
+
import { isNumber, isObject } from 'simple-bool';
|
|
4
|
+
import { _AbstractSlider } from '../abstract-slider';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
export class ArdiumRangeSliderComponent extends _AbstractSlider {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this._value = { low: -Infinity, high: Infinity };
|
|
11
|
+
//! tooltip updater
|
|
12
|
+
this._tooltipValue = this.value;
|
|
13
|
+
//! handle focus monitors
|
|
14
|
+
this.currentHandle = null;
|
|
15
|
+
}
|
|
16
|
+
ngOnInit() {
|
|
17
|
+
if (this._value.low != -Infinity && this._value.high != Infinity)
|
|
18
|
+
return;
|
|
19
|
+
this.writeValue({ low: this._min, high: this._max });
|
|
20
|
+
}
|
|
21
|
+
//! writeValue
|
|
22
|
+
_isValidObject(v) {
|
|
23
|
+
return isObject(v) && isNumber(v['low']) && isNumber(v['high']);
|
|
24
|
+
}
|
|
25
|
+
_isValidTuple(v) {
|
|
26
|
+
return Array.isArray(v) && isNumber(v[0]) && isNumber(v[1]) && v.length == 2;
|
|
27
|
+
}
|
|
28
|
+
_arrayValueToObjectValue(v) {
|
|
29
|
+
return { low: v[0], high: v[1] };
|
|
30
|
+
}
|
|
31
|
+
_normalizeSliderRange(v) {
|
|
32
|
+
if (v.low <= v.high)
|
|
33
|
+
return v;
|
|
34
|
+
return { low: v.high, high: v.low };
|
|
35
|
+
}
|
|
36
|
+
writeValue(v) {
|
|
37
|
+
if (!this._isValidObject(v) && !this._isValidTuple(v)) {
|
|
38
|
+
this.reset();
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
let low = -Infinity;
|
|
42
|
+
let high = Infinity;
|
|
43
|
+
if (this._isValidObject(v)) {
|
|
44
|
+
low = v.low;
|
|
45
|
+
high = v.high;
|
|
46
|
+
}
|
|
47
|
+
else if (this._isValidTuple(v)) {
|
|
48
|
+
low = v[0];
|
|
49
|
+
high = v[1];
|
|
50
|
+
}
|
|
51
|
+
let lowClamped = this._clampValue(low);
|
|
52
|
+
let highClamped = this._clampValue(high);
|
|
53
|
+
let value = this._arrayValueToObjectValue([lowClamped, highClamped]);
|
|
54
|
+
this._value = value;
|
|
55
|
+
this._positionPercent[0] = this._valueToPercent(lowClamped);
|
|
56
|
+
this._positionPercent[1] = this._valueToPercent(highClamped);
|
|
57
|
+
this._updateTooltipValue();
|
|
58
|
+
}
|
|
59
|
+
get value() {
|
|
60
|
+
return this._normalizeSliderRange(this._value);
|
|
61
|
+
}
|
|
62
|
+
set value(v) {
|
|
63
|
+
this.writeValue(v);
|
|
64
|
+
}
|
|
65
|
+
_updateTooltipValue() {
|
|
66
|
+
let v = Object.create(this._value);
|
|
67
|
+
if (this.tooltipFormat) {
|
|
68
|
+
v.low = this.tooltipFormat(v.low);
|
|
69
|
+
v.high = this.tooltipFormat(v.high);
|
|
70
|
+
}
|
|
71
|
+
this._tooltipValue = v;
|
|
72
|
+
}
|
|
73
|
+
getTooltipContext(type) {
|
|
74
|
+
return {
|
|
75
|
+
value: this._tooltipValue[type],
|
|
76
|
+
$implicit: this._tooltipValue[type],
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//! methods for programmatic manipulation
|
|
80
|
+
reset() {
|
|
81
|
+
this._value = { low: -Infinity, high: Infinity };
|
|
82
|
+
this._positionPercent[0] = 0;
|
|
83
|
+
this._positionPercent[1] = 1;
|
|
84
|
+
}
|
|
85
|
+
//! track overlay getters
|
|
86
|
+
get trackOverlayLeft() {
|
|
87
|
+
return Math.min(...this._positionPercent) * 100 + '%';
|
|
88
|
+
}
|
|
89
|
+
get trackOverlayWidth() {
|
|
90
|
+
return Math.abs(this._positionPercent[0] - this._positionPercent[1]) * 100 + '%';
|
|
91
|
+
}
|
|
92
|
+
//! event handlers
|
|
93
|
+
onTrackHitboxPointerDown(event) {
|
|
94
|
+
this._writeValueFromEvent(event);
|
|
95
|
+
this.onPointerDownOnHandle(event);
|
|
96
|
+
}
|
|
97
|
+
onPointerMove(event) {
|
|
98
|
+
if (!this._shouldCheckForMovement)
|
|
99
|
+
return;
|
|
100
|
+
if (!this._bodyHasClass) {
|
|
101
|
+
this._bodyHasClass = true;
|
|
102
|
+
this.renderer.addClass(this.document.body, 'ard-prevent-touch-actions');
|
|
103
|
+
}
|
|
104
|
+
this._writeValueFromEvent(event, this._isGrabbed);
|
|
105
|
+
}
|
|
106
|
+
//! position calculators
|
|
107
|
+
_percentValueToValue(percent, handleId) {
|
|
108
|
+
const minMaxDifference = Math.abs(this._min - this._max);
|
|
109
|
+
let newVal = percent * minMaxDifference + this._min;
|
|
110
|
+
//round to 9 decimal places to avoid floating point arithmetic errors
|
|
111
|
+
//9 is an arbitrary number that just works well. ¯\_(ツ)_/¯
|
|
112
|
+
newVal = roundToPrecision(newVal, 9);
|
|
113
|
+
const newValObj = { low: this._value.low, high: this._value.high };
|
|
114
|
+
if (handleId == 1) {
|
|
115
|
+
newValObj.low = newVal;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
newValObj.high = newVal;
|
|
119
|
+
}
|
|
120
|
+
return newValObj;
|
|
121
|
+
}
|
|
122
|
+
onHandleFocus(event, handleId) {
|
|
123
|
+
this.onFocus(event);
|
|
124
|
+
this.currentHandle = handleId;
|
|
125
|
+
}
|
|
126
|
+
onBlur(event) {
|
|
127
|
+
super.onBlur(event);
|
|
128
|
+
this.currentHandle = null;
|
|
129
|
+
}
|
|
130
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumRangeSliderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
131
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: ArdiumRangeSliderComponent, selector: "ard-range-slider", host: { listeners: { "document:mousemove": "onPointerMove($event)", "document:touchmove": "onPointerMove($event)" } }, usesInheritance: true, ngImport: i0, template: "<div 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 #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 <div class=\"ard-value-tick-container\" *ngIf=\"showValueTicks\">\r\n <div class=\"ard-value-tick\" *ngFor=\"let left of tickArray\" [style]=\"{left: left}\"></div>\r\n </div>\r\n </div>\r\n <button #focusableElement\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 <div class=\"ard-slider-tooltip-wrapper\"\r\n *ngIf=\"tooltipBehavior != 'never'\"\r\n [class.ard-tooltip-always]=\"tooltipBehavior == 'always'\"\r\n [style]=\"{left: getHandlePosition(1)}\"\r\n >\r\n <ng-template #defaultTooltipTemplate let-value>\r\n <div class=\"ard-slider-tooltip\">{{ value }}</div>\r\n </ng-template>\r\n \r\n <ng-template [ngTemplateOutlet]=\"tooltipTemplate || defaultTooltipTemplate\"\r\n [ngTemplateOutletContext]=\"getTooltipContext('low')\">\r\n </ng-template>\r\n </div>\r\n <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 <div class=\"ard-slider-tooltip-wrapper\"\r\n *ngIf=\"tooltipBehavior != 'never'\"\r\n [class.ard-tooltip-always]=\"tooltipBehavior == 'always'\"\r\n [style]=\"{left: getHandlePosition(2)}\"\r\n >\r\n <ng-template #defaultTooltipTemplate let-value>\r\n <div class=\"ard-slider-tooltip\">{{ value }}</div>\r\n </ng-template>\r\n \r\n <ng-template [ngTemplateOutlet]=\"tooltipTemplate || defaultTooltipTemplate\"\r\n [ngTemplateOutletContext]=\"getTooltipContext('high')\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div class=\"ard-slider-label-container\" *ngIf=\"labelObjects.length\">\r\n <div\r\n *ngFor=\"let label of labelObjects\"\r\n class=\"ard-slider-label\"\r\n [style]=\"{left: label.positionPercent}\"\r\n >{{ label.label }}</div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #handleThumbBase>\r\n <div class=\"ard-slide-thumb\">Test</div>\r\n</ng-template>", 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.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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 }); }
|
|
132
|
+
}
|
|
133
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumRangeSliderComponent, decorators: [{
|
|
134
|
+
type: Component,
|
|
135
|
+
args: [{ selector: 'ard-range-slider', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div 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 #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 <div class=\"ard-value-tick-container\" *ngIf=\"showValueTicks\">\r\n <div class=\"ard-value-tick\" *ngFor=\"let left of tickArray\" [style]=\"{left: left}\"></div>\r\n </div>\r\n </div>\r\n <button #focusableElement\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 <div class=\"ard-slider-tooltip-wrapper\"\r\n *ngIf=\"tooltipBehavior != 'never'\"\r\n [class.ard-tooltip-always]=\"tooltipBehavior == 'always'\"\r\n [style]=\"{left: getHandlePosition(1)}\"\r\n >\r\n <ng-template #defaultTooltipTemplate let-value>\r\n <div class=\"ard-slider-tooltip\">{{ value }}</div>\r\n </ng-template>\r\n \r\n <ng-template [ngTemplateOutlet]=\"tooltipTemplate || defaultTooltipTemplate\"\r\n [ngTemplateOutletContext]=\"getTooltipContext('low')\">\r\n </ng-template>\r\n </div>\r\n <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 <div class=\"ard-slider-tooltip-wrapper\"\r\n *ngIf=\"tooltipBehavior != 'never'\"\r\n [class.ard-tooltip-always]=\"tooltipBehavior == 'always'\"\r\n [style]=\"{left: getHandlePosition(2)}\"\r\n >\r\n <ng-template #defaultTooltipTemplate let-value>\r\n <div class=\"ard-slider-tooltip\">{{ value }}</div>\r\n </ng-template>\r\n \r\n <ng-template [ngTemplateOutlet]=\"tooltipTemplate || defaultTooltipTemplate\"\r\n [ngTemplateOutletContext]=\"getTooltipContext('high')\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div class=\"ard-slider-label-container\" *ngIf=\"labelObjects.length\">\r\n <div\r\n *ngFor=\"let label of labelObjects\"\r\n class=\"ard-slider-label\"\r\n [style]=\"{left: label.positionPercent}\"\r\n >{{ label.label }}</div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #handleThumbBase>\r\n <div class=\"ard-slide-thumb\">Test</div>\r\n</ng-template>", 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"] }]
|
|
136
|
+
}], propDecorators: { onPointerMove: [{
|
|
137
|
+
type: HostListener,
|
|
138
|
+
args: ['document:mousemove', ['$event']]
|
|
139
|
+
}, {
|
|
140
|
+
type: HostListener,
|
|
141
|
+
args: ['document:touchmove', ['$event']]
|
|
142
|
+
}] } });
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvc2xpZGVyL3JhbmdlLXNsaWRlci9yYW5nZS1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9zbGlkZXIvcmFuZ2Utc2xpZGVyL3JhbmdlLXNsaWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFXckQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGVBQTRCO0lBUDVFOztRQVFjLFdBQU0sR0FBZ0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBbURuRSxtQkFBbUI7UUFDbkIsa0JBQWEsR0FBaUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQWtFekQseUJBQXlCO1FBQ3pCLGtCQUFhLEdBQWlCLElBQUksQ0FBQztLQVV0QztJQS9IRyxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxRQUFRO1lBQUUsT0FBTztRQUV6RSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxjQUFjO0lBQ04sY0FBYyxDQUFDLENBQU07UUFDekIsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBQ08sYUFBYSxDQUFDLENBQU07UUFDeEIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUNPLHdCQUF3QixDQUFDLENBQW1CO1FBQ2hELE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBQ08scUJBQXFCLENBQUMsQ0FBYztRQUN4QyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUk7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsVUFBVSxDQUFDLENBQU07UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsT0FBTztTQUNWO1FBQ0QsSUFBSSxHQUFHLEdBQVcsQ0FBQyxRQUFRLENBQUM7UUFDNUIsSUFBSSxJQUFJLEdBQVcsUUFBUSxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4QixHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNaLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ2pCO2FBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzlCLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDWCxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2Y7UUFDRCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxLQUFLLEdBQWdCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFhLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUNELElBQWEsS0FBSyxDQUFDLENBQU07UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBS1MsbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxHQUFpQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDcEIsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFhLENBQUMsQ0FBQztZQUM1QyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQWMsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQW9CO1FBQ2xDLE9BQU87WUFDSCxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDL0IsU0FBUyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO1NBQ3RDLENBQUM7SUFDTixDQUFDO0lBRUQseUNBQXlDO0lBQ3pDLEtBQUs7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELHlCQUF5QjtJQUN6QixJQUFJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQzFELENBQUM7SUFDRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDdEYsQ0FBQztJQUVELGtCQUFrQjtJQUNsQix3QkFBd0IsQ0FBQyxLQUE4QjtRQUNuRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFHRCxhQUFhLENBQUMsS0FBOEI7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUI7WUFBRSxPQUFPO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLDJCQUEyQixDQUFDLENBQUM7U0FDM0U7UUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsd0JBQXdCO0lBQ2Qsb0JBQW9CLENBQUMsT0FBZSxFQUFFLFFBQWdCO1FBQzVELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RCxJQUFJLE1BQU0sR0FBRyxPQUFPLEdBQUcsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNwRCxxRUFBcUU7UUFDckUsMERBQTBEO1FBQzFELE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFckMsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkUsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO1lBQ2YsU0FBUyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7U0FDMUI7YUFBTTtZQUNILFNBQVMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1NBQzNCO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUlELGFBQWEsQ0FBQyxLQUFpQixFQUFFLFFBQWU7UUFDNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwQixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQztJQUNsQyxDQUFDO0lBQ1EsTUFBTSxDQUFDLEtBQWlCO1FBQzdCLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQzs4R0FqSVEsMEJBQTBCO2tHQUExQiwwQkFBMEIsc01DZHZDLHV3SEFxRmM7OzJGRHZFRCwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0ksa0JBQWtCLGlCQUdiLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OEJBK0YvQyxhQUFhO3NCQUZaLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUM3QyxZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyByb3VuZFRvUHJlY2lzaW9uIH0gZnJvbSAnbW9yZS1yb3VuZGluZyc7XG5pbXBvcnQgeyBpc051bWJlciwgaXNPYmplY3QgfSBmcm9tICdzaW1wbGUtYm9vbCc7XG5pbXBvcnQgeyBfQWJzdHJhY3RTbGlkZXIgfSBmcm9tICcuLi9hYnN0cmFjdC1zbGlkZXInO1xuaW1wb3J0IHsgU2xpZGVyUmFuZ2UsIFNsaWRlclRvb2x0aXBDb250ZXh0IH0gZnJvbSAnLi4vc2xpZGVyLnR5cGVzJztcbmltcG9ydCB7IGlzRGVmaW5lZCB9IGZyb20gJ3NpbXBsZS1ib29sJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcmQtcmFuZ2Utc2xpZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yYW5nZS1zbGlkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1SYW5nZVNsaWRlckNvbXBvbmVudCBleHRlbmRzIF9BYnN0cmFjdFNsaWRlcjxTbGlkZXJSYW5nZT4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHByb3RlY3RlZCBfdmFsdWU6IFNsaWRlclJhbmdlID0geyBsb3c6IC1JbmZpbml0eSwgaGlnaDogSW5maW5pdHkgfTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fdmFsdWUubG93ICE9IC1JbmZpbml0eSAmJiB0aGlzLl92YWx1ZS5oaWdoICE9IEluZmluaXR5KSByZXR1cm47XG5cbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKHsgbG93OiB0aGlzLl9taW4sIGhpZ2g6IHRoaXMuX21heCB9KTtcbiAgICB9XG5cbiAgICAvLyEgd3JpdGVWYWx1ZVxuICAgIHByaXZhdGUgX2lzVmFsaWRPYmplY3QodjogYW55KTogdiBpcyBTbGlkZXJSYW5nZSB7XG4gICAgICAgIHJldHVybiBpc09iamVjdCh2KSAmJiBpc051bWJlcih2Wydsb3cnXSkgJiYgaXNOdW1iZXIodlsnaGlnaCddKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNWYWxpZFR1cGxlKHY6IGFueSk6IHYgaXMgW251bWJlciwgbnVtYmVyXSB7XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHYpICYmIGlzTnVtYmVyKHZbMF0pICYmIGlzTnVtYmVyKHZbMV0pICYmIHYubGVuZ3RoID09IDI7XG4gICAgfVxuICAgIHByaXZhdGUgX2FycmF5VmFsdWVUb09iamVjdFZhbHVlKHY6IFtudW1iZXIsIG51bWJlcl0pOiBTbGlkZXJSYW5nZSB7XG4gICAgICAgIHJldHVybiB7IGxvdzogdlswXSwgaGlnaDogdlsxXSB9O1xuICAgIH1cbiAgICBwcml2YXRlIF9ub3JtYWxpemVTbGlkZXJSYW5nZSh2OiBTbGlkZXJSYW5nZSk6IFNsaWRlclJhbmdlIHtcbiAgICAgICAgaWYgKHYubG93IDw9IHYuaGlnaCkgcmV0dXJuIHY7XG4gICAgICAgIHJldHVybiB7IGxvdzogdi5oaWdoLCBoaWdoOiB2LmxvdyB9O1xuICAgIH1cbiAgICB3cml0ZVZhbHVlKHY6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2lzVmFsaWRPYmplY3QodikgJiYgIXRoaXMuX2lzVmFsaWRUdXBsZSh2KSkge1xuICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBsb3c6IG51bWJlciA9IC1JbmZpbml0eTtcbiAgICAgICAgbGV0IGhpZ2g6IG51bWJlciA9IEluZmluaXR5O1xuICAgICAgICBpZiAodGhpcy5faXNWYWxpZE9iamVjdCh2KSkge1xuICAgICAgICAgICAgbG93ID0gdi5sb3c7XG4gICAgICAgICAgICBoaWdoID0gdi5oaWdoO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2lzVmFsaWRUdXBsZSh2KSkge1xuICAgICAgICAgICAgbG93ID0gdlswXTtcbiAgICAgICAgICAgIGhpZ2ggPSB2WzFdO1xuICAgICAgICB9XG4gICAgICAgIGxldCBsb3dDbGFtcGVkID0gdGhpcy5fY2xhbXBWYWx1ZShsb3cpO1xuICAgICAgICBsZXQgaGlnaENsYW1wZWQgPSB0aGlzLl9jbGFtcFZhbHVlKGhpZ2gpO1xuICAgICAgICBsZXQgdmFsdWU6IFNsaWRlclJhbmdlID0gdGhpcy5fYXJyYXlWYWx1ZVRvT2JqZWN0VmFsdWUoW2xvd0NsYW1wZWQsIGhpZ2hDbGFtcGVkXSk7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3Bvc2l0aW9uUGVyY2VudFswXSA9IHRoaXMuX3ZhbHVlVG9QZXJjZW50KGxvd0NsYW1wZWQpO1xuICAgICAgICB0aGlzLl9wb3NpdGlvblBlcmNlbnRbMV0gPSB0aGlzLl92YWx1ZVRvUGVyY2VudChoaWdoQ2xhbXBlZCk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZVRvb2x0aXBWYWx1ZSgpO1xuICAgIH1cbiAgICBvdmVycmlkZSBnZXQgdmFsdWUoKTogU2xpZGVyUmFuZ2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5fbm9ybWFsaXplU2xpZGVyUmFuZ2UodGhpcy5fdmFsdWUpO1xuICAgIH1cbiAgICBvdmVycmlkZSBzZXQgdmFsdWUodjogYW55KSB7XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZSh2KTtcbiAgICB9XG5cbiAgICAvLyEgdG9vbHRpcCB1cGRhdGVyXG4gICAgX3Rvb2x0aXBWYWx1ZTogU2xpZGVyUmFuZ2U8c3RyaW5nIHwgbnVtYmVyPiA9IHRoaXMudmFsdWU7XG5cbiAgICBwcm90ZWN0ZWQgX3VwZGF0ZVRvb2x0aXBWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgbGV0IHY6IFNsaWRlclJhbmdlPHN0cmluZyB8IG51bWJlcj4gPSBPYmplY3QuY3JlYXRlKHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcEZvcm1hdCkge1xuICAgICAgICAgICAgdi5sb3cgPSB0aGlzLnRvb2x0aXBGb3JtYXQodi5sb3cgYXMgbnVtYmVyKTtcbiAgICAgICAgICAgIHYuaGlnaCA9IHRoaXMudG9vbHRpcEZvcm1hdCh2LmhpZ2ggYXMgbnVtYmVyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl90b29sdGlwVmFsdWUgPSB2O1xuICAgIH1cblxuICAgIGdldFRvb2x0aXBDb250ZXh0KHR5cGU6ICdsb3cnIHwgJ2hpZ2gnKTogU2xpZGVyVG9vbHRpcENvbnRleHQge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWU6IHRoaXMuX3Rvb2x0aXBWYWx1ZVt0eXBlXSxcbiAgICAgICAgICAgICRpbXBsaWNpdDogdGhpcy5fdG9vbHRpcFZhbHVlW3R5cGVdLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vISBtZXRob2RzIGZvciBwcm9ncmFtbWF0aWMgbWFuaXB1bGF0aW9uXG4gICAgcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0geyBsb3c6IC1JbmZpbml0eSwgaGlnaDogSW5maW5pdHkgfTtcbiAgICAgICAgdGhpcy5fcG9zaXRpb25QZXJjZW50WzBdID0gMDtcbiAgICAgICAgdGhpcy5fcG9zaXRpb25QZXJjZW50WzFdID0gMTtcbiAgICB9XG5cbiAgICAvLyEgdHJhY2sgb3ZlcmxheSBnZXR0ZXJzXG4gICAgZ2V0IHRyYWNrT3ZlcmxheUxlZnQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIE1hdGgubWluKC4uLnRoaXMuX3Bvc2l0aW9uUGVyY2VudCkgKiAxMDAgKyAnJSc7XG4gICAgfVxuICAgIGdldCB0cmFja092ZXJsYXlXaWR0aCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gTWF0aC5hYnModGhpcy5fcG9zaXRpb25QZXJjZW50WzBdIC0gdGhpcy5fcG9zaXRpb25QZXJjZW50WzFdISkgKiAxMDAgKyAnJSc7XG4gICAgfVxuXG4gICAgLy8hIGV2ZW50IGhhbmRsZXJzXG4gICAgb25UcmFja0hpdGJveFBvaW50ZXJEb3duKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl93cml0ZVZhbHVlRnJvbUV2ZW50KGV2ZW50KTtcbiAgICAgICAgdGhpcy5vblBvaW50ZXJEb3duT25IYW5kbGUoZXZlbnQpO1xuICAgIH1cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZW1vdmUnLCBbJyRldmVudCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnRvdWNobW92ZScsIFsnJGV2ZW50J10pXG4gICAgb25Qb2ludGVyTW92ZShldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9zaG91bGRDaGVja0Zvck1vdmVtZW50KSByZXR1cm47XG4gICAgICAgIGlmICghdGhpcy5fYm9keUhhc0NsYXNzKSB7XG4gICAgICAgICAgICB0aGlzLl9ib2R5SGFzQ2xhc3MgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdhcmQtcHJldmVudC10b3VjaC1hY3Rpb25zJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fd3JpdGVWYWx1ZUZyb21FdmVudChldmVudCwgdGhpcy5faXNHcmFiYmVkKTtcbiAgICB9XG5cbiAgICAvLyEgcG9zaXRpb24gY2FsY3VsYXRvcnNcbiAgICBwcm90ZWN0ZWQgX3BlcmNlbnRWYWx1ZVRvVmFsdWUocGVyY2VudDogbnVtYmVyLCBoYW5kbGVJZDogbnVtYmVyKTogU2xpZGVyUmFuZ2Uge1xuICAgICAgICBjb25zdCBtaW5NYXhEaWZmZXJlbmNlID0gTWF0aC5hYnModGhpcy5fbWluIC0gdGhpcy5fbWF4KTtcbiAgICAgICAgbGV0IG5ld1ZhbCA9IHBlcmNlbnQgKiBtaW5NYXhEaWZmZXJlbmNlICsgdGhpcy5fbWluO1xuICAgICAgICAvL3JvdW5kIHRvIDkgZGVjaW1hbCBwbGFjZXMgdG8gYXZvaWQgZmxvYXRpbmcgcG9pbnQgYXJpdGhtZXRpYyBlcnJvcnNcbiAgICAgICAgLy85IGlzIGFuIGFyYml0cmFyeSBudW1iZXIgdGhhdCBqdXN0IHdvcmtzIHdlbGwuIMKvXFxfKOODhClfL8KvXG4gICAgICAgIG5ld1ZhbCA9IHJvdW5kVG9QcmVjaXNpb24obmV3VmFsLCA5KTtcblxuICAgICAgICBjb25zdCBuZXdWYWxPYmogPSB7IGxvdzogdGhpcy5fdmFsdWUubG93LCBoaWdoOiB0aGlzLl92YWx1ZS5oaWdoIH07XG4gICAgICAgIGlmIChoYW5kbGVJZCA9PSAxKSB7XG4gICAgICAgICAgICBuZXdWYWxPYmoubG93ID0gbmV3VmFsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3VmFsT2JqLmhpZ2ggPSBuZXdWYWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ld1ZhbE9iajtcbiAgICB9XG5cbiAgICAvLyEgaGFuZGxlIGZvY3VzIG1vbml0b3JzXG4gICAgY3VycmVudEhhbmRsZTogMSB8IDIgfCBudWxsID0gbnVsbDtcbiAgICBvbkhhbmRsZUZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50LCBoYW5kbGVJZDogMSB8IDIpIHtcbiAgICAgICAgdGhpcy5vbkZvY3VzKGV2ZW50KTtcblxuICAgICAgICB0aGlzLmN1cnJlbnRIYW5kbGUgPSBoYW5kbGVJZDtcbiAgICB9XG4gICAgb3ZlcnJpZGUgb25CbHVyKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIHN1cGVyLm9uQmx1cihldmVudCk7XG4gICAgICAgIHRoaXMuY3VycmVudEhhbmRsZSA9IG51bGw7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFyZC1yYW5nZS1zbGlkZXItY29udGFpbmVyLW1hc3RlclwiXHJcbiAgICBbbmdDbGFzc109XCJuZ0NsYXNzZXNcIlxyXG4gICAgW2NsYXNzLmFyZC1zbGlkZXItaGFuZGxlLWdyYWJiZWRdPVwiaXNTbGlkZXJIYW5kbGVHcmFiYmVkXCJcclxuICAgIFtzdHlsZV09XCJ7Jy0tX2FyZC1zbGlkZXItdHJhbnNpdGlvbic6IHNsaWRlclRyYW5zaXRpb24gfVwiXHJcbj5cclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtc2xpZGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgI3RyYWNrXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYXJkLXNsaWRlci10cmFja1wiXHJcbiAgICAgICAgICAgIChwb2ludGVyZG93bik9XCJvblRyYWNrSGl0Ym94UG9pbnRlckRvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWhpdGJveFwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLXNsaWRlci10cmFjay1vdmVybGF5IGFyZC1zbGlkZXItdHJhY2staW5hY3RpdmVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXJkLXNsaWRlci10cmFjay1vdmVybGF5IGFyZC1zbGlkZXItdHJhY2stYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogdHJhY2tPdmVybGF5TGVmdCxcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogdHJhY2tPdmVybGF5V2lkdGhcclxuICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtdmFsdWUtdGljay1jb250YWluZXJcIiAqbmdJZj1cInNob3dWYWx1ZVRpY2tzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLXZhbHVlLXRpY2tcIiAqbmdGb3I9XCJsZXQgbGVmdCBvZiB0aWNrQXJyYXlcIiBbc3R5bGVdPVwie2xlZnQ6IGxlZnR9XCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxidXR0b24gI2ZvY3VzYWJsZUVsZW1lbnRcclxuICAgICAgICAgICAgY2xhc3M9XCJhcmQtc2xpZGVyLWhhbmRsZVwiXHJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5hcmQtZ3JhYmJlZF09XCJpc1NsaWRlckhhbmRsZUdyYWJiZWQgJiYgY3VycmVudEhhbmRsZSA9PSAxXCJcclxuICAgICAgICAgICAgKHBvaW50ZXJkb3duKT1cIm9uUG9pbnRlckRvd25PbkhhbmRsZSgkZXZlbnQsIDEpXCJcclxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uSGFuZGxlRm9jdXMoJGV2ZW50LCAxKVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgICAgICAgW3N0eWxlXT1cIntsZWZ0OiBnZXRIYW5kbGVQb3NpdGlvbigxKX1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1mb2N1cy1vdmVybGF5XCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtaGl0Ym94XCI+PC9kaXY+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1zbGlkZXItdG9vbHRpcC13cmFwcGVyXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJ0b29sdGlwQmVoYXZpb3IgIT0gJ25ldmVyJ1wiXHJcbiAgICAgICAgICAgIFtjbGFzcy5hcmQtdG9vbHRpcC1hbHdheXNdPVwidG9vbHRpcEJlaGF2aW9yID09ICdhbHdheXMnXCJcclxuICAgICAgICAgICAgW3N0eWxlXT1cIntsZWZ0OiBnZXRIYW5kbGVQb3NpdGlvbigxKX1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VG9vbHRpcFRlbXBsYXRlIGxldC12YWx1ZT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtc2xpZGVyLXRvb2x0aXBcIj57eyB2YWx1ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidG9vbHRpcFRlbXBsYXRlIHx8IGRlZmF1bHRUb29sdGlwVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldFRvb2x0aXBDb250ZXh0KCdsb3cnKVwiPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJhcmQtc2xpZGVyLWhhbmRsZVwiXHJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5hcmQtZ3JhYmJlZF09XCJpc1NsaWRlckhhbmRsZUdyYWJiZWQgJiYgY3VycmVudEhhbmRsZSA9PSAyXCJcclxuICAgICAgICAgICAgKHBvaW50ZXJkb3duKT1cIm9uUG9pbnRlckRvd25PbkhhbmRsZSgkZXZlbnQsIDIpXCJcclxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uSGFuZGxlRm9jdXMoJGV2ZW50LCAyKVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgICAgICAgW3N0eWxlXT1cIntsZWZ0OiBnZXRIYW5kbGVQb3NpdGlvbigyKX1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1mb2N1cy1vdmVybGF5XCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtaGl0Ym94XCI+PC9kaXY+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1zbGlkZXItdG9vbHRpcC13cmFwcGVyXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJ0b29sdGlwQmVoYXZpb3IgIT0gJ25ldmVyJ1wiXHJcbiAgICAgICAgICAgIFtjbGFzcy5hcmQtdG9vbHRpcC1hbHdheXNdPVwidG9vbHRpcEJlaGF2aW9yID09ICdhbHdheXMnXCJcclxuICAgICAgICAgICAgW3N0eWxlXT1cIntsZWZ0OiBnZXRIYW5kbGVQb3NpdGlvbigyKX1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VG9vbHRpcFRlbXBsYXRlIGxldC12YWx1ZT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtc2xpZGVyLXRvb2x0aXBcIj57eyB2YWx1ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidG9vbHRpcFRlbXBsYXRlIHx8IGRlZmF1bHRUb29sdGlwVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldFRvb2x0aXBDb250ZXh0KCdoaWdoJylcIj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1zbGlkZXItbGFiZWwtY29udGFpbmVyXCIgKm5nSWY9XCJsYWJlbE9iamVjdHMubGVuZ3RoXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgbGFiZWwgb2YgbGFiZWxPYmplY3RzXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJhcmQtc2xpZGVyLWxhYmVsXCJcclxuICAgICAgICAgICAgW3N0eWxlXT1cIntsZWZ0OiBsYWJlbC5wb3NpdGlvblBlcmNlbnR9XCJcclxuICAgICAgICA+e3sgbGFiZWwubGFiZWwgfX08L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjaGFuZGxlVGh1bWJCYXNlPlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1zbGlkZS10aHVtYlwiPlRlc3Q8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
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: "17.0.7", ngImport: i0, type: ArdiumRangeSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: ArdiumRangeSliderModule, declarations: [ArdiumRangeSliderComponent], imports: [CommonModule], exports: [ArdiumRangeSliderComponent] }); }
|
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumRangeSliderModule, imports: [CommonModule] }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2Utc2xpZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvc2xpZGVyL3JhbmdlLXNsaWRlci9yYW5nZS1zbGlkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU90RSxNQUFNLE9BQU8sdUJBQXVCOzhHQUF2Qix1QkFBdUI7K0dBQXZCLHVCQUF1QixpQkFKakIsMEJBQTBCLGFBQy9CLFlBQVksYUFDWiwwQkFBMEI7K0dBRTNCLHVCQUF1QixZQUh0QixZQUFZOzsyRkFHYix1QkFBdUI7a0JBTG5DLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQzFDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcmRpdW1SYW5nZVNsaWRlckNvbXBvbmVudCB9IGZyb20gJy4vcmFuZ2Utc2xpZGVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbQXJkaXVtUmFuZ2VTbGlkZXJDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtBcmRpdW1SYW5nZVNsaWRlckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEFyZGl1bVJhbmdlU2xpZGVyTW9kdWxlIHt9XG4iXX0=
|