@sbb-esta/lyne-elements 2.6.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/a11y.css +2 -2
- package/accordion/accordion.js +101 -0
- package/accordion.d.ts +3 -0
- package/accordion.d.ts.map +1 -1
- package/accordion.js +2 -99
- package/action-group/action-group.js +110 -0
- package/action-group.d.ts +3 -0
- package/action-group.d.ts.map +1 -1
- package/action-group.js +2 -108
- package/alert/alert/alert.js +176 -0
- package/alert/alert-group/alert-group.js +104 -0
- package/alert/alert-group.d.ts +3 -0
- package/alert/alert-group.d.ts.map +1 -1
- package/alert/alert-group.js +2 -102
- package/alert/alert.d.ts +3 -0
- package/alert/alert.d.ts.map +1 -1
- package/alert/alert.js +2 -174
- package/alert.d.ts +3 -0
- package/alert.d.ts.map +1 -1
- package/alert.js +6 -2
- package/autocomplete/autocomplete-base-element.js +262 -0
- package/autocomplete/autocomplete.js +70 -0
- package/autocomplete-grid/autocomplete-grid/autocomplete-grid.js +109 -0
- package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.js +63 -0
- package/autocomplete-grid/autocomplete-grid-button.d.ts +3 -0
- package/autocomplete-grid/autocomplete-grid-button.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-button.js +2 -61
- package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.js +26 -0
- package/autocomplete-grid/autocomplete-grid-cell.d.ts +3 -0
- package/autocomplete-grid/autocomplete-grid-cell.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-cell.js +2 -24
- package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.js +33 -0
- package/autocomplete-grid/autocomplete-grid-optgroup.d.ts +3 -0
- package/autocomplete-grid/autocomplete-grid-optgroup.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-optgroup.js +2 -31
- package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.js +49 -0
- package/autocomplete-grid/autocomplete-grid-option.d.ts +3 -0
- package/autocomplete-grid/autocomplete-grid-option.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-option.js +3 -47
- package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.js +29 -0
- package/autocomplete-grid/autocomplete-grid-row.d.ts +3 -0
- package/autocomplete-grid/autocomplete-grid-row.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-row.js +2 -27
- package/autocomplete-grid/autocomplete-grid.d.ts +3 -0
- package/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid.js +2 -107
- package/autocomplete-grid.d.ts +3 -0
- package/autocomplete-grid.d.ts.map +1 -1
- package/autocomplete-grid.js +15 -6
- package/autocomplete.d.ts +3 -0
- package/autocomplete.d.ts.map +1 -1
- package/autocomplete.js +5 -321
- package/breadcrumb/breadcrumb/breadcrumb.js +52 -0
- package/breadcrumb/breadcrumb-group/breadcrumb-group.js +141 -0
- package/breadcrumb/breadcrumb-group.d.ts +3 -0
- package/breadcrumb/breadcrumb-group.d.ts.map +1 -1
- package/breadcrumb/breadcrumb-group.js +2 -139
- package/breadcrumb/breadcrumb.d.ts +3 -0
- package/breadcrumb/breadcrumb.d.ts.map +1 -1
- package/breadcrumb/breadcrumb.js +2 -50
- package/breadcrumb.d.ts +3 -0
- package/breadcrumb.d.ts.map +1 -1
- package/breadcrumb.js +6 -2
- package/button/accent-button/accent-button.js +17 -0
- package/button/accent-button-link/accent-button-link.js +17 -0
- package/button/accent-button-link.d.ts +3 -0
- package/button/accent-button-link.d.ts.map +1 -1
- package/button/accent-button-link.js +2 -15
- package/button/accent-button-static/accent-button-static.js +17 -0
- package/button/accent-button-static.d.ts +3 -0
- package/button/accent-button-static.d.ts.map +1 -1
- package/button/accent-button-static.js +2 -15
- package/button/accent-button.d.ts +3 -0
- package/button/accent-button.d.ts.map +1 -1
- package/button/accent-button.js +2 -15
- package/button/button/button.js +17 -0
- package/button/button-link/button-link.js +17 -0
- package/button/button-link.d.ts +3 -0
- package/button/button-link.d.ts.map +1 -1
- package/button/button-link.js +2 -15
- package/button/button-static/button-static.js +17 -0
- package/button/button-static.d.ts +3 -0
- package/button/button-static.d.ts.map +1 -1
- package/button/button-static.js +2 -15
- package/button/button.d.ts +3 -0
- package/button/button.d.ts.map +1 -1
- package/button/button.js +2 -15
- package/button/common/button-common.js +51 -0
- package/button/common.d.ts +3 -0
- package/button/common.d.ts.map +1 -1
- package/button/common.js +8 -55
- package/button/mini-button/mini-button.js +23 -0
- package/button/mini-button-group/mini-button-group.js +63 -0
- package/button/mini-button-group.d.ts +3 -0
- package/button/mini-button-group.d.ts.map +1 -1
- package/button/mini-button-group.js +2 -61
- package/button/mini-button.d.ts +3 -0
- package/button/mini-button.d.ts.map +1 -1
- package/button/mini-button.js +2 -21
- package/button/secondary-button/secondary-button.js +17 -0
- package/button/secondary-button-link/secondary-button-link.js +17 -0
- package/button/secondary-button-link.d.ts +3 -0
- package/button/secondary-button-link.d.ts.map +1 -1
- package/button/secondary-button-link.js +2 -15
- package/button/secondary-button-static/secondary-button-static.js +17 -0
- package/button/secondary-button-static.d.ts +3 -0
- package/button/secondary-button-static.d.ts.map +1 -1
- package/button/secondary-button-static.js +2 -15
- package/button/secondary-button.d.ts +3 -0
- package/button/secondary-button.d.ts.map +1 -1
- package/button/secondary-button.js +2 -15
- package/button/transparent-button/transparent-button.js +17 -0
- package/button/transparent-button-link/transparent-button-link.js +17 -0
- package/button/transparent-button-link.d.ts +3 -0
- package/button/transparent-button-link.d.ts.map +1 -1
- package/button/transparent-button-link.js +2 -15
- package/button/transparent-button-static/transparent-button-static.js +17 -0
- package/button/transparent-button-static.d.ts +3 -0
- package/button/transparent-button-static.d.ts.map +1 -1
- package/button/transparent-button-static.js +2 -15
- package/button/transparent-button.d.ts +3 -0
- package/button/transparent-button.d.ts.map +1 -1
- package/button/transparent-button.js +2 -15
- package/button.d.ts +3 -0
- package/button.d.ts.map +1 -1
- package/button.js +38 -15
- package/calendar/calendar.js +939 -0
- package/calendar.d.ts +3 -0
- package/calendar.d.ts.map +1 -1
- package/calendar.js +2 -937
- package/card/card/card.js +70 -0
- package/card/card-badge/card-badge.js +57 -0
- package/card/card-badge.d.ts +3 -0
- package/card/card-badge.d.ts.map +1 -1
- package/card/card-badge.js +2 -55
- package/card/card-button/card-button.js +19 -0
- package/card/card-button.d.ts +3 -0
- package/card/card-button.d.ts.map +1 -1
- package/card/card-button.js +2 -17
- package/card/card-link/card-link.js +19 -0
- package/card/card-link.d.ts +3 -0
- package/card/card-link.d.ts.map +1 -1
- package/card/card-link.js +2 -17
- package/card/card.d.ts +3 -0
- package/card/card.d.ts.map +1 -1
- package/card/card.js +2 -68
- package/card/common/card-action-common.js +60 -0
- package/card/common.d.ts +3 -0
- package/card/common.d.ts.map +1 -1
- package/card/common.js +2 -58
- package/card.d.ts +3 -0
- package/card.d.ts.map +1 -1
- package/card.js +12 -5
- package/checkbox/checkbox/checkbox.js +80 -0
- package/checkbox/checkbox-group/checkbox-group.js +113 -0
- package/checkbox/checkbox-group.d.ts +3 -0
- package/checkbox/checkbox-group.d.ts.map +1 -1
- package/checkbox/checkbox-group.js +2 -111
- package/checkbox/checkbox-panel/checkbox-panel.js +82 -0
- package/checkbox/checkbox-panel.d.ts +3 -0
- package/checkbox/checkbox-panel.d.ts.map +1 -1
- package/checkbox/checkbox-panel.js +2 -80
- package/checkbox/checkbox.d.ts +3 -0
- package/checkbox/checkbox.d.ts.map +1 -1
- package/checkbox/checkbox.js +2 -78
- package/checkbox/common/checkbox-common.js +56 -0
- package/checkbox/common.d.ts +3 -0
- package/checkbox/common.d.ts.map +1 -1
- package/checkbox/common.js +4 -56
- package/checkbox-common-CDzcyq8p.js +5 -0
- package/checkbox.d.ts +3 -0
- package/checkbox.d.ts.map +1 -1
- package/checkbox.js +12 -4
- package/chip/chip/chip.js +85 -0
- package/chip/chip-group/chip-group.js +226 -0
- package/chip/chip-group.d.ts +3 -0
- package/chip/chip-group.d.ts.map +1 -1
- package/chip/chip-group.js +2 -223
- package/chip/chip.d.ts +3 -0
- package/chip/chip.d.ts.map +1 -1
- package/chip/chip.js +2 -83
- package/chip-label/chip-label.js +54 -0
- package/chip-label.d.ts +3 -0
- package/chip-label.d.ts.map +1 -1
- package/chip-label.js +2 -52
- package/chip.d.ts +3 -0
- package/chip.d.ts.map +1 -1
- package/chip.js +6 -2
- package/clock/clock.js +163 -0
- package/clock.d.ts +3 -0
- package/clock.d.ts.map +1 -1
- package/clock.js +2 -161
- package/container/container/container.js +71 -0
- package/container/container.d.ts +3 -0
- package/container/container.d.ts.map +1 -1
- package/container/container.js +2 -69
- package/container/sticky-bar/sticky-bar.js +111 -0
- package/container/sticky-bar.d.ts +3 -0
- package/container/sticky-bar.d.ts.map +1 -1
- package/container/sticky-bar.js +2 -109
- package/container.d.ts +3 -0
- package/container.d.ts.map +1 -1
- package/container.js +6 -2
- package/core/a11y/arrow-navigation.js +33 -0
- package/core/a11y/fake-event-detection.js +11 -0
- package/core/a11y/focus-trap-controller.d.ts +35 -0
- package/core/a11y/focus-trap-controller.d.ts.map +1 -0
- package/core/a11y/focus-trap-controller.js +95 -0
- package/core/a11y/focus-visible-within-controller.js +19 -0
- package/core/a11y/focus.d.ts +12 -0
- package/core/a11y/focus.d.ts.map +1 -1
- package/core/a11y/focus.js +75 -0
- package/core/a11y/input-modality-detector.d.ts +5 -0
- package/core/a11y/input-modality-detector.d.ts.map +1 -1
- package/core/a11y/input-modality-detector.js +59 -0
- package/core/a11y/interactivity-checker.d.ts +49 -3
- package/core/a11y/interactivity-checker.d.ts.map +1 -1
- package/core/a11y/interactivity-checker.js +104 -0
- package/core/a11y.d.ts +4 -0
- package/core/a11y.d.ts.map +1 -1
- package/core/a11y.js +26 -201
- package/core/base-elements/action-base-element.js +46 -0
- package/core/base-elements/button-base-element.d.ts.map +1 -1
- package/core/base-elements/button-base-element.js +120 -0
- package/core/base-elements/link-base-element.js +130 -0
- package/core/base-elements/open-close-base-element.js +33 -0
- package/core/base-elements.d.ts +3 -0
- package/core/base-elements.d.ts.map +1 -1
- package/core/base-elements.js +8 -308
- package/core/config/config.js +11 -0
- package/core/config.d.ts +3 -0
- package/core/config.d.ts.map +1 -1
- package/core/config.js +3 -9
- package/core/controllers/connected-abort-controller.js +19 -0
- package/core/controllers/escapable-overlay-controller.d.ts.map +1 -1
- package/core/controllers/escapable-overlay-controller.js +29 -0
- package/core/controllers/id-observer-controller.js +61 -0
- package/core/controllers/inert-controller.d.ts +3 -1
- package/core/controllers/inert-controller.d.ts.map +1 -1
- package/core/controllers/inert-controller.js +48 -0
- package/core/controllers/language-controller.js +39 -0
- package/core/controllers/media-matchers-controller.d.ts +1 -0
- package/core/controllers/media-matchers-controller.d.ts.map +1 -1
- package/core/controllers/media-matchers-controller.js +43 -0
- package/core/controllers/slot-state-controller.js +30 -0
- package/core/controllers.d.ts +3 -0
- package/core/controllers.d.ts.map +1 -1
- package/core/controllers.js +20 -248
- package/core/datetime/date-adapter.js +102 -0
- package/core/datetime/native-date-adapter.js +169 -0
- package/core/datetime.d.ts +3 -0
- package/core/datetime.d.ts.map +1 -1
- package/core/datetime.js +12 -266
- package/core/decorators/base.js +1 -0
- package/core/decorators/date-converter.js +17 -0
- package/core/decorators/date-only-type.js +10 -0
- package/core/decorators/force-type.js +18 -0
- package/core/decorators/get-override.js +14 -0
- package/core/decorators/handle-distinct-change.js +16 -0
- package/core/decorators/host-attributes.js +18 -0
- package/core/decorators/omit-empty-converter.js +9 -0
- package/core/decorators/slot-state.js +8 -0
- package/core/decorators.d.ts +3 -0
- package/core/decorators.d.ts.map +1 -1
- package/core/decorators.js +16 -86
- package/core/dom/animation.js +10 -0
- package/core/dom/breakpoint.d.ts +1 -1
- package/core/dom/breakpoint.js +12 -0
- package/core/dom/find-referenced-element.js +7 -0
- package/core/dom/host-context.js +17 -0
- package/core/dom/input-element.js +12 -0
- package/core/dom/lean-context.js +7 -0
- package/core/dom/platform.js +21 -0
- package/core/dom/scroll.js +19 -0
- package/core/dom/set-or-remove-attribute.js +6 -0
- package/core/dom.d.ts +3 -0
- package/core/dom.d.ts.map +1 -1
- package/core/dom.js +31 -87
- package/core/eventing/composed-path-has-attribute.js +8 -0
- package/core/eventing/event-emitter.js +23 -0
- package/core/eventing/event-target.js +6 -0
- package/core/eventing/form-element-handlers.js +6 -0
- package/core/eventing/forward-event.js +9 -0
- package/core/eventing/is-event-prevented.js +6 -0
- package/core/eventing/throttle.js +11 -0
- package/core/eventing.d.ts +3 -0
- package/core/eventing.d.ts.map +1 -1
- package/core/eventing.js +15 -55
- package/core/i18n/i18n.js +700 -0
- package/core/i18n.d.ts +3 -0
- package/core/i18n.d.ts.map +1 -1
- package/core/i18n.js +89 -698
- package/core/images.js +15 -0
- package/core/interfaces.d.ts +3 -0
- package/core/interfaces.d.ts.map +1 -1
- package/core/mixins/animation-complete-mixin.js +43 -0
- package/core/mixins/constructor.js +1 -0
- package/core/mixins/disabled-mixin.js +72 -0
- package/core/mixins/form-associated-checkbox-mixin.js +92 -0
- package/core/mixins/form-associated-input-mixin.js +182 -0
- package/core/mixins/form-associated-mixin.js +219 -0
- package/core/mixins/form-associated-radio-button-mixin.js +159 -0
- package/core/mixins/hydration-mixin.js +39 -0
- package/core/mixins/named-slot-list-mixin.js +107 -0
- package/core/mixins/negative-mixin.js +34 -0
- package/core/mixins/panel-mixin.js +61 -0
- package/core/mixins/required-mixin.js +36 -0
- package/core/mixins/update-scheduler-mixin.js +22 -0
- package/core/mixins.d.ts +3 -0
- package/core/mixins.d.ts.map +1 -1
- package/core/mixins.js +29 -973
- package/core/overlay/overlay-option-panel.js +11 -0
- package/core/overlay/overlay-trigger-attributes.js +18 -0
- package/core/overlay/overlay.js +14 -0
- package/core/overlay/position.js +40 -0
- package/core/overlay.d.ts +3 -0
- package/core/overlay.d.ts.map +1 -1
- package/core/overlay.js +12 -73
- package/core/styles/core.scss +8 -0
- package/core/styles/mixins/a11y.scss +2 -1
- package/core/styles/mixins/buttons.scss +7 -6
- package/core/styles/mixins/link.scss +1 -2
- package/core/styles/mixins/table.scss +3 -0
- package/core/styles/table.scss +45 -0
- package/core/testing/event-spy.js +53 -0
- package/core/testing/mocha-extensions.js +11 -0
- package/core/testing/scroll.js +6 -0
- package/core/testing/wait-for-condition.js +13 -0
- package/core/testing/wait-for-image-ready.d.ts.map +1 -1
- package/core/testing/wait-for-image-ready.js +18 -0
- package/core/testing/wait-for-render.js +15 -0
- package/core/testing.d.ts +3 -0
- package/core/testing.d.ts.map +1 -1
- package/core/testing.js +14 -109
- package/core.css +3 -0
- package/custom-elements.json +51411 -47213
- package/date-input/date-input.d.ts.map +1 -1
- package/date-input/date-input.js +155 -0
- package/date-input.d.ts +3 -0
- package/date-input.d.ts.map +1 -1
- package/date-input.js +2 -153
- package/datepicker/common/datepicker-association-controllers.js +58 -0
- package/datepicker/common/datepicker-button.js +105 -0
- package/datepicker/common.d.ts +3 -0
- package/datepicker/common.d.ts.map +1 -1
- package/datepicker/common.js +5 -158
- package/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/datepicker/datepicker/datepicker.js +266 -0
- package/datepicker/datepicker-next-day/datepicker-next-day.js +27 -0
- package/datepicker/datepicker-next-day.d.ts +3 -0
- package/datepicker/datepicker-next-day.d.ts.map +1 -1
- package/datepicker/datepicker-next-day.js +2 -25
- package/datepicker/datepicker-previous-day/datepicker-previous-day.js +27 -0
- package/datepicker/datepicker-previous-day.d.ts +3 -0
- package/datepicker/datepicker-previous-day.d.ts.map +1 -1
- package/datepicker/datepicker-previous-day.js +2 -25
- package/datepicker/datepicker-toggle/datepicker-toggle.js +171 -0
- package/datepicker/datepicker-toggle.d.ts +3 -0
- package/datepicker/datepicker-toggle.d.ts.map +1 -1
- package/datepicker/datepicker-toggle.js +2 -169
- package/datepicker/datepicker.d.ts +3 -0
- package/datepicker/datepicker.d.ts.map +1 -1
- package/datepicker/datepicker.js +4 -261
- package/datepicker.d.ts +3 -0
- package/datepicker.d.ts.map +1 -1
- package/datepicker.js +17 -5
- package/development/accordion/accordion.js +149 -0
- package/development/accordion.d.ts +3 -0
- package/development/accordion.d.ts.map +1 -1
- package/development/accordion.js +2 -146
- package/development/action-group/action-group.js +405 -0
- package/development/action-group.d.ts +3 -0
- package/development/action-group.d.ts.map +1 -1
- package/development/action-group.js +2 -402
- package/development/alert/alert/alert.js +434 -0
- package/development/alert/alert-group/alert-group.js +183 -0
- package/development/alert/alert-group.d.ts +3 -0
- package/development/alert/alert-group.d.ts.map +1 -1
- package/development/alert/alert-group.js +2 -180
- package/development/alert/alert.d.ts +3 -0
- package/development/alert/alert.d.ts.map +1 -1
- package/development/alert/alert.js +2 -431
- package/development/alert.d.ts +3 -0
- package/development/alert.d.ts.map +1 -1
- package/development/alert.js +6 -2
- package/development/autocomplete/autocomplete-base-element.js +700 -0
- package/development/autocomplete/autocomplete.js +99 -0
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.js +157 -0
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.js +208 -0
- package/development/autocomplete-grid/autocomplete-grid-button.d.ts +3 -0
- package/development/autocomplete-grid/autocomplete-grid-button.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-button.js +2 -202
- package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.js +47 -0
- package/development/autocomplete-grid/autocomplete-grid-cell.d.ts +3 -0
- package/development/autocomplete-grid/autocomplete-grid-cell.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-cell.js +2 -44
- package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.js +44 -0
- package/development/autocomplete-grid/autocomplete-grid-optgroup.d.ts +3 -0
- package/development/autocomplete-grid/autocomplete-grid-optgroup.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-optgroup.js +2 -41
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.js +139 -0
- package/development/autocomplete-grid/autocomplete-grid-option.d.ts +3 -0
- package/development/autocomplete-grid/autocomplete-grid-option.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-option.js +2 -134
- package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.js +123 -0
- package/development/autocomplete-grid/autocomplete-grid-row.d.ts +3 -0
- package/development/autocomplete-grid/autocomplete-grid-row.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-row.js +2 -120
- package/development/autocomplete-grid/autocomplete-grid.d.ts +3 -0
- package/development/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid.js +2 -154
- package/development/autocomplete-grid.d.ts +3 -0
- package/development/autocomplete-grid.d.ts.map +1 -1
- package/development/autocomplete-grid.js +15 -6
- package/development/autocomplete.d.ts +3 -0
- package/development/autocomplete.d.ts.map +1 -1
- package/development/autocomplete.js +3 -785
- package/development/breadcrumb/breadcrumb/breadcrumb.js +136 -0
- package/development/breadcrumb/breadcrumb-group/breadcrumb-group.js +281 -0
- package/development/breadcrumb/breadcrumb-group.d.ts +3 -0
- package/development/breadcrumb/breadcrumb-group.d.ts.map +1 -1
- package/development/breadcrumb/breadcrumb-group.js +2 -278
- package/development/breadcrumb/breadcrumb.d.ts +3 -0
- package/development/breadcrumb/breadcrumb.d.ts.map +1 -1
- package/development/breadcrumb/breadcrumb.js +2 -133
- package/development/breadcrumb.d.ts +3 -0
- package/development/breadcrumb.d.ts.map +1 -1
- package/development/breadcrumb.js +6 -2
- package/development/button/accent-button/accent-button.js +25 -0
- package/development/button/accent-button-link/accent-button-link.js +25 -0
- package/development/button/accent-button-link.d.ts +3 -0
- package/development/button/accent-button-link.d.ts.map +1 -1
- package/development/button/accent-button-link.js +2 -22
- package/development/button/accent-button-static/accent-button-static.js +25 -0
- package/development/button/accent-button-static.d.ts +3 -0
- package/development/button/accent-button-static.d.ts.map +1 -1
- package/development/button/accent-button-static.js +2 -22
- package/development/button/accent-button.d.ts +3 -0
- package/development/button/accent-button.d.ts.map +1 -1
- package/development/button/accent-button.js +2 -22
- package/development/button/button/button.js +25 -0
- package/development/button/button-link/button-link.js +25 -0
- package/development/button/button-link.d.ts +3 -0
- package/development/button/button-link.d.ts.map +1 -1
- package/development/button/button-link.js +2 -22
- package/development/button/button-static/button-static.js +25 -0
- package/development/button/button-static.d.ts +3 -0
- package/development/button/button-static.d.ts.map +1 -1
- package/development/button/button-static.js +2 -22
- package/development/button/button.d.ts +3 -0
- package/development/button/button.d.ts.map +1 -1
- package/development/button/button.js +2 -22
- package/development/button/common/button-common.js +70 -0
- package/development/button/common.d.ts +3 -0
- package/development/button/common.d.ts.map +1 -1
- package/development/button/common.js +8 -407
- package/development/button/mini-button/mini-button.js +143 -0
- package/development/button/mini-button-group/mini-button-group.js +153 -0
- package/development/button/mini-button-group.d.ts +3 -0
- package/development/button/mini-button-group.d.ts.map +1 -1
- package/development/button/mini-button-group.js +2 -150
- package/development/button/mini-button.d.ts +3 -0
- package/development/button/mini-button.d.ts.map +1 -1
- package/development/button/mini-button.js +2 -137
- package/development/button/secondary-button/secondary-button.js +25 -0
- package/development/button/secondary-button-link/secondary-button-link.js +25 -0
- package/development/button/secondary-button-link.d.ts +3 -0
- package/development/button/secondary-button-link.d.ts.map +1 -1
- package/development/button/secondary-button-link.js +2 -22
- package/development/button/secondary-button-static/secondary-button-static.js +25 -0
- package/development/button/secondary-button-static.d.ts +3 -0
- package/development/button/secondary-button-static.d.ts.map +1 -1
- package/development/button/secondary-button-static.js +2 -22
- package/development/button/secondary-button.d.ts +3 -0
- package/development/button/secondary-button.d.ts.map +1 -1
- package/development/button/secondary-button.js +2 -22
- package/development/button/transparent-button/transparent-button.js +25 -0
- package/development/button/transparent-button-link/transparent-button-link.js +25 -0
- package/development/button/transparent-button-link.d.ts +3 -0
- package/development/button/transparent-button-link.d.ts.map +1 -1
- package/development/button/transparent-button-link.js +2 -22
- package/development/button/transparent-button-static/transparent-button-static.js +25 -0
- package/development/button/transparent-button-static.d.ts +3 -0
- package/development/button/transparent-button-static.d.ts.map +1 -1
- package/development/button/transparent-button-static.js +2 -22
- package/development/button/transparent-button.d.ts +3 -0
- package/development/button/transparent-button.d.ts.map +1 -1
- package/development/button/transparent-button.js +2 -22
- package/development/button.d.ts +3 -0
- package/development/button.d.ts.map +1 -1
- package/development/button.js +39 -16
- package/development/calendar/calendar.js +1547 -0
- package/development/calendar.d.ts +3 -0
- package/development/calendar.d.ts.map +1 -1
- package/development/calendar.js +2 -1542
- package/development/card/card/card.js +287 -0
- package/development/card/card-badge/card-badge.js +169 -0
- package/development/card/card-badge.d.ts +3 -0
- package/development/card/card-badge.d.ts.map +1 -1
- package/development/card/card-badge.js +2 -166
- package/development/card/card-button/card-button.js +29 -0
- package/development/card/card-button.d.ts +3 -0
- package/development/card/card-button.d.ts.map +1 -1
- package/development/card/card-button.js +2 -26
- package/development/card/card-link/card-link.js +29 -0
- package/development/card/card-link.d.ts +3 -0
- package/development/card/card-link.d.ts.map +1 -1
- package/development/card/card-link.js +2 -26
- package/development/card/card.d.ts +3 -0
- package/development/card/card.d.ts.map +1 -1
- package/development/card/card.js +2 -284
- package/development/card/common/card-action-common.js +119 -0
- package/development/card/common.d.ts +3 -0
- package/development/card/common.d.ts.map +1 -1
- package/development/card/common.js +2 -116
- package/development/card.d.ts +3 -0
- package/development/card.d.ts.map +1 -1
- package/development/card.js +12 -5
- package/development/checkbox/checkbox/checkbox.js +134 -0
- package/development/checkbox/checkbox-group/checkbox-group.js +294 -0
- package/development/checkbox/checkbox-group.d.ts +3 -0
- package/development/checkbox/checkbox-group.d.ts.map +1 -1
- package/development/checkbox/checkbox-group.js +2 -291
- package/development/checkbox/checkbox-panel/checkbox-panel.js +108 -0
- package/development/checkbox/checkbox-panel.d.ts +3 -0
- package/development/checkbox/checkbox-panel.d.ts.map +1 -1
- package/development/checkbox/checkbox-panel.js +2 -105
- package/development/checkbox/checkbox.d.ts +3 -0
- package/development/checkbox/checkbox.d.ts.map +1 -1
- package/development/checkbox/checkbox.js +2 -131
- package/development/checkbox/common/checkbox-common.js +75 -0
- package/development/checkbox/common.d.ts +3 -0
- package/development/checkbox/common.d.ts.map +1 -1
- package/development/checkbox/common.js +4 -152
- package/development/checkbox-common-aMPOsPVA.js +83 -0
- package/development/checkbox.d.ts +3 -0
- package/development/checkbox.d.ts.map +1 -1
- package/development/checkbox.js +13 -5
- package/development/chip/chip/chip.js +213 -0
- package/development/chip/chip-group/chip-group.js +350 -0
- package/development/chip/chip-group.d.ts +3 -0
- package/development/chip/chip-group.d.ts.map +1 -1
- package/development/chip/chip-group.js +2 -346
- package/development/chip/chip.d.ts +3 -0
- package/development/chip/chip.d.ts.map +1 -1
- package/development/chip/chip.js +2 -209
- package/development/chip-label/chip-label.js +154 -0
- package/development/chip-label.d.ts +3 -0
- package/development/chip-label.d.ts.map +1 -1
- package/development/chip-label.js +2 -151
- package/development/chip.d.ts +3 -0
- package/development/chip.d.ts.map +1 -1
- package/development/chip.js +6 -2
- package/development/clock/clock.js +390 -0
- package/development/clock.d.ts +3 -0
- package/development/clock.d.ts.map +1 -1
- package/development/clock.js +2 -387
- package/development/container/container/container.js +194 -0
- package/development/container/container.d.ts +3 -0
- package/development/container/container.d.ts.map +1 -1
- package/development/container/container.js +2 -191
- package/development/container/sticky-bar/sticky-bar.js +349 -0
- package/development/container/sticky-bar.d.ts +3 -0
- package/development/container/sticky-bar.d.ts.map +1 -1
- package/development/container/sticky-bar.js +2 -346
- package/development/container.d.ts +3 -0
- package/development/container.d.ts.map +1 -1
- package/development/container.js +6 -2
- package/development/core/a11y/arrow-navigation.js +43 -0
- package/development/core/a11y/fake-event-detection.js +12 -0
- package/development/core/a11y/focus-trap-controller.d.ts +35 -0
- package/development/core/a11y/focus-trap-controller.d.ts.map +1 -0
- package/development/core/a11y/focus-trap-controller.js +127 -0
- package/development/core/a11y/focus-visible-within-controller.js +25 -0
- package/development/core/a11y/focus.d.ts +12 -0
- package/development/core/a11y/focus.d.ts.map +1 -1
- package/development/core/a11y/focus.js +94 -0
- package/development/core/a11y/input-modality-detector.d.ts +5 -0
- package/development/core/a11y/input-modality-detector.d.ts.map +1 -1
- package/development/core/a11y/input-modality-detector.js +96 -0
- package/development/core/a11y/interactivity-checker.d.ts +49 -3
- package/development/core/a11y/interactivity-checker.d.ts.map +1 -1
- package/development/core/a11y/interactivity-checker.js +137 -0
- package/development/core/a11y.d.ts +4 -0
- package/development/core/a11y.d.ts.map +1 -1
- package/development/core/a11y.js +10 -253
- package/development/core/base-elements/action-base-element.js +62 -0
- package/development/core/base-elements/button-base-element.d.ts.map +1 -1
- package/development/core/base-elements/button-base-element.js +179 -0
- package/development/core/base-elements/link-base-element.js +183 -0
- package/development/core/base-elements/open-close-base-element.js +39 -0
- package/development/core/base-elements.d.ts +3 -0
- package/development/core/base-elements.d.ts.map +1 -1
- package/development/core/base-elements.js +5 -437
- package/development/core/config/config.js +15 -0
- package/development/core/config.d.ts +3 -0
- package/development/core/config.d.ts.map +1 -1
- package/development/core/config.js +2 -11
- package/development/core/controllers/connected-abort-controller.js +25 -0
- package/development/core/controllers/escapable-overlay-controller.d.ts.map +1 -1
- package/development/core/controllers/escapable-overlay-controller.js +40 -0
- package/development/core/controllers/id-observer-controller.js +84 -0
- package/development/core/controllers/inert-controller.d.ts +3 -1
- package/development/core/controllers/inert-controller.d.ts.map +1 -1
- package/development/core/controllers/inert-controller.js +91 -0
- package/development/core/controllers/language-controller.js +69 -0
- package/development/core/controllers/media-matchers-controller.d.ts +1 -0
- package/development/core/controllers/media-matchers-controller.d.ts.map +1 -1
- package/development/core/controllers/media-matchers-controller.js +62 -0
- package/development/core/controllers/slot-state-controller.js +48 -0
- package/development/core/controllers.d.ts +3 -0
- package/development/core/controllers.d.ts.map +1 -1
- package/development/core/controllers.js +9 -376
- package/development/core/datetime/date-adapter.js +129 -0
- package/development/core/datetime/native-date-adapter.js +185 -0
- package/development/core/datetime.d.ts +3 -0
- package/development/core/datetime.d.ts.map +1 -1
- package/development/core/datetime.js +3 -298
- package/development/core/decorators/base.js +2 -0
- package/development/core/decorators/date-converter.js +18 -0
- package/development/core/decorators/date-only-type.js +11 -0
- package/development/core/decorators/force-type.js +29 -0
- package/development/core/decorators/get-override.js +18 -0
- package/development/core/decorators/handle-distinct-change.js +22 -0
- package/development/core/decorators/host-attributes.js +30 -0
- package/development/core/decorators/omit-empty-converter.js +10 -0
- package/development/core/decorators/slot-state.js +11 -0
- package/development/core/decorators.d.ts +3 -0
- package/development/core/decorators.d.ts.map +1 -1
- package/development/core/decorators.js +9 -114
- package/development/core/dom/animation.js +12 -0
- package/development/core/dom/breakpoint.d.ts +1 -1
- package/development/core/dom/breakpoint.js +19 -0
- package/development/core/dom/find-referenced-element.js +15 -0
- package/development/core/dom/host-context.js +21 -0
- package/development/core/dom/input-element.js +13 -0
- package/development/core/dom/lean-context.js +8 -0
- package/development/core/dom/platform.js +32 -0
- package/development/core/dom/scroll.js +37 -0
- package/development/core/dom/set-or-remove-attribute.js +11 -0
- package/development/core/dom.d.ts +3 -0
- package/development/core/dom.d.ts.map +1 -1
- package/development/core/dom.js +10 -114
- package/development/core/eventing/composed-path-has-attribute.js +12 -0
- package/development/core/eventing/event-emitter.js +26 -0
- package/development/core/eventing/event-target.js +7 -0
- package/development/core/eventing/form-element-handlers.js +9 -0
- package/development/core/eventing/forward-event.js +11 -0
- package/development/core/eventing/is-event-prevented.js +8 -0
- package/development/core/eventing/throttle.js +18 -0
- package/development/core/eventing.d.ts +3 -0
- package/development/core/eventing.d.ts.map +1 -1
- package/development/core/eventing.js +8 -63
- package/development/core/i18n/i18n.js +793 -0
- package/development/core/i18n.d.ts +3 -0
- package/development/core/i18n.d.ts.map +1 -1
- package/development/core/i18n.js +2 -703
- package/development/core/images.js +16 -0
- package/development/core/interfaces.d.ts +3 -0
- package/development/core/interfaces.d.ts.map +1 -1
- package/development/core/mixins/animation-complete-mixin.js +52 -0
- package/development/core/mixins/constructor.js +2 -0
- package/development/core/mixins/disabled-mixin.js +104 -0
- package/development/core/mixins/form-associated-checkbox-mixin.js +148 -0
- package/development/core/mixins/form-associated-input-mixin.js +294 -0
- package/development/core/mixins/form-associated-mixin.js +268 -0
- package/development/core/mixins/form-associated-radio-button-mixin.js +242 -0
- package/development/core/mixins/hydration-mixin.js +57 -0
- package/development/core/mixins/named-slot-list-mixin.js +136 -0
- package/development/core/mixins/negative-mixin.js +45 -0
- package/development/core/mixins/panel-mixin.js +87 -0
- package/development/core/mixins/required-mixin.js +48 -0
- package/development/core/mixins/update-scheduler-mixin.js +26 -0
- package/development/core/mixins.d.ts +3 -0
- package/development/core/mixins.d.ts.map +1 -1
- package/development/core/mixins.js +15 -1392
- package/development/core/overlay/overlay-option-panel.js +18 -0
- package/development/core/overlay/overlay-trigger-attributes.js +47 -0
- package/development/core/overlay/overlay.js +15 -0
- package/development/core/overlay/position.js +84 -0
- package/development/core/overlay.d.ts +3 -0
- package/development/core/overlay.d.ts.map +1 -1
- package/development/core/overlay.js +5 -143
- package/development/core/testing/event-spy.js +70 -0
- package/development/core/testing/mocha-extensions.js +15 -0
- package/development/core/testing/scroll.js +8 -0
- package/development/core/testing/wait-for-condition.js +19 -0
- package/development/core/testing/wait-for-image-ready.d.ts.map +1 -1
- package/development/core/testing/wait-for-image-ready.js +31 -0
- package/development/core/testing/wait-for-render.js +21 -0
- package/development/core/testing.d.ts +3 -0
- package/development/core/testing.d.ts.map +1 -1
- package/development/core/testing.js +7 -145
- package/development/date-input/date-input.d.ts.map +1 -1
- package/development/date-input/date-input.js +270 -0
- package/development/date-input.d.ts +3 -0
- package/development/date-input.d.ts.map +1 -1
- package/development/date-input.js +2 -264
- package/development/datepicker/common/datepicker-association-controllers.js +82 -0
- package/development/datepicker/common/datepicker-button.js +155 -0
- package/development/datepicker/common.d.ts +3 -0
- package/development/datepicker/common.d.ts.map +1 -1
- package/development/datepicker/common.js +3 -228
- package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/development/datepicker/datepicker/datepicker.js +427 -0
- package/development/datepicker/datepicker-next-day/datepicker-next-day.js +150 -0
- package/development/datepicker/datepicker-next-day.d.ts +3 -0
- package/development/datepicker/datepicker-next-day.d.ts.map +1 -1
- package/development/datepicker/datepicker-next-day.js +2 -144
- package/development/datepicker/datepicker-previous-day/datepicker-previous-day.js +150 -0
- package/development/datepicker/datepicker-previous-day.d.ts +3 -0
- package/development/datepicker/datepicker-previous-day.d.ts.map +1 -1
- package/development/datepicker/datepicker-previous-day.js +2 -144
- package/development/datepicker/datepicker-toggle/datepicker-toggle.js +299 -0
- package/development/datepicker/datepicker-toggle.d.ts +3 -0
- package/development/datepicker/datepicker-toggle.d.ts.map +1 -1
- package/development/datepicker/datepicker-toggle.js +2 -296
- package/development/datepicker/datepicker.d.ts +3 -0
- package/development/datepicker/datepicker.d.ts.map +1 -1
- package/development/datepicker/datepicker.js +2 -418
- package/development/datepicker.d.ts +3 -0
- package/development/datepicker.d.ts.map +1 -1
- package/development/datepicker.js +18 -6
- package/development/dialog/dialog/dialog.d.ts +0 -1
- package/development/dialog/dialog/dialog.d.ts.map +1 -1
- package/development/dialog/dialog/dialog.js +460 -0
- package/development/dialog/dialog-actions/dialog-actions.js +52 -0
- package/development/dialog/dialog-actions.d.ts +3 -0
- package/development/dialog/dialog-actions.d.ts.map +1 -1
- package/development/dialog/dialog-actions.js +2 -49
- package/development/dialog/dialog-content/dialog-content.js +78 -0
- package/development/dialog/dialog-content.d.ts +3 -0
- package/development/dialog/dialog-content.d.ts.map +1 -1
- package/development/dialog/dialog-content.js +2 -75
- package/development/dialog/dialog-title/dialog-title.js +211 -0
- package/development/dialog/dialog-title.d.ts +3 -0
- package/development/dialog/dialog-title.d.ts.map +1 -1
- package/development/dialog/dialog-title.js +2 -208
- package/development/dialog/dialog.d.ts +3 -0
- package/development/dialog/dialog.d.ts.map +1 -1
- package/development/dialog/dialog.js +2 -465
- package/development/dialog.d.ts +3 -0
- package/development/dialog.d.ts.map +1 -1
- package/development/dialog.js +10 -4
- package/development/divider/divider.js +89 -0
- package/development/divider.d.ts +3 -0
- package/development/divider.d.ts.map +1 -1
- package/development/divider.js +2 -86
- package/development/expansion-panel/expansion-panel/expansion-panel.js +434 -0
- package/development/expansion-panel/expansion-panel-content/expansion-panel-content.js +69 -0
- package/development/expansion-panel/expansion-panel-content.d.ts +3 -0
- package/development/expansion-panel/expansion-panel-content.d.ts.map +1 -1
- package/development/expansion-panel/expansion-panel-content.js +2 -66
- package/development/expansion-panel/expansion-panel-header/expansion-panel-header.js +173 -0
- package/development/expansion-panel/expansion-panel-header.d.ts +3 -0
- package/development/expansion-panel/expansion-panel-header.d.ts.map +1 -1
- package/development/expansion-panel/expansion-panel-header.js +2 -170
- package/development/expansion-panel/expansion-panel.d.ts +3 -0
- package/development/expansion-panel/expansion-panel.d.ts.map +1 -1
- package/development/expansion-panel/expansion-panel.js +2 -431
- package/development/expansion-panel.d.ts +3 -0
- package/development/expansion-panel.d.ts.map +1 -1
- package/development/expansion-panel.js +8 -3
- package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
- package/development/file-selector/common/file-selector-common.js +279 -0
- package/development/file-selector/common.d.ts +3 -0
- package/development/file-selector/common.d.ts.map +1 -1
- package/development/file-selector/common.js +4 -379
- package/development/file-selector/file-selector/file-selector.js +52 -0
- package/development/file-selector/file-selector-dropzone/file-selector-dropzone.js +181 -0
- package/development/file-selector/file-selector-dropzone.d.ts +3 -0
- package/development/file-selector/file-selector-dropzone.d.ts.map +1 -1
- package/development/file-selector/file-selector-dropzone.js +2 -178
- package/development/file-selector/file-selector.d.ts +3 -0
- package/development/file-selector/file-selector.d.ts.map +1 -1
- package/development/file-selector/file-selector.js +2 -49
- package/development/file-selector-common-csww18o8.js +105 -0
- package/development/file-selector.d.ts +3 -0
- package/development/file-selector.d.ts.map +1 -1
- package/development/file-selector.js +11 -4
- package/development/flip-card/flip-card/flip-card.js +320 -0
- package/development/flip-card/flip-card-details/flip-card-details.js +92 -0
- package/development/flip-card/flip-card-details.d.ts +3 -0
- package/development/flip-card/flip-card-details.d.ts.map +1 -1
- package/development/flip-card/flip-card-details.js +2 -89
- package/development/flip-card/flip-card-summary/flip-card-summary.js +148 -0
- package/development/flip-card/flip-card-summary.d.ts +3 -0
- package/development/flip-card/flip-card-summary.d.ts.map +1 -1
- package/development/flip-card/flip-card-summary.js +2 -145
- package/development/flip-card/flip-card.d.ts +3 -0
- package/development/flip-card/flip-card.d.ts.map +1 -1
- package/development/flip-card/flip-card.js +2 -317
- package/development/flip-card.d.ts +3 -0
- package/development/flip-card.d.ts.map +1 -1
- package/development/flip-card.js +8 -3
- package/development/footer/footer.js +276 -0
- package/development/footer.d.ts +3 -0
- package/development/footer.d.ts.map +1 -1
- package/development/footer.js +2 -273
- package/development/form-error/form-error.js +107 -0
- package/development/form-error.d.ts +3 -0
- package/development/form-error.d.ts.map +1 -1
- package/development/form-error.js +2 -104
- package/development/form-field/form-field/form-field.js +936 -0
- package/development/form-field/form-field-clear/form-field-clear.js +175 -0
- package/development/form-field/form-field-clear.d.ts +3 -0
- package/development/form-field/form-field-clear.d.ts.map +1 -1
- package/development/form-field/form-field-clear.js +2 -169
- package/development/form-field/form-field.d.ts +3 -0
- package/development/form-field/form-field.d.ts.map +1 -1
- package/development/form-field/form-field.js +2 -929
- package/development/form-field.d.ts +3 -0
- package/development/form-field.d.ts.map +1 -1
- package/development/form-field.js +6 -2
- package/development/header/common/header-action-common.js +413 -0
- package/development/header/common.d.ts +3 -0
- package/development/header/common.d.ts.map +1 -1
- package/development/header/common.js +2 -410
- package/development/header/header/header.js +393 -0
- package/development/header/header-button/header-button.js +25 -0
- package/development/header/header-button.d.ts +3 -0
- package/development/header/header-button.d.ts.map +1 -1
- package/development/header/header-button.js +2 -22
- package/development/header/header-link/header-link.js +25 -0
- package/development/header/header-link.d.ts +3 -0
- package/development/header/header-link.d.ts.map +1 -1
- package/development/header/header-link.js +2 -22
- package/development/header/header.d.ts +3 -0
- package/development/header/header.d.ts.map +1 -1
- package/development/header/header.js +2 -390
- package/development/header.d.ts +3 -0
- package/development/header.d.ts.map +1 -1
- package/development/header.js +10 -4
- package/development/icon/icon-base.js +182 -0
- package/development/icon/icon-name-mixin.js +58 -0
- package/development/icon/icon-request.js +42 -0
- package/development/icon/icon-validate.js +47 -0
- package/development/icon/icon.js +118 -0
- package/development/icon-sidebar-button-common-CA_8TnFu.js +110 -0
- package/development/icon.d.ts +3 -0
- package/development/icon.d.ts.map +1 -1
- package/development/icon.js +6 -400
- package/development/image/image.js +682 -0
- package/development/image.d.ts +3 -0
- package/development/image.d.ts.map +1 -1
- package/development/image.js +2 -679
- package/development/journey-header/journey-header.js +192 -0
- package/development/journey-header.d.ts +3 -0
- package/development/journey-header.d.ts.map +1 -1
- package/development/journey-header.js +2 -189
- package/development/lead-container/lead-container.js +150 -0
- package/development/lead-container.d.ts +3 -0
- package/development/lead-container.d.ts.map +1 -1
- package/development/lead-container.js +2 -147
- package/development/link/block-link/block-link.js +26 -0
- package/development/link/block-link-button/block-link-button.js +26 -0
- package/development/link/block-link-button.d.ts +3 -0
- package/development/link/block-link-button.d.ts.map +1 -1
- package/development/link/block-link-button.js +2 -23
- package/development/link/block-link-static/block-link-static.js +26 -0
- package/development/link/block-link-static.d.ts +3 -0
- package/development/link/block-link-static.d.ts.map +1 -1
- package/development/link/block-link-static.js +2 -23
- package/development/link/block-link.d.ts +3 -0
- package/development/link/block-link.d.ts.map +1 -1
- package/development/link/block-link.js +2 -23
- package/development/link/common/block-link-common.js +132 -0
- package/development/link/common/inline-link-common.js +45 -0
- package/development/link/common/link-common.js +11 -0
- package/development/link/common.d.ts +3 -0
- package/development/link/common.d.ts.map +1 -1
- package/development/link/common.js +5 -279
- package/development/link/link/link.js +26 -0
- package/development/link/link-button/link-button.js +26 -0
- package/development/link/link-button.d.ts +3 -0
- package/development/link/link-button.d.ts.map +1 -1
- package/development/link/link-button.js +2 -23
- package/development/link/link-static/link-static.js +26 -0
- package/development/link/link-static.d.ts +3 -0
- package/development/link/link-static.d.ts.map +1 -1
- package/development/link/link-static.js +2 -23
- package/development/link/link.d.ts +3 -0
- package/development/link/link.d.ts.map +1 -1
- package/development/link/link.js +2 -23
- package/development/link-common-CJEWffDZ.js +127 -0
- package/development/link-list/common/link-list-base.js +121 -0
- package/development/link-list/common.d.ts +3 -0
- package/development/link-list/common.d.ts.map +1 -1
- package/development/link-list/common.js +4 -141
- package/development/link-list/link-list/link-list.js +206 -0
- package/development/link-list/link-list-anchor/link-list-anchor.js +72 -0
- package/development/link-list/link-list-anchor.d.ts +3 -0
- package/development/link-list/link-list-anchor.d.ts.map +1 -1
- package/development/link-list/link-list-anchor.js +2 -69
- package/development/link-list/link-list.d.ts +3 -0
- package/development/link-list/link-list.d.ts.map +1 -1
- package/development/link-list/link-list.js +2 -203
- package/development/link-list-base-DC9sc7q5.js +27 -0
- package/development/link-list.d.ts +3 -0
- package/development/link-list.d.ts.map +1 -1
- package/development/link-list.js +11 -4
- package/development/link.d.ts +3 -0
- package/development/link.d.ts.map +1 -1
- package/development/link.js +21 -8
- package/development/loading-indicator/loading-indicator.js +260 -0
- package/development/loading-indicator-circle/loading-indicator-circle.js +146 -0
- package/development/loading-indicator-circle.d.ts +3 -0
- package/development/loading-indicator-circle.d.ts.map +1 -1
- package/development/loading-indicator-circle.js +2 -143
- package/development/loading-indicator.d.ts +3 -0
- package/development/loading-indicator.d.ts.map +1 -1
- package/development/loading-indicator.js +2 -257
- package/development/logo/logo.js +157 -0
- package/development/logo.d.ts +3 -0
- package/development/logo.d.ts.map +1 -1
- package/development/logo.js +2 -154
- package/development/map-container/map-container.js +285 -0
- package/development/map-container.d.ts +3 -0
- package/development/map-container.d.ts.map +1 -1
- package/development/map-container.js +2 -282
- package/development/menu/common/menu-action-common.js +203 -0
- package/development/menu/common.d.ts +3 -0
- package/development/menu/common.d.ts.map +1 -1
- package/development/menu/common.js +2 -200
- package/development/menu/menu/menu.d.ts +1 -2
- package/development/menu/menu/menu.d.ts.map +1 -1
- package/development/menu/menu/menu.js +573 -0
- package/development/menu/menu-button/menu-button.js +26 -0
- package/development/menu/menu-button.d.ts +3 -0
- package/development/menu/menu-button.d.ts.map +1 -1
- package/development/menu/menu-button.js +2 -23
- package/development/menu/menu-link/menu-link.js +26 -0
- package/development/menu/menu-link.d.ts +3 -0
- package/development/menu/menu-link.d.ts.map +1 -1
- package/development/menu/menu-link.js +2 -23
- package/development/menu/menu.d.ts +3 -0
- package/development/menu/menu.d.ts.map +1 -1
- package/development/menu/menu.js +2 -581
- package/development/menu.d.ts +3 -0
- package/development/menu.d.ts.map +1 -1
- package/development/menu.js +10 -4
- package/development/message/message.js +139 -0
- package/development/message.d.ts +3 -0
- package/development/message.d.ts.map +1 -1
- package/development/message.js +2 -136
- package/development/navigation/common/navigation-action-common.js +175 -0
- package/development/navigation/common.d.ts +3 -0
- package/development/navigation/common.d.ts.map +1 -1
- package/development/navigation/common.js +2 -172
- package/development/navigation/navigation/navigation.d.ts +12 -17
- package/development/navigation/navigation/navigation.d.ts.map +1 -1
- package/development/navigation/navigation/navigation.js +597 -0
- package/development/navigation/navigation-button/navigation-button.js +25 -0
- package/development/navigation/navigation-button.d.ts +3 -0
- package/development/navigation/navigation-button.d.ts.map +1 -1
- package/development/navigation/navigation-button.js +2 -22
- package/development/navigation/navigation-link/navigation-link.js +25 -0
- package/development/navigation/navigation-link.d.ts +3 -0
- package/development/navigation/navigation-link.d.ts.map +1 -1
- package/development/navigation/navigation-link.js +2 -22
- package/development/navigation/navigation-list/navigation-list.js +113 -0
- package/development/navigation/navigation-list.d.ts +3 -0
- package/development/navigation/navigation-list.d.ts.map +1 -1
- package/development/navigation/navigation-list.js +2 -110
- package/development/navigation/navigation-marker/navigation-marker.js +215 -0
- package/development/navigation/navigation-marker.d.ts +3 -0
- package/development/navigation/navigation-marker.d.ts.map +1 -1
- package/development/navigation/navigation-marker.js +2 -212
- package/development/navigation/navigation-section/navigation-section.d.ts +3 -5
- package/development/navigation/navigation-section/navigation-section.d.ts.map +1 -1
- package/development/navigation/navigation-section/navigation-section.js +622 -0
- package/development/navigation/navigation-section.d.ts +3 -0
- package/development/navigation/navigation-section.d.ts.map +1 -1
- package/development/navigation/navigation-section.js +2 -632
- package/development/navigation/navigation.d.ts +3 -0
- package/development/navigation/navigation.d.ts.map +1 -1
- package/development/navigation/navigation.js +2 -608
- package/development/navigation.d.ts +3 -0
- package/development/navigation.d.ts.map +1 -1
- package/development/navigation.js +16 -7
- package/development/notification/notification.js +527 -0
- package/development/notification.d.ts +3 -0
- package/development/notification.d.ts.map +1 -1
- package/development/notification.js +2 -524
- package/development/option/optgroup/optgroup-base-element.js +247 -0
- package/development/option/optgroup/optgroup.js +50 -0
- package/development/option/optgroup.d.ts +3 -0
- package/development/option/optgroup.d.ts.map +1 -1
- package/development/option/optgroup.js +3 -287
- package/development/option/option/option-base-element.js +320 -0
- package/development/option/option/option.js +264 -0
- package/development/option/option.d.ts +3 -0
- package/development/option/option.d.ts.map +1 -1
- package/development/option/option.js +3 -571
- package/development/option.d.ts +3 -0
- package/development/option.d.ts.map +1 -1
- package/development/option.js +11 -3
- package/development/overlay/overlay-base-element.d.ts +7 -3
- package/development/overlay/overlay-base-element.d.ts.map +1 -1
- package/development/overlay/overlay-base-element.js +144 -0
- package/development/overlay/overlay.d.ts +0 -1
- package/development/overlay/overlay.d.ts.map +1 -1
- package/development/overlay/overlay.js +424 -0
- package/development/overlay.d.ts +3 -0
- package/development/overlay.d.ts.map +1 -1
- package/development/overlay.js +3 -549
- package/development/paginator/common/paginator-common.js +193 -0
- package/development/paginator/common.d.ts +3 -0
- package/development/paginator/common.d.ts.map +1 -1
- package/development/paginator/common.js +2 -190
- package/development/paginator/compact-paginator/compact-paginator.js +96 -0
- package/development/paginator/compact-paginator.d.ts +3 -0
- package/development/paginator/compact-paginator.d.ts.map +1 -1
- package/development/paginator/compact-paginator.js +2 -93
- package/development/paginator/paginator/paginator.js +452 -0
- package/development/paginator/paginator.d.ts +3 -0
- package/development/paginator/paginator.d.ts.map +1 -1
- package/development/paginator/paginator.js +2 -449
- package/development/paginator.d.ts +3 -0
- package/development/paginator.d.ts.map +1 -1
- package/development/paginator.js +8 -3
- package/development/popover/popover/popover.d.ts +1 -1
- package/development/popover/popover/popover.d.ts.map +1 -1
- package/development/popover/popover/popover.js +592 -0
- package/development/popover/popover-trigger/popover-trigger.js +213 -0
- package/development/popover/popover-trigger.d.ts +3 -0
- package/development/popover/popover-trigger.d.ts.map +1 -1
- package/development/popover/popover-trigger.js +2 -212
- package/development/popover/popover.d.ts +3 -0
- package/development/popover/popover.d.ts.map +1 -1
- package/development/popover/popover.js +2 -597
- package/development/popover.d.ts +3 -0
- package/development/popover.d.ts.map +1 -1
- package/development/popover.js +6 -2
- package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
- package/development/radio-button/common/radio-button-common.js +93 -0
- package/development/radio-button/common.d.ts +3 -0
- package/development/radio-button/common.d.ts.map +1 -1
- package/development/radio-button/common.js +4 -228
- package/development/radio-button/radio-button/radio-button.js +90 -0
- package/development/radio-button/radio-button-group/radio-button-group.js +387 -0
- package/development/radio-button/radio-button-group.d.ts +3 -0
- package/development/radio-button/radio-button-group.d.ts.map +1 -1
- package/development/radio-button/radio-button-group.js +2 -384
- package/development/radio-button/radio-button-panel/radio-button-panel.js +122 -0
- package/development/radio-button/radio-button-panel.d.ts +3 -0
- package/development/radio-button/radio-button-panel.d.ts.map +1 -1
- package/development/radio-button/radio-button-panel.js +2 -119
- package/development/radio-button/radio-button.d.ts +3 -0
- package/development/radio-button/radio-button.d.ts.map +1 -1
- package/development/radio-button/radio-button.js +2 -87
- package/development/radio-button-common-hZiiLJDY.js +139 -0
- package/development/radio-button.d.ts +3 -0
- package/development/radio-button.d.ts.map +1 -1
- package/development/radio-button.js +13 -5
- package/development/{sbb-tokens-CSAKTXUi.js → sbb-tokens-CVLcOi-S.js} +10 -10
- package/development/screen-reader-only/screen-reader-only.js +37 -0
- package/development/screen-reader-only.d.ts +3 -0
- package/development/screen-reader-only.d.ts.map +1 -1
- package/development/screen-reader-only.js +2 -34
- package/development/select/select.js +1048 -0
- package/development/select.d.ts +3 -0
- package/development/select.d.ts.map +1 -1
- package/development/select.js +2 -1045
- package/development/selection-expansion-panel/selection-expansion-panel.js +400 -0
- package/development/selection-expansion-panel.d.ts +3 -0
- package/development/selection-expansion-panel.d.ts.map +1 -1
- package/development/selection-expansion-panel.js +2 -397
- package/development/sidebar/common.d.ts +3 -0
- package/development/sidebar/common.d.ts.map +1 -1
- package/development/sidebar/common.js +5 -112
- package/development/sidebar/icon-sidebar/icon-sidebar.js +85 -0
- package/development/sidebar/icon-sidebar-button/icon-sidebar-button.js +28 -0
- package/development/sidebar/icon-sidebar-button.d.ts +3 -0
- package/development/sidebar/icon-sidebar-button.d.ts.map +1 -1
- package/development/sidebar/icon-sidebar-button.js +2 -25
- package/development/sidebar/icon-sidebar-container/icon-sidebar-container.js +45 -0
- package/development/sidebar/icon-sidebar-container.d.ts +3 -0
- package/development/sidebar/icon-sidebar-container.d.ts.map +1 -1
- package/development/sidebar/icon-sidebar-container.js +2 -42
- package/development/sidebar/icon-sidebar-content/icon-sidebar-content.js +34 -0
- package/development/sidebar/icon-sidebar-content.d.ts +3 -0
- package/development/sidebar/icon-sidebar-content.d.ts.map +1 -1
- package/development/sidebar/icon-sidebar-content.js +2 -31
- package/development/sidebar/icon-sidebar-link/icon-sidebar-link.js +28 -0
- package/development/sidebar/icon-sidebar-link.d.ts +3 -0
- package/development/sidebar/icon-sidebar-link.d.ts.map +1 -1
- package/development/sidebar/icon-sidebar-link.js +2 -25
- package/development/sidebar/icon-sidebar.d.ts +3 -0
- package/development/sidebar/icon-sidebar.d.ts.map +1 -1
- package/development/sidebar/icon-sidebar.js +2 -82
- package/development/sidebar/sidebar/sidebar.d.ts +1 -7
- package/development/sidebar/sidebar/sidebar.d.ts.map +1 -1
- package/development/sidebar/sidebar/sidebar.js +485 -0
- package/development/sidebar/sidebar-close-button/sidebar-close-button.js +55 -0
- package/development/sidebar/sidebar-close-button.d.ts +3 -0
- package/development/sidebar/sidebar-close-button.d.ts.map +1 -1
- package/development/sidebar/sidebar-close-button.js +2 -52
- package/development/sidebar/sidebar-container/sidebar-container.d.ts.map +1 -1
- package/development/sidebar/sidebar-container/sidebar-container.js +156 -0
- package/development/sidebar/sidebar-container.d.ts +3 -0
- package/development/sidebar/sidebar-container.d.ts.map +1 -1
- package/development/sidebar/sidebar-container.js +2 -150
- package/development/sidebar/sidebar-content/sidebar-content.js +37 -0
- package/development/sidebar/sidebar-content.d.ts +3 -0
- package/development/sidebar/sidebar-content.d.ts.map +1 -1
- package/development/sidebar/sidebar-content.js +2 -34
- package/development/sidebar/sidebar-title/sidebar-title.js +63 -0
- package/development/sidebar/sidebar-title.d.ts +3 -0
- package/development/sidebar/sidebar-title.d.ts.map +1 -1
- package/development/sidebar/sidebar-title.js +2 -60
- package/development/sidebar/sidebar.d.ts +3 -0
- package/development/sidebar/sidebar.d.ts.map +1 -1
- package/development/sidebar/sidebar.js +2 -520
- package/development/sidebar.d.ts +3 -0
- package/development/sidebar.d.ts.map +1 -1
- package/development/sidebar.js +26 -11
- package/development/signet/signet.js +162 -0
- package/development/signet.d.ts +3 -0
- package/development/signet.d.ts.map +1 -1
- package/development/signet.js +2 -159
- package/development/skiplink-list/skiplink-list.js +144 -0
- package/development/skiplink-list.d.ts +3 -0
- package/development/skiplink-list.d.ts.map +1 -1
- package/development/skiplink-list.js +2 -141
- package/development/slider/slider.js +451 -0
- package/development/slider.d.ts +3 -0
- package/development/slider.d.ts.map +1 -1
- package/development/slider.js +2 -448
- package/development/status/status.d.ts +4 -0
- package/development/status/status.d.ts.map +1 -1
- package/development/status/status.js +198 -0
- package/development/status.d.ts +3 -0
- package/development/status.d.ts.map +1 -1
- package/development/status.js +2 -220
- package/development/stepper/step/step.js +218 -0
- package/development/stepper/step-label/step-label.js +276 -0
- package/development/stepper/step-label.d.ts +3 -0
- package/development/stepper/step-label.d.ts.map +1 -1
- package/development/stepper/step-label.js +2 -273
- package/development/stepper/step.d.ts +3 -0
- package/development/stepper/step.d.ts.map +1 -1
- package/development/stepper/step.js +2 -215
- package/development/stepper/stepper/stepper.d.ts.map +1 -1
- package/development/stepper/stepper/stepper.js +449 -0
- package/development/stepper/stepper.d.ts +3 -0
- package/development/stepper/stepper.d.ts.map +1 -1
- package/development/stepper/stepper.js +2 -446
- package/development/stepper.d.ts +3 -0
- package/development/stepper.d.ts.map +1 -1
- package/development/stepper.js +8 -3
- package/development/table/table-wrapper/table-wrapper.d.ts +6 -1
- package/development/table/table-wrapper/table-wrapper.d.ts.map +1 -1
- package/development/table/table-wrapper/table-wrapper.js +128 -0
- package/development/table/table-wrapper.d.ts +3 -0
- package/development/table/table-wrapper.d.ts.map +1 -1
- package/development/table/table-wrapper.js +2 -104
- package/development/table.d.ts +3 -0
- package/development/table.d.ts.map +1 -1
- package/development/table.js +4 -1
- package/development/tabs/tab/tab.js +66 -0
- package/development/tabs/tab-group/tab-group.js +391 -0
- package/development/tabs/tab-group.d.ts +3 -0
- package/development/tabs/tab-group.d.ts.map +1 -1
- package/development/tabs/tab-group.js +2 -388
- package/development/tabs/tab-label/tab-label.js +316 -0
- package/development/tabs/tab-label.d.ts +3 -0
- package/development/tabs/tab-label.d.ts.map +1 -1
- package/development/tabs/tab-label.js +2 -312
- package/development/tabs/tab.d.ts +3 -0
- package/development/tabs/tab.d.ts.map +1 -1
- package/development/tabs/tab.js +2 -63
- package/development/tabs.d.ts +3 -0
- package/development/tabs.d.ts.map +1 -1
- package/development/tabs.js +8 -3
- package/development/tag/tag/tag.js +351 -0
- package/development/tag/tag-group/tag-group.js +192 -0
- package/development/tag/tag-group.d.ts +3 -0
- package/development/tag/tag-group.d.ts.map +1 -1
- package/development/tag/tag-group.js +2 -189
- package/development/tag/tag.d.ts +3 -0
- package/development/tag/tag.d.ts.map +1 -1
- package/development/tag/tag.js +2 -348
- package/development/tag.d.ts +3 -0
- package/development/tag.d.ts.map +1 -1
- package/development/tag.js +6 -2
- package/development/teaser/teaser.js +260 -0
- package/development/teaser-hero/teaser-hero.js +180 -0
- package/development/teaser-hero.d.ts +3 -0
- package/development/teaser-hero.d.ts.map +1 -1
- package/development/teaser-hero.js +2 -177
- package/development/teaser-product/common/teaser-product-common.js +73 -0
- package/development/teaser-product/common.d.ts +3 -0
- package/development/teaser-product/common.d.ts.map +1 -1
- package/development/teaser-product/common.js +4 -214
- package/development/teaser-product/teaser-product/teaser-product.js +71 -0
- package/development/teaser-product/teaser-product-static/teaser-product-static.js +24 -0
- package/development/teaser-product/teaser-product-static.d.ts +3 -0
- package/development/teaser-product/teaser-product-static.d.ts.map +1 -1
- package/development/teaser-product/teaser-product-static.js +2 -21
- package/development/teaser-product/teaser-product.d.ts +3 -0
- package/development/teaser-product/teaser-product.d.ts.map +1 -1
- package/development/teaser-product/teaser-product.js +2 -68
- package/development/teaser-product-common-D6fa6x3w.js +148 -0
- package/development/teaser-product.d.ts +3 -0
- package/development/teaser-product.d.ts.map +1 -1
- package/development/teaser-product.js +11 -4
- package/development/teaser.d.ts +3 -0
- package/development/teaser.d.ts.map +1 -1
- package/development/teaser.js +2 -257
- package/development/time-input/time-input.js +276 -0
- package/development/time-input.d.ts +3 -0
- package/development/time-input.d.ts.map +1 -1
- package/development/time-input.js +2 -273
- package/development/timetable-occupancy/timetable-occupancy.js +151 -0
- package/development/timetable-occupancy-icon/timetable-occupancy-icon.js +98 -0
- package/development/timetable-occupancy-icon.d.ts +3 -0
- package/development/timetable-occupancy-icon.d.ts.map +1 -1
- package/development/timetable-occupancy-icon.js +2 -95
- package/development/timetable-occupancy.d.ts +3 -0
- package/development/timetable-occupancy.d.ts.map +1 -1
- package/development/timetable-occupancy.js +2 -148
- package/development/title/title-base.js +212 -0
- package/development/title/title.js +60 -0
- package/development/title.d.ts +3 -0
- package/development/title.d.ts.map +1 -1
- package/development/title.js +3 -261
- package/development/toast/toast.js +443 -0
- package/development/toast.d.ts +3 -0
- package/development/toast.d.ts.map +1 -1
- package/development/toast.js +2 -440
- package/development/toggle/toggle/toggle.d.ts.map +1 -1
- package/development/toggle/toggle/toggle.js +342 -0
- package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
- package/development/toggle/toggle-option/toggle-option.js +208 -0
- package/development/toggle/toggle-option.d.ts +3 -0
- package/development/toggle/toggle-option.d.ts.map +1 -1
- package/development/toggle/toggle-option.js +2 -217
- package/development/toggle/toggle.d.ts +3 -0
- package/development/toggle/toggle.d.ts.map +1 -1
- package/development/toggle/toggle.js +2 -340
- package/development/toggle-check/toggle-check.js +284 -0
- package/development/toggle-check.d.ts +3 -0
- package/development/toggle-check.d.ts.map +1 -1
- package/development/toggle-check.js +2 -281
- package/development/toggle.d.ts +3 -0
- package/development/toggle.d.ts.map +1 -1
- package/development/toggle.js +6 -2
- package/development/train/train/train.js +245 -0
- package/development/train/train-blocked-passage/train-blocked-passage.js +87 -0
- package/development/train/train-blocked-passage.d.ts +3 -0
- package/development/train/train-blocked-passage.d.ts.map +1 -1
- package/development/train/train-blocked-passage.js +2 -84
- package/development/train/train-formation/train-formation.js +269 -0
- package/development/train/train-formation.d.ts +3 -0
- package/development/train/train-formation.d.ts.map +1 -1
- package/development/train/train-formation.js +2 -266
- package/development/train/train-wagon/train-wagon.js +415 -0
- package/development/train/train-wagon.d.ts +3 -0
- package/development/train/train-wagon.d.ts.map +1 -1
- package/development/train/train-wagon.js +2 -412
- package/development/train/train.d.ts +3 -0
- package/development/train/train.d.ts.map +1 -1
- package/development/train/train.js +2 -242
- package/development/train.d.ts +3 -0
- package/development/train.d.ts.map +1 -1
- package/development/train.js +10 -4
- package/development/transparent-button-Ddb_s0a0.js +338 -0
- package/development/visual-checkbox/visual-checkbox.js +221 -0
- package/development/visual-checkbox.d.ts +3 -0
- package/development/visual-checkbox.d.ts.map +1 -1
- package/development/visual-checkbox.js +2 -218
- package/dialog/dialog/dialog.d.ts +0 -1
- package/dialog/dialog/dialog.d.ts.map +1 -1
- package/dialog/dialog/dialog.js +142 -0
- package/dialog/dialog-actions/dialog-actions.js +20 -0
- package/dialog/dialog-actions.d.ts +3 -0
- package/dialog/dialog-actions.d.ts.map +1 -1
- package/dialog/dialog-actions.js +2 -18
- package/dialog/dialog-content/dialog-content.js +24 -0
- package/dialog/dialog-content.d.ts +3 -0
- package/dialog/dialog-content.d.ts.map +1 -1
- package/dialog/dialog-content.js +2 -22
- package/dialog/dialog-title/dialog-title.js +116 -0
- package/dialog/dialog-title.d.ts +3 -0
- package/dialog/dialog-title.d.ts.map +1 -1
- package/dialog/dialog-title.js +2 -114
- package/dialog/dialog.d.ts +3 -0
- package/dialog/dialog.d.ts.map +1 -1
- package/dialog/dialog.js +2 -146
- package/dialog.d.ts +3 -0
- package/dialog.d.ts.map +1 -1
- package/dialog.js +10 -4
- package/divider/divider.js +45 -0
- package/divider.d.ts +3 -0
- package/divider.d.ts.map +1 -1
- package/divider.js +2 -43
- package/expansion-panel/expansion-panel/expansion-panel.js +165 -0
- package/expansion-panel/expansion-panel-content/expansion-panel-content.js +27 -0
- package/expansion-panel/expansion-panel-content.d.ts +3 -0
- package/expansion-panel/expansion-panel-content.d.ts.map +1 -1
- package/expansion-panel/expansion-panel-content.js +2 -25
- package/expansion-panel/expansion-panel-header/expansion-panel-header.js +65 -0
- package/expansion-panel/expansion-panel-header.d.ts +3 -0
- package/expansion-panel/expansion-panel-header.d.ts.map +1 -1
- package/expansion-panel/expansion-panel-header.js +2 -63
- package/expansion-panel/expansion-panel.d.ts +3 -0
- package/expansion-panel/expansion-panel.d.ts.map +1 -1
- package/expansion-panel/expansion-panel.js +2 -163
- package/expansion-panel.d.ts +3 -0
- package/expansion-panel.d.ts.map +1 -1
- package/expansion-panel.js +8 -3
- package/file-selector/common/file-selector-common.d.ts.map +1 -1
- package/file-selector/common/file-selector-common.js +209 -0
- package/file-selector/common.d.ts +3 -0
- package/file-selector/common.d.ts.map +1 -1
- package/file-selector/common.js +4 -208
- package/file-selector/file-selector/file-selector.js +44 -0
- package/file-selector/file-selector-dropzone/file-selector-dropzone.js +97 -0
- package/file-selector/file-selector-dropzone.d.ts +3 -0
- package/file-selector/file-selector-dropzone.d.ts.map +1 -1
- package/file-selector/file-selector-dropzone.js +2 -95
- package/file-selector/file-selector.d.ts +3 -0
- package/file-selector/file-selector.d.ts.map +1 -1
- package/file-selector/file-selector.js +2 -42
- package/file-selector-common-Dw5d8vA4.js +5 -0
- package/file-selector.d.ts +3 -0
- package/file-selector.d.ts.map +1 -1
- package/file-selector.js +10 -3
- package/flip-card/flip-card/flip-card.js +122 -0
- package/flip-card/flip-card-details/flip-card-details.js +45 -0
- package/flip-card/flip-card-details.d.ts +3 -0
- package/flip-card/flip-card-details.d.ts.map +1 -1
- package/flip-card/flip-card-details.js +2 -43
- package/flip-card/flip-card-summary/flip-card-summary.js +52 -0
- package/flip-card/flip-card-summary.d.ts +3 -0
- package/flip-card/flip-card-summary.d.ts.map +1 -1
- package/flip-card/flip-card-summary.js +2 -50
- package/flip-card/flip-card.d.ts +3 -0
- package/flip-card/flip-card.d.ts.map +1 -1
- package/flip-card/flip-card.js +2 -120
- package/flip-card.d.ts +3 -0
- package/flip-card.d.ts.map +1 -1
- package/flip-card.js +8 -3
- package/footer/footer.js +87 -0
- package/footer.d.ts +3 -0
- package/footer.d.ts.map +1 -1
- package/footer.js +2 -85
- package/form-error/form-error.js +47 -0
- package/form-error.d.ts +3 -0
- package/form-error.d.ts.map +1 -1
- package/form-error.js +2 -45
- package/form-field/form-field/form-field.js +363 -0
- package/form-field/form-field-clear/form-field-clear.js +42 -0
- package/form-field/form-field-clear.d.ts +3 -0
- package/form-field/form-field-clear.d.ts.map +1 -1
- package/form-field/form-field-clear.js +2 -40
- package/form-field/form-field.d.ts +3 -0
- package/form-field/form-field.d.ts.map +1 -1
- package/form-field/form-field.js +2 -361
- package/form-field.d.ts +3 -0
- package/form-field.d.ts.map +1 -1
- package/form-field.js +6 -2
- package/header/common/header-action-common.js +50 -0
- package/header/common.d.ts +3 -0
- package/header/common.d.ts.map +1 -1
- package/header/common.js +2 -48
- package/header/header/header.js +151 -0
- package/header/header-button/header-button.js +16 -0
- package/header/header-button.d.ts +3 -0
- package/header/header-button.d.ts.map +1 -1
- package/header/header-button.js +2 -14
- package/header/header-link/header-link.js +16 -0
- package/header/header-link.d.ts +3 -0
- package/header/header-link.d.ts.map +1 -1
- package/header/header-link.js +2 -14
- package/header/header.d.ts +3 -0
- package/header/header.d.ts.map +1 -1
- package/header/header.js +2 -149
- package/header.d.ts +3 -0
- package/header.d.ts.map +1 -1
- package/header.js +10 -4
- package/icon/icon-base.js +109 -0
- package/icon/icon-name-mixin.js +47 -0
- package/icon/icon-request.js +31 -0
- package/icon/icon-validate.js +26 -0
- package/icon/icon.js +77 -0
- package/icon-sidebar-button-common-DG8bnrBu.js +7 -0
- package/icon.d.ts +3 -0
- package/icon.d.ts.map +1 -1
- package/icon.js +11 -254
- package/image/image.js +469 -0
- package/image.d.ts +3 -0
- package/image.d.ts.map +1 -1
- package/image.js +2 -467
- package/index.d.ts +187 -185
- package/index.js +187 -185
- package/journey-header/journey-header.js +119 -0
- package/journey-header.d.ts +3 -0
- package/journey-header.d.ts.map +1 -1
- package/journey-header.js +2 -117
- package/lead-container/lead-container.js +31 -0
- package/lead-container.d.ts +3 -0
- package/lead-container.d.ts.map +1 -1
- package/lead-container.js +2 -29
- package/link/block-link/block-link.js +17 -0
- package/link/block-link-button/block-link-button.js +17 -0
- package/link/block-link-button.d.ts +3 -0
- package/link/block-link-button.d.ts.map +1 -1
- package/link/block-link-button.js +2 -15
- package/link/block-link-static/block-link-static.js +17 -0
- package/link/block-link-static.d.ts +3 -0
- package/link/block-link-static.d.ts.map +1 -1
- package/link/block-link-static.js +2 -15
- package/link/block-link.d.ts +3 -0
- package/link/block-link.d.ts.map +1 -1
- package/link/block-link.js +2 -15
- package/link/common/block-link-common.js +43 -0
- package/link/common/inline-link-common.js +12 -0
- package/link/common/link-common.js +10 -0
- package/link/common.d.ts +3 -0
- package/link/common.d.ts.map +1 -1
- package/link/common.js +6 -80
- package/link/link/link.js +17 -0
- package/link/link-button/link-button.js +17 -0
- package/link/link-button.d.ts +3 -0
- package/link/link-button.d.ts.map +1 -1
- package/link/link-button.js +2 -15
- package/link/link-static/link-static.js +17 -0
- package/link/link-static.d.ts +3 -0
- package/link/link-static.d.ts.map +1 -1
- package/link/link-static.js +2 -15
- package/link/link.d.ts +3 -0
- package/link/link.d.ts.map +1 -1
- package/link/link.js +2 -15
- package/link-common-DZrQ-32d.js +46 -0
- package/link-list/common/link-list-base.js +87 -0
- package/link-list/common.d.ts +3 -0
- package/link-list/common.d.ts.map +1 -1
- package/link-list/common.js +4 -87
- package/link-list/link-list/link-list.js +46 -0
- package/link-list/link-list-anchor/link-list-anchor.js +17 -0
- package/link-list/link-list-anchor.d.ts +3 -0
- package/link-list/link-list-anchor.d.ts.map +1 -1
- package/link-list/link-list-anchor.js +2 -15
- package/link-list/link-list.d.ts +3 -0
- package/link-list/link-list.d.ts.map +1 -1
- package/link-list/link-list.js +2 -44
- package/link-list-base-BdOBGhxe.js +5 -0
- package/link-list.d.ts +3 -0
- package/link-list.d.ts.map +1 -1
- package/link-list.js +10 -3
- package/link.d.ts +3 -0
- package/link.d.ts.map +1 -1
- package/link.js +20 -7
- package/loading-indicator/loading-indicator.js +66 -0
- package/loading-indicator-circle/loading-indicator-circle.js +46 -0
- package/loading-indicator-circle.d.ts +3 -0
- package/loading-indicator-circle.d.ts.map +1 -1
- package/loading-indicator-circle.js +2 -44
- package/loading-indicator.d.ts +3 -0
- package/loading-indicator.d.ts.map +1 -1
- package/loading-indicator.js +2 -64
- package/logo/logo.js +67 -0
- package/logo.d.ts +3 -0
- package/logo.d.ts.map +1 -1
- package/logo.js +2 -65
- package/map-container/map-container.js +109 -0
- package/map-container.d.ts +3 -0
- package/map-container.d.ts.map +1 -1
- package/map-container.js +2 -107
- package/menu/common/menu-action-common.js +53 -0
- package/menu/common.d.ts +3 -0
- package/menu/common.d.ts.map +1 -1
- package/menu/common.js +2 -51
- package/menu/menu/menu.d.ts +1 -2
- package/menu/menu/menu.d.ts.map +1 -1
- package/menu/menu/menu.js +227 -0
- package/menu/menu-button/menu-button.js +17 -0
- package/menu/menu-button.d.ts +3 -0
- package/menu/menu-button.d.ts.map +1 -1
- package/menu/menu-button.js +2 -15
- package/menu/menu-link/menu-link.js +17 -0
- package/menu/menu-link.d.ts +3 -0
- package/menu/menu-link.d.ts.map +1 -1
- package/menu/menu-link.js +2 -15
- package/menu/menu.d.ts +3 -0
- package/menu/menu.d.ts.map +1 -1
- package/menu/menu.js +2 -230
- package/menu.d.ts +3 -0
- package/menu.d.ts.map +1 -1
- package/menu.js +10 -4
- package/message/message.js +60 -0
- package/message.d.ts +3 -0
- package/message.d.ts.map +1 -1
- package/message.js +2 -58
- package/navigation/common/navigation-action-common.js +58 -0
- package/navigation/common.d.ts +3 -0
- package/navigation/common.d.ts.map +1 -1
- package/navigation/common.js +2 -56
- package/navigation/navigation/navigation.d.ts +12 -17
- package/navigation/navigation/navigation.d.ts.map +1 -1
- package/navigation/navigation/navigation.js +215 -0
- package/navigation/navigation-button/navigation-button.js +16 -0
- package/navigation/navigation-button.d.ts +3 -0
- package/navigation/navigation-button.d.ts.map +1 -1
- package/navigation/navigation-button.js +2 -14
- package/navigation/navigation-link/navigation-link.js +16 -0
- package/navigation/navigation-link.d.ts +3 -0
- package/navigation/navigation-link.d.ts.map +1 -1
- package/navigation/navigation-link.js +2 -14
- package/navigation/navigation-list/navigation-list.js +57 -0
- package/navigation/navigation-list.d.ts +3 -0
- package/navigation/navigation-list.d.ts.map +1 -1
- package/navigation/navigation-list.js +2 -55
- package/navigation/navigation-marker/navigation-marker.js +82 -0
- package/navigation/navigation-marker.d.ts +3 -0
- package/navigation/navigation-marker.d.ts.map +1 -1
- package/navigation/navigation-marker.js +2 -80
- package/navigation/navigation-section/navigation-section.d.ts +3 -5
- package/navigation/navigation-section/navigation-section.d.ts.map +1 -1
- package/navigation/navigation-section/navigation-section.js +233 -0
- package/navigation/navigation-section.d.ts +3 -0
- package/navigation/navigation-section.d.ts.map +1 -1
- package/navigation/navigation-section.js +2 -231
- package/navigation/navigation.d.ts +3 -0
- package/navigation/navigation.d.ts.map +1 -1
- package/navigation/navigation.js +2 -218
- package/navigation.d.ts +3 -0
- package/navigation.d.ts.map +1 -1
- package/navigation.js +16 -7
- package/notification/notification.js +192 -0
- package/notification.d.ts +3 -0
- package/notification.d.ts.map +1 -1
- package/notification.js +2 -190
- package/option/optgroup/optgroup-base-element.js +115 -0
- package/option/optgroup/optgroup.js +34 -0
- package/option/optgroup.d.ts +3 -0
- package/option/optgroup.d.ts.map +1 -1
- package/option/optgroup.js +4 -141
- package/option/option/option-base-element.js +232 -0
- package/option/option/option.js +95 -0
- package/option/option.d.ts +3 -0
- package/option/option.d.ts.map +1 -1
- package/option/option.js +4 -318
- package/option.d.ts +3 -0
- package/option.d.ts.map +1 -1
- package/option.js +10 -2
- package/overlay/overlay-base-element.d.ts +7 -3
- package/overlay/overlay-base-element.d.ts.map +1 -1
- package/overlay/overlay-base-element.js +102 -0
- package/overlay/overlay.d.ts +0 -1
- package/overlay/overlay.d.ts.map +1 -1
- package/overlay/overlay.js +156 -0
- package/overlay.d.ts +3 -0
- package/overlay.d.ts.map +1 -1
- package/overlay.js +5 -239
- package/package.json +2 -2
- package/paginator/common/paginator-common.js +149 -0
- package/paginator/common.d.ts +3 -0
- package/paginator/common.d.ts.map +1 -1
- package/paginator/common.js +2 -147
- package/paginator/compact-paginator/compact-paginator.js +40 -0
- package/paginator/compact-paginator.d.ts +3 -0
- package/paginator/compact-paginator.d.ts.map +1 -1
- package/paginator/compact-paginator.js +2 -38
- package/paginator/paginator/paginator.js +169 -0
- package/paginator/paginator.d.ts +3 -0
- package/paginator/paginator.d.ts.map +1 -1
- package/paginator/paginator.js +2 -167
- package/paginator.d.ts +3 -0
- package/paginator.d.ts.map +1 -1
- package/paginator.js +8 -3
- package/popover/popover/popover.d.ts +1 -1
- package/popover/popover/popover.d.ts.map +1 -1
- package/popover/popover/popover.js +261 -0
- package/popover/popover-trigger/popover-trigger.js +32 -0
- package/popover/popover-trigger.d.ts +3 -0
- package/popover/popover-trigger.d.ts.map +1 -1
- package/popover/popover-trigger.js +2 -30
- package/popover/popover.d.ts +3 -0
- package/popover/popover.d.ts.map +1 -1
- package/popover/popover.js +2 -263
- package/popover.d.ts +3 -0
- package/popover.d.ts.map +1 -1
- package/popover.js +6 -2
- package/radio-button/common/radio-button-common.d.ts.map +1 -1
- package/radio-button/common/radio-button-common.js +64 -0
- package/radio-button/common.d.ts +3 -0
- package/radio-button/common.d.ts.map +1 -1
- package/radio-button/common.js +4 -65
- package/radio-button/radio-button/radio-button.js +57 -0
- package/radio-button/radio-button-group/radio-button-group.js +186 -0
- package/radio-button/radio-button-group.d.ts +3 -0
- package/radio-button/radio-button-group.d.ts.map +1 -1
- package/radio-button/radio-button-group.js +2 -184
- package/radio-button/radio-button-panel/radio-button-panel.js +88 -0
- package/radio-button/radio-button-panel.d.ts +3 -0
- package/radio-button/radio-button-panel.d.ts.map +1 -1
- package/radio-button/radio-button-panel.js +2 -86
- package/radio-button/radio-button.d.ts +3 -0
- package/radio-button/radio-button.d.ts.map +1 -1
- package/radio-button/radio-button.js +2 -55
- package/radio-button-common-DJKWrKor.js +5 -0
- package/radio-button.d.ts +3 -0
- package/radio-button.d.ts.map +1 -1
- package/radio-button.js +12 -4
- package/{sbb-tokens-BgDF8jIh.js → sbb-tokens-B3Eka-Tz.js} +9 -9
- package/screen-reader-only/screen-reader-only.js +19 -0
- package/screen-reader-only.d.ts +3 -0
- package/screen-reader-only.d.ts.map +1 -1
- package/screen-reader-only.js +2 -17
- package/select/select.js +482 -0
- package/select.d.ts +3 -0
- package/select.d.ts.map +1 -1
- package/select.js +2 -480
- package/selection-expansion-panel/selection-expansion-panel.js +185 -0
- package/selection-expansion-panel.d.ts +3 -0
- package/selection-expansion-panel.d.ts.map +1 -1
- package/selection-expansion-panel.js +2 -183
- package/sidebar/common.d.ts +3 -0
- package/sidebar/common.d.ts.map +1 -1
- package/sidebar/common.js +3 -4
- package/sidebar/icon-sidebar/icon-sidebar.js +47 -0
- package/sidebar/icon-sidebar-button/icon-sidebar-button.js +20 -0
- package/sidebar/icon-sidebar-button.d.ts +3 -0
- package/sidebar/icon-sidebar-button.d.ts.map +1 -1
- package/sidebar/icon-sidebar-button.js +2 -18
- package/sidebar/icon-sidebar-container/icon-sidebar-container.js +35 -0
- package/sidebar/icon-sidebar-container.d.ts +3 -0
- package/sidebar/icon-sidebar-container.d.ts.map +1 -1
- package/sidebar/icon-sidebar-container.js +2 -33
- package/sidebar/icon-sidebar-content/icon-sidebar-content.js +23 -0
- package/sidebar/icon-sidebar-content.d.ts +3 -0
- package/sidebar/icon-sidebar-content.d.ts.map +1 -1
- package/sidebar/icon-sidebar-content.js +2 -21
- package/sidebar/icon-sidebar-link/icon-sidebar-link.js +20 -0
- package/sidebar/icon-sidebar-link.d.ts +3 -0
- package/sidebar/icon-sidebar-link.d.ts.map +1 -1
- package/sidebar/icon-sidebar-link.js +2 -18
- package/sidebar/icon-sidebar.d.ts +3 -0
- package/sidebar/icon-sidebar.d.ts.map +1 -1
- package/sidebar/icon-sidebar.js +2 -45
- package/sidebar/sidebar/sidebar.d.ts +1 -7
- package/sidebar/sidebar/sidebar.d.ts.map +1 -1
- package/sidebar/sidebar/sidebar.js +194 -0
- package/sidebar/sidebar-close-button/sidebar-close-button.js +29 -0
- package/sidebar/sidebar-close-button.d.ts +3 -0
- package/sidebar/sidebar-close-button.d.ts.map +1 -1
- package/sidebar/sidebar-close-button.js +2 -27
- package/sidebar/sidebar-container/sidebar-container.d.ts.map +1 -1
- package/sidebar/sidebar-container/sidebar-container.js +81 -0
- package/sidebar/sidebar-container.d.ts +3 -0
- package/sidebar/sidebar-container.d.ts.map +1 -1
- package/sidebar/sidebar-container.js +2 -76
- package/sidebar/sidebar-content/sidebar-content.js +23 -0
- package/sidebar/sidebar-content.d.ts +3 -0
- package/sidebar/sidebar-content.d.ts.map +1 -1
- package/sidebar/sidebar-content.js +2 -21
- package/sidebar/sidebar-title/sidebar-title.js +37 -0
- package/sidebar/sidebar-title.d.ts +3 -0
- package/sidebar/sidebar-title.d.ts.map +1 -1
- package/sidebar/sidebar-title.js +2 -35
- package/sidebar/sidebar.d.ts +3 -0
- package/sidebar/sidebar.d.ts.map +1 -1
- package/sidebar/sidebar.js +2 -212
- package/sidebar.d.ts +3 -0
- package/sidebar.d.ts.map +1 -1
- package/sidebar.js +26 -11
- package/signet/signet.js +72 -0
- package/signet.d.ts +3 -0
- package/signet.d.ts.map +1 -1
- package/signet.js +2 -70
- package/skiplink-list/skiplink-list.js +71 -0
- package/skiplink-list.d.ts +3 -0
- package/skiplink-list.d.ts.map +1 -1
- package/skiplink-list.js +2 -69
- package/slider/slider.js +232 -0
- package/slider.d.ts +3 -0
- package/slider.d.ts.map +1 -1
- package/slider.js +2 -230
- package/standard-theme.css +42 -2
- package/status/status.d.ts +4 -0
- package/status/status.d.ts.map +1 -1
- package/status/status.js +89 -0
- package/status.d.ts +3 -0
- package/status.d.ts.map +1 -1
- package/status.js +2 -87
- package/stepper/step/step.js +104 -0
- package/stepper/step-label/step-label.js +75 -0
- package/stepper/step-label.d.ts +3 -0
- package/stepper/step-label.d.ts.map +1 -1
- package/stepper/step-label.js +2 -73
- package/stepper/step.d.ts +3 -0
- package/stepper/step.d.ts.map +1 -1
- package/stepper/step.js +2 -102
- package/stepper/stepper/stepper.d.ts.map +1 -1
- package/stepper/stepper/stepper.js +244 -0
- package/stepper/stepper.d.ts +3 -0
- package/stepper/stepper.d.ts.map +1 -1
- package/stepper/stepper.js +2 -242
- package/stepper.d.ts +3 -0
- package/stepper.d.ts.map +1 -1
- package/stepper.js +8 -3
- package/table/table-wrapper/table-wrapper.d.ts +6 -1
- package/table/table-wrapper/table-wrapper.d.ts.map +1 -1
- package/table/table-wrapper/table-wrapper.js +50 -0
- package/table/table-wrapper.d.ts +3 -0
- package/table/table-wrapper.d.ts.map +1 -1
- package/table/table-wrapper.js +2 -34
- package/table.css +37 -0
- package/table.d.ts +3 -0
- package/table.d.ts.map +1 -1
- package/table.js +4 -1
- package/tabs/tab/tab.js +40 -0
- package/tabs/tab-group/tab-group.js +218 -0
- package/tabs/tab-group.d.ts +3 -0
- package/tabs/tab-group.d.ts.map +1 -1
- package/tabs/tab-group.js +2 -216
- package/tabs/tab-label/tab-label.js +80 -0
- package/tabs/tab-label.d.ts +3 -0
- package/tabs/tab-label.d.ts.map +1 -1
- package/tabs/tab-label.js +2 -78
- package/tabs/tab.d.ts +3 -0
- package/tabs/tab.d.ts.map +1 -1
- package/tabs/tab.js +2 -38
- package/tabs.d.ts +3 -0
- package/tabs.d.ts.map +1 -1
- package/tabs.js +8 -3
- package/tag/tag/tag.js +126 -0
- package/tag/tag-group/tag-group.js +120 -0
- package/tag/tag-group.d.ts +3 -0
- package/tag/tag-group.d.ts.map +1 -1
- package/tag/tag-group.js +2 -118
- package/tag/tag.d.ts +3 -0
- package/tag/tag.d.ts.map +1 -1
- package/tag/tag.js +2 -124
- package/tag.d.ts +3 -0
- package/tag.d.ts.map +1 -1
- package/tag.js +6 -2
- package/teaser/teaser.js +102 -0
- package/teaser-hero/teaser-hero.js +61 -0
- package/teaser-hero.d.ts +3 -0
- package/teaser-hero.d.ts.map +1 -1
- package/teaser-hero.js +2 -59
- package/teaser-product/common/teaser-product-common.js +54 -0
- package/teaser-product/common.d.ts +3 -0
- package/teaser-product/common.d.ts.map +1 -1
- package/teaser-product/common.js +4 -53
- package/teaser-product/teaser-product/teaser-product.js +31 -0
- package/teaser-product/teaser-product-static/teaser-product-static.js +16 -0
- package/teaser-product/teaser-product-static.d.ts +3 -0
- package/teaser-product/teaser-product-static.d.ts.map +1 -1
- package/teaser-product/teaser-product-static.js +2 -14
- package/teaser-product/teaser-product.d.ts +3 -0
- package/teaser-product/teaser-product.d.ts.map +1 -1
- package/teaser-product/teaser-product.js +2 -29
- package/teaser-product-common-CpMAlYEp.js +5 -0
- package/teaser-product.d.ts +3 -0
- package/teaser-product.d.ts.map +1 -1
- package/teaser-product.js +10 -3
- package/teaser.d.ts +3 -0
- package/teaser.d.ts.map +1 -1
- package/teaser.js +2 -100
- package/time-input/time-input.js +174 -0
- package/time-input.d.ts +3 -0
- package/time-input.d.ts.map +1 -1
- package/time-input.js +2 -172
- package/timetable-occupancy/timetable-occupancy.js +75 -0
- package/timetable-occupancy-icon/timetable-occupancy-icon.js +64 -0
- package/timetable-occupancy-icon.d.ts +3 -0
- package/timetable-occupancy-icon.d.ts.map +1 -1
- package/timetable-occupancy-icon.js +2 -62
- package/timetable-occupancy.d.ts +3 -0
- package/timetable-occupancy.d.ts.map +1 -1
- package/timetable-occupancy.js +2 -73
- package/title/title-base.js +73 -0
- package/title/title.js +18 -0
- package/title.d.ts +3 -0
- package/title.d.ts.map +1 -1
- package/title.js +4 -83
- package/toast/toast.js +195 -0
- package/toast.d.ts +3 -0
- package/toast.d.ts.map +1 -1
- package/toast.js +2 -193
- package/toggle/toggle/toggle.d.ts.map +1 -1
- package/toggle/toggle/toggle.js +162 -0
- package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
- package/toggle/toggle-option/toggle-option.js +84 -0
- package/toggle/toggle-option.d.ts +3 -0
- package/toggle/toggle-option.d.ts.map +1 -1
- package/toggle/toggle-option.js +2 -94
- package/toggle/toggle.d.ts +3 -0
- package/toggle/toggle.d.ts.map +1 -1
- package/toggle/toggle.js +2 -162
- package/toggle-check/toggle-check.js +81 -0
- package/toggle-check.d.ts +3 -0
- package/toggle-check.d.ts.map +1 -1
- package/toggle-check.js +2 -79
- package/toggle.d.ts +3 -0
- package/toggle.d.ts.map +1 -1
- package/toggle.js +6 -2
- package/train/train/train.js +126 -0
- package/train/train-blocked-passage/train-blocked-passage.js +25 -0
- package/train/train-blocked-passage.d.ts +3 -0
- package/train/train-blocked-passage.d.ts.map +1 -1
- package/train/train-blocked-passage.js +2 -23
- package/train/train-formation/train-formation.js +91 -0
- package/train/train-formation.d.ts +3 -0
- package/train/train-formation.d.ts.map +1 -1
- package/train/train-formation.js +2 -89
- package/train/train-wagon/train-wagon.js +177 -0
- package/train/train-wagon.d.ts +3 -0
- package/train/train-wagon.d.ts.map +1 -1
- package/train/train-wagon.js +2 -175
- package/train/train.d.ts +3 -0
- package/train/train.d.ts.map +1 -1
- package/train/train.js +2 -124
- package/train.d.ts +3 -0
- package/train.d.ts.map +1 -1
- package/train.js +10 -4
- package/transparent-button-BlbvexCb.js +9 -0
- package/visual-checkbox/visual-checkbox.js +83 -0
- package/visual-checkbox.d.ts +3 -0
- package/visual-checkbox.d.ts.map +1 -1
- package/visual-checkbox.js +2 -81
- package/core/testing/private.d.ts +0 -11
- package/core/testing/private.d.ts.map +0 -1
- package/core/testing/test-setup-ssr.d.ts +0 -2
- package/core/testing/test-setup-ssr.d.ts.map +0 -1
- package/core/testing/test-setup.d.ts +0 -2
- package/core/testing/test-setup.d.ts.map +0 -1
- package/development/core/testing/private.d.ts +0 -11
- package/development/core/testing/private.d.ts.map +0 -1
- package/development/core/testing/test-setup-ssr.d.ts +0 -2
- package/development/core/testing/test-setup-ssr.d.ts.map +0 -1
- package/development/core/testing/test-setup.d.ts +0 -2
- package/development/core/testing/test-setup.d.ts.map +0 -1
|
@@ -1,378 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
constructor(_host) {
|
|
10
|
-
this._host = _host;
|
|
11
|
-
this._abortController = new AbortController();
|
|
12
|
-
this._host.addController(this);
|
|
13
|
-
}
|
|
14
|
-
hostConnected() {
|
|
15
|
-
if (!this._abortController) {
|
|
16
|
-
this._abortController = new AbortController();
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
hostDisconnected() {
|
|
20
|
-
var _a;
|
|
21
|
-
(_a = this._abortController) == null ? void 0 : _a.abort();
|
|
22
|
-
this._abortController = void 0;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
const overlayStack = new Array();
|
|
26
|
-
if (!isServer) {
|
|
27
|
-
window.addEventListener("keydown", (event) => {
|
|
28
|
-
var _a;
|
|
29
|
-
if (event.key === "Escape" && !event.defaultPrevented) {
|
|
30
|
-
event.preventDefault();
|
|
31
|
-
(_a = overlayStack.at(-1)) == null ? void 0 : _a.close();
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
class SbbEscapableOverlayController {
|
|
36
|
-
constructor(_host, _overlayStack = overlayStack) {
|
|
37
|
-
var _a, _b;
|
|
38
|
-
this._host = _host;
|
|
39
|
-
this._overlayStack = _overlayStack;
|
|
40
|
-
(_b = (_a = this._host).addController) == null ? void 0 : _b.call(_a, this);
|
|
41
|
-
}
|
|
42
|
-
hostDisconnected() {
|
|
43
|
-
this.disconnect();
|
|
44
|
-
}
|
|
45
|
-
// This must be called when the overlay is opened
|
|
46
|
-
connect() {
|
|
47
|
-
this._overlayStack.push(this._host);
|
|
48
|
-
}
|
|
49
|
-
// This must be called when the overlay is closed
|
|
50
|
-
disconnect() {
|
|
51
|
-
if (this._overlayStack.length) {
|
|
52
|
-
const findElIndex = this._overlayStack.findIndex((e) => e === this._host);
|
|
53
|
-
if (findElIndex !== -1) {
|
|
54
|
-
this._overlayStack.splice(findElIndex, 1);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
const observers = /* @__PURE__ */ new WeakMap();
|
|
60
|
-
class SbbIdReferenceController {
|
|
61
|
-
constructor(_host, _idRef, _observers = observers) {
|
|
62
|
-
this._host = _host;
|
|
63
|
-
this._idRef = _idRef;
|
|
64
|
-
this._observers = _observers;
|
|
65
|
-
this._rootNode = null;
|
|
66
|
-
this._host.addController(this);
|
|
67
|
-
}
|
|
68
|
-
hostConnected() {
|
|
69
|
-
if (isServer) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
this._rootNode = this._host.getRootNode();
|
|
73
|
-
const observerContext = this._observers.get(this._rootNode);
|
|
74
|
-
if (observerContext) {
|
|
75
|
-
observerContext.controllers.add(this);
|
|
76
|
-
} else {
|
|
77
|
-
const controllers = /* @__PURE__ */ new Set([this]);
|
|
78
|
-
const observer = new MutationObserver((mutations) => {
|
|
79
|
-
const mutatedIds = /* @__PURE__ */ new Set();
|
|
80
|
-
for (const mutation of mutations) {
|
|
81
|
-
if (mutation.type === "attributes") {
|
|
82
|
-
mutatedIds.add(mutation.oldValue);
|
|
83
|
-
mutatedIds.add(mutation.target.id);
|
|
84
|
-
} else if (mutation.type === "childList") {
|
|
85
|
-
for (const node of [...mutation.addedNodes, ...mutation.removedNodes]) {
|
|
86
|
-
if (node instanceof HTMLElement) {
|
|
87
|
-
mutatedIds.add(node.id);
|
|
88
|
-
node.querySelectorAll("[id]").forEach((e) => mutatedIds.add(e.id));
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
for (const controller of controllers) {
|
|
94
|
-
const id = controller._host[controller._idRef];
|
|
95
|
-
if (id && typeof id === "string" && mutatedIds.has(id)) {
|
|
96
|
-
controller._host.requestUpdate();
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
observer.observe(this._rootNode, {
|
|
101
|
-
attributeFilter: ["id"],
|
|
102
|
-
childList: true,
|
|
103
|
-
subtree: true,
|
|
104
|
-
attributeOldValue: true
|
|
105
|
-
});
|
|
106
|
-
this._observers.set(this._rootNode, { observer, controllers });
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
hostDisconnected() {
|
|
110
|
-
if (isServer || !this._rootNode) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
const observerContext = this._observers.get(this._rootNode);
|
|
114
|
-
if (!observerContext) {
|
|
115
|
-
this._rootNode = null;
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
observerContext.controllers.delete(this);
|
|
119
|
-
if (observerContext.controllers.size === 0) {
|
|
120
|
-
observerContext.observer.disconnect();
|
|
121
|
-
this._observers.delete(this._rootNode);
|
|
122
|
-
}
|
|
123
|
-
this._rootNode = null;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Find the element by id in the current document fragment
|
|
127
|
-
*/
|
|
128
|
-
find() {
|
|
129
|
-
var _a;
|
|
130
|
-
if (isServer || !this._rootNode) {
|
|
131
|
-
return null;
|
|
132
|
-
} else {
|
|
133
|
-
const id = this._host[this._idRef];
|
|
134
|
-
return typeof id == "string" ? (_a = this._rootNode) == null ? void 0 : _a.querySelector(`#${id}`) : null;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
const IGNORED_ELEMENTS = ["script", "head", "template", "style"];
|
|
139
|
-
const inertElements = /* @__PURE__ */ new Set();
|
|
140
|
-
const inertOverlays = /* @__PURE__ */ new Set();
|
|
141
|
-
class SbbInertController {
|
|
142
|
-
constructor(_host, _inertElements = inertElements, _inertOverlays = inertOverlays) {
|
|
143
|
-
var _a, _b;
|
|
144
|
-
this._host = _host;
|
|
145
|
-
this._inertElements = _inertElements;
|
|
146
|
-
this._inertOverlays = _inertOverlays;
|
|
147
|
-
(_b = (_a = this._host).addController) == null ? void 0 : _b.call(_a, this);
|
|
148
|
-
}
|
|
149
|
-
hostDisconnected() {
|
|
150
|
-
if (this.isInert()) {
|
|
151
|
-
this.deactivate();
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
/** Applies inert state to every other element on the page except the overlay. */
|
|
155
|
-
activate() {
|
|
156
|
-
if (this._inertOverlays.size) {
|
|
157
|
-
this._removeInertAttributes();
|
|
158
|
-
}
|
|
159
|
-
this._inertOverlays.add(this._host);
|
|
160
|
-
this._addInertAttributes();
|
|
161
|
-
}
|
|
162
|
-
/** Removes inert state. */
|
|
163
|
-
deactivate() {
|
|
164
|
-
if (this._currentOverlay() !== this._host) {
|
|
165
|
-
if (this._inertOverlays.has(this._host)) {
|
|
166
|
-
this._inertOverlays.delete(this._host);
|
|
167
|
-
} else {
|
|
168
|
-
console.warn("Trying to remove inert state of an overlay which never had an applied inert state.", this._host);
|
|
169
|
-
}
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
this._removeInertAttributes();
|
|
173
|
-
this._inertOverlays.delete(this._host);
|
|
174
|
-
if (this._inertOverlays.size) {
|
|
175
|
-
this._addInertAttributes();
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
/** Whether the assigned host is currently inert */
|
|
179
|
-
isInert() {
|
|
180
|
-
return this._inertOverlays.has(this._host);
|
|
181
|
-
}
|
|
182
|
-
_currentOverlay() {
|
|
183
|
-
return [...this._inertOverlays].pop() ?? null;
|
|
184
|
-
}
|
|
185
|
-
_removeInertAttributes() {
|
|
186
|
-
this._inertElements.forEach((element) => {
|
|
187
|
-
if (!element) {
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
if (element.hasAttribute("data-sbb-inert")) {
|
|
191
|
-
element.inert = false;
|
|
192
|
-
element.removeAttribute("data-sbb-inert");
|
|
193
|
-
}
|
|
194
|
-
if (element.hasAttribute("data-sbb-aria-hidden")) {
|
|
195
|
-
element.removeAttribute("aria-hidden");
|
|
196
|
-
element.removeAttribute("data-sbb-aria-hidden");
|
|
197
|
-
}
|
|
198
|
-
});
|
|
199
|
-
this._inertElements.clear();
|
|
200
|
-
}
|
|
201
|
-
_addInertAttributes() {
|
|
202
|
-
var _a, _b;
|
|
203
|
-
let element = this._currentOverlay();
|
|
204
|
-
while (element !== document.documentElement && element !== null) {
|
|
205
|
-
Array.from(((_a = (element == null ? void 0 : element.parentElement) ?? (element == null ? void 0 : element.getRootNode())) == null ? void 0 : _a.childNodes) ?? []).filter((child) => child !== element && child instanceof window.HTMLElement && !IGNORED_ELEMENTS.includes(child.localName)).forEach((element2) => {
|
|
206
|
-
this._inertElements.add(element2);
|
|
207
|
-
if (!element2.inert) {
|
|
208
|
-
element2.inert = true;
|
|
209
|
-
element2.toggleAttribute("data-sbb-inert", true);
|
|
210
|
-
}
|
|
211
|
-
if (!element2.hasAttribute("aria-hidden")) {
|
|
212
|
-
element2.setAttribute("aria-hidden", "true");
|
|
213
|
-
element2.toggleAttribute("data-sbb-aria-hidden", true);
|
|
214
|
-
}
|
|
215
|
-
});
|
|
216
|
-
element = (element == null ? void 0 : element.parentElement) ?? ((_b = element == null ? void 0 : element.getRootNode()) == null ? void 0 : _b.host) ?? null;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
const _SbbLanguageController = class _SbbLanguageController {
|
|
221
|
-
/** Get the current language. */
|
|
222
|
-
static get current() {
|
|
223
|
-
const language = (readConfig().language ?? (isServer ? _SbbLanguageController._defaultLanguage : document.documentElement.getAttribute("lang"))) || _SbbLanguageController._defaultLanguage;
|
|
224
|
-
const langAttributeNormalized = language.split("-")[0];
|
|
225
|
-
return _SbbLanguageController._supportedLocales.includes(langAttributeNormalized) ? langAttributeNormalized : _SbbLanguageController._defaultLanguage;
|
|
226
|
-
}
|
|
227
|
-
/** Get the current language. */
|
|
228
|
-
get current() {
|
|
229
|
-
return _SbbLanguageController.current;
|
|
230
|
-
}
|
|
231
|
-
constructor(_host) {
|
|
232
|
-
this._host = _host;
|
|
233
|
-
this._handlers = [];
|
|
234
|
-
this._host.addController(this);
|
|
235
|
-
}
|
|
236
|
-
/** Add a language change handler. */
|
|
237
|
-
withHandler(handler) {
|
|
238
|
-
this._handlers.unshift(handler);
|
|
239
|
-
return this;
|
|
240
|
-
}
|
|
241
|
-
hostConnected() {
|
|
242
|
-
if (isServer) {
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
if (!_SbbLanguageController._listeners.size) {
|
|
246
|
-
_SbbLanguageController._observer.observe(document.documentElement, _SbbLanguageController._observerConfig);
|
|
247
|
-
}
|
|
248
|
-
_SbbLanguageController._listeners.add(this);
|
|
249
|
-
if (this._previousLanguage !== this.current) {
|
|
250
|
-
this._callHandlers(this._previousLanguage !== void 0);
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
hostDisconnected() {
|
|
254
|
-
if (isServer) {
|
|
255
|
-
return;
|
|
256
|
-
}
|
|
257
|
-
this._previousLanguage = this.current;
|
|
258
|
-
_SbbLanguageController._listeners.delete(this);
|
|
259
|
-
if (!_SbbLanguageController._listeners.size) {
|
|
260
|
-
_SbbLanguageController._observer.disconnect();
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
_callHandlers(requestUpdate = true) {
|
|
264
|
-
this._handlers.forEach((h) => h());
|
|
265
|
-
if (requestUpdate) {
|
|
266
|
-
this._host.requestUpdate();
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
};
|
|
270
|
-
_SbbLanguageController._defaultLanguage = "en";
|
|
271
|
-
_SbbLanguageController._supportedLocales = ["en", "de", "fr", "it"];
|
|
272
|
-
_SbbLanguageController._listeners = /* @__PURE__ */ new Set();
|
|
273
|
-
_SbbLanguageController._observer = !isServer ? new MutationObserver((mutations) => {
|
|
274
|
-
if (mutations[0].oldValue !== document.documentElement.getAttribute("lang")) {
|
|
275
|
-
_SbbLanguageController._listeners.forEach((l) => l._callHandlers());
|
|
276
|
-
}
|
|
277
|
-
}) : null;
|
|
278
|
-
_SbbLanguageController._observerConfig = {
|
|
279
|
-
attributeFilter: ["lang"],
|
|
280
|
-
attributeOldValue: true
|
|
281
|
-
};
|
|
282
|
-
let SbbLanguageController = _SbbLanguageController;
|
|
283
|
-
const pxToRem = (px) => px / SbbTypoScaleDefault;
|
|
284
|
-
const SbbMediaQueryForcedColors = "(forced-colors: active)";
|
|
285
|
-
const SbbMediaQueryHover = "(any-hover: hover)";
|
|
286
|
-
const SbbMediaQueryPointerCoarse = "(pointer: coarse)";
|
|
287
|
-
const SbbMediaQueryBreakpointMediumAndAbove = `(min-width: ${pxToRem(SbbBreakpointMediumMin)}rem)`;
|
|
288
|
-
const SbbMediaQueryBreakpointSmallAndBelow = `(max-width: ${pxToRem(SbbBreakpointSmallMax)}rem)`;
|
|
289
|
-
const mediaQueryRegistry = /* @__PURE__ */ new Map();
|
|
290
|
-
class SbbMediaMatcherController {
|
|
291
|
-
constructor(host, _queries) {
|
|
292
|
-
this._queries = _queries;
|
|
293
|
-
host.addController(this);
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* Returns whether the given query matches. Returns null with SSR.
|
|
297
|
-
* @param query The query to check against.
|
|
298
|
-
* @returns Whether the query matches or null with SSR.
|
|
299
|
-
*/
|
|
300
|
-
matches(query) {
|
|
301
|
-
return isServer ? null : matchMedia(query).matches;
|
|
302
|
-
}
|
|
303
|
-
hostConnected() {
|
|
304
|
-
if (isServer) {
|
|
305
|
-
return;
|
|
306
|
-
}
|
|
307
|
-
for (const [query, handler] of Object.entries(this._queries)) {
|
|
308
|
-
const mediaQuery = mediaQueryRegistry.get(query);
|
|
309
|
-
if (mediaQuery) {
|
|
310
|
-
mediaQuery.handlers.add(handler);
|
|
311
|
-
} else {
|
|
312
|
-
const mediaQueryList = matchMedia(query);
|
|
313
|
-
const handlers = /* @__PURE__ */ new Set([handler]);
|
|
314
|
-
const eventHandler = (e) => handlers.forEach((h) => h(e.matches));
|
|
315
|
-
mediaQueryList.addEventListener("change", eventHandler);
|
|
316
|
-
mediaQueryRegistry.set(query, { mediaQueryList, handlers, eventHandler });
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
hostDisconnected() {
|
|
321
|
-
for (const [query, handler] of Object.entries(this._queries)) {
|
|
322
|
-
const mediaQuery = mediaQueryRegistry.get(query);
|
|
323
|
-
if (mediaQuery) {
|
|
324
|
-
mediaQuery.handlers.delete(handler);
|
|
325
|
-
if (!mediaQuery.handlers.size) {
|
|
326
|
-
mediaQueryRegistry.delete(query);
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
class SbbSlotStateController {
|
|
333
|
-
constructor(_host, _onChangeCallback = null) {
|
|
334
|
-
this._host = _host;
|
|
335
|
-
this._onChangeCallback = _onChangeCallback;
|
|
336
|
-
this.slots = /* @__PURE__ */ new Set();
|
|
337
|
-
this._slotchangeHandler = (event) => {
|
|
338
|
-
this._syncSlots(event.target);
|
|
339
|
-
};
|
|
340
|
-
this._host.addController(this);
|
|
341
|
-
}
|
|
342
|
-
hostConnected() {
|
|
343
|
-
var _a;
|
|
344
|
-
this._syncSlots(...this._host.querySelectorAll("slot"));
|
|
345
|
-
(_a = this._host.shadowRoot) == null ? void 0 : _a.addEventListener("slotchange", this._slotchangeHandler);
|
|
346
|
-
}
|
|
347
|
-
hostDisconnected() {
|
|
348
|
-
var _a;
|
|
349
|
-
(_a = this._host.shadowRoot) == null ? void 0 : _a.removeEventListener("slotchange", this._slotchangeHandler);
|
|
350
|
-
}
|
|
351
|
-
_syncSlots(...slots) {
|
|
352
|
-
var _a;
|
|
353
|
-
for (const slot of slots) {
|
|
354
|
-
const slotName = slot.name || "unnamed";
|
|
355
|
-
if (slot.assignedNodes().some((n) => {
|
|
356
|
-
var _a2;
|
|
357
|
-
return "tagName" in n || ((_a2 = n.textContent) == null ? void 0 : _a2.trim());
|
|
358
|
-
})) {
|
|
359
|
-
this.slots.add(slotName);
|
|
360
|
-
} else {
|
|
361
|
-
this.slots.delete(slotName);
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
const oldValue = this._host.getAttribute("data-slot-names");
|
|
365
|
-
const joinedSlotNames = [...this.slots].sort().join(" ");
|
|
366
|
-
if (!joinedSlotNames) {
|
|
367
|
-
this._host.removeAttribute("data-slot-names");
|
|
368
|
-
} else if (this._host.getAttribute("data-slot-names") !== joinedSlotNames) {
|
|
369
|
-
this._host.setAttribute("data-slot-names", joinedSlotNames);
|
|
370
|
-
}
|
|
371
|
-
if (joinedSlotNames !== oldValue) {
|
|
372
|
-
(_a = this._onChangeCallback) == null ? void 0 : _a.call(this);
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
}
|
|
1
|
+
import { SbbConnectedAbortController } from "./controllers/connected-abort-controller.js";
|
|
2
|
+
import { SbbEscapableOverlayController } from "./controllers/escapable-overlay-controller.js";
|
|
3
|
+
import { SbbIdReferenceController } from "./controllers/id-observer-controller.js";
|
|
4
|
+
import { SbbInertController } from "./controllers/inert-controller.js";
|
|
5
|
+
import { SbbLanguageController } from "./controllers/language-controller.js";
|
|
6
|
+
import { SbbMediaMatcherController, SbbMediaQueryBreakpointMediumAndAbove, SbbMediaQueryBreakpointMediumAndBelow, SbbMediaQueryBreakpointSmallAndBelow, SbbMediaQueryForcedColors, SbbMediaQueryHover, SbbMediaQueryPointerCoarse } from "./controllers/media-matchers-controller.js";
|
|
7
|
+
import { SbbSlotStateController } from "./controllers/slot-state-controller.js";
|
|
376
8
|
export {
|
|
377
9
|
SbbConnectedAbortController,
|
|
378
10
|
SbbEscapableOverlayController,
|
|
@@ -381,10 +13,11 @@ export {
|
|
|
381
13
|
SbbLanguageController,
|
|
382
14
|
SbbMediaMatcherController,
|
|
383
15
|
SbbMediaQueryBreakpointMediumAndAbove,
|
|
16
|
+
SbbMediaQueryBreakpointMediumAndBelow,
|
|
384
17
|
SbbMediaQueryBreakpointSmallAndBelow,
|
|
385
18
|
SbbMediaQueryForcedColors,
|
|
386
19
|
SbbMediaQueryHover,
|
|
387
20
|
SbbMediaQueryPointerCoarse,
|
|
388
21
|
SbbSlotStateController
|
|
389
22
|
};
|
|
390
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlcnMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL2Nvbm5lY3RlZC1hYm9ydC1jb250cm9sbGVyLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvZXNjYXBhYmxlLW92ZXJsYXktY29udHJvbGxlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL2lkLW9ic2VydmVyLWNvbnRyb2xsZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9jb250cm9sbGVycy9pbmVydC1jb250cm9sbGVyLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvbGFuZ3VhZ2UtY29udHJvbGxlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL21lZGlhLW1hdGNoZXJzLWNvbnRyb2xsZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9jb250cm9sbGVycy9zbG90LXN0YXRlLWNvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFjdGl2ZUNvbnRyb2xsZXIsIFJlYWN0aXZlQ29udHJvbGxlckhvc3QgfSBmcm9tICdsaXQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIE5vIHJlcGxhY2VtZW50IHNob3VsZCBiZSBuZWNlc3NhcnksIGFzIHRoaXMgd2FzIGludGVuZGVkXG4gKiAgIGZvciBldmVudCBsaXN0ZW5lcnMsIHdoaWNoIHNob3VsZCBiZSBhcHBsaWVkIGluIHRoZSBjb25zdHJ1Y3Rvci5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgX2Fib3J0Q29udHJvbGxlcj86IEFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICBwdWJsaWMgZ2V0IHNpZ25hbCgpOiBBYm9ydFNpZ25hbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2Fib3J0Q29udHJvbGxlcj8uc2lnbmFsO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX2hvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QpIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2Fib3J0Q29udHJvbGxlcikge1xuICAgICAgdGhpcy5fYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXIgPSB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsImltcG9ydCB7IGlzU2VydmVyLCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHR5cGUgeyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCB9IGZyb20gJy4uL2Jhc2UtZWxlbWVudHMvb3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQuanMnO1xuXG5jb25zdCBvdmVybGF5U3RhY2sgPSBuZXcgQXJyYXk8U2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQ+KCk7XG5cbmlmICghaXNTZXJ2ZXIpIHtcbiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJyAmJiAhZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIG92ZXJsYXlTdGFjay5hdCgtMSk/LmNsb3NlKCk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2hvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QgJiBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgICBwcml2YXRlIF9vdmVybGF5U3RhY2s6IFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50W10gPSBvdmVybGF5U3RhY2ssXG4gICkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcj8uKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gIH1cblxuICAvLyBUaGlzIG11c3QgYmUgY2FsbGVkIHdoZW4gdGhlIG92ZXJsYXkgaXMgb3BlbmVkXG4gIHB1YmxpYyBjb25uZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuX292ZXJsYXlTdGFjay5wdXNoKHRoaXMuX2hvc3QpO1xuICB9XG5cbiAgLy8gVGhpcyBtdXN0IGJlIGNhbGxlZCB3aGVuIHRoZSBvdmVybGF5IGlzIGNsb3NlZFxuICBwdWJsaWMgZGlzY29ubmVjdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fb3ZlcmxheVN0YWNrLmxlbmd0aCkge1xuICAgICAgY29uc3QgZmluZEVsSW5kZXggPSB0aGlzLl9vdmVybGF5U3RhY2suZmluZEluZGV4KChlKSA9PiBlID09PSB0aGlzLl9ob3N0KTtcbiAgICAgIGlmIChmaW5kRWxJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgdGhpcy5fb3ZlcmxheVN0YWNrLnNwbGljZShmaW5kRWxJbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBMaXRFbGVtZW50LCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciB9IGZyb20gJ2xpdCc7XG5cbmNvbnN0IG9ic2VydmVycyA9IG5ldyBXZWFrTWFwPFxuICBOb2RlLFxuICB7IG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyOyBjb250cm9sbGVyczogU2V0PFNiYklkUmVmZXJlbmNlQ29udHJvbGxlcjxhbnk+PiB9XG4+KCk7XG5cbi8qKlxuICogVHJhY2tzIGlkIGNoYW5nZXMgaW4gdGhlIERPTSBhbmQgY2FsbHMgY29tcG9uZW50IHdoZW4gbWF0Y2hpbmcgd2l0aCByZXF1ZXN0VXBkYXRlKCkuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJJZFJlZmVyZW5jZUNvbnRyb2xsZXI8VCBleHRlbmRzIExpdEVsZW1lbnQ+IGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHJpdmF0ZSBfcm9vdE5vZGU6IERvY3VtZW50IHwgU2hhZG93Um9vdCB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9ob3N0OiBULFxuICAgIHByaXZhdGUgX2lkUmVmOiBrZXlvZiBULFxuICAgIHByaXZhdGUgX29ic2VydmVycyA9IG9ic2VydmVycyxcbiAgKSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fcm9vdE5vZGUgPSB0aGlzLl9ob3N0LmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290O1xuICAgIGNvbnN0IG9ic2VydmVyQ29udGV4dCA9IHRoaXMuX29ic2VydmVycy5nZXQodGhpcy5fcm9vdE5vZGUpO1xuXG4gICAgaWYgKG9ic2VydmVyQ29udGV4dCkge1xuICAgICAgb2JzZXJ2ZXJDb250ZXh0LmNvbnRyb2xsZXJzLmFkZCh0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29udHJvbGxlcnMgPSBuZXcgU2V0KFt0aGlzXSk7XG4gICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgICAgY29uc3QgbXV0YXRlZElkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG4gICAgICAgICAgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdhdHRyaWJ1dGVzJykge1xuICAgICAgICAgICAgbXV0YXRlZElkcy5hZGQobXV0YXRpb24ub2xkVmFsdWUhKTtcbiAgICAgICAgICAgIG11dGF0ZWRJZHMuYWRkKChtdXRhdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmlkKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2YgWy4uLm11dGF0aW9uLmFkZGVkTm9kZXMsIC4uLm11dGF0aW9uLnJlbW92ZWROb2Rlc10pIHtcbiAgICAgICAgICAgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIG11dGF0ZWRJZHMuYWRkKG5vZGUuaWQpO1xuICAgICAgICAgICAgICAgIG5vZGUucXVlcnlTZWxlY3RvckFsbCgnW2lkXScpLmZvckVhY2goKGUpID0+IG11dGF0ZWRJZHMuYWRkKGUuaWQpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgY29udHJvbGxlciBvZiBjb250cm9sbGVycykge1xuICAgICAgICAgIGNvbnN0IGlkID0gY29udHJvbGxlci5faG9zdFtjb250cm9sbGVyLl9pZFJlZl07XG4gICAgICAgICAgaWYgKGlkICYmIHR5cGVvZiBpZCA9PT0gJ3N0cmluZycgJiYgbXV0YXRlZElkcy5oYXMoaWQpKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLl9ob3N0LnJlcXVlc3RVcGRhdGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKHRoaXMuX3Jvb3ROb2RlLCB7XG4gICAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydpZCddLFxuICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX29ic2VydmVycy5zZXQodGhpcy5fcm9vdE5vZGUsIHsgb2JzZXJ2ZXIsIGNvbnRyb2xsZXJzIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlciB8fCAhdGhpcy5fcm9vdE5vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvYnNlcnZlckNvbnRleHQgPSB0aGlzLl9vYnNlcnZlcnMuZ2V0KHRoaXMuX3Jvb3ROb2RlKTtcbiAgICBpZiAoIW9ic2VydmVyQ29udGV4dCkge1xuICAgICAgdGhpcy5fcm9vdE5vZGUgPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG9ic2VydmVyQ29udGV4dC5jb250cm9sbGVycy5kZWxldGUodGhpcyk7XG4gICAgaWYgKG9ic2VydmVyQ29udGV4dC5jb250cm9sbGVycy5zaXplID09PSAwKSB7XG4gICAgICBvYnNlcnZlckNvbnRleHQub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgdGhpcy5fb2JzZXJ2ZXJzLmRlbGV0ZSh0aGlzLl9yb290Tm9kZSk7XG4gICAgfVxuXG4gICAgdGhpcy5fcm9vdE5vZGUgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgdGhlIGVsZW1lbnQgYnkgaWQgaW4gdGhlIGN1cnJlbnQgZG9jdW1lbnQgZnJhZ21lbnRcbiAgICovXG4gIHB1YmxpYyBmaW5kKCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgaWYgKGlzU2VydmVyIHx8ICF0aGlzLl9yb290Tm9kZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGlkID0gdGhpcy5faG9zdFt0aGlzLl9pZFJlZl07XG4gICAgICByZXR1cm4gdHlwZW9mIGlkID09ICdzdHJpbmcnID8gdGhpcy5fcm9vdE5vZGU/LnF1ZXJ5U2VsZWN0b3IoYCMke2lkfWApIDogbnVsbDtcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB0eXBlIHsgUmVhY3RpdmVDb250cm9sbGVyLCBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuY29uc3QgSUdOT1JFRF9FTEVNRU5UUyA9IFsnc2NyaXB0JywgJ2hlYWQnLCAndGVtcGxhdGUnLCAnc3R5bGUnXTtcbmNvbnN0IGluZXJ0RWxlbWVudHMgPSBuZXcgU2V0PEhUTUxFbGVtZW50PigpO1xuY29uc3QgaW5lcnRPdmVybGF5cyA9IG5ldyBTZXQ8SFRNTEVsZW1lbnQ+KCk7XG5cbmV4cG9ydCBjbGFzcyBTYmJJbmVydENvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50LFxuICAgIHByaXZhdGUgX2luZXJ0RWxlbWVudHMgPSBpbmVydEVsZW1lbnRzLFxuICAgIHByaXZhdGUgX2luZXJ0T3ZlcmxheXMgPSBpbmVydE92ZXJsYXlzLFxuICApIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXI/Lih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzSW5lcnQoKSkge1xuICAgICAgdGhpcy5kZWFjdGl2YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEFwcGxpZXMgaW5lcnQgc3RhdGUgdG8gZXZlcnkgb3RoZXIgZWxlbWVudCBvbiB0aGUgcGFnZSBleGNlcHQgdGhlIG92ZXJsYXkuICovXG4gIHB1YmxpYyBhY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICAvLyBSZW1vdmUgaW5lcnQgc3RhdGUgZnJvbSBwcmV2aW91cyBvcGVuZWQgb3ZlcmxheVxuICAgIGlmICh0aGlzLl9pbmVydE92ZXJsYXlzLnNpemUpIHtcbiAgICAgIHRoaXMuX3JlbW92ZUluZXJ0QXR0cmlidXRlcygpO1xuICAgIH1cblxuICAgIHRoaXMuX2luZXJ0T3ZlcmxheXMuYWRkKHRoaXMuX2hvc3QpO1xuICAgIHRoaXMuX2FkZEluZXJ0QXR0cmlidXRlcygpO1xuICB9XG5cbiAgLyoqIFJlbW92ZXMgaW5lcnQgc3RhdGUuICovXG4gIHB1YmxpYyBkZWFjdGl2YXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jdXJyZW50T3ZlcmxheSgpICE9PSB0aGlzLl9ob3N0KSB7XG4gICAgICAvLyBJZiBlLmcuIGEgY29tcG9uZW50IGdldHMgZGlzY29ubmVjdGVkLCBpdCBjb3VsZCBiZSB0aGF0IGl0IGlzIG5vdCB0aGUgdG9wIG1vc3QuXG4gICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIGNhbiBkaXJlY3RseSByZW1vdmUgaXQsIGFzIHRoZXJlIGlzIGN1cnJlbnRseSBubyBpbmVydCBzdGF0ZSBhcHBsaWVkLlxuICAgICAgaWYgKHRoaXMuX2luZXJ0T3ZlcmxheXMuaGFzKHRoaXMuX2hvc3QpKSB7XG4gICAgICAgIHRoaXMuX2luZXJ0T3ZlcmxheXMuZGVsZXRlKHRoaXMuX2hvc3QpO1xuICAgICAgfSBlbHNlIGlmIChpbXBvcnQubWV0YS5lbnYuREVWKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnVHJ5aW5nIHRvIHJlbW92ZSBpbmVydCBzdGF0ZSBvZiBhbiBvdmVybGF5IHdoaWNoIG5ldmVyIGhhZCBhbiBhcHBsaWVkIGluZXJ0IHN0YXRlLicsXG4gICAgICAgICAgdGhpcy5faG9zdCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3JlbW92ZUluZXJ0QXR0cmlidXRlcygpO1xuICAgIHRoaXMuX2luZXJ0T3ZlcmxheXMuZGVsZXRlKHRoaXMuX2hvc3QpO1xuXG4gICAgLy8gSWYgdGhlcmUgaXMgYXMgcHJldmlvdXMgb3BlbmVkIG92ZXJsYXksIHNldCBpdHMgaW5lcnQgc3RhdGUgYWdhaW4uXG4gICAgaWYgKHRoaXMuX2luZXJ0T3ZlcmxheXMuc2l6ZSkge1xuICAgICAgdGhpcy5fYWRkSW5lcnRBdHRyaWJ1dGVzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGFzc2lnbmVkIGhvc3QgaXMgY3VycmVudGx5IGluZXJ0ICovXG4gIHB1YmxpYyBpc0luZXJ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pbmVydE92ZXJsYXlzLmhhcyh0aGlzLl9ob3N0KTtcbiAgfVxuXG4gIHByaXZhdGUgX2N1cnJlbnRPdmVybGF5KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9pbmVydE92ZXJsYXlzXS5wb3AoKSA/PyBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlSW5lcnRBdHRyaWJ1dGVzKCk6IHZvaWQge1xuICAgIHRoaXMuX2luZXJ0RWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkID0+IHtcbiAgICAgIGlmICghZWxlbWVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGF0YS1zYmItaW5lcnQnKSkge1xuICAgICAgICBlbGVtZW50LmluZXJ0ID0gZmFsc2U7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXNiYi1pbmVydCcpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2JiLWFyaWEtaGlkZGVuJykpIHtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJyk7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXNiYi1hcmlhLWhpZGRlbicpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuX2luZXJ0RWxlbWVudHMuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FkZEluZXJ0QXR0cmlidXRlcygpOiB2b2lkIHtcbiAgICBsZXQgZWxlbWVudDogRWxlbWVudCB8IG51bGwgPSB0aGlzLl9jdXJyZW50T3ZlcmxheSgpO1xuXG4gICAgd2hpbGUgKGVsZW1lbnQgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBlbGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBBcnJheS5mcm9tKChlbGVtZW50Py5wYXJlbnRFbGVtZW50ID8/IGVsZW1lbnQ/LmdldFJvb3ROb2RlKCkpPy5jaGlsZE5vZGVzID8/IFtdKVxuICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgIChjaGlsZCk6IGNoaWxkIGlzIEhUTUxFbGVtZW50ID0+XG4gICAgICAgICAgICBjaGlsZCAhPT0gZWxlbWVudCAmJlxuICAgICAgICAgICAgY2hpbGQgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQgJiZcbiAgICAgICAgICAgICFJR05PUkVEX0VMRU1FTlRTLmluY2x1ZGVzKGNoaWxkLmxvY2FsTmFtZSksXG4gICAgICAgIClcbiAgICAgICAgLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICB0aGlzLl9pbmVydEVsZW1lbnRzLmFkZChlbGVtZW50KTtcblxuICAgICAgICAgIGlmICghZWxlbWVudC5pbmVydCkge1xuICAgICAgICAgICAgZWxlbWVudC5pbmVydCA9IHRydWU7XG4gICAgICAgICAgICBlbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zYmItaW5lcnQnLCB0cnVlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIWVsZW1lbnQuaGFzQXR0cmlidXRlKCdhcmlhLWhpZGRlbicpKSB7XG4gICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpO1xuICAgICAgICAgICAgZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWFyaWEtaGlkZGVuJywgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgLy8gV2UgbmVlZCB0byBwaWVyY2UgdGhyb3VnaCBTaGFkb3cgRE9NIGJvdW5kYXJ5XG4gICAgICBlbGVtZW50ID0gZWxlbWVudD8ucGFyZW50RWxlbWVudCA/PyAoZWxlbWVudD8uZ2V0Um9vdE5vZGUoKSBhcyBTaGFkb3dSb290KT8uaG9zdCA/PyBudWxsO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgaXNTZXJ2ZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVyLCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlckhvc3QgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgeyByZWFkQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnLmpzJztcblxuLyoqXG4gKiBUaGUgTGFuZ3VhZ2VDb250cm9sbGVyIGlzIGEgcmVhY3RpdmUgY29udHJvbGxlciB0aGF0IG9ic2VydmVzIHRoZSBcImxhbmdcIiBhdHRyaWJ1dGVcbiAqIG9mIHRoZSA8aHRtbD4gdGFnLlxuICogT24gY2hhbmdlIG9mIHRoZSBcImxhbmdcIiBhdHRyaWJ1dGUsIGl0IHdpbGwgcmVxdWVzdCBhbiB1cGRhdGUgb2YgY29ubmVjdGVkXG4gKiBjb21wb25lbnRzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9HbG9iYWxfYXR0cmlidXRlcy9sYW5nXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfZGVmYXVsdExhbmd1YWdlID0gJ2VuJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX3N1cHBvcnRlZExvY2FsZXMgPSBbJ2VuJywgJ2RlJywgJ2ZyJywgJ2l0J107XG5cbiAgLyoqIEEgc2V0IG9mIGNvbm5lY3RlZCBjb21wb25lbnRzIHRoYXQgc2hvdWxkIGJlIG5vdGlmaWVkIG9uIGxhbmd1YWdlIGNoYW5nZS4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX2xpc3RlbmVycyA9IG5ldyBTZXQ8U2JiTGFuZ3VhZ2VDb250cm9sbGVyPigpO1xuXG4gIC8qKiBNdXRhdGlvbk9ic2VydmVyIHRoYXQgb2JzZXJ2ZXMgdGhlIFwibGFuZ1wiIGF0dHJpYnV0ZSBvZiB0aGUgPGh0bWw+IGVsZW1lbnQuICovXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9vYnNlcnZlciA9ICFpc1NlcnZlclxuICAgID8gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgICBpZiAobXV0YXRpb25zWzBdLm9sZFZhbHVlICE9PSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCdsYW5nJykpIHtcbiAgICAgICAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2xpc3RlbmVycy5mb3JFYWNoKChsKSA9PiBsLl9jYWxsSGFuZGxlcnMoKSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgOiBudWxsO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfb2JzZXJ2ZXJDb25maWcgPSB7XG4gICAgYXR0cmlidXRlRmlsdGVyOiBbJ2xhbmcnXSxcbiAgICBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZSxcbiAgfTtcblxuICAvKiogR2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlLiAqL1xuICBwdWJsaWMgc3RhdGljIGdldCBjdXJyZW50KCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPVxuICAgICAgKHJlYWRDb25maWcoKS5sYW5ndWFnZSA/P1xuICAgICAgICAoaXNTZXJ2ZXJcbiAgICAgICAgICA/IFNiYkxhbmd1YWdlQ29udHJvbGxlci5fZGVmYXVsdExhbmd1YWdlXG4gICAgICAgICAgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCdsYW5nJykpKSB8fFxuICAgICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9kZWZhdWx0TGFuZ3VhZ2U7XG5cbiAgICAvLyBTdXBwb3J0IGUuZy4gY2FzZXMgbGlrZSBgZGUtY2hgLlxuICAgIGNvbnN0IGxhbmdBdHRyaWJ1dGVOb3JtYWxpemVkID0gbGFuZ3VhZ2Uuc3BsaXQoJy0nKVswXTtcbiAgICByZXR1cm4gU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9zdXBwb3J0ZWRMb2NhbGVzLmluY2x1ZGVzKGxhbmdBdHRyaWJ1dGVOb3JtYWxpemVkKVxuICAgICAgPyBsYW5nQXR0cmlidXRlTm9ybWFsaXplZFxuICAgICAgOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2RlZmF1bHRMYW5ndWFnZTtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuICovXG4gIHB1YmxpYyBnZXQgY3VycmVudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudDtcbiAgfVxuXG4gIHByaXZhdGUgX3ByZXZpb3VzTGFuZ3VhZ2U/OiBzdHJpbmc7XG4gIHByaXZhdGUgX2hhbmRsZXJzOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0KSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgLyoqIEFkZCBhIGxhbmd1YWdlIGNoYW5nZSBoYW5kbGVyLiAqL1xuICBwdWJsaWMgd2l0aEhhbmRsZXIoaGFuZGxlcjogKCkgPT4gdm9pZCk6IHRoaXMge1xuICAgIC8vIFdlIHVzZSB1bnNoaWZ0IGhlcmUsIHRvIHByZXBlbmQgYWRkaXRpb25hbCBoYW5kbGVycy5cbiAgICAvLyBUaGlzIGVuc3VyZXMgdGhhdCByZXF1ZXN0VXBkYXRlIGlzIGNhbGxlZCBhZnRlciB0aGUgb3RoZXIgaGFuZGxlcnMuXG4gICAgdGhpcy5faGFuZGxlcnMudW5zaGlmdChoYW5kbGVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIVNiYkxhbmd1YWdlQ29udHJvbGxlci5fbGlzdGVuZXJzLnNpemUpIHtcbiAgICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fb2JzZXJ2ZXIhLm9ic2VydmUoXG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxcbiAgICAgICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9vYnNlcnZlckNvbmZpZyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuYWRkKHRoaXMpO1xuICAgIGlmICh0aGlzLl9wcmV2aW91c0xhbmd1YWdlICE9PSB0aGlzLmN1cnJlbnQpIHtcbiAgICAgIHRoaXMuX2NhbGxIYW5kbGVycyh0aGlzLl9wcmV2aW91c0xhbmd1YWdlICE9PSB1bmRlZmluZWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9wcmV2aW91c0xhbmd1YWdlID0gdGhpcy5jdXJyZW50O1xuICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fbGlzdGVuZXJzLmRlbGV0ZSh0aGlzKTtcbiAgICBpZiAoIVNiYkxhbmd1YWdlQ29udHJvbGxlci5fbGlzdGVuZXJzLnNpemUpIHtcbiAgICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fb2JzZXJ2ZXIhLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jYWxsSGFuZGxlcnMocmVxdWVzdFVwZGF0ZSA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLl9oYW5kbGVycy5mb3JFYWNoKChoKSA9PiBoKCkpO1xuICAgIGlmIChyZXF1ZXN0VXBkYXRlKSB7XG4gICAgICB0aGlzLl9ob3N0LnJlcXVlc3RVcGRhdGUoKTtcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7XG4gIFNiYkJyZWFrcG9pbnRNZWRpdW1NaW4sXG4gIFNiYkJyZWFrcG9pbnRTbWFsbE1heCxcbiAgU2JiVHlwb1NjYWxlRGVmYXVsdCxcbn0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZGVzaWduLXRva2Vucyc7XG5pbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmNvbnN0IHB4VG9SZW0gPSAocHg6IG51bWJlcik6IG51bWJlciA9PiBweCAvIFNiYlR5cG9TY2FsZURlZmF1bHQ7XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuZXhwb3J0IGNvbnN0IFNiYk1lZGlhUXVlcnlGb3JjZWRDb2xvcnMgPSAnKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSknO1xuZXhwb3J0IGNvbnN0IFNiYk1lZGlhUXVlcnlIb3ZlciA9ICcoYW55LWhvdmVyOiBob3ZlciknO1xuZXhwb3J0IGNvbnN0IFNiYk1lZGlhUXVlcnlQb2ludGVyQ29hcnNlID0gJyhwb2ludGVyOiBjb2Fyc2UpJztcbmV4cG9ydCBjb25zdCBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludE1lZGl1bUFuZEFib3ZlID0gYChtaW4td2lkdGg6ICR7cHhUb1JlbShTYmJCcmVha3BvaW50TWVkaXVtTWluKX1yZW0pYDtcbmV4cG9ydCBjb25zdCBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFNtYWxsQW5kQmVsb3cgPSBgKG1heC13aWR0aDogJHtweFRvUmVtKFNiYkJyZWFrcG9pbnRTbWFsbE1heCl9cmVtKWA7XG4vKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuXG4vKipcbiAqIEEgY2FsbGJhY2ssIHdoaWNoIGlzIGludm9rZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBtZWRpYSBxdWVyeSBtYXRjaFxuICogc3RhdHVzIGNoYW5nZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFNiYk1lZGlhTWF0Y2hlckhhbmRsZXIgPSAobWF0Y2hlczogYm9vbGVhbikgPT4gdm9pZDtcblxuaW50ZXJmYWNlIE1lZGlhUXVlcnlFbnRyeSB7XG4gIG1lZGlhUXVlcnlMaXN0OiBNZWRpYVF1ZXJ5TGlzdDtcbiAgZXZlbnRIYW5kbGVyOiAoZXZlbnQ6IE1lZGlhUXVlcnlMaXN0RXZlbnQpID0+IHZvaWQ7XG4gIGhhbmRsZXJzOiBTZXQ8U2JiTWVkaWFNYXRjaGVySGFuZGxlcj47XG59XG5cbi8qKlxuICogV2Ugd2FudCB0byBjYWNoZSBNZWRpYVF1ZXJ5TGlzdCBpbnN0YW5jZXMgYW5kIGNvcnJlc3BvbmRpbmdcbiAqIGV2ZW50IGhhbmRsZXJzLCBhcyBhIG11bHRpdHVkZSBvZiBldmVudCBoYW5kbGVycyBvbiBnbG9iYWwgb2JqZWN0c1xuICogY2FuIGRlZ3JhZGUgcGVyZm9ybWFuY2Ugd2l0aCB0aW1lLlxuICovXG5jb25zdCBtZWRpYVF1ZXJ5UmVnaXN0cnkgPSBuZXcgTWFwPHN0cmluZywgTWVkaWFRdWVyeUVudHJ5PigpO1xuXG4vKipcbiAqIFRoaXMgY29udHJvbGxlciBhbGxvd3MgbGlzdGVuaW5nIHRvIG1lZGlhIHF1ZXJ5IGNoYW5nZXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIG5ldyBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyKHRoaXMsIHtcbiAqICAgW1NiYkZvcmNlZENvbG9yc1F1ZXJ5XTogKG1hdGNoZXMpID0+IGRvU29tZXRoaW5nKG1hdGNoZXMpLFxuICogfSlcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYk1lZGlhTWF0Y2hlckNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCxcbiAgICBwcml2YXRlIF9xdWVyaWVzOiBSZWNvcmQ8c3RyaW5nLCBTYmJNZWRpYU1hdGNoZXJIYW5kbGVyPixcbiAgKSB7XG4gICAgaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgZ2l2ZW4gcXVlcnkgbWF0Y2hlcy4gUmV0dXJucyBudWxsIHdpdGggU1NSLlxuICAgKiBAcGFyYW0gcXVlcnkgVGhlIHF1ZXJ5IHRvIGNoZWNrIGFnYWluc3QuXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHF1ZXJ5IG1hdGNoZXMgb3IgbnVsbCB3aXRoIFNTUi5cbiAgICovXG4gIHB1YmxpYyBtYXRjaGVzKHF1ZXJ5OiBzdHJpbmcpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgLy8gSWYgd2UgdXNlIHRoZSBjYWNoZWQgaW5zdGFuY2UsIFdlYmtpdCBzZWVtcyB0byB1cGRhdGUgdGhlIHN0YXRlIGEgdGljayB0b28gbGF0ZS5cbiAgICAvLyBEdWUgdG8gdGhpcyB3ZSBkaXJlY3RseSB1c2UgbWF0Y2hNZWRpYSBoZXJlLlxuICAgIHJldHVybiBpc1NlcnZlciA/IG51bGwgOiBtYXRjaE1lZGlhKHF1ZXJ5KS5tYXRjaGVzO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBbcXVlcnksIGhhbmRsZXJdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuX3F1ZXJpZXMpKSB7XG4gICAgICBjb25zdCBtZWRpYVF1ZXJ5ID0gbWVkaWFRdWVyeVJlZ2lzdHJ5LmdldChxdWVyeSk7XG4gICAgICBpZiAobWVkaWFRdWVyeSkge1xuICAgICAgICBtZWRpYVF1ZXJ5LmhhbmRsZXJzLmFkZChoYW5kbGVyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG1lZGlhUXVlcnlMaXN0ID0gbWF0Y2hNZWRpYShxdWVyeSk7XG4gICAgICAgIGNvbnN0IGhhbmRsZXJzID0gbmV3IFNldChbaGFuZGxlcl0pO1xuICAgICAgICBjb25zdCBldmVudEhhbmRsZXIgPSAoZTogTWVkaWFRdWVyeUxpc3RFdmVudCk6IHZvaWQgPT5cbiAgICAgICAgICBoYW5kbGVycy5mb3JFYWNoKChoKSA9PiBoKGUubWF0Y2hlcykpO1xuICAgICAgICBtZWRpYVF1ZXJ5TGlzdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBldmVudEhhbmRsZXIpO1xuICAgICAgICBtZWRpYVF1ZXJ5UmVnaXN0cnkuc2V0KHF1ZXJ5LCB7IG1lZGlhUXVlcnlMaXN0LCBoYW5kbGVycywgZXZlbnRIYW5kbGVyIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgW3F1ZXJ5LCBoYW5kbGVyXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9xdWVyaWVzKSkge1xuICAgICAgY29uc3QgbWVkaWFRdWVyeSA9IG1lZGlhUXVlcnlSZWdpc3RyeS5nZXQocXVlcnkpO1xuICAgICAgaWYgKG1lZGlhUXVlcnkpIHtcbiAgICAgICAgbWVkaWFRdWVyeS5oYW5kbGVycy5kZWxldGUoaGFuZGxlcik7XG4gICAgICAgIGlmICghbWVkaWFRdWVyeS5oYW5kbGVycy5zaXplKSB7XG4gICAgICAgICAgbWVkaWFRdWVyeVJlZ2lzdHJ5LmRlbGV0ZShxdWVyeSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB0eXBlIHsgUmVhY3RpdmVDb250cm9sbGVyLCBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiBUaGlzIGNvbnRyb2xsZXIgY2hlY2tzIGZvciBzbG90dGVkIGNoaWxkcmVuLiBGcm9tIHRoZXNlIGl0IGdlbmVyYXRlc1xuICogYSBsaXN0IG9mIHVzZWQgc2xvdCBuYW1lcyAoYHVubmFtZWRgIGZvciBjaGlsZHJlbiB3aXRob3V0IGEgc2xvdCBhdHRyaWJ1dGUpXG4gKiBhbmQgYWRkcyB0aGlzIHRvIHRoZSBgZGF0YS1zbG90LW5hbWVzYCBhdHRyaWJ1dGUsIGFzIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3QuXG4gKlxuICogVGhpcyBhbGxvd3MgQ1NTIGF0dHJpYnV0ZSBzZWxlY3RvciB0byBkaXNwbGF5L2hpZGUvY29uZmlndXJlIGEgc2VjdGlvblxuICogb2YgdGhlIGNvbXBvbmVudCBhcyByZXF1aXJlZCAoc2VlIFthdHRyfj12YWx1ZV0gc2VsZWN0b3Igc3BlY2lmaWNhbGx5KS5cbiAqXG4gKiBAZXhhbXBsZVxuICogLmV4YW1wbGUge1xuICogICBkaXNwbGF5OiBub25lO1xuICpcbiAqICAgOmhvc3QoW2RhdGEtc2xvdC1uYW1lc349XCJpY29uXCJdKSAmIHtcbiAqICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gKiAgIH1cbiAqIH1cbiAqXG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvQXR0cmlidXRlX3NlbGVjdG9yc1xuICovXG5leHBvcnQgY2xhc3MgU2JiU2xvdFN0YXRlQ29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHB1YmxpYyByZWFkb25seSBzbG90cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0ICYgSFRNTEVsZW1lbnQsXG4gICAgcHJpdmF0ZSBfb25DaGFuZ2VDYWxsYmFjazogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGwsXG4gICkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIC8vIFRPRE86IENoZWNrIGlmIHRoaXMgaXMgcmVhbGx5IG5lZWRlZCB3aXRoIFNTUi5cbiAgICB0aGlzLl9zeW5jU2xvdHMoLi4udGhpcy5faG9zdC5xdWVyeVNlbGVjdG9yQWxsISgnc2xvdCcpKTtcbiAgICB0aGlzLl9ob3N0LnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCB0aGlzLl9zbG90Y2hhbmdlSGFuZGxlcik7XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9ob3N0LnNoYWRvd1Jvb3Q/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCB0aGlzLl9zbG90Y2hhbmdlSGFuZGxlcik7XG4gIH1cblxuICAvLyBXZSBhdm9pZCB1c2luZyBBYm9ydENvbnRyb2xsZXIgaGVyZSwgYXMgaXQgd291bGQgbWVhbiBjcmVhdGluZ1xuICAvLyBhIG5ldyBpbnN0YW5jZSBmb3IgZXZlcnkgU2JiU2xvdFN0YXRlQ29udHJvbGxlciBpbnN0YW5jZS5cbiAgcHJpdmF0ZSBfc2xvdGNoYW5nZUhhbmRsZXIgPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gICAgdGhpcy5fc3luY1Nsb3RzKGV2ZW50LnRhcmdldCBhcyBIVE1MU2xvdEVsZW1lbnQpO1xuICB9O1xuXG4gIHByaXZhdGUgX3N5bmNTbG90cyguLi5zbG90czogSFRNTFNsb3RFbGVtZW50W10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHNsb3Qgb2Ygc2xvdHMpIHtcbiAgICAgIGNvbnN0IHNsb3ROYW1lID0gc2xvdC5uYW1lIHx8ICd1bm5hbWVkJztcbiAgICAgIC8vIFdlIHdhbnQgdG8gY2hlY2ssIHdoZXRoZXIgYW4gZWxlbWVudCBpcyBzbG90dGVkIG9yIGEgdGV4dCBub2RlIHdpdGggYWN0dWFsIGNvbnRlbnQuXG4gICAgICBpZiAoc2xvdC5hc3NpZ25lZE5vZGVzKCkuc29tZSgobikgPT4gJ3RhZ05hbWUnIGluIG4gfHwgbi50ZXh0Q29udGVudD8udHJpbSgpKSkge1xuICAgICAgICB0aGlzLnNsb3RzLmFkZChzbG90TmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNsb3RzLmRlbGV0ZShzbG90TmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLl9ob3N0LmdldEF0dHJpYnV0ZSgnZGF0YS1zbG90LW5hbWVzJyk7XG4gICAgY29uc3Qgam9pbmVkU2xvdE5hbWVzID0gWy4uLnRoaXMuc2xvdHNdLnNvcnQoKS5qb2luKCcgJyk7XG4gICAgaWYgKCFqb2luZWRTbG90TmFtZXMpIHtcbiAgICAgIHRoaXMuX2hvc3QucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXNsb3QtbmFtZXMnKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2hvc3QuZ2V0QXR0cmlidXRlKCdkYXRhLXNsb3QtbmFtZXMnKSAhPT0gam9pbmVkU2xvdE5hbWVzKSB7XG4gICAgICB0aGlzLl9ob3N0LnNldEF0dHJpYnV0ZSgnZGF0YS1zbG90LW5hbWVzJywgam9pbmVkU2xvdE5hbWVzKTtcbiAgICB9XG5cbiAgICBpZiAoam9pbmVkU2xvdE5hbWVzICE9PSBvbGRWYWx1ZSkge1xuICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjaz8uKCk7XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiZWxlbWVudCIsIl9hIl0sIm1hcHBpbmdzIjoiOzs7TUFNYSw0QkFBMkI7QUFBQSxFQUd0QyxJQUFXLFNBQU07O0FBQ2YsWUFBTyxVQUFLLHFCQUFMLG1CQUF1QjtBQUFBLEVBQUE7QUFBQSxFQUdoQyxZQUEyQixPQUE2QjtBQUE3QixTQUFLLFFBQUw7QUFObkIsU0FBQSxtQkFBcUMsSUFBSSxnQkFBZTtBQU96RCxTQUFBLE1BQU0sY0FBYyxJQUFJO0FBQUEsRUFBQTtBQUFBLEVBR3hCLGdCQUFhO0FBQ2QsUUFBQSxDQUFDLEtBQUssa0JBQWtCO0FBQ3JCLFdBQUEsbUJBQW1CLElBQUk7O0VBQzlCO0FBQUEsRUFHSyxtQkFBZ0I7O0FBQ3JCLGVBQUsscUJBQUwsbUJBQXVCO0FBQ3ZCLFNBQUssbUJBQW1CO0FBQUEsRUFBQTtBQUUzQjtBQ3ZCRCxNQUFNLGVBQWUsSUFBSTtBQUV6QixJQUFJLENBQUMsVUFBVTtBQUNOLFNBQUEsaUJBQWlCLFdBQVcsQ0FBQyxVQUF3Qjs7QUFDMUQsUUFBSSxNQUFNLFFBQVEsWUFBWSxDQUFDLE1BQU0sa0JBQWtCO0FBQ3JELFlBQU0sZUFBYztBQUNQLHlCQUFBLEdBQUcsRUFBRSxNQUFMLG1CQUFRO0FBQUEsSUFBSztBQUFBLEVBQzVCLENBQ0Q7QUFDSDtNQUVhLDhCQUE2QjtBQUFBLEVBQ3hDLFlBQ1UsT0FDQSxnQkFBMkMsY0FBWTs7QUFEdkQsU0FBSyxRQUFMO0FBQ0EsU0FBYSxnQkFBYjtBQUVILHFCQUFBLE9BQU0sa0JBQU4sNEJBQXNCO0FBQUEsRUFBSTtBQUFBLEVBRzFCLG1CQUFnQjtBQUNyQixTQUFLLFdBQVU7QUFBQSxFQUFBO0FBQUE7QUFBQSxFQUlWLFVBQU87QUFDUCxTQUFBLGNBQWMsS0FBSyxLQUFLLEtBQUs7QUFBQSxFQUFBO0FBQUE7QUFBQSxFQUk3QixhQUFVO0FBQ1gsUUFBQSxLQUFLLGNBQWMsUUFBUTtBQUN2QixZQUFBLGNBQWMsS0FBSyxjQUFjLFVBQVUsQ0FBQyxNQUFNLE1BQU0sS0FBSyxLQUFLO0FBQ3hFLFVBQUksZ0JBQWdCLElBQUk7QUFDakIsYUFBQSxjQUFjLE9BQU8sYUFBYSxDQUFDO0FBQUEsTUFBQTtBQUFBLElBQzFDO0FBQUEsRUFDRjtBQUVIO0FDdkNELE1BQU0sZ0NBQWdCO01BUVQseUJBQXdCO0FBQUEsRUFHbkMsWUFDVSxPQUNBLFFBQ0EsYUFBYSxXQUFTO0FBRnRCLFNBQUssUUFBTDtBQUNBLFNBQU0sU0FBTjtBQUNBLFNBQVUsYUFBVjtBQUxGLFNBQVMsWUFBaUM7QUFPM0MsU0FBQSxNQUFNLGNBQWMsSUFBSTtBQUFBLEVBQUE7QUFBQSxFQUd4QixnQkFBYTtBQUNsQixRQUFJLFVBQVU7QUFDWjtBQUFBLElBQUE7QUFHRyxTQUFBLFlBQVksS0FBSyxNQUFNLFlBQVc7QUFDdkMsVUFBTSxrQkFBa0IsS0FBSyxXQUFXLElBQUksS0FBSyxTQUFTO0FBRTFELFFBQUksaUJBQWlCO0FBQ0gsc0JBQUEsWUFBWSxJQUFJLElBQUk7QUFBQSxJQUFBLE9BQy9CO0FBQ0wsWUFBTSxjQUFjLG9CQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDbEMsWUFBTSxXQUFXLElBQUksaUJBQWlCLENBQUMsY0FBYTtBQUM1QyxjQUFBLGlDQUFpQjtBQUV2QixtQkFBVyxZQUFZLFdBQVc7QUFDNUIsY0FBQSxTQUFTLFNBQVMsY0FBYztBQUN2Qix1QkFBQSxJQUFJLFNBQVMsUUFBUztBQUN0Qix1QkFBQSxJQUFLLFNBQVMsT0FBdUIsRUFBRTtBQUFBLFVBQUEsV0FDekMsU0FBUyxTQUFTLGFBQWE7QUFDN0IsdUJBQUEsUUFBUSxDQUFDLEdBQUcsU0FBUyxZQUFZLEdBQUcsU0FBUyxZQUFZLEdBQUc7QUFDckUsa0JBQUksZ0JBQWdCLGFBQWE7QUFDcEIsMkJBQUEsSUFBSSxLQUFLLEVBQUU7QUFDakIscUJBQUEsaUJBQWlCLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxXQUFXLElBQUksRUFBRSxFQUFFLENBQUM7QUFBQSxjQUFBO0FBQUEsWUFDbkU7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUdGLG1CQUFXLGNBQWMsYUFBYTtBQUNwQyxnQkFBTSxLQUFLLFdBQVcsTUFBTSxXQUFXLE1BQU07QUFDN0MsY0FBSSxNQUFNLE9BQU8sT0FBTyxZQUFZLFdBQVcsSUFBSSxFQUFFLEdBQUc7QUFDdEQsdUJBQVcsTUFBTTs7UUFDbkI7QUFBQSxNQUNGLENBQ0Q7QUFFUSxlQUFBLFFBQVEsS0FBSyxXQUFXO0FBQUEsUUFDL0IsaUJBQWlCLENBQUMsSUFBSTtBQUFBLFFBQ3RCLFdBQVc7QUFBQSxRQUNYLFNBQVM7QUFBQSxRQUNULG1CQUFtQjtBQUFBLE1BQUEsQ0FDcEI7QUFFRCxXQUFLLFdBQVcsSUFBSSxLQUFLLFdBQVcsRUFBRSxVQUFVLGFBQWE7QUFBQSxJQUFBO0FBQUEsRUFDL0Q7QUFBQSxFQUdLLG1CQUFnQjtBQUNqQixRQUFBLFlBQVksQ0FBQyxLQUFLLFdBQVc7QUFDL0I7QUFBQSxJQUFBO0FBR0YsVUFBTSxrQkFBa0IsS0FBSyxXQUFXLElBQUksS0FBSyxTQUFTO0FBQzFELFFBQUksQ0FBQyxpQkFBaUI7QUFDcEIsV0FBSyxZQUFZO0FBQ2pCO0FBQUEsSUFBQTtBQUdjLG9CQUFBLFlBQVksT0FBTyxJQUFJO0FBQ25DLFFBQUEsZ0JBQWdCLFlBQVksU0FBUyxHQUFHO0FBQzFDLHNCQUFnQixTQUFTO0FBQ3BCLFdBQUEsV0FBVyxPQUFPLEtBQUssU0FBUztBQUFBLElBQUE7QUFHdkMsU0FBSyxZQUFZO0FBQUEsRUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTVosT0FBSTs7QUFDTCxRQUFBLFlBQVksQ0FBQyxLQUFLLFdBQVc7QUFDeEIsYUFBQTtBQUFBLElBQUEsT0FDRjtBQUNMLFlBQU0sS0FBSyxLQUFLLE1BQU0sS0FBSyxNQUFNO0FBQzFCLGFBQUEsT0FBTyxNQUFNLFlBQVcsVUFBSyxjQUFMLG1CQUFnQixjQUFjLElBQUksRUFBRSxNQUFNO0FBQUEsSUFBQTtBQUFBLEVBQzNFO0FBRUg7QUNsR0QsTUFBTSxtQkFBbUIsQ0FBQyxVQUFVLFFBQVEsWUFBWSxPQUFPO0FBQy9ELE1BQU0sb0NBQW9CO0FBQzFCLE1BQU0sb0NBQW9CO01BRWIsbUJBQWtCO0FBQUEsRUFDN0IsWUFDVSxPQUNBLGlCQUFpQixlQUNqQixpQkFBaUIsZUFBYTs7QUFGOUIsU0FBSyxRQUFMO0FBQ0EsU0FBYyxpQkFBZDtBQUNBLFNBQWMsaUJBQWQ7QUFFSCxxQkFBQSxPQUFNLGtCQUFOLDRCQUFzQjtBQUFBLEVBQUk7QUFBQSxFQUcxQixtQkFBZ0I7QUFDakIsUUFBQSxLQUFLLFdBQVc7QUFDbEIsV0FBSyxXQUFVO0FBQUEsSUFBQTtBQUFBLEVBQ2pCO0FBQUE7QUFBQSxFQUlLLFdBQVE7QUFFVCxRQUFBLEtBQUssZUFBZSxNQUFNO0FBQzVCLFdBQUssdUJBQXNCO0FBQUEsSUFBQTtBQUd4QixTQUFBLGVBQWUsSUFBSSxLQUFLLEtBQUs7QUFDbEMsU0FBSyxvQkFBbUI7QUFBQSxFQUFBO0FBQUE7QUFBQSxFQUluQixhQUFVO0FBQ2YsUUFBSSxLQUFLLHNCQUFzQixLQUFLLE9BQU87QUFHekMsVUFBSSxLQUFLLGVBQWUsSUFBSSxLQUFLLEtBQUssR0FBRztBQUNsQyxhQUFBLGVBQWUsT0FBTyxLQUFLLEtBQUs7QUFBQSxNQUFBLE9BQ1A7QUFDdEIsZ0JBQUEsS0FDTixzRkFDQSxLQUFLLEtBQUs7QUFBQSxNQUFBO0FBSWQ7QUFBQSxJQUFBO0FBR0YsU0FBSyx1QkFBc0I7QUFDdEIsU0FBQSxlQUFlLE9BQU8sS0FBSyxLQUFLO0FBR2pDLFFBQUEsS0FBSyxlQUFlLE1BQU07QUFDNUIsV0FBSyxvQkFBbUI7QUFBQSxJQUFBO0FBQUEsRUFDMUI7QUFBQTtBQUFBLEVBSUssVUFBTztBQUNaLFdBQU8sS0FBSyxlQUFlLElBQUksS0FBSyxLQUFLO0FBQUEsRUFBQTtBQUFBLEVBR25DLGtCQUFlO0FBQ3JCLFdBQU8sQ0FBQyxHQUFHLEtBQUssY0FBYyxFQUFFLElBQVMsS0FBQTtBQUFBLEVBQUE7QUFBQSxFQUduQyx5QkFBc0I7QUFDdkIsU0FBQSxlQUFlLFFBQVEsQ0FBQyxZQUE4QjtBQUN6RCxVQUFJLENBQUMsU0FBUztBQUNaO0FBQUEsTUFBQTtBQUdFLFVBQUEsUUFBUSxhQUFhLGdCQUFnQixHQUFHO0FBQzFDLGdCQUFRLFFBQVE7QUFDaEIsZ0JBQVEsZ0JBQWdCLGdCQUFnQjtBQUFBLE1BQUE7QUFHdEMsVUFBQSxRQUFRLGFBQWEsc0JBQXNCLEdBQUc7QUFDaEQsZ0JBQVEsZ0JBQWdCLGFBQWE7QUFDckMsZ0JBQVEsZ0JBQWdCLHNCQUFzQjtBQUFBLE1BQUE7QUFBQSxJQUNoRCxDQUNEO0FBQ0QsU0FBSyxlQUFlOztFQUdkLHNCQUFtQjs7QUFDckIsUUFBQSxVQUEwQixLQUFLO0FBRW5DLFdBQU8sWUFBWSxTQUFTLG1CQUFtQixZQUFZLE1BQU07QUFDekQsWUFBQSxPQUFNLHlDQUFTLG1CQUFpQixtQ0FBUyxtQkFBbkMsbUJBQW1ELGVBQWMsQ0FBQSxDQUFFLEVBQzVFLE9BQ0MsQ0FBQyxVQUNDLFVBQVUsV0FDVixpQkFBaUIsT0FBTyxlQUN4QixDQUFDLGlCQUFpQixTQUFTLE1BQU0sU0FBUyxDQUFDLEVBRTlDLFFBQVEsQ0FBQ0EsYUFBVztBQUNkLGFBQUEsZUFBZSxJQUFJQSxRQUFPO0FBRTNCLFlBQUEsQ0FBQ0EsU0FBUSxPQUFPO0FBQ2xCQSxtQkFBUSxRQUFRO0FBQ1IsbUJBQUEsZ0JBQWdCLGtCQUFrQixJQUFJO0FBQUEsUUFBQTtBQUdoRCxZQUFJLENBQUNBLFNBQVEsYUFBYSxhQUFhLEdBQUc7QUFDaEMsbUJBQUEsYUFBYSxlQUFlLE1BQU07QUFDbEMsbUJBQUEsZ0JBQWdCLHdCQUF3QixJQUFJO0FBQUEsUUFBQTtBQUFBLE1BQ3RELENBQ0Q7QUFHSCxpQkFBVSxtQ0FBUyxvQkFBa0Isd0NBQVMsa0JBQVQsbUJBQXVDLFNBQVE7QUFBQSxJQUFBO0FBQUEsRUFDdEY7QUFFSDtNQ3ZHWSwrQkFBQSx1QkFBcUI7QUFBQTtBQUFBLEVBcUJ6QixXQUFXLFVBQU87QUFDdkIsVUFBTSxZQUNILFdBQWEsRUFBQSxhQUNYLFdBQ0csdUJBQXNCLG1CQUN0QixTQUFTLGdCQUFnQixhQUFhLE1BQU0sT0FDbEQsdUJBQXNCO0FBR3hCLFVBQU0sMEJBQTBCLFNBQVMsTUFBTSxHQUFHLEVBQUUsQ0FBQztBQUNyRCxXQUFPLHVCQUFzQixrQkFBa0IsU0FBUyx1QkFBdUIsSUFDM0UsMEJBQ0EsdUJBQXNCO0FBQUEsRUFBQTtBQUFBO0FBQUEsRUFJNUIsSUFBVyxVQUFPO0FBQ2hCLFdBQU8sdUJBQXNCO0FBQUEsRUFBQTtBQUFBLEVBTS9CLFlBQTJCLE9BQTZCO0FBQTdCLFNBQUssUUFBTDtBQUZuQixTQUFTLFlBQW1CO0FBRzdCLFNBQUEsTUFBTSxjQUFjLElBQUk7QUFBQSxFQUFBO0FBQUE7QUFBQSxFQUl4QixZQUFZLFNBQW1CO0FBRy9CLFNBQUEsVUFBVSxRQUFRLE9BQU87QUFDdkIsV0FBQTtBQUFBLEVBQUE7QUFBQSxFQUdGLGdCQUFhO0FBQ2xCLFFBQUksVUFBVTtBQUNaO0FBQUEsSUFBQTtBQUVFLFFBQUEsQ0FBQyx1QkFBc0IsV0FBVyxNQUFNO0FBQzFDLDZCQUFzQixVQUFXLFFBQy9CLFNBQVMsaUJBQ1QsdUJBQXNCLGVBQWU7QUFBQSxJQUFBO0FBSW5CLDJCQUFBLFdBQVcsSUFBSSxJQUFJO0FBQ3JDLFFBQUEsS0FBSyxzQkFBc0IsS0FBSyxTQUFTO0FBQ3RDLFdBQUEsY0FBYyxLQUFLLHNCQUFzQixNQUFTO0FBQUEsSUFBQTtBQUFBLEVBQ3pEO0FBQUEsRUFHSyxtQkFBZ0I7QUFDckIsUUFBSSxVQUFVO0FBQ1o7QUFBQSxJQUFBO0FBRUYsU0FBSyxvQkFBb0IsS0FBSztBQUNSLDJCQUFBLFdBQVcsT0FBTyxJQUFJO0FBQ3hDLFFBQUEsQ0FBQyx1QkFBc0IsV0FBVyxNQUFNO0FBQzFDLDZCQUFzQixVQUFXOztFQUNuQztBQUFBLEVBR00sY0FBYyxnQkFBZ0IsTUFBSTtBQUN4QyxTQUFLLFVBQVUsUUFBUSxDQUFDLE1BQU0sR0FBRztBQUNqQyxRQUFJLGVBQWU7QUFDakIsV0FBSyxNQUFNOztFQUNiOztBQXZGc0IsdUJBQWdCLG1CQUFHO0FBQ25CLHVCQUFpQixvQkFBRyxDQUFDLE1BQU0sTUFBTSxNQUFNLElBQUk7QUFHM0MsdUJBQUEsaUNBQWlCLElBQUc7QUFHcEIsdUJBQVMsWUFBRyxDQUFDLFdBQ2pDLElBQUksaUJBQWlCLENBQUMsY0FBYTtBQUM3QixNQUFBLFVBQVUsQ0FBQyxFQUFFLGFBQWEsU0FBUyxnQkFBZ0IsYUFBYSxNQUFNLEdBQUc7QUFDM0UsMkJBQXNCLFdBQVcsUUFBUSxDQUFDLE1BQU0sRUFBRSxlQUFlO0FBQUEsRUFBQTtBQUVwRSxDQUFBLElBQ0Q7QUFDb0IsdUJBQUEsa0JBQWtCO0FBQUEsRUFDeEMsaUJBQWlCLENBQUMsTUFBTTtBQUFBLEVBQ3hCLG1CQUFtQjtBQUNwQjtJQWxCVTtBQ0xiLE1BQU0sVUFBVSxDQUFDLE9BQXVCLEtBQUs7QUFHdEMsTUFBTSw0QkFBNEI7QUFDbEMsTUFBTSxxQkFBcUI7QUFDM0IsTUFBTSw2QkFBNkI7QUFDbkMsTUFBTSx3Q0FBd0MsZUFBZSxRQUFRLHNCQUFzQixDQUFDO0FBQzVGLE1BQU0sdUNBQXVDLGVBQWUsUUFBUSxxQkFBcUIsQ0FBQztBQW9CakcsTUFBTSx5Q0FBeUI7TUFVbEIsMEJBQXlCO0FBQUEsRUFDcEMsWUFDRSxNQUNRLFVBQWdEO0FBQWhELFNBQVEsV0FBUjtBQUVSLFNBQUssY0FBYyxJQUFJO0FBQUEsRUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFsQixRQUFRLE9BQWE7QUFHMUIsV0FBTyxXQUFXLE9BQU8sV0FBVyxLQUFLLEVBQUU7QUFBQSxFQUFBO0FBQUEsRUFHdEMsZ0JBQWE7QUFDbEIsUUFBSSxVQUFVO0FBQ1o7QUFBQSxJQUFBO0FBR1MsZUFBQSxDQUFDLE9BQU8sT0FBTyxLQUFLLE9BQU8sUUFBUSxLQUFLLFFBQVEsR0FBRztBQUN0RCxZQUFBLGFBQWEsbUJBQW1CLElBQUksS0FBSztBQUMvQyxVQUFJLFlBQVk7QUFDSCxtQkFBQSxTQUFTLElBQUksT0FBTztBQUFBLE1BQUEsT0FDMUI7QUFDQyxjQUFBLGlCQUFpQixXQUFXLEtBQUs7QUFDdkMsY0FBTSxXQUFXLG9CQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDNUIsY0FBQSxlQUFlLENBQUMsTUFDcEIsU0FBUyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxDQUFDO0FBQ3ZCLHVCQUFBLGlCQUFpQixVQUFVLFlBQVk7QUFDdEQsMkJBQW1CLElBQUksT0FBTyxFQUFFLGdCQUFnQixVQUFVLGNBQWM7QUFBQSxNQUFBO0FBQUEsSUFDMUU7QUFBQSxFQUNGO0FBQUEsRUFHSyxtQkFBZ0I7QUFDVixlQUFBLENBQUMsT0FBTyxPQUFPLEtBQUssT0FBTyxRQUFRLEtBQUssUUFBUSxHQUFHO0FBQ3RELFlBQUEsYUFBYSxtQkFBbUIsSUFBSSxLQUFLO0FBQy9DLFVBQUksWUFBWTtBQUNILG1CQUFBLFNBQVMsT0FBTyxPQUFPO0FBQzlCLFlBQUEsQ0FBQyxXQUFXLFNBQVMsTUFBTTtBQUM3Qiw2QkFBbUIsT0FBTyxLQUFLO0FBQUEsUUFBQTtBQUFBLE1BQ2pDO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFFSDtNQ3pFWSx1QkFBc0I7QUFBQSxFQUdqQyxZQUNVLE9BQ0Esb0JBQXlDLE1BQUk7QUFEN0MsU0FBSyxRQUFMO0FBQ0EsU0FBaUIsb0JBQWpCO0FBSk0sU0FBQSw0QkFBWSxJQUFHO0FBcUJ2QixTQUFBLHFCQUFxQixDQUFDLFVBQXNCO0FBQzdDLFdBQUEsV0FBVyxNQUFNLE1BQXlCO0FBQUEsSUFDakQ7QUFqQk8sU0FBQSxNQUFNLGNBQWMsSUFBSTtBQUFBLEVBQUE7QUFBQSxFQUd4QixnQkFBYTs7QUFFbEIsU0FBSyxXQUFXLEdBQUcsS0FBSyxNQUFNLGlCQUFrQixNQUFNLENBQUM7QUFDdkQsZUFBSyxNQUFNLGVBQVgsbUJBQXVCLGlCQUFpQixjQUFjLEtBQUs7QUFBQSxFQUFrQjtBQUFBLEVBR3hFLG1CQUFnQjs7QUFDckIsZUFBSyxNQUFNLGVBQVgsbUJBQXVCLG9CQUFvQixjQUFjLEtBQUs7QUFBQSxFQUFrQjtBQUFBLEVBUzFFLGNBQWMsT0FBd0I7O0FBQzVDLGVBQVcsUUFBUSxPQUFPO0FBQ2xCLFlBQUEsV0FBVyxLQUFLLFFBQVE7QUFFOUIsVUFBSSxLQUFLLGdCQUFnQixLQUFLLENBQUMsTUFBQTs7QUFBTSw0QkFBYSxPQUFLQyxNQUFBLEVBQUUsZ0JBQUYsZ0JBQUFBLElBQWU7QUFBQSxPQUFNLEdBQUc7QUFDeEUsYUFBQSxNQUFNLElBQUksUUFBUTtBQUFBLE1BQUEsT0FDbEI7QUFDQSxhQUFBLE1BQU0sT0FBTyxRQUFRO0FBQUEsTUFBQTtBQUFBLElBQzVCO0FBR0YsVUFBTSxXQUFXLEtBQUssTUFBTSxhQUFhLGlCQUFpQjtBQUNwRCxVQUFBLGtCQUFrQixDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsS0FBTyxFQUFBLEtBQUssR0FBRztBQUN2RCxRQUFJLENBQUMsaUJBQWlCO0FBQ2YsV0FBQSxNQUFNLGdCQUFnQixpQkFBaUI7QUFBQSxJQUFBLFdBQ25DLEtBQUssTUFBTSxhQUFhLGlCQUFpQixNQUFNLGlCQUFpQjtBQUNwRSxXQUFBLE1BQU0sYUFBYSxtQkFBbUIsZUFBZTtBQUFBLElBQUE7QUFHNUQsUUFBSSxvQkFBb0IsVUFBVTtBQUNoQyxpQkFBSyxzQkFBTDtBQUFBLElBQXdCO0FBQUEsRUFDMUI7QUFFSDsifQ==
|
|
23
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlcnMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OyJ9
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
const DAYS_PER_ROW = 7;
|
|
2
|
+
const MONTHS_PER_ROW = 4;
|
|
3
|
+
const YEARS_PER_ROW = 4;
|
|
4
|
+
const MONTHS_PER_PAGE = 12;
|
|
5
|
+
const YEARS_PER_PAGE = 24;
|
|
6
|
+
const FORMAT_DATE = /(^0?[1-9]?|[12]?[0-9]?|3?[01]?)[.,\\/\-\s](0?[1-9]?|1?[0-2]?)?[.,\\/\-\s](\d{1,4}$)?/;
|
|
7
|
+
const ISO8601_FORMAT_DATE = /^(\d{4})-(\d{2})-(\d{2})$/;
|
|
8
|
+
class DateAdapter {
|
|
9
|
+
/**
|
|
10
|
+
* Attempts to deserialize a value to a valid date object. This is different from parsing in that
|
|
11
|
+
* deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601
|
|
12
|
+
* string). The default implementation does not allow any deserialization, it simply checks that
|
|
13
|
+
* the given value is already a valid date object or null.
|
|
14
|
+
* @param value Either Date, ISOString, Unix Timestamp (number of seconds since Jan 1, 1970).
|
|
15
|
+
* @returns The date if the input is valid, `null` otherwise.
|
|
16
|
+
*/
|
|
17
|
+
deserialize(value) {
|
|
18
|
+
if (value == null || this.isDateInstance(value) && this.isValid(value)) {
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
return this.invalid();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Format the given date as string.
|
|
25
|
+
* @param date The date to format.
|
|
26
|
+
* @param options options object with weekdayStyle as property
|
|
27
|
+
*/
|
|
28
|
+
format(date, options) {
|
|
29
|
+
if (!this.isValid(date)) {
|
|
30
|
+
return "";
|
|
31
|
+
}
|
|
32
|
+
const value = /* @__PURE__ */ new Date(this.toIso8601(date) + "T00:00:00");
|
|
33
|
+
const dateFormatter = new Intl.DateTimeFormat("de-CH", {
|
|
34
|
+
day: "2-digit",
|
|
35
|
+
month: "2-digit",
|
|
36
|
+
year: "numeric"
|
|
37
|
+
});
|
|
38
|
+
if ((options == null ? void 0 : options.weekdayStyle) === "none") {
|
|
39
|
+
return dateFormatter.format(value);
|
|
40
|
+
}
|
|
41
|
+
const weekdayStyle = (options == null ? void 0 : options.weekdayStyle) ?? "short";
|
|
42
|
+
let weekday = this.getDayOfWeekNames(weekdayStyle)[this.getDayOfWeek(date)];
|
|
43
|
+
weekday = weekday.charAt(0).toUpperCase() + weekday.substring(1);
|
|
44
|
+
if (weekdayStyle === "short") {
|
|
45
|
+
weekday = weekday.substring(0, 2);
|
|
46
|
+
}
|
|
47
|
+
return `${weekday}, ${dateFormatter.format(value)}`;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get the given date as ISO String.
|
|
51
|
+
* @param date The date to convert to ISO String.
|
|
52
|
+
*/
|
|
53
|
+
toIso8601(date) {
|
|
54
|
+
const pad = (value, length = 2) => `${value}`.padStart(length, "0");
|
|
55
|
+
return `${pad(this.getYear(date), 4)}-${pad(this.getMonth(date))}-${pad(this.getDate(date))}`;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Given a potential date object, returns that same date object if it is
|
|
59
|
+
* a valid date, or `null` if it's not a valid date.
|
|
60
|
+
* @param value The object to check.
|
|
61
|
+
* @returns A date or `null`.
|
|
62
|
+
*/
|
|
63
|
+
getValidDateOrNull(value) {
|
|
64
|
+
return this.isDateInstance(value) && this.isValid(value) ? value : null;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Calculates the day of the week of the first day of the month, and then its offset from the first day of the week.
|
|
68
|
+
*/
|
|
69
|
+
getFirstWeekOffset(date) {
|
|
70
|
+
const firstOfMonth = this.createDate(this.getYear(date), this.getMonth(date), 1);
|
|
71
|
+
return (DAYS_PER_ROW + this.getDayOfWeek(firstOfMonth) - this.getFirstDayOfWeek()) % DAYS_PER_ROW;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Compares two dates.
|
|
75
|
+
* @param first The first date to compare.
|
|
76
|
+
* @param second The second date to compare.
|
|
77
|
+
* @returns 0 if the dates are equal, a number less than 0 if the first date is earlier,
|
|
78
|
+
* a number greater than 0 if the first date is later.
|
|
79
|
+
*/
|
|
80
|
+
compareDate(first, second) {
|
|
81
|
+
return this.getYear(first) - this.getYear(second) || this.getMonth(first) - this.getMonth(second) || this.getDate(first) - this.getDate(second);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Checks if two dates are equal.
|
|
85
|
+
* @param first The first date to check.
|
|
86
|
+
* @param second The second date to check.
|
|
87
|
+
* @returns Whether the two dates are equal.
|
|
88
|
+
* Null dates are considered equal to other null dates.
|
|
89
|
+
*/
|
|
90
|
+
sameDate(first, second) {
|
|
91
|
+
if (first && second) {
|
|
92
|
+
const firstValid = this.isValid(first);
|
|
93
|
+
const secondValid = this.isValid(second);
|
|
94
|
+
if (firstValid && secondValid) {
|
|
95
|
+
return !this.compareDate(first, second);
|
|
96
|
+
}
|
|
97
|
+
return firstValid == secondValid;
|
|
98
|
+
}
|
|
99
|
+
return first == second;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Clamp the given date between min and max dates.
|
|
103
|
+
* @param date The date to clamp.
|
|
104
|
+
* @param min The minimum value to allow. If null or omitted no min is enforced.
|
|
105
|
+
* @param max The maximum value to allow. If null or omitted no max is enforced.
|
|
106
|
+
* @returns `min` if `date` is less than `min`, `max` if date is greater than `max`,
|
|
107
|
+
* otherwise `date`.
|
|
108
|
+
*/
|
|
109
|
+
clampDate(date, min, max) {
|
|
110
|
+
if (min && this.compareDate(date, min) < 0) {
|
|
111
|
+
return min;
|
|
112
|
+
}
|
|
113
|
+
if (max && this.compareDate(date, max) > 0) {
|
|
114
|
+
return max;
|
|
115
|
+
}
|
|
116
|
+
return date;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
export {
|
|
120
|
+
DAYS_PER_ROW,
|
|
121
|
+
DateAdapter,
|
|
122
|
+
FORMAT_DATE,
|
|
123
|
+
ISO8601_FORMAT_DATE,
|
|
124
|
+
MONTHS_PER_PAGE,
|
|
125
|
+
MONTHS_PER_ROW,
|
|
126
|
+
YEARS_PER_PAGE,
|
|
127
|
+
YEARS_PER_ROW
|
|
128
|
+
};
|
|
129
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1hZGFwdGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kYXRldGltZS9kYXRlLWFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERBWVNfUEVSX1JPVzogbnVtYmVyID0gNztcbmV4cG9ydCBjb25zdCBNT05USFNfUEVSX1JPVzogbnVtYmVyID0gNDtcbmV4cG9ydCBjb25zdCBZRUFSU19QRVJfUk9XOiBudW1iZXIgPSA0O1xuZXhwb3J0IGNvbnN0IE1PTlRIU19QRVJfUEFHRTogbnVtYmVyID0gMTI7XG5leHBvcnQgY29uc3QgWUVBUlNfUEVSX1BBR0U6IG51bWJlciA9IDI0O1xuZXhwb3J0IGNvbnN0IEZPUk1BVF9EQVRFID1cbiAgLyheMD9bMS05XT98WzEyXT9bMC05XT98Mz9bMDFdPylbLixcXFxcL1xcLVxcc10oMD9bMS05XT98MT9bMC0yXT8pP1suLFxcXFwvXFwtXFxzXShcXGR7MSw0fSQpPy87XG5leHBvcnQgY29uc3QgSVNPODYwMV9GT1JNQVRfREFURSA9IC9eKFxcZHs0fSktKFxcZHsyfSktKFxcZHsyfSkkLztcblxuLyoqXG4gKiBBYnN0cmFjdCBkYXRlIGZ1bmN0aW9uYWxpdHkuXG4gKlxuICogQWRhcHRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYWluL3NyYy9tYXRlcmlhbC9jb3JlL2RhdGV0aW1lL2RhdGUtYWRhcHRlci50c1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0ZUFkYXB0ZXI8VCA9IGFueT4ge1xuICAvKipcbiAgICogR2V0IHRoZSB5ZWFyIGFzIGEgbnVtYmVyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldFllYXIoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBtb250aCBhcyBhIG51bWJlci5cbiAgICogQXR0ZW50aW9uOiBUaGlzIHJldHVybnMgMS0xMiBhbmQgbWl0aWdhdGVzIHRoZSBkZWZhdWx0IEphdmFTY3JpcHQgRGF0ZSBiZWhhdmlvci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRNb250aChkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRheSBvZiB0aGUgbW9udGggYXMgYSBudW1iZXIuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF0ZShkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIERheSBvZiB0aGUgd2VlayBhcyBhIG51bWJlci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXlPZldlZWsoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKiogR2V0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGFic3RyYWN0IGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhIG1vbnRoLlxuICAgKiBAcGFyYW0geWVhclxuICAgKiBAcGFyYW0gbW9udGhcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXROdW1EYXlzSW5Nb250aChkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIGFsbCB0aGUgbW9udGhzIGluIGEgZ2l2ZW4gc3R5bGUuXG4gICAqIEBwYXJhbSBzdHlsZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdO1xuXG4gIC8qKiBHZXQgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSAzMSwgZmlsbGVkIHdpdGggdGhlIGRheXMgaW4gYSBtb250aCwgc3RhcnRpbmcgZnJvbSAxLiAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIGFsbCB0aGUgd2VlayBkYXlzIGluIGEgZ2l2ZW4gc3R5bGUuXG4gICAqIEBwYXJhbSBzdHlsZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldERheU9mV2Vla05hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXTtcblxuICAvKiogQ3JlYXRlcyB0b2RheSdzIGRhdGUuICovXG4gIHB1YmxpYyBhYnN0cmFjdCB0b2RheSgpOiBUO1xuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciBhIGdpdmVuIGBkYXRlYCBpcyB2YWxpZC5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBpc1ZhbGlkKGRhdGU6IFQgfCBudWxsIHwgdW5kZWZpbmVkKTogZGF0ZSBpcyBUO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgY2xvbmluZyB0aGUgZ2l2ZW4gb25lLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGNsb25lKGRhdGU6IFQpOiBUO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUsIGdpdmVuIGRheSwgbW9udGggYW5kIHllYXI7IHdpdGhvdXQgZGF0ZSdzIG92ZXJmbG93LlxuICAgKiBAcGFyYW0geWVhclxuICAgKiBAcGFyYW0gbW9udGggVGhlIG1vbnRoIG9mIHRoZSBkYXRlICgxLWluZGV4ZWQsIDEgPSBKYW51YXJ5KS4gTXVzdCBiZSBhbiBpbnRlZ2VyIDEgLSAxMi5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBjcmVhdGVEYXRlKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQXR0ZW1wdHMgdG8gZGVzZXJpYWxpemUgYSB2YWx1ZSB0byBhIHZhbGlkIGRhdGUgb2JqZWN0LiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHBhcnNpbmcgaW4gdGhhdFxuICAgKiBkZXNlcmlhbGl6ZSBzaG91bGQgb25seSBhY2NlcHQgbm9uLWFtYmlndW91cywgbG9jYWxlLWluZGVwZW5kZW50IGZvcm1hdHMgKGUuZy4gYSBJU08gODYwMVxuICAgKiBzdHJpbmcpLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBhbGxvdyBhbnkgZGVzZXJpYWxpemF0aW9uLCBpdCBzaW1wbHkgY2hlY2tzIHRoYXRcbiAgICogdGhlIGdpdmVuIHZhbHVlIGlzIGFscmVhZHkgYSB2YWxpZCBkYXRlIG9iamVjdCBvciBudWxsLlxuICAgKiBAcGFyYW0gdmFsdWUgRWl0aGVyIERhdGUsIElTT1N0cmluZywgVW5peCBUaW1lc3RhbXAgKG51bWJlciBvZiBzZWNvbmRzIHNpbmNlIEphbiAxLCAxOTcwKS5cbiAgICogQHJldHVybnMgVGhlIGRhdGUgaWYgdGhlIGlucHV0IGlzIHZhbGlkLCBgbnVsbGAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIGRlc2VyaWFsaXplKHZhbHVlOiBUIHwgc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCk6IFQgfCBudWxsIHtcbiAgICBpZiAoXG4gICAgICB2YWx1ZSA9PSBudWxsIHx8XG4gICAgICAodGhpcy5pc0RhdGVJbnN0YW5jZSh2YWx1ZSkgJiYgdGhpcy5pc1ZhbGlkKHZhbHVlIGFzIFQgfCBudWxsIHwgdW5kZWZpbmVkKSlcbiAgICApIHtcbiAgICAgIHJldHVybiB2YWx1ZSBhcyBUIHwgbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgeWVhcnNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0geWVhcnMgVGhlIG51bWJlciBvZiB5ZWFycyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBULCB5ZWFyczogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGBtb250aHNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIElmIHRoZSBjYWxjdWxhdGVkIG1vbnRoIGhhcyBmZXdlciBkYXlzIHRoYW4gdGhlIG9yaWdpbmFsIG9uZSwgdGhlIGRhdGUgaXMgc2V0IHRvIHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGguXG4gICAqIEUuZy4gd2l0aCBgZGF0ZWAgPSBuZXcgRGF0ZSgyMDIyLCAwLCAzMSkgYW5kIGBtb250aHNgID0gMSwgaXQgcmV0dXJucyBuZXcgRGF0ZSgyMDIyLCAxLCAyOCkuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0gbW9udGhzIFRoZSBudW1iZXIgb2YgbW9udGhzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBULCBtb250aHM6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgZGF5c2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC5cbiAgICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUuXG4gICAqIEBwYXJhbSBkYXlzIFRoZSBudW1iZXIgb2YgZGF5cyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkQ2FsZW5kYXJEYXlzKGRhdGU6IFQsIGRheXM6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGF0ZSBpbiB0aGUgbG9jYWwgZm9ybWF0LlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSB0byBmb3JtYXRcbiAgICogQHJldHVybnMgVGhlIGBkYXRlYCBpbiB0aGUgbG9jYWwgZm9ybWF0IGFzIHN0cmluZy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBUIHwgc3RyaW5nKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGdpdmVuIHN0cmluZyBhcyBEYXRlLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIGRhdGUgaW4gdGhlIGZvcm1hdCBERC5NTS5ZWVlZLlxuICAgKiBAcGFyYW0gbm93IFRoZSBjdXJyZW50IGRhdGUgYXMgRGF0ZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBwYXJzZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgbm93PzogVCk6IFQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBGb3JtYXQgdGhlIGdpdmVuIGRhdGUgYXMgc3RyaW5nLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSB0byBmb3JtYXQuXG4gICAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbnMgb2JqZWN0IHdpdGggd2Vla2RheVN0eWxlIGFzIHByb3BlcnR5XG4gICAqL1xuICBwdWJsaWMgZm9ybWF0KFxuICAgIGRhdGU6IFQgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIG9wdGlvbnM/OiB7IHdlZWtkYXlTdHlsZT86ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93JyB8ICdub25lJyB9LFxuICApOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBuZXcgRGF0ZSh0aGlzLnRvSXNvODYwMShkYXRlISkgKyAnVDAwOjAwOjAwJyk7XG4gICAgY29uc3QgZGF0ZUZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdkZS1DSCcsIHtcbiAgICAgIGRheTogJzItZGlnaXQnLFxuICAgICAgbW9udGg6ICcyLWRpZ2l0JyxcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICB9KTtcblxuICAgIGlmIChvcHRpb25zPy53ZWVrZGF5U3R5bGUgPT09ICdub25lJykge1xuICAgICAgcmV0dXJuIGRhdGVGb3JtYXR0ZXIuZm9ybWF0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdCB3ZWVrZGF5U3R5bGUgPSBvcHRpb25zPy53ZWVrZGF5U3R5bGUgPz8gJ3Nob3J0JztcbiAgICBsZXQgd2Vla2RheSA9IHRoaXMuZ2V0RGF5T2ZXZWVrTmFtZXMod2Vla2RheVN0eWxlKVt0aGlzLmdldERheU9mV2VlayhkYXRlISldO1xuICAgIHdlZWtkYXkgPSB3ZWVrZGF5LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd2Vla2RheS5zdWJzdHJpbmcoMSk7XG4gICAgLy8gV2UgaGF2ZSB0aGUgc3BlY2lhbCByZXF1aXJlbWVudCBmb3IgZGF0ZSBmb3JtYXRzIGF0IFNCQiwgd2hlcmUgdGhlIHNob3J0IGZvcm1cbiAgICAvLyBmb3Igd2Vla2RheXMgc2hvdWxkIGJlIHR3byBjaGFyYWN0ZXJzIGluIGxlbmd0aC5cbiAgICBpZiAod2Vla2RheVN0eWxlID09PSAnc2hvcnQnKSB7XG4gICAgICB3ZWVrZGF5ID0gd2Vla2RheS5zdWJzdHJpbmcoMCwgMik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3dlZWtkYXl9LCAke2RhdGVGb3JtYXR0ZXIuZm9ybWF0KHZhbHVlKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgb2JqYCBpcyBhIERhdGUuXG4gICAqIEBwYXJhbSBvYmogVGhlIG9iamVjdCB0byBjaGVjay5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBpc0RhdGVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEdldHMgZGF0ZSBpbnN0YW5jZSB0aGF0IGlzIG5vdCB2YWxpZC5cbiAgICogQHJldHVybnMgQW4gaW52YWxpZCBkYXRlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGludmFsaWQoKTogVDtcblxuICAvKipcbiAgICogR2V0IHRoZSBnaXZlbiBkYXRlIGFzIElTTyBTdHJpbmcuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGNvbnZlcnQgdG8gSVNPIFN0cmluZy5cbiAgICovXG4gIHB1YmxpYyB0b0lzbzg2MDEoZGF0ZTogVCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFkID0gKHZhbHVlOiBudW1iZXIsIGxlbmd0aCA9IDIpOiBzdHJpbmcgPT4gYCR7dmFsdWV9YC5wYWRTdGFydChsZW5ndGgsICcwJyk7XG4gICAgcmV0dXJuIGAke3BhZCh0aGlzLmdldFllYXIoZGF0ZSksIDQpfS0ke3BhZCh0aGlzLmdldE1vbnRoKGRhdGUpKX0tJHtwYWQodGhpcy5nZXREYXRlKGRhdGUpKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdpdmVuIGEgcG90ZW50aWFsIGRhdGUgb2JqZWN0LCByZXR1cm5zIHRoYXQgc2FtZSBkYXRlIG9iamVjdCBpZiBpdCBpc1xuICAgKiBhIHZhbGlkIGRhdGUsIG9yIGBudWxsYCBpZiBpdCdzIG5vdCBhIHZhbGlkIGRhdGUuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyBBIGRhdGUgb3IgYG51bGxgLlxuICAgKi9cbiAgcHVibGljIGdldFZhbGlkRGF0ZU9yTnVsbCh2YWx1ZTogdW5rbm93bik6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5pc0RhdGVJbnN0YW5jZSh2YWx1ZSkgJiYgdGhpcy5pc1ZhbGlkKHZhbHVlIGFzIFQpID8gKHZhbHVlIGFzIFQpIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBkYXkgb2YgdGhlIHdlZWsgb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGgsIGFuZCB0aGVuIGl0cyBvZmZzZXQgZnJvbSB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgKi9cbiAgcHVibGljIGdldEZpcnN0V2Vla09mZnNldChkYXRlOiBUKTogbnVtYmVyIHtcbiAgICBjb25zdCBmaXJzdE9mTW9udGggPSB0aGlzLmNyZWF0ZURhdGUodGhpcy5nZXRZZWFyKGRhdGUpLCB0aGlzLmdldE1vbnRoKGRhdGUpLCAxKSE7XG4gICAgcmV0dXJuIChcbiAgICAgIChEQVlTX1BFUl9ST1cgKyB0aGlzLmdldERheU9mV2VlayhmaXJzdE9mTW9udGgpIC0gdGhpcy5nZXRGaXJzdERheU9mV2VlaygpKSAlIERBWVNfUEVSX1JPV1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIGRhdGVzLlxuICAgKiBAcGFyYW0gZmlyc3QgVGhlIGZpcnN0IGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHJldHVybnMgMCBpZiB0aGUgZGF0ZXMgYXJlIGVxdWFsLCBhIG51bWJlciBsZXNzIHRoYW4gMCBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBlYXJsaWVyLFxuICAgKiAgICAgYSBudW1iZXIgZ3JlYXRlciB0aGFuIDAgaWYgdGhlIGZpcnN0IGRhdGUgaXMgbGF0ZXIuXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZURhdGUoZmlyc3Q6IFQsIHNlY29uZDogVCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZ2V0WWVhcihmaXJzdCkgLSB0aGlzLmdldFllYXIoc2Vjb25kKSB8fFxuICAgICAgdGhpcy5nZXRNb250aChmaXJzdCkgLSB0aGlzLmdldE1vbnRoKHNlY29uZCkgfHxcbiAgICAgIHRoaXMuZ2V0RGF0ZShmaXJzdCkgLSB0aGlzLmdldERhdGUoc2Vjb25kKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqIEBwYXJhbSBmaXJzdCBUaGUgZmlyc3QgZGF0ZSB0byBjaGVjay5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqICAgICBOdWxsIGRhdGVzIGFyZSBjb25zaWRlcmVkIGVxdWFsIHRvIG90aGVyIG51bGwgZGF0ZXMuXG4gICAqL1xuICBwdWJsaWMgc2FtZURhdGUoZmlyc3Q6IFQgfCBudWxsLCBzZWNvbmQ6IFQgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKGZpcnN0ICYmIHNlY29uZCkge1xuICAgICAgY29uc3QgZmlyc3RWYWxpZCA9IHRoaXMuaXNWYWxpZChmaXJzdCk7XG4gICAgICBjb25zdCBzZWNvbmRWYWxpZCA9IHRoaXMuaXNWYWxpZChzZWNvbmQpO1xuICAgICAgaWYgKGZpcnN0VmFsaWQgJiYgc2Vjb25kVmFsaWQpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXBhcmVEYXRlKGZpcnN0LCBzZWNvbmQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpcnN0VmFsaWQgPT0gc2Vjb25kVmFsaWQ7XG4gICAgfVxuICAgIHJldHVybiBmaXJzdCA9PSBzZWNvbmQ7XG4gIH1cblxuICAvKipcbiAgICogQ2xhbXAgdGhlIGdpdmVuIGRhdGUgYmV0d2VlbiBtaW4gYW5kIG1heCBkYXRlcy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY2xhbXAuXG4gICAqIEBwYXJhbSBtaW4gVGhlIG1pbmltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtaW4gaXMgZW5mb3JjZWQuXG4gICAqIEBwYXJhbSBtYXggVGhlIG1heGltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtYXggaXMgZW5mb3JjZWQuXG4gICAqIEByZXR1cm5zIGBtaW5gIGlmIGBkYXRlYCBpcyBsZXNzIHRoYW4gYG1pbmAsIGBtYXhgIGlmIGRhdGUgaXMgZ3JlYXRlciB0aGFuIGBtYXhgLFxuICAgKiAgICAgb3RoZXJ3aXNlIGBkYXRlYC5cbiAgICovXG4gIHB1YmxpYyBjbGFtcERhdGUoZGF0ZTogVCwgbWluPzogVCB8IG51bGwsIG1heD86IFQgfCBudWxsKTogVCB7XG4gICAgaWYgKG1pbiAmJiB0aGlzLmNvbXBhcmVEYXRlKGRhdGUsIG1pbikgPCAwKSB7XG4gICAgICByZXR1cm4gbWluO1xuICAgIH1cbiAgICBpZiAobWF4ICYmIHRoaXMuY29tcGFyZURhdGUoZGF0ZSwgbWF4KSA+IDApIHtcbiAgICAgIHJldHVybiBtYXg7XG4gICAgfVxuICAgIHJldHVybiBkYXRlO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQU8sTUFBTSxlQUF1QjtBQUM3QixNQUFNLGlCQUF5QjtBQUMvQixNQUFNLGdCQUF3QjtBQUM5QixNQUFNLGtCQUEwQjtBQUNoQyxNQUFNLGlCQUF5QjtBQUMvQixNQUFNLGNBQ1g7QUFDSyxNQUFNLHNCQUFzQjtNQU9iLFlBQVc7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFrRnhCLFlBQVksT0FBNkM7QUFFNUQsUUFBQSxTQUFTLFFBQ1IsS0FBSyxlQUFlLEtBQUssS0FBSyxLQUFLLFFBQVEsS0FBNkIsR0FDekU7QUFDTyxhQUFBO0FBQUEsSUFBQTtBQUVULFdBQU8sS0FBSyxRQUFPO0FBQUEsRUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQTZDZCxPQUNMLE1BQ0EsU0FBaUU7QUFFakUsUUFBSSxDQUFDLEtBQUssUUFBUSxJQUFJLEdBQUc7QUFDaEIsYUFBQTtBQUFBLElBQUE7QUFHVCxVQUFNLFFBQVksb0JBQUEsS0FBSyxLQUFLLFVBQVUsSUFBSyxJQUFJLFdBQVc7QUFDMUQsVUFBTSxnQkFBZ0IsSUFBSSxLQUFLLGVBQWUsU0FBUztBQUFBLE1BQ3JELEtBQUs7QUFBQSxNQUNMLE9BQU87QUFBQSxNQUNQLE1BQU07QUFBQSxJQUFBLENBQ1A7QUFFRyxTQUFBLG1DQUFTLGtCQUFpQixRQUFRO0FBQzdCLGFBQUEsY0FBYyxPQUFPLEtBQUs7QUFBQSxJQUFBO0FBRzdCLFVBQUEsZ0JBQWUsbUNBQVMsaUJBQWdCO0FBQzFDLFFBQUEsVUFBVSxLQUFLLGtCQUFrQixZQUFZLEVBQUUsS0FBSyxhQUFhLElBQUssQ0FBQztBQUNqRSxjQUFBLFFBQVEsT0FBTyxDQUFDLEVBQUUsZ0JBQWdCLFFBQVEsVUFBVSxDQUFDO0FBRy9ELFFBQUksaUJBQWlCLFNBQVM7QUFDbEIsZ0JBQUEsUUFBUSxVQUFVLEdBQUcsQ0FBQztBQUFBLElBQUE7QUFHbEMsV0FBTyxHQUFHLE9BQU8sS0FBSyxjQUFjLE9BQU8sS0FBSyxDQUFDO0FBQUEsRUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFtQjVDLFVBQVUsTUFBTztBQUNoQixVQUFBLE1BQU0sQ0FBQyxPQUFlLFNBQVMsTUFBYyxHQUFHLEtBQUssR0FBRyxTQUFTLFFBQVEsR0FBRztBQUMzRSxXQUFBLEdBQUcsSUFBSSxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUM7QUFBQSxFQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTdEYsbUJBQW1CLE9BQWM7QUFDL0IsV0FBQSxLQUFLLGVBQWUsS0FBSyxLQUFLLEtBQUssUUFBUSxLQUFVLElBQUssUUFBYztBQUFBLEVBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU0xRSxtQkFBbUIsTUFBTztBQUN6QixVQUFBLGVBQWUsS0FBSyxXQUFXLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxDQUFDO0FBQy9FLFlBQ0csZUFBZSxLQUFLLGFBQWEsWUFBWSxJQUFJLEtBQUssdUJBQXVCO0FBQUEsRUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFXM0UsWUFBWSxPQUFVLFFBQVM7QUFFbEMsV0FBQSxLQUFLLFFBQVEsS0FBSyxJQUFJLEtBQUssUUFBUSxNQUFNLEtBQ3pDLEtBQUssU0FBUyxLQUFLLElBQUksS0FBSyxTQUFTLE1BQU0sS0FDM0MsS0FBSyxRQUFRLEtBQUssSUFBSSxLQUFLLFFBQVEsTUFBTTtBQUFBLEVBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBV3RDLFNBQVMsT0FBaUIsUUFBZ0I7QUFDL0MsUUFBSSxTQUFTLFFBQVE7QUFDYixZQUFBLGFBQWEsS0FBSyxRQUFRLEtBQUs7QUFDL0IsWUFBQSxjQUFjLEtBQUssUUFBUSxNQUFNO0FBQ3ZDLFVBQUksY0FBYyxhQUFhO0FBQzdCLGVBQU8sQ0FBQyxLQUFLLFlBQVksT0FBTyxNQUFNO0FBQUEsTUFBQTtBQUV4QyxhQUFPLGNBQWM7QUFBQSxJQUFBO0FBRXZCLFdBQU8sU0FBUztBQUFBLEVBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFXWCxVQUFVLE1BQVMsS0FBZ0IsS0FBYztBQUN0RCxRQUFJLE9BQU8sS0FBSyxZQUFZLE1BQU0sR0FBRyxJQUFJLEdBQUc7QUFDbkMsYUFBQTtBQUFBLElBQUE7QUFFVCxRQUFJLE9BQU8sS0FBSyxZQUFZLE1BQU0sR0FBRyxJQUFJLEdBQUc7QUFDbkMsYUFBQTtBQUFBLElBQUE7QUFFRixXQUFBO0FBQUEsRUFBQTtBQUVWOyJ9
|