@sbb-esta/lyne-elements 3.0.0-next.1 → 3.0.0-next.3
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.component.js +19 -22
- package/action-group/action-group.component.js +3 -5
- package/alert/alert/alert.component.d.ts +5 -7
- package/alert/alert/alert.component.d.ts.map +1 -1
- package/alert/alert/alert.component.js +69 -84
- package/alert/alert-group/alert-group.component.js +2 -3
- package/autocomplete/autocomplete-base-element.js +83 -95
- package/autocomplete/autocomplete.component.js +28 -33
- package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +42 -50
- package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts +1 -1
- package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +4 -5
- package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +17 -20
- package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts +1 -1
- package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +21 -24
- package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +5 -5
- package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +27 -31
- package/button/mini-button/mini-button.component.js +1 -1
- package/button/mini-button-group/mini-button-group.component.js +1 -2
- package/calendar/calendar.component.d.ts +0 -5
- package/calendar/calendar.component.d.ts.map +1 -1
- package/calendar/calendar.component.js +129 -147
- package/card/card/card.component.js +12 -12
- package/card/card-badge/card-badge.component.js +17 -17
- package/card/common/card-action-common.js +20 -22
- package/checkbox/checkbox/checkbox.component.js +17 -20
- package/checkbox/checkbox-group/checkbox-group.component.js +39 -52
- package/checkbox/checkbox-panel/checkbox-panel.component.js +18 -21
- package/checkbox/common/checkbox-common.js +13 -15
- package/chip/chip-group/chip-group.component.js +66 -80
- package/clock/clock.component.js +50 -60
- package/container/container/container.component.js +28 -29
- package/container/sticky-bar/sticky-bar.component.js +25 -26
- package/core/a11y/focus-trap-controller.js +11 -14
- package/core/a11y/input-modality-detector.js +15 -16
- package/core/a11y/interactivity-checker.js +10 -10
- package/core/a11y/live-announcer.js +12 -14
- package/core/base-elements/button-base-element.js +58 -63
- package/core/base-elements/link-base-element.js +3 -6
- package/core/base-elements/open-close-base-element.js +1 -1
- package/core/config/config.d.ts.map +1 -1
- package/core/controllers/escapable-overlay-controller.js +10 -12
- package/core/controllers/id-reference-controller.js +13 -14
- package/core/controllers/inert-controller.js +8 -10
- package/core/controllers/slot-state-controller.js +16 -26
- package/core/datetime/date-adapter.d.ts +1 -1
- package/core/datetime/date-adapter.d.ts.map +1 -1
- package/core/datetime/date-adapter.js +21 -21
- package/core/datetime/native-date-adapter.d.ts +1 -1
- package/core/datetime/native-date-adapter.d.ts.map +1 -1
- package/core/datetime/native-date-adapter.js +28 -28
- package/core/decorators/force-type.js +4 -5
- package/core/decorators/id-reference.js +34 -37
- package/core/decorators/plain-date.js +16 -19
- package/core/dom/breakpoint.js +8 -8
- package/core/eventing/event-emitter.js +4 -5
- package/core/i18n/i18n.js +41 -41
- package/core/mixins/element-internals-mixin.d.ts +21 -0
- package/core/mixins/element-internals-mixin.d.ts.map +1 -1
- package/core/mixins/element-internals-mixin.js +109 -23
- package/core/mixins/form-associated-checkbox-mixin.js +32 -37
- package/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
- package/core/mixins/form-associated-input-mixin.js +69 -93
- package/core/mixins/form-associated-mixin.js +32 -35
- package/core/mixins/form-associated-radio-button-mixin.js +3 -5
- package/core/mixins/hydration-mixin.js +12 -13
- package/core/mixins/named-slot-list-mixin.js +32 -37
- package/core/mixins/panel-mixin.js +26 -27
- package/core/mixins/readonly-mixin.d.ts.map +1 -1
- package/core/mixins/readonly-mixin.js +10 -11
- package/core/mixins.js +27 -25
- package/core/overlay/position.js +23 -23
- package/core/styles/core/mediaqueries.scss +1 -1
- package/core/styles/core.scss +70 -35
- package/core/styles/mixins/table.scss +1 -24
- package/core/testing/event-spy.js +2 -4
- package/core/testing/wait-for-image-ready.js +8 -9
- package/core/testing/wait-for-render.js +8 -9
- package/core.css +29 -0
- package/custom-elements.json +5233 -2634
- package/date-input/date-input.component.d.ts +16 -1
- package/date-input/date-input.component.d.ts.map +1 -1
- package/date-input/date-input.component.js +71 -58
- package/datepicker/common/datepicker-button.d.ts +31 -20
- package/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/datepicker/common/datepicker-button.js +79 -74
- package/datepicker/common.d.ts +0 -1
- package/datepicker/common.d.ts.map +1 -1
- package/datepicker/common.js +3 -5
- package/datepicker/datepicker/datepicker.component.d.ts +23 -102
- package/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
- package/datepicker/datepicker/datepicker.component.js +91 -233
- package/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts +2 -2
- package/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts.map +1 -1
- package/datepicker/datepicker-next-day/datepicker-next-day.component.js +27 -18
- package/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts +2 -2
- package/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts.map +1 -1
- package/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +27 -18
- package/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts +6 -26
- package/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts.map +1 -1
- package/datepicker/datepicker-toggle/datepicker-toggle.component.js +36 -145
- package/datepicker.js +9 -11
- package/development/accordion/accordion.component.js +4 -7
- package/development/action-group/action-group.component.js +3 -5
- package/development/alert/alert/alert.component.d.ts +5 -7
- package/development/alert/alert/alert.component.d.ts.map +1 -1
- package/development/alert/alert/alert.component.js +34 -52
- package/development/alert/alert-group/alert-group.component.js +2 -3
- package/development/autocomplete/autocomplete-base-element.js +20 -32
- package/development/autocomplete/autocomplete.component.js +7 -12
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +10 -18
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts +1 -1
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +4 -9
- package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +1 -1
- package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +4 -7
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts +1 -1
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +4 -7
- package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +2 -2
- package/development/breadcrumb/breadcrumb/breadcrumb.component.js +1 -1
- package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +5 -9
- package/development/button/accent-button/accent-button.component.js +1 -1
- package/development/button/accent-button-link/accent-button-link.component.js +1 -1
- package/development/button/accent-button-static/accent-button-static.component.js +1 -1
- package/development/button/button/button.component.js +1 -1
- package/development/button/button-link/button-link.component.js +1 -1
- package/development/button/button-static/button-static.component.js +1 -1
- package/development/button/common/button-common.js +1 -1
- package/development/button/mini-button/mini-button.component.js +1 -1
- package/development/button/mini-button-group/mini-button-group.component.js +2 -3
- package/development/button/secondary-button/secondary-button.component.js +1 -1
- package/development/button/secondary-button-link/secondary-button-link.component.js +1 -1
- package/development/button/secondary-button-static/secondary-button-static.component.js +1 -1
- package/development/button/transparent-button/transparent-button.component.js +1 -1
- package/development/button/transparent-button-link/transparent-button-link.component.js +1 -1
- package/development/button/transparent-button-static/transparent-button-static.component.js +1 -1
- package/development/calendar/calendar.component.d.ts +0 -5
- package/development/calendar/calendar.component.d.ts.map +1 -1
- package/development/calendar/calendar.component.js +20 -44
- package/development/card/card/card.component.js +1 -1
- package/development/card/card-badge/card-badge.component.js +2 -2
- package/development/card/card-button/card-button.component.js +1 -1
- package/development/card/card-link/card-link.component.js +1 -1
- package/development/card/common/card-action-common.js +4 -6
- package/development/checkbox/checkbox/checkbox.component.js +2 -5
- package/development/checkbox/checkbox-group/checkbox-group.component.js +8 -21
- package/development/checkbox/checkbox-panel/checkbox-panel.component.js +2 -5
- package/development/checkbox/common/checkbox-common.js +3 -5
- package/development/chip/chip/chip.component.js +1 -1
- package/development/chip/chip-group/chip-group.component.js +18 -32
- package/development/chip-label/chip-label.component.js +1 -1
- package/development/clock/clock.component.js +23 -33
- package/development/container/container/container.component.js +2 -3
- package/development/container/sticky-bar/sticky-bar.component.js +3 -4
- package/development/core/a11y/arrow-navigation.js +1 -1
- package/development/core/a11y/fake-event-detection.js +1 -1
- package/development/core/a11y/focus-trap-controller.js +6 -9
- package/development/core/a11y/focus-visible-within-controller.js +1 -1
- package/development/core/a11y/input-modality-detector.js +2 -3
- package/development/core/a11y/interactivity-checker.js +2 -2
- package/development/core/a11y/live-announcer.js +6 -8
- package/development/core/base-elements/action-base-element.js +2 -3
- package/development/core/base-elements/button-base-element.js +6 -11
- package/development/core/base-elements/link-base-element.js +4 -7
- package/development/core/base-elements/open-close-base-element.js +2 -2
- package/development/core/config/config.d.ts.map +1 -1
- package/development/core/config/config.js +1 -1
- package/development/core/controllers/escapable-overlay-controller.js +3 -5
- package/development/core/controllers/id-reference-controller.js +2 -3
- package/development/core/controllers/inert-controller.js +4 -6
- package/development/core/controllers/language-controller.js +1 -1
- package/development/core/controllers/media-matchers-controller.js +1 -1
- package/development/core/controllers/slot-state-controller.js +8 -18
- package/development/core/datetime/date-adapter.d.ts +1 -1
- package/development/core/datetime/date-adapter.d.ts.map +1 -1
- package/development/core/datetime/date-adapter.js +5 -5
- 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/native-date-adapter.js +4 -4
- package/development/core/decorators/force-type.js +3 -4
- package/development/core/decorators/get-override.js +1 -1
- package/development/core/decorators/handle-distinct-change.js +1 -1
- package/development/core/decorators/host-attributes.js +1 -1
- package/development/core/decorators/id-reference.js +4 -7
- package/development/core/decorators/plain-date.js +5 -8
- package/development/core/decorators/slot-state.js +1 -1
- package/development/core/dom/animation.js +1 -1
- package/development/core/dom/breakpoint.js +2 -2
- package/development/core/dom/host-context.js +1 -1
- package/development/core/dom/platform.js +1 -1
- package/development/core/dom/scroll.js +1 -1
- package/development/core/dom/set-or-remove-attribute.js +1 -1
- package/development/core/eventing/composed-path-has-attribute.js +1 -1
- package/development/core/eventing/event-emitter.js +2 -3
- package/development/core/eventing/form-element-handlers.js +1 -1
- package/development/core/eventing/forward-event.js +1 -1
- package/development/core/eventing/throttle.js +1 -1
- package/development/core/i18n/i18n.js +18 -18
- package/development/core/mixins/animation-complete-mixin.js +1 -1
- package/development/core/mixins/disabled-mixin.js +1 -1
- package/development/core/mixins/element-internals-mixin.d.ts +21 -0
- package/development/core/mixins/element-internals-mixin.d.ts.map +1 -1
- package/development/core/mixins/element-internals-mixin.js +123 -2
- package/development/core/mixins/form-associated-checkbox-mixin.js +6 -9
- package/development/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
- package/development/core/mixins/form-associated-input-mixin.js +29 -59
- package/development/core/mixins/form-associated-mixin.js +6 -9
- package/development/core/mixins/form-associated-radio-button-mixin.js +7 -9
- package/development/core/mixins/hydration-mixin.js +3 -4
- package/development/core/mixins/named-slot-list-mixin.js +4 -7
- package/development/core/mixins/negative-mixin.js +1 -1
- package/development/core/mixins/panel-mixin.js +2 -3
- package/development/core/mixins/readonly-mixin.d.ts.map +1 -1
- package/development/core/mixins/readonly-mixin.js +4 -6
- package/development/core/mixins/required-mixin.js +1 -1
- package/development/core/mixins/update-scheduler-mixin.js +1 -1
- package/development/core/mixins.js +4 -2
- package/development/core/overlay/overlay-option-panel.js +1 -1
- package/development/core/overlay/overlay-trigger-attributes.js +1 -1
- package/development/core/overlay/overlay.js +1 -1
- package/development/core/overlay/position.js +5 -5
- package/development/core/testing/event-spy.js +3 -5
- package/development/core/testing/mocha-extensions.js +1 -1
- package/development/core/testing/wait-for-condition.js +1 -1
- package/development/core/testing/wait-for-image-ready.js +2 -3
- package/development/core/testing/wait-for-render.js +2 -3
- package/development/date-input/date-input.component.d.ts +16 -1
- package/development/date-input/date-input.component.d.ts.map +1 -1
- package/development/date-input/date-input.component.js +28 -11
- package/development/datepicker/common/datepicker-button.d.ts +31 -20
- package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/development/datepicker/common/datepicker-button.js +103 -90
- package/development/datepicker/common.d.ts +0 -1
- package/development/datepicker/common.d.ts.map +1 -1
- package/development/datepicker/common.js +4 -6
- package/development/datepicker/datepicker/datepicker.component.d.ts +23 -102
- package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
- package/development/datepicker/datepicker/datepicker.component.js +94 -337
- package/development/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts +2 -2
- package/development/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts.map +1 -1
- package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +18 -6
- package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts +2 -2
- package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts.map +1 -1
- package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +18 -6
- package/development/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts +6 -26
- package/development/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts.map +1 -1
- package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +137 -224
- package/development/datepicker.js +3 -5
- package/development/dialog/dialog/dialog.component.d.ts +7 -16
- package/development/dialog/dialog/dialog.component.d.ts.map +1 -1
- package/development/dialog/dialog/dialog.component.js +78 -149
- package/development/dialog/dialog-actions/dialog-actions.component.d.ts +2 -2
- package/development/dialog/dialog-actions/dialog-actions.component.d.ts.map +1 -1
- package/development/dialog/dialog-actions/dialog-actions.component.js +20 -17
- package/development/dialog/dialog-content/dialog-content.component.d.ts.map +1 -1
- package/development/dialog/dialog-content/dialog-content.component.js +5 -46
- package/development/dialog/dialog-title/dialog-title.component.d.ts +2 -26
- package/development/dialog/dialog-title/dialog-title.component.d.ts.map +1 -1
- package/development/dialog/dialog-title/dialog-title.component.js +12 -179
- package/development/divider/divider.component.js +2 -2
- package/development/expansion-panel/expansion-panel/expansion-panel.component.js +9 -13
- package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +2 -2
- package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +5 -6
- package/development/file-selector/common/file-selector-common.js +2 -3
- package/development/file-selector/file-selector/file-selector.component.js +1 -1
- package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
- package/development/flip-card/flip-card/flip-card.component.js +7 -13
- package/development/flip-card/flip-card-details/flip-card-details.component.js +3 -4
- package/development/flip-card/flip-card-summary/flip-card-summary.component.js +3 -4
- package/development/footer/footer.component.js +1 -1
- package/development/form-error/form-error.component.js +3 -4
- package/development/form-field/form-field/form-field.component.d.ts +1 -1
- package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
- package/development/form-field/form-field/form-field.component.js +39 -67
- package/development/form-field/form-field-clear/form-field-clear.component.d.ts.map +1 -1
- package/development/form-field/form-field-clear/form-field-clear.component.js +6 -8
- package/development/header/common/header-action-common.js +1 -1
- package/development/header/header/header.component.js +5 -8
- package/development/header/header-button/header-button.component.js +1 -1
- package/development/header/header-link/header-link.component.js +1 -1
- package/development/icon/icon-base.d.ts +5 -3
- package/development/icon/icon-base.d.ts.map +1 -1
- package/development/icon/icon-base.js +4 -7
- package/development/icon/icon-name-mixin.js +1 -1
- package/development/icon/icon-request.js +2 -3
- package/development/icon/icon-validate.js +1 -1
- package/development/icon/icon.component.d.ts +1 -2
- package/development/icon/icon.component.d.ts.map +1 -1
- package/development/icon/icon.component.js +8 -19
- package/development/image/image.component.js +7 -9
- package/development/journey-header/journey-header.component.d.ts +5 -5
- package/development/journey-header/journey-header.component.d.ts.map +1 -1
- package/development/journey-header/journey-header.component.js +26 -40
- package/development/lead-container/lead-container.component.js +1 -1
- package/development/link/block-link/block-link.component.js +1 -1
- package/development/link/block-link-button/block-link-button.component.js +1 -1
- package/development/link/block-link-static/block-link-static.component.js +1 -1
- package/development/link/common/block-link-common.js +1 -1
- package/development/link/common/inline-link-common.js +1 -1
- package/development/link/link/link.component.js +1 -1
- package/development/link/link-button/link-button.component.js +1 -1
- package/development/link/link-static/link-static.component.js +1 -1
- package/development/link-common-DPLJx5Uo.js +1 -1
- package/development/link-list/common/link-list-base.js +1 -1
- package/development/link-list/link-list/link-list.component.js +1 -1
- package/development/link-list/link-list-anchor/link-list-anchor.component.js +1 -1
- package/development/loading-indicator/loading-indicator.component.js +1 -1
- package/development/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
- package/development/logo/logo.component.js +1 -1
- package/development/map-container/map-container.component.js +2 -3
- package/development/menu/common/menu-action-common.js +1 -1
- package/development/menu/menu/menu.component.js +17 -25
- package/development/menu/menu-button/menu-button.component.js +1 -1
- package/development/menu/menu-link/menu-link.component.js +1 -1
- package/development/message/message.component.d.ts +4 -8
- package/development/message/message.component.d.ts.map +1 -1
- package/development/message/message.component.js +12 -54
- package/development/navigation/common/navigation-action-common.js +3 -5
- package/development/navigation/navigation/navigation.component.js +19 -35
- package/development/navigation/navigation-button/navigation-button.component.js +1 -1
- package/development/navigation/navigation-link/navigation-link.component.js +1 -1
- package/development/navigation/navigation-list/navigation-list.component.js +1 -1
- package/development/navigation/navigation-marker/navigation-marker.component.js +4 -6
- package/development/navigation/navigation-section/navigation-section.component.d.ts +1 -1
- package/development/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
- package/development/navigation/navigation-section/navigation-section.component.js +27 -37
- package/development/notification/notification.component.d.ts +7 -9
- package/development/notification/notification.component.d.ts.map +1 -1
- package/development/notification/notification.component.js +47 -77
- package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
- package/development/option/optgroup/optgroup-base-element.js +8 -14
- package/development/option/optgroup/optgroup.component.js +6 -10
- package/development/option/option/option-base-element.js +3 -4
- package/development/option/option/option.component.js +7 -10
- package/development/overlay/overlay-base-element.d.ts +24 -6
- package/development/overlay/overlay-base-element.d.ts.map +1 -1
- package/development/overlay/overlay-base-element.js +114 -15
- package/development/overlay/overlay.component.d.ts +2 -12
- package/development/overlay/overlay.component.d.ts.map +1 -1
- package/development/overlay/overlay.component.js +33 -98
- package/development/paginator/common/paginator-common.js +1 -1
- package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
- package/development/paginator/paginator/paginator.component.js +2 -3
- package/development/popover/popover/popover.component.d.ts +45 -34
- package/development/popover/popover/popover.component.d.ts.map +1 -1
- package/development/popover/popover/popover.component.js +215 -172
- package/development/popover/popover-trigger/popover-trigger.component.js +1 -1
- package/development/popover/popover.js +2 -1
- package/development/popover.js +2 -1
- package/development/radio-button/common/radio-button-common.js +6 -10
- package/development/radio-button/radio-button/radio-button.component.js +2 -5
- package/development/radio-button/radio-button-group/radio-button-group.component.d.ts +1 -1
- package/development/radio-button/radio-button-group/radio-button-group.component.d.ts.map +1 -1
- package/development/radio-button/radio-button-group/radio-button-group.component.js +8 -24
- package/development/radio-button/radio-button-panel/radio-button-panel.component.js +3 -7
- package/development/screen-reader-only/screen-reader-only.component.js +1 -1
- package/development/select/select.component.js +26 -49
- package/development/selection-expansion-panel/selection-expansion-panel.component.js +7 -11
- package/development/sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
- package/development/sidebar/icon-sidebar-button/icon-sidebar-button.component.js +1 -1
- package/development/sidebar/icon-sidebar-container/icon-sidebar-container.component.js +4 -7
- package/development/sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
- package/development/sidebar/icon-sidebar-link/icon-sidebar-link.component.js +1 -1
- package/development/sidebar/sidebar/sidebar.component.js +9 -16
- package/development/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts +0 -1
- package/development/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts.map +1 -1
- package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +3 -8
- package/development/sidebar/sidebar-container/sidebar-container.component.js +9 -13
- package/development/sidebar/sidebar-content/sidebar-content.component.js +1 -1
- package/development/sidebar/sidebar-title/sidebar-title.component.d.ts +2 -0
- package/development/sidebar/sidebar-title/sidebar-title.component.d.ts.map +1 -1
- package/development/sidebar/sidebar-title/sidebar-title.component.js +3 -9
- package/development/signet/signet.component.js +1 -1
- package/development/skiplink-list/skiplink-list.component.d.ts.map +1 -1
- package/development/skiplink-list/skiplink-list.component.js +19 -10
- package/development/slider/slider.component.js +4 -6
- package/development/status/status.component.d.ts +4 -7
- package/development/status/status.component.d.ts.map +1 -1
- package/development/status/status.component.js +23 -57
- package/development/stepper/step/step.component.d.ts +2 -2
- package/development/stepper/step/step.component.d.ts.map +1 -1
- package/development/stepper/step/step.component.js +20 -22
- package/development/stepper/step-label/step-label.component.d.ts +3 -4
- package/development/stepper/step-label/step-label.component.d.ts.map +1 -1
- package/development/stepper/step-label/step-label.component.js +20 -24
- package/development/stepper/stepper/stepper.component.js +16 -29
- package/development/table/table-wrapper/table-wrapper.component.js +2 -7
- package/development/tabs/tab/tab.component.js +1 -1
- package/development/tabs/tab-group/tab-group.component.js +23 -38
- package/development/tabs/tab-label/tab-label.component.js +1 -1
- package/development/tag/tag/tag.component.js +7 -13
- package/development/tag/tag-group/tag-group.component.js +5 -13
- package/development/teaser/teaser.component.d.ts +6 -10
- package/development/teaser/teaser.component.d.ts.map +1 -1
- package/development/teaser/teaser.component.js +48 -76
- package/development/teaser-hero/teaser-hero.component.js +1 -1
- package/development/teaser-product/common/teaser-product-common.js +1 -1
- package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
- package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +1 -1
- package/development/time-input/time-input.component.js +10 -14
- package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
- package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.d.ts.map +1 -1
- package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +2 -5
- package/development/title/title-base.d.ts +0 -8
- package/development/title/title-base.d.ts.map +1 -1
- package/development/title/title-base.js +17 -49
- package/development/title/title.component.d.ts +2 -0
- package/development/title/title.component.d.ts.map +1 -1
- package/development/title/title.component.js +9 -14
- package/development/toast/toast.component.d.ts.map +1 -1
- package/development/toast/toast.component.js +7 -16
- package/development/toggle/toggle/toggle.component.js +8 -12
- package/development/toggle/toggle-option/toggle-option.component.d.ts +1 -1
- package/development/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
- package/development/toggle/toggle-option/toggle-option.component.js +10 -17
- package/development/toggle-check/toggle-check.component.js +1 -1
- package/development/train/train/train.component.js +1 -1
- package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
- package/development/train/train-formation/train-formation.component.js +5 -7
- package/development/train/train-wagon/train-wagon.component.js +1 -1
- package/development/visual-checkbox/visual-checkbox.component.js +1 -1
- package/dialog/dialog/dialog.component.d.ts +7 -16
- package/dialog/dialog/dialog.component.d.ts.map +1 -1
- package/dialog/dialog/dialog.component.js +57 -87
- package/dialog/dialog-actions/dialog-actions.component.d.ts +2 -2
- package/dialog/dialog-actions/dialog-actions.component.d.ts.map +1 -1
- package/dialog/dialog-actions/dialog-actions.component.js +16 -16
- package/dialog/dialog-content/dialog-content.component.d.ts.map +1 -1
- package/dialog/dialog-content/dialog-content.component.js +14 -19
- package/dialog/dialog-title/dialog-title.component.d.ts +2 -26
- package/dialog/dialog-title/dialog-title.component.d.ts.map +1 -1
- package/dialog/dialog-title/dialog-title.component.js +16 -111
- package/divider/divider.component.js +3 -3
- package/expansion-panel/expansion-panel/expansion-panel.component.js +5 -9
- package/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
- package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +30 -31
- package/file-selector/common/file-selector-common.js +1 -2
- package/flip-card/flip-card/flip-card.component.js +48 -54
- package/flip-card/flip-card-details/flip-card-details.component.js +15 -16
- package/flip-card/flip-card-summary/flip-card-summary.component.js +19 -20
- package/form-error/form-error.component.js +13 -14
- package/form-field/form-field/form-field.component.d.ts +1 -1
- package/form-field/form-field/form-field.component.d.ts.map +1 -1
- package/form-field/form-field/form-field.component.js +149 -168
- package/form-field/form-field-clear/form-field-clear.component.d.ts.map +1 -1
- package/form-field/form-field-clear/form-field-clear.component.js +19 -21
- package/header/header/header.component.js +26 -29
- package/icon/icon-base.d.ts +5 -3
- package/icon/icon-base.d.ts.map +1 -1
- package/icon/icon-base.js +32 -34
- package/icon/icon-request.js +10 -11
- package/icon/icon.component.d.ts +1 -2
- package/icon/icon.component.d.ts.map +1 -1
- package/icon/icon.component.js +37 -37
- package/icon-sidebar-button-common-CM-ueEhH.js +7 -0
- package/image/image.component.js +4 -6
- package/journey-header/journey-header.component.d.ts +5 -5
- package/journey-header/journey-header.component.d.ts.map +1 -1
- package/journey-header/journey-header.component.js +50 -63
- package/map-container/map-container.component.js +1 -2
- package/menu/menu/menu.component.js +47 -55
- package/message/message.component.d.ts +4 -8
- package/message/message.component.d.ts.map +1 -1
- package/message/message.component.js +18 -47
- package/navigation/common/navigation-action-common.js +19 -21
- package/navigation/navigation/navigation.component.js +73 -92
- package/navigation/navigation-marker/navigation-marker.component.js +26 -28
- package/navigation/navigation-section/navigation-section.component.d.ts +1 -1
- package/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
- package/navigation/navigation-section/navigation-section.component.js +72 -82
- package/notification/notification.component.d.ts +7 -9
- package/notification/notification.component.d.ts.map +1 -1
- package/notification/notification.component.js +77 -95
- package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
- package/option/optgroup/optgroup-base-element.js +36 -38
- package/option/optgroup/optgroup.component.js +16 -20
- package/option/option/option-base-element.js +3 -4
- package/option/option/option.component.js +26 -29
- package/overlay/overlay-base-element.d.ts +24 -6
- package/overlay/overlay-base-element.d.ts.map +1 -1
- package/overlay/overlay-base-element.js +98 -51
- package/overlay/overlay.component.d.ts +2 -12
- package/overlay/overlay.component.d.ts.map +1 -1
- package/overlay/overlay.component.js +57 -95
- package/package.json +1 -1
- package/paginator/paginator/paginator.component.js +3 -4
- package/popover/popover/popover.component.d.ts +45 -34
- package/popover/popover/popover.component.d.ts.map +1 -1
- package/popover/popover/popover.component.js +194 -168
- package/popover/popover-trigger/popover-trigger.component.js +1 -1
- package/popover/popover.js +2 -1
- package/popover.js +5 -4
- package/radio-button/common/radio-button-common.js +11 -15
- package/radio-button/radio-button/radio-button.component.js +16 -19
- package/radio-button/radio-button-group/radio-button-group.component.d.ts +1 -1
- package/radio-button/radio-button-group/radio-button-group.component.d.ts.map +1 -1
- package/radio-button/radio-button-group/radio-button-group.component.js +27 -43
- package/radio-button/radio-button-panel/radio-button-panel.component.js +33 -37
- package/select/select.component.js +94 -117
- package/selection-expansion-panel/selection-expansion-panel.component.js +35 -39
- package/sidebar/common.js +1 -1
- package/sidebar/icon-sidebar-container/icon-sidebar-container.component.js +10 -13
- package/sidebar/sidebar/sidebar.component.js +62 -69
- package/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts +0 -1
- package/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts.map +1 -1
- package/sidebar/sidebar-close-button/sidebar-close-button.component.js +18 -18
- package/sidebar/sidebar-container/sidebar-container.component.js +29 -33
- package/sidebar/sidebar-title/sidebar-title.component.d.ts +2 -0
- package/sidebar/sidebar-title/sidebar-title.component.d.ts.map +1 -1
- package/sidebar/sidebar-title/sidebar-title.component.js +16 -16
- package/sidebar.js +1 -1
- package/skiplink-list/skiplink-list.component.d.ts.map +1 -1
- package/skiplink-list/skiplink-list.component.js +36 -39
- package/slider/slider.component.js +11 -13
- package/standard-theme.css +29 -25
- package/status/status.component.d.ts +4 -7
- package/status/status.component.d.ts.map +1 -1
- package/status/status.component.js +34 -50
- package/stepper/step/step.component.d.ts +2 -2
- package/stepper/step/step.component.d.ts.map +1 -1
- package/stepper/step/step.component.js +29 -30
- package/stepper/step-label/step-label.component.d.ts +3 -4
- package/stepper/step-label/step-label.component.d.ts.map +1 -1
- package/stepper/step-label/step-label.component.js +22 -25
- package/stepper/stepper/stepper.component.js +72 -86
- package/table/table-wrapper/table-wrapper.component.js +17 -18
- package/table.css +0 -25
- package/tabs/tab-group/tab-group.component.js +77 -92
- package/tabs/tab-label/tab-label.component.js +12 -12
- package/tag/tag/tag.component.js +49 -55
- package/tag/tag-group/tag-group.component.js +37 -45
- package/teaser/teaser.component.d.ts +6 -10
- package/teaser/teaser.component.d.ts.map +1 -1
- package/teaser/teaser.component.js +45 -68
- package/teaser-product/common.js +1 -1
- package/teaser-product/teaser-product/teaser-product.component.js +1 -1
- package/teaser-product-common-C8oSkIxy.js +5 -0
- package/teaser-product.js +1 -1
- package/time-input/time-input.component.js +29 -33
- package/timetable-occupancy-icon/timetable-occupancy-icon.component.d.ts.map +1 -1
- package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +22 -25
- package/title/title-base.d.ts +0 -8
- package/title/title-base.d.ts.map +1 -1
- package/title/title-base.js +34 -53
- package/title/title.component.d.ts +2 -0
- package/title/title.component.d.ts.map +1 -1
- package/title/title.component.js +9 -9
- package/toast/toast.component.d.ts.map +1 -1
- package/toast/toast.component.js +6 -9
- package/toggle/toggle/toggle.component.js +27 -31
- package/toggle/toggle-option/toggle-option.component.d.ts +1 -1
- package/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
- package/toggle/toggle-option/toggle-option.component.js +44 -51
- package/train/train-formation/train-formation.component.js +41 -43
- package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +0 -530
- package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +0 -1123
- package/datepicker/common/datepicker-association-controllers.d.ts +0 -21
- package/datepicker/common/datepicker-association-controllers.d.ts.map +0 -1
- package/datepicker/common/datepicker-association-controllers.js +0 -58
- package/development/datepicker/common/datepicker-association-controllers.d.ts +0 -21
- package/development/datepicker/common/datepicker-association-controllers.d.ts.map +0 -1
- package/development/datepicker/common/datepicker-association-controllers.js +0 -82
- package/icon-sidebar-button-common-DG8bnrBu.js +0 -7
- package/teaser-product-common-CpMAlYEp.js +0 -5
|
@@ -13,7 +13,7 @@ import { SbbLanguageController } from "../../core/controllers.js";
|
|
|
13
13
|
import { slotState, forceType } from "../../core/decorators.js";
|
|
14
14
|
import { isLean } from "../../core/dom.js";
|
|
15
15
|
import { i18nOptional } from "../../core/i18n.js";
|
|
16
|
-
import { SbbNegativeMixin, SbbElementInternalsMixin, SbbHydrationMixin } from "../../core/mixins.js";
|
|
16
|
+
import { SbbNegativeMixin, SbbElementInternalsMixin, SbbHydrationMixin, removeAriaElements, appendAriaElements } from "../../core/mixins.js";
|
|
17
17
|
import "../../icon.js";
|
|
18
18
|
const style = css`@charset "UTF-8";
|
|
19
19
|
*,
|
|
@@ -282,7 +282,7 @@ const style = css`@charset "UTF-8";
|
|
|
282
282
|
}
|
|
283
283
|
|
|
284
284
|
::slotted(sbb-datepicker-toggle) {
|
|
285
|
-
|
|
285
|
+
padding-block-end: calc((var(--sbb-form-field-min-height) - var(--sbb-size-icon-ui-small)) / 2);
|
|
286
286
|
}
|
|
287
287
|
|
|
288
288
|
@media (forced-colors: active) {
|
|
@@ -406,7 +406,6 @@ const style = css`@charset "UTF-8";
|
|
|
406
406
|
margin-block-start: var(--sbb-form-field-error-padding-block-start-override, var(--sbb-form-field-error-padding-block-start));
|
|
407
407
|
}`;
|
|
408
408
|
let nextId = 0;
|
|
409
|
-
let nextFormFieldErrorId = 0;
|
|
410
409
|
const patchedInputs = /* @__PURE__ */ new WeakMap();
|
|
411
410
|
const nativeInputElements = ["input", "textarea", "select"];
|
|
412
411
|
let SbbFormFieldElement = (() => {
|
|
@@ -448,7 +447,6 @@ let SbbFormFieldElement = (() => {
|
|
|
448
447
|
let __label_extraInitializers = [];
|
|
449
448
|
_a = class extends _classSuper {
|
|
450
449
|
constructor() {
|
|
451
|
-
var _a2, _b;
|
|
452
450
|
super();
|
|
453
451
|
__privateAdd(this, _errorSpace_accessor_storage);
|
|
454
452
|
__privateAdd(this, _optional_accessor_storage);
|
|
@@ -497,14 +495,14 @@ let SbbFormFieldElement = (() => {
|
|
|
497
495
|
}
|
|
498
496
|
}) : null;
|
|
499
497
|
this._inputFormAbortController = new AbortController();
|
|
500
|
-
|
|
501
|
-
if (event.target === this.inputElement || event.target === this.inputElement
|
|
498
|
+
this.addEventListener?.("focusin", (event) => {
|
|
499
|
+
if (event.target === this.inputElement || event.target === this.inputElement?.inputElement) {
|
|
502
500
|
this.internals.states.add("focus");
|
|
503
501
|
this.internals.states.add(`focus-origin-${sbbInputModalityDetector.mostRecentModality}`);
|
|
504
502
|
}
|
|
505
503
|
}, { passive: true });
|
|
506
|
-
|
|
507
|
-
if (event.target === this.inputElement || event.target === this.inputElement
|
|
504
|
+
this.addEventListener?.("focusout", (event) => {
|
|
505
|
+
if (event.target === this.inputElement || event.target === this.inputElement?.inputElement) {
|
|
508
506
|
this._checkAndUpdateInputEmpty();
|
|
509
507
|
this.internals.states.delete("focus");
|
|
510
508
|
for (const state2 of this.internals.states) {
|
|
@@ -618,24 +616,22 @@ let SbbFormFieldElement = (() => {
|
|
|
618
616
|
}
|
|
619
617
|
}
|
|
620
618
|
disconnectedCallback() {
|
|
621
|
-
var _a2, _b;
|
|
622
619
|
super.disconnectedCallback();
|
|
623
|
-
|
|
620
|
+
this._formFieldAttributeObserver?.disconnect();
|
|
624
621
|
this._inputFormAbortController.abort();
|
|
625
|
-
if (
|
|
622
|
+
if (this._input?.localName === "input") {
|
|
626
623
|
this._unpatchInputValue();
|
|
627
624
|
}
|
|
628
625
|
}
|
|
629
626
|
_handleWrapperClick(event) {
|
|
630
|
-
var _a2, _b;
|
|
631
627
|
if (this._isElementFocusExcluded(event)) {
|
|
632
628
|
return;
|
|
633
629
|
}
|
|
634
630
|
if (event.target.localName !== "label") {
|
|
635
|
-
if (
|
|
631
|
+
if (this._input?.localName === "sbb-select" && event.target.localName !== "sbb-select") {
|
|
636
632
|
this._input.click();
|
|
637
633
|
}
|
|
638
|
-
|
|
634
|
+
this._input?.focus();
|
|
639
635
|
}
|
|
640
636
|
}
|
|
641
637
|
_isElementFocusExcluded(event) {
|
|
@@ -661,7 +657,6 @@ let SbbFormFieldElement = (() => {
|
|
|
661
657
|
this.querySelectorAll("sbb-form-error:not([slot])").forEach((e) => e.setAttribute("slot", "error"));
|
|
662
658
|
}
|
|
663
659
|
_connectInputElement() {
|
|
664
|
-
var _a2, _b;
|
|
665
660
|
const inputCandidates = Array.from(this.querySelectorAll("*:not([slot],sbb-chip-group)"));
|
|
666
661
|
const newInput = inputCandidates.find((e) => this._isInputElement(e)) || inputCandidates[0];
|
|
667
662
|
if (newInput === this._input) {
|
|
@@ -677,7 +672,7 @@ let SbbFormFieldElement = (() => {
|
|
|
677
672
|
return;
|
|
678
673
|
}
|
|
679
674
|
this._input = newInput;
|
|
680
|
-
this.
|
|
675
|
+
this._assignErrorMessageElements();
|
|
681
676
|
this._readInputState();
|
|
682
677
|
this._registerInputFormListener();
|
|
683
678
|
this._checkAndUpdateInputEmpty();
|
|
@@ -688,8 +683,8 @@ let SbbFormFieldElement = (() => {
|
|
|
688
683
|
} else if ((this._input.localName === "select" || this._input.localName === "sbb-select") && !this.hasUpdated) {
|
|
689
684
|
this.hydrationComplete.then(() => this.requestUpdate());
|
|
690
685
|
}
|
|
691
|
-
|
|
692
|
-
|
|
686
|
+
this._formFieldAttributeObserver?.disconnect();
|
|
687
|
+
this._formFieldAttributeObserver?.observe(this._input, {
|
|
693
688
|
attributes: true,
|
|
694
689
|
attributeFilter: ["readonly", "disabled", "form", "class", "data-expanded"]
|
|
695
690
|
});
|
|
@@ -697,22 +692,20 @@ let SbbFormFieldElement = (() => {
|
|
|
697
692
|
this._syncLabelInputReferences();
|
|
698
693
|
}
|
|
699
694
|
_syncLabelInputReferences() {
|
|
700
|
-
var _a2, _b, _c, _d;
|
|
701
695
|
if (!this._input || !this._label) {
|
|
702
696
|
return;
|
|
703
697
|
}
|
|
704
|
-
if (nativeInputElements.includes(this._input.localName) ||
|
|
705
|
-
|
|
698
|
+
if (nativeInputElements.includes(this._input.localName) || customElements.get(this._input.localName)?.formAssociated) {
|
|
699
|
+
this._input.id ||= `sbb-form-field-input-${nextId++}`;
|
|
706
700
|
this._label.htmlFor = this._input.id;
|
|
707
701
|
} else {
|
|
708
|
-
|
|
709
|
-
const labelledby =
|
|
702
|
+
this._label.id ||= `sbb-form-field-label-${nextId++}`;
|
|
703
|
+
const labelledby = this._input.getAttribute("aria-labelledby")?.split(" ").filter((l) => !!l && l !== this._label.id) ?? [];
|
|
710
704
|
this._input.setAttribute("aria-labelledby", [...labelledby, this._label.id].join(" "));
|
|
711
705
|
}
|
|
712
706
|
}
|
|
713
707
|
_isInputElement(input) {
|
|
714
|
-
|
|
715
|
-
return nativeInputElements.includes(input.localName) || !!((_a2 = customElements.get(input.localName)) == null ? void 0 : _a2.formAssociated);
|
|
708
|
+
return nativeInputElements.includes(input.localName) || !!customElements.get(input.localName)?.formAssociated;
|
|
716
709
|
}
|
|
717
710
|
_readInputState() {
|
|
718
711
|
this.toggleState("readonly", this._input.hasAttribute("readonly"));
|
|
@@ -720,12 +713,11 @@ let SbbFormFieldElement = (() => {
|
|
|
720
713
|
this.toggleState("has-popup-open", this._input.hasAttribute("data-expanded"));
|
|
721
714
|
}
|
|
722
715
|
_registerInputFormListener() {
|
|
723
|
-
var _a2, _b;
|
|
724
716
|
this._inputFormAbortController.abort();
|
|
725
717
|
const { signal } = this._inputFormAbortController = new AbortController();
|
|
726
|
-
const form =
|
|
718
|
+
const form = this._input?.form ?? this._input?.closest("form");
|
|
727
719
|
const resetHandler = () => setTimeout(() => this.reset());
|
|
728
|
-
form
|
|
720
|
+
form?.addEventListener("reset", resetHandler, { signal });
|
|
729
721
|
}
|
|
730
722
|
// We need to patch the value property of the HTMLInputElement in order
|
|
731
723
|
// to be able to reset the floating label in the empty state.
|
|
@@ -761,20 +753,18 @@ let SbbFormFieldElement = (() => {
|
|
|
761
753
|
}
|
|
762
754
|
}
|
|
763
755
|
_checkAndUpdateInputEmpty() {
|
|
764
|
-
|
|
765
|
-
this.toggleState("empty", this._floatingLabelSupportedInputElements.includes((_a2 = this._input) == null ? void 0 : _a2.localName) && this._isInputEmpty());
|
|
756
|
+
this.toggleState("empty", this._floatingLabelSupportedInputElements.includes(this._input?.localName) && this._isInputEmpty());
|
|
766
757
|
}
|
|
767
758
|
_isInputEmpty() {
|
|
768
|
-
var _a2, _b, _c, _d, _e, _f, _g;
|
|
769
759
|
const chipGroupElem = this.querySelector("sbb-chip-group");
|
|
770
760
|
if (chipGroupElem) {
|
|
771
761
|
return this._isInputValueEmpty() && (Array.isArray(chipGroupElem.value) ? chipGroupElem.value.length === 0 : !chipGroupElem.querySelector("sbb-chip"));
|
|
772
762
|
} else if (this._input instanceof HTMLInputElement) {
|
|
773
763
|
return this._floatingLabelSupportedInputTypes.includes(this._input.type) && this._isInputValueEmpty();
|
|
774
764
|
} else if (this._input instanceof HTMLSelectElement) {
|
|
775
|
-
return
|
|
776
|
-
} else if (
|
|
777
|
-
return
|
|
765
|
+
return this._input.selectedOptions?.item(0)?.label?.trim() === "";
|
|
766
|
+
} else if (this._input?.localName === "sbb-select") {
|
|
767
|
+
return this._input.getDisplayValue?.()?.trim() === "";
|
|
778
768
|
} else {
|
|
779
769
|
return this._isInputValueEmpty();
|
|
780
770
|
}
|
|
@@ -787,35 +777,21 @@ let SbbFormFieldElement = (() => {
|
|
|
787
777
|
* It is used internally to set the aria-describedby attribute for the slotted input referencing available <sbb-form-error> instances.
|
|
788
778
|
*/
|
|
789
779
|
_onSlotErrorChange(event) {
|
|
790
|
-
const
|
|
791
|
-
|
|
792
|
-
|
|
780
|
+
const errorElements = event.target.assignedElements();
|
|
781
|
+
if (this._input && this._input.ariaDescribedByElements?.length) {
|
|
782
|
+
this._input.ariaDescribedByElements = removeAriaElements(this._input.ariaDescribedByElements, ...this._errorElements ?? []);
|
|
783
|
+
}
|
|
784
|
+
this._errorElements = errorElements;
|
|
793
785
|
for (const el of this._errorElements) {
|
|
794
|
-
el.
|
|
795
|
-
el.role || (el.role = "status");
|
|
786
|
+
el.role ||= "status";
|
|
796
787
|
}
|
|
797
|
-
this.
|
|
788
|
+
this._assignErrorMessageElements();
|
|
798
789
|
this.toggleState("has-error", !!this._errorElements.length);
|
|
799
790
|
this._syncNegative();
|
|
800
791
|
}
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
const ids = ariaDescribedby.split(" ").filter((id) => !!id && !obsoleteIds.includes(id)).filter((v, i, a) => a.indexOf(v) === i);
|
|
805
|
-
if (this._errorElements.length) {
|
|
806
|
-
this._errorElements.forEach((e) => {
|
|
807
|
-
if (!ids.includes(e.id)) {
|
|
808
|
-
ids.push(e.id);
|
|
809
|
-
}
|
|
810
|
-
});
|
|
811
|
-
}
|
|
812
|
-
const newAriaDescribedby = ids.join(" ");
|
|
813
|
-
if (this._input && newAriaDescribedby !== ariaDescribedby) {
|
|
814
|
-
if (newAriaDescribedby) {
|
|
815
|
-
this._input.setAttribute("aria-describedby", newAriaDescribedby);
|
|
816
|
-
} else {
|
|
817
|
-
this._input.removeAttribute("aria-describedby");
|
|
818
|
-
}
|
|
792
|
+
_assignErrorMessageElements() {
|
|
793
|
+
if (this._input) {
|
|
794
|
+
this._input.ariaDescribedByElements = appendAriaElements(this._input.ariaDescribedByElements, ...this._errorElements);
|
|
819
795
|
}
|
|
820
796
|
}
|
|
821
797
|
/** Manually reset the form field. Currently, this only resets the floating label. */
|
|
@@ -824,23 +800,19 @@ let SbbFormFieldElement = (() => {
|
|
|
824
800
|
}
|
|
825
801
|
/** Manually clears the input value. It only works for inputs, selects are not supported. */
|
|
826
802
|
clear() {
|
|
827
|
-
|
|
828
|
-
if (((_a2 = this._input) == null ? void 0 : _a2.localName) !== "input") {
|
|
803
|
+
if (this._input?.localName !== "input") {
|
|
829
804
|
return;
|
|
830
805
|
}
|
|
831
806
|
this._input.value = "";
|
|
832
807
|
this._checkAndUpdateInputEmpty();
|
|
833
808
|
}
|
|
834
809
|
_syncNegative() {
|
|
835
|
-
|
|
836
|
-
(_a2 = this.querySelectorAll) == null ? void 0 : _a2.call(this, "sbb-form-error,sbb-mini-button,sbb-popover-trigger,sbb-form-field-clear,sbb-datepicker-next-day,sbb-datepicker-previous-day,sbb-datepicker-toggle,sbb-select,sbb-autocomplete,sbb-autocomplete-grid,sbb-chip-group").forEach((element) => element.toggleAttribute("negative", this.negative));
|
|
810
|
+
this.querySelectorAll?.("sbb-form-error,sbb-mini-button,sbb-popover-trigger,sbb-form-field-clear,sbb-datepicker-next-day,sbb-datepicker-previous-day,sbb-datepicker-toggle,sbb-select,sbb-autocomplete,sbb-autocomplete-grid,sbb-chip-group").forEach((element) => element.toggleAttribute("negative", this.negative));
|
|
837
811
|
}
|
|
838
812
|
_syncSize() {
|
|
839
|
-
|
|
840
|
-
(_a2 = this.querySelectorAll) == null ? void 0 : _a2.call(this, "sbb-autocomplete,sbb-autocomplete-grid,sbb-select").forEach((element) => element.size = this.size === "s" ? "s" : "m");
|
|
813
|
+
this.querySelectorAll?.("sbb-autocomplete,sbb-autocomplete-grid,sbb-select").forEach((element) => element.size = this.size === "s" ? "s" : "m");
|
|
841
814
|
}
|
|
842
815
|
render() {
|
|
843
|
-
var _a2;
|
|
844
816
|
return html`
|
|
845
817
|
<div class="sbb-form-field__space-wrapper">
|
|
846
818
|
${/* Queried by id from the autocomplete/select to be used as the anchor element */
|
|
@@ -858,7 +830,7 @@ let SbbFormFieldElement = (() => {
|
|
|
858
830
|
<div class="sbb-form-field__input">
|
|
859
831
|
<slot @slotchange=${this._onSlotInputChange}></slot>
|
|
860
832
|
</div>
|
|
861
|
-
${this.hasUpdated && ["select", "sbb-select"].includes(
|
|
833
|
+
${this.hasUpdated && ["select", "sbb-select"].includes(this._input?.localName) ? html`<sbb-icon
|
|
862
834
|
name="chevron-small-down-small"
|
|
863
835
|
class="sbb-form-field__select-input-icon"
|
|
864
836
|
></sbb-icon>` : nothing}
|
|
@@ -923,4 +895,4 @@ let SbbFormFieldElement = (() => {
|
|
|
923
895
|
export {
|
|
924
896
|
SbbFormFieldElement
|
|
925
897
|
};
|
|
926
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIExpdEVsZW1lbnQsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9hdXRvY29tcGxldGUuanMnO1xuaW1wb3J0IHsgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlLCBzbG90U3RhdGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaXNMZWFuIH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgaTE4bk9wdGlvbmFsIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7XG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbixcbiAgU2JiSHlkcmF0aW9uTWl4aW4sXG4gIFNiYk5lZ2F0aXZlTWl4aW4sXG59IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiU2VsZWN0RWxlbWVudCB9IGZyb20gJy4uLy4uL3NlbGVjdC5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2Zvcm0tZmllbGQuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9pY29uLmpzJztcblxubGV0IG5leHRJZCA9IDA7XG5sZXQgbmV4dEZvcm1GaWVsZEVycm9ySWQgPSAwO1xuXG5jb25zdCBwYXRjaGVkSW5wdXRzID0gbmV3IFdlYWtNYXA8SFRNTElucHV0RWxlbWVudCwgUHJvcGVydHlEZXNjcmlwdG9yPigpO1xuY29uc3QgbmF0aXZlSW5wdXRFbGVtZW50cyA9IFsnaW5wdXQnLCAndGV4dGFyZWEnLCAnc2VsZWN0J107XG5cbi8qKlxuICogSXQgd3JhcHMgYW4gaW5wdXQgZWxlbWVudCBhZGRpbmcgbGFiZWwsIGVycm9ycywgaWNvbiwgZXRjLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoaXMgc2xvdCB0byByZW5kZXIgYW4gaW5wdXQvc2VsZWN0IG9yIGEgc3VwcG9ydGVkIG5vbi1uYXRpdmUgZWxlbWVudC5cbiAqIEBzbG90IGxhYmVsIC0gVXNlIHRoaXMgc2xvdCB0byByZW5kZXIgYSBsYWJlbC5cbiAqIEBzbG90IHByZWZpeCAtIFVzZSB0aGlzIHNsb3QgdG8gcmVuZGVyIGFuIGljb24gb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgaW5wdXQuXG4gKiBAc2xvdCBzdWZmaXggLSBVc2UgdGhpcyBzbG90IHRvIHJlbmRlciBhbiBpY29uIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSBpbnB1dC5cbiAqIEBzbG90IGVycm9yIC0gVXNlIHRoaXMgc2xvdCB0byByZW5kZXIgYW4gZXJyb3IuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1mb3JtLWZpZWxkJylcbkBzbG90U3RhdGUoKVxuY2xhc3MgU2JiRm9ybUZpZWxkRWxlbWVudCBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oXG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLy8gTGlzdCBvZiBlbGVtZW50cyB0aGF0IHNob3VsZCBub3QgZm9jdXMgaW5wdXQgb24gY2xpY2tcbiAgcHJpdmF0ZSByZWFkb25seSBfZXhjbHVkZWRGb2N1c0VsZW1lbnRzID0gWydidXR0b24nLCAnc2JiLXBvcG92ZXInLCAnc2JiLW9wdGlvbicsICdzYmItY2hpcCddO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zsb2F0aW5nTGFiZWxTdXBwb3J0ZWRJbnB1dEVsZW1lbnRzID0gW1xuICAgICdpbnB1dCcsXG4gICAgJ3NlbGVjdCcsXG4gICAgJ3NiYi1kYXRlLWlucHV0JyxcbiAgICAnc2JiLXRpbWUtaW5wdXQnLFxuICAgICdzYmItc2VsZWN0JyxcbiAgICAndGV4dGFyZWEnLFxuICBdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zsb2F0aW5nTGFiZWxTdXBwb3J0ZWRJbnB1dFR5cGVzID0gW1xuICAgICdlbWFpbCcsXG4gICAgJ251bWJlcicsXG4gICAgJ3Bhc3N3b3JkJyxcbiAgICAnc2VhcmNoJyxcbiAgICAndGVsJyxcbiAgICAndGV4dCcsXG4gICAgJ3VybCcsXG4gIF07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgYW4gZXJyb3IgbWVzc2FnZS5cbiAgICogYG5vbmVgIGRvZXMgbm90IHJlc2VydmUgYW55IHNwYWNlLlxuICAgKiBgcmVzZXJ2ZWAgZG9lcyByZXNlcnZlIG9uZSByb3cgZm9yIGFuIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdlcnJvci1zcGFjZScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGVycm9yU3BhY2U6ICdub25lJyB8ICdyZXNlcnZlJyA9ICdub25lJztcblxuICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGlucHV0IGlzIG9wdGlvbmFsLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igb3B0aW9uYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgbCwgbSBvciBzLlxuICAgKiBAZGVmYXVsdCAnbScgLyAncycgKGxlYW4pXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAnbCcgfCAnbScgfCAncycgPSBpc0xlYW4oKSA/ICdzJyA6ICdtJztcblxuICAvKiogV2hldGhlciB0byBkaXNwbGF5IHRoZSBmb3JtIGZpZWxkIHdpdGhvdXQgYSBib3JkZXIuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBib3JkZXJsZXNzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIERlZmluZXMgdGhlIHdpZHRoIG9mIHRoZSBjb21wb25lbnQ6XG4gICAqIC0gYGRlZmF1bHRgOiB0aGUgY29tcG9uZW50IGhhcyBkZWZpbmVkIHdpZHRoIGFuZCBtaW4td2lkdGg7XG4gICAqIC0gYGNvbGxhcHNlYDogdGhlIGNvbXBvbmVudCBhZGFwdHMgaXRzZWxmIHRvIGl0cyBpbm5lciBpbnB1dCBjb250ZW50LiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciB3aWR0aDogJ2RlZmF1bHQnIHwgJ2NvbGxhcHNlJyA9ICdkZWZhdWx0JztcblxuICAvKiogV2hldGhlciB0byB2aXN1YWxseSBoaWRlIHRoZSBsYWJlbC4gSWYgaGlkZGVuLCBzY3JlZW4gcmVhZGVycyB3aWxsIHN0aWxsIHJlYWQgaXQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdoaWRkZW4tbGFiZWwnLCByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBoaWRkZW5MYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBsYWJlbCBzaG91bGQgZmxvYXQuIElmIGFjdGl2YXRlZCwgdGhlIHBsYWNlaG9sZGVyIG9mIHRoZSBpbnB1dCBpcyBoaWRkZW4uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdmbG9hdGluZy1sYWJlbCcsIHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGZsb2F0aW5nTGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogSXQgaXMgdXNlZCBpbnRlcm5hbGx5IHRvIGdldCB0aGUgYGVycm9yYCBzbG90LiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9lcnJvckVsZW1lbnRzOiBFbGVtZW50W10gPSBbXTtcblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBzbG90dGVkIGlucHV0IGVsZW1lbnQuICovXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2lucHV0ITogSFRNTElucHV0RWxlbWVudCB8IEhUTUxTZWxlY3RFbGVtZW50IHwgSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgLyoqIFJlZmVyZW5jZSB0byB0aGUgc2xvdHRlZCBsYWJlbCBlbGVtZW50cy4gKi9cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfbGFiZWwhOiBIVE1MTGFiZWxFbGVtZW50O1xuXG4gIC8qKiBSZXR1cm5zIHRoZSBpbnB1dCBlbGVtZW50LiAqL1xuICBwdWJsaWMgZ2V0IGlucHV0RWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFNlbGVjdEVsZW1lbnQgfCBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0O1xuICB9XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIC8qKlxuICAgKiBMaXN0ZW5zIHRvIHRoZSBjaGFuZ2VzIG9uIGByZWFkb25seWAgYW5kIGBkaXNhYmxlZGAgYXR0cmlidXRlcyBvZiBgPGlucHV0PmAuXG4gICAqL1xuICBwcml2YXRlIF9mb3JtRmllbGRBdHRyaWJ1dGVPYnNlcnZlciA9ICFpc1NlcnZlclxuICAgID8gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uczogTXV0YXRpb25SZWNvcmRbXSkgPT4ge1xuICAgICAgICBpZiAobXV0YXRpb25zLnNvbWUoKG0pID0+IG0udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnKSAmJiB0aGlzLl9pbnB1dCkge1xuICAgICAgICAgIHRoaXMuX3JlYWRJbnB1dFN0YXRlKCk7XG4gICAgICAgICAgdGhpcy5fcmVnaXN0ZXJJbnB1dEZvcm1MaXN0ZW5lcigpO1xuICAgICAgICAgIHRoaXMuX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIDogbnVsbDtcblxuICBwcml2YXRlIF9pbnB1dEZvcm1BYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAnZm9jdXNpbicsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGV2ZW50LnRhcmdldCA9PT0gdGhpcy5pbnB1dEVsZW1lbnQgfHxcbiAgICAgICAgICBldmVudC50YXJnZXQgPT09ICh0aGlzLmlucHV0RWxlbWVudCBhcyBTYmJTZWxlY3RFbGVtZW50KS5pbnB1dEVsZW1lbnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnZm9jdXMnKTtcbiAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGBmb2N1cy1vcmlnaW4tJHtzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5fWApO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBwYXNzaXZlOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICdmb2N1c291dCcsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGV2ZW50LnRhcmdldCA9PT0gdGhpcy5pbnB1dEVsZW1lbnQgfHxcbiAgICAgICAgICBldmVudC50YXJnZXQgPT09ICh0aGlzLmlucHV0RWxlbWVudCBhcyBTYmJTZWxlY3RFbGVtZW50KS5pbnB1dEVsZW1lbnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5fY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnZm9jdXMnKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IHN0YXRlIG9mIHRoaXMuaW50ZXJuYWxzLnN0YXRlcykge1xuICAgICAgICAgICAgaWYgKHN0YXRlLnN0YXJ0c1dpdGgoJ2ZvY3VzLW9yaWdpbi0nKSkge1xuICAgICAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKHN0YXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IHBhc3NpdmU6IHRydWUgfSxcbiAgICApO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoKSA9PiB0aGlzLl9jaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdkaXNwbGF5VmFsdWVDaGFuZ2UnLCAoKSA9PiB0aGlzLl9jaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKSk7XG4gICAgLy8gV2Ugd2FudCB0byBwcmV2ZW50IHRoZSBuYXRpdmUgYnJvd3NlciB2YWxpZGF0aW9uIG1lc3NhZ2UgcG9wb3ZlclxuICAgIC8vIHRvIGJlIHNob3duLiBUaGlzIGFsc28gcHJldmVudHMgYSBidWcgaW4gV2ViS2l0LCB3aGljaCB3b3VsZCBub3RcbiAgICAvLyBhbGxvdyBob3N0IGFzIHRoZSB2YWxpZGl0eSBhbmNob3I6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjk4MzJcbiAgICAvLyBUaGlzIGlzIGR1cGxpY2F0ZWQgZnJvbSB0aGUgZm9ybSBhc3NvY2lhdGVkIG1peGluIGZvciB0aGUgbmF0aXZlXG4gICAgLy8gaW5wdXQgY29udHJvbHMgKGUuZy4gPGlucHV0PiBvciA8c2VsZWN0PikuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdpbnZhbGlkJywgKGUpID0+IGUucHJldmVudERlZmF1bHQoKSwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fYXNzaWduU2xvdHMoKTtcbiAgICB0aGlzLl9jb25uZWN0SW5wdXRFbGVtZW50KCk7XG4gICAgdGhpcy5fc3luY05lZ2F0aXZlKCk7XG4gICAgdGhpcy5fc3luY1NpemUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbmVnYXRpdmUnKSkge1xuICAgICAgdGhpcy5fc3luY05lZ2F0aXZlKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3NpemUnKSkge1xuICAgICAgdGhpcy5fc3luY1NpemUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9mb3JtRmllbGRBdHRyaWJ1dGVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuX2lucHV0Rm9ybUFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIGlmICh0aGlzLl9pbnB1dD8ubG9jYWxOYW1lID09PSAnaW5wdXQnKSB7XG4gICAgICB0aGlzLl91bnBhdGNoSW5wdXRWYWx1ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVdyYXBwZXJDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faXNFbGVtZW50Rm9jdXNFeGNsdWRlZChldmVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KS5sb2NhbE5hbWUgIT09ICdsYWJlbCcpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5faW5wdXQ/LmxvY2FsTmFtZSA9PT0gJ3NiYi1zZWxlY3QnICYmXG4gICAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmxvY2FsTmFtZSAhPT0gJ3NiYi1zZWxlY3QnXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5faW5wdXQuY2xpY2soKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2lucHV0Py5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzRWxlbWVudEZvY3VzRXhjbHVkZWQoZXZlbnQ6IEV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGV2ZW50XG4gICAgICAuY29tcG9zZWRQYXRoKClcbiAgICAgIC5zb21lKFxuICAgICAgICAoZWwpID0+XG4gICAgICAgICAgKGVsIGluc3RhbmNlb2Ygd2luZG93LkhUTUxFbGVtZW50ICYmXG4gICAgICAgICAgICAoZWwuZ2V0QXR0cmlidXRlKCd0YWJpbmRleCcpID09PSAnMCcgfHwgZWwuaGFzQXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnKSkpIHx8XG4gICAgICAgICAgdGhpcy5fZXhjbHVkZWRGb2N1c0VsZW1lbnRzLmluY2x1ZGVzKChlbCBhcyBIVE1MRWxlbWVudCkubG9jYWxOYW1lKSxcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9vblNsb3RMYWJlbENoYW5nZSgpOiB2b2lkIHtcbiAgICBjb25zdCBsYWJlbHMgPSBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbCgnbGFiZWwnKSk7XG4gICAgaWYgKGltcG9ydC5tZXRhLmVudi5ERVYgJiYgbGFiZWxzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYERldGVjdGVkIG1vcmUgdGhhbiBvbmUgbGFiZWwgaW4gc2JiLWZvcm0tZmllbGQjJHt0aGlzLmlkfS4gT25seSBvbmUgbGFiZWwgaXMgc3VwcG9ydGVkLmAsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLl9sYWJlbCA9IGxhYmVsc1swXTtcbiAgICB0aGlzLl9zeW5jTGFiZWxJbnB1dFJlZmVyZW5jZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBpcyB1c2VkIGludGVybmFsbHkgdG8gYXNzaWduIHRoZSBhdHRyaWJ1dGVzIG9mIGA8aW5wdXQ+YCB0byBgX2lkYCBhbmQgYF9pbnB1dGAgYW5kIHRvIG9ic2VydmUgdGhlIG5hdGl2ZSByZWFkb25seSBhbmQgZGlzYWJsZWQgYXR0cmlidXRlcy5cbiAgICovXG4gIHByaXZhdGUgX29uU2xvdElucHV0Q2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2lnblNsb3RzKCk7XG4gICAgdGhpcy5fY29ubmVjdElucHV0RWxlbWVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXNzaWduU2xvdHMoKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsKCdsYWJlbDpub3QoW3Nsb3RdKScpLmZvckVhY2goKGUpID0+IGUuc2V0QXR0cmlidXRlKCdzbG90JywgJ2xhYmVsJykpO1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbCgnc2JiLWZvcm0tZXJyb3I6bm90KFtzbG90XSknKS5mb3JFYWNoKChlKSA9PlxuICAgICAgZS5zZXRBdHRyaWJ1dGUoJ3Nsb3QnLCAnZXJyb3InKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29ubmVjdElucHV0RWxlbWVudCgpOiB2b2lkIHtcbiAgICAvLyBGaW5kIHRoZSBzbG90dGVkIGlucHV0IGVsZW1lbnQsIGV2ZW4gaWYgaXQncyBuZXN0ZWQgKGUuZy4gY2hpcCBncm91cClcbiAgICBjb25zdCBpbnB1dENhbmRpZGF0ZXMgPSBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PignKjpub3QoW3Nsb3RdLHNiYi1jaGlwLWdyb3VwKScpLFxuICAgICk7XG4gICAgY29uc3QgbmV3SW5wdXQgPSBpbnB1dENhbmRpZGF0ZXMuZmluZCgoZSkgPT4gdGhpcy5faXNJbnB1dEVsZW1lbnQoZSkpIHx8IGlucHV0Q2FuZGlkYXRlc1swXTtcblxuICAgIGlmIChuZXdJbnB1dCA9PT0gdGhpcy5faW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2lucHV0KSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKGBpbnB1dC10eXBlLSR7dGhpcy5faW5wdXQubG9jYWxOYW1lfWApO1xuICAgICAgaWYgKHRoaXMuX2lucHV0LmxvY2FsTmFtZSA9PT0gJ2lucHV0Jykge1xuICAgICAgICB0aGlzLl91bnBhdGNoSW5wdXRWYWx1ZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghbmV3SW5wdXQpIHtcbiAgICAgIHRoaXMuX2lucHV0ID0gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0ID0gbmV3SW5wdXQ7XG4gICAgdGhpcy5fYXBwbHlBcmlhRGVzY3JpYmVkYnkoKTtcbiAgICB0aGlzLl9yZWFkSW5wdXRTdGF0ZSgpO1xuICAgIHRoaXMuX3JlZ2lzdGVySW5wdXRGb3JtTGlzdGVuZXIoKTtcbiAgICB0aGlzLl9jaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKTtcblxuICAgIGlmICh0aGlzLl9pbnB1dC5sb2NhbE5hbWUgPT09ICd0ZXh0YXJlYScpIHtcbiAgICAgIHRoaXMuX2lucHV0LnNldEF0dHJpYnV0ZSgncm93cycsIHRoaXMuX2lucHV0LmdldEF0dHJpYnV0ZSgncm93cycpIHx8ICczJyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9pbnB1dC5sb2NhbE5hbWUgPT09ICdpbnB1dCcpIHtcbiAgICAgIHRoaXMuX3BhdGNoSW5wdXRWYWx1ZSgpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAodGhpcy5faW5wdXQubG9jYWxOYW1lID09PSAnc2VsZWN0JyB8fCB0aGlzLl9pbnB1dC5sb2NhbE5hbWUgPT09ICdzYmItc2VsZWN0JykgJiZcbiAgICAgICF0aGlzLmhhc1VwZGF0ZWRcbiAgICApIHtcbiAgICAgIC8vIER1ZSB0byBTU1IgdGhlIGRyb3Bkb3duIGljb24gZm9yIHNlbGVjdHMgY2Fubm90IGJlIHJlbmRlcmVkIGluIHRoZSBmaXJzdCByZW5kZXIgcGFzcy5cbiAgICAgIC8vIER1ZSB0byB0aGlzIHdlIHNjaGVkdWxlIGEgcmUtcmVuZGVyIHRvIHJlbmRlciB0aGUgaWNvbi5cbiAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLnJlcXVlc3RVcGRhdGUoKSk7XG4gICAgfVxuXG4gICAgdGhpcy5fZm9ybUZpZWxkQXR0cmlidXRlT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9mb3JtRmllbGRBdHRyaWJ1dGVPYnNlcnZlcj8ub2JzZXJ2ZSh0aGlzLl9pbnB1dCwge1xuICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydyZWFkb25seScsICdkaXNhYmxlZCcsICdmb3JtJywgJ2NsYXNzJywgJ2RhdGEtZXhwYW5kZWQnXSxcbiAgICB9KTtcbiAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGBpbnB1dC10eXBlLSR7dGhpcy5faW5wdXQubG9jYWxOYW1lfWApO1xuICAgIHRoaXMuX3N5bmNMYWJlbElucHV0UmVmZXJlbmNlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY0xhYmVsSW5wdXRSZWZlcmVuY2VzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faW5wdXQgfHwgIXRoaXMuX2xhYmVsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgbmF0aXZlSW5wdXRFbGVtZW50cy5pbmNsdWRlcyh0aGlzLl9pbnB1dC5sb2NhbE5hbWUpIHx8XG4gICAgICAoY3VzdG9tRWxlbWVudHMuZ2V0KHRoaXMuX2lucHV0LmxvY2FsTmFtZSkgYXMgeyBmb3JtQXNzb2NpYXRlZDogYm9vbGVhbiB9IHwgdW5kZWZpbmVkKVxuICAgICAgICA/LmZvcm1Bc3NvY2lhdGVkXG4gICAgKSB7XG4gICAgICAvLyBGb3IgbmF0aXZlIGlucHV0IGVsZW1lbnRzIHdlIHVzZSB0aGUgYGZvcmAgYXR0cmlidXRlIG9uIHRoZSBsYWJlbCB0byByZWZlcmVuY2UgdGhlIGlucHV0XG4gICAgICAvLyB2aWEgaWQgcmVmZXJlbmNlLlxuICAgICAgdGhpcy5faW5wdXQuaWQgfHw9IGBzYmItZm9ybS1maWVsZC1pbnB1dC0ke25leHRJZCsrfWA7XG4gICAgICB0aGlzLl9sYWJlbC5odG1sRm9yID0gdGhpcy5faW5wdXQuaWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZvciBub24tbmF0aXZlIGlucHV0IGVsZW1lbnRzLCB0aGF0IGRvIG5vdCBzdXBwb3J0IHJlZmVyZW5jZXMgdmlhIHRoZSBsYWJlbCBmb3IgYXR0cmlidXRlLFxuICAgICAgLy8gd2UgdXNlIGFyaWEtbGFiZWxsZWRieSBvbiB0aGUgaW5wdXQgZWxlbWVudCB0byByZWZlcmVuY2UgdGhlIGxhYmVsIGVsZW1lbnQgdmlhIGlkLlxuICAgICAgLy8gVE9ETzogTWlncmF0ZSB0byBhcmlhTGFiZWxsZWRCeUVsZW1lbnRzIHdoZW4gYXZhaWxhYmxlOlxuICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0VsZW1lbnQvYXJpYUxhYmVsbGVkQnlFbGVtZW50c1xuICAgICAgdGhpcy5fbGFiZWwuaWQgfHw9IGBzYmItZm9ybS1maWVsZC1sYWJlbC0ke25leHRJZCsrfWA7XG4gICAgICBjb25zdCBsYWJlbGxlZGJ5ID1cbiAgICAgICAgdGhpcy5faW5wdXRcbiAgICAgICAgICAuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsbGVkYnknKVxuICAgICAgICAgID8uc3BsaXQoJyAnKVxuICAgICAgICAgIC5maWx0ZXIoKGwpID0+ICEhbCAmJiBsICE9PSB0aGlzLl9sYWJlbCEuaWQpID8/IFtdO1xuICAgICAgdGhpcy5faW5wdXQuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsbGVkYnknLCBbLi4ubGFiZWxsZWRieSwgdGhpcy5fbGFiZWwuaWRdLmpvaW4oJyAnKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNJbnB1dEVsZW1lbnQoaW5wdXQ6IEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgbmF0aXZlSW5wdXRFbGVtZW50cy5pbmNsdWRlcyhpbnB1dC5sb2NhbE5hbWUpIHx8XG4gICAgICAhIShjdXN0b21FbGVtZW50cy5nZXQoaW5wdXQubG9jYWxOYW1lKSBhcyB7IGZvcm1Bc3NvY2lhdGVkOiBib29sZWFuIH0gfCB1bmRlZmluZWQpXG4gICAgICAgID8uZm9ybUFzc29jaWF0ZWRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVhZElucHV0U3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVTdGF0ZSgncmVhZG9ubHknLCB0aGlzLl9pbnB1dCEuaGFzQXR0cmlidXRlKCdyZWFkb25seScpKTtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdkaXNhYmxlZCcsIHRoaXMuX2lucHV0IS5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpO1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2hhcy1wb3B1cC1vcGVuJywgdGhpcy5faW5wdXQhLmhhc0F0dHJpYnV0ZSgnZGF0YS1leHBhbmRlZCcpKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlZ2lzdGVySW5wdXRGb3JtTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgdGhpcy5faW5wdXRGb3JtQWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gICAgY29uc3QgeyBzaWduYWwgfSA9ICh0aGlzLl9pbnB1dEZvcm1BYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCkpO1xuXG4gICAgY29uc3QgZm9ybSA9XG4gICAgICAodGhpcy5faW5wdXQgYXMgSFRNTElucHV0RWxlbWVudCB8IEhUTUxTZWxlY3RFbGVtZW50IHwgdW5kZWZpbmVkKT8uZm9ybSA/P1xuICAgICAgdGhpcy5faW5wdXQ/LmNsb3Nlc3QoJ2Zvcm0nKTtcbiAgICAvLyBUaW1lb3V0IG5lZWRlZCB0byBoYXZlIHZhbHVlIHVwZGF0ZWRcbiAgICBjb25zdCByZXNldEhhbmRsZXIgPSAoKTogdW5rbm93biA9PiBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVzZXQoKSk7XG4gICAgZm9ybT8uYWRkRXZlbnRMaXN0ZW5lcigncmVzZXQnLCByZXNldEhhbmRsZXIsIHsgc2lnbmFsIH0pO1xuICB9XG5cbiAgLy8gV2UgbmVlZCB0byBwYXRjaCB0aGUgdmFsdWUgcHJvcGVydHkgb2YgdGhlIEhUTUxJbnB1dEVsZW1lbnQgaW4gb3JkZXJcbiAgLy8gdG8gYmUgYWJsZSB0byByZXNldCB0aGUgZmxvYXRpbmcgbGFiZWwgaW4gdGhlIGVtcHR5IHN0YXRlLlxuICBwcml2YXRlIF9wYXRjaElucHV0VmFsdWUoKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy5faW5wdXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAoIWlucHV0RWxlbWVudCB8fCBwYXRjaGVkSW5wdXRzLmhhcyhpbnB1dEVsZW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3JpZ2luYWxEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihcbiAgICAgIE9iamVjdC5nZXRQcm90b3R5cGVPZihpbnB1dEVsZW1lbnQpLFxuICAgICAgJ3ZhbHVlJyxcbiAgICApO1xuXG4gICAgaWYgKCFvcmlnaW5hbERlc2NyaXB0b3IgfHwgIW9yaWdpbmFsRGVzY3JpcHRvci5zZXQgfHwgIW9yaWdpbmFsRGVzY3JpcHRvci5nZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwYXRjaGVkSW5wdXRzLnNldChpbnB1dEVsZW1lbnQsIG9yaWdpbmFsRGVzY3JpcHRvcik7XG5cbiAgICBjb25zdCB7IGdldDogZ2V0dGVyLCBzZXQ6IHNldHRlciB9ID0gb3JpZ2luYWxEZXNjcmlwdG9yO1xuICAgIGNvbnN0IGNoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSA9ICgpOiB2b2lkID0+IHRoaXMuX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGlucHV0RWxlbWVudCwgJ3ZhbHVlJywge1xuICAgICAgLi4ub3JpZ2luYWxEZXNjcmlwdG9yLFxuICAgICAgZ2V0KCkge1xuICAgICAgICByZXR1cm4gZ2V0dGVyLmNhbGwodGhpcyk7XG4gICAgICB9LFxuICAgICAgc2V0KG5ld1ZhbHVlKSB7XG4gICAgICAgIHNldHRlci5jYWxsKHRoaXMsIG5ld1ZhbHVlKTtcbiAgICAgICAgY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdW5wYXRjaElucHV0VmFsdWUoKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy5faW5wdXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCBvcmlnaW5hbERlc2NyaXB0b3IgPSBwYXRjaGVkSW5wdXRzLmdldChpbnB1dEVsZW1lbnQpO1xuICAgIGlmIChvcmlnaW5hbERlc2NyaXB0b3IpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpbnB1dEVsZW1lbnQsICd2YWx1ZScsIG9yaWdpbmFsRGVzY3JpcHRvcik7XG4gICAgICBwYXRjaGVkSW5wdXRzLmRlbGV0ZShpbnB1dEVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKFxuICAgICAgJ2VtcHR5JyxcbiAgICAgIHRoaXMuX2Zsb2F0aW5nTGFiZWxTdXBwb3J0ZWRJbnB1dEVsZW1lbnRzLmluY2x1ZGVzKHRoaXMuX2lucHV0Py5sb2NhbE5hbWUgYXMgc3RyaW5nKSAmJlxuICAgICAgICB0aGlzLl9pc0lucHV0RW1wdHkoKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNJbnB1dEVtcHR5KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNoaXBHcm91cEVsZW0gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1jaGlwLWdyb3VwJyk7XG4gICAgaWYgKGNoaXBHcm91cEVsZW0pIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMuX2lzSW5wdXRWYWx1ZUVtcHR5KCkgJiZcbiAgICAgICAgKEFycmF5LmlzQXJyYXkoY2hpcEdyb3VwRWxlbS52YWx1ZSlcbiAgICAgICAgICA/IGNoaXBHcm91cEVsZW0udmFsdWUubGVuZ3RoID09PSAwXG4gICAgICAgICAgOiAhY2hpcEdyb3VwRWxlbS5xdWVyeVNlbGVjdG9yKCdzYmItY2hpcCcpKVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2lucHV0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5fZmxvYXRpbmdMYWJlbFN1cHBvcnRlZElucHV0VHlwZXMuaW5jbHVkZXModGhpcy5faW5wdXQudHlwZSkgJiZcbiAgICAgICAgdGhpcy5faXNJbnB1dFZhbHVlRW1wdHkoKVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2lucHV0IGluc3RhbmNlb2YgSFRNTFNlbGVjdEVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbnB1dC5zZWxlY3RlZE9wdGlvbnM/Lml0ZW0oMCk/LmxhYmVsPy50cmltKCkgPT09ICcnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5faW5wdXQ/LmxvY2FsTmFtZSA9PT0gJ3NiYi1zZWxlY3QnKSB7XG4gICAgICByZXR1cm4gKHRoaXMuX2lucHV0IGFzIFNiYlNlbGVjdEVsZW1lbnQpLmdldERpc3BsYXlWYWx1ZT8uKCk/LnRyaW0oKSA9PT0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl9pc0lucHV0VmFsdWVFbXB0eSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzSW5wdXRWYWx1ZUVtcHR5KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHZhbHVlID0gKHRoaXMuX2lucHV0IGFzIHsgdmFsdWU6IHN0cmluZyB9KS52YWx1ZTtcbiAgICByZXR1cm4gWycnLCB1bmRlZmluZWQsIG51bGxdLmluY2x1ZGVzKHZhbHVlKSB8fCAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBpcyB1c2VkIGludGVybmFsbHkgdG8gc2V0IHRoZSBhcmlhLWRlc2NyaWJlZGJ5IGF0dHJpYnV0ZSBmb3IgdGhlIHNsb3R0ZWQgaW5wdXQgcmVmZXJlbmNpbmcgYXZhaWxhYmxlIDxzYmItZm9ybS1lcnJvcj4gaW5zdGFuY2VzLlxuICAgKi9cbiAgcHJpdmF0ZSBfb25TbG90RXJyb3JDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZXJyb3JzID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MU2xvdEVsZW1lbnQpLmFzc2lnbmVkRWxlbWVudHMoKTtcbiAgICAvLyBSZW1vdmUgcmVmZXJlbmNlcyBvZiByZW1vdmVkIGVycm9ycyBmcm9tIGFyaWEtZGVzY3JpYmVkYnkuXG4gICAgY29uc3QgcmVtb3ZlZEVycm9ySWRzID0gdGhpcy5fZXJyb3JFbGVtZW50cy5maWx0ZXIoKGUpID0+ICFlcnJvcnMuaW5jbHVkZXMoZSkpLm1hcCgoZSkgPT4gZS5pZCk7XG4gICAgdGhpcy5fZXJyb3JFbGVtZW50cyA9IGVycm9ycztcblxuICAgIGZvciAoY29uc3QgZWwgb2YgdGhpcy5fZXJyb3JFbGVtZW50cykge1xuICAgICAgLy8gQWx0aG91Z2ggYSBmb3JtIGVycm9yIGFzc2lnbnMgYW4gaWQgaXRzZWxmLCB3ZSBuZWVkIHRvIGJlIGVhcmxpZXIgYnkgY3JlYXRpbmcgb25lIGhlcmVcbiAgICAgIGVsLmlkIHx8PSBgc2JiLWZvcm0tZmllbGQtZXJyb3ItJHsrK25leHRGb3JtRmllbGRFcnJvcklkfWA7XG4gICAgICAvLyBJbnN0ZWFkIG9mIGRlZmluaW5nIGEgY29udGFpbmVyIHdpdGggYW4gYXJpYS1saXZlIHJlZ2lvbiBhcyBleHBlY3RlZCwgd2UgaGFkIHRvIGNoYW5nZVxuICAgICAgLy8gc2V0dGluZyBpdCBmb3IgZXZlcnkgc2xvdHRlZCBlbGVtZW50IHRvIHByb3Blcmx5IHdvcmsgaW4gYWxsIGJyb3dzZXJzIGFuZCBzY3JlZW4gcmVhZGVyIGNvbWJpbmF0aW9ucy5cbiAgICAgIGVsLnJvbGUgfHw9ICdzdGF0dXMnO1xuICAgIH1cbiAgICB0aGlzLl9hcHBseUFyaWFEZXNjcmliZWRieShyZW1vdmVkRXJyb3JJZHMpO1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2hhcy1lcnJvcicsICEhdGhpcy5fZXJyb3JFbGVtZW50cy5sZW5ndGgpO1xuICAgIHRoaXMuX3N5bmNOZWdhdGl2ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlBcmlhRGVzY3JpYmVkYnkob2Jzb2xldGVJZHM6IHN0cmluZ1tdID0gW10pOiB2b2lkIHtcbiAgICBjb25zdCBhcmlhRGVzY3JpYmVkYnkgPSB0aGlzLl9pbnB1dD8uZ2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5JykgfHwgJyc7XG4gICAgY29uc3QgaWRzID0gYXJpYURlc2NyaWJlZGJ5XG4gICAgICAuc3BsaXQoJyAnKVxuICAgICAgLmZpbHRlcigoaWQpID0+ICEhaWQgJiYgIW9ic29sZXRlSWRzLmluY2x1ZGVzKGlkKSlcbiAgICAgIC5maWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSk7XG5cbiAgICBpZiAodGhpcy5fZXJyb3JFbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX2Vycm9yRWxlbWVudHMuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgICBpZiAoIWlkcy5pbmNsdWRlcyhlLmlkKSkge1xuICAgICAgICAgIGlkcy5wdXNoKGUuaWQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdBcmlhRGVzY3JpYmVkYnkgPSBpZHMuam9pbignICcpO1xuICAgIGlmICh0aGlzLl9pbnB1dCAmJiBuZXdBcmlhRGVzY3JpYmVkYnkgIT09IGFyaWFEZXNjcmliZWRieSkge1xuICAgICAgaWYgKG5ld0FyaWFEZXNjcmliZWRieSkge1xuICAgICAgICB0aGlzLl9pbnB1dC5zZXRBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknLCBuZXdBcmlhRGVzY3JpYmVkYnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5faW5wdXQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIE1hbnVhbGx5IHJlc2V0IHRoZSBmb3JtIGZpZWxkLiBDdXJyZW50bHksIHRoaXMgb25seSByZXNldHMgdGhlIGZsb2F0aW5nIGxhYmVsLiAqL1xuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5fY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk7XG4gIH1cblxuICAvKiogTWFudWFsbHkgY2xlYXJzIHRoZSBpbnB1dCB2YWx1ZS4gSXQgb25seSB3b3JrcyBmb3IgaW5wdXRzLCBzZWxlY3RzIGFyZSBub3Qgc3VwcG9ydGVkLiAqL1xuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgaWYgKCh0aGlzLl9pbnB1dD8ubG9jYWxOYW1lIGFzIHN0cmluZykgIT09ICdpbnB1dCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgKHRoaXMuX2lucHV0IGFzIHsgdmFsdWU6IHN0cmluZyB9KS52YWx1ZSA9ICcnO1xuICAgIHRoaXMuX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY05lZ2F0aXZlKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKFxuICAgICAgJ3NiYi1mb3JtLWVycm9yLHNiYi1taW5pLWJ1dHRvbixzYmItcG9wb3Zlci10cmlnZ2VyLHNiYi1mb3JtLWZpZWxkLWNsZWFyLHNiYi1kYXRlcGlja2VyLW5leHQtZGF5LHNiYi1kYXRlcGlja2VyLXByZXZpb3VzLWRheSxzYmItZGF0ZXBpY2tlci10b2dnbGUsc2JiLXNlbGVjdCxzYmItYXV0b2NvbXBsZXRlLHNiYi1hdXRvY29tcGxldGUtZ3JpZCxzYmItY2hpcC1ncm91cCcsXG4gICAgKS5mb3JFYWNoKChlbGVtZW50KSA9PiBlbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnbmVnYXRpdmUnLCB0aGlzLm5lZ2F0aXZlKSk7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jU2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJBdXRvY29tcGxldGVCYXNlRWxlbWVudCB8IFNiYlNlbGVjdEVsZW1lbnQ+KFxuICAgICAgJ3NiYi1hdXRvY29tcGxldGUsc2JiLWF1dG9jb21wbGV0ZS1ncmlkLHNiYi1zZWxlY3QnLFxuICAgICkuZm9yRWFjaCgoZWxlbWVudCkgPT4gKGVsZW1lbnQuc2l6ZSA9IHRoaXMuc2l6ZSA9PT0gJ3MnID8gJ3MnIDogJ20nKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItZm9ybS1maWVsZF9fc3BhY2Utd3JhcHBlclwiPlxuICAgICAgICAkey8qIFF1ZXJpZWQgYnkgaWQgZnJvbSB0aGUgYXV0b2NvbXBsZXRlL3NlbGVjdCB0byBiZSB1c2VkIGFzIHRoZSBhbmNob3IgZWxlbWVudCAqLyAnJ31cbiAgICAgICAgPGRpdiBAY2xpY2s9JHt0aGlzLl9oYW5kbGVXcmFwcGVyQ2xpY2t9IGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX3dyYXBwZXJcIiBpZD1cIm92ZXJsYXktYW5jaG9yXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cInByZWZpeFwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fc3luY05lZ2F0aXZlfT48L3Nsb3Q+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX19pbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX2xhYmVsLXNwYWNlclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX2xhYmVsXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX2xhYmVsLWVsbGlwc2lzXCI+XG4gICAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cImxhYmVsXCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9vblNsb3RMYWJlbENoYW5nZX0+PC9zbG90PlxuICAgICAgICAgICAgICAgICR7dGhpcy5vcHRpb25hbFxuICAgICAgICAgICAgICAgICAgPyBodG1sYCA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4gJHtpMThuT3B0aW9uYWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19IDwvc3Bhbj5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItZm9ybS1maWVsZF9faW5wdXRcIj5cbiAgICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9vblNsb3RJbnB1dENoYW5nZX0+PC9zbG90PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAke3RoaXMuaGFzVXBkYXRlZCAmJiBbJ3NlbGVjdCcsICdzYmItc2VsZWN0J10uaW5jbHVkZXModGhpcy5faW5wdXQ/LmxvY2FsTmFtZSBhcyBzdHJpbmcpXG4gICAgICAgICAgICAgID8gaHRtbGA8c2JiLWljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJjaGV2cm9uLXNtYWxsLWRvd24tc21hbGxcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItZm9ybS1maWVsZF9fc2VsZWN0LWlucHV0LWljb25cIlxuICAgICAgICAgICAgICAgID48L3NiYi1pY29uPmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJzdWZmaXhcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX3N5bmNOZWdhdGl2ZX0+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX2Vycm9yXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cImVycm9yXCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9vblNsb3RFcnJvckNoYW5nZX0+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1mb3JtLWZpZWxkJzogU2JiRm9ybUZpZWxkRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9hIiwic3RhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEJBLElBQUksU0FBUztBQUNiLElBQUksdUJBQXVCO0FBRTNCLE1BQU0sb0NBQW9CO0FBQzFCLE1BQU0sc0JBQXNCLENBQUMsU0FBUyxZQUFZLFFBQVE7SUFjcEQsdUJBQW1CLE1BQUE7O0FBRnhCLE1BQUEsbUJBQUEsQ0FBQSxjQUFjLGdCQUFnQixHQUM5QixXQUFXOzs7O29CQUNzQixpQkFDaEMseUJBQXlCLGtCQUFrQixVQUFVLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUQvQixFQUFBLG1CQUFRLFlBRWpDO0FBQUEsSUErRkMsY0FBQTs7O0FBaEVBO0FBS0E7QUFNNkI7QUFLN0I7QUFLNkI7QUFLN0I7QUFLQTtBQUdTO0FBR0E7QUFHQTtBQW5FUSxXQUFzQix5QkFBRyxDQUFDLFVBQVUsZUFBZSxjQUFjLFVBQVU7QUFFM0UsV0FBQSx1Q0FBdUM7QUFBQSxRQUN0RDtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEs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
|
|
898
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIExpdEVsZW1lbnQsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9hdXRvY29tcGxldGUuanMnO1xuaW1wb3J0IHsgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlLCBzbG90U3RhdGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaXNMZWFuIH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgaTE4bk9wdGlvbmFsIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7XG4gIGFwcGVuZEFyaWFFbGVtZW50cyxcbiAgcmVtb3ZlQXJpYUVsZW1lbnRzLFxuICBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4sXG4gIFNiYkh5ZHJhdGlvbk1peGluLFxuICBTYmJOZWdhdGl2ZU1peGluLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlNlbGVjdEVsZW1lbnQgfSBmcm9tICcuLi8uLi9zZWxlY3QuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9mb3JtLWZpZWxkLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vaWNvbi5qcyc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG5jb25zdCBwYXRjaGVkSW5wdXRzID0gbmV3IFdlYWtNYXA8SFRNTElucHV0RWxlbWVudCwgUHJvcGVydHlEZXNjcmlwdG9yPigpO1xuY29uc3QgbmF0aXZlSW5wdXRFbGVtZW50cyA9IFsnaW5wdXQnLCAndGV4dGFyZWEnLCAnc2VsZWN0J107XG5cbi8qKlxuICogSXQgd3JhcHMgYW4gaW5wdXQgZWxlbWVudCBhZGRpbmcgbGFiZWwsIGVycm9ycywgaWNvbiwgZXRjLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoaXMgc2xvdCB0byByZW5kZXIgYW4gaW5wdXQvc2VsZWN0IG9yIGEgc3VwcG9ydGVkIG5vbi1uYXRpdmUgZWxlbWVudC5cbiAqIEBzbG90IGxhYmVsIC0gVXNlIHRoaXMgc2xvdCB0byByZW5kZXIgYSBsYWJlbC5cbiAqIEBzbG90IHByZWZpeCAtIFVzZSB0aGlzIHNsb3QgdG8gcmVuZGVyIGFuIGljb24gb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgaW5wdXQuXG4gKiBAc2xvdCBzdWZmaXggLSBVc2UgdGhpcyBzbG90IHRvIHJlbmRlciBhbiBpY29uIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSBpbnB1dC5cbiAqIEBzbG90IGVycm9yIC0gVXNlIHRoaXMgc2xvdCB0byByZW5kZXIgYW4gZXJyb3IuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1mb3JtLWZpZWxkJylcbkBzbG90U3RhdGUoKVxuY2xhc3MgU2JiRm9ybUZpZWxkRWxlbWVudCBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oXG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLy8gTGlzdCBvZiBlbGVtZW50cyB0aGF0IHNob3VsZCBub3QgZm9jdXMgaW5wdXQgb24gY2xpY2tcbiAgcHJpdmF0ZSByZWFkb25seSBfZXhjbHVkZWRGb2N1c0VsZW1lbnRzID0gWydidXR0b24nLCAnc2JiLXBvcG92ZXInLCAnc2JiLW9wdGlvbicsICdzYmItY2hpcCddO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zsb2F0aW5nTGFiZWxTdXBwb3J0ZWRJbnB1dEVsZW1lbnRzID0gW1xuICAgICdpbnB1dCcsXG4gICAgJ3NlbGVjdCcsXG4gICAgJ3NiYi1kYXRlLWlucHV0JyxcbiAgICAnc2JiLXRpbWUtaW5wdXQnLFxuICAgICdzYmItc2VsZWN0JyxcbiAgICAndGV4dGFyZWEnLFxuICBdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zsb2F0aW5nTGFiZWxTdXBwb3J0ZWRJbnB1dFR5cGVzID0gW1xuICAgICdlbWFpbCcsXG4gICAgJ251bWJlcicsXG4gICAgJ3Bhc3N3b3JkJyxcbiAgICAnc2VhcmNoJyxcbiAgICAndGVsJyxcbiAgICAndGV4dCcsXG4gICAgJ3VybCcsXG4gIF07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgYW4gZXJyb3IgbWVzc2FnZS5cbiAgICogYG5vbmVgIGRvZXMgbm90IHJlc2VydmUgYW55IHNwYWNlLlxuICAgKiBgcmVzZXJ2ZWAgZG9lcyByZXNlcnZlIG9uZSByb3cgZm9yIGFuIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdlcnJvci1zcGFjZScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGVycm9yU3BhY2U6ICdub25lJyB8ICdyZXNlcnZlJyA9ICdub25lJztcblxuICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGlucHV0IGlzIG9wdGlvbmFsLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igb3B0aW9uYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgbCwgbSBvciBzLlxuICAgKiBAZGVmYXVsdCAnbScgLyAncycgKGxlYW4pXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAnbCcgfCAnbScgfCAncycgPSBpc0xlYW4oKSA/ICdzJyA6ICdtJztcblxuICAvKiogV2hldGhlciB0byBkaXNwbGF5IHRoZSBmb3JtIGZpZWxkIHdpdGhvdXQgYSBib3JkZXIuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBib3JkZXJsZXNzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIERlZmluZXMgdGhlIHdpZHRoIG9mIHRoZSBjb21wb25lbnQ6XG4gICAqIC0gYGRlZmF1bHRgOiB0aGUgY29tcG9uZW50IGhhcyBkZWZpbmVkIHdpZHRoIGFuZCBtaW4td2lkdGg7XG4gICAqIC0gYGNvbGxhcHNlYDogdGhlIGNvbXBvbmVudCBhZGFwdHMgaXRzZWxmIHRvIGl0cyBpbm5lciBpbnB1dCBjb250ZW50LiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciB3aWR0aDogJ2RlZmF1bHQnIHwgJ2NvbGxhcHNlJyA9ICdkZWZhdWx0JztcblxuICAvKiogV2hldGhlciB0byB2aXN1YWxseSBoaWRlIHRoZSBsYWJlbC4gSWYgaGlkZGVuLCBzY3JlZW4gcmVhZGVycyB3aWxsIHN0aWxsIHJlYWQgaXQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdoaWRkZW4tbGFiZWwnLCByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBoaWRkZW5MYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBsYWJlbCBzaG91bGQgZmxvYXQuIElmIGFjdGl2YXRlZCwgdGhlIHBsYWNlaG9sZGVyIG9mIHRoZSBpbnB1dCBpcyBoaWRkZW4uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdmbG9hdGluZy1sYWJlbCcsIHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGZsb2F0aW5nTGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogSXQgaXMgdXNlZCBpbnRlcm5hbGx5IHRvIGdldCB0aGUgYGVycm9yYCBzbG90LiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9lcnJvckVsZW1lbnRzOiBFbGVtZW50W10gPSBbXTtcblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBzbG90dGVkIGlucHV0IGVsZW1lbnQuICovXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2lucHV0OiBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFNlbGVjdEVsZW1lbnQgfCBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBzbG90dGVkIGxhYmVsIGVsZW1lbnRzLiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9sYWJlbCE6IEhUTUxMYWJlbEVsZW1lbnQ7XG5cbiAgLyoqIFJldHVybnMgdGhlIGlucHV0IGVsZW1lbnQuICovXG4gIHB1YmxpYyBnZXQgaW5wdXRFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MU2VsZWN0RWxlbWVudCB8IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXQ7XG4gIH1cblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgLyoqXG4gICAqIExpc3RlbnMgdG8gdGhlIGNoYW5nZXMgb24gYHJlYWRvbmx5YCBhbmQgYGRpc2FibGVkYCBhdHRyaWJ1dGVzIG9mIGA8aW5wdXQ+YC5cbiAgICovXG4gIHByaXZhdGUgX2Zvcm1GaWVsZEF0dHJpYnV0ZU9ic2VydmVyID0gIWlzU2VydmVyXG4gICAgPyBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zOiBNdXRhdGlvblJlY29yZFtdKSA9PiB7XG4gICAgICAgIGlmIChtdXRhdGlvbnMuc29tZSgobSkgPT4gbS50eXBlID09PSAnYXR0cmlidXRlcycpICYmIHRoaXMuX2lucHV0KSB7XG4gICAgICAgICAgdGhpcy5fcmVhZElucHV0U3RhdGUoKTtcbiAgICAgICAgICB0aGlzLl9yZWdpc3RlcklucHV0Rm9ybUxpc3RlbmVyKCk7XG4gICAgICAgICAgdGhpcy5fY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgOiBudWxsO1xuXG4gIHByaXZhdGUgX2lucHV0Rm9ybUFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICdmb2N1c2luJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQudGFyZ2V0ID09PSB0aGlzLmlucHV0RWxlbWVudCB8fFxuICAgICAgICAgIGV2ZW50LnRhcmdldCA9PT0gKHRoaXMuaW5wdXRFbGVtZW50IGFzIFNiYlNlbGVjdEVsZW1lbnQgfCB1bmRlZmluZWQpPy5pbnB1dEVsZW1lbnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnZm9jdXMnKTtcbiAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGBmb2N1cy1vcmlnaW4tJHtzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5fWApO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBwYXNzaXZlOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICdmb2N1c291dCcsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGV2ZW50LnRhcmdldCA9PT0gdGhpcy5pbnB1dEVsZW1lbnQgfHxcbiAgICAgICAgICBldmVudC50YXJnZXQgPT09ICh0aGlzLmlucHV0RWxlbWVudCBhcyBTYmJTZWxlY3RFbGVtZW50IHwgdW5kZWZpbmVkKT8uaW5wdXRFbGVtZW50XG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpO1xuICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ2ZvY3VzJyk7XG4gICAgICAgICAgZm9yIChjb25zdCBzdGF0ZSBvZiB0aGlzLmludGVybmFscy5zdGF0ZXMpIHtcbiAgICAgICAgICAgIGlmIChzdGF0ZS5zdGFydHNXaXRoKCdmb2N1cy1vcmlnaW4tJykpIHtcbiAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShzdGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBwYXNzaXZlOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgKCkgPT4gdGhpcy5fY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignZGlzcGxheVZhbHVlQ2hhbmdlJywgKCkgPT4gdGhpcy5fY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCkpO1xuICAgIC8vIFdlIHdhbnQgdG8gcHJldmVudCB0aGUgbmF0aXZlIGJyb3dzZXIgdmFsaWRhdGlvbiBtZXNzYWdlIHBvcG92ZXJcbiAgICAvLyB0byBiZSBzaG93bi4gVGhpcyBhbHNvIHByZXZlbnRzIGEgYnVnIGluIFdlYktpdCwgd2hpY2ggd291bGQgbm90XG4gICAgLy8gYWxsb3cgaG9zdCBhcyB0aGUgdmFsaWRpdHkgYW5jaG9yOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5ODMyXG4gICAgLy8gVGhpcyBpcyBkdXBsaWNhdGVkIGZyb20gdGhlIGZvcm0gYXNzb2NpYXRlZCBtaXhpbiBmb3IgdGhlIG5hdGl2ZVxuICAgIC8vIGlucHV0IGNvbnRyb2xzIChlLmcuIDxpbnB1dD4gb3IgPHNlbGVjdD4pLlxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignaW52YWxpZCcsIChlKSA9PiBlLnByZXZlbnREZWZhdWx0KCksIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2Fzc2lnblNsb3RzKCk7XG4gICAgdGhpcy5fY29ubmVjdElucHV0RWxlbWVudCgpO1xuICAgIHRoaXMuX3N5bmNOZWdhdGl2ZSgpO1xuICAgIHRoaXMuX3N5bmNTaXplKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ25lZ2F0aXZlJykpIHtcbiAgICAgIHRoaXMuX3N5bmNOZWdhdGl2ZSgpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzaXplJykpIHtcbiAgICAgIHRoaXMuX3N5bmNTaXplKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fZm9ybUZpZWxkQXR0cmlidXRlT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9pbnB1dEZvcm1BYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICBpZiAodGhpcy5faW5wdXQ/LmxvY2FsTmFtZSA9PT0gJ2lucHV0Jykge1xuICAgICAgdGhpcy5fdW5wYXRjaElucHV0VmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVXcmFwcGVyQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2lzRWxlbWVudEZvY3VzRXhjbHVkZWQoZXZlbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgRWxlbWVudCkubG9jYWxOYW1lICE9PSAnbGFiZWwnKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuX2lucHV0Py5sb2NhbE5hbWUgPT09ICdzYmItc2VsZWN0JyAmJlxuICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5sb2NhbE5hbWUgIT09ICdzYmItc2VsZWN0J1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX2lucHV0LmNsaWNrKCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9pbnB1dD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc0VsZW1lbnRGb2N1c0V4Y2x1ZGVkKGV2ZW50OiBFdmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBldmVudFxuICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAuc29tZShcbiAgICAgICAgKGVsKSA9PlxuICAgICAgICAgIChlbCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudCAmJlxuICAgICAgICAgICAgKGVsLmdldEF0dHJpYnV0ZSgndGFiaW5kZXgnKSA9PT0gJzAnIHx8IGVsLmhhc0F0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJykpKSB8fFxuICAgICAgICAgIHRoaXMuX2V4Y2x1ZGVkRm9jdXNFbGVtZW50cy5pbmNsdWRlcygoZWwgYXMgSFRNTEVsZW1lbnQpLmxvY2FsTmFtZSksXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25TbG90TGFiZWxDaGFuZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgbGFiZWxzID0gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJ2xhYmVsJykpO1xuICAgIGlmIChpbXBvcnQubWV0YS5lbnYuREVWICYmIGxhYmVscy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBEZXRlY3RlZCBtb3JlIHRoYW4gb25lIGxhYmVsIGluIHNiYi1mb3JtLWZpZWxkIyR7dGhpcy5pZH0uIE9ubHkgb25lIGxhYmVsIGlzIHN1cHBvcnRlZC5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5fbGFiZWwgPSBsYWJlbHNbMF07XG4gICAgdGhpcy5fc3luY0xhYmVsSW5wdXRSZWZlcmVuY2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogSXQgaXMgdXNlZCBpbnRlcm5hbGx5IHRvIGFzc2lnbiB0aGUgYXR0cmlidXRlcyBvZiBgPGlucHV0PmAgdG8gYF9pZGAgYW5kIGBfaW5wdXRgIGFuZCB0byBvYnNlcnZlIHRoZSBuYXRpdmUgcmVhZG9ubHkgYW5kIGRpc2FibGVkIGF0dHJpYnV0ZXMuXG4gICAqL1xuICBwcml2YXRlIF9vblNsb3RJbnB1dENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NpZ25TbG90cygpO1xuICAgIHRoaXMuX2Nvbm5lY3RJbnB1dEVsZW1lbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Fzc2lnblNsb3RzKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbCgnbGFiZWw6bm90KFtzbG90XSknKS5mb3JFYWNoKChlKSA9PiBlLnNldEF0dHJpYnV0ZSgnc2xvdCcsICdsYWJlbCcpKTtcbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJ3NiYi1mb3JtLWVycm9yOm5vdChbc2xvdF0pJykuZm9yRWFjaCgoZSkgPT5cbiAgICAgIGUuc2V0QXR0cmlidXRlKCdzbG90JywgJ2Vycm9yJyksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Nvbm5lY3RJbnB1dEVsZW1lbnQoKTogdm9pZCB7XG4gICAgLy8gRmluZCB0aGUgc2xvdHRlZCBpbnB1dCBlbGVtZW50LCBldmVuIGlmIGl0J3MgbmVzdGVkIChlLmcuIGNoaXAgZ3JvdXApXG4gICAgY29uc3QgaW5wdXRDYW5kaWRhdGVzID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJyo6bm90KFtzbG90XSxzYmItY2hpcC1ncm91cCknKSxcbiAgICApO1xuICAgIGNvbnN0IG5ld0lucHV0ID0gaW5wdXRDYW5kaWRhdGVzLmZpbmQoKGUpID0+IHRoaXMuX2lzSW5wdXRFbGVtZW50KGUpKSB8fCBpbnB1dENhbmRpZGF0ZXNbMF07XG5cbiAgICBpZiAobmV3SW5wdXQgPT09IHRoaXMuX2lucHV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0aGlzLl9pbnB1dCkge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgaW5wdXQtdHlwZS0ke3RoaXMuX2lucHV0LmxvY2FsTmFtZX1gKTtcbiAgICAgIGlmICh0aGlzLl9pbnB1dC5sb2NhbE5hbWUgPT09ICdpbnB1dCcpIHtcbiAgICAgICAgdGhpcy5fdW5wYXRjaElucHV0VmFsdWUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW5ld0lucHV0KSB7XG4gICAgICB0aGlzLl9pbnB1dCA9IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9pbnB1dCA9IG5ld0lucHV0O1xuICAgIHRoaXMuX2Fzc2lnbkVycm9yTWVzc2FnZUVsZW1lbnRzKCk7XG4gICAgdGhpcy5fcmVhZElucHV0U3RhdGUoKTtcbiAgICB0aGlzLl9yZWdpc3RlcklucHV0Rm9ybUxpc3RlbmVyKCk7XG4gICAgdGhpcy5fY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk7XG5cbiAgICBpZiAodGhpcy5faW5wdXQubG9jYWxOYW1lID09PSAndGV4dGFyZWEnKSB7XG4gICAgICB0aGlzLl9pbnB1dC5zZXRBdHRyaWJ1dGUoJ3Jvd3MnLCB0aGlzLl9pbnB1dC5nZXRBdHRyaWJ1dGUoJ3Jvd3MnKSB8fCAnMycpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5faW5wdXQubG9jYWxOYW1lID09PSAnaW5wdXQnKSB7XG4gICAgICB0aGlzLl9wYXRjaElucHV0VmFsdWUoKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgKHRoaXMuX2lucHV0LmxvY2FsTmFtZSA9PT0gJ3NlbGVjdCcgfHwgdGhpcy5faW5wdXQubG9jYWxOYW1lID09PSAnc2JiLXNlbGVjdCcpICYmXG4gICAgICAhdGhpcy5oYXNVcGRhdGVkXG4gICAgKSB7XG4gICAgICAvLyBEdWUgdG8gU1NSIHRoZSBkcm9wZG93biBpY29uIGZvciBzZWxlY3RzIGNhbm5vdCBiZSByZW5kZXJlZCBpbiB0aGUgZmlyc3QgcmVuZGVyIHBhc3MuXG4gICAgICAvLyBEdWUgdG8gdGhpcyB3ZSBzY2hlZHVsZSBhIHJlLXJlbmRlciB0byByZW5kZXIgdGhlIGljb24uXG4gICAgICB0aGlzLmh5ZHJhdGlvbkNvbXBsZXRlLnRoZW4oKCkgPT4gdGhpcy5yZXF1ZXN0VXBkYXRlKCkpO1xuICAgIH1cblxuICAgIHRoaXMuX2Zvcm1GaWVsZEF0dHJpYnV0ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5fZm9ybUZpZWxkQXR0cmlidXRlT2JzZXJ2ZXI/Lm9ic2VydmUodGhpcy5faW5wdXQsIHtcbiAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsncmVhZG9ubHknLCAnZGlzYWJsZWQnLCAnZm9ybScsICdjbGFzcycsICdkYXRhLWV4cGFuZGVkJ10sXG4gICAgfSk7XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgaW5wdXQtdHlwZS0ke3RoaXMuX2lucHV0LmxvY2FsTmFtZX1gKTtcbiAgICB0aGlzLl9zeW5jTGFiZWxJbnB1dFJlZmVyZW5jZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N5bmNMYWJlbElucHV0UmVmZXJlbmNlcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lucHV0IHx8ICF0aGlzLl9sYWJlbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIG5hdGl2ZUlucHV0RWxlbWVudHMuaW5jbHVkZXModGhpcy5faW5wdXQubG9jYWxOYW1lKSB8fFxuICAgICAgKGN1c3RvbUVsZW1lbnRzLmdldCh0aGlzLl9pbnB1dC5sb2NhbE5hbWUpIGFzIHsgZm9ybUFzc29jaWF0ZWQ6IGJvb2xlYW4gfSB8IHVuZGVmaW5lZClcbiAgICAgICAgPy5mb3JtQXNzb2NpYXRlZFxuICAgICkge1xuICAgICAgLy8gRm9yIG5hdGl2ZSBpbnB1dCBlbGVtZW50cyB3ZSB1c2UgdGhlIGBmb3JgIGF0dHJpYnV0ZSBvbiB0aGUgbGFiZWwgdG8gcmVmZXJlbmNlIHRoZSBpbnB1dFxuICAgICAgLy8gdmlhIGlkIHJlZmVyZW5jZS5cbiAgICAgIHRoaXMuX2lucHV0LmlkIHx8PSBgc2JiLWZvcm0tZmllbGQtaW5wdXQtJHtuZXh0SWQrK31gO1xuICAgICAgdGhpcy5fbGFiZWwuaHRtbEZvciA9IHRoaXMuX2lucHV0LmlkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGb3Igbm9uLW5hdGl2ZSBpbnB1dCBlbGVtZW50cywgdGhhdCBkbyBub3Qgc3VwcG9ydCByZWZlcmVuY2VzIHZpYSB0aGUgbGFiZWwgZm9yIGF0dHJpYnV0ZSxcbiAgICAgIC8vIHdlIHVzZSBhcmlhLWxhYmVsbGVkYnkgb24gdGhlIGlucHV0IGVsZW1lbnQgdG8gcmVmZXJlbmNlIHRoZSBsYWJlbCBlbGVtZW50IHZpYSBpZC5cbiAgICAgIC8vIFRPRE86IE1pZ3JhdGUgdG8gYXJpYUxhYmVsbGVkQnlFbGVtZW50cyB3aGVuIGF2YWlsYWJsZTpcbiAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbGVtZW50L2FyaWFMYWJlbGxlZEJ5RWxlbWVudHNcbiAgICAgIHRoaXMuX2xhYmVsLmlkIHx8PSBgc2JiLWZvcm0tZmllbGQtbGFiZWwtJHtuZXh0SWQrK31gO1xuICAgICAgY29uc3QgbGFiZWxsZWRieSA9XG4gICAgICAgIHRoaXMuX2lucHV0XG4gICAgICAgICAgLmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5JylcbiAgICAgICAgICA/LnNwbGl0KCcgJylcbiAgICAgICAgICAuZmlsdGVyKChsKSA9PiAhIWwgJiYgbCAhPT0gdGhpcy5fbGFiZWwhLmlkKSA/PyBbXTtcbiAgICAgIHRoaXMuX2lucHV0LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5JywgWy4uLmxhYmVsbGVkYnksIHRoaXMuX2xhYmVsLmlkXS5qb2luKCcgJykpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzSW5wdXRFbGVtZW50KGlucHV0OiBFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIG5hdGl2ZUlucHV0RWxlbWVudHMuaW5jbHVkZXMoaW5wdXQubG9jYWxOYW1lKSB8fFxuICAgICAgISEoY3VzdG9tRWxlbWVudHMuZ2V0KGlucHV0LmxvY2FsTmFtZSkgYXMgeyBmb3JtQXNzb2NpYXRlZDogYm9vbGVhbiB9IHwgdW5kZWZpbmVkKVxuICAgICAgICA/LmZvcm1Bc3NvY2lhdGVkXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlYWRJbnB1dFN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ3JlYWRvbmx5JywgdGhpcy5faW5wdXQhLmhhc0F0dHJpYnV0ZSgncmVhZG9ubHknKSk7XG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnZGlzYWJsZWQnLCB0aGlzLl9pbnB1dCEuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKTtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdoYXMtcG9wdXAtb3BlbicsIHRoaXMuX2lucHV0IS5oYXNBdHRyaWJ1dGUoJ2RhdGEtZXhwYW5kZWQnKSk7XG4gIH1cblxuICBwcml2YXRlIF9yZWdpc3RlcklucHV0Rm9ybUxpc3RlbmVyKCk6IHZvaWQge1xuICAgIHRoaXMuX2lucHV0Rm9ybUFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIGNvbnN0IHsgc2lnbmFsIH0gPSAodGhpcy5faW5wdXRGb3JtQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpKTtcblxuICAgIGNvbnN0IGZvcm0gPVxuICAgICAgKHRoaXMuX2lucHV0IGFzIEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MU2VsZWN0RWxlbWVudCB8IHVuZGVmaW5lZCk/LmZvcm0gPz9cbiAgICAgIHRoaXMuX2lucHV0Py5jbG9zZXN0KCdmb3JtJyk7XG4gICAgLy8gVGltZW91dCBuZWVkZWQgdG8gaGF2ZSB2YWx1ZSB1cGRhdGVkXG4gICAgY29uc3QgcmVzZXRIYW5kbGVyID0gKCk6IHVua25vd24gPT4gc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlc2V0KCkpO1xuICAgIGZvcm0/LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2V0JywgcmVzZXRIYW5kbGVyLCB7IHNpZ25hbCB9KTtcbiAgfVxuXG4gIC8vIFdlIG5lZWQgdG8gcGF0Y2ggdGhlIHZhbHVlIHByb3BlcnR5IG9mIHRoZSBIVE1MSW5wdXRFbGVtZW50IGluIG9yZGVyXG4gIC8vIHRvIGJlIGFibGUgdG8gcmVzZXQgdGhlIGZsb2F0aW5nIGxhYmVsIGluIHRoZSBlbXB0eSBzdGF0ZS5cbiAgcHJpdmF0ZSBfcGF0Y2hJbnB1dFZhbHVlKCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMuX2lucHV0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgaWYgKCFpbnB1dEVsZW1lbnQgfHwgcGF0Y2hlZElucHV0cy5oYXMoaW5wdXRFbGVtZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG9yaWdpbmFsRGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXG4gICAgICBPYmplY3QuZ2V0UHJvdG90eXBlT2YoaW5wdXRFbGVtZW50KSxcbiAgICAgICd2YWx1ZScsXG4gICAgKTtcblxuICAgIGlmICghb3JpZ2luYWxEZXNjcmlwdG9yIHx8ICFvcmlnaW5hbERlc2NyaXB0b3Iuc2V0IHx8ICFvcmlnaW5hbERlc2NyaXB0b3IuZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcGF0Y2hlZElucHV0cy5zZXQoaW5wdXRFbGVtZW50LCBvcmlnaW5hbERlc2NyaXB0b3IpO1xuXG4gICAgY29uc3QgeyBnZXQ6IGdldHRlciwgc2V0OiBzZXR0ZXIgfSA9IG9yaWdpbmFsRGVzY3JpcHRvcjtcbiAgICBjb25zdCBjaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkgPSAoKTogdm9pZCA9PiB0aGlzLl9jaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpbnB1dEVsZW1lbnQsICd2YWx1ZScsIHtcbiAgICAgIC4uLm9yaWdpbmFsRGVzY3JpcHRvcixcbiAgICAgIGdldCgpIHtcbiAgICAgICAgcmV0dXJuIGdldHRlci5jYWxsKHRoaXMpO1xuICAgICAgfSxcbiAgICAgIHNldChuZXdWYWx1ZSkge1xuICAgICAgICBzZXR0ZXIuY2FsbCh0aGlzLCBuZXdWYWx1ZSk7XG4gICAgICAgIGNoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3VucGF0Y2hJbnB1dFZhbHVlKCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMuX2lucHV0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3Qgb3JpZ2luYWxEZXNjcmlwdG9yID0gcGF0Y2hlZElucHV0cy5nZXQoaW5wdXRFbGVtZW50KTtcbiAgICBpZiAob3JpZ2luYWxEZXNjcmlwdG9yKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoaW5wdXRFbGVtZW50LCAndmFsdWUnLCBvcmlnaW5hbERlc2NyaXB0b3IpO1xuICAgICAgcGF0Y2hlZElucHV0cy5kZWxldGUoaW5wdXRFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVTdGF0ZShcbiAgICAgICdlbXB0eScsXG4gICAgICB0aGlzLl9mbG9hdGluZ0xhYmVsU3VwcG9ydGVkSW5wdXRFbGVtZW50cy5pbmNsdWRlcyh0aGlzLl9pbnB1dD8ubG9jYWxOYW1lIGFzIHN0cmluZykgJiZcbiAgICAgICAgdGhpcy5faXNJbnB1dEVtcHR5KCksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzSW5wdXRFbXB0eSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjaGlwR3JvdXBFbGVtID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdzYmItY2hpcC1ncm91cCcpO1xuICAgIGlmIChjaGlwR3JvdXBFbGVtKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLl9pc0lucHV0VmFsdWVFbXB0eSgpICYmXG4gICAgICAgIChBcnJheS5pc0FycmF5KGNoaXBHcm91cEVsZW0udmFsdWUpXG4gICAgICAgICAgPyBjaGlwR3JvdXBFbGVtLnZhbHVlLmxlbmd0aCA9PT0gMFxuICAgICAgICAgIDogIWNoaXBHcm91cEVsZW0ucXVlcnlTZWxlY3Rvcignc2JiLWNoaXAnKSlcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9pbnB1dCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMuX2Zsb2F0aW5nTGFiZWxTdXBwb3J0ZWRJbnB1dFR5cGVzLmluY2x1ZGVzKHRoaXMuX2lucHV0LnR5cGUpICYmXG4gICAgICAgIHRoaXMuX2lzSW5wdXRWYWx1ZUVtcHR5KClcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9pbnB1dCBpbnN0YW5jZW9mIEhUTUxTZWxlY3RFbGVtZW50KSB7XG4gICAgICByZXR1cm4gdGhpcy5faW5wdXQuc2VsZWN0ZWRPcHRpb25zPy5pdGVtKDApPy5sYWJlbD8udHJpbSgpID09PSAnJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2lucHV0Py5sb2NhbE5hbWUgPT09ICdzYmItc2VsZWN0Jykge1xuICAgICAgcmV0dXJuICh0aGlzLl9pbnB1dCBhcyBTYmJTZWxlY3RFbGVtZW50KS5nZXREaXNwbGF5VmFsdWU/LigpPy50cmltKCkgPT09ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5faXNJbnB1dFZhbHVlRW1wdHkoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc0lucHV0VmFsdWVFbXB0eSgpOiBib29sZWFuIHtcbiAgICBjb25zdCB2YWx1ZSA9ICh0aGlzLl9pbnB1dCBhcyB7IHZhbHVlOiBzdHJpbmcgfSkudmFsdWU7XG4gICAgcmV0dXJuIFsnJywgdW5kZWZpbmVkLCBudWxsXS5pbmNsdWRlcyh2YWx1ZSkgfHwgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCk7XG4gIH1cblxuICAvKipcbiAgICogSXQgaXMgdXNlZCBpbnRlcm5hbGx5IHRvIHNldCB0aGUgYXJpYS1kZXNjcmliZWRieSBhdHRyaWJ1dGUgZm9yIHRoZSBzbG90dGVkIGlucHV0IHJlZmVyZW5jaW5nIGF2YWlsYWJsZSA8c2JiLWZvcm0tZXJyb3I+IGluc3RhbmNlcy5cbiAgICovXG4gIHByaXZhdGUgX29uU2xvdEVycm9yQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVycm9yRWxlbWVudHMgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxTbG90RWxlbWVudCkuYXNzaWduZWRFbGVtZW50cygpO1xuICAgIGlmICh0aGlzLl9pbnB1dCAmJiB0aGlzLl9pbnB1dC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9pbnB1dC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyA9IHJlbW92ZUFyaWFFbGVtZW50cyhcbiAgICAgICAgdGhpcy5faW5wdXQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMsXG4gICAgICAgIC4uLih0aGlzLl9lcnJvckVsZW1lbnRzID8/IFtdKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5fZXJyb3JFbGVtZW50cyA9IGVycm9yRWxlbWVudHM7XG4gICAgZm9yIChjb25zdCBlbCBvZiB0aGlzLl9lcnJvckVsZW1lbnRzKSB7XG4gICAgICAvLyBJbnN0ZWFkIG9mIGRlZmluaW5nIGEgY29udGFpbmVyIHdpdGggYW4gYXJpYS1saXZlIHJlZ2lvbiBhcyBleHBlY3RlZCwgd2UgaGFkIHRvIGNoYW5nZVxuICAgICAgLy8gc2V0dGluZyBpdCBmb3IgZXZlcnkgc2xvdHRlZCBlbGVtZW50IHRvIHByb3Blcmx5IHdvcmsgaW4gYWxsIGJyb3dzZXJzIGFuZCBzY3JlZW4gcmVhZGVyIGNvbWJpbmF0aW9ucy5cbiAgICAgIGVsLnJvbGUgfHw9ICdzdGF0dXMnO1xuICAgIH1cblxuICAgIHRoaXMuX2Fzc2lnbkVycm9yTWVzc2FnZUVsZW1lbnRzKCk7XG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnaGFzLWVycm9yJywgISF0aGlzLl9lcnJvckVsZW1lbnRzLmxlbmd0aCk7XG4gICAgdGhpcy5fc3luY05lZ2F0aXZlKCk7XG4gIH1cblxuICBwcml2YXRlIF9hc3NpZ25FcnJvck1lc3NhZ2VFbGVtZW50cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faW5wdXQpIHtcbiAgICAgIHRoaXMuX2lucHV0LmFyaWFEZXNjcmliZWRCeUVsZW1lbnRzID0gYXBwZW5kQXJpYUVsZW1lbnRzKFxuICAgICAgICB0aGlzLl9pbnB1dC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgICAgLi4udGhpcy5fZXJyb3JFbGVtZW50cyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqIE1hbnVhbGx5IHJlc2V0IHRoZSBmb3JtIGZpZWxkLiBDdXJyZW50bHksIHRoaXMgb25seSByZXNldHMgdGhlIGZsb2F0aW5nIGxhYmVsLiAqL1xuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5fY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk7XG4gIH1cblxuICAvKiogTWFudWFsbHkgY2xlYXJzIHRoZSBpbnB1dCB2YWx1ZS4gSXQgb25seSB3b3JrcyBmb3IgaW5wdXRzLCBzZWxlY3RzIGFyZSBub3Qgc3VwcG9ydGVkLiAqL1xuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgaWYgKCh0aGlzLl9pbnB1dD8ubG9jYWxOYW1lIGFzIHN0cmluZykgIT09ICdpbnB1dCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgKHRoaXMuX2lucHV0IGFzIHsgdmFsdWU6IHN0cmluZyB9KS52YWx1ZSA9ICcnO1xuICAgIHRoaXMuX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY05lZ2F0aXZlKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKFxuICAgICAgJ3NiYi1mb3JtLWVycm9yLHNiYi1taW5pLWJ1dHRvbixzYmItcG9wb3Zlci10cmlnZ2VyLHNiYi1mb3JtLWZpZWxkLWNsZWFyLHNiYi1kYXRlcGlja2VyLW5leHQtZGF5LHNiYi1kYXRlcGlja2VyLXByZXZpb3VzLWRheSxzYmItZGF0ZXBpY2tlci10b2dnbGUsc2JiLXNlbGVjdCxzYmItYXV0b2NvbXBsZXRlLHNiYi1hdXRvY29tcGxldGUtZ3JpZCxzYmItY2hpcC1ncm91cCcsXG4gICAgKS5mb3JFYWNoKChlbGVtZW50KSA9PiBlbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnbmVnYXRpdmUnLCB0aGlzLm5lZ2F0aXZlKSk7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jU2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJBdXRvY29tcGxldGVCYXNlRWxlbWVudCB8IFNiYlNlbGVjdEVsZW1lbnQ+KFxuICAgICAgJ3NiYi1hdXRvY29tcGxldGUsc2JiLWF1dG9jb21wbGV0ZS1ncmlkLHNiYi1zZWxlY3QnLFxuICAgICkuZm9yRWFjaCgoZWxlbWVudCkgPT4gKGVsZW1lbnQuc2l6ZSA9IHRoaXMuc2l6ZSA9PT0gJ3MnID8gJ3MnIDogJ20nKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItZm9ybS1maWVsZF9fc3BhY2Utd3JhcHBlclwiPlxuICAgICAgICAkey8qIFF1ZXJpZWQgYnkgaWQgZnJvbSB0aGUgYXV0b2NvbXBsZXRlL3NlbGVjdCB0byBiZSB1c2VkIGFzIHRoZSBhbmNob3IgZWxlbWVudCAqLyAnJ31cbiAgICAgICAgPGRpdiBAY2xpY2s9JHt0aGlzLl9oYW5kbGVXcmFwcGVyQ2xpY2t9IGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX3dyYXBwZXJcIiBpZD1cIm92ZXJsYXktYW5jaG9yXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cInByZWZpeFwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fc3luY05lZ2F0aXZlfT48L3Nsb3Q+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX19pbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX2xhYmVsLXNwYWNlclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX2xhYmVsXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX2xhYmVsLWVsbGlwc2lzXCI+XG4gICAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cImxhYmVsXCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9vblNsb3RMYWJlbENoYW5nZX0+PC9zbG90PlxuICAgICAgICAgICAgICAgICR7dGhpcy5vcHRpb25hbFxuICAgICAgICAgICAgICAgICAgPyBodG1sYCA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4gJHtpMThuT3B0aW9uYWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19IDwvc3Bhbj5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItZm9ybS1maWVsZF9faW5wdXRcIj5cbiAgICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9vblNsb3RJbnB1dENoYW5nZX0+PC9zbG90PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAke3RoaXMuaGFzVXBkYXRlZCAmJiBbJ3NlbGVjdCcsICdzYmItc2VsZWN0J10uaW5jbHVkZXModGhpcy5faW5wdXQ/LmxvY2FsTmFtZSBhcyBzdHJpbmcpXG4gICAgICAgICAgICAgID8gaHRtbGA8c2JiLWljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJjaGV2cm9uLXNtYWxsLWRvd24tc21hbGxcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItZm9ybS1maWVsZF9fc2VsZWN0LWlucHV0LWljb25cIlxuICAgICAgICAgICAgICAgID48L3NiYi1pY29uPmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJzdWZmaXhcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX3N5bmNOZWdhdGl2ZX0+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX2Vycm9yXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cImVycm9yXCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9vblNsb3RFcnJvckNoYW5nZX0+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1mb3JtLWZpZWxkJzogU2JiRm9ybUZpZWxkRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbInN0YXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCQSxJQUFJLFNBQVM7QUFFYixNQUFNLG9DQUFvQixRQUFBO0FBQzFCLE1BQU0sc0JBQXNCLENBQUMsU0FBUyxZQUFZLFFBQVE7SUFjcEQsdUJBQW1CLE1BQUE7O0FBRnhCLE1BQUEsbUJBQUEsQ0FBQSxjQUFjLGdCQUFnQixHQUM5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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-field-clear.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/form-field/form-field-clear/form-field-clear.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAQnE,OAAO,eAAe,CAAC;;AAEvB;;;GAGG;AACH,qBAEM,wBAAyB,SAAQ,6BAAsC;IAC3E,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,OAAO,CAAC,UAAU,CAAC,CAA6B;IAChD,OAAO,CAAC,SAAS,CAAmC;;IAOpC,iBAAiB,IAAI,IAAI;YAU3B,YAAY;cAWP,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"form-field-clear.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/form-field/form-field-clear/form-field-clear.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAQnE,OAAO,eAAe,CAAC;;AAEvB;;;GAGG;AACH,qBAEM,wBAAyB,SAAQ,6BAAsC;IAC3E,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,OAAO,CAAC,UAAU,CAAC,CAA6B;IAChD,OAAO,CAAC,SAAS,CAAmC;;IAOpC,iBAAiB,IAAI,IAAI;YAU3B,YAAY;cAWP,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAKzD,cAAc,IAAI,cAAc;CAGpD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,sBAAsB,EAAE,wBAAwB,CAAC;KAClD;CACF"}
|
|
@@ -128,33 +128,31 @@ let SbbFormFieldClearElement = (() => {
|
|
|
128
128
|
let _classSuper = SbbNegativeMixin(SbbButtonBaseElement);
|
|
129
129
|
_a = class extends _classSuper {
|
|
130
130
|
constructor() {
|
|
131
|
-
var _a2;
|
|
132
131
|
super();
|
|
133
132
|
this._language = new SbbLanguageController(this);
|
|
134
|
-
|
|
133
|
+
this.addEventListener?.("click", () => this._handleClick());
|
|
135
134
|
}
|
|
136
135
|
connectedCallback() {
|
|
137
136
|
super.connectedCallback();
|
|
138
137
|
this._formField = this.closest("sbb-form-field, [data-form-field]");
|
|
139
138
|
if (this._formField) {
|
|
140
|
-
this.slot
|
|
139
|
+
this.slot ||= "suffix";
|
|
141
140
|
this.negative = this._formField.hasAttribute("negative");
|
|
142
141
|
}
|
|
143
142
|
}
|
|
144
143
|
async _handleClick() {
|
|
145
|
-
|
|
146
|
-
const input = (_a2 = this._formField) == null ? void 0 : _a2.inputElement;
|
|
144
|
+
const input = this._formField?.inputElement;
|
|
147
145
|
if (!input || input.localName !== "input") {
|
|
148
146
|
return;
|
|
149
147
|
}
|
|
150
|
-
|
|
148
|
+
this._formField?.clear();
|
|
151
149
|
input.focus();
|
|
152
150
|
input.dispatchEvent(new InputEvent("input", { bubbles: true, composed: true }));
|
|
153
151
|
input.dispatchEvent(new Event("change", { bubbles: true }));
|
|
154
152
|
}
|
|
155
153
|
willUpdate(changedProperties) {
|
|
156
154
|
super.willUpdate(changedProperties);
|
|
157
|
-
this.
|
|
155
|
+
this.internals.ariaLabel = i18nClearInput[this._language.current];
|
|
158
156
|
}
|
|
159
157
|
renderTemplate() {
|
|
160
158
|
return html` <sbb-icon name="cross-small"></sbb-icon> `;
|
|
@@ -170,4 +168,4 @@ let SbbFormFieldClearElement = (() => {
|
|
|
170
168
|
export {
|
|
171
169
|
SbbFormFieldClearElement
|
|
172
170
|
};
|
|
173
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jbGVhci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY2xlYXIvZm9ybS1maWVsZC1jbGVhci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiQnV0dG9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBpMThuQ2xlYXJJbnB1dCB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgeyBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJGb3JtRmllbGRFbGVtZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2Zvcm0tZmllbGQtY2xlYXIuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9pY29uLmpzJztcblxuLyoqXG4gKiBDb21iaW5lZCB3aXRoIGBzYmItZm9ybS1maWVsZGAsIGl0IGRpc3BsYXlzIGEgYnV0dG9uIHdoaWNoIGNsZWFycyB0aGUgaW5wdXQgdmFsdWUuXG4gKiBAb3ZlcnJpZGVUeXBlIHZhbHVlIC0gc3RyaW5nXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1mb3JtLWZpZWxkLWNsZWFyJylcbmNsYXNzIFNiYkZvcm1GaWVsZENsZWFyRWxlbWVudCBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oU2JiQnV0dG9uQmFzZUVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgcHJpdmF0ZSBfZm9ybUZpZWxkPzogU2JiRm9ybUZpZWxkRWxlbWVudCB8IG51bGw7XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB0aGlzLl9oYW5kbGVDbGljaygpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2Zvcm1GaWVsZCA9IHRoaXMuY2xvc2VzdDxTYmJGb3JtRmllbGRFbGVtZW50Pignc2JiLWZvcm0tZmllbGQsIFtkYXRhLWZvcm0tZmllbGRdJyk7XG5cbiAgICBpZiAodGhpcy5fZm9ybUZpZWxkKSB7XG4gICAgICB0aGlzLnNsb3QgfHw9ICdzdWZmaXgnO1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IHRoaXMuX2Zvcm1GaWVsZC5oYXNBdHRyaWJ1dGUoJ25lZ2F0aXZlJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfaGFuZGxlQ2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLl9mb3JtRmllbGQ/LmlucHV0RWxlbWVudDtcbiAgICBpZiAoIWlucHV0IHx8IGlucHV0LmxvY2FsTmFtZSAhPT0gJ2lucHV0Jykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtRmllbGQ/LmNsZWFyKCk7XG4gICAgaW5wdXQuZm9jdXMoKTtcbiAgICBpbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIGlucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+
|
|
171
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jbGVhci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY2xlYXIvZm9ybS1maWVsZC1jbGVhci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiQnV0dG9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBpMThuQ2xlYXJJbnB1dCB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgeyBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJGb3JtRmllbGRFbGVtZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2Zvcm0tZmllbGQtY2xlYXIuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9pY29uLmpzJztcblxuLyoqXG4gKiBDb21iaW5lZCB3aXRoIGBzYmItZm9ybS1maWVsZGAsIGl0IGRpc3BsYXlzIGEgYnV0dG9uIHdoaWNoIGNsZWFycyB0aGUgaW5wdXQgdmFsdWUuXG4gKiBAb3ZlcnJpZGVUeXBlIHZhbHVlIC0gc3RyaW5nXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1mb3JtLWZpZWxkLWNsZWFyJylcbmNsYXNzIFNiYkZvcm1GaWVsZENsZWFyRWxlbWVudCBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oU2JiQnV0dG9uQmFzZUVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgcHJpdmF0ZSBfZm9ybUZpZWxkPzogU2JiRm9ybUZpZWxkRWxlbWVudCB8IG51bGw7XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB0aGlzLl9oYW5kbGVDbGljaygpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2Zvcm1GaWVsZCA9IHRoaXMuY2xvc2VzdDxTYmJGb3JtRmllbGRFbGVtZW50Pignc2JiLWZvcm0tZmllbGQsIFtkYXRhLWZvcm0tZmllbGRdJyk7XG5cbiAgICBpZiAodGhpcy5fZm9ybUZpZWxkKSB7XG4gICAgICB0aGlzLnNsb3QgfHw9ICdzdWZmaXgnO1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IHRoaXMuX2Zvcm1GaWVsZC5oYXNBdHRyaWJ1dGUoJ25lZ2F0aXZlJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfaGFuZGxlQ2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLl9mb3JtRmllbGQ/LmlucHV0RWxlbWVudDtcbiAgICBpZiAoIWlucHV0IHx8IGlucHV0LmxvY2FsTmFtZSAhPT0gJ2lucHV0Jykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtRmllbGQ/LmNsZWFyKCk7XG4gICAgaW5wdXQuZm9jdXMoKTtcbiAgICBpbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIGlucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYUxhYmVsID0gaTE4bkNsZWFySW5wdXRbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYCA8c2JiLWljb24gbmFtZT1cImNyb3NzLXNtYWxsXCI+PC9zYmItaWNvbj4gYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWZvcm0tZmllbGQtY2xlYXInOiBTYmJGb3JtRmllbGRDbGVhckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBb0JNLDRCQUF3QixNQUFBOzswQkFEN0IsY0FBYyxzQkFBc0IsQ0FBQzs7OztvQkFDQyxpQkFBaUIsb0JBQW9CO0FBQTdDLEVBQUEsbUJBQVEsWUFBc0M7QUFBQSxJQU0zRSxjQUFBO0FBQ0UsWUFBQTtBQUhNLFdBQUEsWUFBWSxJQUFJLHNCQUFzQixJQUFJO0FBSWhELFdBQUssbUJBQW1CLFNBQVMsTUFBTSxLQUFLLGNBQWM7QUFBQSxJQUFBO0FBQUEsSUFHNUMsb0JBQWlCO0FBQy9CLFlBQU0sa0JBQUE7QUFDTixXQUFLLGFBQWEsS0FBSyxRQUE2QixtQ0FBbUM7QUFFdkYsVUFBSSxLQUFLLFlBQVk7QUFDbkIsYUFBSyxTQUFTO0FBQ2QsYUFBSyxXQUFXLEtBQUssV0FBVyxhQUFhLFVBQVU7QUFBQSxNQUFBO0FBQUEsSUFDekQ7QUFBQSxJQUdNLE1BQU0sZUFBWTtBQUN4QixZQUFNLFFBQVEsS0FBSyxZQUFZO0FBQy9CLFVBQUksQ0FBQyxTQUFTLE1BQU0sY0FBYyxTQUFTO0FBQ3pDO0FBQUEsTUFBQTtBQUVGLFdBQUssWUFBWSxNQUFBO0FBQ2pCLFlBQU0sTUFBQTtBQUNOLFlBQU0sY0FBYyxJQUFJLFdBQVcsU0FBUyxFQUFFLFNBQVMsTUFBTSxVQUFVLEtBQUEsQ0FBTSxDQUFDO0FBQzlFLFlBQU0sY0FBYyxJQUFJLE1BQU0sVUFBVSxFQUFFLFNBQVMsS0FBQSxDQUFNLENBQUM7QUFBQSxJQUFBO0FBQUEsSUFHekMsV0FBVyxtQkFBdUM7QUFDbkUsWUFBTSxXQUFXLGlCQUFpQjtBQUNsQyxXQUFLLFVBQVUsWUFBWSxlQUFlLEtBQUssVUFBVSxPQUFPO0FBQUEsSUFBQTtBQUFBLElBRy9DLGlCQUFjO0FBQy9CLGFBQU87QUFBQSxJQUFBO0FBQUE7O0FBdENYLGlCQUFBLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUFDeUIsR0FBQSxTQUF5QixPQUQ1QyxrQkFBQSxZQUFBLHVCQUFBLEdBQXlCOzs7In0=
|
|
@@ -431,4 +431,4 @@ const SbbHeaderActionCommonElementMixin = (superClass) => {
|
|
|
431
431
|
export {
|
|
432
432
|
SbbHeaderActionCommonElementMixin
|
|
433
433
|
};
|
|
434
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWFjdGlvbi1jb21tb24uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9oZWFkZXIvY29tbW9uL2hlYWRlci1hY3Rpb24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQWN0aW9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzL3Nsb3Qtc3RhdGUuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJIb3Jpem9udGFsRnJvbSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluIH0gZnJvbSAnLi4vLi4vaWNvbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2hlYWRlci1hY3Rpb24uc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiSGVhZGVyQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZSBleHRlbmRzIFNiYkljb25OYW1lTWl4aW4oXG4gIFNiYkFjdGlvbkJhc2VFbGVtZW50LFxuKSB7XG4gIHB1YmxpYyBhY2Nlc3NvciBleHBhbmRGcm9tOiBTYmJIb3Jpem9udGFsRnJvbTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkhlYWRlckFjdGlvbkNvbW1vbkVsZW1lbnRNaXhpbiA9IDxcbiAgVCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiQWN0aW9uQmFzZUVsZW1lbnQ+LFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiSGVhZGVyQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJiBUID0+IHtcbiAgQHNsb3RTdGF0ZSgpXG4gIGFic3RyYWN0IGNsYXNzIFNiYkhlYWRlckFjdGlvbkNvbW1vbkVsZW1lbnRcbiAgICBleHRlbmRzIFNiYkljb25OYW1lTWl4aW4oc3VwZXJDbGFzcylcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiSGVhZGVyQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byBzZXQgdGhlIG1pbmltdW0gYnJlYWtwb2ludCBmcm9tIHdoaWNoIHRoZSB0ZXh0IGlzIGRpc3BsYXllZC5cbiAgICAgKiBFLmcuIGlmIHNldCB0byAnbGFyZ2UnLCB0aGUgdGV4dCB3aWxsIGJlIHZpc2libGUgZm9yIGJyZWFrcG9pbnRzIGxhcmdlLCB3aWRlLCB1bHRyYSxcbiAgICAgKiBhbmQgaGlkZGVuIGZvciBhbGwgdGhlIG90aGVycy4gSWdub3JlZCBpZiBubyBpY29uIGlzIHNldC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdleHBhbmQtZnJvbScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgZXhwYW5kRnJvbTogU2JiSG9yaXpvbnRhbEZyb20gPSAnbWVkaXVtJztcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItaGVhZGVyLWFjdGlvbl9fd3JhcHBlclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWhlYWRlci1hY3Rpb25fX2ljb25cIj4gJHtzdXBlci5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItaGVhZGVyLWFjdGlvbl9fdGV4dFwiPlxuICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgYDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYkhlYWRlckFjdGlvbkNvbW1vbkVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkhlYWRlckFjdGlvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+
|
|
434
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWFjdGlvbi1jb21tb24uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9oZWFkZXIvY29tbW9uL2hlYWRlci1hY3Rpb24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQWN0aW9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzL3Nsb3Qtc3RhdGUuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJIb3Jpem9udGFsRnJvbSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluIH0gZnJvbSAnLi4vLi4vaWNvbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2hlYWRlci1hY3Rpb24uc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiSGVhZGVyQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZSBleHRlbmRzIFNiYkljb25OYW1lTWl4aW4oXG4gIFNiYkFjdGlvbkJhc2VFbGVtZW50LFxuKSB7XG4gIHB1YmxpYyBhY2Nlc3NvciBleHBhbmRGcm9tOiBTYmJIb3Jpem9udGFsRnJvbTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkhlYWRlckFjdGlvbkNvbW1vbkVsZW1lbnRNaXhpbiA9IDxcbiAgVCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiQWN0aW9uQmFzZUVsZW1lbnQ+LFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiSGVhZGVyQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJiBUID0+IHtcbiAgQHNsb3RTdGF0ZSgpXG4gIGFic3RyYWN0IGNsYXNzIFNiYkhlYWRlckFjdGlvbkNvbW1vbkVsZW1lbnRcbiAgICBleHRlbmRzIFNiYkljb25OYW1lTWl4aW4oc3VwZXJDbGFzcylcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiSGVhZGVyQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byBzZXQgdGhlIG1pbmltdW0gYnJlYWtwb2ludCBmcm9tIHdoaWNoIHRoZSB0ZXh0IGlzIGRpc3BsYXllZC5cbiAgICAgKiBFLmcuIGlmIHNldCB0byAnbGFyZ2UnLCB0aGUgdGV4dCB3aWxsIGJlIHZpc2libGUgZm9yIGJyZWFrcG9pbnRzIGxhcmdlLCB3aWRlLCB1bHRyYSxcbiAgICAgKiBhbmQgaGlkZGVuIGZvciBhbGwgdGhlIG90aGVycy4gSWdub3JlZCBpZiBubyBpY29uIGlzIHNldC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdleHBhbmQtZnJvbScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgZXhwYW5kRnJvbTogU2JiSG9yaXpvbnRhbEZyb20gPSAnbWVkaXVtJztcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItaGVhZGVyLWFjdGlvbl9fd3JhcHBlclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWhlYWRlci1hY3Rpb25fX2ljb25cIj4gJHtzdXBlci5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItaGVhZGVyLWFjdGlvbl9fdGV4dFwiPlxuICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgYDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYkhlYWRlckFjdGlvbkNvbW1vbkVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkhlYWRlckFjdGlvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQk8sTUFBTSxvQ0FBb0MsQ0FHL0MsZUFDa0U7TUFFbkQsZ0NBQTRCLE1BQUE7O0FBRDFDLFFBQUEsbUJBQUEsQ0FBQSxXQUFXOzs7O3NCQUVGLGlCQUFpQixVQUFVOzs7O0FBQW5DLElBQUEsbUJBQVEsWUFBNEI7QUFBQTs7QUFXcEMseURBQUEsa0JBQUEsTUFBQSwwQkFBZ0QsUUFBUTs7Ozs7Ozs7TUFBeEQsSUFBZ0IsYUFBVTtBQUFBLGVBQUEsbUJBQUE7QUFBQSxNQUFBO0FBQUEsTUFBMUIsSUFBZ0IsV0FBVSxPQUFBO0FBQUEsMkJBQUEsOEJBQUE7QUFBQSxNQUFBO0FBQUEsTUFFUCxpQkFBYztBQUMvQixlQUFPO0FBQUE7QUFBQSxtREFFc0MsTUFBTSxnQkFBZ0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFBQTtBQUFBLE9BTHJFOztnQ0FEQyxTQUFTLEVBQUUsV0FBVyxlQUFlLFNBQVMsS0FBQSxDQUFNLENBQUM7QUFDdEQsbUJBQUEsSUFBQSxNQUFBLHdCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsY0FBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxnQkFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLFlBQVUsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFlBQVYsYUFBVTtBQUFBLE1BQUEsS0FBQSxVQUFBLGFBQUEsMEJBQUEsNkJBQUE7QUFaNUIsbUJBQUEsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztVQUlnQixHQUFBLFNBQXlCLE9BSjFCLGtCQUFBLFlBQUEsdUJBQUEsR0FDYjs7O0FBd0JGLFNBQU87QUFFVDsifQ==
|