@sbb-esta/lyne-elements 1.12.1 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion.d.ts +4 -8
- package/accordion/accordion.d.ts.map +1 -1
- package/accordion.js +90 -81
- package/action-group/action-group.d.ts +5 -5
- package/action-group/action-group.d.ts.map +1 -1
- package/action-group.js +100 -50
- package/alert/alert/alert.d.ts +11 -11
- package/alert/alert/alert.d.ts.map +1 -1
- package/alert/alert-group/alert-group.d.ts +4 -4
- package/alert/alert-group/alert-group.d.ts.map +1 -1
- package/alert/alert-group.js +101 -69
- package/alert/alert.js +191 -104
- package/autocomplete/autocomplete-base-element.d.ts +3 -7
- package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/autocomplete/autocomplete.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -0
- package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-button.js +53 -60
- package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-cell.js +20 -22
- package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-optgroup.js +31 -35
- package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-option.js +45 -63
- package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-row.js +23 -25
- package/autocomplete-grid/autocomplete-grid.js +112 -133
- package/autocomplete.js +283 -295
- package/breadcrumb/breadcrumb/breadcrumb.d.ts +1 -1
- package/breadcrumb/breadcrumb/breadcrumb.d.ts.map +1 -1
- package/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
- package/breadcrumb/breadcrumb-group.js +107 -114
- package/breadcrumb/breadcrumb.js +44 -35
- package/button/button/button.d.ts.map +1 -1
- package/button/button-link/button-link.d.ts.map +1 -1
- package/button/button-link.js +15 -18
- package/button/button-static/button-static.d.ts.map +1 -1
- package/button/button-static.js +15 -18
- package/button/button.js +15 -18
- package/button/common/button-common.d.ts +4 -4
- package/button/common/button-common.d.ts.map +1 -1
- package/button/common.js +41 -30
- package/button/mini-button/mini-button-base-element.d.ts.map +1 -1
- package/button/mini-button/mini-button.d.ts.map +1 -1
- package/button/mini-button-group/mini-button-group.d.ts +2 -2
- package/button/mini-button-group/mini-button-group.d.ts.map +1 -1
- package/button/mini-button-group.js +55 -43
- package/button/mini-button.js +28 -32
- package/button/secondary-button/secondary-button.d.ts.map +1 -1
- package/button/secondary-button-link/secondary-button-link.d.ts.map +1 -1
- package/button/secondary-button-link.js +15 -18
- package/button/secondary-button-static/secondary-button-static.d.ts.map +1 -1
- package/button/secondary-button-static.js +15 -18
- package/button/secondary-button.js +15 -18
- package/button/tertiary-button/tertiary-button.d.ts.map +1 -1
- package/button/tertiary-button-link/tertiary-button-link.d.ts.map +1 -1
- package/button/tertiary-button-link.js +15 -18
- package/button/tertiary-button-static/tertiary-button-static.d.ts.map +1 -1
- package/button/tertiary-button-static.js +15 -18
- package/button/tertiary-button.js +15 -18
- package/button/transparent-button/transparent-button.d.ts.map +1 -1
- package/button/transparent-button-link/transparent-button-link.d.ts.map +1 -1
- package/button/transparent-button-link.js +15 -18
- package/button/transparent-button-static/transparent-button-static.d.ts.map +1 -1
- package/button/transparent-button-static.js +15 -18
- package/button/transparent-button.js +15 -18
- package/calendar/calendar.d.ts +7 -7
- package/calendar/calendar.d.ts.map +1 -1
- package/calendar.js +638 -692
- package/card/card/card.d.ts +2 -2
- package/card/card/card.d.ts.map +1 -1
- package/card/card-badge/card-badge.d.ts +1 -1
- package/card/card-badge/card-badge.d.ts.map +1 -1
- package/card/card-badge.js +45 -34
- package/card/card-button/card-button.d.ts.map +1 -1
- package/card/card-button.js +16 -16
- package/card/card-link/card-link.d.ts.map +1 -1
- package/card/card-link.js +17 -17
- package/card/card.js +55 -36
- package/card/common/card-action-common.d.ts +1 -1
- package/card/common/card-action-common.d.ts.map +1 -1
- package/card/common.js +27 -33
- package/checkbox/checkbox/checkbox.d.ts +3 -4
- package/checkbox/checkbox/checkbox.d.ts.map +1 -1
- package/checkbox/checkbox-group/checkbox-group.d.ts +4 -4
- package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/checkbox/checkbox-group.js +99 -76
- package/checkbox/checkbox-panel/checkbox-panel.d.ts +2 -3
- package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
- package/checkbox/checkbox-panel.js +51 -50
- package/checkbox/checkbox.js +54 -43
- package/checkbox/common/checkbox-common.d.ts +1 -1
- package/checkbox/common/checkbox-common.d.ts.map +1 -1
- package/checkbox/common.js +39 -24
- package/chip/chip.d.ts +2 -2
- package/chip/chip.d.ts.map +1 -1
- package/chip.js +45 -26
- package/clock/clock.d.ts +1 -1
- package/clock/clock.d.ts.map +1 -1
- package/clock.js +136 -144
- package/container/container/container.d.ts +3 -3
- package/container/container/container.d.ts.map +1 -1
- package/container/container.js +60 -35
- package/container/sticky-bar/sticky-bar.d.ts +1 -1
- package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
- package/container/sticky-bar.js +55 -47
- package/core/a11y.js +29 -51
- package/core/base-elements/action-base-element.d.ts.map +1 -1
- package/core/base-elements/button-base-element.d.ts +2 -2
- package/core/base-elements/button-base-element.d.ts.map +1 -1
- package/core/base-elements/link-base-element.d.ts +5 -5
- package/core/base-elements/link-base-element.d.ts.map +1 -1
- package/core/base-elements.js +243 -196
- package/core/controllers.js +8 -13
- package/core/decorators/base.d.ts +14 -0
- package/core/decorators/base.d.ts.map +1 -0
- package/core/decorators/force-type.d.ts +8 -0
- package/core/decorators/force-type.d.ts.map +1 -0
- package/core/decorators/get-override.d.ts +7 -0
- package/core/decorators/get-override.d.ts.map +1 -0
- package/core/decorators/handle-distinct-change.d.ts +8 -0
- package/core/decorators/handle-distinct-change.d.ts.map +1 -0
- package/core/decorators/omit-empty-converter.d.ts +8 -0
- package/core/decorators/omit-empty-converter.d.ts.map +1 -0
- package/core/decorators.d.ts +4 -0
- package/core/decorators.d.ts.map +1 -1
- package/core/decorators.js +59 -15
- package/core/dom.js +1 -5
- package/core/eventing.js +1 -4
- package/core/interfaces/paginator-page.d.ts +7 -0
- package/core/interfaces/paginator-page.d.ts.map +1 -0
- package/core/interfaces.d.ts +1 -0
- package/core/interfaces.d.ts.map +1 -1
- package/core/mixins/disabled-mixin.d.ts +2 -3
- package/core/mixins/disabled-mixin.d.ts.map +1 -1
- package/core/mixins/form-associated-checkbox-mixin.d.ts +1 -0
- package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
- package/core/mixins/form-associated-mixin.d.ts +6 -6
- package/core/mixins/form-associated-mixin.d.ts.map +1 -1
- package/core/mixins/named-slot-list-mixin.d.ts +1 -1
- package/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
- package/core/mixins/negative-mixin.d.ts +1 -1
- package/core/mixins/negative-mixin.d.ts.map +1 -1
- package/core/mixins/panel-mixin.d.ts +3 -3
- package/core/mixins/panel-mixin.d.ts.map +1 -1
- package/core/mixins/required-mixin.d.ts +2 -3
- package/core/mixins/required-mixin.d.ts.map +1 -1
- package/core/mixins.js +291 -242
- package/core/styles/mixins/buttons.scss +1 -1
- package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +4 -0
- package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +5 -1
- package/core/testing/private.d.ts +1 -0
- package/core/testing/private.d.ts.map +1 -1
- package/core/testing.js +7 -13
- package/core.css +5 -1
- package/custom-elements.json +14515 -13465
- package/datepicker/common/datepicker-button.d.ts +2 -2
- package/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/datepicker/common.js +110 -116
- package/datepicker/datepicker/datepicker.d.ts +6 -6
- package/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
- package/datepicker/datepicker-next-day.js +24 -26
- package/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
- package/datepicker/datepicker-previous-day.js +25 -27
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +6 -6
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/datepicker/datepicker-toggle.js +154 -136
- package/datepicker/datepicker.js +248 -213
- package/development/accordion/accordion.d.ts +4 -8
- package/development/accordion/accordion.d.ts.map +1 -1
- package/development/accordion.js +118 -93
- package/development/action-group/action-group.d.ts +5 -5
- package/development/action-group/action-group.d.ts.map +1 -1
- package/development/action-group.js +138 -64
- package/development/alert/alert/alert.d.ts +11 -11
- package/development/alert/alert/alert.d.ts.map +1 -1
- package/development/alert/alert-group/alert-group.d.ts +4 -4
- package/development/alert/alert-group/alert-group.d.ts.map +1 -1
- package/development/alert/alert-group.js +135 -79
- package/development/alert/alert.js +259 -109
- package/development/autocomplete/autocomplete-base-element.d.ts +3 -7
- package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/development/autocomplete/autocomplete.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -0
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-button.js +75 -76
- package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-cell.js +24 -24
- package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-optgroup.js +38 -39
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-option.js +57 -73
- package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-row.js +28 -28
- package/development/autocomplete-grid/autocomplete-grid.js +142 -160
- package/development/autocomplete.js +394 -393
- package/development/breadcrumb/breadcrumb/breadcrumb.d.ts +1 -1
- package/development/breadcrumb/breadcrumb/breadcrumb.d.ts.map +1 -1
- package/development/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
- package/development/breadcrumb/breadcrumb-group.js +130 -130
- package/development/breadcrumb/breadcrumb.js +53 -36
- package/development/button/button/button.d.ts.map +1 -1
- package/development/button/button-link/button-link.d.ts.map +1 -1
- package/development/button/button-link.js +18 -19
- package/development/button/button-static/button-static.d.ts.map +1 -1
- package/development/button/button-static.js +18 -19
- package/development/button/button.js +18 -19
- package/development/button/common/button-common.d.ts +4 -4
- package/development/button/common/button-common.d.ts.map +1 -1
- package/development/button/common.js +51 -30
- package/development/button/mini-button/mini-button-base-element.d.ts.map +1 -1
- package/development/button/mini-button/mini-button.d.ts.map +1 -1
- package/development/button/mini-button-group/mini-button-group.d.ts +2 -2
- package/development/button/mini-button-group/mini-button-group.d.ts.map +1 -1
- package/development/button/mini-button-group.js +77 -50
- package/development/button/mini-button.js +39 -38
- package/development/button/secondary-button/secondary-button.d.ts.map +1 -1
- package/development/button/secondary-button-link/secondary-button-link.d.ts.map +1 -1
- package/development/button/secondary-button-link.js +18 -19
- package/development/button/secondary-button-static/secondary-button-static.d.ts.map +1 -1
- package/development/button/secondary-button-static.js +18 -19
- package/development/button/secondary-button.js +18 -19
- package/development/button/tertiary-button/tertiary-button.d.ts.map +1 -1
- package/development/button/tertiary-button-link/tertiary-button-link.d.ts.map +1 -1
- package/development/button/tertiary-button-link.js +18 -19
- package/development/button/tertiary-button-static/tertiary-button-static.d.ts.map +1 -1
- package/development/button/tertiary-button-static.js +18 -19
- package/development/button/tertiary-button.js +18 -19
- package/development/button/transparent-button/transparent-button.d.ts.map +1 -1
- package/development/button/transparent-button-link/transparent-button-link.d.ts.map +1 -1
- package/development/button/transparent-button-link.js +18 -19
- package/development/button/transparent-button-static/transparent-button-static.d.ts.map +1 -1
- package/development/button/transparent-button-static.js +18 -19
- package/development/button/transparent-button.js +18 -19
- package/development/calendar/calendar.d.ts +7 -7
- package/development/calendar/calendar.d.ts.map +1 -1
- package/development/calendar.js +768 -766
- package/development/card/card/card.d.ts +2 -2
- package/development/card/card/card.d.ts.map +1 -1
- package/development/card/card-badge/card-badge.d.ts +1 -1
- package/development/card/card-badge/card-badge.d.ts.map +1 -1
- package/development/card/card-badge.js +65 -45
- package/development/card/card-button/card-button.d.ts.map +1 -1
- package/development/card/card-button.js +23 -20
- package/development/card/card-link/card-link.d.ts.map +1 -1
- package/development/card/card-link.js +23 -20
- package/development/card/card.js +72 -41
- package/development/card/common/card-action-common.d.ts +1 -1
- package/development/card/common/card-action-common.d.ts.map +1 -1
- package/development/card/common.js +74 -73
- package/development/checkbox/checkbox/checkbox.d.ts +3 -4
- package/development/checkbox/checkbox/checkbox.d.ts.map +1 -1
- package/development/checkbox/checkbox-group/checkbox-group.d.ts +4 -4
- package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/development/checkbox/checkbox-group.js +139 -92
- package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +2 -3
- package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
- package/development/checkbox/checkbox-panel.js +68 -60
- package/development/checkbox/checkbox.js +69 -46
- package/development/checkbox/common/checkbox-common.d.ts +1 -1
- package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
- package/development/checkbox/common.js +65 -46
- package/development/chip/chip.d.ts +2 -2
- package/development/chip/chip.d.ts.map +1 -1
- package/development/chip.js +64 -33
- package/development/clock/clock.d.ts +1 -1
- package/development/clock/clock.d.ts.map +1 -1
- package/development/clock.js +203 -201
- package/development/container/container/container.d.ts +3 -3
- package/development/container/container/container.d.ts.map +1 -1
- package/development/container/container.js +86 -45
- package/development/container/sticky-bar/sticky-bar.d.ts +1 -1
- package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
- package/development/container/sticky-bar.js +76 -58
- package/development/core/a11y.js +40 -62
- package/development/core/base-elements/action-base-element.d.ts.map +1 -1
- package/development/core/base-elements/button-base-element.d.ts +2 -2
- package/development/core/base-elements/button-base-element.d.ts.map +1 -1
- package/development/core/base-elements/link-base-element.d.ts +5 -5
- package/development/core/base-elements/link-base-element.d.ts.map +1 -1
- package/development/core/base-elements.js +329 -226
- package/development/core/config.js +1 -1
- package/development/core/controllers.js +13 -21
- package/development/core/datetime.js +1 -1
- package/development/core/decorators/base.d.ts +14 -0
- package/development/core/decorators/base.d.ts.map +1 -0
- package/development/core/decorators/force-type.d.ts +8 -0
- package/development/core/decorators/force-type.d.ts.map +1 -0
- package/development/core/decorators/get-override.d.ts +7 -0
- package/development/core/decorators/get-override.d.ts.map +1 -0
- package/development/core/decorators/handle-distinct-change.d.ts +8 -0
- package/development/core/decorators/handle-distinct-change.d.ts.map +1 -0
- package/development/core/decorators/omit-empty-converter.d.ts +8 -0
- package/development/core/decorators/omit-empty-converter.d.ts.map +1 -0
- package/development/core/decorators.d.ts +4 -0
- package/development/core/decorators.d.ts.map +1 -1
- package/development/core/decorators.js +69 -5
- package/development/core/dom.js +2 -6
- package/development/core/eventing.js +2 -5
- package/development/core/i18n.js +1 -1
- package/development/core/interfaces/paginator-page.d.ts +7 -0
- package/development/core/interfaces/paginator-page.d.ts.map +1 -0
- package/development/core/interfaces.d.ts +1 -0
- package/development/core/interfaces.d.ts.map +1 -1
- package/development/core/mixins/disabled-mixin.d.ts +2 -3
- package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
- package/development/core/mixins/form-associated-checkbox-mixin.d.ts +1 -0
- package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
- package/development/core/mixins/form-associated-mixin.d.ts +6 -6
- package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
- package/development/core/mixins/named-slot-list-mixin.d.ts +1 -1
- package/development/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
- package/development/core/mixins/negative-mixin.d.ts +1 -1
- package/development/core/mixins/negative-mixin.d.ts.map +1 -1
- package/development/core/mixins/panel-mixin.d.ts +3 -3
- package/development/core/mixins/panel-mixin.d.ts.map +1 -1
- package/development/core/mixins/required-mixin.d.ts +2 -3
- package/development/core/mixins/required-mixin.d.ts.map +1 -1
- package/development/core/mixins.js +573 -478
- package/development/core/observers.js +1 -1
- package/development/core/overlay.js +1 -1
- package/development/core/testing/private.d.ts +1 -0
- package/development/core/testing/private.d.ts.map +1 -1
- package/development/core/testing.js +16 -22
- package/development/datepicker/common/datepicker-button.d.ts +2 -2
- package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/development/datepicker/common.js +144 -142
- package/development/datepicker/datepicker/datepicker.d.ts +6 -6
- package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/development/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
- package/development/datepicker/datepicker-next-day.js +33 -33
- package/development/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
- package/development/datepicker/datepicker-previous-day.js +33 -33
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +6 -6
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/development/datepicker/datepicker-toggle.js +227 -174
- package/development/datepicker/datepicker.js +327 -249
- package/development/dialog/dialog/dialog.d.ts +1 -1
- package/development/dialog/dialog/dialog.d.ts.map +1 -1
- package/development/dialog/dialog-actions/dialog-actions.d.ts.map +1 -1
- package/development/dialog/dialog-actions.js +21 -20
- package/development/dialog/dialog-content/dialog-content.d.ts.map +1 -1
- package/development/dialog/dialog-content.js +22 -21
- package/development/dialog/dialog-title/dialog-title.d.ts +3 -3
- package/development/dialog/dialog-title/dialog-title.d.ts.map +1 -1
- package/development/dialog/dialog-title.js +121 -66
- package/development/dialog/dialog.js +205 -191
- package/development/divider/divider.d.ts +1 -1
- package/development/divider/divider.d.ts.map +1 -1
- package/development/divider.js +55 -36
- package/development/expansion-panel/expansion-panel/expansion-panel.d.ts +4 -4
- package/development/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
- package/development/expansion-panel/expansion-panel-content/expansion-panel-content.d.ts.map +1 -1
- package/development/expansion-panel/expansion-panel-content.js +25 -25
- package/development/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts.map +1 -1
- package/development/expansion-panel/expansion-panel-header.js +56 -63
- package/development/expansion-panel/expansion-panel.js +227 -182
- package/development/file-selector/file-selector.d.ts +26 -15
- package/development/file-selector/file-selector.d.ts.map +1 -1
- package/development/file-selector.js +305 -172
- package/development/flip-card/flip-card/flip-card.d.ts +2 -2
- package/development/flip-card/flip-card/flip-card.d.ts.map +1 -1
- package/development/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
- package/development/flip-card/flip-card-details.js +39 -39
- package/development/flip-card/flip-card-summary/flip-card-summary.d.ts +1 -1
- package/development/flip-card/flip-card-summary/flip-card-summary.d.ts.map +1 -1
- package/development/flip-card/flip-card-summary.js +57 -38
- package/development/flip-card/flip-card.js +110 -78
- package/development/footer/footer.d.ts +4 -4
- package/development/footer/footer.d.ts.map +1 -1
- package/development/footer.js +103 -41
- package/development/form-error/form-error.d.ts.map +1 -1
- package/development/form-error.js +29 -28
- package/development/form-field/form-field/form-field.d.ts +10 -10
- package/development/form-field/form-field/form-field.d.ts.map +1 -1
- package/development/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
- package/development/form-field/form-field-clear.js +51 -51
- package/development/form-field/form-field.js +439 -328
- package/development/header/common/header-action-common.d.ts +2 -2
- package/development/header/common/header-action-common.d.ts.map +1 -1
- package/development/header/common.js +95 -28
- package/development/header/header/header.d.ts +4 -4
- package/development/header/header/header.d.ts.map +1 -1
- package/development/header/header-button/header-button.d.ts.map +1 -1
- package/development/header/header-button.js +19 -18
- package/development/header/header-link/header-link.d.ts.map +1 -1
- package/development/header/header-link.js +19 -16
- package/development/header/header.js +198 -140
- package/development/icon/icon-base.d.ts +3 -4
- package/development/icon/icon-base.d.ts.map +1 -1
- package/development/icon/icon-name-mixin.d.ts +1 -1
- package/development/icon/icon-name-mixin.d.ts.map +1 -1
- package/development/icon/icon.d.ts +2 -2
- package/development/icon/icon.d.ts.map +1 -1
- package/development/icon.js +258 -157
- package/development/image/image.d.ts +17 -17
- package/development/image/image.d.ts.map +1 -1
- package/development/image.js +584 -216
- package/development/journey-header/journey-header.d.ts +5 -5
- package/development/journey-header/journey-header.d.ts.map +1 -1
- package/development/journey-header.js +115 -43
- package/development/lead-container/lead-container.d.ts.map +1 -1
- package/development/lead-container.js +22 -21
- package/development/link/block-link/block-link.d.ts.map +1 -1
- package/development/link/block-link-button/block-link-button.d.ts.map +1 -1
- package/development/link/block-link-button.js +19 -18
- package/development/link/block-link-static/block-link-static.d.ts.map +1 -1
- package/development/link/block-link-static.js +19 -18
- package/development/link/block-link.js +19 -18
- package/development/link/common/block-link-common.d.ts +4 -3
- package/development/link/common/block-link-common.d.ts.map +1 -1
- package/development/link/common/link-common.d.ts +1 -1
- package/development/link/common/link-common.d.ts.map +1 -1
- package/development/link/common.js +81 -51
- package/development/link/link/link.d.ts.map +1 -1
- package/development/link/link-button/link-button.d.ts.map +1 -1
- package/development/link/link-button.js +19 -18
- package/development/link/link-static/link-static.d.ts.map +1 -1
- package/development/link/link-static.js +19 -18
- package/development/link/link.js +19 -18
- package/development/link-list/common/link-list-base.d.ts +3 -3
- package/development/link-list/common/link-list-base.d.ts.map +1 -1
- package/development/link-list/common.js +97 -48
- package/development/link-list/link-list/link-list.d.ts +2 -2
- package/development/link-list/link-list/link-list.d.ts.map +1 -1
- package/development/link-list/link-list-anchor/link-list-anchor.d.ts.map +1 -1
- package/development/link-list/link-list-anchor.js +18 -17
- package/development/link-list/link-list.js +60 -28
- package/development/loading-indicator/loading-indicator.d.ts +3 -3
- package/development/loading-indicator/loading-indicator.d.ts.map +1 -1
- package/development/loading-indicator.js +83 -45
- package/development/logo/logo.d.ts +2 -2
- package/development/logo/logo.d.ts.map +1 -1
- package/development/logo.js +64 -32
- package/development/map-container/map-container.d.ts +2 -2
- package/development/map-container/map-container.d.ts.map +1 -1
- package/development/map-container.js +107 -75
- package/development/menu/common/menu-action-common.d.ts +2 -2
- package/development/menu/common/menu-action-common.d.ts.map +1 -1
- package/development/menu/common.js +41 -20
- package/development/menu/menu/menu.d.ts +1 -1
- package/development/menu/menu/menu.d.ts.map +1 -1
- package/development/menu/menu-button/menu-button.d.ts.map +1 -1
- package/development/menu/menu-button.js +19 -18
- package/development/menu/menu-link/menu-link.d.ts.map +1 -1
- package/development/menu/menu-link.js +19 -18
- package/development/menu/menu.js +261 -241
- package/development/message/message.d.ts +2 -2
- package/development/message/message.d.ts.map +1 -1
- package/development/message.js +65 -32
- package/development/navigation/common/navigation-action-common.d.ts +1 -1
- package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
- package/development/navigation/common.js +63 -52
- package/development/navigation/navigation/navigation.d.ts +2 -2
- package/development/navigation/navigation/navigation.d.ts.map +1 -1
- package/development/navigation/navigation-button/navigation-button.d.ts.map +1 -1
- package/development/navigation/navigation-button.js +19 -18
- package/development/navigation/navigation-link/navigation-link.d.ts.map +1 -1
- package/development/navigation/navigation-link.js +19 -18
- package/development/navigation/navigation-list/navigation-list.d.ts +1 -1
- package/development/navigation/navigation-list/navigation-list.d.ts.map +1 -1
- package/development/navigation/navigation-list.js +64 -41
- package/development/navigation/navigation-marker/navigation-marker.d.ts +1 -1
- package/development/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
- package/development/navigation/navigation-marker.js +108 -91
- package/development/navigation/navigation-section/navigation-section.d.ts +3 -3
- package/development/navigation/navigation-section/navigation-section.d.ts.map +1 -1
- package/development/navigation/navigation-section.js +282 -236
- package/development/navigation/navigation.js +278 -254
- package/development/notification/notification.d.ts +6 -6
- package/development/notification/notification.d.ts.map +1 -1
- package/development/notification.js +212 -146
- package/development/option/optgroup/optgroup-base-element.d.ts +3 -3
- package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
- package/development/option/optgroup/optgroup.d.ts.map +1 -1
- package/development/option/optgroup.js +187 -142
- package/development/option/option/option-base-element.d.ts +7 -7
- package/development/option/option/option-base-element.d.ts.map +1 -1
- package/development/option/option/option.d.ts.map +1 -1
- package/development/option/option.js +392 -296
- package/development/overlay/overlay-base-element.d.ts +1 -1
- package/development/overlay/overlay-base-element.d.ts.map +1 -1
- package/development/overlay/overlay.d.ts +4 -4
- package/development/overlay/overlay.d.ts.map +1 -1
- package/development/overlay.js +260 -207
- package/development/paginator/common/paginator-common.d.ts +26 -0
- package/development/paginator/common/paginator-common.d.ts.map +1 -0
- package/development/paginator/common.d.ts +2 -0
- package/development/paginator/common.d.ts.map +1 -0
- package/development/paginator/common.js +189 -0
- package/development/paginator/compact-paginator/compact-paginator.d.ts +20 -0
- package/development/paginator/compact-paginator/compact-paginator.d.ts.map +1 -0
- package/development/paginator/compact-paginator.d.ts +2 -0
- package/development/paginator/compact-paginator.d.ts.map +1 -0
- package/development/paginator/compact-paginator.js +96 -0
- package/development/paginator/paginator/paginator.d.ts +51 -0
- package/development/paginator/paginator/paginator.d.ts.map +1 -0
- package/development/paginator/paginator.d.ts +1 -90
- package/development/paginator/paginator.d.ts.map +1 -1
- package/development/paginator/paginator.js +449 -0
- package/development/paginator.d.ts +2 -0
- package/development/paginator.d.ts.map +1 -1
- package/development/paginator.js +4 -519
- package/development/popover/popover/popover.d.ts +6 -7
- package/development/popover/popover/popover.d.ts.map +1 -1
- package/development/popover/popover-trigger/popover-trigger.d.ts.map +1 -1
- package/development/popover/popover-trigger.js +29 -30
- package/development/popover/popover.js +358 -303
- package/development/radio-button/common/radio-button-common.d.ts +1 -1
- package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
- package/development/radio-button/common.js +170 -127
- package/development/radio-button/radio-button/radio-button.d.ts +2 -6
- package/development/radio-button/radio-button/radio-button.d.ts.map +1 -1
- package/development/radio-button/radio-button-group/radio-button-group.d.ts +6 -6
- package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/development/radio-button/radio-button-group.js +269 -199
- package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +2 -6
- package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
- package/development/radio-button/radio-button-panel.js +60 -48
- package/development/radio-button/radio-button.js +54 -40
- package/development/screen-reader-only/screen-reader-only.d.ts.map +1 -1
- package/development/screen-reader-only.js +22 -21
- package/development/select/select.d.ts +17 -9
- package/development/select/select.d.ts.map +1 -1
- package/development/select.js +557 -524
- package/development/selection-expansion-panel/selection-expansion-panel.d.ts +3 -3
- package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
- package/development/selection-expansion-panel.js +223 -193
- package/development/signet/signet.d.ts +2 -2
- package/development/signet/signet.d.ts.map +1 -1
- package/development/signet.js +65 -33
- package/development/skiplink-list/skiplink-list.d.ts +2 -2
- package/development/skiplink-list/skiplink-list.d.ts.map +1 -1
- package/development/skiplink-list.js +74 -41
- package/development/slider/slider.d.ts +7 -5
- package/development/slider/slider.d.ts.map +1 -1
- package/development/slider.js +260 -181
- package/development/status/status.d.ts +3 -3
- package/development/status/status.d.ts.map +1 -1
- package/development/status.js +96 -51
- package/development/stepper/step/step.d.ts.map +1 -1
- package/development/stepper/step-label/step-label.d.ts.map +1 -1
- package/development/stepper/step-label.js +86 -90
- package/development/stepper/step.js +122 -126
- package/development/stepper/stepper/stepper.d.ts +3 -3
- package/development/stepper/stepper/stepper.d.ts.map +1 -1
- package/development/stepper/stepper.js +291 -241
- package/development/table/table-wrapper/table-wrapper.d.ts.map +1 -1
- package/development/table/table-wrapper.js +37 -39
- package/development/tabs/tab/tab.d.ts.map +1 -1
- package/development/tabs/tab-group/tab-group.d.ts +2 -2
- package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
- package/development/tabs/tab-group.js +296 -279
- package/development/tabs/tab-label/tab-label.d.ts +3 -3
- package/development/tabs/tab-label/tab-label.d.ts.map +1 -1
- package/development/tabs/tab-label.js +83 -37
- package/development/tabs/tab.js +40 -39
- package/development/tag/tag/tag.d.ts +3 -5
- package/development/tag/tag/tag.d.ts.map +1 -1
- package/development/tag/tag-group/tag-group.d.ts +3 -3
- package/development/tag/tag-group/tag-group.d.ts.map +1 -1
- package/development/tag/tag-group.js +143 -88
- package/development/tag/tag.js +126 -89
- package/development/teaser/teaser.d.ts +4 -4
- package/development/teaser/teaser.d.ts.map +1 -1
- package/development/teaser-hero/teaser-hero.d.ts +3 -3
- package/development/teaser-hero/teaser-hero.d.ts.map +1 -1
- package/development/teaser-hero.js +83 -36
- package/development/teaser-product/common/teaser-product-common.d.ts +1 -1
- package/development/teaser-product/common/teaser-product-common.d.ts.map +1 -1
- package/development/teaser-product/common.js +51 -26
- package/development/teaser-product/teaser-product/teaser-product.d.ts.map +1 -1
- package/development/teaser-product/teaser-product-static/teaser-product-static.d.ts.map +1 -1
- package/development/teaser-product/teaser-product-static.js +18 -19
- package/development/teaser-product/teaser-product.js +18 -19
- package/development/teaser.js +94 -40
- package/development/time-input/time-input.d.ts +1 -1
- package/development/time-input/time-input.d.ts.map +1 -1
- package/development/time-input.js +225 -219
- package/development/timetable-occupancy/timetable-occupancy.d.ts +2 -2
- package/development/timetable-occupancy/timetable-occupancy.d.ts.map +1 -1
- package/development/timetable-occupancy-icon/timetable-occupancy-icon.d.ts +1 -1
- package/development/timetable-occupancy-icon/timetable-occupancy-icon.d.ts.map +1 -1
- package/development/timetable-occupancy-icon.js +78 -57
- package/development/timetable-occupancy.js +67 -35
- package/development/title/title-base.d.ts +3 -3
- package/development/title/title-base.d.ts.map +1 -1
- package/development/title/title.d.ts.map +1 -1
- package/development/title.js +106 -58
- package/development/toast/toast.d.ts +4 -4
- package/development/toast/toast.d.ts.map +1 -1
- package/development/toast.js +204 -146
- package/development/toggle/toggle/toggle.d.ts +3 -5
- package/development/toggle/toggle/toggle.d.ts.map +1 -1
- package/development/toggle/toggle-option/toggle-option.d.ts +2 -2
- package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
- package/development/toggle/toggle-option.js +127 -93
- package/development/toggle/toggle.js +200 -163
- package/development/toggle-check/toggle-check.d.ts +4 -3
- package/development/toggle-check/toggle-check.d.ts.map +1 -1
- package/development/toggle-check.js +87 -49
- package/development/train/train/train.d.ts +5 -5
- package/development/train/train/train.d.ts.map +1 -1
- package/development/train/train-blocked-passage/train-blocked-passage.d.ts.map +1 -1
- package/development/train/train-blocked-passage.js +22 -21
- package/development/train/train-formation/train-formation.d.ts +2 -2
- package/development/train/train-formation/train-formation.d.ts.map +1 -1
- package/development/train/train-formation.js +113 -90
- package/development/train/train-wagon/train-wagon.d.ts +7 -9
- package/development/train/train-wagon/train-wagon.d.ts.map +1 -1
- package/development/train/train-wagon.js +166 -87
- package/development/train/train.js +142 -75
- package/development/visual-checkbox/visual-checkbox.d.ts +3 -3
- package/development/visual-checkbox/visual-checkbox.d.ts.map +1 -1
- package/development/visual-checkbox.js +79 -36
- package/dialog/dialog/dialog.d.ts +1 -1
- package/dialog/dialog/dialog.d.ts.map +1 -1
- package/dialog/dialog-actions/dialog-actions.d.ts.map +1 -1
- package/dialog/dialog-actions.js +18 -19
- package/dialog/dialog-content/dialog-content.d.ts.map +1 -1
- package/dialog/dialog-content.js +17 -18
- package/dialog/dialog-title/dialog-title.d.ts +3 -3
- package/dialog/dialog-title/dialog-title.d.ts.map +1 -1
- package/dialog/dialog-title.js +98 -66
- package/dialog/dialog.js +120 -114
- package/divider/divider.d.ts +1 -1
- package/divider/divider.d.ts.map +1 -1
- package/divider.js +41 -30
- package/expansion-panel/expansion-panel/expansion-panel.d.ts +4 -4
- package/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
- package/expansion-panel/expansion-panel-content/expansion-panel-content.d.ts.map +1 -1
- package/expansion-panel/expansion-panel-content.js +20 -22
- package/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts.map +1 -1
- package/expansion-panel/expansion-panel-header.js +53 -61
- package/expansion-panel/expansion-panel.js +145 -130
- package/file-selector/file-selector.d.ts +26 -15
- package/file-selector/file-selector.d.ts.map +1 -1
- package/file-selector.js +227 -153
- package/flip-card/flip-card/flip-card.d.ts +2 -2
- package/flip-card/flip-card/flip-card.d.ts.map +1 -1
- package/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
- package/flip-card/flip-card-details.js +36 -38
- package/flip-card/flip-card-summary/flip-card-summary.d.ts +1 -1
- package/flip-card/flip-card-summary/flip-card-summary.d.ts.map +1 -1
- package/flip-card/flip-card-summary.js +42 -31
- package/flip-card/flip-card.js +88 -69
- package/footer/footer.d.ts +4 -4
- package/footer/footer.d.ts.map +1 -1
- package/footer.js +78 -37
- package/form-error/form-error.d.ts.map +1 -1
- package/form-error.js +24 -25
- package/form-field/form-field/form-field.d.ts +10 -10
- package/form-field/form-field/form-field.d.ts.map +1 -1
- package/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
- package/form-field/form-field-clear.js +39 -41
- package/form-field/form-field.js +295 -239
- package/header/common/header-action-common.d.ts +2 -2
- package/header/common/header-action-common.d.ts.map +1 -1
- package/header/common.js +36 -21
- package/header/header/header.d.ts +4 -4
- package/header/header/header.d.ts.map +1 -1
- package/header/header-button/header-button.d.ts.map +1 -1
- package/header/header-button.js +14 -16
- package/header/header-link/header-link.d.ts.map +1 -1
- package/header/header-link.js +14 -14
- package/header/header.js +138 -109
- package/icon/icon-base.d.ts +3 -4
- package/icon/icon-base.d.ts.map +1 -1
- package/icon/icon-name-mixin.d.ts +1 -1
- package/icon/icon-name-mixin.d.ts.map +1 -1
- package/icon/icon.d.ts +2 -2
- package/icon/icon.d.ts.map +1 -1
- package/icon.js +230 -165
- package/image/image.d.ts +17 -17
- package/image/image.d.ts.map +1 -1
- package/image.js +465 -195
- package/index.d.ts +3 -1
- package/index.js +3 -1
- package/journey-header/journey-header.d.ts +5 -5
- package/journey-header/journey-header.d.ts.map +1 -1
- package/journey-header.js +89 -49
- package/lead-container/lead-container.d.ts.map +1 -1
- package/lead-container.js +17 -18
- package/link/block-link/block-link.d.ts.map +1 -1
- package/link/block-link-button/block-link-button.d.ts.map +1 -1
- package/link/block-link-button.js +15 -17
- package/link/block-link-static/block-link-static.d.ts.map +1 -1
- package/link/block-link-static.js +14 -16
- package/link/block-link.js +15 -17
- package/link/common/block-link-common.d.ts +4 -3
- package/link/common/block-link-common.d.ts.map +1 -1
- package/link/common/link-common.d.ts +1 -1
- package/link/common/link-common.d.ts.map +1 -1
- package/link/common.js +64 -46
- package/link/link/link.d.ts.map +1 -1
- package/link/link-button/link-button.d.ts.map +1 -1
- package/link/link-button.js +15 -17
- package/link/link-static/link-static.d.ts.map +1 -1
- package/link/link-static.js +15 -17
- package/link/link.js +15 -17
- package/link-list/common/link-list-base.d.ts +3 -3
- package/link-list/common/link-list-base.d.ts.map +1 -1
- package/link-list/common.js +72 -44
- package/link-list/link-list/link-list.d.ts +2 -2
- package/link-list/link-list/link-list.d.ts.map +1 -1
- package/link-list/link-list-anchor/link-list-anchor.d.ts.map +1 -1
- package/link-list/link-list-anchor.js +15 -16
- package/link-list/link-list.js +43 -24
- package/loading-indicator/loading-indicator.d.ts +3 -3
- package/loading-indicator/loading-indicator.d.ts.map +1 -1
- package/loading-indicator.js +61 -36
- package/logo/logo.d.ts +2 -2
- package/logo/logo.d.ts.map +1 -1
- package/logo.js +47 -27
- package/map-container/map-container.d.ts +2 -2
- package/map-container/map-container.d.ts.map +1 -1
- package/map-container.js +84 -65
- package/menu/common/menu-action-common.d.ts +2 -2
- package/menu/common/menu-action-common.d.ts.map +1 -1
- package/menu/common.js +37 -22
- package/menu/menu/menu.d.ts +1 -1
- package/menu/menu/menu.d.ts.map +1 -1
- package/menu/menu-button/menu-button.d.ts.map +1 -1
- package/menu/menu-button.js +14 -16
- package/menu/menu-link/menu-link.d.ts.map +1 -1
- package/menu/menu-link.js +15 -17
- package/menu/menu.js +175 -170
- package/message/message.d.ts +2 -2
- package/message/message.d.ts.map +1 -1
- package/message.js +47 -27
- package/navigation/common/navigation-action-common.d.ts +1 -1
- package/navigation/common/navigation-action-common.d.ts.map +1 -1
- package/navigation/common.js +38 -33
- package/navigation/navigation/navigation.d.ts +2 -2
- package/navigation/navigation/navigation.d.ts.map +1 -1
- package/navigation/navigation-button/navigation-button.d.ts.map +1 -1
- package/navigation/navigation-button.js +14 -16
- package/navigation/navigation-link/navigation-link.d.ts.map +1 -1
- package/navigation/navigation-link.js +14 -16
- package/navigation/navigation-list/navigation-list.d.ts +1 -1
- package/navigation/navigation-list/navigation-list.d.ts.map +1 -1
- package/navigation/navigation-list.js +48 -35
- package/navigation/navigation-marker/navigation-marker.d.ts +1 -1
- package/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
- package/navigation/navigation-marker.js +77 -69
- package/navigation/navigation-section/navigation-section.d.ts +3 -3
- package/navigation/navigation-section/navigation-section.d.ts.map +1 -1
- package/navigation/navigation-section.js +192 -171
- package/navigation/navigation.js +185 -181
- package/notification/notification.d.ts +6 -6
- package/notification/notification.d.ts.map +1 -1
- package/notification.js +147 -116
- package/option/optgroup/optgroup-base-element.d.ts +3 -3
- package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
- package/option/optgroup/optgroup.d.ts.map +1 -1
- package/option/optgroup.js +131 -112
- package/option/option/option-base-element.d.ts +7 -7
- package/option/option/option-base-element.d.ts.map +1 -1
- package/option/option/option.d.ts.map +1 -1
- package/option/option.js +295 -252
- package/overlay/overlay-base-element.d.ts +1 -1
- package/overlay/overlay-base-element.d.ts.map +1 -1
- package/overlay/overlay.d.ts +4 -4
- package/overlay/overlay.d.ts.map +1 -1
- package/overlay.js +194 -165
- package/package.json +19 -3
- package/paginator/common/paginator-common.d.ts +26 -0
- package/paginator/common/paginator-common.d.ts.map +1 -0
- package/paginator/common.d.ts +2 -0
- package/paginator/common.d.ts.map +1 -0
- package/paginator/common.js +145 -0
- package/paginator/compact-paginator/compact-paginator.d.ts +20 -0
- package/paginator/compact-paginator/compact-paginator.d.ts.map +1 -0
- package/paginator/compact-paginator.d.ts +2 -0
- package/paginator/compact-paginator.d.ts.map +1 -0
- package/paginator/compact-paginator.js +40 -0
- package/paginator/paginator/paginator.d.ts +51 -0
- package/paginator/paginator/paginator.d.ts.map +1 -0
- package/paginator/paginator.d.ts +1 -90
- package/paginator/paginator.d.ts.map +1 -1
- package/paginator/paginator.js +171 -0
- package/paginator.d.ts +2 -0
- package/paginator.d.ts.map +1 -1
- package/paginator.js +3 -263
- package/popover/popover/popover.d.ts +6 -7
- package/popover/popover/popover.d.ts.map +1 -1
- package/popover/popover-trigger/popover-trigger.d.ts.map +1 -1
- package/popover/popover-trigger.js +26 -29
- package/popover/popover.js +230 -208
- package/radio-button/common/radio-button-common.d.ts +1 -1
- package/radio-button/common/radio-button-common.d.ts.map +1 -1
- package/radio-button/common.js +67 -43
- package/radio-button/radio-button/radio-button.d.ts +2 -6
- package/radio-button/radio-button/radio-button.d.ts.map +1 -1
- package/radio-button/radio-button-group/radio-button-group.d.ts +6 -6
- package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/radio-button/radio-button-group.js +192 -156
- package/radio-button/radio-button-panel/radio-button-panel.d.ts +2 -6
- package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
- package/radio-button/radio-button-panel.js +49 -45
- package/radio-button/radio-button.js +43 -37
- package/screen-reader-only/screen-reader-only.d.ts.map +1 -1
- package/screen-reader-only.js +17 -18
- package/select/select.d.ts +17 -9
- package/select/select.d.ts.map +1 -1
- package/select.js +377 -373
- package/selection-expansion-panel/selection-expansion-panel.d.ts +3 -3
- package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
- package/selection-expansion-panel.js +157 -148
- package/signet/signet.d.ts +2 -2
- package/signet/signet.d.ts.map +1 -1
- package/signet.js +48 -28
- package/skiplink-list/skiplink-list.d.ts +2 -2
- package/skiplink-list/skiplink-list.d.ts.map +1 -1
- package/skiplink-list.js +54 -36
- package/slider/slider.d.ts +7 -5
- package/slider/slider.d.ts.map +1 -1
- package/slider.js +197 -155
- package/standard-theme.css +5 -1
- package/status/status.d.ts +3 -3
- package/status/status.d.ts.map +1 -1
- package/status.js +71 -46
- package/stepper/step/step.d.ts.map +1 -1
- package/stepper/step-label/step-label.d.ts.map +1 -1
- package/stepper/step-label.js +69 -75
- package/stepper/step.js +99 -104
- package/stepper/stepper/stepper.d.ts +3 -3
- package/stepper/stepper/stepper.d.ts.map +1 -1
- package/stepper/stepper.js +208 -188
- package/table/table-wrapper/table-wrapper.d.ts.map +1 -1
- package/table/table-wrapper.js +32 -36
- package/tabs/tab/tab.d.ts.map +1 -1
- package/tabs/tab-group/tab-group.d.ts +2 -2
- package/tabs/tab-group/tab-group.d.ts.map +1 -1
- package/tabs/tab-group.js +200 -193
- package/tabs/tab-label/tab-label.d.ts +3 -3
- package/tabs/tab-label/tab-label.d.ts.map +1 -1
- package/tabs/tab-label.js +65 -37
- package/tabs/tab.js +34 -35
- package/tag/tag/tag.d.ts +3 -5
- package/tag/tag/tag.d.ts.map +1 -1
- package/tag/tag-group/tag-group.d.ts +3 -3
- package/tag/tag-group/tag-group.d.ts.map +1 -1
- package/tag/tag-group.js +107 -75
- package/tag/tag.js +92 -73
- package/teaser/teaser.d.ts +4 -4
- package/teaser/teaser.d.ts.map +1 -1
- package/teaser-hero/teaser-hero.d.ts +3 -3
- package/teaser-hero/teaser-hero.d.ts.map +1 -1
- package/teaser-hero.js +66 -38
- package/teaser-product/common/teaser-product-common.d.ts +1 -1
- package/teaser-product/common/teaser-product-common.d.ts.map +1 -1
- package/teaser-product/common.js +36 -21
- package/teaser-product/teaser-product/teaser-product.d.ts.map +1 -1
- package/teaser-product/teaser-product-static/teaser-product-static.d.ts.map +1 -1
- package/teaser-product/teaser-product-static.js +14 -17
- package/teaser-product/teaser-product.js +14 -17
- package/teaser.js +69 -37
- package/time-input/time-input.d.ts +1 -1
- package/time-input/time-input.d.ts.map +1 -1
- package/time-input.js +160 -166
- package/timetable-occupancy/timetable-occupancy.d.ts +2 -2
- package/timetable-occupancy/timetable-occupancy.d.ts.map +1 -1
- package/timetable-occupancy-icon/timetable-occupancy-icon.d.ts +1 -1
- package/timetable-occupancy-icon/timetable-occupancy-icon.d.ts.map +1 -1
- package/timetable-occupancy-icon.js +60 -48
- package/timetable-occupancy.js +55 -38
- package/title/title-base.d.ts +3 -3
- package/title/title-base.d.ts.map +1 -1
- package/title/title.d.ts.map +1 -1
- package/title.js +81 -53
- package/toast/toast.d.ts +4 -4
- package/toast/toast.d.ts.map +1 -1
- package/toast.js +156 -123
- package/toggle/toggle/toggle.d.ts +3 -5
- package/toggle/toggle/toggle.d.ts.map +1 -1
- package/toggle/toggle-option/toggle-option.d.ts +2 -2
- package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
- package/toggle/toggle-option.js +89 -72
- package/toggle/toggle.js +139 -122
- package/toggle-check/toggle-check.d.ts +4 -3
- package/toggle-check/toggle-check.d.ts.map +1 -1
- package/toggle-check.js +63 -41
- package/train/train/train.d.ts +5 -5
- package/train/train/train.d.ts.map +1 -1
- package/train/train-blocked-passage/train-blocked-passage.d.ts.map +1 -1
- package/train/train-blocked-passage.js +17 -18
- package/train/train-formation/train-formation.d.ts +2 -2
- package/train/train-formation/train-formation.d.ts.map +1 -1
- package/train/train-formation.js +96 -87
- package/train/train-wagon/train-wagon.d.ts +7 -9
- package/train/train-wagon/train-wagon.d.ts.map +1 -1
- package/train/train-wagon.js +150 -110
- package/train/train.js +108 -71
- package/visual-checkbox/visual-checkbox.d.ts +3 -3
- package/visual-checkbox/visual-checkbox.d.ts.map +1 -1
- package/visual-checkbox.js +59 -32
- package/autocomplete-grid/autocomplete-grid-optgroup/index.d.ts +0 -2
- package/autocomplete-grid/autocomplete-grid-optgroup/index.d.ts.map +0 -1
- package/button/mini-button-group/index.d.ts +0 -2
- package/button/mini-button-group/index.d.ts.map +0 -1
- package/development/autocomplete-grid/autocomplete-grid-optgroup/index.d.ts +0 -2
- package/development/autocomplete-grid/autocomplete-grid-optgroup/index.d.ts.map +0 -1
- package/development/button/mini-button-group/index.d.ts +0 -2
- package/development/button/mini-button-group/index.d.ts.map +0 -1
- package/development/flip-card/flip-card/index.d.ts +0 -2
- package/development/flip-card/flip-card/index.d.ts.map +0 -1
- package/development/flip-card/flip-card-details/index.d.ts +0 -2
- package/development/flip-card/flip-card-details/index.d.ts.map +0 -1
- package/development/flip-card/flip-card-summary/index.d.ts +0 -2
- package/development/flip-card/flip-card-summary/index.d.ts.map +0 -1
- package/development/link-list/link-list-anchor/index.d.ts +0 -2
- package/development/link-list/link-list-anchor/index.d.ts.map +0 -1
- package/development/paginator/index.d.ts +0 -2
- package/development/paginator/index.d.ts.map +0 -1
- package/development/radio-button/radio-button-panel/index.d.ts +0 -2
- package/development/radio-button/radio-button-panel/index.d.ts.map +0 -1
- package/development/tabs/tab/index.d.ts +0 -2
- package/development/tabs/tab/index.d.ts.map +0 -1
- package/flip-card/flip-card/index.d.ts +0 -2
- package/flip-card/flip-card/index.d.ts.map +0 -1
- package/flip-card/flip-card-details/index.d.ts +0 -2
- package/flip-card/flip-card-details/index.d.ts.map +0 -1
- package/flip-card/flip-card-summary/index.d.ts +0 -2
- package/flip-card/flip-card-summary/index.d.ts.map +0 -1
- package/link-list/link-list-anchor/index.d.ts +0 -2
- package/link-list/link-list-anchor/index.d.ts.map +0 -1
- package/paginator/index.d.ts +0 -2
- package/paginator/index.d.ts.map +0 -1
- package/radio-button/radio-button-panel/index.d.ts +0 -2
- package/radio-button/radio-button-panel/index.d.ts.map +0 -1
- package/tabs/tab/index.d.ts +0 -2
- package/tabs/tab/index.d.ts.map +0 -1
|
@@ -1,10 +1,19 @@
|
|
|
1
|
+
var __typeError = (msg) => {
|
|
2
|
+
throw TypeError(msg);
|
|
3
|
+
};
|
|
4
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
5
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
6
|
+
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
7
|
+
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
8
|
+
import { __runInitializers, __esDecorate } from "tslib";
|
|
1
9
|
import { MutationController } from "@lit-labs/observers/mutation-controller.js";
|
|
2
10
|
import { ResizeController } from "@lit-labs/observers/resize-controller.js";
|
|
3
11
|
import { css, LitElement, html } from "lit";
|
|
4
|
-
import {
|
|
12
|
+
import { customElement, property } from "lit/decorators.js";
|
|
5
13
|
import { ref } from "lit/directives/ref.js";
|
|
6
14
|
import { isArrowKeyPressed, getNextElementIndex } from "../core/a11y.js";
|
|
7
15
|
import { SbbConnectedAbortController } from "../core/controllers.js";
|
|
16
|
+
import { forceType } from "../core/decorators.js";
|
|
8
17
|
import { EventEmitter, throttle } from "../core/eventing.js";
|
|
9
18
|
import { SbbHydrationMixin } from "../core/mixins.js";
|
|
10
19
|
import { SbbTabElement } from "./tab.js";
|
|
@@ -52,291 +61,295 @@ const style = css`*,
|
|
|
52
61
|
outline-offset: var(--sbb-focus-outline-offset);
|
|
53
62
|
outline: var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);
|
|
54
63
|
}`;
|
|
55
|
-
var __defProp = Object.defineProperty;
|
|
56
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
57
|
-
var __decorateClass = (decorators, target, key, kind) => {
|
|
58
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
59
|
-
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
60
|
-
if (decorator = decorators[i])
|
|
61
|
-
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
62
|
-
if (kind && result) __defProp(target, key, result);
|
|
63
|
-
return result;
|
|
64
|
-
};
|
|
65
64
|
const tabObserverConfig = {
|
|
66
65
|
attributeFilter: ["active", "disabled"]
|
|
67
66
|
};
|
|
68
67
|
let nextId = 0;
|
|
69
|
-
let SbbTabGroupElement =
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
this,
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
(
|
|
110
|
-
|
|
111
|
-
|
|
68
|
+
let SbbTabGroupElement = (() => {
|
|
69
|
+
var _initialSelectedIndex_accessor_storage, _a;
|
|
70
|
+
let _classDecorators = [customElement("sbb-tab-group")];
|
|
71
|
+
let _classDescriptor;
|
|
72
|
+
let _classExtraInitializers = [];
|
|
73
|
+
let _classThis;
|
|
74
|
+
let _classSuper = SbbHydrationMixin(LitElement);
|
|
75
|
+
let _instanceExtraInitializers = [];
|
|
76
|
+
let _set_size_decorators;
|
|
77
|
+
let _initialSelectedIndex_decorators;
|
|
78
|
+
let _initialSelectedIndex_initializers = [];
|
|
79
|
+
let _initialSelectedIndex_extraInitializers = [];
|
|
80
|
+
var SbbTabGroupElement2 = (_a = class extends _classSuper {
|
|
81
|
+
constructor() {
|
|
82
|
+
super(...arguments);
|
|
83
|
+
__privateAdd(this, _initialSelectedIndex_accessor_storage);
|
|
84
|
+
this._tabs = (__runInitializers(this, _instanceExtraInitializers), []);
|
|
85
|
+
this._abort = new SbbConnectedAbortController(this);
|
|
86
|
+
this._tabAttributeObserver = new MutationController(this, {
|
|
87
|
+
target: null,
|
|
88
|
+
config: tabObserverConfig,
|
|
89
|
+
callback: (mutationsList) => this._onTabAttributesChange(mutationsList)
|
|
90
|
+
});
|
|
91
|
+
this._tabGroupResizeObserver = new ResizeController(this, {
|
|
92
|
+
target: null,
|
|
93
|
+
skipInitial: true,
|
|
94
|
+
callback: (entries) => this._onTabGroupElementResize(entries)
|
|
95
|
+
});
|
|
96
|
+
this._tabContentResizeObserver = new ResizeController(this, {
|
|
97
|
+
target: null,
|
|
98
|
+
skipInitial: true,
|
|
99
|
+
callback: (entries) => this._onTabContentElementResize(entries)
|
|
100
|
+
});
|
|
101
|
+
this._size = "l";
|
|
102
|
+
__privateSet(this, _initialSelectedIndex_accessor_storage, __runInitializers(this, _initialSelectedIndex_initializers, 0));
|
|
103
|
+
this._selectedTabChanged = (__runInitializers(this, _initialSelectedIndex_extraInitializers), new EventEmitter(this, SbbTabGroupElement2.events.didChange));
|
|
104
|
+
this._onContentSlotChange = () => {
|
|
105
|
+
this._tabContentElement = this.shadowRoot.querySelector("div.tab-content");
|
|
106
|
+
const loadedTabs = this._getTabs().filter((tab) => !this._tabs.includes(tab));
|
|
107
|
+
if (loadedTabs.length) {
|
|
108
|
+
loadedTabs.forEach((tab) => this._configure(tab));
|
|
109
|
+
this._tabs = this._tabs.concat(loadedTabs);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
this._onTabsSlotChange = () => {
|
|
113
|
+
const tabs = this._getTabs();
|
|
114
|
+
if (tabs.length < this._tabs.length) {
|
|
115
|
+
const removedTabs = this._tabs.filter((tab) => !tabs.includes(tab));
|
|
116
|
+
removedTabs.forEach((removedTab) => {
|
|
117
|
+
var _a2;
|
|
118
|
+
(_a2 = removedTab.tab) == null ? void 0 : _a2.remove();
|
|
119
|
+
});
|
|
120
|
+
this._tabs = tabs;
|
|
121
|
+
}
|
|
122
|
+
this._tabs.forEach((tab) => tab.setAttribute("data-size", this.size));
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/** Size variant, either s, l or xl. */
|
|
126
|
+
set size(value) {
|
|
127
|
+
this._size = value;
|
|
128
|
+
this._updateSize();
|
|
129
|
+
}
|
|
130
|
+
get size() {
|
|
131
|
+
return this._size;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Sets the initial tab. If it matches a disabled tab or exceeds the length of
|
|
135
|
+
* the tab group, the first enabled tab will be selected.
|
|
136
|
+
*/
|
|
137
|
+
get initialSelectedIndex() {
|
|
138
|
+
return __privateGet(this, _initialSelectedIndex_accessor_storage);
|
|
139
|
+
}
|
|
140
|
+
set initialSelectedIndex(value) {
|
|
141
|
+
__privateSet(this, _initialSelectedIndex_accessor_storage, value);
|
|
142
|
+
}
|
|
143
|
+
connectedCallback() {
|
|
144
|
+
super.connectedCallback();
|
|
145
|
+
const signal = this._abort.signal;
|
|
146
|
+
this.addEventListener("keydown", (e) => this._handleKeyDown(e), { signal });
|
|
147
|
+
}
|
|
148
|
+
firstUpdated(changedProperties) {
|
|
149
|
+
super.firstUpdated(changedProperties);
|
|
150
|
+
this._tabs = this._getTabs();
|
|
151
|
+
this._tabs.forEach((tab) => this._configure(tab));
|
|
152
|
+
this._initSelection();
|
|
153
|
+
this._tabGroupResizeObserver.observe(this._tabGroupElement);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Disables a tab by index.
|
|
157
|
+
* @param tabIndex The index of the tab you want to disable.
|
|
158
|
+
*/
|
|
159
|
+
disableTab(tabIndex) {
|
|
160
|
+
var _a2, _b;
|
|
161
|
+
(_b = (_a2 = this._tabs[tabIndex]) == null ? void 0 : _a2.tabGroupActions) == null ? void 0 : _b.disable();
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Enables a tab by index.
|
|
165
|
+
* @param tabIndex The index of the tab you want to enable.
|
|
166
|
+
*/
|
|
167
|
+
enableTab(tabIndex) {
|
|
168
|
+
var _a2, _b;
|
|
169
|
+
(_b = (_a2 = this._tabs[tabIndex]) == null ? void 0 : _a2.tabGroupActions) == null ? void 0 : _b.enable();
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Activates a tab by index.
|
|
173
|
+
* @param tabIndex The index of the tab you want to activate.
|
|
174
|
+
*/
|
|
175
|
+
activateTab(tabIndex) {
|
|
176
|
+
var _a2, _b;
|
|
177
|
+
(_b = (_a2 = this._tabs[tabIndex]) == null ? void 0 : _a2.tabGroupActions) == null ? void 0 : _b.select();
|
|
178
|
+
}
|
|
179
|
+
_getTabs() {
|
|
180
|
+
return Array.from(this.children ?? []).filter((child) => /^sbb-tab-label$/u.test(child.localName));
|
|
181
|
+
}
|
|
182
|
+
_enabledTabs() {
|
|
183
|
+
return this._tabs.filter((t) => !t.hasAttribute("disabled"));
|
|
184
|
+
}
|
|
185
|
+
_updateSize() {
|
|
186
|
+
for (const tab of this._tabs) {
|
|
187
|
+
tab.setAttribute("data-size", this.size);
|
|
112
188
|
}
|
|
113
|
-
this._tabs.forEach((tab) => tab.setAttribute("data-size", this.size));
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
set size(value) {
|
|
117
|
-
this._size = value;
|
|
118
|
-
this._updateSize();
|
|
119
|
-
}
|
|
120
|
-
get size() {
|
|
121
|
-
return this._size;
|
|
122
|
-
}
|
|
123
|
-
connectedCallback() {
|
|
124
|
-
super.connectedCallback();
|
|
125
|
-
const signal = this._abort.signal;
|
|
126
|
-
this.addEventListener("keydown", (e) => this._handleKeyDown(e), { signal });
|
|
127
|
-
}
|
|
128
|
-
firstUpdated(changedProperties) {
|
|
129
|
-
super.firstUpdated(changedProperties);
|
|
130
|
-
this._tabs = this._getTabs();
|
|
131
|
-
this._tabs.forEach((tab) => this._configure(tab));
|
|
132
|
-
this._initSelection();
|
|
133
|
-
this._tabGroupResizeObserver.observe(this._tabGroupElement);
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Disables a tab by index.
|
|
137
|
-
* @param tabIndex The index of the tab you want to disable.
|
|
138
|
-
*/
|
|
139
|
-
disableTab(tabIndex) {
|
|
140
|
-
var _a, _b;
|
|
141
|
-
(_b = (_a = this._tabs[tabIndex]) == null ? void 0 : _a.tabGroupActions) == null ? void 0 : _b.disable();
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Enables a tab by index.
|
|
145
|
-
* @param tabIndex The index of the tab you want to enable.
|
|
146
|
-
*/
|
|
147
|
-
enableTab(tabIndex) {
|
|
148
|
-
var _a, _b;
|
|
149
|
-
(_b = (_a = this._tabs[tabIndex]) == null ? void 0 : _a.tabGroupActions) == null ? void 0 : _b.enable();
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Activates a tab by index.
|
|
153
|
-
* @param tabIndex The index of the tab you want to activate.
|
|
154
|
-
*/
|
|
155
|
-
activateTab(tabIndex) {
|
|
156
|
-
var _a, _b;
|
|
157
|
-
(_b = (_a = this._tabs[tabIndex]) == null ? void 0 : _a.tabGroupActions) == null ? void 0 : _b.select();
|
|
158
|
-
}
|
|
159
|
-
_getTabs() {
|
|
160
|
-
return Array.from(this.children ?? []).filter(
|
|
161
|
-
(child) => /^sbb-tab-label$/u.test(child.localName)
|
|
162
|
-
);
|
|
163
|
-
}
|
|
164
|
-
_enabledTabs() {
|
|
165
|
-
return this._tabs.filter((t) => !t.hasAttribute("disabled"));
|
|
166
|
-
}
|
|
167
|
-
_updateSize() {
|
|
168
|
-
for (const tab of this._tabs) {
|
|
169
|
-
tab.setAttribute("data-size", this.size);
|
|
170
189
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
return `sbb-tab-panel-${++nextId}`;
|
|
174
|
-
}
|
|
175
|
-
_initSelection() {
|
|
176
|
-
var _a, _b, _c;
|
|
177
|
-
if (this.initialSelectedIndex >= 0 && this.initialSelectedIndex < this._tabs.length && !this._tabs[this.initialSelectedIndex].disabled) {
|
|
178
|
-
(_a = this._tabs[this.initialSelectedIndex].tabGroupActions) == null ? void 0 : _a.select();
|
|
179
|
-
} else {
|
|
180
|
-
(_c = (_b = this._enabledTabs()[0]) == null ? void 0 : _b.tabGroupActions) == null ? void 0 : _c.select();
|
|
190
|
+
_assignId() {
|
|
191
|
+
return `sbb-tab-panel-${++nextId}`;
|
|
181
192
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
193
|
+
_initSelection() {
|
|
194
|
+
var _a2, _b, _c;
|
|
195
|
+
if (this.initialSelectedIndex >= 0 && this.initialSelectedIndex < this._tabs.length && !this._tabs[this.initialSelectedIndex].disabled) {
|
|
196
|
+
(_a2 = this._tabs[this.initialSelectedIndex].tabGroupActions) == null ? void 0 : _a2.select();
|
|
197
|
+
} else {
|
|
198
|
+
(_c = (_b = this._enabledTabs()[0]) == null ? void 0 : _b.tabGroupActions) == null ? void 0 : _c.select();
|
|
188
199
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
200
|
+
}
|
|
201
|
+
_onTabAttributesChange(mutationsList) {
|
|
202
|
+
var _a2, _b, _c;
|
|
203
|
+
for (const mutation of mutationsList) {
|
|
204
|
+
if (mutation.type !== "attributes") {
|
|
205
|
+
return;
|
|
195
206
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
207
|
+
const tab = mutation.target;
|
|
208
|
+
if (mutation.attributeName === "disabled") {
|
|
209
|
+
if (tab.hasAttribute("disabled") && tab !== this._selectedTab) {
|
|
210
|
+
(_a2 = tab.tabGroupActions) == null ? void 0 : _a2.disable();
|
|
211
|
+
} else if (tab.disabled) {
|
|
212
|
+
(_b = tab.tabGroupActions) == null ? void 0 : _b.enable();
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
if (mutation.attributeName === "active") {
|
|
216
|
+
if (tab.hasAttribute("active") && !tab.disabled) {
|
|
217
|
+
(_c = tab.tabGroupActions) == null ? void 0 : _c.select();
|
|
218
|
+
} else if (tab === this._selectedTab) {
|
|
219
|
+
tab.toggleAttribute("active", true);
|
|
220
|
+
}
|
|
202
221
|
}
|
|
203
222
|
}
|
|
204
223
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
tab === tabTitles[0] || tab.offsetLeft === tabTitles[0].offsetLeft
|
|
213
|
-
);
|
|
214
|
-
this.style.setProperty("--sbb-tab-group-width", `${this._tabGroupElement.clientWidth}px`);
|
|
224
|
+
_onTabGroupElementResize(entries) {
|
|
225
|
+
for (const entry of entries) {
|
|
226
|
+
const tabTitles = entry.target.firstElementChild.assignedElements();
|
|
227
|
+
for (const tab of tabTitles) {
|
|
228
|
+
tab.toggleAttribute("data-has-divider", tab === tabTitles[0] || tab.offsetLeft === tabTitles[0].offsetLeft);
|
|
229
|
+
this.style.setProperty("--sbb-tab-group-width", `${this._tabGroupElement.clientWidth}px`);
|
|
230
|
+
}
|
|
215
231
|
}
|
|
216
232
|
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
233
|
+
_onTabContentElementResize(entries) {
|
|
234
|
+
for (const entry of entries) {
|
|
235
|
+
const contentHeight = Math.floor(entry.contentRect.height);
|
|
236
|
+
this._tabContentElement.style.height = `${contentHeight}px`;
|
|
237
|
+
}
|
|
222
238
|
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
var _a2;
|
|
237
|
-
tabLabel.removeAttribute("active");
|
|
238
|
-
tabLabel.active = false;
|
|
239
|
-
tabLabel.tabIndex = -1;
|
|
240
|
-
tabLabel.setAttribute("aria-selected", "false");
|
|
241
|
-
(_a2 = tabLabel.tab) == null ? void 0 : _a2.removeAttribute("active");
|
|
242
|
-
},
|
|
243
|
-
disable: () => {
|
|
244
|
-
var _a2, _b, _c;
|
|
245
|
-
if (tabLabel.disabled) {
|
|
246
|
-
return;
|
|
247
|
-
}
|
|
248
|
-
if (!tabLabel.hasAttribute("disabled")) {
|
|
249
|
-
tabLabel.toggleAttribute("disabled", true);
|
|
250
|
-
}
|
|
251
|
-
tabLabel.disabled = true;
|
|
252
|
-
tabLabel.tabIndex = -1;
|
|
253
|
-
tabLabel.setAttribute("aria-selected", "false");
|
|
254
|
-
(_a2 = tabLabel.tab) == null ? void 0 : _a2.removeAttribute("active");
|
|
255
|
-
if (tabLabel.active) {
|
|
239
|
+
_configure(tabLabel) {
|
|
240
|
+
var _a2;
|
|
241
|
+
tabLabel.tabGroupActions = {
|
|
242
|
+
activate: () => {
|
|
243
|
+
var _a3;
|
|
244
|
+
tabLabel.toggleAttribute("active", true);
|
|
245
|
+
tabLabel.active = true;
|
|
246
|
+
tabLabel.tabIndex = 0;
|
|
247
|
+
tabLabel.setAttribute("aria-selected", "true");
|
|
248
|
+
(_a3 = tabLabel.tab) == null ? void 0 : _a3.toggleAttribute("active", true);
|
|
249
|
+
},
|
|
250
|
+
deactivate: () => {
|
|
251
|
+
var _a3;
|
|
256
252
|
tabLabel.removeAttribute("active");
|
|
257
253
|
tabLabel.active = false;
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
tabLabel.disabled
|
|
265
|
-
|
|
266
|
-
},
|
|
267
|
-
select: () => {
|
|
268
|
-
var _a2, _b;
|
|
269
|
-
if (tabLabel !== this._selectedTab && !tabLabel.disabled) {
|
|
270
|
-
const prevTab = this._selectedTab;
|
|
271
|
-
if (prevTab) {
|
|
272
|
-
(_a2 = prevTab.tabGroupActions) == null ? void 0 : _a2.deactivate();
|
|
273
|
-
this._tabContentResizeObserver.unobserve(prevTab.tab);
|
|
254
|
+
tabLabel.tabIndex = -1;
|
|
255
|
+
tabLabel.setAttribute("aria-selected", "false");
|
|
256
|
+
(_a3 = tabLabel.tab) == null ? void 0 : _a3.removeAttribute("active");
|
|
257
|
+
},
|
|
258
|
+
disable: () => {
|
|
259
|
+
var _a3, _b, _c;
|
|
260
|
+
if (tabLabel.disabled) {
|
|
261
|
+
return;
|
|
274
262
|
}
|
|
275
|
-
(
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
|
|
263
|
+
if (!tabLabel.hasAttribute("disabled")) {
|
|
264
|
+
tabLabel.toggleAttribute("disabled", true);
|
|
265
|
+
}
|
|
266
|
+
tabLabel.disabled = true;
|
|
267
|
+
tabLabel.tabIndex = -1;
|
|
268
|
+
tabLabel.setAttribute("aria-selected", "false");
|
|
269
|
+
(_a3 = tabLabel.tab) == null ? void 0 : _a3.removeAttribute("active");
|
|
270
|
+
if (tabLabel.active) {
|
|
271
|
+
tabLabel.removeAttribute("active");
|
|
272
|
+
tabLabel.active = false;
|
|
273
|
+
(_c = (_b = this._enabledTabs()[0]) == null ? void 0 : _b.tabGroupActions) == null ? void 0 : _c.select();
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
enable: () => {
|
|
277
|
+
if (tabLabel.disabled) {
|
|
278
|
+
tabLabel.removeAttribute("disabled");
|
|
279
|
+
tabLabel.disabled = false;
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
select: () => {
|
|
283
|
+
var _a3, _b;
|
|
284
|
+
if (tabLabel !== this._selectedTab && !tabLabel.disabled) {
|
|
285
|
+
const prevTab = this._selectedTab;
|
|
286
|
+
if (prevTab) {
|
|
287
|
+
(_a3 = prevTab.tabGroupActions) == null ? void 0 : _a3.deactivate();
|
|
288
|
+
this._tabContentResizeObserver.unobserve(prevTab.tab);
|
|
289
|
+
}
|
|
290
|
+
(_b = tabLabel.tabGroupActions) == null ? void 0 : _b.activate();
|
|
291
|
+
this._selectedTab = tabLabel;
|
|
292
|
+
this._tabContentResizeObserver.observe(tabLabel.tab);
|
|
293
|
+
const tabs = this._tabs;
|
|
294
|
+
this._selectedTabChanged.emit({
|
|
295
|
+
activeIndex: tabs.findIndex((e) => e === tabLabel),
|
|
296
|
+
activeTabLabel: tabLabel,
|
|
297
|
+
activeTab: tabLabel.tab,
|
|
298
|
+
previousIndex: tabs.findIndex((e) => e === prevTab),
|
|
299
|
+
previousTabLabel: prevTab,
|
|
300
|
+
previousTab: prevTab == null ? void 0 : prevTab.tab
|
|
301
|
+
});
|
|
302
|
+
} else if (tabLabel.disabled) {
|
|
303
|
+
console.warn("You cannot activate a disabled tab");
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
};
|
|
307
|
+
if (((_a2 = tabLabel.nextElementSibling) == null ? void 0 : _a2.localName) === "sbb-tab") {
|
|
308
|
+
tabLabel.tab = tabLabel.nextElementSibling;
|
|
309
|
+
tabLabel.tab.id = this._assignId();
|
|
310
|
+
if (tabLabel.tab instanceof SbbTabElement) {
|
|
311
|
+
tabLabel.tab.tabIndex = 0;
|
|
312
|
+
tabLabel.tab.configure();
|
|
289
313
|
}
|
|
314
|
+
} else {
|
|
315
|
+
tabLabel.insertAdjacentHTML("afterend", "<sbb-tab>No content.</sbb-tab>");
|
|
316
|
+
tabLabel.tab = tabLabel.nextElementSibling;
|
|
317
|
+
console.warn(`Missing content: you should provide a related content for the tab ${tabLabel.outerHTML}.`);
|
|
290
318
|
}
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
tabLabel.
|
|
294
|
-
tabLabel.tab
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
319
|
+
tabLabel.tabIndex = -1;
|
|
320
|
+
tabLabel.disabled = tabLabel.hasAttribute("disabled");
|
|
321
|
+
tabLabel.active = tabLabel.hasAttribute("active") && !tabLabel.disabled;
|
|
322
|
+
tabLabel.setAttribute("role", "tab");
|
|
323
|
+
tabLabel.setAttribute("aria-selected", "false");
|
|
324
|
+
tabLabel.addEventListener("click", () => {
|
|
325
|
+
var _a3;
|
|
326
|
+
(_a3 = tabLabel.tabGroupActions) == null ? void 0 : _a3.select();
|
|
327
|
+
});
|
|
328
|
+
if (tabLabel.tab) {
|
|
329
|
+
tabLabel.setAttribute("aria-controls", tabLabel.tab.id);
|
|
330
|
+
tabLabel.tab.setAttribute("role", "tabpanel");
|
|
331
|
+
tabLabel.tab.toggleAttribute("active", tabLabel.active);
|
|
298
332
|
}
|
|
299
|
-
|
|
300
|
-
tabLabel.
|
|
301
|
-
tabLabel.tab = tabLabel.nextElementSibling;
|
|
302
|
-
console.warn(
|
|
303
|
-
`Missing content: you should provide a related content for the tab ${tabLabel.outerHTML}.`
|
|
304
|
-
);
|
|
305
|
-
}
|
|
306
|
-
tabLabel.tabIndex = -1;
|
|
307
|
-
tabLabel.disabled = tabLabel.hasAttribute("disabled");
|
|
308
|
-
tabLabel.active = tabLabel.hasAttribute("active") && !tabLabel.disabled;
|
|
309
|
-
tabLabel.setAttribute("role", "tab");
|
|
310
|
-
tabLabel.setAttribute("aria-selected", "false");
|
|
311
|
-
tabLabel.addEventListener("click", () => {
|
|
312
|
-
var _a2;
|
|
313
|
-
(_a2 = tabLabel.tabGroupActions) == null ? void 0 : _a2.select();
|
|
314
|
-
});
|
|
315
|
-
if (tabLabel.tab) {
|
|
316
|
-
tabLabel.setAttribute("aria-controls", tabLabel.tab.id);
|
|
317
|
-
tabLabel.tab.setAttribute("role", "tabpanel");
|
|
318
|
-
tabLabel.tab.toggleAttribute("active", tabLabel.active);
|
|
319
|
-
}
|
|
320
|
-
this._tabAttributeObserver.observe(tabLabel);
|
|
321
|
-
tabLabel.slot = "tab-bar";
|
|
322
|
-
}
|
|
323
|
-
_handleKeyDown(evt) {
|
|
324
|
-
var _a, _b, _c;
|
|
325
|
-
const enabledTabs = this._enabledTabs();
|
|
326
|
-
if (!enabledTabs || // don't trap nested handling
|
|
327
|
-
evt.target !== this && evt.target.parentElement !== this) {
|
|
328
|
-
return;
|
|
333
|
+
this._tabAttributeObserver.observe(tabLabel);
|
|
334
|
+
tabLabel.slot = "tab-bar";
|
|
329
335
|
}
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
const
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
+
_handleKeyDown(evt) {
|
|
337
|
+
var _a2, _b, _c;
|
|
338
|
+
const enabledTabs = this._enabledTabs();
|
|
339
|
+
if (!enabledTabs || // don't trap nested handling
|
|
340
|
+
evt.target !== this && evt.target.parentElement !== this) {
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
if (isArrowKeyPressed(evt)) {
|
|
344
|
+
const current = enabledTabs.findIndex((t) => t.active);
|
|
345
|
+
const nextIndex = getNextElementIndex(evt, current, enabledTabs.length);
|
|
346
|
+
(_b = (_a2 = enabledTabs[nextIndex]) == null ? void 0 : _a2.tabGroupActions) == null ? void 0 : _b.select();
|
|
347
|
+
(_c = enabledTabs[nextIndex]) == null ? void 0 : _c.focus();
|
|
348
|
+
evt.preventDefault();
|
|
349
|
+
}
|
|
336
350
|
}
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
return html`
|
|
351
|
+
render() {
|
|
352
|
+
return html`
|
|
340
353
|
<div
|
|
341
354
|
class="tab-group"
|
|
342
355
|
role="tablist"
|
|
@@ -349,22 +362,26 @@ let SbbTabGroupElement = class extends SbbHydrationMixin(LitElement) {
|
|
|
349
362
|
<slot @slotchange=${throttle(this._onContentSlotChange, 150)}></slot>
|
|
350
363
|
</div>
|
|
351
364
|
`;
|
|
352
|
-
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
365
|
+
}
|
|
366
|
+
}, _initialSelectedIndex_accessor_storage = new WeakMap(), _classThis = _a, (() => {
|
|
367
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
368
|
+
_set_size_decorators = [property()];
|
|
369
|
+
_initialSelectedIndex_decorators = [forceType(), property({ attribute: "initial-selected-index", type: Number })];
|
|
370
|
+
__esDecorate(_a, null, _set_size_decorators, { kind: "setter", name: "size", static: false, private: false, access: { has: (obj) => "size" in obj, set: (obj, value) => {
|
|
371
|
+
obj.size = value;
|
|
372
|
+
} }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
373
|
+
__esDecorate(_a, null, _initialSelectedIndex_decorators, { kind: "accessor", name: "initialSelectedIndex", static: false, private: false, access: { has: (obj) => "initialSelectedIndex" in obj, get: (obj) => obj.initialSelectedIndex, set: (obj, value) => {
|
|
374
|
+
obj.initialSelectedIndex = value;
|
|
375
|
+
} }, metadata: _metadata }, _initialSelectedIndex_initializers, _initialSelectedIndex_extraInitializers);
|
|
376
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
377
|
+
SbbTabGroupElement2 = _classThis = _classDescriptor.value;
|
|
378
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
379
|
+
})(), _a.styles = style, _a.events = {
|
|
380
|
+
didChange: "didChange"
|
|
381
|
+
}, __runInitializers(_classThis, _classExtraInitializers), _a);
|
|
382
|
+
return SbbTabGroupElement2 = _classThis;
|
|
383
|
+
})();
|
|
367
384
|
export {
|
|
368
385
|
SbbTabGroupElement
|
|
369
386
|
};
|
|
370
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvdGFicy90YWItZ3JvdXAvdGFiLWdyb3VwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE11dGF0aW9uQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvbXV0YXRpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQgeyBSZXNpemVDb250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9yZXNpemUtY29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5cbmltcG9ydCB7IGdldE5leHRFbGVtZW50SW5kZXgsIGlzQXJyb3dLZXlQcmVzc2VkIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCB0aHJvdHRsZSB9IGZyb20gJy4uLy4uL2NvcmUvZXZlbnRpbmcuanMnO1xuaW1wb3J0IHsgU2JiSHlkcmF0aW9uTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRhYkxhYmVsRWxlbWVudCB9IGZyb20gJy4uL3RhYi1sYWJlbC5qcyc7XG5pbXBvcnQgeyBTYmJUYWJFbGVtZW50IH0gZnJvbSAnLi4vdGFiLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdGFiLWdyb3VwLnNjc3M/bGl0JmlubGluZSc7XG5cbmV4cG9ydCB0eXBlIFNiYlRhYkNoYW5nZWRFdmVudERldGFpbHMgPSB7XG4gIGFjdGl2ZUluZGV4OiBudW1iZXI7XG4gIGFjdGl2ZVRhYkxhYmVsOiBTYmJUYWJMYWJlbEVsZW1lbnQ7XG4gIGFjdGl2ZVRhYjogU2JiVGFiRWxlbWVudDtcbiAgcHJldmlvdXNJbmRleDogbnVtYmVyO1xuICBwcmV2aW91c1RhYkxhYmVsOiBTYmJUYWJMYWJlbEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gIHByZXZpb3VzVGFiOiBTYmJUYWJFbGVtZW50IHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcmZhY2VTYmJUYWJHcm91cEFjdGlvbnMge1xuICBhY3RpdmF0ZSgpOiB2b2lkO1xuICBkZWFjdGl2YXRlKCk6IHZvaWQ7XG4gIGVuYWJsZSgpOiB2b2lkO1xuICBkaXNhYmxlKCk6IHZvaWQ7XG4gIHNlbGVjdCgpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVyZmFjZVNiYlRhYkdyb3VwVGFiIGV4dGVuZHMgU2JiVGFiTGFiZWxFbGVtZW50IHtcbiAgYWN0aXZlPzogYm9vbGVhbjtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIHRhYj86IFNiYlRhYkVsZW1lbnQ7XG4gIGluZGV4PzogbnVtYmVyO1xuICB0YWJHcm91cEFjdGlvbnM/OiBJbnRlcmZhY2VTYmJUYWJHcm91cEFjdGlvbnM7XG4gIHNpemU6ICdzJyB8ICdsJyB8ICd4bCc7XG59XG5cbmNvbnN0IHRhYk9ic2VydmVyQ29uZmlnOiBNdXRhdGlvbk9ic2VydmVySW5pdCA9IHtcbiAgYXR0cmlidXRlRmlsdGVyOiBbJ2FjdGl2ZScsICdkaXNhYmxlZCddLFxufTtcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgb25lIG9yIG1vcmUgdGFicywgZWFjaCBvbmUgd2l0aCBhIGxhYmVsIGFuZCBhIGNvbnRlbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi10YWItZ3JvdXBgIHZpYVxuICogYHNiYi10YWItbGFiZWxgIGFuZCBgc2JiLXRhYmAgaW5zdGFuY2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxTYmJUYWJDaGFuZ2VkRXZlbnREZXRhaWxzPn0gZGlkQ2hhbmdlIC0gRW1pdHMgYW4gZXZlbnQgb24gc2VsZWN0ZWQgdGFiIGNoYW5nZS5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi10YWItZ3JvdXAnKVxuZXhwb3J0IGNsYXNzIFNiYlRhYkdyb3VwRWxlbWVudCBleHRlbmRzIFNiYkh5ZHJhdGlvbk1peGluKExpdEVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGRpZENoYW5nZTogJ2RpZENoYW5nZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgcHJpdmF0ZSBfdGFiczogSW50ZXJmYWNlU2JiVGFiR3JvdXBUYWJbXSA9IFtdO1xuICBwcml2YXRlIF9zZWxlY3RlZFRhYj86IEludGVyZmFjZVNiYlRhYkdyb3VwVGFiO1xuICBwcml2YXRlIF90YWJHcm91cEVsZW1lbnQhOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfdGFiQ29udGVudEVsZW1lbnQhOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfYWJvcnQgPSBuZXcgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF90YWJBdHRyaWJ1dGVPYnNlcnZlciA9IG5ldyBNdXRhdGlvbkNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBjb25maWc6IHRhYk9ic2VydmVyQ29uZmlnLFxuICAgIGNhbGxiYWNrOiAobXV0YXRpb25zTGlzdCkgPT4gdGhpcy5fb25UYWJBdHRyaWJ1dGVzQ2hhbmdlKG11dGF0aW9uc0xpc3QpLFxuICB9KTtcbiAgcHJpdmF0ZSBfdGFiR3JvdXBSZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVDb250cm9sbGVyKHRoaXMsIHtcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgY2FsbGJhY2s6IChlbnRyaWVzKSA9PiB0aGlzLl9vblRhYkdyb3VwRWxlbWVudFJlc2l6ZShlbnRyaWVzKSxcbiAgfSk7XG4gIHByaXZhdGUgX3RhYkNvbnRlbnRSZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVDb250cm9sbGVyKHRoaXMsIHtcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgY2FsbGJhY2s6IChlbnRyaWVzKSA9PiB0aGlzLl9vblRhYkNvbnRlbnRFbGVtZW50UmVzaXplKGVudHJpZXMpLFxuICB9KTtcblxuICAvKiogU2l6ZSB2YXJpYW50LCBlaXRoZXIgcywgbCBvciB4bC4gKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCBzaXplKHZhbHVlOiBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYlsnc2l6ZSddKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHZhbHVlO1xuICAgIHRoaXMuX3VwZGF0ZVNpemUoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHNpemUoKTogSW50ZXJmYWNlU2JiVGFiR3JvdXBUYWJbJ3NpemUnXSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpemU7XG4gIH1cbiAgcHJpdmF0ZSBfc2l6ZTogSW50ZXJmYWNlU2JiVGFiR3JvdXBUYWJbJ3NpemUnXSA9ICdsJztcblxuICAvKipcbiAgICogU2V0cyB0aGUgaW5pdGlhbCB0YWIuIElmIGl0IG1hdGNoZXMgYSBkaXNhYmxlZCB0YWIgb3IgZXhjZWVkcyB0aGUgbGVuZ3RoIG9mXG4gICAqIHRoZSB0YWIgZ3JvdXAsIHRoZSBmaXJzdCBlbmFibGVkIHRhYiB3aWxsIGJlIHNlbGVjdGVkLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaW5pdGlhbC1zZWxlY3RlZC1pbmRleCcsIHR5cGU6IE51bWJlciB9KSBwdWJsaWMgaW5pdGlhbFNlbGVjdGVkSW5kZXggPSAwO1xuXG4gIC8qKiBFbWl0cyBhbiBldmVudCBvbiBzZWxlY3RlZCB0YWIgY2hhbmdlLiAqL1xuICBwcml2YXRlIF9zZWxlY3RlZFRhYkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxTYmJUYWJDaGFuZ2VkRXZlbnREZXRhaWxzPiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJUYWJHcm91cEVsZW1lbnQuZXZlbnRzLmRpZENoYW5nZSxcbiAgKTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBjb25zdCBzaWduYWwgPSB0aGlzLl9hYm9ydC5zaWduYWw7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSksIHsgc2lnbmFsIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5fdGFicyA9IHRoaXMuX2dldFRhYnMoKTtcbiAgICB0aGlzLl90YWJzLmZvckVhY2goKHRhYikgPT4gdGhpcy5fY29uZmlndXJlKHRhYikpO1xuICAgIHRoaXMuX2luaXRTZWxlY3Rpb24oKTtcbiAgICB0aGlzLl90YWJHcm91cFJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5fdGFiR3JvdXBFbGVtZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlcyBhIHRhYiBieSBpbmRleC5cbiAgICogQHBhcmFtIHRhYkluZGV4IFRoZSBpbmRleCBvZiB0aGUgdGFiIHlvdSB3YW50IHRvIGRpc2FibGUuXG4gICAqL1xuICBwdWJsaWMgZGlzYWJsZVRhYih0YWJJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fdGFic1t0YWJJbmRleF0/LnRhYkdyb3VwQWN0aW9ucz8uZGlzYWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgYSB0YWIgYnkgaW5kZXguXG4gICAqIEBwYXJhbSB0YWJJbmRleCBUaGUgaW5kZXggb2YgdGhlIHRhYiB5b3Ugd2FudCB0byBlbmFibGUuXG4gICAqL1xuICBwdWJsaWMgZW5hYmxlVGFiKHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl90YWJzW3RhYkluZGV4XT8udGFiR3JvdXBBY3Rpb25zPy5lbmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgYSB0YWIgYnkgaW5kZXguXG4gICAqIEBwYXJhbSB0YWJJbmRleCBUaGUgaW5kZXggb2YgdGhlIHRhYiB5b3Ugd2FudCB0byBhY3RpdmF0ZS5cbiAgICovXG4gIHB1YmxpYyBhY3RpdmF0ZVRhYih0YWJJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fdGFic1t0YWJJbmRleF0/LnRhYkdyb3VwQWN0aW9ucz8uc2VsZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRUYWJzKCk6IEludGVyZmFjZVNiYlRhYkdyb3VwVGFiW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4gPz8gW10pLmZpbHRlcigoY2hpbGQpID0+XG4gICAgICAvXnNiYi10YWItbGFiZWwkL3UudGVzdChjaGlsZC5sb2NhbE5hbWUpLFxuICAgICkgYXMgSW50ZXJmYWNlU2JiVGFiR3JvdXBUYWJbXTtcbiAgfVxuXG4gIHByaXZhdGUgX2VuYWJsZWRUYWJzKCk6IEludGVyZmFjZVNiYlRhYkdyb3VwVGFiW10ge1xuICAgIHJldHVybiB0aGlzLl90YWJzLmZpbHRlcigodCkgPT4gIXQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVNpemUoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCB0YWIgb2YgdGhpcy5fdGFicykge1xuICAgICAgdGFiLnNldEF0dHJpYnV0ZSgnZGF0YS1zaXplJywgdGhpcy5zaXplKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkNvbnRlbnRTbG90Q2hhbmdlID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX3RhYkNvbnRlbnRFbGVtZW50ID0gdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCdkaXYudGFiLWNvbnRlbnQnKSE7XG4gICAgY29uc3QgbG9hZGVkVGFicyA9IHRoaXMuX2dldFRhYnMoKS5maWx0ZXIoKHRhYikgPT4gIXRoaXMuX3RhYnMuaW5jbHVkZXModGFiKSk7XG5cbiAgICAvLyBpZiBhIG5ldyB0YWIvY29udGVudCBpcyBhZGRlZCB0byB0aGUgdGFiIGdyb3VwXG4gICAgaWYgKGxvYWRlZFRhYnMubGVuZ3RoKSB7XG4gICAgICBsb2FkZWRUYWJzLmZvckVhY2goKHRhYikgPT4gdGhpcy5fY29uZmlndXJlKHRhYikpO1xuICAgICAgdGhpcy5fdGFicyA9IHRoaXMuX3RhYnMuY29uY2F0KGxvYWRlZFRhYnMpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vblRhYnNTbG90Q2hhbmdlID0gKCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHRhYnMgPSB0aGlzLl9nZXRUYWJzKCk7XG5cbiAgICAvLyBpZiBhIHRhYiBpcyByZW1vdmVkIGZyb20gdGhlIHRhYiBncm91cFxuICAgIGlmICh0YWJzLmxlbmd0aCA8IHRoaXMuX3RhYnMubGVuZ3RoKSB7XG4gICAgICBjb25zdCByZW1vdmVkVGFicyA9IHRoaXMuX3RhYnMuZmlsdGVyKCh0YWIpID0+ICF0YWJzLmluY2x1ZGVzKHRhYikpO1xuXG4gICAgICByZW1vdmVkVGFicy5mb3JFYWNoKChyZW1vdmVkVGFiKSA9PiB7XG4gICAgICAgIHJlbW92ZWRUYWIudGFiPy5yZW1vdmUoKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fdGFicyA9IHRhYnM7XG4gICAgfVxuICAgIHRoaXMuX3RhYnMuZm9yRWFjaCgodGFiOiBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYikgPT4gdGFiLnNldEF0dHJpYnV0ZSgnZGF0YS1zaXplJywgdGhpcy5zaXplKSk7XG4gIH07XG5cbiAgcHJpdmF0ZSBfYXNzaWduSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHNiYi10YWItcGFuZWwtJHsrK25leHRJZH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdFNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmluaXRpYWxTZWxlY3RlZEluZGV4ID49IDAgJiZcbiAgICAgIHRoaXMuaW5pdGlhbFNlbGVjdGVkSW5kZXggPCB0aGlzLl90YWJzLmxlbmd0aCAmJlxuICAgICAgIXRoaXMuX3RhYnNbdGhpcy5pbml0aWFsU2VsZWN0ZWRJbmRleF0uZGlzYWJsZWRcbiAgICApIHtcbiAgICAgIHRoaXMuX3RhYnNbdGhpcy5pbml0aWFsU2VsZWN0ZWRJbmRleF0udGFiR3JvdXBBY3Rpb25zPy5zZWxlY3QoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZW5hYmxlZFRhYnMoKVswXT8udGFiR3JvdXBBY3Rpb25zPy5zZWxlY3QoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vblRhYkF0dHJpYnV0ZXNDaGFuZ2UobXV0YXRpb25zTGlzdDogTXV0YXRpb25SZWNvcmRbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zTGlzdCkge1xuICAgICAgaWYgKG11dGF0aW9uLnR5cGUgIT09ICdhdHRyaWJ1dGVzJykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCB0YWIgPSBtdXRhdGlvbi50YXJnZXQgYXMgSW50ZXJmYWNlU2JiVGFiR3JvdXBUYWI7XG5cbiAgICAgIGlmIChtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lID09PSAnZGlzYWJsZWQnKSB7XG4gICAgICAgIGlmICh0YWIuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpICYmIHRhYiAhPT0gdGhpcy5fc2VsZWN0ZWRUYWIpIHtcbiAgICAgICAgICB0YWIudGFiR3JvdXBBY3Rpb25zPy5kaXNhYmxlKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGFiLmRpc2FibGVkKSB7XG4gICAgICAgICAgdGFiLnRhYkdyb3VwQWN0aW9ucz8uZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lID09PSAnYWN0aXZlJykge1xuICAgICAgICBpZiAodGFiLmhhc0F0dHJpYnV0ZSgnYWN0aXZlJykgJiYgIXRhYi5kaXNhYmxlZCkge1xuICAgICAgICAgIHRhYi50YWJHcm91cEFjdGlvbnM/LnNlbGVjdCgpO1xuICAgICAgICB9IGVsc2UgaWYgKHRhYiA9PT0gdGhpcy5fc2VsZWN0ZWRUYWIpIHtcbiAgICAgICAgICB0YWIudG9nZ2xlQXR0cmlidXRlKCdhY3RpdmUnLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uVGFiR3JvdXBFbGVtZW50UmVzaXplKGVudHJpZXM6IFJlc2l6ZU9ic2VydmVyRW50cnlbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgY29uc3QgdGFiVGl0bGVzID0gKFxuICAgICAgICBlbnRyeS50YXJnZXQuZmlyc3RFbGVtZW50Q2hpbGQgYXMgSFRNTFNsb3RFbGVtZW50XG4gICAgICApLmFzc2lnbmVkRWxlbWVudHMoKSBhcyBTYmJUYWJMYWJlbEVsZW1lbnRbXTtcblxuICAgICAgZm9yIChjb25zdCB0YWIgb2YgdGFiVGl0bGVzKSB7XG4gICAgICAgIHRhYi50b2dnbGVBdHRyaWJ1dGUoXG4gICAgICAgICAgJ2RhdGEtaGFzLWRpdmlkZXInLFxuICAgICAgICAgIHRhYiA9PT0gdGFiVGl0bGVzWzBdIHx8IHRhYi5vZmZzZXRMZWZ0ID09PSB0YWJUaXRsZXNbMF0ub2Zmc2V0TGVmdCxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItdGFiLWdyb3VwLXdpZHRoJywgYCR7dGhpcy5fdGFiR3JvdXBFbGVtZW50LmNsaWVudFdpZHRofXB4YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25UYWJDb250ZW50RWxlbWVudFJlc2l6ZShlbnRyaWVzOiBSZXNpemVPYnNlcnZlckVudHJ5W10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgIGNvbnN0IGNvbnRlbnRIZWlnaHQgPSBNYXRoLmZsb29yKGVudHJ5LmNvbnRlbnRSZWN0LmhlaWdodCk7XG5cbiAgICAgICh0aGlzLl90YWJDb250ZW50RWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUuaGVpZ2h0ID0gYCR7Y29udGVudEhlaWdodH1weGA7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY29uZmlndXJlKHRhYkxhYmVsOiBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYik6IHZvaWQge1xuICAgIHRhYkxhYmVsLnRhYkdyb3VwQWN0aW9ucyA9IHtcbiAgICAgIGFjdGl2YXRlOiAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRhYkxhYmVsLnRvZ2dsZUF0dHJpYnV0ZSgnYWN0aXZlJywgdHJ1ZSk7XG4gICAgICAgIHRhYkxhYmVsLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIHRhYkxhYmVsLnRhYkluZGV4ID0gMDtcbiAgICAgICAgdGFiTGFiZWwuc2V0QXR0cmlidXRlKCdhcmlhLXNlbGVjdGVkJywgJ3RydWUnKTtcbiAgICAgICAgdGFiTGFiZWwudGFiPy50b2dnbGVBdHRyaWJ1dGUoJ2FjdGl2ZScsIHRydWUpO1xuICAgICAgfSxcbiAgICAgIGRlYWN0aXZhdGU6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGFiTGFiZWwucmVtb3ZlQXR0cmlidXRlKCdhY3RpdmUnKTtcbiAgICAgICAgdGFiTGFiZWwuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgIHRhYkxhYmVsLnRhYkluZGV4ID0gLTE7XG4gICAgICAgIHRhYkxhYmVsLnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsICdmYWxzZScpO1xuICAgICAgICB0YWJMYWJlbC50YWI/LnJlbW92ZUF0dHJpYnV0ZSgnYWN0aXZlJyk7XG4gICAgICB9LFxuICAgICAgZGlzYWJsZTogKCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAodGFiTGFiZWwuZGlzYWJsZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0YWJMYWJlbC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpIHtcbiAgICAgICAgICB0YWJMYWJlbC50b2dnbGVBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGFiTGFiZWwuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB0YWJMYWJlbC50YWJJbmRleCA9IC0xO1xuICAgICAgICB0YWJMYWJlbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCAnZmFsc2UnKTtcbiAgICAgICAgdGFiTGFiZWwudGFiPy5yZW1vdmVBdHRyaWJ1dGUoJ2FjdGl2ZScpO1xuICAgICAgICBpZiAodGFiTGFiZWwuYWN0aXZlKSB7XG4gICAgICAgICAgdGFiTGFiZWwucmVtb3ZlQXR0cmlidXRlKCdhY3RpdmUnKTtcbiAgICAgICAgICB0YWJMYWJlbC5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLl9lbmFibGVkVGFicygpWzBdPy50YWJHcm91cEFjdGlvbnM/LnNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZW5hYmxlOiAoKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICh0YWJMYWJlbC5kaXNhYmxlZCkge1xuICAgICAgICAgIHRhYkxhYmVsLnJlbW92ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKTtcbiAgICAgICAgICB0YWJMYWJlbC5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgc2VsZWN0OiAoKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICh0YWJMYWJlbCAhPT0gdGhpcy5fc2VsZWN0ZWRUYWIgJiYgIXRhYkxhYmVsLmRpc2FibGVkKSB7XG4gICAgICAgICAgY29uc3QgcHJldlRhYiA9IHRoaXMuX3NlbGVjdGVkVGFiO1xuXG4gICAgICAgICAgaWYgKHByZXZUYWIpIHtcbiAgICAgICAgICAgIHByZXZUYWIudGFiR3JvdXBBY3Rpb25zPy5kZWFjdGl2YXRlKCk7XG4gICAgICAgICAgICB0aGlzLl90YWJDb250ZW50UmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKHByZXZUYWIudGFiISk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGFiTGFiZWwudGFiR3JvdXBBY3Rpb25zPy5hY3RpdmF0ZSgpO1xuICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVGFiID0gdGFiTGFiZWw7XG5cbiAgICAgICAgICB0aGlzLl90YWJDb250ZW50UmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0YWJMYWJlbC50YWIhKTtcbiAgICAgICAgICBjb25zdCB0YWJzID0gdGhpcy5fdGFicztcbiAgICAgICAgICB0aGlzLl9zZWxlY3RlZFRhYkNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICBhY3RpdmVJbmRleDogdGFicy5maW5kSW5kZXgoKGUpID0+IGUgPT09IHRhYkxhYmVsKSxcbiAgICAgICAgICAgIGFjdGl2ZVRhYkxhYmVsOiB0YWJMYWJlbCxcbiAgICAgICAgICAgIGFjdGl2ZVRhYjogdGFiTGFiZWwudGFiIGFzIFNiYlRhYkVsZW1lbnQsXG4gICAgICAgICAgICBwcmV2aW91c0luZGV4OiB0YWJzLmZpbmRJbmRleCgoZSkgPT4gZSA9PT0gcHJldlRhYiksXG4gICAgICAgICAgICBwcmV2aW91c1RhYkxhYmVsOiBwcmV2VGFiLFxuICAgICAgICAgICAgcHJldmlvdXNUYWI6IHByZXZUYWI/LnRhYiBhcyBTYmJUYWJFbGVtZW50LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKGltcG9ydC5tZXRhLmVudi5ERVYgJiYgdGFiTGFiZWwuZGlzYWJsZWQpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ1lvdSBjYW5ub3QgYWN0aXZhdGUgYSBkaXNhYmxlZCB0YWInKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICAgIGlmICh0YWJMYWJlbC5uZXh0RWxlbWVudFNpYmxpbmc/LmxvY2FsTmFtZSA9PT0gJ3NiYi10YWInKSB7XG4gICAgICB0YWJMYWJlbC50YWIgPSB0YWJMYWJlbC5uZXh0RWxlbWVudFNpYmxpbmcgYXMgU2JiVGFiRWxlbWVudDtcbiAgICAgIHRhYkxhYmVsLnRhYi5pZCA9IHRoaXMuX2Fzc2lnbklkKCk7XG4gICAgICBpZiAodGFiTGFiZWwudGFiIGluc3RhbmNlb2YgU2JiVGFiRWxlbWVudCkge1xuICAgICAgICB0YWJMYWJlbC50YWIudGFiSW5kZXggPSAwO1xuICAgICAgICB0YWJMYWJlbC50YWIuY29uZmlndXJlKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpbXBvcnQubWV0YS5lbnYuREVWKSB7XG4gICAgICB0YWJMYWJlbC5pbnNlcnRBZGphY2VudEhUTUwoJ2FmdGVyZW5kJywgJzxzYmItdGFiPk5vIGNvbnRlbnQuPC9zYmItdGFiPicpO1xuICAgICAgdGFiTGFiZWwudGFiID0gdGFiTGFiZWwubmV4dEVsZW1lbnRTaWJsaW5nIGFzIFNiYlRhYkVsZW1lbnQ7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBNaXNzaW5nIGNvbnRlbnQ6IHlvdSBzaG91bGQgcHJvdmlkZSBhIHJlbGF0ZWQgY29udGVudCBmb3IgdGhlIHRhYiAke3RhYkxhYmVsLm91dGVySFRNTH0uYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHRhYkxhYmVsLnRhYkluZGV4ID0gLTE7XG4gICAgdGFiTGFiZWwuZGlzYWJsZWQgPSB0YWJMYWJlbC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7XG4gICAgdGFiTGFiZWwuYWN0aXZlID0gdGFiTGFiZWwuaGFzQXR0cmlidXRlKCdhY3RpdmUnKSAmJiAhdGFiTGFiZWwuZGlzYWJsZWQ7XG4gICAgdGFiTGFiZWwuc2V0QXR0cmlidXRlKCdyb2xlJywgJ3RhYicpO1xuICAgIHRhYkxhYmVsLnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsICdmYWxzZScpO1xuICAgIHRhYkxhYmVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgdGFiTGFiZWwudGFiR3JvdXBBY3Rpb25zPy5zZWxlY3QoKTtcbiAgICB9KTtcbiAgICBpZiAodGFiTGFiZWwudGFiKSB7XG4gICAgICB0YWJMYWJlbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtY29udHJvbHMnLCB0YWJMYWJlbC50YWIuaWQpO1xuICAgICAgdGFiTGFiZWwudGFiLnNldEF0dHJpYnV0ZSgncm9sZScsICd0YWJwYW5lbCcpO1xuICAgICAgdGFiTGFiZWwudGFiLnRvZ2dsZUF0dHJpYnV0ZSgnYWN0aXZlJywgdGFiTGFiZWwuYWN0aXZlKTtcbiAgICB9XG5cbiAgICB0aGlzLl90YWJBdHRyaWJ1dGVPYnNlcnZlci5vYnNlcnZlKHRhYkxhYmVsKTtcbiAgICB0YWJMYWJlbC5zbG90ID0gJ3RhYi1iYXInO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbmFibGVkVGFiczogSW50ZXJmYWNlU2JiVGFiR3JvdXBUYWJbXSA9IHRoaXMuX2VuYWJsZWRUYWJzKCk7XG5cbiAgICBpZiAoXG4gICAgICAhZW5hYmxlZFRhYnMgfHxcbiAgICAgIC8vIGRvbid0IHRyYXAgbmVzdGVkIGhhbmRsaW5nXG4gICAgICAoKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpICE9PSB0aGlzICYmIChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50ICE9PSB0aGlzKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpc0Fycm93S2V5UHJlc3NlZChldnQpKSB7XG4gICAgICBjb25zdCBjdXJyZW50OiBudW1iZXIgPSBlbmFibGVkVGFicy5maW5kSW5kZXgoKHQ6IEludGVyZmFjZVNiYlRhYkdyb3VwVGFiKSA9PiB0LmFjdGl2ZSk7XG4gICAgICBjb25zdCBuZXh0SW5kZXg6IG51bWJlciA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZ0LCBjdXJyZW50LCBlbmFibGVkVGFicy5sZW5ndGgpO1xuICAgICAgZW5hYmxlZFRhYnNbbmV4dEluZGV4XT8udGFiR3JvdXBBY3Rpb25zPy5zZWxlY3QoKTtcbiAgICAgIGVuYWJsZWRUYWJzW25leHRJbmRleF0/LmZvY3VzKCk7XG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0YWItZ3JvdXBcIlxuICAgICAgICByb2xlPVwidGFibGlzdFwiXG4gICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl90YWJHcm91cEVsZW1lbnQgPSBlbCBhcyBIVE1MRWxlbWVudCkpfVxuICAgICAgPlxuICAgICAgICA8c2xvdCBuYW1lPVwidGFiLWJhclwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fb25UYWJzU2xvdENoYW5nZX0+PC9zbG90PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiPlxuICAgICAgICA8c2xvdCBAc2xvdGNoYW5nZT0ke3Rocm90dGxlKHRoaXMuX29uQ29udGVudFNsb3RDaGFuZ2UsIDE1MCl9Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10YWItZ3JvdXAnOiBTYmJUYWJHcm91cEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBDQSxNQUFNLG9CQUEwQztBQUFBLEVBQzlDLGlCQUFpQixDQUFDLFVBQVUsVUFBVTtBQUN4QztBQUVBLElBQUksU0FBUztBQVVOLElBQU0scUJBQU4sY0FBaUMsa0JBQWtCLFVBQVUsRUFBRTtBQUFBLEVBQS9ELGNBQUE7QUFBQSxVQUFBLEdBQUEsU0FBQTtBQU1MLFNBQVEsUUFBbUM7QUFJbkMsU0FBQSxTQUFTLElBQUksNEJBQTRCLElBQUk7QUFDN0MsU0FBQSx3QkFBd0IsSUFBSSxtQkFBbUIsTUFBTTtBQUFBLE1BQzNELFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFVBQVUsQ0FBQyxrQkFBa0IsS0FBSyx1QkFBdUIsYUFBYTtBQUFBLElBQUEsQ0FDdkU7QUFDTyxTQUFBLDBCQUEwQixJQUFJLGlCQUFpQixNQUFNO0FBQUEsTUFDM0QsUUFBUTtBQUFBLE1BQ1IsYUFBYTtBQUFBLE1BQ2IsVUFBVSxDQUFDLFlBQVksS0FBSyx5QkFBeUIsT0FBTztBQUFBLElBQUEsQ0FDN0Q7QUFDTyxTQUFBLDRCQUE0QixJQUFJLGlCQUFpQixNQUFNO0FBQUEsTUFDN0QsUUFBUTtBQUFBLE1BQ1IsYUFBYTtBQUFBLE1BQ2IsVUFBVSxDQUFDLFlBQVksS0FBSywyQkFBMkIsT0FBTztBQUFBLElBQUEsQ0FDL0Q7QUFXRCxTQUFRLFFBQXlDO0FBTWdCLFNBQU8sdUJBQXVCO0FBRy9GLFNBQVEsc0JBQStELElBQUk7QUFBQSxNQUN6RTtBQUFBLE1BQ0EsbUJBQW1CLE9BQU87QUFBQSxJQUFBO0FBMEQ1QixTQUFRLHVCQUF1QixNQUFZO0FBQ3pDLFdBQUsscUJB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
|
|
387
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvdGFicy90YWItZ3JvdXAvdGFiLWdyb3VwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE11dGF0aW9uQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvbXV0YXRpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQgeyBSZXNpemVDb250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9yZXNpemUtY29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5cbmltcG9ydCB7IGdldE5leHRFbGVtZW50SW5kZXgsIGlzQXJyb3dLZXlQcmVzc2VkIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgdGhyb3R0bGUgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUYWJMYWJlbEVsZW1lbnQgfSBmcm9tICcuLi90YWItbGFiZWwuanMnO1xuaW1wb3J0IHsgU2JiVGFiRWxlbWVudCB9IGZyb20gJy4uL3RhYi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RhYi1ncm91cC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5leHBvcnQgdHlwZSBTYmJUYWJDaGFuZ2VkRXZlbnREZXRhaWxzID0ge1xuICBhY3RpdmVJbmRleDogbnVtYmVyO1xuICBhY3RpdmVUYWJMYWJlbDogU2JiVGFiTGFiZWxFbGVtZW50O1xuICBhY3RpdmVUYWI6IFNiYlRhYkVsZW1lbnQ7XG4gIHByZXZpb3VzSW5kZXg6IG51bWJlcjtcbiAgcHJldmlvdXNUYWJMYWJlbDogU2JiVGFiTGFiZWxFbGVtZW50IHwgdW5kZWZpbmVkO1xuICBwcmV2aW91c1RhYjogU2JiVGFiRWxlbWVudCB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJmYWNlU2JiVGFiR3JvdXBBY3Rpb25zIHtcbiAgYWN0aXZhdGUoKTogdm9pZDtcbiAgZGVhY3RpdmF0ZSgpOiB2b2lkO1xuICBlbmFibGUoKTogdm9pZDtcbiAgZGlzYWJsZSgpOiB2b2lkO1xuICBzZWxlY3QoKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYiBleHRlbmRzIFNiYlRhYkxhYmVsRWxlbWVudCB7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIHRhYj86IFNiYlRhYkVsZW1lbnQ7XG4gIGluZGV4PzogbnVtYmVyO1xuICB0YWJHcm91cEFjdGlvbnM/OiBJbnRlcmZhY2VTYmJUYWJHcm91cEFjdGlvbnM7XG4gIHNpemU6ICdzJyB8ICdsJyB8ICd4bCc7XG59XG5cbmNvbnN0IHRhYk9ic2VydmVyQ29uZmlnOiBNdXRhdGlvbk9ic2VydmVySW5pdCA9IHtcbiAgYXR0cmlidXRlRmlsdGVyOiBbJ2FjdGl2ZScsICdkaXNhYmxlZCddLFxufTtcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgb25lIG9yIG1vcmUgdGFicywgZWFjaCBvbmUgd2l0aCBhIGxhYmVsIGFuZCBhIGNvbnRlbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi10YWItZ3JvdXBgIHZpYVxuICogYHNiYi10YWItbGFiZWxgIGFuZCBgc2JiLXRhYmAgaW5zdGFuY2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxTYmJUYWJDaGFuZ2VkRXZlbnREZXRhaWxzPn0gZGlkQ2hhbmdlIC0gRW1pdHMgYW4gZXZlbnQgb24gc2VsZWN0ZWQgdGFiIGNoYW5nZS5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXRhYi1ncm91cCcpXG5jbGFzcyBTYmJUYWJHcm91cEVsZW1lbnQgZXh0ZW5kcyBTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBkaWRDaGFuZ2U6ICdkaWRDaGFuZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIHByaXZhdGUgX3RhYnM6IEludGVyZmFjZVNiYlRhYkdyb3VwVGFiW10gPSBbXTtcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRUYWI/OiBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYjtcbiAgcHJpdmF0ZSBfdGFiR3JvdXBFbGVtZW50ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX3RhYkNvbnRlbnRFbGVtZW50ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfdGFiQXR0cmlidXRlT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25Db250cm9sbGVyKHRoaXMsIHtcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgY29uZmlnOiB0YWJPYnNlcnZlckNvbmZpZyxcbiAgICBjYWxsYmFjazogKG11dGF0aW9uc0xpc3QpID0+IHRoaXMuX29uVGFiQXR0cmlidXRlc0NoYW5nZShtdXRhdGlvbnNMaXN0KSxcbiAgfSk7XG4gIHByaXZhdGUgX3RhYkdyb3VwUmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIHNraXBJbml0aWFsOiB0cnVlLFxuICAgIGNhbGxiYWNrOiAoZW50cmllcykgPT4gdGhpcy5fb25UYWJHcm91cEVsZW1lbnRSZXNpemUoZW50cmllcyksXG4gIH0pO1xuICBwcml2YXRlIF90YWJDb250ZW50UmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIHNraXBJbml0aWFsOiB0cnVlLFxuICAgIGNhbGxiYWNrOiAoZW50cmllcykgPT4gdGhpcy5fb25UYWJDb250ZW50RWxlbWVudFJlc2l6ZShlbnRyaWVzKSxcbiAgfSk7XG5cbiAgLyoqIFNpemUgdmFyaWFudCwgZWl0aGVyIHMsIGwgb3IgeGwuICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgc2l6ZSh2YWx1ZTogSW50ZXJmYWNlU2JiVGFiR3JvdXBUYWJbJ3NpemUnXSkge1xuICAgIHRoaXMuX3NpemUgPSB2YWx1ZTtcbiAgICB0aGlzLl91cGRhdGVTaXplKCk7XG4gIH1cbiAgcHVibGljIGdldCBzaXplKCk6IEludGVyZmFjZVNiYlRhYkdyb3VwVGFiWydzaXplJ10ge1xuICAgIHJldHVybiB0aGlzLl9zaXplO1xuICB9XG4gIHByaXZhdGUgX3NpemU6IEludGVyZmFjZVNiYlRhYkdyb3VwVGFiWydzaXplJ10gPSAnbCc7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGluaXRpYWwgdGFiLiBJZiBpdCBtYXRjaGVzIGEgZGlzYWJsZWQgdGFiIG9yIGV4Y2VlZHMgdGhlIGxlbmd0aCBvZlxuICAgKiB0aGUgdGFiIGdyb3VwLCB0aGUgZmlyc3QgZW5hYmxlZCB0YWIgd2lsbCBiZSBzZWxlY3RlZC5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdpbml0aWFsLXNlbGVjdGVkLWluZGV4JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBpbml0aWFsU2VsZWN0ZWRJbmRleDogbnVtYmVyID0gMDtcblxuICAvKiogRW1pdHMgYW4gZXZlbnQgb24gc2VsZWN0ZWQgdGFiIGNoYW5nZS4gKi9cbiAgcHJpdmF0ZSBfc2VsZWN0ZWRUYWJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8U2JiVGFiQ2hhbmdlZEV2ZW50RGV0YWlscz4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiVGFiR3JvdXBFbGVtZW50LmV2ZW50cy5kaWRDaGFuZ2UsXG4gICk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgY29uc3Qgc2lnbmFsID0gdGhpcy5fYWJvcnQuc2lnbmFsO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlEb3duKGUpLCB7IHNpZ25hbCB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX3RhYnMgPSB0aGlzLl9nZXRUYWJzKCk7XG4gICAgdGhpcy5fdGFicy5mb3JFYWNoKCh0YWIpID0+IHRoaXMuX2NvbmZpZ3VyZSh0YWIpKTtcbiAgICB0aGlzLl9pbml0U2VsZWN0aW9uKCk7XG4gICAgdGhpcy5fdGFiR3JvdXBSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuX3RhYkdyb3VwRWxlbWVudCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZXMgYSB0YWIgYnkgaW5kZXguXG4gICAqIEBwYXJhbSB0YWJJbmRleCBUaGUgaW5kZXggb2YgdGhlIHRhYiB5b3Ugd2FudCB0byBkaXNhYmxlLlxuICAgKi9cbiAgcHVibGljIGRpc2FibGVUYWIodGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX3RhYnNbdGFiSW5kZXhdPy50YWJHcm91cEFjdGlvbnM/LmRpc2FibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGVzIGEgdGFiIGJ5IGluZGV4LlxuICAgKiBAcGFyYW0gdGFiSW5kZXggVGhlIGluZGV4IG9mIHRoZSB0YWIgeW91IHdhbnQgdG8gZW5hYmxlLlxuICAgKi9cbiAgcHVibGljIGVuYWJsZVRhYih0YWJJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fdGFic1t0YWJJbmRleF0/LnRhYkdyb3VwQWN0aW9ucz8uZW5hYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIGEgdGFiIGJ5IGluZGV4LlxuICAgKiBAcGFyYW0gdGFiSW5kZXggVGhlIGluZGV4IG9mIHRoZSB0YWIgeW91IHdhbnQgdG8gYWN0aXZhdGUuXG4gICAqL1xuICBwdWJsaWMgYWN0aXZhdGVUYWIodGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX3RhYnNbdGFiSW5kZXhdPy50YWJHcm91cEFjdGlvbnM/LnNlbGVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VGFicygpOiBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYltdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmNoaWxkcmVuID8/IFtdKS5maWx0ZXIoKGNoaWxkKSA9PlxuICAgICAgL15zYmItdGFiLWxhYmVsJC91LnRlc3QoY2hpbGQubG9jYWxOYW1lKSxcbiAgICApIGFzIEludGVyZmFjZVNiYlRhYkdyb3VwVGFiW107XG4gIH1cblxuICBwcml2YXRlIF9lbmFibGVkVGFicygpOiBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYltdIHtcbiAgICByZXR1cm4gdGhpcy5fdGFicy5maWx0ZXIoKHQpID0+ICF0Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTaXplKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgdGFiIG9mIHRoaXMuX3RhYnMpIHtcbiAgICAgIHRhYi5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2l6ZScsIHRoaXMuc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25Db250ZW50U2xvdENoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLl90YWJDb250ZW50RWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignZGl2LnRhYi1jb250ZW50JykhO1xuICAgIGNvbnN0IGxvYWRlZFRhYnMgPSB0aGlzLl9nZXRUYWJzKCkuZmlsdGVyKCh0YWIpID0+ICF0aGlzLl90YWJzLmluY2x1ZGVzKHRhYikpO1xuXG4gICAgLy8gaWYgYSBuZXcgdGFiL2NvbnRlbnQgaXMgYWRkZWQgdG8gdGhlIHRhYiBncm91cFxuICAgIGlmIChsb2FkZWRUYWJzLmxlbmd0aCkge1xuICAgICAgbG9hZGVkVGFicy5mb3JFYWNoKCh0YWIpID0+IHRoaXMuX2NvbmZpZ3VyZSh0YWIpKTtcbiAgICAgIHRoaXMuX3RhYnMgPSB0aGlzLl90YWJzLmNvbmNhdChsb2FkZWRUYWJzKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfb25UYWJzU2xvdENoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICBjb25zdCB0YWJzID0gdGhpcy5fZ2V0VGFicygpO1xuXG4gICAgLy8gaWYgYSB0YWIgaXMgcmVtb3ZlZCBmcm9tIHRoZSB0YWIgZ3JvdXBcbiAgICBpZiAodGFicy5sZW5ndGggPCB0aGlzLl90YWJzLmxlbmd0aCkge1xuICAgICAgY29uc3QgcmVtb3ZlZFRhYnMgPSB0aGlzLl90YWJzLmZpbHRlcigodGFiKSA9PiAhdGFicy5pbmNsdWRlcyh0YWIpKTtcblxuICAgICAgcmVtb3ZlZFRhYnMuZm9yRWFjaCgocmVtb3ZlZFRhYikgPT4ge1xuICAgICAgICByZW1vdmVkVGFiLnRhYj8ucmVtb3ZlKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuX3RhYnMgPSB0YWJzO1xuICAgIH1cbiAgICB0aGlzLl90YWJzLmZvckVhY2goKHRhYjogSW50ZXJmYWNlU2JiVGFiR3JvdXBUYWIpID0+IHRhYi5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2l6ZScsIHRoaXMuc2l6ZSkpO1xuICB9O1xuXG4gIHByaXZhdGUgX2Fzc2lnbklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBzYmItdGFiLXBhbmVsLSR7KytuZXh0SWR9YDtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5pbml0aWFsU2VsZWN0ZWRJbmRleCA+PSAwICYmXG4gICAgICB0aGlzLmluaXRpYWxTZWxlY3RlZEluZGV4IDwgdGhpcy5fdGFicy5sZW5ndGggJiZcbiAgICAgICF0aGlzLl90YWJzW3RoaXMuaW5pdGlhbFNlbGVjdGVkSW5kZXhdLmRpc2FibGVkXG4gICAgKSB7XG4gICAgICB0aGlzLl90YWJzW3RoaXMuaW5pdGlhbFNlbGVjdGVkSW5kZXhdLnRhYkdyb3VwQWN0aW9ucz8uc2VsZWN0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2VuYWJsZWRUYWJzKClbMF0/LnRhYkdyb3VwQWN0aW9ucz8uc2VsZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25UYWJBdHRyaWJ1dGVzQ2hhbmdlKG11dGF0aW9uc0xpc3Q6IE11dGF0aW9uUmVjb3JkW10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9uc0xpc3QpIHtcbiAgICAgIGlmIChtdXRhdGlvbi50eXBlICE9PSAnYXR0cmlidXRlcycpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgdGFiID0gbXV0YXRpb24udGFyZ2V0IGFzIEludGVyZmFjZVNiYlRhYkdyb3VwVGFiO1xuXG4gICAgICBpZiAobXV0YXRpb24uYXR0cmlidXRlTmFtZSA9PT0gJ2Rpc2FibGVkJykge1xuICAgICAgICBpZiAodGFiLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSAmJiB0YWIgIT09IHRoaXMuX3NlbGVjdGVkVGFiKSB7XG4gICAgICAgICAgdGFiLnRhYkdyb3VwQWN0aW9ucz8uZGlzYWJsZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKHRhYi5kaXNhYmxlZCkge1xuICAgICAgICAgIHRhYi50YWJHcm91cEFjdGlvbnM/LmVuYWJsZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobXV0YXRpb24uYXR0cmlidXRlTmFtZSA9PT0gJ2FjdGl2ZScpIHtcbiAgICAgICAgaWYgKHRhYi5oYXNBdHRyaWJ1dGUoJ2FjdGl2ZScpICYmICF0YWIuZGlzYWJsZWQpIHtcbiAgICAgICAgICB0YWIudGFiR3JvdXBBY3Rpb25zPy5zZWxlY3QoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0YWIgPT09IHRoaXMuX3NlbGVjdGVkVGFiKSB7XG4gICAgICAgICAgdGFiLnRvZ2dsZUF0dHJpYnV0ZSgnYWN0aXZlJywgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vblRhYkdyb3VwRWxlbWVudFJlc2l6ZShlbnRyaWVzOiBSZXNpemVPYnNlcnZlckVudHJ5W10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgIGNvbnN0IHRhYlRpdGxlcyA9IChcbiAgICAgICAgZW50cnkudGFyZ2V0LmZpcnN0RWxlbWVudENoaWxkIGFzIEhUTUxTbG90RWxlbWVudFxuICAgICAgKS5hc3NpZ25lZEVsZW1lbnRzKCkgYXMgU2JiVGFiTGFiZWxFbGVtZW50W107XG5cbiAgICAgIGZvciAoY29uc3QgdGFiIG9mIHRhYlRpdGxlcykge1xuICAgICAgICB0YWIudG9nZ2xlQXR0cmlidXRlKFxuICAgICAgICAgICdkYXRhLWhhcy1kaXZpZGVyJyxcbiAgICAgICAgICB0YWIgPT09IHRhYlRpdGxlc1swXSB8fCB0YWIub2Zmc2V0TGVmdCA9PT0gdGFiVGl0bGVzWzBdLm9mZnNldExlZnQsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXRhYi1ncm91cC13aWR0aCcsIGAke3RoaXMuX3RhYkdyb3VwRWxlbWVudC5jbGllbnRXaWR0aH1weGApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uVGFiQ29udGVudEVsZW1lbnRSZXNpemUoZW50cmllczogUmVzaXplT2JzZXJ2ZXJFbnRyeVtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICBjb25zdCBjb250ZW50SGVpZ2h0ID0gTWF0aC5mbG9vcihlbnRyeS5jb250ZW50UmVjdC5oZWlnaHQpO1xuXG4gICAgICAodGhpcy5fdGFiQ29udGVudEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmhlaWdodCA9IGAke2NvbnRlbnRIZWlnaHR9cHhgO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZSh0YWJMYWJlbDogSW50ZXJmYWNlU2JiVGFiR3JvdXBUYWIpOiB2b2lkIHtcbiAgICB0YWJMYWJlbC50YWJHcm91cEFjdGlvbnMgPSB7XG4gICAgICBhY3RpdmF0ZTogKCk6IHZvaWQgPT4ge1xuICAgICAgICB0YWJMYWJlbC50b2dnbGVBdHRyaWJ1dGUoJ2FjdGl2ZScsIHRydWUpO1xuICAgICAgICB0YWJMYWJlbC5hY3RpdmUgPSB0cnVlO1xuICAgICAgICB0YWJMYWJlbC50YWJJbmRleCA9IDA7XG4gICAgICAgIHRhYkxhYmVsLnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsICd0cnVlJyk7XG4gICAgICAgIHRhYkxhYmVsLnRhYj8udG9nZ2xlQXR0cmlidXRlKCdhY3RpdmUnLCB0cnVlKTtcbiAgICAgIH0sXG4gICAgICBkZWFjdGl2YXRlOiAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRhYkxhYmVsLnJlbW92ZUF0dHJpYnV0ZSgnYWN0aXZlJyk7XG4gICAgICAgIHRhYkxhYmVsLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0YWJMYWJlbC50YWJJbmRleCA9IC0xO1xuICAgICAgICB0YWJMYWJlbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCAnZmFsc2UnKTtcbiAgICAgICAgdGFiTGFiZWwudGFiPy5yZW1vdmVBdHRyaWJ1dGUoJ2FjdGl2ZScpO1xuICAgICAgfSxcbiAgICAgIGRpc2FibGU6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKHRhYkxhYmVsLmRpc2FibGVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGFiTGFiZWwuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgICAgdGFiTGFiZWwudG9nZ2xlQXR0cmlidXRlKCdkaXNhYmxlZCcsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHRhYkxhYmVsLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgdGFiTGFiZWwudGFiSW5kZXggPSAtMTtcbiAgICAgICAgdGFiTGFiZWwuc2V0QXR0cmlidXRlKCdhcmlhLXNlbGVjdGVkJywgJ2ZhbHNlJyk7XG4gICAgICAgIHRhYkxhYmVsLnRhYj8ucmVtb3ZlQXR0cmlidXRlKCdhY3RpdmUnKTtcbiAgICAgICAgaWYgKHRhYkxhYmVsLmFjdGl2ZSkge1xuICAgICAgICAgIHRhYkxhYmVsLnJlbW92ZUF0dHJpYnV0ZSgnYWN0aXZlJyk7XG4gICAgICAgICAgdGFiTGFiZWwuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5fZW5hYmxlZFRhYnMoKVswXT8udGFiR3JvdXBBY3Rpb25zPy5zZWxlY3QoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVuYWJsZTogKCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAodGFiTGFiZWwuZGlzYWJsZWQpIHtcbiAgICAgICAgICB0YWJMYWJlbC5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgdGFiTGFiZWwuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHNlbGVjdDogKCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAodGFiTGFiZWwgIT09IHRoaXMuX3NlbGVjdGVkVGFiICYmICF0YWJMYWJlbC5kaXNhYmxlZCkge1xuICAgICAgICAgIGNvbnN0IHByZXZUYWIgPSB0aGlzLl9zZWxlY3RlZFRhYjtcblxuICAgICAgICAgIGlmIChwcmV2VGFiKSB7XG4gICAgICAgICAgICBwcmV2VGFiLnRhYkdyb3VwQWN0aW9ucz8uZGVhY3RpdmF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5fdGFiQ29udGVudFJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZShwcmV2VGFiLnRhYiEpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRhYkxhYmVsLnRhYkdyb3VwQWN0aW9ucz8uYWN0aXZhdGUoKTtcbiAgICAgICAgICB0aGlzLl9zZWxlY3RlZFRhYiA9IHRhYkxhYmVsO1xuXG4gICAgICAgICAgdGhpcy5fdGFiQ29udGVudFJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGFiTGFiZWwudGFiISk7XG4gICAgICAgICAgY29uc3QgdGFicyA9IHRoaXMuX3RhYnM7XG4gICAgICAgICAgdGhpcy5fc2VsZWN0ZWRUYWJDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgICAgYWN0aXZlSW5kZXg6IHRhYnMuZmluZEluZGV4KChlKSA9PiBlID09PSB0YWJMYWJlbCksXG4gICAgICAgICAgICBhY3RpdmVUYWJMYWJlbDogdGFiTGFiZWwsXG4gICAgICAgICAgICBhY3RpdmVUYWI6IHRhYkxhYmVsLnRhYiBhcyBTYmJUYWJFbGVtZW50LFxuICAgICAgICAgICAgcHJldmlvdXNJbmRleDogdGFicy5maW5kSW5kZXgoKGUpID0+IGUgPT09IHByZXZUYWIpLFxuICAgICAgICAgICAgcHJldmlvdXNUYWJMYWJlbDogcHJldlRhYixcbiAgICAgICAgICAgIHByZXZpb3VzVGFiOiBwcmV2VGFiPy50YWIgYXMgU2JiVGFiRWxlbWVudCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChpbXBvcnQubWV0YS5lbnYuREVWICYmIHRhYkxhYmVsLmRpc2FibGVkKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKCdZb3UgY2Fubm90IGFjdGl2YXRlIGEgZGlzYWJsZWQgdGFiJyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgICBpZiAodGFiTGFiZWwubmV4dEVsZW1lbnRTaWJsaW5nPy5sb2NhbE5hbWUgPT09ICdzYmItdGFiJykge1xuICAgICAgdGFiTGFiZWwudGFiID0gdGFiTGFiZWwubmV4dEVsZW1lbnRTaWJsaW5nIGFzIFNiYlRhYkVsZW1lbnQ7XG4gICAgICB0YWJMYWJlbC50YWIuaWQgPSB0aGlzLl9hc3NpZ25JZCgpO1xuICAgICAgaWYgKHRhYkxhYmVsLnRhYiBpbnN0YW5jZW9mIFNiYlRhYkVsZW1lbnQpIHtcbiAgICAgICAgdGFiTGFiZWwudGFiLnRhYkluZGV4ID0gMDtcbiAgICAgICAgdGFiTGFiZWwudGFiLmNvbmZpZ3VyZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFVikge1xuICAgICAgdGFiTGFiZWwuaW5zZXJ0QWRqYWNlbnRIVE1MKCdhZnRlcmVuZCcsICc8c2JiLXRhYj5ObyBjb250ZW50Ljwvc2JiLXRhYj4nKTtcbiAgICAgIHRhYkxhYmVsLnRhYiA9IHRhYkxhYmVsLm5leHRFbGVtZW50U2libGluZyBhcyBTYmJUYWJFbGVtZW50O1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTWlzc2luZyBjb250ZW50OiB5b3Ugc2hvdWxkIHByb3ZpZGUgYSByZWxhdGVkIGNvbnRlbnQgZm9yIHRoZSB0YWIgJHt0YWJMYWJlbC5vdXRlckhUTUx9LmAsXG4gICAgICApO1xuICAgIH1cbiAgICB0YWJMYWJlbC50YWJJbmRleCA9IC0xO1xuICAgIHRhYkxhYmVsLmRpc2FibGVkID0gdGFiTGFiZWwuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgIHRhYkxhYmVsLmFjdGl2ZSA9IHRhYkxhYmVsLmhhc0F0dHJpYnV0ZSgnYWN0aXZlJykgJiYgIXRhYkxhYmVsLmRpc2FibGVkO1xuICAgIHRhYkxhYmVsLnNldEF0dHJpYnV0ZSgncm9sZScsICd0YWInKTtcbiAgICB0YWJMYWJlbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCAnZmFsc2UnKTtcbiAgICB0YWJMYWJlbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIHRhYkxhYmVsLnRhYkdyb3VwQWN0aW9ucz8uc2VsZWN0KCk7XG4gICAgfSk7XG4gICAgaWYgKHRhYkxhYmVsLnRhYikge1xuICAgICAgdGFiTGFiZWwuc2V0QXR0cmlidXRlKCdhcmlhLWNvbnRyb2xzJywgdGFiTGFiZWwudGFiLmlkKTtcbiAgICAgIHRhYkxhYmVsLnRhYi5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAndGFicGFuZWwnKTtcbiAgICAgIHRhYkxhYmVsLnRhYi50b2dnbGVBdHRyaWJ1dGUoJ2FjdGl2ZScsIHRhYkxhYmVsLmFjdGl2ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5fdGFiQXR0cmlidXRlT2JzZXJ2ZXIub2JzZXJ2ZSh0YWJMYWJlbCk7XG4gICAgdGFiTGFiZWwuc2xvdCA9ICd0YWItYmFyJztcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUtleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZW5hYmxlZFRhYnM6IEludGVyZmFjZVNiYlRhYkdyb3VwVGFiW10gPSB0aGlzLl9lbmFibGVkVGFicygpO1xuXG4gICAgaWYgKFxuICAgICAgIWVuYWJsZWRUYWJzIHx8XG4gICAgICAvLyBkb24ndCB0cmFwIG5lc3RlZCBoYW5kbGluZ1xuICAgICAgKChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAhPT0gdGhpcyAmJiAoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudCAhPT0gdGhpcylcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNBcnJvd0tleVByZXNzZWQoZXZ0KSkge1xuICAgICAgY29uc3QgY3VycmVudDogbnVtYmVyID0gZW5hYmxlZFRhYnMuZmluZEluZGV4KCh0OiBJbnRlcmZhY2VTYmJUYWJHcm91cFRhYikgPT4gdC5hY3RpdmUpO1xuICAgICAgY29uc3QgbmV4dEluZGV4OiBudW1iZXIgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2dCwgY3VycmVudCwgZW5hYmxlZFRhYnMubGVuZ3RoKTtcbiAgICAgIGVuYWJsZWRUYWJzW25leHRJbmRleF0/LnRhYkdyb3VwQWN0aW9ucz8uc2VsZWN0KCk7XG4gICAgICBlbmFibGVkVGFic1tuZXh0SW5kZXhdPy5mb2N1cygpO1xuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFiLWdyb3VwXCJcbiAgICAgICAgcm9sZT1cInRhYmxpc3RcIlxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fdGFiR3JvdXBFbGVtZW50ID0gZWwgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgID5cbiAgICAgICAgPHNsb3QgbmFtZT1cInRhYi1iYXJcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX29uVGFic1Nsb3RDaGFuZ2V9Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cbiAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aHJvdHRsZSh0aGlzLl9vbkNvbnRlbnRTbG90Q2hhbmdlLCAxNTApfT48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdGFiLWdyb3VwJzogU2JiVGFiR3JvdXBFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiU2JiVGFiR3JvdXBFbGVtZW50IiwiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTJDQSxNQUFNLG9CQUEwQztBQUFBLEVBQzlDLGlCQUFpQixDQUFDLFVBQVUsVUFBVTs7QUFHeEMsSUFBSSxTQUFTO0lBV1Asc0JBQWtCLE1BQUE7OzBCQUR2QixjQUFjLGVBQWUsQ0FBQzs7OztvQkFDRSxrQkFBa0IsVUFBVTs7Ozs7O0FBQXBDQSxNQUFBQSx1QkFBQSxtQkFBUSxZQUE2QjtBQUFBOztBQTRDNUQ7QUF0Q1EsV0FBQSxTQU5KLGtCQUFBLE1BQUEsMEJBQUEsR0FNdUMsQ0FBQTtBQUluQyxXQUFBLFNBQVMsSUFBSSw0QkFBNEIsSUFBSTtBQUM3QyxXQUFBLHdCQUF3QixJQUFJLG1CQUFtQixNQUFNO0FBQUEsUUFDM0QsUUFBUTtBQUFBLFFBQ1IsUUFBUTtBQUFBLFFBQ1IsVUFBVSxDQUFDLGtCQUFrQixLQUFLLHVCQUF1QixhQUFhO0FBQUEsTUFBQSxDQUN2RTtBQUNPLFdBQUEsMEJBQTBCLElBQUksaUJBQWlCLE1BQU07QUFBQSxRQUMzRCxRQUFRO0FBQUEsUUFDUixhQUFhO0FBQUEsUUFDYixVQUFVLENBQUMsWUFBWSxLQUFLLHlCQUF5QixPQUFPO0FBQUEsTUFBQSxDQUM3RDtBQUNPLFdBQUEsNEJBQTRCLElBQUksaUJBQWlCLE1BQU07QUFBQSxRQUM3RCxRQUFRO0FBQUEsUUFDUixhQUFhO0FBQUEsUUFDYixVQUFVLENBQUMsWUFBWSxL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
|