@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,6 @@
|
|
|
1
|
+
export const CaseTransformerType = {
|
|
2
|
+
NoChange: 'nochange',
|
|
3
|
+
Uppercase: 'uppercase',
|
|
4
|
+
Lowercase: 'lowercase',
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9pbnB1dC10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUMvQixRQUFRLEVBQUUsVUFBVTtJQUNwQixTQUFTLEVBQUUsV0FBVztJQUN0QixTQUFTLEVBQUUsV0FBVztDQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENhc2VUcmFuc2Zvcm1lclR5cGUgPSB7XG4gICAgTm9DaGFuZ2U6ICdub2NoYW5nZScsXG4gICAgVXBwZXJjYXNlOiAndXBwZXJjYXNlJyxcbiAgICBMb3dlcmNhc2U6ICdsb3dlcmNhc2UnLFxufSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIENhc2VUcmFuc2Zvcm1lclR5cGUgPSAodHlwZW9mIENhc2VUcmFuc2Zvcm1lclR5cGUpW2tleW9mIHR5cGVvZiBDYXNlVHJhbnNmb3JtZXJUeXBlXTtcbiJdfQ==
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { isAnyString, isNull, isNumber } from 'simple-bool';
|
|
2
|
+
import { ArdTransformer, RegExpTransformer } from './input-transformers';
|
|
3
|
+
export class SimpleInputModel {
|
|
4
|
+
constructor(inputEl, hostComp) {
|
|
5
|
+
this.inputEl = inputEl;
|
|
6
|
+
this._value = null;
|
|
7
|
+
this._hostComp = hostComp;
|
|
8
|
+
}
|
|
9
|
+
get value() {
|
|
10
|
+
return this._value;
|
|
11
|
+
}
|
|
12
|
+
set value(v) {
|
|
13
|
+
this._value = v;
|
|
14
|
+
}
|
|
15
|
+
get stringValue() {
|
|
16
|
+
return this._value ?? '';
|
|
17
|
+
}
|
|
18
|
+
set stringValue(v) {
|
|
19
|
+
this._value = v || null;
|
|
20
|
+
}
|
|
21
|
+
writeValue(v) {
|
|
22
|
+
if (!isAnyString(v) && !isNull(v)) {
|
|
23
|
+
//warn when using non-string/non-null value
|
|
24
|
+
console.warn(new Error(`Trying to set simple-input's value to ${typeof v}, expected string.`));
|
|
25
|
+
//normalize the value
|
|
26
|
+
v = v?.toString?.() ?? String(v);
|
|
27
|
+
}
|
|
28
|
+
return this._writeValue(v);
|
|
29
|
+
}
|
|
30
|
+
_writeValue(v) {
|
|
31
|
+
//constraints
|
|
32
|
+
v = this._applyLengthTransformer(v);
|
|
33
|
+
//update view
|
|
34
|
+
let oldVal = this.value;
|
|
35
|
+
this.value = v;
|
|
36
|
+
this._updateInputElement();
|
|
37
|
+
return oldVal !== v;
|
|
38
|
+
}
|
|
39
|
+
rewriteValueAfterHostUpdate() {
|
|
40
|
+
this._writeValue(this._value);
|
|
41
|
+
}
|
|
42
|
+
clear() {
|
|
43
|
+
this._value = null;
|
|
44
|
+
this._updateInputElement();
|
|
45
|
+
}
|
|
46
|
+
_updateInputElement() {
|
|
47
|
+
this.inputEl.value = this.stringValue;
|
|
48
|
+
}
|
|
49
|
+
get caretPos() {
|
|
50
|
+
return this.inputEl.selectionEnd ?? this.stringValue.length;
|
|
51
|
+
}
|
|
52
|
+
set caretPos(pos) {
|
|
53
|
+
this.inputEl.setSelectionRange(pos, pos);
|
|
54
|
+
}
|
|
55
|
+
//* constraints
|
|
56
|
+
_applyLengthTransformer(v) {
|
|
57
|
+
//exit if max length not specified
|
|
58
|
+
if (this._hostComp.maxLength == undefined)
|
|
59
|
+
return v;
|
|
60
|
+
//exit if not value
|
|
61
|
+
//exit if value length is less than specified max length
|
|
62
|
+
if (!v || v.length <= this._hostComp.maxLength)
|
|
63
|
+
return v;
|
|
64
|
+
//cut the excess off
|
|
65
|
+
v = v.substring(0, this._hostComp.maxLength);
|
|
66
|
+
this.caretPos = this._hostComp.maxLength;
|
|
67
|
+
return v;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export class InputModel extends SimpleInputModel {
|
|
71
|
+
constructor(inputEl, hostComp) {
|
|
72
|
+
super(inputEl, hostComp);
|
|
73
|
+
}
|
|
74
|
+
_writeValue(v) {
|
|
75
|
+
//transformers
|
|
76
|
+
if (v) {
|
|
77
|
+
let prev = this.stringValue;
|
|
78
|
+
v = this._applyAllowOrDenylistTransformer(v, prev);
|
|
79
|
+
prev = this.stringValue;
|
|
80
|
+
v = this._applyLengthTransformer(v);
|
|
81
|
+
}
|
|
82
|
+
let oldVal = this.value;
|
|
83
|
+
//update view
|
|
84
|
+
this.value = v;
|
|
85
|
+
this._updateInputElement();
|
|
86
|
+
return oldVal !== v;
|
|
87
|
+
}
|
|
88
|
+
setSelection(from, to) {
|
|
89
|
+
to = to ?? this.value?.length ?? Infinity;
|
|
90
|
+
this.inputEl.setSelectionRange(from, to);
|
|
91
|
+
}
|
|
92
|
+
//* constraints
|
|
93
|
+
_applyAllowOrDenylistTransformer(v, prev) {
|
|
94
|
+
if (!this._hostComp.charlist || !v)
|
|
95
|
+
return v;
|
|
96
|
+
let { text, caretPos } = new RegExpTransformer(this._hostComp.charlist).apply(v, prev, this.caretPos);
|
|
97
|
+
this.caretPos = caretPos;
|
|
98
|
+
return text;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
export class NumberInputModel {
|
|
102
|
+
constructor(inputEl, hostComp) {
|
|
103
|
+
this.inputEl = inputEl;
|
|
104
|
+
//! value setters/getters
|
|
105
|
+
this._value = null;
|
|
106
|
+
this._hostComp = hostComp;
|
|
107
|
+
}
|
|
108
|
+
get value() {
|
|
109
|
+
return this._value;
|
|
110
|
+
}
|
|
111
|
+
set value(v) {
|
|
112
|
+
this._value = v;
|
|
113
|
+
}
|
|
114
|
+
//value as string
|
|
115
|
+
get stringValue() {
|
|
116
|
+
return this._value ?? '';
|
|
117
|
+
}
|
|
118
|
+
set stringValue(v) {
|
|
119
|
+
this._value = v || null;
|
|
120
|
+
}
|
|
121
|
+
//value as number
|
|
122
|
+
get numberValue() {
|
|
123
|
+
return (this._value == null && null) || Number(this._value);
|
|
124
|
+
}
|
|
125
|
+
set numberValue(v) {
|
|
126
|
+
this._value = v == null ? null : v.toString();
|
|
127
|
+
}
|
|
128
|
+
//! write value handlers
|
|
129
|
+
writeValue(v) {
|
|
130
|
+
if (!isNumber(v) && !isAnyString(v) && !isNull(v)) {
|
|
131
|
+
//warn when using non-string/non-null value
|
|
132
|
+
console.warn(new Error(`Trying to set simple-input's value to ${typeof v}, expected string, number, or null.`));
|
|
133
|
+
//normalize the value
|
|
134
|
+
v = v?.toString?.() ?? String(v);
|
|
135
|
+
}
|
|
136
|
+
v = String(v);
|
|
137
|
+
return this._writeValue(v);
|
|
138
|
+
}
|
|
139
|
+
_writeValue(v) {
|
|
140
|
+
//constraints
|
|
141
|
+
if (v) {
|
|
142
|
+
v = this._removeDecimalPlaces(v);
|
|
143
|
+
v = this._applyNumberConstraint(v);
|
|
144
|
+
v = this._applyMinMaxConstraints(v);
|
|
145
|
+
}
|
|
146
|
+
//update view
|
|
147
|
+
let oldVal = this.value;
|
|
148
|
+
this.value = v;
|
|
149
|
+
this._updateInputElement();
|
|
150
|
+
return oldVal !== v;
|
|
151
|
+
}
|
|
152
|
+
rewriteValueAfterHostUpdate() {
|
|
153
|
+
this._writeValue(this._value);
|
|
154
|
+
}
|
|
155
|
+
//! input element methods
|
|
156
|
+
_updateInputElement() {
|
|
157
|
+
this.inputEl.value = this.stringValue;
|
|
158
|
+
}
|
|
159
|
+
get caretPos() {
|
|
160
|
+
return this.inputEl.selectionEnd ?? this.stringValue.length;
|
|
161
|
+
}
|
|
162
|
+
set caretPos(pos) {
|
|
163
|
+
this.inputEl.setSelectionRange(pos, pos);
|
|
164
|
+
}
|
|
165
|
+
//! constraints
|
|
166
|
+
_removeDecimalPlaces(v) {
|
|
167
|
+
if (!v)
|
|
168
|
+
return '';
|
|
169
|
+
if (this._hostComp.allowFloat)
|
|
170
|
+
return v;
|
|
171
|
+
if (v.match(/[.,].+/)) {
|
|
172
|
+
const num = Number(v);
|
|
173
|
+
if (!isNaN(num))
|
|
174
|
+
v = Math.round(num).toString();
|
|
175
|
+
}
|
|
176
|
+
return v;
|
|
177
|
+
}
|
|
178
|
+
_applyNumberConstraint(v) {
|
|
179
|
+
if (!v)
|
|
180
|
+
return '';
|
|
181
|
+
if (this._hostComp.allowFloat) {
|
|
182
|
+
const { text, caretPos } = ArdTransformer.Float(v, this.stringValue, this.caretPos);
|
|
183
|
+
this.caretPos = caretPos;
|
|
184
|
+
return text;
|
|
185
|
+
}
|
|
186
|
+
const { text, caretPos } = ArdTransformer.Integer(v, this.stringValue, this.caretPos);
|
|
187
|
+
this.caretPos = caretPos;
|
|
188
|
+
return text;
|
|
189
|
+
}
|
|
190
|
+
_applyMinMaxConstraints(v) {
|
|
191
|
+
if (!v)
|
|
192
|
+
return '';
|
|
193
|
+
const numericValue = Number(v);
|
|
194
|
+
if (numericValue > this._hostComp.max)
|
|
195
|
+
return this._hostComp.max.toString();
|
|
196
|
+
if (numericValue < this._hostComp.min)
|
|
197
|
+
return this._hostComp.min.toString();
|
|
198
|
+
return v;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
export function escapeAndCreateRegex(str, flags, negated = true) {
|
|
202
|
+
str = str.replace(/([\]]+)/g, '\\$1');
|
|
203
|
+
return new RegExp(`[${negated ? '^' : ''}${str}]`, flags);
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9pbnB1dC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBS3pFLE1BQU0sT0FBTyxnQkFBZ0I7SUFFekIsWUFDYyxPQUF5QixFQUNuQyxRQUE4QjtRQURwQixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQU03QixXQUFNLEdBQWtCLElBQUksQ0FBQztRQUhuQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM5QixDQUFDO0lBR0QsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFnQjtRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsQ0FBUztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxDQUFNO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMvQiwyQ0FBMkM7WUFDM0MsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztZQUMvRixxQkFBcUI7WUFDckIsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwQztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ1MsV0FBVyxDQUFDLENBQWdCO1FBQ2xDLGFBQWE7UUFDYixDQUFDLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLGFBQWE7UUFDYixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsT0FBTyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFDRCwyQkFBMkI7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELEtBQUs7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUNoRSxDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsR0FBVztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsZUFBZTtJQUNMLHVCQUF1QixDQUFDLENBQWdCO1FBQzlDLGtDQUFrQztRQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxJQUFJLFNBQVM7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUNwRCxtQkFBbUI7UUFDbkIsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVM7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6RCxvQkFBb0I7UUFDcEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUN6QyxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7Q0FDSjtBQUlELE1BQU0sT0FBTyxVQUFXLFNBQVEsZ0JBQWdCO0lBRTVDLFlBQVksT0FBeUIsRUFBRSxRQUF3QjtRQUMzRCxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDa0IsV0FBVyxDQUFDLENBQWdCO1FBQzNDLGNBQWM7UUFDZCxJQUFJLENBQUMsRUFBRTtZQUNILElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDNUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbkQsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDeEIsQ0FBQyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2QztRQUNELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEIsYUFBYTtRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsT0FBTyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFHRCxZQUFZLENBQUMsSUFBbUIsRUFBRSxFQUFrQjtRQUNoRCxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxJQUFJLFFBQVEsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsZUFBZTtJQUNMLGdDQUFnQyxDQUFDLENBQVMsRUFBRSxJQUFZO1FBQzlELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3QyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEcsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKO0FBT0QsTUFBTSxPQUFPLGdCQUFnQjtJQUV6QixZQUNjLE9BQXlCLEVBQ25DLFFBQThCO1FBRHBCLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBTXZDLHlCQUF5QjtRQUNmLFdBQU0sR0FBa0IsSUFBSSxDQUFDO1FBSm5DLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzlCLENBQUM7SUFJRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLENBQWdCO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxpQkFBaUI7SUFDakIsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsQ0FBUztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUNELGlCQUFpQjtJQUNqQixJQUFJLFdBQVc7UUFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsQ0FBZ0I7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLFVBQVUsQ0FBQyxDQUFNO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMvQywyQ0FBMkM7WUFDM0MsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsT0FBTyxDQUFDLHFDQUFxQyxDQUFDLENBQUMsQ0FBQztZQUNoSCxxQkFBcUI7WUFDckIsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwQztRQUNELENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNTLFdBQVcsQ0FBQyxDQUFnQjtRQUNsQyxhQUFhO1FBQ2IsSUFBSSxDQUFDLEVBQUU7WUFDSCxDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2QztRQUNELGFBQWE7UUFDYixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsT0FBTyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFDRCwyQkFBMkI7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELHlCQUF5QjtJQUN6QixtQkFBbUI7UUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFDLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQ2hFLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxHQUFXO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxlQUFlO0lBQ1Asb0JBQW9CLENBQUMsQ0FBUztRQUNsQyxJQUFJLENBQUMsQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ25CLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztnQkFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNuRDtRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUNPLHNCQUFzQixDQUFDLENBQVM7UUFDcEMsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUVsQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFO1lBQzNCLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNPLHVCQUF1QixDQUFDLENBQVM7UUFDckMsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUVsQixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0IsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHO1lBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM1RSxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUc7WUFBRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVFLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztDQUNKO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEdBQVcsRUFBRSxLQUFjLEVBQUUsVUFBbUIsSUFBSTtJQUNyRixHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDOUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQW55U3RyaW5nLCBpc051bGwsIGlzTnVtYmVyIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xuaW1wb3J0IHsgQXJkVHJhbnNmb3JtZXIsIFJlZ0V4cFRyYW5zZm9ybWVyIH0gZnJvbSAnLi9pbnB1dC10cmFuc2Zvcm1lcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsZUlucHV0TW9kZWxIb3N0IHtcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XG59XG5leHBvcnQgY2xhc3MgU2ltcGxlSW5wdXRNb2RlbCB7XG4gICAgcHJvdGVjdGVkIF9ob3N0Q29tcCE6IFNpbXBsZUlucHV0TW9kZWxIb3N0O1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgaW5wdXRFbDogSFRNTElucHV0RWxlbWVudCxcbiAgICAgICAgaG9zdENvbXA6IFNpbXBsZUlucHV0TW9kZWxIb3N0XG4gICAgKSB7XG4gICAgICAgIHRoaXMuX2hvc3RDb21wID0gaG9zdENvbXA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF92YWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuICAgIHNldCB2YWx1ZSh2OiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdjtcbiAgICB9XG4gICAgZ2V0IHN0cmluZ1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZSA/PyAnJztcbiAgICB9XG4gICAgc2V0IHN0cmluZ1ZhbHVlKHY6IHN0cmluZykge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHYgfHwgbnVsbDtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHY6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWlzQW55U3RyaW5nKHYpICYmICFpc051bGwodikpIHtcbiAgICAgICAgICAgIC8vd2FybiB3aGVuIHVzaW5nIG5vbi1zdHJpbmcvbm9uLW51bGwgdmFsdWVcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihuZXcgRXJyb3IoYFRyeWluZyB0byBzZXQgc2ltcGxlLWlucHV0J3MgdmFsdWUgdG8gJHt0eXBlb2Ygdn0sIGV4cGVjdGVkIHN0cmluZy5gKSk7XG4gICAgICAgICAgICAvL25vcm1hbGl6ZSB0aGUgdmFsdWVcbiAgICAgICAgICAgIHYgPSB2Py50b1N0cmluZz8uKCkgPz8gU3RyaW5nKHYpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl93cml0ZVZhbHVlKHYpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3dyaXRlVmFsdWUodjogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgICAgICAvL2NvbnN0cmFpbnRzXG4gICAgICAgIHYgPSB0aGlzLl9hcHBseUxlbmd0aFRyYW5zZm9ybWVyKHYpO1xuICAgICAgICAvL3VwZGF0ZSB2aWV3XG4gICAgICAgIGxldCBvbGRWYWwgPSB0aGlzLnZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlID0gdjtcbiAgICAgICAgdGhpcy5fdXBkYXRlSW5wdXRFbGVtZW50KCk7XG4gICAgICAgIHJldHVybiBvbGRWYWwgIT09IHY7XG4gICAgfVxuICAgIHJld3JpdGVWYWx1ZUFmdGVySG9zdFVwZGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fd3JpdGVWYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgfVxuICAgIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUlucHV0RWxlbWVudCgpO1xuICAgIH1cblxuICAgIF91cGRhdGVJbnB1dEVsZW1lbnQoKSB7XG4gICAgICAgIHRoaXMuaW5wdXRFbC52YWx1ZSA9IHRoaXMuc3RyaW5nVmFsdWU7XG4gICAgfVxuICAgIGdldCBjYXJldFBvcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dEVsLnNlbGVjdGlvbkVuZCA/PyB0aGlzLnN0cmluZ1ZhbHVlLmxlbmd0aDtcbiAgICB9XG4gICAgc2V0IGNhcmV0UG9zKHBvczogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuaW5wdXRFbC5zZXRTZWxlY3Rpb25SYW5nZShwb3MsIHBvcyk7XG4gICAgfVxuICAgIC8vKiBjb25zdHJhaW50c1xuICAgIHByb3RlY3RlZCBfYXBwbHlMZW5ndGhUcmFuc2Zvcm1lcih2OiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIC8vZXhpdCBpZiBtYXggbGVuZ3RoIG5vdCBzcGVjaWZpZWRcbiAgICAgICAgaWYgKHRoaXMuX2hvc3RDb21wLm1heExlbmd0aCA9PSB1bmRlZmluZWQpIHJldHVybiB2O1xuICAgICAgICAvL2V4aXQgaWYgbm90IHZhbHVlXG4gICAgICAgIC8vZXhpdCBpZiB2YWx1ZSBsZW5ndGggaXMgbGVzcyB0aGFuIHNwZWNpZmllZCBtYXggbGVuZ3RoXG4gICAgICAgIGlmICghdiB8fCB2Lmxlbmd0aCA8PSB0aGlzLl9ob3N0Q29tcC5tYXhMZW5ndGgpIHJldHVybiB2O1xuICAgICAgICAvL2N1dCB0aGUgZXhjZXNzIG9mZlxuICAgICAgICB2ID0gdi5zdWJzdHJpbmcoMCwgdGhpcy5faG9zdENvbXAubWF4TGVuZ3RoKTtcbiAgICAgICAgdGhpcy5jYXJldFBvcyA9IHRoaXMuX2hvc3RDb21wLm1heExlbmd0aDtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxufVxuZXhwb3J0IGludGVyZmFjZSBJbnB1dE1vZGVsSG9zdCBleHRlbmRzIFNpbXBsZUlucHV0TW9kZWxIb3N0IHtcbiAgICBjaGFybGlzdD86IFJlZ0V4cDtcbn1cbmV4cG9ydCBjbGFzcyBJbnB1dE1vZGVsIGV4dGVuZHMgU2ltcGxlSW5wdXRNb2RlbCB7XG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIF9ob3N0Q29tcCE6IElucHV0TW9kZWxIb3N0O1xuICAgIGNvbnN0cnVjdG9yKGlucHV0RWw6IEhUTUxJbnB1dEVsZW1lbnQsIGhvc3RDb21wOiBJbnB1dE1vZGVsSG9zdCkge1xuICAgICAgICBzdXBlcihpbnB1dEVsLCBob3N0Q29tcCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfd3JpdGVWYWx1ZSh2OiBzdHJpbmcgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgICAgIC8vdHJhbnNmb3JtZXJzXG4gICAgICAgIGlmICh2KSB7XG4gICAgICAgICAgICBsZXQgcHJldiA9IHRoaXMuc3RyaW5nVmFsdWU7XG4gICAgICAgICAgICB2ID0gdGhpcy5fYXBwbHlBbGxvd09yRGVueWxpc3RUcmFuc2Zvcm1lcih2LCBwcmV2KTtcbiAgICAgICAgICAgIHByZXYgPSB0aGlzLnN0cmluZ1ZhbHVlO1xuICAgICAgICAgICAgdiA9IHRoaXMuX2FwcGx5TGVuZ3RoVHJhbnNmb3JtZXIodik7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG9sZFZhbCA9IHRoaXMudmFsdWU7XG4gICAgICAgIC8vdXBkYXRlIHZpZXdcbiAgICAgICAgdGhpcy52YWx1ZSA9IHY7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUlucHV0RWxlbWVudCgpO1xuICAgICAgICByZXR1cm4gb2xkVmFsICE9PSB2O1xuICAgIH1cblxuICAgIHNldFNlbGVjdGlvbihmcm9tOiBudW1iZXIgfCBudWxsLCB0bzogbnVtYmVyIHwgbnVsbCk6IHZvaWQ7XG4gICAgc2V0U2VsZWN0aW9uKGZyb206IG51bWJlciB8IG51bGwsIHRvPzogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0byA9IHRvID8/IHRoaXMudmFsdWU/Lmxlbmd0aCA/PyBJbmZpbml0eTtcbiAgICAgICAgdGhpcy5pbnB1dEVsLnNldFNlbGVjdGlvblJhbmdlKGZyb20sIHRvKTtcbiAgICB9XG4gICAgLy8qIGNvbnN0cmFpbnRzXG4gICAgcHJvdGVjdGVkIF9hcHBseUFsbG93T3JEZW55bGlzdFRyYW5zZm9ybWVyKHY6IHN0cmluZywgcHJldjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCF0aGlzLl9ob3N0Q29tcC5jaGFybGlzdCB8fCAhdikgcmV0dXJuIHY7XG4gICAgICAgIGxldCB7IHRleHQsIGNhcmV0UG9zIH0gPSBuZXcgUmVnRXhwVHJhbnNmb3JtZXIodGhpcy5faG9zdENvbXAuY2hhcmxpc3QpLmFwcGx5KHYsIHByZXYsIHRoaXMuY2FyZXRQb3MpO1xuICAgICAgICB0aGlzLmNhcmV0UG9zID0gY2FyZXRQb3M7XG4gICAgICAgIHJldHVybiB0ZXh0O1xuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBOdW1iZXJJbnB1dE1vZGVsSG9zdCB7XG4gICAgbWF4OiBudW1iZXI7XG4gICAgbWluOiBudW1iZXI7XG4gICAgYWxsb3dGbG9hdDogYm9vbGVhbjtcbn1cbmV4cG9ydCBjbGFzcyBOdW1iZXJJbnB1dE1vZGVsIHtcbiAgICBwcm90ZWN0ZWQgX2hvc3RDb21wITogTnVtYmVySW5wdXRNb2RlbEhvc3Q7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBpbnB1dEVsOiBIVE1MSW5wdXRFbGVtZW50LFxuICAgICAgICBob3N0Q29tcDogTnVtYmVySW5wdXRNb2RlbEhvc3RcbiAgICApIHtcbiAgICAgICAgdGhpcy5faG9zdENvbXAgPSBob3N0Q29tcDtcbiAgICB9XG5cbiAgICAvLyEgdmFsdWUgc2V0dGVycy9nZXR0ZXJzXG4gICAgcHJvdGVjdGVkIF92YWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuICAgIHNldCB2YWx1ZSh2OiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdjtcbiAgICB9XG4gICAgLy92YWx1ZSBhcyBzdHJpbmdcbiAgICBnZXQgc3RyaW5nVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlID8/ICcnO1xuICAgIH1cbiAgICBzZXQgc3RyaW5nVmFsdWUodjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdiB8fCBudWxsO1xuICAgIH1cbiAgICAvL3ZhbHVlIGFzIG51bWJlclxuICAgIGdldCBudW1iZXJWYWx1ZSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLl92YWx1ZSA9PSBudWxsICYmIG51bGwpIHx8IE51bWJlcih0aGlzLl92YWx1ZSk7XG4gICAgfVxuICAgIHNldCBudW1iZXJWYWx1ZSh2OiBudW1iZXIgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdiA9PSBudWxsID8gbnVsbCA6IHYudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICAvLyEgd3JpdGUgdmFsdWUgaGFuZGxlcnNcbiAgICB3cml0ZVZhbHVlKHY6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWlzTnVtYmVyKHYpICYmICFpc0FueVN0cmluZyh2KSAmJiAhaXNOdWxsKHYpKSB7XG4gICAgICAgICAgICAvL3dhcm4gd2hlbiB1c2luZyBub24tc3RyaW5nL25vbi1udWxsIHZhbHVlXG4gICAgICAgICAgICBjb25zb2xlLndhcm4obmV3IEVycm9yKGBUcnlpbmcgdG8gc2V0IHNpbXBsZS1pbnB1dCdzIHZhbHVlIHRvICR7dHlwZW9mIHZ9LCBleHBlY3RlZCBzdHJpbmcsIG51bWJlciwgb3IgbnVsbC5gKSk7XG4gICAgICAgICAgICAvL25vcm1hbGl6ZSB0aGUgdmFsdWVcbiAgICAgICAgICAgIHYgPSB2Py50b1N0cmluZz8uKCkgPz8gU3RyaW5nKHYpO1xuICAgICAgICB9XG4gICAgICAgIHYgPSBTdHJpbmcodik7XG4gICAgICAgIHJldHVybiB0aGlzLl93cml0ZVZhbHVlKHYpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3dyaXRlVmFsdWUodjogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgICAgICAvL2NvbnN0cmFpbnRzXG4gICAgICAgIGlmICh2KSB7XG4gICAgICAgICAgICB2ID0gdGhpcy5fcmVtb3ZlRGVjaW1hbFBsYWNlcyh2KTtcbiAgICAgICAgICAgIHYgPSB0aGlzLl9hcHBseU51bWJlckNvbnN0cmFpbnQodik7XG4gICAgICAgICAgICB2ID0gdGhpcy5fYXBwbHlNaW5NYXhDb25zdHJhaW50cyh2KTtcbiAgICAgICAgfVxuICAgICAgICAvL3VwZGF0ZSB2aWV3XG4gICAgICAgIGxldCBvbGRWYWwgPSB0aGlzLnZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlID0gdjtcbiAgICAgICAgdGhpcy5fdXBkYXRlSW5wdXRFbGVtZW50KCk7XG4gICAgICAgIHJldHVybiBvbGRWYWwgIT09IHY7XG4gICAgfVxuICAgIHJld3JpdGVWYWx1ZUFmdGVySG9zdFVwZGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fd3JpdGVWYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8hIGlucHV0IGVsZW1lbnQgbWV0aG9kc1xuICAgIF91cGRhdGVJbnB1dEVsZW1lbnQoKSB7XG4gICAgICAgIHRoaXMuaW5wdXRFbC52YWx1ZSA9IHRoaXMuc3RyaW5nVmFsdWU7XG4gICAgfVxuICAgIGdldCBjYXJldFBvcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dEVsLnNlbGVjdGlvbkVuZCA/PyB0aGlzLnN0cmluZ1ZhbHVlLmxlbmd0aDtcbiAgICB9XG4gICAgc2V0IGNhcmV0UG9zKHBvczogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuaW5wdXRFbC5zZXRTZWxlY3Rpb25SYW5nZShwb3MsIHBvcyk7XG4gICAgfVxuXG4gICAgLy8hIGNvbnN0cmFpbnRzXG4gICAgcHJpdmF0ZSBfcmVtb3ZlRGVjaW1hbFBsYWNlcyh2OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIXYpIHJldHVybiAnJztcbiAgICAgICAgaWYgKHRoaXMuX2hvc3RDb21wLmFsbG93RmxvYXQpIHJldHVybiB2O1xuXG4gICAgICAgIGlmICh2Lm1hdGNoKC9bLixdLisvKSkge1xuICAgICAgICAgICAgY29uc3QgbnVtID0gTnVtYmVyKHYpO1xuICAgICAgICAgICAgaWYgKCFpc05hTihudW0pKSB2ID0gTWF0aC5yb3VuZChudW0pLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuICAgIHByaXZhdGUgX2FwcGx5TnVtYmVyQ29uc3RyYWludCh2OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIXYpIHJldHVybiAnJztcblxuICAgICAgICBpZiAodGhpcy5faG9zdENvbXAuYWxsb3dGbG9hdCkge1xuICAgICAgICAgICAgY29uc3QgeyB0ZXh0LCBjYXJldFBvcyB9ID0gQXJkVHJhbnNmb3JtZXIuRmxvYXQodiwgdGhpcy5zdHJpbmdWYWx1ZSwgdGhpcy5jYXJldFBvcyk7XG4gICAgICAgICAgICB0aGlzLmNhcmV0UG9zID0gY2FyZXRQb3M7XG4gICAgICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHRleHQsIGNhcmV0UG9zIH0gPSBBcmRUcmFuc2Zvcm1lci5JbnRlZ2VyKHYsIHRoaXMuc3RyaW5nVmFsdWUsIHRoaXMuY2FyZXRQb3MpO1xuICAgICAgICB0aGlzLmNhcmV0UG9zID0gY2FyZXRQb3M7XG4gICAgICAgIHJldHVybiB0ZXh0O1xuICAgIH1cbiAgICBwcml2YXRlIF9hcHBseU1pbk1heENvbnN0cmFpbnRzKHY6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICghdikgcmV0dXJuICcnO1xuXG4gICAgICAgIGNvbnN0IG51bWVyaWNWYWx1ZSA9IE51bWJlcih2KTtcbiAgICAgICAgaWYgKG51bWVyaWNWYWx1ZSA+IHRoaXMuX2hvc3RDb21wLm1heCkgcmV0dXJuIHRoaXMuX2hvc3RDb21wLm1heC50b1N0cmluZygpO1xuICAgICAgICBpZiAobnVtZXJpY1ZhbHVlIDwgdGhpcy5faG9zdENvbXAubWluKSByZXR1cm4gdGhpcy5faG9zdENvbXAubWluLnRvU3RyaW5nKCk7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZUFuZENyZWF0ZVJlZ2V4KHN0cjogc3RyaW5nLCBmbGFncz86IHN0cmluZywgbmVnYXRlZDogYm9vbGVhbiA9IHRydWUpOiBSZWdFeHAge1xuICAgIHN0ciA9IHN0ci5yZXBsYWNlKC8oW1xcXV0rKS9nLCAnXFxcXCQxJyk7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoYFske25lZ2F0ZWQgPyAnXicgOiAnJ30ke3N0cn1dYCwgZmxhZ3MpO1xufVxuIl19
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChild, ViewEncapsulation, ContentChild, TemplateRef, } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { coerceBooleanProperty, coerceNumberProperty } from '@ardium-ui/devkit';
|
|
4
|
+
import { ButtonVariant, ButtonAppearance } from '../../buttons/general-button.types';
|
|
5
|
+
import { OneAxisAlignment } from '../../types/alignment.types';
|
|
6
|
+
import { FormElementAppearance, FormElementVariant } from '../../types/theming.types';
|
|
7
|
+
import { _NgModelComponentBase } from '../../_internal/ngmodel-component';
|
|
8
|
+
import { NumberInputModel } from '../input-utils';
|
|
9
|
+
import { isDefined, isFloat } from 'simple-bool';
|
|
10
|
+
import { ArdNumberInputPlaceholderTemplateDirective } from './number-input.directives';
|
|
11
|
+
import { roundToPrecision } from 'more-rounding';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@angular/common";
|
|
14
|
+
import * as i2 from "@ardium-ui/devkit";
|
|
15
|
+
import * as i3 from "../../buttons/button/button.component";
|
|
16
|
+
export class ArdiumNumberInputComponent extends _NgModelComponentBase {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
//! placeholder
|
|
20
|
+
this.placeholder = '';
|
|
21
|
+
//! appearance
|
|
22
|
+
this.appearance = FormElementAppearance.Outlined;
|
|
23
|
+
this.variant = FormElementVariant.Rounded;
|
|
24
|
+
this.alignText = OneAxisAlignment.Middle;
|
|
25
|
+
this._compact = false;
|
|
26
|
+
//! other inputs
|
|
27
|
+
this.inputAttrs = {};
|
|
28
|
+
//! value two-way binding
|
|
29
|
+
this._valueBeforeInit = '0';
|
|
30
|
+
this.valueChange = new EventEmitter();
|
|
31
|
+
//* event emitters
|
|
32
|
+
this.inputEvent = new EventEmitter();
|
|
33
|
+
this.changeEvent = new EventEmitter();
|
|
34
|
+
this.clearEvent = new EventEmitter();
|
|
35
|
+
this.quickChangeEvent = new EventEmitter();
|
|
36
|
+
//! min/max and number type
|
|
37
|
+
this._min = 0;
|
|
38
|
+
this._max = 999;
|
|
39
|
+
this._allowFloat = undefined;
|
|
40
|
+
//! incerement/decrement buttons
|
|
41
|
+
this._allowQuickChange = true;
|
|
42
|
+
this._stepSize = 1;
|
|
43
|
+
}
|
|
44
|
+
ngOnInit() {
|
|
45
|
+
this.inputModel = new NumberInputModel(this.textInputEl.nativeElement, this);
|
|
46
|
+
this._setInputAttributes();
|
|
47
|
+
//set the value
|
|
48
|
+
if (this._valueBeforeInit) {
|
|
49
|
+
this.writeValue(this._valueBeforeInit);
|
|
50
|
+
delete this._valueBeforeInit;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
get shouldDisplayPlaceholder() {
|
|
54
|
+
return Boolean(this.placeholder) && !this.inputModel.stringValue;
|
|
55
|
+
}
|
|
56
|
+
get compact() {
|
|
57
|
+
return this._compact;
|
|
58
|
+
}
|
|
59
|
+
set compact(v) {
|
|
60
|
+
this._compact = coerceBooleanProperty(v);
|
|
61
|
+
}
|
|
62
|
+
get ngClasses() {
|
|
63
|
+
return [
|
|
64
|
+
`ard-appearance-${this.appearance}`,
|
|
65
|
+
`ard-variant-${this.variant}`,
|
|
66
|
+
`ard-text-align-${this.alignText}`,
|
|
67
|
+
`ard-quick-change-${this.allowQuickChange}`,
|
|
68
|
+
this.compact ? 'ard-compact' : '',
|
|
69
|
+
].join(' ');
|
|
70
|
+
}
|
|
71
|
+
get buttonVariant() {
|
|
72
|
+
if (this.variant == FormElementVariant.Rounded)
|
|
73
|
+
return ButtonVariant.Rounded;
|
|
74
|
+
if (this.variant == FormElementVariant.Pill)
|
|
75
|
+
return ButtonVariant.Pill;
|
|
76
|
+
if (this.variant == FormElementVariant.Sharp)
|
|
77
|
+
return ButtonVariant.Sharp;
|
|
78
|
+
return ButtonVariant.Rounded;
|
|
79
|
+
}
|
|
80
|
+
get buttonAppearance() {
|
|
81
|
+
if (this.appearance == FormElementAppearance.Outlined && this.variant != FormElementVariant.Pill)
|
|
82
|
+
return ButtonAppearance.Outlined;
|
|
83
|
+
return ButtonAppearance.Transparent;
|
|
84
|
+
}
|
|
85
|
+
//! control value accessor's write value implementation
|
|
86
|
+
writeValue(v) {
|
|
87
|
+
this.inputModel.writeValue(v);
|
|
88
|
+
}
|
|
89
|
+
set value(v) {
|
|
90
|
+
if (typeof v == 'number')
|
|
91
|
+
v = v.toString();
|
|
92
|
+
if (!this.inputModel) {
|
|
93
|
+
this._valueBeforeInit = v;
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
this.writeValue(v);
|
|
97
|
+
}
|
|
98
|
+
get min() {
|
|
99
|
+
return this._min;
|
|
100
|
+
}
|
|
101
|
+
set min(v) {
|
|
102
|
+
this._min = coerceNumberProperty(v);
|
|
103
|
+
}
|
|
104
|
+
get max() {
|
|
105
|
+
return this._max;
|
|
106
|
+
}
|
|
107
|
+
set max(v) {
|
|
108
|
+
this._max = coerceNumberProperty(v);
|
|
109
|
+
}
|
|
110
|
+
get allowFloat() {
|
|
111
|
+
return this._allowFloat ?? isFloat(this._stepSize);
|
|
112
|
+
}
|
|
113
|
+
set allowFloat(v) {
|
|
114
|
+
this._allowFloat = coerceBooleanProperty(v);
|
|
115
|
+
}
|
|
116
|
+
get allowQuickChange() {
|
|
117
|
+
return this._allowQuickChange;
|
|
118
|
+
}
|
|
119
|
+
set allowQuickChange(v) {
|
|
120
|
+
this._allowQuickChange = coerceBooleanProperty(v);
|
|
121
|
+
}
|
|
122
|
+
get stepSize() {
|
|
123
|
+
return this._stepSize;
|
|
124
|
+
}
|
|
125
|
+
set stepSize(v) {
|
|
126
|
+
this._stepSize = coerceNumberProperty(v);
|
|
127
|
+
}
|
|
128
|
+
onQuickChangeButtonClick(direction, event) {
|
|
129
|
+
let num = this.inputModel.numberValue;
|
|
130
|
+
if (!num)
|
|
131
|
+
num = 0;
|
|
132
|
+
if (direction == 1 && num >= this.max)
|
|
133
|
+
return;
|
|
134
|
+
if (direction == -1 && num <= this.min)
|
|
135
|
+
return;
|
|
136
|
+
if (event)
|
|
137
|
+
event.stopPropagation();
|
|
138
|
+
const newValue = num + this.stepSize * direction;
|
|
139
|
+
//round to 9 decimal places to avoid floating point arithmetic errors
|
|
140
|
+
//9 is an arbitrary number that just works well. ¯\_(ツ)_/¯
|
|
141
|
+
const newValuePrecise = roundToPrecision(newValue, 9);
|
|
142
|
+
this.writeValue(newValuePrecise);
|
|
143
|
+
this.quickChangeEvent.next({ direction, value: newValuePrecise });
|
|
144
|
+
this._emitChange();
|
|
145
|
+
this._checkButtonAvailability();
|
|
146
|
+
}
|
|
147
|
+
_checkButtonAvailability() {
|
|
148
|
+
if (!this.canDecrement() || !this.canIncrement())
|
|
149
|
+
this.focus();
|
|
150
|
+
}
|
|
151
|
+
canIncrement() {
|
|
152
|
+
const num = this.inputModel.numberValue;
|
|
153
|
+
return !isDefined(num) || num < this.max;
|
|
154
|
+
}
|
|
155
|
+
canDecrement() {
|
|
156
|
+
const num = this.inputModel.numberValue;
|
|
157
|
+
return !isDefined(num) || num > this.min;
|
|
158
|
+
}
|
|
159
|
+
//! event handlers
|
|
160
|
+
onInput(newVal) {
|
|
161
|
+
let valueHasChanged = this.inputModel.writeValue(newVal);
|
|
162
|
+
if (!valueHasChanged)
|
|
163
|
+
return;
|
|
164
|
+
this._emitInput();
|
|
165
|
+
}
|
|
166
|
+
_emitInput() {
|
|
167
|
+
this.inputEvent.emit(this.inputModel.numberValue);
|
|
168
|
+
this._emitChange();
|
|
169
|
+
}
|
|
170
|
+
//focus, blur, change
|
|
171
|
+
onFocusMaster(event) {
|
|
172
|
+
this.onFocus(event);
|
|
173
|
+
}
|
|
174
|
+
onBlurMaster(event) {
|
|
175
|
+
this.onBlur(event);
|
|
176
|
+
}
|
|
177
|
+
//change
|
|
178
|
+
onChange(event) {
|
|
179
|
+
event.stopPropagation();
|
|
180
|
+
this._emitChange();
|
|
181
|
+
}
|
|
182
|
+
_emitChange() {
|
|
183
|
+
const v = this.inputModel.numberValue;
|
|
184
|
+
this._onChangeRegistered?.(v);
|
|
185
|
+
this.changeEvent.emit(v);
|
|
186
|
+
this.valueChange.emit(this.inputModel.numberValue);
|
|
187
|
+
}
|
|
188
|
+
//smart focus
|
|
189
|
+
onMouseup(event) {
|
|
190
|
+
const selection = window.getSelection();
|
|
191
|
+
if (selection && selection.type === 'Range')
|
|
192
|
+
return;
|
|
193
|
+
this.focus();
|
|
194
|
+
}
|
|
195
|
+
// copy
|
|
196
|
+
onCopy(event) {
|
|
197
|
+
if (this.value &&
|
|
198
|
+
//does the selection cover the entire input
|
|
199
|
+
((this.textInputEl.nativeElement.selectionStart == 0 &&
|
|
200
|
+
this.textInputEl.nativeElement.selectionEnd == this.textInputEl.nativeElement.value.length) ||
|
|
201
|
+
//or is zero-wide
|
|
202
|
+
this.textInputEl.nativeElement.selectionStart == this.textInputEl.nativeElement.selectionEnd)) {
|
|
203
|
+
event.clipboardData?.setData('text/plain', String(this.value));
|
|
204
|
+
event.preventDefault();
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
//! helpers
|
|
208
|
+
_setInputAttributes() {
|
|
209
|
+
const input = this.textInputEl.nativeElement;
|
|
210
|
+
const attributes = {
|
|
211
|
+
type: 'text',
|
|
212
|
+
autocorrect: 'off',
|
|
213
|
+
autocapitalize: 'off',
|
|
214
|
+
autocomplete: 'off',
|
|
215
|
+
tabindex: String(this.tabIndex),
|
|
216
|
+
...this.inputAttrs,
|
|
217
|
+
};
|
|
218
|
+
for (const key of Object.keys(attributes)) {
|
|
219
|
+
input.setAttribute(key, String(attributes[key]));
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumNumberInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
223
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: ArdiumNumberInputComponent, selector: "ard-number-input", inputs: { inputId: "inputId", placeholder: "placeholder", appearance: "appearance", variant: "variant", alignText: "alignText", compact: "compact", inputAttrs: "inputAttrs", value: "value", min: "min", max: "max", allowFloat: "allowFloat", allowQuickChange: "allowQuickChange", stepSize: "stepSize" }, outputs: { valueChange: "valueChange", inputEvent: "input", changeEvent: "change", clearEvent: "clear", quickChangeEvent: "quickChange" }, providers: [
|
|
224
|
+
{
|
|
225
|
+
provide: NG_VALUE_ACCESSOR,
|
|
226
|
+
useExisting: forwardRef(() => ArdiumNumberInputComponent),
|
|
227
|
+
multi: true,
|
|
228
|
+
},
|
|
229
|
+
], queries: [{ propertyName: "placeholderTemplate", first: true, predicate: ArdNumberInputPlaceholderTemplateDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "textInputEl", first: true, predicate: ["textInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ard-number-input\"\r\n [ngClass]=\"ngClasses\"\r\n [class.ard-has-value]=\"value\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (mouseup)=\"onMouseup($event)\"\r\n>\r\n <ard-button *ngIf=\"allowQuickChange\"\r\n class=\"ard-quick-change-button decrement\"\r\n [variant]=\"buttonVariant\"\r\n [appearance]=\"buttonAppearance\"\r\n color=\"none\"\r\n [disabled]=\"!canDecrement()\"\r\n [tabIndex]=\"!canDecrement() ? -1 : tabIndex\"\r\n (click)=\"onQuickChangeButtonClick(-1, $event)\"\r\n (ardHold)=\"onQuickChangeButtonClick(-1)\"\r\n ardHoldSpaceKey\r\n >-</ard-button>\r\n <div class=\"ard-input-container\">\r\n <ng-container *ngIf=\"shouldDisplayPlaceholder\">\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate || defaultPlaceholderTemplate\"></ng-template>\r\n </ng-container>\r\n\r\n <input #textInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"inputId\"\r\n [attr.tabindex]=\"tabIndex\"\r\n [readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n (input)=\"onInput(textInput.value)\"\r\n (focus)=\"onFocusMaster($event)\"\r\n (blur)=\"onBlurMaster($event)\"\r\n (change)=\"onChange($event)\"\r\n (mousedown)=\"$event.stopPropagation()\"\r\n (mouseup)=\"$event.stopPropagation()\"\r\n (copy)=\"onCopy($event)\"\r\n >\r\n </div>\r\n <ard-button *ngIf=\"allowQuickChange\"\r\n class=\"ard-quick-change-button increment\"\r\n [variant]=\"buttonVariant\"\r\n [appearance]=\"buttonAppearance\"\r\n color=\"none\"\r\n [disabled]=\"!canIncrement()\"\r\n [tabIndex]=\"!canIncrement() ? -1 : tabIndex\"\r\n (click)=\"onQuickChangeButtonClick(1, $event)\"\r\n (ardHold)=\"onQuickChangeButtonClick(1)\"\r\n ardHoldSpaceKey\r\n >+</ard-button>\r\n</div>", styles: [".ard-number-input{display:flex;max-width:100%}.ard-number-input .ard-input-container{position:relative}.ard-number-input .ard-placeholder{position:absolute;left:0;right:0;pointer-events:none}.ard-text-align-left input,.ard-text-align-left .ard-placeholder{text-align:left}.ard-text-align-middle input,.ard-text-align-middle .ard-placeholder{text-align:center}.ard-text-align-right input,.ard-text-align-right .ard-placeholder{text-align:right}.ard-quick-change-button{-webkit-user-select:none;user-select:none;height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.HoldDirective, selector: "[ardHold]", inputs: ["disabled", "readonly", "ardHoldDelay", "ardHoldRepeat", "ardHoldSpaceKey", "ardHoldEnterKey"], outputs: ["ardHold"] }, { kind: "component", type: i3.ArdiumButtonComponent, selector: "ard-button", inputs: ["variant", "alignIcon", "vertical", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
230
|
+
}
|
|
231
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumNumberInputComponent, decorators: [{
|
|
232
|
+
type: Component,
|
|
233
|
+
args: [{ selector: 'ard-number-input', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
234
|
+
{
|
|
235
|
+
provide: NG_VALUE_ACCESSOR,
|
|
236
|
+
useExisting: forwardRef(() => ArdiumNumberInputComponent),
|
|
237
|
+
multi: true,
|
|
238
|
+
},
|
|
239
|
+
], template: "<div class=\"ard-number-input\"\r\n [ngClass]=\"ngClasses\"\r\n [class.ard-has-value]=\"value\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (mouseup)=\"onMouseup($event)\"\r\n>\r\n <ard-button *ngIf=\"allowQuickChange\"\r\n class=\"ard-quick-change-button decrement\"\r\n [variant]=\"buttonVariant\"\r\n [appearance]=\"buttonAppearance\"\r\n color=\"none\"\r\n [disabled]=\"!canDecrement()\"\r\n [tabIndex]=\"!canDecrement() ? -1 : tabIndex\"\r\n (click)=\"onQuickChangeButtonClick(-1, $event)\"\r\n (ardHold)=\"onQuickChangeButtonClick(-1)\"\r\n ardHoldSpaceKey\r\n >-</ard-button>\r\n <div class=\"ard-input-container\">\r\n <ng-container *ngIf=\"shouldDisplayPlaceholder\">\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate || defaultPlaceholderTemplate\"></ng-template>\r\n </ng-container>\r\n\r\n <input #textInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"inputId\"\r\n [attr.tabindex]=\"tabIndex\"\r\n [readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n (input)=\"onInput(textInput.value)\"\r\n (focus)=\"onFocusMaster($event)\"\r\n (blur)=\"onBlurMaster($event)\"\r\n (change)=\"onChange($event)\"\r\n (mousedown)=\"$event.stopPropagation()\"\r\n (mouseup)=\"$event.stopPropagation()\"\r\n (copy)=\"onCopy($event)\"\r\n >\r\n </div>\r\n <ard-button *ngIf=\"allowQuickChange\"\r\n class=\"ard-quick-change-button increment\"\r\n [variant]=\"buttonVariant\"\r\n [appearance]=\"buttonAppearance\"\r\n color=\"none\"\r\n [disabled]=\"!canIncrement()\"\r\n [tabIndex]=\"!canIncrement() ? -1 : tabIndex\"\r\n (click)=\"onQuickChangeButtonClick(1, $event)\"\r\n (ardHold)=\"onQuickChangeButtonClick(1)\"\r\n ardHoldSpaceKey\r\n >+</ard-button>\r\n</div>", styles: [".ard-number-input{display:flex;max-width:100%}.ard-number-input .ard-input-container{position:relative}.ard-number-input .ard-placeholder{position:absolute;left:0;right:0;pointer-events:none}.ard-text-align-left input,.ard-text-align-left .ard-placeholder{text-align:left}.ard-text-align-middle input,.ard-text-align-middle .ard-placeholder{text-align:center}.ard-text-align-right input,.ard-text-align-right .ard-placeholder{text-align:right}.ard-quick-change-button{-webkit-user-select:none;user-select:none;height:100%}\n"] }]
|
|
240
|
+
}], propDecorators: { textInputEl: [{
|
|
241
|
+
type: ViewChild,
|
|
242
|
+
args: ['textInput', { static: true }]
|
|
243
|
+
}], inputId: [{
|
|
244
|
+
type: Input
|
|
245
|
+
}], placeholder: [{
|
|
246
|
+
type: Input
|
|
247
|
+
}], placeholderTemplate: [{
|
|
248
|
+
type: ContentChild,
|
|
249
|
+
args: [ArdNumberInputPlaceholderTemplateDirective, {
|
|
250
|
+
read: TemplateRef,
|
|
251
|
+
}]
|
|
252
|
+
}], appearance: [{
|
|
253
|
+
type: Input
|
|
254
|
+
}], variant: [{
|
|
255
|
+
type: Input
|
|
256
|
+
}], alignText: [{
|
|
257
|
+
type: Input
|
|
258
|
+
}], compact: [{
|
|
259
|
+
type: Input
|
|
260
|
+
}], inputAttrs: [{
|
|
261
|
+
type: Input
|
|
262
|
+
}], value: [{
|
|
263
|
+
type: Input
|
|
264
|
+
}], valueChange: [{
|
|
265
|
+
type: Output
|
|
266
|
+
}], inputEvent: [{
|
|
267
|
+
type: Output,
|
|
268
|
+
args: ['input']
|
|
269
|
+
}], changeEvent: [{
|
|
270
|
+
type: Output,
|
|
271
|
+
args: ['change']
|
|
272
|
+
}], clearEvent: [{
|
|
273
|
+
type: Output,
|
|
274
|
+
args: ['clear']
|
|
275
|
+
}], quickChangeEvent: [{
|
|
276
|
+
type: Output,
|
|
277
|
+
args: ['quickChange']
|
|
278
|
+
}], min: [{
|
|
279
|
+
type: Input
|
|
280
|
+
}], max: [{
|
|
281
|
+
type: Input
|
|
282
|
+
}], allowFloat: [{
|
|
283
|
+
type: Input
|
|
284
|
+
}], allowQuickChange: [{
|
|
285
|
+
type: Input
|
|
286
|
+
}], stepSize: [{
|
|
287
|
+
type: Input
|
|
288
|
+
}] } });
|
|
289
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW5wdXRzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNqQixZQUFZLEVBQ1osV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pELE9BQU8sRUFBRSwwQ0FBMEMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7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QUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzs0QkFDekQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7OEJBS0QsV0FBVztzQkFEVixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBYS9CLE9BQU87c0JBQWYsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUtOLG1CQUFtQjtzQkFIbEIsWUFBWTt1QkFBQywwQ0FBMEMsRUFBRTt3QkFDdEQsSUFBSSxFQUFFLFdBQVc7cUJBQ3BCO2dCQVFRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSUYsT0FBTztzQkFEVixLQUFLO2dCQThCRyxVQUFVO3NCQUFsQixLQUFLO2dCQVVGLEtBQUs7c0JBRFIsS0FBSztnQkFTSSxXQUFXO3NCQUFwQixNQUFNO2dCQUdVLFVBQVU7c0JBQTFCLE1BQU07dUJBQUMsT0FBTztnQkFDRyxXQUFXO3NCQUE1QixNQUFNO3VCQUFDLFFBQVE7Z0JBQ0MsVUFBVTtzQkFBMUIsTUFBTTt1QkFBQyxPQUFPO2dCQUNRLGdCQUFnQjtzQkFBdEMsTUFBTTt1QkFBQyxhQUFhO2dCQVFqQixHQUFHO3NCQUROLEtBQUs7Z0JBVUYsR0FBRztzQkFETixLQUFLO2dCQVVGLFVBQVU7c0JBRGIsS0FBSztnQkFXRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBVUYsUUFBUTtzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcbmltcG9ydCB7IEJ1dHRvblZhcmlhbnQsIEJ1dHRvbkFwcGVhcmFuY2UgfSBmcm9tICcuLi8uLi9idXR0b25zL2dlbmVyYWwtYnV0dG9uLnR5cGVzJztcbmltcG9ydCB7IE9uZUF4aXNBbGlnbm1lbnQgfSBmcm9tICcuLi8uLi90eXBlcy9hbGlnbm1lbnQudHlwZXMnO1xuaW1wb3J0IHsgRm9ybUVsZW1lbnRBcHBlYXJhbmNlLCBGb3JtRWxlbWVudFZhcmlhbnQgfSBmcm9tICcuLi8uLi90eXBlcy90aGVtaW5nLnR5cGVzJztcbmltcG9ydCB7IF9OZ01vZGVsQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL19pbnRlcm5hbC9uZ21vZGVsLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdW1iZXJJbnB1dE1vZGVsLCBOdW1iZXJJbnB1dE1vZGVsSG9zdCB9IGZyb20gJy4uL2lucHV0LXV0aWxzJztcbmltcG9ydCB7IGlzRGVmaW5lZCwgaXNGbG9hdCB9IGZyb20gJ3NpbXBsZS1ib29sJztcbmltcG9ydCB7IEFyZE51bWJlcklucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vbnVtYmVyLWlucHV0LmRpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgcm91bmRUb1ByZWNpc2lvbiB9IGZyb20gJ21vcmUtcm91bmRpbmcnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FyZC1udW1iZXItaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL251bWJlci1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXJkaXVtTnVtYmVySW5wdXRDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXJkaXVtTnVtYmVySW5wdXRDb21wb25lbnQgZXh0ZW5kcyBfTmdNb2RlbENvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTnVtYmVySW5wdXRNb2RlbEhvc3QsIE9uSW5pdCB7XG4gICAgLy8hIGlucHV0IHZpZXdcbiAgICBAVmlld0NoaWxkKCd0ZXh0SW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHRleHRJbnB1dEVsITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgICBwcm90ZWN0ZWQgaW5wdXRNb2RlbCE6IE51bWJlcklucHV0TW9kZWw7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRNb2RlbCA9IG5ldyBOdW1iZXJJbnB1dE1vZGVsKHRoaXMudGV4dElucHV0RWwubmF0aXZlRWxlbWVudCwgdGhpcyk7XG4gICAgICAgIHRoaXMuX3NldElucHV0QXR0cmlidXRlcygpO1xuICAgICAgICAvL3NldCB0aGUgdmFsdWVcbiAgICAgICAgaWYgKHRoaXMuX3ZhbHVlQmVmb3JlSW5pdCkge1xuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuX3ZhbHVlQmVmb3JlSW5pdCk7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5fdmFsdWVCZWZvcmVJbml0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KCkgaW5wdXRJZD86IHN0cmluZztcblxuICAgIC8vISBwbGFjZWhvbGRlclxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuICAgIEBDb250ZW50Q2hpbGQoQXJkTnVtYmVySW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlLCB7XG4gICAgICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIH0pXG4gICAgcGxhY2Vob2xkZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBnZXQgc2hvdWxkRGlzcGxheVBsYWNlaG9sZGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gQm9vbGVhbih0aGlzLnBsYWNlaG9sZGVyKSAmJiAhdGhpcy5pbnB1dE1vZGVsLnN0cmluZ1ZhbHVlO1xuICAgIH1cblxuICAgIC8vISBhcHBlYXJhbmNlXG4gICAgQElucHV0KCkgYXBwZWFyYW5jZTogRm9ybUVsZW1lbnRBcHBlYXJhbmNlID0gRm9ybUVsZW1lbnRBcHBlYXJhbmNlLk91dGxpbmVkO1xuICAgIEBJbnB1dCgpIHZhcmlhbnQ6IEZvcm1FbGVtZW50VmFyaWFudCA9IEZvcm1FbGVtZW50VmFyaWFudC5Sb3VuZGVkO1xuICAgIEBJbnB1dCgpIGFsaWduVGV4dDogT25lQXhpc0FsaWdubWVudCA9IE9uZUF4aXNBbGlnbm1lbnQuTWlkZGxlO1xuXG4gICAgcHJpdmF0ZSBfY29tcGFjdDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGNvbXBhY3QoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21wYWN0O1xuICAgIH1cbiAgICBzZXQgY29tcGFjdCh2OiBhbnkpIHtcbiAgICAgICAgdGhpcy5fY29tcGFjdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KTtcbiAgICB9XG5cbiAgICBnZXQgbmdDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBgYXJkLWFwcGVhcmFuY2UtJHt0aGlzLmFwcGVhcmFuY2V9YCxcbiAgICAgICAgICAgIGBhcmQtdmFyaWFudC0ke3RoaXMudmFyaWFudH1gLFxuICAgICAgICAgICAgYGFyZC10ZXh0LWFsaWduLSR7dGhpcy5hbGlnblRleHR9YCxcbiAgICAgICAgICAgIGBhcmQtcXVpY2stY2hhbmdlLSR7dGhpcy5hbGxvd1F1aWNrQ2hhbmdlfWAsXG4gICAgICAgICAgICB0aGlzLmNvbXBhY3QgPyAnYXJkLWNvbXBhY3QnIDogJycsXG4gICAgICAgIF0uam9pbignICcpO1xuICAgIH1cblxuICAgIGdldCBidXR0b25WYXJpYW50KCk6IEJ1dHRvblZhcmlhbnQge1xuICAgICAgICBpZiAodGhpcy52YXJpYW50ID09IEZvcm1FbGVtZW50VmFyaWFudC5Sb3VuZGVkKSByZXR1cm4gQnV0dG9uVmFyaWFudC5Sb3VuZGVkO1xuICAgICAgICBpZiAodGhpcy52YXJpYW50ID09IEZvcm1FbGVtZW50VmFyaWFudC5QaWxsKSByZXR1cm4gQnV0dG9uVmFyaWFudC5QaWxsO1xuICAgICAgICBpZiAodGhpcy52YXJpYW50ID09IEZvcm1FbGVtZW50VmFyaWFudC5TaGFycCkgcmV0dXJuIEJ1dHRvblZhcmlhbnQuU2hhcnA7XG4gICAgICAgIHJldHVybiBCdXR0b25WYXJpYW50LlJvdW5kZWQ7XG4gICAgfVxuICAgIGdldCBidXR0b25BcHBlYXJhbmNlKCk6IEJ1dHRvbkFwcGVhcmFuY2Uge1xuICAgICAgICBpZiAodGhpcy5hcHBlYXJhbmNlID09IEZvcm1FbGVtZW50QXBwZWFyYW5jZS5PdXRsaW5lZCAmJiB0aGlzLnZhcmlhbnQgIT0gRm9ybUVsZW1lbnRWYXJpYW50LlBpbGwpIHJldHVybiBCdXR0b25BcHBlYXJhbmNlLk91dGxpbmVkO1xuICAgICAgICByZXR1cm4gQnV0dG9uQXBwZWFyYW5jZS5UcmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAvLyEgb3RoZXIgaW5wdXRzXG4gICAgQElucHV0KCkgaW5wdXRBdHRyczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gICAgLy8hIGNvbnRyb2wgdmFsdWUgYWNjZXNzb3IncyB3cml0ZSB2YWx1ZSBpbXBsZW1lbnRhdGlvblxuICAgIHdyaXRlVmFsdWUodjogYW55KSB7XG4gICAgICAgIHRoaXMuaW5wdXRNb2RlbC53cml0ZVZhbHVlKHYpO1xuICAgIH1cblxuICAgIC8vISB2YWx1ZSB0d28td2F5IGJpbmRpbmdcbiAgICBwcm90ZWN0ZWQgX3ZhbHVlQmVmb3JlSW5pdD86IHN0cmluZyB8IG51bGwgPSAnMCc7XG4gICAgQElucHV0KClcbiAgICBzZXQgdmFsdWUodjogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCkge1xuICAgICAgICBpZiAodHlwZW9mIHYgPT0gJ251bWJlcicpIHYgPSB2LnRvU3RyaW5nKCk7XG4gICAgICAgIGlmICghdGhpcy5pbnB1dE1vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZUJlZm9yZUluaXQgPSB2O1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZSh2KTtcbiAgICB9XG4gICAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBudWxsPigpO1xuXG4gICAgLy8qIGV2ZW50IGVtaXR0ZXJzXG4gICAgQE91dHB1dCgnaW5wdXQnKSBpbnB1dEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBudWxsPigpO1xuICAgIEBPdXRwdXQoJ2NoYW5nZScpIGNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBudWxsPigpO1xuICAgIEBPdXRwdXQoJ2NsZWFyJykgY2xlYXJFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcbiAgICBAT3V0cHV0KCdxdWlja0NoYW5nZScpIHF1aWNrQ2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICAgICAgZGlyZWN0aW9uOiAxIHwgLTE7XG4gICAgICAgIHZhbHVlOiBudW1iZXI7XG4gICAgfT4oKTtcblxuICAgIC8vISBtaW4vbWF4IGFuZCBudW1iZXIgdHlwZVxuICAgIHByaXZhdGUgX21pbjogbnVtYmVyID0gMDtcbiAgICBASW5wdXQoKVxuICAgIGdldCBtaW4oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgICB9XG4gICAgc2V0IG1pbih2OiBhbnkpIHtcbiAgICAgICAgdGhpcy5fbWluID0gY29lcmNlTnVtYmVyUHJvcGVydHkodik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbWF4OiBudW1iZXIgPSA5OTk7XG4gICAgQElucHV0KClcbiAgICBnZXQgbWF4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXg7XG4gICAgfVxuICAgIHNldCBtYXgodjogYW55KSB7XG4gICAgICAgIHRoaXMuX21heCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHYpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2FsbG93RmxvYXQ/OiBib29sZWFuID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGFsbG93RmxvYXQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hbGxvd0Zsb2F0ID8/IGlzRmxvYXQodGhpcy5fc3RlcFNpemUpO1xuICAgIH1cbiAgICBzZXQgYWxsb3dGbG9hdCh2OiBhbnkpIHtcbiAgICAgICAgdGhpcy5fYWxsb3dGbG9hdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KTtcbiAgICB9XG5cbiAgICAvLyEgaW5jZXJlbWVudC9kZWNyZW1lbnQgYnV0dG9uc1xuICAgIHByaXZhdGUgX2FsbG93UXVpY2tDaGFuZ2U6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGFsbG93UXVpY2tDaGFuZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hbGxvd1F1aWNrQ2hhbmdlO1xuICAgIH1cbiAgICBzZXQgYWxsb3dRdWlja0NoYW5nZSh2OiBhbnkpIHtcbiAgICAgICAgdGhpcy5fYWxsb3dRdWlja0NoYW5nZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zdGVwU2l6ZTogbnVtYmVyID0gMTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBzdGVwU2l6ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RlcFNpemU7XG4gICAgfVxuICAgIHNldCBzdGVwU2l6ZSh2OiBhbnkpIHtcbiAgICAgICAgdGhpcy5fc3RlcFNpemUgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2KTtcbiAgICB9XG5cbiAgICBvblF1aWNrQ2hhbmdlQnV0dG9uQ2xpY2soZGlyZWN0aW9uOiAxIHwgLTEsIGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBsZXQgbnVtID0gdGhpcy5pbnB1dE1vZGVsLm51bWJlclZhbHVlO1xuICAgICAgICBpZiAoIW51bSkgbnVtID0gMDtcblxuICAgICAgICBpZiAoZGlyZWN0aW9uID09IDEgJiYgbnVtID49IHRoaXMubWF4KSByZXR1cm47XG4gICAgICAgIGlmIChkaXJlY3Rpb24gPT0gLTEgJiYgbnVtIDw9IHRoaXMubWluKSByZXR1cm47XG5cbiAgICAgICAgaWYgKGV2ZW50KSBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IG51bSArIHRoaXMuc3RlcFNpemUgKiBkaXJlY3Rpb247XG4gICAgICAgIC8vcm91bmQgdG8gOSBkZWNpbWFsIHBsYWNlcyB0byBhdm9pZCBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljIGVycm9yc1xuICAgICAgICAvLzkgaXMgYW4gYXJiaXRyYXJ5IG51bWJlciB0aGF0IGp1c3Qgd29ya3Mgd2VsbC4gwq9cXF8o44OEKV8vwq9cbiAgICAgICAgY29uc3QgbmV3VmFsdWVQcmVjaXNlID0gcm91bmRUb1ByZWNpc2lvbihuZXdWYWx1ZSwgOSk7XG5cbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKG5ld1ZhbHVlUHJlY2lzZSk7XG4gICAgICAgIHRoaXMucXVpY2tDaGFuZ2VFdmVudC5uZXh0KHsgZGlyZWN0aW9uLCB2YWx1ZTogbmV3VmFsdWVQcmVjaXNlIH0pO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XG5cbiAgICAgICAgdGhpcy5fY2hlY2tCdXR0b25BdmFpbGFiaWxpdHkoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2hlY2tCdXR0b25BdmFpbGFiaWxpdHkoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jYW5EZWNyZW1lbnQoKSB8fCAhdGhpcy5jYW5JbmNyZW1lbnQoKSkgdGhpcy5mb2N1cygpO1xuICAgIH1cblxuICAgIGNhbkluY3JlbWVudCgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgbnVtID0gdGhpcy5pbnB1dE1vZGVsLm51bWJlclZhbHVlO1xuICAgICAgICByZXR1cm4gIWlzRGVmaW5lZChudW0pIHx8IG51bSA8IHRoaXMubWF4O1xuICAgIH1cbiAgICBjYW5EZWNyZW1lbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IG51bSA9IHRoaXMuaW5wdXRNb2RlbC5udW1iZXJWYWx1ZTtcbiAgICAgICAgcmV0dXJuICFpc0RlZmluZWQobnVtKSB8fCBudW0gPiB0aGlzLm1pbjtcbiAgICB9XG5cbiAgICAvLyEgZXZlbnQgaGFuZGxlcnNcbiAgICBvbklucHV0KG5ld1ZhbDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGxldCB2YWx1ZUhhc0NoYW5nZWQgPSB0aGlzLmlucHV0TW9kZWwud3JpdGVWYWx1ZShuZXdWYWwpO1xuICAgICAgICBpZiAoIXZhbHVlSGFzQ2hhbmdlZCkgcmV0dXJuO1xuICAgICAgICB0aGlzLl9lbWl0SW5wdXQoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9lbWl0SW5wdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRFdmVudC5lbWl0KHRoaXMuaW5wdXRNb2RlbC5udW1iZXJWYWx1ZSk7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICAvL2ZvY3VzLCBibHVyLCBjaGFuZ2VcbiAgICBvbkZvY3VzTWFzdGVyKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Gb2N1cyhldmVudCk7XG4gICAgfVxuICAgIG9uQmx1ck1hc3RlcihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQmx1cihldmVudCk7XG4gICAgfVxuICAgIC8vY2hhbmdlXG4gICAgb25DaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZW1pdENoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuaW5wdXRNb2RlbC5udW1iZXJWYWx1ZTtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkPy4odik7XG4gICAgICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdCh2KTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuaW5wdXRNb2RlbC5udW1iZXJWYWx1ZSk7XG4gICAgfVxuXG4gICAgLy9zbWFydCBmb2N1c1xuICAgIG9uTW91c2V1cChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIGlmIChzZWxlY3Rpb24gJiYgc2VsZWN0aW9uLnR5cGUgPT09ICdSYW5nZScpIHJldHVybjtcblxuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLy8gY29weVxuICAgIG9uQ29weShldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy52YWx1ZSAmJlxuICAgICAgICAgICAgLy9kb2VzIHRoZSBzZWxlY3Rpb24gY292ZXIgdGhlIGVudGlyZSBpbnB1dFxuICAgICAgICAgICAgKCh0aGlzLnRleHRJbnB1dEVsLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT0gMCAmJlxuICAgICAgICAgICAgICAgIHRoaXMudGV4dElucHV0RWwubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQgPT0gdGhpcy50ZXh0SW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlLmxlbmd0aCkgfHxcbiAgICAgICAgICAgICAgICAvL29yIGlzIHplcm8td2lkZVxuICAgICAgICAgICAgICAgIHRoaXMudGV4dElucHV0RWwubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PSB0aGlzLnRleHRJbnB1dEVsLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LmNsaXBib2FyZERhdGE/LnNldERhdGEoJ3RleHQvcGxhaW4nLCBTdHJpbmcodGhpcy52YWx1ZSkpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vISBoZWxwZXJzXG4gICAgcHJvdGVjdGVkIF9zZXRJbnB1dEF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy50ZXh0SW5wdXRFbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgYXV0b2NvcnJlY3Q6ICdvZmYnLFxuICAgICAgICAgICAgYXV0b2NhcGl0YWxpemU6ICdvZmYnLFxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlOiAnb2ZmJyxcbiAgICAgICAgICAgIHRhYmluZGV4OiBTdHJpbmcodGhpcy50YWJJbmRleCksXG4gICAgICAgICAgICAuLi50aGlzLmlucHV0QXR0cnMsXG4gICAgICAgIH07XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYXR0cmlidXRlcykpIHtcbiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZShrZXksIFN0cmluZyhhdHRyaWJ1dGVzW2tleV0pKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhcmQtbnVtYmVyLWlucHV0XCJcclxuICAgIFtuZ0NsYXNzXT1cIm5nQ2xhc3Nlc1wiXHJcbiAgICBbY2xhc3MuYXJkLWhhcy12YWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICAobW91c2Vkb3duKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcclxuICAgIChtb3VzZXVwKT1cIm9uTW91c2V1cCgkZXZlbnQpXCJcclxuPlxyXG4gICAgPGFyZC1idXR0b24gKm5nSWY9XCJhbGxvd1F1aWNrQ2hhbmdlXCJcclxuICAgICAgICBjbGFzcz1cImFyZC1xdWljay1jaGFuZ2UtYnV0dG9uIGRlY3JlbWVudFwiXHJcbiAgICAgICAgW3ZhcmlhbnRdPVwiYnV0dG9uVmFyaWFudFwiXHJcbiAgICAgICAgW2FwcGVhcmFuY2VdPVwiYnV0dG9uQXBwZWFyYW5jZVwiXHJcbiAgICAgICAgY29sb3I9XCJub25lXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiIWNhbkRlY3JlbWVudCgpXCJcclxuICAgICAgICBbdGFiSW5kZXhdPVwiIWNhbkRlY3JlbWVudCgpID8gLTEgOiB0YWJJbmRleFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uUXVpY2tDaGFuZ2VCdXR0b25DbGljaygtMSwgJGV2ZW50KVwiXHJcbiAgICAgICAgKGFyZEhvbGQpPVwib25RdWlja0NoYW5nZUJ1dHRvbkNsaWNrKC0xKVwiXHJcbiAgICAgICAgYXJkSG9sZFNwYWNlS2V5XHJcbiAgICA+LTwvYXJkLWJ1dHRvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtaW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3VsZERpc3BsYXlQbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRQbGFjZWhvbGRlclRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1wbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicGxhY2Vob2xkZXJUZW1wbGF0ZSB8fCBkZWZhdWx0UGxhY2Vob2xkZXJUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxpbnB1dCAjdGV4dElucHV0XHJcbiAgICAgICAgICAgICNmb2N1c2FibGVFbGVtZW50XHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiaW5wdXRJZFwiXHJcbiAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4XCJcclxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQodGV4dElucHV0LnZhbHVlKVwiXHJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzTWFzdGVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJvbkJsdXJNYXN0ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChtb3VzZWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgKG1vdXNldXApPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgKGNvcHkpPVwib25Db3B5KCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgIDwvZGl2PlxyXG4gICAgPGFyZC1idXR0b24gKm5nSWY9XCJhbGxvd1F1aWNrQ2hhbmdlXCJcclxuICAgICAgICBjbGFzcz1cImFyZC1xdWljay1jaGFuZ2UtYnV0dG9uIGluY3JlbWVudFwiXHJcbiAgICAgICAgW3ZhcmlhbnRdPVwiYnV0dG9uVmFyaWFudFwiXHJcbiAgICAgICAgW2FwcGVhcmFuY2VdPVwiYnV0dG9uQXBwZWFyYW5jZVwiXHJcbiAgICAgICAgY29sb3I9XCJub25lXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiIWNhbkluY3JlbWVudCgpXCJcclxuICAgICAgICBbdGFiSW5kZXhdPVwiIWNhbkluY3JlbWVudCgpID8gLTEgOiB0YWJJbmRleFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uUXVpY2tDaGFuZ2VCdXR0b25DbGljaygxLCAkZXZlbnQpXCJcclxuICAgICAgICAoYXJkSG9sZCk9XCJvblF1aWNrQ2hhbmdlQnV0dG9uQ2xpY2soMSlcIlxyXG4gICAgICAgIGFyZEhvbGRTcGFjZUtleVxyXG4gICAgPis8L2FyZC1idXR0b24+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ArdNumberInputPlaceholderTemplateDirective {
|
|
4
|
+
constructor(template) {
|
|
5
|
+
this.template = template;
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdNumberInputPlaceholderTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: ArdNumberInputPlaceholderTemplateDirective, selector: "ard-number-input > ng-template[ard-placeholder-tmp]", ngImport: i0 }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdNumberInputPlaceholderTemplateDirective, decorators: [{
|
|
11
|
+
type: Directive,
|
|
12
|
+
args: [{ selector: 'ard-number-input > ng-template[ard-placeholder-tmp]' }]
|
|
13
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFHdkQsTUFBTSxPQUFPLDBDQUEwQztJQUNuRCxZQUFtQixRQUFnQztRQUFoQyxhQUFRLEdBQVIsUUFBUSxDQUF3QjtJQUFHLENBQUM7OEdBRDlDLDBDQUEwQztrR0FBMUMsMENBQTBDOzsyRkFBMUMsMENBQTBDO2tCQUR0RCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHFEQUFxRCxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdhcmQtbnVtYmVyLWlucHV0ID4gbmctdGVtcGxhdGVbYXJkLXBsYWNlaG9sZGVyLXRtcF0nIH0pXG5leHBvcnQgY2xhc3MgQXJkTnVtYmVySW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVuZGVmaW5lZD4pIHt9XG59XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { ArdiumHoldEventModule } from '@ardium-ui/devkit';
|
|
4
|
+
import { ArdiumButtonModule } from '../../buttons/button/button.module';
|
|
5
|
+
import { ArdiumNumberInputComponent } from './number-input.component';
|
|
6
|
+
import { ArdNumberInputPlaceholderTemplateDirective } from './number-input.directives';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class ArdiumNumberInputModule {
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumNumberInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: ArdiumNumberInputModule, declarations: [ArdiumNumberInputComponent, ArdNumberInputPlaceholderTemplateDirective], imports: [CommonModule, ArdiumHoldEventModule, ArdiumButtonModule], exports: [ArdiumNumberInputComponent, ArdNumberInputPlaceholderTemplateDirective] }); }
|
|
11
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumNumberInputModule, imports: [CommonModule, ArdiumHoldEventModule, ArdiumButtonModule] }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumNumberInputModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
declarations: [ArdiumNumberInputComponent, ArdNumberInputPlaceholderTemplateDirective],
|
|
17
|
+
imports: [CommonModule, ArdiumHoldEventModule, ArdiumButtonModule],
|
|
18
|
+
exports: [ArdiumNumberInputComponent, ArdNumberInputPlaceholderTemplateDirective],
|
|
19
|
+
}]
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW5wdXRzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSwwQ0FBMEMsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU92RixNQUFNLE9BQU8sdUJBQXVCOzhHQUF2Qix1QkFBdUI7K0dBQXZCLHVCQUF1QixpQkFKakIsMEJBQTBCLEVBQUUsMENBQTBDLGFBQzNFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsYUFDdkQsMEJBQTBCLEVBQUUsMENBQTBDOytHQUV2RSx1QkFBdUIsWUFIdEIsWUFBWSxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQjs7MkZBR3hELHVCQUF1QjtrQkFMbkMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSwwQ0FBMEMsQ0FBQztvQkFDdEYsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixDQUFDO29CQUNsRSxPQUFPLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSwwQ0FBMEMsQ0FBQztpQkFDcEYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFyZGl1bUhvbGRFdmVudE1vZHVsZSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcbmltcG9ydCB7IEFyZGl1bUJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uLy4uL2J1dHRvbnMvYnV0dG9uL2J1dHRvbi5tb2R1bGUnO1xuaW1wb3J0IHsgQXJkaXVtTnVtYmVySW5wdXRDb21wb25lbnQgfSBmcm9tICcuL251bWJlci1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXJkTnVtYmVySW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9udW1iZXItaW5wdXQuZGlyZWN0aXZlcyc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbQXJkaXVtTnVtYmVySW5wdXRDb21wb25lbnQsIEFyZE51bWJlcklucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZV0sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQXJkaXVtSG9sZEV2ZW50TW9kdWxlLCBBcmRpdW1CdXR0b25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtBcmRpdW1OdW1iZXJJbnB1dENvbXBvbmVudCwgQXJkTnVtYmVySW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgQXJkaXVtTnVtYmVySW5wdXRNb2R1bGUge31cbiJdfQ==
|