@sbb-esta/lyne-elements 1.16.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion.d.ts +4 -1
- package/accordion/accordion.d.ts.map +1 -1
- package/accordion.js +31 -22
- package/action-group/action-group.d.ts +6 -4
- package/action-group/action-group.d.ts.map +1 -1
- package/action-group.js +20 -17
- package/alert/alert/alert.d.ts +7 -23
- package/alert/alert/alert.d.ts.map +1 -1
- package/alert/alert-group/alert-group.d.ts +0 -4
- package/alert/alert-group/alert-group.d.ts.map +1 -1
- package/alert/alert-group.js +46 -47
- package/alert/alert.js +74 -132
- package/animation.css +4 -8
- package/autocomplete/autocomplete-base-element.d.ts +7 -6
- package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/autocomplete/autocomplete.d.ts +0 -1
- package/autocomplete/autocomplete.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts +0 -1
- package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-button.js +11 -11
- package/autocomplete-grid/autocomplete-grid.js +0 -3
- package/autocomplete.js +68 -67
- package/button/accent-button/accent-button.d.ts +19 -0
- package/button/accent-button/accent-button.d.ts.map +1 -0
- package/button/accent-button-link/accent-button-link.d.ts +19 -0
- package/button/accent-button-link/accent-button-link.d.ts.map +1 -0
- package/button/accent-button-link.d.ts +2 -0
- package/button/accent-button-link.d.ts.map +1 -0
- package/button/accent-button-link.js +17 -0
- package/button/accent-button-static/accent-button-static.d.ts +19 -0
- package/button/accent-button-static/accent-button-static.d.ts.map +1 -0
- package/button/accent-button-static.d.ts +2 -0
- package/button/accent-button-static.d.ts.map +1 -0
- package/button/accent-button-static.js +17 -0
- package/button/accent-button.d.ts +2 -0
- package/button/accent-button.d.ts.map +1 -0
- package/button/accent-button.js +17 -0
- package/button/common/button-common.d.ts.map +1 -1
- package/button/common.d.ts.map +1 -1
- package/button/common.js +20 -16
- package/button/mini-button/mini-button.d.ts +4 -3
- package/button/mini-button/mini-button.d.ts.map +1 -1
- package/button/mini-button-group/mini-button-group.d.ts +4 -1
- package/button/mini-button-group/mini-button-group.d.ts.map +1 -1
- package/button/mini-button-group.js +12 -8
- package/button/mini-button.d.ts +0 -1
- package/button/mini-button.d.ts.map +1 -1
- package/button/mini-button.js +10 -20
- package/button.d.ts +3 -3
- package/button.d.ts.map +1 -1
- package/button.js +3 -3
- package/calendar.js +25 -25
- package/card/card/card.d.ts +4 -1
- package/card/card/card.d.ts.map +1 -1
- package/card/card.js +10 -6
- package/checkbox/checkbox/checkbox.d.ts +4 -6
- package/checkbox/checkbox/checkbox.d.ts.map +1 -1
- package/checkbox/checkbox-group/checkbox-group.d.ts +4 -1
- package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/checkbox/checkbox-group.js +14 -10
- package/checkbox/checkbox-panel/checkbox-panel.d.ts +4 -4
- package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
- package/checkbox/checkbox-panel.js +21 -18
- package/checkbox/checkbox.js +28 -26
- package/{chip/chip.d.ts → chip-label/chip-label.d.ts} +4 -4
- package/chip-label/chip-label.d.ts.map +1 -0
- package/chip-label.d.ts +2 -0
- package/chip-label.d.ts.map +1 -0
- package/chip-label.js +54 -0
- package/clock.js +1 -1
- package/container/container.js +21 -21
- package/container/sticky-bar/sticky-bar.d.ts +1 -0
- package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
- package/container/sticky-bar.js +20 -12
- package/core/base-elements/button-base-element.d.ts +27 -18
- package/core/base-elements/button-base-element.d.ts.map +1 -1
- package/core/base-elements/open-close-base-element.d.ts.map +1 -1
- package/core/base-elements.js +135 -138
- package/core/datetime/date-adapter.d.ts +2 -1
- package/core/datetime/date-adapter.d.ts.map +1 -1
- package/core/datetime/native-date-adapter.d.ts +1 -1
- package/core/datetime/native-date-adapter.d.ts.map +1 -1
- package/core/datetime.js +29 -28
- package/core/dom/animation.d.ts +2 -0
- package/core/dom/animation.d.ts.map +1 -0
- package/core/dom/lean-context.d.ts +5 -0
- package/core/dom/lean-context.d.ts.map +1 -0
- package/core/dom.d.ts +2 -2
- package/core/dom.d.ts.map +1 -1
- package/core/dom.js +50 -55
- package/core/eventing/form-element-handlers.d.ts +0 -7
- package/core/eventing/form-element-handlers.d.ts.map +1 -1
- package/core/eventing.d.ts +0 -1
- package/core/eventing.d.ts.map +1 -1
- package/core/eventing.js +28 -49
- package/core/i18n/i18n.d.ts +4 -2
- package/core/i18n/i18n.d.ts.map +1 -1
- package/core/i18n.js +147 -140
- package/core/mixins/disabled-mixin.d.ts +2 -7
- package/core/mixins/disabled-mixin.d.ts.map +1 -1
- package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
- package/core/mixins/form-associated-mixin.d.ts +1 -1
- package/core/mixins/form-associated-mixin.d.ts.map +1 -1
- package/core/mixins/form-associated-radio-button-mixin.d.ts +35 -0
- package/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -0
- package/core/mixins.d.ts +1 -0
- package/core/mixins.d.ts.map +1 -1
- package/core/mixins.js +347 -220
- package/core/styles/_index.scss +1 -0
- package/core/styles/core.scss +148 -0
- package/core/styles/image.scss +66 -0
- package/core/styles/mixins/animation.scss +2 -4
- package/core/styles/mixins/buttons.scss +7 -4
- package/core/styles/mixins/card.scss +1 -1
- package/core/styles/mixins/chip.scss +35 -35
- package/core/styles/mixins/image.scss +34 -0
- package/core/styles/mixins/overlay.scss +1 -1
- package/core/styles/mixins/panel.scss +1 -1
- package/core/styles/standard-theme.scss +1 -0
- package/core/styles/table.scss +4 -0
- package/core/testing/event-spy.d.ts +2 -1
- package/core/testing/event-spy.d.ts.map +1 -1
- package/core/testing.d.ts +0 -1
- package/core/testing.d.ts.map +1 -1
- package/core/testing.js +48 -57
- package/core.css +112 -0
- package/custom-elements.json +25950 -21681
- package/datepicker/common/datepicker-button.d.ts +3 -5
- package/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/datepicker/common.js +30 -29
- package/datepicker/datepicker/datepicker.d.ts +25 -72
- package/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/datepicker/datepicker-next-day/datepicker-next-day.d.ts +1 -3
- package/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
- package/datepicker/datepicker-next-day.js +10 -12
- package/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts +1 -3
- package/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
- package/datepicker/datepicker-previous-day.js +11 -13
- package/datepicker/datepicker.js +129 -157
- package/development/accordion/accordion.d.ts +4 -1
- package/development/accordion/accordion.d.ts.map +1 -1
- package/development/accordion.js +16 -5
- package/development/action-group/action-group.d.ts +6 -4
- package/development/action-group/action-group.d.ts.map +1 -1
- package/development/action-group.js +10 -7
- package/development/alert/alert/alert.d.ts +7 -23
- package/development/alert/alert/alert.d.ts.map +1 -1
- package/development/alert/alert-group/alert-group.d.ts +0 -4
- package/development/alert/alert-group/alert-group.d.ts.map +1 -1
- package/development/alert/alert-group.js +10 -12
- package/development/alert/alert.js +38 -122
- package/development/autocomplete/autocomplete-base-element.d.ts +7 -6
- package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/development/autocomplete/autocomplete.d.ts +0 -1
- package/development/autocomplete/autocomplete.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts +0 -1
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-button.js +6 -6
- package/development/autocomplete-grid/autocomplete-grid.js +1 -7
- package/development/autocomplete.js +23 -19
- package/development/button/accent-button/accent-button.d.ts +19 -0
- package/development/button/accent-button/accent-button.d.ts.map +1 -0
- package/development/button/accent-button-link/accent-button-link.d.ts +19 -0
- package/development/button/accent-button-link/accent-button-link.d.ts.map +1 -0
- package/development/button/accent-button-link.d.ts +2 -0
- package/development/button/accent-button-link.d.ts.map +1 -0
- package/development/button/accent-button-link.js +25 -0
- package/development/button/accent-button-static/accent-button-static.d.ts +19 -0
- package/development/button/accent-button-static/accent-button-static.d.ts.map +1 -0
- package/development/button/accent-button-static.d.ts +2 -0
- package/development/button/accent-button-static.d.ts.map +1 -0
- package/development/button/accent-button-static.js +25 -0
- package/development/button/accent-button.d.ts +2 -0
- package/development/button/accent-button.d.ts.map +1 -0
- package/development/button/accent-button.js +25 -0
- package/development/button/common/button-common.d.ts.map +1 -1
- package/development/button/common.d.ts.map +1 -1
- package/development/button/common.js +20 -16
- package/development/button/mini-button/mini-button.d.ts +4 -3
- package/development/button/mini-button/mini-button.d.ts.map +1 -1
- package/development/button/mini-button-group/mini-button-group.d.ts +4 -1
- package/development/button/mini-button-group/mini-button-group.d.ts.map +1 -1
- package/development/button/mini-button-group.js +7 -3
- package/development/button/mini-button.d.ts +0 -1
- package/development/button/mini-button.d.ts.map +1 -1
- package/development/button/mini-button.js +14 -32
- package/development/button.d.ts +3 -3
- package/development/button.d.ts.map +1 -1
- package/development/button.js +3 -3
- package/development/calendar.js +1 -1
- package/development/card/card/card.d.ts +4 -1
- package/development/card/card/card.d.ts.map +1 -1
- package/development/card/card.js +8 -4
- package/development/checkbox/checkbox/checkbox.d.ts +4 -6
- package/development/checkbox/checkbox/checkbox.d.ts.map +1 -1
- package/development/checkbox/checkbox-group/checkbox-group.d.ts +4 -1
- package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/development/checkbox/checkbox-group.js +7 -3
- package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +4 -4
- package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
- package/development/checkbox/checkbox-panel.js +7 -4
- package/development/checkbox/checkbox.js +8 -6
- package/development/{chip/chip.d.ts → chip-label/chip-label.d.ts} +4 -4
- package/development/chip-label/chip-label.d.ts.map +1 -0
- package/development/chip-label.d.ts +2 -0
- package/development/chip-label.d.ts.map +1 -0
- package/development/{chip.js → chip-label.js} +26 -26
- package/development/clock.js +1 -1
- package/development/container/container.js +8 -12
- package/development/container/sticky-bar/sticky-bar.d.ts +1 -0
- package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
- package/development/container/sticky-bar.js +18 -10
- package/development/core/base-elements/button-base-element.d.ts +27 -18
- package/development/core/base-elements/button-base-element.d.ts.map +1 -1
- package/development/core/base-elements/open-close-base-element.d.ts.map +1 -1
- package/development/core/base-elements.js +66 -74
- package/development/core/datetime/date-adapter.d.ts +2 -1
- package/development/core/datetime/date-adapter.d.ts.map +1 -1
- package/development/core/datetime/native-date-adapter.d.ts +1 -1
- package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
- package/development/core/datetime.js +4 -3
- package/development/core/dom/animation.d.ts +2 -0
- package/development/core/dom/animation.d.ts.map +1 -0
- package/development/core/dom/lean-context.d.ts +5 -0
- package/development/core/dom/lean-context.d.ts.map +1 -0
- package/development/core/dom.d.ts +2 -2
- package/development/core/dom.d.ts.map +1 -1
- package/development/core/dom.js +13 -21
- package/development/core/eventing/form-element-handlers.d.ts +0 -7
- package/development/core/eventing/form-element-handlers.d.ts.map +1 -1
- package/development/core/eventing.d.ts +0 -1
- package/development/core/eventing.d.ts.map +1 -1
- package/development/core/eventing.js +1 -25
- package/development/core/i18n/i18n.d.ts +4 -2
- package/development/core/i18n/i18n.d.ts.map +1 -1
- package/development/core/i18n.js +27 -23
- package/development/core/mixins/disabled-mixin.d.ts +2 -7
- package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
- package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
- package/development/core/mixins/form-associated-mixin.d.ts +1 -1
- package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
- package/development/core/mixins/form-associated-radio-button-mixin.d.ts +35 -0
- package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -0
- package/development/core/mixins.d.ts +1 -0
- package/development/core/mixins.d.ts.map +1 -1
- package/development/core/mixins.js +221 -30
- package/development/core/testing/event-spy.d.ts +2 -1
- package/development/core/testing/event-spy.d.ts.map +1 -1
- package/development/core/testing.d.ts +0 -1
- package/development/core/testing.d.ts.map +1 -1
- package/development/core/testing.js +4 -15
- package/development/datepicker/common/datepicker-button.d.ts +3 -5
- package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/development/datepicker/common.js +13 -12
- package/development/datepicker/datepicker/datepicker.d.ts +25 -72
- package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/development/datepicker/datepicker-next-day/datepicker-next-day.d.ts +1 -3
- package/development/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
- package/development/datepicker/datepicker-next-day.js +9 -15
- package/development/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts +1 -3
- package/development/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
- package/development/datepicker/datepicker-previous-day.js +9 -15
- package/development/datepicker/datepicker.js +74 -115
- package/development/dialog/dialog/dialog.d.ts +3 -0
- package/development/dialog/dialog/dialog.d.ts.map +1 -1
- package/development/dialog/dialog-title.js +2 -1
- package/development/dialog/dialog.js +46 -39
- package/development/expansion-panel/expansion-panel/expansion-panel.d.ts +7 -1
- package/development/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
- package/development/expansion-panel/expansion-panel-header.js +3 -3
- package/development/expansion-panel/expansion-panel.js +32 -17
- package/development/file-selector/common/file-selector-common.d.ts +23 -0
- package/development/file-selector/common/file-selector-common.d.ts.map +1 -0
- package/development/file-selector/common.d.ts +2 -0
- package/development/file-selector/common.d.ts.map +1 -0
- package/development/file-selector/common.js +382 -0
- package/development/file-selector/file-selector/file-selector.d.ts +24 -0
- package/development/file-selector/file-selector/file-selector.d.ts.map +1 -0
- package/development/file-selector/file-selector-dropzone/file-selector-dropzone.d.ts +33 -0
- package/development/file-selector/file-selector-dropzone/file-selector-dropzone.d.ts.map +1 -0
- package/development/file-selector/file-selector-dropzone.d.ts +2 -0
- package/development/file-selector/file-selector-dropzone.d.ts.map +1 -0
- package/development/file-selector/file-selector-dropzone.js +181 -0
- package/development/file-selector/file-selector.d.ts +1 -87
- package/development/file-selector/file-selector.d.ts.map +1 -1
- package/development/file-selector/file-selector.js +52 -0
- package/development/file-selector.d.ts +2 -0
- package/development/file-selector.d.ts.map +1 -1
- package/development/file-selector.js +4 -552
- package/development/flip-card/flip-card-details.js +1 -1
- package/development/flip-card/flip-card-summary.js +3 -11
- package/development/flip-card/flip-card.js +6 -6
- package/development/form-field/form-field/form-field.d.ts +5 -10
- package/development/form-field/form-field/form-field.d.ts.map +1 -1
- package/development/form-field/form-field-clear.js +6 -6
- package/development/form-field/form-field.js +32 -40
- package/development/header/common.js +2 -2
- package/development/header/header/header.d.ts +5 -3
- package/development/header/header/header.d.ts.map +1 -1
- package/development/header/header.js +15 -20
- package/development/image/image.d.ts +0 -30
- package/development/image/image.d.ts.map +1 -1
- package/development/image.js +62 -273
- package/development/journey-header/journey-header.d.ts +4 -1
- package/development/journey-header/journey-header.d.ts.map +1 -1
- package/development/journey-header.js +7 -3
- package/development/lead-container.js +2 -10
- package/development/link/common/link-common.d.ts.map +1 -1
- package/development/link/common.js +9 -8
- package/development/link-list/common/link-list-base.d.ts +1 -0
- package/development/link-list/common/link-list-base.d.ts.map +1 -1
- package/development/link-list/common.js +4 -2
- package/development/link-list/link-list-anchor.js +4 -4
- package/development/loading-indicator/loading-indicator.d.ts +1 -3
- package/development/loading-indicator/loading-indicator.d.ts.map +1 -1
- package/development/loading-indicator-circle/loading-indicator-circle.d.ts +16 -0
- package/development/loading-indicator-circle/loading-indicator-circle.d.ts.map +1 -0
- package/development/loading-indicator-circle.d.ts +2 -0
- package/development/loading-indicator-circle.d.ts.map +1 -0
- package/development/loading-indicator-circle.js +146 -0
- package/development/loading-indicator.js +81 -182
- package/development/map-container/map-container.d.ts.map +1 -1
- package/development/map-container.js +5 -5
- package/development/menu/common.js +5 -5
- package/development/menu/menu/menu.d.ts +3 -0
- package/development/menu/menu/menu.d.ts.map +1 -1
- package/development/menu/menu.js +39 -24
- package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
- package/development/navigation/common.js +9 -5
- package/development/navigation/navigation/navigation.d.ts +3 -0
- package/development/navigation/navigation/navigation.d.ts.map +1 -1
- package/development/navigation/navigation-list/navigation-list.d.ts.map +1 -1
- package/development/navigation/navigation-list.js +3 -2
- package/development/navigation/navigation-marker/navigation-marker.d.ts +2 -1
- package/development/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
- package/development/navigation/navigation-marker.js +6 -4
- package/development/navigation/navigation-section/navigation-section.d.ts +3 -0
- package/development/navigation/navigation-section/navigation-section.d.ts.map +1 -1
- package/development/navigation/navigation-section.js +38 -22
- package/development/navigation/navigation.js +42 -27
- package/development/notification/notification.d.ts +6 -2
- package/development/notification/notification.d.ts.map +1 -1
- package/development/notification.js +27 -21
- package/development/option/option/option-base-element.d.ts +0 -7
- package/development/option/option/option-base-element.d.ts.map +1 -1
- package/development/option/option.js +5 -26
- package/development/overlay/overlay-base-element.d.ts +2 -0
- package/development/overlay/overlay-base-element.d.ts.map +1 -1
- package/development/overlay/overlay.d.ts +3 -0
- package/development/overlay/overlay.d.ts.map +1 -1
- package/development/overlay.js +43 -31
- package/development/paginator/common/paginator-common.d.ts.map +1 -1
- package/development/paginator/common.js +7 -3
- package/development/paginator/paginator.js +1 -1
- package/development/popover/popover/popover.d.ts +3 -0
- package/development/popover/popover/popover.d.ts.map +1 -1
- package/development/popover/popover-trigger.js +9 -9
- package/development/popover/popover.js +41 -26
- package/development/radio-button/common/radio-button-common.d.ts +3 -10
- package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
- package/development/radio-button/common.js +44 -121
- package/development/radio-button/radio-button/radio-button.d.ts +9 -1
- package/development/radio-button/radio-button/radio-button.d.ts.map +1 -1
- package/development/radio-button/radio-button-group/radio-button-group.d.ts +19 -26
- package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/development/radio-button/radio-button-group.js +87 -123
- package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +20 -2
- package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
- package/development/radio-button/radio-button-panel.js +35 -15
- package/development/radio-button/radio-button.js +11 -15
- package/development/select/select.d.ts +3 -9
- package/development/select/select.d.ts.map +1 -1
- package/development/select.js +27 -25
- package/development/selection-expansion-panel/selection-expansion-panel.d.ts +4 -1
- package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
- package/development/selection-expansion-panel.js +28 -16
- package/development/skiplink-list/skiplink-list.d.ts.map +1 -1
- package/development/skiplink-list.js +3 -2
- package/development/slider/slider.d.ts +0 -1
- package/development/slider/slider.d.ts.map +1 -1
- package/development/slider.js +2 -2
- package/development/stepper/step-label/step-label.d.ts +0 -2
- package/development/stepper/step-label/step-label.d.ts.map +1 -1
- package/development/stepper/step-label.js +10 -11
- package/development/stepper/step.js +1 -1
- package/development/stepper/stepper/stepper.d.ts +4 -1
- package/development/stepper/stepper/stepper.d.ts.map +1 -1
- package/development/stepper/stepper.js +9 -7
- package/development/tabs/tab-group/tab-group.d.ts +4 -1
- package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
- package/development/tabs/tab-group.js +8 -4
- package/development/tabs/tab-label.js +1 -1
- package/development/tag/tag/tag.d.ts +4 -1
- package/development/tag/tag/tag.d.ts.map +1 -1
- package/development/tag/tag-group/tag-group.d.ts +5 -2
- package/development/tag/tag-group/tag-group.d.ts.map +1 -1
- package/development/tag/tag-group.js +7 -4
- package/development/tag/tag.js +16 -12
- package/development/teaser/teaser.d.ts +2 -2
- package/development/teaser/teaser.d.ts.map +1 -1
- package/development/teaser-hero/teaser-hero.d.ts +2 -6
- package/development/teaser-hero/teaser-hero.d.ts.map +1 -1
- package/development/teaser-hero.js +9 -60
- package/development/teaser-product/common.js +7 -14
- package/development/teaser-product/teaser-product.js +1 -21
- package/development/teaser.js +12 -31
- package/development/time-input/time-input.d.ts +3 -6
- package/development/time-input/time-input.d.ts.map +1 -1
- package/development/time-input.js +33 -27
- package/development/toast/toast.d.ts +3 -0
- package/development/toast/toast.d.ts.map +1 -1
- package/development/toast.js +27 -13
- package/development/toggle/toggle/toggle.d.ts +4 -8
- package/development/toggle/toggle/toggle.d.ts.map +1 -1
- package/development/toggle/toggle.js +9 -12
- package/development/toggle-check/toggle-check.d.ts +4 -6
- package/development/toggle-check/toggle-check.d.ts.map +1 -1
- package/development/toggle-check.js +9 -7
- package/development/train/train/train.d.ts.map +1 -1
- package/development/train/train-blocked-passage.js +2 -2
- package/development/train/train-formation/train-formation.d.ts +3 -11
- package/development/train/train-formation/train-formation.d.ts.map +1 -1
- package/development/train/train-formation.js +43 -74
- package/development/train/train-wagon/train-wagon.d.ts +11 -8
- package/development/train/train-wagon/train-wagon.d.ts.map +1 -1
- package/development/train/train-wagon.js +149 -124
- package/development/train/train.js +35 -112
- package/development/visual-checkbox/visual-checkbox.d.ts +4 -1
- package/development/visual-checkbox/visual-checkbox.d.ts.map +1 -1
- package/development/visual-checkbox.js +7 -3
- package/dialog/dialog/dialog.d.ts +3 -0
- package/dialog/dialog/dialog.d.ts.map +1 -1
- package/dialog/dialog-title.js +9 -9
- package/dialog/dialog.js +56 -51
- package/expansion-panel/expansion-panel/expansion-panel.d.ts +7 -1
- package/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
- package/expansion-panel/expansion-panel-header.js +1 -1
- package/expansion-panel/expansion-panel.js +41 -28
- package/file-selector/common/file-selector-common.d.ts +23 -0
- package/file-selector/common/file-selector-common.d.ts.map +1 -0
- package/file-selector/common.d.ts +2 -0
- package/file-selector/common.d.ts.map +1 -0
- package/file-selector/common.js +210 -0
- package/file-selector/file-selector/file-selector.d.ts +24 -0
- package/file-selector/file-selector/file-selector.d.ts.map +1 -0
- package/file-selector/file-selector-dropzone/file-selector-dropzone.d.ts +33 -0
- package/file-selector/file-selector-dropzone/file-selector-dropzone.d.ts.map +1 -0
- package/file-selector/file-selector-dropzone.d.ts +2 -0
- package/file-selector/file-selector-dropzone.d.ts.map +1 -0
- package/file-selector/file-selector-dropzone.js +97 -0
- package/file-selector/file-selector.d.ts +1 -87
- package/file-selector/file-selector.d.ts.map +1 -1
- package/file-selector/file-selector.js +44 -0
- package/file-selector.d.ts +2 -0
- package/file-selector.d.ts.map +1 -1
- package/file-selector.js +3 -301
- package/flip-card/flip-card-details.js +5 -5
- package/flip-card/flip-card-summary.js +7 -7
- package/flip-card/flip-card.js +9 -9
- package/form-field/form-field/form-field.d.ts +5 -10
- package/form-field/form-field/form-field.d.ts.map +1 -1
- package/form-field/form-field-clear.js +12 -12
- package/form-field/form-field.js +143 -141
- package/header/common.js +10 -10
- package/header/header/header.d.ts +5 -3
- package/header/header/header.d.ts.map +1 -1
- package/header/header.js +28 -31
- package/image/image.d.ts +0 -30
- package/image/image.d.ts.map +1 -1
- package/image.js +187 -281
- package/index.d.ts +13 -9
- package/index.js +13 -9
- package/journey-header/journey-header.d.ts +4 -1
- package/journey-header/journey-header.d.ts.map +1 -1
- package/journey-header.js +29 -25
- package/lead-container.js +5 -5
- package/link/common/link-common.d.ts.map +1 -1
- package/link/common.js +18 -16
- package/link-list/common/link-list-base.d.ts +1 -0
- package/link-list/common/link-list-base.d.ts.map +1 -1
- package/link-list/common.js +11 -9
- package/link-list/link-list-anchor.js +8 -8
- package/loading-indicator/loading-indicator.d.ts +1 -3
- package/loading-indicator/loading-indicator.d.ts.map +1 -1
- package/loading-indicator-circle/loading-indicator-circle.d.ts +16 -0
- package/loading-indicator-circle/loading-indicator-circle.d.ts.map +1 -0
- package/loading-indicator-circle.d.ts +2 -0
- package/loading-indicator-circle.d.ts.map +1 -0
- package/loading-indicator-circle.js +46 -0
- package/loading-indicator.js +41 -51
- package/map-container/map-container.d.ts.map +1 -1
- package/map-container.js +7 -7
- package/menu/common.js +8 -8
- package/menu/menu/menu.d.ts +3 -0
- package/menu/menu/menu.d.ts.map +1 -1
- package/menu/menu.js +52 -43
- package/navigation/common/navigation-action-common.d.ts.map +1 -1
- package/navigation/common.js +10 -6
- package/navigation/navigation/navigation.d.ts +3 -0
- package/navigation/navigation/navigation.d.ts.map +1 -1
- package/navigation/navigation-list/navigation-list.d.ts.map +1 -1
- package/navigation/navigation-list.js +17 -16
- package/navigation/navigation-marker/navigation-marker.d.ts +2 -1
- package/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
- package/navigation/navigation-marker.js +12 -10
- package/navigation/navigation-section/navigation-section.d.ts +3 -0
- package/navigation/navigation-section/navigation-section.d.ts.map +1 -1
- package/navigation/navigation-section.js +46 -37
- package/navigation/navigation.js +30 -21
- package/notification/notification.d.ts +6 -2
- package/notification/notification.d.ts.map +1 -1
- package/notification.js +55 -51
- package/option/option/option-base-element.d.ts +0 -7
- package/option/option/option-base-element.d.ts.map +1 -1
- package/option/option.js +110 -125
- package/overlay/overlay-base-element.d.ts +2 -0
- package/overlay/overlay-base-element.d.ts.map +1 -1
- package/overlay/overlay.d.ts +3 -0
- package/overlay/overlay.d.ts.map +1 -1
- package/overlay.js +83 -77
- package/package.json +40 -25
- package/paginator/common/paginator-common.d.ts.map +1 -1
- package/paginator/common.js +21 -17
- package/paginator/paginator.js +1 -1
- package/popover/popover/popover.d.ts +3 -0
- package/popover/popover/popover.d.ts.map +1 -1
- package/popover/popover-trigger.js +6 -6
- package/popover/popover.js +114 -109
- package/radio-button/common/radio-button-common.d.ts +3 -10
- package/radio-button/common/radio-button-common.d.ts.map +1 -1
- package/radio-button/common.js +43 -90
- package/radio-button/radio-button/radio-button.d.ts +9 -1
- package/radio-button/radio-button/radio-button.d.ts.map +1 -1
- package/radio-button/radio-button-group/radio-button-group.d.ts +19 -26
- package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/radio-button/radio-button-group.js +112 -131
- package/radio-button/radio-button-panel/radio-button-panel.d.ts +20 -2
- package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
- package/radio-button/radio-button-panel.js +56 -44
- package/radio-button/radio-button.js +34 -38
- package/select/select.d.ts +3 -9
- package/select/select.d.ts.map +1 -1
- package/select.js +65 -66
- package/selection-expansion-panel/selection-expansion-panel.d.ts +4 -1
- package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
- package/selection-expansion-panel.js +41 -31
- package/skiplink-list/skiplink-list.d.ts.map +1 -1
- package/skiplink-list.js +14 -13
- package/slider/slider.d.ts +0 -1
- package/slider/slider.d.ts.map +1 -1
- package/slider.js +1 -1
- package/standard-theme.css +237 -8
- package/stepper/step-label/step-label.d.ts +0 -2
- package/stepper/step-label/step-label.d.ts.map +1 -1
- package/stepper/step-label.js +6 -6
- package/stepper/step.js +4 -4
- package/stepper/stepper/stepper.d.ts +4 -1
- package/stepper/stepper/stepper.d.ts.map +1 -1
- package/stepper/stepper.js +22 -19
- package/table.css +15 -0
- package/tabs/tab-group/tab-group.d.ts +4 -1
- package/tabs/tab-group/tab-group.d.ts.map +1 -1
- package/tabs/tab-group.js +24 -20
- package/tabs/tab-label.js +1 -1
- package/tag/tag/tag.d.ts +4 -1
- package/tag/tag/tag.d.ts.map +1 -1
- package/tag/tag-group/tag-group.d.ts +5 -2
- package/tag/tag-group/tag-group.d.ts.map +1 -1
- package/tag/tag-group.js +13 -10
- package/tag/tag.js +25 -21
- package/teaser/teaser.d.ts +2 -2
- package/teaser/teaser.d.ts.map +1 -1
- package/teaser-hero/teaser-hero.d.ts +2 -6
- package/teaser-hero/teaser-hero.d.ts.map +1 -1
- package/teaser-hero.js +32 -57
- package/teaser-product/common.js +1 -1
- package/teaser-product/teaser-product.js +13 -13
- package/teaser.js +28 -28
- package/time-input/time-input.d.ts +3 -6
- package/time-input/time-input.d.ts.map +1 -1
- package/time-input.js +56 -55
- package/toast/toast.d.ts +3 -0
- package/toast/toast.d.ts.map +1 -1
- package/toast.js +51 -42
- package/toggle/toggle/toggle.d.ts +4 -8
- package/toggle/toggle/toggle.d.ts.map +1 -1
- package/toggle/toggle.js +48 -48
- package/toggle-check/toggle-check.d.ts +4 -6
- package/toggle-check/toggle-check.d.ts.map +1 -1
- package/toggle-check.js +23 -21
- package/train/train/train.d.ts.map +1 -1
- package/train/train-blocked-passage.js +1 -1
- package/train/train-formation/train-formation.d.ts +3 -11
- package/train/train-formation/train-formation.d.ts.map +1 -1
- package/train/train-formation.js +47 -65
- package/train/train-wagon/train-wagon.d.ts +11 -8
- package/train/train-wagon/train-wagon.d.ts.map +1 -1
- package/train/train-wagon.js +123 -134
- package/train/train.js +74 -78
- package/visual-checkbox/visual-checkbox.d.ts +4 -1
- package/visual-checkbox/visual-checkbox.d.ts.map +1 -1
- package/visual-checkbox.js +21 -17
- package/button/mini-button/mini-button-base-element.d.ts +0 -8
- package/button/mini-button/mini-button-base-element.d.ts.map +0 -1
- package/button/tertiary-button/tertiary-button.d.ts +0 -19
- package/button/tertiary-button/tertiary-button.d.ts.map +0 -1
- package/button/tertiary-button-link/tertiary-button-link.d.ts +0 -19
- package/button/tertiary-button-link/tertiary-button-link.d.ts.map +0 -1
- package/button/tertiary-button-link.d.ts +0 -2
- package/button/tertiary-button-link.d.ts.map +0 -1
- package/button/tertiary-button-link.js +0 -17
- package/button/tertiary-button-static/tertiary-button-static.d.ts +0 -19
- package/button/tertiary-button-static/tertiary-button-static.d.ts.map +0 -1
- package/button/tertiary-button-static.d.ts +0 -2
- package/button/tertiary-button-static.d.ts.map +0 -1
- package/button/tertiary-button-static.js +0 -17
- package/button/tertiary-button.d.ts +0 -2
- package/button/tertiary-button.d.ts.map +0 -1
- package/button/tertiary-button.js +0 -17
- package/chip/chip.d.ts.map +0 -1
- package/chip.d.ts +0 -2
- package/chip.d.ts.map +0 -1
- package/chip.js +0 -54
- package/core/dom/get-document-writing-mode.d.ts +0 -5
- package/core/dom/get-document-writing-mode.d.ts.map +0 -1
- package/core/dom/ssr.d.ts +0 -13
- package/core/dom/ssr.d.ts.map +0 -1
- package/core/eventing/handler-repository.d.ts +0 -28
- package/core/eventing/handler-repository.d.ts.map +0 -1
- package/core/observers/intersection-observer.d.ts +0 -20
- package/core/observers/intersection-observer.d.ts.map +0 -1
- package/core/observers/mutation-observer.d.ts +0 -13
- package/core/observers/mutation-observer.d.ts.map +0 -1
- package/core/observers/resize-observer.d.ts +0 -16
- package/core/observers/resize-observer.d.ts.map +0 -1
- package/core/observers.d.ts +0 -4
- package/core/observers.d.ts.map +0 -1
- package/core/observers.js +0 -38
- package/core/testing/wait-for-event.d.ts +0 -2
- package/core/testing/wait-for-event.d.ts.map +0 -1
- package/development/button/mini-button/mini-button-base-element.d.ts +0 -8
- package/development/button/mini-button/mini-button-base-element.d.ts.map +0 -1
- package/development/button/tertiary-button/tertiary-button.d.ts +0 -19
- package/development/button/tertiary-button/tertiary-button.d.ts.map +0 -1
- package/development/button/tertiary-button-link/tertiary-button-link.d.ts +0 -19
- package/development/button/tertiary-button-link/tertiary-button-link.d.ts.map +0 -1
- package/development/button/tertiary-button-link.d.ts +0 -2
- package/development/button/tertiary-button-link.d.ts.map +0 -1
- package/development/button/tertiary-button-link.js +0 -25
- package/development/button/tertiary-button-static/tertiary-button-static.d.ts +0 -19
- package/development/button/tertiary-button-static/tertiary-button-static.d.ts.map +0 -1
- package/development/button/tertiary-button-static.d.ts +0 -2
- package/development/button/tertiary-button-static.d.ts.map +0 -1
- package/development/button/tertiary-button-static.js +0 -25
- package/development/button/tertiary-button.d.ts +0 -2
- package/development/button/tertiary-button.d.ts.map +0 -1
- package/development/button/tertiary-button.js +0 -25
- package/development/chip/chip.d.ts.map +0 -1
- package/development/chip.d.ts +0 -2
- package/development/chip.d.ts.map +0 -1
- package/development/core/dom/get-document-writing-mode.d.ts +0 -5
- package/development/core/dom/get-document-writing-mode.d.ts.map +0 -1
- package/development/core/dom/ssr.d.ts +0 -13
- package/development/core/dom/ssr.d.ts.map +0 -1
- package/development/core/eventing/handler-repository.d.ts +0 -28
- package/development/core/eventing/handler-repository.d.ts.map +0 -1
- package/development/core/observers/intersection-observer.d.ts +0 -20
- package/development/core/observers/intersection-observer.d.ts.map +0 -1
- package/development/core/observers/mutation-observer.d.ts +0 -13
- package/development/core/observers/mutation-observer.d.ts.map +0 -1
- package/development/core/observers/resize-observer.d.ts +0 -16
- package/development/core/observers/resize-observer.d.ts.map +0 -1
- package/development/core/observers.d.ts +0 -4
- package/development/core/observers.d.ts.map +0 -1
- package/development/core/observers.js +0 -39
- package/development/core/testing/wait-for-event.d.ts +0 -2
- package/development/core/testing/wait-for-event.d.ts.map +0 -1
|
@@ -13,7 +13,7 @@ import { SbbFocusHandler, IS_FOCUSABLE_QUERY, setModalityOnNextFocus, getFirstFo
|
|
|
13
13
|
import { SbbOpenCloseBaseElement } from "../core/base-elements.js";
|
|
14
14
|
import { SbbMediaQueryPointerCoarse, SbbLanguageController } from "../core/controllers.js";
|
|
15
15
|
import { forceType } from "../core/decorators.js";
|
|
16
|
-
import { findReferencedElement } from "../core/dom.js";
|
|
16
|
+
import { isZeroAnimationDuration, findReferencedElement } from "../core/dom.js";
|
|
17
17
|
import { EventEmitter, composedPathHasAttribute } from "../core/eventing.js";
|
|
18
18
|
import { i18nClosePopover } from "../core/i18n.js";
|
|
19
19
|
import { SbbHydrationMixin } from "../core/mixins.js";
|
|
@@ -38,7 +38,7 @@ const style = css`*,
|
|
|
38
38
|
--sbb-popover-background: var(--sbb-color-white);
|
|
39
39
|
--sbb-popover-color: var(--sbb-color-charcoal);
|
|
40
40
|
--sbb-popover-animation-duration: var(
|
|
41
|
-
--sbb-disable-animation-
|
|
41
|
+
--sbb-disable-animation-duration,
|
|
42
42
|
var(--sbb-animation-duration-4x)
|
|
43
43
|
);
|
|
44
44
|
--sbb-popover-animation-easing: ease-out;
|
|
@@ -221,8 +221,8 @@ let SbbPopoverElement = (() => {
|
|
|
221
221
|
__privateSet(this, _openDelay_accessor_storage, (__runInitializers(this, _hoverTrigger_extraInitializers), __runInitializers(this, _openDelay_initializers, 0)));
|
|
222
222
|
__privateSet(this, _closeDelay_accessor_storage, (__runInitializers(this, _openDelay_extraInitializers), __runInitializers(this, _closeDelay_initializers, 0)));
|
|
223
223
|
__privateSet(this, _accessibilityCloseLabel_accessor_storage, (__runInitializers(this, _closeDelay_extraInitializers), __runInitializers(this, _accessibilityCloseLabel_initializers, "")));
|
|
224
|
-
this.willClose = (__runInitializers(this, _accessibilityCloseLabel_extraInitializers), new EventEmitter(this, SbbPopoverElement2.events.willClose));
|
|
225
|
-
this.didClose = new EventEmitter(this, SbbPopoverElement2.events.didClose);
|
|
224
|
+
this.willClose = (__runInitializers(this, _accessibilityCloseLabel_extraInitializers), new EventEmitter(this, SbbPopoverElement2.events.willClose, { cancelable: true }));
|
|
225
|
+
this.didClose = new EventEmitter(this, SbbPopoverElement2.events.didClose, { cancelable: true });
|
|
226
226
|
this._skipCloseFocus = false;
|
|
227
227
|
this._focusHandler = new SbbFocusHandler();
|
|
228
228
|
this._hoverTrigger = false;
|
|
@@ -328,6 +328,9 @@ let SbbPopoverElement = (() => {
|
|
|
328
328
|
(_a2 = this._triggerElement) == null ? void 0 : _a2.setAttribute("aria-expanded", "true");
|
|
329
329
|
this._nextFocusedElement = void 0;
|
|
330
330
|
this._skipCloseFocus = false;
|
|
331
|
+
if (this._isZeroAnimationDuration()) {
|
|
332
|
+
this._handleOpening();
|
|
333
|
+
}
|
|
331
334
|
}
|
|
332
335
|
/** Closes the popover. */
|
|
333
336
|
close(target) {
|
|
@@ -342,6 +345,36 @@ let SbbPopoverElement = (() => {
|
|
|
342
345
|
this.state = "closing";
|
|
343
346
|
this.inert = true;
|
|
344
347
|
(_a2 = this._triggerElement) == null ? void 0 : _a2.setAttribute("aria-expanded", "false");
|
|
348
|
+
if (this._isZeroAnimationDuration()) {
|
|
349
|
+
this._handleClosing();
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
_isZeroAnimationDuration() {
|
|
353
|
+
return isZeroAnimationDuration(this, "--sbb-popover-animation-duration");
|
|
354
|
+
}
|
|
355
|
+
_handleClosing() {
|
|
356
|
+
var _a2, _b, _c, _d;
|
|
357
|
+
this.state = "closed";
|
|
358
|
+
(_b = (_a2 = this._overlay) == null ? void 0 : _a2.firstElementChild) == null ? void 0 : _b.scrollTo(0, 0);
|
|
359
|
+
(_c = this._overlay) == null ? void 0 : _c.removeAttribute("tabindex");
|
|
360
|
+
if (!this._skipCloseFocus) {
|
|
361
|
+
const elementToFocus = this._nextFocusedElement || this._triggerElement;
|
|
362
|
+
setModalityOnNextFocus(elementToFocus);
|
|
363
|
+
elementToFocus == null ? void 0 : elementToFocus.focus();
|
|
364
|
+
}
|
|
365
|
+
this.didClose.emit({ closeTarget: this._popoverCloseElement });
|
|
366
|
+
(_d = this._openStateController) == null ? void 0 : _d.abort();
|
|
367
|
+
this._focusHandler.disconnect();
|
|
368
|
+
}
|
|
369
|
+
_handleOpening() {
|
|
370
|
+
this.state = "opened";
|
|
371
|
+
this.didOpen.emit();
|
|
372
|
+
this.inert = false;
|
|
373
|
+
this._attachWindowEvents();
|
|
374
|
+
this._setPopoverFocus();
|
|
375
|
+
this._focusHandler.trap(this, {
|
|
376
|
+
postFilter: (el) => el !== this._overlay
|
|
377
|
+
});
|
|
345
378
|
}
|
|
346
379
|
// Closes the popover on "Esc" key pressed and traps focus within the popover.
|
|
347
380
|
_onKeydownEvent(event) {
|
|
@@ -459,28 +492,10 @@ let SbbPopoverElement = (() => {
|
|
|
459
492
|
// In rare cases it can be that the animationEnd event is triggered twice.
|
|
460
493
|
// To avoid entering a corrupt state, exit when state is not expected.
|
|
461
494
|
_onPopoverAnimationEnd(event) {
|
|
462
|
-
var _a2, _b, _c, _d;
|
|
463
495
|
if (event.animationName === "open" && this.state === "opening") {
|
|
464
|
-
this.
|
|
465
|
-
this.didOpen.emit();
|
|
466
|
-
this.inert = false;
|
|
467
|
-
this._attachWindowEvents();
|
|
468
|
-
this._setPopoverFocus();
|
|
469
|
-
this._focusHandler.trap(this, {
|
|
470
|
-
postFilter: (el) => el !== this._overlay
|
|
471
|
-
});
|
|
496
|
+
this._handleOpening();
|
|
472
497
|
} else if (event.animationName === "close" && this.state === "closing") {
|
|
473
|
-
this.
|
|
474
|
-
(_b = (_a2 = this._overlay) == null ? void 0 : _a2.firstElementChild) == null ? void 0 : _b.scrollTo(0, 0);
|
|
475
|
-
(_c = this._overlay) == null ? void 0 : _c.removeAttribute("tabindex");
|
|
476
|
-
if (!this._skipCloseFocus) {
|
|
477
|
-
const elementToFocus = this._nextFocusedElement || this._triggerElement;
|
|
478
|
-
setModalityOnNextFocus(elementToFocus);
|
|
479
|
-
elementToFocus == null ? void 0 : elementToFocus.focus();
|
|
480
|
-
}
|
|
481
|
-
this.didClose.emit({ closeTarget: this._popoverCloseElement });
|
|
482
|
-
(_d = this._openStateController) == null ? void 0 : _d.abort();
|
|
483
|
-
this._focusHandler.disconnect();
|
|
498
|
+
this._handleClosing();
|
|
484
499
|
}
|
|
485
500
|
}
|
|
486
501
|
// Set focus on the first focusable element.
|
|
@@ -540,7 +555,7 @@ let SbbPopoverElement = (() => {
|
|
|
540
555
|
return html`
|
|
541
556
|
<div class="sbb-popover__container">
|
|
542
557
|
<div
|
|
543
|
-
@animationend=${
|
|
558
|
+
@animationend=${this._onPopoverAnimationEnd}
|
|
544
559
|
class="sbb-popover"
|
|
545
560
|
role="tooltip"
|
|
546
561
|
${ref((el) => this._overlay = el)}
|
|
@@ -593,4 +608,4 @@ let SbbPopoverElement = (() => {
|
|
|
593
608
|
export {
|
|
594
609
|
SbbPopoverElement
|
|
595
610
|
};
|
|
596
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3BvcG92ZXIvcG9wb3Zlci9wb3BvdmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBpc1NlcnZlciwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5cbmltcG9ydCB7XG4gIGdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudCxcbiAgSVNfRk9DVVNBQkxFX1FVRVJZLFxuICBTYmJGb2N1c0hhbmRsZXIsXG4gIHNldE1vZGFsaXR5T25OZXh0Rm9jdXMsXG59IGZyb20gJy4uLy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJNZWRpYVF1ZXJ5UG9pbnRlckNvYXJzZSwgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgZmluZFJlZmVyZW5jZWRFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgY29tcG9zZWRQYXRoSGFzQXR0cmlidXRlLCBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IGkxOG5DbG9zZVBvcG92ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgeyBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7XG4gIGdldEVsZW1lbnRQb3NpdGlvbixcbiAgaXNFdmVudE9uRWxlbWVudCxcbiAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyxcbiAgc2V0QXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyxcbn0gZnJvbSAnLi4vLi4vY29yZS9vdmVybGF5LmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vcG9wb3Zlci5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uLy4uL2J1dHRvbi9zZWNvbmRhcnktYnV0dG9uLmpzJztcblxuY29uc3QgVkVSVElDQUxfT0ZGU0VUID0gMTY7XG5jb25zdCBIT1JJWk9OVEFMX09GRlNFVCA9IDMyO1xuXG5sZXQgbmV4dElkID0gMDtcblxuY29uc3QgcG9wb3ZlcnNSZWYgPSBuZXcgU2V0PFNiYlBvcG92ZXJFbGVtZW50PigpO1xuY29uc3QgcG9pbnRlckNvYXJzZSA9IGlzU2VydmVyID8gZmFsc2UgOiBtYXRjaE1lZGlhKFNiYk1lZGlhUXVlcnlQb2ludGVyQ29hcnNlKS5tYXRjaGVzO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGNvbnRleHR1YWwgaW5mb3JtYXRpb24gd2l0aGluIGEgcG9wb3Zlci5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IGludG8gdGhlIHBvcG92ZXIuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXBvcG92ZXJgIHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItcG9wb3ZlcmAgaXMgb3BlbmVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx7IGNsb3NlVGFyZ2V0OiBIVE1MRWxlbWVudCB9Pn0gd2lsbENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItcG9wb3ZlcmAgYmVnaW5zIHRoZSBjbG9zaW5nXG4gKiB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHsgY2xvc2VUYXJnZXQ6IEhUTUxFbGVtZW50IH0+fSBkaWRDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXBvcG92ZXJgIGlzIGNsb3NlZC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1wb3BvdmVyLXotaW5kZXg9dmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KV0gLSBUbyBzcGVjaWZ5IGEgY3VzdG9tIHN0YWNrIG9yZGVyLFxuICogdGhlIGB6LWluZGV4YCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyB0aGlzIENTUyB2YXJpYWJsZS4gVGhlIGRlZmF1bHQgYHotaW5kZXhgIG9mIHRoZVxuICogY29tcG9uZW50IGlzIHNldCB0byBgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KWAgd2l0aCBhIHZhbHVlIG9mIGAxMDAwYC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXBvcG92ZXInKVxuY2xhc3MgU2JiUG9wb3ZlckVsZW1lbnQgZXh0ZW5kcyBTYmJIeWRyYXRpb25NaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIHBvcG92ZXIgb3ZlcmxheS5cbiAgICogQWNjZXB0cyBib3RoIGEgc3RyaW5nIChpZCBvZiBhbiBlbGVtZW50KSBvciBhbiBIVE1MIGVsZW1lbnQuXG4gICAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKiogV2hldGhlciB0aGUgY2xvc2UgYnV0dG9uIHNob3VsZCBiZSBoaWRkZW4uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdoaWRlLWNsb3NlLWJ1dHRvbicsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGhpZGVDbG9zZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBwb3BvdmVyIHNob3VsZCBiZSB0cmlnZ2VyZWQgb24gaG92ZXIuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdob3Zlci10cmlnZ2VyJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgaG92ZXJUcmlnZ2VyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIE9wZW4gdGhlIHBvcG92ZXIgYWZ0ZXIgYSBjZXJ0YWluIGRlbGF5LiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnb3Blbi1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgYWNjZXNzb3Igb3BlbkRlbGF5OiBudW1iZXIgPSAwO1xuXG4gIC8qKiBDbG9zZSB0aGUgcG9wb3ZlciBhZnRlciBhIGNlcnRhaW4gZGVsYXkuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgYWNjZXNzb3IgY2xvc2VEZWxheTogbnVtYmVyID0gMDtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBjbG9zZSBidXR0b24gZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXBvcG92ZXJgIGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbENsb3NlOiBFdmVudEVtaXR0ZXI8eyBjbG9zZVRhcmdldD86IEhUTUxFbGVtZW50IH0+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYlBvcG92ZXJFbGVtZW50LmV2ZW50cy53aWxsQ2xvc2UsXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXBvcG92ZXJgIGlzIGNsb3NlZC4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGRpZENsb3NlOiBFdmVudEVtaXR0ZXI8eyBjbG9zZVRhcmdldD86IEhUTUxFbGVtZW50IH0+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYlBvcG92ZXJFbGVtZW50LmV2ZW50cy5kaWRDbG9zZSxcbiAgKTtcblxuICBwcml2YXRlIF9vdmVybGF5ITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50PzogSFRNTEVsZW1lbnQgfCBudWxsO1xuICAvLyBUaGUgZWxlbWVudCB3aGljaCBzaG91bGQgcmVjZWl2ZSBmb2N1cyBhZnRlciBjbG9zaW5nIGJhc2VkIG9uIHdoZXJlIGluIHRoZSBiYWNrZHJvcCB0aGUgdXNlciBjbGlja3MuXG4gIHByaXZhdGUgX25leHRGb2N1c2VkRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9za2lwQ2xvc2VGb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9wb3BvdmVyQ2xvc2VFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX2lzUG9pbnRlckRvd25FdmVudE9uUG9wb3Zlcj86IGJvb2xlYW47XG4gIHByaXZhdGUgX3BvcG92ZXJDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9vcGVuU3RhdGVDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9mb2N1c0hhbmRsZXIgPSBuZXcgU2JiRm9jdXNIYW5kbGVyKCk7XG4gIHByaXZhdGUgX2hvdmVyVHJpZ2dlciA9IGZhbHNlO1xuICBwcml2YXRlIF9vcGVuVGltZW91dD86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuICBwcml2YXRlIF9jbG9zZVRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIC8qKiBPcGVucyB0aGUgcG9wb3ZlciBvbiB0cmlnZ2VyIGNsaWNrLiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAoKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnICYmIHRoaXMuc3RhdGUgIT09ICdjbG9zaW5nJykgfHwgIXRoaXMuX292ZXJsYXkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMud2lsbE9wZW4uZW1pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2xvc2UgdGhlIG90aGVyIHBvcG92ZXJzXG4gICAgZm9yIChjb25zdCBwb3BvdmVyIG9mIEFycmF5LmZyb20ocG9wb3ZlcnNSZWYpKSB7XG4gICAgICBjb25zdCBzdGF0ZSA9IHBvcG92ZXIuZ2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJykgYXMgU2JiT3BlbmVkQ2xvc2VkU3RhdGU7XG4gICAgICBpZiAoc3RhdGUgJiYgKHN0YXRlID09PSAnb3BlbmVkJyB8fCBzdGF0ZSA9PT0gJ29wZW5pbmcnKSkge1xuICAgICAgICBwb3BvdmVyLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLmluZXJ0ID0gdHJ1ZTtcbiAgICB0aGlzLl9zZXRQb3BvdmVyUG9zaXRpb24oKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ3RydWUnKTtcbiAgICB0aGlzLl9uZXh0Rm9jdXNlZEVsZW1lbnQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5fc2tpcENsb3NlRm9jdXMgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKiBDbG9zZXMgdGhlIHBvcG92ZXIuICovXG4gIHB1YmxpYyBjbG9zZSh0YXJnZXQ/OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJyAmJiB0aGlzLnN0YXRlICE9PSAnb3BlbmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9wb3BvdmVyQ2xvc2VFbGVtZW50ID0gdGFyZ2V0O1xuICAgIGlmICghdGhpcy53aWxsQ2xvc2UuZW1pdCh7IGNsb3NlVGFyZ2V0OiB0YXJnZXQgfSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NpbmcnO1xuICAgIHRoaXMuaW5lcnQgPSB0cnVlO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKTtcbiAgfVxuXG4gIC8vIENsb3NlcyB0aGUgcG9wb3ZlciBvbiBcIkVzY1wiIGtleSBwcmVzc2VkIGFuZCB0cmFwcyBmb2N1cyB3aXRoaW4gdGhlIHBvcG92ZXIuXG4gIHByaXZhdGUgX29uS2V5ZG93bkV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBpZiAoIXRoaXMuaWQpIHtcbiAgICAgIHRoaXMuaWQgPSB0aGlzLmlkIHx8IGBzYmItcG9wb3Zlci0keysrbmV4dElkfWA7XG4gICAgfVxuXG4gICAgLy8gVmFsaWRhdGUgdHJpZ2dlciBlbGVtZW50IGFuZCBhdHRhY2ggZXZlbnQgbGlzdGVuZXJzXG4gICAgdGhpcy5fY29uZmlndXJlKCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHBvcG92ZXJzUmVmLmFkZCh0aGlzIGFzIFNiYlBvcG92ZXJFbGVtZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygndHJpZ2dlcicpICYmIHRoaXMudHJpZ2dlciAhPT0gY2hhbmdlZFByb3BlcnRpZXMuZ2V0KCd0cmlnZ2VyJykpIHtcbiAgICAgIHRoaXMuX3BvcG92ZXJDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZSgpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2hvdmVyVHJpZ2dlcicpKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmUoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAodGhpcy5faG92ZXJUcmlnZ2VyKSB7XG4gICAgICB0aGlzLl9vdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PiB0aGlzLl9vbk92ZXJsYXlNb3VzZUVudGVyKCkpO1xuICAgICAgdGhpcy5fb3ZlcmxheS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKCkgPT4gdGhpcy5fb25PdmVybGF5TW91c2VMZWF2ZSgpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9wb3BvdmVyQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX2ZvY3VzSGFuZGxlci5kaXNjb25uZWN0KCk7XG4gICAgcG9wb3ZlcnNSZWYuZGVsZXRlKHRoaXMgYXMgU2JiUG9wb3ZlckVsZW1lbnQpO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHRyaWdnZXIgaXMgdmFsaWQgYW5kIGF0dGFjaCBjbGljayBldmVudCBsaXN0ZW5lcnMuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZSgpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLl9jb25maWd1cmUoKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyh0aGlzLl90cmlnZ2VyRWxlbWVudCk7XG5cbiAgICBpZiAoIXRoaXMudHJpZ2dlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gZmluZFJlZmVyZW5jZWRFbGVtZW50KHRoaXMudHJpZ2dlcik7XG5cbiAgICBpZiAoIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2V0QXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyh0aGlzLl90cmlnZ2VyRWxlbWVudCwgJ2RpYWxvZycsIHRoaXMuaWQsIHRoaXMuc3RhdGUpO1xuXG4gICAgLy8gQ2hlY2sgd2hldGhlciB0aGUgdHJpZ2dlciBjYW4gYmUgaG92ZXJlZC4gU29tZSBkZXZpY2VzIG1pZ2h0IGludGVycHJldCB0aGUgbWVkaWEgcXVlcnkgKGhvdmVyOiBob3ZlcikgZGlmZmVyZW50bHksXG4gICAgLy8gYW5kIG5vdCByZXNwZWN0IHRoZSBmYWxsYmFjayBtZWNoYW5pc20gb24gdGhlIGNsaWNrLiBUaGVyZWZvcmUsIHRoZSBmb2xsb3dpbmcgaXMgcHJlZmVycmVkIHRvIGlkZW50aWZ5XG4gICAgLy8gYWxsIG5vbi10b3VjaHNjcmVlbiBkZXZpY2VzLlxuICAgIHRoaXMuX2hvdmVyVHJpZ2dlciA9IHRoaXMuaG92ZXJUcmlnZ2VyICYmICFwb2ludGVyQ29hcnNlO1xuXG4gICAgdGhpcy5fcG9wb3ZlckNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgY29uc3QgeyBzaWduYWwgfSA9ICh0aGlzLl9wb3BvdmVyQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKSk7XG4gICAgaWYgKHRoaXMuX2hvdmVyVHJpZ2dlcikge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuX29uVHJpZ2dlck1vdXNlRW50ZXIsIHsgc2lnbmFsIH0pO1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuX29uVHJpZ2dlck1vdXNlTGVhdmUsIHsgc2lnbmFsIH0pO1xuXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAna2V5ZG93bicsXG4gICAgICAgIChldnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoZXZ0LmNvZGUgPT09ICdTcGFjZScgfHwgZXZ0LmNvZGUgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBzaWduYWwgfSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdjbGljaycsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ2Nsb3NlZCcpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBzaWduYWwgfSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoV2luZG93RXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4gdGhpcy5fc2V0UG9wb3ZlclBvc2l0aW9uKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB0aGlzLl9zZXRQb3BvdmVyUG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX29uS2V5ZG93bkV2ZW50KGV2ZW50KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIC8vIENsb3NlIHBvcG92ZXIgb24gYmFja2Ryb3AgY2xpY2tcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCB0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCB0aGlzLl9jbG9zZU9uQmFja2Ryb3BDbGljaywge1xuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIENsb3NlIHRoZSBwb3BvdmVyIG9uIGNsaWNrIG9mIGFueSBlbGVtZW50IHRoYXQgaGFzIHRoZSAnc2JiLXBvcG92ZXItY2xvc2UnIGF0dHJpYnV0ZS5cbiAgcHJpdmF0ZSBfY2xvc2VPblNiYlBvcG92ZXJDbG9zZUNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNsb3NlRWxlbWVudCA9IGNvbXBvc2VkUGF0aEhhc0F0dHJpYnV0ZShldmVudCwgJ3NiYi1wb3BvdmVyLWNsb3NlJywgdGhpcyk7XG5cbiAgICBpZiAoY2xvc2VFbGVtZW50ICYmICFjbG9zZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VUaW1lb3V0KTtcbiAgICAgIHRoaXMuY2xvc2UoY2xvc2VFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgcG9wb3Zlci5cbiAgcHJpdmF0ZSBfcG9pbnRlckRvd25MaXN0ZW5lciA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25Qb3BvdmVyID0gaXNFdmVudE9uRWxlbWVudCh0aGlzLl9vdmVybGF5LCBldmVudCk7XG4gIH07XG5cbiAgLy8gQ2xvc2UgcG9wb3ZlciBvbiBiYWNrZHJvcCBjbGljay5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25Qb3BvdmVyICYmICFpc0V2ZW50T25FbGVtZW50KHRoaXMuX292ZXJsYXksIGV2ZW50KSkge1xuICAgICAgdGhpcy5fbmV4dEZvY3VzZWRFbGVtZW50ID0gZXZlbnRcbiAgICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAgIC5maWx0ZXIoKGVsKSA9PiBlbCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudClcbiAgICAgICAgLmZpbmQoKGVsKSA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLm1hdGNoZXMoSVNfRk9DVVNBQkxFX1FVRVJZKSkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VUaW1lb3V0KTtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfb25UcmlnZ2VyTW91c2VFbnRlciA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ2Nsb3NlZCcgfHwgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9vcGVuVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5vcGVuKCksIHRoaXMub3BlbkRlbGF5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2Nsb3NlVGltZW91dCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX29uVHJpZ2dlck1vdXNlTGVhdmUgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5fY2xvc2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsb3NlKCksIHRoaXMuY2xvc2VEZWxheSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9vcGVuVGltZW91dCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX29uT3ZlcmxheU1vdXNlRW50ZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuaW5nJykge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2Nsb3NlVGltZW91dCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX29uT3ZlcmxheU1vdXNlTGVhdmUgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5fY2xvc2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsb3NlKCksIHRoaXMuY2xvc2VEZWxheSk7XG4gICAgfVxuICB9O1xuXG4gIC8vIFNldCBwb3BvdmVyIHBvc2l0aW9uICh4LCB5KSB0byAnMCcgb25jZSB0aGUgcG9wb3ZlciBpcyBjbG9zZWQgYW5kIHRoZSB0cmFuc2l0aW9uIGVuZGVkIHRvIHByZXZlbnQgdGhlXG4gIC8vIHZpZXdwb3J0IGZyb20gb3ZlcmZsb3dpbmcuIEFuZCBzZXQgdGhlIGZvY3VzIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBvbmNlIHRoZSBwb3BvdmVyIGlzIG9wZW4uXG4gIC8vIEluIHJhcmUgY2FzZXMgaXQgY2FuIGJlIHRoYXQgdGhlIGFuaW1hdGlvbkVuZCBldmVudCBpcyB0cmlnZ2VyZWQgdHdpY2UuXG4gIC8vIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgcHJpdmF0ZSBfb25Qb3BvdmVyQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG4gICAgICB0aGlzLmRpZE9wZW4uZW1pdCgpO1xuICAgICAgdGhpcy5pbmVydCA9IGZhbHNlO1xuICAgICAgdGhpcy5fYXR0YWNoV2luZG93RXZlbnRzKCk7XG4gICAgICB0aGlzLl9zZXRQb3BvdmVyRm9jdXMoKTtcbiAgICAgIHRoaXMuX2ZvY3VzSGFuZGxlci50cmFwKHRoaXMsIHtcbiAgICAgICAgcG9zdEZpbHRlcjogKGVsKSA9PiBlbCAhPT0gdGhpcy5fb3ZlcmxheSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuc3RhdGUgPSAnY2xvc2VkJztcbiAgICAgIHRoaXMuX292ZXJsYXk/LmZpcnN0RWxlbWVudENoaWxkPy5zY3JvbGxUbygwLCAwKTtcbiAgICAgIHRoaXMuX292ZXJsYXk/LnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcblxuICAgICAgaWYgKCF0aGlzLl9za2lwQ2xvc2VGb2N1cykge1xuICAgICAgICBjb25zdCBlbGVtZW50VG9Gb2N1cyA9IHRoaXMuX25leHRGb2N1c2VkRWxlbWVudCB8fCB0aGlzLl90cmlnZ2VyRWxlbWVudDtcblxuICAgICAgICBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzKGVsZW1lbnRUb0ZvY3VzKTtcbiAgICAgICAgLy8gVG8gZW5hYmxlIGZvY3VzaW5nIG90aGVyIGVsZW1lbnQgdGhhbiB0aGUgdHJpZ2dlciwgd2UgbmVlZCB0byBjYWxsIGZvY3VzKCkgYSBzZWNvbmQgdGltZS5cbiAgICAgICAgZWxlbWVudFRvRm9jdXM/LmZvY3VzKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGlkQ2xvc2UuZW1pdCh7IGNsb3NlVGFyZ2V0OiB0aGlzLl9wb3BvdmVyQ2xvc2VFbGVtZW50IH0pO1xuICAgICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX2ZvY3VzSGFuZGxlci5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0IGZvY3VzIG9uIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudC5cbiAgcHJpdmF0ZSBfc2V0UG9wb3ZlckZvY3VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlID1cbiAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJ1tzYmItcG9wb3Zlci1jbG9zZV0nKSB8fFxuICAgICAgZ2V0Rmlyc3RGb2N1c2FibGVFbGVtZW50KFxuICAgICAgICBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pLmZpbHRlcigoZSk6IGUgaXMgSFRNTEVsZW1lbnQgPT4gZSBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudCksXG4gICAgICApO1xuICAgIGlmIChmaXJzdEZvY3VzYWJsZSkge1xuICAgICAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyhmaXJzdEZvY3VzYWJsZSk7XG4gICAgICBmaXJzdEZvY3VzYWJsZS5mb2N1cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vdmVybGF5LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuICAgICAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyh0aGlzLl9vdmVybGF5KTtcbiAgICAgIHRoaXMuX292ZXJsYXkuZm9jdXMoKTtcblxuICAgICAgLy8gV2hlbiBhIGJsdXIgb2NjdXJzLCB3ZSBrbm93IHRoYXQgdGhlIHBvcG92ZXIgaGFzIHRvIGJlIGNsb3NlZCxcbiAgICAgIC8vIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgcG9wb3Zlci5cbiAgICAgIC8vIFdoZW4gYSB3aW5kb3cvdGFiIGNoYW5nZSBvY2N1cnMsIGEgYmx1ciBldmVudCBpcyBhbHNvIGZpcmVkLiBIb3dldmVyLCB3aGVuIHRoZSBjdXJyZW50IHdpbmRvdy90YWJcbiAgICAgIC8vIGJlY29tZXMgYWN0aXZlIGFnYWluLCBpdCBmb2N1c2VzIG9uY2UgYWdhaW4gdGhlIHBvcG92ZXIuXG4gICAgICAvLyBUaGVyZWZvcmUsIHdlIGNhbm5vdCBsaXN0ZW4gdG8gdGhlIGJsdXIgZXZlbnQgb25seSBvbmNlLlxuICAgICAgLy8gVG8gcHJldmVudCBhY2NpZGVudGFsbHkgY2xvc2luZyB0aGUgcG9wb3Zlciwgd2UgbmVlZCB0byBjaGVjayBmb3IgdGhlIHdpbmRvdy90YWIgc3RhdGUuXG4gICAgICAvLyBXZSBjYW4gYWNoaWV2ZSB0aGlzIGJ5IHVzaW5nIHZpc2liaWxpdHlTdGF0ZSwgd2hpY2ggb25seSB3b3JrcyB3aXRoIHNldFRpbWVvdXQoKS5cbiAgICAgIHRoaXMuX292ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2JsdXInLFxuICAgICAgICAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlICE9PSAnaGlkZGVuJykge1xuICAgICAgICAgICAgICB0aGlzLl9vdmVybGF5Py5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmVkJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9za2lwQ2xvc2VGb2N1cyA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0UG9wb3ZlclBvc2l0aW9uKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fb3ZlcmxheSB8fCAhdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwb3BvdmVyUG9zaXRpb24gPSBnZXRFbGVtZW50UG9zaXRpb24oXG4gICAgICB0aGlzLl9vdmVybGF5LFxuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQsXG4gICAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJy5zYmItcG9wb3Zlcl9fY29udGFpbmVyJykhLFxuICAgICAge1xuICAgICAgICB2ZXJ0aWNhbE9mZnNldDogVkVSVElDQUxfT0ZGU0VULFxuICAgICAgICBob3Jpem9udGFsT2Zmc2V0OiBIT1JJWk9OVEFMX09GRlNFVCxcbiAgICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICAgIHJlc3BvbnNpdmVIZWlnaHQ6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2RhdGEtcG9zaXRpb24nLCBwb3BvdmVyUG9zaXRpb24uYWxpZ25tZW50LnZlcnRpY2FsKTtcblxuICAgIGNvbnN0IGFycm93WFBvc2l0aW9uID1cbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgLVxuICAgICAgcG9wb3ZlclBvc2l0aW9uLmxlZnQgK1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuY2xpZW50V2lkdGggLyAyIC1cbiAgICAgIDg7IC8vIGhhbGYgdGhlIHNpemUgb2YgdGhlIHBvcG92ZXIgYXJyb3dcblxuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXBvcG92ZXItcG9zaXRpb24teCcsIGAke3BvcG92ZXJQb3NpdGlvbi5sZWZ0fXB4YCk7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItcG9wb3Zlci1wb3NpdGlvbi15JywgYCR7cG9wb3ZlclBvc2l0aW9uLnRvcH1weGApO1xuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXBvcG92ZXItYXJyb3ctcG9zaXRpb24teCcsIGAke2Fycm93WFBvc2l0aW9ufXB4YCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBjbG9zZUJ1dHRvbiA9IGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1wb3BvdmVyX19jbG9zZVwiPlxuICAgICAgICA8c2JiLXNlY29uZGFyeS1idXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbCB8fCBpMThuQ2xvc2VQb3BvdmVyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBpY29uLW5hbWU9XCJjcm9zcy1zbWFsbFwiXG4gICAgICAgICAgc2JiLXBvcG92ZXItY2xvc2VcbiAgICAgICAgPjwvc2JiLXNlY29uZGFyeS1idXR0b24+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1wb3BvdmVyX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHsoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSA9PiB0aGlzLl9vblBvcG92ZXJBbmltYXRpb25FbmQoZXZlbnQpfVxuICAgICAgICAgIGNsYXNzPVwic2JiLXBvcG92ZXJcIlxuICAgICAgICAgIHJvbGU9XCJ0b29sdGlwXCJcbiAgICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fb3ZlcmxheSA9IGVsIGFzIEhUTUxEaXZFbGVtZW50KSl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBAY2xpY2s9JHsoZXZlbnQ6IEV2ZW50KSA9PiB0aGlzLl9jbG9zZU9uU2JiUG9wb3ZlckNsb3NlQ2xpY2soZXZlbnQpfVxuICAgICAgICAgICAgY2xhc3M9XCJzYmItcG9wb3Zlcl9fY29udGVudFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgJHshdGhpcy5oaWRlQ2xvc2VCdXR0b24gJiYgIXRoaXMuX2hvdmVyVHJpZ2dlciA/IGNsb3NlQnV0dG9uIDogbm90aGluZ31cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICA8c2xvdD5ObyBjb250ZW50PC9zbG90PlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1wb3BvdmVyJzogU2JiUG9wb3ZlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJTYmJQb3BvdmVyRWxlbWVudCIsIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
611
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3BvcG92ZXIvcG9wb3Zlci9wb3BvdmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBpc1NlcnZlciwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5cbmltcG9ydCB7XG4gIGdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudCxcbiAgSVNfRk9DVVNBQkxFX1FVRVJZLFxuICBTYmJGb2N1c0hhbmRsZXIsXG4gIHNldE1vZGFsaXR5T25OZXh0Rm9jdXMsXG59IGZyb20gJy4uLy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsIFNiYk1lZGlhUXVlcnlQb2ludGVyQ29hcnNlIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgZmluZFJlZmVyZW5jZWRFbGVtZW50LCBpc1plcm9BbmltYXRpb25EdXJhdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IGNvbXBvc2VkUGF0aEhhc0F0dHJpYnV0ZSwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuQ2xvc2VQb3BvdmVyIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiT3BlbmVkQ2xvc2VkU3RhdGUgfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgU2JiSHlkcmF0aW9uTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQge1xuICBnZXRFbGVtZW50UG9zaXRpb24sXG4gIGlzRXZlbnRPbkVsZW1lbnQsXG4gIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXMsXG4gIHNldEFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXMsXG59IGZyb20gJy4uLy4uL2NvcmUvb3ZlcmxheS5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3BvcG92ZXIuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9idXR0b24vc2Vjb25kYXJ5LWJ1dHRvbi5qcyc7XG5cbmNvbnN0IFZFUlRJQ0FMX09GRlNFVCA9IDE2O1xuY29uc3QgSE9SSVpPTlRBTF9PRkZTRVQgPSAzMjtcblxubGV0IG5leHRJZCA9IDA7XG5cbmNvbnN0IHBvcG92ZXJzUmVmID0gbmV3IFNldDxTYmJQb3BvdmVyRWxlbWVudD4oKTtcbmNvbnN0IHBvaW50ZXJDb2Fyc2UgPSBpc1NlcnZlciA/IGZhbHNlIDogbWF0Y2hNZWRpYShTYmJNZWRpYVF1ZXJ5UG9pbnRlckNvYXJzZSkubWF0Y2hlcztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBjb250ZXh0dWFsIGluZm9ybWF0aW9uIHdpdGhpbiBhIHBvcG92ZXIuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCBpbnRvIHRoZSBwb3BvdmVyLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gd2lsbE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1wb3BvdmVyYCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXBvcG92ZXJgIGlzIG9wZW5lZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8eyBjbG9zZVRhcmdldDogSFRNTEVsZW1lbnQgfT59IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXBvcG92ZXJgIGJlZ2lucyB0aGUgY2xvc2luZ1xuICogdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx7IGNsb3NlVGFyZ2V0OiBIVE1MRWxlbWVudCB9Pn0gZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1wb3BvdmVyYCBpcyBjbG9zZWQuXG4gKiBAY3NzcHJvcCBbLS1zYmItcG9wb3Zlci16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1wb3BvdmVyJylcbmNsYXNzIFNiYlBvcG92ZXJFbGVtZW50IGV4dGVuZHMgU2JiSHlkcmF0aW9uTWl4aW4oU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBwb3BvdmVyIG92ZXJsYXkuXG4gICAqIEFjY2VwdHMgYm90aCBhIHN0cmluZyAoaWQgb2YgYW4gZWxlbWVudCkgb3IgYW4gSFRNTCBlbGVtZW50LlxuICAgKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGFjY2Vzc29yIHRyaWdnZXI6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNsb3NlIGJ1dHRvbiBzaG91bGQgYmUgaGlkZGVuLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaGlkZS1jbG9zZS1idXR0b24nLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBoaWRlQ2xvc2VCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBzaG91bGQgYmUgdHJpZ2dlcmVkIG9uIGhvdmVyLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaG92ZXItdHJpZ2dlcicsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGhvdmVyVHJpZ2dlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBPcGVuIHRoZSBwb3BvdmVyIGFmdGVyIGEgY2VydGFpbiBkZWxheS4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ29wZW4tZGVsYXknLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIG9wZW5EZWxheTogbnVtYmVyID0gMDtcblxuICAvKiogQ2xvc2UgdGhlIHBvcG92ZXIgYWZ0ZXIgYSBjZXJ0YWluIGRlbGF5LiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnY2xvc2UtZGVsYXknLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGNsb3NlRGVsYXk6IG51bWJlciA9IDA7XG5cbiAgLyoqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgY2xvc2UgYnV0dG9uIGVsZW1lbnQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWNsb3NlLWxhYmVsJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eUNsb3NlTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1wb3BvdmVyYCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxDbG9zZTogRXZlbnRFbWl0dGVyPHsgY2xvc2VUYXJnZXQ/OiBIVE1MRWxlbWVudCB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJQb3BvdmVyRWxlbWVudC5ldmVudHMud2lsbENsb3NlLFxuICAgIHsgY2FuY2VsYWJsZTogdHJ1ZSB9LFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1wb3BvdmVyYCBpcyBjbG9zZWQuICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBkaWRDbG9zZTogRXZlbnRFbWl0dGVyPHsgY2xvc2VUYXJnZXQ/OiBIVE1MRWxlbWVudCB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJQb3BvdmVyRWxlbWVudC5ldmVudHMuZGlkQ2xvc2UsXG4gICAgeyBjYW5jZWxhYmxlOiB0cnVlIH0sXG4gICk7XG5cbiAgcHJpdmF0ZSBfb3ZlcmxheSE6IEhUTUxEaXZFbGVtZW50O1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudD86IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgLy8gVGhlIGVsZW1lbnQgd2hpY2ggc2hvdWxkIHJlY2VpdmUgZm9jdXMgYWZ0ZXIgY2xvc2luZyBiYXNlZCBvbiB3aGVyZSBpbiB0aGUgYmFja2Ryb3AgdGhlIHVzZXIgY2xpY2tzLlxuICBwcml2YXRlIF9uZXh0Rm9jdXNlZEVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfc2tpcENsb3NlRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcG9wb3ZlckNsb3NlRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPblBvcG92ZXI/OiBib29sZWFuO1xuICBwcml2YXRlIF9wb3BvdmVyQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfb3BlblN0YXRlQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfZm9jdXNIYW5kbGVyID0gbmV3IFNiYkZvY3VzSGFuZGxlcigpO1xuICBwcml2YXRlIF9ob3ZlclRyaWdnZXIgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfb3BlblRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBfY2xvc2VUaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAvKiogT3BlbnMgdGhlIHBvcG92ZXIgb24gdHJpZ2dlciBjbGljay4gKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKCh0aGlzLnN0YXRlICE9PSAnY2xvc2VkJyAmJiB0aGlzLnN0YXRlICE9PSAnY2xvc2luZycpIHx8ICF0aGlzLl9vdmVybGF5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLndpbGxPcGVuLmVtaXQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENsb3NlIHRoZSBvdGhlciBwb3BvdmVyc1xuICAgIGZvciAoY29uc3QgcG9wb3ZlciBvZiBBcnJheS5mcm9tKHBvcG92ZXJzUmVmKSkge1xuICAgICAgY29uc3Qgc3RhdGUgPSBwb3BvdmVyLmdldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScpIGFzIFNiYk9wZW5lZENsb3NlZFN0YXRlO1xuICAgICAgaWYgKHN0YXRlICYmIChzdGF0ZSA9PT0gJ29wZW5lZCcgfHwgc3RhdGUgPT09ICdvcGVuaW5nJykpIHtcbiAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5pbmVydCA9IHRydWU7XG4gICAgdGhpcy5fc2V0UG9wb3ZlclBvc2l0aW9uKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgdGhpcy5fbmV4dEZvY3VzZWRFbGVtZW50ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX3NraXBDbG9zZUZvY3VzID0gZmFsc2U7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDbG9zZXMgdGhlIHBvcG92ZXIuICovXG4gIHB1YmxpYyBjbG9zZSh0YXJnZXQ/OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJyAmJiB0aGlzLnN0YXRlICE9PSAnb3BlbmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9wb3BvdmVyQ2xvc2VFbGVtZW50ID0gdGFyZ2V0O1xuICAgIGlmICghdGhpcy53aWxsQ2xvc2UuZW1pdCh7IGNsb3NlVGFyZ2V0OiB0YXJnZXQgfSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NpbmcnO1xuICAgIHRoaXMuaW5lcnQgPSB0cnVlO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKTtcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1wb3BvdmVyLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5fb3ZlcmxheT8uZmlyc3RFbGVtZW50Q2hpbGQ/LnNjcm9sbFRvKDAsIDApO1xuICAgIHRoaXMuX292ZXJsYXk/LnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcblxuICAgIGlmICghdGhpcy5fc2tpcENsb3NlRm9jdXMpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gdGhpcy5fbmV4dEZvY3VzZWRFbGVtZW50IHx8IHRoaXMuX3RyaWdnZXJFbGVtZW50O1xuXG4gICAgICBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzKGVsZW1lbnRUb0ZvY3VzKTtcbiAgICAgIC8vIFRvIGVuYWJsZSBmb2N1c2luZyBvdGhlciBlbGVtZW50IHRoYW4gdGhlIHRyaWdnZXIsIHdlIG5lZWQgdG8gY2FsbCBmb2N1cygpIGEgc2Vjb25kIHRpbWUuXG4gICAgICBlbGVtZW50VG9Gb2N1cz8uZm9jdXMoKTtcbiAgICB9XG5cbiAgICB0aGlzLmRpZENsb3NlLmVtaXQoeyBjbG9zZVRhcmdldDogdGhpcy5fcG9wb3ZlckNsb3NlRWxlbWVudCB9KTtcbiAgICB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX2ZvY3VzSGFuZGxlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICB0aGlzLmRpZE9wZW4uZW1pdCgpO1xuICAgIHRoaXMuaW5lcnQgPSBmYWxzZTtcbiAgICB0aGlzLl9hdHRhY2hXaW5kb3dFdmVudHMoKTtcbiAgICB0aGlzLl9zZXRQb3BvdmVyRm9jdXMoKTtcbiAgICB0aGlzLl9mb2N1c0hhbmRsZXIudHJhcCh0aGlzLCB7XG4gICAgICBwb3N0RmlsdGVyOiAoZWwpID0+IGVsICE9PSB0aGlzLl9vdmVybGF5LFxuICAgIH0pO1xuICB9XG5cbiAgLy8gQ2xvc2VzIHRoZSBwb3BvdmVyIG9uIFwiRXNjXCIga2V5IHByZXNzZWQgYW5kIHRyYXBzIGZvY3VzIHdpdGhpbiB0aGUgcG9wb3Zlci5cbiAgcHJpdmF0ZSBfb25LZXlkb3duRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGlmICghdGhpcy5pZCkge1xuICAgICAgdGhpcy5pZCA9IHRoaXMuaWQgfHwgYHNiYi1wb3BvdmVyLSR7KytuZXh0SWR9YDtcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSB0cmlnZ2VyIGVsZW1lbnQgYW5kIGF0dGFjaCBldmVudCBsaXN0ZW5lcnNcbiAgICB0aGlzLl9jb25maWd1cmUoKTtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgcG9wb3ZlcnNSZWYuYWRkKHRoaXMgYXMgU2JiUG9wb3ZlckVsZW1lbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd0cmlnZ2VyJykgJiYgdGhpcy50cmlnZ2VyICE9PSBjaGFuZ2VkUHJvcGVydGllcy5nZXQoJ3RyaWdnZXInKSkge1xuICAgICAgdGhpcy5fcG9wb3ZlckNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5fY29uZmlndXJlKCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnaG92ZXJUcmlnZ2VyJykpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmICh0aGlzLl9ob3ZlclRyaWdnZXIpIHtcbiAgICAgIHRoaXMuX292ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHRoaXMuX29uT3ZlcmxheU1vdXNlRW50ZXIoKSk7XG4gICAgICB0aGlzLl9vdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB0aGlzLl9vbk92ZXJsYXlNb3VzZUxlYXZlKCkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX3BvcG92ZXJDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fZm9jdXNIYW5kbGVyLmRpc2Nvbm5lY3QoKTtcbiAgICBwb3BvdmVyc1JlZi5kZWxldGUodGhpcyBhcyBTYmJQb3BvdmVyRWxlbWVudCk7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgdHJpZ2dlciBpcyB2YWxpZCBhbmQgYXR0YWNoIGNsaWNrIGV2ZW50IGxpc3RlbmVycy5cbiAgcHJpdmF0ZSBfY29uZmlndXJlKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+IHRoaXMuX2NvbmZpZ3VyZSgpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcblxuICAgIGlmICghdGhpcy50cmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBmaW5kUmVmZXJlbmNlZEVsZW1lbnQodGhpcy50cmlnZ2VyKTtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnZGlhbG9nJywgdGhpcy5pZCwgdGhpcy5zdGF0ZSk7XG5cbiAgICAvLyBDaGVjayB3aGV0aGVyIHRoZSB0cmlnZ2VyIGNhbiBiZSBob3ZlcmVkLiBTb21lIGRldmljZXMgbWlnaHQgaW50ZXJwcmV0IHRoZSBtZWRpYSBxdWVyeSAoaG92ZXI6IGhvdmVyKSBkaWZmZXJlbnRseSxcbiAgICAvLyBhbmQgbm90IHJlc3BlY3QgdGhlIGZhbGxiYWNrIG1lY2hhbmlzbSBvbiB0aGUgY2xpY2suIFRoZXJlZm9yZSwgdGhlIGZvbGxvd2luZyBpcyBwcmVmZXJyZWQgdG8gaWRlbnRpZnlcbiAgICAvLyBhbGwgbm9uLXRvdWNoc2NyZWVuIGRldmljZXMuXG4gICAgdGhpcy5faG92ZXJUcmlnZ2VyID0gdGhpcy5ob3ZlclRyaWdnZXIgJiYgIXBvaW50ZXJDb2Fyc2U7XG5cbiAgICB0aGlzLl9wb3BvdmVyQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICBjb25zdCB7IHNpZ25hbCB9ID0gKHRoaXMuX3BvcG92ZXJDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpKTtcbiAgICBpZiAodGhpcy5faG92ZXJUcmlnZ2VyKSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5fb25UcmlnZ2VyTW91c2VFbnRlciwgeyBzaWduYWwgfSk7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5fb25UcmlnZ2VyTW91c2VMZWF2ZSwgeyBzaWduYWwgfSk7XG5cbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdrZXlkb3duJyxcbiAgICAgICAgKGV2dDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldnQuY29kZSA9PT0gJ1NwYWNlJyB8fCBldnQuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IHNpZ25hbCB9LFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnN0YXRlID09PSAnY2xvc2VkJykge1xuICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IHNpZ25hbCB9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2hXaW5kb3dFdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB0aGlzLl9zZXRQb3BvdmVyUG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHRoaXMuX3NldFBvcG92ZXJQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5fb25LZXlkb3duRXZlbnQoZXZlbnQpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgLy8gQ2xvc2UgcG9wb3ZlciBvbiBiYWNrZHJvcCBjbGlja1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIHRoaXMuX3BvaW50ZXJEb3duTGlzdGVuZXIsIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gQ2xvc2UgdGhlIHBvcG92ZXIgb24gY2xpY2sgb2YgYW55IGVsZW1lbnQgdGhhdCBoYXMgdGhlICdzYmItcG9wb3Zlci1jbG9zZScgYXR0cmlidXRlLlxuICBwcml2YXRlIF9jbG9zZU9uU2JiUG9wb3ZlckNsb3NlQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY2xvc2VFbGVtZW50ID0gY29tcG9zZWRQYXRoSGFzQXR0cmlidXRlKGV2ZW50LCAnc2JiLXBvcG92ZXItY2xvc2UnLCB0aGlzKTtcblxuICAgIGlmIChjbG9zZUVsZW1lbnQgJiYgIWNsb3NlRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9jbG9zZVRpbWVvdXQpO1xuICAgICAgdGhpcy5jbG9zZShjbG9zZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBwb2ludGVyZG93biBldmVudCB0YXJnZXQgaXMgdHJpZ2dlcmVkIG9uIHRoZSBwb3BvdmVyLlxuICBwcml2YXRlIF9wb2ludGVyRG93bkxpc3RlbmVyID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICB0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPblBvcG92ZXIgPSBpc0V2ZW50T25FbGVtZW50KHRoaXMuX292ZXJsYXksIGV2ZW50KTtcbiAgfTtcblxuICAvLyBDbG9zZSBwb3BvdmVyIG9uIGJhY2tkcm9wIGNsaWNrLlxuICBwcml2YXRlIF9jbG9zZU9uQmFja2Ryb3BDbGljayA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKCF0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPblBvcG92ZXIgJiYgIWlzRXZlbnRPbkVsZW1lbnQodGhpcy5fb3ZlcmxheSwgZXZlbnQpKSB7XG4gICAgICB0aGlzLl9uZXh0Rm9jdXNlZEVsZW1lbnQgPSBldmVudFxuICAgICAgICAuY29tcG9zZWRQYXRoKClcbiAgICAgICAgLmZpbHRlcigoZWwpID0+IGVsIGluc3RhbmNlb2Ygd2luZG93LkhUTUxFbGVtZW50KVxuICAgICAgICAuZmluZCgoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkubWF0Y2hlcyhJU19GT0NVU0FCTEVfUVVFUlkpKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9jbG9zZVRpbWVvdXQpO1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vblRyaWdnZXJNb3VzZUVudGVyID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnY2xvc2VkJyB8fCB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX29wZW5UaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLm9wZW4oKSwgdGhpcy5vcGVuRGVsYXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VUaW1lb3V0KTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfb25UcmlnZ2VyTW91c2VMZWF2ZSA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgfHwgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9jbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgdGhpcy5jbG9zZURlbGF5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX29wZW5UaW1lb3V0KTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfb25PdmVybGF5TW91c2VFbnRlciA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5pbmcnKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VUaW1lb3V0KTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfb25PdmVybGF5TW91c2VMZWF2ZSA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9jbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgdGhpcy5jbG9zZURlbGF5KTtcbiAgICB9XG4gIH07XG5cbiAgLy8gU2V0IHBvcG92ZXIgcG9zaXRpb24gKHgsIHkpIHRvICcwJyBvbmNlIHRoZSBwb3BvdmVyIGlzIGNsb3NlZCBhbmQgdGhlIHRyYW5zaXRpb24gZW5kZWQgdG8gcHJldmVudCB0aGVcbiAgLy8gdmlld3BvcnQgZnJvbSBvdmVyZmxvd2luZy4gQW5kIHNldCB0aGUgZm9jdXMgdG8gdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50IG9uY2UgdGhlIHBvcG92ZXIgaXMgb3Blbi5cbiAgLy8gSW4gcmFyZSBjYXNlcyBpdCBjYW4gYmUgdGhhdCB0aGUgYW5pbWF0aW9uRW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB0d2ljZS5cbiAgLy8gVG8gYXZvaWQgZW50ZXJpbmcgYSBjb3JydXB0IHN0YXRlLCBleGl0IHdoZW4gc3RhdGUgaXMgbm90IGV4cGVjdGVkLlxuICBwcml2YXRlIF9vblBvcG92ZXJBbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0IGZvY3VzIG9uIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudC5cbiAgcHJpdmF0ZSBfc2V0UG9wb3ZlckZvY3VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlID1cbiAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJ1tzYmItcG9wb3Zlci1jbG9zZV0nKSB8fFxuICAgICAgZ2V0Rmlyc3RGb2N1c2FibGVFbGVtZW50KFxuICAgICAgICBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pLmZpbHRlcigoZSk6IGUgaXMgSFRNTEVsZW1lbnQgPT4gZSBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudCksXG4gICAgICApO1xuICAgIGlmIChmaXJzdEZvY3VzYWJsZSkge1xuICAgICAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyhmaXJzdEZvY3VzYWJsZSk7XG4gICAgICBmaXJzdEZvY3VzYWJsZS5mb2N1cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vdmVybGF5LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuICAgICAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyh0aGlzLl9vdmVybGF5KTtcbiAgICAgIHRoaXMuX292ZXJsYXkuZm9jdXMoKTtcblxuICAgICAgLy8gV2hlbiBhIGJsdXIgb2NjdXJzLCB3ZSBrbm93IHRoYXQgdGhlIHBvcG92ZXIgaGFzIHRvIGJlIGNsb3NlZCxcbiAgICAgIC8vIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgcG9wb3Zlci5cbiAgICAgIC8vIFdoZW4gYSB3aW5kb3cvdGFiIGNoYW5nZSBvY2N1cnMsIGEgYmx1ciBldmVudCBpcyBhbHNvIGZpcmVkLiBIb3dldmVyLCB3aGVuIHRoZSBjdXJyZW50IHdpbmRvdy90YWJcbiAgICAgIC8vIGJlY29tZXMgYWN0aXZlIGFnYWluLCBpdCBmb2N1c2VzIG9uY2UgYWdhaW4gdGhlIHBvcG92ZXIuXG4gICAgICAvLyBUaGVyZWZvcmUsIHdlIGNhbm5vdCBsaXN0ZW4gdG8gdGhlIGJsdXIgZXZlbnQgb25seSBvbmNlLlxuICAgICAgLy8gVG8gcHJldmVudCBhY2NpZGVudGFsbHkgY2xvc2luZyB0aGUgcG9wb3Zlciwgd2UgbmVlZCB0byBjaGVjayBmb3IgdGhlIHdpbmRvdy90YWIgc3RhdGUuXG4gICAgICAvLyBXZSBjYW4gYWNoaWV2ZSB0aGlzIGJ5IHVzaW5nIHZpc2liaWxpdHlTdGF0ZSwgd2hpY2ggb25seSB3b3JrcyB3aXRoIHNldFRpbWVvdXQoKS5cbiAgICAgIHRoaXMuX292ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2JsdXInLFxuICAgICAgICAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlICE9PSAnaGlkZGVuJykge1xuICAgICAgICAgICAgICB0aGlzLl9vdmVybGF5Py5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmVkJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9za2lwQ2xvc2VGb2N1cyA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0UG9wb3ZlclBvc2l0aW9uKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fb3ZlcmxheSB8fCAhdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwb3BvdmVyUG9zaXRpb24gPSBnZXRFbGVtZW50UG9zaXRpb24oXG4gICAgICB0aGlzLl9vdmVybGF5LFxuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQsXG4gICAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJy5zYmItcG9wb3Zlcl9fY29udGFpbmVyJykhLFxuICAgICAge1xuICAgICAgICB2ZXJ0aWNhbE9mZnNldDogVkVSVElDQUxfT0ZGU0VULFxuICAgICAgICBob3Jpem9udGFsT2Zmc2V0OiBIT1JJWk9OVEFMX09GRlNFVCxcbiAgICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICAgIHJlc3BvbnNpdmVIZWlnaHQ6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2RhdGEtcG9zaXRpb24nLCBwb3BvdmVyUG9zaXRpb24uYWxpZ25tZW50LnZlcnRpY2FsKTtcblxuICAgIGNvbnN0IGFycm93WFBvc2l0aW9uID1cbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgLVxuICAgICAgcG9wb3ZlclBvc2l0aW9uLmxlZnQgK1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuY2xpZW50V2lkdGggLyAyIC1cbiAgICAgIDg7IC8vIGhhbGYgdGhlIHNpemUgb2YgdGhlIHBvcG92ZXIgYXJyb3dcblxuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXBvcG92ZXItcG9zaXRpb24teCcsIGAke3BvcG92ZXJQb3NpdGlvbi5sZWZ0fXB4YCk7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItcG9wb3Zlci1wb3NpdGlvbi15JywgYCR7cG9wb3ZlclBvc2l0aW9uLnRvcH1weGApO1xuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXBvcG92ZXItYXJyb3ctcG9zaXRpb24teCcsIGAke2Fycm93WFBvc2l0aW9ufXB4YCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBjbG9zZUJ1dHRvbiA9IGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1wb3BvdmVyX19jbG9zZVwiPlxuICAgICAgICA8c2JiLXNlY29uZGFyeS1idXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbCB8fCBpMThuQ2xvc2VQb3BvdmVyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBpY29uLW5hbWU9XCJjcm9zcy1zbWFsbFwiXG4gICAgICAgICAgc2JiLXBvcG92ZXItY2xvc2VcbiAgICAgICAgPjwvc2JiLXNlY29uZGFyeS1idXR0b24+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1wb3BvdmVyX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vblBvcG92ZXJBbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItcG9wb3ZlclwiXG4gICAgICAgICAgcm9sZT1cInRvb2x0aXBcIlxuICAgICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl9vdmVybGF5ID0gZWwgYXMgSFRNTERpdkVsZW1lbnQpKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIEBjbGljaz0keyhldmVudDogRXZlbnQpID0+IHRoaXMuX2Nsb3NlT25TYmJQb3BvdmVyQ2xvc2VDbGljayhldmVudCl9XG4gICAgICAgICAgICBjbGFzcz1cInNiYi1wb3BvdmVyX19jb250ZW50XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICAkeyF0aGlzLmhpZGVDbG9zZUJ1dHRvbiAmJiAhdGhpcy5faG92ZXJUcmlnZ2VyID8gY2xvc2VCdXR0b24gOiBub3RoaW5nfVxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIDxzbG90Pk5vIGNvbnRlbnQ8L3Nsb3Q+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXBvcG92ZXInOiBTYmJQb3BvdmVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlNiYlBvcG92ZXJFbGVtZW50IiwiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4QkEsTUFBTSxrQkFBa0I7QUFDeEIsTUFBTSxvQkFBb0I7QUFFMUIsSUFBSSxTQUFTO0FBRWIsTUFBTSxrQ0FBa0I7QUFDeEIsTUFBTSxnQkFBZ0IsV0FBVyxRQUFRLFdBQVcsMEJBQTBCLEVBQUU7SUFpQjFFLHFCQUFp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
|
|
@@ -1,21 +1,14 @@
|
|
|
1
1
|
import { LitElement } from 'lit';
|
|
2
2
|
import { SbbCheckedStateChange, SbbDisabledStateChange, SbbStateChange } from '../../core/interfaces.js';
|
|
3
|
-
import { AbstractConstructor } from '../../core/mixins.js';
|
|
3
|
+
import { AbstractConstructor, Constructor, SbbFormAssociatedRadioButtonMixinType } from '../../core/mixins.js';
|
|
4
4
|
import { SbbRadioButtonGroupElement } from '../radio-button-group.js';
|
|
5
5
|
export type SbbRadioButtonSize = 'xs' | 's' | 'm';
|
|
6
6
|
export type SbbRadioButtonStateChange = Extract<SbbStateChange, SbbDisabledStateChange | SbbCheckedStateChange>;
|
|
7
|
-
export declare class SbbRadioButtonCommonElementMixinType {
|
|
7
|
+
export declare class SbbRadioButtonCommonElementMixinType extends SbbFormAssociatedRadioButtonMixinType {
|
|
8
8
|
get allowEmptySelection(): boolean;
|
|
9
9
|
set allowEmptySelection(boolean: boolean);
|
|
10
|
-
accessor value: string;
|
|
11
|
-
get disabled(): boolean;
|
|
12
|
-
set disabled(boolean: boolean);
|
|
13
|
-
get required(): boolean;
|
|
14
|
-
set required(boolean: boolean);
|
|
15
10
|
get group(): SbbRadioButtonGroupElement | null;
|
|
16
|
-
get checked(): boolean;
|
|
17
|
-
set checked(boolean: boolean);
|
|
18
11
|
select(): void;
|
|
19
12
|
}
|
|
20
|
-
export declare const SbbRadioButtonCommonElementMixin: <T extends
|
|
13
|
+
export declare const SbbRadioButtonCommonElementMixin: <T extends Constructor<LitElement>>(superClass: T) => AbstractConstructor<SbbRadioButtonCommonElementMixinType> & T;
|
|
21
14
|
//# sourceMappingURL=radio-button-common.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-button-common.d.ts","sourceRoot":"","sources":["../../../../../src/elements/radio-button/common/radio-button-common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"radio-button-common.d.ts","sourceRoot":"","sources":["../../../../../src/elements/radio-button/common/radio-button-common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAC;AAKtD,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAEhB,KAAK,qCAAqC,EAC3C,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;AAElD,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,cAAc,EACd,sBAAsB,GAAG,qBAAqB,CAC/C,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,oCAAqC,SAAQ,qCAAqC;IACrG,IAAW,mBAAmB,IAAI,OAAO,CAAC;IAC1C,IAAW,mBAAmB,CAAC,OAAO,EADJ,OACI,EAAE;IACxC,IAAW,KAAK,IAAI,0BAA0B,GAAG,IAAI,CAAC;IAC/C,MAAM,IAAI,IAAI;CACtB;AAGD,eAAO,MAAM,gCAAgC,GAAI,CAAC,SAAS,WAAW,CAAC,UAAU,CAAC,cACpE,CAAC,KACZ,mBAAmB,CAAC,oCAAoC,CAAC,GAAG,CAsH9D,CAAC"}
|