@ardium-ui/ui 1.0.2 → 2.0.1
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 +28 -42
- package/esm2022/lib/_internal/clear-button/clear-button.component.mjs +5 -5
- package/esm2022/lib/_internal/clear-button/clear-button.module.mjs +4 -4
- package/esm2022/lib/_internal/disablable-component.mjs +24 -22
- package/esm2022/lib/_internal/focusable-component.mjs +12 -25
- package/esm2022/lib/_internal/item-storages/dropdown-item-storage.mjs +172 -169
- package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +115 -120
- package/esm2022/lib/_internal/item-storages/simplest-item-storage.mjs +56 -53
- package/esm2022/lib/_internal/models/pagination.model.mjs +72 -106
- package/esm2022/lib/_internal/ngmodel-component.mjs +5 -5
- package/esm2022/lib/_internal/queue.mjs +1 -1
- package/esm2022/lib/_internal/selectable-list-component.mjs +74 -98
- package/esm2022/lib/badge/badge.directive.mjs +70 -99
- package/esm2022/lib/badge/badge.module.mjs +4 -4
- package/esm2022/lib/badge/index.mjs +4 -0
- package/esm2022/lib/buttons/_button-base.mjs +13 -35
- package/esm2022/lib/buttons/button/button.component.mjs +22 -37
- package/esm2022/lib/buttons/button/button.module.mjs +4 -4
- package/esm2022/lib/buttons/button/index.mjs +3 -0
- package/esm2022/lib/buttons/fab/fab.component.mjs +16 -28
- package/esm2022/lib/buttons/fab/fab.module.mjs +4 -4
- package/esm2022/lib/buttons/fab/index.mjs +3 -0
- package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +17 -25
- package/esm2022/lib/buttons/icon-button/icon-button.module.mjs +4 -4
- package/esm2022/lib/buttons/icon-button/index.mjs +3 -0
- package/esm2022/lib/card/card.children.mjs +32 -33
- package/esm2022/lib/card/card.component.mjs +14 -17
- package/esm2022/lib/card/card.module.mjs +4 -4
- package/esm2022/lib/card/index.mjs +5 -0
- package/esm2022/lib/checkbox/checkbox.component.mjs +33 -46
- package/esm2022/lib/checkbox/checkbox.module.mjs +4 -4
- package/esm2022/lib/checkbox/index.mjs +4 -0
- package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +31 -57
- package/esm2022/lib/checkbox-list/checkbox-list.module.mjs +4 -4
- package/esm2022/lib/checkbox-list/index.mjs +4 -0
- package/esm2022/lib/chip/chip.component.mjs +22 -42
- package/esm2022/lib/chip/chip.module.mjs +4 -4
- package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +28 -53
- package/esm2022/lib/chip/index.mjs +5 -0
- package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +25 -49
- package/esm2022/lib/color/color-display/color-display.component.mjs +15 -32
- package/esm2022/lib/color/color-display/color-display.module.mjs +4 -4
- package/esm2022/lib/color/color-display/index.mjs +4 -0
- package/esm2022/lib/color/color-picker/color-picker.types.mjs +1 -1
- package/esm2022/lib/dialog/dialog.component.mjs +54 -130
- package/esm2022/lib/dialog/dialog.directives.mjs +3 -3
- package/esm2022/lib/dialog/dialog.module.mjs +4 -4
- package/esm2022/lib/dialog/dialog.types.mjs +1 -1
- package/esm2022/lib/dialog/index.mjs +5 -0
- package/esm2022/lib/divider/divider.component.mjs +9 -14
- package/esm2022/lib/divider/divider.module.mjs +4 -4
- package/esm2022/lib/divider/index.mjs +3 -0
- package/esm2022/lib/dropdown-panel/dropdown-panel.component.mjs +40 -59
- package/esm2022/lib/dropdown-panel/dropdown-panel.module.mjs +4 -4
- package/esm2022/lib/dropdown-panel/index.mjs +4 -0
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +12 -17
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.directives.mjs +9 -9
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.module.mjs +6 -6
- package/esm2022/lib/file-inputs/file-drop-area/index.mjs +4 -0
- package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +24 -50
- package/esm2022/lib/file-inputs/file-input/file-input.directives.mjs +18 -18
- package/esm2022/lib/file-inputs/file-input/file-input.module.mjs +4 -4
- package/esm2022/lib/file-inputs/file-input/index.mjs +4 -0
- package/esm2022/lib/file-inputs/file-input-base.mjs +38 -72
- package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +20 -47
- package/esm2022/lib/form-field-frame/form-field-frame.directives.mjs +6 -6
- package/esm2022/lib/form-field-frame/form-field-frame.module.mjs +4 -4
- package/esm2022/lib/form-field-frame/index.mjs +4 -0
- package/esm2022/lib/icon/icon.component.mjs +32 -67
- package/esm2022/lib/icon/icon.module.mjs +4 -4
- package/esm2022/lib/icon/icon.pipe.mjs +3 -3
- package/esm2022/lib/icon/index.mjs +4 -0
- package/esm2022/lib/inputs/color-input/color-input.directives.mjs +24 -24
- package/esm2022/lib/inputs/color-input/color-input.types.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +65 -115
- package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +83 -92
- package/esm2022/lib/inputs/digit-input/digit-input.module.mjs +4 -4
- 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 +4 -0
- package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +59 -122
- package/esm2022/lib/inputs/hex-input/hex-input.directives.mjs +9 -9
- package/esm2022/lib/inputs/hex-input/hex-input.module.mjs +24 -8
- package/esm2022/lib/inputs/hex-input/index.mjs +4 -0
- package/esm2022/lib/inputs/hex-input.model.mjs +24 -33
- package/esm2022/lib/inputs/input/index.mjs +4 -0
- package/esm2022/lib/inputs/input/input.component.mjs +95 -154
- package/esm2022/lib/inputs/input/input.directives.mjs +16 -16
- package/esm2022/lib/inputs/input/input.module.mjs +21 -7
- package/esm2022/lib/inputs/input-transformers.mjs +6 -6
- package/esm2022/lib/inputs/input-utils.mjs +75 -94
- package/esm2022/lib/inputs/number-input/index.mjs +4 -0
- package/esm2022/lib/inputs/number-input/number-input.component.mjs +106 -170
- package/esm2022/lib/inputs/number-input/number-input.directives.mjs +3 -3
- package/esm2022/lib/inputs/number-input/number-input.module.mjs +4 -4
- package/esm2022/lib/inputs/password-input/index.mjs +5 -0
- package/esm2022/lib/inputs/password-input/password-input.component.mjs +74 -144
- package/esm2022/lib/inputs/password-input/password-input.directives.mjs +12 -12
- package/esm2022/lib/inputs/password-input/password-input.module.mjs +4 -4
- package/esm2022/lib/inputs/password-input/password-input.types.mjs +1 -1
- package/esm2022/lib/inputs/simple-input/index.mjs +4 -0
- package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +57 -110
- package/esm2022/lib/inputs/simple-input/simple-input.directives.mjs +9 -9
- package/esm2022/lib/inputs/simple-input/simple-input.module.mjs +4 -4
- package/esm2022/lib/kbd/index.mjs +4 -0
- package/esm2022/lib/kbd/kbd.component.mjs +15 -29
- package/esm2022/lib/kbd/kbd.module.mjs +4 -4
- package/esm2022/lib/kbd/kbd.pipe.mjs +3 -3
- package/esm2022/lib/kbd-shortcut/index.mjs +3 -0
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.component.mjs +23 -40
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.module.mjs +4 -4
- package/esm2022/lib/modal/index.mjs +3 -0
- package/esm2022/lib/modal/modal.component.mjs +42 -83
- package/esm2022/lib/modal/modal.module.mjs +4 -4
- package/esm2022/lib/option/index.mjs +3 -0
- package/esm2022/lib/option/option.component.mjs +24 -46
- package/esm2022/lib/option/option.module.mjs +4 -4
- package/esm2022/lib/progress-bar/index.mjs +5 -0
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +43 -81
- package/esm2022/lib/progress-bar/progress-bar.directive.mjs +3 -3
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +4 -4
- package/esm2022/lib/progress-bar/progress-bar.types.mjs +1 -1
- package/esm2022/lib/progress-circle/index.mjs +5 -0
- package/esm2022/lib/progress-circle/progress-circle.component.mjs +33 -78
- package/esm2022/lib/progress-circle/progress-circle.directive.mjs +3 -3
- 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 -0
- package/esm2022/lib/radio/radio/radio.component.mjs +16 -25
- package/esm2022/lib/radio/radio-group.component.mjs +71 -85
- package/esm2022/lib/radio/radio.module.mjs +4 -4
- package/esm2022/lib/search-functions.mjs +7 -7
- package/esm2022/lib/segment/index.mjs +5 -0
- package/esm2022/lib/segment/segment.component.mjs +70 -137
- package/esm2022/lib/segment/segment.directives.mjs +4 -4
- package/esm2022/lib/segment/segment.module.mjs +4 -4
- package/esm2022/lib/select/index.mjs +5 -0
- package/esm2022/lib/select/select.component.mjs +348 -655
- package/esm2022/lib/select/select.directive.mjs +46 -46
- package/esm2022/lib/select/select.module.mjs +4 -4
- package/esm2022/lib/select/select.types.mjs +1 -1
- package/esm2022/lib/slide-toggle/index.mjs +4 -0
- package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +19 -24
- package/esm2022/lib/slide-toggle/slide-toggle.module.mjs +4 -4
- package/esm2022/lib/slide-toggle/slide-toggle.types.mjs +5 -0
- package/esm2022/lib/slider/abstract-slider.mjs +111 -200
- package/esm2022/lib/slider/index.mjs +7 -0
- package/esm2022/lib/slider/range-slider/range-slider.component.mjs +26 -23
- package/esm2022/lib/slider/range-slider/range-slider.module.mjs +4 -4
- package/esm2022/lib/slider/slider.component.mjs +13 -10
- package/esm2022/lib/slider/slider.directive.mjs +3 -3
- package/esm2022/lib/slider/slider.module.mjs +7 -7
- 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 +8 -8
- package/esm2022/lib/snackbar/snackbar.service.mjs +13 -12
- package/esm2022/lib/snackbar/snackbar.types.mjs +1 -1
- package/esm2022/lib/spinner/index.mjs +3 -0
- package/esm2022/lib/spinner/spinner.component.mjs +9 -13
- package/esm2022/lib/spinner/spinner.module.mjs +4 -4
- package/esm2022/lib/star/index.mjs +4 -0
- package/esm2022/lib/star/star-button/index.mjs +3 -0
- package/esm2022/lib/star/star-button/star-button.component.mjs +17 -26
- package/esm2022/lib/star/star-button/star-button.module.mjs +4 -4
- package/esm2022/lib/star/star-display/index.mjs +3 -0
- package/esm2022/lib/star/star-display/star-display.component.mjs +48 -55
- package/esm2022/lib/star/star-display/star-display.module.mjs +4 -4
- package/esm2022/lib/star/star-input/index.mjs +3 -0
- package/esm2022/lib/star/star-input/star-input.component.mjs +70 -106
- package/esm2022/lib/star/star-input/star-input.module.mjs +4 -4
- package/esm2022/lib/star/star.component.mjs +12 -20
- package/esm2022/lib/star/star.module.mjs +4 -4
- package/esm2022/lib/statebox/index.mjs +3 -0
- package/esm2022/lib/statebox/statebox.component.mjs +64 -102
- package/esm2022/lib/statebox/statebox.module.mjs +4 -4
- package/esm2022/lib/statebox/statebox.types.mjs +1 -1
- package/esm2022/lib/tabber/index.mjs +4 -0
- package/esm2022/lib/tabber/tab/tab.component.mjs +42 -0
- package/esm2022/lib/tabber/tabber.component.mjs +83 -0
- package/esm2022/lib/tabber/tabber.module.mjs +19 -0
- package/esm2022/lib/table/index.mjs +5 -0
- package/esm2022/lib/table/table-item-storage.mjs +204 -200
- package/esm2022/lib/table/table.component.mjs +184 -304
- package/esm2022/lib/table/table.directives.mjs +19 -21
- package/esm2022/lib/table/table.module.mjs +4 -4
- package/esm2022/lib/table/utils.mjs +1 -1
- package/esm2022/lib/table-from-csv/index.mjs +3 -0
- package/esm2022/lib/table-from-csv/table-from-csv.component.mjs +85 -29
- package/esm2022/lib/table-from-csv/table-from-csv.module.mjs +4 -4
- package/esm2022/lib/table-pagination/index.mjs +4 -0
- package/esm2022/lib/table-pagination/table-pagination.component.mjs +46 -114
- package/esm2022/lib/table-pagination/table-pagination.module.mjs +4 -4
- package/esm2022/lib/types/item-storage.types.mjs +1 -1
- package/esm2022/lib/types/utility.types.mjs +2 -2
- package/esm2022/public-api.mjs +58 -182
- package/fesm2022/ardium-ui-ui.mjs +7847 -11692
- package/fesm2022/ardium-ui-ui.mjs.map +1 -1
- package/lib/_internal/boolean-component.d.ts +8 -9
- package/lib/_internal/clear-button/clear-button.component.d.ts +1 -1
- package/lib/_internal/disablable-component.d.ts +12 -7
- package/lib/_internal/focusable-component.d.ts +5 -7
- package/lib/_internal/item-storages/dropdown-item-storage.d.ts +43 -41
- package/lib/_internal/item-storages/simple-item-storage.d.ts +28 -25
- package/lib/_internal/item-storages/simplest-item-storage.d.ts +14 -9
- package/lib/_internal/models/pagination.model.d.ts +38 -42
- package/lib/_internal/ngmodel-component.d.ts +1 -1
- package/lib/_internal/selectable-list-component.d.ts +30 -30
- package/lib/badge/badge.directive.d.ts +15 -20
- package/lib/badge/index.d.ts +3 -0
- package/lib/buttons/_button-base.d.ts +9 -12
- package/lib/buttons/button/button.component.d.ts +6 -8
- package/lib/buttons/button/index.d.ts +2 -0
- package/lib/buttons/fab/fab.component.d.ts +4 -6
- package/lib/buttons/fab/index.d.ts +2 -0
- package/lib/buttons/icon-button/icon-button.component.d.ts +6 -7
- package/lib/buttons/icon-button/index.d.ts +2 -0
- package/lib/card/card.children.d.ts +4 -3
- package/lib/card/card.component.d.ts +5 -4
- package/lib/card/index.d.ts +4 -0
- package/lib/checkbox/checkbox.component.d.ts +8 -12
- package/lib/checkbox/index.d.ts +3 -0
- package/lib/checkbox-list/checkbox-list.component.d.ts +22 -21
- package/lib/checkbox-list/index.d.ts +3 -0
- package/lib/chip/chip.component.d.ts +8 -10
- package/lib/chip/deletable-chip/deletable-chip.component.d.ts +11 -14
- package/lib/chip/index.d.ts +4 -0
- package/lib/chip/selectable-chip/selectable-chip.component.d.ts +10 -12
- package/lib/color/color-display/color-display.component.d.ts +6 -9
- package/lib/color/color-display/index.d.ts +3 -0
- package/lib/color/color-picker/color-picker.types.d.ts +4 -4
- package/lib/dialog/dialog.component.d.ts +25 -35
- package/lib/dialog/dialog.types.d.ts +2 -2
- package/lib/dialog/index.d.ts +4 -0
- package/lib/divider/divider.component.d.ts +3 -4
- package/lib/divider/index.d.ts +2 -0
- package/lib/dropdown-panel/dropdown-panel.component.d.ts +17 -20
- package/lib/dropdown-panel/index.d.ts +3 -0
- package/lib/file-inputs/file-drop-area/file-drop-area.component.d.ts +5 -4
- package/lib/file-inputs/file-drop-area/index.d.ts +3 -0
- package/lib/file-inputs/file-input/file-input.component.d.ts +13 -17
- package/lib/file-inputs/file-input/index.d.ts +3 -0
- package/lib/file-inputs/file-input-base.d.ts +13 -18
- package/lib/form-field-frame/form-field-frame.component.d.ts +12 -16
- package/lib/form-field-frame/index.d.ts +3 -0
- package/lib/icon/icon.component.d.ts +10 -19
- package/lib/icon/index.d.ts +3 -0
- package/lib/inputs/color-input/color-input.types.d.ts +2 -2
- package/lib/inputs/digit-input/digit-input.component.d.ts +22 -30
- package/lib/inputs/digit-input/digit-input.model.d.ts +8 -12
- package/lib/inputs/digit-input/digit-input.types.d.ts +4 -4
- package/lib/inputs/digit-input/digit-input.utils.d.ts +4 -5
- package/lib/inputs/digit-input/index.d.ts +3 -0
- package/lib/inputs/hex-input/hex-input.component.d.ts +32 -38
- package/lib/inputs/hex-input/index.d.ts +3 -0
- package/lib/inputs/hex-input.model.d.ts +10 -11
- package/lib/inputs/input/index.d.ts +3 -0
- package/lib/inputs/input/input.component.d.ts +34 -40
- package/lib/inputs/input/input.directives.d.ts +3 -3
- package/lib/inputs/input-utils.d.ts +24 -27
- package/lib/inputs/number-input/index.d.ts +3 -0
- package/lib/inputs/number-input/number-input.component.d.ts +38 -48
- package/lib/inputs/password-input/index.d.ts +4 -0
- package/lib/inputs/password-input/password-input.component.d.ts +28 -40
- package/lib/inputs/password-input/password-input.types.d.ts +2 -2
- package/lib/inputs/simple-input/index.d.ts +3 -0
- package/lib/inputs/simple-input/simple-input.component.d.ts +30 -35
- package/lib/kbd/index.d.ts +3 -0
- package/lib/kbd/kbd.component.d.ts +6 -8
- package/lib/kbd-shortcut/index.d.ts +2 -0
- package/lib/kbd-shortcut/kbd-shortcut.component.d.ts +7 -10
- package/lib/modal/index.d.ts +2 -0
- package/lib/modal/modal.component.d.ts +22 -30
- package/lib/option/index.d.ts +2 -0
- package/lib/option/option.component.d.ts +11 -16
- package/lib/progress-bar/index.d.ts +4 -0
- package/lib/progress-bar/progress-bar.component.d.ts +14 -20
- package/lib/progress-bar/progress-bar.types.d.ts +2 -2
- package/lib/progress-circle/index.d.ts +4 -0
- package/lib/progress-circle/progress-circle.component.d.ts +12 -20
- package/lib/progress-circle/progress-circle.types.d.ts +2 -2
- package/lib/radio/index.d.ts +3 -0
- package/lib/radio/radio/radio.component.d.ts +7 -8
- package/lib/radio/radio-group.component.d.ts +13 -16
- package/lib/segment/index.d.ts +4 -0
- package/lib/segment/segment.component.d.ts +22 -34
- package/lib/segment/segment.directives.d.ts +2 -3
- package/lib/select/index.d.ts +4 -0
- package/lib/select/select.component.d.ts +114 -160
- package/lib/select/select.directive.d.ts +3 -3
- package/lib/select/select.types.d.ts +2 -76
- package/lib/slide-toggle/index.d.ts +3 -0
- package/lib/slide-toggle/slide-toggle.component.d.ts +9 -7
- package/lib/slide-toggle/slide-toggle.types.d.ts +5 -0
- package/lib/slider/abstract-slider.d.ts +38 -55
- package/lib/slider/index.d.ts +6 -0
- package/lib/slider/range-slider/range-slider.component.d.ts +3 -1
- package/lib/slider/slider.component.d.ts +2 -0
- package/lib/slider/slider.types.d.ts +8 -8
- package/lib/snackbar/snackbar-ref.d.ts +1 -2
- package/lib/snackbar/snackbar.component.d.ts +3 -3
- package/lib/snackbar/snackbar.service.d.ts +2 -2
- package/lib/snackbar/snackbar.types.d.ts +4 -4
- package/lib/spinner/index.d.ts +2 -0
- package/lib/spinner/spinner.component.d.ts +3 -3
- package/lib/star/index.d.ts +3 -0
- package/lib/star/star-button/index.d.ts +2 -0
- package/lib/star/star-button/star-button.component.d.ts +7 -7
- package/lib/star/star-display/index.d.ts +2 -0
- package/lib/star/star-display/star-display.component.d.ts +8 -12
- package/lib/star/star-input/index.d.ts +2 -0
- package/lib/star/star-input/star-input.component.d.ts +17 -22
- package/lib/star/star.component.d.ts +5 -5
- package/lib/statebox/index.d.ts +3 -0
- package/lib/statebox/statebox.component.d.ts +15 -21
- package/lib/statebox/statebox.types.d.ts +12 -8
- package/lib/tabber/index.d.ts +3 -0
- package/lib/tabber/tab/tab.component.d.ts +18 -0
- package/lib/tabber/tabber.component.d.ts +25 -0
- package/lib/tabber/tabber.module.d.ts +9 -0
- package/lib/table/index.d.ts +4 -0
- package/lib/table/table-item-storage.d.ts +70 -58
- package/lib/table/table.component.d.ts +59 -78
- package/lib/table/table.directives.d.ts +4 -3
- package/lib/table-from-csv/index.d.ts +2 -0
- package/lib/table-from-csv/table-from-csv.component.d.ts +46 -9
- package/lib/table-pagination/index.d.ts +3 -0
- package/lib/table-pagination/table-pagination.component.d.ts +21 -30
- package/lib/types/item-storage.types.d.ts +19 -18
- package/lib/types/utility.types.d.ts +2 -1
- package/package.json +8 -9
- package/prebuilt-themes/default/badge.css +5 -5
- package/prebuilt-themes/default/buttons/fab.css +4 -3
- package/prebuilt-themes/default/buttons/fab.css.map +1 -1
- package/prebuilt-themes/default/card.css +7 -7
- package/prebuilt-themes/default/chips.css +3 -8
- package/prebuilt-themes/default/chips.css.map +1 -1
- package/prebuilt-themes/default/core.css +6 -3
- package/prebuilt-themes/default/core.css.map +1 -1
- package/prebuilt-themes/default/inputs/color-input.css +1 -1
- package/prebuilt-themes/default/inputs/digit-input.css +1 -1
- package/prebuilt-themes/default/inputs/file-input.css +139 -2
- package/prebuilt-themes/default/inputs/file-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/hex-input.css +2 -2
- package/prebuilt-themes/default/inputs/input.css +1 -1
- package/prebuilt-themes/default/inputs/search-bar.css +1 -1
- package/prebuilt-themes/default/inputs/simple-input.css +1 -1
- package/prebuilt-themes/default/modal.css +1 -1
- package/prebuilt-themes/default/segment.css +2 -2
- package/prebuilt-themes/default/segment.css.map +1 -1
- package/prebuilt-themes/default/select.css +5 -3
- package/prebuilt-themes/default/select.css.map +1 -1
- package/prebuilt-themes/default/snackbar.css +0 -1
- package/prebuilt-themes/default/snackbar.css.map +1 -1
- package/prebuilt-themes/default/tabber.css +207 -0
- package/prebuilt-themes/default/tabber.css.map +1 -0
- package/public-api.d.ts +43 -136
- package/themes/default/_clear-button.scss +1 -1
- package/themes/default/badge.scss +5 -5
- package/themes/default/buttons/fab.scss +5 -3
- package/themes/default/card.scss +7 -7
- package/themes/default/chips.scss +2 -8
- package/themes/default/core.scss +6 -3
- package/themes/default/inputs/digit-input.scss +1 -1
- package/themes/default/inputs/file-input.scss +8 -1
- package/themes/default/inputs/hex-input.scss +1 -1
- package/themes/default/modal.scss +1 -1
- package/themes/default/segment.scss +2 -1
- package/themes/default/select.scss +4 -2
- package/themes/default/snackbar.scss +0 -2
- package/themes/default/tabber.scss +86 -0
- package/esm2022/lib/calendar/calendar.component.mjs +0 -979
- package/esm2022/lib/calendar/calendar.directives.mjs +0 -107
- package/esm2022/lib/calendar/calendar.helpers.mjs +0 -47
- package/esm2022/lib/calendar/calendar.module.mjs +0 -21
- package/esm2022/lib/calendar/calendar.types.mjs +0 -11
- package/esm2022/lib/color/color-picker/color-picker.component.mjs +0 -484
- package/esm2022/lib/color/color-picker/color-picker.directives.mjs +0 -55
- package/esm2022/lib/color/color-picker/color-picker.module.mjs +0 -43
- package/esm2022/lib/inputs/color-input/color-input.component.mjs +0 -421
- package/esm2022/lib/inputs/color-input/color-input.module.mjs +0 -85
- package/lib/calendar/calendar.component.d.ts +0 -155
- package/lib/calendar/calendar.directives.d.ts +0 -51
- package/lib/calendar/calendar.helpers.d.ts +0 -15
- package/lib/calendar/calendar.module.d.ts +0 -11
- package/lib/calendar/calendar.types.d.ts +0 -80
- package/lib/color/color-picker/color-picker.component.d.ts +0 -125
- package/lib/color/color-picker/color-picker.directives.d.ts +0 -27
- package/lib/color/color-picker/color-picker.module.d.ts +0 -13
- package/lib/inputs/color-input/color-input.component.d.ts +0 -147
- package/lib/inputs/color-input/color-input.module.d.ts +0 -16
|
@@ -1,78 +1,67 @@
|
|
|
1
|
+
import { computed, effect, signal } from '@angular/core';
|
|
1
2
|
import { coerceArrayProperty } from '@ardium-ui/devkit';
|
|
2
|
-
import { isAnyString, isArray,
|
|
3
|
+
import { isAnyString, isArray, isFunction, isNull, isNumber, isRegExp } from 'simple-bool';
|
|
4
|
+
import { DigitInputPrimitiveOption, TransformType, } from './digit-input.types';
|
|
3
5
|
import { DigitInputConfigDataType, _sanitizeRegExpString } from './digit-input.utils';
|
|
4
|
-
import { DigitInputPrimitiveOption, TransformType } from './digit-input.types';
|
|
5
6
|
export class DigitInputModel {
|
|
6
7
|
constructor(_ardHost) {
|
|
7
8
|
this._ardHost = _ardHost;
|
|
8
|
-
this._configArray = [];
|
|
9
|
-
this.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
setConfigArrayData() {
|
|
19
|
-
let inputIndex = 0;
|
|
20
|
-
this._ardHost.configArrayData = this._configArray.map(v => {
|
|
21
|
-
if ('static' in v) {
|
|
9
|
+
this._configArray = signal([]);
|
|
10
|
+
this.configArrayData = computed(() => {
|
|
11
|
+
let inputIndex = 0;
|
|
12
|
+
return this._configArray().map(v => {
|
|
13
|
+
if ('static' in v) {
|
|
14
|
+
return {
|
|
15
|
+
type: DigitInputConfigDataType.Static,
|
|
16
|
+
char: v.static,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
22
19
|
return {
|
|
23
|
-
type: DigitInputConfigDataType.
|
|
24
|
-
|
|
20
|
+
type: DigitInputConfigDataType.Input,
|
|
21
|
+
index: inputIndex++,
|
|
25
22
|
};
|
|
26
|
-
}
|
|
27
|
-
return {
|
|
28
|
-
type: DigitInputConfigDataType.Input,
|
|
29
|
-
index: inputIndex++,
|
|
30
|
-
};
|
|
23
|
+
});
|
|
31
24
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
.
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
return this._stringValueMemo;
|
|
52
|
-
}
|
|
53
|
-
get isValueFull() {
|
|
54
|
-
return isDefined(this.value) && this.value.length === this._configArrayNoStatics.length;
|
|
25
|
+
this._configArrayNoStatics = computed(() => this._configArray().filter(v => !('static' in v)));
|
|
26
|
+
this.isConfigDefined = computed(() => this._configArray().length > 0);
|
|
27
|
+
this.value = signal(null);
|
|
28
|
+
this.stringValue = computed(() => this.value()
|
|
29
|
+
?.map(v => v ?? ' ')
|
|
30
|
+
.join('')
|
|
31
|
+
.trimEnd() ?? '');
|
|
32
|
+
this.isValueFull = computed(() => this.value()?.filter(v => v).length === this._configArrayNoStatics().length);
|
|
33
|
+
//set the value array to be the same length
|
|
34
|
+
effect(() => {
|
|
35
|
+
const length = this.configArrayData().length;
|
|
36
|
+
this.value.update(arr => {
|
|
37
|
+
if (!arr)
|
|
38
|
+
return new Array(length).fill(null);
|
|
39
|
+
if (arr.length >= length)
|
|
40
|
+
return arr.slice(0, length);
|
|
41
|
+
return [...arr, ...new Array(length - arr.length).fill(null)];
|
|
42
|
+
});
|
|
43
|
+
}, { allowSignalWrites: true });
|
|
55
44
|
}
|
|
56
45
|
isDefinedAtIndex(index) {
|
|
57
|
-
return
|
|
46
|
+
return !!this.value()?.[index];
|
|
58
47
|
}
|
|
59
48
|
writeValue(v) {
|
|
60
49
|
if (!isArray(v) && !isAnyString(v) && !isNull(v)) {
|
|
61
|
-
//warn when using non-string
|
|
62
|
-
console.warn(new Error(`ARD-
|
|
50
|
+
//warn when using non-string value
|
|
51
|
+
console.warn(new Error(`ARD-WA0020: Trying to set <ard-digit-input>'s value to "${v}" (of type ${typeof v}), expected string or array of strings.`));
|
|
63
52
|
//normalize the value
|
|
64
53
|
v = v?.toString?.() ?? String(v);
|
|
65
54
|
}
|
|
66
55
|
const vArray = coerceArrayProperty(v);
|
|
67
56
|
const problemIndex = vArray.findIndex(el => !isAnyString(el) || el.length > 1);
|
|
68
|
-
if (problemIndex
|
|
69
|
-
throw new Error(`ARD-
|
|
57
|
+
if (problemIndex !== -1) {
|
|
58
|
+
throw new Error(`ARD-FT0042: Array passed to <ard-digit-input>'s value must only contain strings of length 1 or 0. Element "${vArray[problemIndex]}" at index ${problemIndex} does not match those requirements.`);
|
|
70
59
|
}
|
|
71
60
|
return this._writeValue(vArray);
|
|
72
61
|
}
|
|
73
62
|
_writeValue(v) {
|
|
74
|
-
|
|
75
|
-
this.value
|
|
63
|
+
const oldVal = this.value();
|
|
64
|
+
this.value.set(v && v.map(el => el || null));
|
|
76
65
|
this.validateValueAndUpdate();
|
|
77
66
|
this._updateInputElements();
|
|
78
67
|
return oldVal !== v;
|
|
@@ -80,8 +69,8 @@ export class DigitInputModel {
|
|
|
80
69
|
_updateInputElements() {
|
|
81
70
|
const value = this.value ?? [];
|
|
82
71
|
let i = 0;
|
|
83
|
-
for (const inputEl of this._ardHost.inputs) {
|
|
84
|
-
inputEl.nativeElement.value = value[i] ?? '';
|
|
72
|
+
for (const inputEl of this._ardHost.inputs()) {
|
|
73
|
+
inputEl.nativeElement.value = value()?.[i] ?? '';
|
|
85
74
|
i++;
|
|
86
75
|
}
|
|
87
76
|
}
|
|
@@ -95,10 +84,7 @@ export class DigitInputModel {
|
|
|
95
84
|
let configAsNumber = isAnyString(config) ? Number(config) : null;
|
|
96
85
|
if (isNumber(config) || isNumber(configAsNumber)) {
|
|
97
86
|
configAsNumber = isNumber(config) ? config : configAsNumber;
|
|
98
|
-
this.
|
|
99
|
-
.repeat(configAsNumber)
|
|
100
|
-
.split('')
|
|
101
|
-
.map(() => ({ accept: str => /[0-9]/.test(str) }));
|
|
87
|
+
this._configArray.set(new Array(configAsNumber).fill({ accept: (str) => /[0-9]/.test(str) }));
|
|
102
88
|
return;
|
|
103
89
|
}
|
|
104
90
|
//map a string to an array
|
|
@@ -110,7 +96,7 @@ export class DigitInputModel {
|
|
|
110
96
|
configArr = config;
|
|
111
97
|
}
|
|
112
98
|
//map array to ready objects
|
|
113
|
-
this.
|
|
99
|
+
this._configArray.set(configArr.map((v, i) => {
|
|
114
100
|
if (!isAnyString(v)) {
|
|
115
101
|
if ('accept' in v && !isFunction(v.accept)) {
|
|
116
102
|
const regExp = isRegExp(v.accept) ? v.accept : new RegExp(`[${_sanitizeRegExpString(v.accept)}]`);
|
|
@@ -128,74 +114,79 @@ export class DigitInputModel {
|
|
|
128
114
|
case DigitInputPrimitiveOption.Special:
|
|
129
115
|
return { accept: str => /[!@#$%^&*-_=+/\\.,]/.test(str) };
|
|
130
116
|
default:
|
|
131
|
-
if (configArr.length
|
|
132
|
-
throw new Error(`ARD-
|
|
117
|
+
if (configArr.length === 1) {
|
|
118
|
+
throw new Error(`ARD-NF0043S: <ard-digit-input>'s config is invalid. Expected number or array, got "${v}"`);
|
|
133
119
|
}
|
|
134
|
-
throw new Error(`ARD-
|
|
120
|
+
throw new Error(`ARD-NF0043B: Found invalid string "${v}" in <ard-digit-input>'s config at index ${i}`);
|
|
135
121
|
}
|
|
136
|
-
});
|
|
122
|
+
}));
|
|
137
123
|
}
|
|
138
124
|
//! validate against the config
|
|
139
125
|
validateInputAndSetValue(input, index) {
|
|
140
|
-
if (index < 0 || index > this._configArrayNoStatics.length)
|
|
126
|
+
if (index < 0 || index > this._configArrayNoStatics().length)
|
|
141
127
|
return false;
|
|
128
|
+
let v = this.value();
|
|
142
129
|
//prepare the value array if does not exist
|
|
143
|
-
if (!
|
|
144
|
-
this.value
|
|
130
|
+
if (!v) {
|
|
131
|
+
this.value.set([]);
|
|
145
132
|
}
|
|
133
|
+
v = [];
|
|
146
134
|
//prepare the characters before the current one (to be used in validation)
|
|
147
|
-
const before = this.
|
|
148
|
-
.slice(0, index)
|
|
149
|
-
.map(v => v ?? ' ')
|
|
150
|
-
.join('');
|
|
135
|
+
const before = this.stringValue().charAt(index);
|
|
151
136
|
//remove the old character from the input element
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
input = input.replace(oldVal, '');
|
|
137
|
+
if (before && input.length > 1 && input.match(before)) {
|
|
138
|
+
input = input.replace(before, '');
|
|
155
139
|
}
|
|
156
|
-
//use only the first character (error safety)
|
|
157
|
-
|
|
140
|
+
//use only the first or last character (error safety)
|
|
141
|
+
const firstChar = input.charAt(0);
|
|
142
|
+
const lastChar = input.charAt(input.length - 1);
|
|
143
|
+
input = firstChar === before ? lastChar : firstChar;
|
|
158
144
|
//validate and transform, if necessary
|
|
159
|
-
const inputChar = this._validateSingleChar(input, before, this._configArrayNoStatics[index]);
|
|
145
|
+
const inputChar = this._validateSingleChar(input, before, this._configArrayNoStatics()[index]);
|
|
160
146
|
//get the corresponding HTML input element
|
|
161
|
-
const inputEl = this._ardHost.inputs
|
|
147
|
+
const inputEl = this._ardHost.inputs()[index];
|
|
162
148
|
if (!inputEl) {
|
|
163
|
-
throw new Error("ARD-
|
|
149
|
+
throw new Error("ARD-IS0048: <ard-digit-input>'s value changed, but its corresponding input element could not be found. This is error is fatal to the functioning of Ardium UI. Please report this issue to the creators.");
|
|
164
150
|
}
|
|
165
151
|
//update the input element and value array
|
|
166
|
-
const newVal = inputChar ??
|
|
152
|
+
const newVal = inputChar ?? before;
|
|
167
153
|
inputEl.nativeElement.value = newVal ?? '';
|
|
168
|
-
this.value
|
|
154
|
+
this.value.update(arr => {
|
|
155
|
+
if (!arr)
|
|
156
|
+
arr = [];
|
|
157
|
+
const newArr = [...arr];
|
|
158
|
+
newArr[index] = newVal || null;
|
|
159
|
+
return newArr;
|
|
160
|
+
});
|
|
169
161
|
//return changes marker and validated value
|
|
170
|
-
return [newVal !==
|
|
162
|
+
return [newVal !== before, inputChar];
|
|
171
163
|
}
|
|
172
164
|
validateValueAndUpdate() {
|
|
173
|
-
const v = this.value;
|
|
165
|
+
const v = this.value();
|
|
174
166
|
if (!v)
|
|
175
167
|
return;
|
|
176
168
|
let before = '';
|
|
177
169
|
const newValue = [];
|
|
178
|
-
for (let i = 0; i < Math.min(this._configArrayNoStatics.length, v.length); i++) {
|
|
170
|
+
for (let i = 0; i < Math.min(this._configArrayNoStatics().length, v.length); i++) {
|
|
179
171
|
const char = v[i];
|
|
180
172
|
before += char ?? ' ';
|
|
181
173
|
if (!char) {
|
|
182
174
|
newValue.push(char);
|
|
183
175
|
continue;
|
|
184
176
|
}
|
|
185
|
-
const config = this._configArrayNoStatics[i];
|
|
177
|
+
const config = this._configArrayNoStatics()[i];
|
|
186
178
|
const newChar = this._validateSingleChar(char, before, config);
|
|
187
179
|
newValue.push(newChar);
|
|
188
180
|
}
|
|
189
|
-
this.value
|
|
181
|
+
this.value.set(newValue);
|
|
190
182
|
}
|
|
191
183
|
_validateSingleChar(char, before, config) {
|
|
192
184
|
if (config.readonly) {
|
|
193
|
-
throw new Error(`ARD-
|
|
185
|
+
throw new Error(`ARD-IS0049R: trying to set value of a <ard-digit-input>'s readonly field. This is error is fatal to the functioning of Ardium UI. Please report this issue to the creators.`);
|
|
194
186
|
}
|
|
195
187
|
if (!isFunction(config.accept)) {
|
|
196
188
|
const regExp = isRegExp(config.accept) ? config.accept : new RegExp(`[${_sanitizeRegExpString(config.accept)}]`);
|
|
197
189
|
config.accept = str => regExp.test(str);
|
|
198
|
-
console.warn(`ARD-IS049A: digit-input's value validator encountered an unexpected value of the config's "accept" property. Ardium UI was able to handle this issue, but please report it to the creators.`);
|
|
199
190
|
}
|
|
200
191
|
if (!char)
|
|
201
192
|
return char;
|
|
@@ -203,15 +194,15 @@ export class DigitInputModel {
|
|
|
203
194
|
if (!canAccept)
|
|
204
195
|
return null;
|
|
205
196
|
if (config.transform) {
|
|
206
|
-
if (config.transform
|
|
197
|
+
if (config.transform === TransformType.Lowercase) {
|
|
207
198
|
return char.toLowerCase();
|
|
208
199
|
}
|
|
209
|
-
if (config.transform
|
|
200
|
+
if (config.transform === TransformType.Uppercase) {
|
|
210
201
|
return char.toUpperCase();
|
|
211
202
|
}
|
|
212
|
-
console.warn(`ARD-
|
|
203
|
+
console.warn(`ARD-IS0049T: <ard-digit-input>'s value validator encountered an unexpected value of the config's "transform" property. Ardium UI was able to handle this issue, but please report it to the creators.`);
|
|
213
204
|
}
|
|
214
205
|
return char;
|
|
215
206
|
}
|
|
216
207
|
}
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9kaWdpdC1pbnB1dC9kaWdpdC1pbnB1dC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSx3QkFBd0IsRUFBdUIscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRyxPQUFPLEVBQThELHlCQUF5QixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTNJLE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQW9CLFFBQTZCO1FBQTdCLGFBQVEsR0FBUixRQUFRLENBQXFCO1FBRXpDLGlCQUFZLEdBQXVCLEVBQUUsQ0FBQztRQU10QywwQkFBcUIsR0FBNkIsRUFBRSxDQUFDO1FBcUJyRCxXQUFNLEdBQTZCLElBQUksQ0FBQztRQVN4QyxxQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO0lBdENLLENBQUM7SUFHckQsSUFBWSxXQUFXLENBQUMsR0FBdUI7UUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7UUFDeEIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUE2QixDQUFDO1FBQzNGLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFHRCxrQkFBa0I7UUFDaEIsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hELElBQUksUUFBUSxJQUFJLENBQUMsRUFBRTtnQkFDakIsT0FBTztvQkFDTCxJQUFJLEVBQUUsd0JBQXdCLENBQUMsTUFBTTtvQkFDckMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNO2lCQUNmLENBQUM7YUFDSDtZQUNELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLHdCQUF3QixDQUFDLEtBQUs7Z0JBQ3BDLEtBQUssRUFBRSxVQUFVLEVBQUU7YUFDcEIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBR0QsSUFBWSxLQUFLLENBQUMsQ0FBMkI7UUFDM0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFHRCxJQUFJLFdBQVc7UUFDYixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUNqQyxNQUFNLENBQUMsR0FDTCxJQUFJLENBQUMsS0FBSztnQkFDUixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUM7aUJBQ25CLElBQUksQ0FBQyxFQUFFLENBQUM7aUJBQ1IsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7U0FDM0I7UUFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7SUFDMUYsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQWE7UUFDNUIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxDQUFNO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoRCwyQ0FBMkM7WUFDM0MsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyx5REFBeUQsT0FBTyxDQUFDLHFDQUFxQyxDQUFDLENBQUMsQ0FBQztZQUNoSSxxQkFBcUI7WUFDckIsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNsQztRQUNELE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9FLElBQUksWUFBWSxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQ2IscUhBQXFILFlBQVkscUNBQXFDLENBQ3ZLLENBQUM7U0FDSDtRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ08sV0FBVyxDQUFDLENBQWtCO1FBQ3BDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixPQUFPLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQzFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDN0MsQ0FBQyxFQUFFLENBQUM7U0FDTDtJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsU0FBUyxDQUFDLE1BQXdCO1FBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUNPLFVBQVUsQ0FBQyxNQUF3QjtRQUN6QywrQkFBK0I7UUFDL0IsSUFBSSxjQUFjLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNqRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDaEQsY0FBYyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFlLENBQUM7WUFDN0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHO2lCQUNuQixNQUFNLENBQUMsY0FBYyxDQUFDO2lCQUN0QixLQUFLLENBQUMsRUFBRSxDQUFDO2lCQUNULEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyRCxPQUFPO1NBQ1I7UUFDRCwwQkFBMEI7UUFDMUIsSUFBSSxTQUFnRSxDQUFDO1FBQ3JFLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3ZCLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN6QzthQUFNO1lBQ0wsU0FBUyxHQUFHLE1BQU0sQ0FBQztTQUNwQjtRQUNELDRCQUE0QjtRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDMUMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNsRyxDQUFDLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDcEM7Z0JBQ0QsT0FBTyxDQUFDLENBQUM7YUFDVjtZQUVELFFBQVEsQ0FBQyxFQUFFO2dCQUNULEtBQUsseUJBQXlCLENBQUMsTUFBTTtvQkFDbkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDOUMsS0FBSyx5QkFBeUIsQ0FBQyxNQUFNO29CQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNqRCxLQUFLLHlCQUF5QixDQUFDLFlBQVk7b0JBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BELEtBQUsseUJBQXlCLENBQUMsT0FBTztvQkFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUU1RDtvQkFDRSxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO3dCQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLHFGQUFxRixDQUFDLEdBQUcsQ0FBQyxDQUFDO3FCQUM1RztvQkFDRCxNQUFNLElBQUksS0FBSyxDQUFDLG9FQUFvRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUMzRztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELCtCQUErQjtJQUMvQix3QkFBd0IsQ0FBQyxLQUFhLEVBQUUsS0FBYTtRQUNuRCxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFekUsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDakI7UUFDRCwwRUFBMEU7UUFDMUUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUs7YUFDdEIsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7YUFDZixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO2FBQ2xCLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVaLGlEQUFpRDtRQUNqRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDckQsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ25DO1FBQ0QsNkNBQTZDO1FBQzdDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXhCLHNDQUFzQztRQUN0QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUU3RiwwQ0FBMEM7UUFDMUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixNQUFNLElBQUksS0FBSyxDQUNiLHlNQUF5TSxDQUMxTSxDQUFDO1NBQ0g7UUFDRCwwQ0FBMEM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsU0FBUyxJQUFJLE1BQU0sQ0FBQztRQUNuQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBRTNCLDJDQUEyQztRQUMzQyxPQUFPLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0Qsc0JBQXNCO1FBQ3BCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPO1FBRWYsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sUUFBUSxHQUFzQixFQUFFLENBQUM7UUFDdkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDOUUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDO1lBRXRCLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1QsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEIsU0FBUzthQUNWO1lBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTdDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQy9ELFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEI7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztJQUN4QixDQUFDO0lBQ08sbUJBQW1CLENBQUMsSUFBbUIsRUFBRSxNQUFjLEVBQUUsTUFBOEI7UUFDN0YsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQ2Isc0tBQXNLLENBQ3ZLLENBQUM7U0FDSDtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzlCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqSCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QyxPQUFPLENBQUMsSUFBSSxDQUNWLDZMQUE2TCxDQUM5TCxDQUFDO1NBQ0g7UUFDRCxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXZCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFNUIsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFO1lBQ3BCLElBQUksTUFBTSxDQUFDLFNBQVMsSUFBSSxhQUFhLENBQUMsU0FBUyxFQUFFO2dCQUMvQyxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUMzQjtZQUNELElBQUksTUFBTSxDQUFDLFNBQVMsSUFBSSxhQUFhLENBQUMsU0FBUyxFQUFFO2dCQUMvQyxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUMzQjtZQUNELE9BQU8sQ0FBQyxJQUFJLENBQ1YsZ01BQWdNLENBQ2pNLENBQUM7U0FDSDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VBcnJheVByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xuaW1wb3J0IHsgaXNBbnlTdHJpbmcsIGlzQXJyYXksIGlzRGVmaW5lZCwgaXNGdW5jdGlvbiwgaXNOdWxsLCBpc051bWJlciwgaXNSZWdFeHAgfSBmcm9tICdzaW1wbGUtYm9vbCc7XG5pbXBvcnQgeyBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGUsIERpZ2l0SW5wdXRNb2RlbEhvc3QsIF9zYW5pdGl6ZVJlZ0V4cFN0cmluZyB9IGZyb20gJy4vZGlnaXQtaW5wdXQudXRpbHMnO1xuaW1wb3J0IHsgRGlnaXRJbnB1dEFjY2VwdE9iamVjdCwgRGlnaXRJbnB1dENvbmZpZywgRGlnaXRJbnB1dE9wdGlvbiwgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbiwgVHJhbnNmb3JtVHlwZSB9IGZyb20gJy4vZGlnaXQtaW5wdXQudHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgRGlnaXRJbnB1dE1vZGVsIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXJkSG9zdDogRGlnaXRJbnB1dE1vZGVsSG9zdCkge31cblxuICBwcml2YXRlIF9jb25maWdBcnJheTogRGlnaXRJbnB1dE9wdGlvbltdID0gW107XG4gIHByaXZhdGUgc2V0IGNvbmZpZ0FycmF5KGFycjogRGlnaXRJbnB1dE9wdGlvbltdKSB7XG4gICAgdGhpcy5fY29uZmlnQXJyYXkgPSBhcnI7XG4gICAgdGhpcy5fY29uZmlnQXJyYXlOb1N0YXRpY3MgPSBhcnIuZmlsdGVyKHYgPT4gISgnc3RhdGljJyBpbiB2KSkgYXMgRGlnaXRJbnB1dEFjY2VwdE9iamVjdFtdO1xuICAgIHRoaXMuc2V0Q29uZmlnQXJyYXlEYXRhKCk7XG4gIH1cbiAgcHJpdmF0ZSBfY29uZmlnQXJyYXlOb1N0YXRpY3M6IERpZ2l0SW5wdXRBY2NlcHRPYmplY3RbXSA9IFtdO1xuXG4gIHNldENvbmZpZ0FycmF5RGF0YSgpIHtcbiAgICBsZXQgaW5wdXRJbmRleCA9IDA7XG4gICAgdGhpcy5fYXJkSG9zdC5jb25maWdBcnJheURhdGEgPSB0aGlzLl9jb25maWdBcnJheS5tYXAodiA9PiB7XG4gICAgICBpZiAoJ3N0YXRpYycgaW4gdikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6IERpZ2l0SW5wdXRDb25maWdEYXRhVHlwZS5TdGF0aWMsXG4gICAgICAgICAgY2hhcjogdi5zdGF0aWMsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGUuSW5wdXQsXG4gICAgICAgIGluZGV4OiBpbnB1dEluZGV4KyssXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG4gIGdldCBpc0NvbmZpZ0RlZmluZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZ0FycmF5Lmxlbmd0aCA+IDA7XG4gIH1cblxuICBwcml2YXRlIF92YWx1ZTogKHN0cmluZyB8IG51bGwpW10gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzZXQgdmFsdWUodjogKHN0cmluZyB8IG51bGwpW10gfCBudWxsKSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2O1xuICAgIHRoaXMuX3N0cmluZ1ZhbHVlTWVtbyA9IG51bGw7XG4gIH1cbiAgZ2V0IHZhbHVlKCk6IChzdHJpbmcgfCBudWxsKVtdIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3RyaW5nVmFsdWVNZW1vOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgZ2V0IHN0cmluZ1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgaWYgKGlzTnVsbCh0aGlzLl9zdHJpbmdWYWx1ZU1lbW8pKSB7XG4gICAgICBjb25zdCB2ID1cbiAgICAgICAgdGhpcy52YWx1ZVxuICAgICAgICAgID8ubWFwKHYgPT4gdiA/PyAnICcpXG4gICAgICAgICAgLmpvaW4oJycpXG4gICAgICAgICAgLnRyaW1FbmQoKSA/PyAnJztcbiAgICAgIHRoaXMuX3N0cmluZ1ZhbHVlTWVtbyA9IHY7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9zdHJpbmdWYWx1ZU1lbW87XG4gIH1cblxuICBnZXQgaXNWYWx1ZUZ1bGwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzRGVmaW5lZCh0aGlzLnZhbHVlKSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA9PT0gdGhpcy5fY29uZmlnQXJyYXlOb1N0YXRpY3MubGVuZ3RoO1xuICB9XG5cbiAgaXNEZWZpbmVkQXRJbmRleChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy52YWx1ZT8uW2luZGV4XSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHY6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICghaXNBcnJheSh2KSAmJiAhaXNBbnlTdHJpbmcodikgJiYgIWlzTnVsbCh2KSkge1xuICAgICAgLy93YXJuIHdoZW4gdXNpbmcgbm9uLXN0cmluZy9ub24tbnVsbCB2YWx1ZVxuICAgICAgY29uc29sZS53YXJuKG5ldyBFcnJvcihgQVJELVdBMDQxOiBUcnlpbmcgdG8gc2V0IDxhcmQtZGlnaXQtaW5wdXQ+J3MgdmFsdWUgdG8gJHt0eXBlb2Ygdn0sIGV4cGVjdGVkIHN0cmluZyBvciBhcnJheSBzdHJpbmdzLmApKTtcbiAgICAgIC8vbm9ybWFsaXplIHRoZSB2YWx1ZVxuICAgICAgdiA9IHY/LnRvU3RyaW5nPy4oKSA/PyBTdHJpbmcodik7XG4gICAgfVxuICAgIGNvbnN0IHZBcnJheSA9IGNvZXJjZUFycmF5UHJvcGVydHkodik7XG4gICAgY29uc3QgcHJvYmxlbUluZGV4ID0gdkFycmF5LmZpbmRJbmRleChlbCA9PiAhaXNBbnlTdHJpbmcoZWwpIHx8IGVsLmxlbmd0aCA+IDEpO1xuICAgIGlmIChwcm9ibGVtSW5kZXggIT0gLTEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEFSRC1GVDA0MjogQXJyYXkgcGFzc2VkIHRvIDxhcmQtZGlnaXQtaW5wdXQ+J3MgdmFsdWUgbXVzdCBvbmx5IGNvbnRhaW4gc3RyaW5ncyBvZiBsZW5ndGggMSBvciAwLiBFbGVtZW50IGF0IGluZGV4ICR7cHJvYmxlbUluZGV4fSBkb2VzIG5vdCBtYXRjaCB0aG9zZSByZXF1aXJlbWVudHMuYFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3dyaXRlVmFsdWUodkFycmF5KTtcbiAgfVxuICBwcml2YXRlIF93cml0ZVZhbHVlKHY6IHN0cmluZ1tdIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIGxldCBvbGRWYWwgPSB0aGlzLnZhbHVlO1xuICAgIHRoaXMudmFsdWUgPSB2ICYmIHYubWFwKGVsID0+IGVsIHx8IG51bGwpO1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZUFuZFVwZGF0ZSgpO1xuICAgIHRoaXMuX3VwZGF0ZUlucHV0RWxlbWVudHMoKTtcbiAgICByZXR1cm4gb2xkVmFsICE9PSB2O1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlSW5wdXRFbGVtZW50cygpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUgPz8gW107XG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoY29uc3QgaW5wdXRFbCBvZiB0aGlzLl9hcmRIb3N0LmlucHV0cykge1xuICAgICAgaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWVbaV0gPz8gJyc7XG4gICAgICBpKys7XG4gICAgfVxuICB9XG5cbiAgLy8hIHNldHRpbmcgY29uZmlnXG4gIHNldENvbmZpZyhjb25maWc6IERpZ2l0SW5wdXRDb25maWcpOiB2b2lkIHtcbiAgICB0aGlzLl9zZXRDb25maWcoY29uZmlnKTtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWVBbmRVcGRhdGUoKTtcbiAgfVxuICBwcml2YXRlIF9zZXRDb25maWcoY29uZmlnOiBEaWdpdElucHV0Q29uZmlnKTogdm9pZCB7XG4gICAgLy9tYXAgYSBudW1iZXIgdG8gcmVhZHkgb2JqZWN0c1xuICAgIGxldCBjb25maWdBc051bWJlciA9IGlzQW55U3RyaW5nKGNvbmZpZykgPyBOdW1iZXIoY29uZmlnKSA6IG51bGw7XG4gICAgaWYgKGlzTnVtYmVyKGNvbmZpZykgfHwgaXNOdW1iZXIoY29uZmlnQXNOdW1iZXIpKSB7XG4gICAgICBjb25maWdBc051bWJlciA9IGlzTnVtYmVyKGNvbmZpZykgPyBjb25maWcgOiBjb25maWdBc051bWJlciE7XG4gICAgICB0aGlzLmNvbmZpZ0FycmF5ID0gJ2EnXG4gICAgICAgIC5yZXBlYXQoY29uZmlnQXNOdW1iZXIpXG4gICAgICAgIC5zcGxpdCgnJylcbiAgICAgICAgLm1hcCgoKSA9PiAoeyBhY2NlcHQ6IHN0ciA9PiAvWzAtOV0vLnRlc3Qoc3RyKSB9KSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vbWFwIGEgc3RyaW5nIHRvIGFuIGFycmF5XG4gICAgbGV0IGNvbmZpZ0Fycjogc3RyaW5nW10gfCBFeGNsdWRlPERpZ2l0SW5wdXRDb25maWcsIG51bWJlciB8IHN0cmluZz47XG4gICAgaWYgKGlzQW55U3RyaW5nKGNvbmZpZykpIHtcbiAgICAgIGNvbmZpZ0FyciA9IGNvZXJjZUFycmF5UHJvcGVydHkoY29uZmlnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZmlnQXJyID0gY29uZmlnO1xuICAgIH1cbiAgICAvL21hcCBhcnJheSB0byByZWFkeSBvYmplY3RzXG4gICAgdGhpcy5jb25maWdBcnJheSA9IGNvbmZpZ0Fyci5tYXAoKHYsIGkpID0+IHtcbiAgICAgIGlmICghaXNBbnlTdHJpbmcodikpIHtcbiAgICAgICAgaWYgKCdhY2NlcHQnIGluIHYgJiYgIWlzRnVuY3Rpb24odi5hY2NlcHQpKSB7XG4gICAgICAgICAgY29uc3QgcmVnRXhwID0gaXNSZWdFeHAodi5hY2NlcHQpID8gdi5hY2NlcHQgOiBuZXcgUmVnRXhwKGBbJHtfc2FuaXRpemVSZWdFeHBTdHJpbmcodi5hY2NlcHQpfV1gKTtcbiAgICAgICAgICB2LmFjY2VwdCA9IHN0ciA9PiByZWdFeHAudGVzdChzdHIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2O1xuICAgICAgfVxuXG4gICAgICBzd2l0Y2ggKHYpIHtcbiAgICAgICAgY2FzZSBEaWdpdElucHV0UHJpbWl0aXZlT3B0aW9uLk51bWJlcjpcbiAgICAgICAgICByZXR1cm4geyBhY2NlcHQ6IHN0ciA9PiAvWzAtOV0vLnRlc3Qoc3RyKSB9O1xuICAgICAgICBjYXNlIERpZ2l0SW5wdXRQcmltaXRpdmVPcHRpb24uTGV0dGVyOlxuICAgICAgICAgIHJldHVybiB7IGFjY2VwdDogc3RyID0+IC9bYS16QS1aXS8udGVzdChzdHIpIH07XG4gICAgICAgIGNhc2UgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbi5BbHBoYW51bWVyaWM6XG4gICAgICAgICAgcmV0dXJuIHsgYWNjZXB0OiBzdHIgPT4gL1swLTlhLXpBLVpdLy50ZXN0KHN0cikgfTtcbiAgICAgICAgY2FzZSBEaWdpdElucHV0UHJpbWl0aXZlT3B0aW9uLlNwZWNpYWw6XG4gICAgICAgICAgcmV0dXJuIHsgYWNjZXB0OiBzdHIgPT4gL1shQCMkJV4mKi1fPSsvXFxcXC4sXS8udGVzdChzdHIpIH07XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAoY29uZmlnQXJyLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1ORjA0M1M6IDxhcmQtZGlnaXQtaW5wdXQ+J3MgY29uZmlnIGlzIGludmFsaWQuIEV4cGVjdGVkIG51bWJlciBvciBhcnJheSwgZ290IFwiJHt2fVwiYCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQVJELU5GMDQzQjogRm91bmQgaW52YWxpZCBzdHJpbmcgaW4gPGFyZC1kaWdpdC1pbnB1dD4ncyBjb25maWc6IFwiJHt2fVwiIGF0IGluZGV4ICR7aX1gKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vISB2YWxpZGF0ZSBhZ2FpbnN0IHRoZSBjb25maWdcbiAgdmFsaWRhdGVJbnB1dEFuZFNldFZhbHVlKGlucHV0OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBmYWxzZSB8IFtib29sZWFuLCBzdHJpbmcgfCBudWxsXSB7XG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+IHRoaXMuX2NvbmZpZ0FycmF5Tm9TdGF0aWNzLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgLy9wcmVwYXJlIHRoZSB2YWx1ZSBhcnJheSBpZiBkb2VzIG5vdCBleGlzdFxuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IFtdO1xuICAgIH1cbiAgICAvL3ByZXBhcmUgdGhlIGNoYXJhY3RlcnMgYmVmb3JlIHRoZSBjdXJyZW50IG9uZSAodG8gYmUgdXNlZCBpbiB2YWxpZGF0aW9uKVxuICAgIGNvbnN0IGJlZm9yZSA9IHRoaXMudmFsdWVcbiAgICAgIC5zbGljZSgwLCBpbmRleClcbiAgICAgIC5tYXAodiA9PiB2ID8/ICcgJylcbiAgICAgIC5qb2luKCcnKTtcblxuICAgIC8vcmVtb3ZlIHRoZSBvbGQgY2hhcmFjdGVyIGZyb20gdGhlIGlucHV0IGVsZW1lbnRcbiAgICBjb25zdCBvbGRWYWwgPSB0aGlzLnZhbHVlW2luZGV4XTtcbiAgICBpZiAob2xkVmFsICYmIGlucHV0Lmxlbmd0aCA+IDEgJiYgaW5wdXQubWF0Y2gob2xkVmFsKSkge1xuICAgICAgaW5wdXQgPSBpbnB1dC5yZXBsYWNlKG9sZFZhbCwgJycpO1xuICAgIH1cbiAgICAvL3VzZSBvbmx5IHRoZSBmaXJzdCBjaGFyYWN0ZXIgKGVycm9yIHNhZmV0eSlcbiAgICBpbnB1dCA9IGlucHV0LmNoYXJBdCgwKTtcblxuICAgIC8vdmFsaWRhdGUgYW5kIHRyYW5zZm9ybSwgaWYgbmVjZXNzYXJ5XG4gICAgY29uc3QgaW5wdXRDaGFyID0gdGhpcy5fdmFsaWRhdGVTaW5nbGVDaGFyKGlucHV0LCBiZWZvcmUsIHRoaXMuX2NvbmZpZ0FycmF5Tm9TdGF0aWNzW2luZGV4XSk7XG5cbiAgICAvL2dldCB0aGUgY29ycmVzcG9uZGluZyBIVE1MIGlucHV0IGVsZW1lbnRcbiAgICBjb25zdCBpbnB1dEVsID0gdGhpcy5fYXJkSG9zdC5pbnB1dHMuZ2V0KGluZGV4KTtcbiAgICBpZiAoIWlucHV0RWwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJBUkQtSVMwNDg6IDxhcmQtZGlnaXQtaW5wdXQ+J3MgdmFsdWUgY2hhbmdlZCwgYnV0IGl0cyBjb3JyZXNwb25kaW5nIGlucHV0IGVsZW1lbnQgY291bGQgbm90IGJlIGZvdW5kLiBUaGlzIGlzIGVycm9yIGlzIGZhdGFsIHRvIHRoZSBmdW5jdGlvbmluZyBvZiBBcmRpdW0gVUkuIFBsZWFzZSByZXBvcnQgdGhpcyBpc3N1ZSB0byB0aGUgY3JlYXRvcnMuXCJcbiAgICAgICk7XG4gICAgfVxuICAgIC8vdXBkYXRlIHRoZSBpbnB1dCBlbGVtZW50IGFuZCB2YWx1ZSBhcnJheVxuICAgIGNvbnN0IG5ld1ZhbCA9IGlucHV0Q2hhciA/PyBvbGRWYWw7XG4gICAgaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbmV3VmFsID8/ICcnO1xuICAgIHRoaXMudmFsdWVbaW5kZXhdID0gbmV3VmFsO1xuXG4gICAgLy9yZXR1cm4gY2hhbmdlcyBtYXJrZXIgYW5kIHZhbGlkYXRlZCB2YWx1ZVxuICAgIHJldHVybiBbbmV3VmFsICE9PSBvbGRWYWwsIGlucHV0Q2hhcl07XG4gIH1cbiAgdmFsaWRhdGVWYWx1ZUFuZFVwZGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCB2ID0gdGhpcy52YWx1ZTtcbiAgICBpZiAoIXYpIHJldHVybjtcblxuICAgIGxldCBiZWZvcmUgPSAnJztcbiAgICBjb25zdCBuZXdWYWx1ZTogKHN0cmluZyB8IG51bGwpW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IE1hdGgubWluKHRoaXMuX2NvbmZpZ0FycmF5Tm9TdGF0aWNzLmxlbmd0aCwgdi5sZW5ndGgpOyBpKyspIHtcbiAgICAgIGNvbnN0IGNoYXIgPSB2W2ldO1xuICAgICAgYmVmb3JlICs9IGNoYXIgPz8gJyAnO1xuXG4gICAgICBpZiAoIWNoYXIpIHtcbiAgICAgICAgbmV3VmFsdWUucHVzaChjaGFyKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBjb25maWcgPSB0aGlzLl9jb25maWdBcnJheU5vU3RhdGljc1tpXTtcblxuICAgICAgY29uc3QgbmV3Q2hhciA9IHRoaXMuX3ZhbGlkYXRlU2luZ2xlQ2hhcihjaGFyLCBiZWZvcmUsIGNvbmZpZyk7XG4gICAgICBuZXdWYWx1ZS5wdXNoKG5ld0NoYXIpO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfdmFsaWRhdGVTaW5nbGVDaGFyKGNoYXI6IHN0cmluZyB8IG51bGwsIGJlZm9yZTogc3RyaW5nLCBjb25maWc6IERpZ2l0SW5wdXRBY2NlcHRPYmplY3QpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoY29uZmlnLnJlYWRvbmx5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBUkQtSVMwNDlSOiB0cnlpbmcgdG8gc2V0IHZhbHVlIG9mIGEgZGlnaXQtaW5wdXQncyByZWFkb25seSBmaWVsZC4gVGhpcyBpcyBlcnJvciBpcyBmYXRhbCB0byB0aGUgZnVuY3Rpb25pbmcgb2YgQXJkaXVtIFVJLiBQbGVhc2UgcmVwb3J0IHRoaXMgaXNzdWUgdG8gdGhlIGNyZWF0b3JzLmBcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICghaXNGdW5jdGlvbihjb25maWcuYWNjZXB0KSkge1xuICAgICAgY29uc3QgcmVnRXhwID0gaXNSZWdFeHAoY29uZmlnLmFjY2VwdCkgPyBjb25maWcuYWNjZXB0IDogbmV3IFJlZ0V4cChgWyR7X3Nhbml0aXplUmVnRXhwU3RyaW5nKGNvbmZpZy5hY2NlcHQpfV1gKTtcbiAgICAgIGNvbmZpZy5hY2NlcHQgPSBzdHIgPT4gcmVnRXhwLnRlc3Qoc3RyKTtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYEFSRC1JUzA0OUE6IGRpZ2l0LWlucHV0J3MgdmFsdWUgdmFsaWRhdG9yIGVuY291bnRlcmVkIGFuIHVuZXhwZWN0ZWQgdmFsdWUgb2YgdGhlIGNvbmZpZydzIFwiYWNjZXB0XCIgcHJvcGVydHkuIEFyZGl1bSBVSSB3YXMgYWJsZSB0byBoYW5kbGUgdGhpcyBpc3N1ZSwgYnV0IHBsZWFzZSByZXBvcnQgaXQgdG8gdGhlIGNyZWF0b3JzLmBcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICghY2hhcikgcmV0dXJuIGNoYXI7XG5cbiAgICBjb25zdCBjYW5BY2NlcHQgPSBjb25maWcuYWNjZXB0KGNoYXIsIGJlZm9yZSk7XG4gICAgaWYgKCFjYW5BY2NlcHQpIHJldHVybiBudWxsO1xuXG4gICAgaWYgKGNvbmZpZy50cmFuc2Zvcm0pIHtcbiAgICAgIGlmIChjb25maWcudHJhbnNmb3JtID09IFRyYW5zZm9ybVR5cGUuTG93ZXJjYXNlKSB7XG4gICAgICAgIHJldHVybiBjaGFyLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG4gICAgICBpZiAoY29uZmlnLnRyYW5zZm9ybSA9PSBUcmFuc2Zvcm1UeXBlLlVwcGVyY2FzZSkge1xuICAgICAgICByZXR1cm4gY2hhci50b1VwcGVyQ2FzZSgpO1xuICAgICAgfVxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgQVJELUlTMDQ5VDogZGlnaXQtaW5wdXQncyB2YWx1ZSB2YWxpZGF0b3IgZW5jb3VudGVyZWQgYW4gdW5leHBlY3RlZCB2YWx1ZSBvZiB0aGUgY29uZmlnJ3MgXCJ0cmFuc2Zvcm1cIiBwcm9wZXJ0eS4gQXJkaXVtIFVJIHdhcyBhYmxlIHRvIGhhbmRsZSB0aGlzIGlzc3VlLCBidXQgcGxlYXNlIHJlcG9ydCBpdCB0byB0aGUgY3JlYXRvcnMuYFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGNoYXI7XG4gIH1cbn1cbiJdfQ==
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9kaWdpdC1pbnB1dC9kaWdpdC1pbnB1dC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNGLE9BQU8sRUFJTCx5QkFBeUIsRUFDekIsYUFBYSxHQUNkLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUF3Qix3QkFBd0IsRUFBdUIscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqSSxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFvQixRQUE2QjtRQUE3QixhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQWdCaEMsaUJBQVksR0FBRyxNQUFNLENBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBRXRELG9CQUFlLEdBQUcsUUFBUSxDQUF5QixHQUFHLEVBQUU7WUFDL0QsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDakMsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ2xCLE9BQU87d0JBQ0wsSUFBSSxFQUFFLHdCQUF3QixDQUFDLE1BQU07d0JBQ3JDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTTtxQkFDZixDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsT0FBTztvQkFDTCxJQUFJLEVBQUUsd0JBQXdCLENBQUMs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QUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUV2QixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTVCLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3JCLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pELE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVCLENBQUM7WUFDRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqRCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1QixDQUFDO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FDVix1TUFBdU0sQ0FDeE0sQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBlZmZlY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQXJyYXlQcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcbmltcG9ydCB7IGlzQW55U3RyaW5nLCBpc0FycmF5LCBpc0Z1bmN0aW9uLCBpc051bGwsIGlzTnVtYmVyLCBpc1JlZ0V4cCB9IGZyb20gJ3NpbXBsZS1ib29sJztcbmltcG9ydCB7XG4gIERpZ2l0SW5wdXRBY2NlcHRPYmplY3QsXG4gIERpZ2l0SW5wdXRDb25maWcsXG4gIERpZ2l0SW5wdXRPcHRpb24sXG4gIERpZ2l0SW5wdXRQcmltaXRpdmVPcHRpb24sXG4gIFRyYW5zZm9ybVR5cGUsXG59IGZyb20gJy4vZGlnaXQtaW5wdXQudHlwZXMnO1xuaW1wb3J0IHsgRGlnaXRJbnB1dENvbmZpZ0RhdGEsIERpZ2l0SW5wdXRDb25maWdEYXRhVHlwZSwgRGlnaXRJbnB1dE1vZGVsSG9zdCwgX3Nhbml0aXplUmVnRXhwU3RyaW5nIH0gZnJvbSAnLi9kaWdpdC1pbnB1dC51dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBEaWdpdElucHV0TW9kZWwge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hcmRIb3N0OiBEaWdpdElucHV0TW9kZWxIb3N0KSB7XG4gICAgLy9zZXQgdGhlIHZhbHVlIGFycmF5IHRvIGJlIHRoZSBzYW1lIGxlbmd0aFxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gdGhpcy5jb25maWdBcnJheURhdGEoKS5sZW5ndGg7XG5cbiAgICAgICAgdGhpcy52YWx1ZS51cGRhdGUoYXJyID0+IHtcbiAgICAgICAgICBpZiAoIWFycikgcmV0dXJuIG5ldyBBcnJheShsZW5ndGgpLmZpbGwobnVsbCk7XG4gICAgICAgICAgaWYgKGFyci5sZW5ndGggPj0gbGVuZ3RoKSByZXR1cm4gYXJyLnNsaWNlKDAsIGxlbmd0aCk7XG4gICAgICAgICAgcmV0dXJuIFsuLi5hcnIsIC4uLm5ldyBBcnJheShsZW5ndGggLSBhcnIubGVuZ3RoKS5maWxsKG51bGwpXTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpZ0FycmF5ID0gc2lnbmFsPERpZ2l0SW5wdXRPcHRpb25bXT4oW10pO1xuXG4gIHJlYWRvbmx5IGNvbmZpZ0FycmF5RGF0YSA9IGNvbXB1dGVkPERpZ2l0SW5wdXRDb25maWdEYXRhW10+KCgpID0+IHtcbiAgICBsZXQgaW5wdXRJbmRleCA9IDA7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZ0FycmF5KCkubWFwKHYgPT4ge1xuICAgICAgaWYgKCdzdGF0aWMnIGluIHYpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlOiBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGUuU3RhdGljLFxuICAgICAgICAgIGNoYXI6IHYuc3RhdGljLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogRGlnaXRJbnB1dENvbmZpZ0RhdGFUeXBlLklucHV0LFxuICAgICAgICBpbmRleDogaW5wdXRJbmRleCsrLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY29uZmlnQXJyYXlOb1N0YXRpY3MgPSBjb21wdXRlZDxEaWdpdElucHV0QWNjZXB0T2JqZWN0W10+KFxuICAgICgpID0+IHRoaXMuX2NvbmZpZ0FycmF5KCkuZmlsdGVyKHYgPT4gISgnc3RhdGljJyBpbiB2KSkgYXMgRGlnaXRJbnB1dEFjY2VwdE9iamVjdFtdXG4gICk7XG5cbiAgcmVhZG9ubHkgaXNDb25maWdEZWZpbmVkID0gY29tcHV0ZWQoKCk6IGJvb2xlYW4gPT4gdGhpcy5fY29uZmlnQXJyYXkoKS5sZW5ndGggPiAwKTtcblxuICByZWFkb25seSB2YWx1ZSA9IHNpZ25hbDwoc3RyaW5nIHwgbnVsbClbXSB8IG51bGw+KG51bGwpO1xuXG4gIHJlYWRvbmx5IHN0cmluZ1ZhbHVlID0gY29tcHV0ZWQoXG4gICAgKCk6IHN0cmluZyA9PlxuICAgICAgdGhpcy52YWx1ZSgpXG4gICAgICAgID8ubWFwKHYgPT4gdiA/PyAnICcpXG4gICAgICAgIC5qb2luKCcnKVxuICAgICAgICAudHJpbUVuZCgpID8/ICcnXG4gICk7XG5cbiAgcmVhZG9ubHkgaXNWYWx1ZUZ1bGwgPSBjb21wdXRlZCgoKTogYm9vbGVhbiA9PiB0aGlzLnZhbHVlKCk/LmZpbHRlcih2ID0+IHYpLmxlbmd0aCA9PT0gdGhpcy5fY29uZmlnQXJyYXlOb1N0YXRpY3MoKS5sZW5ndGgpO1xuXG4gIGlzRGVmaW5lZEF0SW5kZXgoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMudmFsdWUoKT8uW2luZGV4XTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodjogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKCFpc0FycmF5KHYpICYmICFpc0FueVN0cmluZyh2KSAmJiAhaXNOdWxsKHYpKSB7XG4gICAgICAvL3dhcm4gd2hlbiB1c2luZyBub24tc3RyaW5nIHZhbHVlXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICBgQVJELVdBMDAyMDogVHJ5aW5nIHRvIHNldCA8YXJkLWRpZ2l0LWlucHV0PidzIHZhbHVlIHRvIFwiJHt2fVwiIChvZiB0eXBlICR7dHlwZW9mIHZ9KSwgZXhwZWN0ZWQgc3RyaW5nIG9yIGFycmF5IG9mIHN0cmluZ3MuYFxuICAgICAgICApXG4gICAgICApO1xuICAgICAgLy9ub3JtYWxpemUgdGhlIHZhbHVlXG4gICAgICB2ID0gdj8udG9TdHJpbmc/LigpID8/IFN0cmluZyh2KTtcbiAgICB9XG4gICAgY29uc3QgdkFycmF5ID0gY29lcmNlQXJyYXlQcm9wZXJ0eSh2KTtcbiAgICBjb25zdCBwcm9ibGVtSW5kZXggPSB2QXJyYXkuZmluZEluZGV4KGVsID0+ICFpc0FueVN0cmluZyhlbCkgfHwgZWwubGVuZ3RoID4gMSk7XG4gICAgaWYgKHByb2JsZW1JbmRleCAhPT0gLTEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEFSRC1GVDAwNDI6IEFycmF5IHBhc3NlZCB0byA8YXJkLWRpZ2l0LWlucHV0PidzIHZhbHVlIG11c3Qgb25seSBjb250YWluIHN0cmluZ3Mgb2YgbGVuZ3RoIDEgb3IgMC4gRWxlbWVudCBcIiR7dkFycmF5W3Byb2JsZW1JbmRleF19XCIgYXQgaW5kZXggJHtwcm9ibGVtSW5kZXh9IGRvZXMgbm90IG1hdGNoIHRob3NlIHJlcXVpcmVtZW50cy5gXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fd3JpdGVWYWx1ZSh2QXJyYXkpO1xuICB9XG4gIHByaXZhdGUgX3dyaXRlVmFsdWUodjogc3RyaW5nW10gfCBudWxsKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgb2xkVmFsID0gdGhpcy52YWx1ZSgpO1xuICAgIHRoaXMudmFsdWUuc2V0KHYgJiYgdi5tYXAoZWwgPT4gZWwgfHwgbnVsbCkpO1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZUFuZFVwZGF0ZSgpO1xuICAgIHRoaXMuX3VwZGF0ZUlucHV0RWxlbWVudHMoKTtcbiAgICByZXR1cm4gb2xkVmFsICE9PSB2O1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlSW5wdXRFbGVtZW50cygpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUgPz8gW107XG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoY29uc3QgaW5wdXRFbCBvZiB0aGlzLl9hcmRIb3N0LmlucHV0cygpKSB7XG4gICAgICBpbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZSgpPy5baV0gPz8gJyc7XG4gICAgICBpKys7XG4gICAgfVxuICB9XG5cbiAgLy8hIHNldHRpbmcgY29uZmlnXG4gIHNldENvbmZpZyhjb25maWc6IERpZ2l0SW5wdXRDb25maWcpOiB2b2lkIHtcbiAgICB0aGlzLl9zZXRDb25maWcoY29uZmlnKTtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWVBbmRVcGRhdGUoKTtcbiAgfVxuICBwcml2YXRlIF9zZXRDb25maWcoY29uZmlnOiBEaWdpdElucHV0Q29uZmlnKTogdm9pZCB7XG4gICAgLy9tYXAgYSBudW1iZXIgdG8gcmVhZHkgb2JqZWN0c1xuICAgIGxldCBjb25maWdBc051bWJlciA9IGlzQW55U3RyaW5nKGNvbmZpZykgPyBOdW1iZXIoY29uZmlnKSA6IG51bGw7XG4gICAgaWYgKGlzTnVtYmVyKGNvbmZpZykgfHwgaXNOdW1iZXIoY29uZmlnQXNOdW1iZXIpKSB7XG4gICAgICBjb25maWdBc051bWJlciA9IGlzTnVtYmVyKGNvbmZpZykgPyBjb25maWcgOiBjb25maWdBc051bWJlciE7XG4gICAgICB0aGlzLl9jb25maWdBcnJheS5zZXQobmV3IEFycmF5KGNvbmZpZ0FzTnVtYmVyKS5maWxsKHsgYWNjZXB0OiAoc3RyOiBzdHJpbmcpID0+IC9bMC05XS8udGVzdChzdHIpIH0pKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy9tYXAgYSBzdHJpbmcgdG8gYW4gYXJyYXlcbiAgICBsZXQgY29uZmlnQXJyOiBzdHJpbmdbXSB8IEV4Y2x1ZGU8RGlnaXRJbnB1dENvbmZpZywgbnVtYmVyIHwgc3RyaW5nPjtcbiAgICBpZiAoaXNBbnlTdHJpbmcoY29uZmlnKSkge1xuICAgICAgY29uZmlnQXJyID0gY29lcmNlQXJyYXlQcm9wZXJ0eShjb25maWcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25maWdBcnIgPSBjb25maWc7XG4gICAgfVxuICAgIC8vbWFwIGFycmF5IHRvIHJlYWR5IG9iamVjdHNcbiAgICB0aGlzLl9jb25maWdBcnJheS5zZXQoXG4gICAgICBjb25maWdBcnIubWFwKCh2LCBpKSA9PiB7XG4gICAgICAgIGlmICghaXNBbnlTdHJpbmcodikpIHtcbiAgICAgICAgICBpZiAoJ2FjY2VwdCcgaW4gdiAmJiAhaXNGdW5jdGlvbih2LmFjY2VwdCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlZ0V4cCA9IGlzUmVnRXhwKHYuYWNjZXB0KSA/IHYuYWNjZXB0IDogbmV3IFJlZ0V4cChgWyR7X3Nhbml0aXplUmVnRXhwU3RyaW5nKHYuYWNjZXB0KX1dYCk7XG4gICAgICAgICAgICB2LmFjY2VwdCA9IHN0ciA9PiByZWdFeHAudGVzdChzdHIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodikge1xuICAgICAgICAgIGNhc2UgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbi5OdW1iZXI6XG4gICAgICAgICAgICByZXR1cm4geyBhY2NlcHQ6IHN0ciA9PiAvWzAtOV0vLnRlc3Qoc3RyKSB9O1xuICAgICAgICAgIGNhc2UgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbi5MZXR0ZXI6XG4gICAgICAgICAgICByZXR1cm4geyBhY2NlcHQ6IHN0ciA9PiAvW2EtekEtWl0vLnRlc3Qoc3RyKSB9O1xuICAgICAgICAgIGNhc2UgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbi5BbHBoYW51bWVyaWM6XG4gICAgICAgICAgICByZXR1cm4geyBhY2NlcHQ6IHN0ciA9PiAvWzAtOWEtekEtWl0vLnRlc3Qoc3RyKSB9O1xuICAgICAgICAgIGNhc2UgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbi5TcGVjaWFsOlxuICAgICAgICAgICAgcmV0dXJuIHsgYWNjZXB0OiBzdHIgPT4gL1shQCMkJV4mKi1fPSsvXFxcXC4sXS8udGVzdChzdHIpIH07XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgaWYgKGNvbmZpZ0Fyci5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBUkQtTkYwMDQzUzogPGFyZC1kaWdpdC1pbnB1dD4ncyBjb25maWcgaXMgaW52YWxpZC4gRXhwZWN0ZWQgbnVtYmVyIG9yIGFycmF5LCBnb3QgXCIke3Z9XCJgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQVJELU5GMDA0M0I6IEZvdW5kIGludmFsaWQgc3RyaW5nIFwiJHt2fVwiIGluIDxhcmQtZGlnaXQtaW5wdXQ+J3MgY29uZmlnIGF0IGluZGV4ICR7aX1gKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLy8hIHZhbGlkYXRlIGFnYWluc3QgdGhlIGNvbmZpZ1xuICB2YWxpZGF0ZUlucHV0QW5kU2V0VmFsdWUoaW5wdXQ6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IGZhbHNlIHwgW2Jvb2xlYW4sIHN0cmluZyB8IG51bGxdIHtcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gdGhpcy5fY29uZmlnQXJyYXlOb1N0YXRpY3MoKS5sZW5ndGgpIHJldHVybiBmYWxzZTtcblxuICAgIGxldCB2ID0gdGhpcy52YWx1ZSgpO1xuICAgIC8vcHJlcGFyZSB0aGUgdmFsdWUgYXJyYXkgaWYgZG9lcyBub3QgZXhpc3RcbiAgICBpZiAoIXYpIHtcbiAgICAgIHRoaXMudmFsdWUuc2V0KFtdKTtcbiAgICB9XG4gICAgdiA9IFtdO1xuICAgIC8vcHJlcGFyZSB0aGUgY2hhcmFjdGVycyBiZWZvcmUgdGhlIGN1cnJlbnQgb25lICh0byBiZSB1c2VkIGluIHZhbGlkYXRpb24pXG4gICAgY29uc3QgYmVmb3JlID0gdGhpcy5zdHJpbmdWYWx1ZSgpLmNoYXJBdChpbmRleCk7XG5cbiAgICAvL3JlbW92ZSB0aGUgb2xkIGNoYXJhY3RlciBmcm9tIHRoZSBpbnB1dCBlbGVtZW50XG4gICAgaWYgKGJlZm9yZSAmJiBpbnB1dC5sZW5ndGggPiAxICYmIGlucHV0Lm1hdGNoKGJlZm9yZSkpIHtcbiAgICAgIGlucHV0ID0gaW5wdXQucmVwbGFjZShiZWZvcmUsICcnKTtcbiAgICB9XG4gICAgLy91c2Ugb25seSB0aGUgZmlyc3Qgb3IgbGFzdCBjaGFyYWN0ZXIgKGVycm9yIHNhZmV0eSlcbiAgICBjb25zdCBmaXJzdENoYXIgPSBpbnB1dC5jaGFyQXQoMCk7XG4gICAgY29uc3QgbGFzdENoYXIgPSBpbnB1dC5jaGFyQXQoaW5wdXQubGVuZ3RoIC0gMSk7XG4gICAgaW5wdXQgPSBmaXJzdENoYXIgPT09IGJlZm9yZSA/IGxhc3RDaGFyIDogZmlyc3RDaGFyO1xuXG4gICAgLy92YWxpZGF0ZSBhbmQgdHJhbnNmb3JtLCBpZiBuZWNlc3NhcnlcbiAgICBjb25zdCBpbnB1dENoYXIgPSB0aGlzLl92YWxpZGF0ZVNpbmdsZUNoYXIoaW5wdXQsIGJlZm9yZSwgdGhpcy5fY29uZmlnQXJyYXlOb1N0YXRpY3MoKVtpbmRleF0pO1xuXG4gICAgLy9nZXQgdGhlIGNvcnJlc3BvbmRpbmcgSFRNTCBpbnB1dCBlbGVtZW50XG4gICAgY29uc3QgaW5wdXRFbCA9IHRoaXMuX2FyZEhvc3QuaW5wdXRzKClbaW5kZXhdO1xuICAgIGlmICghaW5wdXRFbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkFSRC1JUzAwNDg6IDxhcmQtZGlnaXQtaW5wdXQ+J3MgdmFsdWUgY2hhbmdlZCwgYnV0IGl0cyBjb3JyZXNwb25kaW5nIGlucHV0IGVsZW1lbnQgY291bGQgbm90IGJlIGZvdW5kLiBUaGlzIGlzIGVycm9yIGlzIGZhdGFsIHRvIHRoZSBmdW5jdGlvbmluZyBvZiBBcmRpdW0gVUkuIFBsZWFzZSByZXBvcnQgdGhpcyBpc3N1ZSB0byB0aGUgY3JlYXRvcnMuXCJcbiAgICAgICk7XG4gICAgfVxuICAgIC8vdXBkYXRlIHRoZSBpbnB1dCBlbGVtZW50IGFuZCB2YWx1ZSBhcnJheVxuICAgIGNvbnN0IG5ld1ZhbCA9IGlucHV0Q2hhciA/PyBiZWZvcmU7XG4gICAgaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbmV3VmFsID8/ICcnO1xuXG4gICAgdGhpcy52YWx1ZS51cGRhdGUoYXJyID0+IHtcbiAgICAgIGlmICghYXJyKSBhcnIgPSBbXTtcbiAgICAgIGNvbnN0IG5ld0FyciA9IFsuLi5hcnJdO1xuICAgICAgbmV3QXJyW2luZGV4XSA9IG5ld1ZhbCB8fCBudWxsO1xuICAgICAgcmV0dXJuIG5ld0FycjtcbiAgICB9KTtcbiAgICAvL3JldHVybiBjaGFuZ2VzIG1hcmtlciBhbmQgdmFsaWRhdGVkIHZhbHVlXG4gICAgcmV0dXJuIFtuZXdWYWwgIT09IGJlZm9yZSwgaW5wdXRDaGFyXTtcbiAgfVxuICB2YWxpZGF0ZVZhbHVlQW5kVXBkYXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IHYgPSB0aGlzLnZhbHVlKCk7XG4gICAgaWYgKCF2KSByZXR1cm47XG5cbiAgICBsZXQgYmVmb3JlID0gJyc7XG4gICAgY29uc3QgbmV3VmFsdWU6IChzdHJpbmcgfCBudWxsKVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBNYXRoLm1pbih0aGlzLl9jb25maWdBcnJheU5vU3RhdGljcygpLmxlbmd0aCwgdi5sZW5ndGgpOyBpKyspIHtcbiAgICAgIGNvbnN0IGNoYXIgPSB2W2ldO1xuICAgICAgYmVmb3JlICs9IGNoYXIgPz8gJyAnO1xuXG4gICAgICBpZiAoIWNoYXIpIHtcbiAgICAgICAgbmV3VmFsdWUucHVzaChjaGFyKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBjb25maWcgPSB0aGlzLl9jb25maWdBcnJheU5vU3RhdGljcygpW2ldO1xuXG4gICAgICBjb25zdCBuZXdDaGFyID0gdGhpcy5fdmFsaWRhdGVTaW5nbGVDaGFyKGNoYXIsIGJlZm9yZSwgY29uZmlnKTtcbiAgICAgIG5ld1ZhbHVlLnB1c2gobmV3Q2hhcik7XG4gICAgfVxuICAgIHRoaXMudmFsdWUuc2V0KG5ld1ZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF92YWxpZGF0ZVNpbmdsZUNoYXIoY2hhcjogc3RyaW5nIHwgbnVsbCwgYmVmb3JlOiBzdHJpbmcsIGNvbmZpZzogRGlnaXRJbnB1dEFjY2VwdE9iamVjdCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmIChjb25maWcucmVhZG9ubHkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEFSRC1JUzAwNDlSOiB0cnlpbmcgdG8gc2V0IHZhbHVlIG9mIGEgPGFyZC1kaWdpdC1pbnB1dD4ncyByZWFkb25seSBmaWVsZC4gVGhpcyBpcyBlcnJvciBpcyBmYXRhbCB0byB0aGUgZnVuY3Rpb25pbmcgb2YgQXJkaXVtIFVJLiBQbGVhc2UgcmVwb3J0IHRoaXMgaXNzdWUgdG8gdGhlIGNyZWF0b3JzLmBcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICghaXNGdW5jdGlvbihjb25maWcuYWNjZXB0KSkge1xuICAgICAgY29uc3QgcmVnRXhwID0gaXNSZWdFeHAoY29uZmlnLmFjY2VwdCkgPyBjb25maWcuYWNjZXB0IDogbmV3IFJlZ0V4cChgWyR7X3Nhbml0aXplUmVnRXhwU3RyaW5nKGNvbmZpZy5hY2NlcHQpfV1gKTtcbiAgICAgIGNvbmZpZy5hY2NlcHQgPSBzdHIgPT4gcmVnRXhwLnRlc3Qoc3RyKTtcbiAgICB9XG4gICAgaWYgKCFjaGFyKSByZXR1cm4gY2hhcjtcblxuICAgIGNvbnN0IGNhbkFjY2VwdCA9IGNvbmZpZy5hY2NlcHQoY2hhciwgYmVmb3JlKTtcbiAgICBpZiAoIWNhbkFjY2VwdCkgcmV0dXJuIG51bGw7XG5cbiAgICBpZiAoY29uZmlnLnRyYW5zZm9ybSkge1xuICAgICAgaWYgKGNvbmZpZy50cmFuc2Zvcm0gPT09IFRyYW5zZm9ybVR5cGUuTG93ZXJjYXNlKSB7XG4gICAgICAgIHJldHVybiBjaGFyLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG4gICAgICBpZiAoY29uZmlnLnRyYW5zZm9ybSA9PT0gVHJhbnNmb3JtVHlwZS5VcHBlcmNhc2UpIHtcbiAgICAgICAgcmV0dXJuIGNoYXIudG9VcHBlckNhc2UoKTtcbiAgICAgIH1cbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYEFSRC1JUzAwNDlUOiA8YXJkLWRpZ2l0LWlucHV0PidzIHZhbHVlIHZhbGlkYXRvciBlbmNvdW50ZXJlZCBhbiB1bmV4cGVjdGVkIHZhbHVlIG9mIHRoZSBjb25maWcncyBcInRyYW5zZm9ybVwiIHByb3BlcnR5LiBBcmRpdW0gVUkgd2FzIGFibGUgdG8gaGFuZGxlIHRoaXMgaXNzdWUsIGJ1dCBwbGVhc2UgcmVwb3J0IGl0IHRvIHRoZSBjcmVhdG9ycy5gXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gY2hhcjtcbiAgfVxufVxuIl19
|
|
@@ -3,11 +3,11 @@ import { CommonModule } from '@angular/common';
|
|
|
3
3
|
import { ArdiumDigitInputComponent } from './digit-input.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class ArdiumDigitInputModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumDigitInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: ArdiumDigitInputModule, declarations: [ArdiumDigitInputComponent], imports: [CommonModule], exports: [ArdiumDigitInputComponent] }); }
|
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumDigitInputModule, imports: [CommonModule] }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumDigitInputModule, decorators: [{
|
|
11
11
|
type: NgModule,
|
|
12
12
|
args: [{
|
|
13
13
|
declarations: [ArdiumDigitInputComponent],
|
|
@@ -12,4 +12,4 @@ export const DigitInputPrimitiveOption = {
|
|
|
12
12
|
Alphanumeric: 'alphanumeric',
|
|
13
13
|
Special: 'special',
|
|
14
14
|
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9kaWdpdC1pbnB1dC9kaWdpdC1pbnB1dC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDN0IsTUFBTSxFQUFFLFFBQVE7SUFDaEIsU0FBUyxFQUFFLFdBQVc7Q0FDZCxDQUFDO0FBR1gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLFNBQVMsRUFBRSxXQUFXO0NBQ2QsQ0FBQztBQUdYLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHO0lBQ3ZDLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRSxjQUFjO0lBQzVCLE9BQU8sRUFBRSxTQUFTO0NBQ1YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBEaWdpdElucHV0U2hhcGUgPSB7XG4gIFNxdWFyZTogJ3NxdWFyZScsXG4gIFJlY3RhbmdsZTogJ3JlY3RhbmdsZScsXG59IGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgRGlnaXRJbnB1dFNoYXBlID0gKHR5cGVvZiBEaWdpdElucHV0U2hhcGUpW2tleW9mIHR5cGVvZiBEaWdpdElucHV0U2hhcGVdO1xuXG5leHBvcnQgY29uc3QgVHJhbnNmb3JtVHlwZSA9IHtcbiAgVXBwZXJjYXNlOiAndXBwZXJjYXNlJyxcbiAgTG93ZXJjYXNlOiAnbG93ZXJjYXNlJyxcbn0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBUcmFuc2Zvcm1UeXBlID0gKHR5cGVvZiBUcmFuc2Zvcm1UeXBlKVtrZXlvZiB0eXBlb2YgVHJhbnNmb3JtVHlwZV07XG5cbmV4cG9ydCBjb25zdCBEaWdpdElucHV0UHJpbWl0aXZlT3B0aW9uID0ge1xuICBOdW1iZXI6ICdudW1iZXInLFxuICBMZXR0ZXI6ICdsZXR0ZXInLFxuICBBbHBoYW51bWVyaWM6ICdhbHBoYW51bWVyaWMnLFxuICBTcGVjaWFsOiAnc3BlY2lhbCcsXG59IGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbiA9ICh0eXBlb2YgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbilba2V5b2YgdHlwZW9mIERpZ2l0SW5wdXRQcmltaXRpdmVPcHRpb25dO1xuXG5leHBvcnQgaW50ZXJmYWNlIERpZ2l0SW5wdXRBY2NlcHRPYmplY3Qge1xuICBhY2NlcHQ6IHN0cmluZyB8IFJlZ0V4cCB8ICgoY2hhcjogc3RyaW5nLCBjaGFyc0JlZm9yZTogc3RyaW5nKSA9PiBib29sZWFuKTtcbiAgdHJhbnNmb3JtPzogVHJhbnNmb3JtVHlwZSB8IG51bGw7XG4gIHJlYWRvbmx5PzogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGlnaXRJbnB1dFN0YXRpY09iamVjdCB7XG4gIHN0YXRpYzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBEaWdpdElucHV0T3B0aW9uID0gRGlnaXRJbnB1dEFjY2VwdE9iamVjdCB8IERpZ2l0SW5wdXRTdGF0aWNPYmplY3Q7XG5cbmV4cG9ydCB0eXBlIERpZ2l0SW5wdXRDb25maWcgPSAoRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbiB8IERpZ2l0SW5wdXRPcHRpb24pW10gfCBzdHJpbmcgfCBudW1iZXI7XG4iXX0=
|
|
@@ -5,4 +5,4 @@ export const DigitInputConfigDataType = {
|
|
|
5
5
|
export function _sanitizeRegExpString(str) {
|
|
6
6
|
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
7
7
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9kaWdpdC1pbnB1dC9kaWdpdC1pbnB1dC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxLQUFLLEVBQUUsT0FBTztJQUNkLE1BQU0sRUFBRSxRQUFRO0NBQ1IsQ0FBQztBQUdYLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxHQUFXO0lBQy9DLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlnaXRJbnB1dENvbmZpZ0RhdGEge1xuICB0eXBlOiBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGU7XG4gIGNoYXI/OiBzdHJpbmc7XG4gIGluZGV4PzogbnVtYmVyO1xuICByZWFkb25seT86IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIERpZ2l0SW5wdXRNb2RlbEhvc3Qge1xuICByZWFkb25seSBpbnB1dHM6IFNpZ25hbDxyZWFkb25seSBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+W10+O1xufVxuXG5leHBvcnQgY29uc3QgRGlnaXRJbnB1dENvbmZpZ0RhdGFUeXBlID0ge1xuICBJbnB1dDogJ2lucHV0JyxcbiAgU3RhdGljOiAnc3RhdGljJyxcbn0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGUgPSAodHlwZW9mIERpZ2l0SW5wdXRDb25maWdEYXRhVHlwZSlba2V5b2YgdHlwZW9mIERpZ2l0SW5wdXRDb25maWdEYXRhVHlwZV07XG5cbmV4cG9ydCBmdW5jdGlvbiBfc2FuaXRpemVSZWdFeHBTdHJpbmcoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCAnXFxcXCQmJyk7XG59XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './digit-input.module';
|
|
2
|
+
export * from './digit-input.component';
|
|
3
|
+
export * from './digit-input.types';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9kaWdpdC1pbnB1dC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGlnaXQtaW5wdXQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlnaXQtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZGlnaXQtaW5wdXQudHlwZXMnO1xuIl19
|