@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,15 @@
|
|
|
1
|
+
export const DigitInputShape = {
|
|
2
|
+
Square: 'square',
|
|
3
|
+
Rectangle: 'rectangle',
|
|
4
|
+
};
|
|
5
|
+
export const TransformType = {
|
|
6
|
+
Uppercase: 'uppercase',
|
|
7
|
+
Lowercase: 'lowercase',
|
|
8
|
+
};
|
|
9
|
+
export const DigitInputPrimitiveOption = {
|
|
10
|
+
Number: 'number',
|
|
11
|
+
Letter: 'letter',
|
|
12
|
+
Alphanumeric: 'alphanumeric',
|
|
13
|
+
Special: 'special',
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9kaWdpdC1pbnB1dC9kaWdpdC1pbnB1dC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDM0IsTUFBTSxFQUFFLFFBQVE7SUFDaEIsU0FBUyxFQUFFLFdBQVc7Q0FDaEIsQ0FBQztBQUdYLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUN6QixTQUFTLEVBQUUsV0FBVztJQUN0QixTQUFTLEVBQUUsV0FBVztDQUNoQixDQUFDO0FBR1gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUc7SUFDckMsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsWUFBWSxFQUFFLGNBQWM7SUFDNUIsT0FBTyxFQUFFLFNBQVM7Q0FDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERpZ2l0SW5wdXRTaGFwZSA9IHtcbiAgICBTcXVhcmU6ICdzcXVhcmUnLFxuICAgIFJlY3RhbmdsZTogJ3JlY3RhbmdsZScsXG59IGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgRGlnaXRJbnB1dFNoYXBlID0gKHR5cGVvZiBEaWdpdElucHV0U2hhcGUpW2tleW9mIHR5cGVvZiBEaWdpdElucHV0U2hhcGVdO1xuXG5leHBvcnQgY29uc3QgVHJhbnNmb3JtVHlwZSA9IHtcbiAgICBVcHBlcmNhc2U6ICd1cHBlcmNhc2UnLFxuICAgIExvd2VyY2FzZTogJ2xvd2VyY2FzZScsXG59IGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgVHJhbnNmb3JtVHlwZSA9ICh0eXBlb2YgVHJhbnNmb3JtVHlwZSlba2V5b2YgdHlwZW9mIFRyYW5zZm9ybVR5cGVdO1xuXG5leHBvcnQgY29uc3QgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbiA9IHtcbiAgICBOdW1iZXI6ICdudW1iZXInLFxuICAgIExldHRlcjogJ2xldHRlcicsXG4gICAgQWxwaGFudW1lcmljOiAnYWxwaGFudW1lcmljJyxcbiAgICBTcGVjaWFsOiAnc3BlY2lhbCcsXG59IGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbiA9ICh0eXBlb2YgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbilba2V5b2YgdHlwZW9mIERpZ2l0SW5wdXRQcmltaXRpdmVPcHRpb25dO1xuXG5leHBvcnQgdHlwZSBEaWdpdElucHV0QWNjZXB0T2JqZWN0ID0ge1xuICAgIGFjY2VwdDogc3RyaW5nIHwgUmVnRXhwIHwgKChjaGFyOiBzdHJpbmcsIGNoYXJzQmVmb3JlOiBzdHJpbmcpID0+IGJvb2xlYW4pO1xuICAgIHRyYW5zZm9ybT86IFRyYW5zZm9ybVR5cGUgfCBudWxsO1xuICAgIHJlYWRvbmx5PzogYm9vbGVhbjtcbn07XG5leHBvcnQgdHlwZSBEaWdpdElucHV0U3RhdGljT2JqZWN0ID0geyBzdGF0aWM6IHN0cmluZyB9O1xuXG5leHBvcnQgdHlwZSBEaWdpdElucHV0T3B0aW9uID0gRGlnaXRJbnB1dEFjY2VwdE9iamVjdCB8IERpZ2l0SW5wdXRTdGF0aWNPYmplY3Q7XG5cbmV4cG9ydCB0eXBlIERpZ2l0SW5wdXRDb25maWcgPSAoRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbiB8IERpZ2l0SW5wdXRPcHRpb24pW10gfCBzdHJpbmcgfCBudW1iZXI7XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const DigitInputConfigDataType = {
|
|
2
|
+
Input: 'input',
|
|
3
|
+
Static: 'static',
|
|
4
|
+
};
|
|
5
|
+
export function _sanitizeRegExpString(str) {
|
|
6
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9kaWdpdC1pbnB1dC9kaWdpdC1pbnB1dC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUNwQyxLQUFLLEVBQUUsT0FBTztJQUNkLE1BQU0sRUFBRSxRQUFRO0NBQ1YsQ0FBQztBQUdYLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxHQUFXO0lBQzdDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIERpZ2l0SW5wdXRDb25maWdEYXRhID0ge1xuICAgIHR5cGU6IERpZ2l0SW5wdXRDb25maWdEYXRhVHlwZTtcbiAgICBjaGFyPzogc3RyaW5nO1xuICAgIGluZGV4PzogbnVtYmVyO1xuICAgIHJlYWRvbmx5PzogYm9vbGVhbjtcbn07XG5leHBvcnQgaW50ZXJmYWNlIERpZ2l0SW5wdXRNb2RlbEhvc3Qge1xuICAgIGlucHV0czogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+O1xuICAgIGNvbmZpZ0FycmF5RGF0YTogRGlnaXRJbnB1dENvbmZpZ0RhdGFbXTtcbn1cblxuZXhwb3J0IGNvbnN0IERpZ2l0SW5wdXRDb25maWdEYXRhVHlwZSA9IHtcbiAgICBJbnB1dDogJ2lucHV0JyxcbiAgICBTdGF0aWM6ICdzdGF0aWMnLFxufSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIERpZ2l0SW5wdXRDb25maWdEYXRhVHlwZSA9ICh0eXBlb2YgRGlnaXRJbnB1dENvbmZpZ0RhdGFUeXBlKVtrZXlvZiB0eXBlb2YgRGlnaXRJbnB1dENvbmZpZ0RhdGFUeXBlXTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9zYW5pdGl6ZVJlZ0V4cFN0cmluZyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpO1xufVxuIl19
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, forwardRef, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { coerceBooleanProperty, coerceNumberProperty } from '@ardium-ui/devkit';
|
|
4
|
+
import { FormElementAppearance, FormElementVariant } from '../../types/theming.types';
|
|
5
|
+
import { _NgModelComponentBase } from '../../_internal/ngmodel-component';
|
|
6
|
+
import { HexInputModel } from '../hex-input.model';
|
|
7
|
+
import { CaseTransformerType } from '../input-types';
|
|
8
|
+
import { ArdHexInputPlaceholderTemplateDirective, ArdHexInputPrefixTemplateDirective, ArdHexInputSuffixTemplateDirective } from './hex-input.directives';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/common";
|
|
11
|
+
import * as i2 from "../../form-field-frame/form-field-frame.component";
|
|
12
|
+
import * as i3 from "../../_internal/clear-button/clear-button.component";
|
|
13
|
+
export class ArdiumHexInputComponent extends _NgModelComponentBase {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.DEFAULTS = {
|
|
17
|
+
clearButtonTitle: 'Clear',
|
|
18
|
+
};
|
|
19
|
+
//! placeholder
|
|
20
|
+
this.placeholder = '';
|
|
21
|
+
//! appearance
|
|
22
|
+
//all handled in ard-form-field-frame component
|
|
23
|
+
this.appearance = FormElementAppearance.Outlined;
|
|
24
|
+
this.variant = FormElementVariant.Rounded;
|
|
25
|
+
this._compact = false;
|
|
26
|
+
//! settings
|
|
27
|
+
this.case = CaseTransformerType.NoChange;
|
|
28
|
+
this._maxDigits = undefined;
|
|
29
|
+
this._hideHash = false;
|
|
30
|
+
//! clear button
|
|
31
|
+
this._clearable = true;
|
|
32
|
+
this.clearButtonTitle = this.DEFAULTS.clearButtonTitle;
|
|
33
|
+
//! other inputs
|
|
34
|
+
this.inputAttrs = {};
|
|
35
|
+
//! value two-way binding
|
|
36
|
+
this._valueBeforeInit = null;
|
|
37
|
+
this.valueChange = new EventEmitter();
|
|
38
|
+
//* event emitters
|
|
39
|
+
this.inputEvent = new EventEmitter();
|
|
40
|
+
this.changeEvent = new EventEmitter();
|
|
41
|
+
this.clearEvent = new EventEmitter();
|
|
42
|
+
}
|
|
43
|
+
ngAfterViewInit() {
|
|
44
|
+
this.inputModel = new HexInputModel(this.textInputEl.nativeElement, this);
|
|
45
|
+
this._setInputAttributes();
|
|
46
|
+
//set the value
|
|
47
|
+
if (this._valueBeforeInit) {
|
|
48
|
+
this.writeValue(this._valueBeforeInit);
|
|
49
|
+
delete this._valueBeforeInit;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
get shouldDisplayPlaceholder() {
|
|
53
|
+
return Boolean(this.placeholder) && !this.inputModel.stringValue;
|
|
54
|
+
}
|
|
55
|
+
get compact() {
|
|
56
|
+
return this._compact;
|
|
57
|
+
}
|
|
58
|
+
set compact(v) {
|
|
59
|
+
this._compact = coerceBooleanProperty(v);
|
|
60
|
+
}
|
|
61
|
+
get maxDigits() {
|
|
62
|
+
return this._maxDigits;
|
|
63
|
+
}
|
|
64
|
+
set maxDigits(v) {
|
|
65
|
+
this._maxDigits = coerceNumberProperty(v, undefined);
|
|
66
|
+
}
|
|
67
|
+
get hideHash() {
|
|
68
|
+
return this._hideHash;
|
|
69
|
+
}
|
|
70
|
+
set hideHash(v) {
|
|
71
|
+
this._hideHash = coerceBooleanProperty(v);
|
|
72
|
+
}
|
|
73
|
+
get showHash() {
|
|
74
|
+
return !this.hideHash;
|
|
75
|
+
}
|
|
76
|
+
get clearable() {
|
|
77
|
+
return this._clearable;
|
|
78
|
+
}
|
|
79
|
+
set clearable(v) {
|
|
80
|
+
this._clearable = coerceBooleanProperty(v);
|
|
81
|
+
}
|
|
82
|
+
get shouldShowClearButton() {
|
|
83
|
+
return this._clearable && !this.disabled && Boolean(this.inputModel?.value);
|
|
84
|
+
}
|
|
85
|
+
onClearButtonClick(event) {
|
|
86
|
+
event.stopPropagation();
|
|
87
|
+
this.inputModel.clear();
|
|
88
|
+
this._emitChange();
|
|
89
|
+
this._emitInput();
|
|
90
|
+
this.clearEvent.emit();
|
|
91
|
+
this.focus();
|
|
92
|
+
}
|
|
93
|
+
//! control value accessor's write value implementation
|
|
94
|
+
writeValue(v) {
|
|
95
|
+
if (!this.inputModel) {
|
|
96
|
+
this._valueBeforeInit = v;
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
this.inputModel.writeValue(v);
|
|
100
|
+
}
|
|
101
|
+
set value(v) {
|
|
102
|
+
if (!this.inputModel) {
|
|
103
|
+
this._valueBeforeInit = v;
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
this.writeValue(v);
|
|
107
|
+
}
|
|
108
|
+
get value() {
|
|
109
|
+
return this.inputModel?.hashSignValue ?? '';
|
|
110
|
+
}
|
|
111
|
+
//! event handlers
|
|
112
|
+
onInput(newVal) {
|
|
113
|
+
let valueHasChanged = this.inputModel.writeValue(newVal);
|
|
114
|
+
if (!valueHasChanged)
|
|
115
|
+
return;
|
|
116
|
+
this._emitInput();
|
|
117
|
+
}
|
|
118
|
+
_emitInput() {
|
|
119
|
+
this.inputEvent.emit(this.inputModel.hashSignValue);
|
|
120
|
+
this._emitChange();
|
|
121
|
+
}
|
|
122
|
+
//change
|
|
123
|
+
onChange(event) {
|
|
124
|
+
event.stopPropagation();
|
|
125
|
+
this._emitChange();
|
|
126
|
+
}
|
|
127
|
+
_emitChange() {
|
|
128
|
+
const v = this.inputModel.hashSignValue;
|
|
129
|
+
this._onChangeRegistered?.(v);
|
|
130
|
+
this.changeEvent.emit(v);
|
|
131
|
+
this.valueChange.emit(v);
|
|
132
|
+
}
|
|
133
|
+
//smart focus
|
|
134
|
+
onMouseup(event) {
|
|
135
|
+
const selection = window.getSelection();
|
|
136
|
+
if (selection && selection.type === 'Range')
|
|
137
|
+
return;
|
|
138
|
+
this.focus();
|
|
139
|
+
}
|
|
140
|
+
onCopy(event) {
|
|
141
|
+
if (this.value &&
|
|
142
|
+
//does the selection cover the entire input
|
|
143
|
+
((this.textInputEl.nativeElement.selectionStart == 0 &&
|
|
144
|
+
this.textInputEl.nativeElement.selectionEnd == this.textInputEl.nativeElement.value.length) ||
|
|
145
|
+
//or is zero-wide
|
|
146
|
+
this.textInputEl.nativeElement.selectionStart == this.textInputEl.nativeElement.selectionEnd)) {
|
|
147
|
+
event.clipboardData?.setData('text/plain', this.value);
|
|
148
|
+
event.preventDefault();
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
//! helpers
|
|
152
|
+
_setInputAttributes() {
|
|
153
|
+
const input = this.textInputEl.nativeElement;
|
|
154
|
+
const attributes = {
|
|
155
|
+
type: 'text',
|
|
156
|
+
autocorrect: 'off',
|
|
157
|
+
autocapitalize: 'off',
|
|
158
|
+
autocomplete: 'off',
|
|
159
|
+
tabindex: String(this.tabIndex),
|
|
160
|
+
...this.inputAttrs,
|
|
161
|
+
};
|
|
162
|
+
for (const key of Object.keys(attributes)) {
|
|
163
|
+
input.setAttribute(key, String(attributes[key]));
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumHexInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
167
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: ArdiumHexInputComponent, selector: "ard-hex-input", inputs: { inputId: "inputId", placeholder: "placeholder", appearance: "appearance", variant: "variant", compact: "compact", case: "case", maxDigits: "maxDigits", hideHash: "hideHash", clearable: "clearable", clearButtonTitle: "clearButtonTitle", inputAttrs: "inputAttrs", value: "value" }, outputs: { valueChange: "valueChange", inputEvent: "input", changeEvent: "change", clearEvent: "clear" }, providers: [
|
|
168
|
+
{
|
|
169
|
+
provide: NG_VALUE_ACCESSOR,
|
|
170
|
+
useExisting: forwardRef(() => ArdiumHexInputComponent),
|
|
171
|
+
multi: true,
|
|
172
|
+
},
|
|
173
|
+
], queries: [{ propertyName: "prefixTemplate", first: true, predicate: ArdHexInputPrefixTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "suffixTemplate", first: true, predicate: ArdHexInputSuffixTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "placeholderTemplate", first: true, predicate: ArdHexInputPlaceholderTemplateDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "textInputEl", first: true, predicate: ["textInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ard-form-field-frame\r\n [appearance]=\"appearance\"\r\n [variant]=\"variant\"\r\n [compact]=\"compact\"\r\n [isFocused]=\"isFocused\"\r\n [prefixTemplate]=\"prefixTemplate\"\r\n [suffixTemplate]=\"suffixTemplate\"\r\n>\r\n <div class=\"ard-hex-input\"\r\n [class.ard-has-value]=\"value\"\r\n (mouseup)=\"onMouseup($event)\"\r\n >\r\n <div class=\"ard-hash-container\" *ngIf=\"showHash\">#</div>\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)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (change)=\"onChange($event)\"\r\n (mouseup)=\"$event.stopPropagation()\"\r\n (copy)=\"onCopy($event)\"\r\n >\r\n </div>\r\n\r\n <ard-_clear-button\r\n *ngIf=\"shouldShowClearButton\"\r\n [title]=\"clearButtonTitle\"\r\n (click)=\"onClearButtonClick($event)\"\r\n ></ard-_clear-button>\r\n </div>\r\n</ard-form-field-frame>", styles: [".ard-input-container{position:relative}.ard-placeholder{position:absolute;left:0;right:0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ArdiumFormFieldFrameComponent, selector: "ard-form-field-frame", inputs: ["isFocused", "appearance", "variant", "compact", "prefixTemplate", "suffixTemplate"] }, { kind: "component", type: i3._ClearButtonComponent, selector: "ard-_clear-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
174
|
+
}
|
|
175
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumHexInputComponent, decorators: [{
|
|
176
|
+
type: Component,
|
|
177
|
+
args: [{ selector: 'ard-hex-input', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
178
|
+
{
|
|
179
|
+
provide: NG_VALUE_ACCESSOR,
|
|
180
|
+
useExisting: forwardRef(() => ArdiumHexInputComponent),
|
|
181
|
+
multi: true,
|
|
182
|
+
},
|
|
183
|
+
], template: "<ard-form-field-frame\r\n [appearance]=\"appearance\"\r\n [variant]=\"variant\"\r\n [compact]=\"compact\"\r\n [isFocused]=\"isFocused\"\r\n [prefixTemplate]=\"prefixTemplate\"\r\n [suffixTemplate]=\"suffixTemplate\"\r\n>\r\n <div class=\"ard-hex-input\"\r\n [class.ard-has-value]=\"value\"\r\n (mouseup)=\"onMouseup($event)\"\r\n >\r\n <div class=\"ard-hash-container\" *ngIf=\"showHash\">#</div>\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)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (change)=\"onChange($event)\"\r\n (mouseup)=\"$event.stopPropagation()\"\r\n (copy)=\"onCopy($event)\"\r\n >\r\n </div>\r\n\r\n <ard-_clear-button\r\n *ngIf=\"shouldShowClearButton\"\r\n [title]=\"clearButtonTitle\"\r\n (click)=\"onClearButtonClick($event)\"\r\n ></ard-_clear-button>\r\n </div>\r\n</ard-form-field-frame>", styles: [".ard-input-container{position:relative}.ard-placeholder{position:absolute;left:0;right:0}\n"] }]
|
|
184
|
+
}], propDecorators: { textInputEl: [{
|
|
185
|
+
type: ViewChild,
|
|
186
|
+
args: ['textInput', { static: true }]
|
|
187
|
+
}], inputId: [{
|
|
188
|
+
type: Input
|
|
189
|
+
}], prefixTemplate: [{
|
|
190
|
+
type: ContentChild,
|
|
191
|
+
args: [ArdHexInputPrefixTemplateDirective, { read: TemplateRef }]
|
|
192
|
+
}], suffixTemplate: [{
|
|
193
|
+
type: ContentChild,
|
|
194
|
+
args: [ArdHexInputSuffixTemplateDirective, { read: TemplateRef }]
|
|
195
|
+
}], placeholder: [{
|
|
196
|
+
type: Input
|
|
197
|
+
}], placeholderTemplate: [{
|
|
198
|
+
type: ContentChild,
|
|
199
|
+
args: [ArdHexInputPlaceholderTemplateDirective, {
|
|
200
|
+
read: TemplateRef,
|
|
201
|
+
}]
|
|
202
|
+
}], appearance: [{
|
|
203
|
+
type: Input
|
|
204
|
+
}], variant: [{
|
|
205
|
+
type: Input
|
|
206
|
+
}], compact: [{
|
|
207
|
+
type: Input
|
|
208
|
+
}], case: [{
|
|
209
|
+
type: Input
|
|
210
|
+
}], maxDigits: [{
|
|
211
|
+
type: Input
|
|
212
|
+
}], hideHash: [{
|
|
213
|
+
type: Input
|
|
214
|
+
}], clearable: [{
|
|
215
|
+
type: Input
|
|
216
|
+
}], clearButtonTitle: [{
|
|
217
|
+
type: Input
|
|
218
|
+
}], inputAttrs: [{
|
|
219
|
+
type: Input
|
|
220
|
+
}], value: [{
|
|
221
|
+
type: Input
|
|
222
|
+
}], valueChange: [{
|
|
223
|
+
type: Output
|
|
224
|
+
}], inputEvent: [{
|
|
225
|
+
type: Output,
|
|
226
|
+
args: ['input']
|
|
227
|
+
}], changeEvent: [{
|
|
228
|
+
type: Output,
|
|
229
|
+
args: ['change']
|
|
230
|
+
}], clearEvent: [{
|
|
231
|
+
type: Output,
|
|
232
|
+
args: ['clear']
|
|
233
|
+
}] } });
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGV4LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW5wdXRzL2hleC1pbnB1dC9oZXgtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaGV4LWlucHV0L2hleC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBRVosWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFxQixNQUFNLG9CQUFvQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxrQ0FBa0MsRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztBQWdCekosTUFBTSxPQUFPLHVCQUF3QixTQUFRLHFCQUFxQjtJQWRsRTs7UUE2QmEsYUFBUSxHQUFHO1lBQ2hCLGdCQUFnQixFQUFFLE9BQU87U0FDNUIsQ0FBQztRQVVGLGVBQWU7UUFDTixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQVdsQyxjQUFj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dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFpQi9CLE9BQU87c0JBQWYsS0FBSztnQkFJTixjQUFjO3NCQURiLFlBQVk7dUJBQUMsa0NBQWtDLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUd2RSxjQUFjO3NCQURiLFlBQVk7dUJBQUMsa0NBQWtDLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUk5RCxXQUFXO3NCQUFuQixLQUFLO2dCQUtOLG1CQUFtQjtzQkFIbEIsWUFBWTt1QkFBQyx1Q0FBdUMsRUFBRTt3QkFDbkQsSUFBSSxFQUFFLFdBQVc7cUJBQ3BCO2dCQVNRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUlGLE9BQU87c0JBRFYsS0FBSztnQkFTRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUYsU0FBUztzQkFEWixLQUFLO2dCQVVGLFFBQVE7c0JBRFgsS0FBSztnQkFlRixTQUFTO3NCQURaLEtBQUs7Z0JBUUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQWVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBY0YsS0FBSztzQkFEUixLQUFLO2dCQVdJLFdBQVc7c0JBQXBCLE1BQU07Z0JBR1UsVUFBVTtzQkFBMUIsTUFBTTt1QkFBQyxPQUFPO2dCQUNHLFdBQVc7c0JBQTVCLE1BQU07dUJBQUMsUUFBUTtnQkFDQyxVQUFVO3NCQUExQixNQUFNO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcbmltcG9ydCB7IEZvcm1FbGVtZW50QXBwZWFyYW5jZSwgRm9ybUVsZW1lbnRWYXJpYW50IH0gZnJvbSAnLi4vLi4vdHlwZXMvdGhlbWluZy50eXBlcyc7XG5pbXBvcnQgeyBfTmdNb2RlbENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi9faW50ZXJuYWwvbmdtb2RlbC1jb21wb25lbnQnO1xuaW1wb3J0IHsgSGV4SW5wdXRNb2RlbCwgSGV4SW5wdXRNb2RlbEhvc3QgfSBmcm9tICcuLi9oZXgtaW5wdXQubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZVRyYW5zZm9ybWVyVHlwZSB9IGZyb20gJy4uL2lucHV0LXR5cGVzJztcbmltcG9ydCB7IEFyZEhleElucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSwgQXJkSGV4SW5wdXRQcmVmaXhUZW1wbGF0ZURpcmVjdGl2ZSwgQXJkSGV4SW5wdXRTdWZmaXhUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vaGV4LWlucHV0LmRpcmVjdGl2ZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FyZC1oZXgtaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9oZXgtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2hleC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXJkaXVtSGV4SW5wdXRDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXJkaXVtSGV4SW5wdXRDb21wb25lbnQgZXh0ZW5kcyBfTmdNb2RlbENvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgSGV4SW5wdXRNb2RlbEhvc3QsIEFmdGVyVmlld0luaXQge1xuICAgIC8vISBpbnB1dCB2aWV3XG4gICAgQFZpZXdDaGlsZCgndGV4dElucHV0JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICB0ZXh0SW5wdXRFbCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gICAgcHJvdGVjdGVkIGlucHV0TW9kZWwhOiBIZXhJbnB1dE1vZGVsO1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dE1vZGVsID0gbmV3IEhleElucHV0TW9kZWwodGhpcy50ZXh0SW5wdXRFbC5uYXRpdmVFbGVtZW50LCB0aGlzKTtcbiAgICAgICAgdGhpcy5fc2V0SW5wdXRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIC8vc2V0IHRoZSB2YWx1ZVxuICAgICAgICBpZiAodGhpcy5fdmFsdWVCZWZvcmVJbml0KSB7XG4gICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5fdmFsdWVCZWZvcmVJbml0KTtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl92YWx1ZUJlZm9yZUluaXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWFkb25seSBERUZBVUxUUyA9IHtcbiAgICAgICAgY2xlYXJCdXR0b25UaXRsZTogJ0NsZWFyJyxcbiAgICB9O1xuXG4gICAgQElucHV0KCkgaW5wdXRJZD86IHN0cmluZztcblxuICAgIC8vISBwcmVmaXggJiBzdWZmaXhcbiAgICBAQ29udGVudENoaWxkKEFyZEhleElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBwcmVmaXhUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQENvbnRlbnRDaGlsZChBcmRIZXhJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgc3VmZml4VGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLy8hIHBsYWNlaG9sZGVyXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG4gICAgQENvbnRlbnRDaGlsZChBcmRIZXhJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUsIHtcbiAgICAgICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgfSlcbiAgICBwbGFjZWhvbGRlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGdldCBzaG91bGREaXNwbGF5UGxhY2Vob2xkZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKHRoaXMucGxhY2Vob2xkZXIpICYmICF0aGlzLmlucHV0TW9kZWwuc3RyaW5nVmFsdWU7XG4gICAgfVxuXG4gICAgLy8hIGFwcGVhcmFuY2VcbiAgICAvL2FsbCBoYW5kbGVkIGluIGFyZC1mb3JtLWZpZWxkLWZyYW1lIGNvbXBvbmVudFxuICAgIEBJbnB1dCgpIGFwcGVhcmFuY2U6IEZvcm1FbGVtZW50QXBwZWFyYW5jZSA9IEZvcm1FbGVtZW50QXBwZWFyYW5jZS5PdXRsaW5lZDtcbiAgICBASW5wdXQoKSB2YXJpYW50OiBGb3JtRWxlbWVudFZhcmlhbnQgPSBGb3JtRWxlbWVudFZhcmlhbnQuUm91bmRlZDtcblxuICAgIHByaXZhdGUgX2NvbXBhY3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBjb21wYWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29tcGFjdDtcbiAgICB9XG4gICAgc2V0IGNvbXBhY3QodjogYW55KSB7XG4gICAgICAgIHRoaXMuX2NvbXBhY3QgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodik7XG4gICAgfVxuXG4gICAgLy8hIHNldHRpbmdzXG4gICAgQElucHV0KCkgY2FzZTogQ2FzZVRyYW5zZm9ybWVyVHlwZSA9IENhc2VUcmFuc2Zvcm1lclR5cGUuTm9DaGFuZ2U7XG5cbiAgICBwcml2YXRlIF9tYXhEaWdpdHM6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKVxuICAgIGdldCBtYXhEaWdpdHMoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heERpZ2l0cztcbiAgICB9XG4gICAgc2V0IG1heERpZ2l0cyh2OiBhbnkpIHtcbiAgICAgICAgdGhpcy5fbWF4RGlnaXRzID0gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgdW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oaWRlSGFzaDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhpZGVIYXNoKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZUhhc2g7XG4gICAgfVxuICAgIHNldCBoaWRlSGFzaCh2OiBhbnkpIHtcbiAgICAgICAgdGhpcy5faGlkZUhhc2ggPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodik7XG4gICAgfVxuXG4gICAgZ2V0IHNob3dIYXNoKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaGlkZUhhc2g7XG4gICAgfVxuXG4gICAgLy8hIGNsZWFyIGJ1dHRvblxuICAgIHByaXZhdGUgX2NsZWFyYWJsZTogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgY2xlYXJhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xlYXJhYmxlO1xuICAgIH1cbiAgICBzZXQgY2xlYXJhYmxlKHY6IGFueSkge1xuICAgICAgICB0aGlzLl9jbGVhcmFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodik7XG4gICAgfVxuXG4gICAgQElucHV0KCkgY2xlYXJCdXR0b25UaXRsZTogc3RyaW5nID0gdGhpcy5ERUZBVUxUUy5jbGVhckJ1dHRvblRpdGxlO1xuXG4gICAgZ2V0IHNob3VsZFNob3dDbGVhckJ1dHRvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NsZWFyYWJsZSAmJiAhdGhpcy5kaXNhYmxlZCAmJiBCb29sZWFuKHRoaXMuaW5wdXRNb2RlbD8udmFsdWUpO1xuICAgIH1cbiAgICBvbkNsZWFyQnV0dG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuaW5wdXRNb2RlbC5jbGVhcigpO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XG4gICAgICAgIHRoaXMuX2VtaXRJbnB1dCgpO1xuICAgICAgICB0aGlzLmNsZWFyRXZlbnQuZW1pdCgpO1xuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLy8hIG90aGVyIGlucHV0c1xuICAgIEBJbnB1dCgpIGlucHV0QXR0cnM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcblxuICAgIC8vISBjb250cm9sIHZhbHVlIGFjY2Vzc29yJ3Mgd3JpdGUgdmFsdWUgaW1wbGVtZW50YXRpb25cbiAgICB3cml0ZVZhbHVlKHY6IGFueSkge1xuICAgICAgICBpZiAoIXRoaXMuaW5wdXRNb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWVCZWZvcmVJbml0ID0gdjtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlucHV0TW9kZWwud3JpdGVWYWx1ZSh2KTtcbiAgICB9XG5cbiAgICAvLyEgdmFsdWUgdHdvLXdheSBiaW5kaW5nXG4gICAgcHJvdGVjdGVkIF92YWx1ZUJlZm9yZUluaXQ/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2OiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIGlmICghdGhpcy5pbnB1dE1vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZUJlZm9yZUluaXQgPSB2O1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZSh2KTtcbiAgICB9XG4gICAgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dE1vZGVsPy5oYXNoU2lnblZhbHVlID8/ICcnO1xuICAgIH1cbiAgICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8vKiBldmVudCBlbWl0dGVyc1xuICAgIEBPdXRwdXQoJ2lucHV0JykgaW5wdXRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIEBPdXRwdXQoJ2NoYW5nZScpIGNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgnY2xlYXInKSBjbGVhckV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvLyEgZXZlbnQgaGFuZGxlcnNcbiAgICBvbklucHV0KG5ld1ZhbDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGxldCB2YWx1ZUhhc0NoYW5nZWQgPSB0aGlzLmlucHV0TW9kZWwud3JpdGVWYWx1ZShuZXdWYWwpO1xuICAgICAgICBpZiAoIXZhbHVlSGFzQ2hhbmdlZCkgcmV0dXJuO1xuICAgICAgICB0aGlzLl9lbWl0SW5wdXQoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9lbWl0SW5wdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRFdmVudC5lbWl0KHRoaXMuaW5wdXRNb2RlbC5oYXNoU2lnblZhbHVlKTtcbiAgICAgICAgdGhpcy5fZW1pdENoYW5nZSgpO1xuICAgIH1cblxuICAgIC8vY2hhbmdlXG4gICAgb25DaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZW1pdENoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuaW5wdXRNb2RlbC5oYXNoU2lnblZhbHVlO1xuICAgICAgICB0aGlzLl9vbkNoYW5nZVJlZ2lzdGVyZWQ/Lih2KTtcbiAgICAgICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KHYpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XG4gICAgfVxuXG4gICAgLy9zbWFydCBmb2N1c1xuICAgIG9uTW91c2V1cChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIGlmIChzZWxlY3Rpb24gJiYgc2VsZWN0aW9uLnR5cGUgPT09ICdSYW5nZScpIHJldHVybjtcblxuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25Db3B5KGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnZhbHVlICYmXG4gICAgICAgICAgICAvL2RvZXMgdGhlIHNlbGVjdGlvbiBjb3ZlciB0aGUgZW50aXJlIGlucHV0XG4gICAgICAgICAgICAoKHRoaXMudGV4dElucHV0RWwubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PSAwICYmXG4gICAgICAgICAgICAgICAgdGhpcy50ZXh0SW5wdXRFbC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCA9PSB0aGlzLnRleHRJbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoKSB8fFxuICAgICAgICAgICAgICAgIC8vb3IgaXMgemVyby13aWRlXG4gICAgICAgICAgICAgICAgdGhpcy50ZXh0SW5wdXRFbC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09IHRoaXMudGV4dElucHV0RWwubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQpXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQuY2xpcGJvYXJkRGF0YT8uc2V0RGF0YSgndGV4dC9wbGFpbicsIHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vISBoZWxwZXJzXG4gICAgcHJvdGVjdGVkIF9zZXRJbnB1dEF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy50ZXh0SW5wdXRFbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgYXV0b2NvcnJlY3Q6ICdvZmYnLFxuICAgICAgICAgICAgYXV0b2NhcGl0YWxpemU6ICdvZmYnLFxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlOiAnb2ZmJyxcbiAgICAgICAgICAgIHRhYmluZGV4OiBTdHJpbmcodGhpcy50YWJJbmRleCksXG4gICAgICAgICAgICAuLi50aGlzLmlucHV0QXR0cnMsXG4gICAgICAgIH07XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYXR0cmlidXRlcykpIHtcbiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZShrZXksIFN0cmluZyhhdHRyaWJ1dGVzW2tleV0pKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxhcmQtZm9ybS1maWVsZC1mcmFtZVxyXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXHJcbiAgICBbdmFyaWFudF09XCJ2YXJpYW50XCJcclxuICAgIFtjb21wYWN0XT1cImNvbXBhY3RcIlxyXG4gICAgW2lzRm9jdXNlZF09XCJpc0ZvY3VzZWRcIlxyXG4gICAgW3ByZWZpeFRlbXBsYXRlXT1cInByZWZpeFRlbXBsYXRlXCJcclxuICAgIFtzdWZmaXhUZW1wbGF0ZV09XCJzdWZmaXhUZW1wbGF0ZVwiXHJcbj5cclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtaGV4LWlucHV0XCJcclxuICAgICAgICBbY2xhc3MuYXJkLWhhcy12YWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgKG1vdXNldXApPVwib25Nb3VzZXVwKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtaGFzaC1jb250YWluZXJcIiAqbmdJZj1cInNob3dIYXNoXCI+IzwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtaW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG91bGREaXNwbGF5UGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFBsYWNlaG9sZGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1wbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJwbGFjZWhvbGRlclRlbXBsYXRlIHx8IGRlZmF1bHRQbGFjZWhvbGRlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8aW5wdXQgI3RleHRJbnB1dFxyXG4gICAgICAgICAgICAgICAgI2ZvY3VzYWJsZUVsZW1lbnRcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImlucHV0SWRcIlxyXG4gICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25JbnB1dCh0ZXh0SW5wdXQudmFsdWUpXCJcclxuICAgICAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChtb3VzZXVwKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAoY29weSk9XCJvbkNvcHkoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGFyZC1fY2xlYXItYnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvdWxkU2hvd0NsZWFyQnV0dG9uXCJcclxuICAgICAgICAgICAgW3RpdGxlXT1cImNsZWFyQnV0dG9uVGl0bGVcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGVhckJ1dHRvbkNsaWNrKCRldmVudClcIlxyXG4gICAgICAgID48L2FyZC1fY2xlYXItYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvYXJkLWZvcm0tZmllbGQtZnJhbWU+Il19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ArdHexInputPlaceholderTemplateDirective {
|
|
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: ArdHexInputPlaceholderTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: ArdHexInputPlaceholderTemplateDirective, selector: "ard-hex-input > ng-template[ard-placeholder-tmp]", ngImport: i0 }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdHexInputPlaceholderTemplateDirective, decorators: [{
|
|
11
|
+
type: Directive,
|
|
12
|
+
args: [{ selector: 'ard-hex-input > ng-template[ard-placeholder-tmp]' }]
|
|
13
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
14
|
+
export class ArdHexInputPrefixTemplateDirective {
|
|
15
|
+
constructor(template) {
|
|
16
|
+
this.template = template;
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdHexInputPrefixTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
19
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: ArdHexInputPrefixTemplateDirective, selector: "ard-hex-input ng-template[ard-prefix-tmp]", ngImport: i0 }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdHexInputPrefixTemplateDirective, decorators: [{
|
|
22
|
+
type: Directive,
|
|
23
|
+
args: [{ selector: 'ard-hex-input ng-template[ard-prefix-tmp]' }]
|
|
24
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
25
|
+
export class ArdHexInputSuffixTemplateDirective {
|
|
26
|
+
constructor(template) {
|
|
27
|
+
this.template = template;
|
|
28
|
+
}
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdHexInputSuffixTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
30
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: ArdHexInputSuffixTemplateDirective, selector: "ard-hex-input ng-template[ard-suffix-tmp]", ngImport: i0 }); }
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdHexInputSuffixTemplateDirective, decorators: [{
|
|
33
|
+
type: Directive,
|
|
34
|
+
args: [{ selector: 'ard-hex-input ng-template[ard-suffix-tmp]' }]
|
|
35
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGV4LWlucHV0LmRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9oZXgtaW5wdXQvaGV4LWlucHV0LmRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFHdkQsTUFBTSxPQUFPLHVDQUF1QztJQUNoRCxZQUFtQixRQUFnQztRQUFoQyxhQUFRLEdBQVIsUUFBUSxDQUF3QjtJQUFHLENBQUM7OEdBRDlDLHVDQUF1QztrR0FBdkMsdUNBQXVDOzsyRkFBdkMsdUNBQXVDO2tCQURuRCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGtEQUFrRCxFQUFFOztBQU0zRSxNQUFNLE9BQU8sa0NBQWtDO0lBQzNDLFlBQW1CLFFBQWdDO1FBQWhDLGFBQVEsR0FBUixRQUFRLENBQXdCO0lBQUcsQ0FBQzs4R0FEOUMsa0NBQWtDO2tHQUFsQyxrQ0FBa0M7OzJGQUFsQyxrQ0FBa0M7a0JBRDlDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsMkNBQTJDLEVBQUU7O0FBTXBFLE1BQU0sT0FBTyxrQ0FBa0M7SUFDM0MsWUFBbUIsUUFBZ0M7UUFBaEMsYUFBUSxHQUFSLFFBQVEsQ0FBd0I7SUFBRyxDQUFDOzhHQUQ5QyxrQ0FBa0M7a0dBQWxDLGtDQUFrQzs7MkZBQWxDLGtDQUFrQztrQkFEOUMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwyQ0FBMkMsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLWhleC1pbnB1dCA+IG5nLXRlbXBsYXRlW2FyZC1wbGFjZWhvbGRlci10bXBdJyB9KVxuZXhwb3J0IGNsYXNzIEFyZEhleElucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmRlZmluZWQ+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdhcmQtaGV4LWlucHV0IG5nLXRlbXBsYXRlW2FyZC1wcmVmaXgtdG1wXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRIZXhJbnB1dFByZWZpeFRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVuZGVmaW5lZD4pIHt9XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2FyZC1oZXgtaW5wdXQgbmctdGVtcGxhdGVbYXJkLXN1ZmZpeC10bXBdJyB9KVxuZXhwb3J0IGNsYXNzIEFyZEhleElucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5kZWZpbmVkPikge31cbn1cbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ArdiumHexInputComponent } from './hex-input.component';
|
|
4
|
+
import { ArdHexInputPlaceholderTemplateDirective, ArdHexInputPrefixTemplateDirective, ArdHexInputSuffixTemplateDirective } from './hex-input.directives';
|
|
5
|
+
import { _ClearButtonModule } from '../../_internal/clear-button/clear-button.module';
|
|
6
|
+
import { ArdiumFormFieldFrameModule } from '../../form-field-frame/form-field-frame.module';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class ArdiumHexInputModule {
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumHexInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: ArdiumHexInputModule, declarations: [ArdiumHexInputComponent, ArdHexInputPlaceholderTemplateDirective, ArdHexInputPrefixTemplateDirective, ArdHexInputSuffixTemplateDirective], imports: [CommonModule, ArdiumFormFieldFrameModule, _ClearButtonModule], exports: [ArdiumHexInputComponent, ArdHexInputPlaceholderTemplateDirective, ArdHexInputPrefixTemplateDirective, ArdHexInputSuffixTemplateDirective] }); }
|
|
11
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumHexInputModule, imports: [CommonModule, ArdiumFormFieldFrameModule, _ClearButtonModule] }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumHexInputModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
declarations: [ArdiumHexInputComponent, ArdHexInputPlaceholderTemplateDirective, ArdHexInputPrefixTemplateDirective, ArdHexInputSuffixTemplateDirective],
|
|
17
|
+
imports: [CommonModule, ArdiumFormFieldFrameModule, _ClearButtonModule],
|
|
18
|
+
exports: [ArdiumHexInputComponent, ArdHexInputPlaceholderTemplateDirective, ArdHexInputPrefixTemplateDirective, ArdHexInputSuffixTemplateDirective],
|
|
19
|
+
}]
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGV4LWlucHV0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW5wdXRzL2hleC1pbnB1dC9oZXgtaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxrQ0FBa0MsRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pKLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOztBQU81RixNQUFNLE9BQU8sb0JBQW9COzhHQUFwQixvQkFBb0I7K0dBQXBCLG9CQUFvQixpQkFKZCx1QkFBdUIsRUFBRSx1Q0FBdUMsRUFBRSxrQ0FBa0MsRUFBRSxrQ0FBa0MsYUFDN0ksWUFBWSxFQUFFLDBCQUEwQixFQUFFLGtCQUFrQixhQUM1RCx1QkFBdUIsRUFBRSx1Q0FBdUMsRUFBRSxrQ0FBa0MsRUFBRSxrQ0FBa0M7K0dBRXpJLG9CQUFvQixZQUhuQixZQUFZLEVBQUUsMEJBQTBCLEVBQUUsa0JBQWtCOzsyRkFHN0Qsb0JBQW9CO2tCQUxoQyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLHVCQUF1QixFQUFFLHVDQUF1QyxFQUFFLGtDQUFrQyxFQUFFLGtDQUFrQyxDQUFDO29CQUN4SixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsMEJBQTBCLEVBQUUsa0JBQWtCLENBQUM7b0JBQ3ZFLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLHVDQUF1QyxFQUFFLGtDQUFrQyxFQUFFLGtDQUFrQyxDQUFDO2lCQUN0SiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQXJkaXVtSGV4SW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2hleC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXJkSGV4SW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlLCBBcmRIZXhJbnB1dFByZWZpeFRlbXBsYXRlRGlyZWN0aXZlLCBBcmRIZXhJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9oZXgtaW5wdXQuZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBfQ2xlYXJCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi8uLi9faW50ZXJuYWwvY2xlYXItYnV0dG9uL2NsZWFyLWJ1dHRvbi5tb2R1bGUnO1xuaW1wb3J0IHsgQXJkaXVtRm9ybUZpZWxkRnJhbWVNb2R1bGUgfSBmcm9tICcuLi8uLi9mb3JtLWZpZWxkLWZyYW1lL2Zvcm0tZmllbGQtZnJhbWUubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtBcmRpdW1IZXhJbnB1dENvbXBvbmVudCwgQXJkSGV4SW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlLCBBcmRIZXhJbnB1dFByZWZpeFRlbXBsYXRlRGlyZWN0aXZlLCBBcmRIZXhJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlXSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBcmRpdW1Gb3JtRmllbGRGcmFtZU1vZHVsZSwgX0NsZWFyQnV0dG9uTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbQXJkaXVtSGV4SW5wdXRDb21wb25lbnQsIEFyZEhleElucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSwgQXJkSGV4SW5wdXRQcmVmaXhUZW1wbGF0ZURpcmVjdGl2ZSwgQXJkSGV4SW5wdXRTdWZmaXhUZW1wbGF0ZURpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFyZGl1bUhleElucHV0TW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { isAnyString, isDefined, isNull } from 'simple-bool';
|
|
2
|
+
import { RegExpTransformer } from './input-transformers';
|
|
3
|
+
import { CaseTransformerType } from './input-types';
|
|
4
|
+
export class HexInputModel {
|
|
5
|
+
constructor(inputEl, _hostComp) {
|
|
6
|
+
this.inputEl = inputEl;
|
|
7
|
+
this._hostComp = _hostComp;
|
|
8
|
+
//! value setters/getters
|
|
9
|
+
this._value = null;
|
|
10
|
+
//! constraints
|
|
11
|
+
this._charactersRegexTransformer = new RegExpTransformer(/[^0-9a-f]/i, '');
|
|
12
|
+
}
|
|
13
|
+
get value() {
|
|
14
|
+
return this._value;
|
|
15
|
+
}
|
|
16
|
+
set value(v) {
|
|
17
|
+
this._value = v;
|
|
18
|
+
}
|
|
19
|
+
//value as string
|
|
20
|
+
get stringValue() {
|
|
21
|
+
return this._value ?? '';
|
|
22
|
+
}
|
|
23
|
+
set stringValue(v) {
|
|
24
|
+
this._value = v || null;
|
|
25
|
+
}
|
|
26
|
+
//value with the hash sign
|
|
27
|
+
get hashSignValue() {
|
|
28
|
+
return '#' + this._value;
|
|
29
|
+
}
|
|
30
|
+
//! write value handlers
|
|
31
|
+
writeValue(v) {
|
|
32
|
+
if (!isAnyString(v) && !isNull(v)) {
|
|
33
|
+
//warn when using non-string/non-null value
|
|
34
|
+
console.warn(new Error(`Trying to set ard-hex-input's value to type ${typeof v}, expected string, or null.`));
|
|
35
|
+
}
|
|
36
|
+
//normalize the value
|
|
37
|
+
v = v ?? '';
|
|
38
|
+
if (typeof v == 'string')
|
|
39
|
+
v = v.replace('#', '');
|
|
40
|
+
return this._writeValue(v);
|
|
41
|
+
}
|
|
42
|
+
_writeValue(v) {
|
|
43
|
+
const oldVal = this.value;
|
|
44
|
+
//constraints
|
|
45
|
+
if (v) {
|
|
46
|
+
v = this._applyCharactersConstraint(v);
|
|
47
|
+
v = this._applyDigitsConstraint(v, oldVal ?? '');
|
|
48
|
+
v = this._applyCaseTransformer(v);
|
|
49
|
+
}
|
|
50
|
+
//update view
|
|
51
|
+
this.value = v;
|
|
52
|
+
this._updateInputElement();
|
|
53
|
+
return oldVal !== v;
|
|
54
|
+
}
|
|
55
|
+
clear() {
|
|
56
|
+
this._writeValue(null);
|
|
57
|
+
}
|
|
58
|
+
rewriteValueAfterHostUpdate() {
|
|
59
|
+
this._writeValue(this._value);
|
|
60
|
+
}
|
|
61
|
+
//! input element methods
|
|
62
|
+
_updateInputElement() {
|
|
63
|
+
const caretPos = this.caretPos;
|
|
64
|
+
this.inputEl.value = this.stringValue;
|
|
65
|
+
this.caretPos = caretPos;
|
|
66
|
+
}
|
|
67
|
+
get caretPos() {
|
|
68
|
+
return this.inputEl.selectionEnd ?? this.stringValue.length;
|
|
69
|
+
}
|
|
70
|
+
set caretPos(pos) {
|
|
71
|
+
this.inputEl.setSelectionRange(pos, pos);
|
|
72
|
+
}
|
|
73
|
+
_applyCharactersConstraint(v) {
|
|
74
|
+
const { text, caretPos } = this._charactersRegexTransformer.apply(v, '', this.caretPos);
|
|
75
|
+
this.caretPos = caretPos;
|
|
76
|
+
return text;
|
|
77
|
+
}
|
|
78
|
+
_applyDigitsConstraint(v, prev) {
|
|
79
|
+
const maxLength = this._hostComp.maxDigits;
|
|
80
|
+
if (!isDefined(maxLength))
|
|
81
|
+
return v;
|
|
82
|
+
if (v.length <= maxLength)
|
|
83
|
+
return v;
|
|
84
|
+
if (v.length < prev.length)
|
|
85
|
+
return v;
|
|
86
|
+
let firstChangeIndex = 0;
|
|
87
|
+
while (firstChangeIndex < v.length &&
|
|
88
|
+
(!prev.charAt(firstChangeIndex) || v.charAt(firstChangeIndex) == prev.charAt(firstChangeIndex)) &&
|
|
89
|
+
firstChangeIndex <= maxLength) {
|
|
90
|
+
firstChangeIndex++;
|
|
91
|
+
}
|
|
92
|
+
if (firstChangeIndex > maxLength)
|
|
93
|
+
return v.substring(0, maxLength);
|
|
94
|
+
const overflow = v.length - maxLength;
|
|
95
|
+
this.caretPos -= overflow;
|
|
96
|
+
return v.substring(0, firstChangeIndex) + v.substring(firstChangeIndex + overflow);
|
|
97
|
+
}
|
|
98
|
+
_applyCaseTransformer(v) {
|
|
99
|
+
if (this._hostComp.case == CaseTransformerType.Uppercase)
|
|
100
|
+
return v.toUpperCase();
|
|
101
|
+
if (this._hostComp.case == CaseTransformerType.Lowercase)
|
|
102
|
+
return v.toLowerCase();
|
|
103
|
+
return v;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGV4LWlucHV0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaGV4LWlucHV0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNcEQsTUFBTSxPQUFPLGFBQWE7SUFDdEIsWUFDYyxPQUF5QixFQUN6QixTQUE0QjtRQUQ1QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUN6QixjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQUcxQyx5QkFBeUI7UUFDZixXQUFNLEdBQWtCLElBQUksQ0FBQztRQWdFdkMsZUFBZTtRQUNQLGdDQUEyQixHQUFHLElBQUksaUJBQWlCLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBcEUzRSxDQUFDO0lBSUosSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFnQjtRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBQ0QsaUJBQWlCO0lBQ2pCLElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLENBQVM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFDRCwwQkFBMEI7SUFDMUIsSUFBSSxhQUFhO1FBQ2IsT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lB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SSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsTUFBTTtZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDL0YsZ0JBQWdCLElBQUksU0FBUyxFQUMvQjtZQUNFLGdCQUFnQixFQUFFLENBQUM7U0FDdEI7UUFDRCxJQUFJLGdCQUFnQixHQUFHLFNBQVM7WUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRW5FLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFDTyxxQkFBcUIsQ0FBQyxDQUFTO1FBQ25DLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksbUJBQW1CLENBQUMsU0FBUztZQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pGLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksbUJBQW1CLENBQUMsU0FBUztZQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pGLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNBbnlTdHJpbmcsIGlzRGVmaW5lZCwgaXNOdWxsIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xuaW1wb3J0IHsgUmVnRXhwVHJhbnNmb3JtZXIgfSBmcm9tICcuL2lucHV0LXRyYW5zZm9ybWVycyc7XG5pbXBvcnQgeyBDYXNlVHJhbnNmb3JtZXJUeXBlIH0gZnJvbSAnLi9pbnB1dC10eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGV4SW5wdXRNb2RlbEhvc3Qge1xuICAgIGNhc2U6IENhc2VUcmFuc2Zvcm1lclR5cGU7XG4gICAgbWF4RGlnaXRzOiBudW1iZXIgfCB1bmRlZmluZWQ7XG59XG5leHBvcnQgY2xhc3MgSGV4SW5wdXRNb2RlbCB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBpbnB1dEVsOiBIVE1MSW5wdXRFbGVtZW50LFxuICAgICAgICBwcm90ZWN0ZWQgX2hvc3RDb21wOiBIZXhJbnB1dE1vZGVsSG9zdFxuICAgICkge31cblxuICAgIC8vISB2YWx1ZSBzZXR0ZXJzL2dldHRlcnNcbiAgICBwcm90ZWN0ZWQgX3ZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBnZXQgdmFsdWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG4gICAgc2V0IHZhbHVlKHY6IHN0cmluZyB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2O1xuICAgIH1cbiAgICAvL3ZhbHVlIGFzIHN0cmluZ1xuICAgIGdldCBzdHJpbmdWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWUgPz8gJyc7XG4gICAgfVxuICAgIHNldCBzdHJpbmdWYWx1ZSh2OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2IHx8IG51bGw7XG4gICAgfVxuICAgIC8vdmFsdWUgd2l0aCB0aGUgaGFzaCBzaWduXG4gICAgZ2V0IGhhc2hTaWduVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICcjJyArIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIC8vISB3cml0ZSB2YWx1ZSBoYW5kbGVyc1xuICAgIHdyaXRlVmFsdWUodjogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghaXNBbnlTdHJpbmcodikgJiYgIWlzTnVsbCh2KSkge1xuICAgICAgICAgICAgLy93YXJuIHdoZW4gdXNpbmcgbm9uLXN0cmluZy9ub24tbnVsbCB2YWx1ZVxuICAgICAgICAgICAgY29uc29sZS53YXJuKG5ldyBFcnJvcihgVHJ5aW5nIHRvIHNldCBhcmQtaGV4LWlucHV0J3MgdmFsdWUgdG8gdHlwZSAke3R5cGVvZiB2fSwgZXhwZWN0ZWQgc3RyaW5nLCBvciBudWxsLmApKTtcbiAgICAgICAgfVxuICAgICAgICAvL25vcm1hbGl6ZSB0aGUgdmFsdWVcbiAgICAgICAgdiA9IHYgPz8gJyc7XG4gICAgICAgIGlmICh0eXBlb2YgdiA9PSAnc3RyaW5nJykgdiA9IHYucmVwbGFjZSgnIycsICcnKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fd3JpdGVWYWx1ZSh2KTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF93cml0ZVZhbHVlKHY6IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgb2xkVmFsID0gdGhpcy52YWx1ZTtcbiAgICAgICAgLy9jb25zdHJhaW50c1xuICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgdiA9IHRoaXMuX2FwcGx5Q2hhcmFjdGVyc0NvbnN0cmFpbnQodik7XG4gICAgICAgICAgICB2ID0gdGhpcy5fYXBwbHlEaWdpdHNDb25zdHJhaW50KHYsIG9sZFZhbCA/PyAnJyk7XG4gICAgICAgICAgICB2ID0gdGhpcy5fYXBwbHlDYXNlVHJhbnNmb3JtZXIodik7XG4gICAgICAgIH1cbiAgICAgICAgLy91cGRhdGUgdmlld1xuICAgICAgICB0aGlzLnZhbHVlID0gdjtcbiAgICAgICAgdGhpcy5fdXBkYXRlSW5wdXRFbGVtZW50KCk7XG4gICAgICAgIHJldHVybiBvbGRWYWwgIT09IHY7XG4gICAgfVxuICAgIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl93cml0ZVZhbHVlKG51bGwpO1xuICAgIH1cbiAgICByZXdyaXRlVmFsdWVBZnRlckhvc3RVcGRhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3dyaXRlVmFsdWUodGhpcy5fdmFsdWUpO1xuICAgIH1cblxuICAgIC8vISBpbnB1dCBlbGVtZW50IG1ldGhvZHNcbiAgICBfdXBkYXRlSW5wdXRFbGVtZW50KCkge1xuICAgICAgICBjb25zdCBjYXJldFBvcyA9IHRoaXMuY2FyZXRQb3M7XG4gICAgICAgIHRoaXMuaW5wdXRFbC52YWx1ZSA9IHRoaXMuc3RyaW5nVmFsdWU7XG4gICAgICAgIHRoaXMuY2FyZXRQb3MgPSBjYXJldFBvcztcbiAgICB9XG4gICAgZ2V0IGNhcmV0UG9zKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0RWwuc2VsZWN0aW9uRW5kID8/IHRoaXMuc3RyaW5nVmFsdWUubGVuZ3RoO1xuICAgIH1cbiAgICBzZXQgY2FyZXRQb3MocG9zOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsLnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcbiAgICB9XG5cbiAgICAvLyEgY29uc3RyYWludHNcbiAgICBwcml2YXRlIF9jaGFyYWN0ZXJzUmVnZXhUcmFuc2Zvcm1lciA9IG5ldyBSZWdFeHBUcmFuc2Zvcm1lcigvW14wLTlhLWZdL2ksICcnKTtcbiAgICBwcml2YXRlIF9hcHBseUNoYXJhY3RlcnNDb25zdHJhaW50KHY6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHsgdGV4dCwgY2FyZXRQb3MgfSA9IHRoaXMuX2NoYXJhY3RlcnNSZWdleFRyYW5zZm9ybWVyLmFwcGx5KHYsICcnLCB0aGlzLmNhcmV0UG9zKTtcbiAgICAgICAgdGhpcy5jYXJldFBvcyA9IGNhcmV0UG9zO1xuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfYXBwbHlEaWdpdHNDb25zdHJhaW50KHY6IHN0cmluZywgcHJldjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbWF4TGVuZ3RoID0gdGhpcy5faG9zdENvbXAubWF4RGlnaXRzO1xuICAgICAgICBpZiAoIWlzRGVmaW5lZChtYXhMZW5ndGgpKSByZXR1cm4gdjtcbiAgICAgICAgaWYgKHYubGVuZ3RoIDw9IG1heExlbmd0aCkgcmV0dXJuIHY7XG4gICAgICAgIGlmICh2Lmxlbmd0aCA8IHByZXYubGVuZ3RoKSByZXR1cm4gdjtcblxuICAgICAgICBsZXQgZmlyc3RDaGFuZ2VJbmRleCA9IDA7XG4gICAgICAgIHdoaWxlIChcbiAgICAgICAgICAgIGZpcnN0Q2hhbmdlSW5kZXggPCB2Lmxlbmd0aCAmJlxuICAgICAgICAgICAgKCFwcmV2LmNoYXJBdChmaXJzdENoYW5nZUluZGV4KSB8fCB2LmNoYXJBdChmaXJzdENoYW5nZUluZGV4KSA9PSBwcmV2LmNoYXJBdChmaXJzdENoYW5nZUluZGV4KSkgJiZcbiAgICAgICAgICAgIGZpcnN0Q2hhbmdlSW5kZXggPD0gbWF4TGVuZ3RoXG4gICAgICAgICkge1xuICAgICAgICAgICAgZmlyc3RDaGFuZ2VJbmRleCsrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaXJzdENoYW5nZUluZGV4ID4gbWF4TGVuZ3RoKSByZXR1cm4gdi5zdWJzdHJpbmcoMCwgbWF4TGVuZ3RoKTtcblxuICAgICAgICBjb25zdCBvdmVyZmxvdyA9IHYubGVuZ3RoIC0gbWF4TGVuZ3RoO1xuICAgICAgICB0aGlzLmNhcmV0UG9zIC09IG92ZXJmbG93O1xuICAgICAgICByZXR1cm4gdi5zdWJzdHJpbmcoMCwgZmlyc3RDaGFuZ2VJbmRleCkgKyB2LnN1YnN0cmluZyhmaXJzdENoYW5nZUluZGV4ICsgb3ZlcmZsb3cpO1xuICAgIH1cbiAgICBwcml2YXRlIF9hcHBseUNhc2VUcmFuc2Zvcm1lcih2OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5faG9zdENvbXAuY2FzZSA9PSBDYXNlVHJhbnNmb3JtZXJUeXBlLlVwcGVyY2FzZSkgcmV0dXJuIHYudG9VcHBlckNhc2UoKTtcbiAgICAgICAgaWYgKHRoaXMuX2hvc3RDb21wLmNhc2UgPT0gQ2FzZVRyYW5zZm9ybWVyVHlwZS5Mb3dlcmNhc2UpIHJldHVybiB2LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cbn1cbiJdfQ==
|