@ardium-ui/ui 4.4.2 → 5.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/ardium-ui-ui.mjs +2482 -2400
- package/fesm2022/ardium-ui-ui.mjs.map +1 -1
- package/lib/_internal/boolean-component.d.ts +1 -1
- package/lib/_internal/disablable-component.d.ts +1 -1
- package/lib/_internal/focusable-component.d.ts +1 -1
- package/lib/_internal/form-field-component.d.ts +1 -1
- package/lib/_internal/ngmodel-component.d.ts +1 -1
- package/lib/_internal/selectable-list-component.d.ts +1 -1
- package/lib/_internal/utils/date.utils.d.ts +3 -0
- package/lib/buttons/_button-base.d.ts +1 -1
- package/lib/calendar/calendar.component.d.ts +8 -2
- package/lib/file-inputs/file-input-base.d.ts +1 -1
- package/lib/form-field/form-field-base.d.ts +1 -1
- package/lib/inputs/_simple-input-base.d.ts +3 -3
- package/lib/inputs/autocomplete-input/autocomplete-input.component.d.ts +66 -0
- package/lib/inputs/autocomplete-input/autocomplete-input.defaults.d.ts +15 -0
- package/lib/inputs/autocomplete-input/autocomplete-input.directives.d.ts +33 -0
- package/lib/inputs/autocomplete-input/autocomplete-input.module.d.ts +13 -0
- package/lib/inputs/autocomplete-input/index.d.ts +3 -0
- package/lib/inputs/date-input/date-input.component.d.ts +5 -2
- package/lib/inputs/input/index.d.ts +2 -1
- package/lib/inputs/input/input.component.d.ts +3 -56
- package/lib/inputs/input/input.defaults.d.ts +1 -10
- package/lib/inputs/input/input.directives.d.ts +0 -13
- package/lib/inputs/input/input.module.d.ts +3 -5
- package/lib/inputs/input-utils.d.ts +8 -8
- package/lib/option/option.component.d.ts +1 -1
- package/lib/slider/abstract-slider.d.ts +1 -1
- package/package.json +1 -3
- package/prebuilt-themes/default/inputs/{simple-input.css → autocomplete-input.css} +40 -15
- package/prebuilt-themes/default/inputs/autocomplete-input.css.map +1 -0
- package/prebuilt-themes/default/inputs/input.css +0 -25
- package/prebuilt-themes/default/inputs/input.css.map +1 -1
- package/public-api.d.ts +1 -1
- package/themes/default/inputs/autocomplete-input.scss +46 -0
- package/themes/default/inputs/input.scss +0 -34
- package/esm2022/ardium-ui-ui.mjs +0 -5
- package/esm2022/lib/_internal/boolean-component.mjs +0 -95
- package/esm2022/lib/_internal/clear-button/clear-button.component.mjs +0 -15
- package/esm2022/lib/_internal/clear-button/clear-button.module.mjs +0 -18
- package/esm2022/lib/_internal/disablable-component.mjs +0 -51
- package/esm2022/lib/_internal/focusable-component.mjs +0 -85
- package/esm2022/lib/_internal/form-field-component.mjs +0 -33
- package/esm2022/lib/_internal/item-storages/dropdown-item-storage.mjs +0 -453
- package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +0 -370
- package/esm2022/lib/_internal/item-storages/simplest-item-storage.mjs +0 -157
- package/esm2022/lib/_internal/models/pagination.model.mjs +0 -90
- package/esm2022/lib/_internal/models/queue.mjs +0 -59
- package/esm2022/lib/_internal/ngmodel-component.mjs +0 -101
- package/esm2022/lib/_internal/public-api.mjs +0 -2
- package/esm2022/lib/_internal/selectable-list-component.mjs +0 -271
- package/esm2022/lib/badge/badge.defaults.mjs +0 -20
- package/esm2022/lib/badge/badge.directive.mjs +0 -97
- package/esm2022/lib/badge/badge.module.mjs +0 -18
- package/esm2022/lib/badge/badge.types.mjs +0 -16
- package/esm2022/lib/badge/index.mjs +0 -5
- package/esm2022/lib/buttons/_button-base.defaults.mjs +0 -17
- package/esm2022/lib/buttons/_button-base.mjs +0 -26
- package/esm2022/lib/buttons/button/button.component.mjs +0 -38
- package/esm2022/lib/buttons/button/button.defaults.mjs +0 -17
- package/esm2022/lib/buttons/button/button.module.mjs +0 -18
- package/esm2022/lib/buttons/button/index.mjs +0 -4
- package/esm2022/lib/buttons/fab/fab.component.mjs +0 -33
- package/esm2022/lib/buttons/fab/fab.defaults.mjs +0 -17
- package/esm2022/lib/buttons/fab/fab.module.mjs +0 -18
- package/esm2022/lib/buttons/fab/index.mjs +0 -4
- package/esm2022/lib/buttons/general-button.types.mjs +0 -55
- package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +0 -39
- package/esm2022/lib/buttons/icon-button/icon-button.defaults.mjs +0 -9
- package/esm2022/lib/buttons/icon-button/icon-button.module.mjs +0 -18
- package/esm2022/lib/buttons/icon-button/index.mjs +0 -4
- package/esm2022/lib/calendar/calendar.component.mjs +0 -466
- package/esm2022/lib/calendar/calendar.defaults.mjs +0 -26
- package/esm2022/lib/calendar/calendar.directives.mjs +0 -107
- package/esm2022/lib/calendar/calendar.internal-directives.mjs +0 -22
- package/esm2022/lib/calendar/calendar.internal-types.mjs +0 -2
- package/esm2022/lib/calendar/calendar.module.mjs +0 -71
- package/esm2022/lib/calendar/calendar.types.mjs +0 -6
- package/esm2022/lib/calendar/index.mjs +0 -6
- package/esm2022/lib/calendar/views/days-view/days-view.component.mjs +0 -282
- package/esm2022/lib/calendar/views/days-view/days-view.helpers.mjs +0 -65
- package/esm2022/lib/calendar/views/months-view/months-view.component.mjs +0 -245
- package/esm2022/lib/calendar/views/months-view/months-view.helpers.mjs +0 -22
- package/esm2022/lib/calendar/views/years-view/years-view.component.mjs +0 -244
- package/esm2022/lib/calendar/views/years-view/years-view.helpers.mjs +0 -14
- package/esm2022/lib/card/card.children.mjs +0 -96
- package/esm2022/lib/card/card.component.mjs +0 -38
- package/esm2022/lib/card/card.defaults.mjs +0 -17
- package/esm2022/lib/card/card.module.mjs +0 -59
- package/esm2022/lib/card/card.types.mjs +0 -9
- package/esm2022/lib/card/index.mjs +0 -6
- package/esm2022/lib/checkbox/checkbox.component.mjs +0 -68
- package/esm2022/lib/checkbox/checkbox.defaults.mjs +0 -17
- package/esm2022/lib/checkbox/checkbox.directives.mjs +0 -14
- package/esm2022/lib/checkbox/checkbox.internal-directives.mjs +0 -15
- package/esm2022/lib/checkbox/checkbox.module.mjs +0 -20
- package/esm2022/lib/checkbox/checkbox.types.mjs +0 -6
- package/esm2022/lib/checkbox/index.mjs +0 -6
- package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +0 -116
- package/esm2022/lib/checkbox-list/checkbox-list.defaults.mjs +0 -25
- package/esm2022/lib/checkbox-list/checkbox-list.directives.mjs +0 -14
- package/esm2022/lib/checkbox-list/checkbox-list.module.mjs +0 -21
- package/esm2022/lib/checkbox-list/checkbox-list.types.mjs +0 -7
- package/esm2022/lib/checkbox-list/index.mjs +0 -6
- package/esm2022/lib/chip/chip.component.mjs +0 -36
- package/esm2022/lib/chip/chip.defaults.mjs +0 -20
- package/esm2022/lib/chip/chip.module.mjs +0 -21
- package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +0 -53
- package/esm2022/lib/chip/deletable-chip/deletable-chip.defaults.mjs +0 -17
- package/esm2022/lib/chip/index.mjs +0 -8
- package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +0 -53
- package/esm2022/lib/chip/selectable-chip/selectable-chip.defaults.mjs +0 -18
- package/esm2022/lib/dialog/dialog.component.mjs +0 -109
- package/esm2022/lib/dialog/dialog.defaults.mjs +0 -26
- package/esm2022/lib/dialog/dialog.directives.mjs +0 -25
- package/esm2022/lib/dialog/dialog.module.mjs +0 -21
- package/esm2022/lib/dialog/dialog.types.mjs +0 -10
- package/esm2022/lib/dialog/index.mjs +0 -6
- package/esm2022/lib/divider/divider.component.mjs +0 -19
- package/esm2022/lib/divider/divider.defaults.mjs +0 -13
- package/esm2022/lib/divider/divider.module.mjs +0 -18
- package/esm2022/lib/divider/index.mjs +0 -4
- package/esm2022/lib/dropdown-panel/dropdown-panel.component.mjs +0 -112
- package/esm2022/lib/dropdown-panel/dropdown-panel.defaults.mjs +0 -17
- package/esm2022/lib/dropdown-panel/dropdown-panel.module.mjs +0 -18
- package/esm2022/lib/dropdown-panel/dropdown-panel.types.mjs +0 -10
- package/esm2022/lib/dropdown-panel/index.mjs +0 -5
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +0 -70
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.defaults.mjs +0 -18
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.directives.mjs +0 -42
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.module.mjs +0 -52
- package/esm2022/lib/file-inputs/file-drop-area/index.mjs +0 -5
- package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +0 -120
- package/esm2022/lib/file-inputs/file-input/file-input.defaults.mjs +0 -23
- package/esm2022/lib/file-inputs/file-input/file-input.directives.mjs +0 -86
- package/esm2022/lib/file-inputs/file-input/file-input.module.mjs +0 -55
- package/esm2022/lib/file-inputs/file-input/index.mjs +0 -5
- package/esm2022/lib/file-inputs/file-input-base.defaults.mjs +0 -8
- package/esm2022/lib/file-inputs/file-input-base.mjs +0 -356
- package/esm2022/lib/file-inputs/file-input-types.mjs +0 -8
- package/esm2022/lib/form-field/error/error.component.mjs +0 -17
- package/esm2022/lib/form-field/error/error.directive.mjs +0 -17
- package/esm2022/lib/form-field/form-field-base.mjs +0 -53
- package/esm2022/lib/form-field/form-field-child.token.mjs +0 -3
- package/esm2022/lib/form-field/form-field-native-inputs.mjs +0 -80
- package/esm2022/lib/form-field/form-field.component.mjs +0 -12
- package/esm2022/lib/form-field/form-field.defaults.mjs +0 -17
- package/esm2022/lib/form-field/form-field.module.mjs +0 -49
- package/esm2022/lib/form-field/hint/hint.component.mjs +0 -17
- package/esm2022/lib/form-field/hint/hint.directive.mjs +0 -30
- package/esm2022/lib/form-field/horizontal-form-field.component.mjs +0 -12
- package/esm2022/lib/form-field/index.mjs +0 -10
- package/esm2022/lib/form-field/label/label.component.mjs +0 -27
- package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +0 -58
- package/esm2022/lib/form-field-frame/form-field-frame.defaults.mjs +0 -18
- package/esm2022/lib/form-field-frame/form-field-frame.directives.mjs +0 -25
- package/esm2022/lib/form-field-frame/form-field-frame.module.mjs +0 -19
- package/esm2022/lib/form-field-frame/index.mjs +0 -5
- package/esm2022/lib/icon/icon.component.mjs +0 -52
- package/esm2022/lib/icon/icon.defaults.mjs +0 -17
- package/esm2022/lib/icon/icon.module.mjs +0 -19
- package/esm2022/lib/icon/icon.pipe.mjs +0 -18
- package/esm2022/lib/icon/index.mjs +0 -5
- package/esm2022/lib/inputs/_simple-input-base.mjs +0 -153
- package/esm2022/lib/inputs/date-input/date-input.component.mjs +0 -375
- package/esm2022/lib/inputs/date-input/date-input.defaults.mjs +0 -38
- package/esm2022/lib/inputs/date-input/date-input.directive.mjs +0 -163
- package/esm2022/lib/inputs/date-input/date-input.module.mjs +0 -108
- package/esm2022/lib/inputs/date-input/date-input.serializers.mjs +0 -49
- package/esm2022/lib/inputs/date-input/date-input.types.mjs +0 -5
- package/esm2022/lib/inputs/date-input/index.mjs +0 -6
- package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +0 -265
- package/esm2022/lib/inputs/digit-input/digit-input.defaults.mjs +0 -24
- package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +0 -267
- package/esm2022/lib/inputs/digit-input/digit-input.module.mjs +0 -19
- package/esm2022/lib/inputs/digit-input/digit-input.types.mjs +0 -15
- package/esm2022/lib/inputs/digit-input/digit-input.utils.mjs +0 -8
- package/esm2022/lib/inputs/digit-input/index.mjs +0 -5
- package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +0 -180
- package/esm2022/lib/inputs/hex-input/hex-input.defaults.mjs +0 -26
- package/esm2022/lib/inputs/hex-input/hex-input.directives.mjs +0 -36
- package/esm2022/lib/inputs/hex-input/hex-input.model.mjs +0 -97
- package/esm2022/lib/inputs/hex-input/hex-input.module.mjs +0 -37
- package/esm2022/lib/inputs/hex-input/index.mjs +0 -5
- package/esm2022/lib/inputs/input/index.mjs +0 -4
- package/esm2022/lib/inputs/input/input.component.mjs +0 -278
- package/esm2022/lib/inputs/input/input.defaults.mjs +0 -21
- package/esm2022/lib/inputs/input/input.directives.mjs +0 -58
- package/esm2022/lib/inputs/input/input.module.mjs +0 -61
- package/esm2022/lib/inputs/input-transformers.mjs +0 -66
- package/esm2022/lib/inputs/input-types.mjs +0 -6
- package/esm2022/lib/inputs/input-utils.mjs +0 -186
- package/esm2022/lib/inputs/number-input/index.mjs +0 -5
- package/esm2022/lib/inputs/number-input/number-input.component.mjs +0 -250
- package/esm2022/lib/inputs/number-input/number-input.defaults.mjs +0 -27
- package/esm2022/lib/inputs/number-input/number-input.directives.mjs +0 -14
- package/esm2022/lib/inputs/number-input/number-input.module.mjs +0 -21
- package/esm2022/lib/inputs/password-input/index.mjs +0 -6
- package/esm2022/lib/inputs/password-input/password-input.component.mjs +0 -167
- package/esm2022/lib/inputs/password-input/password-input.defaults.mjs +0 -24
- package/esm2022/lib/inputs/password-input/password-input.directives.mjs +0 -49
- package/esm2022/lib/inputs/password-input/password-input.module.mjs +0 -41
- package/esm2022/lib/inputs/password-input/password-input.types.mjs +0 -2
- package/esm2022/lib/inputs/simple-input/index.mjs +0 -5
- package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +0 -50
- package/esm2022/lib/inputs/simple-input/simple-input.defaults.mjs +0 -25
- package/esm2022/lib/inputs/simple-input/simple-input.directives.mjs +0 -36
- package/esm2022/lib/inputs/simple-input/simple-input.module.mjs +0 -37
- package/esm2022/lib/kbd/index.mjs +0 -6
- package/esm2022/lib/kbd/kbd.component.mjs +0 -30
- package/esm2022/lib/kbd/kbd.defaults.mjs +0 -15
- package/esm2022/lib/kbd/kbd.directive.mjs +0 -33
- package/esm2022/lib/kbd/kbd.module.mjs +0 -20
- package/esm2022/lib/kbd/kbd.pipe.mjs +0 -21
- package/esm2022/lib/kbd-shortcut/index.mjs +0 -4
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.component.mjs +0 -36
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.defaults.mjs +0 -8
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.module.mjs +0 -19
- package/esm2022/lib/modal/index.mjs +0 -5
- package/esm2022/lib/modal/modal.component.mjs +0 -95
- package/esm2022/lib/modal/modal.defaults.mjs +0 -20
- package/esm2022/lib/modal/modal.directives.mjs +0 -14
- package/esm2022/lib/modal/modal.module.mjs +0 -22
- package/esm2022/lib/option/index.mjs +0 -3
- package/esm2022/lib/option/option.component.mjs +0 -55
- package/esm2022/lib/option/option.module.mjs +0 -18
- package/esm2022/lib/progress-bar/index.mjs +0 -6
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +0 -58
- package/esm2022/lib/progress-bar/progress-bar.defaults.mjs +0 -21
- package/esm2022/lib/progress-bar/progress-bar.directive.mjs +0 -14
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -19
- package/esm2022/lib/progress-bar/progress-bar.types.mjs +0 -19
- package/esm2022/lib/progress-circle/index.mjs +0 -6
- package/esm2022/lib/progress-circle/progress-circle.component.mjs +0 -45
- package/esm2022/lib/progress-circle/progress-circle.defaults.mjs +0 -21
- package/esm2022/lib/progress-circle/progress-circle.directive.mjs +0 -14
- package/esm2022/lib/progress-circle/progress-circle.module.mjs +0 -19
- package/esm2022/lib/progress-circle/progress-circle.types.mjs +0 -10
- package/esm2022/lib/radio/index.mjs +0 -5
- package/esm2022/lib/radio/radio/radio.component.mjs +0 -119
- package/esm2022/lib/radio/radio/radio.defaults.mjs +0 -16
- package/esm2022/lib/radio/radio-group.component.mjs +0 -203
- package/esm2022/lib/radio/radio.module.mjs +0 -19
- package/esm2022/lib/search-functions.mjs +0 -64
- package/esm2022/lib/segment/index.mjs +0 -6
- package/esm2022/lib/segment/segment.component.mjs +0 -125
- package/esm2022/lib/segment/segment.defaults.mjs +0 -26
- package/esm2022/lib/segment/segment.directives.mjs +0 -14
- package/esm2022/lib/segment/segment.module.mjs +0 -19
- package/esm2022/lib/segment/segment.types.mjs +0 -13
- package/esm2022/lib/select/index.mjs +0 -6
- package/esm2022/lib/select/select.component.mjs +0 -836
- package/esm2022/lib/select/select.defaults.mjs +0 -53
- package/esm2022/lib/select/select.directive.mjs +0 -171
- package/esm2022/lib/select/select.module.mjs +0 -112
- package/esm2022/lib/select/select.types.mjs +0 -2
- package/esm2022/lib/slide-toggle/index.mjs +0 -5
- package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +0 -43
- package/esm2022/lib/slide-toggle/slide-toggle.defaults.mjs +0 -21
- package/esm2022/lib/slide-toggle/slide-toggle.module.mjs +0 -18
- package/esm2022/lib/slide-toggle/slide-toggle.types.mjs +0 -5
- package/esm2022/lib/slider/abstract-slider.mjs +0 -251
- package/esm2022/lib/slider/index.mjs +0 -8
- package/esm2022/lib/slider/range-slider/range-slider.component.mjs +0 -151
- package/esm2022/lib/slider/range-slider/range-slider.module.mjs +0 -18
- package/esm2022/lib/slider/slider.component.mjs +0 -100
- package/esm2022/lib/slider/slider.defaults.mjs +0 -14
- package/esm2022/lib/slider/slider.directive.mjs +0 -16
- package/esm2022/lib/slider/slider.module.mjs +0 -20
- package/esm2022/lib/slider/slider.types.mjs +0 -10
- package/esm2022/lib/snackbar/index.mjs +0 -5
- package/esm2022/lib/snackbar/snackbar-ref.mjs +0 -51
- package/esm2022/lib/snackbar/snackbar.component.mjs +0 -48
- package/esm2022/lib/snackbar/snackbar.service.mjs +0 -224
- package/esm2022/lib/snackbar/snackbar.token.mjs +0 -26
- package/esm2022/lib/snackbar/snackbar.types.mjs +0 -25
- package/esm2022/lib/spinner/index.mjs +0 -4
- package/esm2022/lib/spinner/spinner.component.mjs +0 -19
- package/esm2022/lib/spinner/spinner.defaults.mjs +0 -14
- package/esm2022/lib/spinner/spinner.module.mjs +0 -18
- package/esm2022/lib/star/index.mjs +0 -6
- package/esm2022/lib/star/rating-display/index.mjs +0 -6
- package/esm2022/lib/star/rating-display/rating-display.component.mjs +0 -71
- package/esm2022/lib/star/rating-display/rating-display.defaults.mjs +0 -16
- package/esm2022/lib/star/rating-display/rating-display.directives.mjs +0 -16
- package/esm2022/lib/star/rating-display/rating-display.module.mjs +0 -20
- package/esm2022/lib/star/rating-display/rating-display.types.mjs +0 -2
- package/esm2022/lib/star/rating-input/index.mjs +0 -6
- package/esm2022/lib/star/rating-input/rating-input.component.mjs +0 -191
- package/esm2022/lib/star/rating-input/rating-input.defaults.mjs +0 -17
- package/esm2022/lib/star/rating-input/rating-input.directives.mjs +0 -16
- package/esm2022/lib/star/rating-input/rating-input.module.mjs +0 -20
- package/esm2022/lib/star/rating-input/rating-input.types.mjs +0 -2
- package/esm2022/lib/star/star-button/index.mjs +0 -6
- package/esm2022/lib/star/star-button/star-button.component.mjs +0 -55
- package/esm2022/lib/star/star-button/star-button.defaults.mjs +0 -18
- package/esm2022/lib/star/star-button/star-button.directives.mjs +0 -16
- package/esm2022/lib/star/star-button/star-button.module.mjs +0 -20
- package/esm2022/lib/star/star-button/star-button.types.mjs +0 -2
- package/esm2022/lib/star/star.component.mjs +0 -36
- package/esm2022/lib/star/star.defaults.mjs +0 -15
- package/esm2022/lib/star/star.directives.mjs +0 -16
- package/esm2022/lib/star/star.module.mjs +0 -20
- package/esm2022/lib/star/star.types.mjs +0 -23
- package/esm2022/lib/statebox/index.mjs +0 -4
- package/esm2022/lib/statebox/statebox.component.mjs +0 -114
- package/esm2022/lib/statebox/statebox.defaults.mjs +0 -20
- package/esm2022/lib/statebox/statebox.module.mjs +0 -18
- package/esm2022/lib/statebox/statebox.types.mjs +0 -2
- package/esm2022/lib/tabber/index.mjs +0 -6
- package/esm2022/lib/tabber/tab/tab.component.mjs +0 -44
- package/esm2022/lib/tabber/tab/tab.defaults.mjs +0 -13
- package/esm2022/lib/tabber/tabber.component.mjs +0 -90
- package/esm2022/lib/tabber/tabber.defaults.mjs +0 -19
- package/esm2022/lib/tabber/tabber.module.mjs +0 -19
- package/esm2022/lib/table/index.mjs +0 -6
- package/esm2022/lib/table/table-item-storage.mjs +0 -564
- package/esm2022/lib/table/table.component.mjs +0 -367
- package/esm2022/lib/table/table.defaults.mjs +0 -53
- package/esm2022/lib/table/table.directives.mjs +0 -62
- package/esm2022/lib/table/table.module.mjs +0 -47
- package/esm2022/lib/table/table.types.mjs +0 -30
- package/esm2022/lib/table/utils.mjs +0 -18
- package/esm2022/lib/table-from-csv/index.mjs +0 -4
- package/esm2022/lib/table-from-csv/table-from-csv.component.mjs +0 -120
- package/esm2022/lib/table-from-csv/table-from-csv.defaults.mjs +0 -15
- package/esm2022/lib/table-from-csv/table-from-csv.module.mjs +0 -19
- package/esm2022/lib/table-pagination/index.mjs +0 -5
- package/esm2022/lib/table-pagination/table-pagination.component.mjs +0 -108
- package/esm2022/lib/table-pagination/table-pagination.defaults.mjs +0 -25
- package/esm2022/lib/table-pagination/table-pagination.module.mjs +0 -21
- package/esm2022/lib/table-pagination/table-pagination.types.mjs +0 -7
- package/esm2022/lib/text-list/index.mjs +0 -4
- package/esm2022/lib/text-list/text-list.component.mjs +0 -18
- package/esm2022/lib/text-list/text-list.module.mjs +0 -19
- package/esm2022/lib/text-list/text-list.pipe.mjs +0 -16
- package/esm2022/lib/types/alignment.types.mjs +0 -10
- package/esm2022/lib/types/button.types.mjs +0 -6
- package/esm2022/lib/types/colors.types.mjs +0 -43
- package/esm2022/lib/types/item-storage.types.mjs +0 -6
- package/esm2022/lib/types/theming.types.mjs +0 -48
- package/esm2022/lib/types/utility.types.mjs +0 -5
- package/esm2022/public-api.mjs +0 -74
- package/lib/inputs/simple-input/index.d.ts +0 -4
- package/lib/inputs/simple-input/simple-input.component.d.ts +0 -13
- package/lib/inputs/simple-input/simple-input.defaults.d.ts +0 -6
- package/lib/inputs/simple-input/simple-input.directives.d.ts +0 -20
- package/lib/inputs/simple-input/simple-input.module.d.ts +0 -11
- package/prebuilt-themes/default/inputs/simple-input.css.map +0 -1
- package/themes/default/inputs/simple-input.scss +0 -12
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
import { _formFieldComponentDefaults } from '../../_internal/form-field-component';
|
|
3
|
-
import { CaseTransformerType } from '../input-types';
|
|
4
|
-
import { FormElementAppearance, FormElementVariant } from './../../types/theming.types';
|
|
5
|
-
const _hexInputDefaults = {
|
|
6
|
-
..._formFieldComponentDefaults,
|
|
7
|
-
appearance: FormElementAppearance.Outlined,
|
|
8
|
-
variant: FormElementVariant.Rounded,
|
|
9
|
-
compact: false,
|
|
10
|
-
placeholder: '',
|
|
11
|
-
case: CaseTransformerType.NoChange,
|
|
12
|
-
maxDigits: undefined,
|
|
13
|
-
hideHash: false,
|
|
14
|
-
clearable: false,
|
|
15
|
-
clearButtonTitle: 'Clear',
|
|
16
|
-
inputAttrs: {},
|
|
17
|
-
};
|
|
18
|
-
export const ARD_HEX_INPUT_DEFAULTS = new InjectionToken('ard-hex-input-defaults', {
|
|
19
|
-
factory: () => ({
|
|
20
|
-
..._hexInputDefaults,
|
|
21
|
-
}),
|
|
22
|
-
});
|
|
23
|
-
export function provideHexInputDefaults(config) {
|
|
24
|
-
return { provide: ARD_HEX_INPUT_DEFAULTS, useValue: { ..._hexInputDefaults, ...config } };
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGV4LWlucHV0LmRlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaGV4LWlucHV0L2hleC1pbnB1dC5kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBK0IsMkJBQTJCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVoSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQWV4RixNQUFNLGlCQUFpQixHQUF3QjtJQUM3QyxHQUFHLDJCQUEyQjtJQUM5QixVQUFVLEVBQUUscUJBQXFCLENBQUMsUUFBUTtJQUMxQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsT0FBTztJQUNuQyxPQUFPLEVBQUUsS0FBSztJQUNkLFdBQVcsRUFBRSxFQUFFO0lBQ2YsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFFBQVE7SUFDbEMsU0FBUyxFQUFFLFNBQVM7SUFDcEIsUUFBUSxFQUFFLEtBQUs7SUFDZixTQUFTLEVBQUUsS0FBSztJQUNoQixnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLFVBQVUsRUFBRSxFQUFFO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUFzQix3QkFBd0IsRUFBRTtJQUN0RyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNkLEdBQUcsaUJBQWlCO0tBQ3JCLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFFSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsTUFBb0M7SUFDMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLGlCQUFpQixFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztBQUM1RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IF9Gb3JtRmllbGRDb21wb25lbnREZWZhdWx0cywgX2Zvcm1GaWVsZENvbXBvbmVudERlZmF1bHRzIH0gZnJvbSAnLi4vLi4vX2ludGVybmFsL2Zvcm0tZmllbGQtY29tcG9uZW50JztcclxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi8uLi90eXBlcy91dGlsaXR5LnR5cGVzJztcclxuaW1wb3J0IHsgQ2FzZVRyYW5zZm9ybWVyVHlwZSB9IGZyb20gJy4uL2lucHV0LXR5cGVzJztcclxuaW1wb3J0IHsgRm9ybUVsZW1lbnRBcHBlYXJhbmNlLCBGb3JtRWxlbWVudFZhcmlhbnQgfSBmcm9tICcuLy4uLy4uL3R5cGVzL3RoZW1pbmcudHlwZXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcmRIZXhJbnB1dERlZmF1bHRzIGV4dGVuZHMgX0Zvcm1GaWVsZENvbXBvbmVudERlZmF1bHRzIHtcclxuICBhcHBlYXJhbmNlOiBGb3JtRWxlbWVudEFwcGVhcmFuY2U7XHJcbiAgdmFyaWFudDogRm9ybUVsZW1lbnRWYXJpYW50O1xyXG4gIGNvbXBhY3Q6IGJvb2xlYW47XHJcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBjYXNlOiBDYXNlVHJhbnNmb3JtZXJUeXBlO1xyXG4gIG1heERpZ2l0czogTnVsbGFibGU8bnVtYmVyPjtcclxuICBoaWRlSGFzaDogYm9vbGVhbjtcclxuICBjbGVhcmFibGU6IGJvb2xlYW47XHJcbiAgY2xlYXJCdXR0b25UaXRsZTogc3RyaW5nO1xyXG4gIGlucHV0QXR0cnM6IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbn1cclxuXHJcbmNvbnN0IF9oZXhJbnB1dERlZmF1bHRzOiBBcmRIZXhJbnB1dERlZmF1bHRzID0ge1xyXG4gIC4uLl9mb3JtRmllbGRDb21wb25lbnREZWZhdWx0cyxcclxuICBhcHBlYXJhbmNlOiBGb3JtRWxlbWVudEFwcGVhcmFuY2UuT3V0bGluZWQsXHJcbiAgdmFyaWFudDogRm9ybUVsZW1lbnRWYXJpYW50LlJvdW5kZWQsXHJcbiAgY29tcGFjdDogZmFsc2UsXHJcbiAgcGxhY2Vob2xkZXI6ICcnLFxyXG4gIGNhc2U6IENhc2VUcmFuc2Zvcm1lclR5cGUuTm9DaGFuZ2UsXHJcbiAgbWF4RGlnaXRzOiB1bmRlZmluZWQsXHJcbiAgaGlkZUhhc2g6IGZhbHNlLFxyXG4gIGNsZWFyYWJsZTogZmFsc2UsXHJcbiAgY2xlYXJCdXR0b25UaXRsZTogJ0NsZWFyJyxcclxuICBpbnB1dEF0dHJzOiB7fSxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBBUkRfSEVYX0lOUFVUX0RFRkFVTFRTID0gbmV3IEluamVjdGlvblRva2VuPEFyZEhleElucHV0RGVmYXVsdHM+KCdhcmQtaGV4LWlucHV0LWRlZmF1bHRzJywge1xyXG4gIGZhY3Rvcnk6ICgpID0+ICh7XHJcbiAgICAuLi5faGV4SW5wdXREZWZhdWx0cyxcclxuICB9KSxcclxufSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUhleElucHV0RGVmYXVsdHMoY29uZmlnOiBQYXJ0aWFsPEFyZEhleElucHV0RGVmYXVsdHM+KTogUHJvdmlkZXIge1xyXG4gIHJldHVybiB7IHByb3ZpZGU6IEFSRF9IRVhfSU5QVVRfREVGQVVMVFMsIHVzZVZhbHVlOiB7IC4uLl9oZXhJbnB1dERlZmF1bHRzLCAuLi5jb25maWcgfSB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -1,36 +0,0 @@
|
|
|
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: "18.2.13", ngImport: i0, type: ArdHexInputPlaceholderTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ArdHexInputPlaceholderTemplateDirective, selector: "ard-hex-input > ng-template[ard-placeholder-tmp]", ngImport: i0 }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", 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: "18.2.13", ngImport: i0, type: ArdHexInputPrefixTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
19
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ArdHexInputPrefixTemplateDirective, selector: "ard-hex-input ng-template[ard-prefix-tmp]", ngImport: i0 }); }
|
|
20
|
-
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", 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: "18.2.13", ngImport: i0, type: ArdHexInputSuffixTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
30
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ArdHexInputSuffixTemplateDirective, selector: "ard-hex-input ng-template[ard-suffix-tmp]", ngImport: i0 }); }
|
|
31
|
-
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGV4LWlucHV0LmRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9oZXgtaW5wdXQvaGV4LWlucHV0LmRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFHdkQsTUFBTSxPQUFPLHVDQUF1QztJQUNsRCxZQUFtQixRQUFnQztRQUFoQyxhQUFRLEdBQVIsUUFBUSxDQUF3QjtJQUFHLENBQUM7K0dBRDVDLHVDQUF1QzttR0FBdkMsdUNBQXVDOzs0RkFBdkMsdUNBQXVDO2tCQURuRCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGtEQUFrRCxFQUFFOztBQU0zRSxNQUFNLE9BQU8sa0NBQWtDO0lBQzdDLFlBQW1CLFFBQWdDO1FBQWhDLGFBQVEsR0FBUixRQUFRLENBQXdCO0lBQUcsQ0FBQzsrR0FENUMsa0NBQWtDO21HQUFsQyxrQ0FBa0M7OzRGQUFsQyxrQ0FBa0M7a0JBRDlDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsMkNBQTJDLEVBQUU7O0FBTXBFLE1BQU0sT0FBTyxrQ0FBa0M7SUFDN0MsWUFBbUIsUUFBZ0M7UUFBaEMsYUFBUSxHQUFSLFFBQVEsQ0FBd0I7SUFBRyxDQUFDOytHQUQ1QyxrQ0FBa0M7bUdBQWxDLGtDQUFrQzs7NEZBQWxDLGtDQUFrQztrQkFEOUMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwyQ0FBMkMsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2FyZC1oZXgtaW5wdXQgPiBuZy10ZW1wbGF0ZVthcmQtcGxhY2Vob2xkZXItdG1wXScgfSlcclxuZXhwb3J0IGNsYXNzIEFyZEhleElucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmRlZmluZWQ+KSB7fVxyXG59XHJcblxyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdhcmQtaGV4LWlucHV0IG5nLXRlbXBsYXRlW2FyZC1wcmVmaXgtdG1wXScgfSlcclxuZXhwb3J0IGNsYXNzIEFyZEhleElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5kZWZpbmVkPikge31cclxufVxyXG5cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLWhleC1pbnB1dCBuZy10ZW1wbGF0ZVthcmQtc3VmZml4LXRtcF0nIH0pXHJcbmV4cG9ydCBjbGFzcyBBcmRIZXhJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVuZGVmaW5lZD4pIHt9XHJcbn1cclxuIl19
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { computed, signal } from '@angular/core';
|
|
2
|
-
import { isAnyString, isDefined, isNull } from 'simple-bool';
|
|
3
|
-
import { RegExpTransformer } from '../input-transformers';
|
|
4
|
-
import { CaseTransformerType } from '../input-types';
|
|
5
|
-
export class HexInputModel {
|
|
6
|
-
constructor(_hostComp) {
|
|
7
|
-
this._hostComp = _hostComp;
|
|
8
|
-
//! value setters/getters
|
|
9
|
-
this.value = signal(null);
|
|
10
|
-
this.stringValue = computed(() => this.value() ?? '');
|
|
11
|
-
//value with the hash sign
|
|
12
|
-
this.hashSignValue = computed(() => '#' + this.stringValue());
|
|
13
|
-
//! constraints
|
|
14
|
-
this._charactersRegexTransformer = new RegExpTransformer(/[^0-9a-f]/i, '');
|
|
15
|
-
}
|
|
16
|
-
//! write value handlers
|
|
17
|
-
writeValue(v) {
|
|
18
|
-
if (!isAnyString(v) && !isNull(v)) {
|
|
19
|
-
//warn when using non-string/non-null value
|
|
20
|
-
console.warn(new Error(`ARD-WA0160: Trying to set <ard-hex-input>'s value to "${v}" (of type ${typeof v}), expected string or null.`));
|
|
21
|
-
//normalize the value
|
|
22
|
-
v = v?.toString?.() ?? String(v);
|
|
23
|
-
}
|
|
24
|
-
//normalize the value
|
|
25
|
-
v = v ?? '';
|
|
26
|
-
if (typeof v === 'string')
|
|
27
|
-
v = v.replace('#', '');
|
|
28
|
-
return this._writeValue(v);
|
|
29
|
-
}
|
|
30
|
-
_writeValue(v) {
|
|
31
|
-
const oldVal = this.value();
|
|
32
|
-
//constraints
|
|
33
|
-
if (v) {
|
|
34
|
-
v = this._applyCharactersConstraint(v);
|
|
35
|
-
v = this._applyDigitsConstraint(v, oldVal ?? '');
|
|
36
|
-
v = this._applyCaseTransformer(v);
|
|
37
|
-
}
|
|
38
|
-
//update view
|
|
39
|
-
this.value.set(v);
|
|
40
|
-
this._updateInputElement();
|
|
41
|
-
return oldVal !== v;
|
|
42
|
-
}
|
|
43
|
-
clear() {
|
|
44
|
-
this._writeValue(null);
|
|
45
|
-
}
|
|
46
|
-
rewriteValueAfterHostUpdate() {
|
|
47
|
-
this._writeValue(this.value());
|
|
48
|
-
}
|
|
49
|
-
//! input element methods
|
|
50
|
-
_updateInputElement() {
|
|
51
|
-
const el = this._hostComp.textInputEl()?.nativeElement;
|
|
52
|
-
if (!el)
|
|
53
|
-
return;
|
|
54
|
-
const caretPos = this.caretPos;
|
|
55
|
-
el.value = this.stringValue();
|
|
56
|
-
this.caretPos = caretPos;
|
|
57
|
-
}
|
|
58
|
-
get caretPos() {
|
|
59
|
-
return this._hostComp.textInputEl()?.nativeElement.selectionEnd ?? this.stringValue().length;
|
|
60
|
-
}
|
|
61
|
-
set caretPos(pos) {
|
|
62
|
-
this._hostComp.textInputEl()?.nativeElement.setSelectionRange(pos, pos);
|
|
63
|
-
}
|
|
64
|
-
_applyCharactersConstraint(v) {
|
|
65
|
-
const { text, caretPos } = this._charactersRegexTransformer.apply(v, '', this.caretPos);
|
|
66
|
-
this.caretPos = caretPos;
|
|
67
|
-
return text;
|
|
68
|
-
}
|
|
69
|
-
_applyDigitsConstraint(v, prev) {
|
|
70
|
-
const maxLength = this._hostComp.maxDigits();
|
|
71
|
-
if (!isDefined(maxLength))
|
|
72
|
-
return v;
|
|
73
|
-
if (v.length <= maxLength)
|
|
74
|
-
return v;
|
|
75
|
-
if (v.length < prev.length)
|
|
76
|
-
return v;
|
|
77
|
-
let firstChangeIndex = 0;
|
|
78
|
-
while (firstChangeIndex < v.length &&
|
|
79
|
-
(!prev.charAt(firstChangeIndex) || v.charAt(firstChangeIndex) === prev.charAt(firstChangeIndex)) &&
|
|
80
|
-
firstChangeIndex <= maxLength) {
|
|
81
|
-
firstChangeIndex++;
|
|
82
|
-
}
|
|
83
|
-
if (firstChangeIndex > maxLength)
|
|
84
|
-
return v.substring(0, maxLength);
|
|
85
|
-
const overflow = v.length - maxLength;
|
|
86
|
-
this.caretPos -= overflow;
|
|
87
|
-
return v.substring(0, firstChangeIndex) + v.substring(firstChangeIndex + overflow);
|
|
88
|
-
}
|
|
89
|
-
_applyCaseTransformer(v) {
|
|
90
|
-
if (this._hostComp.case() === CaseTransformerType.Uppercase)
|
|
91
|
-
return v.toUpperCase();
|
|
92
|
-
if (this._hostComp.case() === CaseTransformerType.Lowercase)
|
|
93
|
-
return v.toLowerCase();
|
|
94
|
-
return v;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGV4LWlucHV0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaGV4LWlucHV0L2hleC1pbnB1dC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBT3JELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQStCLFNBQTRCO1FBQTVCLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBRTNELHlCQUF5QjtRQUNoQixVQUFLLEdBQUcsTUFBTSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUNwQyxnQkFBVyxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbEUsMEJBQTBCO1FBQ2pCLGtCQUFhLEdBQUcsUUFBUSxDQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQXFEMUUsZUFBZTtRQUNQLGdDQUEyQixHQUFHLElBQUksaUJBQWlCLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBNURoQixDQUFDO0lBUS9ELHdCQUF3QjtJQUN4QixVQUFVLENBQUMsQ0FBTTtRQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNsQywyQ0FBMkM7WUFDM0MsT0FBTyxDQUFDLElBQUksQ0FDVixJ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QUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFNpZ25hbCwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc0FueVN0cmluZywgaXNEZWZpbmVkLCBpc051bGwgfSBmcm9tICdzaW1wbGUtYm9vbCc7XHJcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnLi4vLi4vdHlwZXMvdXRpbGl0eS50eXBlcyc7XHJcbmltcG9ydCB7IFJlZ0V4cFRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vaW5wdXQtdHJhbnNmb3JtZXJzJztcclxuaW1wb3J0IHsgQ2FzZVRyYW5zZm9ybWVyVHlwZSB9IGZyb20gJy4uL2lucHV0LXR5cGVzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSGV4SW5wdXRNb2RlbEhvc3Qge1xyXG4gIHJlYWRvbmx5IGNhc2U6IFNpZ25hbDxDYXNlVHJhbnNmb3JtZXJUeXBlPjtcclxuICByZWFkb25seSBtYXhEaWdpdHM6IFNpZ25hbDxOdWxsYWJsZTxudW1iZXI+PjtcclxuICByZWFkb25seSB0ZXh0SW5wdXRFbDogU2lnbmFsPEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4gfCB1bmRlZmluZWQ+O1xyXG59XHJcbmV4cG9ydCBjbGFzcyBIZXhJbnB1dE1vZGVsIHtcclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgX2hvc3RDb21wOiBIZXhJbnB1dE1vZGVsSG9zdCkge31cclxuXHJcbiAgLy8hIHZhbHVlIHNldHRlcnMvZ2V0dGVyc1xyXG4gIHJlYWRvbmx5IHZhbHVlID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xyXG4gIHJlYWRvbmx5IHN0cmluZ1ZhbHVlID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLnZhbHVlKCkgPz8gJycpO1xyXG4gIC8vdmFsdWUgd2l0aCB0aGUgaGFzaCBzaWduXHJcbiAgcmVhZG9ubHkgaGFzaFNpZ25WYWx1ZSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gJyMnICsgdGhpcy5zdHJpbmdWYWx1ZSgpKTtcclxuXHJcbiAgLy8hIHdyaXRlIHZhbHVlIGhhbmRsZXJzXHJcbiAgd3JpdGVWYWx1ZSh2OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmICghaXNBbnlTdHJpbmcodikgJiYgIWlzTnVsbCh2KSkge1xyXG4gICAgICAvL3dhcm4gd2hlbiB1c2luZyBub24tc3RyaW5nL25vbi1udWxsIHZhbHVlXHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICBuZXcgRXJyb3IoYEFSRC1XQTAxNjA6IFRyeWluZyB0byBzZXQgPGFyZC1oZXgtaW5wdXQ+J3MgdmFsdWUgdG8gXCIke3Z9XCIgKG9mIHR5cGUgJHt0eXBlb2Ygdn0pLCBleHBlY3RlZCBzdHJpbmcgb3IgbnVsbC5gKVxyXG4gICAgICApO1xyXG4gICAgICAvL25vcm1hbGl6ZSB0aGUgdmFsdWVcclxuICAgICAgdiA9IHY/LnRvU3RyaW5nPy4oKSA/PyBTdHJpbmcodik7XHJcbiAgICB9XHJcbiAgICAvL25vcm1hbGl6ZSB0aGUgdmFsdWVcclxuICAgIHYgPSB2ID8/ICcnO1xyXG4gICAgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJykgdiA9IHYucmVwbGFjZSgnIycsICcnKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5fd3JpdGVWYWx1ZSh2KTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIF93cml0ZVZhbHVlKHY6IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG9sZFZhbCA9IHRoaXMudmFsdWUoKTtcclxuICAgIC8vY29uc3RyYWludHNcclxuICAgIGlmICh2KSB7XHJcbiAgICAgIHYgPSB0aGlzLl9hcHBseUNoYXJhY3RlcnNDb25zdHJhaW50KHYpO1xyXG4gICAgICB2ID0gdGhpcy5fYXBwbHlEaWdpdHNDb25zdHJhaW50KHYsIG9sZFZhbCA/PyAnJyk7XHJcbiAgICAgIHYgPSB0aGlzLl9hcHBseUNhc2VUcmFuc2Zvcm1lcih2KTtcclxuICAgIH1cclxuICAgIC8vdXBkYXRlIHZpZXdcclxuICAgIHRoaXMudmFsdWUuc2V0KHYpO1xyXG4gICAgdGhpcy5fdXBkYXRlSW5wdXRFbGVtZW50KCk7XHJcbiAgICByZXR1cm4gb2xkVmFsICE9PSB2O1xyXG4gIH1cclxuICBjbGVhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuX3dyaXRlVmFsdWUobnVsbCk7XHJcbiAgfVxyXG4gIHJld3JpdGVWYWx1ZUFmdGVySG9zdFVwZGF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3dyaXRlVmFsdWUodGhpcy52YWx1ZSgpKTtcclxuICB9XHJcblxyXG4gIC8vISBpbnB1dCBlbGVtZW50IG1ldGhvZHNcclxuICBfdXBkYXRlSW5wdXRFbGVtZW50KCkge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLl9ob3N0Q29tcC50ZXh0SW5wdXRFbCgpPy5uYXRpdmVFbGVtZW50O1xyXG4gICAgaWYgKCFlbCkgcmV0dXJuO1xyXG4gICAgY29uc3QgY2FyZXRQb3MgPSB0aGlzLmNhcmV0UG9zO1xyXG4gICAgZWwudmFsdWUgPSB0aGlzLnN0cmluZ1ZhbHVlKCk7XHJcbiAgICB0aGlzLmNhcmV0UG9zID0gY2FyZXRQb3M7XHJcbiAgfVxyXG4gIGdldCBjYXJldFBvcygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2hvc3RDb21wLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kID8/IHRoaXMuc3RyaW5nVmFsdWUoKS5sZW5ndGg7XHJcbiAgfVxyXG4gIHNldCBjYXJldFBvcyhwb3M6IG51bWJlcikge1xyXG4gICAgdGhpcy5faG9zdENvbXAudGV4dElucHV0RWwoKT8ubmF0aXZlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShwb3MsIHBvcyk7XHJcbiAgfVxyXG5cclxuICAvLyEgY29uc3RyYWludHNcclxuICBwcml2YXRlIF9jaGFyYWN0ZXJzUmVnZXhUcmFuc2Zvcm1lciA9IG5ldyBSZWdFeHBUcmFuc2Zvcm1lcigvW14wLTlhLWZdL2ksICcnKTtcclxuICBwcml2YXRlIF9hcHBseUNoYXJhY3RlcnNDb25zdHJhaW50KHY6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB7IHRleHQsIGNhcmV0UG9zIH0gPSB0aGlzLl9jaGFyYWN0ZXJzUmVnZXhUcmFuc2Zvcm1lci5hcHBseSh2LCAnJywgdGhpcy5jYXJldFBvcyk7XHJcbiAgICB0aGlzLmNhcmV0UG9zID0gY2FyZXRQb3M7XHJcbiAgICByZXR1cm4gdGV4dDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfYXBwbHlEaWdpdHNDb25zdHJhaW50KHY6IHN0cmluZywgcHJldjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG1heExlbmd0aCA9IHRoaXMuX2hvc3RDb21wLm1heERpZ2l0cygpO1xyXG4gICAgaWYgKCFpc0RlZmluZWQobWF4TGVuZ3RoKSkgcmV0dXJuIHY7XHJcbiAgICBpZiAodi5sZW5ndGggPD0gbWF4TGVuZ3RoKSByZXR1cm4gdjtcclxuICAgIGlmICh2Lmxlbmd0aCA8IHByZXYubGVuZ3RoKSByZXR1cm4gdjtcclxuXHJcbiAgICBsZXQgZmlyc3RDaGFuZ2VJbmRleCA9IDA7XHJcbiAgICB3aGlsZSAoXHJcbiAgICAgIGZpcnN0Q2hhbmdlSW5kZXggPCB2Lmxlbmd0aCAmJlxyXG4gICAgICAoIXByZXYuY2hhckF0KGZpcnN0Q2hhbmdlSW5kZXgpIHx8IHYuY2hhckF0KGZpcnN0Q2hhbmdlSW5kZXgpID09PSBwcmV2LmNoYXJBdChmaXJzdENoYW5nZUluZGV4KSkgJiZcclxuICAgICAgZmlyc3RDaGFuZ2VJbmRleCA8PSBtYXhMZW5ndGhcclxuICAgICkge1xyXG4gICAgICBmaXJzdENoYW5nZUluZGV4Kys7XHJcbiAgICB9XHJcbiAgICBpZiAoZmlyc3RDaGFuZ2VJbmRleCA+IG1heExlbmd0aCkgcmV0dXJuIHYuc3Vic3RyaW5nKDAsIG1heExlbmd0aCk7XHJcblxyXG4gICAgY29uc3Qgb3ZlcmZsb3cgPSB2Lmxlbmd0aCAtIG1heExlbmd0aDtcclxuICAgIHRoaXMuY2FyZXRQb3MgLT0gb3ZlcmZsb3c7XHJcbiAgICByZXR1cm4gdi5zdWJzdHJpbmcoMCwgZmlyc3RDaGFuZ2VJbmRleCkgKyB2LnN1YnN0cmluZyhmaXJzdENoYW5nZUluZGV4ICsgb3ZlcmZsb3cpO1xyXG4gIH1cclxuICBwcml2YXRlIF9hcHBseUNhc2VUcmFuc2Zvcm1lcih2OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuX2hvc3RDb21wLmNhc2UoKSA9PT0gQ2FzZVRyYW5zZm9ybWVyVHlwZS5VcHBlcmNhc2UpIHJldHVybiB2LnRvVXBwZXJDYXNlKCk7XHJcbiAgICBpZiAodGhpcy5faG9zdENvbXAuY2FzZSgpID09PSBDYXNlVHJhbnNmb3JtZXJUeXBlLkxvd2VyY2FzZSkgcmV0dXJuIHYudG9Mb3dlckNhc2UoKTtcclxuICAgIHJldHVybiB2O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,37 +0,0 @@
|
|
|
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: "18.2.13", ngImport: i0, type: ArdiumHexInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ArdiumHexInputModule, declarations: [ArdiumHexInputComponent,
|
|
11
|
-
ArdHexInputPlaceholderTemplateDirective,
|
|
12
|
-
ArdHexInputPrefixTemplateDirective,
|
|
13
|
-
ArdHexInputSuffixTemplateDirective], imports: [CommonModule, ArdiumFormFieldFrameModule, _ClearButtonModule], exports: [ArdiumHexInputComponent,
|
|
14
|
-
ArdHexInputPlaceholderTemplateDirective,
|
|
15
|
-
ArdHexInputPrefixTemplateDirective,
|
|
16
|
-
ArdHexInputSuffixTemplateDirective] }); }
|
|
17
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumHexInputModule, imports: [CommonModule, ArdiumFormFieldFrameModule, _ClearButtonModule] }); }
|
|
18
|
-
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumHexInputModule, decorators: [{
|
|
20
|
-
type: NgModule,
|
|
21
|
-
args: [{
|
|
22
|
-
declarations: [
|
|
23
|
-
ArdiumHexInputComponent,
|
|
24
|
-
ArdHexInputPlaceholderTemplateDirective,
|
|
25
|
-
ArdHexInputPrefixTemplateDirective,
|
|
26
|
-
ArdHexInputSuffixTemplateDirective,
|
|
27
|
-
],
|
|
28
|
-
imports: [CommonModule, ArdiumFormFieldFrameModule, _ClearButtonModule],
|
|
29
|
-
exports: [
|
|
30
|
-
ArdiumHexInputComponent,
|
|
31
|
-
ArdHexInputPlaceholderTemplateDirective,
|
|
32
|
-
ArdHexInputPrefixTemplateDirective,
|
|
33
|
-
ArdHexInputSuffixTemplateDirective,
|
|
34
|
-
],
|
|
35
|
-
}]
|
|
36
|
-
}] });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGV4LWlucHV0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW5wdXRzL2hleC1pbnB1dC9oZXgtaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hFLE9BQU8sRUFDTCx1Q0FBdUMsRUFDdkMsa0NBQWtDLEVBQ2xDLGtDQUFrQyxHQUNuQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOztBQWlCNUYsTUFBTSxPQUFPLG9CQUFvQjsrR0FBcEIsb0JBQW9CO2dIQUFwQixvQkFBb0IsaUJBYjdCLHVCQUF1QjtZQUN2Qix1Q0FBdUM7WUFDdkMsa0NBQWtDO1lBQ2xDLGtDQUFrQyxhQUUxQixZQUFZLEVBQUUsMEJBQTBCLEVBQUUsa0JBQWtCLGFBRXBFLHVCQUF1QjtZQUN2Qix1Q0FBdUM7WUFDdkMsa0NBQWtDO1lBQ2xDLGtDQUFrQztnSEFHekIsb0JBQW9CLFlBUnJCLFlBQVksRUFBRSwwQkFBMEIsRUFBRSxrQkFBa0I7OzRGQVEzRCxvQkFBb0I7a0JBZmhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHVCQUF1Qjt3QkFDdkIsdUNBQXVDO3dCQUN2QyxrQ0FBa0M7d0JBQ2xDLGtDQUFrQztxQkFDbkM7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLDBCQUEwQixFQUFFLGtCQUFrQixDQUFDO29CQUN2RSxPQUFPLEVBQUU7d0JBQ1AsdUJBQXVCO3dCQUN2Qix1Q0FBdUM7d0JBQ3ZDLGtDQUFrQzt3QkFDbEMsa0NBQWtDO3FCQUNuQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFyZGl1bUhleElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9oZXgtaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBBcmRIZXhJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgQXJkSGV4SW5wdXRQcmVmaXhUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRIZXhJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlLFxyXG59IGZyb20gJy4vaGV4LWlucHV0LmRpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyBfQ2xlYXJCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi8uLi9faW50ZXJuYWwvY2xlYXItYnV0dG9uL2NsZWFyLWJ1dHRvbi5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBcmRpdW1Gb3JtRmllbGRGcmFtZU1vZHVsZSB9IGZyb20gJy4uLy4uL2Zvcm0tZmllbGQtZnJhbWUvZm9ybS1maWVsZC1mcmFtZS5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEFyZGl1bUhleElucHV0Q29tcG9uZW50LFxyXG4gICAgQXJkSGV4SW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gICAgQXJkSGV4SW5wdXRQcmVmaXhUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICAgIEFyZEhleElucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBcmRpdW1Gb3JtRmllbGRGcmFtZU1vZHVsZSwgX0NsZWFyQnV0dG9uTW9kdWxlXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBBcmRpdW1IZXhJbnB1dENvbXBvbmVudCxcclxuICAgIEFyZEhleElucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICAgIEFyZEhleElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBBcmRIZXhJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcmRpdW1IZXhJbnB1dE1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from './hex-input.component';
|
|
2
|
-
export * from './hex-input.defaults';
|
|
3
|
-
export * from './hex-input.directives';
|
|
4
|
-
export * from './hex-input.module';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9oZXgtaW5wdXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaGV4LWlucHV0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaGV4LWlucHV0LmRlZmF1bHRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9oZXgtaW5wdXQuZGlyZWN0aXZlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaGV4LWlucHV0Lm1vZHVsZSc7XHJcbiJdfQ==
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from './input.module';
|
|
2
|
-
export * from './input.component';
|
|
3
|
-
export * from './input.directives';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9pbnB1dC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW5wdXQubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2lucHV0LmRpcmVjdGl2ZXMnO1xyXG4iXX0=
|
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
import { Overlay, OverlayConfig, ScrollStrategyOptions } from '@angular/cdk/overlay';
|
|
2
|
-
import { TemplatePortal } from '@angular/cdk/portal';
|
|
3
|
-
import { ChangeDetectionStrategy, Component, HostListener, Inject, Input, TemplateRef, ViewContainerRef, ViewEncapsulation, computed, contentChild, forwardRef, inject, input, output, signal, viewChild, } from '@angular/core';
|
|
4
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
|
-
import { coerceArrayProperty, coerceBooleanProperty } from '@ardium-ui/devkit';
|
|
6
|
-
import { isString } from 'simple-bool';
|
|
7
|
-
import { SimplestItemStorage } from '../../_internal/item-storages/simplest-item-storage';
|
|
8
|
-
import { DropdownPanelAppearance, DropdownPanelVariant } from '../../dropdown-panel/dropdown-panel.types';
|
|
9
|
-
import { ARD_FORM_FIELD_CONTROL } from '../../form-field/form-field-child.token';
|
|
10
|
-
import { FormElementAppearance, FormElementVariant } from '../../types/theming.types';
|
|
11
|
-
import { _SimpleInputComponentBase } from '../_simple-input-base';
|
|
12
|
-
import { InputModel, escapeAndCreateRegex } from './../input-utils';
|
|
13
|
-
import { ARD_INPUT_DEFAULTS } from './input.defaults';
|
|
14
|
-
import { ArdInputLoadingTemplateDirective, ArdInputPlaceholderTemplateDirective, ArdInputPrefixTemplateDirective, ArdInputSuffixTemplateDirective, ArdInputSuggestionTemplateDirective, } from './input.directives';
|
|
15
|
-
import * as i0 from "@angular/core";
|
|
16
|
-
import * as i1 from "@angular/common";
|
|
17
|
-
import * as i2 from "../../form-field-frame/form-field-frame.component";
|
|
18
|
-
import * as i3 from "../../_internal/clear-button/clear-button.component";
|
|
19
|
-
import * as i4 from "../../dropdown-panel/dropdown-panel.component";
|
|
20
|
-
import * as i5 from "@ardium-ui/devkit";
|
|
21
|
-
export class ArdiumInputComponent extends _SimpleInputComponentBase {
|
|
22
|
-
constructor(defaults) {
|
|
23
|
-
super(defaults);
|
|
24
|
-
this.overlay = inject(Overlay);
|
|
25
|
-
this.scrollStrategyOpts = inject(ScrollStrategyOptions);
|
|
26
|
-
this.viewContainerRef = inject(ViewContainerRef);
|
|
27
|
-
//! input view
|
|
28
|
-
this.inputModel = new InputModel(this);
|
|
29
|
-
//! allowlist/denylist of characters
|
|
30
|
-
//use standard string for denylist, prepend with ^ for allowlist
|
|
31
|
-
this.charlistFromInput = input(this._DEFAULTS.charlist
|
|
32
|
-
? escapeAndCreateRegex(this._DEFAULTS.charlist, '', this._DEFAULTS.charlist.startsWith('^'))
|
|
33
|
-
: undefined, {
|
|
34
|
-
alias: 'charlist',
|
|
35
|
-
transform: v => {
|
|
36
|
-
if (!isString(v)) {
|
|
37
|
-
throw new Error('ARD-FT0033: [charlist] must be a non-empty string, got "".');
|
|
38
|
-
}
|
|
39
|
-
const negated = v.startsWith('^');
|
|
40
|
-
return escapeAndCreateRegex(v, '', !negated);
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
|
-
this.charlistCaseInsensitive = input(this._DEFAULTS.charlistCaseInsensitive, {
|
|
44
|
-
transform: v => coerceBooleanProperty(v),
|
|
45
|
-
});
|
|
46
|
-
this.charlist = computed(() => {
|
|
47
|
-
const c = this.charlistFromInput();
|
|
48
|
-
if (!this.charlistCaseInsensitive() || !c) {
|
|
49
|
-
return c;
|
|
50
|
-
}
|
|
51
|
-
return new RegExp(c.source, 'i');
|
|
52
|
-
});
|
|
53
|
-
//! autocomplete
|
|
54
|
-
this.autocomplete = input(undefined);
|
|
55
|
-
this.shouldDisplayAutocomplete = computed(() => !this.disabled() && Boolean(this.autocomplete()));
|
|
56
|
-
//autocomplete event
|
|
57
|
-
this.acceptAutocompleteEvent = output({ alias: 'acceptAutocomplete' });
|
|
58
|
-
//! prefix & suffix
|
|
59
|
-
this.prefixTemplate = contentChild(ArdInputPrefixTemplateDirective);
|
|
60
|
-
this.suffixTemplate = contentChild(ArdInputSuffixTemplateDirective);
|
|
61
|
-
//! placeholder
|
|
62
|
-
this.placeholderTemplate = contentChild(ArdInputPlaceholderTemplateDirective);
|
|
63
|
-
//! suggestions
|
|
64
|
-
this.suggestionStorage = new SimplestItemStorage(this);
|
|
65
|
-
this.valueFrom = input(this._DEFAULTS.suggLabelFrom, { alias: 'suggValueFrom' });
|
|
66
|
-
this.labelFrom = input(this._DEFAULTS.suggLabelFrom, { alias: 'suggLabelFrom' });
|
|
67
|
-
this.acceptSuggestionEvent = output({ alias: 'acceptSuggestion' });
|
|
68
|
-
this.suggestionItems = this.suggestionStorage.items;
|
|
69
|
-
this._suggestionDropdowOpen = signal(false);
|
|
70
|
-
this.shouldDisplaySuggestions = computed(() => !this.disabled() && (this.suggestionItems().length > 0 || this.areSuggestionsLoading()) && this._suggestionDropdowOpen());
|
|
71
|
-
this.areSuggestionsLoading = input(false, { transform: v => coerceBooleanProperty(v) });
|
|
72
|
-
this.suggestionsLoadingText = input(this._DEFAULTS.suggestionsLoadingText);
|
|
73
|
-
this.suggestionTemplate = contentChild(ArdInputSuggestionTemplateDirective);
|
|
74
|
-
this.suggestionLoadingTemplate = contentChild(ArdInputLoadingTemplateDirective);
|
|
75
|
-
//! suggestions overlay
|
|
76
|
-
this.dropdownHost = viewChild('suggestionsHost');
|
|
77
|
-
this.dropdownTemplate = viewChild('suggestionsTemplate', { read: TemplateRef });
|
|
78
|
-
//! suggestion-highligh-related
|
|
79
|
-
this._isMouseBeingUsed = false;
|
|
80
|
-
//! suggestion appearance
|
|
81
|
-
this.dropdownAppearance = input(this._DEFAULTS.dropdownAppearance);
|
|
82
|
-
this.dropdownAppearanceOrDefault = computed(() => {
|
|
83
|
-
if (this.dropdownAppearance())
|
|
84
|
-
return this.dropdownAppearance();
|
|
85
|
-
if (this.appearance() === FormElementAppearance.Outlined)
|
|
86
|
-
return DropdownPanelAppearance.Outlined;
|
|
87
|
-
return DropdownPanelAppearance.Raised;
|
|
88
|
-
});
|
|
89
|
-
this.dropdownVariant = input(this._DEFAULTS.dropdownVariant);
|
|
90
|
-
this.dropdownVariantOrDefault = computed(() => {
|
|
91
|
-
if (this.dropdownVariant())
|
|
92
|
-
return this.dropdownVariant();
|
|
93
|
-
const variant = this.variant();
|
|
94
|
-
if (variant === FormElementVariant.Pill)
|
|
95
|
-
return DropdownPanelVariant.Rounded;
|
|
96
|
-
return variant;
|
|
97
|
-
});
|
|
98
|
-
this.DEFAULTS = this._DEFAULTS;
|
|
99
|
-
}
|
|
100
|
-
set suggestions(value) {
|
|
101
|
-
if (!Array.isArray(value))
|
|
102
|
-
value = coerceArrayProperty(value);
|
|
103
|
-
this.suggestionStorage.setItems(value);
|
|
104
|
-
this._suggestionDropdowOpen.set(true);
|
|
105
|
-
this.suggestionStorage.highlightFirstItem();
|
|
106
|
-
}
|
|
107
|
-
ngAfterViewInit() {
|
|
108
|
-
super.ngAfterViewInit();
|
|
109
|
-
const strategy = this.overlay
|
|
110
|
-
.position()
|
|
111
|
-
.flexibleConnectedTo(this.dropdownHost())
|
|
112
|
-
.withPositions([
|
|
113
|
-
{
|
|
114
|
-
originX: 'start',
|
|
115
|
-
originY: 'bottom',
|
|
116
|
-
overlayX: 'start',
|
|
117
|
-
overlayY: 'top',
|
|
118
|
-
},
|
|
119
|
-
])
|
|
120
|
-
.withPush(false);
|
|
121
|
-
const config = new OverlayConfig({
|
|
122
|
-
positionStrategy: strategy,
|
|
123
|
-
scrollStrategy: this.scrollStrategyOpts.block(),
|
|
124
|
-
hasBackdrop: false,
|
|
125
|
-
});
|
|
126
|
-
this.dropdownOverlay = this.overlay.create(config);
|
|
127
|
-
const portal = new TemplatePortal(this.dropdownTemplate(), this.viewContainerRef);
|
|
128
|
-
this.dropdownOverlay.attach(portal);
|
|
129
|
-
this.setOverlaySize();
|
|
130
|
-
}
|
|
131
|
-
setOverlaySize() {
|
|
132
|
-
const rect = this.dropdownHost()?.nativeElement.getBoundingClientRect();
|
|
133
|
-
this.dropdownOverlay.updateSize({ width: rect?.width });
|
|
134
|
-
}
|
|
135
|
-
getOptionContext(item) {
|
|
136
|
-
return {
|
|
137
|
-
$implicit: item,
|
|
138
|
-
item,
|
|
139
|
-
itemData: item.itemData,
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
onMouseMove() {
|
|
143
|
-
this._isMouseBeingUsed = true;
|
|
144
|
-
}
|
|
145
|
-
onSuggestionMouseEnter(item, event) {
|
|
146
|
-
if (!this._isMouseBeingUsed)
|
|
147
|
-
return;
|
|
148
|
-
this.suggestionStorage.highlightItem(item);
|
|
149
|
-
event.stopPropagation();
|
|
150
|
-
}
|
|
151
|
-
onSuggestionMouseLeave(item, event) {
|
|
152
|
-
if (!this._isMouseBeingUsed)
|
|
153
|
-
return;
|
|
154
|
-
this.suggestionStorage.unhighlightItem(item);
|
|
155
|
-
event.stopPropagation();
|
|
156
|
-
}
|
|
157
|
-
//! suggestion selection
|
|
158
|
-
selectSuggestion(item, event) {
|
|
159
|
-
event.stopPropagation();
|
|
160
|
-
this._selectSuggestion(item);
|
|
161
|
-
}
|
|
162
|
-
_selectSuggestion(item) {
|
|
163
|
-
const selected = this.suggestionStorage.selectItem(item);
|
|
164
|
-
this.writeValue(selected ?? '');
|
|
165
|
-
this.acceptSuggestionEvent.emit(selected);
|
|
166
|
-
//important to do those two things in this exact order
|
|
167
|
-
this.focus();
|
|
168
|
-
this._suggestionDropdowOpen.set(false);
|
|
169
|
-
}
|
|
170
|
-
handleSuggestionClickOutside(event) {
|
|
171
|
-
if (!this.shouldDisplaySuggestions())
|
|
172
|
-
return;
|
|
173
|
-
const target = event.target;
|
|
174
|
-
if (this.viewContainerRef.element.nativeElement.contains(target))
|
|
175
|
-
return;
|
|
176
|
-
this._suggestionDropdowOpen.set(false);
|
|
177
|
-
}
|
|
178
|
-
//! focus override
|
|
179
|
-
onFocus(event) {
|
|
180
|
-
this._suggestionDropdowOpen.set(true);
|
|
181
|
-
if (!this.suggestionStorage.highlightedItem())
|
|
182
|
-
this.suggestionStorage.highlightFirstItem();
|
|
183
|
-
super.onFocus(event);
|
|
184
|
-
}
|
|
185
|
-
//! key press handlers
|
|
186
|
-
onKeyPress(event) {
|
|
187
|
-
switch (event.code) {
|
|
188
|
-
case 'Enter': {
|
|
189
|
-
this._onTabOrEnterPress(event);
|
|
190
|
-
this._onEnterPress(event);
|
|
191
|
-
return;
|
|
192
|
-
}
|
|
193
|
-
case 'Tab': {
|
|
194
|
-
this._onTabOrEnterPress(event);
|
|
195
|
-
return;
|
|
196
|
-
}
|
|
197
|
-
case 'ArrowDown': {
|
|
198
|
-
this._onArrowDownPress(event);
|
|
199
|
-
return;
|
|
200
|
-
}
|
|
201
|
-
case 'ArrowUp': {
|
|
202
|
-
this._onArrowUpPress(event);
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
_onTabOrEnterPress(event) {
|
|
208
|
-
if (!this.shouldDisplayAutocomplete())
|
|
209
|
-
return;
|
|
210
|
-
event.preventDefault();
|
|
211
|
-
this.onInput(this.autocomplete() ?? '');
|
|
212
|
-
this.acceptAutocompleteEvent.emit();
|
|
213
|
-
}
|
|
214
|
-
_onEnterPress(event) {
|
|
215
|
-
if (!this.shouldDisplaySuggestions())
|
|
216
|
-
return;
|
|
217
|
-
const item = this.suggestionStorage.highlightedItem();
|
|
218
|
-
if (!item)
|
|
219
|
-
return;
|
|
220
|
-
event.preventDefault();
|
|
221
|
-
this._selectSuggestion(item);
|
|
222
|
-
}
|
|
223
|
-
_onArrowDownPress(event) {
|
|
224
|
-
if (!this.shouldDisplaySuggestions())
|
|
225
|
-
return;
|
|
226
|
-
event.preventDefault();
|
|
227
|
-
this._isMouseBeingUsed = false;
|
|
228
|
-
this.suggestionStorage.highlightNextItem(+1);
|
|
229
|
-
}
|
|
230
|
-
_onArrowUpPress(event) {
|
|
231
|
-
if (!this.shouldDisplaySuggestions())
|
|
232
|
-
return;
|
|
233
|
-
event.preventDefault();
|
|
234
|
-
this._isMouseBeingUsed = false;
|
|
235
|
-
this.suggestionStorage.highlightNextItem(-1);
|
|
236
|
-
}
|
|
237
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumInputComponent, deps: [{ token: ARD_INPUT_DEFAULTS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
238
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumInputComponent, selector: "ard-input", inputs: { charlistFromInput: { classPropertyName: "charlistFromInput", publicName: "charlist", isSignal: true, isRequired: false, transformFunction: null }, charlistCaseInsensitive: { classPropertyName: "charlistCaseInsensitive", publicName: "charlistCaseInsensitive", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "autocomplete", isSignal: true, isRequired: false, transformFunction: null }, valueFrom: { classPropertyName: "valueFrom", publicName: "suggValueFrom", isSignal: true, isRequired: false, transformFunction: null }, labelFrom: { classPropertyName: "labelFrom", publicName: "suggLabelFrom", isSignal: true, isRequired: false, transformFunction: null }, suggestions: { classPropertyName: "suggestions", publicName: "suggestions", isSignal: false, isRequired: false, transformFunction: null }, areSuggestionsLoading: { classPropertyName: "areSuggestionsLoading", publicName: "areSuggestionsLoading", isSignal: true, isRequired: false, transformFunction: null }, suggestionsLoadingText: { classPropertyName: "suggestionsLoadingText", publicName: "suggestionsLoadingText", isSignal: true, isRequired: false, transformFunction: null }, dropdownAppearance: { classPropertyName: "dropdownAppearance", publicName: "dropdownAppearance", isSignal: true, isRequired: false, transformFunction: null }, dropdownVariant: { classPropertyName: "dropdownVariant", publicName: "dropdownVariant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { acceptAutocompleteEvent: "acceptAutocomplete", acceptSuggestionEvent: "acceptSuggestion" }, host: { listeners: { "window:resize": "setOverlaySize()", "mousemove": "onMouseMove()", "keydown": "onKeyPress($event)" } }, providers: [
|
|
239
|
-
{
|
|
240
|
-
provide: NG_VALUE_ACCESSOR,
|
|
241
|
-
useExisting: forwardRef(() => ArdiumInputComponent),
|
|
242
|
-
multi: true,
|
|
243
|
-
},
|
|
244
|
-
{
|
|
245
|
-
provide: ARD_FORM_FIELD_CONTROL,
|
|
246
|
-
useExisting: ArdiumInputComponent,
|
|
247
|
-
},
|
|
248
|
-
], queries: [{ propertyName: "prefixTemplate", first: true, predicate: ArdInputPrefixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suffixTemplate", first: true, predicate: ArdInputSuffixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "placeholderTemplate", first: true, predicate: ArdInputPlaceholderTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suggestionTemplate", first: true, predicate: ArdInputSuggestionTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suggestionLoadingTemplate", first: true, predicate: ArdInputLoadingTemplateDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "dropdownHost", first: true, predicate: ["suggestionsHost"], descendants: true, isSignal: true }, { propertyName: "dropdownTemplate", first: true, predicate: ["suggestionsTemplate"], descendants: true, read: TemplateRef, isSignal: 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 [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-input\"\r\n #suggestionsHost\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-value]=\"value\"\r\n (click)=\"focus()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayAutocomplete()) {\r\n <div class=\"ard-autocomplete\">{{ autocomplete() }}</div>\r\n }\r\n @if (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()?.template || defaultPlaceholderTemplate\"></ng-template>\r\n }\r\n <input\r\n #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 (copy)=\"onCopy($event)\"\r\n />\r\n </div>\r\n\r\n @if (shouldShowClearButton()) {\r\n <ard-clear-button\r\n [title]=\"clearButtonTitle()\"\r\n (click)=\"onClearButtonClick($event)\"\r\n />\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<ng-template #suggestionsTemplate>\r\n <ard-dropdown-panel\r\n class=\"ard-dropdown-panel ard-input-suggestions-panel\"\r\n role=\"listbox\"\r\n [compact]=\"compact\"\r\n aria-label=\"Suggestions\"\r\n [appearance]=\"dropdownAppearanceOrDefault()\"\r\n [variant]=\"dropdownVariantOrDefault()\"\r\n [isOpen]=\"shouldDisplaySuggestions()\"\r\n (ardClickOutside)=\"handleSuggestionClickOutside($event)\"\r\n (mousemove)=\"onMouseMove()\"\r\n >\r\n @for (item of suggestionItems(); track item.index) {\r\n <div\r\n class=\"ard-option\"\r\n role=\"option\"\r\n [class.ard-option-selected]=\"item.selected()\"\r\n [class.ard-option-highlighted]=\"item.highlighted()\"\r\n [attr.aria-selected]=\"item.selected()\"\r\n (click)=\"selectSuggestion(item, $event)\"\r\n (mouseenter)=\"onSuggestionMouseEnter(item, $event)\"\r\n (mouseleave)=\"onSuggestionMouseLeave(item, $event)\"\r\n >\r\n <span class=\"ard-option-label\">\r\n <ng-template #defaultOptionTemplate>\r\n {{ item.label() }}\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"suggestionTemplate()?.template || defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"getOptionContext(item)\"\r\n ></ng-template>\r\n </span>\r\n </div>\r\n }\r\n @if (areSuggestionsLoading()) {\r\n <ng-template #defaultLoadingPlaceholderTemplate>\r\n <div class=\"ard-option ard-option-disabled\">{{ suggestionsLoadingText() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"suggestionLoadingTemplate()?.template || defaultLoadingPlaceholderTemplate\"></ng-template>\r\n }\r\n </ard-dropdown-panel>\r\n</ng-template>\r\n", styles: [".ard-input-container{position:relative}.ard-placeholder{position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;pointer-events:none}.ard-text-align-left input,.ard-text-align-left .ard-placeholder{text-align:left}.ard-text-align-center input,.ard-text-align-center .ard-placeholder{text-align:center}.ard-text-align-right input,.ard-text-align-right .ard-placeholder{text-align:right}.ard-autocomplete{position:absolute}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ArdiumFormFieldFrameComponent, selector: "ard-form-field-frame", inputs: ["hasError", "isSuccess", "isFocused", "appearance", "variant", "compact", "prefixTemplate", "suffixTemplate"] }, { kind: "component", type: i3._ClearButtonComponent, selector: "ard-clear-button" }, { kind: "component", type: i4.ArdiumDropdownPanelComponent, selector: "ard-dropdown-panel", inputs: ["panelId", "headerTemplate", "footerTemplate", "filterValue", "appearance", "variant", "compact", "isOpen"], outputs: ["scroll", "scrollToEnd"] }, { kind: "directive", type: i5.ArdiumClickOutsideDirective, selector: "[ardClickOutside]", outputs: ["ardClickOutside"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
249
|
-
}
|
|
250
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumInputComponent, decorators: [{
|
|
251
|
-
type: Component,
|
|
252
|
-
args: [{ selector: 'ard-input', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
253
|
-
{
|
|
254
|
-
provide: NG_VALUE_ACCESSOR,
|
|
255
|
-
useExisting: forwardRef(() => ArdiumInputComponent),
|
|
256
|
-
multi: true,
|
|
257
|
-
},
|
|
258
|
-
{
|
|
259
|
-
provide: ARD_FORM_FIELD_CONTROL,
|
|
260
|
-
useExisting: ArdiumInputComponent,
|
|
261
|
-
},
|
|
262
|
-
], template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [isFocused]=\"isFocused()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-input\"\r\n #suggestionsHost\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-value]=\"value\"\r\n (click)=\"focus()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayAutocomplete()) {\r\n <div class=\"ard-autocomplete\">{{ autocomplete() }}</div>\r\n }\r\n @if (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()?.template || defaultPlaceholderTemplate\"></ng-template>\r\n }\r\n <input\r\n #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 (copy)=\"onCopy($event)\"\r\n />\r\n </div>\r\n\r\n @if (shouldShowClearButton()) {\r\n <ard-clear-button\r\n [title]=\"clearButtonTitle()\"\r\n (click)=\"onClearButtonClick($event)\"\r\n />\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<ng-template #suggestionsTemplate>\r\n <ard-dropdown-panel\r\n class=\"ard-dropdown-panel ard-input-suggestions-panel\"\r\n role=\"listbox\"\r\n [compact]=\"compact\"\r\n aria-label=\"Suggestions\"\r\n [appearance]=\"dropdownAppearanceOrDefault()\"\r\n [variant]=\"dropdownVariantOrDefault()\"\r\n [isOpen]=\"shouldDisplaySuggestions()\"\r\n (ardClickOutside)=\"handleSuggestionClickOutside($event)\"\r\n (mousemove)=\"onMouseMove()\"\r\n >\r\n @for (item of suggestionItems(); track item.index) {\r\n <div\r\n class=\"ard-option\"\r\n role=\"option\"\r\n [class.ard-option-selected]=\"item.selected()\"\r\n [class.ard-option-highlighted]=\"item.highlighted()\"\r\n [attr.aria-selected]=\"item.selected()\"\r\n (click)=\"selectSuggestion(item, $event)\"\r\n (mouseenter)=\"onSuggestionMouseEnter(item, $event)\"\r\n (mouseleave)=\"onSuggestionMouseLeave(item, $event)\"\r\n >\r\n <span class=\"ard-option-label\">\r\n <ng-template #defaultOptionTemplate>\r\n {{ item.label() }}\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"suggestionTemplate()?.template || defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"getOptionContext(item)\"\r\n ></ng-template>\r\n </span>\r\n </div>\r\n }\r\n @if (areSuggestionsLoading()) {\r\n <ng-template #defaultLoadingPlaceholderTemplate>\r\n <div class=\"ard-option ard-option-disabled\">{{ suggestionsLoadingText() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"suggestionLoadingTemplate()?.template || defaultLoadingPlaceholderTemplate\"></ng-template>\r\n }\r\n </ard-dropdown-panel>\r\n</ng-template>\r\n", styles: [".ard-input-container{position:relative}.ard-placeholder{position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;pointer-events:none}.ard-text-align-left input,.ard-text-align-left .ard-placeholder{text-align:left}.ard-text-align-center input,.ard-text-align-center .ard-placeholder{text-align:center}.ard-text-align-right input,.ard-text-align-right .ard-placeholder{text-align:right}.ard-autocomplete{position:absolute}\n"] }]
|
|
263
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
264
|
-
type: Inject,
|
|
265
|
-
args: [ARD_INPUT_DEFAULTS]
|
|
266
|
-
}] }], propDecorators: { suggestions: [{
|
|
267
|
-
type: Input
|
|
268
|
-
}], setOverlaySize: [{
|
|
269
|
-
type: HostListener,
|
|
270
|
-
args: ['window:resize']
|
|
271
|
-
}], onMouseMove: [{
|
|
272
|
-
type: HostListener,
|
|
273
|
-
args: ['mousemove']
|
|
274
|
-
}], onKeyPress: [{
|
|
275
|
-
type: HostListener,
|
|
276
|
-
args: ['keydown', ['$event']]
|
|
277
|
-
}] } });
|
|
278
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaW5wdXQvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixPQUFPLEVBQUUsYUFBYSxFQUFjLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsbUJBQW1CLEVBQTJCLE1BQU0scURBQXFELENBQUM7QUFDbkgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFakYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdEYs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c0I7NEJBQy9CLFdBQVcsc0JBQXNCO3lCQUNsQztxQkFDRjs7MEJBWVksTUFBTTsyQkFBQyxrQkFBa0I7eUNBZ0VsQyxXQUFXO3NCQURkLEtBQUs7Z0JBMkROLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlO2dCQWlCN0IsV0FBVztzQkFEVixZQUFZO3VCQUFDLFdBQVc7Z0JBa0V6QixVQUFVO3NCQURULFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYsIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBjb21wdXRlZCxcclxuICBjb250ZW50Q2hpbGQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBpbmplY3QsXHJcbiAgaW5wdXQsXHJcbiAgb3V0cHV0LFxyXG4gIHNpZ25hbCxcclxuICB2aWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBjb2VyY2VBcnJheVByb3BlcnR5LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XHJcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xyXG5pbXBvcnQgeyBTaW1wbGVzdEl0ZW1TdG9yYWdlLCBTaW1wbGVzdEl0ZW1TdG9yYWdlSG9zdCB9IGZyb20gJy4uLy4uL19pbnRlcm5hbC9pdGVtLXN0b3JhZ2VzL3NpbXBsZXN0LWl0ZW0tc3RvcmFnZSc7XHJcbmltcG9ydCB7IERyb3Bkb3duUGFuZWxBcHBlYXJhbmNlLCBEcm9wZG93blBhbmVsVmFyaWFudCB9IGZyb20gJy4uLy4uL2Ryb3Bkb3duLXBhbmVsL2Ryb3Bkb3duLXBhbmVsLnR5cGVzJztcclxuaW1wb3J0IHsgQVJEX0ZPUk1fRklFTERfQ09OVFJPTCB9IGZyb20gJy4uLy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZC1jaGlsZC50b2tlbic7XHJcbmltcG9ydCB7IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0gfSBmcm9tICcuLi8uLi90eXBlcy9pdGVtLXN0b3JhZ2UudHlwZXMnO1xyXG5pbXBvcnQgeyBGb3JtRWxlbWVudEFwcGVhcmFuY2UsIEZvcm1FbGVtZW50VmFyaWFudCB9IGZyb20gJy4uLy4uL3R5cGVzL3RoZW1pbmcudHlwZXMnO1xyXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xyXG5pbXBvcnQgeyBfU2ltcGxlSW5wdXRDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vX3NpbXBsZS1pbnB1dC1iYXNlJztcclxuaW1wb3J0IHsgT3B0aW9uQ29udGV4dCB9IGZyb20gJy4vLi4vLi4vdHlwZXMvaXRlbS1zdG9yYWdlLnR5cGVzJztcclxuaW1wb3J0IHsgSW5wdXRNb2RlbCwgSW5wdXRNb2RlbEhvc3QsIGVzY2FwZUFuZENyZWF0ZVJlZ2V4IH0gZnJvbSAnLi8uLi9pbnB1dC11dGlscyc7XHJcbmltcG9ydCB7IEFSRF9JTlBVVF9ERUZBVUxUUywgQXJkSW5wdXREZWZhdWx0cyB9IGZyb20gJy4vaW5wdXQuZGVmYXVsdHMnO1xyXG5pbXBvcnQge1xyXG4gIEFyZElucHV0TG9hZGluZ1RlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZElucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRJbnB1dFByZWZpeFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZElucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgQXJkSW5wdXRTdWdnZXN0aW9uVGVtcGxhdGVEaXJlY3RpdmUsXHJcbn0gZnJvbSAnLi9pbnB1dC5kaXJlY3RpdmVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXJkLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFyZGl1bUlucHV0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBBUkRfRk9STV9GSUVMRF9DT05UUk9MLFxyXG4gICAgICB1c2VFeGlzdGluZzogQXJkaXVtSW5wdXRDb21wb25lbnQsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcmRpdW1JbnB1dENvbXBvbmVudFxyXG4gIGV4dGVuZHMgX1NpbXBsZUlucHV0Q29tcG9uZW50QmFzZVxyXG4gIGltcGxlbWVudHMgSW5wdXRNb2RlbEhvc3QsIFNpbXBsZXN0SXRlbVN0b3JhZ2VIb3N0LCBBZnRlclZpZXdJbml0XHJcbntcclxuICBwcml2YXRlIHJlYWRvbmx5IG92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxTdHJhdGVneU9wdHMgPSBpbmplY3QoU2Nyb2xsU3RyYXRlZ3lPcHRpb25zKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XHJcblxyXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfREVGQVVMVFMhOiBBcmRJbnB1dERlZmF1bHRzO1xyXG4gIHB1YmxpYyByZWFkb25seSBERUZBVUxUUyE6IEFyZElucHV0RGVmYXVsdHM7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBUkRfSU5QVVRfREVGQVVMVFMpIGRlZmF1bHRzOiBBcmRJbnB1dERlZmF1bHRzKSB7XHJcbiAgICBzdXBlcihkZWZhdWx0cyk7XHJcblxyXG4gICAgdGhpcy5ERUZBVUxUUyA9IHRoaXMuX0RFRkFVTFRTO1xyXG4gIH1cclxuXHJcbiAgLy8hIGlucHV0IHZpZXdcclxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgaW5wdXRNb2RlbCA9IG5ldyBJbnB1dE1vZGVsKHRoaXMpO1xyXG5cclxuICAvLyEgYWxsb3dsaXN0L2RlbnlsaXN0IG9mIGNoYXJhY3RlcnNcclxuICAvL3VzZSBzdGFuZGFyZCBzdHJpbmcgZm9yIGRlbnlsaXN0LCBwcmVwZW5kIHdpdGggXiBmb3IgYWxsb3dsaXN0XHJcbiAgcmVhZG9ubHkgY2hhcmxpc3RGcm9tSW5wdXQgPSBpbnB1dDxSZWdFeHAgfCB1bmRlZmluZWQsIHN0cmluZz4oXHJcbiAgICB0aGlzLl9ERUZBVUxUUy5jaGFybGlzdFxyXG4gICAgICA/IGVzY2FwZUFuZENyZWF0ZVJlZ2V4KHRoaXMuX0RFRkFVTFRTLmNoYXJsaXN0LCAnJywgdGhpcy5fREVGQVVMVFMuY2hhcmxpc3Quc3RhcnRzV2l0aCgnXicpKVxyXG4gICAgICA6IHVuZGVmaW5lZCxcclxuICAgIHtcclxuICAgICAgYWxpYXM6ICdjaGFybGlzdCcsXHJcbiAgICAgIHRyYW5zZm9ybTogdiA9PiB7XHJcbiAgICAgICAgaWYgKCFpc1N0cmluZyh2KSkge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBUkQtRlQwMDMzOiBbY2hhcmxpc3RdIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nLCBnb3QgXCJcIi4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbmVnYXRlZCA9IHYuc3RhcnRzV2l0aCgnXicpO1xyXG4gICAgICAgIHJldHVybiBlc2NhcGVBbmRDcmVhdGVSZWdleCh2LCAnJywgIW5lZ2F0ZWQpO1xyXG4gICAgICB9LFxyXG4gICAgfVxyXG4gICk7XHJcbiAgcmVhZG9ubHkgY2hhcmxpc3RDYXNlSW5zZW5zaXRpdmUgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLmNoYXJsaXN0Q2FzZUluc2Vuc2l0aXZlLCB7XHJcbiAgICB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpLFxyXG4gIH0pO1xyXG5cclxuICByZWFkb25seSBjaGFybGlzdCA9IGNvbXB1dGVkPFJlZ0V4cCB8IHVuZGVmaW5lZD4oKCkgPT4ge1xyXG4gICAgY29uc3QgYyA9IHRoaXMuY2hhcmxpc3RGcm9tSW5wdXQoKTtcclxuICAgIGlmICghdGhpcy5jaGFybGlzdENhc2VJbnNlbnNpdGl2ZSgpIHx8ICFjKSB7XHJcbiAgICAgIHJldHVybiBjO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoYy5zb3VyY2UsICdpJyk7XHJcbiAgfSk7XHJcblxyXG4gIC8vISBhdXRvY29tcGxldGVcclxuICByZWFkb25seSBhdXRvY29tcGxldGUgPSBpbnB1dDxOdWxsYWJsZTxzdHJpbmc+Pih1bmRlZmluZWQpO1xyXG5cclxuICByZWFkb25seSBzaG91bGREaXNwbGF5QXV0b2NvbXBsZXRlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gIXRoaXMuZGlzYWJsZWQoKSAmJiBCb29sZWFuKHRoaXMuYXV0b2NvbXBsZXRlKCkpKTtcclxuXHJcbiAgLy9hdXRvY29tcGxldGUgZXZlbnRcclxuICByZWFkb25seSBhY2NlcHRBdXRvY29tcGxldGVFdmVudCA9IG91dHB1dCh7IGFsaWFzOiAnYWNjZXB0QXV0b2NvbXBsZXRlJyB9KTtcclxuXHJcbiAgLy8hIHByZWZpeCAmIHN1ZmZpeFxyXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHByZWZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHN1ZmZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZElucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG5cclxuICAvLyEgcGxhY2Vob2xkZXJcclxuICBvdmVycmlkZSByZWFkb25seSBwbGFjZWhvbGRlclRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZElucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSk7XHJcblxyXG4gIC8vISBzdWdnZXN0aW9uc1xyXG4gIHJlYWRvbmx5IHN1Z2dlc3Rpb25TdG9yYWdlID0gbmV3IFNpbXBsZXN0SXRlbVN0b3JhZ2UodGhpcyk7XHJcblxyXG4gIHJlYWRvbmx5IHZhbHVlRnJvbSA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHRoaXMuX0RFRkFVTFRTLnN1Z2dMYWJlbEZyb20sIHsgYWxpYXM6ICdzdWdnVmFsdWVGcm9tJyB9KTtcclxuICByZWFkb25seSBsYWJlbEZyb20gPSBpbnB1dDxOdWxsYWJsZTxzdHJpbmc+Pih0aGlzLl9ERUZBVUxUUy5zdWdnTGFiZWxGcm9tLCB7IGFsaWFzOiAnc3VnZ0xhYmVsRnJvbScgfSk7XHJcblxyXG4gIHJlYWRvbmx5IGFjY2VwdFN1Z2dlc3Rpb25FdmVudCA9IG91dHB1dDxhbnk+KHsgYWxpYXM6ICdhY2NlcHRTdWdnZXN0aW9uJyB9KTtcclxuXHJcbiAgcmVhZG9ubHkgc3VnZ2VzdGlvbkl0ZW1zID0gdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5pdGVtcztcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgc3VnZ2VzdGlvbnModmFsdWU6IGFueSkge1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkgdmFsdWUgPSBjb2VyY2VBcnJheVByb3BlcnR5KHZhbHVlKTtcclxuXHJcbiAgICB0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLnNldEl0ZW1zKHZhbHVlKTtcclxuXHJcbiAgICB0aGlzLl9zdWdnZXN0aW9uRHJvcGRvd09wZW4uc2V0KHRydWUpO1xyXG4gICAgdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5oaWdobGlnaHRGaXJzdEl0ZW0oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1Z2dlc3Rpb25Ecm9wZG93T3BlbiA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIHJlYWRvbmx5IHNob3VsZERpc3BsYXlTdWdnZXN0aW9ucyA9IGNvbXB1dGVkKFxyXG4gICAgKCkgPT4gIXRoaXMuZGlzYWJsZWQoKSAmJiAodGhpcy5zdWdnZXN0aW9uSXRlbXMoKS5sZW5ndGggPiAwIHx8IHRoaXMuYXJlU3VnZ2VzdGlvbnNMb2FkaW5nKCkpICYmIHRoaXMuX3N1Z2dlc3Rpb25Ecm9wZG93T3BlbigpXHJcbiAgKTtcclxuXHJcbiAgcmVhZG9ubHkgYXJlU3VnZ2VzdGlvbnNMb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbiwgYW55PihmYWxzZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xyXG4gIHJlYWRvbmx5IHN1Z2dlc3Rpb25zTG9hZGluZ1RleHQgPSBpbnB1dDxzdHJpbmc+KHRoaXMuX0RFRkFVTFRTLnN1Z2dlc3Rpb25zTG9hZGluZ1RleHQpO1xyXG5cclxuICByZWFkb25seSBzdWdnZXN0aW9uVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkSW5wdXRTdWdnZXN0aW9uVGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IHN1Z2dlc3Rpb25Mb2FkaW5nVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkSW5wdXRMb2FkaW5nVGVtcGxhdGVEaXJlY3RpdmUpO1xyXG5cclxuICAvLyEgc3VnZ2VzdGlvbnMgb3ZlcmxheVxyXG4gIHJlYWRvbmx5IGRyb3Bkb3duSG9zdCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pj4oJ3N1Z2dlc3Rpb25zSG9zdCcpO1xyXG4gIHJlYWRvbmx5IGRyb3Bkb3duVGVtcGxhdGUgPSB2aWV3Q2hpbGQoJ3N1Z2dlc3Rpb25zVGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pO1xyXG5cclxuICBwcml2YXRlIGRyb3Bkb3duT3ZlcmxheSE6IE92ZXJsYXlSZWY7XHJcblxyXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG5cclxuICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XHJcbiAgICAgIC5wb3NpdGlvbigpXHJcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZHJvcGRvd25Ib3N0KCkhKVxyXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcclxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXHJcbiAgICAgICAgfSBhcyBDb25uZWN0ZWRQb3NpdGlvbixcclxuICAgICAgXSlcclxuICAgICAgLndpdGhQdXNoKGZhbHNlKTtcclxuXHJcbiAgICBjb25zdCBjb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHN0cmF0ZWd5LFxyXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5zY3JvbGxTdHJhdGVneU9wdHMuYmxvY2soKSxcclxuICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5kcm9wZG93bk92ZXJsYXkgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZyk7XHJcblxyXG4gICAgY29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuZHJvcGRvd25UZW1wbGF0ZSgpISwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgIHRoaXMuZHJvcGRvd25PdmVybGF5LmF0dGFjaChwb3J0YWwpO1xyXG5cclxuICAgIHRoaXMuc2V0T3ZlcmxheVNpemUoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG4gIHNldE92ZXJsYXlTaXplKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcmVjdCA9IHRoaXMuZHJvcGRvd25Ib3N0KCk/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICB0aGlzLmRyb3Bkb3duT3ZlcmxheS51cGRhdGVTaXplKHsgd2lkdGg6IHJlY3Q/LndpZHRoIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3B0aW9uQ29udGV4dChpdGVtOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtKTogT3B0aW9uQ29udGV4dDxBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAkaW1wbGljaXQ6IGl0ZW0sXHJcbiAgICAgIGl0ZW0sXHJcbiAgICAgIGl0ZW1EYXRhOiBpdGVtLml0ZW1EYXRhLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8vISBzdWdnZXN0aW9uLWhpZ2hsaWdoLXJlbGF0ZWRcclxuICBwcml2YXRlIF9pc01vdXNlQmVpbmdVc2VkID0gZmFsc2U7XHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vtb3ZlJylcclxuICBvbk1vdXNlTW92ZSgpIHtcclxuICAgIHRoaXMuX2lzTW91c2VCZWluZ1VzZWQgPSB0cnVlO1xyXG4gIH1cclxuICBvblN1Z2dlc3Rpb25Nb3VzZUVudGVyKGl0ZW06IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0sIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX2lzTW91c2VCZWluZ1VzZWQpIHJldHVybjtcclxuICAgIHRoaXMuc3VnZ2VzdGlvblN0b3JhZ2UuaGlnaGxpZ2h0SXRlbShpdGVtKTtcclxuXHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcbiAgb25TdWdnZXN0aW9uTW91c2VMZWF2ZShpdGVtOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtLCBldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9pc01vdXNlQmVpbmdVc2VkKSByZXR1cm47XHJcbiAgICB0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLnVuaGlnaGxpZ2h0SXRlbShpdGVtKTtcclxuXHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIC8vISBzdWdnZXN0aW9uIHNlbGVjdGlvblxyXG4gIHNlbGVjdFN1Z2dlc3Rpb24oaXRlbTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSwgZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIHRoaXMuX3NlbGVjdFN1Z2dlc3Rpb24oaXRlbSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3NlbGVjdFN1Z2dlc3Rpb24oaXRlbTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLnNlbGVjdEl0ZW0oaXRlbSk7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUoc2VsZWN0ZWQgPz8gJycpO1xyXG5cclxuICAgIHRoaXMuYWNjZXB0U3VnZ2VzdGlvbkV2ZW50LmVtaXQoc2VsZWN0ZWQpO1xyXG5cclxuICAgIC8vaW1wb3J0YW50IHRvIGRvIHRob3NlIHR3byB0aGluZ3MgaW4gdGhpcyBleGFjdCBvcmRlclxyXG4gICAgdGhpcy5mb2N1cygpO1xyXG4gICAgdGhpcy5fc3VnZ2VzdGlvbkRyb3Bkb3dPcGVuLnNldChmYWxzZSk7XHJcbiAgfVxyXG4gIGhhbmRsZVN1Z2dlc3Rpb25DbGlja091dHNpZGUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zaG91bGREaXNwbGF5U3VnZ2VzdGlvbnMoKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmICh0aGlzLnZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCkpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLl9zdWdnZXN0aW9uRHJvcGRvd09wZW4uc2V0KGZhbHNlKTtcclxuICB9XHJcbiAgLy8hIHN1Z2dlc3Rpb24gYXBwZWFyYW5jZVxyXG4gIHJlYWRvbmx5IGRyb3Bkb3duQXBwZWFyYW5jZSA9IGlucHV0PE51bGxhYmxlPERyb3Bkb3duUGFuZWxBcHBlYXJhbmNlPj4odGhpcy5fREVGQVVMVFMuZHJvcGRvd25BcHBlYXJhbmNlKTtcclxuICByZWFkb25seSBkcm9wZG93bkFwcGVhcmFuY2VPckRlZmF1bHQgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5kcm9wZG93bkFwcGVhcmFuY2UoKSkgcmV0dXJuIHRoaXMuZHJvcGRvd25BcHBlYXJhbmNlKCkhO1xyXG4gICAgaWYgKHRoaXMuYXBwZWFyYW5jZSgpID09PSBGb3JtRWxlbWVudEFwcGVhcmFuY2UuT3V0bGluZWQpIHJldHVybiBEcm9wZG93blBhbmVsQXBwZWFyYW5jZS5PdXRsaW5lZDtcclxuICAgIHJldHVybiBEcm9wZG93blBhbmVsQXBwZWFyYW5jZS5SYWlzZWQ7XHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgZHJvcGRvd25WYXJpYW50ID0gaW5wdXQ8TnVsbGFibGU8RHJvcGRvd25QYW5lbFZhcmlhbnQ+Pih0aGlzLl9ERUZBVUxUUy5kcm9wZG93blZhcmlhbnQpO1xyXG4gIHJlYWRvbmx5IGRyb3Bkb3duVmFyaWFudE9yRGVmYXVsdCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGlmICh0aGlzLmRyb3Bkb3duVmFyaWFudCgpKSByZXR1cm4gdGhpcy5kcm9wZG93blZhcmlhbnQoKSE7XHJcbiAgICBjb25zdCB2YXJpYW50ID0gdGhpcy52YXJpYW50KCk7XHJcbiAgICBpZiAodmFyaWFudCA9PT0gRm9ybUVsZW1lbnRWYXJpYW50LlBpbGwpIHJldHVybiBEcm9wZG93blBhbmVsVmFyaWFudC5Sb3VuZGVkO1xyXG4gICAgcmV0dXJuIHZhcmlhbnQ7XHJcbiAgfSk7XHJcblxyXG4gIC8vISBmb2N1cyBvdmVycmlkZVxyXG4gIG92ZXJyaWRlIG9uRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1Z2dlc3Rpb25Ecm9wZG93T3Blbi5zZXQodHJ1ZSk7XHJcbiAgICBpZiAoIXRoaXMuc3VnZ2VzdGlvblN0b3JhZ2UuaGlnaGxpZ2h0ZWRJdGVtKCkpIHRoaXMuc3VnZ2VzdGlvblN0b3JhZ2UuaGlnaGxpZ2h0Rmlyc3RJdGVtKCk7XHJcblxyXG4gICAgc3VwZXIub25Gb2N1cyhldmVudCk7XHJcbiAgfVxyXG5cclxuICAvLyEga2V5IHByZXNzIGhhbmRsZXJzXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgb25LZXlQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgc3dpdGNoIChldmVudC5jb2RlKSB7XHJcbiAgICAgIGNhc2UgJ0VudGVyJzoge1xyXG4gICAgICAgIHRoaXMuX29uVGFiT3JFbnRlclByZXNzKGV2ZW50KTtcclxuICAgICAgICB0aGlzLl9vbkVudGVyUHJlc3MoZXZlbnQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdUYWInOiB7XHJcbiAgICAgICAgdGhpcy5fb25UYWJPckVudGVyUHJlc3MoZXZlbnQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOiB7XHJcbiAgICAgICAgdGhpcy5fb25BcnJvd0Rvd25QcmVzcyhldmVudCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0Fycm93VXAnOiB7XHJcbiAgICAgICAgdGhpcy5fb25BcnJvd1VwUHJlc3MoZXZlbnQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBwcm90ZWN0ZWQgX29uVGFiT3JFbnRlclByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuc2hvdWxkRGlzcGxheUF1dG9jb21wbGV0ZSgpKSByZXR1cm47XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIHRoaXMub25JbnB1dCh0aGlzLmF1dG9jb21wbGV0ZSgpID8/ICcnKTtcclxuICAgIHRoaXMuYWNjZXB0QXV0b2NvbXBsZXRlRXZlbnQuZW1pdCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9vbkVudGVyUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zaG91bGREaXNwbGF5U3VnZ2VzdGlvbnMoKSkgcmV0dXJuO1xyXG4gICAgY29uc3QgaXRlbSA9IHRoaXMuc3VnZ2VzdGlvblN0b3JhZ2UuaGlnaGxpZ2h0ZWRJdGVtKCk7XHJcbiAgICBpZiAoIWl0ZW0pIHJldHVybjtcclxuXHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5fc2VsZWN0U3VnZ2VzdGlvbihpdGVtKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfb25BcnJvd0Rvd25QcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNob3VsZERpc3BsYXlTdWdnZXN0aW9ucygpKSByZXR1cm47XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIHRoaXMuX2lzTW91c2VCZWluZ1VzZWQgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLmhpZ2hsaWdodE5leHRJdGVtKCsxKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfb25BcnJvd1VwUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zaG91bGREaXNwbGF5U3VnZ2VzdGlvbnMoKSkgcmV0dXJuO1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICB0aGlzLl9pc01vdXNlQmVpbmdVc2VkID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5oaWdobGlnaHROZXh0SXRlbSgtMSk7XHJcbiAgfVxyXG59XHJcbiIsIjxhcmQtZm9ybS1maWVsZC1mcmFtZVxyXG4gIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2UoKVwiXHJcbiAgW3ZhcmlhbnRdPVwidmFyaWFudCgpXCJcclxuICBbY29tcGFjdF09XCJjb21wYWN0KClcIlxyXG4gIFtpc0ZvY3VzZWRdPVwiaXNGb2N1c2VkKClcIlxyXG4gIFtoYXNFcnJvcl09XCJoYXNFcnJvcigpXCJcclxuICBbaXNTdWNjZXNzXT1cImlzU3VjY2VzcygpXCJcclxuICBbcHJlZml4VGVtcGxhdGVdPVwicHJlZml4VGVtcGxhdGUoKT8udGVtcGxhdGVcIlxyXG4gIFtzdWZmaXhUZW1wbGF0ZV09XCJzdWZmaXhUZW1wbGF0ZSgpPy50ZW1wbGF0ZVwiXHJcbj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImFyZC1pbnB1dFwiXHJcbiAgICAjc3VnZ2VzdGlvbnNIb3N0XHJcbiAgICBbbmdDbGFzc109XCJuZ0NsYXNzZXMoKVwiXHJcbiAgICBbY2xhc3MuYXJkLWhhcy12YWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICAoY2xpY2spPVwiZm9jdXMoKVwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1pbnB1dC1jb250YWluZXJcIj5cclxuICAgICAgQGlmIChzaG91bGREaXNwbGF5QXV0b2NvbXBsZXRlKCkpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWF1dG9jb21wbGV0ZVwiPnt7IGF1dG9jb21wbGV0ZSgpIH19PC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChzaG91bGREaXNwbGF5UGxhY2Vob2xkZXIoKSkge1xyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFBsYWNlaG9sZGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLXBsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIoKSB9fTwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJwbGFjZWhvbGRlclRlbXBsYXRlKCk/LnRlbXBsYXRlIHx8IGRlZmF1bHRQbGFjZWhvbGRlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgfVxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICAjdGV4dElucHV0XHJcbiAgICAgICAgI2ZvY3VzYWJsZUVsZW1lbnRcclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgW2F0dHIuaWRdPVwiaW5wdXRJZCgpXCJcclxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJJbmRleCgpXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxyXG4gICAgICAgIChpbnB1dCk9XCJvbklucHV0KHRleHRJbnB1dC52YWx1ZSlcIlxyXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxyXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgICAoY29weSk9XCJvbkNvcHkoJGV2ZW50KVwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICBAaWYgKHNob3VsZFNob3dDbGVhckJ1dHRvbigpKSB7XHJcbiAgICAgIDxhcmQtY2xlYXItYnV0dG9uXHJcbiAgICAgICAgW3RpdGxlXT1cImNsZWFyQnV0dG9uVGl0bGUoKVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXJCdXR0b25DbGljaygkZXZlbnQpXCJcclxuICAgICAgLz5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9hcmQtZm9ybS1maWVsZC1mcmFtZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjc3VnZ2VzdGlvbnNUZW1wbGF0ZT5cclxuICA8YXJkLWRyb3Bkb3duLXBhbmVsXHJcbiAgICBjbGFzcz1cImFyZC1kcm9wZG93bi1wYW5lbCBhcmQtaW5wdXQtc3VnZ2VzdGlvbnMtcGFuZWxcIlxyXG4gICAgcm9sZT1cImxpc3Rib3hcIlxyXG4gICAgW2NvbXBhY3RdPVwiY29tcGFjdFwiXHJcbiAgICBhcmlhLWxhYmVsPVwiU3VnZ2VzdGlvbnNcIlxyXG4gICAgW2FwcGVhcmFuY2VdPVwiZHJvcGRvd25BcHBlYXJhbmNlT3JEZWZhdWx0KClcIlxyXG4gICAgW3ZhcmlhbnRdPVwiZHJvcGRvd25WYXJpYW50T3JEZWZhdWx0KClcIlxyXG4gICAgW2lzT3Blbl09XCJzaG91bGREaXNwbGF5U3VnZ2VzdGlvbnMoKVwiXHJcbiAgICAoYXJkQ2xpY2tPdXRzaWRlKT1cImhhbmRsZVN1Z2dlc3Rpb25DbGlja091dHNpZGUoJGV2ZW50KVwiXHJcbiAgICAobW91c2Vtb3ZlKT1cIm9uTW91c2VNb3ZlKClcIlxyXG4gID5cclxuICAgIEBmb3IgKGl0ZW0gb2Ygc3VnZ2VzdGlvbkl0ZW1zKCk7IHRyYWNrIGl0ZW0uaW5kZXgpIHtcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiYXJkLW9wdGlvblwiXHJcbiAgICAgICAgcm9sZT1cIm9wdGlvblwiXHJcbiAgICAgICAgW2NsYXNzLmFyZC1vcHRpb24tc2VsZWN0ZWRdPVwiaXRlbS5zZWxlY3RlZCgpXCJcclxuICAgICAgICBbY2xhc3MuYXJkLW9wdGlvbi1oaWdobGlnaHRlZF09XCJpdGVtLmhpZ2hsaWdodGVkKClcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXRlbS5zZWxlY3RlZCgpXCJcclxuICAgICAgICAoY2xpY2spPVwic2VsZWN0U3VnZ2VzdGlvbihpdGVtLCAkZXZlbnQpXCJcclxuICAgICAgICAobW91c2VlbnRlcik9XCJvblN1Z2dlc3Rpb25Nb3VzZUVudGVyKGl0ZW0sICRldmVudClcIlxyXG4gICAgICAgIChtb3VzZWxlYXZlKT1cIm9uU3VnZ2VzdGlvbk1vdXNlTGVhdmUoaXRlbSwgJGV2ZW50KVwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImFyZC1vcHRpb24tbGFiZWxcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdE9wdGlvblRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyBpdGVtLmxhYmVsKCkgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInN1Z2dlc3Rpb25UZW1wbGF0ZSgpPy50ZW1wbGF0ZSB8fCBkZWZhdWx0T3B0aW9uVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0T3B0aW9uQ29udGV4dChpdGVtKVwiXHJcbiAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgQGlmIChhcmVTdWdnZXN0aW9uc0xvYWRpbmcoKSkge1xyXG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMb2FkaW5nUGxhY2Vob2xkZXJUZW1wbGF0ZT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLW9wdGlvbiBhcmQtb3B0aW9uLWRpc2FibGVkXCI+e3sgc3VnZ2VzdGlvbnNMb2FkaW5nVGV4dCgpIH19PC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic3VnZ2VzdGlvbkxvYWRpbmdUZW1wbGF0ZSgpPy50ZW1wbGF0ZSB8fCBkZWZhdWx0TG9hZGluZ1BsYWNlaG9sZGVyVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgfVxyXG4gIDwvYXJkLWRyb3Bkb3duLXBhbmVsPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|