@ardium-ui/ui 2.4.0 → 3.1.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/text-list/index.mjs +4 -0
- package/esm2022/lib/text-list/text-list.component.mjs +18 -0
- package/esm2022/lib/text-list/text-list.module.mjs +19 -0
- package/esm2022/lib/text-list/text-list.pipe.mjs +16 -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 +25 -24
- package/fesm2022/ardium-ui-ui.mjs +6069 -5375
- 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/text-list/index.d.ts +3 -0
- package/lib/text-list/text-list.component.d.ts +8 -0
- package/lib/text-list/text-list.module.d.ts +9 -0
- package/lib/text-list/text-list.pipe.d.ts +7 -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/public-api.d.ts +24 -23
- 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
|
@@ -67,7 +67,6 @@ export class SimpleItemStorage {
|
|
|
67
67
|
this._items.set(items.map((item, index) => {
|
|
68
68
|
return this._setItemsMapFn(item, index, areItemsPrimitive);
|
|
69
69
|
}));
|
|
70
|
-
return areItemsPrimitive;
|
|
71
70
|
}
|
|
72
71
|
_primitiveItemsMapFn(item) {
|
|
73
72
|
return { value: item };
|
|
@@ -76,7 +75,7 @@ export class SimpleItemStorage {
|
|
|
76
75
|
if (areItemsPrimitive) {
|
|
77
76
|
return {
|
|
78
77
|
itemData: signal(rawItemData),
|
|
79
|
-
index:
|
|
78
|
+
index: index,
|
|
80
79
|
value: signal(rawItemData.value),
|
|
81
80
|
label: signal(rawItemData.value?.toString?.() ?? String(rawItemData.value)),
|
|
82
81
|
disabled: signal(false),
|
|
@@ -99,7 +98,7 @@ export class SimpleItemStorage {
|
|
|
99
98
|
//return
|
|
100
99
|
return {
|
|
101
100
|
itemData: signal(rawItemData),
|
|
102
|
-
index:
|
|
101
|
+
index: index,
|
|
103
102
|
value: signal(value),
|
|
104
103
|
label: signal(label?.toString?.() ?? String(label)),
|
|
105
104
|
disabled: signal(disabled),
|
|
@@ -323,7 +322,7 @@ export class SimpleItemStorage {
|
|
|
323
322
|
}
|
|
324
323
|
const currentItem = this.highlightedItems().last();
|
|
325
324
|
const itemsWithoutDisabled = this._items().filter(item => !item.disabled() && (!this.isItemLimitReached() || item.selected()));
|
|
326
|
-
const currentIndexInItems = itemsWithoutDisabled.findIndex(item => item.index
|
|
325
|
+
const currentIndexInItems = itemsWithoutDisabled.findIndex(item => item.index === currentItem.index);
|
|
327
326
|
let nextItemIndex = currentIndexInItems + offset;
|
|
328
327
|
if (nextItemIndex >= itemsWithoutDisabled.length) {
|
|
329
328
|
nextItemIndex -= itemsWithoutDisabled.length;
|
|
@@ -341,4 +340,4 @@ export class SimpleItemStorage {
|
|
|
341
340
|
return this.highlightSingleItem(itemToHighlight);
|
|
342
341
|
}
|
|
343
342
|
}
|
|
344
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWl0ZW0tc3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvX2ludGVybmFsL2l0ZW0tc3RvcmFnZXMvc2ltcGxlLWl0ZW0tc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQXNCekUsTUFBTSxPQUFPLGlCQUFpQjtJQUs1QixZQUE2QixjQUFxQztRQUFyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFKakQsV0FBTSxHQUFHLE1BQU0sQ0FBb0IsRUFBRSxDQUFDLENBQUM7UUFDdkMsc0JBQWlCLEdBQUcsTUFBTSxDQUFvQixFQUFFLENBQUMsQ0FBQztRQUNsRCxtQkFBYyxHQUFHLE1BQU0sQ0FBb0IsRUFBRSxDQUFDLENBQUM7UUFJaEU7O1dBRUc7UUFDTSxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMxQzs7V0FFRztRQUNNLHFCQUFnQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoRTs7V0FFRztRQUNNLGtCQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMxRDs7V0FFRztRQUNNLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBVTNFOztXQUVHO1FBQ00seUJBQW9CLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElB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QUFFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQzVFLENBQUM7UUFDRixNQUFNLG1CQUFtQixHQUFHLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUV6RyxJQUFJLGFBQWEsR0FBRyxtQkFBbUIsR0FBRyxNQUFNLENBQUM7UUFDakQsSUFBSSxhQUFhLElBQUksb0JBQW9CLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakQsYUFBYSxJQUFJLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztRQUMvQyxDQUFDO1FBQ0QsSUFBSSxhQUFhLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEIsYUFBYSxJQUFJLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztRQUMvQyxDQUFDO1FBQ0QsTUFBTSxlQUFlLEdBQUcsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFNUQsSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1lBQ3RELElBQUksZUFBZSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDcEMsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkQsQ0FBQztDQU1GIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsLCBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHJlc29sdmVQYXRoIH0gZnJvbSAncmVzb2x2ZS1vYmplY3QtcGF0aCc7XHJcbmltcG9ydCB7IGV2YWx1YXRlLCBpc0RlZmluZWQsIGlzT2JqZWN0LCBpc1ByaW1pdGl2ZSB9IGZyb20gJ3NpbXBsZS1ib29sJztcclxuaW1wb3J0IHsgQXJkT3B0aW9uU2ltcGxlLCBDb21wYXJlV2l0aEZuIH0gZnJvbSAnLi4vLi4vdHlwZXMvaXRlbS1zdG9yYWdlLnR5cGVzJztcclxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi8uLi90eXBlcy91dGlsaXR5LnR5cGVzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbVN0b3JhZ2VIb3N0RGVmYXVsdHMge1xyXG4gIHZhbHVlRnJvbTogc3RyaW5nO1xyXG4gIGxhYmVsRnJvbTogc3RyaW5nO1xyXG4gIGRpc2FibGVkRnJvbTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlSXRlbVN0b3JhZ2VIb3N0IHtcclxuICByZWFkb25seSB2YWx1ZUZyb206IFNpZ25hbDxOdWxsYWJsZTxzdHJpbmc+PjtcclxuICByZWFkb25seSBsYWJlbEZyb206IFNpZ25hbDxOdWxsYWJsZTxzdHJpbmc+PjtcclxuICByZWFkb25seSBkaXNhYmxlZEZyb206IFNpZ25hbDxOdWxsYWJsZTxzdHJpbmc+PjtcclxuICByZWFkb25seSBpbnZlcnREaXNhYmxlZDogU2lnbmFsPGJvb2xlYW4+O1xyXG4gIHJlYWRvbmx5IERFRkFVTFRTOiBJdGVtU3RvcmFnZUhvc3REZWZhdWx0cztcclxuICByZWFkb25seSBjb21wYXJlV2l0aDogU2lnbmFsPE51bGxhYmxlPENvbXBhcmVXaXRoRm4+PjtcclxuICByZWFkb25seSBtdWx0aXNlbGVjdGFibGU6IFNpZ25hbDxib29sZWFuPjtcclxuICByZWFkb25seSBpc1ZhbHVlUmVxdWlyZWQ6IFNpZ25hbDxib29sZWFuPjtcclxuICByZWFkb25seSBtYXhTZWxlY3RlZEl0ZW1zOiBTaWduYWw8TnVsbGFibGU8bnVtYmVyPj47XHJcbiAgcmVhZG9ubHkgX2NvbXBvbmVudElkOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTaW1wbGVJdGVtU3RvcmFnZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfaXRlbXMgPSBzaWduYWw8QXJkT3B0aW9uU2ltcGxlW10+KFtdKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9oaWdobGlnaHRlZEl0ZW1zID0gc2lnbmFsPEFyZE9wdGlvblNpbXBsZVtdPihbXSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0ZWRJdGVtcyA9IHNpZ25hbDxBcmRPcHRpb25TaW1wbGVbXT4oW10pO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9hcmRQYXJlbnRDb21wOiBTaW1wbGVJdGVtU3RvcmFnZUhvc3QpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgYWxsIGl0ZW1zLlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGl0ZW1zID0gdGhpcy5faXRlbXMuYXNSZWFkb25seSgpO1xyXG4gIC8qKlxyXG4gICAqIEdldHMgYWxsIGN1cnJlbnRseSBoaWdobGlnaHRlZCBpdGVtcy5cclxuICAgKi9cclxuICByZWFkb25seSBoaWdobGlnaHRlZEl0ZW1zID0gdGhpcy5faGlnaGxpZ2h0ZWRJdGVtcy5hc1JlYWRvbmx5KCk7XHJcbiAgLyoqXHJcbiAgICogR2V0cyBhbGwgY3VycmVudGx5IHNlbGVjdGVkIGl0ZW1zLlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNlbGVjdGVkSXRlbXMgPSB0aGlzLl9zZWxlY3RlZEl0ZW1zLmFzUmVhZG9ubHkoKTtcclxuICAvKipcclxuICAgKiBHZXRzIHRoZSB2YWx1ZXMgb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBpdGVtcy5cclxuICAgKi9cclxuICByZWFkb25seSB2YWx1ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2l0ZW1zVG9WYWx1ZSh0aGlzLl9zZWxlY3RlZEl0ZW1zKCkpKTtcclxuICAvKipcclxuICAgKiBNYXBzIGFuIGFycmF5IG9mIGl0ZW1zIGludG8gdGhlaXIgdmFsdWVzLlxyXG4gICAqIEBwYXJhbSBpdGVtcyBUaGUgaXRlbXMgdG8gY29udmVydCB0byB2YWx1ZS5cclxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBpdGVtIHZhbHVlcy5cclxuICAgKi9cclxuICBwcml2YXRlIF9pdGVtc1RvVmFsdWUoaXRlbXM6IEFyZE9wdGlvblNpbXBsZVtdKTogYW55W10ge1xyXG4gICAgcmV0dXJuIGl0ZW1zLm1hcChpdGVtID0+IGl0ZW0udmFsdWUoKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRydWUgaWYgYXQgbGVhc3Qgb25lIGl0ZW0gaXMgaGlnaGxpZ2h0ZWQsIG90aGVyd2lzZSBmYWxzZS5cclxuICAgKi9cclxuICByZWFkb25seSBpc0FueUl0ZW1IaWdobGlnaHRlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2hpZ2hsaWdodGVkSXRlbXMoKS5sZW5ndGggPiAwKTtcclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHBhcmVudCBjb21wb25lbnQgZGVmaW5lcyB0aGUgbGltaXQgb2YgY29uY3VycmVudGx5IHNlbGVjdGFibGUgaXRlbXMgYW5kIHRoZSBhbW91bnQgb2YgY3VycmVudGx5IHNlbGVjdGVkIGl0ZW1zIG1hdGNoZXMgdGhhdCBsaW1pdC4gT3RoZXJ3aXNlIHJldHVybnMgZmFsc2UuXHJcbiAgICpcclxuICAgKiAqKlRMRFIqKjogdHJ1ZSBpZiBgbWF4U2VsZWN0ZWRJdGVtc2AgaXMgZGVmaW5lZCBhbmQgdGhlIG51bWJlciBvZiBzZWxlY3RlZCBpdGVtcyBtYXRjaGVzIHRoYXQgdmFsdWUuXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaXNJdGVtTGltaXRSZWFjaGVkID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgY29uc3QgbXNpID0gdGhpcy5fYXJkUGFyZW50Q29tcC5tYXhTZWxlY3RlZEl0ZW1zKCk7XHJcbiAgICBpZiAoIXRoaXMuX2FyZFBhcmVudENvbXAubXVsdGlzZWxlY3RhYmxlKCkgfHwgIWlzRGVmaW5lZChtc2kpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBtc2kgPD0gdGhpcy5zZWxlY3RlZEl0ZW1zKCkubGVuZ3RoO1xyXG4gIH0pO1xyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBjb21wb25lbnQncyBpdGVtcy4gVGFrZXMgaW50byBhY2NvdW50IHRoZSB2YWx1ZXMgZGVmaW5lZCBieSB0aGUgcGFyZW50IGNvbXBvbmVudCBmb3IgYHZhbHVlRnJvbWAsIGBsYWJlbEZyb21gLCBhbmQgYGRpc2FibGVkRnJvbWAuXHJcbiAgICogQHBhcmFtIGl0ZW1zIEFuIGFycmF5IG9mIGl0ZW1zIHRvIGJlIHNldCBhcyB0aGUgY29tcG9uZW50J3MgaXRlbXMuXHJcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBhdCBsZWFzdCBvbmUgb2YgdGhlIGl0ZW1zIGlzIG9mIHByaW1pdGl2ZSB0eXBlLCBvdGhlcndpc2UgZmFsc2UuXHJcbiAgICovXHJcbiAgc2V0SXRlbXMoaXRlbXM6IHVua25vd25bXSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGFyZUl0ZW1zUHJpbWl0aXZlID0gZmFsc2U7XHJcbiAgICBpZiAoaXRlbXMuc29tZShpc1ByaW1pdGl2ZSkpIHtcclxuICAgICAgaXRlbXMgPSBpdGVtcy5tYXAodGhpcy5fcHJpbWl0aXZlSXRlbXNNYXBGbik7XHJcbiAgICAgIGFyZUl0ZW1zUHJpbWl0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9pdGVtcy5zZXQoXHJcbiAgICAgIGl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2V0SXRlbXNNYXBGbihpdGVtLCBpbmRleCwgYXJlSXRlbXNQcmltaXRpdmUpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gYXJlSXRlbXNQcmltaXRpdmU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3ByaW1pdGl2ZUl0ZW1zTWFwRm48VD4oaXRlbTogVCk6IHsgdmFsdWU6IFQgfSB7XHJcbiAgICByZXR1cm4geyB2YWx1ZTogaXRlbSB9O1xyXG4gIH1cclxuICBwcml2YXRlIF9zZXRJdGVtc01hcEZuKHJhd0l0ZW1EYXRhOiBhbnksIGluZGV4OiBudW1iZXIsIGFyZUl0ZW1zUHJpbWl0aXZlOiBib29sZWFuKTogQXJkT3B0aW9uU2ltcGxlIHtcclxuICAgIGlmIChhcmVJdGVtc1ByaW1pdGl2ZSkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGl0ZW1EYXRhOiBzaWduYWwocmF3SXRlbURhdGEpLFxyXG4gICAgICAgIGluZGV4OiBzaWduYWwoaW5kZXgpLFxyXG4gICAgICAgIHZhbHVlOiBzaWduYWwocmF3SXRlbURhdGEudmFsdWUpLFxyXG4gICAgICAgIGxhYmVsOiBzaWduYWwocmF3SXRlbURhdGEudmFsdWU/LnRvU3RyaW5nPy4oKSA/PyBTdHJpbmcocmF3SXRlbURhdGEudmFsdWUpKSxcclxuICAgICAgICBkaXNhYmxlZDogc2lnbmFsKGZhbHNlKSxcclxuICAgICAgICBzZWxlY3RlZDogc2lnbmFsKGZhbHNlKSxcclxuICAgICAgICBoaWdobGlnaHRlZDogc2lnbmFsKGZhbHNlKSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIC8vZ2V0IHZhbHVlXHJcbiAgICBjb25zdCB2YWx1ZVBhdGggPVxyXG4gICAgICB0aGlzLl9hcmRQYXJlbnRDb21wLnZhbHVlRnJvbSgpID8/IHRoaXMuX2FyZFBhcmVudENvbXAubGFiZWxGcm9tKCkgPz8gdGhpcy5fYXJkUGFyZW50Q29tcC5ERUZBVUxUUy52YWx1ZUZyb207XHJcbiAgICBjb25zdCB2YWx1ZSA9IHJlc29sdmVQYXRoKHJhd0l0ZW1EYXRhLCB2YWx1ZVBhdGgpO1xyXG5cclxuICAgIC8vZ2V0IGxhYmVsXHJcbiAgICBjb25zdCBsYWJlbFBhdGggPVxyXG4gICAgICB0aGlzLl9hcmRQYXJlbnRDb21wLmxhYmVsRnJvbSgpID8/IHRoaXMuX2FyZFBhcmVudENvbXAudmFsdWVGcm9tKCkgPz8gdGhpcy5fYXJkUGFyZW50Q29tcC5ERUZBVUxUUy5sYWJlbEZyb207XHJcbiAgICBjb25zdCBsYWJlbCA9IHJlc29sdmVQYXRoKHJhd0l0ZW1EYXRhLCBsYWJlbFBhdGgpID8/IHZhbHVlO1xyXG5cclxuICAgIC8vZ2V0IGRpc2FibGVkXHJcbiAgICBjb25zdCBkaXNhYmxlZFBhdGggPSB0aGlzLl9hcmRQYXJlbnRDb21wLmRpc2FibGVkRnJvbSgpID8/IHRoaXMuX2FyZFBhcmVudENvbXAuREVGQVVMVFMuZGlzYWJsZWRGcm9tO1xyXG4gICAgbGV0IGRpc2FibGVkID0gZXZhbHVhdGUocmVzb2x2ZVBhdGgocmF3SXRlbURhdGEsIGRpc2FibGVkUGF0aCkpO1xyXG4gICAgaWYgKHRoaXMuX2FyZFBhcmVudENvbXAuaW52ZXJ0RGlzYWJsZWQoKSkge1xyXG4gICAgICBkaXNhYmxlZCA9ICFkaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICAvL3JldHVyblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaXRlbURhdGE6IHNpZ25hbChyYXdJdGVtRGF0YSksXHJcbiAgICAgIGluZGV4OiBzaWduYWwoaW5kZXgpLFxyXG4gICAgICB2YWx1ZTogc2lnbmFsKHZhbHVlKSxcclxuICAgICAgbGFiZWw6IHNpZ25hbChsYWJlbD8udG9TdHJpbmc/LigpID8/IFN0cmluZyhsYWJlbCkpLFxyXG4gICAgICBkaXNhYmxlZDogc2lnbmFsKGRpc2FibGVkKSxcclxuICAgICAgc2VsZWN0ZWQ6IHNpZ25hbChmYWxzZSksXHJcbiAgICAgIGhpZ2hsaWdodGVkOiBzaWduYWwoZmFsc2UpLFxyXG4gICAgfTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogV3JpdGVzIGEgbmV3IHZhbHVlIHRvIHRoZSBpdGVtIHN0b3JhZ2UuIFNlbGVjdHMgdGhlIGNvcnJlY3QgaXRlbXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHZhbHVlcywgd2FybmluZyB0aGUgdXNlciBpZiB0aGUgdmFsdWUgaXMgbm90IGZvdW5kLlxyXG4gICAqIEBwYXJhbSBuZ01vZGVsIFRoZSB2YWx1ZSBvZiB0aGUgbmdNb2RlbCB0byBzZXQuXHJcbiAgICovXHJcbiAgd3JpdGVWYWx1ZShuZ01vZGVsOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5fZm9yY2VVbnNlbGVjdEFsbCgpO1xyXG5cclxuICAgIGlmICghdGhpcy5fdmFsaWRhdGVXcml0ZVZhbHVlKG5nTW9kZWwpKSByZXR1cm47XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0SXRlbUJ5VmFsdWUgPSAodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5maW5kSXRlbUJ5VmFsdWUodmFsdWUpO1xyXG5cclxuICAgICAgaWYgKGl0ZW0pIHtcclxuICAgICAgICB0aGlzLnNlbGVjdEl0ZW0oaXRlbSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICBgQVJELVdBJHt0aGlzLl9hcmRQYXJlbnRDb21wLl9jb21wb25lbnRJZH0xOiBDb3VsZG4ndCBmaW5kIGFuIGl0ZW0gd2l0aCB2YWx1ZSAke3ZhbHVlPy50b1N0cmluZz8uKCkgfHwgU3RyaW5nKHZhbHVlKX0uYFxyXG4gICAgICApO1xyXG4gICAgfTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IG1vZGVsVmFsdWUgb2YgbmdNb2RlbCkge1xyXG4gICAgICBzZWxlY3RJdGVtQnlWYWx1ZShtb2RlbFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdGVzIHRoYXQgYWxsIHZhbHVlcyBvZiB0aGUgdmFsdWUgdG8gYmUgd3JpdHRlbiBhcmUgYWJsZSB0byBiZSBhY2N1cmF0ZWx5IGNvbXBhcmVkIGFnYWluc3QgdGhlIHN0b3JhZ2UgaXRlbXMuXHJcbiAgICpcclxuICAgKiBBbiBpdGVtIGZyb20gdGhlIG5nTW9kZWwgYXJyYXkgaXMgY29uc2lkZXJlZCB2YWxpZCBpZiBpdCBpcyBhIHByaW1pdGl2ZSB2YWx1ZSwgb3IgaWYgYWxsIG9mIHRoZSBiZWxvdyBwb2ludHMgYXJlIG1ldDpcclxuICAgKiAxLiBUaGUgcGFyZW50IGNvbXBvbmVudCBkZWZpbmVzIHRoZSBgY29tcGFyZVdpdGhgIHByb3BlcnR5LlxyXG4gICAqIDIuIFRoZSBuZ01vZGVsIHZhbHVlIGl0ZW0gaXMgYW4gb2JqZWN0IChvciBhcnJheSkuXHJcbiAgICogMy4gVGhlIHBhcmVudCBjb21wb25lbnQgaGFzIGEgZGVmaW5lZCBgdmFsdWVGcm9tYCBwcm9wZXJ0eS5cclxuICAgKiBAcGFyYW0gbmdNb2RlbCBUaGUgdmFsdWUgb2YgbmdNb2RlbCB0byB2YWxpZGF0ZS5cclxuICAgKiBAcmV0dXJucyB0cnVlIGlmIGFsbCBpdGVtcyBhcmUgdmFsaWQsIG90aGVyd2lzZSBmYWxzZS5cclxuICAgKi9cclxuICBwcml2YXRlIF92YWxpZGF0ZVdyaXRlVmFsdWUobmdNb2RlbDogYW55W10pOiBib29sZWFuIHtcclxuICAgIHJldHVybiBuZ01vZGVsLmV2ZXJ5KGl0ZW0gPT4ge1xyXG4gICAgICBpZiAoIWlzRGVmaW5lZCh0aGlzLl9hcmRQYXJlbnRDb21wLmNvbXBhcmVXaXRoKCkpICYmIGlzT2JqZWN0KGl0ZW0pICYmIHRoaXMuX2FyZFBhcmVudENvbXAudmFsdWVGcm9tKCkpIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICBgQVJELUZUJHt0aGlzLl9hcmRQYXJlbnRDb21wLl9jb21wb25lbnRJZH0wOiBTZXR0aW5nIG9iamVjdCgke0pTT04uc3RyaW5naWZ5KFxyXG4gICAgICAgICAgICBpdGVtXHJcbiAgICAgICAgICApfSkgYXMgeW91ciBtb2RlbCB3aXRoIFt2YWx1ZUZyb21dIGlzIG5vdCBhbGxvd2VkIHVubGVzcyBbY29tcGFyZVdpdGhdIGlzIHVzZWQuYFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGZpbmRJdGVtQnlWYWx1ZSh2YWx1ZVRvRmluZDogYW55KTogQXJkT3B0aW9uU2ltcGxlIHwgdW5kZWZpbmVkIHtcclxuICAgIGxldCBmaW5kQnk6IChpdGVtOiBBcmRPcHRpb25TaW1wbGUpID0+IGJvb2xlYW47XHJcbiAgICBjb25zdCBjbXBGbiA9IHRoaXMuX2FyZFBhcmVudENvbXAuY29tcGFyZVdpdGgoKTtcclxuICAgIGlmIChpc0RlZmluZWQoY21wRm4pKSB7XHJcbiAgICAgIGZpbmRCeSA9IGl0ZW0gPT4gY21wRm4odmFsdWVUb0ZpbmQsIGl0ZW0udmFsdWUoKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmaW5kQnkgPSBpdGVtID0+IGl0ZW0udmFsdWUoKSA9PT0gdmFsdWVUb0ZpbmQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5faXRlbXMoKS5maW5kKGl0ZW0gPT4gZmluZEJ5KGl0ZW0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuc2VsZWN0cyBhbGwgc2VsZWN0ZWQgaXRlbXMuXHJcbiAgICpcclxuICAgKiBJZiB0aGUgcGFyZW50IGNvbXBvbmVudCByZXF1aXJlcyBhdCBsZWFzdCBvbmUgdmFsdWUgdG8gYmUgc2VsZWN0ZWQgYXQgYWxsIHRpbWVzLCB0aGUgZmlyc3Qgc2VsZWN0ZWQgaXRlbXMgaXMgbGVmdCBzZWxlY3RlZC5cclxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBpdGVtcyBjbGVhcmVkLCBtYXBwZWQgdG8gb25seSB0aGVpciB2YWx1ZXMuXHJcbiAgICovXHJcbiAgdW5zZWxlY3RBbGwoKTogYW55W10ge1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuX3NlbGVjdGVkSXRlbXMoKSkge1xyXG4gICAgICBpdGVtLnNlbGVjdGVkLnNldChmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmV0ID0gdGhpcy52YWx1ZSgpO1xyXG5cclxuICAgIGlmICh0aGlzLl9hcmRQYXJlbnRDb21wLmlzVmFsdWVSZXF1aXJlZCgpICYmIHRoaXMuX3NlbGVjdGVkSXRlbXMoKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMoKS5maXJzdCgpLnNlbGVjdGVkLnNldCh0cnVlKTtcclxuICAgICAgcmV0LnNwbGljZSgwLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zLnNldChbXSk7XHJcblxyXG4gICAgcmV0dXJuIHJldDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogVW5zZWxlY3RzIGFsbCBzZWxlY3RlZCBpdGVtcywgbm8gbWF0dGVyIHdoYXQgdGhlIGNvbXBvbmVudCBzZXR0aW5ncyBhcmUuXHJcbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgaXRlbXMgY2xlYXJlZCwgbWFwcGVkIHRvIG9ubHkgdGhlaXIgdmFsdWVzLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2ZvcmNlVW5zZWxlY3RBbGwoKTogYW55W10ge1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuX3NlbGVjdGVkSXRlbXMoKSkge1xyXG4gICAgICBpdGVtLnNlbGVjdGVkLnNldChmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmV0ID0gdGhpcy5faXRlbXNUb1ZhbHVlKHRoaXMuX3NlbGVjdGVkSXRlbXMoKSk7XHJcblxyXG4gICAgdGhpcy5fc2VsZWN0ZWRJdGVtcy5zZXQoW10pO1xyXG5cclxuICAgIHJldHVybiByZXQ7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNlbGVjdHMgb25lIG9yIG11bHRpcGxlIGl0ZW1zLlxyXG4gICAqXHJcbiAgICogQWNjb3VudHMgZm9yIHRoZSBsaW1pdCBvZiBjb25jdXJyZW50bHkgc2VsZWN0ZWQgaXRlbXMgZGVmaW5lZCBieSB0aGUgcGFyZW50IGNvbXBvbmVudC5cclxuICAgKiBAcGFyYW0gaXRlbXMgQSByZXN0IG9wZXJhdG9yIGFycmF5IG9mIGl0ZW0gb2JqZWN0cyB0byBiZSBzZWxlY3RlZC5cclxuICAgKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhyZWUgYXJyYXlzLCBhbGwgbWFwcGVkIHRvIG9ubHkgdGhlaXIgdmFsdWVzOlxyXG4gICAqIC0gQW4gYXJyYXkgb2YgaXRlbXMgc2VsZWN0ZWQsXHJcbiAgICogLSBBbiBhcnJheSBvZiBpdGVtcyB1bnNlbGVjdGVkLFxyXG4gICAqIC0gQW4gYXJyYXkgb2YgaXRlbXMgZmFpbGVkIHRvIHNlbGVjdCBkdWUgdG8gdGhlIGxpbWl0LlxyXG4gICAqL1xyXG4gIHNlbGVjdEl0ZW0oLi4uaXRlbXM6IEFyZE9wdGlvblNpbXBsZVtdKTogW2FueVtdLCBhbnlbXSwgYW55W11dIHtcclxuICAgIGlmICh0aGlzLmlzSXRlbUxpbWl0UmVhY2hlZCgpKSB7XHJcbiAgICAgIHJldHVybiBbW10sIFtdLCB0aGlzLl9pdGVtc1RvVmFsdWUoaXRlbXMpXTtcclxuICAgIH1cclxuICAgIGxldCB1bnNlbGVjdGVkID0gW107XHJcbiAgICBpZiAoIXRoaXMuX2FyZFBhcmVudENvbXAubXVsdGlzZWxlY3RhYmxlKCkpIHtcclxuICAgICAgdW5zZWxlY3RlZCA9IHRoaXMuX2ZvcmNlVW5zZWxlY3RBbGwoKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaXRlbXNTZWxlY3RlZENvdW50ID0gMDtcclxuICAgIGNvbnN0IGl0ZW1zU2VsZWN0ZWQ6IEFyZE9wdGlvblNpbXBsZVtdID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcclxuICAgICAgaXRlbXNTZWxlY3RlZENvdW50Kys7XHJcbiAgICAgIGlmIChpdGVtLnNlbGVjdGVkKCkpIGNvbnRpbnVlO1xyXG4gICAgICBpZiAodGhpcy5pc0l0ZW1MaW1pdFJlYWNoZWQoKSkge1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGl0ZW0uc2VsZWN0ZWQuc2V0KHRydWUpO1xyXG4gICAgICBpdGVtc1NlbGVjdGVkLnB1c2goaXRlbSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zLnVwZGF0ZSh2ID0+IFsuLi52LCAuLi5pdGVtc1NlbGVjdGVkXSk7XHJcblxyXG4gICAgY29uc3QgaXRlbXNGYWlsZWRUb1NlbGVjdCA9IGl0ZW1zLnNsaWNlKGl0ZW1zU2VsZWN0ZWRDb3VudCAtIDEpO1xyXG4gICAgcmV0dXJuIFt0aGlzLl9pdGVtc1RvVmFsdWUoaXRlbXNTZWxlY3RlZCksIHVuc2VsZWN0ZWQsIHRoaXMuX2l0ZW1zVG9WYWx1ZShpdGVtc0ZhaWxlZFRvU2VsZWN0KV07XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGl0ZW1zIEEgcmVzdCBvcGVyYXRvciBhcnJheSBvZiBpdGVtIG9iamVjdHMgdG8gYmUgdW5zZWxlY3RlZC5cclxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBpdGVtcyB1bnNlbGVjdGVkLCBtYXBwZWQgdG8gb25seSB0aGVpciB2YWx1ZXMuXHJcbiAgICovXHJcbiAgdW5zZWxlY3RJdGVtKC4uLml0ZW1zOiBBcmRPcHRpb25TaW1wbGVbXSk6IGFueVtdIHtcclxuICAgIGxldCBza2lwcGVkSXRlbSA9IGZhbHNlO1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XHJcbiAgICAgIGlmICh0aGlzLl9hcmRQYXJlbnRDb21wLmlzVmFsdWVSZXF1aXJlZCgpICYmICFza2lwcGVkSXRlbSkge1xyXG4gICAgICAgIHNraXBwZWRJdGVtID0gdHJ1ZTtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCFpdGVtLnNlbGVjdGVkKCkpIGNvbnRpbnVlO1xyXG4gICAgICBpdGVtLnNlbGVjdGVkLnNldChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zLnVwZGF0ZSh2ID0+IHYuZmlsdGVyKHYgPT4gdi5zZWxlY3RlZCgpKSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zVG9WYWx1ZShpdGVtcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbmhpZ2hsaWdodHMgYWxsIGN1cnJlbnRseSBoaWdobGlnaHRlZCBpdGVtcy5cclxuICAgKi9cclxuICB1bmhpZ2hsaWdodEFsbCgpOiB2b2lkIHtcclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLl9oaWdobGlnaHRlZEl0ZW1zKCkpIHtcclxuICAgICAgaXRlbS5oaWdobGlnaHRlZC5zZXQoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5faGlnaGxpZ2h0ZWRJdGVtcy5zZXQoW10pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBIaWdobGlnaHRzIHRoZSBnaXZlbiBpdGVtLCB3aGlsZSB1bmhpZ2hsaWdodGluZyBhbGwgb3RoZXIgaXRlbXMuIERvZXMgbm90aGluZyB3aGVuIHRoZSBpdGVtIGlzIGRpc2FibGVkLlxyXG4gICAqIEBwYXJhbSBpdGVtIFRoZSBpdGVtIHRvIGJlIGhpZ2hsaWdodGVkLlxyXG4gICAqIEByZXR1cm5zIFRoZSBoaWdobGlnaHRlZCBpdGVtLlxyXG4gICAqL1xyXG4gIGhpZ2hsaWdodFNpbmdsZUl0ZW0oaXRlbTogQXJkT3B0aW9uU2ltcGxlKTogQXJkT3B0aW9uU2ltcGxlIHwgbnVsbCB7XHJcbiAgICBpZiAoIWl0ZW0gfHwgaXRlbS5kaXNhYmxlZCgpKSByZXR1cm4gbnVsbDtcclxuICAgIHRoaXMudW5oaWdobGlnaHRBbGwoKTtcclxuICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodEl0ZW0oaXRlbSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEhpZ2hsaWdodHMgYWxsIGdpdmVuIGl0ZW1zLlxyXG4gICAqIEBwYXJhbSBpdGVtcyBBIHJlc3Qgb3BlcmF0b3IgYXJyYXkgb2YgaXRlbXMgdG8gYmUgaGlnaGxpZ2h0ZWQuXHJcbiAgICogQHJldHVybnMgVGhlIGxhc3QgaGlnaGxpZ2h0ZWQgaXRlbS5cclxuICAgKi9cclxuICBoaWdobGlnaHRJdGVtKC4uLml0ZW1zOiBBcmRPcHRpb25TaW1wbGVbXSk6IEFyZE9wdGlvblNpbXBsZSB7XHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcclxuICAgICAgaXRlbS5oaWdobGlnaHRlZC5zZXQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9oaWdobGlnaHRlZEl0ZW1zLnVwZGF0ZSh2ID0+IFsuLi52LCAuLi5pdGVtc10pO1xyXG4gICAgcmV0dXJuIGl0ZW1zLmxhc3QoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogVW5oaWdobGlnaHRzIGFsbCBnaXZlbiBpdGVtcy5cclxuICAgKiBAcGFyYW0gaXRlbXMgQSByZXN0IG9wZXJhdG9yIGFycmF5IG9mIGl0ZW1zIHRvIGJlIHVuaGlnaGxpZ2h0ZWQuXHJcbiAgICovXHJcbiAgdW5oaWdobGlnaHRJdGVtKC4uLml0ZW1zOiBBcmRPcHRpb25TaW1wbGVbXSk6IHZvaWQge1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XHJcbiAgICAgIGlmICghaXRlbSB8fCAhaXRlbS5oaWdobGlnaHRlZCgpKSByZXR1cm47XHJcblxyXG4gICAgICBpdGVtLmhpZ2hsaWdodGVkLnNldChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9oaWdobGlnaHRlZEl0ZW1zLnVwZGF0ZSh2ID0+IHYuZmlsdGVyKHYgPT4gdi5oaWdobGlnaHRlZCgpKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEhpZ2hsaWdodHMgdGhlIGZpcnN0IGl0ZW0gb3V0IG9mIGFsbCBpdGVtcy5cclxuICAgKiBAcmV0dXJucyBUaGUgaGlnaGxpZ2h0ZWQgaXRlbS5cclxuICAgKi9cclxuICBoaWdobGlnaHRGaXJzdEl0ZW0oKTogQXJkT3B0aW9uU2ltcGxlIHwgbnVsbCB7XHJcbiAgICB0aGlzLnVuaGlnaGxpZ2h0QWxsKCk7XHJcblxyXG4gICAgY29uc3QgaXRlbVRvSGlnaGxpZ2h0ID0gdGhpcy5oaWdobGlnaHRhYmxlSXRlbXMoKS5maXJzdCgpO1xyXG4gICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0SXRlbShpdGVtVG9IaWdobGlnaHQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBIaWdobGlnaHRzIHRoZSBsYXN0IGl0ZW0gb3V0IG9mIGFsbCBpdGVtcy5cclxuICAgKiBAcmV0dXJucyBUaGUgaGlnaGxpZ2h0ZWQgaXRlbS5cclxuICAgKi9cclxuICBoaWdobGlnaHRMYXN0SXRlbSgpOiBBcmRPcHRpb25TaW1wbGUgfCBudWxsIHtcclxuICAgIHRoaXMudW5oaWdobGlnaHRBbGwoKTtcclxuXHJcbiAgICBjb25zdCBpdGVtVG9IaWdobGlnaHQgPSB0aGlzLmhpZ2hsaWdodGFibGVJdGVtcygpLmxhc3QoKTtcclxuICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodEl0ZW0oaXRlbVRvSGlnaGxpZ2h0KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSGlnaGxpZ2h0cyBhbGwgbm9uLWRpc2FibGVkIGl0ZW1zLlxyXG4gICAqL1xyXG4gIGhpZ2hsaWdodEFsbEl0ZW1zKCk6IHZvaWQge1xyXG4gICAgY29uc3QgaXRlbXNUb0hpZ2hsaWdodCA9IHRoaXMuaGlnaGxpZ2h0YWJsZUl0ZW1zKCk7XHJcblxyXG4gICAgdGhpcy5oaWdobGlnaHRJdGVtKC4uLml0ZW1zVG9IaWdobGlnaHQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBIaWdobGlnaHRzIHRoZSBuZXh0IG5vbi1kaXNhYmxlZCBpdGVtIGRlZmluZWQgYnkgdGhlIG9mZnNldCBhbW91bnQuXHJcbiAgICpcclxuICAgKiBJZiBgaGFzU2hpZnRgIGlzIHNldCB0byB0cnVlLCBhbGwgb3JpZ2luYWxseSBoaWdobGlnaHRlZCBpdGVtcyBhcmUga2VwdC4gT3RoZXJ3aXNlLCBhbGwgb3JpZ2luYWwgaXRlbXMgYXJlIHVuc2VsZWN0ZWQuXHJcbiAgICogQHBhcmFtIG9mZnNldCBUaGUgYW1vdW50IG9mIGl0ZW1zIHRvIG9mZnNldCB0aGUgaGlnaGxpZ2h0IGJ5LlxyXG4gICAqIEBwYXJhbSBoYXNTaGlmdCBXaGV0aGVyIHRoZSB1c2VyIGhhcyB0aGUgc2hpZnQga2V5IHByZXNzZWQuXHJcbiAgICogQHJldHVybnMgVGhlIGl0ZW0gaGlnaGxpZ2h0ZWQuXHJcbiAgICovXHJcbiAgaGlnaGxpZ2h0TmV4dEl0ZW0ob2Zmc2V0OiBudW1iZXIsIGhhc1NoaWZ0PzogYm9vbGVhbik6IEFyZE9wdGlvblNpbXBsZSB8IG51bGwge1xyXG4gICAgaWYgKCF0aGlzLmlzQW55SXRlbUhpZ2hsaWdodGVkKCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0Rmlyc3RJdGVtKCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjdXJyZW50SXRlbSA9IHRoaXMuaGlnaGxpZ2h0ZWRJdGVtcygpLmxhc3QoKTtcclxuICAgIGNvbnN0IGl0ZW1zV2l0aG91dERpc2FibGVkID0gdGhpcy5faXRlbXMoKS5maWx0ZXIoXHJcbiAgICAgIGl0ZW0gPT4gIWl0ZW0uZGlzYWJsZWQoKSAmJiAoIXRoaXMuaXNJdGVtTGltaXRSZWFjaGVkKCkgfHwgaXRlbS5zZWxlY3RlZCgpKVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGN1cnJlbnRJbmRleEluSXRlbXMgPSBpdGVtc1dpdGhvdXREaXNhYmxlZC5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmluZGV4KCkgPT09IGN1cnJlbnRJdGVtLmluZGV4KCkpO1xyXG5cclxuICAgIGxldCBuZXh0SXRlbUluZGV4ID0gY3VycmVudEluZGV4SW5JdGVtcyArIG9mZnNldDtcclxuICAgIGlmIChuZXh0SXRlbUluZGV4ID49IGl0ZW1zV2l0aG91dERpc2FibGVkLmxlbmd0aCkge1xyXG4gICAgICBuZXh0SXRlbUluZGV4IC09IGl0ZW1zV2l0aG91dERpc2FibGVkLmxlbmd0aDtcclxuICAgIH1cclxuICAgIGlmIChuZXh0SXRlbUluZGV4IDwgMCkge1xyXG4gICAgICBuZXh0SXRlbUluZGV4ICs9IGl0ZW1zV2l0aG91dERpc2FibGVkLmxlbmd0aDtcclxuICAgIH1cclxuICAgIGNvbnN0IGl0ZW1Ub0hpZ2hsaWdodCA9IGl0ZW1zV2l0aG91dERpc2FibGVkW25leHRJdGVtSW5kZXhdO1xyXG5cclxuICAgIGlmIChoYXNTaGlmdCAmJiB0aGlzLl9hcmRQYXJlbnRDb21wLm11bHRpc2VsZWN0YWJsZSgpKSB7XHJcbiAgICAgIGlmIChpdGVtVG9IaWdobGlnaHQuaGlnaGxpZ2h0ZWQoKSkge1xyXG4gICAgICAgIHRoaXMudW5oaWdobGlnaHRJdGVtKGN1cnJlbnRJdGVtKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5oaWdobGlnaHRJdGVtKGl0ZW1Ub0hpZ2hsaWdodCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5oaWdobGlnaHRTaW5nbGVJdGVtKGl0ZW1Ub0hpZ2hsaWdodCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEZpbmRzIGFsbCBoaWdobGlnaHRhYmxlIGl0ZW1zLiBBbiBpdGVtIGlzIGNvbnNpZGVyZWQgaGlnaGxpZ2h0YWJsZSBpZiBpdCBpcyAqKm5vdCoqIGRpc2FibGVkLlxyXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGFsbCBoaWdobGlnaHRhYmxlIGl0ZW1zLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaGlnaGxpZ2h0YWJsZUl0ZW1zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5faXRlbXMoKS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5kaXNhYmxlZCgpKSk7XHJcbn1cclxuIl19
|
|
343
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWl0ZW0tc3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvX2ludGVybmFsL2l0ZW0tc3RvcmFnZXMvc2ltcGxlLWl0ZW0tc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQXNCekUsTUFBTSxPQUFPLGlCQUFpQjtJQUs1QixZQUE2QixjQUFxQztRQUFyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFKakQsV0FBTSxHQUFHLE1BQU0sQ0FBb0IsRUFBRSxDQUFDLENBQUM7UUFDdkMsc0JBQWlCLEdBQUcsTUFBTSxDQUFvQixFQUFFLENBQUMsQ0FBQztRQUNsRCxtQkFBYyxHQUFHLE1BQU0sQ0FBb0IsRUFBRSxDQUFDLENBQUM7UUFJaEU7O1dBRUc7UUFDTSxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMxQzs7V0FFRztRQUNNLHFCQUFnQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoRTs7V0FFRztRQUNNLGtCQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMxRDs7V0FFRztRQUNNLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBVTNFOztXQUVHO1FBQ00seUJBQW9CLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElB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bUJBQW1CLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFckcsSUFBSSxhQUFhLEdBQUcsbUJBQW1CLEdBQUcsTUFBTSxDQUFDO1FBQ2pELElBQUksYUFBYSxJQUFJLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pELGFBQWEsSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7UUFDL0MsQ0FBQztRQUNELElBQUksYUFBYSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RCLGFBQWEsSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7UUFDL0MsQ0FBQztRQUNELE1BQU0sZUFBZSxHQUFHLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTVELElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztZQUN0RCxJQUFJLGVBQWUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7Q0FNRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmVzb2x2ZVBhdGggfSBmcm9tICdyZXNvbHZlLW9iamVjdC1wYXRoJztcbmltcG9ydCB7IGV2YWx1YXRlLCBpc0RlZmluZWQsIGlzT2JqZWN0LCBpc1ByaW1pdGl2ZSB9IGZyb20gJ3NpbXBsZS1ib29sJztcbmltcG9ydCB7IEFyZE9wdGlvblNpbXBsZSwgQ29tcGFyZVdpdGhGbiB9IGZyb20gJy4uLy4uL3R5cGVzL2l0ZW0tc3RvcmFnZS50eXBlcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1TdG9yYWdlSG9zdERlZmF1bHRzIHtcbiAgdmFsdWVGcm9tOiBzdHJpbmc7XG4gIGxhYmVsRnJvbTogc3RyaW5nO1xuICBkaXNhYmxlZEZyb206IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlSXRlbVN0b3JhZ2VIb3N0IHtcbiAgcmVhZG9ubHkgdmFsdWVGcm9tOiBTaWduYWw8TnVsbGFibGU8c3RyaW5nPj47XG4gIHJlYWRvbmx5IGxhYmVsRnJvbTogU2lnbmFsPE51bGxhYmxlPHN0cmluZz4+O1xuICByZWFkb25seSBkaXNhYmxlZEZyb206IFNpZ25hbDxOdWxsYWJsZTxzdHJpbmc+PjtcbiAgcmVhZG9ubHkgaW52ZXJ0RGlzYWJsZWQ6IFNpZ25hbDxib29sZWFuPjtcbiAgcmVhZG9ubHkgREVGQVVMVFM6IEl0ZW1TdG9yYWdlSG9zdERlZmF1bHRzO1xuICByZWFkb25seSBjb21wYXJlV2l0aDogU2lnbmFsPE51bGxhYmxlPENvbXBhcmVXaXRoRm4+PjtcbiAgcmVhZG9ubHkgbXVsdGlzZWxlY3RhYmxlOiBTaWduYWw8Ym9vbGVhbj47XG4gIHJlYWRvbmx5IGlzVmFsdWVSZXF1aXJlZDogU2lnbmFsPGJvb2xlYW4+O1xuICByZWFkb25seSBtYXhTZWxlY3RlZEl0ZW1zOiBTaWduYWw8TnVsbGFibGU8bnVtYmVyPj47XG4gIHJlYWRvbmx5IF9jb21wb25lbnRJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgU2ltcGxlSXRlbVN0b3JhZ2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF9pdGVtcyA9IHNpZ25hbDxBcmRPcHRpb25TaW1wbGVbXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9oaWdobGlnaHRlZEl0ZW1zID0gc2lnbmFsPEFyZE9wdGlvblNpbXBsZVtdPihbXSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdGVkSXRlbXMgPSBzaWduYWw8QXJkT3B0aW9uU2ltcGxlW10+KFtdKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9hcmRQYXJlbnRDb21wOiBTaW1wbGVJdGVtU3RvcmFnZUhvc3QpIHt9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIGl0ZW1zLlxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbXMgPSB0aGlzLl9pdGVtcy5hc1JlYWRvbmx5KCk7XG4gIC8qKlxuICAgKiBHZXRzIGFsbCBjdXJyZW50bHkgaGlnaGxpZ2h0ZWQgaXRlbXMuXG4gICAqL1xuICByZWFkb25seSBoaWdobGlnaHRlZEl0ZW1zID0gdGhpcy5faGlnaGxpZ2h0ZWRJdGVtcy5hc1JlYWRvbmx5KCk7XG4gIC8qKlxuICAgKiBHZXRzIGFsbCBjdXJyZW50bHkgc2VsZWN0ZWQgaXRlbXMuXG4gICAqL1xuICByZWFkb25seSBzZWxlY3RlZEl0ZW1zID0gdGhpcy5fc2VsZWN0ZWRJdGVtcy5hc1JlYWRvbmx5KCk7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSB2YWx1ZXMgb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBpdGVtcy5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5faXRlbXNUb1ZhbHVlKHRoaXMuX3NlbGVjdGVkSXRlbXMoKSkpO1xuICAvKipcbiAgICogTWFwcyBhbiBhcnJheSBvZiBpdGVtcyBpbnRvIHRoZWlyIHZhbHVlcy5cbiAgICogQHBhcmFtIGl0ZW1zIFRoZSBpdGVtcyB0byBjb252ZXJ0IHRvIHZhbHVlLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBpdGVtIHZhbHVlcy5cbiAgICovXG4gIHByaXZhdGUgX2l0ZW1zVG9WYWx1ZShpdGVtczogQXJkT3B0aW9uU2ltcGxlW10pOiBhbnlbXSB7XG4gICAgcmV0dXJuIGl0ZW1zLm1hcChpdGVtID0+IGl0ZW0udmFsdWUoKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGF0IGxlYXN0IG9uZSBpdGVtIGlzIGhpZ2hsaWdodGVkLCBvdGhlcndpc2UgZmFsc2UuXG4gICAqL1xuICByZWFkb25seSBpc0FueUl0ZW1IaWdobGlnaHRlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2hpZ2hsaWdodGVkSXRlbXMoKS5sZW5ndGggPiAwKTtcbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGFyZW50IGNvbXBvbmVudCBkZWZpbmVzIHRoZSBsaW1pdCBvZiBjb25jdXJyZW50bHkgc2VsZWN0YWJsZSBpdGVtcyBhbmQgdGhlIGFtb3VudCBvZiBjdXJyZW50bHkgc2VsZWN0ZWQgaXRlbXMgbWF0Y2hlcyB0aGF0IGxpbWl0LiBPdGhlcndpc2UgcmV0dXJucyBmYWxzZS5cbiAgICpcbiAgICogKipUTERSKio6IHRydWUgaWYgYG1heFNlbGVjdGVkSXRlbXNgIGlzIGRlZmluZWQgYW5kIHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgaXRlbXMgbWF0Y2hlcyB0aGF0IHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNJdGVtTGltaXRSZWFjaGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1zaSA9IHRoaXMuX2FyZFBhcmVudENvbXAubWF4U2VsZWN0ZWRJdGVtcygpO1xuICAgIGlmICghdGhpcy5fYXJkUGFyZW50Q29tcC5tdWx0aXNlbGVjdGFibGUoKSB8fCAhaXNEZWZpbmVkKG1zaSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIG1zaSA8PSB0aGlzLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGg7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb21wb25lbnQncyBpdGVtcy4gVGFrZXMgaW50byBhY2NvdW50IHRoZSB2YWx1ZXMgZGVmaW5lZCBieSB0aGUgcGFyZW50IGNvbXBvbmVudCBmb3IgYHZhbHVlRnJvbWAsIGBsYWJlbEZyb21gLCBhbmQgYGRpc2FibGVkRnJvbWAuXG4gICAqIEBwYXJhbSBpdGVtcyBBbiBhcnJheSBvZiBpdGVtcyB0byBiZSBzZXQgYXMgdGhlIGNvbXBvbmVudCdzIGl0ZW1zLlxuICAgKiBAcmV0dXJucyB0cnVlIGlmIGF0IGxlYXN0IG9uZSBvZiB0aGUgaXRlbXMgaXMgb2YgcHJpbWl0aXZlIHR5cGUsIG90aGVyd2lzZSBmYWxzZS5cbiAgICovXG4gIHNldEl0ZW1zKGl0ZW1zOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICBsZXQgYXJlSXRlbXNQcmltaXRpdmUgPSBmYWxzZTtcbiAgICBpZiAoaXRlbXMuc29tZShpc1ByaW1pdGl2ZSkpIHtcbiAgICAgIGl0ZW1zID0gaXRlbXMubWFwKHRoaXMuX3ByaW1pdGl2ZUl0ZW1zTWFwRm4pO1xuICAgICAgYXJlSXRlbXNQcmltaXRpdmUgPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMuX2l0ZW1zLnNldChcbiAgICAgIGl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NldEl0ZW1zTWFwRm4oaXRlbSwgaW5kZXgsIGFyZUl0ZW1zUHJpbWl0aXZlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuICBwcml2YXRlIF9wcmltaXRpdmVJdGVtc01hcEZuPFQ+KGl0ZW06IFQpOiB7IHZhbHVlOiBUIH0ge1xuICAgIHJldHVybiB7IHZhbHVlOiBpdGVtIH07XG4gIH1cbiAgcHJpdmF0ZSBfc2V0SXRlbXNNYXBGbihyYXdJdGVtRGF0YTogYW55LCBpbmRleDogbnVtYmVyLCBhcmVJdGVtc1ByaW1pdGl2ZTogYm9vbGVhbik6IEFyZE9wdGlvblNpbXBsZSB7XG4gICAgaWYgKGFyZUl0ZW1zUHJpbWl0aXZlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpdGVtRGF0YTogc2lnbmFsKHJhd0l0ZW1EYXRhKSxcbiAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICB2YWx1ZTogc2lnbmFsKHJhd0l0ZW1EYXRhLnZhbHVlKSxcbiAgICAgICAgbGFiZWw6IHNpZ25hbChyYXdJdGVtRGF0YS52YWx1ZT8udG9TdHJpbmc/LigpID8/IFN0cmluZyhyYXdJdGVtRGF0YS52YWx1ZSkpLFxuICAgICAgICBkaXNhYmxlZDogc2lnbmFsKGZhbHNlKSxcbiAgICAgICAgc2VsZWN0ZWQ6IHNpZ25hbChmYWxzZSksXG4gICAgICAgIGhpZ2hsaWdodGVkOiBzaWduYWwoZmFsc2UpLFxuICAgICAgfTtcbiAgICB9XG4gICAgLy9nZXQgdmFsdWVcbiAgICBjb25zdCB2YWx1ZVBhdGggPVxuICAgICAgdGhpcy5fYXJkUGFyZW50Q29tcC52YWx1ZUZyb20oKSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLmxhYmVsRnJvbSgpID8/IHRoaXMuX2FyZFBhcmVudENvbXAuREVGQVVMVFMudmFsdWVGcm9tO1xuICAgIGNvbnN0IHZhbHVlID0gcmVzb2x2ZVBhdGgocmF3SXRlbURhdGEsIHZhbHVlUGF0aCk7XG5cbiAgICAvL2dldCBsYWJlbFxuICAgIGNvbnN0IGxhYmVsUGF0aCA9XG4gICAgICB0aGlzLl9hcmRQYXJlbnRDb21wLmxhYmVsRnJvbSgpID8/IHRoaXMuX2FyZFBhcmVudENvbXAudmFsdWVGcm9tKCkgPz8gdGhpcy5fYXJkUGFyZW50Q29tcC5ERUZBVUxUUy5sYWJlbEZyb207XG4gICAgY29uc3QgbGFiZWwgPSByZXNvbHZlUGF0aChyYXdJdGVtRGF0YSwgbGFiZWxQYXRoKSA/PyB2YWx1ZTtcblxuICAgIC8vZ2V0IGRpc2FibGVkXG4gICAgY29uc3QgZGlzYWJsZWRQYXRoID0gdGhpcy5fYXJkUGFyZW50Q29tcC5kaXNhYmxlZEZyb20oKSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLkRFRkFVTFRTLmRpc2FibGVkRnJvbTtcbiAgICBsZXQgZGlzYWJsZWQgPSBldmFsdWF0ZShyZXNvbHZlUGF0aChyYXdJdGVtRGF0YSwgZGlzYWJsZWRQYXRoKSk7XG4gICAgaWYgKHRoaXMuX2FyZFBhcmVudENvbXAuaW52ZXJ0RGlzYWJsZWQoKSkge1xuICAgICAgZGlzYWJsZWQgPSAhZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLy9yZXR1cm5cbiAgICByZXR1cm4ge1xuICAgICAgaXRlbURhdGE6IHNpZ25hbChyYXdJdGVtRGF0YSksXG4gICAgICBpbmRleDogaW5kZXgsXG4gICAgICB2YWx1ZTogc2lnbmFsKHZhbHVlKSxcbiAgICAgIGxhYmVsOiBzaWduYWwobGFiZWw/LnRvU3RyaW5nPy4oKSA/PyBTdHJpbmcobGFiZWwpKSxcbiAgICAgIGRpc2FibGVkOiBzaWduYWwoZGlzYWJsZWQpLFxuICAgICAgc2VsZWN0ZWQ6IHNpZ25hbChmYWxzZSksXG4gICAgICBoaWdobGlnaHRlZDogc2lnbmFsKGZhbHNlKSxcbiAgICB9O1xuICB9XG4gIC8qKlxuICAgKiBXcml0ZXMgYSBuZXcgdmFsdWUgdG8gdGhlIGl0ZW0gc3RvcmFnZS4gU2VsZWN0cyB0aGUgY29ycmVjdCBpdGVtcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgdmFsdWVzLCB3YXJuaW5nIHRoZSB1c2VyIGlmIHRoZSB2YWx1ZSBpcyBub3QgZm91bmQuXG4gICAqIEBwYXJhbSBuZ01vZGVsIFRoZSB2YWx1ZSBvZiB0aGUgbmdNb2RlbCB0byBzZXQuXG4gICAqL1xuICB3cml0ZVZhbHVlKG5nTW9kZWw6IGFueVtdKTogdm9pZCB7XG4gICAgdGhpcy5fZm9yY2VVbnNlbGVjdEFsbCgpO1xuXG4gICAgaWYgKCF0aGlzLl92YWxpZGF0ZVdyaXRlVmFsdWUobmdNb2RlbCkpIHJldHVybjtcblxuICAgIGNvbnN0IHNlbGVjdEl0ZW1CeVZhbHVlID0gKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZpbmRJdGVtQnlWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0SXRlbShpdGVtKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgQVJELVdBJHt0aGlzLl9hcmRQYXJlbnRDb21wLl9jb21wb25lbnRJZH0xOiBDb3VsZG4ndCBmaW5kIGFuIGl0ZW0gd2l0aCB2YWx1ZSAke3ZhbHVlPy50b1N0cmluZz8uKCkgfHwgU3RyaW5nKHZhbHVlKX0uYFxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBtb2RlbFZhbHVlIG9mIG5nTW9kZWwpIHtcbiAgICAgIHNlbGVjdEl0ZW1CeVZhbHVlKG1vZGVsVmFsdWUpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoYXQgYWxsIHZhbHVlcyBvZiB0aGUgdmFsdWUgdG8gYmUgd3JpdHRlbiBhcmUgYWJsZSB0byBiZSBhY2N1cmF0ZWx5IGNvbXBhcmVkIGFnYWluc3QgdGhlIHN0b3JhZ2UgaXRlbXMuXG4gICAqXG4gICAqIEFuIGl0ZW0gZnJvbSB0aGUgbmdNb2RlbCBhcnJheSBpcyBjb25zaWRlcmVkIHZhbGlkIGlmIGl0IGlzIGEgcHJpbWl0aXZlIHZhbHVlLCBvciBpZiBhbGwgb2YgdGhlIGJlbG93IHBvaW50cyBhcmUgbWV0OlxuICAgKiAxLiBUaGUgcGFyZW50IGNvbXBvbmVudCBkZWZpbmVzIHRoZSBgY29tcGFyZVdpdGhgIHByb3BlcnR5LlxuICAgKiAyLiBUaGUgbmdNb2RlbCB2YWx1ZSBpdGVtIGlzIGFuIG9iamVjdCAob3IgYXJyYXkpLlxuICAgKiAzLiBUaGUgcGFyZW50IGNvbXBvbmVudCBoYXMgYSBkZWZpbmVkIGB2YWx1ZUZyb21gIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gbmdNb2RlbCBUaGUgdmFsdWUgb2YgbmdNb2RlbCB0byB2YWxpZGF0ZS5cbiAgICogQHJldHVybnMgdHJ1ZSBpZiBhbGwgaXRlbXMgYXJlIHZhbGlkLCBvdGhlcndpc2UgZmFsc2UuXG4gICAqL1xuICBwcml2YXRlIF92YWxpZGF0ZVdyaXRlVmFsdWUobmdNb2RlbDogYW55W10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gbmdNb2RlbC5ldmVyeShpdGVtID0+IHtcbiAgICAgIGlmICghaXNEZWZpbmVkKHRoaXMuX2FyZFBhcmVudENvbXAuY29tcGFyZVdpdGgoKSkgJiYgaXNPYmplY3QoaXRlbSkgJiYgdGhpcy5fYXJkUGFyZW50Q29tcC52YWx1ZUZyb20oKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYEFSRC1GVCR7dGhpcy5fYXJkUGFyZW50Q29tcC5fY29tcG9uZW50SWR9MDogU2V0dGluZyBvYmplY3QoJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIGl0ZW1cbiAgICAgICAgICApfSkgYXMgeW91ciBtb2RlbCB3aXRoIFt2YWx1ZUZyb21dIGlzIG5vdCBhbGxvd2VkIHVubGVzcyBbY29tcGFyZVdpdGhdIGlzIHVzZWQuYFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuICBmaW5kSXRlbUJ5VmFsdWUodmFsdWVUb0ZpbmQ6IGFueSk6IEFyZE9wdGlvblNpbXBsZSB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGZpbmRCeTogKGl0ZW06IEFyZE9wdGlvblNpbXBsZSkgPT4gYm9vbGVhbjtcbiAgICBjb25zdCBjbXBGbiA9IHRoaXMuX2FyZFBhcmVudENvbXAuY29tcGFyZVdpdGgoKTtcbiAgICBpZiAoaXNEZWZpbmVkKGNtcEZuKSkge1xuICAgICAgZmluZEJ5ID0gaXRlbSA9PiBjbXBGbih2YWx1ZVRvRmluZCwgaXRlbS52YWx1ZSgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmluZEJ5ID0gaXRlbSA9PiBpdGVtLnZhbHVlKCkgPT09IHZhbHVlVG9GaW5kO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faXRlbXMoKS5maW5kKGl0ZW0gPT4gZmluZEJ5KGl0ZW0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnNlbGVjdHMgYWxsIHNlbGVjdGVkIGl0ZW1zLlxuICAgKlxuICAgKiBJZiB0aGUgcGFyZW50IGNvbXBvbmVudCByZXF1aXJlcyBhdCBsZWFzdCBvbmUgdmFsdWUgdG8gYmUgc2VsZWN0ZWQgYXQgYWxsIHRpbWVzLCB0aGUgZmlyc3Qgc2VsZWN0ZWQgaXRlbXMgaXMgbGVmdCBzZWxlY3RlZC5cbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgaXRlbXMgY2xlYXJlZCwgbWFwcGVkIHRvIG9ubHkgdGhlaXIgdmFsdWVzLlxuICAgKi9cbiAgdW5zZWxlY3RBbGwoKTogYW55W10ge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLl9zZWxlY3RlZEl0ZW1zKCkpIHtcbiAgICAgIGl0ZW0uc2VsZWN0ZWQuc2V0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXQgPSB0aGlzLnZhbHVlKCk7XG5cbiAgICBpZiAodGhpcy5fYXJkUGFyZW50Q29tcC5pc1ZhbHVlUmVxdWlyZWQoKSAmJiB0aGlzLl9zZWxlY3RlZEl0ZW1zKCkubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtcygpLmZpcnN0KCkuc2VsZWN0ZWQuc2V0KHRydWUpO1xuICAgICAgcmV0LnNwbGljZSgwLCAxKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zLnNldChbXSk7XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG4gIC8qKlxuICAgKiBVbnNlbGVjdHMgYWxsIHNlbGVjdGVkIGl0ZW1zLCBubyBtYXR0ZXIgd2hhdCB0aGUgY29tcG9uZW50IHNldHRpbmdzIGFyZS5cbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgaXRlbXMgY2xlYXJlZCwgbWFwcGVkIHRvIG9ubHkgdGhlaXIgdmFsdWVzLlxuICAgKi9cbiAgcHJpdmF0ZSBfZm9yY2VVbnNlbGVjdEFsbCgpOiBhbnlbXSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuX3NlbGVjdGVkSXRlbXMoKSkge1xuICAgICAgaXRlbS5zZWxlY3RlZC5zZXQoZmFsc2UpO1xuICAgIH1cblxuICAgIGNvbnN0IHJldCA9IHRoaXMuX2l0ZW1zVG9WYWx1ZSh0aGlzLl9zZWxlY3RlZEl0ZW1zKCkpO1xuXG4gICAgdGhpcy5fc2VsZWN0ZWRJdGVtcy5zZXQoW10pO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuICAvKipcbiAgICogU2VsZWN0cyBvbmUgb3IgbXVsdGlwbGUgaXRlbXMuXG4gICAqXG4gICAqIEFjY291bnRzIGZvciB0aGUgbGltaXQgb2YgY29uY3VycmVudGx5IHNlbGVjdGVkIGl0ZW1zIGRlZmluZWQgYnkgdGhlIHBhcmVudCBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBpdGVtcyBBIHJlc3Qgb3BlcmF0b3IgYXJyYXkgb2YgaXRlbSBvYmplY3RzIHRvIGJlIHNlbGVjdGVkLlxuICAgKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhyZWUgYXJyYXlzLCBhbGwgbWFwcGVkIHRvIG9ubHkgdGhlaXIgdmFsdWVzOlxuICAgKiAtIEFuIGFycmF5IG9mIGl0ZW1zIHNlbGVjdGVkLFxuICAgKiAtIEFuIGFycmF5IG9mIGl0ZW1zIHVuc2VsZWN0ZWQsXG4gICAqIC0gQW4gYXJyYXkgb2YgaXRlbXMgZmFpbGVkIHRvIHNlbGVjdCBkdWUgdG8gdGhlIGxpbWl0LlxuICAgKi9cbiAgc2VsZWN0SXRlbSguLi5pdGVtczogQXJkT3B0aW9uU2ltcGxlW10pOiBbYW55W10sIGFueVtdLCBhbnlbXV0ge1xuICAgIGlmICh0aGlzLmlzSXRlbUxpbWl0UmVhY2hlZCgpKSB7XG4gICAgICByZXR1cm4gW1tdLCBbXSwgdGhpcy5faXRlbXNUb1ZhbHVlKGl0ZW1zKV07XG4gICAgfVxuICAgIGxldCB1bnNlbGVjdGVkID0gW107XG4gICAgaWYgKCF0aGlzLl9hcmRQYXJlbnRDb21wLm11bHRpc2VsZWN0YWJsZSgpKSB7XG4gICAgICB1bnNlbGVjdGVkID0gdGhpcy5fZm9yY2VVbnNlbGVjdEFsbCgpO1xuICAgIH1cblxuICAgIGxldCBpdGVtc1NlbGVjdGVkQ291bnQgPSAwO1xuICAgIGNvbnN0IGl0ZW1zU2VsZWN0ZWQ6IEFyZE9wdGlvblNpbXBsZVtdID0gW107XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBpdGVtc1NlbGVjdGVkQ291bnQrKztcbiAgICAgIGlmIChpdGVtLnNlbGVjdGVkKCkpIGNvbnRpbnVlO1xuICAgICAgaWYgKHRoaXMuaXNJdGVtTGltaXRSZWFjaGVkKCkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpdGVtLnNlbGVjdGVkLnNldCh0cnVlKTtcbiAgICAgIGl0ZW1zU2VsZWN0ZWQucHVzaChpdGVtKTtcbiAgICB9XG4gICAgdGhpcy5fc2VsZWN0ZWRJdGVtcy51cGRhdGUodiA9PiBbLi4udiwgLi4uaXRlbXNTZWxlY3RlZF0pO1xuXG4gICAgY29uc3QgaXRlbXNGYWlsZWRUb1NlbGVjdCA9IGl0ZW1zLnNsaWNlKGl0ZW1zU2VsZWN0ZWRDb3VudCAtIDEpO1xuICAgIHJldHVybiBbdGhpcy5faXRlbXNUb1ZhbHVlKGl0ZW1zU2VsZWN0ZWQpLCB1bnNlbGVjdGVkLCB0aGlzLl9pdGVtc1RvVmFsdWUoaXRlbXNGYWlsZWRUb1NlbGVjdCldO1xuICB9XG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbXMgQSByZXN0IG9wZXJhdG9yIGFycmF5IG9mIGl0ZW0gb2JqZWN0cyB0byBiZSB1bnNlbGVjdGVkLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBpdGVtcyB1bnNlbGVjdGVkLCBtYXBwZWQgdG8gb25seSB0aGVpciB2YWx1ZXMuXG4gICAqL1xuICB1bnNlbGVjdEl0ZW0oLi4uaXRlbXM6IEFyZE9wdGlvblNpbXBsZVtdKTogYW55W10ge1xuICAgIGxldCBza2lwcGVkSXRlbSA9IGZhbHNlO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgaWYgKHRoaXMuX2FyZFBhcmVudENvbXAuaXNWYWx1ZVJlcXVpcmVkKCkgJiYgIXNraXBwZWRJdGVtKSB7XG4gICAgICAgIHNraXBwZWRJdGVtID0gdHJ1ZTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICghaXRlbS5zZWxlY3RlZCgpKSBjb250aW51ZTtcbiAgICAgIGl0ZW0uc2VsZWN0ZWQuc2V0KGZhbHNlKTtcbiAgICB9XG4gICAgdGhpcy5fc2VsZWN0ZWRJdGVtcy51cGRhdGUodiA9PiB2LmZpbHRlcih2ID0+IHYuc2VsZWN0ZWQoKSkpO1xuXG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zVG9WYWx1ZShpdGVtcyk7XG4gIH1cblxuICAvKipcbiAgICogVW5oaWdobGlnaHRzIGFsbCBjdXJyZW50bHkgaGlnaGxpZ2h0ZWQgaXRlbXMuXG4gICAqL1xuICB1bmhpZ2hsaWdodEFsbCgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5faGlnaGxpZ2h0ZWRJdGVtcygpKSB7XG4gICAgICBpdGVtLmhpZ2hsaWdodGVkLnNldChmYWxzZSk7XG4gICAgfVxuICAgIHRoaXMuX2hpZ2hsaWdodGVkSXRlbXMuc2V0KFtdKTtcbiAgfVxuICAvKipcbiAgICogSGlnaGxpZ2h0cyB0aGUgZ2l2ZW4gaXRlbSwgd2hpbGUgdW5oaWdobGlnaHRpbmcgYWxsIG90aGVyIGl0ZW1zLiBEb2VzIG5vdGhpbmcgd2hlbiB0aGUgaXRlbSBpcyBkaXNhYmxlZC5cbiAgICogQHBhcmFtIGl0ZW0gVGhlIGl0ZW0gdG8gYmUgaGlnaGxpZ2h0ZWQuXG4gICAqIEByZXR1cm5zIFRoZSBoaWdobGlnaHRlZCBpdGVtLlxuICAgKi9cbiAgaGlnaGxpZ2h0U2luZ2xlSXRlbShpdGVtOiBBcmRPcHRpb25TaW1wbGUpOiBBcmRPcHRpb25TaW1wbGUgfCBudWxsIHtcbiAgICBpZiAoIWl0ZW0gfHwgaXRlbS5kaXNhYmxlZCgpKSByZXR1cm4gbnVsbDtcbiAgICB0aGlzLnVuaGlnaGxpZ2h0QWxsKCk7XG4gICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0SXRlbShpdGVtKTtcbiAgfVxuICAvKipcbiAgICogSGlnaGxpZ2h0cyBhbGwgZ2l2ZW4gaXRlbXMuXG4gICAqIEBwYXJhbSBpdGVtcyBBIHJlc3Qgb3BlcmF0b3IgYXJyYXkgb2YgaXRlbXMgdG8gYmUgaGlnaGxpZ2h0ZWQuXG4gICAqIEByZXR1cm5zIFRoZSBsYXN0IGhpZ2hsaWdodGVkIGl0ZW0uXG4gICAqL1xuICBoaWdobGlnaHRJdGVtKC4uLml0ZW1zOiBBcmRPcHRpb25TaW1wbGVbXSk6IEFyZE9wdGlvblNpbXBsZSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBpdGVtLmhpZ2hsaWdodGVkLnNldCh0cnVlKTtcbiAgICB9XG4gICAgdGhpcy5faGlnaGxpZ2h0ZWRJdGVtcy51cGRhdGUodiA9PiBbLi4udiwgLi4uaXRlbXNdKTtcbiAgICByZXR1cm4gaXRlbXMubGFzdCgpO1xuICB9XG4gIC8qKlxuICAgKiBVbmhpZ2hsaWdodHMgYWxsIGdpdmVuIGl0ZW1zLlxuICAgKiBAcGFyYW0gaXRlbXMgQSByZXN0IG9wZXJhdG9yIGFycmF5IG9mIGl0ZW1zIHRvIGJlIHVuaGlnaGxpZ2h0ZWQuXG4gICAqL1xuICB1bmhpZ2hsaWdodEl0ZW0oLi4uaXRlbXM6IEFyZE9wdGlvblNpbXBsZVtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBpZiAoIWl0ZW0gfHwgIWl0ZW0uaGlnaGxpZ2h0ZWQoKSkgcmV0dXJuO1xuXG4gICAgICBpdGVtLmhpZ2hsaWdodGVkLnNldChmYWxzZSk7XG4gICAgfVxuICAgIHRoaXMuX2hpZ2hsaWdodGVkSXRlbXMudXBkYXRlKHYgPT4gdi5maWx0ZXIodiA9PiB2LmhpZ2hsaWdodGVkKCkpKTtcbiAgfVxuICAvKipcbiAgICogSGlnaGxpZ2h0cyB0aGUgZmlyc3QgaXRlbSBvdXQgb2YgYWxsIGl0ZW1zLlxuICAgKiBAcmV0dXJucyBUaGUgaGlnaGxpZ2h0ZWQgaXRlbS5cbiAgICovXG4gIGhpZ2hsaWdodEZpcnN0SXRlbSgpOiBBcmRPcHRpb25TaW1wbGUgfCBudWxsIHtcbiAgICB0aGlzLnVuaGlnaGxpZ2h0QWxsKCk7XG5cbiAgICBjb25zdCBpdGVtVG9IaWdobGlnaHQgPSB0aGlzLmhpZ2hsaWdodGFibGVJdGVtcygpLmZpcnN0KCk7XG4gICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0SXRlbShpdGVtVG9IaWdobGlnaHQpO1xuICB9XG4gIC8qKlxuICAgKiBIaWdobGlnaHRzIHRoZSBsYXN0IGl0ZW0gb3V0IG9mIGFsbCBpdGVtcy5cbiAgICogQHJldHVybnMgVGhlIGhpZ2hsaWdodGVkIGl0ZW0uXG4gICAqL1xuICBoaWdobGlnaHRMYXN0SXRlbSgpOiBBcmRPcHRpb25TaW1wbGUgfCBudWxsIHtcbiAgICB0aGlzLnVuaGlnaGxpZ2h0QWxsKCk7XG5cbiAgICBjb25zdCBpdGVtVG9IaWdobGlnaHQgPSB0aGlzLmhpZ2hsaWdodGFibGVJdGVtcygpLmxhc3QoKTtcbiAgICByZXR1cm4gdGhpcy5oaWdobGlnaHRJdGVtKGl0ZW1Ub0hpZ2hsaWdodCk7XG4gIH1cbiAgLyoqXG4gICAqIEhpZ2hsaWdodHMgYWxsIG5vbi1kaXNhYmxlZCBpdGVtcy5cbiAgICovXG4gIGhpZ2hsaWdodEFsbEl0ZW1zKCk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW1zVG9IaWdobGlnaHQgPSB0aGlzLmhpZ2hsaWdodGFibGVJdGVtcygpO1xuXG4gICAgdGhpcy5oaWdobGlnaHRJdGVtKC4uLml0ZW1zVG9IaWdobGlnaHQpO1xuICB9XG4gIC8qKlxuICAgKiBIaWdobGlnaHRzIHRoZSBuZXh0IG5vbi1kaXNhYmxlZCBpdGVtIGRlZmluZWQgYnkgdGhlIG9mZnNldCBhbW91bnQuXG4gICAqXG4gICAqIElmIGBoYXNTaGlmdGAgaXMgc2V0IHRvIHRydWUsIGFsbCBvcmlnaW5hbGx5IGhpZ2hsaWdodGVkIGl0ZW1zIGFyZSBrZXB0LiBPdGhlcndpc2UsIGFsbCBvcmlnaW5hbCBpdGVtcyBhcmUgdW5zZWxlY3RlZC5cbiAgICogQHBhcmFtIG9mZnNldCBUaGUgYW1vdW50IG9mIGl0ZW1zIHRvIG9mZnNldCB0aGUgaGlnaGxpZ2h0IGJ5LlxuICAgKiBAcGFyYW0gaGFzU2hpZnQgV2hldGhlciB0aGUgdXNlciBoYXMgdGhlIHNoaWZ0IGtleSBwcmVzc2VkLlxuICAgKiBAcmV0dXJucyBUaGUgaXRlbSBoaWdobGlnaHRlZC5cbiAgICovXG4gIGhpZ2hsaWdodE5leHRJdGVtKG9mZnNldDogbnVtYmVyLCBoYXNTaGlmdD86IGJvb2xlYW4pOiBBcmRPcHRpb25TaW1wbGUgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuaXNBbnlJdGVtSGlnaGxpZ2h0ZWQoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0Rmlyc3RJdGVtKCk7XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gdGhpcy5oaWdobGlnaHRlZEl0ZW1zKCkubGFzdCgpO1xuICAgIGNvbnN0IGl0ZW1zV2l0aG91dERpc2FibGVkID0gdGhpcy5faXRlbXMoKS5maWx0ZXIoXG4gICAgICBpdGVtID0+ICFpdGVtLmRpc2FibGVkKCkgJiYgKCF0aGlzLmlzSXRlbUxpbWl0UmVhY2hlZCgpIHx8IGl0ZW0uc2VsZWN0ZWQoKSlcbiAgICApO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleEluSXRlbXMgPSBpdGVtc1dpdGhvdXREaXNhYmxlZC5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmluZGV4ID09PSBjdXJyZW50SXRlbS5pbmRleCk7XG5cbiAgICBsZXQgbmV4dEl0ZW1JbmRleCA9IGN1cnJlbnRJbmRleEluSXRlbXMgKyBvZmZzZXQ7XG4gICAgaWYgKG5leHRJdGVtSW5kZXggPj0gaXRlbXNXaXRob3V0RGlzYWJsZWQubGVuZ3RoKSB7XG4gICAgICBuZXh0SXRlbUluZGV4IC09IGl0ZW1zV2l0aG91dERpc2FibGVkLmxlbmd0aDtcbiAgICB9XG4gICAgaWYgKG5leHRJdGVtSW5kZXggPCAwKSB7XG4gICAgICBuZXh0SXRlbUluZGV4ICs9IGl0ZW1zV2l0aG91dERpc2FibGVkLmxlbmd0aDtcbiAgICB9XG4gICAgY29uc3QgaXRlbVRvSGlnaGxpZ2h0ID0gaXRlbXNXaXRob3V0RGlzYWJsZWRbbmV4dEl0ZW1JbmRleF07XG5cbiAgICBpZiAoaGFzU2hpZnQgJiYgdGhpcy5fYXJkUGFyZW50Q29tcC5tdWx0aXNlbGVjdGFibGUoKSkge1xuICAgICAgaWYgKGl0ZW1Ub0hpZ2hsaWdodC5oaWdobGlnaHRlZCgpKSB7XG4gICAgICAgIHRoaXMudW5oaWdobGlnaHRJdGVtKGN1cnJlbnRJdGVtKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodEl0ZW0oaXRlbVRvSGlnaGxpZ2h0KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0U2luZ2xlSXRlbShpdGVtVG9IaWdobGlnaHQpO1xuICB9XG4gIC8qKlxuICAgKiBGaW5kcyBhbGwgaGlnaGxpZ2h0YWJsZSBpdGVtcy4gQW4gaXRlbSBpcyBjb25zaWRlcmVkIGhpZ2hsaWdodGFibGUgaWYgaXQgaXMgKipub3QqKiBkaXNhYmxlZC5cbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgYWxsIGhpZ2hsaWdodGFibGUgaXRlbXMuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGhpZ2hsaWdodGFibGVJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2l0ZW1zKCkuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uZGlzYWJsZWQoKSkpO1xufVxuIl19
|
|
@@ -33,7 +33,6 @@ export class SimplestItemStorage {
|
|
|
33
33
|
this._items.set(items.map((item, index) => {
|
|
34
34
|
return this._setItemsMapFn(item, index, areItemsPrimitive);
|
|
35
35
|
}));
|
|
36
|
-
return areItemsPrimitive;
|
|
37
36
|
}
|
|
38
37
|
_primitiveItemsMapFn(item) {
|
|
39
38
|
return { value: item };
|
|
@@ -42,7 +41,7 @@ export class SimplestItemStorage {
|
|
|
42
41
|
if (areItemsPrimitive) {
|
|
43
42
|
return {
|
|
44
43
|
itemData: signal(rawItemData),
|
|
45
|
-
index:
|
|
44
|
+
index: index,
|
|
46
45
|
value: signal(rawItemData.value),
|
|
47
46
|
label: signal(rawItemData.value?.toString?.() ?? String(rawItemData.value)),
|
|
48
47
|
selected: signal(false),
|
|
@@ -50,15 +49,15 @@ export class SimplestItemStorage {
|
|
|
50
49
|
};
|
|
51
50
|
}
|
|
52
51
|
//get value
|
|
53
|
-
const valuePath = this._ardParentComp.valueFrom() ?? this._ardParentComp.labelFrom() ?? this._ardParentComp.DEFAULTS.
|
|
52
|
+
const valuePath = this._ardParentComp.valueFrom() ?? this._ardParentComp.labelFrom() ?? this._ardParentComp.DEFAULTS.suggValueFrom;
|
|
54
53
|
const value = resolvePath(rawItemData, valuePath);
|
|
55
54
|
//get label
|
|
56
|
-
const labelPath = this._ardParentComp.labelFrom() ?? this._ardParentComp.valueFrom() ?? this._ardParentComp.DEFAULTS.
|
|
55
|
+
const labelPath = this._ardParentComp.labelFrom() ?? this._ardParentComp.valueFrom() ?? this._ardParentComp.DEFAULTS.suggLabelFrom;
|
|
57
56
|
const label = resolvePath(rawItemData, labelPath) ?? value;
|
|
58
57
|
//return
|
|
59
58
|
return {
|
|
60
59
|
itemData: signal(rawItemData),
|
|
61
|
-
index:
|
|
60
|
+
index: index,
|
|
62
61
|
value: signal(value),
|
|
63
62
|
label: signal(label?.toString?.() ?? String(label)),
|
|
64
63
|
selected: signal(false),
|
|
@@ -104,7 +103,7 @@ export class SimplestItemStorage {
|
|
|
104
103
|
*/
|
|
105
104
|
unhighlightItem(item) {
|
|
106
105
|
item.highlighted.set(false);
|
|
107
|
-
if (this._highlightedItem()?.index
|
|
106
|
+
if (this._highlightedItem()?.index === item.index)
|
|
108
107
|
this._highlightedItem.set(null);
|
|
109
108
|
}
|
|
110
109
|
/**
|
|
@@ -142,7 +141,7 @@ export class SimplestItemStorage {
|
|
|
142
141
|
return this.highlightFirstItem();
|
|
143
142
|
}
|
|
144
143
|
const items = this._items();
|
|
145
|
-
const currentIndexInItems = items.findIndex(item => item.index
|
|
144
|
+
const currentIndexInItems = items.findIndex(item => item.index === currentItem.index);
|
|
146
145
|
let nextItemIndex = currentIndexInItems + offset;
|
|
147
146
|
if (nextItemIndex >= items.length) {
|
|
148
147
|
nextItemIndex -= items.length;
|
|
@@ -155,4 +154,4 @@ export class SimplestItemStorage {
|
|
|
155
154
|
return itemToHighlight;
|
|
156
155
|
}
|
|
157
156
|
}
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlc3QtaXRlbS1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9faW50ZXJuYWwvaXRlbS1zdG9yYWdlcy9zaW1wbGVzdC1pdGVtLXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWMxRCxNQUFNLE9BQU8sbUJBQW1CO0lBSTlCLFlBQTZCLGNBQXVDO1FBQXZDLG1CQUFjLEdBQWQsY0FBYyxDQUF5QjtRQUhuRCxXQUFNLEdBQUcsTUFBTSxDQUEyQixFQUFFLENBQUMsQ0FBQztRQUM5QyxxQkFBZ0IsR0FBRyxNQUFNLENBQW1DLElBQUksQ0FBQyxDQUFDO1FBSW5GOztXQUVHO1FBQ00sVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDMUM7O1dBRUc7UUFDTSxvQkFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM5RDs7V0FFRztRQUNNLHlCQUFvQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBYlosQ0FBQztJQWV4RTs7OztPQUlHO0lBQ0gsUUFBUSxDQUFDLEtBQVk7UUFDbkIsSUFBSSxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG9C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SSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFcEMsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxpQkFBaUIsQ0FBQyxNQUFjO1FBQzlCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ25DLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDNUIsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRTFGLElBQUksYUFBYSxHQUFHLG1CQUFtQixHQUFHLE1BQU0sQ0FBQztRQUNqRCxJQUFJLGFBQWEsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEMsYUFBYSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsQ0FBQzthQUFNLElBQUksYUFBYSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzdCLGFBQWEsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ2hDLENBQUM7UUFDRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVwQyxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduYWwsIGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgcmVzb2x2ZVBhdGggfSBmcm9tICdyZXNvbHZlLW9iamVjdC1wYXRoJztcclxuaW1wb3J0IHsgYW55LCBpc0RlZmluZWQsIGlzUHJpbWl0aXZlIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xyXG5pbXBvcnQgeyBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtIH0gZnJvbSAnLi4vLi4vdHlwZXMvaXRlbS1zdG9yYWdlLnR5cGVzJztcclxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi8uLi90eXBlcy91dGlsaXR5LnR5cGVzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlc3RJdGVtU3RvcmFnZUhvc3REZWZhdWx0cyB7XHJcbiAgdmFsdWVGcm9tOiBzdHJpbmc7XHJcbiAgbGFiZWxGcm9tOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTaW1wbGVzdEl0ZW1TdG9yYWdlSG9zdCB7XHJcbiAgcmVhZG9ubHkgdmFsdWVGcm9tOiBTaWduYWw8TnVsbGFibGU8c3RyaW5nPj47XHJcbiAgcmVhZG9ubHkgbGFiZWxGcm9tOiBTaWduYWw8TnVsbGFibGU8c3RyaW5nPj47XHJcbiAgcmVhZG9ubHkgREVGQVVMVFM6IFNpbXBsZXN0SXRlbVN0b3JhZ2VIb3N0RGVmYXVsdHM7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTaW1wbGVzdEl0ZW1TdG9yYWdlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9pdGVtcyA9IHNpZ25hbDxBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtW10+KFtdKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9oaWdobGlnaHRlZEl0ZW0gPSBzaWduYWw8TnVsbGFibGU8QXJkU2ltcGxlc3RTdG9yYWdlSXRlbT4+KG51bGwpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9hcmRQYXJlbnRDb21wOiBTaW1wbGVzdEl0ZW1TdG9yYWdlSG9zdCkge31cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyBhbGwgaXRlbXMuXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaXRlbXMgPSB0aGlzLl9pdGVtcy5hc1JlYWRvbmx5KCk7XHJcbiAgLyoqXHJcbiAgICogVGhlIGN1cnJlbnRseSBoaWdobGlnaHRlZCBpdGVtLlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGhpZ2hsaWdodGVkSXRlbSA9IHRoaXMuX2hpZ2hsaWdodGVkSXRlbS5hc1JlYWRvbmx5KCk7XHJcbiAgLyoqXHJcbiAgICogVHJ1ZSBpZiBhdCBsZWFzdCBvbmUgaXRlbSBpcyBoaWdobGlnaHRlZCwgb3RoZXJ3aXNlIGZhbHNlLlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGlzQW55SXRlbUhpZ2hsaWdodGVkID0gY29tcHV0ZWQoKCkgPT4gaXNEZWZpbmVkKHRoaXMuX2hpZ2hsaWdodGVkSXRlbSgpKSk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGNvbXBvbmVudCdzIGl0ZW1zLiBUYWtlcyBpbnRvIGFjY291bnQgdGhlIHZhbHVlcyBkZWZpbmVkIGJ5IHRoZSBwYXJlbnQgY29tcG9uZW50IGZvciBgc3VnZ1ZhbHVlRnJvbWAgYW5kIGBzdWdnTGFiZWxGcm9tYC5cclxuICAgKiBAcGFyYW0gaXRlbXMgQW4gYXJyYXkgb2YgaXRlbXMgdG8gYmUgc2V0IGFzIHRoZSBjb21wb25lbnQncyBpdGVtcy5cclxuICAgKiBAcmV0dXJucyB0cnVlIGlmIGF0IGxlYXN0IG9uZSBvZiB0aGUgaXRlbXMgaXMgb2YgcHJpbWl0aXZlIHR5cGUsIG90aGVyd2lzZSBmYWxzZS5cclxuICAgKi9cclxuICBzZXRJdGVtcyhpdGVtczogYW55W10pOiBib29sZWFuIHtcclxuICAgIGxldCBhcmVJdGVtc1ByaW1pdGl2ZSA9IGZhbHNlO1xyXG4gICAgaWYgKGFueShpdGVtcywgaXNQcmltaXRpdmUpKSB7XHJcbiAgICAgIGl0ZW1zID0gaXRlbXMubWFwKHRoaXMuX3ByaW1pdGl2ZUl0ZW1zTWFwRm4pO1xyXG4gICAgICBhcmVJdGVtc1ByaW1pdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5faXRlbXMuc2V0KFxyXG4gICAgICBpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NldEl0ZW1zTWFwRm4oaXRlbSwgaW5kZXgsIGFyZUl0ZW1zUHJpbWl0aXZlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIGFyZUl0ZW1zUHJpbWl0aXZlO1xyXG4gIH1cclxuICBwcml2YXRlIF9wcmltaXRpdmVJdGVtc01hcEZuPFQ+KGl0ZW06IFQpOiB7IHZhbHVlOiBUIH0ge1xyXG4gICAgcmV0dXJuIHsgdmFsdWU6IGl0ZW0gfTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc2V0SXRlbXNNYXBGbihyYXdJdGVtRGF0YTogYW55LCBpbmRleDogbnVtYmVyLCBhcmVJdGVtc1ByaW1pdGl2ZTogYm9vbGVhbik6IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0ge1xyXG4gICAgaWYgKGFyZUl0ZW1zUHJpbWl0aXZlKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaXRlbURhdGE6IHNpZ25hbChyYXdJdGVtRGF0YSksXHJcbiAgICAgICAgaW5kZXg6IHNpZ25hbChpbmRleCksXHJcbiAgICAgICAgdmFsdWU6IHNpZ25hbChyYXdJdGVtRGF0YS52YWx1ZSksXHJcbiAgICAgICAgbGFiZWw6IHNpZ25hbChyYXdJdGVtRGF0YS52YWx1ZT8udG9TdHJpbmc/LigpID8/IFN0cmluZyhyYXdJdGVtRGF0YS52YWx1ZSkpLFxyXG4gICAgICAgIHNlbGVjdGVkOiBzaWduYWwoZmFsc2UpLFxyXG4gICAgICAgIGhpZ2hsaWdodGVkOiBzaWduYWwoZmFsc2UpLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgLy9nZXQgdmFsdWVcclxuICAgIGNvbnN0IHZhbHVlUGF0aCA9XHJcbiAgICAgIHRoaXMuX2FyZFBhcmVudENvbXAudmFsdWVGcm9tKCkgPz8gdGhpcy5fYXJkUGFyZW50Q29tcC5sYWJlbEZyb20oKSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLkRFRkFVTFRTLnZhbHVlRnJvbTtcclxuICAgIGNvbnN0IHZhbHVlID0gcmVzb2x2ZVBhdGgocmF3SXRlbURhdGEsIHZhbHVlUGF0aCk7XHJcblxyXG4gICAgLy9nZXQgbGFiZWxcclxuICAgIGNvbnN0IGxhYmVsUGF0aCA9XHJcbiAgICAgIHRoaXMuX2FyZFBhcmVudENvbXAubGFiZWxGcm9tKCkgPz8gdGhpcy5fYXJkUGFyZW50Q29tcC52YWx1ZUZyb20oKSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLkRFRkFVTFRTLmxhYmVsRnJvbTtcclxuICAgIGNvbnN0IGxhYmVsID0gcmVzb2x2ZVBhdGgocmF3SXRlbURhdGEsIGxhYmVsUGF0aCkgPz8gdmFsdWU7XHJcblxyXG4gICAgLy9yZXR1cm5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGl0ZW1EYXRhOiBzaWduYWwocmF3SXRlbURhdGEpLFxyXG4gICAgICBpbmRleDogc2lnbmFsKGluZGV4KSxcclxuICAgICAgdmFsdWU6IHNpZ25hbCh2YWx1ZSksXHJcbiAgICAgIGxhYmVsOiBzaWduYWwobGFiZWw/LnRvU3RyaW5nPy4oKSA/PyBTdHJpbmcobGFiZWwpKSxcclxuICAgICAgc2VsZWN0ZWQ6IHNpZ25hbChmYWxzZSksXHJcbiAgICAgIGhpZ2hsaWdodGVkOiBzaWduYWwoZmFsc2UpLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbGVjdHMgdGhlIGdpdmVuIGl0ZW0uXHJcbiAgICogQHBhcmFtIGl0ZW1zIFRoZSBpdGVtIHRvIHNlbGVjdC5cclxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgb2YgdGhlIHNlbGVjdGVkIGl0ZW0uXHJcbiAgICovXHJcbiAgc2VsZWN0SXRlbShpdGVtOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtKTogYW55IHtcclxuICAgIHJldHVybiBpdGVtLnZhbHVlO1xyXG4gIH1cclxuICBzZWxlY3RDdXJyZW50KCk6IGFueSB7XHJcbiAgICBjb25zdCBoaSA9IHRoaXMuX2hpZ2hsaWdodGVkSXRlbSgpO1xyXG4gICAgaWYgKCFoaSkgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdEl0ZW0oaGkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5oaWdobGlnaHRzIGFsbCBjdXJyZW50bHkgaGlnaGxpZ2h0ZWQgaXRlbXMuXHJcbiAgICovXHJcbiAgdW5oaWdobGlnaHRDdXJyZW50KCk6IHZvaWQge1xyXG4gICAgY29uc3QgaGkgPSB0aGlzLl9oaWdobGlnaHRlZEl0ZW0oKTtcclxuICAgIGlmIChoaSkge1xyXG4gICAgICBoaS5oaWdobGlnaHRlZC5zZXQoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5faGlnaGxpZ2h0ZWRJdGVtLnNldChudWxsKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSGlnaGxpZ2h0cyBhIGdpdmVuIGl0ZW0uXHJcbiAgICogQHBhcmFtIGl0ZW0gVGhlIGl0ZW0gdG8gYmUgaGlnaGxpZ2h0ZWQuXHJcbiAgICovXHJcbiAgaGlnaGxpZ2h0SXRlbShpdGVtOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtKTogdm9pZCB7XHJcbiAgICB0aGlzLnVuaGlnaGxpZ2h0Q3VycmVudCgpO1xyXG5cclxuICAgIGl0ZW0uaGlnaGxpZ2h0ZWQuc2V0KHRydWUpO1xyXG5cclxuICAgIHRoaXMuX2hpZ2hsaWdodGVkSXRlbS5zZXQoaXRlbSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFVuaGlnaGxpZ2h0cyBhIGdpdmVuIGl0ZW0uXHJcbiAgICogQHBhcmFtIGl0ZW0gVGhlIGl0ZW0gdG8gYmUgdW5oaWdobGlnaHRlZC5cclxuICAgKi9cclxuICB1bmhpZ2hsaWdodEl0ZW0oaXRlbTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSk6IHZvaWQge1xyXG4gICAgaXRlbS5oaWdobGlnaHRlZC5zZXQoZmFsc2UpO1xyXG5cclxuICAgIGlmICh0aGlzLl9oaWdobGlnaHRlZEl0ZW0oKT8uaW5kZXgoKSA9PT0gaXRlbS5pbmRleCgpKSB0aGlzLl9oaWdobGlnaHRlZEl0ZW0uc2V0KG51bGwpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBIaWdobGlnaHRzIHRoZSBmaXJzdCBpdGVtIG91dCBvZiBhbGwgaXRlbXMuXHJcbiAgICogQHJldHVybnMgVGhlIGhpZ2hsaWdodGVkIGl0ZW0uXHJcbiAgICovXHJcbiAgaGlnaGxpZ2h0Rmlyc3RJdGVtKCk6IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0gfCBudWxsIHtcclxuICAgIGlmICghdGhpcy5faXRlbXMoKS5sZW5ndGgpIHJldHVybiBudWxsO1xyXG5cclxuICAgIHRoaXMudW5oaWdobGlnaHRDdXJyZW50KCk7XHJcblxyXG4gICAgY29uc3QgaXRlbVRvSGlnaGxpZ2h0ID0gdGhpcy5faXRlbXMoKS5maXJzdCgpO1xyXG4gICAgdGhpcy5oaWdobGlnaHRJdGVtKGl0ZW1Ub0hpZ2hsaWdodCk7XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1Ub0hpZ2hsaWdodDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSGlnaGxpZ2h0cyB0aGUgbGFzdCBpdGVtIG91dCBvZiBhbGwgaXRlbXMuXHJcbiAgICogQHJldHVybnMgVGhlIGhpZ2hsaWdodGVkIGl0ZW0uXHJcbiAgICovXHJcbiAgaGlnaGxpZ2h0TGFzdEl0ZW0oKTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSB8IG51bGwge1xyXG4gICAgaWYgKCF0aGlzLl9pdGVtcygpLmxlbmd0aCkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgdGhpcy51bmhpZ2hsaWdodEN1cnJlbnQoKTtcclxuXHJcbiAgICBjb25zdCBpdGVtVG9IaWdobGlnaHQgPSB0aGlzLl9pdGVtcygpLmxhc3QoKTtcclxuICAgIHRoaXMuaGlnaGxpZ2h0SXRlbShpdGVtVG9IaWdobGlnaHQpO1xyXG5cclxuICAgIHJldHVybiBpdGVtVG9IaWdobGlnaHQ7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEhpZ2hsaWdodHMgdGhlIG5leHQgbm9uLWRpc2FibGVkIGl0ZW0gZGVmaW5lZCBieSB0aGUgb2Zmc2V0IGFtb3VudC5cclxuICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBhbW91bnQgb2YgaXRlbXMgdG8gb2Zmc2V0IHRoZSBoaWdobGlnaHQgYnkuXHJcbiAgICogQHJldHVybnMgVGhlIGl0ZW0gaGlnaGxpZ2h0ZWQuXHJcbiAgICovXHJcbiAgaGlnaGxpZ2h0TmV4dEl0ZW0ob2Zmc2V0OiBudW1iZXIpOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtIHwgbnVsbCB7XHJcbiAgICBjb25zdCBjdXJyZW50SXRlbSA9IHRoaXMuX2hpZ2hsaWdodGVkSXRlbSgpO1xyXG4gICAgaWYgKCFjdXJyZW50SXRlbSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5oaWdobGlnaHRGaXJzdEl0ZW0oKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5faXRlbXMoKTtcclxuICAgIGNvbnN0IGN1cnJlbnRJbmRleEluSXRlbXMgPSBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmluZGV4KCkgPT09IGN1cnJlbnRJdGVtLmluZGV4KCkpO1xyXG5cclxuICAgIGxldCBuZXh0SXRlbUluZGV4ID0gY3VycmVudEluZGV4SW5JdGVtcyArIG9mZnNldDtcclxuICAgIGlmIChuZXh0SXRlbUluZGV4ID49IGl0ZW1zLmxlbmd0aCkge1xyXG4gICAgICBuZXh0SXRlbUluZGV4IC09IGl0ZW1zLmxlbmd0aDtcclxuICAgIH0gZWxzZSBpZiAobmV4dEl0ZW1JbmRleCA8IDApIHtcclxuICAgICAgbmV4dEl0ZW1JbmRleCArPSBpdGVtcy5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpdGVtVG9IaWdobGlnaHQgPSBpdGVtc1tuZXh0SXRlbUluZGV4XTtcclxuXHJcbiAgICB0aGlzLmhpZ2hsaWdodEl0ZW0oaXRlbVRvSGlnaGxpZ2h0KTtcclxuXHJcbiAgICByZXR1cm4gaXRlbVRvSGlnaGxpZ2h0O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlc3QtaXRlbS1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9faW50ZXJuYWwvaXRlbS1zdG9yYWdlcy9zaW1wbGVzdC1pdGVtLXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWMxRCxNQUFNLE9BQU8sbUJBQW1CO0lBSTlCLFlBQTZCLGNBQXVDO1FBQXZDLG1CQUFjLEdBQWQsY0FBYyxDQUF5QjtRQUhuRCxXQUFNLEdBQUcsTUFBTSxDQUEyQixFQUFFLENBQUMsQ0FBQztRQUM5QyxxQkFBZ0IsR0FBRyxNQUFNLENBQW1DLElBQUksQ0FBQyxDQUFDO1FBSW5GOztXQUVHO1FBQ00sVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDMUM7O1dBRUc7UUFDTSxvQkFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM5RDs7V0FFRztRQUNNLHlCQUFvQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBYlosQ0FBQztJQWV4RTs7OztPQUlHO0lBQ0gsUUFBUSxDQUFDLEtBQVk7UUFDbkIsSUFBSSxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG9C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QWUsQ0FBQyxDQUFDO1FBRXBDLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsaUJBQWlCLENBQUMsTUFBYztRQUM5QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzVCLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXRGLElBQUksYUFBYSxHQUFHLG1CQUFtQixHQUFHLE1BQU0sQ0FBQztRQUNqRCxJQUFJLGFBQWEsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEMsYUFBYSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsQ0FBQzthQUFNLElBQUksYUFBYSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzdCLGFBQWEsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ2hDLENBQUM7UUFDRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVwQyxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduYWwsIGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJlc29sdmVQYXRoIH0gZnJvbSAncmVzb2x2ZS1vYmplY3QtcGF0aCc7XG5pbXBvcnQgeyBhbnksIGlzRGVmaW5lZCwgaXNQcmltaXRpdmUgfSBmcm9tICdzaW1wbGUtYm9vbCc7XG5pbXBvcnQgeyBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtIH0gZnJvbSAnLi4vLi4vdHlwZXMvaXRlbS1zdG9yYWdlLnR5cGVzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnLi4vLi4vdHlwZXMvdXRpbGl0eS50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlc3RJdGVtU3RvcmFnZUhvc3REZWZhdWx0cyB7XG4gIHN1Z2dWYWx1ZUZyb206IHN0cmluZztcbiAgc3VnZ0xhYmVsRnJvbTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBTaW1wbGVzdEl0ZW1TdG9yYWdlSG9zdCB7XG4gIHJlYWRvbmx5IHZhbHVlRnJvbTogU2lnbmFsPE51bGxhYmxlPHN0cmluZz4+O1xuICByZWFkb25seSBsYWJlbEZyb206IFNpZ25hbDxOdWxsYWJsZTxzdHJpbmc+PjtcbiAgcmVhZG9ubHkgREVGQVVMVFM6IFNpbXBsZXN0SXRlbVN0b3JhZ2VIb3N0RGVmYXVsdHM7XG59XG5cbmV4cG9ydCBjbGFzcyBTaW1wbGVzdEl0ZW1TdG9yYWdlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXRlbXMgPSBzaWduYWw8QXJkU2ltcGxlc3RTdG9yYWdlSXRlbVtdPihbXSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2hpZ2hsaWdodGVkSXRlbSA9IHNpZ25hbDxOdWxsYWJsZTxBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtPj4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfYXJkUGFyZW50Q29tcDogU2ltcGxlc3RJdGVtU3RvcmFnZUhvc3QpIHt9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIGl0ZW1zLlxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbXMgPSB0aGlzLl9pdGVtcy5hc1JlYWRvbmx5KCk7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IGhpZ2hsaWdodGVkIGl0ZW0uXG4gICAqL1xuICByZWFkb25seSBoaWdobGlnaHRlZEl0ZW0gPSB0aGlzLl9oaWdobGlnaHRlZEl0ZW0uYXNSZWFkb25seSgpO1xuICAvKipcbiAgICogVHJ1ZSBpZiBhdCBsZWFzdCBvbmUgaXRlbSBpcyBoaWdobGlnaHRlZCwgb3RoZXJ3aXNlIGZhbHNlLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNBbnlJdGVtSGlnaGxpZ2h0ZWQgPSBjb21wdXRlZCgoKSA9PiBpc0RlZmluZWQodGhpcy5faGlnaGxpZ2h0ZWRJdGVtKCkpKTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgY29tcG9uZW50J3MgaXRlbXMuIFRha2VzIGludG8gYWNjb3VudCB0aGUgdmFsdWVzIGRlZmluZWQgYnkgdGhlIHBhcmVudCBjb21wb25lbnQgZm9yIGBzdWdnVmFsdWVGcm9tYCBhbmQgYHN1Z2dMYWJlbEZyb21gLlxuICAgKiBAcGFyYW0gaXRlbXMgQW4gYXJyYXkgb2YgaXRlbXMgdG8gYmUgc2V0IGFzIHRoZSBjb21wb25lbnQncyBpdGVtcy5cbiAgICogQHJldHVybnMgdHJ1ZSBpZiBhdCBsZWFzdCBvbmUgb2YgdGhlIGl0ZW1zIGlzIG9mIHByaW1pdGl2ZSB0eXBlLCBvdGhlcndpc2UgZmFsc2UuXG4gICAqL1xuICBzZXRJdGVtcyhpdGVtczogYW55W10pOiB2b2lkIHtcbiAgICBsZXQgYXJlSXRlbXNQcmltaXRpdmUgPSBmYWxzZTtcbiAgICBpZiAoYW55KGl0ZW1zLCBpc1ByaW1pdGl2ZSkpIHtcbiAgICAgIGl0ZW1zID0gaXRlbXMubWFwKHRoaXMuX3ByaW1pdGl2ZUl0ZW1zTWFwRm4pO1xuICAgICAgYXJlSXRlbXNQcmltaXRpdmUgPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMuX2l0ZW1zLnNldChcbiAgICAgIGl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NldEl0ZW1zTWFwRm4oaXRlbSwgaW5kZXgsIGFyZUl0ZW1zUHJpbWl0aXZlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuICBwcml2YXRlIF9wcmltaXRpdmVJdGVtc01hcEZuPFQ+KGl0ZW06IFQpOiB7IHZhbHVlOiBUIH0ge1xuICAgIHJldHVybiB7IHZhbHVlOiBpdGVtIH07XG4gIH1cbiAgcHJpdmF0ZSBfc2V0SXRlbXNNYXBGbihyYXdJdGVtRGF0YTogYW55LCBpbmRleDogbnVtYmVyLCBhcmVJdGVtc1ByaW1pdGl2ZTogYm9vbGVhbik6IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0ge1xuICAgIGlmIChhcmVJdGVtc1ByaW1pdGl2ZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXRlbURhdGE6IHNpZ25hbChyYXdJdGVtRGF0YSksXG4gICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgdmFsdWU6IHNpZ25hbChyYXdJdGVtRGF0YS52YWx1ZSksXG4gICAgICAgIGxhYmVsOiBzaWduYWwocmF3SXRlbURhdGEudmFsdWU/LnRvU3RyaW5nPy4oKSA/PyBTdHJpbmcocmF3SXRlbURhdGEudmFsdWUpKSxcbiAgICAgICAgc2VsZWN0ZWQ6IHNpZ25hbChmYWxzZSksXG4gICAgICAgIGhpZ2hsaWdodGVkOiBzaWduYWwoZmFsc2UpLFxuICAgICAgfTtcbiAgICB9XG4gICAgLy9nZXQgdmFsdWVcbiAgICBjb25zdCB2YWx1ZVBhdGggPVxuICAgICAgdGhpcy5fYXJkUGFyZW50Q29tcC52YWx1ZUZyb20oKSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLmxhYmVsRnJvbSgpID8/IHRoaXMuX2FyZFBhcmVudENvbXAuREVGQVVMVFMuc3VnZ1ZhbHVlRnJvbTtcbiAgICBjb25zdCB2YWx1ZSA9IHJlc29sdmVQYXRoKHJhd0l0ZW1EYXRhLCB2YWx1ZVBhdGgpO1xuXG4gICAgLy9nZXQgbGFiZWxcbiAgICBjb25zdCBsYWJlbFBhdGggPVxuICAgICAgdGhpcy5fYXJkUGFyZW50Q29tcC5sYWJlbEZyb20oKSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLnZhbHVlRnJvbSgpID8/IHRoaXMuX2FyZFBhcmVudENvbXAuREVGQVVMVFMuc3VnZ0xhYmVsRnJvbTtcbiAgICBjb25zdCBsYWJlbCA9IHJlc29sdmVQYXRoKHJhd0l0ZW1EYXRhLCBsYWJlbFBhdGgpID8/IHZhbHVlO1xuXG4gICAgLy9yZXR1cm5cbiAgICByZXR1cm4ge1xuICAgICAgaXRlbURhdGE6IHNpZ25hbChyYXdJdGVtRGF0YSksXG4gICAgICBpbmRleDogaW5kZXgsXG4gICAgICB2YWx1ZTogc2lnbmFsKHZhbHVlKSxcbiAgICAgIGxhYmVsOiBzaWduYWwobGFiZWw/LnRvU3RyaW5nPy4oKSA/PyBTdHJpbmcobGFiZWwpKSxcbiAgICAgIHNlbGVjdGVkOiBzaWduYWwoZmFsc2UpLFxuICAgICAgaGlnaGxpZ2h0ZWQ6IHNpZ25hbChmYWxzZSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIHRoZSBnaXZlbiBpdGVtLlxuICAgKiBAcGFyYW0gaXRlbXMgVGhlIGl0ZW0gdG8gc2VsZWN0LlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgb2YgdGhlIHNlbGVjdGVkIGl0ZW0uXG4gICAqL1xuICBzZWxlY3RJdGVtKGl0ZW06IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0pOiBhbnkge1xuICAgIHJldHVybiBpdGVtLnZhbHVlO1xuICB9XG4gIHNlbGVjdEN1cnJlbnQoKTogYW55IHtcbiAgICBjb25zdCBoaSA9IHRoaXMuX2hpZ2hsaWdodGVkSXRlbSgpO1xuICAgIGlmICghaGkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0SXRlbShoaSk7XG4gIH1cblxuICAvKipcbiAgICogVW5oaWdobGlnaHRzIGFsbCBjdXJyZW50bHkgaGlnaGxpZ2h0ZWQgaXRlbXMuXG4gICAqL1xuICB1bmhpZ2hsaWdodEN1cnJlbnQoKTogdm9pZCB7XG4gICAgY29uc3QgaGkgPSB0aGlzLl9oaWdobGlnaHRlZEl0ZW0oKTtcbiAgICBpZiAoaGkpIHtcbiAgICAgIGhpLmhpZ2hsaWdodGVkLnNldChmYWxzZSk7XG4gICAgfVxuICAgIHRoaXMuX2hpZ2hsaWdodGVkSXRlbS5zZXQobnVsbCk7XG4gIH1cbiAgLyoqXG4gICAqIEhpZ2hsaWdodHMgYSBnaXZlbiBpdGVtLlxuICAgKiBAcGFyYW0gaXRlbSBUaGUgaXRlbSB0byBiZSBoaWdobGlnaHRlZC5cbiAgICovXG4gIGhpZ2hsaWdodEl0ZW0oaXRlbTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSk6IHZvaWQge1xuICAgIHRoaXMudW5oaWdobGlnaHRDdXJyZW50KCk7XG5cbiAgICBpdGVtLmhpZ2hsaWdodGVkLnNldCh0cnVlKTtcblxuICAgIHRoaXMuX2hpZ2hsaWdodGVkSXRlbS5zZXQoaXRlbSk7XG4gIH1cbiAgLyoqXG4gICAqIFVuaGlnaGxpZ2h0cyBhIGdpdmVuIGl0ZW0uXG4gICAqIEBwYXJhbSBpdGVtIFRoZSBpdGVtIHRvIGJlIHVuaGlnaGxpZ2h0ZWQuXG4gICAqL1xuICB1bmhpZ2hsaWdodEl0ZW0oaXRlbTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSk6IHZvaWQge1xuICAgIGl0ZW0uaGlnaGxpZ2h0ZWQuc2V0KGZhbHNlKTtcblxuICAgIGlmICh0aGlzLl9oaWdobGlnaHRlZEl0ZW0oKT8uaW5kZXggPT09IGl0ZW0uaW5kZXgpIHRoaXMuX2hpZ2hsaWdodGVkSXRlbS5zZXQobnVsbCk7XG4gIH1cbiAgLyoqXG4gICAqIEhpZ2hsaWdodHMgdGhlIGZpcnN0IGl0ZW0gb3V0IG9mIGFsbCBpdGVtcy5cbiAgICogQHJldHVybnMgVGhlIGhpZ2hsaWdodGVkIGl0ZW0uXG4gICAqL1xuICBoaWdobGlnaHRGaXJzdEl0ZW0oKTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSB8IG51bGwge1xuICAgIGlmICghdGhpcy5faXRlbXMoKS5sZW5ndGgpIHJldHVybiBudWxsO1xuXG4gICAgdGhpcy51bmhpZ2hsaWdodEN1cnJlbnQoKTtcblxuICAgIGNvbnN0IGl0ZW1Ub0hpZ2hsaWdodCA9IHRoaXMuX2l0ZW1zKCkuZmlyc3QoKTtcbiAgICB0aGlzLmhpZ2hsaWdodEl0ZW0oaXRlbVRvSGlnaGxpZ2h0KTtcblxuICAgIHJldHVybiBpdGVtVG9IaWdobGlnaHQ7XG4gIH1cbiAgLyoqXG4gICAqIEhpZ2hsaWdodHMgdGhlIGxhc3QgaXRlbSBvdXQgb2YgYWxsIGl0ZW1zLlxuICAgKiBAcmV0dXJucyBUaGUgaGlnaGxpZ2h0ZWQgaXRlbS5cbiAgICovXG4gIGhpZ2hsaWdodExhc3RJdGVtKCk6IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0gfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuX2l0ZW1zKCkubGVuZ3RoKSByZXR1cm4gbnVsbDtcblxuICAgIHRoaXMudW5oaWdobGlnaHRDdXJyZW50KCk7XG5cbiAgICBjb25zdCBpdGVtVG9IaWdobGlnaHQgPSB0aGlzLl9pdGVtcygpLmxhc3QoKTtcbiAgICB0aGlzLmhpZ2hsaWdodEl0ZW0oaXRlbVRvSGlnaGxpZ2h0KTtcblxuICAgIHJldHVybiBpdGVtVG9IaWdobGlnaHQ7XG4gIH1cbiAgLyoqXG4gICAqIEhpZ2hsaWdodHMgdGhlIG5leHQgbm9uLWRpc2FibGVkIGl0ZW0gZGVmaW5lZCBieSB0aGUgb2Zmc2V0IGFtb3VudC5cbiAgICogQHBhcmFtIG9mZnNldCBUaGUgYW1vdW50IG9mIGl0ZW1zIHRvIG9mZnNldCB0aGUgaGlnaGxpZ2h0IGJ5LlxuICAgKiBAcmV0dXJucyBUaGUgaXRlbSBoaWdobGlnaHRlZC5cbiAgICovXG4gIGhpZ2hsaWdodE5leHRJdGVtKG9mZnNldDogbnVtYmVyKTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSB8IG51bGwge1xuICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gdGhpcy5faGlnaGxpZ2h0ZWRJdGVtKCk7XG4gICAgaWYgKCFjdXJyZW50SXRlbSkge1xuICAgICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0Rmlyc3RJdGVtKCk7XG4gICAgfVxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5faXRlbXMoKTtcbiAgICBjb25zdCBjdXJyZW50SW5kZXhJbkl0ZW1zID0gaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pbmRleCA9PT0gY3VycmVudEl0ZW0uaW5kZXgpO1xuXG4gICAgbGV0IG5leHRJdGVtSW5kZXggPSBjdXJyZW50SW5kZXhJbkl0ZW1zICsgb2Zmc2V0O1xuICAgIGlmIChuZXh0SXRlbUluZGV4ID49IGl0ZW1zLmxlbmd0aCkge1xuICAgICAgbmV4dEl0ZW1JbmRleCAtPSBpdGVtcy5sZW5ndGg7XG4gICAgfSBlbHNlIGlmIChuZXh0SXRlbUluZGV4IDwgMCkge1xuICAgICAgbmV4dEl0ZW1JbmRleCArPSBpdGVtcy5sZW5ndGg7XG4gICAgfVxuICAgIGNvbnN0IGl0ZW1Ub0hpZ2hsaWdodCA9IGl0ZW1zW25leHRJdGVtSW5kZXhdO1xuXG4gICAgdGhpcy5oaWdobGlnaHRJdGVtKGl0ZW1Ub0hpZ2hsaWdodCk7XG5cbiAgICByZXR1cm4gaXRlbVRvSGlnaGxpZ2h0O1xuICB9XG59XG4iXX0=
|
|
@@ -39,8 +39,8 @@ export class PaginationModel {
|
|
|
39
39
|
totalPages: this.lastPageNum(),
|
|
40
40
|
totalItems: total,
|
|
41
41
|
page: this._ardHostCmp.page(),
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
currentItemsFrom: pageItems[0],
|
|
43
|
+
currentItemsTo: pageItems[1],
|
|
44
44
|
};
|
|
45
45
|
});
|
|
46
46
|
this.getPartialContext = computed(() => {
|
|
@@ -87,4 +87,4 @@ export class PaginationModel {
|
|
|
87
87
|
return this._ardHostCmp.page();
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvX2ludGVybmFsL21vZGVscy9wYWdpbmF0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUE2QnhDLE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQTZCLFdBQWdDO1FBQWhDLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtRQUVwRCx3QkFBbUIsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXhGLGdCQUFXLEdBQUcsUUFBUSxDQUFnQixHQUFHLEVBQUU7WUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUMsQ0FBQztRQUNNLGVBQVUsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFO1lBQzNDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JHLENBQUMsQ0FBQyxDQUFDO1FBQ00sdUJBQWtCLEdBQUcsUUFBUSxDQUEwQixHQUFHLEVBQUU7WUFDbkUsTUFBTSxLQUFLLEdBQUcsSUFB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LE9BQU8sSUFBSSxDQUFDO1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFHLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztDQTRCRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsU2lnbmFsLCBTaWduYWwsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzRGVmaW5lZCB9IGZyb20gJ3NpbXBsZS1ib29sJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvbk1vZGVsSG9zdCB7XHJcbiAgcmVhZG9ubHkgY29tcG9uZW50SWQ6IHN0cmluZztcclxuICByZWFkb25seSB0b3RhbEl0ZW1zOiBTaWduYWw8bnVtYmVyPjtcclxuICByZWFkb25seSBvcHRpb25zOiBTaWduYWw8bnVtYmVyW10gfCB7IHZhbHVlOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdPjtcclxuICByZWFkb25seSBpdGVtc1BlclBhZ2U6IE1vZGVsU2lnbmFsPG51bWJlcj47XHJcbiAgcmVhZG9ubHkgcGFnZTogTW9kZWxTaWduYWw8bnVtYmVyPjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uQ3VycmVudEl0ZW1zQ29udGV4dCB7XHJcbiAgcmVhZG9ubHkgY3VycmVudEl0ZW1zRmlyc3Q6IG51bWJlcjtcclxuICByZWFkb25seSBjdXJyZW50SXRlbXNMYXN0OiBudW1iZXI7XHJcbiAgcmVhZG9ubHkgdG90YWxJdGVtczogbnVtYmVyO1xyXG4gIHJlYWRvbmx5IHRvdGFsUGFnZXM6IG51bWJlcjtcclxuICByZWFkb25seSBwYWdlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvbkNvbnRleHQgZXh0ZW5kcyBQYWdpbmF0aW9uQ3VycmVudEl0ZW1zQ29udGV4dCB7XHJcbiAgcmVhZG9ubHkgaXRlbXNQZXJQYWdlT3B0aW9uczogbnVtYmVyW10gfCB7IHZhbHVlOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdO1xyXG4gIHJlYWRvbmx5IGl0ZW1zUGVyUGFnZTogbnVtYmVyO1xyXG4gIHJlYWRvbmx5IG9uSXRlbXNQZXJQYWdlQ2hhbmdlOiAobmV3VmFsdWU6IG51bWJlcikgPT4gdm9pZDtcclxuICByZWFkb25seSBmaXJzdFBhZ2VEaXNhYmxlZDogYm9vbGVhbjtcclxuICByZWFkb25seSBwcmV2UGFnZURpc2FibGVkOiBib29sZWFuO1xyXG4gIHJlYWRvbmx5IG5leHRQYWdlRGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgcmVhZG9ubHkgbGFzdFBhZ2VEaXNhYmxlZDogYm9vbGVhbjtcclxuICByZWFkb25seSBvblBhZ2VDaGFuZ2U6IChuZXdQYWdlOiBudW1iZXIpID0+IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uTW9kZWwge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2FyZEhvc3RDbXA6IFBhZ2luYXRpb25Nb2RlbEhvc3QpIHt9XHJcblxyXG4gIHJlYWRvbmx5IGlzVG90YWxJdGVtc0RlZmluZWQgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiBpc0RlZmluZWQodGhpcy5fYXJkSG9zdENtcC50b3RhbEl0ZW1zKCkpKTtcclxuXHJcbiAgcmVhZG9ubHkgbGFzdFBhZ2VOdW0gPSBjb21wdXRlZDxudW1iZXIgfCBudWxsPigoKSA9PiB7XHJcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMuX2FyZEhvc3RDbXAudG90YWxJdGVtcygpO1xyXG4gICAgaWYgKCF0b3RhbCkgcmV0dXJuIG51bGw7XHJcbiAgICByZXR1cm4gTWF0aC5jZWlsKHRvdGFsIC8gdGhpcy5fYXJkSG9zdENtcC5pdGVtc1BlclBhZ2UoKSk7XHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgaXNMYXN0UGFnZSA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcclxuICAgIHJldHVybiAhaXNEZWZpbmVkKHRoaXMuX2FyZEhvc3RDbXAudG90YWxJdGVtcygpKSB8fCB0aGlzLmxhc3RQYWdlTnVtKCkgPT09IHRoaXMuX2FyZEhvc3RDbXAucGFnZSgpO1xyXG4gIH0pO1xyXG4gIHJlYWRvbmx5IGl0ZW1zT25DdXJyZW50UGFnZSA9IGNvbXB1dGVkPFtudW1iZXIsIG51bWJlcl0gfCBudWxsPigoKSA9PiB7XHJcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMuX2FyZEhvc3RDbXAudG90YWxJdGVtcygpO1xyXG4gICAgaWYgKCF0b3RhbCkgcmV0dXJuIG51bGw7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICBNYXRoLm1pbih0b3RhbCwgKHRoaXMuX2FyZEhvc3RDbXAucGFnZSgpIC0gMSkgKiB0aGlzLl9hcmRIb3N0Q21wLml0ZW1zUGVyUGFnZSgpICsgMSksXHJcbiAgICAgIE1hdGgubWluKHRvdGFsLCB0aGlzLl9hcmRIb3N0Q21wLnBhZ2UoKSAqIHRoaXMuX2FyZEhvc3RDbXAuaXRlbXNQZXJQYWdlKCkpLFxyXG4gICAgXTtcclxuICB9KTtcclxuXHJcbiAgLy8hIGFjdGlvbiBkaXNhYmxlZCBzdGF0ZXNcclxuICByZWFkb25seSBmaXJzdFBhZ2VEaXNhYmxlZCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcclxuICAgIHJldHVybiAhaXNEZWZpbmVkKHRoaXMuX2FyZEhvc3RDbXAudG90YWxJdGVtcygpKSB8fCB0aGlzLl9hcmRIb3N0Q21wLnBhZ2UoKSA9PT0gMTtcclxuICB9KTtcclxuICByZWFkb25seSBsYXN0UGFnZURpc2FibGVkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xyXG4gICAgcmV0dXJuICFpc0RlZmluZWQodGhpcy5fYXJkSG9zdENtcC50b3RhbEl0ZW1zKCkpIHx8IHRoaXMuX2FyZEhvc3RDbXAucGFnZSgpID09PSB0aGlzLmxhc3RQYWdlTnVtKCk7XHJcbiAgfSk7XHJcblxyXG4gIC8vISBjdXJyZW50IHBhZ2VcclxuICBzZXRQYWdlKHY6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fYXJkSG9zdENtcC5wYWdlLnNldCh2KTtcclxuICB9XHJcbiAgZ2V0UGFnZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FyZEhvc3RDbXAucGFnZSgpO1xyXG4gIH1cclxuICBnb1RvRmlyc3RQYWdlKCk6IG51bWJlciB8IG51bGwge1xyXG4gICAgaWYgKHRoaXMuZmlyc3RQYWdlRGlzYWJsZWQoKSkgcmV0dXJuIG51bGw7XHJcbiAgICB0aGlzLnNldFBhZ2UoMSk7XHJcbiAgICByZXR1cm4gMTtcclxuICB9XHJcbiAgZ29Ub1ByZXZQYWdlKCk6IG51bWJlciB8IG51bGwge1xyXG4gICAgaWYgKHRoaXMuZmlyc3RQYWdlRGlzYWJsZWQoKSkgcmV0dXJuIG51bGw7XHJcbiAgICB0aGlzLnNldFBhZ2UodGhpcy5fYXJkSG9zdENtcC5wYWdlKCkgLSAxKTtcclxuICAgIHJldHVybiB0aGlzLl9hcmRIb3N0Q21wLnBhZ2UoKTtcclxuICB9XHJcbiAgZ29Ub05leHRQYWdlKCk6IG51bWJlciB8IG51bGwge1xyXG4gICAgaWYgKHRoaXMubGFzdFBhZ2VEaXNhYmxlZCgpKSByZXR1cm4gbnVsbDtcclxuICAgIHRoaXMuc2V0UGFnZSh0aGlzLl9hcmRIb3N0Q21wLnBhZ2UoKSArIDEpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2FyZEhvc3RDbXAucGFnZSgpO1xyXG4gIH1cclxuICBnb1RvTGFzdFBhZ2UoKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICBpZiAodGhpcy5sYXN0UGFnZURpc2FibGVkKCkpIHJldHVybiBudWxsO1xyXG4gICAgdGhpcy5zZXRQYWdlKHRoaXMubGFzdFBhZ2VOdW0oKSEpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2FyZEhvc3RDbXAucGFnZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8hIGNvbnRleHRcclxuICByZWFkb25seSBnZXRDdXJyZW50SXRlbXNDb250ZXh0ID0gY29tcHV0ZWQ8UGFnaW5hdGlvbkN1cnJlbnRJdGVtc0NvbnRleHQ+KCgpID0+IHtcclxuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5fYXJkSG9zdENtcC50b3RhbEl0ZW1zKCk7XHJcbiAgICBpZiAoIXRvdGFsKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVCR7dGhpcy5fYXJkSG9zdENtcC5jb21wb25lbnRJZH05MDogQ2Fubm90IHVzZSBwYWdpbmF0aW9uIG1vZGVsIHdpdGhvdXQgZGVmaW5pbmcgdG90YWwgaXRlbXMgZmlyc3QuYCk7XHJcblxyXG4gICAgY29uc3QgcGFnZUl0ZW1zID0gdGhpcy5pdGVtc09uQ3VycmVudFBhZ2UoKSE7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0b3RhbFBhZ2VzOiB0aGlzLmxhc3RQYWdlTnVtKCkhLFxyXG4gICAgICB0b3RhbEl0ZW1zOiB0b3RhbCxcclxuICAgICAgcGFnZTogdGhpcy5fYXJkSG9zdENtcC5wYWdlKCksXHJcbiAgICAgIGN1cnJlbnRJdGVtc0ZpcnN0OiBwYWdlSXRlbXNbMF0sXHJcbiAgICAgIGN1cnJlbnRJdGVtc0xhc3Q6IHBhZ2VJdGVtc1sxXSxcclxuICAgIH07XHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgZ2V0UGFydGlhbENvbnRleHQgPSBjb21wdXRlZDxPbWl0PFBhZ2luYXRpb25Db250ZXh0LCAnb25JdGVtc1BlclBhZ2VDaGFuZ2UnIHwgJ29uUGFnZUNoYW5nZSc+PigoKSA9PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi50aGlzLmdldEN1cnJlbnRJdGVtc0NvbnRleHQoKSxcclxuICAgICAgaXRlbXNQZXJQYWdlT3B0aW9uczogdGhpcy5fYXJkSG9zdENtcC5vcHRpb25zKCksXHJcbiAgICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5fYXJkSG9zdENtcC5pdGVtc1BlclBhZ2UoKSxcclxuICAgICAgZmlyc3RQYWdlRGlzYWJsZWQ6IHRoaXMuZmlyc3RQYWdlRGlzYWJsZWQoKSxcclxuICAgICAgcHJldlBhZ2VEaXNhYmxlZDogdGhpcy5maXJzdFBhZ2VEaXNhYmxlZCgpLFxyXG4gICAgICBuZXh0UGFnZURpc2FibGVkOiB0aGlzLmxhc3RQYWdlRGlzYWJsZWQoKSxcclxuICAgICAgbGFzdFBhZ2VEaXNhYmxlZDogdGhpcy5sYXN0UGFnZURpc2FibGVkKCksXHJcbiAgICB9O1xyXG4gIH0pO1xyXG59XHJcbiJdfQ==
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvX2ludGVybmFsL21vZGVscy9wYWdpbmF0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUE2QnhDLE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQTZCLFdBQWdDO1FBQWhDLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtRQUVwRCx3QkFBbUIsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXhGLGdCQUFXLEdBQUcsUUFBUSxDQUFnQixHQUFHLEVBQUU7WUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUMsQ0FBQztRQUNNLGVBQVUsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFO1lBQzNDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JHLENBQUMsQ0FBQyxDQUFDO1FBQ00sdUJBQWtCLEdBQUcsUUFBUSxDQUEwQixHQUFHLEVBQUU7WUFDbkUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUN4QixPQUFPO2dCQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDcEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQzNFLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILDBCQUEwQjtRQUNqQixzQkFBaUIsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFO1lBQ2xELE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BGLENBQUMsQ0FBQyxDQUFDO1FBQ00scUJBQWdCLEdBQUcsUUFBUSxDQUFVLEdBQUcsRUFBRTtZQUNqRCxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyRyxDQUFDLENBQUMsQ0FBQztRQThCSCxXQUFXO1FBQ0YsMkJBQXNCLEdBQUcsUUFBUSxDQUFnQyxHQUFHLEVBQUU7WUFDN0UsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSztnQkFDUixNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLHFFQUFxRSxDQUFDLENBQUM7WUFFOUgsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFHLENBQUM7WUFDN0MsT0FBTztnQkFDTCxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRztnQkFDL0IsVUFBVSxFQUFFLEtBQUs7Z0JBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRTtnQkFDN0IsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7YUFDN0IsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ00sc0JBQWlCLEdBQUcsUUFBUSxDQUFtRSxHQUFHLEVBQUU7WUFDM0csT0FBTztnQkFDTCxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtnQkFDaEMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUU7Z0JBQy9DLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRTtnQkFDN0MsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUMzQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDekMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFO2FBQzFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQWxGNkQsQ0FBQztJQTZCakUsZ0JBQWdCO0lBQ2hCLE9BQU8sQ0FBQyxDQUFTO1FBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFDRCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRyxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7Q0E0QkYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbFNpZ25hbCwgU2lnbmFsLCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25Nb2RlbEhvc3Qge1xuICByZWFkb25seSBjb21wb25lbnRJZDogc3RyaW5nO1xuICByZWFkb25seSB0b3RhbEl0ZW1zOiBTaWduYWw8bnVtYmVyPjtcbiAgcmVhZG9ubHkgb3B0aW9uczogU2lnbmFsPG51bWJlcltdIHwgeyB2YWx1ZTogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH1bXT47XG4gIHJlYWRvbmx5IGl0ZW1zUGVyUGFnZTogTW9kZWxTaWduYWw8bnVtYmVyPjtcbiAgcmVhZG9ubHkgcGFnZTogTW9kZWxTaWduYWw8bnVtYmVyPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uQ3VycmVudEl0ZW1zQ29udGV4dCB7XG4gIHJlYWRvbmx5IGN1cnJlbnRJdGVtc0Zyb206IG51bWJlcjtcbiAgcmVhZG9ubHkgY3VycmVudEl0ZW1zVG86IG51bWJlcjtcbiAgcmVhZG9ubHkgdG90YWxJdGVtczogbnVtYmVyO1xuICByZWFkb25seSB0b3RhbFBhZ2VzOiBudW1iZXI7XG4gIHJlYWRvbmx5IHBhZ2U6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uQ29udGV4dCBleHRlbmRzIFBhZ2luYXRpb25DdXJyZW50SXRlbXNDb250ZXh0IHtcbiAgcmVhZG9ubHkgaXRlbXNQZXJQYWdlT3B0aW9uczogbnVtYmVyW10gfCB7IHZhbHVlOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdO1xuICByZWFkb25seSBpdGVtc1BlclBhZ2U6IG51bWJlcjtcbiAgcmVhZG9ubHkgb25JdGVtc1BlclBhZ2VDaGFuZ2U6IChuZXdWYWx1ZTogbnVtYmVyKSA9PiB2b2lkO1xuICByZWFkb25seSBmaXJzdFBhZ2VEaXNhYmxlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcHJldlBhZ2VEaXNhYmxlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbmV4dFBhZ2VEaXNhYmxlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbGFzdFBhZ2VEaXNhYmxlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgb25QYWdlQ2hhbmdlOiAobmV3UGFnZTogbnVtYmVyKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbk1vZGVsIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfYXJkSG9zdENtcDogUGFnaW5hdGlvbk1vZGVsSG9zdCkge31cblxuICByZWFkb25seSBpc1RvdGFsSXRlbXNEZWZpbmVkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gaXNEZWZpbmVkKHRoaXMuX2FyZEhvc3RDbXAudG90YWxJdGVtcygpKSk7XG5cbiAgcmVhZG9ubHkgbGFzdFBhZ2VOdW0gPSBjb21wdXRlZDxudW1iZXIgfCBudWxsPigoKSA9PiB7XG4gICAgY29uc3QgdG90YWwgPSB0aGlzLl9hcmRIb3N0Q21wLnRvdGFsSXRlbXMoKTtcbiAgICBpZiAoIXRvdGFsKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gTWF0aC5jZWlsKHRvdGFsIC8gdGhpcy5fYXJkSG9zdENtcC5pdGVtc1BlclBhZ2UoKSk7XG4gIH0pO1xuICByZWFkb25seSBpc0xhc3RQYWdlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiAhaXNEZWZpbmVkKHRoaXMuX2FyZEhvc3RDbXAudG90YWxJdGVtcygpKSB8fCB0aGlzLmxhc3RQYWdlTnVtKCkgPT09IHRoaXMuX2FyZEhvc3RDbXAucGFnZSgpO1xuICB9KTtcbiAgcmVhZG9ubHkgaXRlbXNPbkN1cnJlbnRQYWdlID0gY29tcHV0ZWQ8W251bWJlciwgbnVtYmVyXSB8IG51bGw+KCgpID0+IHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMuX2FyZEhvc3RDbXAudG90YWxJdGVtcygpO1xuICAgIGlmICghdG90YWwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBbXG4gICAgICBNYXRoLm1pbih0b3RhbCwgKHRoaXMuX2FyZEhvc3RDbXAucGFnZSgpIC0gMSkgKiB0aGlzLl9hcmRIb3N0Q21wLml0ZW1zUGVyUGFnZSgpICsgMSksXG4gICAgICBNYXRoLm1pbih0b3RhbCwgdGhpcy5fYXJkSG9zdENtcC5wYWdlKCkgKiB0aGlzLl9hcmRIb3N0Q21wLml0ZW1zUGVyUGFnZSgpKSxcbiAgICBdO1xuICB9KTtcblxuICAvLyEgYWN0aW9uIGRpc2FibGVkIHN0YXRlc1xuICByZWFkb25seSBmaXJzdFBhZ2VEaXNhYmxlZCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gIWlzRGVmaW5lZCh0aGlzLl9hcmRIb3N0Q21wLnRvdGFsSXRlbXMoKSkgfHwgdGhpcy5fYXJkSG9zdENtcC5wYWdlKCkgPT09IDE7XG4gIH0pO1xuICByZWFkb25seSBsYXN0UGFnZURpc2FibGVkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiAhaXNEZWZpbmVkKHRoaXMuX2FyZEhvc3RDbXAudG90YWxJdGVtcygpKSB8fCB0aGlzLl9hcmRIb3N0Q21wLnBhZ2UoKSA9PT0gdGhpcy5sYXN0UGFnZU51bSgpO1xuICB9KTtcblxuICAvLyEgY3VycmVudCBwYWdlXG4gIHNldFBhZ2UodjogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fYXJkSG9zdENtcC5wYWdlLnNldCh2KTtcbiAgfVxuICBnZXRQYWdlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2FyZEhvc3RDbXAucGFnZSgpO1xuICB9XG4gIGdvVG9GaXJzdFBhZ2UoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuZmlyc3RQYWdlRGlzYWJsZWQoKSkgcmV0dXJuIG51bGw7XG4gICAgdGhpcy5zZXRQYWdlKDEpO1xuICAgIHJldHVybiAxO1xuICB9XG4gIGdvVG9QcmV2UGFnZSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICBpZiAodGhpcy5maXJzdFBhZ2VEaXNhYmxlZCgpKSByZXR1cm4gbnVsbDtcbiAgICB0aGlzLnNldFBhZ2UodGhpcy5fYXJkSG9zdENtcC5wYWdlKCkgLSAxKTtcbiAgICByZXR1cm4gdGhpcy5fYXJkSG9zdENtcC5wYWdlKCk7XG4gIH1cbiAgZ29Ub05leHRQYWdlKCk6IG51bWJlciB8IG51bGwge1xuICAgIGlmICh0aGlzLmxhc3RQYWdlRGlzYWJsZWQoKSkgcmV0dXJuIG51bGw7XG4gICAgdGhpcy5zZXRQYWdlKHRoaXMuX2FyZEhvc3RDbXAucGFnZSgpICsgMSk7XG4gICAgcmV0dXJuIHRoaXMuX2FyZEhvc3RDbXAucGFnZSgpO1xuICB9XG4gIGdvVG9MYXN0UGFnZSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICBpZiAodGhpcy5sYXN0UGFnZURpc2FibGVkKCkpIHJldHVybiBudWxsO1xuICAgIHRoaXMuc2V0UGFnZSh0aGlzLmxhc3RQYWdlTnVtKCkhKTtcbiAgICByZXR1cm4gdGhpcy5fYXJkSG9zdENtcC5wYWdlKCk7XG4gIH1cblxuICAvLyEgY29udGV4dFxuICByZWFkb25seSBnZXRDdXJyZW50SXRlbXNDb250ZXh0ID0gY29tcHV0ZWQ8UGFnaW5hdGlvbkN1cnJlbnRJdGVtc0NvbnRleHQ+KCgpID0+IHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMuX2FyZEhvc3RDbXAudG90YWxJdGVtcygpO1xuICAgIGlmICghdG90YWwpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVCR7dGhpcy5fYXJkSG9zdENtcC5jb21wb25lbnRJZH05MDogQ2Fubm90IHVzZSBwYWdpbmF0aW9uIG1vZGVsIHdpdGhvdXQgZGVmaW5pbmcgdG90YWwgaXRlbXMgZmlyc3QuYCk7XG5cbiAgICBjb25zdCBwYWdlSXRlbXMgPSB0aGlzLml0ZW1zT25DdXJyZW50UGFnZSgpITtcbiAgICByZXR1cm4ge1xuICAgICAgdG90YWxQYWdlczogdGhpcy5sYXN0UGFnZU51bSgpISxcbiAgICAgIHRvdGFsSXRlbXM6IHRvdGFsLFxuICAgICAgcGFnZTogdGhpcy5fYXJkSG9zdENtcC5wYWdlKCksXG4gICAgICBjdXJyZW50SXRlbXNGcm9tOiBwYWdlSXRlbXNbMF0sXG4gICAgICBjdXJyZW50SXRlbXNUbzogcGFnZUl0ZW1zWzFdLFxuICAgIH07XG4gIH0pO1xuICByZWFkb25seSBnZXRQYXJ0aWFsQ29udGV4dCA9IGNvbXB1dGVkPE9taXQ8UGFnaW5hdGlvbkNvbnRleHQsICdvbkl0ZW1zUGVyUGFnZUNoYW5nZScgfCAnb25QYWdlQ2hhbmdlJz4+KCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5nZXRDdXJyZW50SXRlbXNDb250ZXh0KCksXG4gICAgICBpdGVtc1BlclBhZ2VPcHRpb25zOiB0aGlzLl9hcmRIb3N0Q21wLm9wdGlvbnMoKSxcbiAgICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5fYXJkSG9zdENtcC5pdGVtc1BlclBhZ2UoKSxcbiAgICAgIGZpcnN0UGFnZURpc2FibGVkOiB0aGlzLmZpcnN0UGFnZURpc2FibGVkKCksXG4gICAgICBwcmV2UGFnZURpc2FibGVkOiB0aGlzLmZpcnN0UGFnZURpc2FibGVkKCksXG4gICAgICBuZXh0UGFnZURpc2FibGVkOiB0aGlzLmxhc3RQYWdlRGlzYWJsZWQoKSxcbiAgICAgIGxhc3RQYWdlRGlzYWJsZWQ6IHRoaXMubGFzdFBhZ2VEaXNhYmxlZCgpLFxuICAgIH07XG4gIH0pO1xufVxuIl19
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Directive } from '@angular/core';
|
|
2
2
|
import { _FocusableComponentBase, _focusableComponentDefaults } from './focusable-component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
;
|
|
5
4
|
export const _ngModelComponentDefaults = _focusableComponentDefaults;
|
|
6
5
|
/**
|
|
7
6
|
* Common code for components which implement the ControlValueAccessor.
|
|
@@ -41,4 +40,4 @@ export class _NgModelComponentBase extends _FocusableComponentBase {
|
|
|
41
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: _NgModelComponentBase, decorators: [{
|
|
42
41
|
type: Directive
|
|
43
42
|
}] });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdtb2RlbC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL19pbnRlcm5hbC9uZ21vZGVsLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSwyQkFBMkIsRUFBK0IsTUFBTSx1QkFBdUIsQ0FBQzs7QUFJMUgsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQThCLDJCQUEyQixDQUFDO0FBRWhHOzs7O0dBSUc7QUFFSCxNQUFNLE9BQWdCLHFCQUFzQixTQUFRLHVCQUF1QjtJQU16RTs7O09BR0c7SUFDSCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUNEOzs7T0FHRztJQUNILGdCQUFnQixDQUFDLEVBQW9CO1FBQ25DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUNEOzs7T0FHRztJQUNILGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFnQkQsa0JBQWtCO0lBQ1QsTUFBTSxDQUFDLEtBQWlCO1FBQy9CLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzhHQTlDbUIscUJBQXFCO2tHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBRDFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgX0ZvY3VzYWJsZUNvbXBvbmVudEJhc2UsIF9mb2N1c2FibGVDb21wb25lbnREZWZhdWx0cywgX0ZvY3VzYWJsZUNvbXBvbmVudERlZmF1bHRzIH0gZnJvbSAnLi9mb2N1c2FibGUtY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBfTmdNb2RlbENvbXBvbmVudERlZmF1bHRzIGV4dGVuZHMgX0ZvY3VzYWJsZUNvbXBvbmVudERlZmF1bHRzIHt9XG5cbmV4cG9ydCBjb25zdCBfbmdNb2RlbENvbXBvbmVudERlZmF1bHRzOiBfTmdNb2RlbENvbXBvbmVudERlZmF1bHRzID0gX2ZvY3VzYWJsZUNvbXBvbmVudERlZmF1bHRzO1xuXG4vKipcbiAqIENvbW1vbiBjb2RlIGZvciBjb21wb25lbnRzIHdoaWNoIGltcGxlbWVudCB0aGUgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gKlxuICogKipXYXJuaW5nKio6IGB3cml0ZVZhbHVlYCBmdW5jdGlvbiBzaG91bGQgYmUgaW1wbGVtZW50ZWQgb24gdGhlIGNoaWxkIGNvbXBvbmVudCFcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgX05nTW9kZWxDb21wb25lbnRCYXNlIGV4dGVuZHMgX0ZvY3VzYWJsZUNvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfREVGQVVMVFMhOiBfTmdNb2RlbENvbXBvbmVudERlZmF1bHRzO1xuXG4gIC8vISBjb250cm9sIHZhbHVlIGFjY2Vzc29yXG4gIHByb3RlY3RlZCBfb25DaGFuZ2VSZWdpc3RlcmVkITogKF86IGFueSkgPT4gdm9pZDtcbiAgcHJvdGVjdGVkIF9vblRvdWNoZWRSZWdpc3RlcmVkITogKCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIHRvIGhhbmRsZSB0b3VjaGVkIHN0YXRlLiBSZXF1aXJlZCBieSBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICogQHBhcmFtIGZuIFRoZSBmdW5jdGlvbiB0byByZWdpc3Rlci5cbiAgICovXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkUmVnaXN0ZXJlZCA9IGZuO1xuICB9XG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBmdW5jdGlvbiB0byBoYW5kbGUgdmFsdWUgY2hhbmdlLiBSZXF1aXJlZCBieSBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICogQHBhcmFtIGZuIFRoZSBmdW5jdGlvbiB0byByZWdpc3Rlci5cbiAgICovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZVJlZ2lzdGVyZWQgPSBmbjtcbiAgfVxuICAvKipcbiAgICogU2V0cyB0aGUgY29tcG9uZW50J3MgZGlzYWJsZWQgc3RhdGUuIFJlcXVpcmVkIGJ5IENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKiBAcGFyYW0gaXNEaXNhYmxlZCB0aGUgbmV3IGRpc2FibGVkIHN0YXRlLlxuICAgKi9cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZC5zZXQoaXNEaXNhYmxlZCk7XG4gIH1cblxuICAvKipcbiAgICogV3JpdGVzIHRoZSBhIG5ldyB2YWx1ZSBpbnRvIHRoZSBjb21wb25lbnQuIFJlcXVpcmVkIGJ5IENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHYgVGhlIG5ldyB2YWx1ZSB0byB3cml0ZS5cbiAgICovXG4gIGFic3RyYWN0IHdyaXRlVmFsdWUodjogYW55KTogdm9pZDsgLy8qIGFic3RyYWN0XG5cbiAgLyoqXG4gICAqIFdyaXRlcyB0aGUgYSBuZXcgdmFsdWUgaW50byB0aGUgY29tcG9uZW50LiBSZXF1aXJlZCBieSBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICogQGFic3RyYWN0XG4gICAqIEBwYXJhbSB2IFRoZSBuZXcgdmFsdWUgdG8gd3JpdGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgX2VtaXRDaGFuZ2UoKTogdm9pZDsgLy8qIGFic3RyYWN0XG5cbiAgLy8hIGV2ZW50IGhhbmRsZXJzXG4gIG92ZXJyaWRlIG9uQmx1cihldmVudDogRm9jdXNFdmVudCkge1xuICAgIHN1cGVyLm9uQmx1cihldmVudCk7XG4gICAgdGhpcy5fb25Ub3VjaGVkUmVnaXN0ZXJlZD8uKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -61,27 +61,7 @@ export class _SelectableListComponentBase extends _NgModelComponentBase {
|
|
|
61
61
|
set items(value) {
|
|
62
62
|
if (!Array.isArray(value))
|
|
63
63
|
value = coerceArrayProperty(value);
|
|
64
|
-
|
|
65
|
-
if (shouldPrintErrors) {
|
|
66
|
-
this._printPrimitiveWarnings();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
_printPrimitiveWarnings() {
|
|
70
|
-
const makeWarning = (str) => {
|
|
71
|
-
console.warn(`ARD-WA${this._componentId} Skipped using [${str}] property bound to <ard-${this._componentName}>, as some provided items are of primitive type`);
|
|
72
|
-
};
|
|
73
|
-
if (this.valueFrom()) {
|
|
74
|
-
makeWarning('valueFrom');
|
|
75
|
-
}
|
|
76
|
-
if (this.labelFrom()) {
|
|
77
|
-
makeWarning('labelFrom');
|
|
78
|
-
}
|
|
79
|
-
if (this.disabledFrom()) {
|
|
80
|
-
makeWarning('disabledFrom');
|
|
81
|
-
}
|
|
82
|
-
if (this.invertDisabled()) {
|
|
83
|
-
makeWarning('invertDisabled');
|
|
84
|
-
}
|
|
64
|
+
this.itemStorage.setItems(value);
|
|
85
65
|
}
|
|
86
66
|
get _multiselectableHostAttribute() {
|
|
87
67
|
return this.multiselectable();
|
|
@@ -289,4 +269,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
289
269
|
type: HostListener,
|
|
290
270
|
args: ['keydown', ['$event']]
|
|
291
271
|
}] } });
|
|
292
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1saXN0LWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvX2ludGVybmFsL3NlbGVjdGFibGUtbGlzdC1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdyRyxPQUFPLEVBQUUsaUJBQWlCLEVBQXlCLE1BQU0scUNBQXFDLENBQUM7QUFDL0YsT0FBTyxFQUFFLHFCQUFxQixFQUE2Qix5QkFBeUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQVlsSCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBcUM7SUFDaEYsR0FBRyx5QkFBeUI7SUFDNUIsU0FBUyxFQUFFLE9BQU87SUFDbEIsU0FBUyxFQUFFLE9BQU87SUFDbEIsWUFBWSxFQUFFLFVBQVU7SUFDeEIsV0FBVyxFQUFFLFNBQVM7SUFDdEIsZUFBZSxFQUFFLEtBQUs7SUFDdEIsWUFBWSxFQUFFLEtBQUs7SUFDbkIsY0FBYyxFQUFFLEtBQUs7SUFDckIsZ0JBQWdCLEVBQUUsU0FBUztDQUM1QixDQUFDO0FBR0YsTUFBTSxPQUFnQiw0QkFDcEIsU0FBUSxxQkFBcUI7SUFGL0I7O1FBT0Usb0JBQW9CO1FBQ1gsZ0JBQVcsR0FBRyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFN0IsYUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFL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LEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBQ08sY0FBYyxDQUFDLEtBQW9CO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFFNUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFDTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUN2QyxDQUFDOzhHQXBTbUIsNEJBQTRCO2tHQUE1Qiw0QkFBNEI7OzJGQUE1Qiw0QkFBNEI7a0JBRGpELFNBQVM7OEJBMEJKLEtBQUs7c0JBRFIsS0FBSztnQkFzQ0YsNkJBQTZCO3NCQUZoQyxXQUFXO3VCQUFDLGVBQWU7O3NCQUMzQixXQUFXO3VCQUFDLHVCQUF1QjtnQkFhaEMsMEJBQTBCO3NCQUQ3QixXQUFXO3VCQUFDLHlCQUF5QjtnQkEwQmxDLHFCQUFxQjtzQkFEeEIsV0FBVzt1QkFBQyxtQkFBbUI7Z0JBbUQ1QixLQUFLO3NCQURSLEtBQUs7Z0JBNENOLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXO2dCQXVCekIsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBjb21wdXRlZCxcclxuICBpbmplY3QsXHJcbiAgaW5wdXQsXHJcbiAgb3V0cHV0LFxyXG4gIHNpZ25hbCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGNvZXJjZUFycmF5UHJvcGVydHksIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XHJcbmltcG9ydCB7IEFyZE9wdGlvblNpbXBsZSwgQ29tcGFyZVdpdGhGbiwgT3B0aW9uQ29udGV4dCB9IGZyb20gJy4uL3R5cGVzL2l0ZW0tc3RvcmFnZS50eXBlcyc7XHJcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnLi4vdHlwZXMvdXRpbGl0eS50eXBlcyc7XHJcbmltcG9ydCB7IFNpbXBsZUl0ZW1TdG9yYWdlLCBTaW1wbGVJdGVtU3RvcmFnZUhvc3QgfSBmcm9tICcuL2l0ZW0tc3RvcmFnZXMvc2ltcGxlLWl0ZW0tc3RvcmFnZSc7XHJcbmltcG9ydCB7IF9OZ01vZGVsQ29tcG9uZW50QmFzZSwgX05nTW9kZWxDb21wb25lbnREZWZhdWx0cywgX25nTW9kZWxDb21wb25lbnREZWZhdWx0cyB9IGZyb20gJy4vbmdtb2RlbC1jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBfU2VsZWN0YWJsZUxpc3RDb21wb25lbnREZWZhdWx0cyBleHRlbmRzIF9OZ01vZGVsQ29tcG9uZW50RGVmYXVsdHMge1xyXG4gIHZhbHVlRnJvbTogc3RyaW5nO1xyXG4gIGxhYmVsRnJvbTogc3RyaW5nO1xyXG4gIGRpc2FibGVkRnJvbTogc3RyaW5nO1xyXG4gIGNvbXBhcmVXaXRoOiBOdWxsYWJsZTxDb21wYXJlV2l0aEZuPjtcclxuICBtdWx0aXNlbGVjdGFibGU6IGJvb2xlYW47XHJcbiAgcmVxdWlyZVZhbHVlOiBib29sZWFuO1xyXG4gIGludmVydERpc2FibGVkOiBib29sZWFuO1xyXG4gIG1heFNlbGVjdGVkSXRlbXM6IE51bGxhYmxlPG51bWJlcj47XHJcbn1cclxuZXhwb3J0IGNvbnN0IF9zZWxlY3RhYmxlTGlzdENvbXBvbmVudERlZmF1bHRzOiBfU2VsZWN0YWJsZUxpc3RDb21wb25lbnREZWZhdWx0cyA9IHtcclxuICAuLi5fbmdNb2RlbENvbXBvbmVudERlZmF1bHRzLFxyXG4gIHZhbHVlRnJvbTogJ3ZhbHVlJyxcclxuICBsYWJlbEZyb206ICdsYWJlbCcsXHJcbiAgZGlzYWJsZWRGcm9tOiAnZGlzYWJsZWQnLFxyXG4gIGNvbXBhcmVXaXRoOiB1bmRlZmluZWQsXHJcbiAgbXVsdGlzZWxlY3RhYmxlOiBmYWxzZSxcclxuICByZXF1aXJlVmFsdWU6IGZhbHNlLFxyXG4gIGludmVydERpc2FibGVkOiBmYWxzZSxcclxuICBtYXhTZWxlY3RlZEl0ZW1zOiB1bmRlZmluZWQsXHJcbn07XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIF9TZWxlY3RhYmxlTGlzdENvbXBvbmVudEJhc2VcclxuICBleHRlbmRzIF9OZ01vZGVsQ29tcG9uZW50QmFzZVxyXG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFNpbXBsZUl0ZW1TdG9yYWdlSG9zdFxyXG57XHJcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9ERUZBVUxUUyE6IF9TZWxlY3RhYmxlTGlzdENvbXBvbmVudERlZmF1bHRzO1xyXG5cclxuICAvLyEgcHVibGljIGNvbnN0YW50c1xyXG4gIHJlYWRvbmx5IGl0ZW1TdG9yYWdlID0gbmV3IFNpbXBsZUl0ZW1TdG9yYWdlKHRoaXMpO1xyXG4gIHJlYWRvbmx5IGh0bWxJZCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XHJcbiAgcmVhZG9ubHkgZWxlbWVudCE6IEhUTUxFbGVtZW50O1xyXG4gIHJlYWRvbmx5IERFRkFVTFRTID0gdGhpcy5fREVGQVVMVFM7XHJcblxyXG4gIGFic3RyYWN0IHJlYWRvbmx5IF9jb21wb25lbnRJZDogc3RyaW5nO1xyXG4gIGFic3RyYWN0IHJlYWRvbmx5IF9jb21wb25lbnROYW1lOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuXHJcbiAgLy8hIGJpbmRpbmctcmVsYXRlZCBpbnB1dHNcclxuICByZWFkb25seSB2YWx1ZUZyb20gPSBpbnB1dDxzdHJpbmc+KHRoaXMuX0RFRkFVTFRTLnZhbHVlRnJvbSk7XHJcbiAgcmVhZG9ubHkgbGFiZWxGcm9tID0gaW5wdXQ8c3RyaW5nPih0aGlzLl9ERUZBVUxUUy5sYWJlbEZyb20pO1xyXG4gIHJlYWRvbmx5IGRpc2FibGVkRnJvbSA9IGlucHV0PHN0cmluZz4odGhpcy5fREVGQVVMVFMuZGlzYWJsZWRGcm9tKTtcclxuICByZWFkb25seSBjb21wYXJlV2l0aCA9IGlucHV0PE51bGxhYmxlPENvbXBhcmVXaXRoRm4+Pih0aGlzLl9ERUZBVUxUUy5jb21wYXJlV2l0aCk7XHJcblxyXG4gIC8vISBpdGVtcyBzZXR0ZXIvZ2V0dGVyXHJcbiAgQElucHV0KClcclxuICBnZXQgaXRlbXMoKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbVN0b3JhZ2UuaXRlbXMoKTtcclxuICB9XHJcbiAgc2V0IGl0ZW1zKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHZhbHVlID0gY29lcmNlQXJyYXlQcm9wZXJ0eSh2YWx1ZSk7XHJcblxyXG4gICAgY29uc3Qgc2hvdWxkUHJpbnRFcnJvcnMgPSB0aGlzLml0ZW1TdG9yYWdlLnNldEl0ZW1zKHZhbHVlKTtcclxuXHJcbiAgICBpZiAoc2hvdWxkUHJpbnRFcnJvcnMpIHtcclxuICAgICAgdGhpcy5fcHJpbnRQcmltaXRpdmVXYXJuaW5ncygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9wcmludFByaW1pdGl2ZVdhcm5pbmdzKCkge1xyXG4gICAgY29uc3QgbWFrZVdhcm5pbmcgPSAoc3RyOiBzdHJpbmcpOiB2b2lkID0+IHtcclxuICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgIGBBUkQtV0Eke3RoaXMuX2NvbXBvbmVudElkfSBTa2lwcGVkIHVzaW5nIFske3N0cn1dIHByb3BlcnR5IGJvdW5kIHRvIDxhcmQtJHt0aGlzLl9jb21wb25lbnROYW1lfT4sIGFzIHNvbWUgcHJvdmlkZWQgaXRlbXMgYXJlIG9mIHByaW1pdGl2ZSB0eXBlYFxyXG4gICAgICApO1xyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLnZhbHVlRnJvbSgpKSB7XHJcbiAgICAgIG1ha2VXYXJuaW5nKCd2YWx1ZUZyb20nKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmxhYmVsRnJvbSgpKSB7XHJcbiAgICAgIG1ha2VXYXJuaW5nKCdsYWJlbEZyb20nKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRpc2FibGVkRnJvbSgpKSB7XHJcbiAgICAgIG1ha2VXYXJuaW5nKCdkaXNhYmxlZEZyb20nKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmludmVydERpc2FibGVkKCkpIHtcclxuICAgICAgbWFrZVdhcm5pbmcoJ2ludmVydERpc2FibGVkJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyEgbXVsdGlzZWxlY3RhYmxlXHJcbiAgcmVhZG9ubHkgbXVsdGlzZWxlY3RhYmxlID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5tdWx0aXNlbGVjdGFibGUsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLm11bHRpcGxlJylcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFyZC1tdWx0aXNlbGVjdCcpXHJcbiAgZ2V0IF9tdWx0aXNlbGVjdGFibGVIb3N0QXR0cmlidXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubXVsdGlzZWxlY3RhYmxlKCk7XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBzaW5nbGVzZWxlY3RhYmxlID0gY29tcHV0ZWQoKCkgPT4gIXRoaXMubXVsdGlzZWxlY3RhYmxlKCkpO1xyXG5cclxuICAvLyEgcmVxdWlyZSB2YWx1ZVxyXG4gIHJlYWRvbmx5IHJlcXVpcmVWYWx1ZSA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMucmVxdWlyZVZhbHVlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcblxyXG4gIHJlYWRvbmx5IGlzVmFsdWVSZXF1aXJlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVxdWlyZVZhbHVlKCkgfHwgIXRoaXMubXVsdGlzZWxlY3RhYmxlKCkpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFyZC1yZXF1aXJlLXZhbHVlJylcclxuICBnZXQgX3JlcXVpcmVWYWx1ZUhvc3RBdHRyaWJ1dGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlVmFsdWUoKTtcclxuICB9XHJcblxyXG4gIC8vISBjb2VyY2VkIHByb3BlcnRpZXNcclxuICByZWFkb25seSBpbnZlcnREaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMuaW52ZXJ0RGlzYWJsZWQsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuICByZWFkb25seSBtYXhTZWxlY3RlZEl0ZW1zID0gaW5wdXQ8TnVsbGFibGU8bnVtYmVyPiwgYW55Pih0aGlzLl9ERUZBVUxUUy5tYXhTZWxlY3RlZEl0ZW1zLCB7XHJcbiAgICB0cmFuc2Zvcm06IHYgPT4gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgdW5kZWZpbmVkKSxcclxuICB9KTtcclxuXHJcbiAgLy8hIGNvbnRyb2wgdmFsdWUgYWNjZXNzb3JcclxuICAvL292ZXJyaWRlIHRoZSB3cml0ZVZhbHVlIGFuZCBzZXREaXNhYmxlZFN0YXRlIGRlZmluZWQgaW4gX05nTW9kZWxDb21wb25lbnRcclxuICBvdmVycmlkZSBzZXREaXNhYmxlZFN0YXRlKHN0YXRlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkLnNldChzdGF0ZSk7XHJcbiAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcbiAgd3JpdGVWYWx1ZShuZ01vZGVsOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5pdGVtU3RvcmFnZS53cml0ZVZhbHVlKG5nTW9kZWwpO1xyXG4gICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICAvLyEgY2hhbmdlICYgdG91Y2ggZXZlbnQgZW1pdHRlcnNcclxuICByZWFkb25seSB0b3VjaGVkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hcmQtdG91Y2hlZCcpXHJcbiAgZ2V0IF90b3VjaGVkSG9zdEF0dHJpYnV0ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfZW1pdENoYW5nZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5pdGVtU3RvcmFnZS52YWx1ZSgpO1xyXG4gICAgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkPy4odmFsdWUpO1xyXG4gICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KHZhbHVlKTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBfb25Ub3VjaGVkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudG91Y2hlZCgpKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fb25Ub3VjaGVkUmVnaXN0ZXJlZD8uKCk7XHJcbiAgICB0aGlzLnRvdWNoZWQuc2V0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLy8hIGZvY3VzICYgYmx1ciBoYW5kbGVyc1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbGFzdEJsdXJUaW1lc3RhbXAgPSBzaWduYWw8TnVsbGFibGU8bnVtYmVyPj4odW5kZWZpbmVkKTtcclxuICBvdmVycmlkZSBvbkZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XHJcbiAgICBzdXBlci5vbkZvY3VzKGV2ZW50KTtcclxuXHJcbiAgICBjb25zdCBsYnQgPSB0aGlzLmxhc3RCbHVyVGltZXN0YW1wKCk7XHJcbiAgICBpZiAodGhpcy50b3VjaGVkKCkgfHwgIWxidCB8fCBsYnQgKyAxIDwgRGF0ZS5ub3coKSkgcmV0dXJuO1xyXG4gICAgdGhpcy5sYXN0Qmx1clRpbWVzdGFtcC5zZXQobnVsbCk7XHJcblxyXG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XHJcbiAgfVxyXG4gIG92ZXJyaWRlIG9uQmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xyXG4gICAgc3VwZXIub25CbHVyKGV2ZW50KTtcclxuXHJcbiAgICBpZiAoIXRoaXMudG91Y2hlZCgpKSB0aGlzLmxhc3RCbHVyVGltZXN0YW1wLnNldChEYXRlLm5vdygpKTtcclxuICB9XHJcblxyXG4gIC8vISBnZXR0ZXJzXHJcbiAgcmVhZG9ubHkgaGlnaGxpZ2h0ZWRJdGVtcyA9IGNvbXB1dGVkPEFyZE9wdGlvblNpbXBsZVtdPigoKSA9PiB0aGlzLml0ZW1TdG9yYWdlLmhpZ2hsaWdodGVkSXRlbXMoKSk7XHJcbiAgcmVhZG9ubHkgZmlyc3RIaWdobGlnaHRlZEl0ZW0gPSBjb21wdXRlZDxOdWxsYWJsZTxBcmRPcHRpb25TaW1wbGU+PigoKSA9PiB0aGlzLmhpZ2hsaWdodGVkSXRlbXMoKT8uZmlyc3QoKSk7XHJcbiAgcmVhZG9ubHkgaXNJdGVtTGltaXRSZWFjaGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pdGVtU3RvcmFnZS5pc0l0ZW1MaW1pdFJlYWNoZWQoKSk7XHJcblxyXG4gIC8vISBjb250ZXh0IHByb3ZpZGVyc1xyXG4gIGdldE9wdGlvbkNvbnRleHQoaXRlbTogQXJkT3B0aW9uU2ltcGxlKTogT3B0aW9uQ29udGV4dDxBcmRPcHRpb25TaW1wbGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICRpbXBsaWNpdDogaXRlbSxcclxuICAgICAgaXRlbSxcclxuICAgICAgaXRlbURhdGE6IGl0ZW0uaXRlbURhdGEoKSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyEgdmFsdWUgaW5wdXQgJiBvdXRwdXRcclxuICBASW5wdXQoKVxyXG4gIHNldCB2YWx1ZShuZXdWYWx1ZTogYW55KSB7XHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobmV3VmFsdWUpKSBuZXdWYWx1ZSA9IGNvZXJjZUFycmF5UHJvcGVydHkobmV3VmFsdWUpO1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKG5ld1ZhbHVlKTtcclxuICB9XHJcbiAgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBvdXRwdXQ8YW55W10+KCk7XHJcblxyXG4gIC8vISBvdXRwdXQgZXZlbnRzXHJcbiAgcmVhZG9ubHkgY2hhbmdlRXZlbnQgPSBvdXRwdXQ8YW55W10+KHsgYWxpYXM6ICdjaGFuZ2UnIH0pO1xyXG4gIHJlYWRvbmx5IGFkZEV2ZW50ID0gb3V0cHV0PGFueVtdPih7IGFsaWFzOiAnYWRkJyB9KTtcclxuICByZWFkb25seSByZW1vdmVFdmVudCA9IG91dHB1dDxhbnlbXT4oeyBhbGlhczogJ3JlbW92ZScgfSk7XHJcblxyXG4gIC8vISBpdGVtIHNlbGVjdGlvbiBoYW5kbGVyc1xyXG4gIHRvZ2dsZUl0ZW0oaXRlbTogQXJkT3B0aW9uU2ltcGxlKTogdm9pZCB7XHJcbiAgICBpZiAoaXRlbS5zZWxlY3RlZCgpKSB7XHJcbiAgICAgIGlmICh0aGlzLnNpbmdsZXNlbGVjdGFibGUoKSkgcmV0dXJuO1xyXG5cclxuICAgICAgdGhpcy51bnNlbGVjdEl0ZW0oaXRlbSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0SXRlbShpdGVtKTtcclxuICB9XHJcbiAgc2VsZWN0SXRlbSguLi5pdGVtczogQXJkT3B0aW9uU2ltcGxlW10pOiB2b2lkIHtcclxuICAgIGNvbnN0IFtzZWxlY3RlZCwgdW5zZWxlY3RlZF0gPSB0aGlzLml0ZW1TdG9yYWdlLnNlbGVjdEl0ZW0oLi4uaXRlbXMpO1xyXG5cclxuICAgIGlmICh1bnNlbGVjdGVkLmxlbmd0aCA+IDApIHRoaXMucmVtb3ZlRXZlbnQuZW1pdCh1bnNlbGVjdGVkKTtcclxuXHJcbiAgICBpZiAoc2VsZWN0ZWQubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmFkZEV2ZW50LmVtaXQoc2VsZWN0ZWQpO1xyXG4gICAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHVuc2VsZWN0SXRlbSguLi5pdGVtczogQXJkT3B0aW9uU2ltcGxlW10pOiB2b2lkIHtcclxuICAgIGNvbnN0IHVuc2VsZWN0ZWQgPSB0aGlzLml0ZW1TdG9yYWdlLnVuc2VsZWN0SXRlbSguLi5pdGVtcyk7XHJcblxyXG4gICAgaWYgKHVuc2VsZWN0ZWQubGVuZ3RoID4gMCkgdGhpcy5yZW1vdmVFdmVudC5lbWl0KHVuc2VsZWN0ZWQpO1xyXG5cclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIC8vISBoaWdobGlnaC1yZWxhdGVkXHJcblxyXG4gIHJlYWRvbmx5IGlzTW91c2VCZWluZ1VzZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbW92ZScpXHJcbiAgb25Nb3VzZU1vdmUoKSB7XHJcbiAgICB0aGlzLmlzTW91c2VCZWluZ1VzZWQuc2V0KHRydWUpO1xyXG4gIH1cclxuICBvbkl0ZW1Nb3VzZUVudGVyKG9wdGlvbjogQXJkT3B0aW9uU2ltcGxlLCBldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzTW91c2VCZWluZ1VzZWQpIHJldHVybjtcclxuICAgIHRoaXMuaXRlbVN0b3JhZ2UuaGlnaGxpZ2h0U2luZ2xlSXRlbShvcHRpb24pO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG4gIG9uSXRlbU1vdXNlTGVhdmUob3B0aW9uOiBBcmRPcHRpb25TaW1wbGUsIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNNb3VzZUJlaW5nVXNlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5pdGVtU3RvcmFnZS51bmhpZ2hsaWdodEl0ZW0ob3B0aW9uKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgLy8hIGNsaWNrIGhhbmRsZXJzXHJcbiAgb25JdGVtQ2xpY2sob3B0aW9uOiBBcmRPcHRpb25TaW1wbGUsIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMudG9nZ2xlSXRlbShvcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgLy8hIGtleSBwcmVzcyBoYW5kbGVyc1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxyXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xyXG4gICAgICBjYXNlICdTcGFjZSc6XHJcbiAgICAgIGNhc2UgJ0VudGVyJzoge1xyXG4gICAgICAgIHRoaXMuX3RvZ2dsZUhpZ2hsaWdodGVkSXRlbXMoZXZlbnQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdBcnJvd1JpZ2h0Jzoge1xyXG4gICAgICAgIHRoaXMuX2hpZ2hsaWdodE5leHQoZXZlbnQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdBcnJvd0xlZnQnOiB7XHJcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0UHJldmlvdXMoZXZlbnQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdIb21lJzoge1xyXG4gICAgICAgIHRoaXMuX2hpZ2hsaWdodEZpcnN0KGV2ZW50KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnRW5kJzoge1xyXG4gICAgICAgIHRoaXMuX2hpZ2hsaWdodExhc3QoZXZlbnQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdLZXlBJzoge1xyXG4gICAgICAgIGlmIChldmVudC5jdHJsS2V5KSB7XHJcbiAgICAgICAgICB0aGlzLl9oaWdobGlnaHRBbGwoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfdG9nZ2xlSGlnaGxpZ2h0ZWRJdGVtcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzRm9jdXNlZCkgcmV0dXJuO1xyXG5cclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgY29uc3QgaGlnaGxpZ2h0ZWRJdGVtcyA9IHRoaXMuaGlnaGxpZ2h0ZWRJdGVtcygpO1xyXG5cclxuICAgIGlmIChoaWdobGlnaHRlZEl0ZW1zLmV2ZXJ5KGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCkpIHtcclxuICAgICAgdGhpcy51bnNlbGVjdEl0ZW0oLi4uaGlnaGxpZ2h0ZWRJdGVtcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdEl0ZW0oLi4uaGlnaGxpZ2h0ZWRJdGVtcyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX2hpZ2hsaWdodFByZXZpb3VzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNGb2N1c2VkKSByZXR1cm47XHJcblxyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuaXNNb3VzZUJlaW5nVXNlZC5zZXQoZmFsc2UpO1xyXG5cclxuICAgIHRoaXMuaXRlbVN0b3JhZ2UuaGlnaGxpZ2h0TmV4dEl0ZW0oLTEsIGV2ZW50LnNoaWZ0S2V5KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0TmV4dChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzRm9jdXNlZCkgcmV0dXJuO1xyXG5cclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLmlzTW91c2VCZWluZ1VzZWQuc2V0KGZhbHNlKTtcclxuXHJcbiAgICB0aGlzLml0ZW1TdG9yYWdlLmhpZ2hsaWdodE5leHRJdGVtKCsxLCBldmVudC5zaGlmdEtleSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2hpZ2hsaWdodEZpcnN0KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNGb2N1c2VkKSByZXR1cm47XHJcblxyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuaXNNb3VzZUJlaW5nVXNlZC5zZXQoZmFsc2UpO1xyXG5cclxuICAgIHRoaXMuaXRlbVN0b3JhZ2UuaGlnaGxpZ2h0Rmlyc3RJdGVtKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2hpZ2hsaWdodExhc3QoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pc0ZvY3VzZWQpIHJldHVybjtcclxuXHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5pc01vdXNlQmVpbmdVc2VkLnNldChmYWxzZSk7XHJcblxyXG4gICAgdGhpcy5pdGVtU3RvcmFnZS5oaWdobGlnaHRMYXN0SXRlbSgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9oaWdobGlnaHRBbGwoKTogdm9pZCB7XHJcbiAgICB0aGlzLml0ZW1TdG9yYWdlLmhpZ2hsaWdodEFsbEl0ZW1zKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1saXN0LWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvX2ludGVybmFsL3NlbGVjdGFibGUtbGlzdC1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdyRyxPQUFPLEVBQUUsaUJBQWlCLEVBQXlCLE1BQU0scUNBQXFDLENBQUM7QUFDL0YsT0FBTyxFQUFFLHFCQUFxQixFQUE2Qix5QkFBeUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQVlsSCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBcUM7SUFDaEYsR0FBRyx5QkFBeUI7SUFDNUIsU0FBUyxFQUFFLE9BQU87SUFDbEIsU0FBUyxFQUFFLE9BQU87SUFDbEIsWUFBWSxFQUFFLFVBQVU7SUFDeEIsV0FBVyxFQUFFLFNBQVM7SUFDdEIsZUFBZSxFQUFFLEtBQUs7SUFDdEIsWUFBWSxFQUFFLEtBQUs7SUFDbkIsY0FBYyxFQUFFLEtBQUs7SUFDckIsZ0JBQWdCLEVBQUUsU0FBUztDQUM1QixDQUFDO0FBR0YsTUFBTSxPQUFnQiw0QkFDcEIsU0FBUSxxQkFBcUI7SUFGL0I7O1FBT0Usb0JBQW9CO1FBQ1gsZ0JBQVcsR0FBRyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFN0IsYUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFL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bUJBQW1CO2dCQW1ENUIsS0FBSztzQkFEUixLQUFLO2dCQTRDTixXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVztnQkF1QnpCLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29lcmNlQXJyYXlQcm9wZXJ0eSwgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcbmltcG9ydCB7IEFyZE9wdGlvblNpbXBsZSwgQ29tcGFyZVdpdGhGbiwgT3B0aW9uQ29udGV4dCB9IGZyb20gJy4uL3R5cGVzL2l0ZW0tc3RvcmFnZS50eXBlcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xuaW1wb3J0IHsgU2ltcGxlSXRlbVN0b3JhZ2UsIFNpbXBsZUl0ZW1TdG9yYWdlSG9zdCB9IGZyb20gJy4vaXRlbS1zdG9yYWdlcy9zaW1wbGUtaXRlbS1zdG9yYWdlJztcbmltcG9ydCB7IF9OZ01vZGVsQ29tcG9uZW50QmFzZSwgX05nTW9kZWxDb21wb25lbnREZWZhdWx0cywgX25nTW9kZWxDb21wb25lbnREZWZhdWx0cyB9IGZyb20gJy4vbmdtb2RlbC1jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIF9TZWxlY3RhYmxlTGlzdENvbXBvbmVudERlZmF1bHRzIGV4dGVuZHMgX05nTW9kZWxDb21wb25lbnREZWZhdWx0cyB7XG4gIHZhbHVlRnJvbTogc3RyaW5nO1xuICBsYWJlbEZyb206IHN0cmluZztcbiAgZGlzYWJsZWRGcm9tOiBzdHJpbmc7XG4gIGNvbXBhcmVXaXRoOiBOdWxsYWJsZTxDb21wYXJlV2l0aEZuPjtcbiAgbXVsdGlzZWxlY3RhYmxlOiBib29sZWFuO1xuICByZXF1aXJlVmFsdWU6IGJvb2xlYW47XG4gIGludmVydERpc2FibGVkOiBib29sZWFuO1xuICBtYXhTZWxlY3RlZEl0ZW1zOiBOdWxsYWJsZTxudW1iZXI+O1xufVxuZXhwb3J0IGNvbnN0IF9zZWxlY3RhYmxlTGlzdENvbXBvbmVudERlZmF1bHRzOiBfU2VsZWN0YWJsZUxpc3RDb21wb25lbnREZWZhdWx0cyA9IHtcbiAgLi4uX25nTW9kZWxDb21wb25lbnREZWZhdWx0cyxcbiAgdmFsdWVGcm9tOiAndmFsdWUnLFxuICBsYWJlbEZyb206ICdsYWJlbCcsXG4gIGRpc2FibGVkRnJvbTogJ2Rpc2FibGVkJyxcbiAgY29tcGFyZVdpdGg6IHVuZGVmaW5lZCxcbiAgbXVsdGlzZWxlY3RhYmxlOiBmYWxzZSxcbiAgcmVxdWlyZVZhbHVlOiBmYWxzZSxcbiAgaW52ZXJ0RGlzYWJsZWQ6IGZhbHNlLFxuICBtYXhTZWxlY3RlZEl0ZW1zOiB1bmRlZmluZWQsXG59O1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBfU2VsZWN0YWJsZUxpc3RDb21wb25lbnRCYXNlXG4gIGV4dGVuZHMgX05nTW9kZWxDb21wb25lbnRCYXNlXG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFNpbXBsZUl0ZW1TdG9yYWdlSG9zdFxue1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX0RFRkFVTFRTITogX1NlbGVjdGFibGVMaXN0Q29tcG9uZW50RGVmYXVsdHM7XG5cbiAgLy8hIHB1YmxpYyBjb25zdGFudHNcbiAgcmVhZG9ubHkgaXRlbVN0b3JhZ2UgPSBuZXcgU2ltcGxlSXRlbVN0b3JhZ2UodGhpcyk7XG4gIHJlYWRvbmx5IGh0bWxJZCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XG4gIHJlYWRvbmx5IGVsZW1lbnQhOiBIVE1MRWxlbWVudDtcbiAgcmVhZG9ubHkgREVGQVVMVFMgPSB0aGlzLl9ERUZBVUxUUztcblxuICBhYnN0cmFjdCByZWFkb25seSBfY29tcG9uZW50SWQ6IHN0cmluZztcbiAgYWJzdHJhY3QgcmVhZG9ubHkgX2NvbXBvbmVudE5hbWU6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jZCA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgLy8hIGJpbmRpbmctcmVsYXRlZCBpbnB1dHNcbiAgcmVhZG9ubHkgdmFsdWVGcm9tID0gaW5wdXQ8c3RyaW5nPih0aGlzLl9ERUZBVUxUUy52YWx1ZUZyb20pO1xuICByZWFkb25seSBsYWJlbEZyb20gPSBpbnB1dDxzdHJpbmc+KHRoaXMuX0RFRkFVTFRTLmxhYmVsRnJvbSk7XG4gIHJlYWRvbmx5IGRpc2FibGVkRnJvbSA9IGlucHV0PHN0cmluZz4odGhpcy5fREVGQVVMVFMuZGlzYWJsZWRGcm9tKTtcbiAgcmVhZG9ubHkgY29tcGFyZVdpdGggPSBpbnB1dDxOdWxsYWJsZTxDb21wYXJlV2l0aEZuPj4odGhpcy5fREVGQVVMVFMuY29tcGFyZVdpdGgpO1xuXG4gIC8vISBpdGVtcyBzZXR0ZXIvZ2V0dGVyXG4gIEBJbnB1dCgpXG4gIGdldCBpdGVtcygpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbVN0b3JhZ2UuaXRlbXMoKTtcbiAgfVxuICBzZXQgaXRlbXModmFsdWU6IGFueSkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHZhbHVlID0gY29lcmNlQXJyYXlQcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICB0aGlzLml0ZW1TdG9yYWdlLnNldEl0ZW1zKHZhbHVlKTtcbiAgfVxuXG4gIC8vISBtdWx0aXNlbGVjdGFibGVcbiAgcmVhZG9ubHkgbXVsdGlzZWxlY3RhYmxlID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5tdWx0aXNlbGVjdGFibGUsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIubXVsdGlwbGUnKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFyZC1tdWx0aXNlbGVjdCcpXG4gIGdldCBfbXVsdGlzZWxlY3RhYmxlSG9zdEF0dHJpYnV0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXNlbGVjdGFibGUoKTtcbiAgfVxuXG4gIHJlYWRvbmx5IHNpbmdsZXNlbGVjdGFibGUgPSBjb21wdXRlZCgoKSA9PiAhdGhpcy5tdWx0aXNlbGVjdGFibGUoKSk7XG5cbiAgLy8hIHJlcXVpcmUgdmFsdWVcbiAgcmVhZG9ubHkgcmVxdWlyZVZhbHVlID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5yZXF1aXJlVmFsdWUsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcblxuICByZWFkb25seSBpc1ZhbHVlUmVxdWlyZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlcXVpcmVWYWx1ZSgpIHx8ICF0aGlzLm11bHRpc2VsZWN0YWJsZSgpKTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFyZC1yZXF1aXJlLXZhbHVlJylcbiAgZ2V0IF9yZXF1aXJlVmFsdWVIb3N0QXR0cmlidXRlKCkge1xuICAgIHJldHVybiB0aGlzLnJlcXVpcmVWYWx1ZSgpO1xuICB9XG5cbiAgLy8hIGNvZXJjZWQgcHJvcGVydGllc1xuICByZWFkb25seSBpbnZlcnREaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMuaW52ZXJ0RGlzYWJsZWQsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcbiAgcmVhZG9ubHkgbWF4U2VsZWN0ZWRJdGVtcyA9IGlucHV0PE51bGxhYmxlPG51bWJlcj4sIGFueT4odGhpcy5fREVGQVVMVFMubWF4U2VsZWN0ZWRJdGVtcywge1xuICAgIHRyYW5zZm9ybTogdiA9PiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCB1bmRlZmluZWQpLFxuICB9KTtcblxuICAvLyEgY29udHJvbCB2YWx1ZSBhY2Nlc3NvclxuICAvL292ZXJyaWRlIHRoZSB3cml0ZVZhbHVlIGFuZCBzZXREaXNhYmxlZFN0YXRlIGRlZmluZWQgaW4gX05nTW9kZWxDb21wb25lbnRcbiAgb3ZlcnJpZGUgc2V0RGlzYWJsZWRTdGF0ZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQuc2V0KHN0YXRlKTtcbiAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuICB3cml0ZVZhbHVlKG5nTW9kZWw6IGFueVtdKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtU3RvcmFnZS53cml0ZVZhbHVlKG5nTW9kZWwpO1xuICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLy8hIGNoYW5nZSAmIHRvdWNoIGV2ZW50IGVtaXR0ZXJzXG4gIHJlYWRvbmx5IHRvdWNoZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYXJkLXRvdWNoZWQnKVxuICBnZXQgX3RvdWNoZWRIb3N0QXR0cmlidXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRvdWNoZWQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfZW1pdENoYW5nZSgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaXRlbVN0b3JhZ2UudmFsdWUoKTtcbiAgICB0aGlzLl9vbkNoYW5nZVJlZ2lzdGVyZWQ/Lih2YWx1ZSk7XG4gICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KHZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICB9XG4gIHByb3RlY3RlZCBfb25Ub3VjaGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRvdWNoZWQoKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5fb25Ub3VjaGVkUmVnaXN0ZXJlZD8uKCk7XG4gICAgdGhpcy50b3VjaGVkLnNldCh0cnVlKTtcbiAgfVxuXG4gIC8vISBmb2N1cyAmIGJsdXIgaGFuZGxlcnNcbiAgcHJpdmF0ZSByZWFkb25seSBsYXN0Qmx1clRpbWVzdGFtcCA9IHNpZ25hbDxOdWxsYWJsZTxudW1iZXI+Pih1bmRlZmluZWQpO1xuICBvdmVycmlkZSBvbkZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgc3VwZXIub25Gb2N1cyhldmVudCk7XG5cbiAgICBjb25zdCBsYnQgPSB0aGlzLmxhc3RCbHVyVGltZXN0YW1wKCk7XG4gICAgaWYgKHRoaXMudG91Y2hlZCgpIHx8ICFsYnQgfHwgbGJ0ICsgMSA8IERhdGUubm93KCkpIHJldHVybjtcbiAgICB0aGlzLmxhc3RCbHVyVGltZXN0YW1wLnNldChudWxsKTtcblxuICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICB9XG4gIG92ZXJyaWRlIG9uQmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIHN1cGVyLm9uQmx1cihldmVudCk7XG5cbiAgICBpZiAoIXRoaXMudG91Y2hlZCgpKSB0aGlzLmxhc3RCbHVyVGltZXN0YW1wLnNldChEYXRlLm5vdygpKTtcbiAgfVxuXG4gIC8vISBnZXR0ZXJzXG4gIHJlYWRvbmx5IGhpZ2hsaWdodGVkSXRlbXMgPSBjb21wdXRlZDxBcmRPcHRpb25TaW1wbGVbXT4oKCkgPT4gdGhpcy5pdGVtU3RvcmFnZS5oaWdobGlnaHRlZEl0ZW1zKCkpO1xuICByZWFkb25seSBmaXJzdEhpZ2hsaWdodGVkSXRlbSA9IGNvbXB1dGVkPE51bGxhYmxlPEFyZE9wdGlvblNpbXBsZT4+KCgpID0+IHRoaXMuaGlnaGxpZ2h0ZWRJdGVtcygpPy5maXJzdCgpKTtcbiAgcmVhZG9ubHkgaXNJdGVtTGltaXRSZWFjaGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pdGVtU3RvcmFnZS5pc0l0ZW1MaW1pdFJlYWNoZWQoKSk7XG5cbiAgLy8hIGNvbnRleHQgcHJvdmlkZXJzXG4gIGdldE9wdGlvbkNvbnRleHQoaXRlbTogQXJkT3B0aW9uU2ltcGxlKTogT3B0aW9uQ29udGV4dDxBcmRPcHRpb25TaW1wbGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgJGltcGxpY2l0OiBpdGVtLFxuICAgICAgaXRlbSxcbiAgICAgIGl0ZW1EYXRhOiBpdGVtLml0ZW1EYXRhKCksXG4gICAgfTtcbiAgfVxuXG4gIC8vISB2YWx1ZSBpbnB1dCAmIG91dHB1dFxuICBASW5wdXQoKVxuICBzZXQgdmFsdWUobmV3VmFsdWU6IGFueSkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkpIG5ld1ZhbHVlID0gY29lcmNlQXJyYXlQcm9wZXJ0eShuZXdWYWx1ZSk7XG4gICAgdGhpcy53cml0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgfVxuICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG91dHB1dDxhbnlbXT4oKTtcblxuICAvLyEgb3V0cHV0IGV2ZW50c1xuICByZWFkb25seSBjaGFuZ2VFdmVudCA9IG91dHB1dDxhbnlbXT4oeyBhbGlhczogJ2NoYW5nZScgfSk7XG4gIHJlYWRvbmx5IGFkZEV2ZW50ID0gb3V0cHV0PGFueVtdPih7IGFsaWFzOiAnYWRkJyB9KTtcbiAgcmVhZG9ubHkgcmVtb3ZlRXZlbnQgPSBvdXRwdXQ8YW55W10+KHsgYWxpYXM6ICdyZW1vdmUnIH0pO1xuXG4gIC8vISBpdGVtIHNlbGVjdGlvbiBoYW5kbGVyc1xuICB0b2dnbGVJdGVtKGl0ZW06IEFyZE9wdGlvblNpbXBsZSk6IHZvaWQge1xuICAgIGlmIChpdGVtLnNlbGVjdGVkKCkpIHtcbiAgICAgIGlmICh0aGlzLnNpbmdsZXNlbGVjdGFibGUoKSkgcmV0dXJuO1xuXG4gICAgICB0aGlzLnVuc2VsZWN0SXRlbShpdGVtKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RJdGVtKGl0ZW0pO1xuICB9XG4gIHNlbGVjdEl0ZW0oLi4uaXRlbXM6IEFyZE9wdGlvblNpbXBsZVtdKTogdm9pZCB7XG4gICAgY29uc3QgW3NlbGVjdGVkLCB1bnNlbGVjdGVkXSA9IHRoaXMuaXRlbVN0b3JhZ2Uuc2VsZWN0SXRlbSguLi5pdGVtcyk7XG5cbiAgICBpZiAodW5zZWxlY3RlZC5sZW5ndGggPiAwKSB0aGlzLnJlbW92ZUV2ZW50LmVtaXQodW5zZWxlY3RlZCk7XG5cbiAgICBpZiAoc2VsZWN0ZWQubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5hZGRFdmVudC5lbWl0KHNlbGVjdGVkKTtcbiAgICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcbiAgICB9XG4gIH1cbiAgdW5zZWxlY3RJdGVtKC4uLml0ZW1zOiBBcmRPcHRpb25TaW1wbGVbXSk6IHZvaWQge1xuICAgIGNvbnN0IHVuc2VsZWN0ZWQgPSB0aGlzLml0ZW1TdG9yYWdlLnVuc2VsZWN0SXRlbSguLi5pdGVtcyk7XG5cbiAgICBpZiAodW5zZWxlY3RlZC5sZW5ndGggPiAwKSB0aGlzLnJlbW92ZUV2ZW50LmVtaXQodW5zZWxlY3RlZCk7XG5cbiAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XG4gIH1cblxuICAvLyEgaGlnaGxpZ2gtcmVsYXRlZFxuXG4gIHJlYWRvbmx5IGlzTW91c2VCZWluZ1VzZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBASG9zdExpc3RlbmVyKCdtb3VzZW1vdmUnKVxuICBvbk1vdXNlTW92ZSgpIHtcbiAgICB0aGlzLmlzTW91c2VCZWluZ1VzZWQuc2V0KHRydWUpO1xuICB9XG4gIG9uSXRlbU1vdXNlRW50ZXIob3B0aW9uOiBBcmRPcHRpb25TaW1wbGUsIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzTW91c2VCZWluZ1VzZWQpIHJldHVybjtcbiAgICB0aGlzLml0ZW1TdG9yYWdlLmhpZ2hsaWdodFNpbmdsZUl0ZW0ob3B0aW9uKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuICBvbkl0ZW1Nb3VzZUxlYXZlKG9wdGlvbjogQXJkT3B0aW9uU2ltcGxlLCBldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc01vdXNlQmVpbmdVc2VkKSByZXR1cm47XG4gICAgdGhpcy5pdGVtU3RvcmFnZS51bmhpZ2hsaWdodEl0ZW0ob3B0aW9uKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIC8vISBjbGljayBoYW5kbGVyc1xuICBvbkl0ZW1DbGljayhvcHRpb246IEFyZE9wdGlvblNpbXBsZSwgZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnRvZ2dsZUl0ZW0ob3B0aW9uKTtcbiAgfVxuXG4gIC8vISBrZXkgcHJlc3MgaGFuZGxlcnNcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcbiAgICAgIGNhc2UgJ1NwYWNlJzpcbiAgICAgIGNhc2UgJ0VudGVyJzoge1xuICAgICAgICB0aGlzLl90b2dnbGVIaWdobGlnaHRlZEl0ZW1zKGV2ZW50KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6IHtcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0TmV4dChldmVudCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6IHtcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0UHJldmlvdXMoZXZlbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjYXNlICdIb21lJzoge1xuICAgICAgICB0aGlzLl9oaWdobGlnaHRGaXJzdChldmVudCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0VuZCc6IHtcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0TGFzdChldmVudCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0tleUEnOiB7XG4gICAgICAgIGlmIChldmVudC5jdHJsS2V5KSB7XG4gICAgICAgICAgdGhpcy5faGlnaGxpZ2h0QWxsKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX3RvZ2dsZUhpZ2hsaWdodGVkSXRlbXMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNGb2N1c2VkKSByZXR1cm47XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgaGlnaGxpZ2h0ZWRJdGVtcyA9IHRoaXMuaGlnaGxpZ2h0ZWRJdGVtcygpO1xuXG4gICAgaWYgKGhpZ2hsaWdodGVkSXRlbXMuZXZlcnkoaXRlbSA9PiBpdGVtLnNlbGVjdGVkKSkge1xuICAgICAgdGhpcy51bnNlbGVjdEl0ZW0oLi4uaGlnaGxpZ2h0ZWRJdGVtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0SXRlbSguLi5oaWdobGlnaHRlZEl0ZW1zKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0UHJldmlvdXMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNGb2N1c2VkKSByZXR1cm47XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaXNNb3VzZUJlaW5nVXNlZC5zZXQoZmFsc2UpO1xuXG4gICAgdGhpcy5pdGVtU3RvcmFnZS5oaWdobGlnaHROZXh0SXRlbSgtMSwgZXZlbnQuc2hpZnRLZXkpO1xuICB9XG4gIHByaXZhdGUgX2hpZ2hsaWdodE5leHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNGb2N1c2VkKSByZXR1cm47XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaXNNb3VzZUJlaW5nVXNlZC5zZXQoZmFsc2UpO1xuXG4gICAgdGhpcy5pdGVtU3RvcmFnZS5oaWdobGlnaHROZXh0SXRlbSgrMSwgZXZlbnQuc2hpZnRLZXkpO1xuICB9XG4gIHByaXZhdGUgX2hpZ2hsaWdodEZpcnN0KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzRm9jdXNlZCkgcmV0dXJuO1xuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmlzTW91c2VCZWluZ1VzZWQuc2V0KGZhbHNlKTtcblxuICAgIHRoaXMuaXRlbVN0b3JhZ2UuaGlnaGxpZ2h0Rmlyc3RJdGVtKCk7XG4gIH1cbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0TGFzdChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0ZvY3VzZWQpIHJldHVybjtcblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5pc01vdXNlQmVpbmdVc2VkLnNldChmYWxzZSk7XG5cbiAgICB0aGlzLml0ZW1TdG9yYWdlLmhpZ2hsaWdodExhc3RJdGVtKCk7XG4gIH1cbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbVN0b3JhZ2UuaGlnaGxpZ2h0QWxsSXRlbXMoKTtcbiAgfVxufVxuIl19
|
|
@@ -2,13 +2,19 @@ import { InjectionToken } from '@angular/core';
|
|
|
2
2
|
import { ComponentColor } from './../types/colors.types';
|
|
3
3
|
import { FormElementVariant } from './../types/theming.types';
|
|
4
4
|
import { BadgePosition, BadgeSize } from './badge.types';
|
|
5
|
+
const _badgeDefaults = {
|
|
6
|
+
color: ComponentColor.Primary,
|
|
7
|
+
variant: FormElementVariant.Rounded,
|
|
8
|
+
size: BadgeSize.Medium,
|
|
9
|
+
position: BadgePosition.AboveAfter,
|
|
10
|
+
overlap: false,
|
|
11
|
+
};
|
|
5
12
|
export const ARD_BADGE_DEFAULTS = new InjectionToken('ard-badge-defaults', {
|
|
6
13
|
factory: () => ({
|
|
7
|
-
|
|
8
|
-
variant: FormElementVariant.Rounded,
|
|
9
|
-
size: BadgeSize.Medium,
|
|
10
|
-
position: BadgePosition.AboveAfter,
|
|
11
|
-
overlap: false,
|
|
14
|
+
..._badgeDefaults,
|
|
12
15
|
}),
|
|
13
16
|
});
|
|
14
|
-
|
|
17
|
+
export function provideBadgeDefaults(config) {
|
|
18
|
+
return { provide: ARD_BADGE_DEFAULTS, useValue: { ..._badgeDefaults, ...config } };
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2JhZGdlL2JhZGdlLmRlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBVXpELE1BQU0sY0FBYyxHQUFxQjtJQUN2QyxLQUFLLEVBQUUsY0FBYyxDQUFDLE9BQU87SUFDN0IsT0FBTyxFQUFFLGtCQUFrQixDQUFDLE9BQU87SUFDbkMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0lBQ3RCLFFBQVEsRUFBRSxhQUFhLENBQUMsVUFBVTtJQUNsQyxPQUFPLEVBQUUsS0FBSztDQUNmLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBbUIsb0JBQW9CLEVBQUU7SUFDM0YsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDZCxHQUFHLGNBQWM7S0FDbEIsQ0FBQztDQUNILENBQUMsQ0FBQztBQUVILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxNQUFpQztJQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztBQUNyRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRDb2xvciB9IGZyb20gJy4vLi4vdHlwZXMvY29sb3JzLnR5cGVzJztcbmltcG9ydCB7IEZvcm1FbGVtZW50VmFyaWFudCB9IGZyb20gJy4vLi4vdHlwZXMvdGhlbWluZy50eXBlcyc7XG5pbXBvcnQgeyBCYWRnZVBvc2l0aW9uLCBCYWRnZVNpemUgfSBmcm9tICcuL2JhZGdlLnR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBBcmRCYWRnZURlZmF1bHRzIHtcbiAgY29sb3I6IENvbXBvbmVudENvbG9yO1xuICB2YXJpYW50OiBGb3JtRWxlbWVudFZhcmlhbnQ7XG4gIHNpemU6IEJhZGdlU2l6ZTtcbiAgcG9zaXRpb246IEJhZGdlUG9zaXRpb247XG4gIG92ZXJsYXA6IGJvb2xlYW47XG59XG5cbmNvbnN0IF9iYWRnZURlZmF1bHRzOiBBcmRCYWRnZURlZmF1bHRzID0ge1xuICBjb2xvcjogQ29tcG9uZW50Q29sb3IuUHJpbWFyeSxcbiAgdmFyaWFudDogRm9ybUVsZW1lbnRWYXJpYW50LlJvdW5kZWQsXG4gIHNpemU6IEJhZGdlU2l6ZS5NZWRpdW0sXG4gIHBvc2l0aW9uOiBCYWRnZVBvc2l0aW9uLkFib3ZlQWZ0ZXIsXG4gIG92ZXJsYXA6IGZhbHNlLFxufTtcblxuZXhwb3J0IGNvbnN0IEFSRF9CQURHRV9ERUZBVUxUUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBcmRCYWRnZURlZmF1bHRzPignYXJkLWJhZGdlLWRlZmF1bHRzJywge1xuICBmYWN0b3J5OiAoKSA9PiAoe1xuICAgIC4uLl9iYWRnZURlZmF1bHRzLFxuICB9KSxcbn0pO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUJhZGdlRGVmYXVsdHMoY29uZmlnOiBQYXJ0aWFsPEFyZEJhZGdlRGVmYXVsdHM+KTogUHJvdmlkZXIge1xuICByZXR1cm4geyBwcm92aWRlOiBBUkRfQkFER0VfREVGQVVMVFMsIHVzZVZhbHVlOiB7IC4uLl9iYWRnZURlZmF1bHRzLCAuLi5jb25maWcgfSB9O1xufVxuIl19
|