@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,267 +0,0 @@
|
|
|
1
|
-
import { computed, effect, signal } from '@angular/core';
|
|
2
|
-
import { coerceArrayProperty } from '@ardium-ui/devkit';
|
|
3
|
-
import { isAnyString, isArray, isFunction, isNull, isNumber, isRegExp } from 'simple-bool';
|
|
4
|
-
import { DigitInputPrimitiveOption, TransformType, } from './digit-input.types';
|
|
5
|
-
import { DigitInputConfigDataType, _sanitizeRegExpString } from './digit-input.utils';
|
|
6
|
-
export class DigitInputModel {
|
|
7
|
-
constructor(_ardHost) {
|
|
8
|
-
this._ardHost = _ardHost;
|
|
9
|
-
this._configArray = signal([]);
|
|
10
|
-
this.configArrayData = computed(() => {
|
|
11
|
-
return this._configArray().map((v, i) => {
|
|
12
|
-
if ('static' in v) {
|
|
13
|
-
return {
|
|
14
|
-
type: DigitInputConfigDataType.Static,
|
|
15
|
-
char: v.static,
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
return {
|
|
19
|
-
type: DigitInputConfigDataType.Input,
|
|
20
|
-
index: i,
|
|
21
|
-
readonly: v.readonly,
|
|
22
|
-
placeholder: v.placeholder ?? '',
|
|
23
|
-
};
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
this.isConfigDefined = computed(() => this._configArray().length > 0);
|
|
27
|
-
this.value = signal(null);
|
|
28
|
-
this.valueWithStatics = computed(() => {
|
|
29
|
-
const configArr = this.configArrayData();
|
|
30
|
-
const arr = this.value() ?? [];
|
|
31
|
-
const newArr = [];
|
|
32
|
-
for (let i = 0; i < configArr.length; i++) {
|
|
33
|
-
const curr = arr[i];
|
|
34
|
-
const config = configArr[i];
|
|
35
|
-
newArr.push(config.type === DigitInputConfigDataType.Static ? config.char : curr ?? null);
|
|
36
|
-
}
|
|
37
|
-
return newArr;
|
|
38
|
-
});
|
|
39
|
-
this.stringValue = computed(() => this.valueWithStatics()
|
|
40
|
-
?.map(v => v ?? ' ')
|
|
41
|
-
.join('') ?? '');
|
|
42
|
-
this.isValueFull = computed(() => this.value()?.filter(v => v).length === this._configArray().length);
|
|
43
|
-
//set the value array to be the same length
|
|
44
|
-
effect(() => {
|
|
45
|
-
const configArr = this.configArrayData();
|
|
46
|
-
this.value.update(arr => {
|
|
47
|
-
if (!arr)
|
|
48
|
-
arr = [];
|
|
49
|
-
const newArr = [];
|
|
50
|
-
for (let i = 0; i < configArr.length; i++) {
|
|
51
|
-
const curr = arr[i];
|
|
52
|
-
const config = configArr[i];
|
|
53
|
-
newArr.push(config.type === DigitInputConfigDataType.Static ? null : curr ?? null);
|
|
54
|
-
}
|
|
55
|
-
return newArr;
|
|
56
|
-
});
|
|
57
|
-
}, { allowSignalWrites: true });
|
|
58
|
-
}
|
|
59
|
-
isDefinedAtIndex(index) {
|
|
60
|
-
return !!this.value()?.[index];
|
|
61
|
-
}
|
|
62
|
-
writeValue(v) {
|
|
63
|
-
if (this._ardHost.outputAsString()) {
|
|
64
|
-
if (!isAnyString(v) && !isNull(v)) {
|
|
65
|
-
throw new Error(`ARD-FT0040b: Trying to set <ard-digit-input>'s value to "${v}" (of type ${typeof v}), but the input uses [outputAsString]="true", and thus expects string or null.`);
|
|
66
|
-
}
|
|
67
|
-
const vArray = v?.split('') ?? [];
|
|
68
|
-
if (vArray.length > this._configArray().length) {
|
|
69
|
-
console.warn(`ARD-WA0041: Value provided to <ard-digit-input> is too long. Got ${vArray.length} characters, but expected a maximum of ${this._configArray().length} characters.`);
|
|
70
|
-
}
|
|
71
|
-
return this._writeValue(vArray);
|
|
72
|
-
}
|
|
73
|
-
if (!isAnyString(v) && !isNull(v) && !isArray(v)) {
|
|
74
|
-
throw new Error(`ARD-FT0041: Trying to set <ard-digit-input>'s value to "${v}" (of type ${typeof v}), expected string or array of characters.`);
|
|
75
|
-
}
|
|
76
|
-
const vArray = coerceArrayProperty(v);
|
|
77
|
-
if (vArray.length > this._configArray().length) {
|
|
78
|
-
console.warn(`ARD-WA0041: Value provided to <ard-digit-input> is too long. Got ${vArray.length} characters, but expected a maximum of ${this._configArray().length} characters.`);
|
|
79
|
-
}
|
|
80
|
-
const problemIndex = vArray.findIndex(el => !isAnyString(el) || el.length > 1);
|
|
81
|
-
if (problemIndex !== -1) {
|
|
82
|
-
throw new Error(`ARD-FT0042: Array passed to <ard-digit-input>'s value must only contain strings of length 1 or 0. Element "${vArray[problemIndex]}" at index ${problemIndex} does not match those requirements.`);
|
|
83
|
-
}
|
|
84
|
-
return this._writeValue(vArray);
|
|
85
|
-
}
|
|
86
|
-
_writeValue(v) {
|
|
87
|
-
const isOldValueTheSame = this.value()?.length ? this.value().every((ch, i) => ch === v?.[i]) : !v?.length;
|
|
88
|
-
if (isOldValueTheSame)
|
|
89
|
-
return false;
|
|
90
|
-
this.value.set(v && v.map(el => el || null));
|
|
91
|
-
this.validateValueAndUpdate();
|
|
92
|
-
this._updateInputElements();
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
_updateInputElements() {
|
|
96
|
-
const v = this.value() ?? [];
|
|
97
|
-
let i = 0;
|
|
98
|
-
for (const inputEl of this._ardHost.inputs()) {
|
|
99
|
-
inputEl.nativeElement.value = v[i] ?? '';
|
|
100
|
-
i++;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
//! setting config
|
|
104
|
-
setConfig(config) {
|
|
105
|
-
this._setConfig(config);
|
|
106
|
-
this.validateValueAndUpdate();
|
|
107
|
-
}
|
|
108
|
-
_setConfig(config) {
|
|
109
|
-
//map a number to ready objects
|
|
110
|
-
let configAsNumber = isAnyString(config) ? Number(config) : null;
|
|
111
|
-
if (isNumber(config) || isNumber(configAsNumber)) {
|
|
112
|
-
configAsNumber = isNumber(config) ? config : configAsNumber;
|
|
113
|
-
this._configArray.set(new Array(configAsNumber).fill({ accept: (str) => /[0-9]/.test(str) }));
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
//map a string to an array
|
|
117
|
-
let configArr;
|
|
118
|
-
if (isAnyString(config)) {
|
|
119
|
-
configArr = coerceArrayProperty(config);
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
configArr = config;
|
|
123
|
-
}
|
|
124
|
-
//map array to ready objects
|
|
125
|
-
this._configArray.set(configArr.map((v, i) => {
|
|
126
|
-
if (!isAnyString(v)) {
|
|
127
|
-
if ('accept' in v && !isFunction(v.accept)) {
|
|
128
|
-
const regExp = isRegExp(v.accept) ? v.accept : new RegExp(`[${_sanitizeRegExpString(v.accept)}]`);
|
|
129
|
-
v.accept = str => regExp.test(str);
|
|
130
|
-
}
|
|
131
|
-
return v;
|
|
132
|
-
}
|
|
133
|
-
switch (v) {
|
|
134
|
-
case DigitInputPrimitiveOption.Number:
|
|
135
|
-
return { accept: str => /[0-9]/.test(str) };
|
|
136
|
-
case DigitInputPrimitiveOption.Letter:
|
|
137
|
-
return { accept: str => /[a-zA-Z]/.test(str) };
|
|
138
|
-
case DigitInputPrimitiveOption.Alphanumeric:
|
|
139
|
-
return { accept: str => /[0-9a-zA-Z]/.test(str) };
|
|
140
|
-
case DigitInputPrimitiveOption.Special:
|
|
141
|
-
return { accept: str => /[!@#$%^&*-_=+/\\.,]/.test(str) };
|
|
142
|
-
default:
|
|
143
|
-
if (configArr.length === 1) {
|
|
144
|
-
throw new Error(`ARD-NF0043S: <ard-digit-input>'s config is invalid. Expected number or array, got "${v}"`);
|
|
145
|
-
}
|
|
146
|
-
throw new Error(`ARD-NF0043B: Found invalid string "${v}" in <ard-digit-input>'s config at index ${i}`);
|
|
147
|
-
}
|
|
148
|
-
}));
|
|
149
|
-
}
|
|
150
|
-
resetInputValue(index) {
|
|
151
|
-
if (index < 0 || index > this._configArray().length)
|
|
152
|
-
return;
|
|
153
|
-
const config = this._configArray()[index];
|
|
154
|
-
let newValue = '';
|
|
155
|
-
if ('static' in config) {
|
|
156
|
-
newValue = config.static;
|
|
157
|
-
}
|
|
158
|
-
//get the corresponding HTML input element
|
|
159
|
-
const inputEl = this._ardHost.inputs()[index];
|
|
160
|
-
if (!inputEl) {
|
|
161
|
-
throw new Error("ARD-IS0048: <ard-digit-input>'s value changed, but its corresponding input element could not be found. If you are reading this, you probably experienced a problem with Ardium UI. Please report this issue to the creators.");
|
|
162
|
-
}
|
|
163
|
-
//update the input element and value array
|
|
164
|
-
inputEl.nativeElement.value = newValue;
|
|
165
|
-
this.value.update(arr => {
|
|
166
|
-
if (!arr)
|
|
167
|
-
arr = [];
|
|
168
|
-
const newArr = [...arr];
|
|
169
|
-
newArr[index] = newValue || null;
|
|
170
|
-
return newArr;
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
//! validate against the config
|
|
174
|
-
validateInputAndSetValue(input, index) {
|
|
175
|
-
if (index < 0 || index > this._configArray().length)
|
|
176
|
-
return null;
|
|
177
|
-
let v = this.value();
|
|
178
|
-
//prepare the value array if does not exist
|
|
179
|
-
if (!v) {
|
|
180
|
-
this.value.set([]);
|
|
181
|
-
}
|
|
182
|
-
v = [];
|
|
183
|
-
//prepare the characters before the current one (to be used in validation)
|
|
184
|
-
const before = this.stringValue().charAt(index);
|
|
185
|
-
//remove the old character from the input element
|
|
186
|
-
if (before && input.length > 1 && input.match(before)) {
|
|
187
|
-
input = input.replace(before, '');
|
|
188
|
-
}
|
|
189
|
-
//use only the first or last character (error safety)
|
|
190
|
-
const firstChar = input.charAt(0);
|
|
191
|
-
const lastChar = input.charAt(input.length - 1);
|
|
192
|
-
input = firstChar === before ? lastChar : firstChar;
|
|
193
|
-
//validate and transform, if necessary
|
|
194
|
-
const inputChar = this._validateSingleChar(input, before, this._configArray()[index]);
|
|
195
|
-
//get the corresponding HTML input element
|
|
196
|
-
const inputEl = this._ardHost.inputs()[index];
|
|
197
|
-
if (!inputEl) {
|
|
198
|
-
throw new Error("ARD-IS0048: <ard-digit-input>'s value changed, but its corresponding input element could not be found. If you are reading this, you probably experienced a problem with Ardium UI. Please report this issue to the creators.");
|
|
199
|
-
}
|
|
200
|
-
//update the input element and value array
|
|
201
|
-
const newVal = inputChar ?? before;
|
|
202
|
-
inputEl.nativeElement.value = newVal ?? '';
|
|
203
|
-
this.value.update(arr => {
|
|
204
|
-
if (!arr)
|
|
205
|
-
arr = [];
|
|
206
|
-
const newArr = [...arr];
|
|
207
|
-
newArr[index] = newVal || null;
|
|
208
|
-
return newArr;
|
|
209
|
-
});
|
|
210
|
-
//return changes marker and validated value
|
|
211
|
-
return { wasChanged: newVal !== before, wasValidChar: !isNull(inputChar), resultChar: inputChar };
|
|
212
|
-
}
|
|
213
|
-
validateValueAndUpdate() {
|
|
214
|
-
const v = this.value();
|
|
215
|
-
if (!v)
|
|
216
|
-
return;
|
|
217
|
-
let before = '';
|
|
218
|
-
const newValue = [];
|
|
219
|
-
for (let i = 0; i < Math.min(this._configArray().length, v.length); i++) {
|
|
220
|
-
const char = v[i];
|
|
221
|
-
before += char ?? ' ';
|
|
222
|
-
if (!char) {
|
|
223
|
-
newValue.push(char);
|
|
224
|
-
continue;
|
|
225
|
-
}
|
|
226
|
-
const newChar = this._validateSingleChar(char, before, this._configArray()[i]);
|
|
227
|
-
newValue.push(newChar);
|
|
228
|
-
}
|
|
229
|
-
this.value.set(newValue);
|
|
230
|
-
}
|
|
231
|
-
_validateSingleChar(char, before, config) {
|
|
232
|
-
// return the character if it is static
|
|
233
|
-
if ('static' in config)
|
|
234
|
-
return config.static;
|
|
235
|
-
// for peace of mind protect against modifying read-only fields
|
|
236
|
-
if (config.readonly) {
|
|
237
|
-
throw new Error(`ARD-IS0049R: trying to set value of a <ard-digit-input>'s readonly field. This is error is fatal to the functioning of Ardium UI. Please report this issue to the creators.`);
|
|
238
|
-
}
|
|
239
|
-
// process regex or convert string into regex
|
|
240
|
-
if (!isFunction(config.accept)) {
|
|
241
|
-
const regExp = isRegExp(config.accept) ? config.accept : new RegExp(`[${_sanitizeRegExpString(config.accept)}]`);
|
|
242
|
-
config.accept = str => regExp.test(str);
|
|
243
|
-
}
|
|
244
|
-
if (!char)
|
|
245
|
-
return char;
|
|
246
|
-
// check if input fits the criteria
|
|
247
|
-
const canAccept = config.accept(char, before);
|
|
248
|
-
if (!canAccept)
|
|
249
|
-
return null;
|
|
250
|
-
// transform if needed
|
|
251
|
-
const transform = config.transform ?? this._ardHost.transform();
|
|
252
|
-
if (transform) {
|
|
253
|
-
if (transform === TransformType.Lowercase) {
|
|
254
|
-
return char.toLowerCase();
|
|
255
|
-
}
|
|
256
|
-
if (transform === TransformType.Uppercase) {
|
|
257
|
-
return char.toUpperCase();
|
|
258
|
-
}
|
|
259
|
-
if (isFunction(transform)) {
|
|
260
|
-
return transform(char).charAt(0);
|
|
261
|
-
}
|
|
262
|
-
console.warn(`ARD-IS0049T: <ard-digit-input>'s value validator encountered an unexpected value of the config's "transform" property. Ardium UI was able to handle this issue, but please report it to the creators.`);
|
|
263
|
-
}
|
|
264
|
-
return char;
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9kaWdpdC1pbnB1dC9kaWdpdC1pbnB1dC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNGLE9BQU8sRUFJTCx5QkFBeUIsRUFDekIsYUFBYSxHQUNkLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUF3Qix3QkFBd0IsRUFBdUIscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqSSxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFvQixRQUE2QjtRQUE3QixhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQXFCaEMsaUJBQVksR0FBRyxNQUFNLENBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBRXRELG9CQUFlLEdBQUcsUUFBUSxDQUF5QixHQUFHLEVBQUU7WUFDL0QsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN0QyxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDbEIsT0FBTzt3QkFDTCxJQUFJLEVBQUUsd0JBQXdCLENBQUMsTUFBTTt3QkFDckMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNO3FCQUNnQixDQUFDO2dCQUNuQyxDQUFDO2dCQUNELE9BQU87b0JBQ0wsSUFBSSxFQUFFLHdCQUF3QixDQUFDLEtBQUs7b0JBQ3BDLEtB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QUFDO1lBQ0QsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxPQUFPLENBQUMsSUFBSSxDQUNWLHVNQUF1TSxDQUN4TSxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIGVmZmVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNvZXJjZUFycmF5UHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XHJcbmltcG9ydCB7IGlzQW55U3RyaW5nLCBpc0FycmF5LCBpc0Z1bmN0aW9uLCBpc051bGwsIGlzTnVtYmVyLCBpc1JlZ0V4cCB9IGZyb20gJ3NpbXBsZS1ib29sJztcclxuaW1wb3J0IHtcclxuICBEaWdpdElucHV0QWNjZXB0T2JqZWN0LFxyXG4gIERpZ2l0SW5wdXRDb25maWcsXHJcbiAgRGlnaXRJbnB1dE9wdGlvbixcclxuICBEaWdpdElucHV0UHJpbWl0aXZlT3B0aW9uLFxyXG4gIFRyYW5zZm9ybVR5cGUsXHJcbn0gZnJvbSAnLi9kaWdpdC1pbnB1dC50eXBlcyc7XHJcbmltcG9ydCB7IERpZ2l0SW5wdXRDb25maWdEYXRhLCBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGUsIERpZ2l0SW5wdXRNb2RlbEhvc3QsIF9zYW5pdGl6ZVJlZ0V4cFN0cmluZyB9IGZyb20gJy4vZGlnaXQtaW5wdXQudXRpbHMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIERpZ2l0SW5wdXRNb2RlbCB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXJkSG9zdDogRGlnaXRJbnB1dE1vZGVsSG9zdCkge1xyXG4gICAgLy9zZXQgdGhlIHZhbHVlIGFycmF5IHRvIGJlIHRoZSBzYW1lIGxlbmd0aFxyXG4gICAgZWZmZWN0KFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29uZmlnQXJyID0gdGhpcy5jb25maWdBcnJheURhdGEoKTtcclxuXHJcbiAgICAgICAgdGhpcy52YWx1ZS51cGRhdGUoYXJyID0+IHtcclxuICAgICAgICAgIGlmICghYXJyKSBhcnIgPSBbXTtcclxuICAgICAgICAgIGNvbnN0IG5ld0FycjogKHN0cmluZyB8IG51bGwpW10gPSBbXTtcclxuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29uZmlnQXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnIgPSBhcnJbaV07XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IGNvbmZpZ0FycltpXTtcclxuICAgICAgICAgICAgbmV3QXJyLnB1c2goY29uZmlnLnR5cGUgPT09IERpZ2l0SW5wdXRDb25maWdEYXRhVHlwZS5TdGF0aWMgPyBudWxsIDogY3VyciA/PyBudWxsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBuZXdBcnI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpZ0FycmF5ID0gc2lnbmFsPERpZ2l0SW5wdXRPcHRpb25bXT4oW10pO1xyXG5cclxuICByZWFkb25seSBjb25maWdBcnJheURhdGEgPSBjb21wdXRlZDxEaWdpdElucHV0Q29uZmlnRGF0YVtdPigoKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnQXJyYXkoKS5tYXAoKHYsIGkpID0+IHtcclxuICAgICAgaWYgKCdzdGF0aWMnIGluIHYpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgdHlwZTogRGlnaXRJbnB1dENvbmZpZ0RhdGFUeXBlLlN0YXRpYyxcclxuICAgICAgICAgIGNoYXI6IHYuc3RhdGljLFxyXG4gICAgICAgIH0gc2F0aXNmaWVzIERpZ2l0SW5wdXRDb25maWdEYXRhO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgdHlwZTogRGlnaXRJbnB1dENvbmZpZ0RhdGFUeXBlLklucHV0LFxyXG4gICAgICAgIGluZGV4OiBpLFxyXG4gICAgICAgIHJlYWRvbmx5OiB2LnJlYWRvbmx5LFxyXG4gICAgICAgIHBsYWNlaG9sZGVyOiB2LnBsYWNlaG9sZGVyID8/ICcnLFxyXG4gICAgICB9IHNhdGlzZmllcyBEaWdpdElucHV0Q29uZmlnRGF0YTtcclxuICAgIH0pO1xyXG4gIH0pO1xyXG5cclxuICByZWFkb25seSBpc0NvbmZpZ0RlZmluZWQgPSBjb21wdXRlZCgoKTogYm9vbGVhbiA9PiB0aGlzLl9jb25maWdBcnJheSgpLmxlbmd0aCA+IDApO1xyXG5cclxuICByZWFkb25seSB2YWx1ZSA9IHNpZ25hbDwoc3RyaW5nIHwgbnVsbClbXSB8IG51bGw+KG51bGwpO1xyXG5cclxuICByZWFkb25seSB2YWx1ZVdpdGhTdGF0aWNzID0gY29tcHV0ZWQ8KHN0cmluZyB8IG51bGwpW10+KCgpID0+IHtcclxuICAgIGNvbnN0IGNvbmZpZ0FyciA9IHRoaXMuY29uZmlnQXJyYXlEYXRhKCk7XHJcbiAgICBjb25zdCBhcnIgPSB0aGlzLnZhbHVlKCkgPz8gW107XHJcblxyXG4gICAgY29uc3QgbmV3QXJyOiAoc3RyaW5nIHwgbnVsbClbXSA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb25maWdBcnIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgY3VyciA9IGFycltpXTtcclxuICAgICAgY29uc3QgY29uZmlnID0gY29uZmlnQXJyW2ldO1xyXG4gICAgICBuZXdBcnIucHVzaChjb25maWcudHlwZSA9PT0gRGlnaXRJbnB1dENvbmZpZ0RhdGFUeXBlLlN0YXRpYyA/IGNvbmZpZy5jaGFyISA6IGN1cnIgPz8gbnVsbCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3QXJyO1xyXG4gIH0pO1xyXG5cclxuICByZWFkb25seSBzdHJpbmdWYWx1ZSA9IGNvbXB1dGVkKFxyXG4gICAgKCk6IHN0cmluZyA9PlxyXG4gICAgICB0aGlzLnZhbHVlV2l0aFN0YXRpY3MoKVxyXG4gICAgICAgID8ubWFwKHYgPT4gdiA/PyAnICcpXHJcbiAgICAgICAgLmpvaW4oJycpID8/ICcnXHJcbiAgKTtcclxuXHJcbiAgcmVhZG9ubHkgaXNWYWx1ZUZ1bGwgPSBjb21wdXRlZCgoKTogYm9vbGVhbiA9PiB0aGlzLnZhbHVlKCk/LmZpbHRlcih2ID0+IHYpLmxlbmd0aCA9PT0gdGhpcy5fY29uZmlnQXJyYXkoKS5sZW5ndGgpO1xyXG5cclxuICBpc0RlZmluZWRBdEluZGV4KGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMudmFsdWUoKT8uW2luZGV4XTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodjogYW55KTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5fYXJkSG9zdC5vdXRwdXRBc1N0cmluZygpKSB7XHJcbiAgICAgIGlmICghaXNBbnlTdHJpbmcodikgJiYgIWlzTnVsbCh2KSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgIGBBUkQtRlQwMDQwYjogVHJ5aW5nIHRvIHNldCA8YXJkLWRpZ2l0LWlucHV0PidzIHZhbHVlIHRvIFwiJHt2fVwiIChvZiB0eXBlICR7dHlwZW9mIHZ9KSwgYnV0IHRoZSBpbnB1dCB1c2VzIFtvdXRwdXRBc1N0cmluZ109XCJ0cnVlXCIsIGFuZCB0aHVzIGV4cGVjdHMgc3RyaW5nIG9yIG51bGwuYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgdkFycmF5ID0gdj8uc3BsaXQoJycpID8/IFtdO1xyXG5cclxuICAgICAgaWYgKHZBcnJheS5sZW5ndGggPiB0aGlzLl9jb25maWdBcnJheSgpLmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICAgIGBBUkQtV0EwMDQxOiBWYWx1ZSBwcm92aWRlZCB0byA8YXJkLWRpZ2l0LWlucHV0PiBpcyB0b28gbG9uZy4gR290ICR7XHJcbiAgICAgICAgICAgIHZBcnJheS5sZW5ndGhcclxuICAgICAgICAgIH0gY2hhcmFjdGVycywgYnV0IGV4cGVjdGVkIGEgbWF4aW11bSBvZiAke3RoaXMuX2NvbmZpZ0FycmF5KCkubGVuZ3RofSBjaGFyYWN0ZXJzLmBcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLl93cml0ZVZhbHVlKHZBcnJheSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzQW55U3RyaW5nKHYpICYmICFpc051bGwodikgJiYgIWlzQXJyYXkodikpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgIGBBUkQtRlQwMDQxOiBUcnlpbmcgdG8gc2V0IDxhcmQtZGlnaXQtaW5wdXQ+J3MgdmFsdWUgdG8gXCIke3Z9XCIgKG9mIHR5cGUgJHt0eXBlb2Ygdn0pLCBleHBlY3RlZCBzdHJpbmcgb3IgYXJyYXkgb2YgY2hhcmFjdGVycy5gXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB2QXJyYXkgPSBjb2VyY2VBcnJheVByb3BlcnR5KHYpO1xyXG5cclxuICAgIGlmICh2QXJyYXkubGVuZ3RoID4gdGhpcy5fY29uZmlnQXJyYXkoKS5sZW5ndGgpIHtcclxuICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgIGBBUkQtV0EwMDQxOiBWYWx1ZSBwcm92aWRlZCB0byA8YXJkLWRpZ2l0LWlucHV0PiBpcyB0b28gbG9uZy4gR290ICR7XHJcbiAgICAgICAgICB2QXJyYXkubGVuZ3RoXHJcbiAgICAgICAgfSBjaGFyYWN0ZXJzLCBidXQgZXhwZWN0ZWQgYSBtYXhpbXVtIG9mICR7dGhpcy5fY29uZmlnQXJyYXkoKS5sZW5ndGh9IGNoYXJhY3RlcnMuYFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcHJvYmxlbUluZGV4ID0gdkFycmF5LmZpbmRJbmRleChlbCA9PiAhaXNBbnlTdHJpbmcoZWwpIHx8IGVsLmxlbmd0aCA+IDEpO1xyXG4gICAgaWYgKHByb2JsZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgIGBBUkQtRlQwMDQyOiBBcnJheSBwYXNzZWQgdG8gPGFyZC1kaWdpdC1pbnB1dD4ncyB2YWx1ZSBtdXN0IG9ubHkgY29udGFpbiBzdHJpbmdzIG9mIGxlbmd0aCAxIG9yIDAuIEVsZW1lbnQgXCIke3ZBcnJheVtwcm9ibGVtSW5kZXhdfVwiIGF0IGluZGV4ICR7cHJvYmxlbUluZGV4fSBkb2VzIG5vdCBtYXRjaCB0aG9zZSByZXF1aXJlbWVudHMuYFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX3dyaXRlVmFsdWUodkFycmF5KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfd3JpdGVWYWx1ZSh2OiBzdHJpbmdbXSB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGlzT2xkVmFsdWVUaGVTYW1lID0gdGhpcy52YWx1ZSgpPy5sZW5ndGggPyB0aGlzLnZhbHVlKCkhLmV2ZXJ5KChjaCwgaSkgPT4gY2ggPT09IHY/LltpXSkgOiAhdj8ubGVuZ3RoO1xyXG4gICAgaWYgKGlzT2xkVmFsdWVUaGVTYW1lKSByZXR1cm4gZmFsc2U7XHJcbiAgICB0aGlzLnZhbHVlLnNldCh2ICYmIHYubWFwKGVsID0+IGVsIHx8IG51bGwpKTtcclxuICAgIHRoaXMudmFsaWRhdGVWYWx1ZUFuZFVwZGF0ZSgpO1xyXG4gICAgdGhpcy5fdXBkYXRlSW5wdXRFbGVtZW50cygpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVJbnB1dEVsZW1lbnRzKCkge1xyXG4gICAgY29uc3QgdiA9IHRoaXMudmFsdWUoKSA/PyBbXTtcclxuICAgIGxldCBpID0gMDtcclxuICAgIGZvciAoY29uc3QgaW5wdXRFbCBvZiB0aGlzLl9hcmRIb3N0LmlucHV0cygpKSB7XHJcbiAgICAgIGlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZbaV0gPz8gJyc7XHJcbiAgICAgIGkrKztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vISBzZXR0aW5nIGNvbmZpZ1xyXG4gIHNldENvbmZpZyhjb25maWc6IERpZ2l0SW5wdXRDb25maWcpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NldENvbmZpZyhjb25maWcpO1xyXG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlQW5kVXBkYXRlKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3NldENvbmZpZyhjb25maWc6IERpZ2l0SW5wdXRDb25maWcpOiB2b2lkIHtcclxuICAgIC8vbWFwIGEgbnVtYmVyIHRvIHJlYWR5IG9iamVjdHNcclxuICAgIGxldCBjb25maWdBc051bWJlciA9IGlzQW55U3RyaW5nKGNvbmZpZykgPyBOdW1iZXIoY29uZmlnKSA6IG51bGw7XHJcbiAgICBpZiAoaXNOdW1iZXIoY29uZmlnKSB8fCBpc051bWJlcihjb25maWdBc051bWJlcikpIHtcclxuICAgICAgY29uZmlnQXNOdW1iZXIgPSBpc051bWJlcihjb25maWcpID8gY29uZmlnIDogY29uZmlnQXNOdW1iZXIhO1xyXG4gICAgICB0aGlzLl9jb25maWdBcnJheS5zZXQobmV3IEFycmF5KGNvbmZpZ0FzTnVtYmVyKS5maWxsKHsgYWNjZXB0OiAoc3RyOiBzdHJpbmcpID0+IC9bMC05XS8udGVzdChzdHIpIH0pKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy9tYXAgYSBzdHJpbmcgdG8gYW4gYXJyYXlcclxuICAgIGxldCBjb25maWdBcnI6IHN0cmluZ1tdIHwgRXhjbHVkZTxEaWdpdElucHV0Q29uZmlnLCBudW1iZXIgfCBzdHJpbmc+O1xyXG4gICAgaWYgKGlzQW55U3RyaW5nKGNvbmZpZykpIHtcclxuICAgICAgY29uZmlnQXJyID0gY29lcmNlQXJyYXlQcm9wZXJ0eShjb25maWcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uZmlnQXJyID0gY29uZmlnO1xyXG4gICAgfVxyXG4gICAgLy9tYXAgYXJyYXkgdG8gcmVhZHkgb2JqZWN0c1xyXG4gICAgdGhpcy5fY29uZmlnQXJyYXkuc2V0KFxyXG4gICAgICBjb25maWdBcnIubWFwKCh2LCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKCFpc0FueVN0cmluZyh2KSkge1xyXG4gICAgICAgICAgaWYgKCdhY2NlcHQnIGluIHYgJiYgIWlzRnVuY3Rpb24odi5hY2NlcHQpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlZ0V4cCA9IGlzUmVnRXhwKHYuYWNjZXB0KSA/IHYuYWNjZXB0IDogbmV3IFJlZ0V4cChgWyR7X3Nhbml0aXplUmVnRXhwU3RyaW5nKHYuYWNjZXB0KX1dYCk7XHJcbiAgICAgICAgICAgIHYuYWNjZXB0ID0gc3RyID0+IHJlZ0V4cC50ZXN0KHN0cik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN3aXRjaCAodikge1xyXG4gICAgICAgICAgY2FzZSBEaWdpdElucHV0UHJpbWl0aXZlT3B0aW9uLk51bWJlcjpcclxuICAgICAgICAgICAgcmV0dXJuIHsgYWNjZXB0OiBzdHIgPT4gL1swLTldLy50ZXN0KHN0cikgfTtcclxuICAgICAgICAgIGNhc2UgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbi5MZXR0ZXI6XHJcbiAgICAgICAgICAgIHJldHVybiB7IGFjY2VwdDogc3RyID0+IC9bYS16QS1aXS8udGVzdChzdHIpIH07XHJcbiAgICAgICAgICBjYXNlIERpZ2l0SW5wdXRQcmltaXRpdmVPcHRpb24uQWxwaGFudW1lcmljOlxyXG4gICAgICAgICAgICByZXR1cm4geyBhY2NlcHQ6IHN0ciA9PiAvWzAtOWEtekEtWl0vLnRlc3Qoc3RyKSB9O1xyXG4gICAgICAgICAgY2FzZSBEaWdpdElucHV0UHJpbWl0aXZlT3B0aW9uLlNwZWNpYWw6XHJcbiAgICAgICAgICAgIHJldHVybiB7IGFjY2VwdDogc3RyID0+IC9bIUAjJCVeJiotXz0rL1xcXFwuLF0vLnRlc3Qoc3RyKSB9O1xyXG5cclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChjb25maWdBcnIubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBUkQtTkYwMDQzUzogPGFyZC1kaWdpdC1pbnB1dD4ncyBjb25maWcgaXMgaW52YWxpZC4gRXhwZWN0ZWQgbnVtYmVyIG9yIGFycmF5LCBnb3QgXCIke3Z9XCJgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1ORjAwNDNCOiBGb3VuZCBpbnZhbGlkIHN0cmluZyBcIiR7dn1cIiBpbiA8YXJkLWRpZ2l0LWlucHV0PidzIGNvbmZpZyBhdCBpbmRleCAke2l9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJlc2V0SW5wdXRWYWx1ZShpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gdGhpcy5fY29uZmlnQXJyYXkoKS5sZW5ndGgpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLl9jb25maWdBcnJheSgpW2luZGV4XSBhcyBEaWdpdElucHV0T3B0aW9uO1xyXG4gICAgbGV0IG5ld1ZhbHVlID0gJyc7XHJcbiAgICBpZiAoJ3N0YXRpYycgaW4gY29uZmlnKSB7XHJcbiAgICAgIG5ld1ZhbHVlID0gY29uZmlnLnN0YXRpYztcclxuICAgIH1cclxuXHJcbiAgICAvL2dldCB0aGUgY29ycmVzcG9uZGluZyBIVE1MIGlucHV0IGVsZW1lbnRcclxuICAgIGNvbnN0IGlucHV0RWwgPSB0aGlzLl9hcmRIb3N0LmlucHV0cygpW2luZGV4XTtcclxuICAgIGlmICghaW5wdXRFbCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgXCJBUkQtSVMwMDQ4OiA8YXJkLWRpZ2l0LWlucHV0PidzIHZhbHVlIGNoYW5nZWQsIGJ1dCBpdHMgY29ycmVzcG9uZGluZyBpbnB1dCBlbGVtZW50IGNvdWxkIG5vdCBiZSBmb3VuZC4gSWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHlvdSBwcm9iYWJseSBleHBlcmllbmNlZCBhIHByb2JsZW0gd2l0aCBBcmRpdW0gVUkuIFBsZWFzZSByZXBvcnQgdGhpcyBpc3N1ZSB0byB0aGUgY3JlYXRvcnMuXCJcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIC8vdXBkYXRlIHRoZSBpbnB1dCBlbGVtZW50IGFuZCB2YWx1ZSBhcnJheVxyXG4gICAgaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbmV3VmFsdWU7XHJcblxyXG4gICAgdGhpcy52YWx1ZS51cGRhdGUoYXJyID0+IHtcclxuICAgICAgaWYgKCFhcnIpIGFyciA9IFtdO1xyXG4gICAgICBjb25zdCBuZXdBcnIgPSBbLi4uYXJyXTtcclxuICAgICAgbmV3QXJyW2luZGV4XSA9IG5ld1ZhbHVlIHx8IG51bGw7XHJcbiAgICAgIHJldHVybiBuZXdBcnI7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vISB2YWxpZGF0ZSBhZ2FpbnN0IHRoZSBjb25maWdcclxuICB2YWxpZGF0ZUlucHV0QW5kU2V0VmFsdWUoXHJcbiAgICBpbnB1dDogc3RyaW5nLFxyXG4gICAgaW5kZXg6IG51bWJlclxyXG4gICk6IG51bGwgfCB7IHdhc0NoYW5nZWQ6IGJvb2xlYW47IHdhc1ZhbGlkQ2hhcjogYm9vbGVhbjsgcmVzdWx0Q2hhcjogc3RyaW5nIHwgbnVsbCB9IHtcclxuICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPiB0aGlzLl9jb25maWdBcnJheSgpLmxlbmd0aCkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgbGV0IHYgPSB0aGlzLnZhbHVlKCk7XHJcbiAgICAvL3ByZXBhcmUgdGhlIHZhbHVlIGFycmF5IGlmIGRvZXMgbm90IGV4aXN0XHJcbiAgICBpZiAoIXYpIHtcclxuICAgICAgdGhpcy52YWx1ZS5zZXQoW10pO1xyXG4gICAgfVxyXG4gICAgdiA9IFtdO1xyXG4gICAgLy9wcmVwYXJlIHRoZSBjaGFyYWN0ZXJzIGJlZm9yZSB0aGUgY3VycmVudCBvbmUgKHRvIGJlIHVzZWQgaW4gdmFsaWRhdGlvbilcclxuICAgIGNvbnN0IGJlZm9yZSA9IHRoaXMuc3RyaW5nVmFsdWUoKS5jaGFyQXQoaW5kZXgpO1xyXG5cclxuICAgIC8vcmVtb3ZlIHRoZSBvbGQgY2hhcmFjdGVyIGZyb20gdGhlIGlucHV0IGVsZW1lbnRcclxuICAgIGlmIChiZWZvcmUgJiYgaW5wdXQubGVuZ3RoID4gMSAmJiBpbnB1dC5tYXRjaChiZWZvcmUpKSB7XHJcbiAgICAgIGlucHV0ID0gaW5wdXQucmVwbGFjZShiZWZvcmUsICcnKTtcclxuICAgIH1cclxuICAgIC8vdXNlIG9ubHkgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyIChlcnJvciBzYWZldHkpXHJcbiAgICBjb25zdCBmaXJzdENoYXIgPSBpbnB1dC5jaGFyQXQoMCk7XHJcbiAgICBjb25zdCBsYXN0Q2hhciA9IGlucHV0LmNoYXJBdChpbnB1dC5sZW5ndGggLSAxKTtcclxuICAgIGlucHV0ID0gZmlyc3RDaGFyID09PSBiZWZvcmUgPyBsYXN0Q2hhciA6IGZpcnN0Q2hhcjtcclxuXHJcbiAgICAvL3ZhbGlkYXRlIGFuZCB0cmFuc2Zvcm0sIGlmIG5lY2Vzc2FyeVxyXG4gICAgY29uc3QgaW5wdXRDaGFyID0gdGhpcy5fdmFsaWRhdGVTaW5nbGVDaGFyKGlucHV0LCBiZWZvcmUsIHRoaXMuX2NvbmZpZ0FycmF5KClbaW5kZXhdIGFzIERpZ2l0SW5wdXRBY2NlcHRPYmplY3QpO1xyXG5cclxuICAgIC8vZ2V0IHRoZSBjb3JyZXNwb25kaW5nIEhUTUwgaW5wdXQgZWxlbWVudFxyXG4gICAgY29uc3QgaW5wdXRFbCA9IHRoaXMuX2FyZEhvc3QuaW5wdXRzKClbaW5kZXhdO1xyXG4gICAgaWYgKCFpbnB1dEVsKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICBcIkFSRC1JUzAwNDg6IDxhcmQtZGlnaXQtaW5wdXQ+J3MgdmFsdWUgY2hhbmdlZCwgYnV0IGl0cyBjb3JyZXNwb25kaW5nIGlucHV0IGVsZW1lbnQgY291bGQgbm90IGJlIGZvdW5kLiBJZiB5b3UgYXJlIHJlYWRpbmcgdGhpcywgeW91IHByb2JhYmx5IGV4cGVyaWVuY2VkIGEgcHJvYmxlbSB3aXRoIEFyZGl1bSBVSS4gUGxlYXNlIHJlcG9ydCB0aGlzIGlzc3VlIHRvIHRoZSBjcmVhdG9ycy5cIlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgLy91cGRhdGUgdGhlIGlucHV0IGVsZW1lbnQgYW5kIHZhbHVlIGFycmF5XHJcbiAgICBjb25zdCBuZXdWYWwgPSBpbnB1dENoYXIgPz8gYmVmb3JlO1xyXG4gICAgaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbmV3VmFsID8/ICcnO1xyXG5cclxuICAgIHRoaXMudmFsdWUudXBkYXRlKGFyciA9PiB7XHJcbiAgICAgIGlmICghYXJyKSBhcnIgPSBbXTtcclxuICAgICAgY29uc3QgbmV3QXJyID0gWy4uLmFycl07XHJcbiAgICAgIG5ld0FycltpbmRleF0gPSBuZXdWYWwgfHwgbnVsbDtcclxuICAgICAgcmV0dXJuIG5ld0FycjtcclxuICAgIH0pO1xyXG4gICAgLy9yZXR1cm4gY2hhbmdlcyBtYXJrZXIgYW5kIHZhbGlkYXRlZCB2YWx1ZVxyXG4gICAgcmV0dXJuIHsgd2FzQ2hhbmdlZDogbmV3VmFsICE9PSBiZWZvcmUsIHdhc1ZhbGlkQ2hhcjogIWlzTnVsbChpbnB1dENoYXIpLCByZXN1bHRDaGFyOiBpbnB1dENoYXIgfTtcclxuICB9XHJcbiAgdmFsaWRhdGVWYWx1ZUFuZFVwZGF0ZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHYgPSB0aGlzLnZhbHVlKCk7XHJcbiAgICBpZiAoIXYpIHJldHVybjtcclxuXHJcbiAgICBsZXQgYmVmb3JlID0gJyc7XHJcbiAgICBjb25zdCBuZXdWYWx1ZTogKHN0cmluZyB8IG51bGwpW10gPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTWF0aC5taW4odGhpcy5fY29uZmlnQXJyYXkoKS5sZW5ndGgsIHYubGVuZ3RoKTsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGNoYXIgPSB2W2ldO1xyXG4gICAgICBiZWZvcmUgKz0gY2hhciA/PyAnICc7XHJcblxyXG4gICAgICBpZiAoIWNoYXIpIHtcclxuICAgICAgICBuZXdWYWx1ZS5wdXNoKGNoYXIpO1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG5ld0NoYXIgPSB0aGlzLl92YWxpZGF0ZVNpbmdsZUNoYXIoY2hhciwgYmVmb3JlLCB0aGlzLl9jb25maWdBcnJheSgpW2ldIGFzIERpZ2l0SW5wdXRBY2NlcHRPYmplY3QpO1xyXG4gICAgICBuZXdWYWx1ZS5wdXNoKG5ld0NoYXIpO1xyXG4gICAgfVxyXG4gICAgdGhpcy52YWx1ZS5zZXQobmV3VmFsdWUpO1xyXG4gIH1cclxuICBwcml2YXRlIF92YWxpZGF0ZVNpbmdsZUNoYXIoY2hhcjogc3RyaW5nIHwgbnVsbCwgYmVmb3JlOiBzdHJpbmcsIGNvbmZpZzogRGlnaXRJbnB1dE9wdGlvbik6IHN0cmluZyB8IG51bGwge1xyXG4gICAgLy8gcmV0dXJuIHRoZSBjaGFyYWN0ZXIgaWYgaXQgaXMgc3RhdGljXHJcbiAgICBpZiAoJ3N0YXRpYycgaW4gY29uZmlnKSByZXR1cm4gY29uZmlnLnN0YXRpYztcclxuICAgIC8vIGZvciBwZWFjZSBvZiBtaW5kIHByb3RlY3QgYWdhaW5zdCBtb2RpZnlpbmcgcmVhZC1vbmx5IGZpZWxkc1xyXG4gICAgaWYgKGNvbmZpZy5yZWFkb25seSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgYEFSRC1JUzAwNDlSOiB0cnlpbmcgdG8gc2V0IHZhbHVlIG9mIGEgPGFyZC1kaWdpdC1pbnB1dD4ncyByZWFkb25seSBmaWVsZC4gVGhpcyBpcyBlcnJvciBpcyBmYXRhbCB0byB0aGUgZnVuY3Rpb25pbmcgb2YgQXJkaXVtIFVJLiBQbGVhc2UgcmVwb3J0IHRoaXMgaXNzdWUgdG8gdGhlIGNyZWF0b3JzLmBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIC8vIHByb2Nlc3MgcmVnZXggb3IgY29udmVydCBzdHJpbmcgaW50byByZWdleFxyXG4gICAgaWYgKCFpc0Z1bmN0aW9uKGNvbmZpZy5hY2NlcHQpKSB7XHJcbiAgICAgIGNvbnN0IHJlZ0V4cCA9IGlzUmVnRXhwKGNvbmZpZy5hY2NlcHQpID8gY29uZmlnLmFjY2VwdCA6IG5ldyBSZWdFeHAoYFske19zYW5pdGl6ZVJlZ0V4cFN0cmluZyhjb25maWcuYWNjZXB0KX1dYCk7XHJcbiAgICAgIGNvbmZpZy5hY2NlcHQgPSBzdHIgPT4gcmVnRXhwLnRlc3Qoc3RyKTtcclxuICAgIH1cclxuICAgIGlmICghY2hhcikgcmV0dXJuIGNoYXI7XHJcblxyXG4gICAgLy8gY2hlY2sgaWYgaW5wdXQgZml0cyB0aGUgY3JpdGVyaWFcclxuICAgIGNvbnN0IGNhbkFjY2VwdCA9IGNvbmZpZy5hY2NlcHQoY2hhciwgYmVmb3JlKTtcclxuICAgIGlmICghY2FuQWNjZXB0KSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAvLyB0cmFuc2Zvcm0gaWYgbmVlZGVkXHJcbiAgICBjb25zdCB0cmFuc2Zvcm0gPSBjb25maWcudHJhbnNmb3JtID8/IHRoaXMuX2FyZEhvc3QudHJhbnNmb3JtKCk7XHJcbiAgICBpZiAodHJhbnNmb3JtKSB7XHJcbiAgICAgIGlmICh0cmFuc2Zvcm0gPT09IFRyYW5zZm9ybVR5cGUuTG93ZXJjYXNlKSB7XHJcbiAgICAgICAgcmV0dXJuIGNoYXIudG9Mb3dlckNhc2UoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodHJhbnNmb3JtID09PSBUcmFuc2Zvcm1UeXBlLlVwcGVyY2FzZSkge1xyXG4gICAgICAgIHJldHVybiBjaGFyLnRvVXBwZXJDYXNlKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlzRnVuY3Rpb24odHJhbnNmb3JtKSkge1xyXG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm0oY2hhcikuY2hhckF0KDApO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICBgQVJELUlTMDA0OVQ6IDxhcmQtZGlnaXQtaW5wdXQ+J3MgdmFsdWUgdmFsaWRhdG9yIGVuY291bnRlcmVkIGFuIHVuZXhwZWN0ZWQgdmFsdWUgb2YgdGhlIGNvbmZpZydzIFwidHJhbnNmb3JtXCIgcHJvcGVydHkuIEFyZGl1bSBVSSB3YXMgYWJsZSB0byBoYW5kbGUgdGhpcyBpc3N1ZSwgYnV0IHBsZWFzZSByZXBvcnQgaXQgdG8gdGhlIGNyZWF0b3JzLmBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjaGFyO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { CdkAutofill } from '@angular/cdk/text-field';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { NgModule } from '@angular/core';
|
|
4
|
-
import { ArdiumDigitInputComponent } from './digit-input.component';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class ArdiumDigitInputModule {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumDigitInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ArdiumDigitInputModule, declarations: [ArdiumDigitInputComponent], imports: [CommonModule, CdkAutofill], exports: [ArdiumDigitInputComponent] }); }
|
|
9
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumDigitInputModule, imports: [CommonModule] }); }
|
|
10
|
-
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumDigitInputModule, decorators: [{
|
|
12
|
-
type: NgModule,
|
|
13
|
-
args: [{
|
|
14
|
-
declarations: [ArdiumDigitInputComponent],
|
|
15
|
-
imports: [CommonModule, CdkAutofill],
|
|
16
|
-
exports: [ArdiumDigitInputComponent],
|
|
17
|
-
}]
|
|
18
|
-
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvZGlnaXQtaW5wdXQvZGlnaXQtaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFPcEUsTUFBTSxPQUFPLHNCQUFzQjsrR0FBdEIsc0JBQXNCO2dIQUF0QixzQkFBc0IsaUJBSmxCLHlCQUF5QixhQUM5QixZQUFZLEVBQUUsV0FBVyxhQUN6Qix5QkFBeUI7Z0hBRXhCLHNCQUFzQixZQUh2QixZQUFZOzs0RkFHWCxzQkFBc0I7a0JBTGxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3pDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUM7b0JBQ3BDLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0F1dG9maWxsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcmRpdW1EaWdpdElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9kaWdpdC1pbnB1dC5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtBcmRpdW1EaWdpdElucHV0Q29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDZGtBdXRvZmlsbF0sXHJcbiAgZXhwb3J0czogW0FyZGl1bURpZ2l0SW5wdXRDb21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkaXVtRGlnaXRJbnB1dE1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export const DigitInputShape = {
|
|
2
|
-
Square: 'square',
|
|
3
|
-
Rectangle: 'rectangle',
|
|
4
|
-
};
|
|
5
|
-
export const TransformType = {
|
|
6
|
-
Uppercase: 'uppercase',
|
|
7
|
-
Lowercase: 'lowercase',
|
|
8
|
-
};
|
|
9
|
-
export const DigitInputPrimitiveOption = {
|
|
10
|
-
Number: 'number',
|
|
11
|
-
Letter: 'letter',
|
|
12
|
-
Alphanumeric: 'alphanumeric',
|
|
13
|
-
Special: 'special',
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9kaWdpdC1pbnB1dC9kaWdpdC1pbnB1dC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDN0IsTUFBTSxFQUFFLFFBQVE7SUFDaEIsU0FBUyxFQUFFLFdBQVc7Q0FDZCxDQUFDO0FBR1gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLFNBQVMsRUFBRSxXQUFXO0NBQ2QsQ0FBQztBQUdYLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHO0lBQ3ZDLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRSxjQUFjO0lBQzVCLE9BQU8sRUFBRSxTQUFTO0NBQ1YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBEaWdpdElucHV0U2hhcGUgPSB7XHJcbiAgU3F1YXJlOiAnc3F1YXJlJyxcclxuICBSZWN0YW5nbGU6ICdyZWN0YW5nbGUnLFxyXG59IGFzIGNvbnN0O1xyXG5leHBvcnQgdHlwZSBEaWdpdElucHV0U2hhcGUgPSAodHlwZW9mIERpZ2l0SW5wdXRTaGFwZSlba2V5b2YgdHlwZW9mIERpZ2l0SW5wdXRTaGFwZV07XHJcblxyXG5leHBvcnQgY29uc3QgVHJhbnNmb3JtVHlwZSA9IHtcclxuICBVcHBlcmNhc2U6ICd1cHBlcmNhc2UnLFxyXG4gIExvd2VyY2FzZTogJ2xvd2VyY2FzZScsXHJcbn0gYXMgY29uc3Q7XHJcbmV4cG9ydCB0eXBlIFRyYW5zZm9ybVR5cGUgPSAodHlwZW9mIFRyYW5zZm9ybVR5cGUpW2tleW9mIHR5cGVvZiBUcmFuc2Zvcm1UeXBlXTtcclxuXHJcbmV4cG9ydCBjb25zdCBEaWdpdElucHV0UHJpbWl0aXZlT3B0aW9uID0ge1xyXG4gIE51bWJlcjogJ251bWJlcicsXHJcbiAgTGV0dGVyOiAnbGV0dGVyJyxcclxuICBBbHBoYW51bWVyaWM6ICdhbHBoYW51bWVyaWMnLFxyXG4gIFNwZWNpYWw6ICdzcGVjaWFsJyxcclxufSBhcyBjb25zdDtcclxuZXhwb3J0IHR5cGUgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbiA9ICh0eXBlb2YgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbilba2V5b2YgdHlwZW9mIERpZ2l0SW5wdXRQcmltaXRpdmVPcHRpb25dO1xyXG5cclxuZXhwb3J0IHR5cGUgRGlnaXRJbnB1dFRyYW5zZm9ybSA9IFRyYW5zZm9ybVR5cGUgfCAoKGNoYXI6IHN0cmluZykgPT4gc3RyaW5nKSB8IG51bGw7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpZ2l0SW5wdXRBY2NlcHRPYmplY3Qge1xyXG4gIGFjY2VwdDogc3RyaW5nIHwgUmVnRXhwIHwgKChjaGFyOiBzdHJpbmcsIGNoYXJzQmVmb3JlOiBzdHJpbmcpID0+IGJvb2xlYW4pO1xyXG4gIHRyYW5zZm9ybT86IERpZ2l0SW5wdXRUcmFuc2Zvcm07XHJcbiAgcmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlnaXRJbnB1dFN0YXRpY09iamVjdCB7XHJcbiAgc3RhdGljOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIERpZ2l0SW5wdXRPcHRpb24gPSBEaWdpdElucHV0QWNjZXB0T2JqZWN0IHwgRGlnaXRJbnB1dFN0YXRpY09iamVjdDtcclxuXHJcbmV4cG9ydCB0eXBlIERpZ2l0SW5wdXRDb25maWcgPVxyXG4gIC8qIChEaWdpdElucHV0UHJpbWl0aXZlT3B0aW9uIHwgRGlnaXRJbnB1dE9wdGlvbilbXVtdICovXHJcbiAgKERpZ2l0SW5wdXRQcmltaXRpdmVPcHRpb24gfCBEaWdpdElucHV0T3B0aW9uKVtdIHwgc3RyaW5nIHwgbnVtYmVyO1xyXG5cclxuZXhwb3J0IHR5cGUgRGlnaXRJbnB1dEF1dG9GaWxsUGFyc2VGbiA9IChhdXRvRmlsbDogc3RyaW5nKSA9PiBzdHJpbmc7XHJcbiJdfQ==
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export const DigitInputConfigDataType = {
|
|
2
|
-
Input: 'input',
|
|
3
|
-
Static: 'static',
|
|
4
|
-
};
|
|
5
|
-
export function _sanitizeRegExpString(str) {
|
|
6
|
-
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9kaWdpdC1pbnB1dC9kaWdpdC1pbnB1dC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDdEMsS0FBSyxFQUFFLE9BQU87SUFDZCxNQUFNLEVBQUUsUUFBUTtDQUNSLENBQUM7QUFHWCxNQUFNLFVBQVUscUJBQXFCLENBQUMsR0FBVztJQUMvQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEaWdpdElucHV0VHJhbnNmb3JtIH0gZnJvbSAnLi9kaWdpdC1pbnB1dC50eXBlcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpZ2l0SW5wdXRDb25maWdEYXRhIHtcclxuICB0eXBlOiBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGU7XHJcbiAgY2hhcj86IHN0cmluZztcclxuICBpbmRleD86IG51bWJlcjtcclxuICByZWFkb25seT86IGJvb2xlYW47XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEaWdpdElucHV0TW9kZWxIb3N0IHtcclxuICByZWFkb25seSBpbnB1dHM6IFNpZ25hbDxyZWFkb25seSBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+W10+O1xyXG4gIHJlYWRvbmx5IG91dHB1dEFzU3RyaW5nOiBTaWduYWw8Ym9vbGVhbj47XHJcbiAgcmVhZG9ubHkgdHJhbnNmb3JtOiBTaWduYWw8RGlnaXRJbnB1dFRyYW5zZm9ybT47XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGUgPSB7XHJcbiAgSW5wdXQ6ICdpbnB1dCcsXHJcbiAgU3RhdGljOiAnc3RhdGljJyxcclxufSBhcyBjb25zdDtcclxuZXhwb3J0IHR5cGUgRGlnaXRJbnB1dENvbmZpZ0RhdGFUeXBlID0gKHR5cGVvZiBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGUpW2tleW9mIHR5cGVvZiBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGVdO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9zYW5pdGl6ZVJlZ0V4cFN0cmluZyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from './digit-input.component';
|
|
2
|
-
export * from './digit-input.defaults';
|
|
3
|
-
export * from './digit-input.module';
|
|
4
|
-
export * from './digit-input.types';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9kaWdpdC1pbnB1dC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaWdpdC1pbnB1dC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpZ2l0LWlucHV0LmRlZmF1bHRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9kaWdpdC1pbnB1dC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpZ2l0LWlucHV0LnR5cGVzJztcclxuIl19
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, contentChild, forwardRef, Inject, input, Input, output, viewChild, ViewEncapsulation, } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { coerceBooleanProperty, coerceNumberProperty } from '@ardium-ui/devkit';
|
|
4
|
-
import { _FormFieldComponentBase } from '../../_internal/form-field-component';
|
|
5
|
-
import { ARD_FORM_FIELD_CONTROL } from '../../form-field/form-field-child.token';
|
|
6
|
-
import { ARD_HEX_INPUT_DEFAULTS } from './hex-input.defaults';
|
|
7
|
-
import { ArdHexInputPlaceholderTemplateDirective, ArdHexInputPrefixTemplateDirective, ArdHexInputSuffixTemplateDirective, } from './hex-input.directives';
|
|
8
|
-
import { HexInputModel } from './hex-input.model';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/common";
|
|
11
|
-
import * as i2 from "../../form-field-frame/form-field-frame.component";
|
|
12
|
-
import * as i3 from "../../_internal/clear-button/clear-button.component";
|
|
13
|
-
export class ArdiumHexInputComponent extends _FormFieldComponentBase {
|
|
14
|
-
constructor(defaults) {
|
|
15
|
-
super(defaults);
|
|
16
|
-
//! input view
|
|
17
|
-
this.textInputEl = viewChild('textInput');
|
|
18
|
-
this.inputModel = new HexInputModel(this);
|
|
19
|
-
this._wasViewInit = false;
|
|
20
|
-
this.inputId = input();
|
|
21
|
-
//! prefix & suffix
|
|
22
|
-
this.prefixTemplate = contentChild(ArdHexInputPrefixTemplateDirective);
|
|
23
|
-
this.suffixTemplate = contentChild(ArdHexInputSuffixTemplateDirective);
|
|
24
|
-
//! placeholder
|
|
25
|
-
this.placeholder = input(this._DEFAULTS.placeholder);
|
|
26
|
-
this.placeholderTemplate = contentChild(ArdHexInputPlaceholderTemplateDirective);
|
|
27
|
-
this.shouldDisplayPlaceholder = computed(() => Boolean(this.placeholder()) && !this.inputModel.stringValue());
|
|
28
|
-
//! appearance
|
|
29
|
-
//all handled in ard-form-field-frame component
|
|
30
|
-
this.appearance = input(this._DEFAULTS.appearance);
|
|
31
|
-
this.variant = input(this._DEFAULTS.variant);
|
|
32
|
-
this.compact = input(this._DEFAULTS.compact, { transform: v => coerceBooleanProperty(v) });
|
|
33
|
-
//! settings
|
|
34
|
-
this.case = input(this._DEFAULTS.case);
|
|
35
|
-
this.maxDigits = input(this._DEFAULTS.maxDigits, {
|
|
36
|
-
transform: v => coerceNumberProperty(v, this._DEFAULTS.maxDigits),
|
|
37
|
-
});
|
|
38
|
-
this.hideHash = input(this._DEFAULTS.hideHash, { transform: v => coerceBooleanProperty(v) });
|
|
39
|
-
this.showHash = computed(() => !this.hideHash());
|
|
40
|
-
//! clear button
|
|
41
|
-
this.clearable = input(this._DEFAULTS.clearable, { transform: v => coerceBooleanProperty(v) });
|
|
42
|
-
this.clearButtonTitle = input(this._DEFAULTS.clearButtonTitle);
|
|
43
|
-
this.shouldShowClearButton = computed(() => this.clearable() && !this.disabled() && Boolean(this.inputModel?.value()));
|
|
44
|
-
//! other inputs
|
|
45
|
-
this.inputAttrs = input({});
|
|
46
|
-
//! value two-way binding
|
|
47
|
-
this._valueBeforeInit = null;
|
|
48
|
-
this.valueChange = output();
|
|
49
|
-
//! event emitters
|
|
50
|
-
this.inputEvent = output({ alias: 'input' });
|
|
51
|
-
this.changeEvent = output({ alias: 'change' });
|
|
52
|
-
this.clearEvent = output({ alias: 'clear' });
|
|
53
|
-
}
|
|
54
|
-
ngAfterViewInit() {
|
|
55
|
-
this._wasViewInit = true;
|
|
56
|
-
this._setInputAttributes();
|
|
57
|
-
//set the value
|
|
58
|
-
if (this._valueBeforeInit) {
|
|
59
|
-
this.writeValue(this._valueBeforeInit);
|
|
60
|
-
delete this._valueBeforeInit;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
onClearButtonClick(event) {
|
|
64
|
-
event.stopPropagation();
|
|
65
|
-
this.inputModel.clear();
|
|
66
|
-
this._emitChange();
|
|
67
|
-
this._emitInput();
|
|
68
|
-
this.clearEvent.emit();
|
|
69
|
-
this.focus();
|
|
70
|
-
}
|
|
71
|
-
//! control value accessor's write value implementation
|
|
72
|
-
writeValue(v) {
|
|
73
|
-
if (!this._wasViewInit) {
|
|
74
|
-
this._valueBeforeInit = v;
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
this.inputModel.writeValue(v);
|
|
78
|
-
}
|
|
79
|
-
set value(v) {
|
|
80
|
-
if (!this._wasViewInit) {
|
|
81
|
-
this._valueBeforeInit = v;
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
this.writeValue(v);
|
|
85
|
-
}
|
|
86
|
-
get value() {
|
|
87
|
-
return this.inputModel?.hashSignValue();
|
|
88
|
-
}
|
|
89
|
-
//! event handlers
|
|
90
|
-
onInput(newVal, event) {
|
|
91
|
-
event.stopPropagation();
|
|
92
|
-
const valueHasChanged = this.inputModel.writeValue(newVal);
|
|
93
|
-
if (!valueHasChanged)
|
|
94
|
-
return;
|
|
95
|
-
this._emitInput();
|
|
96
|
-
}
|
|
97
|
-
_emitInput() {
|
|
98
|
-
const v = this.inputModel.hashSignValue();
|
|
99
|
-
this.inputEvent.emit(v);
|
|
100
|
-
this._onChangeRegistered?.(v);
|
|
101
|
-
this.valueChange.emit(v);
|
|
102
|
-
}
|
|
103
|
-
onChange(event) {
|
|
104
|
-
this._emitChange();
|
|
105
|
-
event.stopPropagation();
|
|
106
|
-
}
|
|
107
|
-
_emitChange() {
|
|
108
|
-
const v = this.inputModel.hashSignValue();
|
|
109
|
-
this.changeEvent.emit(v);
|
|
110
|
-
}
|
|
111
|
-
onBlur(event) {
|
|
112
|
-
super.onBlur(event);
|
|
113
|
-
this._emitChange();
|
|
114
|
-
}
|
|
115
|
-
//smart focus
|
|
116
|
-
onMouseup() {
|
|
117
|
-
const selection = window.getSelection();
|
|
118
|
-
if (selection && selection.type === 'Range')
|
|
119
|
-
return;
|
|
120
|
-
this.focus();
|
|
121
|
-
}
|
|
122
|
-
onCopy(event) {
|
|
123
|
-
if (this.value &&
|
|
124
|
-
//does the selection cover the entire input
|
|
125
|
-
((this.textInputEl()?.nativeElement.selectionStart === 0 &&
|
|
126
|
-
this.textInputEl()?.nativeElement.selectionEnd === this.textInputEl()?.nativeElement.value.length) ||
|
|
127
|
-
//or is zero-wide
|
|
128
|
-
this.textInputEl()?.nativeElement.selectionStart === this.textInputEl()?.nativeElement.selectionEnd)) {
|
|
129
|
-
event.clipboardData?.setData('text/plain', this.value);
|
|
130
|
-
event.preventDefault();
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
//! helpers
|
|
134
|
-
_setInputAttributes() {
|
|
135
|
-
const input = this.textInputEl().nativeElement;
|
|
136
|
-
const attributes = {
|
|
137
|
-
type: 'text',
|
|
138
|
-
autocorrect: 'off',
|
|
139
|
-
autocapitalize: 'off',
|
|
140
|
-
autocomplete: 'off',
|
|
141
|
-
tabindex: String(this.tabIndex),
|
|
142
|
-
...this.inputAttrs,
|
|
143
|
-
};
|
|
144
|
-
for (const key of Object.keys(attributes)) {
|
|
145
|
-
input.setAttribute(key, String(attributes[key]));
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumHexInputComponent, deps: [{ token: ARD_HEX_INPUT_DEFAULTS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
149
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumHexInputComponent, selector: "ard-hex-input", inputs: { inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, case: { classPropertyName: "case", publicName: "case", isSignal: true, isRequired: false, transformFunction: null }, maxDigits: { classPropertyName: "maxDigits", publicName: "maxDigits", isSignal: true, isRequired: false, transformFunction: null }, hideHash: { classPropertyName: "hideHash", publicName: "hideHash", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, clearButtonTitle: { classPropertyName: "clearButtonTitle", publicName: "clearButtonTitle", isSignal: true, isRequired: false, transformFunction: null }, inputAttrs: { classPropertyName: "inputAttrs", publicName: "inputAttrs", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", inputEvent: "input", changeEvent: "change", clearEvent: "clear" }, providers: [
|
|
150
|
-
{
|
|
151
|
-
provide: NG_VALUE_ACCESSOR,
|
|
152
|
-
useExisting: forwardRef(() => ArdiumHexInputComponent),
|
|
153
|
-
multi: true,
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
provide: ARD_FORM_FIELD_CONTROL,
|
|
157
|
-
useExisting: forwardRef(() => ArdiumHexInputComponent),
|
|
158
|
-
},
|
|
159
|
-
], queries: [{ propertyName: "prefixTemplate", first: true, predicate: ArdHexInputPrefixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suffixTemplate", first: true, predicate: ArdHexInputSuffixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "placeholderTemplate", first: true, predicate: ArdHexInputPlaceholderTemplateDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "textInputEl", first: true, predicate: ["textInput"], descendants: true, 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 [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [isFocused]=\"isFocused()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-hex-input\"\r\n [class.ard-has-value]=\"value\"\r\n (mouseup)=\"onMouseup()\"\r\n >\r\n @if (showHash()) {\r\n <div class=\"ard-hash-container\">#</div>\r\n }\r\n <div class=\"ard-input-container\">\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\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, $event)\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (change)=\"onChange($event)\"\r\n (mouseup)=\"$event.stopPropagation()\"\r\n (copy)=\"onCopy($event)\"\r\n />\r\n </div>\r\n\r\n @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", 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}\n"], dependencies: [{ 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" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
160
|
-
}
|
|
161
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumHexInputComponent, decorators: [{
|
|
162
|
-
type: Component,
|
|
163
|
-
args: [{ selector: 'ard-hex-input', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
164
|
-
{
|
|
165
|
-
provide: NG_VALUE_ACCESSOR,
|
|
166
|
-
useExisting: forwardRef(() => ArdiumHexInputComponent),
|
|
167
|
-
multi: true,
|
|
168
|
-
},
|
|
169
|
-
{
|
|
170
|
-
provide: ARD_FORM_FIELD_CONTROL,
|
|
171
|
-
useExisting: forwardRef(() => ArdiumHexInputComponent),
|
|
172
|
-
},
|
|
173
|
-
], template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [isFocused]=\"isFocused()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-hex-input\"\r\n [class.ard-has-value]=\"value\"\r\n (mouseup)=\"onMouseup()\"\r\n >\r\n @if (showHash()) {\r\n <div class=\"ard-hash-container\">#</div>\r\n }\r\n <div class=\"ard-input-container\">\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\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, $event)\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (change)=\"onChange($event)\"\r\n (mouseup)=\"$event.stopPropagation()\"\r\n (copy)=\"onCopy($event)\"\r\n />\r\n </div>\r\n\r\n @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", 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}\n"] }]
|
|
174
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
175
|
-
type: Inject,
|
|
176
|
-
args: [ARD_HEX_INPUT_DEFAULTS]
|
|
177
|
-
}] }], propDecorators: { value: [{
|
|
178
|
-
type: Input
|
|
179
|
-
}] } });
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGV4LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW5wdXRzL2hleC1pbnB1dC9oZXgtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaGV4LWlucHV0L2hleC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUVaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFJakYsT0FBTyxFQUFFLHNCQUFzQixFQUF1QixNQUFNLHNCQUFzQixDQUFDO0FBQ25GLE9BQU8sRUFDTCx1Q0FBdUMsRUFDdkMsa0NBQWtDLEVBQ2xDLGtDQUFrQyxHQUNuQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxhQUFhLEVBQXFCLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBb0JyRSxNQUFNLE9BQU8sdUJBQ1gsU0FBUSx1QkFBdUI7SUFJL0IsWUFBNEMsUUFBNkI7UUFDdkUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWxCLGNBQWM7UUFDTCxnQkFBVyxHQUFHLFNBQVMsQ0FBK0IsV0FBVyxDQUFDLENBQUM7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QUFDO1lBQzFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDOytHQXhLVSx1QkFBdUIsa0JBS2Qsc0JBQXNCO21HQUwvQix1QkFBdUIsZ3NEQVp2QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBQ3RELEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRDtnQkFDRSxPQUFPLEVBQUUsc0JBQXNCO2dCQUMvQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2FBQ3ZEO1NBQ0Ysc0VBNEJzQyxrQ0FBa0MsaUdBQ2xDLGtDQUFrQyxzR0FLN0IsdUNBQXVDLGlOQ2hGckYsZ29EQW9EQTs7NEZESmEsdUJBQXVCO2tCQWxCbkMsU0FBUzsrQkFDRSxlQUFlLGlCQUdWLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxzQkFBc0I7NEJBQy9CLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDO3lCQUN2RDtxQkFDRjs7MEJBT1ksTUFBTTsyQkFBQyxzQkFBc0I7eUNBaUZ0QyxLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIGNvbXB1dGVkLFxyXG4gIGNvbnRlbnRDaGlsZCxcclxuICBFbGVtZW50UmVmLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5qZWN0LFxyXG4gIGlucHV0LFxyXG4gIElucHV0LFxyXG4gIG91dHB1dCxcclxuICB2aWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcclxuaW1wb3J0IHsgX0Zvcm1GaWVsZENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi9faW50ZXJuYWwvZm9ybS1maWVsZC1jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBUkRfRk9STV9GSUVMRF9DT05UUk9MIH0gZnJvbSAnLi4vLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkLWNoaWxkLnRva2VuJztcclxuaW1wb3J0IHsgRm9ybUVsZW1lbnRBcHBlYXJhbmNlLCBGb3JtRWxlbWVudFZhcmlhbnQgfSBmcm9tICcuLi8uLi90eXBlcy90aGVtaW5nLnR5cGVzJztcclxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi8uLi90eXBlcy91dGlsaXR5LnR5cGVzJztcclxuaW1wb3J0IHsgQ2FzZVRyYW5zZm9ybWVyVHlwZSB9IGZyb20gJy4uL2lucHV0LXR5cGVzJztcclxuaW1wb3J0IHsgQVJEX0hFWF9JTlBVVF9ERUZBVUxUUywgQXJkSGV4SW5wdXREZWZhdWx0cyB9IGZyb20gJy4vaGV4LWlucHV0LmRlZmF1bHRzJztcclxuaW1wb3J0IHtcclxuICBBcmRIZXhJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgQXJkSGV4SW5wdXRQcmVmaXhUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRIZXhJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlLFxyXG59IGZyb20gJy4vaGV4LWlucHV0LmRpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyBIZXhJbnB1dE1vZGVsLCBIZXhJbnB1dE1vZGVsSG9zdCB9IGZyb20gJy4vaGV4LWlucHV0Lm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXJkLWhleC1pbnB1dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hleC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaGV4LWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFyZGl1bUhleElucHV0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBBUkRfRk9STV9GSUVMRF9DT05UUk9MLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBcmRpdW1IZXhJbnB1dENvbXBvbmVudCksXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcmRpdW1IZXhJbnB1dENvbXBvbmVudFxyXG4gIGV4dGVuZHMgX0Zvcm1GaWVsZENvbXBvbmVudEJhc2VcclxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBIZXhJbnB1dE1vZGVsSG9zdCwgQWZ0ZXJWaWV3SW5pdFxyXG57XHJcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9ERUZBVUxUUyE6IEFyZEhleElucHV0RGVmYXVsdHM7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBUkRfSEVYX0lOUFVUX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkSGV4SW5wdXREZWZhdWx0cykge1xyXG4gICAgc3VwZXIoZGVmYXVsdHMpO1xyXG4gIH1cclxuICAvLyEgaW5wdXQgdmlld1xyXG4gIHJlYWRvbmx5IHRleHRJbnB1dEVsID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+KCd0ZXh0SW5wdXQnKTtcclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlucHV0TW9kZWwgPSBuZXcgSGV4SW5wdXRNb2RlbCh0aGlzKTtcclxuICBwcm90ZWN0ZWQgX3dhc1ZpZXdJbml0ID0gZmFsc2U7XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fd2FzVmlld0luaXQgPSB0cnVlO1xyXG4gICAgdGhpcy5fc2V0SW5wdXRBdHRyaWJ1dGVzKCk7XHJcbiAgICAvL3NldCB0aGUgdmFsdWVcclxuICAgIGlmICh0aGlzLl92YWx1ZUJlZm9yZUluaXQpIHtcclxuICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuX3ZhbHVlQmVmb3JlSW5pdCk7XHJcbiAgICAgIGRlbGV0ZSB0aGlzLl92YWx1ZUJlZm9yZUluaXQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBpbnB1dElkID0gaW5wdXQ8TnVsbGFibGU8c3RyaW5nPj4oKTtcclxuXHJcbiAgLy8hIHByZWZpeCAmIHN1ZmZpeFxyXG4gIHJlYWRvbmx5IHByZWZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZEhleElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IHN1ZmZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZEhleElucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG5cclxuICAvLyEgcGxhY2Vob2xkZXJcclxuICByZWFkb25seSBwbGFjZWhvbGRlciA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHRoaXMuX0RFRkFVTFRTLnBsYWNlaG9sZGVyKTtcclxuXHJcbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXJUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRIZXhJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUpO1xyXG5cclxuICByZWFkb25seSBzaG91bGREaXNwbGF5UGxhY2Vob2xkZXIgPSBjb21wdXRlZCgoKTogYm9vbGVhbiA9PiBCb29sZWFuKHRoaXMucGxhY2Vob2xkZXIoKSkgJiYgIXRoaXMuaW5wdXRNb2RlbC5zdHJpbmdWYWx1ZSgpKTtcclxuXHJcbiAgLy8hIGFwcGVhcmFuY2VcclxuICAvL2FsbCBoYW5kbGVkIGluIGFyZC1mb3JtLWZpZWxkLWZyYW1lIGNvbXBvbmVudFxyXG4gIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSBpbnB1dDxGb3JtRWxlbWVudEFwcGVhcmFuY2U+KHRoaXMuX0RFRkFVTFRTLmFwcGVhcmFuY2UpO1xyXG4gIHJlYWRvbmx5IHZhcmlhbnQgPSBpbnB1dDxGb3JtRWxlbWVudFZhcmlhbnQ+KHRoaXMuX0RFRkFVTFRTLnZhcmlhbnQpO1xyXG5cclxuICByZWFkb25seSBjb21wYWN0ID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jb21wYWN0LCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcblxyXG4gIC8vISBzZXR0aW5nc1xyXG4gIHJlYWRvbmx5IGNhc2UgPSBpbnB1dDxDYXNlVHJhbnNmb3JtZXJUeXBlPih0aGlzLl9ERUZBVUxUUy5jYXNlKTtcclxuXHJcbiAgcmVhZG9ubHkgbWF4RGlnaXRzID0gaW5wdXQ8TnVsbGFibGU8bnVtYmVyPiwgYW55Pih0aGlzLl9ERUZBVUxUUy5tYXhEaWdpdHMsIHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCB0aGlzLl9ERUZBVUxUUy5tYXhEaWdpdHMpLFxyXG4gIH0pO1xyXG5cclxuICByZWFkb25seSBoaWRlSGFzaCA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMuaGlkZUhhc2gsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuICByZWFkb25seSBzaG93SGFzaCA9IGNvbXB1dGVkKCgpID0+ICF0aGlzLmhpZGVIYXNoKCkpO1xyXG5cclxuICAvLyEgY2xlYXIgYnV0dG9uXHJcbiAgcmVhZG9ubHkgY2xlYXJhYmxlID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jbGVhcmFibGUsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgY2xlYXJCdXR0b25UaXRsZSA9IGlucHV0PHN0cmluZz4odGhpcy5fREVGQVVMVFMuY2xlYXJCdXR0b25UaXRsZSk7XHJcblxyXG4gIHJlYWRvbmx5IHNob3VsZFNob3dDbGVhckJ1dHRvbiA9IGNvbXB1dGVkPGJvb2xlYW4+KFxyXG4gICAgKCkgPT4gdGhpcy5jbGVhcmFibGUoKSAmJiAhdGhpcy5kaXNhYmxlZCgpICYmIEJvb2xlYW4odGhpcy5pbnB1dE1vZGVsPy52YWx1ZSgpKVxyXG4gICk7XHJcblxyXG4gIG9uQ2xlYXJCdXR0b25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmlucHV0TW9kZWwuY2xlYXIoKTtcclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICAgIHRoaXMuX2VtaXRJbnB1dCgpO1xyXG4gICAgdGhpcy5jbGVhckV2ZW50LmVtaXQoKTtcclxuICAgIHRoaXMuZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIC8vISBvdGhlciBpbnB1dHNcclxuICByZWFkb25seSBpbnB1dEF0dHJzID0gaW5wdXQ8UmVjb3JkPHN0cmluZywgYW55Pj4oe30pO1xyXG5cclxuICAvLyEgY29udHJvbCB2YWx1ZSBhY2Nlc3NvcidzIHdyaXRlIHZhbHVlIGltcGxlbWVudGF0aW9uXHJcbiAgd3JpdGVWYWx1ZSh2OiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5fd2FzVmlld0luaXQpIHtcclxuICAgICAgdGhpcy5fdmFsdWVCZWZvcmVJbml0ID0gdjtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnB1dE1vZGVsLndyaXRlVmFsdWUodik7XHJcbiAgfVxyXG5cclxuICAvLyEgdmFsdWUgdHdvLXdheSBiaW5kaW5nXHJcbiAgcHJvdGVjdGVkIF92YWx1ZUJlZm9yZUluaXQ/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKVxyXG4gIHNldCB2YWx1ZSh2OiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICBpZiAoIXRoaXMuX3dhc1ZpZXdJbml0KSB7XHJcbiAgICAgIHRoaXMuX3ZhbHVlQmVmb3JlSW5pdCA9IHY7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMud3JpdGVWYWx1ZSh2KTtcclxuICB9XHJcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5wdXRNb2RlbD8uaGFzaFNpZ25WYWx1ZSgpO1xyXG4gIH1cclxuICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG91dHB1dDxzdHJpbmc+KCk7XHJcblxyXG4gIC8vISBldmVudCBlbWl0dGVyc1xyXG4gIHJlYWRvbmx5IGlucHV0RXZlbnQgPSBvdXRwdXQ8c3RyaW5nPih7IGFsaWFzOiAnaW5wdXQnIH0pO1xyXG4gIHJlYWRvbmx5IGNoYW5nZUV2ZW50ID0gb3V0cHV0PHN0cmluZz4oeyBhbGlhczogJ2NoYW5nZScgfSk7XHJcbiAgcmVhZG9ubHkgY2xlYXJFdmVudCA9IG91dHB1dDx2b2lkPih7IGFsaWFzOiAnY2xlYXInIH0pO1xyXG5cclxuICAvLyEgZXZlbnQgaGFuZGxlcnNcclxuICBvbklucHV0KG5ld1ZhbDogc3RyaW5nLCBldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgY29uc3QgdmFsdWVIYXNDaGFuZ2VkID0gdGhpcy5pbnB1dE1vZGVsLndyaXRlVmFsdWUobmV3VmFsKTtcclxuICAgIGlmICghdmFsdWVIYXNDaGFuZ2VkKSByZXR1cm47XHJcbiAgICB0aGlzLl9lbWl0SW5wdXQoKTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIF9lbWl0SW5wdXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB2ID0gdGhpcy5pbnB1dE1vZGVsLmhhc2hTaWduVmFsdWUoKTtcclxuICAgIHRoaXMuaW5wdXRFdmVudC5lbWl0KHYpO1xyXG4gICAgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkPy4odik7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgX2VtaXRDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICBjb25zdCB2ID0gdGhpcy5pbnB1dE1vZGVsLmhhc2hTaWduVmFsdWUoKTtcclxuICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdCh2KTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG9uQmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xyXG4gICAgc3VwZXIub25CbHVyKGV2ZW50KTtcclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIC8vc21hcnQgZm9jdXNcclxuICBvbk1vdXNldXAoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XHJcbiAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi50eXBlID09PSAnUmFuZ2UnKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgb25Db3B5KGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnZhbHVlICYmXHJcbiAgICAgIC8vZG9lcyB0aGUgc2VsZWN0aW9uIGNvdmVyIHRoZSBlbnRpcmUgaW5wdXRcclxuICAgICAgKCh0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDAgJiZcclxuICAgICAgICB0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kID09PSB0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoKSB8fFxyXG4gICAgICAgIC8vb3IgaXMgemVyby13aWRlXHJcbiAgICAgICAgdGhpcy50ZXh0SW5wdXRFbCgpPy5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSB0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kKVxyXG4gICAgKSB7XHJcbiAgICAgIGV2ZW50LmNsaXBib2FyZERhdGE/LnNldERhdGEoJ3RleHQvcGxhaW4nLCB0aGlzLnZhbHVlKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vISBoZWxwZXJzXHJcbiAgcHJvdGVjdGVkIF9zZXRJbnB1dEF0dHJpYnV0ZXMoKSB7XHJcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMudGV4dElucHV0RWwoKSEubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XHJcbiAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgYXV0b2NvcnJlY3Q6ICdvZmYnLFxyXG4gICAgICBhdXRvY2FwaXRhbGl6ZTogJ29mZicsXHJcbiAgICAgIGF1dG9jb21wbGV0ZTogJ29mZicsXHJcbiAgICAgIHRhYmluZGV4OiBTdHJpbmcodGhpcy50YWJJbmRleCksXHJcbiAgICAgIC4uLnRoaXMuaW5wdXRBdHRycyxcclxuICAgIH07XHJcblxyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYXR0cmlidXRlcykpIHtcclxuICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKGtleSwgU3RyaW5nKGF0dHJpYnV0ZXNba2V5XSkpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8YXJkLWZvcm0tZmllbGQtZnJhbWVcclxuICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlKClcIlxyXG4gIFt2YXJpYW50XT1cInZhcmlhbnQoKVwiXHJcbiAgW2NvbXBhY3RdPVwiY29tcGFjdCgpXCJcclxuICBbaGFzRXJyb3JdPVwiaGFzRXJyb3IoKVwiXHJcbiAgW2lzU3VjY2Vzc109XCJpc1N1Y2Nlc3MoKVwiXHJcbiAgW2lzRm9jdXNlZF09XCJpc0ZvY3VzZWQoKVwiXHJcbiAgW3ByZWZpeFRlbXBsYXRlXT1cInByZWZpeFRlbXBsYXRlKCk/LnRlbXBsYXRlXCJcclxuICBbc3VmZml4VGVtcGxhdGVdPVwic3VmZml4VGVtcGxhdGUoKT8udGVtcGxhdGVcIlxyXG4+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJhcmQtaGV4LWlucHV0XCJcclxuICAgIFtjbGFzcy5hcmQtaGFzLXZhbHVlXT1cInZhbHVlXCJcclxuICAgIChtb3VzZXVwKT1cIm9uTW91c2V1cCgpXCJcclxuICA+XHJcbiAgICBAaWYgKHNob3dIYXNoKCkpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImFyZC1oYXNoLWNvbnRhaW5lclwiPiM8L2Rpdj5cclxuICAgIH1cclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtaW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICAgIEBpZiAoc2hvdWxkRGlzcGxheVBsYWNlaG9sZGVyKCkpIHtcclxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRQbGFjZWhvbGRlclRlbXBsYXRlPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1wbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyKCkgfX08L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicGxhY2Vob2xkZXJUZW1wbGF0ZSgpPy50ZW1wbGF0ZSB8fCBkZWZhdWx0UGxhY2Vob2xkZXJUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgICN0ZXh0SW5wdXRcclxuICAgICAgICAjZm9jdXNhYmxlRWxlbWVudFxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICBbYXR0ci5pZF09XCJpbnB1dElkKClcIlxyXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4KClcIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXHJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQodGV4dElucHV0LnZhbHVlLCAkZXZlbnQpXCJcclxuICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAobW91c2V1cCk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgIChjb3B5KT1cIm9uQ29weSgkZXZlbnQpXCJcclxuICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIEBpZiAoc2hvdWxkU2hvd0NsZWFyQnV0dG9uKCkpIHtcclxuICAgICAgPGFyZC1jbGVhci1idXR0b25cclxuICAgICAgICBbdGl0bGVdPVwiY2xlYXJCdXR0b25UaXRsZSgpXCJcclxuICAgICAgICAoY2xpY2spPVwib25DbGVhckJ1dHRvbkNsaWNrKCRldmVudClcIlxyXG4gICAgICAvPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L2FyZC1mb3JtLWZpZWxkLWZyYW1lPlxyXG4iXX0=
|