@ardium-ui/ui 1.0.2 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/_internal/boolean-component.mjs +28 -42
- package/esm2022/lib/_internal/clear-button/clear-button.component.mjs +5 -5
- package/esm2022/lib/_internal/clear-button/clear-button.module.mjs +4 -4
- package/esm2022/lib/_internal/disablable-component.mjs +24 -22
- package/esm2022/lib/_internal/focusable-component.mjs +12 -25
- package/esm2022/lib/_internal/item-storages/dropdown-item-storage.mjs +172 -169
- package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +115 -120
- package/esm2022/lib/_internal/item-storages/simplest-item-storage.mjs +56 -53
- package/esm2022/lib/_internal/models/pagination.model.mjs +72 -106
- package/esm2022/lib/_internal/ngmodel-component.mjs +5 -5
- package/esm2022/lib/_internal/queue.mjs +1 -1
- package/esm2022/lib/_internal/selectable-list-component.mjs +74 -98
- package/esm2022/lib/badge/badge.directive.mjs +70 -99
- package/esm2022/lib/badge/badge.module.mjs +4 -4
- package/esm2022/lib/badge/index.mjs +4 -0
- package/esm2022/lib/buttons/_button-base.mjs +13 -35
- package/esm2022/lib/buttons/button/button.component.mjs +22 -37
- package/esm2022/lib/buttons/button/button.module.mjs +4 -4
- package/esm2022/lib/buttons/button/index.mjs +3 -0
- package/esm2022/lib/buttons/fab/fab.component.mjs +16 -28
- package/esm2022/lib/buttons/fab/fab.module.mjs +4 -4
- package/esm2022/lib/buttons/fab/index.mjs +3 -0
- package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +17 -25
- package/esm2022/lib/buttons/icon-button/icon-button.module.mjs +4 -4
- package/esm2022/lib/buttons/icon-button/index.mjs +3 -0
- package/esm2022/lib/card/card.children.mjs +32 -33
- package/esm2022/lib/card/card.component.mjs +14 -17
- package/esm2022/lib/card/card.module.mjs +4 -4
- package/esm2022/lib/card/index.mjs +5 -0
- package/esm2022/lib/checkbox/checkbox.component.mjs +33 -46
- package/esm2022/lib/checkbox/checkbox.module.mjs +4 -4
- package/esm2022/lib/checkbox/index.mjs +4 -0
- package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +31 -57
- package/esm2022/lib/checkbox-list/checkbox-list.module.mjs +4 -4
- package/esm2022/lib/checkbox-list/index.mjs +4 -0
- package/esm2022/lib/chip/chip.component.mjs +22 -42
- package/esm2022/lib/chip/chip.module.mjs +4 -4
- package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +28 -53
- package/esm2022/lib/chip/index.mjs +5 -0
- package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +25 -49
- package/esm2022/lib/color/color-display/color-display.component.mjs +15 -32
- package/esm2022/lib/color/color-display/color-display.module.mjs +4 -4
- package/esm2022/lib/color/color-display/index.mjs +4 -0
- package/esm2022/lib/color/color-picker/color-picker.types.mjs +1 -1
- package/esm2022/lib/dialog/dialog.component.mjs +54 -130
- package/esm2022/lib/dialog/dialog.directives.mjs +3 -3
- package/esm2022/lib/dialog/dialog.module.mjs +4 -4
- package/esm2022/lib/dialog/dialog.types.mjs +1 -1
- package/esm2022/lib/dialog/index.mjs +5 -0
- package/esm2022/lib/divider/divider.component.mjs +9 -14
- package/esm2022/lib/divider/divider.module.mjs +4 -4
- package/esm2022/lib/divider/index.mjs +3 -0
- package/esm2022/lib/dropdown-panel/dropdown-panel.component.mjs +40 -59
- package/esm2022/lib/dropdown-panel/dropdown-panel.module.mjs +4 -4
- package/esm2022/lib/dropdown-panel/index.mjs +4 -0
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +12 -17
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.directives.mjs +9 -9
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.module.mjs +6 -6
- package/esm2022/lib/file-inputs/file-drop-area/index.mjs +4 -0
- package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +24 -50
- package/esm2022/lib/file-inputs/file-input/file-input.directives.mjs +18 -18
- package/esm2022/lib/file-inputs/file-input/file-input.module.mjs +4 -4
- package/esm2022/lib/file-inputs/file-input/index.mjs +4 -0
- package/esm2022/lib/file-inputs/file-input-base.mjs +38 -72
- package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +20 -47
- package/esm2022/lib/form-field-frame/form-field-frame.directives.mjs +6 -6
- package/esm2022/lib/form-field-frame/form-field-frame.module.mjs +4 -4
- package/esm2022/lib/form-field-frame/index.mjs +4 -0
- package/esm2022/lib/icon/icon.component.mjs +32 -67
- package/esm2022/lib/icon/icon.module.mjs +4 -4
- package/esm2022/lib/icon/icon.pipe.mjs +3 -3
- package/esm2022/lib/icon/index.mjs +4 -0
- package/esm2022/lib/inputs/color-input/color-input.directives.mjs +24 -24
- package/esm2022/lib/inputs/color-input/color-input.types.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +65 -115
- package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +83 -92
- package/esm2022/lib/inputs/digit-input/digit-input.module.mjs +4 -4
- package/esm2022/lib/inputs/digit-input/digit-input.types.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.utils.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/index.mjs +4 -0
- package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +59 -122
- package/esm2022/lib/inputs/hex-input/hex-input.directives.mjs +9 -9
- package/esm2022/lib/inputs/hex-input/hex-input.module.mjs +24 -8
- package/esm2022/lib/inputs/hex-input/index.mjs +4 -0
- package/esm2022/lib/inputs/hex-input.model.mjs +24 -33
- package/esm2022/lib/inputs/input/index.mjs +4 -0
- package/esm2022/lib/inputs/input/input.component.mjs +95 -154
- package/esm2022/lib/inputs/input/input.directives.mjs +16 -16
- package/esm2022/lib/inputs/input/input.module.mjs +21 -7
- package/esm2022/lib/inputs/input-transformers.mjs +6 -6
- package/esm2022/lib/inputs/input-utils.mjs +75 -94
- package/esm2022/lib/inputs/number-input/index.mjs +4 -0
- package/esm2022/lib/inputs/number-input/number-input.component.mjs +106 -170
- package/esm2022/lib/inputs/number-input/number-input.directives.mjs +3 -3
- package/esm2022/lib/inputs/number-input/number-input.module.mjs +4 -4
- package/esm2022/lib/inputs/password-input/index.mjs +5 -0
- package/esm2022/lib/inputs/password-input/password-input.component.mjs +74 -144
- package/esm2022/lib/inputs/password-input/password-input.directives.mjs +12 -12
- package/esm2022/lib/inputs/password-input/password-input.module.mjs +4 -4
- package/esm2022/lib/inputs/password-input/password-input.types.mjs +1 -1
- package/esm2022/lib/inputs/simple-input/index.mjs +4 -0
- package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +57 -110
- package/esm2022/lib/inputs/simple-input/simple-input.directives.mjs +9 -9
- package/esm2022/lib/inputs/simple-input/simple-input.module.mjs +4 -4
- package/esm2022/lib/kbd/index.mjs +4 -0
- package/esm2022/lib/kbd/kbd.component.mjs +15 -29
- package/esm2022/lib/kbd/kbd.module.mjs +4 -4
- package/esm2022/lib/kbd/kbd.pipe.mjs +3 -3
- package/esm2022/lib/kbd-shortcut/index.mjs +3 -0
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.component.mjs +23 -40
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.module.mjs +4 -4
- package/esm2022/lib/modal/index.mjs +3 -0
- package/esm2022/lib/modal/modal.component.mjs +42 -83
- package/esm2022/lib/modal/modal.module.mjs +4 -4
- package/esm2022/lib/option/index.mjs +3 -0
- package/esm2022/lib/option/option.component.mjs +24 -46
- package/esm2022/lib/option/option.module.mjs +4 -4
- package/esm2022/lib/progress-bar/index.mjs +5 -0
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +43 -81
- package/esm2022/lib/progress-bar/progress-bar.directive.mjs +3 -3
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +4 -4
- package/esm2022/lib/progress-bar/progress-bar.types.mjs +1 -1
- package/esm2022/lib/progress-circle/index.mjs +5 -0
- package/esm2022/lib/progress-circle/progress-circle.component.mjs +33 -78
- package/esm2022/lib/progress-circle/progress-circle.directive.mjs +3 -3
- package/esm2022/lib/progress-circle/progress-circle.module.mjs +4 -4
- package/esm2022/lib/progress-circle/progress-circle.types.mjs +1 -1
- package/esm2022/lib/radio/index.mjs +4 -0
- package/esm2022/lib/radio/radio/radio.component.mjs +16 -25
- package/esm2022/lib/radio/radio-group.component.mjs +71 -85
- package/esm2022/lib/radio/radio.module.mjs +4 -4
- package/esm2022/lib/search-functions.mjs +7 -7
- package/esm2022/lib/segment/index.mjs +5 -0
- package/esm2022/lib/segment/segment.component.mjs +70 -137
- package/esm2022/lib/segment/segment.directives.mjs +4 -4
- package/esm2022/lib/segment/segment.module.mjs +4 -4
- package/esm2022/lib/select/index.mjs +5 -0
- package/esm2022/lib/select/select.component.mjs +348 -655
- package/esm2022/lib/select/select.directive.mjs +46 -46
- package/esm2022/lib/select/select.module.mjs +4 -4
- package/esm2022/lib/select/select.types.mjs +1 -1
- package/esm2022/lib/slide-toggle/index.mjs +4 -0
- package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +19 -24
- package/esm2022/lib/slide-toggle/slide-toggle.module.mjs +4 -4
- package/esm2022/lib/slide-toggle/slide-toggle.types.mjs +5 -0
- package/esm2022/lib/slider/abstract-slider.mjs +111 -200
- package/esm2022/lib/slider/index.mjs +7 -0
- package/esm2022/lib/slider/range-slider/range-slider.component.mjs +26 -23
- package/esm2022/lib/slider/range-slider/range-slider.module.mjs +4 -4
- package/esm2022/lib/slider/slider.component.mjs +13 -10
- package/esm2022/lib/slider/slider.directive.mjs +3 -3
- package/esm2022/lib/slider/slider.module.mjs +7 -7
- package/esm2022/lib/slider/slider.types.mjs +1 -1
- package/esm2022/lib/snackbar/snackbar-ref.mjs +1 -1
- package/esm2022/lib/snackbar/snackbar.component.mjs +8 -8
- package/esm2022/lib/snackbar/snackbar.service.mjs +13 -12
- package/esm2022/lib/snackbar/snackbar.types.mjs +1 -1
- package/esm2022/lib/spinner/index.mjs +3 -0
- package/esm2022/lib/spinner/spinner.component.mjs +9 -13
- package/esm2022/lib/spinner/spinner.module.mjs +4 -4
- package/esm2022/lib/star/index.mjs +4 -0
- package/esm2022/lib/star/star-button/index.mjs +3 -0
- package/esm2022/lib/star/star-button/star-button.component.mjs +17 -26
- package/esm2022/lib/star/star-button/star-button.module.mjs +4 -4
- package/esm2022/lib/star/star-display/index.mjs +3 -0
- package/esm2022/lib/star/star-display/star-display.component.mjs +48 -55
- package/esm2022/lib/star/star-display/star-display.module.mjs +4 -4
- package/esm2022/lib/star/star-input/index.mjs +3 -0
- package/esm2022/lib/star/star-input/star-input.component.mjs +70 -106
- package/esm2022/lib/star/star-input/star-input.module.mjs +4 -4
- package/esm2022/lib/star/star.component.mjs +12 -20
- package/esm2022/lib/star/star.module.mjs +4 -4
- package/esm2022/lib/statebox/index.mjs +3 -0
- package/esm2022/lib/statebox/statebox.component.mjs +64 -102
- package/esm2022/lib/statebox/statebox.module.mjs +4 -4
- package/esm2022/lib/statebox/statebox.types.mjs +1 -1
- package/esm2022/lib/tabber/index.mjs +4 -0
- package/esm2022/lib/tabber/tab/tab.component.mjs +42 -0
- package/esm2022/lib/tabber/tabber.component.mjs +83 -0
- package/esm2022/lib/tabber/tabber.module.mjs +19 -0
- package/esm2022/lib/table/index.mjs +5 -0
- package/esm2022/lib/table/table-item-storage.mjs +204 -200
- package/esm2022/lib/table/table.component.mjs +184 -304
- package/esm2022/lib/table/table.directives.mjs +19 -21
- package/esm2022/lib/table/table.module.mjs +4 -4
- package/esm2022/lib/table/utils.mjs +1 -1
- package/esm2022/lib/table-from-csv/index.mjs +3 -0
- package/esm2022/lib/table-from-csv/table-from-csv.component.mjs +85 -29
- package/esm2022/lib/table-from-csv/table-from-csv.module.mjs +4 -4
- package/esm2022/lib/table-pagination/index.mjs +4 -0
- package/esm2022/lib/table-pagination/table-pagination.component.mjs +46 -114
- package/esm2022/lib/table-pagination/table-pagination.module.mjs +4 -4
- package/esm2022/lib/types/item-storage.types.mjs +1 -1
- package/esm2022/lib/types/utility.types.mjs +2 -2
- package/esm2022/public-api.mjs +58 -182
- package/fesm2022/ardium-ui-ui.mjs +7847 -11692
- package/fesm2022/ardium-ui-ui.mjs.map +1 -1
- package/lib/_internal/boolean-component.d.ts +8 -9
- package/lib/_internal/clear-button/clear-button.component.d.ts +1 -1
- package/lib/_internal/disablable-component.d.ts +12 -7
- package/lib/_internal/focusable-component.d.ts +5 -7
- package/lib/_internal/item-storages/dropdown-item-storage.d.ts +43 -41
- package/lib/_internal/item-storages/simple-item-storage.d.ts +28 -25
- package/lib/_internal/item-storages/simplest-item-storage.d.ts +14 -9
- package/lib/_internal/models/pagination.model.d.ts +38 -42
- package/lib/_internal/ngmodel-component.d.ts +1 -1
- package/lib/_internal/selectable-list-component.d.ts +30 -30
- package/lib/badge/badge.directive.d.ts +15 -20
- package/lib/badge/index.d.ts +3 -0
- package/lib/buttons/_button-base.d.ts +9 -12
- package/lib/buttons/button/button.component.d.ts +6 -8
- package/lib/buttons/button/index.d.ts +2 -0
- package/lib/buttons/fab/fab.component.d.ts +4 -6
- package/lib/buttons/fab/index.d.ts +2 -0
- package/lib/buttons/icon-button/icon-button.component.d.ts +6 -7
- package/lib/buttons/icon-button/index.d.ts +2 -0
- package/lib/card/card.children.d.ts +4 -3
- package/lib/card/card.component.d.ts +5 -4
- package/lib/card/index.d.ts +4 -0
- package/lib/checkbox/checkbox.component.d.ts +8 -12
- package/lib/checkbox/index.d.ts +3 -0
- package/lib/checkbox-list/checkbox-list.component.d.ts +22 -21
- package/lib/checkbox-list/index.d.ts +3 -0
- package/lib/chip/chip.component.d.ts +8 -10
- package/lib/chip/deletable-chip/deletable-chip.component.d.ts +11 -14
- package/lib/chip/index.d.ts +4 -0
- package/lib/chip/selectable-chip/selectable-chip.component.d.ts +10 -12
- package/lib/color/color-display/color-display.component.d.ts +6 -9
- package/lib/color/color-display/index.d.ts +3 -0
- package/lib/color/color-picker/color-picker.types.d.ts +4 -4
- package/lib/dialog/dialog.component.d.ts +25 -35
- package/lib/dialog/dialog.types.d.ts +2 -2
- package/lib/dialog/index.d.ts +4 -0
- package/lib/divider/divider.component.d.ts +3 -4
- package/lib/divider/index.d.ts +2 -0
- package/lib/dropdown-panel/dropdown-panel.component.d.ts +17 -20
- package/lib/dropdown-panel/index.d.ts +3 -0
- package/lib/file-inputs/file-drop-area/file-drop-area.component.d.ts +5 -4
- package/lib/file-inputs/file-drop-area/index.d.ts +3 -0
- package/lib/file-inputs/file-input/file-input.component.d.ts +13 -17
- package/lib/file-inputs/file-input/index.d.ts +3 -0
- package/lib/file-inputs/file-input-base.d.ts +13 -18
- package/lib/form-field-frame/form-field-frame.component.d.ts +12 -16
- package/lib/form-field-frame/index.d.ts +3 -0
- package/lib/icon/icon.component.d.ts +10 -19
- package/lib/icon/index.d.ts +3 -0
- package/lib/inputs/color-input/color-input.types.d.ts +2 -2
- package/lib/inputs/digit-input/digit-input.component.d.ts +22 -30
- package/lib/inputs/digit-input/digit-input.model.d.ts +8 -12
- package/lib/inputs/digit-input/digit-input.types.d.ts +4 -4
- package/lib/inputs/digit-input/digit-input.utils.d.ts +4 -5
- package/lib/inputs/digit-input/index.d.ts +3 -0
- package/lib/inputs/hex-input/hex-input.component.d.ts +32 -38
- package/lib/inputs/hex-input/index.d.ts +3 -0
- package/lib/inputs/hex-input.model.d.ts +10 -11
- package/lib/inputs/input/index.d.ts +3 -0
- package/lib/inputs/input/input.component.d.ts +34 -40
- package/lib/inputs/input/input.directives.d.ts +3 -3
- package/lib/inputs/input-utils.d.ts +24 -27
- package/lib/inputs/number-input/index.d.ts +3 -0
- package/lib/inputs/number-input/number-input.component.d.ts +38 -48
- package/lib/inputs/password-input/index.d.ts +4 -0
- package/lib/inputs/password-input/password-input.component.d.ts +28 -40
- package/lib/inputs/password-input/password-input.types.d.ts +2 -2
- package/lib/inputs/simple-input/index.d.ts +3 -0
- package/lib/inputs/simple-input/simple-input.component.d.ts +30 -35
- package/lib/kbd/index.d.ts +3 -0
- package/lib/kbd/kbd.component.d.ts +6 -8
- package/lib/kbd-shortcut/index.d.ts +2 -0
- package/lib/kbd-shortcut/kbd-shortcut.component.d.ts +7 -10
- package/lib/modal/index.d.ts +2 -0
- package/lib/modal/modal.component.d.ts +22 -30
- package/lib/option/index.d.ts +2 -0
- package/lib/option/option.component.d.ts +11 -16
- package/lib/progress-bar/index.d.ts +4 -0
- package/lib/progress-bar/progress-bar.component.d.ts +14 -20
- package/lib/progress-bar/progress-bar.types.d.ts +2 -2
- package/lib/progress-circle/index.d.ts +4 -0
- package/lib/progress-circle/progress-circle.component.d.ts +12 -20
- package/lib/progress-circle/progress-circle.types.d.ts +2 -2
- package/lib/radio/index.d.ts +3 -0
- package/lib/radio/radio/radio.component.d.ts +7 -8
- package/lib/radio/radio-group.component.d.ts +13 -16
- package/lib/segment/index.d.ts +4 -0
- package/lib/segment/segment.component.d.ts +22 -34
- package/lib/segment/segment.directives.d.ts +2 -3
- package/lib/select/index.d.ts +4 -0
- package/lib/select/select.component.d.ts +114 -160
- package/lib/select/select.directive.d.ts +3 -3
- package/lib/select/select.types.d.ts +2 -76
- package/lib/slide-toggle/index.d.ts +3 -0
- package/lib/slide-toggle/slide-toggle.component.d.ts +9 -7
- package/lib/slide-toggle/slide-toggle.types.d.ts +5 -0
- package/lib/slider/abstract-slider.d.ts +38 -55
- package/lib/slider/index.d.ts +6 -0
- package/lib/slider/range-slider/range-slider.component.d.ts +3 -1
- package/lib/slider/slider.component.d.ts +2 -0
- package/lib/slider/slider.types.d.ts +8 -8
- package/lib/snackbar/snackbar-ref.d.ts +1 -2
- package/lib/snackbar/snackbar.component.d.ts +3 -3
- package/lib/snackbar/snackbar.service.d.ts +2 -2
- package/lib/snackbar/snackbar.types.d.ts +4 -4
- package/lib/spinner/index.d.ts +2 -0
- package/lib/spinner/spinner.component.d.ts +3 -3
- package/lib/star/index.d.ts +3 -0
- package/lib/star/star-button/index.d.ts +2 -0
- package/lib/star/star-button/star-button.component.d.ts +7 -7
- package/lib/star/star-display/index.d.ts +2 -0
- package/lib/star/star-display/star-display.component.d.ts +8 -12
- package/lib/star/star-input/index.d.ts +2 -0
- package/lib/star/star-input/star-input.component.d.ts +17 -22
- package/lib/star/star.component.d.ts +5 -5
- package/lib/statebox/index.d.ts +3 -0
- package/lib/statebox/statebox.component.d.ts +15 -21
- package/lib/statebox/statebox.types.d.ts +12 -8
- package/lib/tabber/index.d.ts +3 -0
- package/lib/tabber/tab/tab.component.d.ts +18 -0
- package/lib/tabber/tabber.component.d.ts +25 -0
- package/lib/tabber/tabber.module.d.ts +9 -0
- package/lib/table/index.d.ts +4 -0
- package/lib/table/table-item-storage.d.ts +70 -58
- package/lib/table/table.component.d.ts +59 -78
- package/lib/table/table.directives.d.ts +4 -3
- package/lib/table-from-csv/index.d.ts +2 -0
- package/lib/table-from-csv/table-from-csv.component.d.ts +46 -9
- package/lib/table-pagination/index.d.ts +3 -0
- package/lib/table-pagination/table-pagination.component.d.ts +21 -30
- package/lib/types/item-storage.types.d.ts +19 -18
- package/lib/types/utility.types.d.ts +2 -1
- package/package.json +8 -9
- package/prebuilt-themes/default/badge.css +5 -5
- package/prebuilt-themes/default/buttons/fab.css +4 -3
- package/prebuilt-themes/default/buttons/fab.css.map +1 -1
- package/prebuilt-themes/default/card.css +7 -7
- package/prebuilt-themes/default/chips.css +3 -8
- package/prebuilt-themes/default/chips.css.map +1 -1
- package/prebuilt-themes/default/core.css +6 -3
- package/prebuilt-themes/default/core.css.map +1 -1
- package/prebuilt-themes/default/inputs/color-input.css +1 -1
- package/prebuilt-themes/default/inputs/digit-input.css +1 -1
- package/prebuilt-themes/default/inputs/file-input.css +139 -2
- package/prebuilt-themes/default/inputs/file-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/hex-input.css +2 -2
- package/prebuilt-themes/default/inputs/input.css +1 -1
- package/prebuilt-themes/default/inputs/search-bar.css +1 -1
- package/prebuilt-themes/default/inputs/simple-input.css +1 -1
- package/prebuilt-themes/default/modal.css +1 -1
- package/prebuilt-themes/default/segment.css +2 -2
- package/prebuilt-themes/default/segment.css.map +1 -1
- package/prebuilt-themes/default/select.css +5 -3
- package/prebuilt-themes/default/select.css.map +1 -1
- package/prebuilt-themes/default/snackbar.css +0 -1
- package/prebuilt-themes/default/snackbar.css.map +1 -1
- package/prebuilt-themes/default/tabber.css +207 -0
- package/prebuilt-themes/default/tabber.css.map +1 -0
- package/public-api.d.ts +43 -136
- package/themes/default/_clear-button.scss +1 -1
- package/themes/default/badge.scss +5 -5
- package/themes/default/buttons/fab.scss +5 -3
- package/themes/default/card.scss +7 -7
- package/themes/default/chips.scss +2 -8
- package/themes/default/core.scss +6 -3
- package/themes/default/inputs/digit-input.scss +1 -1
- package/themes/default/inputs/file-input.scss +8 -1
- package/themes/default/inputs/hex-input.scss +1 -1
- package/themes/default/modal.scss +1 -1
- package/themes/default/segment.scss +2 -1
- package/themes/default/select.scss +4 -2
- package/themes/default/snackbar.scss +0 -2
- package/themes/default/tabber.scss +86 -0
- package/esm2022/lib/calendar/calendar.component.mjs +0 -979
- package/esm2022/lib/calendar/calendar.directives.mjs +0 -107
- package/esm2022/lib/calendar/calendar.helpers.mjs +0 -47
- package/esm2022/lib/calendar/calendar.module.mjs +0 -21
- package/esm2022/lib/calendar/calendar.types.mjs +0 -11
- package/esm2022/lib/color/color-picker/color-picker.component.mjs +0 -484
- package/esm2022/lib/color/color-picker/color-picker.directives.mjs +0 -55
- package/esm2022/lib/color/color-picker/color-picker.module.mjs +0 -43
- package/esm2022/lib/inputs/color-input/color-input.component.mjs +0 -421
- package/esm2022/lib/inputs/color-input/color-input.module.mjs +0 -85
- package/lib/calendar/calendar.component.d.ts +0 -155
- package/lib/calendar/calendar.directives.d.ts +0 -51
- package/lib/calendar/calendar.helpers.d.ts +0 -15
- package/lib/calendar/calendar.module.d.ts +0 -11
- package/lib/calendar/calendar.types.d.ts +0 -80
- package/lib/color/color-picker/color-picker.component.d.ts +0 -125
- package/lib/color/color-picker/color-picker.directives.d.ts +0 -27
- package/lib/color/color-picker/color-picker.module.d.ts +0 -13
- package/lib/inputs/color-input/color-input.component.d.ts +0 -147
- package/lib/inputs/color-input/color-input.module.d.ts +0 -16
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { Directive } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class ArdColorPickerShadeIndicatorTemplateDirective {
|
|
4
|
-
constructor(template) {
|
|
5
|
-
this.template = template;
|
|
6
|
-
}
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerShadeIndicatorTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: ArdColorPickerShadeIndicatorTemplateDirective, selector: "ard-color-picker > ng-template[ard-shade-indicator-tmp]", ngImport: i0 }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerShadeIndicatorTemplateDirective, decorators: [{
|
|
11
|
-
type: Directive,
|
|
12
|
-
args: [{
|
|
13
|
-
selector: 'ard-color-picker > ng-template[ard-shade-indicator-tmp]',
|
|
14
|
-
}]
|
|
15
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
16
|
-
export class ArdColorPickerHueIndicatorTemplateDirective {
|
|
17
|
-
constructor(template) {
|
|
18
|
-
this.template = template;
|
|
19
|
-
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerHueIndicatorTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
21
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: ArdColorPickerHueIndicatorTemplateDirective, selector: "ard-color-picker > ng-template[ard-hue-indicator-tmp]", ngImport: i0 }); }
|
|
22
|
-
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerHueIndicatorTemplateDirective, decorators: [{
|
|
24
|
-
type: Directive,
|
|
25
|
-
args: [{
|
|
26
|
-
selector: 'ard-color-picker > ng-template[ard-hue-indicator-tmp]',
|
|
27
|
-
}]
|
|
28
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
29
|
-
export class ArdColorPickerOpacityIndicatorTemplateDirective {
|
|
30
|
-
constructor(template) {
|
|
31
|
-
this.template = template;
|
|
32
|
-
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerOpacityIndicatorTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
34
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: ArdColorPickerOpacityIndicatorTemplateDirective, selector: "ard-color-picker > ng-template[ard-opacity-indicator-tmp]", ngImport: i0 }); }
|
|
35
|
-
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerOpacityIndicatorTemplateDirective, decorators: [{
|
|
37
|
-
type: Directive,
|
|
38
|
-
args: [{
|
|
39
|
-
selector: 'ard-color-picker > ng-template[ard-opacity-indicator-tmp]',
|
|
40
|
-
}]
|
|
41
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
42
|
-
export class ArdColorPickerColorReferenceTemplateDirective {
|
|
43
|
-
constructor(template) {
|
|
44
|
-
this.template = template;
|
|
45
|
-
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerColorReferenceTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
47
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: ArdColorPickerColorReferenceTemplateDirective, selector: "ard-color-picker > ng-template[ard-color-reference-tmp]", ngImport: i0 }); }
|
|
48
|
-
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerColorReferenceTemplateDirective, decorators: [{
|
|
50
|
-
type: Directive,
|
|
51
|
-
args: [{
|
|
52
|
-
selector: 'ard-color-picker > ng-template[ard-color-reference-tmp]',
|
|
53
|
-
}]
|
|
54
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbG9yL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuZGlyZWN0aXZlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDOztBQU12RCxNQUFNLE9BQU8sNkNBQTZDO0lBQ3hELFlBQW1CLFFBQWtEO1FBQWxELGFBQVEsR0FBUixRQUFRLENBQTBDO0lBQUcsQ0FBQzs4R0FEOUQsNkNBQTZDO2tHQUE3Qyw2Q0FBNkM7OzJGQUE3Qyw2Q0FBNkM7a0JBSHpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlEQUF5RDtpQkFDcEU7O0FBUUQsTUFBTSxPQUFPLDJDQUEyQztJQUN0RCxZQUFtQixRQUFrRDtRQUFsRCxhQUFRLEdBQVIsUUFBUSxDQUEwQztJQUFHLENBQUM7OEdBRDlELDJDQUEyQztrR0FBM0MsMkNBQTJDOzsyRkFBM0MsMkNBQTJDO2tCQUh2RCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1REFBdUQ7aUJBQ2xFOztBQVFELE1BQU0sT0FBTywrQ0FBK0M7SUFDMUQsWUFBbUIsUUFBa0Q7UUFBbEQsYUFBUSxHQUFSLFFBQVEsQ0FBMEM7SUFBRyxDQUFDOzhHQUQ5RCwrQ0FBK0M7a0dBQS9DLCtDQUErQzs7MkZBQS9DLCtDQUErQztrQkFIM0QsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkRBQTJEO2lCQUN0RTs7QUFRRCxNQUFNLE9BQU8sNkNBQTZDO0lBQ3hELFlBQW1CLFFBQXVEO1FBQXZELGFBQVEsR0FBUixRQUFRLENBQStDO0lBQUcsQ0FBQzs4R0FEbkUsNkNBQTZDO2tHQUE3Qyw2Q0FBNkM7OzJGQUE3Qyw2Q0FBNkM7a0JBSHpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlEQUF5RDtpQkFDcEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2xvclBpY2tlckNvbG9yUmVmZXJlbmNlQ29udGV4dCwgQ29sb3JQaWNrZXJJbmRpY2F0b3JDb250ZXh0IH0gZnJvbSAnLi9jb2xvci1waWNrZXIudHlwZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhcmQtY29sb3ItcGlja2VyID4gbmctdGVtcGxhdGVbYXJkLXNoYWRlLWluZGljYXRvci10bXBdJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJkQ29sb3JQaWNrZXJTaGFkZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDb2xvclBpY2tlckluZGljYXRvckNvbnRleHQ+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhcmQtY29sb3ItcGlja2VyID4gbmctdGVtcGxhdGVbYXJkLWh1ZS1pbmRpY2F0b3ItdG1wXScsXG59KVxuZXhwb3J0IGNsYXNzIEFyZENvbG9yUGlja2VySHVlSW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPENvbG9yUGlja2VySW5kaWNhdG9yQ29udGV4dD4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2FyZC1jb2xvci1waWNrZXIgPiBuZy10ZW1wbGF0ZVthcmQtb3BhY2l0eS1pbmRpY2F0b3ItdG1wXScsXG59KVxuZXhwb3J0IGNsYXNzIEFyZENvbG9yUGlja2VyT3BhY2l0eUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDb2xvclBpY2tlckluZGljYXRvckNvbnRleHQ+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhcmQtY29sb3ItcGlja2VyID4gbmctdGVtcGxhdGVbYXJkLWNvbG9yLXJlZmVyZW5jZS10bXBdJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJkQ29sb3JQaWNrZXJDb2xvclJlZmVyZW5jZVRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDb2xvclBpY2tlckNvbG9yUmVmZXJlbmNlQ29udGV4dD4pIHt9XG59XG4iXX0=
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { ArdiumHexInputModule } from '../../inputs/hex-input/hex-input.module';
|
|
4
|
-
import { ArdiumNumberInputModule } from '../../inputs/number-input/number-input.module';
|
|
5
|
-
import { ArdiumOptionModule } from '../../option/option.module';
|
|
6
|
-
import { ArdiumSelectModule } from '../../select/select.module';
|
|
7
|
-
import { ArdiumColorPickerComponent } from './color-picker.component';
|
|
8
|
-
import { ArdColorPickerColorReferenceTemplateDirective, ArdColorPickerHueIndicatorTemplateDirective, ArdColorPickerOpacityIndicatorTemplateDirective, ArdColorPickerShadeIndicatorTemplateDirective, } from './color-picker.directives';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
export class ArdiumColorPickerModule {
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorPickerModule, declarations: [ArdiumColorPickerComponent,
|
|
13
|
-
ArdColorPickerHueIndicatorTemplateDirective,
|
|
14
|
-
ArdColorPickerShadeIndicatorTemplateDirective,
|
|
15
|
-
ArdColorPickerColorReferenceTemplateDirective,
|
|
16
|
-
ArdColorPickerOpacityIndicatorTemplateDirective], imports: [CommonModule, ArdiumSelectModule, ArdiumOptionModule, ArdiumNumberInputModule, ArdiumHexInputModule], exports: [ArdiumColorPickerComponent,
|
|
17
|
-
ArdColorPickerHueIndicatorTemplateDirective,
|
|
18
|
-
ArdColorPickerShadeIndicatorTemplateDirective,
|
|
19
|
-
ArdColorPickerColorReferenceTemplateDirective,
|
|
20
|
-
ArdColorPickerOpacityIndicatorTemplateDirective] }); }
|
|
21
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorPickerModule, imports: [CommonModule, ArdiumSelectModule, ArdiumOptionModule, ArdiumNumberInputModule, ArdiumHexInputModule] }); }
|
|
22
|
-
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorPickerModule, decorators: [{
|
|
24
|
-
type: NgModule,
|
|
25
|
-
args: [{
|
|
26
|
-
declarations: [
|
|
27
|
-
ArdiumColorPickerComponent,
|
|
28
|
-
ArdColorPickerHueIndicatorTemplateDirective,
|
|
29
|
-
ArdColorPickerShadeIndicatorTemplateDirective,
|
|
30
|
-
ArdColorPickerColorReferenceTemplateDirective,
|
|
31
|
-
ArdColorPickerOpacityIndicatorTemplateDirective,
|
|
32
|
-
],
|
|
33
|
-
imports: [CommonModule, ArdiumSelectModule, ArdiumOptionModule, ArdiumNumberInputModule, ArdiumHexInputModule],
|
|
34
|
-
exports: [
|
|
35
|
-
ArdiumColorPickerComponent,
|
|
36
|
-
ArdColorPickerHueIndicatorTemplateDirective,
|
|
37
|
-
ArdColorPickerShadeIndicatorTemplateDirective,
|
|
38
|
-
ArdColorPickerColorReferenceTemplateDirective,
|
|
39
|
-
ArdColorPickerOpacityIndicatorTemplateDirective,
|
|
40
|
-
],
|
|
41
|
-
}]
|
|
42
|
-
}] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29sb3IvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUNMLDZDQUE2QyxFQUM3QywyQ0FBMkMsRUFDM0MsK0NBQStDLEVBQy9DLDZDQUE2QyxHQUM5QyxNQUFNLDJCQUEyQixDQUFDOztBQW1CbkMsTUFBTSxPQUFPLHVCQUF1Qjs4R0FBdkIsdUJBQXVCOytHQUF2Qix1QkFBdUIsaUJBZmhDLDBCQUEwQjtZQUMxQiwyQ0FBMkM7WUFDM0MsNkNBQTZDO1lBQzdDLDZDQUE2QztZQUM3QywrQ0FBK0MsYUFFdkMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixhQUUzRywwQkFBMEI7WUFDMUIsMkNBQTJDO1lBQzNDLDZDQUE2QztZQUM3Qyw2Q0FBNkM7WUFDN0MsK0NBQStDOytHQUd0Qyx1QkFBdUIsWUFUeEIsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLG9CQUFvQjs7MkZBU2xHLHVCQUF1QjtrQkFqQm5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLDBCQUEwQjt3QkFDMUIsMkNBQTJDO3dCQUMzQyw2Q0FBNkM7d0JBQzdDLDZDQUE2Qzt3QkFDN0MsK0NBQStDO3FCQUNoRDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLENBQUM7b0JBQzlHLE9BQU8sRUFBRTt3QkFDUCwwQkFBMEI7d0JBQzFCLDJDQUEyQzt3QkFDM0MsNkNBQTZDO3dCQUM3Qyw2Q0FBNkM7d0JBQzdDLCtDQUErQztxQkFDaEQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFyZGl1bUhleElucHV0TW9kdWxlIH0gZnJvbSAnLi4vLi4vaW5wdXRzL2hleC1pbnB1dC9oZXgtaW5wdXQubW9kdWxlJztcbmltcG9ydCB7IEFyZGl1bU51bWJlcklucHV0TW9kdWxlIH0gZnJvbSAnLi4vLi4vaW5wdXRzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQubW9kdWxlJztcbmltcG9ydCB7IEFyZGl1bU9wdGlvbk1vZHVsZSB9IGZyb20gJy4uLy4uL29wdGlvbi9vcHRpb24ubW9kdWxlJztcbmltcG9ydCB7IEFyZGl1bVNlbGVjdE1vZHVsZSB9IGZyb20gJy4uLy4uL3NlbGVjdC9zZWxlY3QubW9kdWxlJztcbmltcG9ydCB7IEFyZGl1bUNvbG9yUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEFyZENvbG9yUGlja2VyQ29sb3JSZWZlcmVuY2VUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkQ29sb3JQaWNrZXJIdWVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkQ29sb3JQaWNrZXJPcGFjaXR5SW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZENvbG9yUGlja2VyU2hhZGVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi9jb2xvci1waWNrZXIuZGlyZWN0aXZlcyc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFyZGl1bUNvbG9yUGlja2VyQ29tcG9uZW50LFxuICAgIEFyZENvbG9yUGlja2VySHVlSW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXJkQ29sb3JQaWNrZXJTaGFkZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIEFyZENvbG9yUGlja2VyQ29sb3JSZWZlcmVuY2VUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBBcmRDb2xvclBpY2tlck9wYWNpdHlJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQXJkaXVtU2VsZWN0TW9kdWxlLCBBcmRpdW1PcHRpb25Nb2R1bGUsIEFyZGl1bU51bWJlcklucHV0TW9kdWxlLCBBcmRpdW1IZXhJbnB1dE1vZHVsZV0sXG4gIGV4cG9ydHM6IFtcbiAgICBBcmRpdW1Db2xvclBpY2tlckNvbXBvbmVudCxcbiAgICBBcmRDb2xvclBpY2tlckh1ZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIEFyZENvbG9yUGlja2VyU2hhZGVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBBcmRDb2xvclBpY2tlckNvbG9yUmVmZXJlbmNlVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXJkQ29sb3JQaWNrZXJPcGFjaXR5SW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFyZGl1bUNvbG9yUGlja2VyTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,421 +0,0 @@
|
|
|
1
|
-
import { OverlayConfig } from '@angular/cdk/overlay';
|
|
2
|
-
import { TemplatePortal } from '@angular/cdk/portal';
|
|
3
|
-
import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, forwardRef, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
4
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
|
-
import { coerceBooleanProperty } from '@ardium-ui/devkit';
|
|
6
|
-
import * as Color from 'color';
|
|
7
|
-
import { ButtonVariant } from '../../buttons/general-button.types';
|
|
8
|
-
import { DropdownPanelAppearance, DropdownPanelVariant } from '../../dropdown-panel/dropdown-panel.types';
|
|
9
|
-
import { FormElementAppearance, FormElementVariant } from '../../types/theming.types';
|
|
10
|
-
import { _NgModelComponentBase } from '../../_internal/ngmodel-component';
|
|
11
|
-
import { CaseTransformerType } from '../input-types';
|
|
12
|
-
import { ArdColorInputActionButtonsTemplateDirective, ArdColorInputColorReferenceTemplateDirective, ArdColorInputHueIndicatorTemplateDirective, ArdColorInputOpacityIndicatorTemplateDirective, ArdColorInputPlaceholderTemplateDirective, ArdColorInputPrefixTemplateDirective, ArdColorInputShadeIndicatorTemplateDirective, ArdColorInputSuffixTemplateDirective, } from './color-input.directives';
|
|
13
|
-
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "@angular/cdk/overlay";
|
|
15
|
-
import * as i2 from "@angular/common";
|
|
16
|
-
import * as i3 from "../../form-field-frame/form-field-frame.component";
|
|
17
|
-
import * as i4 from "../../_internal/clear-button/clear-button.component";
|
|
18
|
-
import * as i5 from "../../color/color-picker/color-picker.component";
|
|
19
|
-
import * as i6 from "../../color/color-display/color-display.component";
|
|
20
|
-
import * as i7 from "../../card/card.component";
|
|
21
|
-
import * as i8 from "../../card/card.children";
|
|
22
|
-
import * as i9 from "@ardium-ui/devkit";
|
|
23
|
-
import * as i10 from "../../buttons/button/button.component";
|
|
24
|
-
export class ArdiumColorInputComponent extends _NgModelComponentBase {
|
|
25
|
-
constructor(_cd, viewContainerRef, overlay, scrollStrategyOpts, elementRef) {
|
|
26
|
-
super();
|
|
27
|
-
this._cd = _cd;
|
|
28
|
-
this.viewContainerRef = viewContainerRef;
|
|
29
|
-
this.overlay = overlay;
|
|
30
|
-
this.scrollStrategyOpts = scrollStrategyOpts;
|
|
31
|
-
this.DEFAULTS = {
|
|
32
|
-
clearButtonTitle: 'Clear',
|
|
33
|
-
};
|
|
34
|
-
//! placeholder
|
|
35
|
-
this.placeholder = '';
|
|
36
|
-
//! appearance
|
|
37
|
-
//all handled in ard-form-field-frame component
|
|
38
|
-
this.appearance = FormElementAppearance.Outlined;
|
|
39
|
-
this.variant = FormElementVariant.Rounded;
|
|
40
|
-
this._compact = false;
|
|
41
|
-
//! settings
|
|
42
|
-
this.case = CaseTransformerType.NoChange;
|
|
43
|
-
this._withActionButtons = false;
|
|
44
|
-
//! clear button
|
|
45
|
-
this._clearable = true;
|
|
46
|
-
this.clearButtonTitle = this.DEFAULTS.clearButtonTitle;
|
|
47
|
-
//! other inputs
|
|
48
|
-
this.inputAttrs = {};
|
|
49
|
-
//! value two-way binding
|
|
50
|
-
this._value = null;
|
|
51
|
-
this.valueChange = new EventEmitter();
|
|
52
|
-
//* event emitters
|
|
53
|
-
this.changeEvent = new EventEmitter();
|
|
54
|
-
this.clearEvent = new EventEmitter();
|
|
55
|
-
//! state
|
|
56
|
-
this._touched = false;
|
|
57
|
-
//! overlay state handlers
|
|
58
|
-
this._isOverlayOpen = false;
|
|
59
|
-
this.openEvent = new EventEmitter();
|
|
60
|
-
this.closeEvent = new EventEmitter();
|
|
61
|
-
//! overlay appearance
|
|
62
|
-
this._overlayAppearance = undefined;
|
|
63
|
-
this._overlayVariant = undefined;
|
|
64
|
-
//! color picker integration
|
|
65
|
-
this._temporaryValue = null;
|
|
66
|
-
this.element = elementRef.nativeElement;
|
|
67
|
-
}
|
|
68
|
-
//! ChangeDetectorRef
|
|
69
|
-
detectChanges() {
|
|
70
|
-
if (!this._cd.destroyed) {
|
|
71
|
-
this._cd.detectChanges();
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
ngAfterViewInit() {
|
|
75
|
-
this._setInputAttributes();
|
|
76
|
-
}
|
|
77
|
-
get shouldDisplayPlaceholder() {
|
|
78
|
-
return Boolean(this.placeholder) && !this.value;
|
|
79
|
-
}
|
|
80
|
-
get compact() {
|
|
81
|
-
return this._compact;
|
|
82
|
-
}
|
|
83
|
-
set compact(v) {
|
|
84
|
-
this._compact = coerceBooleanProperty(v);
|
|
85
|
-
}
|
|
86
|
-
get withActionButtons() {
|
|
87
|
-
return this._withActionButtons;
|
|
88
|
-
}
|
|
89
|
-
set withActionButtons(v) {
|
|
90
|
-
this._withActionButtons = coerceBooleanProperty(v);
|
|
91
|
-
}
|
|
92
|
-
get clearable() {
|
|
93
|
-
return this._clearable;
|
|
94
|
-
}
|
|
95
|
-
set clearable(v) {
|
|
96
|
-
this._clearable = coerceBooleanProperty(v);
|
|
97
|
-
if (this.value == null) {
|
|
98
|
-
this.value = Color('red');
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
get shouldShowClearButton() {
|
|
102
|
-
return this._clearable && !this.disabled && Boolean(this.value);
|
|
103
|
-
}
|
|
104
|
-
onClearButtonClick(event) {
|
|
105
|
-
event.stopPropagation();
|
|
106
|
-
this.clear();
|
|
107
|
-
this.focus();
|
|
108
|
-
}
|
|
109
|
-
//! control value accessor's write value implementation
|
|
110
|
-
writeValue(v) {
|
|
111
|
-
this.value = v;
|
|
112
|
-
}
|
|
113
|
-
//! clear function
|
|
114
|
-
clear() {
|
|
115
|
-
if (!this.clearable)
|
|
116
|
-
return;
|
|
117
|
-
this.writeValue(null);
|
|
118
|
-
this._emitChange();
|
|
119
|
-
this.clearEvent.emit();
|
|
120
|
-
}
|
|
121
|
-
set value(v) {
|
|
122
|
-
this._value = v;
|
|
123
|
-
this._updateInputElValue();
|
|
124
|
-
}
|
|
125
|
-
get value() {
|
|
126
|
-
return this._value;
|
|
127
|
-
}
|
|
128
|
-
//! event handlers
|
|
129
|
-
//change
|
|
130
|
-
onChange(event) {
|
|
131
|
-
event.stopPropagation();
|
|
132
|
-
this._emitChange();
|
|
133
|
-
}
|
|
134
|
-
_emitChange() {
|
|
135
|
-
const v = this.value;
|
|
136
|
-
if (!v)
|
|
137
|
-
return;
|
|
138
|
-
this._onChangeRegistered?.(v);
|
|
139
|
-
this.changeEvent.emit(v);
|
|
140
|
-
this.valueChange.emit(v);
|
|
141
|
-
}
|
|
142
|
-
_onTouched() {
|
|
143
|
-
this.touched = true;
|
|
144
|
-
this._onTouchedRegistered?.();
|
|
145
|
-
}
|
|
146
|
-
//smart focus
|
|
147
|
-
onMouseup() {
|
|
148
|
-
this.toggle();
|
|
149
|
-
}
|
|
150
|
-
onCopy(event) {
|
|
151
|
-
const v = this.value;
|
|
152
|
-
if (!v)
|
|
153
|
-
return;
|
|
154
|
-
event.clipboardData?.setData('text/plain', v.hex().toString());
|
|
155
|
-
event.preventDefault();
|
|
156
|
-
}
|
|
157
|
-
get touched() {
|
|
158
|
-
return this._touched;
|
|
159
|
-
}
|
|
160
|
-
set touched(state) {
|
|
161
|
-
this._touched = state;
|
|
162
|
-
}
|
|
163
|
-
_createOverlay() {
|
|
164
|
-
const strategy = this.overlay
|
|
165
|
-
.position()
|
|
166
|
-
.flexibleConnectedTo(this.overlayHost)
|
|
167
|
-
.withPositions([
|
|
168
|
-
{
|
|
169
|
-
originX: 'end',
|
|
170
|
-
originY: 'bottom',
|
|
171
|
-
overlayX: 'end',
|
|
172
|
-
overlayY: 'top',
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
originX: 'start',
|
|
176
|
-
originY: 'bottom',
|
|
177
|
-
overlayX: 'end',
|
|
178
|
-
overlayY: 'top',
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
originX: 'start',
|
|
182
|
-
originY: 'top',
|
|
183
|
-
overlayX: 'start',
|
|
184
|
-
overlayY: 'bottom',
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
originX: 'start',
|
|
188
|
-
originY: 'top',
|
|
189
|
-
overlayX: 'start',
|
|
190
|
-
overlayY: 'bottom',
|
|
191
|
-
},
|
|
192
|
-
]);
|
|
193
|
-
const config = new OverlayConfig({
|
|
194
|
-
positionStrategy: strategy,
|
|
195
|
-
scrollStrategy: this.scrollStrategyOpts.block(),
|
|
196
|
-
hasBackdrop: false,
|
|
197
|
-
});
|
|
198
|
-
this.overlayRef = this.overlay.create(config);
|
|
199
|
-
const portal = new TemplatePortal(this.overlayTemplate, this.viewContainerRef);
|
|
200
|
-
this.overlayRef.attach(portal);
|
|
201
|
-
}
|
|
202
|
-
_destroyOverlay() {
|
|
203
|
-
if (!this.overlayRef)
|
|
204
|
-
return;
|
|
205
|
-
this.overlayRef.dispose();
|
|
206
|
-
delete this.overlayRef;
|
|
207
|
-
}
|
|
208
|
-
toggle() {
|
|
209
|
-
if (this._isOverlayOpen) {
|
|
210
|
-
this.close();
|
|
211
|
-
return;
|
|
212
|
-
}
|
|
213
|
-
this.open();
|
|
214
|
-
}
|
|
215
|
-
open() {
|
|
216
|
-
if (this.disabled || this._isOverlayOpen)
|
|
217
|
-
return;
|
|
218
|
-
this._isOverlayOpen = true;
|
|
219
|
-
this._createOverlay();
|
|
220
|
-
this.focus();
|
|
221
|
-
this.openEvent.emit();
|
|
222
|
-
}
|
|
223
|
-
close() {
|
|
224
|
-
if (!this._isOverlayOpen)
|
|
225
|
-
return;
|
|
226
|
-
this._isOverlayOpen = false;
|
|
227
|
-
this._temporaryValue = null;
|
|
228
|
-
this._destroyOverlay();
|
|
229
|
-
this._onTouched();
|
|
230
|
-
this.closeEvent.emit();
|
|
231
|
-
}
|
|
232
|
-
set overlayAppearance(v) {
|
|
233
|
-
this._overlayAppearance = v;
|
|
234
|
-
}
|
|
235
|
-
get overlayAppearance() {
|
|
236
|
-
if (this._overlayAppearance)
|
|
237
|
-
return this._overlayAppearance;
|
|
238
|
-
if (this.appearance == FormElementAppearance.Outlined)
|
|
239
|
-
return DropdownPanelAppearance.Outlined;
|
|
240
|
-
return DropdownPanelAppearance.Raised;
|
|
241
|
-
}
|
|
242
|
-
set overlayVariant(v) {
|
|
243
|
-
this._overlayVariant = v;
|
|
244
|
-
}
|
|
245
|
-
get overlayVariant() {
|
|
246
|
-
if (this._overlayVariant)
|
|
247
|
-
return this._overlayVariant;
|
|
248
|
-
if (this.variant == FormElementVariant.Pill)
|
|
249
|
-
return DropdownPanelVariant.Rounded;
|
|
250
|
-
return this.variant;
|
|
251
|
-
}
|
|
252
|
-
onColorPickerChange(event) {
|
|
253
|
-
if (this.withActionButtons) {
|
|
254
|
-
this._temporaryValue = event;
|
|
255
|
-
return;
|
|
256
|
-
}
|
|
257
|
-
this.value = event;
|
|
258
|
-
this.detectChanges();
|
|
259
|
-
}
|
|
260
|
-
handleOutsideClick(event) {
|
|
261
|
-
if (!this._isOverlayOpen)
|
|
262
|
-
return;
|
|
263
|
-
const target = event.target;
|
|
264
|
-
if (this.element.contains(target))
|
|
265
|
-
return;
|
|
266
|
-
this.close();
|
|
267
|
-
}
|
|
268
|
-
apply() {
|
|
269
|
-
if (!this._temporaryValue)
|
|
270
|
-
return this.cancel();
|
|
271
|
-
this.value = this._temporaryValue;
|
|
272
|
-
this.detectChanges();
|
|
273
|
-
this.close();
|
|
274
|
-
}
|
|
275
|
-
cancel() {
|
|
276
|
-
this.close();
|
|
277
|
-
}
|
|
278
|
-
reset() {
|
|
279
|
-
this._temporaryValue = this.value;
|
|
280
|
-
}
|
|
281
|
-
get actionButtonVariant() {
|
|
282
|
-
if (this.variant == FormElementVariant.Sharp)
|
|
283
|
-
return ButtonVariant.Sharp;
|
|
284
|
-
return ButtonVariant.Rounded;
|
|
285
|
-
}
|
|
286
|
-
getActionButtonsContext() {
|
|
287
|
-
return {
|
|
288
|
-
apply: () => {
|
|
289
|
-
this.apply();
|
|
290
|
-
},
|
|
291
|
-
cancel: () => {
|
|
292
|
-
this.cancel();
|
|
293
|
-
},
|
|
294
|
-
reset: () => {
|
|
295
|
-
this.reset();
|
|
296
|
-
},
|
|
297
|
-
};
|
|
298
|
-
}
|
|
299
|
-
//! helpers
|
|
300
|
-
_updateInputElValue() {
|
|
301
|
-
this.textInputEl.nativeElement.value = this.value?.hex().toString() ?? '';
|
|
302
|
-
}
|
|
303
|
-
_setInputAttributes() {
|
|
304
|
-
const input = this.textInputEl.nativeElement;
|
|
305
|
-
const attributes = {
|
|
306
|
-
type: 'text',
|
|
307
|
-
autocorrect: 'off',
|
|
308
|
-
autocapitalize: 'off',
|
|
309
|
-
autocomplete: 'off',
|
|
310
|
-
tabindex: String(this.tabIndex),
|
|
311
|
-
...this.inputAttrs,
|
|
312
|
-
};
|
|
313
|
-
for (const key of Object.keys(attributes)) {
|
|
314
|
-
input.setAttribute(key, String(attributes[key]));
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorInputComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }, { token: i1.Overlay }, { token: i1.ScrollStrategyOptions }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
318
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: ArdiumColorInputComponent, selector: "ard-color-input", inputs: { inputId: "inputId", placeholder: "placeholder", appearance: "appearance", variant: "variant", compact: "compact", case: "case", withActionButtons: "withActionButtons", clearable: "clearable", clearButtonTitle: "clearButtonTitle", inputAttrs: "inputAttrs", value: "value", overlayAppearance: "overlayAppearance", overlayVariant: "overlayVariant" }, outputs: { valueChange: "valueChange", changeEvent: "change", clearEvent: "clear", openEvent: "open", closeEvent: "close" }, providers: [
|
|
319
|
-
{
|
|
320
|
-
provide: NG_VALUE_ACCESSOR,
|
|
321
|
-
useExisting: forwardRef(() => ArdiumColorInputComponent),
|
|
322
|
-
multi: true,
|
|
323
|
-
},
|
|
324
|
-
], queries: [{ propertyName: "prefixTemplate", first: true, predicate: ArdColorInputPrefixTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "suffixTemplate", first: true, predicate: ArdColorInputSuffixTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "placeholderTemplate", first: true, predicate: ArdColorInputPlaceholderTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "shadeIndicatorTemplate", first: true, predicate: ArdColorInputShadeIndicatorTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "hueIndicatorTemplate", first: true, predicate: ArdColorInputHueIndicatorTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "opacityIndicatorTemplate", first: true, predicate: ArdColorInputOpacityIndicatorTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "colorReferenceTemplate", first: true, predicate: ArdColorInputColorReferenceTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "actionButtonsTemplate", first: true, predicate: ArdColorInputActionButtonsTemplateDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "textInputEl", first: true, predicate: ["textInput"], descendants: true }, { propertyName: "overlayHost", first: true, predicate: ["overlayHost"], descendants: true, read: ElementRef }, { propertyName: "overlayTemplate", first: true, predicate: ["overlayTemplate"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ard-form-field-frame\r\n [appearance]=\"appearance\"\r\n [variant]=\"variant\"\r\n [compact]=\"compact\"\r\n [isFocused]=\"isFocused\"\r\n [prefixTemplate]=\"prefixTemplate\"\r\n [suffixTemplate]=\"suffixTemplate\"\r\n #overlayHost\r\n>\r\n <div class=\"ard-color-input\"\r\n [class.ard-has-value]=\"value\"\r\n (mouseup)=\"onMouseup()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n <ng-container *ngIf=\"shouldDisplayPlaceholder\">\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate || defaultPlaceholderTemplate\"></ng-template>\r\n </ng-container>\r\n\r\n <input #textInput\r\n [attr.id]=\"inputId\"\r\n tabindex=\"-1\"\r\n readonly\r\n >\r\n </div>\r\n\r\n <ard-_clear-button\r\n *ngIf=\"shouldShowClearButton\"\r\n [title]=\"clearButtonTitle\"\r\n (mouseup)=\"onClearButtonClick($event)\"\r\n ></ard-_clear-button>\r\n\r\n <button\r\n class=\"ard-color-display-button\"\r\n #focusableElement\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (copy)=\"onCopy($event)\"\r\n >\r\n <ard-color-display [color]=\"value\"></ard-color-display>\r\n </button>\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<ng-template #overlayTemplate>\r\n <ard-card\r\n class=\"ard-overlay-card ard-color-input-overlay-card\"\r\n [appearance]=\"overlayAppearance\"\r\n [variant]=\"overlayVariant\"\r\n (ardClickOutside)=\"handleOutsideClick($event)\"\r\n >\r\n <ard-color-picker\r\n [value]=\"value\"\r\n (valueChange)=\"onColorPickerChange($event)\"\r\n [hueIndicatorTemplate]=\"hueIndicatorTemplate\"\r\n [shadeIndicatorTemplate]=\"shadeIndicatorTemplate\"\r\n [opacityIndicatorTemplate]=\"opacityIndicatorTemplate\"\r\n [colorReferenceTemplate]=\"colorReferenceTemplate\"\r\n ></ard-color-picker>\r\n <ard-card-action-buttons *ngIf=\"withActionButtons\">\r\n <ng-template #defaultActionButtonsTemplate let-applyFn=\"apply\" let-cancelFn=\"cancel\">\r\n <ard-button appearance=\"transparent\" [variant]=\"actionButtonVariant\" (click)=\"cancelFn()\">Cancel</ard-button>\r\n <ard-button appearance=\"raised-strong\" [variant]=\"actionButtonVariant\" (click)=\"applyFn()\">Apply</ard-button>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"actionButtonsTemplate ?? defaultActionButtonsTemplate\"\r\n [ngTemplateOutletContext]=\"getActionButtonsContext()\"\r\n />\r\n </ard-card-action-buttons>\r\n </ard-card>\r\n</ng-template>", styles: [".ard-input-container{position:relative}.ard-placeholder{position:absolute;left:0;right:0}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.ArdiumFormFieldFrameComponent, selector: "ard-form-field-frame", inputs: ["isFocused", "appearance", "variant", "compact", "prefixTemplate", "suffixTemplate"] }, { kind: "component", type: i4._ClearButtonComponent, selector: "ard-_clear-button" }, { kind: "component", type: i5.ArdiumColorPickerComponent, selector: "ard-color-picker", inputs: ["withOpacity", "referenceColor", "wrapperClasses", "variant", "vertical", "value", "colorHue", "colorSaturation", "colorValue", "colorOpacity", "shadeIndicatorTemplate", "hueIndicatorTemplate", "opacityIndicatorTemplate", "colorReferenceTemplate"], outputs: ["valueChange", "colorHueChange", "colorSaturationChange", "colorValueChange", "colorOpacityChange"] }, { kind: "component", type: i6.ArdiumColorDisplayComponent, selector: "ard-color-display", inputs: ["ariaLabel", "withLabel", "appearance", "color"] }, { kind: "component", type: i7.ArdiumCardComponent, selector: "ard-card" }, { kind: "directive", type: i8.ArdiumCardActionButtonsDirective, selector: "ard-card-action-buttons, [ard-card-action-buttons]", inputs: ["align"] }, { kind: "directive", type: i9.ClickOutsideDirective, selector: "[ardClickOutside]", outputs: ["ardClickOutside"] }, { kind: "component", type: i10.ArdiumButtonComponent, selector: "ard-button", inputs: ["variant", "alignIcon", "vertical", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
325
|
-
}
|
|
326
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorInputComponent, decorators: [{
|
|
327
|
-
type: Component,
|
|
328
|
-
args: [{ selector: 'ard-color-input', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
329
|
-
{
|
|
330
|
-
provide: NG_VALUE_ACCESSOR,
|
|
331
|
-
useExisting: forwardRef(() => ArdiumColorInputComponent),
|
|
332
|
-
multi: true,
|
|
333
|
-
},
|
|
334
|
-
], template: "<ard-form-field-frame\r\n [appearance]=\"appearance\"\r\n [variant]=\"variant\"\r\n [compact]=\"compact\"\r\n [isFocused]=\"isFocused\"\r\n [prefixTemplate]=\"prefixTemplate\"\r\n [suffixTemplate]=\"suffixTemplate\"\r\n #overlayHost\r\n>\r\n <div class=\"ard-color-input\"\r\n [class.ard-has-value]=\"value\"\r\n (mouseup)=\"onMouseup()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n <ng-container *ngIf=\"shouldDisplayPlaceholder\">\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate || defaultPlaceholderTemplate\"></ng-template>\r\n </ng-container>\r\n\r\n <input #textInput\r\n [attr.id]=\"inputId\"\r\n tabindex=\"-1\"\r\n readonly\r\n >\r\n </div>\r\n\r\n <ard-_clear-button\r\n *ngIf=\"shouldShowClearButton\"\r\n [title]=\"clearButtonTitle\"\r\n (mouseup)=\"onClearButtonClick($event)\"\r\n ></ard-_clear-button>\r\n\r\n <button\r\n class=\"ard-color-display-button\"\r\n #focusableElement\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (copy)=\"onCopy($event)\"\r\n >\r\n <ard-color-display [color]=\"value\"></ard-color-display>\r\n </button>\r\n </div>\r\n</ard-form-field-frame>\r\n\r\n<ng-template #overlayTemplate>\r\n <ard-card\r\n class=\"ard-overlay-card ard-color-input-overlay-card\"\r\n [appearance]=\"overlayAppearance\"\r\n [variant]=\"overlayVariant\"\r\n (ardClickOutside)=\"handleOutsideClick($event)\"\r\n >\r\n <ard-color-picker\r\n [value]=\"value\"\r\n (valueChange)=\"onColorPickerChange($event)\"\r\n [hueIndicatorTemplate]=\"hueIndicatorTemplate\"\r\n [shadeIndicatorTemplate]=\"shadeIndicatorTemplate\"\r\n [opacityIndicatorTemplate]=\"opacityIndicatorTemplate\"\r\n [colorReferenceTemplate]=\"colorReferenceTemplate\"\r\n ></ard-color-picker>\r\n <ard-card-action-buttons *ngIf=\"withActionButtons\">\r\n <ng-template #defaultActionButtonsTemplate let-applyFn=\"apply\" let-cancelFn=\"cancel\">\r\n <ard-button appearance=\"transparent\" [variant]=\"actionButtonVariant\" (click)=\"cancelFn()\">Cancel</ard-button>\r\n <ard-button appearance=\"raised-strong\" [variant]=\"actionButtonVariant\" (click)=\"applyFn()\">Apply</ard-button>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"actionButtonsTemplate ?? defaultActionButtonsTemplate\"\r\n [ngTemplateOutletContext]=\"getActionButtonsContext()\"\r\n />\r\n </ard-card-action-buttons>\r\n </ard-card>\r\n</ng-template>", styles: [".ard-input-container{position:relative}.ard-placeholder{position:absolute;left:0;right:0}\n"] }]
|
|
335
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i1.Overlay }, { type: i1.ScrollStrategyOptions }, { type: i0.ElementRef }], propDecorators: { textInputEl: [{
|
|
336
|
-
type: ViewChild,
|
|
337
|
-
args: ['textInput']
|
|
338
|
-
}], inputId: [{
|
|
339
|
-
type: Input
|
|
340
|
-
}], prefixTemplate: [{
|
|
341
|
-
type: ContentChild,
|
|
342
|
-
args: [ArdColorInputPrefixTemplateDirective, { read: TemplateRef }]
|
|
343
|
-
}], suffixTemplate: [{
|
|
344
|
-
type: ContentChild,
|
|
345
|
-
args: [ArdColorInputSuffixTemplateDirective, { read: TemplateRef }]
|
|
346
|
-
}], placeholder: [{
|
|
347
|
-
type: Input
|
|
348
|
-
}], placeholderTemplate: [{
|
|
349
|
-
type: ContentChild,
|
|
350
|
-
args: [ArdColorInputPlaceholderTemplateDirective, {
|
|
351
|
-
read: TemplateRef,
|
|
352
|
-
}]
|
|
353
|
-
}], appearance: [{
|
|
354
|
-
type: Input
|
|
355
|
-
}], variant: [{
|
|
356
|
-
type: Input
|
|
357
|
-
}], compact: [{
|
|
358
|
-
type: Input
|
|
359
|
-
}], case: [{
|
|
360
|
-
type: Input
|
|
361
|
-
}], withActionButtons: [{
|
|
362
|
-
type: Input
|
|
363
|
-
}], clearable: [{
|
|
364
|
-
type: Input
|
|
365
|
-
}], clearButtonTitle: [{
|
|
366
|
-
type: Input
|
|
367
|
-
}], inputAttrs: [{
|
|
368
|
-
type: Input
|
|
369
|
-
}], value: [{
|
|
370
|
-
type: Input
|
|
371
|
-
}], valueChange: [{
|
|
372
|
-
type: Output
|
|
373
|
-
}], changeEvent: [{
|
|
374
|
-
type: Output,
|
|
375
|
-
args: ['change']
|
|
376
|
-
}], clearEvent: [{
|
|
377
|
-
type: Output,
|
|
378
|
-
args: ['clear']
|
|
379
|
-
}], overlayHost: [{
|
|
380
|
-
type: ViewChild,
|
|
381
|
-
args: ['overlayHost', { read: ElementRef }]
|
|
382
|
-
}], overlayTemplate: [{
|
|
383
|
-
type: ViewChild,
|
|
384
|
-
args: ['overlayTemplate', { read: TemplateRef }]
|
|
385
|
-
}], openEvent: [{
|
|
386
|
-
type: Output,
|
|
387
|
-
args: ['open']
|
|
388
|
-
}], closeEvent: [{
|
|
389
|
-
type: Output,
|
|
390
|
-
args: ['close']
|
|
391
|
-
}], overlayAppearance: [{
|
|
392
|
-
type: Input
|
|
393
|
-
}], overlayVariant: [{
|
|
394
|
-
type: Input
|
|
395
|
-
}], shadeIndicatorTemplate: [{
|
|
396
|
-
type: ContentChild,
|
|
397
|
-
args: [ArdColorInputShadeIndicatorTemplateDirective, {
|
|
398
|
-
read: TemplateRef,
|
|
399
|
-
}]
|
|
400
|
-
}], hueIndicatorTemplate: [{
|
|
401
|
-
type: ContentChild,
|
|
402
|
-
args: [ArdColorInputHueIndicatorTemplateDirective, {
|
|
403
|
-
read: TemplateRef,
|
|
404
|
-
}]
|
|
405
|
-
}], opacityIndicatorTemplate: [{
|
|
406
|
-
type: ContentChild,
|
|
407
|
-
args: [ArdColorInputOpacityIndicatorTemplateDirective, {
|
|
408
|
-
read: TemplateRef,
|
|
409
|
-
}]
|
|
410
|
-
}], colorReferenceTemplate: [{
|
|
411
|
-
type: ContentChild,
|
|
412
|
-
args: [ArdColorInputColorReferenceTemplateDirective, {
|
|
413
|
-
read: TemplateRef,
|
|
414
|
-
}]
|
|
415
|
-
}], actionButtonsTemplate: [{
|
|
416
|
-
type: ContentChild,
|
|
417
|
-
args: [ArdColorInputActionButtonsTemplateDirective, {
|
|
418
|
-
read: TemplateRef,
|
|
419
|
-
}]
|
|
420
|
-
}] } });
|
|
421
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvY29sb3ItaW5wdXQvY29sb3ItaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvY29sb3ItaW5wdXQvY29sb3ItaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLGFBQWEsRUFBcUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFFVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsMkNBQTJDLEVB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QUksRUFBRSxXQUFXO3FCQUNsQjtnQkFLRCxzQkFBc0I7c0JBSHJCLFlBQVk7dUJBQUMsNENBQTRDLEVBQUU7d0JBQzFELElBQUksRUFBRSxXQUFXO3FCQUNsQjtnQkFLRCxxQkFBcUI7c0JBSHBCLFlBQVk7dUJBQUMsMkNBQTJDLEVBQUU7d0JBQ3pELElBQUksRUFBRSxXQUFXO3FCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYsIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcbmltcG9ydCAqIGFzIENvbG9yIGZyb20gJ2NvbG9yJztcbmltcG9ydCB7IEJ1dHRvblZhcmlhbnQgfSBmcm9tICcuLi8uLi9idXR0b25zL2dlbmVyYWwtYnV0dG9uLnR5cGVzJztcbmltcG9ydCB7IENhcmRBcHBlYXJhbmNlLCBDYXJkVmFyaWFudCB9IGZyb20gJy4uLy4uL2NhcmQvY2FyZC50eXBlcyc7XG5pbXBvcnQgeyBEcm9wZG93blBhbmVsQXBwZWFyYW5jZSwgRHJvcGRvd25QYW5lbFZhcmlhbnQgfSBmcm9tICcuLi8uLi9kcm9wZG93bi1wYW5lbC9kcm9wZG93bi1wYW5lbC50eXBlcyc7XG5pbXBvcnQgeyBGb3JtRWxlbWVudEFwcGVhcmFuY2UsIEZvcm1FbGVtZW50VmFyaWFudCB9IGZyb20gJy4uLy4uL3R5cGVzL3RoZW1pbmcudHlwZXMnO1xuaW1wb3J0IHsgX05nTW9kZWxDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vX2ludGVybmFsL25nbW9kZWwtY29tcG9uZW50JztcbmltcG9ydCB7IENhc2VUcmFuc2Zvcm1lclR5cGUgfSBmcm9tICcuLi9pbnB1dC10eXBlcyc7XG5pbXBvcnQge1xuICBBcmRDb2xvcklucHV0QWN0aW9uQnV0dG9uc1RlbXBsYXRlRGlyZWN0aXZlLFxuICBBcmRDb2xvcklucHV0Q29sb3JSZWZlcmVuY2VUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkQ29sb3JJbnB1dEh1ZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLFxuICBBcmRDb2xvcklucHV0T3BhY2l0eUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLFxuICBBcmRDb2xvcklucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkQ29sb3JJbnB1dFByZWZpeFRlbXBsYXRlRGlyZWN0aXZlLFxuICBBcmRDb2xvcklucHV0U2hhZGVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkQ29sb3JJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlLFxufSBmcm9tICcuL2NvbG9yLWlucHV0LmRpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQ29sb3JJbnB1dEFjdGlvbkJ1dHRvbnNDb250ZXh0IH0gZnJvbSAnLi9jb2xvci1pbnB1dC50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FyZC1jb2xvci1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2xvci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbG9yLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFyZGl1bUNvbG9ySW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXJkaXVtQ29sb3JJbnB1dENvbXBvbmVudCBleHRlbmRzIF9OZ01vZGVsQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0IHtcbiAgcmVhZG9ubHkgZWxlbWVudCE6IEhUTUxFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgc2Nyb2xsU3RyYXRlZ3lPcHRzOiBTY3JvbGxTdHJhdGVneU9wdGlvbnMsXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuICAvLyEgQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAoISg8YW55PnRoaXMuX2NkKS5kZXN0cm95ZWQpIHtcbiAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICAvLyEgaW5wdXQgdmlld1xuICBAVmlld0NoaWxkKCd0ZXh0SW5wdXQnKVxuICBwcm90ZWN0ZWQgdGV4dElucHV0RWwhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fc2V0SW5wdXRBdHRyaWJ1dGVzKCk7XG4gIH1cblxuICByZWFkb25seSBERUZBVUxUUyA9IHtcbiAgICBjbGVhckJ1dHRvblRpdGxlOiAnQ2xlYXInLFxuICB9O1xuXG4gIEBJbnB1dCgpIGlucHV0SWQ/OiBzdHJpbmc7XG5cbiAgLy8hIHByZWZpeCAmIHN1ZmZpeFxuICBAQ29udGVudENoaWxkKEFyZENvbG9ySW5wdXRQcmVmaXhUZW1wbGF0ZURpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBwcmVmaXhUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGQoQXJkQ29sb3JJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHN1ZmZpeFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvLyEgcGxhY2Vob2xkZXJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG4gIEBDb250ZW50Q2hpbGQoQXJkQ29sb3JJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgfSlcbiAgcGxhY2Vob2xkZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZ2V0IHNob3VsZERpc3BsYXlQbGFjZWhvbGRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLnBsYWNlaG9sZGVyKSAmJiAhdGhpcy52YWx1ZTtcbiAgfVxuXG4gIC8vISBhcHBlYXJhbmNlXG4gIC8vYWxsIGhhbmRsZWQgaW4gYXJkLWZvcm0tZmllbGQtZnJhbWUgY29tcG9uZW50XG4gIEBJbnB1dCgpIGFwcGVhcmFuY2U6IEZvcm1FbGVtZW50QXBwZWFyYW5jZSA9IEZvcm1FbGVtZW50QXBwZWFyYW5jZS5PdXRsaW5lZDtcbiAgQElucHV0KCkgdmFyaWFudDogRm9ybUVsZW1lbnRWYXJpYW50ID0gRm9ybUVsZW1lbnRWYXJpYW50LlJvdW5kZWQ7XG5cbiAgcHJpdmF0ZSBfY29tcGFjdDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBnZXQgY29tcGFjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY29tcGFjdDtcbiAgfVxuICBzZXQgY29tcGFjdCh2OiBhbnkpIHtcbiAgICB0aGlzLl9jb21wYWN0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpO1xuICB9XG5cbiAgLy8hIHNldHRpbmdzXG4gIEBJbnB1dCgpIGNhc2U6IENhc2VUcmFuc2Zvcm1lclR5cGUgPSBDYXNlVHJhbnNmb3JtZXJUeXBlLk5vQ2hhbmdlO1xuXG4gIHByaXZhdGUgX3dpdGhBY3Rpb25CdXR0b25zOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIGdldCB3aXRoQWN0aW9uQnV0dG9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fd2l0aEFjdGlvbkJ1dHRvbnM7XG4gIH1cbiAgc2V0IHdpdGhBY3Rpb25CdXR0b25zKHY6IGFueSkge1xuICAgIHRoaXMuX3dpdGhBY3Rpb25CdXR0b25zID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpO1xuICB9XG5cbiAgLy8hIGNsZWFyIGJ1dHRvblxuICBwcml2YXRlIF9jbGVhcmFibGU6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKVxuICBnZXQgY2xlYXJhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jbGVhcmFibGU7XG4gIH1cbiAgc2V0IGNsZWFyYWJsZSh2OiBhbnkpIHtcbiAgICB0aGlzLl9jbGVhcmFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodik7XG4gICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgdGhpcy52YWx1ZSA9IENvbG9yKCdyZWQnKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBjbGVhckJ1dHRvblRpdGxlOiBzdHJpbmcgPSB0aGlzLkRFRkFVTFRTLmNsZWFyQnV0dG9uVGl0bGU7XG5cbiAgZ2V0IHNob3VsZFNob3dDbGVhckJ1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2xlYXJhYmxlICYmICF0aGlzLmRpc2FibGVkICYmIEJvb2xlYW4odGhpcy52YWx1ZSk7XG4gIH1cbiAgb25DbGVhckJ1dHRvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5jbGVhcigpO1xuICAgIHRoaXMuZm9jdXMoKTtcbiAgfVxuXG4gIC8vISBvdGhlciBpbnB1dHNcbiAgQElucHV0KCkgaW5wdXRBdHRyczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gIC8vISBjb250cm9sIHZhbHVlIGFjY2Vzc29yJ3Mgd3JpdGUgdmFsdWUgaW1wbGVtZW50YXRpb25cbiAgd3JpdGVWYWx1ZSh2OiBDb2xvciB8IG51bGwpIHtcbiAgICB0aGlzLnZhbHVlID0gdjtcbiAgfVxuXG4gIC8vISBjbGVhciBmdW5jdGlvblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2xlYXJhYmxlKSByZXR1cm47XG5cbiAgICB0aGlzLndyaXRlVmFsdWUobnVsbCk7XG4gICAgdGhpcy5fZW1pdENoYW5nZSgpO1xuICAgIHRoaXMuY2xlYXJFdmVudC5lbWl0KCk7XG4gIH1cblxuICAvLyEgdmFsdWUgdHdvLXdheSBiaW5kaW5nXG4gIHByb3RlY3RlZCBfdmFsdWU6IENvbG9yIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2OiBDb2xvciB8IG51bGwpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHY7XG4gICAgdGhpcy5fdXBkYXRlSW5wdXRFbFZhbHVlKCk7XG4gIH1cbiAgZ2V0IHZhbHVlKCk6IENvbG9yIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29sb3I+KCk7XG5cbiAgLy8qIGV2ZW50IGVtaXR0ZXJzXG4gIEBPdXRwdXQoJ2NoYW5nZScpIGNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxDb2xvcj4oKTtcbiAgQE91dHB1dCgnY2xlYXInKSBjbGVhckV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLy8hIGV2ZW50IGhhbmRsZXJzXG4gIC8vY2hhbmdlXG4gIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcbiAgfVxuICBwcm90ZWN0ZWQgX2VtaXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgdiA9IHRoaXMudmFsdWU7XG4gICAgaWYgKCF2KSByZXR1cm47XG5cbiAgICB0aGlzLl9vbkNoYW5nZVJlZ2lzdGVyZWQ/Lih2KTtcbiAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQodik7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHYpO1xuICB9XG4gIHByaXZhdGUgX29uVG91Y2hlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgIHRoaXMuX29uVG91Y2hlZFJlZ2lzdGVyZWQ/LigpO1xuICB9XG5cbiAgLy9zbWFydCBmb2N1c1xuICBvbk1vdXNldXAoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGUoKTtcbiAgfVxuXG4gIG9uQ29weShldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB2ID0gdGhpcy52YWx1ZTtcbiAgICBpZiAoIXYpIHJldHVybjtcblxuICAgIGV2ZW50LmNsaXBib2FyZERhdGE/LnNldERhdGEoJ3RleHQvcGxhaW4nLCB2LmhleCgpLnRvU3RyaW5nKCkpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICAvLyEgc3RhdGVcbiAgcHJpdmF0ZSBfdG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBnZXQgdG91Y2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdG91Y2hlZDtcbiAgfVxuICBwcml2YXRlIHNldCB0b3VjaGVkKHN0YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdG91Y2hlZCA9IHN0YXRlO1xuICB9XG5cbiAgLy8hIGNvbG9yIHBpY2tlciBvdmVybGF5XG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlIb3N0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIG92ZXJsYXlIb3N0ITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlUZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgb3ZlcmxheVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuXG4gIHByaXZhdGUgX2NyZWF0ZU92ZXJsYXkoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLm92ZXJsYXlIb3N0KVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgIH0sXG4gICAgICBdKTtcblxuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHN0cmF0ZWd5LFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuc2Nyb2xsU3RyYXRlZ3lPcHRzLmJsb2NrKCksXG4gICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgfSk7XG5cbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZyk7XG5cbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5vdmVybGF5VGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuICB9XG4gIHByaXZhdGUgX2Rlc3Ryb3lPdmVybGF5KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmKSByZXR1cm47XG5cbiAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgIGRlbGV0ZSB0aGlzLm92ZXJsYXlSZWY7XG4gIH1cblxuICAvLyEgb3ZlcmxheSBzdGF0ZSBoYW5kbGVyc1xuICBwcml2YXRlIF9pc092ZXJsYXlPcGVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgnb3BlbicpIG9wZW5FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCdjbG9zZScpIGNsb3NlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICB0b2dnbGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2lzT3ZlcmxheU9wZW4pIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vcGVuKCk7XG4gIH1cbiAgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLl9pc092ZXJsYXlPcGVuKSByZXR1cm47XG5cbiAgICB0aGlzLl9pc092ZXJsYXlPcGVuID0gdHJ1ZTtcblxuICAgIHRoaXMuX2NyZWF0ZU92ZXJsYXkoKTtcbiAgICB0aGlzLmZvY3VzKCk7XG5cbiAgICB0aGlzLm9wZW5FdmVudC5lbWl0KCk7XG4gIH1cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pc092ZXJsYXlPcGVuKSByZXR1cm47XG5cbiAgICB0aGlzLl9pc092ZXJsYXlPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5fdGVtcG9yYXJ5VmFsdWUgPSBudWxsO1xuXG4gICAgdGhpcy5fZGVzdHJveU92ZXJsYXkoKTtcblxuICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgIHRoaXMuY2xvc2VFdmVudC5lbWl0KCk7XG4gIH1cbiAgLy8hIG92ZXJsYXkgYXBwZWFyYW5jZVxuICBwcml2YXRlIF9vdmVybGF5QXBwZWFyYW5jZT86IENhcmRBcHBlYXJhbmNlID0gdW5kZWZpbmVkO1xuICBASW5wdXQoKVxuICBzZXQgb3ZlcmxheUFwcGVhcmFuY2UodjogQ2FyZEFwcGVhcmFuY2UpIHtcbiAgICB0aGlzLl9vdmVybGF5QXBwZWFyYW5jZSA9IHY7XG4gIH1cbiAgZ2V0IG92ZXJsYXlBcHBlYXJhbmNlKCk6IENhcmRBcHBlYXJhbmNlIHtcbiAgICBpZiAodGhpcy5fb3ZlcmxheUFwcGVhcmFuY2UpIHJldHVybiB0aGlzLl9vdmVybGF5QXBwZWFyYW5jZTtcbiAgICBpZiAodGhpcy5hcHBlYXJhbmNlID09IEZvcm1FbGVtZW50QXBwZWFyYW5jZS5PdXRsaW5lZCkgcmV0dXJuIERyb3Bkb3duUGFuZWxBcHBlYXJhbmNlLk91dGxpbmVkO1xuICAgIHJldHVybiBEcm9wZG93blBhbmVsQXBwZWFyYW5jZS5SYWlzZWQ7XG4gIH1cbiAgcHJpdmF0ZSBfb3ZlcmxheVZhcmlhbnQ/OiBDYXJkVmFyaWFudCA9IHVuZGVmaW5lZDtcbiAgQElucHV0KClcbiAgc2V0IG92ZXJsYXlWYXJpYW50KHY6IENhcmRWYXJpYW50KSB7XG4gICAgdGhpcy5fb3ZlcmxheVZhcmlhbnQgPSB2O1xuICB9XG4gIGdldCBvdmVybGF5VmFyaWFudCgpOiBDYXJkVmFyaWFudCB7XG4gICAgaWYgKHRoaXMuX292ZXJsYXlWYXJpYW50KSByZXR1cm4gdGhpcy5fb3ZlcmxheVZhcmlhbnQ7XG4gICAgaWYgKHRoaXMudmFyaWFudCA9PSBGb3JtRWxlbWVudFZhcmlhbnQuUGlsbCkgcmV0dXJuIERyb3Bkb3duUGFuZWxWYXJpYW50LlJvdW5kZWQ7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFudDtcbiAgfVxuXG4gIC8vISBjb2xvciBwaWNrZXIgaW50ZWdyYXRpb25cbiAgcHJpdmF0ZSBfdGVtcG9yYXJ5VmFsdWU6IENvbG9yIHwgbnVsbCA9IG51bGw7XG4gIG9uQ29sb3JQaWNrZXJDaGFuZ2UoZXZlbnQ6IENvbG9yKTogdm9pZCB7XG4gICAgaWYgKHRoaXMud2l0aEFjdGlvbkJ1dHRvbnMpIHtcbiAgICAgIHRoaXMuX3RlbXBvcmFyeVZhbHVlID0gZXZlbnQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudmFsdWUgPSBldmVudDtcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuICBoYW5kbGVPdXRzaWRlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lzT3ZlcmxheU9wZW4pIHJldHVybjtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKHRoaXMuZWxlbWVudC5jb250YWlucyh0YXJnZXQpKSByZXR1cm47XG5cbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbiAgYXBwbHkoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl90ZW1wb3JhcnlWYWx1ZSkgcmV0dXJuIHRoaXMuY2FuY2VsKCk7XG5cbiAgICB0aGlzLnZhbHVlID0gdGhpcy5fdGVtcG9yYXJ5VmFsdWU7XG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG4gIGNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5fdGVtcG9yYXJ5VmFsdWUgPSB0aGlzLnZhbHVlO1xuICB9XG5cbiAgLy8hIG92ZXJsYXkgdGVtcGxhdGVzXG4gIEBDb250ZW50Q2hpbGQoQXJkQ29sb3JJbnB1dFNoYWRlSW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgfSlcbiAgc2hhZGVJbmRpY2F0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGQoQXJkQ29sb3JJbnB1dEh1ZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gIH0pXG4gIGh1ZUluZGljYXRvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgQENvbnRlbnRDaGlsZChBcmRDb2xvcklucHV0T3BhY2l0eUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gIH0pXG4gIG9wYWNpdHlJbmRpY2F0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGQoQXJkQ29sb3JJbnB1dENvbG9yUmVmZXJlbmNlVGVtcGxhdGVEaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgfSlcbiAgY29sb3JSZWZlcmVuY2VUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGQoQXJkQ29sb3JJbnB1dEFjdGlvbkJ1dHRvbnNUZW1wbGF0ZURpcmVjdGl2ZSwge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICB9KVxuICBhY3Rpb25CdXR0b25zVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGdldCBhY3Rpb25CdXR0b25WYXJpYW50KCk6IEJ1dHRvblZhcmlhbnQge1xuICAgIGlmICh0aGlzLnZhcmlhbnQgPT0gRm9ybUVsZW1lbnRWYXJpYW50LlNoYXJwKSByZXR1cm4gQnV0dG9uVmFyaWFudC5TaGFycDtcbiAgICByZXR1cm4gQnV0dG9uVmFyaWFudC5Sb3VuZGVkO1xuICB9XG4gIGdldEFjdGlvbkJ1dHRvbnNDb250ZXh0KCk6IENvbG9ySW5wdXRBY3Rpb25CdXR0b25zQ29udGV4dCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcGx5OiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYXBwbHkoKTtcbiAgICAgIH0sXG4gICAgICBjYW5jZWw6ICgpID0+IHtcbiAgICAgICAgdGhpcy5jYW5jZWwoKTtcbiAgICAgIH0sXG4gICAgICByZXNldDogKCkgPT4ge1xuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvLyEgaGVscGVyc1xuICBwcm90ZWN0ZWQgX3VwZGF0ZUlucHV0RWxWYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRleHRJbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlPy5oZXgoKS50b1N0cmluZygpID8/ICcnO1xuICB9XG4gIHByb3RlY3RlZCBfc2V0SW5wdXRBdHRyaWJ1dGVzKCkge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy50ZXh0SW5wdXRFbC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGF0dHJpYnV0ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgICBhdXRvY29ycmVjdDogJ29mZicsXG4gICAgICBhdXRvY2FwaXRhbGl6ZTogJ29mZicsXG4gICAgICBhdXRvY29tcGxldGU6ICdvZmYnLFxuICAgICAgdGFiaW5kZXg6IFN0cmluZyh0aGlzLnRhYkluZGV4KSxcbiAgICAgIC4uLnRoaXMuaW5wdXRBdHRycyxcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYXR0cmlidXRlcykpIHtcbiAgICAgIGlucHV0LnNldEF0dHJpYnV0ZShrZXksIFN0cmluZyhhdHRyaWJ1dGVzW2tleV0pKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxhcmQtZm9ybS1maWVsZC1mcmFtZVxyXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXHJcbiAgICBbdmFyaWFudF09XCJ2YXJpYW50XCJcclxuICAgIFtjb21wYWN0XT1cImNvbXBhY3RcIlxyXG4gICAgW2lzRm9jdXNlZF09XCJpc0ZvY3VzZWRcIlxyXG4gICAgW3ByZWZpeFRlbXBsYXRlXT1cInByZWZpeFRlbXBsYXRlXCJcclxuICAgIFtzdWZmaXhUZW1wbGF0ZV09XCJzdWZmaXhUZW1wbGF0ZVwiXHJcbiAgICAjb3ZlcmxheUhvc3RcclxuPlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1jb2xvci1pbnB1dFwiXHJcbiAgICAgICAgW2NsYXNzLmFyZC1oYXMtdmFsdWVdPVwidmFsdWVcIlxyXG4gICAgICAgIChtb3VzZXVwKT1cIm9uTW91c2V1cCgpXCJcclxuICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvdWxkRGlzcGxheVBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRQbGFjZWhvbGRlclRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtcGxhY2Vob2xkZXJcIj57eyBwbGFjZWhvbGRlciB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicGxhY2Vob2xkZXJUZW1wbGF0ZSB8fCBkZWZhdWx0UGxhY2Vob2xkZXJUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPGlucHV0ICN0ZXh0SW5wdXRcclxuICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImlucHV0SWRcIlxyXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXHJcbiAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxhcmQtX2NsZWFyLWJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cInNob3VsZFNob3dDbGVhckJ1dHRvblwiXHJcbiAgICAgICAgICAgIFt0aXRsZV09XCJjbGVhckJ1dHRvblRpdGxlXCJcclxuICAgICAgICAgICAgKG1vdXNldXApPVwib25DbGVhckJ1dHRvbkNsaWNrKCRldmVudClcIlxyXG4gICAgICAgID48L2FyZC1fY2xlYXItYnV0dG9uPlxyXG5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYXJkLWNvbG9yLWRpc3BsYXktYnV0dG9uXCJcclxuICAgICAgICAgICAgI2ZvY3VzYWJsZUVsZW1lbnRcclxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGNvcHkpPVwib25Db3B5KCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGFyZC1jb2xvci1kaXNwbGF5IFtjb2xvcl09XCJ2YWx1ZVwiPjwvYXJkLWNvbG9yLWRpc3BsYXk+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9hcmQtZm9ybS1maWVsZC1mcmFtZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjb3ZlcmxheVRlbXBsYXRlPlxyXG4gICAgPGFyZC1jYXJkXHJcbiAgICAgICAgY2xhc3M9XCJhcmQtb3ZlcmxheS1jYXJkIGFyZC1jb2xvci1pbnB1dC1vdmVybGF5LWNhcmRcIlxyXG4gICAgICAgIFthcHBlYXJhbmNlXT1cIm92ZXJsYXlBcHBlYXJhbmNlXCJcclxuICAgICAgICBbdmFyaWFudF09XCJvdmVybGF5VmFyaWFudFwiXHJcbiAgICAgICAgKGFyZENsaWNrT3V0c2lkZSk9XCJoYW5kbGVPdXRzaWRlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgICAgPGFyZC1jb2xvci1waWNrZXJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uQ29sb3JQaWNrZXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFtodWVJbmRpY2F0b3JUZW1wbGF0ZV09XCJodWVJbmRpY2F0b3JUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgIFtzaGFkZUluZGljYXRvclRlbXBsYXRlXT1cInNoYWRlSW5kaWNhdG9yVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICBbb3BhY2l0eUluZGljYXRvclRlbXBsYXRlXT1cIm9wYWNpdHlJbmRpY2F0b3JUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgIFtjb2xvclJlZmVyZW5jZVRlbXBsYXRlXT1cImNvbG9yUmVmZXJlbmNlVGVtcGxhdGVcIlxyXG4gICAgICAgID48L2FyZC1jb2xvci1waWNrZXI+XHJcbiAgICAgICAgPGFyZC1jYXJkLWFjdGlvbi1idXR0b25zICpuZ0lmPVwid2l0aEFjdGlvbkJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0QWN0aW9uQnV0dG9uc1RlbXBsYXRlIGxldC1hcHBseUZuPVwiYXBwbHlcIiBsZXQtY2FuY2VsRm49XCJjYW5jZWxcIj5cclxuICAgICAgICAgICAgICAgIDxhcmQtYnV0dG9uIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiIFt2YXJpYW50XT1cImFjdGlvbkJ1dHRvblZhcmlhbnRcIiAoY2xpY2spPVwiY2FuY2VsRm4oKVwiPkNhbmNlbDwvYXJkLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcmQtYnV0dG9uIGFwcGVhcmFuY2U9XCJyYWlzZWQtc3Ryb25nXCIgW3ZhcmlhbnRdPVwiYWN0aW9uQnV0dG9uVmFyaWFudFwiIChjbGljayk9XCJhcHBseUZuKClcIj5BcHBseTwvYXJkLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWN0aW9uQnV0dG9uc1RlbXBsYXRlID8/IGRlZmF1bHRBY3Rpb25CdXR0b25zVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldEFjdGlvbkJ1dHRvbnNDb250ZXh0KClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIDwvYXJkLWNhcmQtYWN0aW9uLWJ1dHRvbnM+XHJcbiAgICA8L2FyZC1jYXJkPlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
|