@sbb-esta/lyne-elements-dev 5.0.0-next-dev.1776866482 → 5.0.0-next-dev.1776872994
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/autocomplete/autocomplete-base-element.js +1 -1
- package/autocomplete/autocomplete.component.js +1 -1
- package/{autocomplete-base-element-gPLexIVc.js → autocomplete-base-element-BmiLbRHZ.js} +1 -1
- package/autocomplete.js +1 -1
- package/autocomplete.pure.js +1 -1
- package/{block-link-common-CiqQc2Rs.js → block-link-common-BiM6tnUZ.js} +1 -1
- package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
- package/{breadcrumb-group.component-Bfm4RZu7.js → breadcrumb-group.component-De3Lu3lx.js} +1 -1
- package/breadcrumb.js +1 -1
- package/breadcrumb.pure.js +1 -1
- package/button/common/button-common.js +1 -1
- package/button-common-Cu47yCSS.js +85 -0
- package/button.js +1 -1
- package/button.pure.js +1 -1
- package/calendar/calendar/calendar.component.js +1 -1
- package/{calendar.component-ZyfTrKs_.js → calendar.component-nWdtZYqg.js} +1 -1
- package/calendar.js +1 -1
- package/calendar.pure.js +1 -1
- package/card/card-badge/card-badge.component.js +1 -1
- package/{card-badge.component-CsEpGTHm.js → card-badge.component-CEqox6TU.js} +1 -1
- package/card.js +1 -1
- package/card.pure.js +1 -1
- package/checkbox/checkbox.component.js +1 -1
- package/checkbox/common/checkbox-common.js +1 -1
- package/{checkbox-common-Bo4u1RXX.js → checkbox-common-DSmxKbmR.js} +1 -1
- package/{checkbox.component-vjqZh2aC.js → checkbox.component-CR2aIgjA.js} +1 -1
- package/checkbox.js +2 -2
- package/checkbox.pure.js +2 -2
- package/chip/chip-group/chip-group.component.js +1 -1
- package/{chip-group.component-DPzfaV_H.js → chip-group.component-DbNctvjy.js} +1 -1
- package/chip.js +1 -1
- package/chip.pure.js +1 -1
- package/{compact-paginator.component-DEEhXiMm.js → compact-paginator.component-Dyu9bezr.js} +1 -1
- package/core/styles/core.scss +17 -73
- package/core/styles/mixins/typo.scss +2 -2
- package/core.css +67 -65
- package/custom-elements.json +3179 -3179
- package/development/autocomplete/autocomplete-base-element.js +1 -1
- package/development/autocomplete/autocomplete.component.js +1 -1
- package/development/autocomplete-base-element-BC3IUhrb.js +686 -0
- package/development/autocomplete.js +1 -1
- package/development/autocomplete.pure.js +1 -1
- package/development/{block-link-common-B9Vx8CTp.js → block-link-common-qMULXu4g.js} +2 -2
- package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
- package/development/breadcrumb-group.component-BC1mWiQE.js +193 -0
- package/development/breadcrumb.js +1 -1
- package/development/breadcrumb.pure.js +1 -1
- package/development/button/common/button-common.js +1 -1
- package/development/{button-common-jaQVRdwS.js → button-common-ChY47M8t.js} +3 -3
- package/development/button.js +1 -1
- package/development/button.pure.js +1 -1
- package/development/calendar/calendar/calendar.component.js +1 -1
- package/development/calendar.component-B5dz7mau.js +1451 -0
- package/development/calendar.js +1 -1
- package/development/calendar.pure.js +1 -1
- package/development/card/card-badge/card-badge.component.js +1 -1
- package/development/card-badge.component-CQBLpmpo.js +83 -0
- package/development/card.js +1 -1
- package/development/card.pure.js +1 -1
- package/development/checkbox/checkbox.component.js +1 -1
- package/development/checkbox/common/checkbox-common.js +1 -1
- package/development/checkbox-common-DOoEKgML.js +84 -0
- package/development/{checkbox.component-DgrfkdyZ.js → checkbox.component-DZjhQhbB.js} +2 -2
- package/development/checkbox.js +2 -2
- package/development/checkbox.pure.js +2 -2
- package/development/chip/chip-group/chip-group.component.js +1 -1
- package/development/chip-group.component-B4Mjcep2.js +402 -0
- package/development/chip.js +1 -1
- package/development/chip.pure.js +1 -1
- package/development/compact-paginator.component-CRojCci5.js +51 -0
- package/development/error.component-TvgLhaZh.js +53 -0
- package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
- package/development/expansion-panel-header.component-Ok8Qmq5K.js +82 -0
- package/development/expansion-panel.js +1 -1
- package/development/expansion-panel.pure.js +1 -1
- package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
- package/development/{file-selector-dropzone.component-dyv_u-Ga.js → file-selector-dropzone.component-B1Y5qOjb.js} +2 -2
- package/development/file-selector.js +1 -1
- package/development/file-selector.pure.js +1 -1
- package/development/footer/footer.component.js +1 -1
- package/development/footer.component-kFeZqO-Q.js +169 -0
- package/development/footer.js +1 -1
- package/development/footer.pure.js +1 -1
- package/development/form-field/error/error.component.js +1 -1
- package/development/form-field/form-field/form-field.component.js +1 -1
- package/development/form-field/hint/hint.component.js +1 -1
- package/development/form-field.component-CdTnOAi2.js +703 -0
- package/development/form-field.js +3 -3
- package/development/form-field.pure.js +3 -3
- package/development/header/header/header.component.js +1 -1
- package/development/header.component-BmZkCs9m.js +335 -0
- package/development/header.js +1 -1
- package/development/header.pure.js +1 -1
- package/development/hint.component-D5rTFJ-O.js +36 -0
- package/development/link/common/block-link-common.js +1 -1
- package/development/link.js +1 -1
- package/development/link.pure.js +1 -1
- package/development/message/message.component.js +1 -1
- package/development/message.component-Dzah9lXK.js +43 -0
- package/development/message.js +1 -1
- package/development/message.pure.js +1 -1
- package/development/navigation/common/navigation-action-common.js +1 -1
- package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
- package/development/navigation/navigation-section/navigation-section.component.js +1 -1
- package/development/{navigation-action-common-ZBiv0Xiw.js → navigation-action-common-B2soWZWW.js} +2 -2
- package/development/{navigation-marker.component-BsfPR_uk.js → navigation-marker.component-BRdbbjF5.js} +2 -2
- package/development/{navigation-section.component-BSvxMUxM.js → navigation-section.component-VwCJlOfE.js} +2 -2
- package/development/navigation.js +3 -3
- package/development/navigation.pure.js +3 -3
- package/development/notification/notification.component.js +1 -1
- package/development/notification.component-BgF5aGrn.js +271 -0
- package/development/notification.js +1 -1
- package/development/notification.pure.js +1 -1
- package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
- package/development/paginator/paginator/paginator.component.js +1 -1
- package/development/paginator.component-BlyTYIs0.js +261 -0
- package/development/paginator.js +2 -2
- package/development/paginator.pure.js +2 -2
- package/development/radio-button/common/radio-button-common.js +1 -1
- package/development/radio-button/radio-button.component.js +1 -1
- package/development/radio-button-common-ZMs5IFm2.js +125 -0
- package/development/{radio-button.component-DAgH41z0.js → radio-button.component-DggZ7RZD.js} +2 -2
- package/development/radio-button.js +2 -2
- package/development/radio-button.pure.js +2 -2
- package/development/select/select.component.js +1 -1
- package/development/select.component-CZI19HAK.js +804 -0
- package/development/select.js +1 -1
- package/development/select.pure.js +1 -1
- package/development/status/status.component.js +1 -1
- package/development/status.component-BtJ8ri61.js +110 -0
- package/development/status.js +1 -1
- package/development/status.pure.js +1 -1
- package/development/step-label.component-Dfx9rLcN.js +126 -0
- package/development/stepper/step-label/step-label.component.js +1 -1
- package/development/stepper.js +1 -1
- package/development/stepper.pure.js +1 -1
- package/development/styles-WppEBrlW.js +14 -0
- package/development/{tab-label.component-Du1W0dxN.js → tab-label.component-Ggx6qaIk.js} +2 -2
- package/development/tabs/common/styles.js +1 -1
- package/development/tabs/tab-label/tab-label.component.js +1 -1
- package/development/tabs.js +2 -2
- package/development/tabs.pure.js +2 -2
- package/development/tag/tag/tag.component.js +1 -1
- package/development/tag.component-Davxisfj.js +241 -0
- package/development/tag.js +1 -1
- package/development/tag.pure.js +1 -1
- package/development/teaser-hero/teaser-hero.component.js +1 -1
- package/development/teaser-hero.component-bp9IsVmY.js +100 -0
- package/development/teaser-hero.js +1 -1
- package/development/teaser-hero.pure.js +1 -1
- package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
- package/development/{timetable-occupancy.component-D6BIvkpY.js → timetable-occupancy.component-B-uVA9KC.js} +2 -2
- package/development/timetable-occupancy.js +1 -1
- package/development/timetable-occupancy.pure.js +1 -1
- package/development/title/title-base.js +1 -1
- package/development/title/title.component.js +1 -1
- package/development/{title-base-CWLTIRh_.js → title-base-DKVyL7TQ.js} +2 -2
- package/development/{title.component-TCKohHBO.js → title.component-BEEzA9cF.js} +2 -2
- package/development/title.js +2 -2
- package/development/title.pure.js +2 -2
- package/development/toast/toast.component.js +1 -1
- package/development/{toast.component-CZL72aVO.js → toast.component-1YR4wmm9.js} +2 -2
- package/development/toast.js +1 -1
- package/development/toast.pure.js +1 -1
- package/development/toggle/toggle/toggle.component.js +1 -1
- package/development/toggle.component-CQYpVyvs.js +244 -0
- package/development/toggle.js +1 -1
- package/development/toggle.pure.js +1 -1
- package/development/tooltip/tooltip.component.js +1 -1
- package/development/tooltip.component-Br7aDPFn.js +369 -0
- package/development/tooltip.js +1 -1
- package/development/tooltip.pure.js +1 -1
- package/development/train/train-wagon/train-wagon.component.js +1 -1
- package/development/{train-wagon.component-X0XSMLK_.js → train-wagon.component-B6V4dPKn.js} +2 -2
- package/development/train.js +1 -1
- package/development/train.pure.js +1 -1
- package/{error.component-BLChP2fE.js → error.component-D3JgDJfN.js} +1 -1
- package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
- package/{expansion-panel-header.component-DdRIlyms.js → expansion-panel-header.component-DYvq-uUi.js} +1 -1
- package/expansion-panel.js +1 -1
- package/expansion-panel.pure.js +1 -1
- package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
- package/{file-selector-dropzone.component-Bz3Wpl0X.js → file-selector-dropzone.component-BSF-kegh.js} +1 -1
- package/file-selector.js +1 -1
- package/file-selector.pure.js +1 -1
- package/footer/footer.component.js +1 -1
- package/{footer.component-Don15vOd.js → footer.component-CdTEaV6u.js} +1 -1
- package/footer.js +1 -1
- package/footer.pure.js +1 -1
- package/form-field/error/error.component.js +1 -1
- package/form-field/form-field/form-field.component.js +1 -1
- package/form-field/hint/hint.component.js +1 -1
- package/{form-field.component-DbV7fMoe.js → form-field.component-Dtzbp6-e.js} +1 -1
- package/form-field.js +3 -3
- package/form-field.pure.js +3 -3
- package/header/header/header.component.js +1 -1
- package/{header.component-D-WVEMFn.js → header.component-DoAFSXgO.js} +1 -1
- package/header.js +1 -1
- package/header.pure.js +1 -1
- package/{hint.component-CaF6CBCN.js → hint.component-BB_h0G6v.js} +1 -1
- package/link/common/block-link-common.js +1 -1
- package/link.js +1 -1
- package/link.pure.js +1 -1
- package/message/message.component.js +1 -1
- package/message.component-CF-_MD7m.js +26 -0
- package/message.js +1 -1
- package/message.pure.js +1 -1
- package/navigation/common/navigation-action-common.js +1 -1
- package/navigation/navigation-marker/navigation-marker.component.js +1 -1
- package/navigation/navigation-section/navigation-section.component.js +1 -1
- package/{navigation-action-common-Dm47M2BG.js → navigation-action-common-D2vwX-oy.js} +1 -1
- package/{navigation-marker.component-1VHe19c9.js → navigation-marker.component-BQzC4gn_.js} +1 -1
- package/{navigation-section.component-DrnbQAZX.js → navigation-section.component-CR-FanCa.js} +1 -1
- package/navigation.js +3 -3
- package/navigation.pure.js +3 -3
- package/notification/notification.component.js +1 -1
- package/{notification.component-IsSZe3Ul.js → notification.component-D9oxjMJs.js} +1 -1
- package/notification.js +1 -1
- package/notification.pure.js +1 -1
- package/off-brand-theme.css +67 -65
- package/package.json +2 -2
- package/paginator/compact-paginator/compact-paginator.component.js +1 -1
- package/paginator/paginator/paginator.component.js +1 -1
- package/{paginator.component-BkECB-iV.js → paginator.component-DA_wUypF.js} +1 -1
- package/paginator.js +2 -2
- package/paginator.pure.js +2 -2
- package/radio-button/common/radio-button-common.js +1 -1
- package/radio-button/radio-button.component.js +1 -1
- package/{radio-button-common-CQyKqDLJ.js → radio-button-common-iNYco_B8.js} +1 -1
- package/{radio-button.component-Cenb6FL5.js → radio-button.component-v5czJYC3.js} +1 -1
- package/radio-button.js +2 -2
- package/radio-button.pure.js +2 -2
- package/safety-theme.css +67 -65
- package/select/select.component.js +1 -1
- package/{select.component-BcDZm7EM.js → select.component-CCFfP21g.js} +1 -1
- package/select.js +1 -1
- package/select.pure.js +1 -1
- package/standard-theme.css +67 -65
- package/status/status.component.js +1 -1
- package/{status.component-CgMvY4Pe.js → status.component-5SKEusnj.js} +1 -1
- package/status.js +1 -1
- package/status.pure.js +1 -1
- package/step-label.component-DM7lQw8b.js +77 -0
- package/stepper/step-label/step-label.component.js +1 -1
- package/stepper.js +1 -1
- package/stepper.pure.js +1 -1
- package/styles-DisU4TWi.js +5 -0
- package/{tab-label.component-CH24fqmB.js → tab-label.component-JjktN30A.js} +1 -1
- package/tabs/common/styles.js +1 -1
- package/tabs/tab-label/tab-label.component.js +1 -1
- package/tabs.js +2 -2
- package/tabs.pure.js +2 -2
- package/tag/tag/tag.component.js +1 -1
- package/{tag.component-B7YExnbA.js → tag.component-BGYVbfUx.js} +1 -1
- package/tag.js +1 -1
- package/tag.pure.js +1 -1
- package/teaser-hero/teaser-hero.component.js +1 -1
- package/{teaser-hero.component-BUhWjc2i.js → teaser-hero.component-By1HInfz.js} +1 -1
- package/teaser-hero.js +1 -1
- package/teaser-hero.pure.js +1 -1
- package/timetable-occupancy/timetable-occupancy.component.js +1 -1
- package/{timetable-occupancy.component-CLpJ-rjI.js → timetable-occupancy.component-Dq9RM6qS.js} +1 -1
- package/timetable-occupancy.js +1 -1
- package/timetable-occupancy.pure.js +1 -1
- package/title/title-base.js +1 -1
- package/title/title.component.js +1 -1
- package/{title-base-HD0z6npS.js → title-base-B43-Q_7r.js} +1 -1
- package/{title.component-CjDkG7gT.js → title.component-DXJHJ6p6.js} +1 -1
- package/title.js +2 -2
- package/title.pure.js +2 -2
- package/toast/toast.component.js +1 -1
- package/{toast.component-DzsaWxPV.js → toast.component-D53COYeM.js} +1 -1
- package/toast.js +1 -1
- package/toast.pure.js +1 -1
- package/toggle/toggle/toggle.component.js +1 -1
- package/{toggle.component-D7X0E_hM.js → toggle.component-BGgAnHau.js} +1 -1
- package/toggle.js +1 -1
- package/toggle.pure.js +1 -1
- package/tooltip/tooltip.component.js +1 -1
- package/{tooltip.component-BCRFxBuV.js → tooltip.component-Bp-8vRoA.js} +1 -1
- package/tooltip.js +1 -1
- package/tooltip.pure.js +1 -1
- package/train/train-wagon/train-wagon.component.js +1 -1
- package/{train-wagon.component-CZiVPOaZ.js → train-wagon.component-LwKwwuta.js} +1 -1
- package/train.js +1 -1
- package/train.pure.js +1 -1
- package/button-common-C3wYY-UK.js +0 -85
- package/development/autocomplete-base-element-8hV4-ys6.js +0 -686
- package/development/breadcrumb-group.component-DP9X9qV1.js +0 -193
- package/development/calendar.component-C2WJuFrr.js +0 -1451
- package/development/card-badge.component-Be4gXazr.js +0 -83
- package/development/checkbox-common-DpE48IrV.js +0 -84
- package/development/chip-group.component-CxM8l839.js +0 -402
- package/development/compact-paginator.component-DiMeNNTc.js +0 -51
- package/development/error.component-C8JQQqSB.js +0 -53
- package/development/expansion-panel-header.component-CWojFAB-.js +0 -82
- package/development/footer.component-Dbc5xFqr.js +0 -169
- package/development/form-field.component-M0wf8ZR8.js +0 -703
- package/development/header.component-B2T2pmHs.js +0 -335
- package/development/hint.component-hKw1TLvO.js +0 -36
- package/development/message.component-CrXtMprr.js +0 -43
- package/development/notification.component-CKyNdgbx.js +0 -271
- package/development/paginator.component-Cqm7MuRD.js +0 -261
- package/development/radio-button-common-u7NYOI2p.js +0 -125
- package/development/select.component-Ibby7Q-L.js +0 -804
- package/development/status.component-p-egQ_U4.js +0 -110
- package/development/step-label.component-BTXuaONx.js +0 -126
- package/development/styles-D_8dMc_0.js +0 -14
- package/development/tag.component-CWL9jJTW.js +0 -241
- package/development/teaser-hero.component-De621iKn.js +0 -100
- package/development/toggle.component-BeHHTgRh.js +0 -244
- package/development/tooltip.component-BV0yBh9f.js +0 -369
- package/message.component-DgTPvDym.js +0 -26
- package/step-label.component-CbtQ7MvH.js +0 -77
- package/styles-DMLyYaea.js +0 -5
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
-
import { html, nothing, unsafeCSS } from "lit";
|
|
3
|
-
import { state } from "lit/decorators.js";
|
|
4
|
-
import { SbbElement, SbbLanguageController, SbbNamedSlotListMixin, boxSizingStyles, getNextElementIndex, i18nBreadcrumbEllipsisButtonLabel, isArrowKeyPressed, sbbInputModalityDetector } from "./core.js";
|
|
5
|
-
import { SbbIconElement } from "./icon.pure.js";
|
|
6
|
-
import { ResizeController } from "@lit-labs/observers/resize-controller.js";
|
|
7
|
-
//#region src/elements/breadcrumb/breadcrumb-group/breadcrumb-group.scss?inline
|
|
8
|
-
var breadcrumb_group_default = ":host {\n display: block;\n min-width: 0;\n}\n\n:host(:is(:state(loaded),[state--loaded])) {\n --sbb-breadcrumb-group-visibility: visible;\n}\n\n:host(:is(:is(:state(state-collapsed),[state--state-collapsed]), :is(:state(state-manually-expanded),[state--state-manually-expanded]))) {\n --sbb-breadcrumb-group-wrap: wrap;\n}\n\n.sbb-breadcrumb-group {\n list-style: none;\n margin: 0;\n padding: 0;\n font-size: inherit;\n display: flex;\n flex-wrap: var(--sbb-breadcrumb-group-wrap);\n column-gap: var(--sbb-spacing-fixed-1x);\n visibility: var(--sbb-breadcrumb-group-visibility);\n}\n\n.sbb-breadcrumb-group__item {\n flex: 0 0 auto;\n display: flex;\n column-gap: var(--sbb-spacing-fixed-1x);\n}\n\n.sbb-breadcrumb-group__divider-icon {\n color: var(--sbb-breadcrumb-group-ellipsis-color);\n}\n\n#sbb-breadcrumb-ellipsis {\n appearance: none;\n box-sizing: border-box;\n margin: 0;\n outline: none;\n border: none;\n border-radius: 0;\n padding: 0;\n background: none;\n -webkit-tap-highlight-color: transparent;\n color: inherit;\n --sbb-text-font-size: var(--sbb-text-font-size-xxs);\n font-family: var(--sbb-typo-font-family);\n font-weight: normal;\n line-height: var(--sbb-typo-line-height-text);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n font-size: var(--sbb-text-font-size);\n line-height: 0;\n letter-spacing: 0.01em;\n width: var(--sbb-size-icon-ui-small);\n height: var(--sbb-size-icon-ui-small);\n border: var(--sbb-breadcrumb-group-ellipsis-border-width) solid var(--sbb-breadcrumb-group-ellipsis-border-color);\n border-radius: 50%;\n padding-block-end: 0.5em;\n cursor: var(--sbb-cursor-pointer);\n color: var(--sbb-breadcrumb-group-ellipsis-color);\n background-color: var(--sbb-breadcrumb-group-ellipsis-background-color);\n overflow: hidden;\n}\n@media (forced-colors: active) {\n #sbb-breadcrumb-ellipsis {\n --sbb-breadcrumb-group-ellipsis-border-width: var(--sbb-border-width-2x);\n --sbb-breadcrumb-group-ellipsis-border-color: CanvasText;\n }\n}\n@media (any-hover: hover) {\n #sbb-breadcrumb-ellipsis:hover {\n --sbb-breadcrumb-group-ellipsis-color: var(--sbb-color-2);\n --sbb-breadcrumb-group-ellipsis-background-color: var(--sbb-background-color-3);\n }\n}\n@media (any-hover: hover) and (forced-colors: active) {\n #sbb-breadcrumb-ellipsis:hover {\n --sbb-breadcrumb-group-ellipsis-border-color: Highlight;\n }\n}\n#sbb-breadcrumb-ellipsis:focus-visible {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n}";
|
|
9
|
-
//#endregion
|
|
10
|
-
//#region src/elements/breadcrumb/breadcrumb-group/breadcrumb-group.component.ts
|
|
11
|
-
var MIN_BREADCRUMBS_TO_COLLAPSE = 3;
|
|
12
|
-
/**
|
|
13
|
-
* It can be used as a container for one or more `sbb-breadcrumb` component.
|
|
14
|
-
*
|
|
15
|
-
* @slot - Use the unnamed slot to add `sbb-breadcrumb` elements.
|
|
16
|
-
*/
|
|
17
|
-
var SbbBreadcrumbGroupElement = (() => {
|
|
18
|
-
let _classSuper = SbbNamedSlotListMixin(SbbElement);
|
|
19
|
-
let _instanceExtraInitializers = [];
|
|
20
|
-
let _set__state_decorators;
|
|
21
|
-
return class SbbBreadcrumbGroupElement extends _classSuper {
|
|
22
|
-
static {
|
|
23
|
-
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
24
|
-
_set__state_decorators = [state()];
|
|
25
|
-
__esDecorate(this, null, _set__state_decorators, {
|
|
26
|
-
kind: "setter",
|
|
27
|
-
name: "_state",
|
|
28
|
-
static: false,
|
|
29
|
-
private: false,
|
|
30
|
-
access: {
|
|
31
|
-
has: (obj) => "_state" in obj,
|
|
32
|
-
set: (obj, value) => {
|
|
33
|
-
obj._state = value;
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
metadata: _metadata
|
|
37
|
-
}, null, _instanceExtraInitializers);
|
|
38
|
-
if (_metadata) Object.defineProperty(this, Symbol.metadata, {
|
|
39
|
-
enumerable: true,
|
|
40
|
-
configurable: true,
|
|
41
|
-
writable: true,
|
|
42
|
-
value: _metadata
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
static {
|
|
46
|
-
this.elementName = "sbb-breadcrumb-group";
|
|
47
|
-
}
|
|
48
|
-
static {
|
|
49
|
-
this.elementDependencies = [SbbIconElement];
|
|
50
|
-
}
|
|
51
|
-
static {
|
|
52
|
-
this.role = "navigation";
|
|
53
|
-
}
|
|
54
|
-
static {
|
|
55
|
-
this.styles = [boxSizingStyles, unsafeCSS(breadcrumb_group_default)];
|
|
56
|
-
}
|
|
57
|
-
/** The state of the breadcrumb group. */
|
|
58
|
-
set _state(state) {
|
|
59
|
-
if (this._stateInternal) this.internals.states.delete(`state-${this._stateInternal}`);
|
|
60
|
-
this._stateInternal = state;
|
|
61
|
-
if (this._stateInternal) this.internals.states.add(`state-${this._stateInternal}`);
|
|
62
|
-
}
|
|
63
|
-
get _state() {
|
|
64
|
-
return this._stateInternal;
|
|
65
|
-
}
|
|
66
|
-
constructor() {
|
|
67
|
-
super();
|
|
68
|
-
this.listChildLocalNames = (__runInitializers(this, _instanceExtraInitializers), ["sbb-breadcrumb"]);
|
|
69
|
-
this._stateInternal = null;
|
|
70
|
-
this._resizeObserver = new ResizeController(this, {
|
|
71
|
-
target: null,
|
|
72
|
-
skipInitial: true,
|
|
73
|
-
callback: () => this._evaluateCollapsedState()
|
|
74
|
-
});
|
|
75
|
-
this._language = new SbbLanguageController(this);
|
|
76
|
-
this._markForFocus = false;
|
|
77
|
-
this.addEventListener?.("keydown", (e) => this._handleKeyDown(e));
|
|
78
|
-
}
|
|
79
|
-
_handleKeyDown(evt) {
|
|
80
|
-
if (!this.listChildren.length || evt.target !== this && evt.target.parentElement !== this) return;
|
|
81
|
-
if (isArrowKeyPressed(evt)) {
|
|
82
|
-
if (this._state === "collapsed") return this._focusNextCollapsed(evt);
|
|
83
|
-
this._focusNext(evt);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
firstUpdated(changedProperties) {
|
|
87
|
-
super.firstUpdated(changedProperties);
|
|
88
|
-
this._resizeObserver.observe(this);
|
|
89
|
-
this.internals.states.add("loaded");
|
|
90
|
-
}
|
|
91
|
-
willUpdate(changedProperties) {
|
|
92
|
-
super.willUpdate(changedProperties);
|
|
93
|
-
if (changedProperties.has("listChildren")) this._syncBreadcrumbs();
|
|
94
|
-
}
|
|
95
|
-
updated(changedProperties) {
|
|
96
|
-
super.updated(changedProperties);
|
|
97
|
-
if (changedProperties.has("listChildren")) Promise.resolve().then(() => this._evaluateCollapsedState());
|
|
98
|
-
if (this._markForFocus && sbbInputModalityDetector.mostRecentModality === "keyboard") {
|
|
99
|
-
this.listChildren[1]?.focus();
|
|
100
|
-
this._markForFocus = false;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
/** Apply the aria-current attribute to the last sbb-breadcrumb element. */
|
|
104
|
-
_syncBreadcrumbs() {
|
|
105
|
-
this.listChildren.slice(0, -1).filter((c) => c.hasAttribute("accessibility-current")).forEach((c) => c.removeAttribute("accessibility-current"));
|
|
106
|
-
this.listChildren[this.listChildren.length - 1]?.setAttribute("accessibility-current", "page");
|
|
107
|
-
if (this.listChildren.length < MIN_BREADCRUMBS_TO_COLLAPSE) this._state = null;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Sets the focus on the correct element when the ellipsis breadcrumb is displayed and the user is navigating with keyboard's arrows.
|
|
111
|
-
*/
|
|
112
|
-
_focusNextCollapsed(evt) {
|
|
113
|
-
const arrayCollapsed = [
|
|
114
|
-
this.listChildren[0],
|
|
115
|
-
this.shadowRoot.querySelector("#sbb-breadcrumb-ellipsis"),
|
|
116
|
-
this.listChildren[this.listChildren.length - 1]
|
|
117
|
-
];
|
|
118
|
-
this._focusNext(evt, arrayCollapsed);
|
|
119
|
-
}
|
|
120
|
-
_focusNext(evt, breadcrumbs = this.listChildren) {
|
|
121
|
-
breadcrumbs[getNextElementIndex(evt, breadcrumbs.findIndex((e) => e === document.activeElement || e === this.shadowRoot.activeElement), breadcrumbs.length)]?.focus();
|
|
122
|
-
evt.preventDefault();
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Note: due to @State annotation on _state, this method triggers a new render; as a consequence, the focus is moved
|
|
126
|
-
* to the `body`, so if the ellipsis element has focus, it's asynchronously forced to the first element.
|
|
127
|
-
*/
|
|
128
|
-
_expandBreadcrumbs() {
|
|
129
|
-
this._state = "manually-expanded";
|
|
130
|
-
this._markForFocus = true;
|
|
131
|
-
}
|
|
132
|
-
/** Evaluate if the expanded breadcrumb element fits in page width, otherwise it needs ellipsis */
|
|
133
|
-
_evaluateCollapsedState() {
|
|
134
|
-
if (!this._state && this.scrollWidth > this.offsetWidth && this.listChildren.length >= MIN_BREADCRUMBS_TO_COLLAPSE) {
|
|
135
|
-
this._state = "collapsed";
|
|
136
|
-
this._resizeObserver.hostDisconnected();
|
|
137
|
-
this.removeController(this._resizeObserver);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
_renderCollapsed() {
|
|
141
|
-
return html`
|
|
142
|
-
<li class="sbb-breadcrumb-group__item">
|
|
143
|
-
<slot name="li-0"></slot>
|
|
144
|
-
</li>
|
|
145
|
-
<li class="sbb-breadcrumb-group__item" id="sbb-breadcrumb-group-ellipsis">
|
|
146
|
-
<sbb-icon
|
|
147
|
-
name="chevron-small-right-small"
|
|
148
|
-
class="sbb-breadcrumb-group__divider-icon"
|
|
149
|
-
></sbb-icon>
|
|
150
|
-
<button
|
|
151
|
-
type="button"
|
|
152
|
-
id="sbb-breadcrumb-ellipsis"
|
|
153
|
-
aria-label=${i18nBreadcrumbEllipsisButtonLabel[this._language.current]}
|
|
154
|
-
aria-expanded="false"
|
|
155
|
-
@click=${() => this._expandBreadcrumbs()}
|
|
156
|
-
>
|
|
157
|
-
...
|
|
158
|
-
</button>
|
|
159
|
-
</li>
|
|
160
|
-
<li class="sbb-breadcrumb-group__item">
|
|
161
|
-
<sbb-icon
|
|
162
|
-
name="chevron-small-right-small"
|
|
163
|
-
class="sbb-breadcrumb-group__divider-icon"
|
|
164
|
-
></sbb-icon>
|
|
165
|
-
<slot name=${`li-${this.listChildren.length - 1}`}></slot>
|
|
166
|
-
</li>
|
|
167
|
-
`;
|
|
168
|
-
}
|
|
169
|
-
_renderExpanded() {
|
|
170
|
-
return this.listSlotEntries().map((slot, index, array) => html`
|
|
171
|
-
<li class="sbb-breadcrumb-group__item">
|
|
172
|
-
<slot name=${slot.name}></slot>
|
|
173
|
-
${index !== array.length - 1 ? html`<sbb-icon
|
|
174
|
-
name="chevron-small-right-small"
|
|
175
|
-
class="sbb-breadcrumb-group__divider-icon"
|
|
176
|
-
></sbb-icon>` : nothing}
|
|
177
|
-
</li>
|
|
178
|
-
`);
|
|
179
|
-
}
|
|
180
|
-
render() {
|
|
181
|
-
return html`
|
|
182
|
-
<ol class="sbb-breadcrumb-group">
|
|
183
|
-
${this._state === "collapsed" ? this._renderCollapsed() : this._renderExpanded()}
|
|
184
|
-
</ol>
|
|
185
|
-
${this.renderHiddenSlot()}
|
|
186
|
-
`;
|
|
187
|
-
}
|
|
188
|
-
};
|
|
189
|
-
})();
|
|
190
|
-
//#endregion
|
|
191
|
-
export { SbbBreadcrumbGroupElement as t };
|
|
192
|
-
|
|
193
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1ncm91cC5jb21wb25lbnQtRFA5WDlxVjEuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi1ncm91cC9icmVhZGNydW1iLWdyb3VwLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi1ncm91cC9icmVhZGNydW1iLWdyb3VwLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIC8vIEFsbG93cyBzaXplIGNhbGN1bGF0aW9uIGV2ZW4gaWYgaW4gZ3JpZCBvciBmbGV4IGNvbnRleHQuXG4gIG1pbi13aWR0aDogMDtcbn1cblxuOmhvc3QoOnN0YXRlKGxvYWRlZCkpIHtcbiAgLS1zYmItYnJlYWRjcnVtYi1ncm91cC12aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLWNvbGxhcHNlZCksIDpzdGF0ZShzdGF0ZS1tYW51YWxseS1leHBhbmRlZCkpKSB7XG4gIC0tc2JiLWJyZWFkY3J1bWItZ3JvdXAtd3JhcDogd3JhcDtcbn1cblxuLnNiYi1icmVhZGNydW1iLWdyb3VwIHtcbiAgQGluY2x1ZGUgc2JiLmxpc3QtcmVzZXQ7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB2YXIoLS1zYmItYnJlYWRjcnVtYi1ncm91cC13cmFwKTtcbiAgY29sdW1uLWdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xuICB2aXNpYmlsaXR5OiB2YXIoLS1zYmItYnJlYWRjcnVtYi1ncm91cC12aXNpYmlsaXR5KTtcbn1cblxuLnNiYi1icmVhZGNydW1iLWdyb3VwX19pdGVtIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbHVtbi1nYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KTtcbn1cblxuLnNiYi1icmVhZGNydW1iLWdyb3VwX19kaXZpZGVyLWljb24ge1xuICBjb2xvcjogdmFyKC0tc2JiLWJyZWFkY3J1bWItZ3JvdXAtZWxsaXBzaXMtY29sb3IpO1xufVxuXG4jc2JiLWJyZWFkY3J1bWItZWxsaXBzaXMge1xuICBAaW5jbHVkZSBzYmIuYnV0dG9uLXJlc2V0O1xuICBAaW5jbHVkZSBzYmIudGV4dC14eHMtLXJlZ3VsYXI7XG5cbiAgLy8gbGluZSBoZWlnaHQgYW5kIGxldHRlci1zcGFjaW5nIG5lZWRlZCB0byBtYXRjaCBzcXVhcmVzIGRyYXduIGluIEZpZ21hLlxuICBsaW5lLWhlaWdodDogMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbiAgd2lkdGg6IHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpO1xuICBib3JkZXI6IHZhcigtLXNiYi1icmVhZGNydW1iLWdyb3VwLWVsbGlwc2lzLWJvcmRlci13aWR0aCkgc29saWRcbiAgICB2YXIoLS1zYmItYnJlYWRjcnVtYi1ncm91cC1lbGxpcHNpcy1ib3JkZXItY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgLy8gSW4gb3JkZXIgdG8gdmVydGljYWxseSBjZW50ZXIgLi4uLCB3ZSB1c2UgcGFkZGluZyB3aXRoIGhhbGYgdGhlIGZvbnQgc2l6ZS5cbiAgcGFkZGluZy1ibG9jay1lbmQ6IDAuNWVtO1xuICBjdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItcG9pbnRlcik7XG4gIGNvbG9yOiB2YXIoLS1zYmItYnJlYWRjcnVtYi1ncm91cC1lbGxpcHNpcy1jb2xvcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1icmVhZGNydW1iLWdyb3VwLWVsbGlwc2lzLWJhY2tncm91bmQtY29sb3IpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi1icmVhZGNydW1iLWdyb3VwLWVsbGlwc2lzLWJvcmRlci13aWR0aDogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0yeCk7XG4gICAgLS1zYmItYnJlYWRjcnVtYi1ncm91cC1lbGxpcHNpcy1ib3JkZXItY29sb3I6IENhbnZhc1RleHQ7XG4gIH1cblxuICBAaW5jbHVkZSBzYmIuaG92ZXItbXEoJGhvdmVyOiB0cnVlKSB7XG4gICAgJjpob3ZlciB7XG4gICAgICAtLXNiYi1icmVhZGNydW1iLWdyb3VwLWVsbGlwc2lzLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMik7XG4gICAgICAtLXNiYi1icmVhZGNydW1iLWdyb3VwLWVsbGlwc2lzLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMpO1xuXG4gICAgICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgICAgIC0tc2JiLWJyZWFkY3J1bWItZ3JvdXAtZWxsaXBzaXMtYm9yZGVyLWNvbG9yOiBIaWdobGlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBAaW5jbHVkZSBzYmIuZm9jdXMtb3V0bGluZTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGJveFNpemluZ1N0eWxlcyxcbiAgZ2V0TmV4dEVsZW1lbnRJbmRleCxcbiAgaTE4bkJyZWFkY3J1bWJFbGxpcHNpc0J1dHRvbkxhYmVsLFxuICBpc0Fycm93S2V5UHJlc3NlZCxcbiAgU2JiRWxlbWVudCxcbiAgdHlwZSBTYmJFbGVtZW50VHlwZSxcbiAgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIFNiYk5hbWVkU2xvdExpc3RNaXhpbixcbiAgdHlwZSBXaXRoTGlzdENoaWxkcmVuLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYkljb25FbGVtZW50IH0gZnJvbSAnLi4vLi4vaWNvbi5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiQnJlYWRjcnVtYkVsZW1lbnQgfSBmcm9tICcuLi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYnJlYWRjcnVtYi1ncm91cC5zY3NzP2lubGluZSc7XG5cbmNvbnN0IE1JTl9CUkVBRENSVU1CU19UT19DT0xMQVBTRSA9IDM7XG5cbi8qKlxuICogSXQgY2FuIGJlIHVzZWQgYXMgYSBjb250YWluZXIgZm9yIG9uZSBvciBtb3JlIGBzYmItYnJlYWRjcnVtYmAgY29tcG9uZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItYnJlYWRjcnVtYmAgZWxlbWVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJCcmVhZGNydW1iR3JvdXBFbGVtZW50IGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluPFxuICBTYmJCcmVhZGNydW1iRWxlbWVudCxcbiAgdHlwZW9mIFNiYkVsZW1lbnRcbj4oU2JiRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLWJyZWFkY3J1bWItZ3JvdXAnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbU2JiSWNvbkVsZW1lbnRdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnbmF2aWdhdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgbGlzdENoaWxkTG9jYWxOYW1lcyA9IFsnc2JiLWJyZWFkY3J1bWInXTtcblxuICAvKiogVGhlIHN0YXRlIG9mIHRoZSBicmVhZGNydW1iIGdyb3VwLiAqL1xuICBAc3RhdGUoKVxuICBwcml2YXRlIHNldCBfc3RhdGUoc3RhdGU6ICdjb2xsYXBzZWQnIHwgJ21hbnVhbGx5LWV4cGFuZGVkJyB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5fc3RhdGVJbnRlcm5hbCkge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgc3RhdGUtJHt0aGlzLl9zdGF0ZUludGVybmFsfWApO1xuICAgIH1cbiAgICB0aGlzLl9zdGF0ZUludGVybmFsID0gc3RhdGU7XG4gICAgaWYgKHRoaXMuX3N0YXRlSW50ZXJuYWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYHN0YXRlLSR7dGhpcy5fc3RhdGVJbnRlcm5hbH1gKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX3N0YXRlKCk6ICdjb2xsYXBzZWQnIHwgJ21hbnVhbGx5LWV4cGFuZGVkJyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZUludGVybmFsO1xuICB9XG4gIHByaXZhdGUgX3N0YXRlSW50ZXJuYWw6ICdjb2xsYXBzZWQnIHwgJ21hbnVhbGx5LWV4cGFuZGVkJyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICBjYWxsYmFjazogKCkgPT4gdGhpcy5fZXZhbHVhdGVDb2xsYXBzZWRTdGF0ZSgpLFxuICB9KTtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9tYXJrRm9yRm9jdXMgPSBmYWxzZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlEb3duKGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUtleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMubGlzdENoaWxkcmVuLmxlbmd0aCB8fFxuICAgICAgLy8gZG9uJ3QgdHJhcCBuZXN0ZWQgaGFuZGxpbmdcbiAgICAgICgoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgIT09IHRoaXMgJiYgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQgIT09IHRoaXMpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGlzQXJyb3dLZXlQcmVzc2VkKGV2dCkpIHtcbiAgICAgIGlmICh0aGlzLl9zdGF0ZSA9PT0gJ2NvbGxhcHNlZCcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzTmV4dENvbGxhcHNlZChldnQpO1xuICAgICAgfVxuICAgICAgdGhpcy5fZm9jdXNOZXh0KGV2dCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzKTtcbiAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdsb2FkZWQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczxXaXRoTGlzdENoaWxkcmVuPHRoaXM+Pik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGlzdENoaWxkcmVuJykpIHtcbiAgICAgIHRoaXMuX3N5bmNCcmVhZGNydW1icygpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczxXaXRoTGlzdENoaWxkcmVuPHRoaXM+Pik6IHZvaWQge1xuICAgIHN1cGVyLnVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpc3RDaGlsZHJlbicpKSB7XG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuX2V2YWx1YXRlQ29sbGFwc2VkU3RhdGUoKSk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9tYXJrRm9yRm9jdXMgJiYgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgdGhpcy5saXN0Q2hpbGRyZW5bMV0/LmZvY3VzKCk7XG5cbiAgICAgIC8vIFJlc2V0IG1hcmsgZm9yIGZvY3VzXG4gICAgICB0aGlzLl9tYXJrRm9yRm9jdXMgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogQXBwbHkgdGhlIGFyaWEtY3VycmVudCBhdHRyaWJ1dGUgdG8gdGhlIGxhc3Qgc2JiLWJyZWFkY3J1bWIgZWxlbWVudC4gKi9cbiAgcHJpdmF0ZSBfc3luY0JyZWFkY3J1bWJzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdENoaWxkcmVuXG4gICAgICAuc2xpY2UoMCwgLTEpXG4gICAgICAuZmlsdGVyKChjKSA9PiBjLmhhc0F0dHJpYnV0ZSgnYWNjZXNzaWJpbGl0eS1jdXJyZW50JykpXG4gICAgICAuZm9yRWFjaCgoYykgPT4gYy5yZW1vdmVBdHRyaWJ1dGUoJ2FjY2Vzc2liaWxpdHktY3VycmVudCcpKTtcbiAgICB0aGlzLmxpc3RDaGlsZHJlblt0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGggLSAxXT8uc2V0QXR0cmlidXRlKCdhY2Nlc3NpYmlsaXR5LWN1cnJlbnQnLCAncGFnZScpO1xuXG4gICAgLy8gSWYgaXQgaXMgbm90IGV4cGFuZGFibGUsIHJlc2V0IHN0YXRlXG4gICAgaWYgKHRoaXMubGlzdENoaWxkcmVuLmxlbmd0aCA8IE1JTl9CUkVBRENSVU1CU19UT19DT0xMQVBTRSkge1xuICAgICAgdGhpcy5fc3RhdGUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBmb2N1cyBvbiB0aGUgY29ycmVjdCBlbGVtZW50IHdoZW4gdGhlIGVsbGlwc2lzIGJyZWFkY3J1bWIgaXMgZGlzcGxheWVkIGFuZCB0aGUgdXNlciBpcyBuYXZpZ2F0aW5nIHdpdGgga2V5Ym9hcmQncyBhcnJvd3MuXG4gICAqL1xuICBwcml2YXRlIF9mb2N1c05leHRDb2xsYXBzZWQoZXZ0OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgYXJyYXlDb2xsYXBzZWQ6IFNiYkJyZWFkY3J1bWJFbGVtZW50W10gPSBbXG4gICAgICB0aGlzLmxpc3RDaGlsZHJlblswXSxcbiAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignI3NiYi1icmVhZGNydW1iLWVsbGlwc2lzJykgYXMgU2JiQnJlYWRjcnVtYkVsZW1lbnQsXG4gICAgICB0aGlzLmxpc3RDaGlsZHJlblt0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGggLSAxXSxcbiAgICBdO1xuICAgIHRoaXMuX2ZvY3VzTmV4dChldnQsIGFycmF5Q29sbGFwc2VkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZvY3VzTmV4dChcbiAgICBldnQ6IEtleWJvYXJkRXZlbnQsXG4gICAgYnJlYWRjcnVtYnM6IFNiYkJyZWFkY3J1bWJFbGVtZW50W10gPSB0aGlzLmxpc3RDaGlsZHJlbixcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudDogbnVtYmVyID0gYnJlYWRjcnVtYnMuZmluZEluZGV4KFxuICAgICAgKGUpID0+IGUgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgfHwgZSA9PT0gdGhpcy5zaGFkb3dSb290IS5hY3RpdmVFbGVtZW50LFxuICAgICk7XG4gICAgY29uc3QgbmV4dEluZGV4OiBudW1iZXIgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2dCwgY3VycmVudCwgYnJlYWRjcnVtYnMubGVuZ3RoKTtcbiAgICBicmVhZGNydW1ic1tuZXh0SW5kZXhdPy5mb2N1cygpO1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE5vdGU6IGR1ZSB0byBAU3RhdGUgYW5ub3RhdGlvbiBvbiBfc3RhdGUsIHRoaXMgbWV0aG9kIHRyaWdnZXJzIGEgbmV3IHJlbmRlcjsgYXMgYSBjb25zZXF1ZW5jZSwgdGhlIGZvY3VzIGlzIG1vdmVkXG4gICAqIHRvIHRoZSBgYm9keWAsIHNvIGlmIHRoZSBlbGxpcHNpcyBlbGVtZW50IGhhcyBmb2N1cywgaXQncyBhc3luY2hyb25vdXNseSBmb3JjZWQgdG8gdGhlIGZpcnN0IGVsZW1lbnQuXG4gICAqL1xuICBwcml2YXRlIF9leHBhbmRCcmVhZGNydW1icygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdtYW51YWxseS1leHBhbmRlZCc7XG4gICAgdGhpcy5fbWFya0ZvckZvY3VzID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBFdmFsdWF0ZSBpZiB0aGUgZXhwYW5kZWQgYnJlYWRjcnVtYiBlbGVtZW50IGZpdHMgaW4gcGFnZSB3aWR0aCwgb3RoZXJ3aXNlIGl0IG5lZWRzIGVsbGlwc2lzICovXG4gIHByaXZhdGUgX2V2YWx1YXRlQ29sbGFwc2VkU3RhdGUoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuX3N0YXRlICYmXG4gICAgICB0aGlzLnNjcm9sbFdpZHRoID4gdGhpcy5vZmZzZXRXaWR0aCAmJlxuICAgICAgdGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoID49IE1JTl9CUkVBRENSVU1CU19UT19DT0xMQVBTRVxuICAgICkge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnY29sbGFwc2VkJztcbiAgICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLmhvc3REaXNjb25uZWN0ZWQoKTtcbiAgICAgIHRoaXMucmVtb3ZlQ29udHJvbGxlcih0aGlzLl9yZXNpemVPYnNlcnZlcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyQ29sbGFwc2VkKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxsaSBjbGFzcz1cInNiYi1icmVhZGNydW1iLWdyb3VwX19pdGVtXCI+XG4gICAgICAgIDxzbG90IG5hbWU9XCJsaS0wXCI+PC9zbG90PlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cInNiYi1icmVhZGNydW1iLWdyb3VwX19pdGVtXCIgaWQ9XCJzYmItYnJlYWRjcnVtYi1ncm91cC1lbGxpcHNpc1wiPlxuICAgICAgICA8c2JiLWljb25cbiAgICAgICAgICBuYW1lPVwiY2hldnJvbi1zbWFsbC1yaWdodC1zbWFsbFwiXG4gICAgICAgICAgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cF9fZGl2aWRlci1pY29uXCJcbiAgICAgICAgPjwvc2JiLWljb24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBpZD1cInNiYi1icmVhZGNydW1iLWVsbGlwc2lzXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPSR7aTE4bkJyZWFkY3J1bWJFbGxpcHNpc0J1dHRvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5fZXhwYW5kQnJlYWRjcnVtYnMoKX1cbiAgICAgICAgPlxuICAgICAgICAgIC4uLlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cF9faXRlbVwiPlxuICAgICAgICA8c2JiLWljb25cbiAgICAgICAgICBuYW1lPVwiY2hldnJvbi1zbWFsbC1yaWdodC1zbWFsbFwiXG4gICAgICAgICAgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cF9fZGl2aWRlci1pY29uXCJcbiAgICAgICAgPjwvc2JiLWljb24+XG4gICAgICAgIDxzbG90IG5hbWU9JHtgbGktJHt0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGggLSAxfWB9Pjwvc2xvdD5cbiAgICAgIDwvbGk+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckV4cGFuZGVkKCk6IFRlbXBsYXRlUmVzdWx0W10ge1xuICAgIHJldHVybiB0aGlzLmxpc3RTbG90RW50cmllcygpLm1hcChcbiAgICAgIChzbG90LCBpbmRleCwgYXJyYXkpID0+IGh0bWxgXG4gICAgICAgIDxsaSBjbGFzcz1cInNiYi1icmVhZGNydW1iLWdyb3VwX19pdGVtXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT0ke3Nsb3QubmFtZX0+PC9zbG90PlxuICAgICAgICAgICR7aW5kZXggIT09IGFycmF5Lmxlbmd0aCAtIDFcbiAgICAgICAgICAgID8gaHRtbGA8c2JiLWljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiY2hldnJvbi1zbWFsbC1yaWdodC1zbWFsbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cF9fZGl2aWRlci1pY29uXCJcbiAgICAgICAgICAgICAgPjwvc2JiLWljb24+YFxuICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICA8L2xpPlxuICAgICAgYCxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8b2wgY2xhc3M9XCJzYmItYnJlYWRjcnVtYi1ncm91cFwiPlxuICAgICAgICAke3RoaXMuX3N0YXRlID09PSAnY29sbGFwc2VkJyA/IHRoaXMuX3JlbmRlckNvbGxhcHNlZCgpIDogdGhpcy5fcmVuZGVyRXhwYW5kZWQoKX1cbiAgICAgIDwvb2w+XG4gICAgICAke3RoaXMucmVuZGVySGlkZGVuU2xvdCgpfVxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1icmVhZGNydW1iLWdyb3VwJzogU2JiQnJlYWRjcnVtYkdyb3VwRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FDNEJBLElBQU0sOEJBQThCOzs7Ozs7SUFPdkIsbUNBQXlCO21CQUFTLHNCQUc3QyxXQUFXOzs7Y0FIQSxrQ0FBa0MsWUFHbEM7Ozs2QkFRVixPQUFPLENBQUE7QUFDUixnQkFBQSxNQUFBLE1BQUEsd0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxZQUFBO0tBQUEsTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFZLFNBQU07O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxNQUFBLDJCQUFBOzs7Ozs7Ozs7QUFSYyxRQUFBLGNBQXNCOzs7QUFDL0IsUUFBQSxzQkFBd0MsQ0FBQyxlQUFlOzs7QUFDL0MsUUFBQSxPQUFPOzs7QUFDaEIsUUFBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLHlCQUFNLENBQUM7OztFQUtu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
|