@ardium-ui/ui 2.4.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/_internal/boolean-component.mjs +1 -1
- package/esm2022/lib/_internal/clear-button/clear-button.component.mjs +9 -6
- package/esm2022/lib/_internal/disablable-component.mjs +5 -4
- package/esm2022/lib/_internal/focusable-component.mjs +5 -2
- package/esm2022/lib/_internal/item-storages/dropdown-item-storage.mjs +30 -23
- package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +4 -5
- package/esm2022/lib/_internal/item-storages/simplest-item-storage.mjs +7 -8
- package/esm2022/lib/_internal/models/pagination.model.mjs +3 -3
- package/esm2022/lib/_internal/ngmodel-component.mjs +1 -2
- package/esm2022/lib/_internal/selectable-list-component.mjs +2 -22
- package/esm2022/lib/badge/badge.defaults.mjs +12 -6
- package/esm2022/lib/badge/badge.directive.mjs +1 -1
- package/esm2022/lib/badge/index.mjs +1 -1
- package/esm2022/lib/buttons/_button-base.defaults.mjs +1 -1
- package/esm2022/lib/buttons/_button-base.mjs +6 -5
- package/esm2022/lib/buttons/button/button.component.mjs +11 -9
- package/esm2022/lib/buttons/button/button.defaults.mjs +11 -7
- package/esm2022/lib/buttons/button/index.mjs +1 -1
- package/esm2022/lib/buttons/fab/fab.component.mjs +15 -14
- package/esm2022/lib/buttons/fab/fab.defaults.mjs +11 -5
- package/esm2022/lib/buttons/fab/index.mjs +1 -1
- package/esm2022/lib/buttons/general-button.types.mjs +2 -2
- package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +11 -9
- package/esm2022/lib/buttons/icon-button/icon-button.defaults.mjs +4 -1
- package/esm2022/lib/buttons/icon-button/index.mjs +1 -1
- package/esm2022/lib/card/card.children.mjs +4 -4
- package/esm2022/lib/card/card.component.mjs +2 -2
- package/esm2022/lib/card/card.defaults.mjs +10 -4
- package/esm2022/lib/card/index.mjs +1 -1
- package/esm2022/lib/checkbox/checkbox.component.mjs +13 -17
- package/esm2022/lib/checkbox/checkbox.defaults.mjs +10 -4
- package/esm2022/lib/checkbox/index.mjs +1 -1
- package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +11 -9
- package/esm2022/lib/checkbox-list/checkbox-list.defaults.mjs +17 -11
- package/esm2022/lib/checkbox-list/index.mjs +3 -2
- package/esm2022/lib/chip/chip.component.mjs +11 -9
- package/esm2022/lib/chip/chip.defaults.mjs +4 -1
- package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +11 -9
- package/esm2022/lib/chip/deletable-chip/deletable-chip.defaults.mjs +10 -4
- package/esm2022/lib/chip/index.mjs +5 -2
- package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +11 -9
- package/esm2022/lib/chip/selectable-chip/selectable-chip.defaults.mjs +11 -5
- package/esm2022/lib/color/color-display/color-display.component.mjs +13 -12
- package/esm2022/lib/color/color-display/color-display.defaults.mjs +16 -0
- package/esm2022/lib/color/color-display/index.mjs +3 -2
- package/esm2022/lib/dialog/dialog.component.mjs +23 -22
- package/esm2022/lib/dialog/dialog.defaults.mjs +24 -0
- package/esm2022/lib/dialog/dialog.types.mjs +1 -1
- package/esm2022/lib/dialog/index.mjs +4 -3
- package/esm2022/lib/divider/divider.component.mjs +1 -1
- package/esm2022/lib/divider/divider.defaults.mjs +8 -2
- package/esm2022/lib/divider/index.mjs +3 -2
- package/esm2022/lib/dropdown-panel/dropdown-panel.component.mjs +10 -9
- package/esm2022/lib/dropdown-panel/dropdown-panel.defaults.mjs +17 -0
- package/esm2022/lib/dropdown-panel/index.mjs +3 -2
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +14 -12
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.defaults.mjs +18 -0
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.module.mjs +1 -1
- package/esm2022/lib/file-inputs/file-drop-area/index.mjs +3 -2
- package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +23 -25
- package/esm2022/lib/file-inputs/file-input/file-input.defaults.mjs +23 -0
- package/esm2022/lib/file-inputs/file-input/index.mjs +3 -2
- package/esm2022/lib/file-inputs/file-input-base.defaults.mjs +8 -0
- package/esm2022/lib/file-inputs/file-input-base.mjs +2 -2
- package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +12 -8
- package/esm2022/lib/form-field-frame/form-field-frame.defaults.mjs +18 -0
- package/esm2022/lib/form-field-frame/index.mjs +3 -2
- package/esm2022/lib/icon/icon.component.mjs +6 -4
- package/esm2022/lib/icon/icon.defaults.mjs +17 -0
- package/esm2022/lib/icon/index.mjs +3 -2
- package/esm2022/lib/inputs/_simple-input-base.mjs +159 -0
- package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +17 -15
- package/esm2022/lib/inputs/digit-input/digit-input.defaults.mjs +21 -0
- package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.types.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.utils.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/index.mjs +3 -2
- package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +24 -23
- package/esm2022/lib/inputs/hex-input/hex-input.defaults.mjs +26 -0
- package/esm2022/lib/inputs/hex-input/hex-input.model.mjs +97 -0
- package/esm2022/lib/inputs/hex-input/hex-input.module.mjs +1 -1
- package/esm2022/lib/inputs/hex-input/index.mjs +3 -2
- package/esm2022/lib/inputs/input/index.mjs +1 -1
- package/esm2022/lib/inputs/input/input.component.mjs +28 -48
- package/esm2022/lib/inputs/input/input.defaults.mjs +17 -0
- package/esm2022/lib/inputs/input/input.directives.mjs +1 -1
- package/esm2022/lib/inputs/input/input.module.mjs +1 -1
- package/esm2022/lib/inputs/input-transformers.mjs +1 -1
- package/esm2022/lib/inputs/input-utils.mjs +1 -1
- package/esm2022/lib/inputs/number-input/index.mjs +3 -2
- package/esm2022/lib/inputs/number-input/number-input.component.mjs +34 -30
- package/esm2022/lib/inputs/number-input/number-input.defaults.mjs +27 -0
- package/esm2022/lib/inputs/password-input/index.mjs +3 -2
- package/esm2022/lib/inputs/password-input/password-input.component.mjs +23 -18
- package/esm2022/lib/inputs/password-input/password-input.defaults.mjs +24 -0
- package/esm2022/lib/inputs/password-input/password-input.types.mjs +1 -1
- package/esm2022/lib/inputs/simple-input/index.mjs +3 -2
- package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +15 -145
- package/esm2022/lib/inputs/simple-input/simple-input.defaults.mjs +25 -0
- package/esm2022/lib/kbd/index.mjs +2 -1
- package/esm2022/lib/kbd/kbd.component.mjs +6 -4
- package/esm2022/lib/kbd/kbd.defaults.mjs +15 -0
- package/esm2022/lib/kbd/kbd.directive.mjs +1 -1
- package/esm2022/lib/kbd/kbd.pipe.mjs +7 -3
- package/esm2022/lib/kbd-shortcut/index.mjs +3 -2
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.component.mjs +12 -7
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.defaults.mjs +8 -0
- package/esm2022/lib/modal/index.mjs +3 -2
- package/esm2022/lib/modal/modal.component.mjs +14 -11
- package/esm2022/lib/modal/modal.defaults.mjs +20 -0
- package/esm2022/lib/option/index.mjs +1 -1
- package/esm2022/lib/option/option.component.mjs +1 -1
- package/esm2022/lib/progress-bar/index.mjs +4 -3
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +19 -18
- package/esm2022/lib/progress-bar/progress-bar.defaults.mjs +21 -0
- package/esm2022/lib/progress-bar/progress-bar.types.mjs +1 -1
- package/esm2022/lib/progress-circle/index.mjs +4 -3
- package/esm2022/lib/progress-circle/progress-circle.component.mjs +18 -22
- package/esm2022/lib/progress-circle/progress-circle.defaults.mjs +21 -0
- package/esm2022/lib/progress-circle/progress-circle.module.mjs +4 -4
- package/esm2022/lib/progress-circle/progress-circle.types.mjs +1 -1
- package/esm2022/lib/radio/index.mjs +4 -3
- package/esm2022/lib/radio/radio/radio.component.mjs +13 -10
- package/esm2022/lib/radio/radio/radio.defaults.mjs +16 -0
- package/esm2022/lib/radio/radio-group.component.mjs +7 -7
- package/esm2022/lib/search-functions.mjs +2 -2
- package/esm2022/lib/segment/index.mjs +3 -2
- package/esm2022/lib/segment/segment.component.mjs +22 -21
- package/esm2022/lib/segment/segment.defaults.mjs +26 -0
- package/esm2022/lib/segment/segment.directives.mjs +1 -1
- package/esm2022/lib/select/index.mjs +3 -2
- package/esm2022/lib/select/select.component.mjs +76 -101
- package/esm2022/lib/select/select.defaults.mjs +53 -0
- package/esm2022/lib/select/select.directive.mjs +1 -1
- package/esm2022/lib/select/select.types.mjs +1 -1
- package/esm2022/lib/slide-toggle/index.mjs +2 -1
- package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +17 -15
- package/esm2022/lib/slide-toggle/slide-toggle.defaults.mjs +21 -0
- package/esm2022/lib/slide-toggle/slide-toggle.types.mjs +1 -1
- package/esm2022/lib/slider/abstract-slider.mjs +44 -34
- package/esm2022/lib/slider/index.mjs +5 -4
- package/esm2022/lib/slider/range-slider/range-slider.component.mjs +13 -9
- package/esm2022/lib/slider/slider.component.mjs +13 -9
- package/esm2022/lib/slider/slider.defaults.mjs +14 -0
- package/esm2022/lib/slider/slider.module.mjs +1 -1
- package/esm2022/lib/slider/slider.types.mjs +1 -1
- package/esm2022/lib/snackbar/snackbar-ref.mjs +1 -1
- package/esm2022/lib/snackbar/snackbar.component.mjs +3 -3
- package/esm2022/lib/snackbar/snackbar.service.mjs +8 -12
- package/esm2022/lib/snackbar/snackbar.token.mjs +12 -6
- package/esm2022/lib/snackbar/snackbar.types.mjs +1 -1
- package/esm2022/lib/spinner/index.mjs +3 -2
- package/esm2022/lib/spinner/spinner.component.mjs +7 -6
- package/esm2022/lib/spinner/spinner.defaults.mjs +14 -0
- package/esm2022/lib/star/index.mjs +3 -2
- package/esm2022/lib/star/star-button/index.mjs +3 -2
- package/esm2022/lib/star/star-button/star-button.component.mjs +14 -11
- package/esm2022/lib/star/star-button/star-button.defaults.mjs +18 -0
- package/esm2022/lib/star/star-display/index.mjs +3 -2
- package/esm2022/lib/star/star-display/star-display.component.mjs +10 -8
- package/esm2022/lib/star/star-display/star-display.defaults.mjs +16 -0
- package/esm2022/lib/star/star-input/index.mjs +3 -2
- package/esm2022/lib/star/star-input/star-input.component.mjs +14 -11
- package/esm2022/lib/star/star-input/star-input.defaults.mjs +17 -0
- package/esm2022/lib/star/star.component.mjs +15 -8
- package/esm2022/lib/star/star.defaults.mjs +15 -0
- package/esm2022/lib/statebox/index.mjs +2 -1
- package/esm2022/lib/statebox/statebox.component.mjs +19 -25
- package/esm2022/lib/statebox/statebox.defaults.mjs +20 -0
- package/esm2022/lib/statebox/statebox.types.mjs +1 -1
- package/esm2022/lib/tabber/index.mjs +5 -3
- package/esm2022/lib/tabber/tab/tab.component.mjs +7 -5
- package/esm2022/lib/tabber/tab/tab.defaults.mjs +13 -0
- package/esm2022/lib/tabber/tabber.component.mjs +10 -10
- package/esm2022/lib/tabber/tabber.defaults.mjs +19 -0
- package/esm2022/lib/tabber/tabber.module.mjs +1 -1
- package/esm2022/lib/table/index.mjs +3 -2
- package/esm2022/lib/table/table-item-storage.mjs +4 -4
- package/esm2022/lib/table/table.component.mjs +69 -50
- package/esm2022/lib/table/table.defaults.mjs +53 -0
- package/esm2022/lib/table/table.directives.mjs +1 -1
- package/esm2022/lib/table/table.module.mjs +8 -7
- package/esm2022/lib/table-from-csv/index.mjs +3 -2
- package/esm2022/lib/table-from-csv/table-from-csv.component.mjs +44 -44
- package/esm2022/lib/table-from-csv/table-from-csv.defaults.mjs +15 -0
- package/esm2022/lib/table-pagination/index.mjs +3 -2
- package/esm2022/lib/table-pagination/table-pagination.component.mjs +13 -9
- package/esm2022/lib/table-pagination/table-pagination.defaults.mjs +25 -0
- package/esm2022/lib/types/button.types.mjs +1 -1
- package/esm2022/lib/types/item-storage.types.mjs +1 -1
- package/esm2022/lib/types/utility.types.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/ardium-ui-ui.mjs +2632 -1980
- package/fesm2022/ardium-ui-ui.mjs.map +1 -1
- package/lib/_internal/clear-button/clear-button.component.d.ts +1 -0
- package/lib/_internal/disablable-component.d.ts +1 -0
- package/lib/_internal/item-storages/dropdown-item-storage.d.ts +9 -19
- package/lib/_internal/item-storages/simple-item-storage.d.ts +1 -1
- package/lib/_internal/item-storages/simplest-item-storage.d.ts +3 -3
- package/lib/_internal/models/pagination.model.d.ts +2 -2
- package/lib/_internal/selectable-list-component.d.ts +0 -1
- package/lib/badge/badge.defaults.d.ts +2 -1
- package/lib/buttons/_button-base.d.ts +1 -0
- package/lib/buttons/button/button.component.d.ts +3 -1
- package/lib/buttons/button/button.defaults.d.ts +2 -1
- package/lib/buttons/fab/fab.component.d.ts +5 -5
- package/lib/buttons/fab/fab.defaults.d.ts +4 -4
- package/lib/buttons/general-button.types.d.ts +2 -2
- package/lib/buttons/icon-button/icon-button.component.d.ts +3 -1
- package/lib/buttons/icon-button/icon-button.defaults.d.ts +2 -1
- package/lib/card/card.defaults.d.ts +2 -1
- package/lib/checkbox/checkbox.component.d.ts +4 -3
- package/lib/checkbox/checkbox.defaults.d.ts +2 -1
- package/lib/checkbox-list/checkbox-list.component.d.ts +4 -2
- package/lib/checkbox-list/checkbox-list.defaults.d.ts +2 -1
- package/lib/checkbox-list/index.d.ts +2 -1
- package/lib/chip/chip.component.d.ts +3 -1
- package/lib/chip/chip.defaults.d.ts +3 -10
- package/lib/chip/deletable-chip/deletable-chip.component.d.ts +3 -1
- package/lib/chip/deletable-chip/deletable-chip.defaults.d.ts +2 -1
- package/lib/chip/index.d.ts +4 -1
- package/lib/chip/selectable-chip/selectable-chip.component.d.ts +3 -1
- package/lib/chip/selectable-chip/selectable-chip.defaults.d.ts +2 -1
- package/lib/color/color-display/color-display.component.d.ts +2 -1
- package/lib/color/color-display/color-display.defaults.d.ts +9 -0
- package/lib/color/color-display/index.d.ts +2 -1
- package/lib/dialog/dialog.component.d.ts +1 -0
- package/lib/dialog/dialog.defaults.d.ts +16 -0
- package/lib/dialog/index.d.ts +3 -2
- package/lib/divider/divider.defaults.d.ts +2 -1
- package/lib/divider/index.d.ts +2 -1
- package/lib/dropdown-panel/dropdown-panel.component.d.ts +1 -0
- package/lib/dropdown-panel/dropdown-panel.defaults.d.ts +10 -0
- package/lib/dropdown-panel/index.d.ts +2 -1
- package/lib/file-inputs/file-drop-area/file-drop-area.component.d.ts +5 -2
- package/lib/file-inputs/file-drop-area/file-drop-area.defaults.d.ts +10 -0
- package/lib/file-inputs/file-drop-area/index.d.ts +2 -1
- package/lib/file-inputs/file-input/file-input.component.d.ts +4 -4
- package/lib/file-inputs/file-input/file-input.defaults.d.ts +15 -0
- package/lib/file-inputs/file-input/index.d.ts +2 -1
- package/lib/file-inputs/file-input-base.d.ts +2 -0
- package/lib/file-inputs/file-input-base.defaults.d.ts +7 -0
- package/lib/form-field-frame/form-field-frame.component.d.ts +3 -0
- package/lib/form-field-frame/form-field-frame.defaults.d.ts +10 -0
- package/lib/form-field-frame/index.d.ts +2 -1
- package/lib/icon/icon.component.d.ts +7 -3
- package/lib/icon/icon.defaults.d.ts +11 -0
- package/lib/icon/index.d.ts +2 -1
- package/lib/inputs/_simple-input-base.d.ts +62 -0
- package/lib/inputs/digit-input/digit-input.component.d.ts +3 -0
- package/lib/inputs/digit-input/digit-input.defaults.d.ts +13 -0
- package/lib/inputs/digit-input/index.d.ts +2 -1
- package/lib/inputs/hex-input/hex-input.component.d.ts +4 -4
- package/lib/inputs/hex-input/hex-input.defaults.d.ts +19 -0
- package/lib/inputs/{hex-input.model.d.ts → hex-input/hex-input.model.d.ts} +2 -2
- package/lib/inputs/hex-input/index.d.ts +2 -1
- package/lib/inputs/input/input.component.d.ts +10 -17
- package/lib/inputs/input/input.defaults.d.ts +9 -0
- package/lib/inputs/number-input/index.d.ts +2 -1
- package/lib/inputs/number-input/number-input.component.d.ts +3 -1
- package/lib/inputs/number-input/number-input.defaults.d.ts +19 -0
- package/lib/inputs/password-input/index.d.ts +2 -1
- package/lib/inputs/password-input/password-input.component.d.ts +3 -0
- package/lib/inputs/password-input/password-input.defaults.d.ts +17 -0
- package/lib/inputs/simple-input/index.d.ts +2 -1
- package/lib/inputs/simple-input/simple-input.component.d.ts +6 -50
- package/lib/inputs/simple-input/simple-input.defaults.d.ts +6 -0
- package/lib/kbd/index.d.ts +1 -0
- package/lib/kbd/kbd.component.d.ts +1 -0
- package/lib/kbd/kbd.defaults.d.ts +8 -0
- package/lib/kbd/kbd.pipe.d.ts +1 -0
- package/lib/kbd-shortcut/index.d.ts +2 -1
- package/lib/kbd-shortcut/kbd-shortcut.component.d.ts +2 -0
- package/lib/kbd-shortcut/kbd-shortcut.defaults.d.ts +8 -0
- package/lib/modal/index.d.ts +2 -1
- package/lib/modal/modal.component.d.ts +1 -0
- package/lib/modal/modal.defaults.d.ts +14 -0
- package/lib/progress-bar/index.d.ts +3 -2
- package/lib/progress-bar/progress-bar.component.d.ts +3 -1
- package/lib/progress-bar/progress-bar.defaults.d.ts +14 -0
- package/lib/progress-circle/index.d.ts +3 -2
- package/lib/progress-circle/progress-circle.component.d.ts +3 -1
- package/lib/progress-circle/progress-circle.defaults.d.ts +14 -0
- package/lib/progress-circle/progress-circle.module.d.ts +1 -1
- package/lib/radio/index.d.ts +3 -2
- package/lib/radio/radio/radio.component.d.ts +5 -2
- package/lib/radio/radio/radio.defaults.d.ts +8 -0
- package/lib/segment/index.d.ts +2 -1
- package/lib/segment/segment.component.d.ts +3 -0
- package/lib/segment/segment.defaults.d.ts +18 -0
- package/lib/select/index.d.ts +2 -1
- package/lib/select/select.component.d.ts +11 -22
- package/lib/select/select.defaults.d.ts +49 -0
- package/lib/slide-toggle/index.d.ts +1 -0
- package/lib/slide-toggle/slide-toggle.component.d.ts +9 -6
- package/lib/slide-toggle/slide-toggle.defaults.d.ts +14 -0
- package/lib/slider/abstract-slider.d.ts +22 -5
- package/lib/slider/index.d.ts +4 -3
- package/lib/slider/range-slider/range-slider.component.d.ts +3 -0
- package/lib/slider/slider.component.d.ts +3 -0
- package/lib/slider/slider.defaults.d.ts +6 -0
- package/lib/snackbar/snackbar.service.d.ts +1 -2
- package/lib/snackbar/snackbar.token.d.ts +3 -3
- package/lib/spinner/index.d.ts +2 -1
- package/lib/spinner/spinner.component.d.ts +1 -0
- package/lib/spinner/spinner.defaults.d.ts +7 -0
- package/lib/star/index.d.ts +2 -1
- package/lib/star/star-button/index.d.ts +2 -1
- package/lib/star/star-button/star-button.component.d.ts +3 -0
- package/lib/star/star-button/star-button.defaults.d.ts +10 -0
- package/lib/star/star-display/index.d.ts +2 -1
- package/lib/star/star-display/star-display.component.d.ts +1 -0
- package/lib/star/star-display/star-display.defaults.d.ts +9 -0
- package/lib/star/star-input/index.d.ts +2 -1
- package/lib/star/star-input/star-input.component.d.ts +3 -1
- package/lib/star/star-input/star-input.defaults.d.ts +9 -0
- package/lib/star/star.component.d.ts +4 -2
- package/lib/star/star.defaults.d.ts +8 -0
- package/lib/statebox/index.d.ts +1 -0
- package/lib/statebox/statebox.component.d.ts +7 -6
- package/lib/statebox/statebox.defaults.d.ts +10 -0
- package/lib/tabber/index.d.ts +4 -2
- package/lib/tabber/tab/tab.component.d.ts +1 -0
- package/lib/tabber/tab/tab.defaults.d.ts +6 -0
- package/lib/tabber/tabber.component.d.ts +1 -0
- package/lib/tabber/tabber.defaults.d.ts +12 -0
- package/lib/table/index.d.ts +2 -1
- package/lib/table/table-item-storage.d.ts +5 -10
- package/lib/table/table.component.d.ts +11 -9
- package/lib/table/table.defaults.d.ts +50 -0
- package/lib/table/table.module.d.ts +2 -1
- package/lib/table-from-csv/index.d.ts +2 -1
- package/lib/table-from-csv/table-from-csv.component.d.ts +7 -5
- package/lib/table-from-csv/table-from-csv.defaults.d.ts +7 -0
- package/lib/table-pagination/index.d.ts +2 -1
- package/lib/table-pagination/table-pagination.component.d.ts +3 -0
- package/lib/table-pagination/table-pagination.defaults.d.ts +20 -0
- package/lib/types/button.types.d.ts +1 -1
- package/lib/types/item-storage.types.d.ts +3 -63
- package/package.json +1 -1
- package/prebuilt-themes/default/buttons/fab.css +1 -1
- package/prebuilt-themes/default/buttons/icon-button.css +7 -12
- package/prebuilt-themes/default/buttons/icon-button.css.map +1 -1
- package/prebuilt-themes/default/checkbox.css.map +1 -1
- package/prebuilt-themes/default/inputs/color-input.css +5 -0
- package/prebuilt-themes/default/inputs/color-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/file-input.css +5 -0
- package/prebuilt-themes/default/inputs/file-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/hex-input.css +5 -0
- package/prebuilt-themes/default/inputs/hex-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/input.css +5 -0
- package/prebuilt-themes/default/inputs/input.css.map +1 -1
- package/prebuilt-themes/default/inputs/number-input.css +5 -0
- package/prebuilt-themes/default/inputs/number-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/password-input.css +5 -0
- package/prebuilt-themes/default/inputs/password-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/search-bar.css +5 -0
- package/prebuilt-themes/default/inputs/search-bar.css.map +1 -1
- package/prebuilt-themes/default/inputs/simple-input.css +5 -0
- package/prebuilt-themes/default/inputs/simple-input.css.map +1 -1
- package/prebuilt-themes/default/segment.css.map +1 -1
- package/prebuilt-themes/default/select.css +4 -0
- package/prebuilt-themes/default/select.css.map +1 -1
- package/prebuilt-themes/default/tabber.css +2 -0
- package/prebuilt-themes/default/tabber.css.map +1 -1
- package/prebuilt-themes/default/table.css +17 -0
- package/prebuilt-themes/default/table.css.map +1 -1
- package/themes/default/_clear-button.scss +73 -73
- package/themes/default/badge.scss +94 -94
- package/themes/default/buttons/button.scss +72 -72
- package/themes/default/buttons/fab.scss +74 -74
- package/themes/default/buttons/icon-button.scss +55 -62
- package/themes/default/card.scss +129 -129
- package/themes/default/checkbox.scss +1 -1
- package/themes/default/chips.scss +200 -200
- package/themes/default/core.scss +99 -99
- package/themes/default/inputs/_shared.scss +5 -0
- package/themes/default/inputs/digit-input.scss +56 -56
- package/themes/default/inputs/file-input.scss +85 -85
- package/themes/default/inputs/hex-input.scss +27 -27
- package/themes/default/modal.scss +93 -93
- package/themes/default/segment.scss +355 -351
- package/themes/default/select.scss +259 -255
- package/themes/default/snackbar.scss +58 -58
- package/themes/default/tabber.scss +89 -87
- package/themes/default/table.scss +20 -0
- package/esm2022/lib/color/color-picker/color-picker.types.mjs +0 -11
- package/esm2022/lib/inputs/color-input/color-input.directives.mjs +0 -101
- package/esm2022/lib/inputs/color-input/color-input.types.mjs +0 -2
- package/esm2022/lib/inputs/hex-input.model.mjs +0 -97
- package/lib/color/color-picker/color-picker.types.d.ts +0 -21
- package/lib/inputs/color-input/color-input.directives.d.ts +0 -52
- package/lib/inputs/color-input/color-input.types.d.ts +0 -5
|
@@ -1,34 +1,28 @@
|
|
|
1
|
-
import { OverlayConfig } from '@angular/cdk/overlay';
|
|
1
|
+
import { Overlay, OverlayConfig, ScrollStrategyOptions } from '@angular/cdk/overlay';
|
|
2
2
|
import { TemplatePortal } from '@angular/cdk/portal';
|
|
3
|
-
import { ChangeDetectionStrategy, Component, HostListener, Input, TemplateRef, ViewEncapsulation, computed, contentChild, forwardRef, input, output, signal, viewChild } from '@angular/core';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, HostListener, Inject, Input, TemplateRef, ViewContainerRef, ViewEncapsulation, computed, contentChild, forwardRef, inject, input, output, signal, viewChild, } from '@angular/core';
|
|
4
4
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
5
|
import { coerceArrayProperty, coerceBooleanProperty } from '@ardium-ui/devkit';
|
|
6
6
|
import { isString } from 'simple-bool';
|
|
7
7
|
import { SimplestItemStorage } from '../../_internal/item-storages/simplest-item-storage';
|
|
8
8
|
import { DropdownPanelAppearance, DropdownPanelVariant } from '../../dropdown-panel/dropdown-panel.types';
|
|
9
9
|
import { FormElementAppearance, FormElementVariant } from '../../types/theming.types';
|
|
10
|
-
import {
|
|
10
|
+
import { _SimpleInputComponentBase } from '../_simple-input-base';
|
|
11
11
|
import { InputModel, escapeAndCreateRegex } from './../input-utils';
|
|
12
|
+
import { ARD_INPUT_DEFAULTS } from './input.defaults';
|
|
12
13
|
import { ArdInputLoadingTemplateDirective, ArdInputPlaceholderTemplateDirective, ArdInputPrefixTemplateDirective, ArdInputSuffixTemplateDirective, ArdSuggestionTemplateDirective, } from './input.directives';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "@angular/
|
|
15
|
-
import * as i2 from "
|
|
16
|
-
import * as i3 from "../../
|
|
17
|
-
import * as i4 from "../../
|
|
18
|
-
import * as i5 from "
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
this.
|
|
24
|
-
this.
|
|
25
|
-
this.scrollStrategyOpts = scrollStrategyOpts;
|
|
26
|
-
this.DEFAULTS = {
|
|
27
|
-
clearButtonTitle: 'Clear',
|
|
28
|
-
valueFrom: 'value',
|
|
29
|
-
labelFrom: 'label',
|
|
30
|
-
suggestionsLoadingText: 'Loading...',
|
|
31
|
-
};
|
|
15
|
+
import * as i1 from "@angular/common";
|
|
16
|
+
import * as i2 from "../../form-field-frame/form-field-frame.component";
|
|
17
|
+
import * as i3 from "../../_internal/clear-button/clear-button.component";
|
|
18
|
+
import * as i4 from "../../dropdown-panel/dropdown-panel.component";
|
|
19
|
+
import * as i5 from "@ardium-ui/devkit";
|
|
20
|
+
export class ArdiumInputComponent extends _SimpleInputComponentBase {
|
|
21
|
+
constructor(defaults) {
|
|
22
|
+
super(defaults);
|
|
23
|
+
this.overlay = inject(Overlay);
|
|
24
|
+
this.scrollStrategyOpts = inject(ScrollStrategyOptions);
|
|
25
|
+
this.viewContainerRef = inject(ViewContainerRef);
|
|
32
26
|
//! input view
|
|
33
27
|
this.inputModel = new InputModel(this);
|
|
34
28
|
//! allowlist/denylist of characters
|
|
@@ -96,28 +90,14 @@ export class ArdiumInputComponent extends ArdiumSimpleInputComponent {
|
|
|
96
90
|
return DropdownPanelVariant.Rounded;
|
|
97
91
|
return variant;
|
|
98
92
|
});
|
|
99
|
-
this.
|
|
93
|
+
this.DEFAULTS = this._DEFAULTS;
|
|
100
94
|
}
|
|
101
95
|
set suggestions(value) {
|
|
102
96
|
if (!Array.isArray(value))
|
|
103
97
|
value = coerceArrayProperty(value);
|
|
104
|
-
|
|
98
|
+
this.suggestionStorage.setItems(value);
|
|
105
99
|
this._suggestionDropdowOpen.set(true);
|
|
106
100
|
this.suggestionStorage.highlightFirstItem();
|
|
107
|
-
if (shouldPrintErrors) {
|
|
108
|
-
this._printPrimitiveWarnings();
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
_printPrimitiveWarnings() {
|
|
112
|
-
function makeWarning(str) {
|
|
113
|
-
console.warn(`ARD-WA0031: Skipped using [${str}] property bound to <ard-input>, as some provided suggestion items are of primitive type`);
|
|
114
|
-
}
|
|
115
|
-
if (this.valueFrom()) {
|
|
116
|
-
makeWarning('valueFrom');
|
|
117
|
-
}
|
|
118
|
-
if (this.labelFrom()) {
|
|
119
|
-
makeWarning('labelFrom');
|
|
120
|
-
}
|
|
121
101
|
}
|
|
122
102
|
ngAfterViewInit() {
|
|
123
103
|
super.ngAfterViewInit();
|
|
@@ -147,9 +127,6 @@ export class ArdiumInputComponent extends ArdiumSimpleInputComponent {
|
|
|
147
127
|
const rect = this.dropdownHost()?.nativeElement.getBoundingClientRect();
|
|
148
128
|
this.dropdownOverlay.updateSize({ width: rect?.width });
|
|
149
129
|
}
|
|
150
|
-
onWindowResize() {
|
|
151
|
-
this.setOverlaySize();
|
|
152
|
-
}
|
|
153
130
|
getOptionContext(item) {
|
|
154
131
|
return {
|
|
155
132
|
$implicit: item,
|
|
@@ -189,7 +166,7 @@ export class ArdiumInputComponent extends ArdiumSimpleInputComponent {
|
|
|
189
166
|
if (!this.shouldDisplaySuggestions())
|
|
190
167
|
return;
|
|
191
168
|
const target = event.target;
|
|
192
|
-
if (this.element.contains(target))
|
|
169
|
+
if (this.viewContainerRef.element.nativeElement.contains(target))
|
|
193
170
|
return;
|
|
194
171
|
this._suggestionDropdowOpen.set(false);
|
|
195
172
|
}
|
|
@@ -252,14 +229,14 @@ export class ArdiumInputComponent extends ArdiumSimpleInputComponent {
|
|
|
252
229
|
this._isMouseBeingUsed = false;
|
|
253
230
|
this.suggestionStorage.highlightNextItem(-1);
|
|
254
231
|
}
|
|
255
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumInputComponent, deps: [{ token:
|
|
256
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", 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": "
|
|
232
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumInputComponent, deps: [{ token: ARD_INPUT_DEFAULTS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
233
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", 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: [
|
|
257
234
|
{
|
|
258
235
|
provide: NG_VALUE_ACCESSOR,
|
|
259
236
|
useExisting: forwardRef(() => ArdiumInputComponent),
|
|
260
237
|
multi: true,
|
|
261
238
|
},
|
|
262
|
-
], 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: ArdSuggestionTemplateDirective, 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\
|
|
239
|
+
], 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: ArdSuggestionTemplateDirective, 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\n [appearance]=\"appearance()\"\n [variant]=\"variant()\"\n [compact]=\"compact()\"\n [isFocused]=\"isFocused\"\n [prefixTemplate]=\"prefixTemplate()?.template\"\n [suffixTemplate]=\"suffixTemplate()?.template\"\n>\n <div\n class=\"ard-input\"\n #suggestionsHost\n [ngClass]=\"ngClasses()\"\n [class.ard-has-value]=\"value\"\n (click)=\"focus()\"\n >\n <div class=\"ard-input-container\">\n @if (shouldDisplayAutocomplete()) {\n <div class=\"ard-autocomplete\">{{ autocomplete() }}</div>\n }\n @if (shouldDisplayPlaceholder()) {\n <ng-template #defaultPlaceholderTemplate>\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\n </ng-template>\n\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\"></ng-template>\n }\n <input\n #textInput\n #focusableElement\n type=\"text\"\n [attr.id]=\"inputId()\"\n [attr.tabindex]=\"tabIndex()\"\n [readonly]=\"readonly()\"\n [disabled]=\"disabled()\"\n (input)=\"onInput(textInput.value)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n (copy)=\"onCopy($event)\"\n />\n </div>\n\n @if (shouldShowClearButton()) {\n <ard-clear-button\n [title]=\"clearButtonTitle()\"\n (click)=\"onClearButtonClick($event)\"\n />\n }\n </div>\n</ard-form-field-frame>\n\n<ng-template #suggestionsTemplate>\n <ard-dropdown-panel\n class=\"ard-dropdown-panel ard-input-suggestions-panel\"\n role=\"listbox\"\n [compact]=\"compact\"\n aria-label=\"Suggestions\"\n [appearance]=\"dropdownAppearanceOrDefault()\"\n [variant]=\"dropdownVariantOrDefault()\"\n [isOpen]=\"shouldDisplaySuggestions()\"\n (ardClickOutside)=\"handleSuggestionClickOutside($event)\"\n (mousemove)=\"onMouseMove()\"\n >\n @for (item of suggestionItems(); track item.index) {\n <div\n class=\"ard-option\"\n role=\"option\"\n [class.ard-option-selected]=\"item.selected()\"\n [class.ard-option-highlighted]=\"item.highlighted()\"\n [attr.aria-selected]=\"item.selected()\"\n (click)=\"selectSuggestion(item, $event)\"\n (mouseenter)=\"onSuggestionMouseEnter(item, $event)\"\n (mouseleave)=\"onSuggestionMouseLeave(item, $event)\"\n >\n <span class=\"ard-option-label\">\n <ng-template #defaultOptionTemplate>\n {{ item.label() }}\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"suggestionTemplate()?.template || defaultOptionTemplate\"\n [ngTemplateOutletContext]=\"getOptionContext(item)\"\n ></ng-template>\n </span>\n </div>\n }\n @if (areSuggestionsLoading()) {\n <ng-template #defaultLoadingPlaceholderTemplate>\n <div class=\"ard-option ard-option-disabled\">{{ suggestionsLoadingText() }}</div>\n </ng-template>\n\n <ng-template [ngTemplateOutlet]=\"suggestionLoadingTemplate()?.template || defaultLoadingPlaceholderTemplate\"></ng-template>\n }\n </ard-dropdown-panel>\n</ng-template>\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: ["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.ClickOutsideDirective, selector: "[ardClickOutside]", outputs: ["ardClickOutside"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
263
240
|
}
|
|
264
241
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumInputComponent, decorators: [{
|
|
265
242
|
type: Component,
|
|
@@ -269,10 +246,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
269
246
|
useExisting: forwardRef(() => ArdiumInputComponent),
|
|
270
247
|
multi: true,
|
|
271
248
|
},
|
|
272
|
-
], template: "<ard-form-field-frame\
|
|
273
|
-
}], ctorParameters: () => [{ type:
|
|
249
|
+
], template: "<ard-form-field-frame\n [appearance]=\"appearance()\"\n [variant]=\"variant()\"\n [compact]=\"compact()\"\n [isFocused]=\"isFocused\"\n [prefixTemplate]=\"prefixTemplate()?.template\"\n [suffixTemplate]=\"suffixTemplate()?.template\"\n>\n <div\n class=\"ard-input\"\n #suggestionsHost\n [ngClass]=\"ngClasses()\"\n [class.ard-has-value]=\"value\"\n (click)=\"focus()\"\n >\n <div class=\"ard-input-container\">\n @if (shouldDisplayAutocomplete()) {\n <div class=\"ard-autocomplete\">{{ autocomplete() }}</div>\n }\n @if (shouldDisplayPlaceholder()) {\n <ng-template #defaultPlaceholderTemplate>\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\n </ng-template>\n\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\"></ng-template>\n }\n <input\n #textInput\n #focusableElement\n type=\"text\"\n [attr.id]=\"inputId()\"\n [attr.tabindex]=\"tabIndex()\"\n [readonly]=\"readonly()\"\n [disabled]=\"disabled()\"\n (input)=\"onInput(textInput.value)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n (copy)=\"onCopy($event)\"\n />\n </div>\n\n @if (shouldShowClearButton()) {\n <ard-clear-button\n [title]=\"clearButtonTitle()\"\n (click)=\"onClearButtonClick($event)\"\n />\n }\n </div>\n</ard-form-field-frame>\n\n<ng-template #suggestionsTemplate>\n <ard-dropdown-panel\n class=\"ard-dropdown-panel ard-input-suggestions-panel\"\n role=\"listbox\"\n [compact]=\"compact\"\n aria-label=\"Suggestions\"\n [appearance]=\"dropdownAppearanceOrDefault()\"\n [variant]=\"dropdownVariantOrDefault()\"\n [isOpen]=\"shouldDisplaySuggestions()\"\n (ardClickOutside)=\"handleSuggestionClickOutside($event)\"\n (mousemove)=\"onMouseMove()\"\n >\n @for (item of suggestionItems(); track item.index) {\n <div\n class=\"ard-option\"\n role=\"option\"\n [class.ard-option-selected]=\"item.selected()\"\n [class.ard-option-highlighted]=\"item.highlighted()\"\n [attr.aria-selected]=\"item.selected()\"\n (click)=\"selectSuggestion(item, $event)\"\n (mouseenter)=\"onSuggestionMouseEnter(item, $event)\"\n (mouseleave)=\"onSuggestionMouseLeave(item, $event)\"\n >\n <span class=\"ard-option-label\">\n <ng-template #defaultOptionTemplate>\n {{ item.label() }}\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"suggestionTemplate()?.template || defaultOptionTemplate\"\n [ngTemplateOutletContext]=\"getOptionContext(item)\"\n ></ng-template>\n </span>\n </div>\n }\n @if (areSuggestionsLoading()) {\n <ng-template #defaultLoadingPlaceholderTemplate>\n <div class=\"ard-option ard-option-disabled\">{{ suggestionsLoadingText() }}</div>\n </ng-template>\n\n <ng-template [ngTemplateOutlet]=\"suggestionLoadingTemplate()?.template || defaultLoadingPlaceholderTemplate\"></ng-template>\n }\n </ard-dropdown-panel>\n</ng-template>\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"] }]
|
|
250
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
251
|
+
type: Inject,
|
|
252
|
+
args: [ARD_INPUT_DEFAULTS]
|
|
253
|
+
}] }], propDecorators: { suggestions: [{
|
|
274
254
|
type: Input
|
|
275
|
-
}],
|
|
255
|
+
}], setOverlaySize: [{
|
|
276
256
|
type: HostListener,
|
|
277
257
|
args: ['window:resize']
|
|
278
258
|
}], onMouseMove: [{
|
|
@@ -282,4 +262,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
282
262
|
type: HostListener,
|
|
283
263
|
args: ['keydown', ['$event']]
|
|
284
264
|
}] } });
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaW5wdXQvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4QixhQUFhLEVBQXFDLE1BQU0sc0JBQXNCLENBQUM7QUFDcEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsV0FBVyxFQUVYLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsbUJBQW1CLEVBQTJCLE1BQU0scURBQXFELENBQUM7QUFDbkgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFMUcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFcEYsT0FBTyxFQUFFLFVBQVUsRUFBa0Isb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNw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QUFXO3NCQURkLEtBQUs7Z0JBa0ZOLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlO2dCQWdCN0IsV0FBVztzQkFEVixZQUFZO3VCQUFDLFdBQVc7Z0JBa0V6QixVQUFVO3NCQURULFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYsIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIGNvbXB1dGVkLFxyXG4gIGNvbnRlbnRDaGlsZCxcclxuICBmb3J3YXJkUmVmLFxyXG4gIGlucHV0LFxyXG4gIG91dHB1dCxcclxuICBzaWduYWwsXHJcbiAgdmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBjb2VyY2VBcnJheVByb3BlcnR5LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XHJcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xyXG5pbXBvcnQgeyBTaW1wbGVzdEl0ZW1TdG9yYWdlLCBTaW1wbGVzdEl0ZW1TdG9yYWdlSG9zdCB9IGZyb20gJy4uLy4uL19pbnRlcm5hbC9pdGVtLXN0b3JhZ2VzL3NpbXBsZXN0LWl0ZW0tc3RvcmFnZSc7XHJcbmltcG9ydCB7IERyb3Bkb3duUGFuZWxBcHBlYXJhbmNlLCBEcm9wZG93blBhbmVsVmFyaWFudCB9IGZyb20gJy4uLy4uL2Ryb3Bkb3duLXBhbmVsL2Ryb3Bkb3duLXBhbmVsLnR5cGVzJztcclxuaW1wb3J0IHsgQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSB9IGZyb20gJy4uLy4uL3R5cGVzL2l0ZW0tc3RvcmFnZS50eXBlcyc7XHJcbmltcG9ydCB7IEZvcm1FbGVtZW50QXBwZWFyYW5jZSwgRm9ybUVsZW1lbnRWYXJpYW50IH0gZnJvbSAnLi4vLi4vdHlwZXMvdGhlbWluZy50eXBlcyc7XHJcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnLi4vLi4vdHlwZXMvdXRpbGl0eS50eXBlcyc7XHJcbmltcG9ydCB7IEFyZGl1bVNpbXBsZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2ltcGxlLWlucHV0L3NpbXBsZS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPcHRpb25Db250ZXh0IH0gZnJvbSAnLi8uLi8uLi90eXBlcy9pdGVtLXN0b3JhZ2UudHlwZXMnO1xyXG5pbXBvcnQgeyBJbnB1dE1vZGVsLCBJbnB1dE1vZGVsSG9zdCwgZXNjYXBlQW5kQ3JlYXRlUmVnZXggfSBmcm9tICcuLy4uL2lucHV0LXV0aWxzJztcclxuaW1wb3J0IHtcclxuICBBcmRJbnB1dExvYWRpbmdUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgQXJkSW5wdXRQcmVmaXhUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZFN1Z2dlc3Rpb25UZW1wbGF0ZURpcmVjdGl2ZSxcclxufSBmcm9tICcuL2lucHV0LmRpcmVjdGl2ZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcmQtaW5wdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXJkaXVtSW5wdXRDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bUlucHV0Q29tcG9uZW50XHJcbiAgZXh0ZW5kcyBBcmRpdW1TaW1wbGVJbnB1dENvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgSW5wdXRNb2RlbEhvc3QsIFNpbXBsZXN0SXRlbVN0b3JhZ2VIb3N0LCBBZnRlclZpZXdJbml0XHJcbntcclxuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQhOiBIVE1MRWxlbWVudDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXHJcbiAgICBwcml2YXRlIHNjcm9sbFN0cmF0ZWd5T3B0czogU2Nyb2xsU3RyYXRlZ3lPcHRpb25zXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICAgIHRoaXMuZWxlbWVudCA9IHZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgREVGQVVMVFMgPSB7XHJcbiAgICBjbGVhckJ1dHRvblRpdGxlOiAnQ2xlYXInLFxyXG4gICAgdmFsdWVGcm9tOiAndmFsdWUnLFxyXG4gICAgbGFiZWxGcm9tOiAnbGFiZWwnLFxyXG4gICAgc3VnZ2VzdGlvbnNMb2FkaW5nVGV4dDogJ0xvYWRpbmcuLi4nLFxyXG4gIH07XHJcbiAgLy8hIGlucHV0IHZpZXdcclxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgaW5wdXRNb2RlbCA9IG5ldyBJbnB1dE1vZGVsKHRoaXMpO1xyXG5cclxuICAvLyEgYWxsb3dsaXN0L2RlbnlsaXN0IG9mIGNoYXJhY3RlcnNcclxuICAvL3VzZSBzdGFuZGFyZCBzdHJpbmcgZm9yIGRlbnlsaXN0LCBwcmVwZW5kIHdpdGggXiBmb3IgYWxsb3dsaXN0XHJcbiAgcmVhZG9ubHkgY2hhcmxpc3RGcm9tSW5wdXQgPSBpbnB1dDxSZWdFeHAgfCB1bmRlZmluZWQsIHN0cmluZz4odW5kZWZpbmVkLCB7XHJcbiAgICBhbGlhczogJ2NoYXJsaXN0JyxcclxuICAgIHRyYW5zZm9ybTogdiA9PiB7XHJcbiAgICAgIGlmICghaXNTdHJpbmcodikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FSRC1GVDAwMzM6IFtjaGFybGlzdF0gbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcsIGdvdCBcIlwiLicpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG5lZ2F0ZWQgPSB2LnN0YXJ0c1dpdGgoJ14nKTtcclxuICAgICAgcmV0dXJuIGVzY2FwZUFuZENyZWF0ZVJlZ2V4KHYsICcnLCAhbmVnYXRlZCk7XHJcbiAgICB9LFxyXG4gIH0pO1xyXG4gIHJlYWRvbmx5IGNoYXJsaXN0Q2FzZUluc2Vuc2l0aXZlID0gaW5wdXQ8Ym9vbGVhbiwgYW55PihmYWxzZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xyXG5cclxuICByZWFkb25seSBjaGFybGlzdCA9IGNvbXB1dGVkPFJlZ0V4cCB8IHVuZGVmaW5lZD4oKCkgPT4ge1xyXG4gICAgY29uc3QgYyA9IHRoaXMuY2hhcmxpc3RGcm9tSW5wdXQoKTtcclxuICAgIGlmICghdGhpcy5jaGFybGlzdENhc2VJbnNlbnNpdGl2ZSgpIHx8ICFjKSB7XHJcbiAgICAgIHJldHVybiBjO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoYy5zb3VyY2UsICdpJyk7XHJcbiAgfSk7XHJcblxyXG4gIC8vISBhdXRvY29tcGxldGVcclxuICByZWFkb25seSBhdXRvY29tcGxldGUgPSBpbnB1dDxOdWxsYWJsZTxzdHJpbmc+Pih1bmRlZmluZWQpO1xyXG5cclxuICByZWFkb25seSBzaG91bGREaXNwbGF5QXV0b2NvbXBsZXRlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gIXRoaXMuZGlzYWJsZWQoKSAmJiBCb29sZWFuKHRoaXMuYXV0b2NvbXBsZXRlKCkpKTtcclxuXHJcbiAgLy9hdXRvY29tcGxldGUgZXZlbnRcclxuICByZWFkb25seSBhY2NlcHRBdXRvY29tcGxldGVFdmVudCA9IG91dHB1dCh7IGFsaWFzOiAnYWNjZXB0QXV0b2NvbXBsZXRlJyB9KTtcclxuXHJcbiAgLy8hIHByZWZpeCAmIHN1ZmZpeFxyXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHByZWZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHN1ZmZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZElucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG5cclxuICAvLyEgcGxhY2Vob2xkZXJcclxuICBvdmVycmlkZSByZWFkb25seSBwbGFjZWhvbGRlclRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZElucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSk7XHJcblxyXG4gIC8vISBzdWdnZXN0aW9uc1xyXG4gIHJlYWRvbmx5IHN1Z2dlc3Rpb25TdG9yYWdlID0gbmV3IFNpbXBsZXN0SXRlbVN0b3JhZ2UodGhpcyk7XHJcblxyXG4gIHJlYWRvbmx5IHZhbHVlRnJvbSA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHVuZGVmaW5lZCwgeyBhbGlhczogJ3N1Z2dWYWx1ZUZyb20nIH0pO1xyXG4gIHJlYWRvbmx5IGxhYmVsRnJvbSA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHVuZGVmaW5lZCwgeyBhbGlhczogJ3N1Z2dMYWJlbEZyb20nIH0pO1xyXG5cclxuICByZWFkb25seSBhY2NlcHRTdWdnZXN0aW9uRXZlbnQgPSBvdXRwdXQ8YW55Pih7IGFsaWFzOiAnYWNjZXB0U3VnZ2VzdGlvbicgfSk7XHJcblxyXG4gIHJlYWRvbmx5IHN1Z2dlc3Rpb25JdGVtcyA9IHRoaXMuc3VnZ2VzdGlvblN0b3JhZ2UuaXRlbXM7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHN1Z2dlc3Rpb25zKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHZhbHVlID0gY29lcmNlQXJyYXlQcm9wZXJ0eSh2YWx1ZSk7XHJcblxyXG4gICAgY29uc3Qgc2hvdWxkUHJpbnRFcnJvcnMgPSB0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLnNldEl0ZW1zKHZhbHVlKTtcclxuXHJcbiAgICB0aGlzLl9zdWdnZXN0aW9uRHJvcGRvd09wZW4uc2V0KHRydWUpO1xyXG4gICAgdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5oaWdobGlnaHRGaXJzdEl0ZW0oKTtcclxuXHJcbiAgICBpZiAoc2hvdWxkUHJpbnRFcnJvcnMpIHtcclxuICAgICAgdGhpcy5fcHJpbnRQcmltaXRpdmVXYXJuaW5ncygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJpbnRQcmltaXRpdmVXYXJuaW5ncygpIHtcclxuICAgIGZ1bmN0aW9uIG1ha2VXYXJuaW5nKHN0cjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICBgQVJELVdBMDAzMTogU2tpcHBlZCB1c2luZyBbJHtzdHJ9XSBwcm9wZXJ0eSBib3VuZCB0byA8YXJkLWlucHV0PiwgYXMgc29tZSBwcm92aWRlZCBzdWdnZXN0aW9uIGl0ZW1zIGFyZSBvZiBwcmltaXRpdmUgdHlwZWBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnZhbHVlRnJvbSgpKSB7XHJcbiAgICAgIG1ha2VXYXJuaW5nKCd2YWx1ZUZyb20nKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmxhYmVsRnJvbSgpKSB7XHJcbiAgICAgIG1ha2VXYXJuaW5nKCdsYWJlbEZyb20nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1Z2dlc3Rpb25Ecm9wZG93T3BlbiA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIHJlYWRvbmx5IHNob3VsZERpc3BsYXlTdWdnZXN0aW9ucyA9IGNvbXB1dGVkKFxyXG4gICAgKCkgPT4gIXRoaXMuZGlzYWJsZWQoKSAmJiAodGhpcy5zdWdnZXN0aW9uSXRlbXMoKS5sZW5ndGggPiAwIHx8IHRoaXMuYXJlU3VnZ2VzdGlvbnNMb2FkaW5nKCkpICYmIHRoaXMuX3N1Z2dlc3Rpb25Ecm9wZG93T3BlbigpXHJcbiAgKTtcclxuXHJcbiAgcmVhZG9ubHkgYXJlU3VnZ2VzdGlvbnNMb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbiwgYW55PihmYWxzZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xyXG4gIHJlYWRvbmx5IHN1Z2dlc3Rpb25zTG9hZGluZ1RleHQgPSBpbnB1dDxzdHJpbmc+KHRoaXMuREVGQVVMVFMuc3VnZ2VzdGlvbnNMb2FkaW5nVGV4dCk7XHJcblxyXG4gIHJlYWRvbmx5IHN1Z2dlc3Rpb25UZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRTdWdnZXN0aW9uVGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IHN1Z2dlc3Rpb25Mb2FkaW5nVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkSW5wdXRMb2FkaW5nVGVtcGxhdGVEaXJlY3RpdmUpO1xyXG5cclxuICAvLyEgc3VnZ2VzdGlvbnMgb3ZlcmxheVxyXG4gIHJlYWRvbmx5IGRyb3Bkb3duSG9zdCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pj4oJ3N1Z2dlc3Rpb25zSG9zdCcpO1xyXG4gIHJlYWRvbmx5IGRyb3Bkb3duVGVtcGxhdGUgPSB2aWV3Q2hpbGQoJ3N1Z2dlc3Rpb25zVGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pO1xyXG5cclxuICBwcml2YXRlIGRyb3Bkb3duT3ZlcmxheSE6IE92ZXJsYXlSZWY7XHJcblxyXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG5cclxuICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XHJcbiAgICAgIC5wb3NpdGlvbigpXHJcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZHJvcGRvd25Ib3N0KCkhKVxyXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcclxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXHJcbiAgICAgICAgfSBhcyBDb25uZWN0ZWRQb3NpdGlvbixcclxuICAgICAgXSlcclxuICAgICAgLndpdGhQdXNoKGZhbHNlKTtcclxuXHJcbiAgICBjb25zdCBjb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHN0cmF0ZWd5LFxyXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5zY3JvbGxTdHJhdGVneU9wdHMuYmxvY2soKSxcclxuICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5kcm9wZG93bk92ZXJsYXkgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZyk7XHJcblxyXG4gICAgY29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuZHJvcGRvd25UZW1wbGF0ZSgpISwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgIHRoaXMuZHJvcGRvd25PdmVybGF5LmF0dGFjaChwb3J0YWwpO1xyXG5cclxuICAgIHRoaXMuc2V0T3ZlcmxheVNpemUoKTtcclxuICB9XHJcblxyXG4gIHNldE92ZXJsYXlTaXplKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcmVjdCA9IHRoaXMuZHJvcGRvd25Ib3N0KCk/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICB0aGlzLmRyb3Bkb3duT3ZlcmxheS51cGRhdGVTaXplKHsgd2lkdGg6IHJlY3Q/LndpZHRoIH0pO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXHJcbiAgb25XaW5kb3dSZXNpemUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE92ZXJsYXlTaXplKCk7XHJcbiAgfVxyXG5cclxuICBnZXRPcHRpb25Db250ZXh0KGl0ZW06IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0pOiBPcHRpb25Db250ZXh0PEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICRpbXBsaWNpdDogaXRlbSxcclxuICAgICAgaXRlbSxcclxuICAgICAgaXRlbURhdGE6IGl0ZW0uaXRlbURhdGEsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLy8hIHN1Z2dlc3Rpb24taGlnaGxpZ2gtcmVsYXRlZFxyXG4gIHByaXZhdGUgX2lzTW91c2VCZWluZ1VzZWQgPSBmYWxzZTtcclxuICBASG9zdExpc3RlbmVyKCdtb3VzZW1vdmUnKVxyXG4gIG9uTW91c2VNb3ZlKCkge1xyXG4gICAgdGhpcy5faXNNb3VzZUJlaW5nVXNlZCA9IHRydWU7XHJcbiAgfVxyXG4gIG9uU3VnZ2VzdGlvbk1vdXNlRW50ZXIoaXRlbTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSwgZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5faXNNb3VzZUJlaW5nVXNlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5oaWdobGlnaHRJdGVtKGl0ZW0pO1xyXG5cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBvblN1Z2dlc3Rpb25Nb3VzZUxlYXZlKGl0ZW06IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0sIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX2lzTW91c2VCZWluZ1VzZWQpIHJldHVybjtcclxuICAgIHRoaXMuc3VnZ2VzdGlvblN0b3JhZ2UudW5oaWdobGlnaHRJdGVtKGl0ZW0pO1xyXG5cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgLy8hIHN1Z2dlc3Rpb24gc2VsZWN0aW9uXHJcbiAgc2VsZWN0U3VnZ2VzdGlvbihpdGVtOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtLCBldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgdGhpcy5fc2VsZWN0U3VnZ2VzdGlvbihpdGVtKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc2VsZWN0U3VnZ2VzdGlvbihpdGVtOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtKTogdm9pZCB7XHJcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc3VnZ2VzdGlvblN0b3JhZ2Uuc2VsZWN0SXRlbShpdGVtKTtcclxuICAgIHRoaXMud3JpdGVWYWx1ZShzZWxlY3RlZCA/PyAnJyk7XHJcblxyXG4gICAgdGhpcy5hY2NlcHRTdWdnZXN0aW9uRXZlbnQuZW1pdChzZWxlY3RlZCk7XHJcblxyXG4gICAgLy9pbXBvcnRhbnQgdG8gZG8gdGhvc2UgdHdvIHRoaW5ncyBpbiB0aGlzIGV4YWN0IG9yZGVyXHJcbiAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICB0aGlzLl9zdWdnZXN0aW9uRHJvcGRvd09wZW4uc2V0KGZhbHNlKTtcclxuICB9XHJcbiAgaGFuZGxlU3VnZ2VzdGlvbkNsaWNrT3V0c2lkZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNob3VsZERpc3BsYXlTdWdnZXN0aW9ucygpKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYgKHRoaXMuZWxlbWVudC5jb250YWlucyh0YXJnZXQpKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fc3VnZ2VzdGlvbkRyb3Bkb3dPcGVuLnNldChmYWxzZSk7XHJcbiAgfVxyXG4gIC8vISBzdWdnZXN0aW9uIGFwcGVhcmFuY2VcclxuICByZWFkb25seSBkcm9wZG93bkFwcGVhcmFuY2UgPSBpbnB1dDxOdWxsYWJsZTxEcm9wZG93blBhbmVsQXBwZWFyYW5jZT4+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgZHJvcGRvd25BcHBlYXJhbmNlT3JEZWZhdWx0ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuZHJvcGRvd25BcHBlYXJhbmNlKCkpIHJldHVybiB0aGlzLmRyb3Bkb3duQXBwZWFyYW5jZSgpITtcclxuICAgIGlmICh0aGlzLmFwcGVhcmFuY2UoKSA9PT0gRm9ybUVsZW1lbnRBcHBlYXJhbmNlLk91dGxpbmVkKSByZXR1cm4gRHJvcGRvd25QYW5lbEFwcGVhcmFuY2UuT3V0bGluZWQ7XHJcbiAgICByZXR1cm4gRHJvcGRvd25QYW5lbEFwcGVhcmFuY2UuUmFpc2VkO1xyXG4gIH0pO1xyXG4gIHJlYWRvbmx5IGRyb3Bkb3duVmFyaWFudCA9IGlucHV0PE51bGxhYmxlPERyb3Bkb3duUGFuZWxWYXJpYW50Pj4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBkcm9wZG93blZhcmlhbnRPckRlZmF1bHQgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5kcm9wZG93blZhcmlhbnQoKSkgcmV0dXJuIHRoaXMuZHJvcGRvd25WYXJpYW50KCkhO1xyXG4gICAgY29uc3QgdmFyaWFudCA9IHRoaXMudmFyaWFudCgpO1xyXG4gICAgaWYgKHZhcmlhbnQgPT09IEZvcm1FbGVtZW50VmFyaWFudC5QaWxsKSByZXR1cm4gRHJvcGRvd25QYW5lbFZhcmlhbnQuUm91bmRlZDtcclxuICAgIHJldHVybiB2YXJpYW50O1xyXG4gIH0pO1xyXG5cclxuICAvLyEgZm9jdXMgb3ZlcnJpZGVcclxuICBvdmVycmlkZSBvbkZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWdnZXN0aW9uRHJvcGRvd09wZW4uc2V0KHRydWUpO1xyXG4gICAgaWYgKCF0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLmhpZ2hsaWdodGVkSXRlbSgpKSB0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLmhpZ2hsaWdodEZpcnN0SXRlbSgpO1xyXG5cclxuICAgIHN1cGVyLm9uRm9jdXMoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLy8hIGtleSBwcmVzcyBoYW5kbGVyc1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxyXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xyXG4gICAgICBjYXNlICdFbnRlcic6IHtcclxuICAgICAgICB0aGlzLl9vblRhYk9yRW50ZXJQcmVzcyhldmVudCk7XHJcbiAgICAgICAgdGhpcy5fb25FbnRlclByZXNzKGV2ZW50KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnVGFiJzoge1xyXG4gICAgICAgIHRoaXMuX29uVGFiT3JFbnRlclByZXNzKGV2ZW50KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnQXJyb3dEb3duJzoge1xyXG4gICAgICAgIHRoaXMuX29uQXJyb3dEb3duUHJlc3MoZXZlbnQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdBcnJvd1VwJzoge1xyXG4gICAgICAgIHRoaXMuX29uQXJyb3dVcFByZXNzKGV2ZW50KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcHJvdGVjdGVkIF9vblRhYk9yRW50ZXJQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNob3VsZERpc3BsYXlBdXRvY29tcGxldGUoKSkgcmV0dXJuO1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICB0aGlzLm9uSW5wdXQodGhpcy5hdXRvY29tcGxldGUoKSA/PyAnJyk7XHJcbiAgICB0aGlzLmFjY2VwdEF1dG9jb21wbGV0ZUV2ZW50LmVtaXQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfb25FbnRlclByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuc2hvdWxkRGlzcGxheVN1Z2dlc3Rpb25zKCkpIHJldHVybjtcclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLmhpZ2hsaWdodGVkSXRlbSgpO1xyXG4gICAgaWYgKCFpdGVtKSByZXR1cm47XHJcblxyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuX3NlbGVjdFN1Z2dlc3Rpb24oaXRlbSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX29uQXJyb3dEb3duUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zaG91bGREaXNwbGF5U3VnZ2VzdGlvbnMoKSkgcmV0dXJuO1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICB0aGlzLl9pc01vdXNlQmVpbmdVc2VkID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5oaWdobGlnaHROZXh0SXRlbSgrMSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX29uQXJyb3dVcFByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuc2hvdWxkRGlzcGxheVN1Z2dlc3Rpb25zKCkpIHJldHVybjtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgdGhpcy5faXNNb3VzZUJlaW5nVXNlZCA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuc3VnZ2VzdGlvblN0b3JhZ2UuaGlnaGxpZ2h0TmV4dEl0ZW0oLTEpO1xyXG4gIH1cclxufVxyXG4iLCI8YXJkLWZvcm0tZmllbGQtZnJhbWVcclxuICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlKClcIlxyXG4gIFt2YXJpYW50XT1cInZhcmlhbnQoKVwiXHJcbiAgW2NvbXBhY3RdPVwiY29tcGFjdCgpXCJcclxuICBbaXNGb2N1c2VkXT1cImlzRm9jdXNlZFwiXHJcbiAgW3ByZWZpeFRlbXBsYXRlXT1cInByZWZpeFRlbXBsYXRlKCk/LnRlbXBsYXRlXCJcclxuICBbc3VmZml4VGVtcGxhdGVdPVwic3VmZml4VGVtcGxhdGUoKT8udGVtcGxhdGVcIlxyXG4+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJhcmQtaW5wdXRcIlxyXG4gICAgI3N1Z2dlc3Rpb25zSG9zdFxyXG4gICAgW25nQ2xhc3NdPVwibmdDbGFzc2VzKClcIlxyXG4gICAgW2NsYXNzLmFyZC1oYXMtdmFsdWVdPVwidmFsdWVcIlxyXG4gICAgKGNsaWNrKT1cImZvY3VzKClcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtaW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICAgIEBpZiAoc2hvdWxkRGlzcGxheUF1dG9jb21wbGV0ZSgpKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1hdXRvY29tcGxldGVcIj57eyBhdXRvY29tcGxldGUoKSB9fTwvZGl2PlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoc2hvdWxkRGlzcGxheVBsYWNlaG9sZGVyKCkpIHtcclxuICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICNkZWZhdWx0UGxhY2Vob2xkZXJUZW1wbGF0ZVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtcGxhY2Vob2xkZXJcIj57eyBwbGFjZWhvbGRlcigpIH19PC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBsYWNlaG9sZGVyVGVtcGxhdGUoKT8udGVtcGxhdGUgfHwgZGVmYXVsdFBsYWNlaG9sZGVyVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICB9XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgICN0ZXh0SW5wdXRcclxuICAgICAgICAjZm9jdXNhYmxlRWxlbWVudFxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICBbYXR0ci5pZF09XCJpbnB1dElkKClcIlxyXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4KClcIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXHJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQodGV4dElucHV0LnZhbHVlKVwiXHJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAgIChjb3B5KT1cIm9uQ29weSgkZXZlbnQpXCJcclxuICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIEBpZiAoc2hvdWxkU2hvd0NsZWFyQnV0dG9uKCkpIHtcclxuICAgICAgPGFyZC1jbGVhci1idXR0b25cclxuICAgICAgICBbdGl0bGVdPVwiY2xlYXJCdXR0b25UaXRsZSgpXCJcclxuICAgICAgICAoY2xpY2spPVwib25DbGVhckJ1dHRvbkNsaWNrKCRldmVudClcIlxyXG4gICAgICAvPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L2FyZC1mb3JtLWZpZWxkLWZyYW1lPlxyXG5cclxuPG5nLXRlbXBsYXRlICNzdWdnZXN0aW9uc1RlbXBsYXRlPlxyXG4gIDxhcmQtZHJvcGRvd24tcGFuZWxcclxuICAgIGNsYXNzPVwiYXJkLWRyb3Bkb3duLXBhbmVsIGFyZC1pbnB1dC1zdWdnZXN0aW9ucy1wYW5lbFwiXHJcbiAgICByb2xlPVwibGlzdGJveFwiXHJcbiAgICBbY29tcGFjdF09XCJjb21wYWN0XCJcclxuICAgIGFyaWEtbGFiZWw9XCJTdWdnZXN0aW9uc1wiXHJcbiAgICBbYXBwZWFyYW5jZV09XCJkcm9wZG93bkFwcGVhcmFuY2VPckRlZmF1bHQoKVwiXHJcbiAgICBbdmFyaWFudF09XCJkcm9wZG93blZhcmlhbnRPckRlZmF1bHQoKVwiXHJcbiAgICBbaXNPcGVuXT1cInNob3VsZERpc3BsYXlTdWdnZXN0aW9ucygpXCJcclxuICAgIChhcmRDbGlja091dHNpZGUpPVwiaGFuZGxlU3VnZ2VzdGlvbkNsaWNrT3V0c2lkZSgkZXZlbnQpXCJcclxuICAgIChtb3VzZW1vdmUpPVwib25Nb3VzZU1vdmUoKVwiXHJcbiAgPlxyXG4gICAgQGZvciAoaXRlbSBvZiBzdWdnZXN0aW9uSXRlbXMoKTsgdHJhY2sgaXRlbS5pbmRleCgpKSB7XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImFyZC1vcHRpb25cIlxyXG4gICAgICAgIHJvbGU9XCJvcHRpb25cIlxyXG4gICAgICAgIFtjbGFzcy5hcmQtb3B0aW9uLXNlbGVjdGVkXT1cIml0ZW0uc2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgW2NsYXNzLmFyZC1vcHRpb24taGlnaGxpZ2h0ZWRdPVwiaXRlbS5oaWdobGlnaHRlZCgpXCJcclxuICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIml0ZW0uc2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdFN1Z2dlc3Rpb24oaXRlbSwgJGV2ZW50KVwiXHJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwib25TdWdnZXN0aW9uTW91c2VFbnRlcihpdGVtLCAkZXZlbnQpXCJcclxuICAgICAgICAobW91c2VsZWF2ZSk9XCJvblN1Z2dlc3Rpb25Nb3VzZUxlYXZlKGl0ZW0sICRldmVudClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhcmQtb3B0aW9uLWxhYmVsXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRPcHRpb25UZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgaXRlbS5sYWJlbCgpIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJzdWdnZXN0aW9uVGVtcGxhdGUoKT8udGVtcGxhdGUgfHwgZGVmYXVsdE9wdGlvblRlbXBsYXRlXCJcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldE9wdGlvbkNvbnRleHQoaXRlbSlcIlxyXG4gICAgICAgICAgPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICAgIEBpZiAoYXJlU3VnZ2VzdGlvbnNMb2FkaW5nKCkpIHtcclxuICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TG9hZGluZ1BsYWNlaG9sZGVyVGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1vcHRpb24gYXJkLW9wdGlvbi1kaXNhYmxlZFwiPnt7IHN1Z2dlc3Rpb25zTG9hZGluZ1RleHQoKSB9fTwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInN1Z2dlc3Rpb25Mb2FkaW5nVGVtcGxhdGUoKT8udGVtcGxhdGUgfHwgZGVmYXVsdExvYWRpbmdQbGFjZWhvbGRlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgIH1cclxuICA8L2FyZC1kcm9wZG93bi1wYW5lbD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaW5wdXQvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixPQUFPLEVBQUUsYUFBYSxFQUFjLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsbUJBQW1CLEVBQTJCLE1BQU0scURBQXFELENBQUM7QUFDbkgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFMUcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEUs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aUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDOzhHQWpRVSxvQkFBb0Isa0JBVVgsa0JBQWtCO2tHQVYzQixvQkFBb0IscXdEQVJwQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixzRUFvRCtDLCtCQUErQixpR0FDL0IsK0JBQStCLHNHQUcxQixvQ0FBb0MscUdBK0I5Qyw4QkFBOEIsNEdBQ3ZCLGdDQUFnQyxzUkFJYixXQUFXLG9FQ2xKbEYscW9HQThGQTs7MkZEdENhLG9CQUFvQjtrQkFkaEMsU0FBUzsrQkFDRSxXQUFXLGlCQUdOLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzswQkFZWSxNQUFNOzJCQUFDLGtCQUFrQjt5Q0F5RGxDLFdBQVc7c0JBRGQsS0FBSztnQkEyRE4sY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWU7Z0JBaUI3QixXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVztnQkFrRXpCLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0ZWRQb3NpdGlvbiwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiwgU2Nyb2xsU3RyYXRlZ3lPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29lcmNlQXJyYXlQcm9wZXJ0eSwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICdzaW1wbGUtYm9vbCc7XG5pbXBvcnQgeyBTaW1wbGVzdEl0ZW1TdG9yYWdlLCBTaW1wbGVzdEl0ZW1TdG9yYWdlSG9zdCB9IGZyb20gJy4uLy4uL19pbnRlcm5hbC9pdGVtLXN0b3JhZ2VzL3NpbXBsZXN0LWl0ZW0tc3RvcmFnZSc7XG5pbXBvcnQgeyBEcm9wZG93blBhbmVsQXBwZWFyYW5jZSwgRHJvcGRvd25QYW5lbFZhcmlhbnQgfSBmcm9tICcuLi8uLi9kcm9wZG93bi1wYW5lbC9kcm9wZG93bi1wYW5lbC50eXBlcyc7XG5pbXBvcnQgeyBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtIH0gZnJvbSAnLi4vLi4vdHlwZXMvaXRlbS1zdG9yYWdlLnR5cGVzJztcbmltcG9ydCB7IEZvcm1FbGVtZW50QXBwZWFyYW5jZSwgRm9ybUVsZW1lbnRWYXJpYW50IH0gZnJvbSAnLi4vLi4vdHlwZXMvdGhlbWluZy50eXBlcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xuaW1wb3J0IHsgX1NpbXBsZUlucHV0Q29tcG9uZW50QmFzZSB9IGZyb20gJy4uL19zaW1wbGUtaW5wdXQtYmFzZSc7XG5pbXBvcnQgeyBPcHRpb25Db250ZXh0IH0gZnJvbSAnLi8uLi8uLi90eXBlcy9pdGVtLXN0b3JhZ2UudHlwZXMnO1xuaW1wb3J0IHsgSW5wdXRNb2RlbCwgSW5wdXRNb2RlbEhvc3QsIGVzY2FwZUFuZENyZWF0ZVJlZ2V4IH0gZnJvbSAnLi8uLi9pbnB1dC11dGlscyc7XG5pbXBvcnQgeyBBUkRfSU5QVVRfREVGQVVMVFMsIEFyZElucHV0RGVmYXVsdHMgfSBmcm9tICcuL2lucHV0LmRlZmF1bHRzJztcbmltcG9ydCB7XG4gIEFyZElucHV0TG9hZGluZ1RlbXBsYXRlRGlyZWN0aXZlLFxuICBBcmRJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZElucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZFN1Z2dlc3Rpb25UZW1wbGF0ZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi9pbnB1dC5kaXJlY3RpdmVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJkLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXJkaXVtSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXJkaXVtSW5wdXRDb21wb25lbnRcbiAgZXh0ZW5kcyBfU2ltcGxlSW5wdXRDb21wb25lbnRCYXNlXG4gIGltcGxlbWVudHMgSW5wdXRNb2RlbEhvc3QsIFNpbXBsZXN0SXRlbVN0b3JhZ2VIb3N0LCBBZnRlclZpZXdJbml0XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxTdHJhdGVneU9wdHMgPSBpbmplY3QoU2Nyb2xsU3RyYXRlZ3lPcHRpb25zKTtcbiAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfREVGQVVMVFMhOiBBcmRJbnB1dERlZmF1bHRzO1xuICBwdWJsaWMgcmVhZG9ubHkgREVGQVVMVFMhOiBBcmRJbnB1dERlZmF1bHRzO1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFSRF9JTlBVVF9ERUZBVUxUUykgZGVmYXVsdHM6IEFyZElucHV0RGVmYXVsdHMpIHtcbiAgICBzdXBlcihkZWZhdWx0cyk7XG5cbiAgICB0aGlzLkRFRkFVTFRTID0gdGhpcy5fREVGQVVMVFM7XG4gIH1cblxuICAvLyEgaW5wdXQgdmlld1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgaW5wdXRNb2RlbCA9IG5ldyBJbnB1dE1vZGVsKHRoaXMpO1xuXG4gIC8vISBhbGxvd2xpc3QvZGVueWxpc3Qgb2YgY2hhcmFjdGVyc1xuICAvL3VzZSBzdGFuZGFyZCBzdHJpbmcgZm9yIGRlbnlsaXN0LCBwcmVwZW5kIHdpdGggXiBmb3IgYWxsb3dsaXN0XG4gIHJlYWRvbmx5IGNoYXJsaXN0RnJvbUlucHV0ID0gaW5wdXQ8UmVnRXhwIHwgdW5kZWZpbmVkLCBzdHJpbmc+KHVuZGVmaW5lZCwge1xuICAgIGFsaWFzOiAnY2hhcmxpc3QnLFxuICAgIHRyYW5zZm9ybTogdiA9PiB7XG4gICAgICBpZiAoIWlzU3RyaW5nKHYpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQVJELUZUMDAzMzogW2NoYXJsaXN0XSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZywgZ290IFwiXCIuJyk7XG4gICAgICB9XG4gICAgICBjb25zdCBuZWdhdGVkID0gdi5zdGFydHNXaXRoKCdeJyk7XG4gICAgICByZXR1cm4gZXNjYXBlQW5kQ3JlYXRlUmVnZXgodiwgJycsICFuZWdhdGVkKTtcbiAgICB9LFxuICB9KTtcbiAgcmVhZG9ubHkgY2hhcmxpc3RDYXNlSW5zZW5zaXRpdmUgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG5cbiAgcmVhZG9ubHkgY2hhcmxpc3QgPSBjb21wdXRlZDxSZWdFeHAgfCB1bmRlZmluZWQ+KCgpID0+IHtcbiAgICBjb25zdCBjID0gdGhpcy5jaGFybGlzdEZyb21JbnB1dCgpO1xuICAgIGlmICghdGhpcy5jaGFybGlzdENhc2VJbnNlbnNpdGl2ZSgpIHx8ICFjKSB7XG4gICAgICByZXR1cm4gYztcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoYy5zb3VyY2UsICdpJyk7XG4gIH0pO1xuXG4gIC8vISBhdXRvY29tcGxldGVcbiAgcmVhZG9ubHkgYXV0b2NvbXBsZXRlID0gaW5wdXQ8TnVsbGFibGU8c3RyaW5nPj4odW5kZWZpbmVkKTtcblxuICByZWFkb25seSBzaG91bGREaXNwbGF5QXV0b2NvbXBsZXRlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gIXRoaXMuZGlzYWJsZWQoKSAmJiBCb29sZWFuKHRoaXMuYXV0b2NvbXBsZXRlKCkpKTtcblxuICAvL2F1dG9jb21wbGV0ZSBldmVudFxuICByZWFkb25seSBhY2NlcHRBdXRvY29tcGxldGVFdmVudCA9IG91dHB1dCh7IGFsaWFzOiAnYWNjZXB0QXV0b2NvbXBsZXRlJyB9KTtcblxuICAvLyEgcHJlZml4ICYgc3VmZml4XG4gIG92ZXJyaWRlIHJlYWRvbmx5IHByZWZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xuICBvdmVycmlkZSByZWFkb25seSBzdWZmaXhUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlKTtcblxuICAvLyEgcGxhY2Vob2xkZXJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgcGxhY2Vob2xkZXJUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUpO1xuXG4gIC8vISBzdWdnZXN0aW9uc1xuICByZWFkb25seSBzdWdnZXN0aW9uU3RvcmFnZSA9IG5ldyBTaW1wbGVzdEl0ZW1TdG9yYWdlKHRoaXMpO1xuXG4gIHJlYWRvbmx5IHZhbHVlRnJvbSA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHVuZGVmaW5lZCwgeyBhbGlhczogJ3N1Z2dWYWx1ZUZyb20nIH0pO1xuICByZWFkb25seSBsYWJlbEZyb20gPSBpbnB1dDxOdWxsYWJsZTxzdHJpbmc+Pih1bmRlZmluZWQsIHsgYWxpYXM6ICdzdWdnTGFiZWxGcm9tJyB9KTtcblxuICByZWFkb25seSBhY2NlcHRTdWdnZXN0aW9uRXZlbnQgPSBvdXRwdXQ8YW55Pih7IGFsaWFzOiAnYWNjZXB0U3VnZ2VzdGlvbicgfSk7XG5cbiAgcmVhZG9ubHkgc3VnZ2VzdGlvbkl0ZW1zID0gdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5pdGVtcztcblxuICBASW5wdXQoKVxuICBzZXQgc3VnZ2VzdGlvbnModmFsdWU6IGFueSkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHZhbHVlID0gY29lcmNlQXJyYXlQcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICB0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLnNldEl0ZW1zKHZhbHVlKTtcblxuICAgIHRoaXMuX3N1Z2dlc3Rpb25Ecm9wZG93T3Blbi5zZXQodHJ1ZSk7XG4gICAgdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5oaWdobGlnaHRGaXJzdEl0ZW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1Z2dlc3Rpb25Ecm9wZG93T3BlbiA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgc2hvdWxkRGlzcGxheVN1Z2dlc3Rpb25zID0gY29tcHV0ZWQoXG4gICAgKCkgPT4gIXRoaXMuZGlzYWJsZWQoKSAmJiAodGhpcy5zdWdnZXN0aW9uSXRlbXMoKS5sZW5ndGggPiAwIHx8IHRoaXMuYXJlU3VnZ2VzdGlvbnNMb2FkaW5nKCkpICYmIHRoaXMuX3N1Z2dlc3Rpb25Ecm9wZG93T3BlbigpXG4gICk7XG5cbiAgcmVhZG9ubHkgYXJlU3VnZ2VzdGlvbnNMb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbiwgYW55PihmYWxzZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuICByZWFkb25seSBzdWdnZXN0aW9uc0xvYWRpbmdUZXh0ID0gaW5wdXQ8c3RyaW5nPih0aGlzLkRFRkFVTFRTLnN1Z2dlc3Rpb25zTG9hZGluZ1RleHQpO1xuXG4gIHJlYWRvbmx5IHN1Z2dlc3Rpb25UZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRTdWdnZXN0aW9uVGVtcGxhdGVEaXJlY3RpdmUpO1xuICByZWFkb25seSBzdWdnZXN0aW9uTG9hZGluZ1RlbXBsYXRlID0gY29udGVudENoaWxkKEFyZElucHV0TG9hZGluZ1RlbXBsYXRlRGlyZWN0aXZlKTtcblxuICAvLyEgc3VnZ2VzdGlvbnMgb3ZlcmxheVxuICByZWFkb25seSBkcm9wZG93bkhvc3QgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4+KCdzdWdnZXN0aW9uc0hvc3QnKTtcbiAgcmVhZG9ubHkgZHJvcGRvd25UZW1wbGF0ZSA9IHZpZXdDaGlsZCgnc3VnZ2VzdGlvbnNUZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSk7XG5cbiAgcHJpdmF0ZSBkcm9wZG93bk92ZXJsYXkhOiBPdmVybGF5UmVmO1xuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcblxuICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5kcm9wZG93bkhvc3QoKSEpXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgIHtcbiAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgfSBhcyBDb25uZWN0ZWRQb3NpdGlvbixcbiAgICAgIF0pXG4gICAgICAud2l0aFB1c2goZmFsc2UpO1xuXG4gICAgY29uc3QgY29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneTogc3RyYXRlZ3ksXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5zY3JvbGxTdHJhdGVneU9wdHMuYmxvY2soKSxcbiAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIHRoaXMuZHJvcGRvd25PdmVybGF5ID0gdGhpcy5vdmVybGF5LmNyZWF0ZShjb25maWcpO1xuXG4gICAgY29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuZHJvcGRvd25UZW1wbGF0ZSgpISwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICB0aGlzLmRyb3Bkb3duT3ZlcmxheS5hdHRhY2gocG9ydGFsKTtcblxuICAgIHRoaXMuc2V0T3ZlcmxheVNpemUoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBzZXRPdmVybGF5U2l6ZSgpOiB2b2lkIHtcbiAgICBjb25zdCByZWN0ID0gdGhpcy5kcm9wZG93bkhvc3QoKT8ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLmRyb3Bkb3duT3ZlcmxheS51cGRhdGVTaXplKHsgd2lkdGg6IHJlY3Q/LndpZHRoIH0pO1xuICB9XG5cbiAgZ2V0T3B0aW9uQ29udGV4dChpdGVtOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtKTogT3B0aW9uQ29udGV4dDxBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRpbXBsaWNpdDogaXRlbSxcbiAgICAgIGl0ZW0sXG4gICAgICBpdGVtRGF0YTogaXRlbS5pdGVtRGF0YSxcbiAgICB9O1xuICB9XG5cbiAgLy8hIHN1Z2dlc3Rpb24taGlnaGxpZ2gtcmVsYXRlZFxuICBwcml2YXRlIF9pc01vdXNlQmVpbmdVc2VkID0gZmFsc2U7XG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbW92ZScpXG4gIG9uTW91c2VNb3ZlKCkge1xuICAgIHRoaXMuX2lzTW91c2VCZWluZ1VzZWQgPSB0cnVlO1xuICB9XG4gIG9uU3VnZ2VzdGlvbk1vdXNlRW50ZXIoaXRlbTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSwgZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lzTW91c2VCZWluZ1VzZWQpIHJldHVybjtcbiAgICB0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLmhpZ2hsaWdodEl0ZW0oaXRlbSk7XG5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuICBvblN1Z2dlc3Rpb25Nb3VzZUxlYXZlKGl0ZW06IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0sIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pc01vdXNlQmVpbmdVc2VkKSByZXR1cm47XG4gICAgdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS51bmhpZ2hsaWdodEl0ZW0oaXRlbSk7XG5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIC8vISBzdWdnZXN0aW9uIHNlbGVjdGlvblxuICBzZWxlY3RTdWdnZXN0aW9uKGl0ZW06IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0sIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB0aGlzLl9zZWxlY3RTdWdnZXN0aW9uKGl0ZW0pO1xuICB9XG4gIHByaXZhdGUgX3NlbGVjdFN1Z2dlc3Rpb24oaXRlbTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5zZWxlY3RJdGVtKGl0ZW0pO1xuICAgIHRoaXMud3JpdGVWYWx1ZShzZWxlY3RlZCA/PyAnJyk7XG5cbiAgICB0aGlzLmFjY2VwdFN1Z2dlc3Rpb25FdmVudC5lbWl0KHNlbGVjdGVkKTtcblxuICAgIC8vaW1wb3J0YW50IHRvIGRvIHRob3NlIHR3byB0aGluZ3MgaW4gdGhpcyBleGFjdCBvcmRlclxuICAgIHRoaXMuZm9jdXMoKTtcbiAgICB0aGlzLl9zdWdnZXN0aW9uRHJvcGRvd09wZW4uc2V0KGZhbHNlKTtcbiAgfVxuICBoYW5kbGVTdWdnZXN0aW9uQ2xpY2tPdXRzaWRlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3VsZERpc3BsYXlTdWdnZXN0aW9ucygpKSByZXR1cm47XG5cbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKHRoaXMudmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0KSkgcmV0dXJuO1xuXG4gICAgdGhpcy5fc3VnZ2VzdGlvbkRyb3Bkb3dPcGVuLnNldChmYWxzZSk7XG4gIH1cbiAgLy8hIHN1Z2dlc3Rpb24gYXBwZWFyYW5jZVxuICByZWFkb25seSBkcm9wZG93bkFwcGVhcmFuY2UgPSBpbnB1dDxOdWxsYWJsZTxEcm9wZG93blBhbmVsQXBwZWFyYW5jZT4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGRyb3Bkb3duQXBwZWFyYW5jZU9yRGVmYXVsdCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5kcm9wZG93bkFwcGVhcmFuY2UoKSkgcmV0dXJuIHRoaXMuZHJvcGRvd25BcHBlYXJhbmNlKCkhO1xuICAgIGlmICh0aGlzLmFwcGVhcmFuY2UoKSA9PT0gRm9ybUVsZW1lbnRBcHBlYXJhbmNlLk91dGxpbmVkKSByZXR1cm4gRHJvcGRvd25QYW5lbEFwcGVhcmFuY2UuT3V0bGluZWQ7XG4gICAgcmV0dXJuIERyb3Bkb3duUGFuZWxBcHBlYXJhbmNlLlJhaXNlZDtcbiAgfSk7XG4gIHJlYWRvbmx5IGRyb3Bkb3duVmFyaWFudCA9IGlucHV0PE51bGxhYmxlPERyb3Bkb3duUGFuZWxWYXJpYW50Pj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZHJvcGRvd25WYXJpYW50T3JEZWZhdWx0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duVmFyaWFudCgpKSByZXR1cm4gdGhpcy5kcm9wZG93blZhcmlhbnQoKSE7XG4gICAgY29uc3QgdmFyaWFudCA9IHRoaXMudmFyaWFudCgpO1xuICAgIGlmICh2YXJpYW50ID09PSBGb3JtRWxlbWVudFZhcmlhbnQuUGlsbCkgcmV0dXJuIERyb3Bkb3duUGFuZWxWYXJpYW50LlJvdW5kZWQ7XG4gICAgcmV0dXJuIHZhcmlhbnQ7XG4gIH0pO1xuXG4gIC8vISBmb2N1cyBvdmVycmlkZVxuICBvdmVycmlkZSBvbkZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fc3VnZ2VzdGlvbkRyb3Bkb3dPcGVuLnNldCh0cnVlKTtcbiAgICBpZiAoIXRoaXMuc3VnZ2VzdGlvblN0b3JhZ2UuaGlnaGxpZ2h0ZWRJdGVtKCkpIHRoaXMuc3VnZ2VzdGlvblN0b3JhZ2UuaGlnaGxpZ2h0Rmlyc3RJdGVtKCk7XG5cbiAgICBzdXBlci5vbkZvY3VzKGV2ZW50KTtcbiAgfVxuXG4gIC8vISBrZXkgcHJlc3MgaGFuZGxlcnNcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcbiAgICAgIGNhc2UgJ0VudGVyJzoge1xuICAgICAgICB0aGlzLl9vblRhYk9yRW50ZXJQcmVzcyhldmVudCk7XG4gICAgICAgIHRoaXMuX29uRW50ZXJQcmVzcyhldmVudCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ1RhYic6IHtcbiAgICAgICAgdGhpcy5fb25UYWJPckVudGVyUHJlc3MoZXZlbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOiB7XG4gICAgICAgIHRoaXMuX29uQXJyb3dEb3duUHJlc3MoZXZlbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjYXNlICdBcnJvd1VwJzoge1xuICAgICAgICB0aGlzLl9vbkFycm93VXBQcmVzcyhldmVudCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIF9vblRhYk9yRW50ZXJQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGREaXNwbGF5QXV0b2NvbXBsZXRlKCkpIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5vbklucHV0KHRoaXMuYXV0b2NvbXBsZXRlKCkgPz8gJycpO1xuICAgIHRoaXMuYWNjZXB0QXV0b2NvbXBsZXRlRXZlbnQuZW1pdCgpO1xuICB9XG4gIHByaXZhdGUgX29uRW50ZXJQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGREaXNwbGF5U3VnZ2VzdGlvbnMoKSkgcmV0dXJuO1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLmhpZ2hsaWdodGVkSXRlbSgpO1xuICAgIGlmICghaXRlbSkgcmV0dXJuO1xuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLl9zZWxlY3RTdWdnZXN0aW9uKGl0ZW0pO1xuICB9XG4gIHByaXZhdGUgX29uQXJyb3dEb3duUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkRGlzcGxheVN1Z2dlc3Rpb25zKCkpIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5faXNNb3VzZUJlaW5nVXNlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5oaWdobGlnaHROZXh0SXRlbSgrMSk7XG4gIH1cbiAgcHJpdmF0ZSBfb25BcnJvd1VwUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkRGlzcGxheVN1Z2dlc3Rpb25zKCkpIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5faXNNb3VzZUJlaW5nVXNlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5oaWdobGlnaHROZXh0SXRlbSgtMSk7XG4gIH1cbn1cbiIsIjxhcmQtZm9ybS1maWVsZC1mcmFtZVxuICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlKClcIlxuICBbdmFyaWFudF09XCJ2YXJpYW50KClcIlxuICBbY29tcGFjdF09XCJjb21wYWN0KClcIlxuICBbaXNGb2N1c2VkXT1cImlzRm9jdXNlZFwiXG4gIFtwcmVmaXhUZW1wbGF0ZV09XCJwcmVmaXhUZW1wbGF0ZSgpPy50ZW1wbGF0ZVwiXG4gIFtzdWZmaXhUZW1wbGF0ZV09XCJzdWZmaXhUZW1wbGF0ZSgpPy50ZW1wbGF0ZVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImFyZC1pbnB1dFwiXG4gICAgI3N1Z2dlc3Rpb25zSG9zdFxuICAgIFtuZ0NsYXNzXT1cIm5nQ2xhc3NlcygpXCJcbiAgICBbY2xhc3MuYXJkLWhhcy12YWx1ZV09XCJ2YWx1ZVwiXG4gICAgKGNsaWNrKT1cImZvY3VzKClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImFyZC1pbnB1dC1jb250YWluZXJcIj5cbiAgICAgIEBpZiAoc2hvdWxkRGlzcGxheUF1dG9jb21wbGV0ZSgpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtYXV0b2NvbXBsZXRlXCI+e3sgYXV0b2NvbXBsZXRlKCkgfX08L2Rpdj5cbiAgICAgIH1cbiAgICAgIEBpZiAoc2hvdWxkRGlzcGxheVBsYWNlaG9sZGVyKCkpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0UGxhY2Vob2xkZXJUZW1wbGF0ZT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLXBsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIoKSB9fTwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJwbGFjZWhvbGRlclRlbXBsYXRlKCk/LnRlbXBsYXRlIHx8IGRlZmF1bHRQbGFjZWhvbGRlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIH1cbiAgICAgIDxpbnB1dFxuICAgICAgICAjdGV4dElucHV0XG4gICAgICAgICNmb2N1c2FibGVFbGVtZW50XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgW2F0dHIuaWRdPVwiaW5wdXRJZCgpXCJcbiAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXgoKVwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICAoaW5wdXQpPVwib25JbnB1dCh0ZXh0SW5wdXQudmFsdWUpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgKGNvcHkpPVwib25Db3B5KCRldmVudClcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoc2hvdWxkU2hvd0NsZWFyQnV0dG9uKCkpIHtcbiAgICAgIDxhcmQtY2xlYXItYnV0dG9uXG4gICAgICAgIFt0aXRsZV09XCJjbGVhckJ1dHRvblRpdGxlKClcIlxuICAgICAgICAoY2xpY2spPVwib25DbGVhckJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAgICAgLz5cbiAgICB9XG4gIDwvZGl2PlxuPC9hcmQtZm9ybS1maWVsZC1mcmFtZT5cblxuPG5nLXRlbXBsYXRlICNzdWdnZXN0aW9uc1RlbXBsYXRlPlxuICA8YXJkLWRyb3Bkb3duLXBhbmVsXG4gICAgY2xhc3M9XCJhcmQtZHJvcGRvd24tcGFuZWwgYXJkLWlucHV0LXN1Z2dlc3Rpb25zLXBhbmVsXCJcbiAgICByb2xlPVwibGlzdGJveFwiXG4gICAgW2NvbXBhY3RdPVwiY29tcGFjdFwiXG4gICAgYXJpYS1sYWJlbD1cIlN1Z2dlc3Rpb25zXCJcbiAgICBbYXBwZWFyYW5jZV09XCJkcm9wZG93bkFwcGVhcmFuY2VPckRlZmF1bHQoKVwiXG4gICAgW3ZhcmlhbnRdPVwiZHJvcGRvd25WYXJpYW50T3JEZWZhdWx0KClcIlxuICAgIFtpc09wZW5dPVwic2hvdWxkRGlzcGxheVN1Z2dlc3Rpb25zKClcIlxuICAgIChhcmRDbGlja091dHNpZGUpPVwiaGFuZGxlU3VnZ2VzdGlvbkNsaWNrT3V0c2lkZSgkZXZlbnQpXCJcbiAgICAobW91c2Vtb3ZlKT1cIm9uTW91c2VNb3ZlKClcIlxuICA+XG4gICAgQGZvciAoaXRlbSBvZiBzdWdnZXN0aW9uSXRlbXMoKTsgdHJhY2sgaXRlbS5pbmRleCkge1xuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImFyZC1vcHRpb25cIlxuICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgW2NsYXNzLmFyZC1vcHRpb24tc2VsZWN0ZWRdPVwiaXRlbS5zZWxlY3RlZCgpXCJcbiAgICAgICAgW2NsYXNzLmFyZC1vcHRpb24taGlnaGxpZ2h0ZWRdPVwiaXRlbS5oaWdobGlnaHRlZCgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpdGVtLnNlbGVjdGVkKClcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0U3VnZ2VzdGlvbihpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwib25TdWdnZXN0aW9uTW91c2VFbnRlcihpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgKG1vdXNlbGVhdmUpPVwib25TdWdnZXN0aW9uTW91c2VMZWF2ZShpdGVtLCAkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhcmQtb3B0aW9uLWxhYmVsXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0T3B0aW9uVGVtcGxhdGU+XG4gICAgICAgICAgICB7eyBpdGVtLmxhYmVsKCkgfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJzdWdnZXN0aW9uVGVtcGxhdGUoKT8udGVtcGxhdGUgfHwgZGVmYXVsdE9wdGlvblRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRPcHRpb25Db250ZXh0KGl0ZW0pXCJcbiAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIEBpZiAoYXJlU3VnZ2VzdGlvbnNMb2FkaW5nKCkpIHtcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdExvYWRpbmdQbGFjZWhvbGRlclRlbXBsYXRlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLW9wdGlvbiBhcmQtb3B0aW9uLWRpc2FibGVkXCI+e3sgc3VnZ2VzdGlvbnNMb2FkaW5nVGV4dCgpIH19PC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic3VnZ2VzdGlvbkxvYWRpbmdUZW1wbGF0ZSgpPy50ZW1wbGF0ZSB8fCBkZWZhdWx0TG9hZGluZ1BsYWNlaG9sZGVyVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgIH1cbiAgPC9hcmQtZHJvcGRvd24tcGFuZWw+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { _simpleInputComponentDefaults } from '../_simple-input-base';
|
|
3
|
+
const _inputDefaults = {
|
|
4
|
+
..._simpleInputComponentDefaults,
|
|
5
|
+
suggValueFrom: 'value',
|
|
6
|
+
suggLabelFrom: 'label',
|
|
7
|
+
suggestionsLoadingText: 'Loading...',
|
|
8
|
+
};
|
|
9
|
+
export const ARD_INPUT_DEFAULTS = new InjectionToken('ard-input-defaults', {
|
|
10
|
+
factory: () => ({
|
|
11
|
+
..._inputDefaults,
|
|
12
|
+
}),
|
|
13
|
+
});
|
|
14
|
+
export function provideInputDefaults(config) {
|
|
15
|
+
return { provide: ARD_INPUT_DEFAULTS, useValue: { ..._inputDefaults, ...config } };
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9pbnB1dC9pbnB1dC5kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBaUMsNkJBQTZCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVFyRyxNQUFNLGNBQWMsR0FBcUI7SUFDdkMsR0FBRyw2QkFBNkI7SUFDaEMsYUFBYSxFQUFFLE9BQU87SUFDdEIsYUFBYSxFQUFFLE9BQU87SUFDdEIsc0JBQXNCLEVBQUUsWUFBWTtDQUNyQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQW1CLG9CQUFvQixFQUFFO0lBQzNGLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2QsR0FBRyxjQUFjO0tBQ2xCLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFFSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsTUFBaUM7SUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLGNBQWMsRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUM7QUFDckYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgX1NpbXBsZUlucHV0Q29tcG9uZW50RGVmYXVsdHMsIF9zaW1wbGVJbnB1dENvbXBvbmVudERlZmF1bHRzIH0gZnJvbSAnLi4vX3NpbXBsZS1pbnB1dC1iYXNlJztcblxuZXhwb3J0IGludGVyZmFjZSBBcmRJbnB1dERlZmF1bHRzIGV4dGVuZHMgX1NpbXBsZUlucHV0Q29tcG9uZW50RGVmYXVsdHMge1xuICBzdWdnVmFsdWVGcm9tOiBzdHJpbmc7XG4gIHN1Z2dMYWJlbEZyb206IHN0cmluZztcbiAgc3VnZ2VzdGlvbnNMb2FkaW5nVGV4dDogc3RyaW5nO1xufVxuXG5jb25zdCBfaW5wdXREZWZhdWx0czogQXJkSW5wdXREZWZhdWx0cyA9IHtcbiAgLi4uX3NpbXBsZUlucHV0Q29tcG9uZW50RGVmYXVsdHMsXG4gIHN1Z2dWYWx1ZUZyb206ICd2YWx1ZScsXG4gIHN1Z2dMYWJlbEZyb206ICdsYWJlbCcsXG4gIHN1Z2dlc3Rpb25zTG9hZGluZ1RleHQ6ICdMb2FkaW5nLi4uJyxcbn07XG5cbmV4cG9ydCBjb25zdCBBUkRfSU5QVVRfREVGQVVMVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48QXJkSW5wdXREZWZhdWx0cz4oJ2FyZC1pbnB1dC1kZWZhdWx0cycsIHtcbiAgZmFjdG9yeTogKCkgPT4gKHtcbiAgICAuLi5faW5wdXREZWZhdWx0cyxcbiAgfSksXG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVJbnB1dERlZmF1bHRzKGNvbmZpZzogUGFydGlhbDxBcmRJbnB1dERlZmF1bHRzPik6IFByb3ZpZGVyIHtcbiAgcmV0dXJuIHsgcHJvdmlkZTogQVJEX0lOUFVUX0RFRkFVTFRTLCB1c2VWYWx1ZTogeyAuLi5faW5wdXREZWZhdWx0cywgLi4uY29uZmlnIH0gfTtcbn1cbiJdfQ==
|
|
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
55
55
|
type: Directive,
|
|
56
56
|
args: [{ selector: 'ard-input > ng-template[ard-suffix-tmp]' }]
|
|
57
57
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW5wdXRzL2lucHV0L2lucHV0LmRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFJdkQsTUFBTSxPQUFPLDhCQUE4QjtJQUN6QyxZQUFtQixRQUE0RDtRQUE1RCxhQUFRLEdBQVIsUUFBUSxDQUFvRDtJQUFHLENBQUM7OEdBRHhFLDhCQUE4QjtrR0FBOUIsOEJBQThCOzsyRkFBOUIsOEJBQThCO2tCQUQxQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLDZDQUE2QyxFQUFFOztBQU10RSxNQUFNLE9BQU8sb0NBQW9DO0lBQy9DLFlBQW1CLFFBQWdDO1FBQWhDLGFBQVEsR0FBUixRQUFRLENBQXdCO0lBQUcsQ0FBQzs4R0FENUMsb0NBQW9DO2tHQUFwQyxvQ0FBb0M7OzJGQUFwQyxvQ0FBb0M7a0JBRGhELFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsOENBQThDLEVBQUU7O0FBTXZFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFDM0MsWUFBbUIsUUFBZ0M7UUFBaEMsYUFBUSxHQUFSLFFBQVEsQ0FBd0I7SUFBRyxDQUFDOzhHQUQ1QyxnQ0FBZ0M7a0dBQWhDLGdDQUFnQzs7MkZBQWhDLGdDQUFnQztrQkFENUMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwwQ0FBMEMsRUFBRTs7QUFNbkUsTUFBTSxPQUFPLCtCQUErQjtJQUMxQyxZQUFtQixRQUFnQztRQUFoQyxhQUFRLEdBQVIsUUFBUSxDQUF3QjtJQUFHLENBQUM7OEdBRDVDLCtCQUErQjtrR0FBL0IsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQUQzQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHlDQUF5QyxFQUFFOztBQU1sRSxNQUFNLE9BQU8sK0JBQStCO0lBQzFDLFlBQW1CLFFBQWdDO1FBQWhDLGFBQVEsR0FBUixRQUFRLENBQXdCO0lBQUcsQ0FBQzs4R0FENUMsK0JBQStCO2tHQUEvQiwrQkFBK0I7OzJGQUEvQiwrQkFBK0I7a0JBRDNDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUseUNBQXlDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtLCBPcHRpb25Db250ZXh0IH0gZnJvbSAnLi4vLi4vdHlwZXMvaXRlbS1zdG9yYWdlLnR5cGVzJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLWlucHV0ID4gbmctdGVtcGxhdGVbYXJkLXN1Z2dlc3Rpb24tdG1wXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRTdWdnZXN0aW9uVGVtcGxhdGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPE9wdGlvbkNvbnRleHQ8QXJkU2ltcGxlc3RTdG9yYWdlSXRlbT4+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdhcmQtaW5wdXQgPiBuZy10ZW1wbGF0ZVthcmQtcGxhY2Vob2xkZXItdG1wXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVuZGVmaW5lZD4pIHt9XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2FyZC1pbnB1dCA+IG5nLXRlbXBsYXRlW2FyZC1sb2FkaW5nLXRtcF0nIH0pXG5leHBvcnQgY2xhc3MgQXJkSW5wdXRMb2FkaW5nVGVtcGxhdGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVuZGVmaW5lZD4pIHt9XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2FyZC1pbnB1dCA+IG5nLXRlbXBsYXRlW2FyZC1wcmVmaXgtdG1wXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRJbnB1dFByZWZpeFRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmRlZmluZWQ+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdhcmQtaW5wdXQgPiBuZy10ZW1wbGF0ZVthcmQtc3VmZml4LXRtcF0nIH0pXG5leHBvcnQgY2xhc3MgQXJkSW5wdXRTdWZmaXhUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5kZWZpbmVkPikge31cbn1cbiJdfQ==
|
|
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
58
58
|
],
|
|
59
59
|
}]
|
|
60
60
|
}] });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaW5wdXQvaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMsb0NBQW9DLEVBQ3BDLCtCQUErQixFQUMvQiwrQkFBK0IsRUFDL0IsOEJBQThCLEdBQy9CLE1BQU0sb0JBQW9CLENBQUM7O0FBMkI1QixNQUFNLE9BQU8saUJBQWlCOzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkF2QjFCLG9CQUFvQjtZQUNwQiw4QkFBOEI7WUFDOUIsb0NBQW9DO1lBQ3BDLGdDQUFnQztZQUNoQywrQkFBK0I7WUFDL0IsK0JBQStCLGFBRy9CLFlBQVk7WUFDWiwwQkFBMEI7WUFDMUIsa0JBQWtCO1lBQ2xCLHlCQUF5QjtZQUN6Qiw2QkFBNkIsYUFHN0Isb0JBQW9CO1lBQ3BCLDhCQUE4QjtZQUM5QixvQ0FBb0M7WUFDcEMsZ0NBQWdDO1lBQ2hDLCtCQUErQjtZQUMvQiwrQkFBK0I7K0dBR3RCLGlCQUFpQixZQWYxQixZQUFZO1lBQ1osMEJBQTBCO1lBQzFCLGtCQUFrQjtZQUNsQix5QkFBeUI7WUFDekIsNkJBQTZCOzsyRkFXcEIsaUJBQWlCO2tCQXpCN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osb0JBQW9CO3dCQUNwQiw4QkFBOEI7d0JBQzlCLG9DQUFvQzt3QkFDcEMsZ0NBQWdDO3dCQUNoQywrQkFBK0I7d0JBQy9CLCtCQUErQjtxQkFDaEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osMEJBQTBCO3dCQUMxQixrQkFBa0I7d0JBQ2xCLHlCQUF5Qjt3QkFDekIsNkJBQTZCO3FCQUM5QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asb0JBQW9CO3dCQUNwQiw4QkFBOEI7d0JBQzlCLG9DQUFvQzt3QkFDcEMsZ0NBQWdDO3dCQUNoQywrQkFBK0I7d0JBQy9CLCtCQUErQjtxQkFDaEM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFyZGl1bUNsaWNrT3V0c2lkZUV2ZW50TW9kdWxlIH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xuaW1wb3J0IHsgQXJkaXVtRHJvcGRvd25QYW5lbE1vZHVsZSB9IGZyb20gJy4uLy4uL2Ryb3Bkb3duLXBhbmVsL2Ryb3Bkb3duLXBhbmVsLm1vZHVsZSc7XG5pbXBvcnQgeyBBcmRpdW1Gb3JtRmllbGRGcmFtZU1vZHVsZSB9IGZyb20gJy4uLy4uL2Zvcm0tZmllbGQtZnJhbWUvZm9ybS1maWVsZC1mcmFtZS5tb2R1bGUnO1xuaW1wb3J0IHsgX0NsZWFyQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vLi4vX2ludGVybmFsL2NsZWFyLWJ1dHRvbi9jbGVhci1idXR0b24ubW9kdWxlJztcbmltcG9ydCB7IEFyZGl1bUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQXJkSW5wdXRMb2FkaW5nVGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZElucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkSW5wdXRQcmVmaXhUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkSW5wdXRTdWZmaXhUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkU3VnZ2VzdGlvblRlbXBsYXRlRGlyZWN0aXZlLFxufSBmcm9tICcuL2lucHV0LmRpcmVjdGl2ZXMnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBcmRpdW1JbnB1dENvbXBvbmVudCxcbiAgICBBcmRTdWdnZXN0aW9uVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXJkSW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIEFyZElucHV0TG9hZGluZ1RlbXBsYXRlRGlyZWN0aXZlLFxuICAgIEFyZElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXJkSW5wdXRTdWZmaXhUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBcmRpdW1Gb3JtRmllbGRGcmFtZU1vZHVsZSxcbiAgICBfQ2xlYXJCdXR0b25Nb2R1bGUsXG4gICAgQXJkaXVtRHJvcGRvd25QYW5lbE1vZHVsZSxcbiAgICBBcmRpdW1DbGlja091dHNpZGVFdmVudE1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEFyZGl1bUlucHV0Q29tcG9uZW50LFxuICAgIEFyZFN1Z2dlc3Rpb25UZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBBcmRJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXJkSW5wdXRMb2FkaW5nVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXJkSW5wdXRQcmVmaXhUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBBcmRJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1JbnB1dE1vZHVsZSB7fVxuIl19
|
|
@@ -63,4 +63,4 @@ export const ArdTransformer = {
|
|
|
63
63
|
Integer: int,
|
|
64
64
|
Float: float,
|
|
65
65
|
};
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdHJhbnNmb3JtZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaW5wdXQtdHJhbnNmb3JtZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFDUyxLQUFhLEVBQ2IsVUFBVSxFQUFFLEVBQ1osYUFBYSxDQUFDO1FBRmQsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFlBQU8sR0FBUCxPQUFPLENBQUs7UUFDWixlQUFVLEdBQVYsVUFBVSxDQUFJO0lBQ3BCLENBQUM7SUFFSixLQUFLLENBQUMsV0FBbUIsRUFBRSxZQUFvQixFQUFFLFFBQWdCO1FBQy9ELElBQUksSUFBSSxHQUFHLFdBQVcsQ0FBQztRQUN2QixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkIsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsdUJBQXVCO2dCQUN2QixJQUFJLFlBQVksR0FBRyxHQUFHLEVBQUUsQ0FBQztvQkFDdkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLENBQUMsc0ZBQXNGLENBQUMsQ0FBQyxDQUFDO29CQUN2SCxNQUFNO2dCQUNSLENBQUM7Z0JBQ0QsYUFBYTtnQkFDYixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUNqQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDOUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDaEMsZUFBZTtnQkFDZixRQUFRLEdBQUcsUUFBUSxHQUFHLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQyxDQUFDO2dCQUNuRCw4QkFBOEI7Z0JBQzlCLFlBQVksRUFBRSxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sR0FBcUIsQ0FBQyxXQUFtQixFQUFFLFlBQW9CLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO0lBQ2hHLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDO0FBQ3ZELENBQUMsQ0FBQztBQUNGLE1BQU0sT0FBTyxHQUFxQixDQUFDLFdBQW1CLEVBQUUsWUFBb0IsRUFBRSxRQUFnQixFQUFFLEVBQUU7SUFDaEcsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFDdkQsQ0FBQyxDQUFDO0FBQ0YsTUFBTSxHQUFHLEdBQXFCLENBQUMsV0FBbUIsRUFBRSxZQUFvQixFQUFFLFFBQWdCLEVBQUUsRUFBRTtJQUM1RixNQUFNLE9BQU8sR0FBK0QsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0csSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQzFDLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDMUIsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3pDLEdBQUcsR0FBRyxJQUFJLGlCQUFpQixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFDRixNQUFNLEtBQUssR0FBcUIsQ0FBQyxXQUFtQixFQUFFLFlBQW9CLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO0lBQzlGLE1BQU0sT0FBTyxHQUErRDtRQUMxRSxDQUFDLFdBQVcsQ0FBQztRQUNiLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztRQUNWLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQztRQUNmLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQztRQUNuQixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7S0FDcEIsQ0FBQztJQUNGLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUMxQyxLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzFCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUN6QyxHQUFHLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLE9BQU8sRUFBRSxHQUFHO0lBQ1osS0FBSyxFQUFFLEtBQUs7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQXJkVHJhbnNmb3JtZXJGbiA9IChcbiAgY3VycmVudFRleHQ6IHN0cmluZyxcbiAgcHJldmlvdXNUZXh0OiBzdHJpbmcsXG4gIGNhcmV0UG9zOiBudW1iZXJcbikgPT4geyB0ZXh0OiBzdHJpbmc7IGNhcmV0UG9zOiBudW1iZXIgfTtcblxuaW50ZXJmYWNlIElSZWdFeHBUcmFuc2Zvcm1lciB7XG4gIGFwcGx5OiBBcmRUcmFuc2Zvcm1lckZuO1xufVxuZXhwb3J0IGNsYXNzIFJlZ0V4cFRyYW5zZm9ybWVyIGltcGxlbWVudHMgSVJlZ0V4cFRyYW5zZm9ybWVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlZ2V4OiBSZWdFeHAsXG4gICAgcHVibGljIHJlcGxhY2UgPSAnJyxcbiAgICBwdWJsaWMgY2FyZXRNb2RpZiA9IDBcbiAgKSB7fVxuXG4gIGFwcGx5KGN1cnJlbnRUZXh0OiBzdHJpbmcsIHByZXZpb3VzVGV4dDogc3RyaW5nLCBjYXJldFBvczogbnVtYmVyKTogeyB0ZXh0OiBzdHJpbmc7IGNhcmV0UG9zOiBudW1iZXIgfSB7XG4gICAgbGV0IHRleHQgPSBjdXJyZW50VGV4dDtcbiAgICBpZiAodGV4dCAmJiB0aGlzLnJlZ2V4KSB7XG4gICAgICBsZXQgc2FmZXR5U3dpdGNoID0gMDtcbiAgICAgIHdoaWxlICh0ZXh0Lm1hdGNoKHRoaXMucmVnZXgpKSB7XG4gICAgICAgIC8vcHJldmVudCBpbmZpbml0ZSBsb29wXG4gICAgICAgIGlmIChzYWZldHlTd2l0Y2ggPiA5OTkpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKHRoaXMsIG5ldyBFcnJvcignUG9zc2libGUgaW5maW5pdGUgbG9vcCBpbiB0aGUgYWJvdmUgUmVnRXhwVHJhbnNmb3JtZXIuIEV4aXRlZCBhZnRlciAxMDAwIGl0ZXJhdGlvbnMuJykpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIC8vYXBwbHkgcmVnZXhcbiAgICAgICAgY29uc3QgbGVuZ3RoQmVmb3JlID0gdGV4dC5sZW5ndGg7XG4gICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UodGhpcy5yZWdleCwgdGhpcy5yZXBsYWNlKTtcbiAgICAgICAgY29uc3QgbGVuZ3RoQWZ0ZXIgPSB0ZXh0Lmxlbmd0aDtcbiAgICAgICAgLy9maXggY2FyZXQgcG9zXG4gICAgICAgIGNhcmV0UG9zID0gY2FyZXRQb3MgKyAobGVuZ3RoQWZ0ZXIgLSBsZW5ndGhCZWZvcmUpO1xuICAgICAgICAvL2ZvciBpbmZpbml0ZSBsb29wIHByZXZlbnRpb25cbiAgICAgICAgc2FmZXR5U3dpdGNoKys7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHRleHQsIGNhcmV0UG9zIH07XG4gIH1cbn1cblxuY29uc3QgdG9VcHBlcjogQXJkVHJhbnNmb3JtZXJGbiA9IChjdXJyZW50VGV4dDogc3RyaW5nLCBwcmV2aW91c1RleHQ6IHN0cmluZywgY2FyZXRQb3M6IG51bWJlcikgPT4ge1xuICByZXR1cm4geyB0ZXh0OiBjdXJyZW50VGV4dC50b1VwcGVyQ2FzZSgpLCBjYXJldFBvcyB9O1xufTtcbmNvbnN0IHRvTG93ZXI6IEFyZFRyYW5zZm9ybWVyRm4gPSAoY3VycmVudFRleHQ6IHN0cmluZywgcHJldmlvdXNUZXh0OiBzdHJpbmcsIGNhcmV0UG9zOiBudW1iZXIpID0+IHtcbiAgcmV0dXJuIHsgdGV4dDogY3VycmVudFRleHQudG9Mb3dlckNhc2UoKSwgY2FyZXRQb3MgfTtcbn07XG5jb25zdCBpbnQ6IEFyZFRyYW5zZm9ybWVyRm4gPSAoY3VycmVudFRleHQ6IHN0cmluZywgcHJldmlvdXNUZXh0OiBzdHJpbmcsIGNhcmV0UG9zOiBudW1iZXIpID0+IHtcbiAgY29uc3QgcmVnZXhlczogKFtSZWdFeHBdIHwgW1JlZ0V4cCwgc3RyaW5nXSB8IFtSZWdFeHAsIHN0cmluZywgbnVtYmVyXSlbXSA9IFtbL1teMC05LV0vXSwgWy8oLispLS8sICckMSddXTtcbiAgbGV0IG9iaiA9IHsgdGV4dDogY3VycmVudFRleHQsIGNhcmV0UG9zIH07XG4gIGZvciAoY29uc3QgYXJyIG9mIHJlZ2V4ZXMpIHtcbiAgICBjb25zdCBbcmVnZXgsIHJlcGxhY2UsIGNhcmV0TW9kaWZdID0gYXJyO1xuICAgIG9iaiA9IG5ldyBSZWdFeHBUcmFuc2Zvcm1lcihyZWdleCwgcmVwbGFjZSwgY2FyZXRNb2RpZikuYXBwbHkob2JqLnRleHQsIHByZXZpb3VzVGV4dCwgb2JqLmNhcmV0UG9zKTtcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbmNvbnN0IGZsb2F0OiBBcmRUcmFuc2Zvcm1lckZuID0gKGN1cnJlbnRUZXh0OiBzdHJpbmcsIHByZXZpb3VzVGV4dDogc3RyaW5nLCBjYXJldFBvczogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IHJlZ2V4ZXM6IChbUmVnRXhwXSB8IFtSZWdFeHAsIHN0cmluZ10gfCBbUmVnRXhwLCBzdHJpbmcsIG51bWJlcl0pW10gPSBbXG4gICAgWy9bXjAtOSwuLV0vXSxcbiAgICBbLywvLCAnLiddLFxuICAgIFsvKC4rKS0vLCAnJDEnXSxcbiAgICBbL1xcLiguKilcXC4vLCAnJDEuJ10sXG4gICAgWy9eKC0/KVxcLi8sICckMTAuJ10sXG4gIF07XG4gIGxldCBvYmogPSB7IHRleHQ6IGN1cnJlbnRUZXh0LCBjYXJldFBvcyB9O1xuICBmb3IgKGNvbnN0IGFyciBvZiByZWdleGVzKSB7XG4gICAgY29uc3QgW3JlZ2V4LCByZXBsYWNlLCBjYXJldE1vZGlmXSA9IGFycjtcbiAgICBvYmogPSBuZXcgUmVnRXhwVHJhbnNmb3JtZXIocmVnZXgsIHJlcGxhY2UsIGNhcmV0TW9kaWYpLmFwcGx5KG9iai50ZXh0LCBwcmV2aW91c1RleHQsIG9iai5jYXJldFBvcyk7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG5leHBvcnQgY29uc3QgQXJkVHJhbnNmb3JtZXIgPSB7XG4gIFRvVXBwZXI6IHRvVXBwZXIsXG4gIFRvTG93ZXI6IHRvTG93ZXIsXG4gIEludGVnZXI6IGludCxcbiAgRmxvYXQ6IGZsb2F0LFxufSBhcyBjb25zdDtcbiJdfQ==
|
|
@@ -183,4 +183,4 @@ export function escapeAndCreateRegex(str, flags, negated = true) {
|
|
|
183
183
|
str = str.replace(/([\]]+)/g, '\\$1');
|
|
184
184
|
return new RegExp(`[${negated ? '^' : ''}${str}]`, flags);
|
|
185
185
|
}
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9pbnB1dC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFNekUsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUErQixXQUFpQztRQUFqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7UUFFdkQsVUFBSyxHQUFHLE1BQU0sQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBSEMsQ0FBQztJQUtwRSxVQUFVLENBQUMsQ0FBTTtRQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNsQywyQ0FBMkM7WUFDM0MsT0FBTyxDQUFDLElBQUksQ0FDVixJQUFJLEtBQUssQ0FDUCw0REFBNEQsQ0FBQyxjQUFjLE9BQU8sQ0FBQyw2QkFBNkIsQ0FDakgsQ0FDRixDQUFDO1lBQ0YscUJBQXFCO1lBQ3JCLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ1MsV0FBVyxDQUFDLENBQWdCO1FB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QyxHQUFHLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDcEYsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDcEYsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsR0FBVyxFQUFFLEtBQWMsRUFBRSxPQUFPLEdBQUcsSUFBSTtJQUM5RSxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFNpZ25hbCwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc0FueVN0cmluZywgaXNEZWZpbmVkLCBpc051bGwsIGlzTnVtYmVyIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xyXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xyXG5pbXBvcnQgeyBBcmRUcmFuc2Zvcm1lciwgUmVnRXhwVHJhbnNmb3JtZXIgfSBmcm9tICcuL2lucHV0LXRyYW5zZm9ybWVycyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsZUlucHV0TW9kZWxIb3N0IHtcclxuICByZWFkb25seSBtYXhMZW5ndGg6IFNpZ25hbDxOdWxsYWJsZTxudW1iZXI+PjtcclxuICByZWFkb25seSB0ZXh0SW5wdXRFbDogU2lnbmFsPEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4gfCB1bmRlZmluZWQ+O1xyXG59XHJcbmV4cG9ydCBjbGFzcyBTaW1wbGVJbnB1dE1vZGVsIHtcclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgX2FyZEhvc3RDbXA6IFNpbXBsZUlucHV0TW9kZWxIb3N0KSB7fVxyXG5cclxuICByZWFkb25seSB2YWx1ZSA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcclxuICByZWFkb25seSBzdHJpbmdWYWx1ZSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy52YWx1ZSgpID8/ICcnKTtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmICghaXNBbnlTdHJpbmcodikgJiYgIWlzTnVsbCh2KSkge1xyXG4gICAgICAvL3dhcm4gd2hlbiB1c2luZyBub24tc3RyaW5nL25vbi1udWxsIHZhbHVlXHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICBuZXcgRXJyb3IoXHJcbiAgICAgICAgICBgQVJELVdBMDAyMDogVHJ5aW5nIHRvIHNldCA8YXJkLXNpbXBsZS1pbnB1dD4ncyB2YWx1ZSB0byBcIiR7dn1cIiAob2YgdHlwZSAke3R5cGVvZiB2fSksIGV4cGVjdGVkIHN0cmluZyBvciBudWxsLmBcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICAgIC8vbm9ybWFsaXplIHRoZSB2YWx1ZVxyXG4gICAgICB2ID0gdj8udG9TdHJpbmc/LigpID8/IFN0cmluZyh2KTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl93cml0ZVZhbHVlKHYpO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgX3dyaXRlVmFsdWUodjogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgLy9jb25zdHJhaW50c1xyXG4gICAgdiA9IHRoaXMuX2FwcGx5TGVuZ3RoVHJhbnNmb3JtZXIodik7XHJcbiAgICAvL3VwZGF0ZSB2aWV3XHJcbiAgICBjb25zdCBvbGRWYWwgPSB0aGlzLnZhbHVlKCk7XHJcbiAgICB0aGlzLnZhbHVlLnNldCh2KTtcclxuICAgIHRoaXMuX3VwZGF0ZUlucHV0RWxlbWVudCgpO1xyXG4gICAgcmV0dXJuIG9sZFZhbCAhPT0gdjtcclxuICB9XHJcbiAgcmV3cml0ZVZhbHVlQWZ0ZXJIb3N0VXBkYXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fd3JpdGVWYWx1ZSh0aGlzLnZhbHVlKCkpO1xyXG4gIH1cclxuICBjbGVhcigpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUuc2V0KG51bGwpO1xyXG4gICAgdGhpcy5fdXBkYXRlSW5wdXRFbGVtZW50KCk7XHJcbiAgfVxyXG5cclxuICBfdXBkYXRlSW5wdXRFbGVtZW50KCkge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLl9hcmRIb3N0Q21wLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBpZiAoIWVsKSByZXR1cm47XHJcbiAgICBlbC52YWx1ZSA9IHRoaXMuc3RyaW5nVmFsdWUoKTtcclxuICB9XHJcbiAgZ2V0IGNhcmV0UG9zKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXJkSG9zdENtcC50ZXh0SW5wdXRFbCgpPy5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCA/PyB0aGlzLnN0cmluZ1ZhbHVlLmxlbmd0aDtcclxuICB9XHJcbiAgc2V0IGNhcmV0UG9zKHBvczogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9hcmRIb3N0Q21wLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UocG9zLCBwb3MpO1xyXG4gIH1cclxuICAvLyEgY29uc3RyYWludHNcclxuICBwcm90ZWN0ZWQgX2FwcGx5TGVuZ3RoVHJhbnNmb3JtZXIodjogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgY29uc3QgbWF4ID0gdGhpcy5fYXJkSG9zdENtcC5tYXhMZW5ndGgoKTtcclxuICAgIGlmICghaXNEZWZpbmVkKG1heCkpIHJldHVybiB2O1xyXG4gICAgaWYgKCF2IHx8IHYubGVuZ3RoIDw9IG1heCkgcmV0dXJuIHY7XHJcblxyXG4gICAgdiA9IHYuc3Vic3RyaW5nKDAsIG1heCk7XHJcbiAgICB0aGlzLmNhcmV0UG9zID0gbWF4O1xyXG4gICAgcmV0dXJuIHY7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRNb2RlbEhvc3QgZXh0ZW5kcyBTaW1wbGVJbnB1dE1vZGVsSG9zdCB7XHJcbiAgY2hhcmxpc3Q6IFNpZ25hbDxSZWdFeHAgfCB1bmRlZmluZWQ+O1xyXG59XHJcbmV4cG9ydCBjbGFzcyBJbnB1dE1vZGVsIGV4dGVuZHMgU2ltcGxlSW5wdXRNb2RlbCB7XHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9hcmRIb3N0Q21wOiBJbnB1dE1vZGVsSG9zdCkge1xyXG4gICAgc3VwZXIoX2FyZEhvc3RDbXApO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX3dyaXRlVmFsdWUodjogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgLy90cmFuc2Zvcm1lcnNcclxuICAgIGlmICh2KSB7XHJcbiAgICAgIGxldCBwcmV2ID0gdGhpcy5zdHJpbmdWYWx1ZSgpO1xyXG4gICAgICB2ID0gdGhpcy5fYXBwbHlBbGxvd09yRGVueWxpc3RUcmFuc2Zvcm1lcih2LCBwcmV2KTtcclxuICAgICAgcHJldiA9IHRoaXMuc3RyaW5nVmFsdWUoKTtcclxuICAgICAgdiA9IHRoaXMuX2FwcGx5TGVuZ3RoVHJhbnNmb3JtZXIodik7XHJcbiAgICB9XHJcbiAgICBjb25zdCBvbGRWYWwgPSB0aGlzLnZhbHVlKCk7XHJcbiAgICAvL3VwZGF0ZSB2aWV3XHJcbiAgICB0aGlzLnZhbHVlLnNldCh2KTtcclxuICAgIHRoaXMuX3VwZGF0ZUlucHV0RWxlbWVudCgpO1xyXG4gICAgcmV0dXJuIG9sZFZhbCAhPT0gdjtcclxuICB9XHJcblxyXG4gIHNldFNlbGVjdGlvbihmcm9tOiBudW1iZXIgfCBudWxsLCB0bzogbnVtYmVyIHwgbnVsbCk6IHZvaWQ7XHJcbiAgc2V0U2VsZWN0aW9uKGZyb206IG51bWJlciB8IG51bGwsIHRvPzogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgdG8gPSB0byA/PyB0aGlzLnZhbHVlKCk/Lmxlbmd0aCA/PyBJbmZpbml0eTtcclxuICAgIHRoaXMuX2FyZEhvc3RDbXAudGV4dElucHV0RWwoKT8ubmF0aXZlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShmcm9tLCB0byk7XHJcbiAgfVxyXG4gIC8vKiBjb25zdHJhaW50c1xyXG4gIHByb3RlY3RlZCBfYXBwbHlBbGxvd09yRGVueWxpc3RUcmFuc2Zvcm1lcih2OiBzdHJpbmcsIHByZXY6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBjaGFybGlzdCA9IHRoaXMuX2FyZEhvc3RDbXAuY2hhcmxpc3QoKTtcclxuICAgIGlmICghY2hhcmxpc3QgfHwgIXYpIHJldHVybiB2O1xyXG4gICAgY29uc3QgeyB0ZXh0LCBjYXJldFBvcyB9ID0gbmV3IFJlZ0V4cFRyYW5zZm9ybWVyKGNoYXJsaXN0KS5hcHBseSh2LCBwcmV2LCB0aGlzLmNhcmV0UG9zKTtcclxuICAgIHRoaXMuY2FyZXRQb3MgPSBjYXJldFBvcztcclxuICAgIHJldHVybiB0ZXh0O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOdW1iZXJJbnB1dE1vZGVsSG9zdCB7XHJcbiAgcmVhZG9ubHkgbWF4OiBTaWduYWw8bnVtYmVyPjtcclxuICByZWFkb25seSBtaW46IFNpZ25hbDxudW1iZXI+O1xyXG4gIHJlYWRvbmx5IGFsbG93RmxvYXQ6IFNpZ25hbDxib29sZWFuPjtcclxuICByZWFkb25seSBpbnB1dEVsOiBTaWduYWw8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiB8IHVuZGVmaW5lZD47XHJcbn1cclxuZXhwb3J0IGNsYXNzIE51bWJlcklucHV0TW9kZWwge1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBfYXJkSG9zdENtcDogTnVtYmVySW5wdXRNb2RlbEhvc3QpIHt9XHJcblxyXG4gIC8vISB2YWx1ZSBzZXR0ZXJzL2dldHRlcnNcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3ZhbHVlID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xyXG4gIHJlYWRvbmx5IHZhbHVlID0gdGhpcy5fdmFsdWUuYXNSZWFkb25seSgpO1xyXG4gIHJlYWRvbmx5IHN0cmluZ1ZhbHVlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fdmFsdWUoKSA/PyAnJyk7XHJcbiAgcmVhZG9ubHkgbnVtYmVyVmFsdWUgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5fdmFsdWUoKSA9PT0gbnVsbCA/IG51bGwgOiBOdW1iZXIodGhpcy5fdmFsdWUoKSkpKTtcclxuXHJcbiAgc2V0VmFsdWUodjogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc3RyaW5nViA9IGlzTnVtYmVyKHYpID8gU3RyaW5nKHYpIDogdjtcclxuICAgIHRoaXMuX3ZhbHVlLnNldChzdHJpbmdWKTtcclxuICAgIHRoaXMuX3VwZGF0ZUlucHV0RWwoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZUlucHV0RWwoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdHJpbmdWID0gdGhpcy5zdHJpbmdWYWx1ZSgpO1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLl9hcmRIb3N0Q21wLmlucHV0RWwoKT8ubmF0aXZlRWxlbWVudDtcclxuICAgIGlmICghZWwpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBjYXJldFBvcyA9IHRoaXMuY2FyZXRQb3M7XHJcbiAgICBlbC52YWx1ZSA9IHN0cmluZ1Y7XHJcbiAgICB0aGlzLmNhcmV0UG9zID0gY2FyZXRQb3M7XHJcbiAgfVxyXG5cclxuICAvLyEgd3JpdGUgdmFsdWUgaGFuZGxlcnNcclxuICB3cml0ZVZhbHVlKHY6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFpc051bWJlcih2KSAmJiAhaXNBbnlTdHJpbmcodikgJiYgIWlzTnVsbCh2KSkge1xyXG4gICAgICAvL3dhcm4gd2hlbiB1c2luZyBub24tc3RyaW5nL25vbi1udWxsIHZhbHVlXHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICBuZXcgRXJyb3IoYEFSRC1XQTAwNzA6IFRyeWluZyB0byBzZXQgPGFyZC1udW1iZXItaW5wdXQ+J3MgdmFsdWUgdG8gXCIke3R5cGVvZiB2fVwiLCBleHBlY3RlZCBzdHJpbmcsIG51bWJlciwgb3IgbnVsbC5gKVxyXG4gICAgICApO1xyXG4gICAgICAvL25vcm1hbGl6ZSB0aGUgdmFsdWVcclxuICAgICAgdiA9IHY/LnRvU3RyaW5nPy4oKSA/PyBTdHJpbmcodik7XHJcbiAgICB9XHJcbiAgICB2ID0gU3RyaW5nKHYpO1xyXG4gICAgcmV0dXJuIHRoaXMuX3dyaXRlVmFsdWUodik7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBfd3JpdGVWYWx1ZSh2OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICAvL2NvbnN0cmFpbnRzXHJcbiAgICBpZiAodikge1xyXG4gICAgICB2ID0gdGhpcy5fcmVtb3ZlRGVjaW1hbFBsYWNlcyh2KTtcclxuICAgICAgdiA9IHRoaXMuX2FwcGx5TnVtYmVyQ29uc3RyYWludCh2KTtcclxuICAgICAgdiA9IHRoaXMuX2FwcGx5TWluTWF4Q29uc3RyYWludHModik7XHJcbiAgICB9XHJcbiAgICAvL3VwZGF0ZSB2aWV3XHJcbiAgICBjb25zdCBvbGRWYWwgPSB0aGlzLl92YWx1ZSgpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZSh2KTtcclxuICAgIHJldHVybiBvbGRWYWwgIT09IHY7XHJcbiAgfVxyXG4gIHJld3JpdGVWYWx1ZUFmdGVySG9zdFVwZGF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3dyaXRlVmFsdWUodGhpcy5fdmFsdWUoKSk7XHJcbiAgfVxyXG5cclxuICAvLyEgaW5wdXQgZWxlbWVudCBtZXRob2RzXHJcbiAgZ2V0IGNhcmV0UG9zKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXJkSG9zdENtcC5pbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kID8/IHRoaXMuc3RyaW5nVmFsdWUoKS5sZW5ndGg7XHJcbiAgfVxyXG4gIHNldCBjYXJldFBvcyhwb3M6IG51bWJlcikge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLl9hcmRIb3N0Q21wLmlucHV0RWwoKT8ubmF0aXZlRWxlbWVudDtcclxuICAgIGVsPy5zZXRTZWxlY3Rpb25SYW5nZShwb3MsIHBvcyk7XHJcbiAgfVxyXG5cclxuICAvLyEgY29uc3RyYWludHNcclxuICBwcml2YXRlIF9yZW1vdmVEZWNpbWFsUGxhY2VzKHY6IHN0cmluZyB8IG51bWJlciB8IG51bGwpOiBzdHJpbmcgfCBudW1iZXIge1xyXG4gICAgaWYgKCF2KSByZXR1cm4gJyc7XHJcbiAgICBpZiAodGhpcy5fYXJkSG9zdENtcC5hbGxvd0Zsb2F0KCkpIHJldHVybiB2O1xyXG5cclxuICAgIGxldCBudW0gPSBpc051bWJlcih2KSA/IHYgOiBOdW1iZXIodik7XHJcblxyXG4gICAgaWYgKCFpc051bWJlcih2KSAmJiB2Lm1hdGNoKC9bLixdLisvKSkge1xyXG4gICAgICBudW0gPSBOdW1iZXIodik7XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzTmFOKG51bSkpIHJldHVybiBNYXRoLnJvdW5kKG51bSk7XHJcbiAgICByZXR1cm4gdjtcclxuICB9XHJcbiAgcHJpdmF0ZSBfYXBwbHlOdW1iZXJDb25zdHJhaW50KHY6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAoIXYpIHJldHVybiAnJztcclxuXHJcbiAgICBjb25zdCB0cmFuc2Zvcm1lckZuID0gdGhpcy5fYXJkSG9zdENtcC5hbGxvd0Zsb2F0KCkgPyBBcmRUcmFuc2Zvcm1lci5GbG9hdCA6IEFyZFRyYW5zZm9ybWVyLkludGVnZXI7XHJcbiAgICBjb25zdCB7IHRleHQsIGNhcmV0UG9zIH0gPSB0cmFuc2Zvcm1lckZuKFN0cmluZyh2KSwgdGhpcy5zdHJpbmdWYWx1ZSgpLCB0aGlzLmNhcmV0UG9zKTtcclxuICAgIHRoaXMuY2FyZXRQb3MgPSBjYXJldFBvcztcclxuICAgIHJldHVybiB0ZXh0O1xyXG4gIH1cclxuICBwcml2YXRlIF9hcHBseU1pbk1heENvbnN0cmFpbnRzKHY6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXYpIHJldHVybiAnJztcclxuXHJcbiAgICBjb25zdCBudW1lcmljVmFsdWUgPSBOdW1iZXIodik7XHJcbiAgICBpZiAobnVtZXJpY1ZhbHVlID4gdGhpcy5fYXJkSG9zdENtcC5tYXgoKSkgcmV0dXJuIHRoaXMuX2FyZEhvc3RDbXAubWF4KCkudG9TdHJpbmcoKTtcclxuICAgIGlmIChudW1lcmljVmFsdWUgPCB0aGlzLl9hcmRIb3N0Q21wLm1pbigpKSByZXR1cm4gdGhpcy5fYXJkSG9zdENtcC5taW4oKS50b1N0cmluZygpO1xyXG4gICAgcmV0dXJuIHY7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlQW5kQ3JlYXRlUmVnZXgoc3RyOiBzdHJpbmcsIGZsYWdzPzogc3RyaW5nLCBuZWdhdGVkID0gdHJ1ZSk6IFJlZ0V4cCB7XHJcbiAgc3RyID0gc3RyLnJlcGxhY2UoLyhbXFxdXSspL2csICdcXFxcJDEnKTtcclxuICByZXR1cm4gbmV3IFJlZ0V4cChgWyR7bmVnYXRlZCA/ICdeJyA6ICcnfSR7c3RyfV1gLCBmbGFncyk7XHJcbn1cclxuIl19
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9pbnB1dC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFNekUsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUErQixXQUFpQztRQUFqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7UUFFdkQsVUFBSyxHQUFHLE1BQU0sQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBSEMsQ0FBQztJQUtwRSxVQUFVLENBQUMsQ0FBTTtRQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNsQywyQ0FBMkM7WUFDM0MsT0FBTyxDQUFDLElBQUksQ0FDVixJQUFJLEtBQUssQ0FDUCw0REFBNEQsQ0FBQyxjQUFjLE9BQU8sQ0FBQyw2QkFBNkIsQ0FDakgsQ0FDRixDQUFDO1lBQ0YscUJBQXFCO1lBQ3JCLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ1MsV0FBVyxDQUFDLENBQWdCO1FB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QyxHQUFHLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDcEYsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDcEYsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsR0FBVyxFQUFFLEtBQWMsRUFBRSxPQUFPLEdBQUcsSUFBSTtJQUM5RSxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFNpZ25hbCwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNBbnlTdHJpbmcsIGlzRGVmaW5lZCwgaXNOdWxsLCBpc051bWJlciB9IGZyb20gJ3NpbXBsZS1ib29sJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnLi4vdHlwZXMvdXRpbGl0eS50eXBlcyc7XG5pbXBvcnQgeyBBcmRUcmFuc2Zvcm1lciwgUmVnRXhwVHJhbnNmb3JtZXIgfSBmcm9tICcuL2lucHV0LXRyYW5zZm9ybWVycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlSW5wdXRNb2RlbEhvc3Qge1xuICByZWFkb25seSBtYXhMZW5ndGg6IFNpZ25hbDxOdWxsYWJsZTxudW1iZXI+PjtcbiAgcmVhZG9ubHkgdGV4dElucHV0RWw6IFNpZ25hbDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkPjtcbn1cbmV4cG9ydCBjbGFzcyBTaW1wbGVJbnB1dE1vZGVsIHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IF9hcmRIb3N0Q21wOiBTaW1wbGVJbnB1dE1vZGVsSG9zdCkge31cblxuICByZWFkb25seSB2YWx1ZSA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgc3RyaW5nVmFsdWUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMudmFsdWUoKSA/PyAnJyk7XG5cbiAgd3JpdGVWYWx1ZSh2OiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoIWlzQW55U3RyaW5nKHYpICYmICFpc051bGwodikpIHtcbiAgICAgIC8vd2FybiB3aGVuIHVzaW5nIG5vbi1zdHJpbmcvbm9uLW51bGwgdmFsdWVcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgIGBBUkQtV0EwMDIwOiBUcnlpbmcgdG8gc2V0IDxhcmQtc2ltcGxlLWlucHV0PidzIHZhbHVlIHRvIFwiJHt2fVwiIChvZiB0eXBlICR7dHlwZW9mIHZ9KSwgZXhwZWN0ZWQgc3RyaW5nIG9yIG51bGwuYFxuICAgICAgICApXG4gICAgICApO1xuICAgICAgLy9ub3JtYWxpemUgdGhlIHZhbHVlXG4gICAgICB2ID0gdj8udG9TdHJpbmc/LigpID8/IFN0cmluZyh2KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3dyaXRlVmFsdWUodik7XG4gIH1cbiAgcHJvdGVjdGVkIF93cml0ZVZhbHVlKHY6IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcbiAgICAvL2NvbnN0cmFpbnRzXG4gICAgdiA9IHRoaXMuX2FwcGx5TGVuZ3RoVHJhbnNmb3JtZXIodik7XG4gICAgLy91cGRhdGUgdmlld1xuICAgIGNvbnN0IG9sZFZhbCA9IHRoaXMudmFsdWUoKTtcbiAgICB0aGlzLnZhbHVlLnNldCh2KTtcbiAgICB0aGlzLl91cGRhdGVJbnB1dEVsZW1lbnQoKTtcbiAgICByZXR1cm4gb2xkVmFsICE9PSB2O1xuICB9XG4gIHJld3JpdGVWYWx1ZUFmdGVySG9zdFVwZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl93cml0ZVZhbHVlKHRoaXMudmFsdWUoKSk7XG4gIH1cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZS5zZXQobnVsbCk7XG4gICAgdGhpcy5fdXBkYXRlSW5wdXRFbGVtZW50KCk7XG4gIH1cblxuICBfdXBkYXRlSW5wdXRFbGVtZW50KCkge1xuICAgIGNvbnN0IGVsID0gdGhpcy5fYXJkSG9zdENtcC50ZXh0SW5wdXRFbCgpPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghZWwpIHJldHVybjtcbiAgICBlbC52YWx1ZSA9IHRoaXMuc3RyaW5nVmFsdWUoKTtcbiAgfVxuICBnZXQgY2FyZXRQb3MoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fYXJkSG9zdENtcC50ZXh0SW5wdXRFbCgpPy5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCA/PyB0aGlzLnN0cmluZ1ZhbHVlLmxlbmd0aDtcbiAgfVxuICBzZXQgY2FyZXRQb3MocG9zOiBudW1iZXIpIHtcbiAgICB0aGlzLl9hcmRIb3N0Q21wLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UocG9zLCBwb3MpO1xuICB9XG4gIC8vISBjb25zdHJhaW50c1xuICBwcm90ZWN0ZWQgX2FwcGx5TGVuZ3RoVHJhbnNmb3JtZXIodjogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IG1heCA9IHRoaXMuX2FyZEhvc3RDbXAubWF4TGVuZ3RoKCk7XG4gICAgaWYgKCFpc0RlZmluZWQobWF4KSkgcmV0dXJuIHY7XG4gICAgaWYgKCF2IHx8IHYubGVuZ3RoIDw9IG1heCkgcmV0dXJuIHY7XG5cbiAgICB2ID0gdi5zdWJzdHJpbmcoMCwgbWF4KTtcbiAgICB0aGlzLmNhcmV0UG9zID0gbWF4O1xuICAgIHJldHVybiB2O1xuICB9XG59XG5leHBvcnQgaW50ZXJmYWNlIElucHV0TW9kZWxIb3N0IGV4dGVuZHMgU2ltcGxlSW5wdXRNb2RlbEhvc3Qge1xuICBjaGFybGlzdDogU2lnbmFsPFJlZ0V4cCB8IHVuZGVmaW5lZD47XG59XG5leHBvcnQgY2xhc3MgSW5wdXRNb2RlbCBleHRlbmRzIFNpbXBsZUlucHV0TW9kZWwge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX2FyZEhvc3RDbXA6IElucHV0TW9kZWxIb3N0KSB7XG4gICAgc3VwZXIoX2FyZEhvc3RDbXApO1xuICB9XG4gIHByb3RlY3RlZCBvdmVycmlkZSBfd3JpdGVWYWx1ZSh2OiBzdHJpbmcgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgLy90cmFuc2Zvcm1lcnNcbiAgICBpZiAodikge1xuICAgICAgbGV0IHByZXYgPSB0aGlzLnN0cmluZ1ZhbHVlKCk7XG4gICAgICB2ID0gdGhpcy5fYXBwbHlBbGxvd09yRGVueWxpc3RUcmFuc2Zvcm1lcih2LCBwcmV2KTtcbiAgICAgIHByZXYgPSB0aGlzLnN0cmluZ1ZhbHVlKCk7XG4gICAgICB2ID0gdGhpcy5fYXBwbHlMZW5ndGhUcmFuc2Zvcm1lcih2KTtcbiAgICB9XG4gICAgY29uc3Qgb2xkVmFsID0gdGhpcy52YWx1ZSgpO1xuICAgIC8vdXBkYXRlIHZpZXdcbiAgICB0aGlzLnZhbHVlLnNldCh2KTtcbiAgICB0aGlzLl91cGRhdGVJbnB1dEVsZW1lbnQoKTtcbiAgICByZXR1cm4gb2xkVmFsICE9PSB2O1xuICB9XG5cbiAgc2V0U2VsZWN0aW9uKGZyb206IG51bWJlciB8IG51bGwsIHRvOiBudW1iZXIgfCBudWxsKTogdm9pZDtcbiAgc2V0U2VsZWN0aW9uKGZyb206IG51bWJlciB8IG51bGwsIHRvPzogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgIHRvID0gdG8gPz8gdGhpcy52YWx1ZSgpPy5sZW5ndGggPz8gSW5maW5pdHk7XG4gICAgdGhpcy5fYXJkSG9zdENtcC50ZXh0SW5wdXRFbCgpPy5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKGZyb20sIHRvKTtcbiAgfVxuICAvLyogY29uc3RyYWludHNcbiAgcHJvdGVjdGVkIF9hcHBseUFsbG93T3JEZW55bGlzdFRyYW5zZm9ybWVyKHY6IHN0cmluZywgcHJldjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBjaGFybGlzdCA9IHRoaXMuX2FyZEhvc3RDbXAuY2hhcmxpc3QoKTtcbiAgICBpZiAoIWNoYXJsaXN0IHx8ICF2KSByZXR1cm4gdjtcbiAgICBjb25zdCB7IHRleHQsIGNhcmV0UG9zIH0gPSBuZXcgUmVnRXhwVHJhbnNmb3JtZXIoY2hhcmxpc3QpLmFwcGx5KHYsIHByZXYsIHRoaXMuY2FyZXRQb3MpO1xuICAgIHRoaXMuY2FyZXRQb3MgPSBjYXJldFBvcztcbiAgICByZXR1cm4gdGV4dDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE51bWJlcklucHV0TW9kZWxIb3N0IHtcbiAgcmVhZG9ubHkgbWF4OiBTaWduYWw8bnVtYmVyPjtcbiAgcmVhZG9ubHkgbWluOiBTaWduYWw8bnVtYmVyPjtcbiAgcmVhZG9ubHkgYWxsb3dGbG9hdDogU2lnbmFsPGJvb2xlYW4+O1xuICByZWFkb25seSBpbnB1dEVsOiBTaWduYWw8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiB8IHVuZGVmaW5lZD47XG59XG5leHBvcnQgY2xhc3MgTnVtYmVySW5wdXRNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBfYXJkSG9zdENtcDogTnVtYmVySW5wdXRNb2RlbEhvc3QpIHt9XG5cbiAgLy8hIHZhbHVlIHNldHRlcnMvZ2V0dGVyc1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3ZhbHVlID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSB2YWx1ZSA9IHRoaXMuX3ZhbHVlLmFzUmVhZG9ubHkoKTtcbiAgcmVhZG9ubHkgc3RyaW5nVmFsdWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl92YWx1ZSgpID8/ICcnKTtcbiAgcmVhZG9ubHkgbnVtYmVyVmFsdWUgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5fdmFsdWUoKSA9PT0gbnVsbCA/IG51bGwgOiBOdW1iZXIodGhpcy5fdmFsdWUoKSkpKTtcblxuICBzZXRWYWx1ZSh2OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3Qgc3RyaW5nViA9IGlzTnVtYmVyKHYpID8gU3RyaW5nKHYpIDogdjtcbiAgICB0aGlzLl92YWx1ZS5zZXQoc3RyaW5nVik7XG4gICAgdGhpcy5fdXBkYXRlSW5wdXRFbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlSW5wdXRFbCgpOiB2b2lkIHtcbiAgICBjb25zdCBzdHJpbmdWID0gdGhpcy5zdHJpbmdWYWx1ZSgpO1xuICAgIGNvbnN0IGVsID0gdGhpcy5fYXJkSG9zdENtcC5pbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuXG4gICAgY29uc3QgY2FyZXRQb3MgPSB0aGlzLmNhcmV0UG9zO1xuICAgIGVsLnZhbHVlID0gc3RyaW5nVjtcbiAgICB0aGlzLmNhcmV0UG9zID0gY2FyZXRQb3M7XG4gIH1cblxuICAvLyEgd3JpdGUgdmFsdWUgaGFuZGxlcnNcbiAgd3JpdGVWYWx1ZSh2OiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoIWlzTnVtYmVyKHYpICYmICFpc0FueVN0cmluZyh2KSAmJiAhaXNOdWxsKHYpKSB7XG4gICAgICAvL3dhcm4gd2hlbiB1c2luZyBub24tc3RyaW5nL25vbi1udWxsIHZhbHVlXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIG5ldyBFcnJvcihgQVJELVdBMDA3MDogVHJ5aW5nIHRvIHNldCA8YXJkLW51bWJlci1pbnB1dD4ncyB2YWx1ZSB0byBcIiR7dHlwZW9mIHZ9XCIsIGV4cGVjdGVkIHN0cmluZywgbnVtYmVyLCBvciBudWxsLmApXG4gICAgICApO1xuICAgICAgLy9ub3JtYWxpemUgdGhlIHZhbHVlXG4gICAgICB2ID0gdj8udG9TdHJpbmc/LigpID8/IFN0cmluZyh2KTtcbiAgICB9XG4gICAgdiA9IFN0cmluZyh2KTtcbiAgICByZXR1cm4gdGhpcy5fd3JpdGVWYWx1ZSh2KTtcbiAgfVxuICBwcm90ZWN0ZWQgX3dyaXRlVmFsdWUodjogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIC8vY29uc3RyYWludHNcbiAgICBpZiAodikge1xuICAgICAgdiA9IHRoaXMuX3JlbW92ZURlY2ltYWxQbGFjZXModik7XG4gICAgICB2ID0gdGhpcy5fYXBwbHlOdW1iZXJDb25zdHJhaW50KHYpO1xuICAgICAgdiA9IHRoaXMuX2FwcGx5TWluTWF4Q29uc3RyYWludHModik7XG4gICAgfVxuICAgIC8vdXBkYXRlIHZpZXdcbiAgICBjb25zdCBvbGRWYWwgPSB0aGlzLl92YWx1ZSgpO1xuICAgIHRoaXMuc2V0VmFsdWUodik7XG4gICAgcmV0dXJuIG9sZFZhbCAhPT0gdjtcbiAgfVxuICByZXdyaXRlVmFsdWVBZnRlckhvc3RVcGRhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5fd3JpdGVWYWx1ZSh0aGlzLl92YWx1ZSgpKTtcbiAgfVxuXG4gIC8vISBpbnB1dCBlbGVtZW50IG1ldGhvZHNcbiAgZ2V0IGNhcmV0UG9zKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2FyZEhvc3RDbXAuaW5wdXRFbCgpPy5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCA/PyB0aGlzLnN0cmluZ1ZhbHVlKCkubGVuZ3RoO1xuICB9XG4gIHNldCBjYXJldFBvcyhwb3M6IG51bWJlcikge1xuICAgIGNvbnN0IGVsID0gdGhpcy5fYXJkSG9zdENtcC5pbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgZWw/LnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcbiAgfVxuXG4gIC8vISBjb25zdHJhaW50c1xuICBwcml2YXRlIF9yZW1vdmVEZWNpbWFsUGxhY2VzKHY6IHN0cmluZyB8IG51bWJlciB8IG51bGwpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgIGlmICghdikgcmV0dXJuICcnO1xuICAgIGlmICh0aGlzLl9hcmRIb3N0Q21wLmFsbG93RmxvYXQoKSkgcmV0dXJuIHY7XG5cbiAgICBsZXQgbnVtID0gaXNOdW1iZXIodikgPyB2IDogTnVtYmVyKHYpO1xuXG4gICAgaWYgKCFpc051bWJlcih2KSAmJiB2Lm1hdGNoKC9bLixdLisvKSkge1xuICAgICAgbnVtID0gTnVtYmVyKHYpO1xuICAgIH1cbiAgICBpZiAoIWlzTmFOKG51bSkpIHJldHVybiBNYXRoLnJvdW5kKG51bSk7XG4gICAgcmV0dXJuIHY7XG4gIH1cbiAgcHJpdmF0ZSBfYXBwbHlOdW1iZXJDb25zdHJhaW50KHY6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKCF2KSByZXR1cm4gJyc7XG5cbiAgICBjb25zdCB0cmFuc2Zvcm1lckZuID0gdGhpcy5fYXJkSG9zdENtcC5hbGxvd0Zsb2F0KCkgPyBBcmRUcmFuc2Zvcm1lci5GbG9hdCA6IEFyZFRyYW5zZm9ybWVyLkludGVnZXI7XG4gICAgY29uc3QgeyB0ZXh0LCBjYXJldFBvcyB9ID0gdHJhbnNmb3JtZXJGbihTdHJpbmcodiksIHRoaXMuc3RyaW5nVmFsdWUoKSwgdGhpcy5jYXJldFBvcyk7XG4gICAgdGhpcy5jYXJldFBvcyA9IGNhcmV0UG9zO1xuICAgIHJldHVybiB0ZXh0O1xuICB9XG4gIHByaXZhdGUgX2FwcGx5TWluTWF4Q29uc3RyYWludHModjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXYpIHJldHVybiAnJztcblxuICAgIGNvbnN0IG51bWVyaWNWYWx1ZSA9IE51bWJlcih2KTtcbiAgICBpZiAobnVtZXJpY1ZhbHVlID4gdGhpcy5fYXJkSG9zdENtcC5tYXgoKSkgcmV0dXJuIHRoaXMuX2FyZEhvc3RDbXAubWF4KCkudG9TdHJpbmcoKTtcbiAgICBpZiAobnVtZXJpY1ZhbHVlIDwgdGhpcy5fYXJkSG9zdENtcC5taW4oKSkgcmV0dXJuIHRoaXMuX2FyZEhvc3RDbXAubWluKCkudG9TdHJpbmcoKTtcbiAgICByZXR1cm4gdjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlQW5kQ3JlYXRlUmVnZXgoc3RyOiBzdHJpbmcsIGZsYWdzPzogc3RyaW5nLCBuZWdhdGVkID0gdHJ1ZSk6IFJlZ0V4cCB7XG4gIHN0ciA9IHN0ci5yZXBsYWNlKC8oW1xcXV0rKS9nLCAnXFxcXCQxJyk7XG4gIHJldHVybiBuZXcgUmVnRXhwKGBbJHtuZWdhdGVkID8gJ14nIDogJyd9JHtzdHJ9XWAsIGZsYWdzKTtcbn1cbiJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export * from './number-input.module';
|
|
2
1
|
export * from './number-input.component';
|
|
2
|
+
export * from './number-input.defaults';
|
|
3
3
|
export * from './number-input.directives';
|
|
4
|
-
|
|
4
|
+
export * from './number-input.module';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9udW1iZXItaW5wdXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbnVtYmVyLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL251bWJlci1pbnB1dC5kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL251bWJlci1pbnB1dC5kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbnVtYmVyLWlucHV0Lm1vZHVsZSc7XG4iXX0=
|