@swisspost/design-system-components 10.4.0 → 10.6.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/README.md +2 -2
- package/dist/cjs/breakpoints-Kruvy8Dm.js +47 -0
- package/dist/cjs/{create-validator-decorator-BtgLWaMJ.js → create-validator-decorator-Cy5yN6u9.js} +1 -1
- package/dist/cjs/{event-from-CwMw19f8.js → event-from-CTcQxB9-.js} +19 -13
- package/dist/cjs/{index-CW10QvjR.js → index-B3PXzvDk.js} +1 -1
- package/dist/cjs/{breakpoints-B0Olgvgc.js → index-CggFmZ8n.js} +0 -42
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{one-of-vJeW7S4_.js → one-of-CRFrfihj.js} +1 -1
- package/dist/cjs/{package-CL8OSAS4.js → package-pKyFPwiA.js} +1 -1
- package/dist/cjs/{pattern-Zmn3wpyp.js → pattern-D329DFcf.js} +1 -1
- package/dist/cjs/post-accordion_2.cjs.entry.js +7 -7
- package/dist/cjs/post-autocomplete.cjs.entry.js +70 -55
- package/dist/cjs/post-avatar.cjs.entry.js +7 -7
- package/dist/cjs/post-back-to-top.cjs.entry.js +25 -13
- package/dist/cjs/post-banner.cjs.entry.js +6 -13
- package/dist/cjs/post-breadcrumb-item.cjs.entry.js +42 -12
- package/dist/cjs/post-breadcrumbs.cjs.entry.js +222 -71
- package/dist/cjs/post-closebutton_14.cjs.entry.js +431 -233
- package/dist/cjs/post-collapsible_2.cjs.entry.js +9 -9
- package/dist/cjs/post-components.cjs.js +2 -2
- package/dist/cjs/post-date-picker.cjs.entry.js +18 -16
- package/dist/cjs/post-footer.cjs.entry.js +8 -8
- package/dist/cjs/post-linkarea.cjs.entry.js +3 -3
- package/dist/cjs/post-listbox-option.cjs.entry.js +4 -4
- package/dist/cjs/post-listbox.cjs.entry.js +6 -6
- package/dist/cjs/post-number-input.cjs.entry.js +7 -6
- package/dist/cjs/post-pagination.cjs.entry.js +6 -6
- package/dist/cjs/post-popover-trigger.cjs.entry.js +8 -8
- package/dist/cjs/post-popover.cjs.entry.js +11 -11
- package/dist/cjs/post-progressbar.cjs.entry.js +5 -5
- package/dist/cjs/post-rating.cjs.entry.js +7 -7
- package/dist/cjs/post-side-navigation-trigger.cjs.entry.js +8 -8
- package/dist/cjs/post-side-navigation.cjs.entry.js +9 -9
- package/dist/cjs/post-stepper-item.cjs.entry.js +3 -3
- package/dist/cjs/post-stepper.cjs.entry.js +8 -8
- package/dist/cjs/post-tab-item.cjs.entry.js +7 -7
- package/dist/cjs/post-tab-panel.cjs.entry.js +7 -7
- package/dist/cjs/post-tabs.cjs.entry.js +9 -9
- package/dist/cjs/post-tooltip-trigger.cjs.entry.js +8 -8
- package/dist/cjs/post-tooltip.cjs.entry.js +6 -6
- package/dist/cjs/{required-DRnPokVn.js → required-DhAEd0c7.js} +1 -1
- package/dist/cjs/{type-CNcU_-B2.js → type-2Ma9dvHs.js} +1 -1
- package/dist/cjs/{url-DgJ3lXQz.js → url-DePscsTj.js} +1 -1
- package/dist/collection/components/post-autocomplete/post-autocomplete.js +65 -50
- package/dist/collection/components/post-back-to-top/post-back-to-top.js +19 -7
- package/dist/collection/components/post-banner/post-banner.js +2 -17
- package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.css +1 -1
- package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +59 -4
- package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.css +1 -1
- package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +249 -71
- package/dist/collection/components/post-closebutton/post-closebutton.js +7 -8
- package/dist/collection/components/post-collapsible/post-collapsible.js +1 -1
- package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +2 -2
- package/dist/collection/components/post-date-picker/native-mask-element.js +1 -1
- package/dist/collection/components/post-date-picker/post-date-picker.js +11 -9
- package/dist/collection/components/post-footer/post-footer.js +2 -2
- package/dist/collection/components/post-header/post-header.js +2 -2
- package/dist/collection/components/post-icon/post-icon.js +1 -1
- package/dist/collection/components/post-language-menu/post-language-menu.js +1 -1
- package/dist/collection/components/post-linkarea/post-linkarea.js +1 -1
- package/dist/collection/components/post-listbox/post-listbox.js +2 -2
- package/dist/collection/components/post-listbox-option/post-listbox-option.js +2 -2
- package/dist/collection/components/post-logo/post-logo.js +1 -1
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +1 -1
- package/dist/collection/components/post-megadropdown/post-megadropdown.js +3 -3
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +1 -1
- package/dist/collection/components/post-menu/post-menu.js +23 -8
- package/dist/collection/components/post-menu-item/post-menu-item.css +1 -1
- package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +1 -1
- package/dist/collection/components/post-number-input/post-number-input.js +2 -2
- package/dist/collection/components/post-popover/post-popover.css +1 -1
- package/dist/collection/components/post-popover/post-popover.js +4 -4
- package/dist/collection/components/post-popover-trigger/post-popover-trigger.js +3 -3
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +71 -43
- package/dist/collection/components/post-progressbar/post-progressbar.js +1 -1
- package/dist/collection/components/post-rating/post-rating.js +1 -1
- package/dist/collection/components/post-side-navigation/post-side-navigation.css +1 -1
- package/dist/collection/components/post-side-navigation/post-side-navigation.js +1 -1
- package/dist/collection/components/post-side-navigation-trigger/post-side-navigation-trigger.js +1 -1
- package/dist/collection/components/post-stepper/post-stepper.js +1 -1
- package/dist/collection/components/post-stepper-item/post-stepper-item.js +1 -1
- package/dist/collection/components/post-tab-item/post-tab-item.js +2 -2
- package/dist/collection/components/post-tab-panel/post-tab-panel.js +1 -1
- package/dist/collection/components/post-tabs/post-tabs.css +1 -1
- package/dist/collection/components/post-tabs/post-tabs.js +2 -2
- package/dist/collection/components/post-togglebutton/post-togglebutton.js +1 -1
- package/dist/collection/components/post-tooltip/post-tooltip.js +2 -2
- package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +2 -2
- package/dist/collection/utils/breakpoints.js +11 -9
- package/dist/collection/utils/closable-target.js +38 -0
- package/dist/collection/utils/event-from.js +18 -13
- package/dist/collection/utils/floating-ui.js +72 -0
- package/dist/collection/utils/index.js +1 -0
- package/dist/components/breakpoints.js +1 -1
- package/dist/components/event-from.js +1 -1
- package/dist/components/index2.js +1 -0
- package/dist/components/package.js +1 -1
- package/dist/components/post-autocomplete.js +1 -1
- package/dist/components/post-back-to-top.js +1 -1
- package/dist/components/post-banner.js +1 -1
- package/dist/components/post-breadcrumb-item.js +1 -1
- package/dist/components/post-breadcrumbs.js +1 -1
- package/dist/components/post-closebutton2.js +1 -1
- package/dist/components/post-collapsible-trigger2.js +1 -1
- package/dist/components/post-collapsible2.js +1 -1
- package/dist/components/post-date-picker.js +1 -1
- package/dist/components/post-footer.js +1 -1
- package/dist/components/post-header.js +1 -1
- package/dist/components/post-icon2.js +1 -1
- package/dist/components/post-linkarea.js +1 -1
- package/dist/components/post-listbox-option.js +1 -1
- package/dist/components/post-listbox.js +1 -1
- package/dist/components/post-logo.js +1 -1
- package/dist/components/post-mainnavigation.js +1 -1
- package/dist/components/post-megadropdown-trigger.js +1 -1
- package/dist/components/post-megadropdown.js +1 -1
- package/dist/components/post-menu-item2.js +1 -1
- package/dist/components/post-menu-trigger2.js +1 -1
- package/dist/components/post-menu2.js +1 -1
- package/dist/components/post-number-input.js +1 -1
- package/dist/components/post-popover-trigger.js +1 -1
- package/dist/components/post-popover.js +1 -1
- package/dist/components/post-popovercontainer2.js +1 -1
- package/dist/components/post-progressbar.js +1 -1
- package/dist/components/post-rating.js +1 -1
- package/dist/components/post-side-navigation-trigger.js +1 -1
- package/dist/components/post-side-navigation.js +1 -1
- package/dist/components/post-stepper-item.js +1 -1
- package/dist/components/post-stepper.js +1 -1
- package/dist/components/post-tab-item.js +1 -1
- package/dist/components/post-tab-panel.js +1 -1
- package/dist/components/post-tabs.js +1 -1
- package/dist/components/post-togglebutton2.js +1 -1
- package/dist/components/post-tooltip-trigger.js +1 -1
- package/dist/components/post-tooltip.js +1 -1
- package/dist/components/react/index.js +1 -1
- package/dist/components/react/{p-Bwko4UKh.js → p-3RU9XwVO.js} +1 -1
- package/dist/components/react/p-5LuCes5o.js +1 -0
- package/dist/components/react/p-B1TcktiB.js +1 -0
- package/dist/components/react/{p-4wtxqxXu.js → p-B2jsM_Ov.js} +1 -1
- package/dist/components/react/p-BEcxHjuM.js +1 -0
- package/dist/components/react/p-BN2dfUQ0.js +1 -0
- package/dist/components/react/p-BPUhha1U.js +1 -0
- package/dist/{post-components/p-C-lLRsYC.js → components/react/p-BdLRXQqY.js} +1 -1
- package/dist/components/react/{p-BSb74xQy.js → p-Bnb_TyDh.js} +1 -1
- package/dist/components/react/p-CVVXnYLU.js +1 -0
- package/dist/components/react/{p-9RCG8BWM.js → p-CcDLIogT.js} +1 -1
- package/dist/components/react/{p-CSmrQ__L.js → p-CdggfEzz.js} +1 -1
- package/dist/components/react/p-CnN4Jdtv.js +1 -0
- package/dist/components/react/{p-D-imniYA.js → p-CzsG0uCA.js} +1 -1
- package/dist/components/react/p-DeO0rZ1T.js +1 -0
- package/dist/components/react/p-DffT6evQ.js +1 -0
- package/dist/components/react/p-T8T3po4z.js +1 -0
- package/dist/components/react/p-WXzzOdnl.js +1 -0
- package/dist/components/react/p-bR8vy6-s.js +1 -0
- package/dist/components/react/{p-B1kYo1K9.js → p-m1-sOx5T.js} +1 -1
- package/dist/components/react/post-accordion-item.js +1 -1
- package/dist/components/react/post-accordion.js +1 -1
- package/dist/components/react/post-autocomplete.js +1 -1
- package/dist/components/react/post-avatar.js +1 -1
- package/dist/components/react/post-back-to-top.js +1 -1
- package/dist/components/react/post-banner.js +1 -1
- package/dist/components/react/post-breadcrumb-item.js +1 -1
- package/dist/components/react/post-breadcrumbs.js +1 -1
- package/dist/components/react/post-closebutton.js +1 -1
- package/dist/components/react/post-collapsible-trigger.js +1 -1
- package/dist/components/react/post-collapsible.js +1 -1
- package/dist/components/react/post-date-picker.js +1 -1
- package/dist/components/react/post-footer.js +1 -1
- package/dist/components/react/post-header.js +1 -1
- package/dist/components/react/post-icon.js +1 -1
- package/dist/components/react/post-language-menu-item.js +1 -1
- package/dist/components/react/post-language-menu.js +1 -1
- package/dist/components/react/post-linkarea.js +1 -1
- package/dist/components/react/post-listbox-option.js +1 -1
- package/dist/components/react/post-listbox.js +1 -1
- package/dist/components/react/post-logo.js +1 -1
- package/dist/components/react/post-mainnavigation.js +1 -1
- package/dist/components/react/post-megadropdown-trigger.js +1 -1
- package/dist/components/react/post-megadropdown.js +1 -1
- package/dist/components/react/post-menu-item.js +1 -1
- package/dist/components/react/post-menu-trigger.js +1 -1
- package/dist/components/react/post-menu.js +1 -1
- package/dist/components/react/post-number-input.js +1 -1
- package/dist/components/react/post-pagination.js +1 -1
- package/dist/components/react/post-popover-trigger.js +1 -1
- package/dist/components/react/post-popover.js +1 -1
- package/dist/components/react/post-popovercontainer.js +1 -1
- package/dist/components/react/post-progressbar.js +1 -1
- package/dist/components/react/post-rating.js +1 -1
- package/dist/components/react/post-side-navigation-trigger.js +1 -1
- package/dist/components/react/post-side-navigation.js +1 -1
- package/dist/components/react/post-stepper-item.js +1 -1
- package/dist/components/react/post-stepper.js +1 -1
- package/dist/components/react/post-tab-item.js +1 -1
- package/dist/components/react/post-tab-panel.js +1 -1
- package/dist/components/react/post-tabs.js +1 -1
- package/dist/components/react/post-togglebutton.js +1 -1
- package/dist/components/react/post-tooltip-trigger.js +1 -1
- package/dist/components/react/post-tooltip.js +1 -1
- package/dist/docs.json +118 -27
- package/dist/esm/breakpoints-I1j7a0bW.js +45 -0
- package/dist/esm/{create-validator-decorator-CNUaQboh.js → create-validator-decorator-C2XlYkNB.js} +1 -1
- package/dist/esm/{event-from-rEfV4v4a.js → event-from-BEcxHjuM.js} +19 -14
- package/dist/esm/{index-sn7oKSwC.js → index-BjziJWh2.js} +1 -1
- package/dist/esm/{breakpoints-BQ3HlJPr.js → index-bR8vy6-s.js} +1 -42
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{one-of-C6Ironyj.js → one-of-Do1iao-k.js} +1 -1
- package/dist/esm/{package-tTf1w3A9.js → package-T8T3po4z.js} +1 -1
- package/dist/esm/{pattern-57oD--q3.js → pattern-BZDucOTq.js} +1 -1
- package/dist/esm/post-accordion_2.entry.js +7 -7
- package/dist/esm/post-autocomplete.entry.js +70 -55
- package/dist/esm/post-avatar.entry.js +7 -7
- package/dist/esm/post-back-to-top.entry.js +25 -13
- package/dist/esm/post-banner.entry.js +6 -13
- package/dist/esm/post-breadcrumb-item.entry.js +42 -12
- package/dist/esm/post-breadcrumbs.entry.js +222 -71
- package/dist/esm/post-closebutton_14.entry.js +430 -232
- package/dist/esm/post-collapsible_2.entry.js +9 -9
- package/dist/esm/post-components.js +3 -3
- package/dist/esm/post-date-picker.entry.js +18 -16
- package/dist/esm/post-footer.entry.js +8 -8
- package/dist/esm/post-linkarea.entry.js +3 -3
- package/dist/esm/post-listbox-option.entry.js +4 -4
- package/dist/esm/post-listbox.entry.js +6 -6
- package/dist/esm/post-number-input.entry.js +6 -5
- package/dist/esm/post-pagination.entry.js +6 -6
- package/dist/esm/post-popover-trigger.entry.js +8 -8
- package/dist/esm/post-popover.entry.js +11 -11
- package/dist/esm/post-progressbar.entry.js +5 -5
- package/dist/esm/post-rating.entry.js +7 -7
- package/dist/esm/post-side-navigation-trigger.entry.js +8 -8
- package/dist/esm/post-side-navigation.entry.js +9 -9
- package/dist/esm/post-stepper-item.entry.js +3 -3
- package/dist/esm/post-stepper.entry.js +8 -8
- package/dist/esm/post-tab-item.entry.js +7 -7
- package/dist/esm/post-tab-panel.entry.js +7 -7
- package/dist/esm/post-tabs.entry.js +9 -9
- package/dist/esm/post-tooltip-trigger.entry.js +8 -8
- package/dist/esm/post-tooltip.entry.js +6 -6
- package/dist/esm/{required-D2rl2XZJ.js → required-B0X7uy13.js} +1 -1
- package/dist/esm/{type-CGynDrfh.js → type-CF1dOg6D.js} +1 -1
- package/dist/esm/{url-1wyUfUv-.js → url-BL7d6iWZ.js} +1 -1
- package/dist/post-components/{p-167191e5.entry.js → p-0e922531.entry.js} +1 -1
- package/dist/post-components/{p-cf6eacab.entry.js → p-1ec27142.entry.js} +1 -1
- package/dist/post-components/{p-da217dbc.entry.js → p-2005eb98.entry.js} +1 -1
- package/dist/post-components/p-2cff5b3a.entry.js +1 -0
- package/dist/post-components/p-53bd2128.entry.js +1 -0
- package/dist/post-components/{p-212c71e4.entry.js → p-59b30e90.entry.js} +1 -1
- package/dist/post-components/{p-beed9922.entry.js → p-60550edb.entry.js} +1 -1
- package/dist/post-components/p-655ded00.entry.js +1 -0
- package/dist/post-components/p-76cc3c9a.entry.js +1 -0
- package/dist/post-components/{p-3149d866.entry.js → p-8012cc3b.entry.js} +1 -1
- package/dist/post-components/p-819c93de.entry.js +1 -0
- package/dist/post-components/p-840acd3c.entry.js +1 -0
- package/dist/post-components/p-87b1034f.entry.js +1 -0
- package/dist/post-components/p-88f754e9.entry.js +1 -0
- package/dist/post-components/p-9S_5_Zh8.js +1 -0
- package/dist/post-components/p-BEcxHjuM.js +1 -0
- package/dist/post-components/p-BYfu3J2D.js +1 -0
- package/dist/post-components/p-BjziJWh2.js +2 -0
- package/dist/post-components/p-BoYe-VVx.js +1 -0
- package/dist/post-components/p-CbbADNiv.js +1 -0
- package/dist/post-components/p-DgnQe03V.js +1 -0
- package/dist/post-components/p-DlKbBdcP.js +1 -0
- package/dist/post-components/p-I1j7a0bW.js +1 -0
- package/dist/post-components/p-T8T3po4z.js +1 -0
- package/dist/post-components/{p-a01ea634.entry.js → p-a32d3050.entry.js} +1 -1
- package/dist/post-components/p-b4229624.entry.js +1 -0
- package/dist/post-components/{p-96bf6b01.entry.js → p-b9faa76b.entry.js} +1 -1
- package/dist/post-components/p-bR8vy6-s.js +1 -0
- package/dist/post-components/{p-70fbe469.entry.js → p-ba1b4ba0.entry.js} +1 -1
- package/dist/post-components/p-c0ae13b7.entry.js +1 -0
- package/dist/post-components/p-c9dcdebb.entry.js +1 -0
- package/dist/post-components/p-ccf8020b.entry.js +1 -0
- package/dist/post-components/p-cd68d3a2.entry.js +1 -0
- package/dist/post-components/p-cdc7b8d3.entry.js +1 -0
- package/dist/post-components/{p-1cf5bc67.entry.js → p-d7c9a969.entry.js} +1 -1
- package/dist/post-components/p-db11f781.entry.js +1 -0
- package/dist/post-components/{p-0323b0f3.entry.js → p-dc285087.entry.js} +1 -1
- package/dist/post-components/{p-e8d9723e.entry.js → p-de6f1816.entry.js} +1 -1
- package/dist/post-components/p-dec8bd99.entry.js +1 -0
- package/dist/post-components/p-f9a8ee94.entry.js +1 -0
- package/dist/post-components/post-components.css +2 -2
- package/dist/post-components/post-components.esm.js +1 -1
- package/dist/types/components/post-autocomplete/post-autocomplete.d.ts +18 -6
- package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +2 -1
- package/dist/types/components/post-banner/post-banner.d.ts +0 -1
- package/dist/types/components/post-breadcrumb-item/post-breadcrumb-item.d.ts +12 -1
- package/dist/types/components/post-breadcrumbs/post-breadcrumbs.d.ts +54 -14
- package/dist/types/components/post-closebutton/post-closebutton.d.ts +1 -1
- package/dist/types/components/post-menu/post-menu.d.ts +1 -0
- package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +8 -5
- package/dist/types/components.d.ts +38 -7
- package/dist/types/utils/breakpoints.d.ts +1 -0
- package/dist/types/utils/closable-target.d.ts +5 -0
- package/dist/types/utils/event-from.d.ts +8 -0
- package/dist/types/utils/floating-ui.d.ts +12 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/hydrate/index.js +1085 -665
- package/hydrate/index.mjs +1085 -665
- package/package.json +31 -22
- package/dist/components/react/p-BXqGI600.js +0 -1
- package/dist/components/react/p-B_WnO-QF.js +0 -1
- package/dist/components/react/p-BaB8wJvk.js +0 -1
- package/dist/components/react/p-Bji_4dfL.js +0 -1
- package/dist/components/react/p-CX2E_IXB.js +0 -1
- package/dist/components/react/p-CwmQwirr.js +0 -1
- package/dist/components/react/p-D17tCsFk.js +0 -1
- package/dist/components/react/p-DD1c_IgL.js +0 -1
- package/dist/components/react/p-Df31eVdi.js +0 -1
- package/dist/components/react/p-I0dqoE80.js +0 -1
- package/dist/components/react/p-rEfV4v4a.js +0 -1
- package/dist/components/react/p-tTf1w3A9.js +0 -1
- package/dist/post-components/p-06ddd73b.entry.js +0 -1
- package/dist/post-components/p-090e52db.entry.js +0 -1
- package/dist/post-components/p-292a9784.entry.js +0 -1
- package/dist/post-components/p-2de6fe62.entry.js +0 -1
- package/dist/post-components/p-39ff8127.entry.js +0 -1
- package/dist/post-components/p-3a968b19.entry.js +0 -1
- package/dist/post-components/p-472_tiaS.js +0 -1
- package/dist/post-components/p-58422de1.entry.js +0 -1
- package/dist/post-components/p-5873a90c.entry.js +0 -1
- package/dist/post-components/p-986fa1c1.entry.js +0 -1
- package/dist/post-components/p-BQ3HlJPr.js +0 -1
- package/dist/post-components/p-B_FOhVrp.js +0 -1
- package/dist/post-components/p-CeNqFJV7.js +0 -1
- package/dist/post-components/p-DYDdaLz-.js +0 -1
- package/dist/post-components/p-DoNhJ2D7.js +0 -1
- package/dist/post-components/p-b1d2384a.entry.js +0 -1
- package/dist/post-components/p-b535fc10.entry.js +0 -1
- package/dist/post-components/p-b99e6621.entry.js +0 -1
- package/dist/post-components/p-bf83a3fb.entry.js +0 -1
- package/dist/post-components/p-c46bc56f.entry.js +0 -1
- package/dist/post-components/p-ce8132a9.entry.js +0 -1
- package/dist/post-components/p-d72e830b.entry.js +0 -1
- package/dist/post-components/p-e08d26f4.entry.js +0 -1
- package/dist/post-components/p-rEfV4v4a.js +0 -1
- package/dist/post-components/p-sn7oKSwC.js +0 -2
- package/dist/post-components/p-tTf1w3A9.js +0 -1
package/hydrate/index.mjs
CHANGED
|
@@ -5887,182 +5887,24 @@ function Url() {
|
|
|
5887
5887
|
});
|
|
5888
5888
|
}
|
|
5889
5889
|
|
|
5890
|
-
/* eslint-disable no-undefined,no-param-reassign,no-shadow */
|
|
5891
|
-
|
|
5892
|
-
/**
|
|
5893
|
-
* Throttle execution of a function. Especially useful for rate limiting
|
|
5894
|
-
* execution of handlers on events like resize and scroll.
|
|
5895
|
-
*
|
|
5896
|
-
* @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)
|
|
5897
|
-
* are most useful.
|
|
5898
|
-
* @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,
|
|
5899
|
-
* as-is, to `callback` when the throttled-function is executed.
|
|
5900
|
-
* @param {object} [options] - An object to configure options.
|
|
5901
|
-
* @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds
|
|
5902
|
-
* while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed
|
|
5903
|
-
* one final time after the last throttled-function call. (After the throttled-function has not been called for
|
|
5904
|
-
* `delay` milliseconds, the internal counter is reset).
|
|
5905
|
-
* @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback
|
|
5906
|
-
* immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that
|
|
5907
|
-
* callback will never executed if both noLeading = true and noTrailing = true.
|
|
5908
|
-
* @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is
|
|
5909
|
-
* false (at end), schedule `callback` to execute after `delay` ms.
|
|
5910
|
-
*
|
|
5911
|
-
* @returns {Function} A new, throttled, function.
|
|
5912
|
-
*/
|
|
5913
|
-
function throttle (delay, callback, options) {
|
|
5914
|
-
var _ref = options || {},
|
|
5915
|
-
_ref$noTrailing = _ref.noTrailing,
|
|
5916
|
-
noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing,
|
|
5917
|
-
_ref$noLeading = _ref.noLeading,
|
|
5918
|
-
noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading,
|
|
5919
|
-
_ref$debounceMode = _ref.debounceMode,
|
|
5920
|
-
debounceMode = _ref$debounceMode === void 0 ? undefined : _ref$debounceMode;
|
|
5921
|
-
/*
|
|
5922
|
-
* After wrapper has stopped being called, this timeout ensures that
|
|
5923
|
-
* `callback` is executed at the proper times in `throttle` and `end`
|
|
5924
|
-
* debounce modes.
|
|
5925
|
-
*/
|
|
5926
|
-
var timeoutID;
|
|
5927
|
-
var cancelled = false;
|
|
5928
|
-
|
|
5929
|
-
// Keep track of the last time `callback` was executed.
|
|
5930
|
-
var lastExec = 0;
|
|
5931
|
-
|
|
5932
|
-
// Function to clear existing timeout
|
|
5933
|
-
function clearExistingTimeout() {
|
|
5934
|
-
if (timeoutID) {
|
|
5935
|
-
clearTimeout(timeoutID);
|
|
5936
|
-
}
|
|
5937
|
-
}
|
|
5938
|
-
|
|
5939
|
-
// Function to cancel next exec
|
|
5940
|
-
function cancel(options) {
|
|
5941
|
-
var _ref2 = options || {},
|
|
5942
|
-
_ref2$upcomingOnly = _ref2.upcomingOnly,
|
|
5943
|
-
upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;
|
|
5944
|
-
clearExistingTimeout();
|
|
5945
|
-
cancelled = !upcomingOnly;
|
|
5946
|
-
}
|
|
5947
|
-
|
|
5948
|
-
/*
|
|
5949
|
-
* The `wrapper` function encapsulates all of the throttling / debouncing
|
|
5950
|
-
* functionality and when executed will limit the rate at which `callback`
|
|
5951
|
-
* is executed.
|
|
5952
|
-
*/
|
|
5953
|
-
function wrapper() {
|
|
5954
|
-
for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
5955
|
-
arguments_[_key] = arguments[_key];
|
|
5956
|
-
}
|
|
5957
|
-
var self = this;
|
|
5958
|
-
var elapsed = Date.now() - lastExec;
|
|
5959
|
-
if (cancelled) {
|
|
5960
|
-
return;
|
|
5961
|
-
}
|
|
5962
|
-
|
|
5963
|
-
// Execute `callback` and update the `lastExec` timestamp.
|
|
5964
|
-
function exec() {
|
|
5965
|
-
lastExec = Date.now();
|
|
5966
|
-
callback.apply(self, arguments_);
|
|
5967
|
-
}
|
|
5968
|
-
|
|
5969
|
-
/*
|
|
5970
|
-
* If `debounceMode` is true (at begin) this is used to clear the flag
|
|
5971
|
-
* to allow future `callback` executions.
|
|
5972
|
-
*/
|
|
5973
|
-
function clear() {
|
|
5974
|
-
timeoutID = undefined;
|
|
5975
|
-
}
|
|
5976
|
-
if (!noLeading && debounceMode && !timeoutID) {
|
|
5977
|
-
/*
|
|
5978
|
-
* Since `wrapper` is being called for the first time and
|
|
5979
|
-
* `debounceMode` is true (at begin), execute `callback`
|
|
5980
|
-
* and noLeading != true.
|
|
5981
|
-
*/
|
|
5982
|
-
exec();
|
|
5983
|
-
}
|
|
5984
|
-
clearExistingTimeout();
|
|
5985
|
-
if (debounceMode === undefined && elapsed > delay) {
|
|
5986
|
-
if (noLeading) {
|
|
5987
|
-
/*
|
|
5988
|
-
* In throttle mode with noLeading, if `delay` time has
|
|
5989
|
-
* been exceeded, update `lastExec` and schedule `callback`
|
|
5990
|
-
* to execute after `delay` ms.
|
|
5991
|
-
*/
|
|
5992
|
-
lastExec = Date.now();
|
|
5993
|
-
if (!noTrailing) {
|
|
5994
|
-
timeoutID = setTimeout(debounceMode ? clear : exec, delay);
|
|
5995
|
-
}
|
|
5996
|
-
} else {
|
|
5997
|
-
/*
|
|
5998
|
-
* In throttle mode without noLeading, if `delay` time has been exceeded, execute
|
|
5999
|
-
* `callback`.
|
|
6000
|
-
*/
|
|
6001
|
-
exec();
|
|
6002
|
-
}
|
|
6003
|
-
} else if (noTrailing !== true) {
|
|
6004
|
-
/*
|
|
6005
|
-
* In trailing throttle mode, since `delay` time has not been
|
|
6006
|
-
* exceeded, schedule `callback` to execute `delay` ms after most
|
|
6007
|
-
* recent execution.
|
|
6008
|
-
*
|
|
6009
|
-
* If `debounceMode` is true (at begin), schedule `clear` to execute
|
|
6010
|
-
* after `delay` ms.
|
|
6011
|
-
*
|
|
6012
|
-
* If `debounceMode` is false (at end), schedule `callback` to
|
|
6013
|
-
* execute after `delay` ms.
|
|
6014
|
-
*/
|
|
6015
|
-
timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);
|
|
6016
|
-
}
|
|
6017
|
-
}
|
|
6018
|
-
wrapper.cancel = cancel;
|
|
6019
|
-
|
|
6020
|
-
// Return the wrapper function.
|
|
6021
|
-
return wrapper;
|
|
6022
|
-
}
|
|
6023
|
-
|
|
6024
|
-
/* eslint-disable no-undefined */
|
|
6025
|
-
|
|
6026
|
-
/**
|
|
6027
|
-
* Debounce execution of a function. Debouncing, unlike throttling,
|
|
6028
|
-
* guarantees that a function is only executed a single time, either at the
|
|
6029
|
-
* very beginning of a series of calls, or at the very end.
|
|
6030
|
-
*
|
|
6031
|
-
* @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.
|
|
6032
|
-
* @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,
|
|
6033
|
-
* to `callback` when the debounced-function is executed.
|
|
6034
|
-
* @param {object} [options] - An object to configure options.
|
|
6035
|
-
* @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds
|
|
6036
|
-
* after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.
|
|
6037
|
-
* (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).
|
|
6038
|
-
*
|
|
6039
|
-
* @returns {Function} A new, debounced function.
|
|
6040
|
-
*/
|
|
6041
|
-
function debounce$1 (delay, callback, options) {
|
|
6042
|
-
var _ref = {},
|
|
6043
|
-
_ref$atBegin = _ref.atBegin,
|
|
6044
|
-
atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin;
|
|
6045
|
-
return throttle(delay, callback, {
|
|
6046
|
-
debounceMode: atBegin !== false
|
|
6047
|
-
});
|
|
6048
|
-
}
|
|
6049
|
-
|
|
6050
5890
|
class Breakpoint {
|
|
6051
5891
|
constructor() {
|
|
6052
5892
|
this.breakpoints = [
|
|
6053
|
-
{ key: 'xl', device: 'desktop', minWidth: 1280 },
|
|
6054
|
-
{ key: 'lg', device: 'desktop', minWidth: 1024 },
|
|
6055
|
-
{ key: 'md', device: 'tablet', minWidth: 780 },
|
|
6056
|
-
{ key: 'sm', device: 'tablet', minWidth: 600 },
|
|
6057
|
-
{ key: 'xs', device: 'mobile', minWidth: 0 },
|
|
5893
|
+
{ key: 'xl', device: 'desktop', minWidth: 1280, mediaQuery: '(min-width: 1280px)' },
|
|
5894
|
+
{ key: 'lg', device: 'desktop', minWidth: 1024, mediaQuery: '(min-width: 1024px)' },
|
|
5895
|
+
{ key: 'md', device: 'tablet', minWidth: 780, mediaQuery: '(min-width: 780px)' },
|
|
5896
|
+
{ key: 'sm', device: 'tablet', minWidth: 600, mediaQuery: '(min-width: 600px)' },
|
|
5897
|
+
{ key: 'xs', device: 'mobile', minWidth: 0, mediaQuery: '(min-width: 0px)' },
|
|
6058
5898
|
];
|
|
6059
5899
|
this.resizeObserver = globalThis.ResizeObserver
|
|
6060
5900
|
? new ResizeObserver(() => this.updateCurrentBreakpoint())
|
|
6061
5901
|
: null;
|
|
6062
|
-
this.updateCurrentBreakpoint =
|
|
5902
|
+
this.updateCurrentBreakpoint = (options = { emitEvents: true }) => {
|
|
6063
5903
|
const previousBreakpoint = this.currentBreakpoint;
|
|
6064
5904
|
const newBreakpoint = this.breakpoints.find(breakpoint => {
|
|
6065
|
-
return
|
|
5905
|
+
return globalThis.matchMedia
|
|
5906
|
+
? globalThis.matchMedia(breakpoint.mediaQuery).matches
|
|
5907
|
+
: breakpoint.minWidth <= document.documentElement.clientWidth;
|
|
6066
5908
|
});
|
|
6067
5909
|
if (!newBreakpoint)
|
|
6068
5910
|
return;
|
|
@@ -6070,9 +5912,10 @@ class Breakpoint {
|
|
|
6070
5912
|
if (!options.emitEvents)
|
|
6071
5913
|
return;
|
|
6072
5914
|
Object.keys(this.currentBreakpoint)
|
|
5915
|
+
.filter(key => key !== 'mediaQuery')
|
|
6073
5916
|
.filter(key => !previousBreakpoint || this.currentBreakpoint[key] !== previousBreakpoint[key])
|
|
6074
5917
|
.forEach((key) => this.dispatchEvent(key));
|
|
6075
|
-
}
|
|
5918
|
+
};
|
|
6076
5919
|
if (this.resizeObserver) {
|
|
6077
5920
|
this.updateCurrentBreakpoint({ emitEvents: false });
|
|
6078
5921
|
this.resizeObserver.observe(document.body);
|
|
@@ -6088,37 +5931,6 @@ class Breakpoint {
|
|
|
6088
5931
|
}
|
|
6089
5932
|
const breakpoint = new Breakpoint();
|
|
6090
5933
|
|
|
6091
|
-
/**
|
|
6092
|
-
* Invoke the `componentOnReady` method if it is available, simulate it otherwise
|
|
6093
|
-
* @see https://stenciljs.com/docs/api#componentonready
|
|
6094
|
-
*/
|
|
6095
|
-
function componentOnReady(el) {
|
|
6096
|
-
if (typeof el.componentOnReady === 'function') {
|
|
6097
|
-
return el.componentOnReady();
|
|
6098
|
-
}
|
|
6099
|
-
else {
|
|
6100
|
-
return new Promise(resolve => customOnReady(() => {
|
|
6101
|
-
resolve(el);
|
|
6102
|
-
}));
|
|
6103
|
-
}
|
|
6104
|
-
}
|
|
6105
|
-
function customOnReady(callback) {
|
|
6106
|
-
if (typeof requestAnimationFrame === 'function') {
|
|
6107
|
-
return requestAnimationFrame(callback);
|
|
6108
|
-
}
|
|
6109
|
-
return setTimeout(callback);
|
|
6110
|
-
}
|
|
6111
|
-
|
|
6112
|
-
function debounce(callback, timeout = 200) {
|
|
6113
|
-
let id;
|
|
6114
|
-
return (...args) => {
|
|
6115
|
-
if (id) {
|
|
6116
|
-
clearTimeout(id);
|
|
6117
|
-
}
|
|
6118
|
-
id = setTimeout(callback, timeout, ...args);
|
|
6119
|
-
};
|
|
6120
|
-
}
|
|
6121
|
-
|
|
6122
5934
|
/**
|
|
6123
5935
|
* Validates if an event should be processed based on target and nesting criteria
|
|
6124
5936
|
* @param event - The event to validate
|
|
@@ -6210,32 +6022,106 @@ function EventFrom(tag, option) {
|
|
|
6210
6022
|
}
|
|
6211
6023
|
/**
|
|
6212
6024
|
* Traverses up the DOM (including crossing shadow DOM boundaries) to find the closest ancestor
|
|
6213
|
-
*
|
|
6214
|
-
* @param
|
|
6215
|
-
* @param
|
|
6025
|
+
* matching the given predicate.
|
|
6026
|
+
* @param start - The starting element
|
|
6027
|
+
* @param predicate - A type guard used to test each ancestor
|
|
6216
6028
|
* @returns The closest matching ancestor or null if none found
|
|
6217
6029
|
*/
|
|
6218
|
-
function
|
|
6219
|
-
let current =
|
|
6030
|
+
function findClosestAcrossShadow(start, predicate) {
|
|
6031
|
+
let current = start;
|
|
6220
6032
|
while (current) {
|
|
6221
|
-
if (current
|
|
6033
|
+
if (predicate(current)) {
|
|
6222
6034
|
return current;
|
|
6223
6035
|
}
|
|
6224
|
-
// Check regular parent first
|
|
6225
6036
|
if (current.parentElement) {
|
|
6226
6037
|
current = current.parentElement;
|
|
6227
6038
|
}
|
|
6228
|
-
// If no parentElement, check if we're in a shadow root
|
|
6229
|
-
else if (current.parentNode instanceof ShadowRoot) {
|
|
6230
|
-
current = current.parentNode.host;
|
|
6231
|
-
}
|
|
6232
|
-
// No more parents to check
|
|
6233
6039
|
else {
|
|
6234
|
-
|
|
6040
|
+
// Duck-typed ShadowRoot check (nodeType 11 + host) instead of `instanceof ShadowRoot`,
|
|
6041
|
+
// since some test environments (e.g. JSDOM) only partially implement it.
|
|
6042
|
+
const parent = current.parentNode;
|
|
6043
|
+
if (parent !== null && parent.nodeType === 11 && 'host' in parent) {
|
|
6044
|
+
current = parent.host;
|
|
6045
|
+
}
|
|
6046
|
+
else {
|
|
6047
|
+
current = null;
|
|
6048
|
+
}
|
|
6235
6049
|
}
|
|
6236
6050
|
}
|
|
6237
6051
|
return null;
|
|
6238
6052
|
}
|
|
6053
|
+
function findClosestParentWithTag(element, tagName) {
|
|
6054
|
+
return findClosestAcrossShadow(element, (el) => el.localName === tagName);
|
|
6055
|
+
}
|
|
6056
|
+
|
|
6057
|
+
const CLOSABLE_TARGETS = [
|
|
6058
|
+
{
|
|
6059
|
+
predicate: el => el.localName === 'post-banner',
|
|
6060
|
+
close: el => void el.dismiss(),
|
|
6061
|
+
},
|
|
6062
|
+
{
|
|
6063
|
+
predicate: el => el.localName === 'post-popover',
|
|
6064
|
+
close: el => void el.hide(),
|
|
6065
|
+
},
|
|
6066
|
+
{
|
|
6067
|
+
predicate: el => el.localName === 'post-popovercontainer',
|
|
6068
|
+
close: el => void el.hide(),
|
|
6069
|
+
},
|
|
6070
|
+
{
|
|
6071
|
+
predicate: el => el.localName === 'post-collapsible',
|
|
6072
|
+
close: el => void el.toggle(false),
|
|
6073
|
+
},
|
|
6074
|
+
{
|
|
6075
|
+
predicate: el => el.localName === 'post-accordion-item',
|
|
6076
|
+
close: el => void el.toggle(false),
|
|
6077
|
+
},
|
|
6078
|
+
{
|
|
6079
|
+
predicate: el => el.localName === 'dialog',
|
|
6080
|
+
close: el => el.close(),
|
|
6081
|
+
},
|
|
6082
|
+
{
|
|
6083
|
+
predicate: el => el.hasAttribute('popover'),
|
|
6084
|
+
close: el => el.togglePopover(false),
|
|
6085
|
+
},
|
|
6086
|
+
];
|
|
6087
|
+
function findClosableTarget(start) {
|
|
6088
|
+
const el = findClosestAcrossShadow(start, (el) => CLOSABLE_TARGETS.some(t => t.predicate(el)));
|
|
6089
|
+
if (!el)
|
|
6090
|
+
return null;
|
|
6091
|
+
const match = CLOSABLE_TARGETS.find(t => t.predicate(el));
|
|
6092
|
+
return { element: el, close: () => match.close(el) };
|
|
6093
|
+
}
|
|
6094
|
+
|
|
6095
|
+
/**
|
|
6096
|
+
* Invoke the `componentOnReady` method if it is available, simulate it otherwise
|
|
6097
|
+
* @see https://stenciljs.com/docs/api#componentonready
|
|
6098
|
+
*/
|
|
6099
|
+
function componentOnReady(el) {
|
|
6100
|
+
if (typeof el.componentOnReady === 'function') {
|
|
6101
|
+
return el.componentOnReady();
|
|
6102
|
+
}
|
|
6103
|
+
else {
|
|
6104
|
+
return new Promise(resolve => customOnReady(() => {
|
|
6105
|
+
resolve(el);
|
|
6106
|
+
}));
|
|
6107
|
+
}
|
|
6108
|
+
}
|
|
6109
|
+
function customOnReady(callback) {
|
|
6110
|
+
if (typeof requestAnimationFrame === 'function') {
|
|
6111
|
+
return requestAnimationFrame(callback);
|
|
6112
|
+
}
|
|
6113
|
+
return setTimeout(callback);
|
|
6114
|
+
}
|
|
6115
|
+
|
|
6116
|
+
function debounce$1(callback, timeout = 200) {
|
|
6117
|
+
let id;
|
|
6118
|
+
return (...args) => {
|
|
6119
|
+
if (id) {
|
|
6120
|
+
clearTimeout(id);
|
|
6121
|
+
}
|
|
6122
|
+
id = setTimeout(callback, timeout, ...args);
|
|
6123
|
+
};
|
|
6124
|
+
}
|
|
6239
6125
|
|
|
6240
6126
|
/**
|
|
6241
6127
|
* getRootNode() can only be used after the element has been attached to the document!
|
|
@@ -6417,7 +6303,7 @@ function repeat(callback, { delayMs = 300, intervalMs = 100 } = {}) {
|
|
|
6417
6303
|
};
|
|
6418
6304
|
}
|
|
6419
6305
|
|
|
6420
|
-
const version$1 = "10.
|
|
6306
|
+
const version$1 = "10.6.0";
|
|
6421
6307
|
|
|
6422
6308
|
const postAccordionCss = () => `:host{display:block;border-block-start:var(--post-device-border-width-default) var(--post-core-border-style-solid) var(--post-scheme-color-interactive-primary-enabled-stroke)}`;
|
|
6423
6309
|
|
|
@@ -6638,44 +6524,31 @@ class PostAutocomplete {
|
|
|
6638
6524
|
constructor(hostRef) {
|
|
6639
6525
|
registerInstance(this, hostRef);
|
|
6640
6526
|
this.postFilteringEvent = createEvent(this, "postFilteringEvent");
|
|
6641
|
-
this.debouncedHandleInput = debounce((event) => {
|
|
6527
|
+
this.debouncedHandleInput = debounce$1((event) => {
|
|
6642
6528
|
void this.handleInput(event);
|
|
6643
6529
|
}, 250);
|
|
6644
6530
|
/** Number of characters to type before filtering methods are called */
|
|
6645
6531
|
this.filterThreshold = 0;
|
|
6646
6532
|
/** Show or hide the clear button */
|
|
6647
6533
|
this.clearable = false;
|
|
6648
|
-
|
|
6649
|
-
this.
|
|
6650
|
-
|
|
6651
|
-
|
|
6652
|
-
|
|
6653
|
-
|
|
6654
|
-
|
|
6534
|
+
/** Whether the listbox is currently expanded */
|
|
6535
|
+
this.expanded = false;
|
|
6536
|
+
/** The value of the last run query */
|
|
6537
|
+
this.lastQuery = '';
|
|
6538
|
+
/** The value of the selected listbox option */
|
|
6539
|
+
this.selectedValue = null;
|
|
6540
|
+
this.handleClick = async () => {
|
|
6541
|
+
await this.runQuery('', true);
|
|
6655
6542
|
};
|
|
6656
|
-
this.
|
|
6657
|
-
this.
|
|
6658
|
-
this.listBoxElement.filter('');
|
|
6543
|
+
this.handleBlur = () => {
|
|
6544
|
+
this.restoreSelectedValue();
|
|
6659
6545
|
this.hideListBox();
|
|
6660
6546
|
};
|
|
6661
6547
|
this.handleInput = async (event) => {
|
|
6662
6548
|
if (!this.listBoxElement)
|
|
6663
6549
|
return;
|
|
6664
6550
|
const value = event.target.value.trim();
|
|
6665
|
-
|
|
6666
|
-
// Allow for consuming parent to handle filtering (e.g. for async data) and prevent default filtering behavior
|
|
6667
|
-
const { defaultPrevented } = this.postFilteringEvent.emit(query && query.length >= this.filterThreshold ? query : '');
|
|
6668
|
-
if (defaultPrevented)
|
|
6669
|
-
return;
|
|
6670
|
-
await this.listBoxElement.filter(query);
|
|
6671
|
-
if (query) {
|
|
6672
|
-
this.showListBox();
|
|
6673
|
-
this.announceCount();
|
|
6674
|
-
}
|
|
6675
|
-
else {
|
|
6676
|
-
this.inputValue = '';
|
|
6677
|
-
this.clearAnnouncement();
|
|
6678
|
-
}
|
|
6551
|
+
await this.runQuery(value.length >= this.filterThreshold ? value : '');
|
|
6679
6552
|
};
|
|
6680
6553
|
this.handleKeyDown = (event) => {
|
|
6681
6554
|
const { key, altKey } = event;
|
|
@@ -6717,8 +6590,7 @@ class PostAutocomplete {
|
|
|
6717
6590
|
};
|
|
6718
6591
|
this.handleOptionSelected = (e) => {
|
|
6719
6592
|
const value = e.detail;
|
|
6720
|
-
this.
|
|
6721
|
-
this.inputValue = value;
|
|
6593
|
+
this.updateSelectedValue(value);
|
|
6722
6594
|
this.hideListBox();
|
|
6723
6595
|
};
|
|
6724
6596
|
this.handleOptionActive = (e) => {
|
|
@@ -6730,23 +6602,9 @@ class PostAutocomplete {
|
|
|
6730
6602
|
this.inputElement.removeAttribute('aria-activedescendant');
|
|
6731
6603
|
}
|
|
6732
6604
|
};
|
|
6733
|
-
this.
|
|
6734
|
-
this.clearAnnouncement();
|
|
6735
|
-
this.listBoxElement.hide();
|
|
6736
|
-
this.inputElement.ariaExpanded = 'false';
|
|
6737
|
-
this.host.removeAttribute('open');
|
|
6738
|
-
this.inputElement.removeAttribute('aria-activedescendant');
|
|
6739
|
-
};
|
|
6740
|
-
this.showListBox = async () => {
|
|
6741
|
-
await this.listBoxElement.show();
|
|
6742
|
-
this.inputElement.ariaExpanded = 'true';
|
|
6743
|
-
this.host.setAttribute('open', '');
|
|
6744
|
-
this.announceCount();
|
|
6745
|
-
};
|
|
6746
|
-
this.clearInput = () => {
|
|
6605
|
+
this.handleClear = () => {
|
|
6747
6606
|
if (this.inputElement) {
|
|
6748
|
-
this.
|
|
6749
|
-
this.inputValue = '';
|
|
6607
|
+
this.updateSelectedValue(null);
|
|
6750
6608
|
this.listBoxElement.clearSelection();
|
|
6751
6609
|
this.hideListBox();
|
|
6752
6610
|
}
|
|
@@ -6793,18 +6651,16 @@ class PostAutocomplete {
|
|
|
6793
6651
|
if (this.inputElement) {
|
|
6794
6652
|
this.inputElement.addEventListener('input', this.debouncedHandleInput);
|
|
6795
6653
|
this.inputElement.addEventListener('keydown', this.handleKeyDown);
|
|
6796
|
-
this.inputElement.addEventListener('blur', this.
|
|
6797
|
-
this.inputElement.addEventListener('click', this.
|
|
6798
|
-
this.inputElement.addEventListener('focus', this.handleFocus);
|
|
6654
|
+
this.inputElement.addEventListener('blur', this.handleBlur);
|
|
6655
|
+
this.inputElement.addEventListener('click', this.handleClick);
|
|
6799
6656
|
}
|
|
6800
6657
|
}
|
|
6801
6658
|
detachInputListeners() {
|
|
6802
6659
|
if (this.inputElement) {
|
|
6803
6660
|
this.inputElement.removeEventListener('input', this.debouncedHandleInput);
|
|
6804
6661
|
this.inputElement.removeEventListener('keydown', this.handleKeyDown);
|
|
6805
|
-
this.inputElement.removeEventListener('blur', this.
|
|
6806
|
-
this.inputElement.removeEventListener('click', this.
|
|
6807
|
-
this.inputElement.removeEventListener('focus', this.handleFocus);
|
|
6662
|
+
this.inputElement.removeEventListener('blur', this.handleBlur);
|
|
6663
|
+
this.inputElement.removeEventListener('click', this.handleClick);
|
|
6808
6664
|
}
|
|
6809
6665
|
}
|
|
6810
6666
|
attachListboxListeners() {
|
|
@@ -6829,8 +6685,53 @@ class PostAutocomplete {
|
|
|
6829
6685
|
const count = this.listBoxElement.querySelectorAll('post-listbox-option:not([hidden])').length;
|
|
6830
6686
|
this.outputElement.textContent = this.textAvailableSuggestions.replace('{count}', String(count));
|
|
6831
6687
|
}
|
|
6688
|
+
async showListBox() {
|
|
6689
|
+
await this.listBoxElement.show();
|
|
6690
|
+
this.expanded = true;
|
|
6691
|
+
this.inputElement.ariaExpanded = 'true';
|
|
6692
|
+
this.host.setAttribute('open', '');
|
|
6693
|
+
this.announceCount();
|
|
6694
|
+
}
|
|
6695
|
+
async hideListBox() {
|
|
6696
|
+
this.clearAnnouncement();
|
|
6697
|
+
this.expanded = false;
|
|
6698
|
+
this.host.removeAttribute('open');
|
|
6699
|
+
this.inputElement.ariaExpanded = 'false';
|
|
6700
|
+
this.inputElement.removeAttribute('aria-activedescendant');
|
|
6701
|
+
await this.listBoxElement.hide();
|
|
6702
|
+
}
|
|
6703
|
+
updateSelectedValue(value) {
|
|
6704
|
+
this.selectedValue = value;
|
|
6705
|
+
this.inputElement.value = this.selectedValue ?? '';
|
|
6706
|
+
}
|
|
6707
|
+
/** Restores the input to the value of the selected option. */
|
|
6708
|
+
restoreSelectedValue() {
|
|
6709
|
+
this.inputElement.value = this.selectedValue ?? '';
|
|
6710
|
+
}
|
|
6711
|
+
/** Runs a query, filtering the listbox options and reflecting the outcome. */
|
|
6712
|
+
async runQuery(query, alwaysExpand = false) {
|
|
6713
|
+
// Prevent running the same query twice.
|
|
6714
|
+
if (this.lastQuery !== (this.lastQuery = query)) {
|
|
6715
|
+
await this.filterListBox(query);
|
|
6716
|
+
}
|
|
6717
|
+
// Always update the count if the listbox is expanded.
|
|
6718
|
+
if (this.expanded) {
|
|
6719
|
+
this.announceCount();
|
|
6720
|
+
}
|
|
6721
|
+
// Automatically show the listbox if the query is non-empty.
|
|
6722
|
+
else if (alwaysExpand || query) {
|
|
6723
|
+
await this.showListBox();
|
|
6724
|
+
}
|
|
6725
|
+
}
|
|
6726
|
+
/** Filters the listbox options based on the query, delegating to the consuming parent when possible. */
|
|
6727
|
+
async filterListBox(query) {
|
|
6728
|
+
// Allow for consuming parent to handle filtering (e.g. for async data) and prevent default filtering behavior.
|
|
6729
|
+
if (this.postFilteringEvent.emit(query).defaultPrevented)
|
|
6730
|
+
return;
|
|
6731
|
+
await this.listBoxElement?.filter(query);
|
|
6732
|
+
}
|
|
6832
6733
|
render() {
|
|
6833
|
-
return (hAsync(Host, { key: '
|
|
6734
|
+
return (hAsync(Host, { key: '8b386930fe5484cd73395224b5f0c5daea867b33', "data-version": version$1 }, hAsync("slot", { key: '9aa5a34de2cf18c3d6342069fc2b4ce52baac0d3' }), this.clearable && this.selectedValue !== null && (hAsync("button", { key: '90b459fffc29066667ca4656b6871275d061d3fd', type: "button", class: "autocomplete-clear", onClick: this.handleClear }, hAsync("post-icon", { key: '419de2b608f1638b14aed086f8e2c6064ae634bc', "aria-hidden": "true", name: "closex" }))), hAsync("post-icon", { key: '56b7dd986023a0e46d902020b923ae525c88bef1', "aria-hidden": "true", class: "autocomplete-icon", name: "chevronDown" }), hAsync("output", { key: '6ef02d0baf03c7f562ba6d5c95918e4a7ae1214f', class: "visually-hidden", ref: el => (this.outputElement = el) })));
|
|
6834
6735
|
}
|
|
6835
6736
|
get host() { return getElement(this); }
|
|
6836
6737
|
static get style() { return postAutocompleteCss(); }
|
|
@@ -6842,7 +6743,7 @@ class PostAutocomplete {
|
|
|
6842
6743
|
"clearable": [516],
|
|
6843
6744
|
"listbox": [513],
|
|
6844
6745
|
"textAvailableSuggestions": [513, "text-available-suggestions"],
|
|
6845
|
-
"
|
|
6746
|
+
"selectedValue": [32]
|
|
6846
6747
|
},
|
|
6847
6748
|
"$listeners$": undefined,
|
|
6848
6749
|
"$lazyBundleId$": "-",
|
|
@@ -7117,12 +7018,23 @@ class PostBackToTop {
|
|
|
7117
7018
|
return window.scrollY > window.innerHeight;
|
|
7118
7019
|
}
|
|
7119
7020
|
/*Watch for changes in belowFold to show/hide the back to top button*/
|
|
7120
|
-
watchBelowFold(newValue) {
|
|
7121
|
-
|
|
7122
|
-
|
|
7021
|
+
async watchBelowFold(newValue) {
|
|
7022
|
+
this.currentAnimation?.cancel();
|
|
7023
|
+
// host needs to be visible before we can animate, in or out
|
|
7024
|
+
// hidden state gets recalculated after the animation, based on belowFold
|
|
7025
|
+
this.host.hidden = false;
|
|
7026
|
+
this.currentAnimation = fadeSlide(this.host, newValue ? 'in' : 'out', {
|
|
7027
|
+
translate: this.translateY,
|
|
7028
|
+
fill: 'forwards',
|
|
7029
|
+
});
|
|
7030
|
+
try {
|
|
7031
|
+
await this.currentAnimation.finished;
|
|
7032
|
+
// only hide once the fade-out finished and we're still not below fold
|
|
7033
|
+
if (!this.belowFold)
|
|
7034
|
+
this.host.hidden = true;
|
|
7123
7035
|
}
|
|
7124
|
-
|
|
7125
|
-
|
|
7036
|
+
catch {
|
|
7037
|
+
// animation got canceled, nothing to do
|
|
7126
7038
|
}
|
|
7127
7039
|
}
|
|
7128
7040
|
scrollToTop() {
|
|
@@ -7164,16 +7076,17 @@ class PostBackToTop {
|
|
|
7164
7076
|
// Set the initial state
|
|
7165
7077
|
componentWillLoad() {
|
|
7166
7078
|
this.belowFold = this.isBelowFold();
|
|
7079
|
+
this.host.hidden = !this.belowFold;
|
|
7167
7080
|
}
|
|
7168
7081
|
componentDidLoad() {
|
|
7169
|
-
window.addEventListener('scroll', this.handleScroll,
|
|
7082
|
+
window.addEventListener('scroll', this.handleScroll, { passive: true });
|
|
7170
7083
|
this.animateButton();
|
|
7171
7084
|
}
|
|
7172
7085
|
disconnectedCallback() {
|
|
7173
7086
|
window.removeEventListener('scroll', this.handleScroll);
|
|
7174
7087
|
}
|
|
7175
7088
|
render() {
|
|
7176
|
-
return (hAsync(Host, { key: '
|
|
7089
|
+
return (hAsync(Host, { key: '149a8afee36c12130b3e503c4da5cffdaa3f86b5', "data-version": version$1 }, hAsync("button", { key: '4e291c5cfaa55bb6a68f436af570d83377436a3a', class: "back-to-top", onClick: this.scrollToTop }, hAsync("post-icon", { key: 'c25e8d12cf6f751b368010ad2d82534fa95adf86', "aria-hidden": "true", name: "arrowup" }), hAsync("span", { key: 'e16d1247a5ab7e39629e4bec7307ee562c589f7e', class: "visually-hidden" }, this.textBackToTop))));
|
|
7177
7090
|
}
|
|
7178
7091
|
get host() { return getElement(this); }
|
|
7179
7092
|
static get watchers() { return {
|
|
@@ -7296,14 +7209,11 @@ class PostBanner {
|
|
|
7296
7209
|
this.postDismissed.emit();
|
|
7297
7210
|
this.host.remove();
|
|
7298
7211
|
}
|
|
7299
|
-
onCloseButtonClick() {
|
|
7300
|
-
void this.dismiss();
|
|
7301
|
-
}
|
|
7302
7212
|
checkContent() {
|
|
7303
7213
|
this.hasActions = this.host.querySelectorAll('[slot="actions"]').length > 0;
|
|
7304
7214
|
}
|
|
7305
7215
|
render() {
|
|
7306
|
-
return (hAsync(Host, { key: '
|
|
7216
|
+
return (hAsync(Host, { key: '890eea914f07f31f64c9e1b01fca94e824a019bc', "data-version": version$1, role: "alert", "data-color-scheme": "light" }, hAsync("slot", { key: 'd4ac9c3714979cde7bba7554fbe1886d2cf75701', name: "close-button" }), hAsync("div", { key: 'a097570719b709a3b67aa7152701edbf1174ace0', class: "post-banner-content" }, hAsync("slot", { key: 'df12b0e63ac4cf4152c196eaad071774be4d7b88', name: "heading" }), hAsync("slot", { key: 'a5e376800525119dc47815b9977936fa3966e087' }), this.hasActions && (hAsync("div", { key: '6a0cc7f82873bcfde5109ed9e6bfe8255e30b19c', class: "actions" }, hAsync("slot", { key: '11b1d289705cb9d1d96b20b4fcea2b923bfd184a', name: "actions" }))))));
|
|
7307
7217
|
}
|
|
7308
7218
|
get host() { return getElement(this); }
|
|
7309
7219
|
static get style() { return postBannerCss(); }
|
|
@@ -7315,7 +7225,7 @@ class PostBanner {
|
|
|
7315
7225
|
"hasActions": [32],
|
|
7316
7226
|
"dismiss": [64]
|
|
7317
7227
|
},
|
|
7318
|
-
"$listeners$":
|
|
7228
|
+
"$listeners$": undefined,
|
|
7319
7229
|
"$lazyBundleId$": "-",
|
|
7320
7230
|
"$attrsToReflect$": [["type", "type"]]
|
|
7321
7231
|
}; }
|
|
@@ -7323,13 +7233,10 @@ class PostBanner {
|
|
|
7323
7233
|
__decorate$w([
|
|
7324
7234
|
OneOf(BANNER_TYPES)
|
|
7325
7235
|
], PostBanner.prototype, "type", void 0);
|
|
7326
|
-
__decorate$w([
|
|
7327
|
-
EventFrom('post-closebutton', { allowDescendants: true })
|
|
7328
|
-
], PostBanner.prototype, "onCloseButtonClick", null);
|
|
7329
7236
|
|
|
7330
7237
|
const VARIANTS = ['listitem', 'menuitem'];
|
|
7331
7238
|
|
|
7332
|
-
const postBreadcrumbItemCss = () => `a{-webkit-text-decoration:var(--post-core-text-decoration-underline);text-decoration:var(--post-core-text-decoration-underline);border-radius:var(--post-device-border-radius-focus);color:var(--post-current-fg)}a:hover{color:var(--post-scheme-color-interactive-primary-hover-fg1)}a{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}a:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){a:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){a:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){a:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){a,a:focus{color:LinkText !important}a:hover{text-decoration-thickness:2px}a:visited{color:VisitedText}a.btn:not(.btn-link){border-color:ButtonBorder !important}a.btn.btn-tertiary.px-0{border:0 !important}a.btn.btn-tertiary.px-0:not(:hover){text-decoration:underline}}:host(:not([variant=menuitem])){display:flex;align-items:flex-start;padding-block:var(--post-device-spacing-padding-block-6);gap:var(--post-device-spacing-gap-inline-5)}:host(:not([variant=menuitem])) :is(button,a){display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;font:inherit;padding:unset;border:unset;color:var(--post-scheme-color-interactive-primary-enabled-fg1);border-radius:var(--post-device-border-radius-focus);text-decoration:var(--post-core-text-decoration-none)}:host(:not([variant=menuitem])) :is(button,a):not(:disabled):hover{text-decoration:none}:host(:not([variant=menuitem])) :is(button,a):disabled{border-style:var(--post-core-border-style-dash);cursor:unset}:host(:not([variant=menuitem])) :is(button,a){outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}:host(:not([variant=menuitem])) :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(:not([variant=menuitem])) :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){:host(:not([variant=menuitem])) :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(:not([variant=menuitem])) :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(:not([variant=menuitem])) :is(button,a){border-width:1px !important;transition:none}:host(:not([variant=menuitem])) :is(button,a):is(button){background-color:ButtonFace !important;border-color:ButtonBorder !important}}:host(:not([variant=menuitem])) :is(button,a):hover{color:var(--post-scheme-color-interactive-primary-hover-fg1);text-decoration:var(--post-core-text-decoration-underline)}:host(:not([variant=menuitem]))::before{mask-image:var(--post-icon-chevronright);background-color:currentColor;flex:0 0 auto;content:"";display:block;height:var(--post-device-sizing-interactive-icon-size4);width:var(--post-device-sizing-interactive-icon-size4);margin-block:calc(var(--post-device-spacing-padding-35) - 1*var(--post-device-spacing-padding-block-6));margin-inline:var(--post-core-dimension-4)}:root,:host{--post-icon-chevronright:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxzeW1ib2wgaWQ9ImktY2hldnJvbnJpZ2h0Ij48c3ltYm9sIGlkPSJzMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTUuMzggMTRjLS4xOSAwLS4zOC0uMDctLjUzLS4yMmEuNzU0Ljc1NCAwIDAgMSAwLTEuMDZMOS41NyA4IDQuODUgMy4yOGMtLjI5LS4yOS0uMjktLjc3IDAtMS4wNnMuNzctLjI5IDEuMDYgMEwxMS42OSA4bC01Ljc4IDUuNzhjLS4xNS4xNS0uMzQuMjItLjUzLjIyIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik04LjA3IDIwLjcyYy0uMjIgMC0uNDUtLjA4LS42Mi0uMjZhLjg4Ljg4IDAgMCAxIDAtMS4yNGw3LjI2LTcuMjZMNy40NSA0LjdhLjg4Ljg4IDAgMCAxIDAtMS4yNGMuMzQtLjM0LjktLjM0IDEuMjQgMGw4LjUgOC41LTguNDkgOC40OWMtLjE3LjE3LS40LjI2LS42Mi4yNloiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZD0iTTEwLjc2IDI3LjVjLS4yNiAwLS41MS0uMS0uNzEtLjI5YS45OTYuOTk2IDAgMCAxIDAtMS40MWw5Ljc5LTkuNzktOS43OS05LjgxYS45OTYuOTk2IDAgMSAxIDEuNDEtMS40MUwyMi42NyAxNiAxMS40NiAyNy4yMWMtLjIuMi0uNDUuMjktLjcxLjI5WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTMuNSAzNC4yMmExLjEyMyAxLjEyMyAwIDAgMS0uOC0xLjkybDEyLjMzLTEyLjMzTDEyLjcgNy42M2MtLjQ0LS40NC0uNDQtMS4xNSAwLTEuNTlzMS4xNS0uNDQgMS41OSAwbDEzLjkzIDEzLjkzTDE0LjMgMzMuODljLS4yMi4yMi0uNTEuMzMtLjguMzMiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHBhdGggZD0iTTE2LjE0IDQxYy0uMzIgMC0uNjQtLjEyLS44OC0uMzdhMS4yNSAxLjI1IDAgMCAxIDAtMS43N2wxNC44Ny0xNC44N0wxNS4yNSA5LjExYy0uNDktLjQ5LS40OS0xLjI4IDAtMS43N3MxLjI4LS40OSAxLjc3IDBsMTYuNjQgMTYuNjQtMTYuNjMgMTYuNjNjLS4yNC4yNC0uNTYuMzctLjg4LjM3WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij48cGF0aCBkPSJNMjEuNTEgNTQuNGExLjM3NiAxLjM3NiAwIDAgMS0uOTctMi4zNWwyMC4wMy0yMC4wMy0yMC4wNC0yMC4wM2MtLjU0LS41NC0uNTQtMS40MSAwLTEuOTVzMS40MS0uNTQgMS45NSAwbDIxLjk4IDIxLjk5TDIyLjQ5IDU0Yy0uMjcuMjctLjYyLjQtLjk3LjRaIi8+PC9zeW1ib2w+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczE2LCBub25lKSIgaHJlZj0iI3MxNiIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXMyNCwgbm9uZSkiIGhyZWY9IiNzMjQiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zMzIsIG5vbmUpIiBocmVmPSIjczMyIi8+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczQwLCBub25lKSIgaHJlZj0iI3M0MCIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXM0OCwgbm9uZSkiIGhyZWY9IiNzNDgiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zNjQsIG5vbmUpIiBocmVmPSIjczY0Ii8+PC9zeW1ib2w+PC9kZWZzPjxzdHlsZT5AbWVkaWEgKG1heC13aWR0aDogMjMuOThweCkge2d7LS1zMTY6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogMjRweCkgYW5kIChtYXgtd2lkdGg6IDMxLjk4cHgpIHtney0tczI0OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDMycHgpIGFuZCAobWF4LXdpZHRoOiAzOS45OHB4KSB7Z3stLXMzMjpibG9jazt9fUBtZWRpYSAobWluLXdpZHRoOiA0MHB4KSBhbmQgKG1heC13aWR0aDogNDcuOThweCkge2d7LS1zNDA6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogNDhweCkgYW5kIChtYXgtd2lkdGg6IDYzLjk4cHgpIHtney0tczQ4OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDY0cHgpIHtney0tczY0OmJsb2NrO319PC9zdHlsZT48Zz48dXNlIGhyZWY9IiNpLWNoZXZyb25yaWdodCIvPjwvZz48L3N2Zz4=")}:is(a,span){white-space:var(--post-breadcrumb-item-wrap, normal) !important;overflow-wrap:anywhere;hyphens:auto;line-break:strict}:host([selected]:not([selected=false])){display:flex;align-items:flex-start;padding-block:var(--post-device-spacing-padding-block-6);gap:var(--post-device-spacing-gap-inline-5)}:host([selected]:not([selected=false])) :is(button,a){display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;font:inherit;padding:unset;border:unset;color:var(--post-scheme-color-interactive-primary-enabled-fg1);border-radius:var(--post-device-border-radius-focus);text-decoration:var(--post-core-text-decoration-none)}:host([selected]:not([selected=false])) :is(button,a):not(:disabled):hover{text-decoration:none}:host([selected]:not([selected=false])) :is(button,a):disabled{border-style:var(--post-core-border-style-dash);cursor:unset}:host([selected]:not([selected=false])) :is(button,a){outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}:host([selected]:not([selected=false])) :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host([selected]:not([selected=false])) :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){:host([selected]:not([selected=false])) :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host([selected]:not([selected=false])) :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host([selected]:not([selected=false])) :is(button,a){border-width:1px !important;transition:none}:host([selected]:not([selected=false])) :is(button,a):is(button){background-color:ButtonFace !important;border-color:ButtonBorder !important}}:host([selected]:not([selected=false])) :is(button,a):hover{color:var(--post-scheme-color-interactive-primary-hover-fg1);text-decoration:var(--post-core-text-decoration-underline)}:host([selected]:not([selected=false]))::before{mask-image:var(--post-icon-chevronright);background-color:currentColor;flex:0 0 auto;content:"";display:block;height:var(--post-device-sizing-interactive-icon-size4);width:var(--post-device-sizing-interactive-icon-size4);margin-block:calc(var(--post-device-spacing-padding-35) - 1*var(--post-device-spacing-padding-block-6));margin-inline:var(--post-core-dimension-4)}:root,:host{--post-icon-chevronright:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxzeW1ib2wgaWQ9ImktY2hldnJvbnJpZ2h0Ij48c3ltYm9sIGlkPSJzMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTUuMzggMTRjLS4xOSAwLS4zOC0uMDctLjUzLS4yMmEuNzU0Ljc1NCAwIDAgMSAwLTEuMDZMOS41NyA4IDQuODUgMy4yOGMtLjI5LS4yOS0uMjktLjc3IDAtMS4wNnMuNzctLjI5IDEuMDYgMEwxMS42OSA4bC01Ljc4IDUuNzhjLS4xNS4xNS0uMzQuMjItLjUzLjIyIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik04LjA3IDIwLjcyYy0uMjIgMC0uNDUtLjA4LS42Mi0uMjZhLjg4Ljg4IDAgMCAxIDAtMS4yNGw3LjI2LTcuMjZMNy40NSA0LjdhLjg4Ljg4IDAgMCAxIDAtMS4yNGMuMzQtLjM0LjktLjM0IDEuMjQgMGw4LjUgOC41LTguNDkgOC40OWMtLjE3LjE3LS40LjI2LS42Mi4yNloiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZD0iTTEwLjc2IDI3LjVjLS4yNiAwLS41MS0uMS0uNzEtLjI5YS45OTYuOTk2IDAgMCAxIDAtMS40MWw5Ljc5LTkuNzktOS43OS05LjgxYS45OTYuOTk2IDAgMSAxIDEuNDEtMS40MUwyMi42NyAxNiAxMS40NiAyNy4yMWMtLjIuMi0uNDUuMjktLjcxLjI5WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTMuNSAzNC4yMmExLjEyMyAxLjEyMyAwIDAgMS0uOC0xLjkybDEyLjMzLTEyLjMzTDEyLjcgNy42M2MtLjQ0LS40NC0uNDQtMS4xNSAwLTEuNTlzMS4xNS0uNDQgMS41OSAwbDEzLjkzIDEzLjkzTDE0LjMgMzMuODljLS4yMi4yMi0uNTEuMzMtLjguMzMiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHBhdGggZD0iTTE2LjE0IDQxYy0uMzIgMC0uNjQtLjEyLS44OC0uMzdhMS4yNSAxLjI1IDAgMCAxIDAtMS43N2wxNC44Ny0xNC44N0wxNS4yNSA5LjExYy0uNDktLjQ5LS40OS0xLjI4IDAtMS43N3MxLjI4LS40OSAxLjc3IDBsMTYuNjQgMTYuNjQtMTYuNjMgMTYuNjNjLS4yNC4yNC0uNTYuMzctLjg4LjM3WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij48cGF0aCBkPSJNMjEuNTEgNTQuNGExLjM3NiAxLjM3NiAwIDAgMS0uOTctMi4zNWwyMC4wMy0yMC4wMy0yMC4wNC0yMC4wM2MtLjU0LS41NC0uNTQtMS40MSAwLTEuOTVzMS40MS0uNTQgMS45NSAwbDIxLjk4IDIxLjk5TDIyLjQ5IDU0Yy0uMjcuMjctLjYyLjQtLjk3LjRaIi8+PC9zeW1ib2w+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczE2LCBub25lKSIgaHJlZj0iI3MxNiIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXMyNCwgbm9uZSkiIGhyZWY9IiNzMjQiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zMzIsIG5vbmUpIiBocmVmPSIjczMyIi8+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczQwLCBub25lKSIgaHJlZj0iI3M0MCIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXM0OCwgbm9uZSkiIGhyZWY9IiNzNDgiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zNjQsIG5vbmUpIiBocmVmPSIjczY0Ii8+PC9zeW1ib2w+PC9kZWZzPjxzdHlsZT5AbWVkaWEgKG1heC13aWR0aDogMjMuOThweCkge2d7LS1zMTY6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogMjRweCkgYW5kIChtYXgtd2lkdGg6IDMxLjk4cHgpIHtney0tczI0OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDMycHgpIGFuZCAobWF4LXdpZHRoOiAzOS45OHB4KSB7Z3stLXMzMjpibG9jazt9fUBtZWRpYSAobWluLXdpZHRoOiA0MHB4KSBhbmQgKG1heC13aWR0aDogNDcuOThweCkge2d7LS1zNDA6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogNDhweCkgYW5kIChtYXgtd2lkdGg6IDYzLjk4cHgpIHtney0tczQ4OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDY0cHgpIHtney0tczY0OmJsb2NrO319PC9zdHlsZT48Zz48dXNlIGhyZWY9IiNpLWNoZXZyb25yaWdodCIvPjwvZz48L3N2Zz4=")}:host([selected]:not([selected=false])) :is(a,span){color:var(--post-scheme-color-interactive-primary-selected-fg1);font-weight:var(--post-device-font-weight-bold);text-decoration:var(--post-core-text-decoration-none)}`;
|
|
7239
|
+
const postBreadcrumbItemCss = () => `a{-webkit-text-decoration:var(--post-core-text-decoration-underline);text-decoration:var(--post-core-text-decoration-underline);border-radius:var(--post-device-border-radius-focus);color:var(--post-current-fg)}a:hover{color:var(--post-scheme-color-interactive-primary-hover-fg1)}a{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}a:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){a:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){a:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){a:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){a,a:focus{color:LinkText !important}a:hover{text-decoration-thickness:2px}a:visited{color:VisitedText}a.btn:not(.btn-link){border-color:ButtonBorder !important}a.btn.btn-tertiary.px-0{border:0 !important}a.btn.btn-tertiary.px-0:not(:hover){text-decoration:underline}}:host([variant=menuitem]) :is(a,span),:host([variant=menuitem]) ::slotted(a){white-space:normal;overflow-wrap:anywhere;hyphens:auto;line-break:strict}:host([variant=listitem]){display:flex;align-items:flex-start;padding-block:var(--post-device-spacing-padding-block-6);gap:var(--post-device-spacing-gap-inline-5)}:host([variant=listitem]) :is(button,a){display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;font:inherit;padding:unset;border:unset;border-radius:var(--post-device-border-radius-focus);color:var(--post-scheme-color-interactive-primary-enabled-fg1);text-decoration:var(--post-core-text-decoration-none)}:host([variant=listitem]) :is(button,a):not(:disabled):hover{text-decoration:none}:host([variant=listitem]) :is(button,a):disabled{border-style:var(--post-core-border-style-dash);cursor:unset}:host([variant=listitem]) :is(button,a){outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}:host([variant=listitem]) :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host([variant=listitem]) :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){:host([variant=listitem]) :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host([variant=listitem]) :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host([variant=listitem]) :is(button,a){border-width:1px !important;transition:none}:host([variant=listitem]) :is(button,a):is(button){background-color:ButtonFace !important;border-color:ButtonBorder !important}}:host([variant=listitem]) :is(button,a):hover{color:var(--post-scheme-color-interactive-primary-hover-fg1);text-decoration:var(--post-core-text-decoration-underline)}:host([variant=listitem])::before{mask-image:var(--post-icon-chevronright);background-color:currentColor;flex:0 0 auto;content:"";display:block;height:var(--post-device-sizing-interactive-icon-size4);width:var(--post-device-sizing-interactive-icon-size4);margin-block:calc(var(--post-device-spacing-padding-35) - 1*var(--post-device-spacing-padding-block-6));margin-inline:var(--post-core-dimension-4)}:root,:host{--post-icon-chevronright:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxzeW1ib2wgaWQ9ImktY2hldnJvbnJpZ2h0Ij48c3ltYm9sIGlkPSJzMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTUuMzggMTRjLS4xOSAwLS4zOC0uMDctLjUzLS4yMmEuNzU0Ljc1NCAwIDAgMSAwLTEuMDZMOS41NyA4IDQuODUgMy4yOGMtLjI5LS4yOS0uMjktLjc3IDAtMS4wNnMuNzctLjI5IDEuMDYgMEwxMS42OSA4bC01Ljc4IDUuNzhjLS4xNS4xNS0uMzQuMjItLjUzLjIyIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik04LjA3IDIwLjcyYy0uMjIgMC0uNDUtLjA4LS42Mi0uMjZhLjg4Ljg4IDAgMCAxIDAtMS4yNGw3LjI2LTcuMjZMNy40NSA0LjdhLjg4Ljg4IDAgMCAxIDAtMS4yNGMuMzQtLjM0LjktLjM0IDEuMjQgMGw4LjUgOC41LTguNDkgOC40OWMtLjE3LjE3LS40LjI2LS42Mi4yNloiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZD0iTTEwLjc2IDI3LjVjLS4yNiAwLS41MS0uMS0uNzEtLjI5YS45OTYuOTk2IDAgMCAxIDAtMS40MWw5Ljc5LTkuNzktOS43OS05LjgxYS45OTYuOTk2IDAgMSAxIDEuNDEtMS40MUwyMi42NyAxNiAxMS40NiAyNy4yMWMtLjIuMi0uNDUuMjktLjcxLjI5WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTMuNSAzNC4yMmExLjEyMyAxLjEyMyAwIDAgMS0uOC0xLjkybDEyLjMzLTEyLjMzTDEyLjcgNy42M2MtLjQ0LS40NC0uNDQtMS4xNSAwLTEuNTlzMS4xNS0uNDQgMS41OSAwbDEzLjkzIDEzLjkzTDE0LjMgMzMuODljLS4yMi4yMi0uNTEuMzMtLjguMzMiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHBhdGggZD0iTTE2LjE0IDQxYy0uMzIgMC0uNjQtLjEyLS44OC0uMzdhMS4yNSAxLjI1IDAgMCAxIDAtMS43N2wxNC44Ny0xNC44N0wxNS4yNSA5LjExYy0uNDktLjQ5LS40OS0xLjI4IDAtMS43N3MxLjI4LS40OSAxLjc3IDBsMTYuNjQgMTYuNjQtMTYuNjMgMTYuNjNjLS4yNC4yNC0uNTYuMzctLjg4LjM3WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij48cGF0aCBkPSJNMjEuNTEgNTQuNGExLjM3NiAxLjM3NiAwIDAgMS0uOTctMi4zNWwyMC4wMy0yMC4wMy0yMC4wNC0yMC4wM2MtLjU0LS41NC0uNTQtMS40MSAwLTEuOTVzMS40MS0uNTQgMS45NSAwbDIxLjk4IDIxLjk5TDIyLjQ5IDU0Yy0uMjcuMjctLjYyLjQtLjk3LjRaIi8+PC9zeW1ib2w+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczE2LCBub25lKSIgaHJlZj0iI3MxNiIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXMyNCwgbm9uZSkiIGhyZWY9IiNzMjQiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zMzIsIG5vbmUpIiBocmVmPSIjczMyIi8+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczQwLCBub25lKSIgaHJlZj0iI3M0MCIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXM0OCwgbm9uZSkiIGhyZWY9IiNzNDgiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zNjQsIG5vbmUpIiBocmVmPSIjczY0Ii8+PC9zeW1ib2w+PC9kZWZzPjxzdHlsZT5AbWVkaWEgKG1heC13aWR0aDogMjMuOThweCkge2d7LS1zMTY6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogMjRweCkgYW5kIChtYXgtd2lkdGg6IDMxLjk4cHgpIHtney0tczI0OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDMycHgpIGFuZCAobWF4LXdpZHRoOiAzOS45OHB4KSB7Z3stLXMzMjpibG9jazt9fUBtZWRpYSAobWluLXdpZHRoOiA0MHB4KSBhbmQgKG1heC13aWR0aDogNDcuOThweCkge2d7LS1zNDA6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogNDhweCkgYW5kIChtYXgtd2lkdGg6IDYzLjk4cHgpIHtney0tczQ4OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDY0cHgpIHtney0tczY0OmJsb2NrO319PC9zdHlsZT48Zz48dXNlIGhyZWY9IiNpLWNoZXZyb25yaWdodCIvPjwvZz48L3N2Zz4=")}:host([variant=listitem]):not([standalone]:not([standalone=false])) ::slotted(a){white-space:nowrap}:host([variant=listitem]):host([selected]:not([selected=false])){flex-shrink:0}:host([variant=listitem]):host([selected]:not([selected=false])) :is(a,span){color:var(--post-scheme-color-interactive-primary-selected-fg1);font-weight:var(--post-device-font-weight-bold);text-decoration:var(--post-core-text-decoration-none)}:host([variant=listitem]):host([standalone]:not([standalone=false])){flex-shrink:1}:host([variant=listitem]):host([standalone]:not([standalone=false])) :is(a,span),:host([variant=listitem]):host([standalone]:not([standalone=false])) ::slotted(a){white-space:normal;overflow-wrap:anywhere;hyphens:auto;line-break:strict}`;
|
|
7333
7240
|
|
|
7334
7241
|
var __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
7335
7242
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -7342,60 +7249,252 @@ var __decorate$v = (undefined && undefined.__decorate) || function (decorators,
|
|
|
7342
7249
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7343
7250
|
};
|
|
7344
7251
|
/**
|
|
7345
|
-
* @slot default - The content displayed inside the breadcrumb item.
|
|
7252
|
+
* @slot default - The content displayed inside the breadcrumb item. Can contain text or an <a> element, so consumers can slot their own routing-aware link instead of relying on the `url` prop.
|
|
7253
|
+
*/
|
|
7254
|
+
class PostBreadcrumbItem {
|
|
7255
|
+
constructor(hostRef) {
|
|
7256
|
+
registerInstance(this, hostRef);
|
|
7257
|
+
/**
|
|
7258
|
+
* Whether the consumer slotted their own <a>. When true, the component renders only the <slot>, leaving the slotted anchor untouched so the host app's router can handle clicks.
|
|
7259
|
+
*/
|
|
7260
|
+
this.hasSlottedAnchor = false;
|
|
7261
|
+
/**
|
|
7262
|
+
* Controls how the item is rendered, either as a standard list item or within an overflow menu.
|
|
7263
|
+
*/
|
|
7264
|
+
this.variant = 'listitem';
|
|
7265
|
+
/**
|
|
7266
|
+
* Indicates that the item represents the current page, applying appropriate styling.
|
|
7267
|
+
*/
|
|
7268
|
+
this.selected = false;
|
|
7269
|
+
/**
|
|
7270
|
+
* Indicates that this is the only visible item, applying appropriate styling.
|
|
7271
|
+
*/
|
|
7272
|
+
this.standalone = false;
|
|
7273
|
+
}
|
|
7274
|
+
componentWillLoad() {
|
|
7275
|
+
this.checkSlottedAnchor();
|
|
7276
|
+
}
|
|
7277
|
+
checkSlottedAnchor() {
|
|
7278
|
+
this.hasSlottedAnchor = Array.from(this.host.children).some(child => child.tagName === 'A');
|
|
7279
|
+
}
|
|
7280
|
+
renderContent() {
|
|
7281
|
+
const slot = hAsync("slot", { onSlotchange: () => this.checkSlottedAnchor() });
|
|
7282
|
+
const href = this.url instanceof URL ? this.url.href : this.url;
|
|
7283
|
+
if (this.hasSlottedAnchor) {
|
|
7284
|
+
return slot;
|
|
7285
|
+
}
|
|
7286
|
+
else if (!href) {
|
|
7287
|
+
return hAsync("span", null, slot);
|
|
7288
|
+
}
|
|
7289
|
+
else {
|
|
7290
|
+
return (hAsync("a", { href: href, "aria-current": this.selected ? 'page' : undefined, "aria-label": this.label, "aria-description": this.description }, slot));
|
|
7291
|
+
}
|
|
7292
|
+
}
|
|
7293
|
+
render() {
|
|
7294
|
+
const content = this.renderContent();
|
|
7295
|
+
return this.variant === 'listitem' || this.selected ? (hAsync(Host, { "data-version": version$1, role: "listitem", slot: this.selected ? 'selected' : undefined }, content)) : (hAsync(Host, { "data-version": version$1, slot: "menu" }, hAsync("post-menu-item", null, content)));
|
|
7296
|
+
}
|
|
7297
|
+
get host() { return getElement(this); }
|
|
7298
|
+
static get style() { return postBreadcrumbItemCss(); }
|
|
7299
|
+
static get cmpMeta() { return {
|
|
7300
|
+
"$flags$": 265,
|
|
7301
|
+
"$tagName$": "post-breadcrumb-item",
|
|
7302
|
+
"$members$": {
|
|
7303
|
+
"url": [513],
|
|
7304
|
+
"label": [513],
|
|
7305
|
+
"description": [513],
|
|
7306
|
+
"variant": [513],
|
|
7307
|
+
"selected": [516],
|
|
7308
|
+
"standalone": [516],
|
|
7309
|
+
"hasSlottedAnchor": [32]
|
|
7310
|
+
},
|
|
7311
|
+
"$listeners$": undefined,
|
|
7312
|
+
"$lazyBundleId$": "-",
|
|
7313
|
+
"$attrsToReflect$": [["url", "url"], ["label", "label"], ["description", "description"], ["variant", "variant"], ["selected", "selected"], ["standalone", "standalone"]]
|
|
7314
|
+
}; }
|
|
7315
|
+
}
|
|
7316
|
+
__decorate$v([
|
|
7317
|
+
Url()
|
|
7318
|
+
], PostBreadcrumbItem.prototype, "url", void 0);
|
|
7319
|
+
__decorate$v([
|
|
7320
|
+
Type('string')
|
|
7321
|
+
], PostBreadcrumbItem.prototype, "label", void 0);
|
|
7322
|
+
__decorate$v([
|
|
7323
|
+
Type('string')
|
|
7324
|
+
], PostBreadcrumbItem.prototype, "description", void 0);
|
|
7325
|
+
__decorate$v([
|
|
7326
|
+
OneOf(VARIANTS)
|
|
7327
|
+
], PostBreadcrumbItem.prototype, "variant", void 0);
|
|
7328
|
+
__decorate$v([
|
|
7329
|
+
Required(),
|
|
7330
|
+
Type('boolean')
|
|
7331
|
+
], PostBreadcrumbItem.prototype, "selected", void 0);
|
|
7332
|
+
__decorate$v([
|
|
7333
|
+
Required(),
|
|
7334
|
+
Type('boolean')
|
|
7335
|
+
], PostBreadcrumbItem.prototype, "standalone", void 0);
|
|
7336
|
+
|
|
7337
|
+
/* eslint-disable no-undefined,no-param-reassign,no-shadow */
|
|
7338
|
+
|
|
7339
|
+
/**
|
|
7340
|
+
* Throttle execution of a function. Especially useful for rate limiting
|
|
7341
|
+
* execution of handlers on events like resize and scroll.
|
|
7342
|
+
*
|
|
7343
|
+
* @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)
|
|
7344
|
+
* are most useful.
|
|
7345
|
+
* @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,
|
|
7346
|
+
* as-is, to `callback` when the throttled-function is executed.
|
|
7347
|
+
* @param {object} [options] - An object to configure options.
|
|
7348
|
+
* @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds
|
|
7349
|
+
* while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed
|
|
7350
|
+
* one final time after the last throttled-function call. (After the throttled-function has not been called for
|
|
7351
|
+
* `delay` milliseconds, the internal counter is reset).
|
|
7352
|
+
* @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback
|
|
7353
|
+
* immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that
|
|
7354
|
+
* callback will never executed if both noLeading = true and noTrailing = true.
|
|
7355
|
+
* @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is
|
|
7356
|
+
* false (at end), schedule `callback` to execute after `delay` ms.
|
|
7357
|
+
*
|
|
7358
|
+
* @returns {Function} A new, throttled, function.
|
|
7359
|
+
*/
|
|
7360
|
+
function throttle (delay, callback, options) {
|
|
7361
|
+
var _ref = options || {},
|
|
7362
|
+
_ref$noTrailing = _ref.noTrailing,
|
|
7363
|
+
noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing,
|
|
7364
|
+
_ref$noLeading = _ref.noLeading,
|
|
7365
|
+
noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading,
|
|
7366
|
+
_ref$debounceMode = _ref.debounceMode,
|
|
7367
|
+
debounceMode = _ref$debounceMode === void 0 ? undefined : _ref$debounceMode;
|
|
7368
|
+
/*
|
|
7369
|
+
* After wrapper has stopped being called, this timeout ensures that
|
|
7370
|
+
* `callback` is executed at the proper times in `throttle` and `end`
|
|
7371
|
+
* debounce modes.
|
|
7372
|
+
*/
|
|
7373
|
+
var timeoutID;
|
|
7374
|
+
var cancelled = false;
|
|
7375
|
+
|
|
7376
|
+
// Keep track of the last time `callback` was executed.
|
|
7377
|
+
var lastExec = 0;
|
|
7378
|
+
|
|
7379
|
+
// Function to clear existing timeout
|
|
7380
|
+
function clearExistingTimeout() {
|
|
7381
|
+
if (timeoutID) {
|
|
7382
|
+
clearTimeout(timeoutID);
|
|
7383
|
+
}
|
|
7384
|
+
}
|
|
7385
|
+
|
|
7386
|
+
// Function to cancel next exec
|
|
7387
|
+
function cancel(options) {
|
|
7388
|
+
var _ref2 = options || {},
|
|
7389
|
+
_ref2$upcomingOnly = _ref2.upcomingOnly,
|
|
7390
|
+
upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;
|
|
7391
|
+
clearExistingTimeout();
|
|
7392
|
+
cancelled = !upcomingOnly;
|
|
7393
|
+
}
|
|
7394
|
+
|
|
7395
|
+
/*
|
|
7396
|
+
* The `wrapper` function encapsulates all of the throttling / debouncing
|
|
7397
|
+
* functionality and when executed will limit the rate at which `callback`
|
|
7398
|
+
* is executed.
|
|
7399
|
+
*/
|
|
7400
|
+
function wrapper() {
|
|
7401
|
+
for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
7402
|
+
arguments_[_key] = arguments[_key];
|
|
7403
|
+
}
|
|
7404
|
+
var self = this;
|
|
7405
|
+
var elapsed = Date.now() - lastExec;
|
|
7406
|
+
if (cancelled) {
|
|
7407
|
+
return;
|
|
7408
|
+
}
|
|
7409
|
+
|
|
7410
|
+
// Execute `callback` and update the `lastExec` timestamp.
|
|
7411
|
+
function exec() {
|
|
7412
|
+
lastExec = Date.now();
|
|
7413
|
+
callback.apply(self, arguments_);
|
|
7414
|
+
}
|
|
7415
|
+
|
|
7416
|
+
/*
|
|
7417
|
+
* If `debounceMode` is true (at begin) this is used to clear the flag
|
|
7418
|
+
* to allow future `callback` executions.
|
|
7419
|
+
*/
|
|
7420
|
+
function clear() {
|
|
7421
|
+
timeoutID = undefined;
|
|
7422
|
+
}
|
|
7423
|
+
if (!noLeading && debounceMode && !timeoutID) {
|
|
7424
|
+
/*
|
|
7425
|
+
* Since `wrapper` is being called for the first time and
|
|
7426
|
+
* `debounceMode` is true (at begin), execute `callback`
|
|
7427
|
+
* and noLeading != true.
|
|
7428
|
+
*/
|
|
7429
|
+
exec();
|
|
7430
|
+
}
|
|
7431
|
+
clearExistingTimeout();
|
|
7432
|
+
if (debounceMode === undefined && elapsed > delay) {
|
|
7433
|
+
if (noLeading) {
|
|
7434
|
+
/*
|
|
7435
|
+
* In throttle mode with noLeading, if `delay` time has
|
|
7436
|
+
* been exceeded, update `lastExec` and schedule `callback`
|
|
7437
|
+
* to execute after `delay` ms.
|
|
7438
|
+
*/
|
|
7439
|
+
lastExec = Date.now();
|
|
7440
|
+
if (!noTrailing) {
|
|
7441
|
+
timeoutID = setTimeout(debounceMode ? clear : exec, delay);
|
|
7442
|
+
}
|
|
7443
|
+
} else {
|
|
7444
|
+
/*
|
|
7445
|
+
* In throttle mode without noLeading, if `delay` time has been exceeded, execute
|
|
7446
|
+
* `callback`.
|
|
7447
|
+
*/
|
|
7448
|
+
exec();
|
|
7449
|
+
}
|
|
7450
|
+
} else if (noTrailing !== true) {
|
|
7451
|
+
/*
|
|
7452
|
+
* In trailing throttle mode, since `delay` time has not been
|
|
7453
|
+
* exceeded, schedule `callback` to execute `delay` ms after most
|
|
7454
|
+
* recent execution.
|
|
7455
|
+
*
|
|
7456
|
+
* If `debounceMode` is true (at begin), schedule `clear` to execute
|
|
7457
|
+
* after `delay` ms.
|
|
7458
|
+
*
|
|
7459
|
+
* If `debounceMode` is false (at end), schedule `callback` to
|
|
7460
|
+
* execute after `delay` ms.
|
|
7461
|
+
*/
|
|
7462
|
+
timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);
|
|
7463
|
+
}
|
|
7464
|
+
}
|
|
7465
|
+
wrapper.cancel = cancel;
|
|
7466
|
+
|
|
7467
|
+
// Return the wrapper function.
|
|
7468
|
+
return wrapper;
|
|
7469
|
+
}
|
|
7470
|
+
|
|
7471
|
+
/* eslint-disable no-undefined */
|
|
7472
|
+
|
|
7473
|
+
/**
|
|
7474
|
+
* Debounce execution of a function. Debouncing, unlike throttling,
|
|
7475
|
+
* guarantees that a function is only executed a single time, either at the
|
|
7476
|
+
* very beginning of a series of calls, or at the very end.
|
|
7477
|
+
*
|
|
7478
|
+
* @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.
|
|
7479
|
+
* @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,
|
|
7480
|
+
* to `callback` when the debounced-function is executed.
|
|
7481
|
+
* @param {object} [options] - An object to configure options.
|
|
7482
|
+
* @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds
|
|
7483
|
+
* after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.
|
|
7484
|
+
* (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).
|
|
7485
|
+
*
|
|
7486
|
+
* @returns {Function} A new, debounced function.
|
|
7346
7487
|
*/
|
|
7347
|
-
|
|
7348
|
-
|
|
7349
|
-
|
|
7350
|
-
|
|
7351
|
-
|
|
7352
|
-
|
|
7353
|
-
|
|
7354
|
-
/**
|
|
7355
|
-
* Indicates that the item represents the current page, applying appropriate styling.
|
|
7356
|
-
*/
|
|
7357
|
-
this.selected = false;
|
|
7358
|
-
}
|
|
7359
|
-
render() {
|
|
7360
|
-
const href = this.url instanceof URL ? this.url.href : this.url;
|
|
7361
|
-
const content = href ? (hAsync("a", { href: href, "aria-current": this.selected ? 'page' : undefined, "aria-label": this.label, "aria-description": this.description }, hAsync("slot", null))) : (hAsync("span", null, hAsync("slot", null)));
|
|
7362
|
-
return this.variant === 'listitem' || this.selected ? (hAsync(Host, { "data-version": version$1, role: "listitem", slot: this.selected ? 'selected' : undefined }, content)) : (hAsync(Host, { "data-version": version$1 }, hAsync("post-menu-item", null, content)));
|
|
7363
|
-
}
|
|
7364
|
-
get host() { return getElement(this); }
|
|
7365
|
-
static get style() { return postBreadcrumbItemCss(); }
|
|
7366
|
-
static get cmpMeta() { return {
|
|
7367
|
-
"$flags$": 265,
|
|
7368
|
-
"$tagName$": "post-breadcrumb-item",
|
|
7369
|
-
"$members$": {
|
|
7370
|
-
"url": [513],
|
|
7371
|
-
"label": [513],
|
|
7372
|
-
"description": [513],
|
|
7373
|
-
"variant": [513],
|
|
7374
|
-
"selected": [516]
|
|
7375
|
-
},
|
|
7376
|
-
"$listeners$": undefined,
|
|
7377
|
-
"$lazyBundleId$": "-",
|
|
7378
|
-
"$attrsToReflect$": [["url", "url"], ["label", "label"], ["description", "description"], ["variant", "variant"], ["selected", "selected"]]
|
|
7379
|
-
}; }
|
|
7488
|
+
function debounce (delay, callback, options) {
|
|
7489
|
+
var _ref = {},
|
|
7490
|
+
_ref$atBegin = _ref.atBegin,
|
|
7491
|
+
atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin;
|
|
7492
|
+
return throttle(delay, callback, {
|
|
7493
|
+
debounceMode: atBegin !== false
|
|
7494
|
+
});
|
|
7380
7495
|
}
|
|
7381
|
-
__decorate$v([
|
|
7382
|
-
Url()
|
|
7383
|
-
], PostBreadcrumbItem.prototype, "url", void 0);
|
|
7384
|
-
__decorate$v([
|
|
7385
|
-
Type('string')
|
|
7386
|
-
], PostBreadcrumbItem.prototype, "label", void 0);
|
|
7387
|
-
__decorate$v([
|
|
7388
|
-
Type('string')
|
|
7389
|
-
], PostBreadcrumbItem.prototype, "description", void 0);
|
|
7390
|
-
__decorate$v([
|
|
7391
|
-
OneOf(VARIANTS)
|
|
7392
|
-
], PostBreadcrumbItem.prototype, "variant", void 0);
|
|
7393
|
-
__decorate$v([
|
|
7394
|
-
Required(),
|
|
7395
|
-
Type('boolean')
|
|
7396
|
-
], PostBreadcrumbItem.prototype, "selected", void 0);
|
|
7397
7496
|
|
|
7398
|
-
const postBreadcrumbsCss = () => `:host{display:block;position:relative}nav{max-width:100%}nav.invisible{
|
|
7497
|
+
const postBreadcrumbsCss = () => `:host{display:block;position:relative}nav{max-width:100%}nav.invisible{overflow:hidden;visibility:hidden;position:absolute;inset:0}nav.loading>div>:not(.home){display:none}[role=list]{display:flex;align-items:flex-start;gap:var(--post-device-spacing-gap-inline-4)}[role=list]>.menu:first-child::before{content:none}.breadcrumb-item{display:flex;align-items:flex-start;padding-block:var(--post-device-spacing-padding-block-6);gap:var(--post-device-spacing-gap-inline-5)}.breadcrumb-item :is(button,a){display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;font:inherit;padding:unset;border:unset;border-radius:var(--post-device-border-radius-focus);color:var(--post-scheme-color-interactive-primary-enabled-fg1);text-decoration:var(--post-core-text-decoration-none)}.breadcrumb-item :is(button,a):not(:disabled):hover{text-decoration:none}.breadcrumb-item :is(button,a):disabled{border-style:var(--post-core-border-style-dash);cursor:unset}.breadcrumb-item :is(button,a){outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}.breadcrumb-item :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.breadcrumb-item :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.breadcrumb-item :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.breadcrumb-item :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.breadcrumb-item :is(button,a){border-width:1px !important;transition:none}.breadcrumb-item :is(button,a):is(button){background-color:ButtonFace !important;border-color:ButtonBorder !important}}.breadcrumb-item :is(button,a):hover{color:var(--post-scheme-color-interactive-primary-hover-fg1);text-decoration:var(--post-core-text-decoration-underline)}.breadcrumb-item::before{mask-image:var(--post-icon-chevronright);background-color:currentColor;flex:0 0 auto;content:"";display:block;height:var(--post-device-sizing-interactive-icon-size4);width:var(--post-device-sizing-interactive-icon-size4);margin-block:calc(var(--post-device-spacing-padding-35) - 1*var(--post-device-spacing-padding-block-6));margin-inline:var(--post-core-dimension-4)}:root,:host{--post-icon-chevronright:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxzeW1ib2wgaWQ9ImktY2hldnJvbnJpZ2h0Ij48c3ltYm9sIGlkPSJzMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTUuMzggMTRjLS4xOSAwLS4zOC0uMDctLjUzLS4yMmEuNzU0Ljc1NCAwIDAgMSAwLTEuMDZMOS41NyA4IDQuODUgMy4yOGMtLjI5LS4yOS0uMjktLjc3IDAtMS4wNnMuNzctLjI5IDEuMDYgMEwxMS42OSA4bC01Ljc4IDUuNzhjLS4xNS4xNS0uMzQuMjItLjUzLjIyIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik04LjA3IDIwLjcyYy0uMjIgMC0uNDUtLjA4LS42Mi0uMjZhLjg4Ljg4IDAgMCAxIDAtMS4yNGw3LjI2LTcuMjZMNy40NSA0LjdhLjg4Ljg4IDAgMCAxIDAtMS4yNGMuMzQtLjM0LjktLjM0IDEuMjQgMGw4LjUgOC41LTguNDkgOC40OWMtLjE3LjE3LS40LjI2LS42Mi4yNloiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZD0iTTEwLjc2IDI3LjVjLS4yNiAwLS41MS0uMS0uNzEtLjI5YS45OTYuOTk2IDAgMCAxIDAtMS40MWw5Ljc5LTkuNzktOS43OS05LjgxYS45OTYuOTk2IDAgMSAxIDEuNDEtMS40MUwyMi42NyAxNiAxMS40NiAyNy4yMWMtLjIuMi0uNDUuMjktLjcxLjI5WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTMuNSAzNC4yMmExLjEyMyAxLjEyMyAwIDAgMS0uOC0xLjkybDEyLjMzLTEyLjMzTDEyLjcgNy42M2MtLjQ0LS40NC0uNDQtMS4xNSAwLTEuNTlzMS4xNS0uNDQgMS41OSAwbDEzLjkzIDEzLjkzTDE0LjMgMzMuODljLS4yMi4yMi0uNTEuMzMtLjguMzMiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHBhdGggZD0iTTE2LjE0IDQxYy0uMzIgMC0uNjQtLjEyLS44OC0uMzdhMS4yNSAxLjI1IDAgMCAxIDAtMS43N2wxNC44Ny0xNC44N0wxNS4yNSA5LjExYy0uNDktLjQ5LS40OS0xLjI4IDAtMS43N3MxLjI4LS40OSAxLjc3IDBsMTYuNjQgMTYuNjQtMTYuNjMgMTYuNjNjLS4yNC4yNC0uNTYuMzctLjg4LjM3WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij48cGF0aCBkPSJNMjEuNTEgNTQuNGExLjM3NiAxLjM3NiAwIDAgMS0uOTctMi4zNWwyMC4wMy0yMC4wMy0yMC4wNC0yMC4wM2MtLjU0LS41NC0uNTQtMS40MSAwLTEuOTVzMS40MS0uNTQgMS45NSAwbDIxLjk4IDIxLjk5TDIyLjQ5IDU0Yy0uMjcuMjctLjYyLjQtLjk3LjRaIi8+PC9zeW1ib2w+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczE2LCBub25lKSIgaHJlZj0iI3MxNiIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXMyNCwgbm9uZSkiIGhyZWY9IiNzMjQiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zMzIsIG5vbmUpIiBocmVmPSIjczMyIi8+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczQwLCBub25lKSIgaHJlZj0iI3M0MCIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXM0OCwgbm9uZSkiIGhyZWY9IiNzNDgiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zNjQsIG5vbmUpIiBocmVmPSIjczY0Ii8+PC9zeW1ib2w+PC9kZWZzPjxzdHlsZT5AbWVkaWEgKG1heC13aWR0aDogMjMuOThweCkge2d7LS1zMTY6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogMjRweCkgYW5kIChtYXgtd2lkdGg6IDMxLjk4cHgpIHtney0tczI0OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDMycHgpIGFuZCAobWF4LXdpZHRoOiAzOS45OHB4KSB7Z3stLXMzMjpibG9jazt9fUBtZWRpYSAobWluLXdpZHRoOiA0MHB4KSBhbmQgKG1heC13aWR0aDogNDcuOThweCkge2d7LS1zNDA6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogNDhweCkgYW5kIChtYXgtd2lkdGg6IDYzLjk4cHgpIHtney0tczQ4OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDY0cHgpIHtney0tczY0OmJsb2NrO319PC9zdHlsZT48Zz48dXNlIGhyZWY9IiNpLWNoZXZyb25yaWdodCIvPjwvZz48L3N2Zz4=")}post-menu-item>slot[name=home]>a{position:relative;display:flex;align-items:center;padding:8px 12px 8px 16px;gap:12px;font-size:.875rem;color:#050400;border-radius:0;text-decoration:none;min-width:0;white-space:normal;overflow:visible;text-overflow:unset;justify-content:start;overflow-wrap:anywhere;hyphens:auto;line-break:strict}@media screen and (min-width: 780px){post-menu-item>slot[name=home]>a{font-size:1rem;padding-block:12px;gap:16px}}@media screen and (min-width: 1024px){post-menu-item>slot[name=home]>a{font-size:1.25rem;padding-block:13px}}post-menu-item>slot[name=home]>a:focus-visible{outline-offset:2px !important;border-radius:4px}post-menu-item>slot[name=home]>a:hover{background-color:#504f4b;color:#fff}.home{flex:none}.home::before{content:unset}.home.icon{padding-block:var(--post-device-spacing-padding-47)}.home.icon post-icon{width:var(--post-device-sizing-interactive-icon-size2);height:var(--post-device-sizing-interactive-icon-size2)}.menu{margin-inline-end:calc(-1*var(--post-device-spacing-gap-inline-4))}.menu.empty{display:none}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}`;
|
|
7399
7498
|
|
|
7400
7499
|
var __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
7401
7500
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -7407,92 +7506,241 @@ var __decorate$u = (undefined && undefined.__decorate) || function (decorators,
|
|
|
7407
7506
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
7408
7507
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7409
7508
|
};
|
|
7509
|
+
const MAX_VISIBLE_ITEMS = 6;
|
|
7510
|
+
const MEASUREMENT_DEBOUNCE_MS$1 = 50;
|
|
7511
|
+
/**
|
|
7512
|
+
* @slot home - The content of the root (home) breadcrumb item. Can contain an `<a>` element, so consumers can slot their own routing-aware link instead of relying on the `home-url` prop.
|
|
7513
|
+
*/
|
|
7410
7514
|
class PostBreadcrumbs {
|
|
7411
7515
|
constructor(hostRef) {
|
|
7412
7516
|
registerInstance(this, hostRef);
|
|
7413
|
-
this.
|
|
7517
|
+
this.debounceUpdateCollapsedItems = throttle(MEASUREMENT_DEBOUNCE_MS$1, this.updateCollapsedItems.bind(this));
|
|
7518
|
+
this.resizeObserver = new ResizeObserver(this.debounceUpdateCollapsedItems);
|
|
7519
|
+
this.mutationObserver = new MutationObserver(() => {
|
|
7520
|
+
void this.updateAfterMutation();
|
|
7521
|
+
});
|
|
7522
|
+
this.loaded = false;
|
|
7523
|
+
/** Whether the consumer slotted their own `<a>` into the `home` slot. When true, `home-url` is not required, since the internal fallback link is not rendered. */
|
|
7524
|
+
this.hasSlottedHomeAnchor = false;
|
|
7525
|
+
/** Whether the slotted home anchor contains a post-icon. */
|
|
7526
|
+
this.hasSlottedHomeIcon = false;
|
|
7527
|
+
/** The number of breadcrumb items, counted from the start, moved into the overflow menu. */
|
|
7528
|
+
this.collapsed = 0;
|
|
7529
|
+
/** Whether the home item is collapsed into its own overflow menu. */
|
|
7530
|
+
this.homeCollapsed = false;
|
|
7531
|
+
/** Whether the last (selected) item wraps onto multiple lines. */
|
|
7532
|
+
this.lastItemWraps = false;
|
|
7533
|
+
/** The visible breadcrumb navigation. */
|
|
7534
|
+
this.nav = null;
|
|
7535
|
+
/** An off-screen copy of the breadcrumb navigation used for measurement. */
|
|
7536
|
+
this.hiddenNav = null;
|
|
7537
|
+
/**
|
|
7538
|
+
* Whether `text-home` content is displayed instead of the home icon, enabling segment specific
|
|
7539
|
+
* breadcrumbs (like "Private customers" or "About us").
|
|
7540
|
+
*/
|
|
7541
|
+
this.homeTextOnly = false;
|
|
7414
7542
|
}
|
|
7415
7543
|
componentWillLoad() {
|
|
7416
7544
|
this.id = this.host.id || `b${nanoid(6)}`;
|
|
7545
|
+
this.checkSlottedHomeAnchor();
|
|
7417
7546
|
}
|
|
7418
|
-
componentDidLoad() {
|
|
7419
|
-
this.
|
|
7420
|
-
this.
|
|
7421
|
-
}
|
|
7422
|
-
disconnectedCallback() {
|
|
7423
|
-
this.mutationObserver?.disconnect();
|
|
7424
|
-
this.resizeObserver?.disconnect();
|
|
7425
|
-
}
|
|
7426
|
-
createMutationObserver() {
|
|
7427
|
-
this.mutationObserver = new MutationObserver(this.duplicateNavElement.bind(this));
|
|
7428
|
-
this.mutationObserver.observe(this.host, {
|
|
7547
|
+
async componentDidLoad() {
|
|
7548
|
+
this.resizeObserver?.observe(document.body);
|
|
7549
|
+
this.mutationObserver?.observe(this.host, {
|
|
7429
7550
|
childList: true,
|
|
7430
7551
|
characterData: true,
|
|
7431
7552
|
subtree: true,
|
|
7432
7553
|
});
|
|
7433
|
-
this.
|
|
7554
|
+
await this.updateHiddenNav();
|
|
7555
|
+
await this.updateCollapsedItems();
|
|
7556
|
+
this.loaded = true;
|
|
7434
7557
|
}
|
|
7435
|
-
|
|
7436
|
-
this.resizeObserver
|
|
7437
|
-
this.
|
|
7558
|
+
disconnectedCallback() {
|
|
7559
|
+
this.resizeObserver?.disconnect();
|
|
7560
|
+
this.mutationObserver?.disconnect();
|
|
7561
|
+
this.debounceUpdateCollapsedItems.cancel();
|
|
7438
7562
|
}
|
|
7439
|
-
|
|
7440
|
-
|
|
7441
|
-
|
|
7442
|
-
|
|
7443
|
-
|
|
7444
|
-
const nav = shadowRoot?.querySelector('nav');
|
|
7445
|
-
if (!shadowRoot || !nav)
|
|
7446
|
-
return;
|
|
7447
|
-
this.prepareBreadcrumbItemsForClone();
|
|
7448
|
-
const clone = nav.cloneNode(true);
|
|
7449
|
-
clone.classList.add('invisible');
|
|
7450
|
-
shadowRoot.querySelector('nav.invisible')?.remove();
|
|
7451
|
-
shadowRoot.append(clone);
|
|
7452
|
-
requestAnimationFrame(() => {
|
|
7453
|
-
this.duplicateSlottedElements(clone, 'slot:not([name])');
|
|
7454
|
-
this.duplicateSlottedElements(clone, 'slot[name="selected"]');
|
|
7455
|
-
this.checkOverflow();
|
|
7456
|
-
});
|
|
7563
|
+
checkSlottedHomeAnchor() {
|
|
7564
|
+
const homeSlotElement = Array.from(this.host.children).find(child => child.getAttribute('slot') === 'home');
|
|
7565
|
+
this.hasSlottedHomeAnchor = homeSlotElement?.tagName === 'A';
|
|
7566
|
+
this.hasSlottedHomeIcon =
|
|
7567
|
+
this.hasSlottedHomeAnchor && !!homeSlotElement?.querySelector('post-icon');
|
|
7457
7568
|
}
|
|
7458
|
-
|
|
7459
|
-
|
|
7460
|
-
const clonedSlot = clone.querySelector(slotSelector);
|
|
7461
|
-
if (!originalSlot || !clonedSlot)
|
|
7462
|
-
return;
|
|
7463
|
-
originalSlot.assignedElements().forEach(element => {
|
|
7464
|
-
clonedSlot.insertAdjacentElement('beforebegin', element.cloneNode(true));
|
|
7465
|
-
});
|
|
7466
|
-
clonedSlot.remove();
|
|
7569
|
+
get usesHomeText() {
|
|
7570
|
+
return this.hasSlottedHomeAnchor ? !this.hasSlottedHomeIcon : this.homeTextOnly;
|
|
7467
7571
|
}
|
|
7468
|
-
|
|
7469
|
-
|
|
7470
|
-
|
|
7572
|
+
// Degrade order: collapse middle items -> collapse home -> wrap the last item.
|
|
7573
|
+
/** Measures the available space and updates all three degrade-stage states. */
|
|
7574
|
+
async updateCollapsedItems() {
|
|
7575
|
+
if (!this.nav)
|
|
7471
7576
|
return;
|
|
7472
|
-
const
|
|
7473
|
-
|
|
7474
|
-
|
|
7475
|
-
|
|
7476
|
-
|
|
7577
|
+
const { overflowing, homeOverflows, lastItemWraps } = await this.calculateCollapsedItems();
|
|
7578
|
+
this.collapsed = overflowing;
|
|
7579
|
+
this.homeCollapsed = homeOverflows;
|
|
7580
|
+
this.lastItemWraps = lastItemWraps;
|
|
7581
|
+
}
|
|
7582
|
+
async calculateCollapsedItems() {
|
|
7583
|
+
const items = this.host.querySelectorAll('post-breadcrumb-item');
|
|
7584
|
+
const { overflowing, homeOverflows, lastItemWraps } = await this.calculateOverflowingItems();
|
|
7585
|
+
// Never show more than `MAX_VISIBLE_ITEMS`, even if the nav is wide enough to fit them all.
|
|
7586
|
+
return {
|
|
7587
|
+
overflowing: Math.max(overflowing, items.length - MAX_VISIBLE_ITEMS),
|
|
7588
|
+
homeOverflows,
|
|
7589
|
+
lastItemWraps,
|
|
7590
|
+
};
|
|
7591
|
+
}
|
|
7592
|
+
/** Runs the three degrade stages in order against the off-screen measurement clone. */
|
|
7593
|
+
async calculateOverflowingItems() {
|
|
7594
|
+
if (!this.hiddenNav)
|
|
7595
|
+
return { overflowing: 0, homeOverflows: false, lastItemWraps: false };
|
|
7596
|
+
const nav = this.hiddenNav;
|
|
7597
|
+
const availableWidth = nav.clientWidth;
|
|
7598
|
+
const gap = Number.parseFloat(getComputedStyle(nav.firstElementChild).gap);
|
|
7599
|
+
const menuWidth = nav.querySelector('.menu')?.clientWidth ?? 0;
|
|
7600
|
+
const homeWidth = nav.querySelector('.home')?.clientWidth ?? 0;
|
|
7601
|
+
// Stage 1: collapse middle items, starting closest to home, until the rest fits.
|
|
7602
|
+
const middleItems = Array.from(nav.querySelectorAll('post-breadcrumb-item')).slice(0, -1);
|
|
7603
|
+
const { overflowing, remainingWidth } = this.collapseMiddleItems(middleItems, gap, menuWidth, availableWidth);
|
|
7604
|
+
// Stage 2: home + last item, single-line. Text home can collapse into the menu, while the
|
|
7605
|
+
// icon-only home remains visible and lets the last item wrap instead.
|
|
7606
|
+
const homeOverflows = this.usesHomeText && remainingWidth > availableWidth;
|
|
7607
|
+
// Stage 3: home joins the existing menu when middle items have collapsed. If no middle item
|
|
7608
|
+
// collapsed, the menu needs to be added when home moves into it.
|
|
7609
|
+
const widthWithHomeCollapsed = remainingWidth - homeWidth + (overflowing === 0 ? menuWidth : 0);
|
|
7610
|
+
const lastItemWraps = this.usesHomeText
|
|
7611
|
+
? homeOverflows && widthWithHomeCollapsed > availableWidth
|
|
7612
|
+
: remainingWidth > availableWidth;
|
|
7613
|
+
return { overflowing, homeOverflows, lastItemWraps };
|
|
7614
|
+
}
|
|
7615
|
+
/** Stage 1: collapses middle items until the rest fits, or none are left. */
|
|
7616
|
+
collapseMiddleItems(items, gap, menuWidth, availableWidth) {
|
|
7617
|
+
// Start from the assumption that all items fit and that no menu is shown, so subtract the
|
|
7618
|
+
// overflow menu's width from the total.
|
|
7619
|
+
let width = this.hiddenNav.scrollWidth - menuWidth + gap;
|
|
7620
|
+
let overflowing = 0;
|
|
7621
|
+
while (overflowing < items.length && width > availableWidth) {
|
|
7622
|
+
// The overflow menu needs to be displayed as soon as the first item is moved into it, so its
|
|
7623
|
+
// width needs to be taken into account when measuring the remaining items.
|
|
7624
|
+
if (overflowing === 0)
|
|
7625
|
+
width += menuWidth;
|
|
7626
|
+
width -= items[overflowing++].clientWidth + gap;
|
|
7627
|
+
}
|
|
7628
|
+
return { overflowing, remainingWidth: width };
|
|
7629
|
+
}
|
|
7630
|
+
/** Applies the degrade states to the `<post-breadcrumb-item>` elements. */
|
|
7631
|
+
updateItems(items, collapsed, lastItemWraps) {
|
|
7632
|
+
items.forEach((item, index) => {
|
|
7633
|
+
const isLast = index === items.length - 1;
|
|
7634
|
+
item.setAttribute('variant', index < collapsed ? 'menuitem' : 'listitem');
|
|
7635
|
+
item.setAttribute('selected', String(isLast));
|
|
7636
|
+
item.setAttribute('standalone', String(isLast && index === collapsed && lastItemWraps));
|
|
7477
7637
|
});
|
|
7478
7638
|
}
|
|
7479
|
-
|
|
7480
|
-
|
|
7481
|
-
this.
|
|
7639
|
+
/** Rebuilds the off-screen copy of the breadcrumb navigation. */
|
|
7640
|
+
async updateHiddenNav() {
|
|
7641
|
+
this.hiddenNav?.remove();
|
|
7642
|
+
this.hiddenNav = await this.renderHiddenNav();
|
|
7482
7643
|
}
|
|
7483
|
-
|
|
7484
|
-
|
|
7485
|
-
|
|
7486
|
-
|
|
7487
|
-
|
|
7644
|
+
async updateAfterMutation() {
|
|
7645
|
+
await this.updateHiddenNav();
|
|
7646
|
+
await this.updateCollapsedItems();
|
|
7647
|
+
}
|
|
7648
|
+
/**
|
|
7649
|
+
* Renders an off-screen copy of the nav for measurements. `.home` is rebuilt independently (see
|
|
7650
|
+
* `buildMeasurementHomeElement`) rather than cloned, since the live nav may show the home item
|
|
7651
|
+
* in the overflow menu instead if it is already collapsed.
|
|
7652
|
+
*/
|
|
7653
|
+
async renderHiddenNav() {
|
|
7654
|
+
const shadowRoot = this.host.shadowRoot;
|
|
7655
|
+
if (!shadowRoot || !this.nav)
|
|
7656
|
+
return null;
|
|
7657
|
+
const clone = this.nav.cloneNode(true);
|
|
7658
|
+
const slots = clone.querySelectorAll('slot');
|
|
7659
|
+
// Deep clone the breadcrumb navigation and flatten its slots into the clone.
|
|
7660
|
+
this.nav.querySelectorAll('slot').forEach((source, index) => {
|
|
7661
|
+
const target = slots[index];
|
|
7662
|
+
const assignedElements = source.assignedElements();
|
|
7663
|
+
if (assignedElements.length > 0) {
|
|
7664
|
+
// Insert the assigned elements where the slot used to be, then drop the now empty slot.
|
|
7665
|
+
assignedElements.forEach(element => {
|
|
7666
|
+
target.insertAdjacentElement('beforebegin', element.cloneNode(true));
|
|
7667
|
+
});
|
|
7668
|
+
target.remove();
|
|
7669
|
+
}
|
|
7670
|
+
else {
|
|
7671
|
+
// Nothing assigned: keep the slot's own fallback content (e.g. the default home link) by
|
|
7672
|
+
// unwrap the <slot> in place, move its children to where it was, then remove it.
|
|
7673
|
+
const parent = target.parentNode;
|
|
7674
|
+
if (parent) {
|
|
7675
|
+
Array.from(target.childNodes).forEach(child => parent.insertBefore(child, target));
|
|
7676
|
+
target.remove();
|
|
7677
|
+
}
|
|
7678
|
+
}
|
|
7488
7679
|
});
|
|
7680
|
+
// Always measure the full, uncollapsed home item — see the method doc above. Uses
|
|
7681
|
+
// replaceChild rather than replaceWith, since the latter isn't implemented by Stencil's
|
|
7682
|
+
// mock-doc DOM used during SSR/hydration.
|
|
7683
|
+
const existingHome = clone.querySelector('.home');
|
|
7684
|
+
existingHome?.parentNode?.replaceChild(this.buildMeasurementHomeElement(), existingHome);
|
|
7685
|
+
clone.classList.remove('loading');
|
|
7686
|
+
clone.classList.add('invisible');
|
|
7687
|
+
// Show the overflow menu so that we can include the space it takes up in the measurement.
|
|
7688
|
+
clone.querySelector('.menu').classList.remove('empty');
|
|
7689
|
+
shadowRoot.append(clone);
|
|
7690
|
+
// Wait for all items to be fully hydrated before measuring.
|
|
7691
|
+
const items = clone.querySelectorAll('post-breadcrumb-item');
|
|
7692
|
+
await Promise.all(Array.from(items).map(item => componentOnReady(item)));
|
|
7693
|
+
// Uncollapsed layout, both single-line, for measurement.
|
|
7694
|
+
this.updateItems(items, 0, false);
|
|
7695
|
+
return clone;
|
|
7696
|
+
}
|
|
7697
|
+
/** Builds `.home` in its full, uncollapsed form for measurement. Mirrors `renderHomeContent`, but as plain DOM since this runs outside the render cycle. */
|
|
7698
|
+
buildMeasurementHomeElement() {
|
|
7699
|
+
const home = document.createElement('div');
|
|
7700
|
+
home.className = `breadcrumb-item home${this.usesHomeText ? '' : ' icon'}`;
|
|
7701
|
+
home.setAttribute('role', 'listitem');
|
|
7702
|
+
const slottedAnchor = this.hasSlottedHomeAnchor
|
|
7703
|
+
? Array.from(this.host.children).find(child => child.getAttribute('slot') === 'home')
|
|
7704
|
+
: null;
|
|
7705
|
+
if (slottedAnchor) {
|
|
7706
|
+
home.append(slottedAnchor.cloneNode(true));
|
|
7707
|
+
return home;
|
|
7708
|
+
}
|
|
7709
|
+
const anchor = document.createElement('a');
|
|
7710
|
+
if (this.homeUrl)
|
|
7711
|
+
anchor.href = this.homeUrl;
|
|
7712
|
+
const label = document.createElement('span');
|
|
7713
|
+
if (!this.usesHomeText)
|
|
7714
|
+
label.className = 'visually-hidden';
|
|
7715
|
+
label.textContent = this.textHome;
|
|
7716
|
+
anchor.append(label);
|
|
7717
|
+
if (!this.usesHomeText) {
|
|
7718
|
+
const icon = document.createElement('post-icon');
|
|
7719
|
+
icon.setAttribute('aria-hidden', 'true');
|
|
7720
|
+
icon.setAttribute('name', 'home');
|
|
7721
|
+
anchor.append(icon);
|
|
7722
|
+
}
|
|
7723
|
+
home.append(anchor);
|
|
7724
|
+
return home;
|
|
7489
7725
|
}
|
|
7490
7726
|
renderMenu() {
|
|
7491
7727
|
const menuId = `${this.id}-menu`;
|
|
7492
|
-
return (hAsync("div", {
|
|
7728
|
+
return (hAsync("div", { class: `breadcrumb-item menu ${this.collapsed === 0 && !this.homeCollapsed ? 'empty' : ''}`, role: "listitem" }, hAsync("post-menu-trigger", { for: menuId }, hAsync("button", null, hAsync("span", { class: "visually-hidden" }, this.textMoreItems), hAsync("span", { "aria-hidden": "true" }, "..."))), hAsync("post-menu", { id: menuId, label: this.textMoreItems, placement: "bottom-start" }, this.homeCollapsed && this.usesHomeText && (hAsync("post-menu-item", null, this.renderHomeContent())), hAsync("slot", { name: "menu" }))));
|
|
7729
|
+
}
|
|
7730
|
+
/** Reused by the plain home item and the home menu — a slot can only be assigned once. */
|
|
7731
|
+
renderHomeContent() {
|
|
7732
|
+
return (hAsync("slot", { name: "home", onSlotchange: () => this.checkSlottedHomeAnchor() }, hAsync("a", { href: this.homeUrl }, hAsync("span", { class: this.usesHomeText ? undefined : 'visually-hidden' }, this.textHome), !this.usesHomeText && hAsync("post-icon", { "aria-hidden": "true", name: "home" }))));
|
|
7733
|
+
}
|
|
7734
|
+
/** Degrade stage 2: home renders in full, single-line, not yet collapsed. */
|
|
7735
|
+
renderHome() {
|
|
7736
|
+
return (hAsync("div", { class: `breadcrumb-item home${this.usesHomeText ? '' : ' icon'}`, role: "listitem" }, this.renderHomeContent()));
|
|
7493
7737
|
}
|
|
7494
7738
|
render() {
|
|
7495
|
-
|
|
7739
|
+
if (this.loaded) {
|
|
7740
|
+
const items = this.host.querySelectorAll('post-breadcrumb-item');
|
|
7741
|
+
this.updateItems(items, this.collapsed, this.lastItemWraps);
|
|
7742
|
+
}
|
|
7743
|
+
return (hAsync(Host, { key: '8d5f457a7c6a2df0cfaf5c31f3ffc6937de76e57', "data-version": version$1, class: this.homeCollapsed && this.usesHomeText ? 'home-collapsed' : undefined }, hAsync("nav", { key: 'ce3fd7ad69060dd6968afaad6170e27eee72682f', "aria-label": this.textBreadcrumbs, ref: el => (this.nav = el), class: this.loaded ? '' : 'loading' }, hAsync("div", { key: '1c400c8c1e1b625203876cc9804936782a2202c6', role: "list" }, (!this.homeCollapsed || !this.usesHomeText) && this.renderHome(), this.renderMenu(), hAsync("slot", { key: '5cf6618b487961c0e7d70637f5396d023660ec55' }), hAsync("slot", { key: 'f4fb662d04d9966c76a22444844d692611472b2d', name: "selected" })))));
|
|
7496
7744
|
}
|
|
7497
7745
|
get host() { return getElement(this); }
|
|
7498
7746
|
static get style() { return postBreadcrumbsCss(); }
|
|
@@ -7502,24 +7750,34 @@ class PostBreadcrumbs {
|
|
|
7502
7750
|
"$members$": {
|
|
7503
7751
|
"homeUrl": [513, "home-url"],
|
|
7504
7752
|
"textHome": [513, "text-home"],
|
|
7753
|
+
"homeTextOnly": [516, "home-text-only"],
|
|
7505
7754
|
"textBreadcrumbs": [513, "text-breadcrumbs"],
|
|
7506
7755
|
"textMoreItems": [513, "text-more-items"],
|
|
7507
|
-
"
|
|
7508
|
-
"
|
|
7756
|
+
"id": [32],
|
|
7757
|
+
"loaded": [32],
|
|
7758
|
+
"hasSlottedHomeAnchor": [32],
|
|
7759
|
+
"hasSlottedHomeIcon": [32],
|
|
7760
|
+
"collapsed": [32],
|
|
7761
|
+
"homeCollapsed": [32],
|
|
7762
|
+
"lastItemWraps": [32]
|
|
7509
7763
|
},
|
|
7510
7764
|
"$listeners$": undefined,
|
|
7511
7765
|
"$lazyBundleId$": "-",
|
|
7512
|
-
"$attrsToReflect$": [["homeUrl", "home-url"], ["textHome", "text-home"], ["textBreadcrumbs", "text-breadcrumbs"], ["textMoreItems", "text-more-items"]]
|
|
7766
|
+
"$attrsToReflect$": [["homeUrl", "home-url"], ["textHome", "text-home"], ["homeTextOnly", "home-text-only"], ["textBreadcrumbs", "text-breadcrumbs"], ["textMoreItems", "text-more-items"]]
|
|
7513
7767
|
}; }
|
|
7514
7768
|
}
|
|
7515
7769
|
__decorate$u([
|
|
7516
|
-
Required(),
|
|
7770
|
+
Required({ when: 'hasSlottedHomeAnchor', truthy: false }),
|
|
7517
7771
|
Url()
|
|
7518
7772
|
], PostBreadcrumbs.prototype, "homeUrl", void 0);
|
|
7519
7773
|
__decorate$u([
|
|
7520
|
-
Required(),
|
|
7774
|
+
Required({ when: 'hasSlottedHomeAnchor', truthy: false }),
|
|
7521
7775
|
Type('string')
|
|
7522
7776
|
], PostBreadcrumbs.prototype, "textHome", void 0);
|
|
7777
|
+
__decorate$u([
|
|
7778
|
+
Required(),
|
|
7779
|
+
Type('boolean')
|
|
7780
|
+
], PostBreadcrumbs.prototype, "homeTextOnly", void 0);
|
|
7523
7781
|
__decorate$u([
|
|
7524
7782
|
Required(),
|
|
7525
7783
|
Type('string')
|
|
@@ -7560,7 +7818,7 @@ class PostClosebutton {
|
|
|
7560
7818
|
}
|
|
7561
7819
|
/**
|
|
7562
7820
|
* The "type" attribute used for the close button
|
|
7563
|
-
|
|
7821
|
+
|
|
7564
7822
|
*/
|
|
7565
7823
|
this.buttonType = 'button';
|
|
7566
7824
|
/**
|
|
@@ -7571,6 +7829,10 @@ class PostClosebutton {
|
|
|
7571
7829
|
* The size of the close button.
|
|
7572
7830
|
*/
|
|
7573
7831
|
this.size = 'default';
|
|
7832
|
+
this.handleClick = () => {
|
|
7833
|
+
const target = findClosableTarget(this.host);
|
|
7834
|
+
target?.close();
|
|
7835
|
+
};
|
|
7574
7836
|
}
|
|
7575
7837
|
componentDidLoad() {
|
|
7576
7838
|
if (globalThis.MutationObserver) {
|
|
@@ -7595,13 +7857,8 @@ class PostClosebutton {
|
|
|
7595
7857
|
console.error(`The \`${this.host.localName}\` component requires content for accessibility.`);
|
|
7596
7858
|
}
|
|
7597
7859
|
}
|
|
7598
|
-
handleClick() {
|
|
7599
|
-
if (this.buttonType === 'reset')
|
|
7600
|
-
this.internals.form?.reset();
|
|
7601
|
-
this.host.closest('dialog')?.close();
|
|
7602
|
-
}
|
|
7603
7860
|
render() {
|
|
7604
|
-
return (hAsync(Host, { key: '
|
|
7861
|
+
return (hAsync(Host, { key: 'b8e2214b904f5167fa3753aab947418891236fcf', "data-version": version$1 }, hAsync("button", { key: '224ca42d3be187062ba9717e4a534ff34eeafaf7', type: this.buttonType, class: "btn btn-icon btn-secondary btn-sm", onClick: this.handleClick }, hAsync("post-icon", { key: '5b289691599d6f9a3bb0fa7a28c71eecd1f5aee7', "aria-hidden": "true", name: "closex" }), hAsync("span", { key: 'e22045f15b3dc8b8b228eb4282114e10db68b186', ref: el => (this.visuallyHidden = el), class: "visually-hidden" }, hAsync("slot", { key: 'e492390c995a993ffc8988a1c90a41e59fbe39f5' })))));
|
|
7605
7862
|
}
|
|
7606
7863
|
static get formAssociated() { return true; }
|
|
7607
7864
|
get host() { return getElement(this); }
|
|
@@ -7697,7 +7954,7 @@ class PostCollapsible {
|
|
|
7697
7954
|
triggers.forEach(trigger => trigger.update());
|
|
7698
7955
|
}
|
|
7699
7956
|
render() {
|
|
7700
|
-
return (hAsync(Host, { key: '
|
|
7957
|
+
return (hAsync(Host, { key: '243dad696871a08bc07325d4511f5baeb937c194', "data-version": version$1, tabindex: this.collapsed ? -1 : undefined, style: this.collapsed ? collapsedKeyframe : undefined }, hAsync("slot", { key: '5f4f8a9bb698f6558b114c760e5eeb355ac35b80' })));
|
|
7701
7958
|
}
|
|
7702
7959
|
get host() { return getElement(this); }
|
|
7703
7960
|
static get style() { return postCollapsibleCss(); }
|
|
@@ -7776,7 +8033,7 @@ class PostCollapsibleTrigger {
|
|
|
7776
8033
|
if (!this.trigger || !collapsible)
|
|
7777
8034
|
return;
|
|
7778
8035
|
// a nested collapsible may have no id, but aria-controls needs one to reference
|
|
7779
|
-
collapsible.id
|
|
8036
|
+
collapsible.id ||= `collapsible-${crypto.randomUUID()}`;
|
|
7780
8037
|
const collapsibleId = collapsible.id;
|
|
7781
8038
|
// add the controlled collapsible's id to the aria-controls list
|
|
7782
8039
|
const ariaControls = this.trigger.getAttribute('aria-controls');
|
|
@@ -7823,7 +8080,7 @@ class PostCollapsibleTrigger {
|
|
|
7823
8080
|
this.updateAriaAttributes();
|
|
7824
8081
|
}
|
|
7825
8082
|
render() {
|
|
7826
|
-
return (hAsync(Host, { key: '
|
|
8083
|
+
return (hAsync(Host, { key: '4d28c7068acd2e1b4a5f2272bee3b51ec5d8a216', "data-version": version$1 }, hAsync("slot", { key: '0bcbb780ed6d06ef36b9129b22b4a5dcd5aa7294' })));
|
|
7827
8084
|
}
|
|
7828
8085
|
get host() { return getElement(this); }
|
|
7829
8086
|
static get cmpMeta() { return {
|
|
@@ -11448,7 +11705,7 @@ try {
|
|
|
11448
11705
|
// environments (e.g. Next.js pre-rendering) with `HTMLInputElement is not defined`.
|
|
11449
11706
|
let cachedNativeValueDescriptor;
|
|
11450
11707
|
function nativeValueDescriptor() {
|
|
11451
|
-
cachedNativeValueDescriptor
|
|
11708
|
+
cachedNativeValueDescriptor ??= Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value');
|
|
11452
11709
|
return cachedNativeValueDescriptor;
|
|
11453
11710
|
}
|
|
11454
11711
|
// iMask adapter that bypasses the instance-level `input.value` override (which returns ISO strings)
|
|
@@ -12028,6 +12285,15 @@ class PostDatePicker {
|
|
|
12028
12285
|
console.error('hide: popoverRef is null or undefined');
|
|
12029
12286
|
}
|
|
12030
12287
|
}
|
|
12288
|
+
static { this.FLYOUT_OFFSET = 4; }
|
|
12289
|
+
// Cells per row for each view
|
|
12290
|
+
static {
|
|
12291
|
+
this.COLUMNS_BY_VIEW = {
|
|
12292
|
+
days: 7,
|
|
12293
|
+
months: 4,
|
|
12294
|
+
years: 4,
|
|
12295
|
+
};
|
|
12296
|
+
}
|
|
12031
12297
|
/**
|
|
12032
12298
|
* Get the system locale (e.g.`en`, etc.) from the closest parent with a `lang` attribute,
|
|
12033
12299
|
* or fallback to a default language code if not found or in server environment.
|
|
@@ -12657,11 +12923,11 @@ class PostDatePicker {
|
|
|
12657
12923
|
}
|
|
12658
12924
|
}
|
|
12659
12925
|
render() {
|
|
12660
|
-
return (hAsync(Host, { key: '
|
|
12926
|
+
return (hAsync(Host, { key: 'aa624e30312b6e9af82ab3ae508b7527ebb99bdc', "data-version": version$1 }, this.inline && (hAsync("div", { key: '3643fb239e920945cb1438bb510047b19a6fc826', dir: this.textDirection }, hAsync("slot", { key: '08113b74ebe5d1faede4dc4412858408870ccb3b' }), hAsync("div", { key: 'b8cec572edeae4ef2b4d0bb582a8d4085e4815e9', class: "datepicker-container" }))), !this.inline && (hAsync("div", { key: 'a3ab6ca2fded0644a3cb3a513100b309882a67b7', dir: this.textDirection }, hAsync("div", { key: 'd1e3ec263fe3cbcfa7c78de9997be403e8dd8a1f', class: {
|
|
12661
12927
|
'calendar-input': !this.range,
|
|
12662
12928
|
'calendar-input-range': this.range,
|
|
12663
12929
|
'disabled': this.inputDisabled,
|
|
12664
|
-
} }, hAsync("slot", { key: '
|
|
12930
|
+
} }, hAsync("slot", { key: '5b747326d65bd4efa46cd7b6c0b20510ba1b894c' }), hAsync("button", { key: '9b053c841863418e063b29fd1344dff8803bff00', onClick: () => this.show(), "aria-haspopup": "true", "aria-label": this.textToggleCalendar, disabled: this.inputDisabled, ref: e => (this.dpTrigger = e) }, hAsync("post-icon", { key: 'badf30f287ca4776bedbd2323d03c1e7352e9a41', name: "calendar" }))), hAsync("post-popovercontainer", { key: 'f5ccb7e7eb04e8f2251e87b8cc53bf0f613f174b', placement: "bottom-end", offset: PostDatePicker.FLYOUT_OFFSET, ref: e => (this.popoverRef = e) }, hAsync("div", { key: '9054611105846624392ec79737d997a386a21ae2', class: "datepicker-container" }))))));
|
|
12665
12931
|
}
|
|
12666
12932
|
get host() { return getElement(this); }
|
|
12667
12933
|
static get watchers() { return {
|
|
@@ -12713,13 +12979,6 @@ class PostDatePicker {
|
|
|
12713
12979
|
"$attrsToReflect$": [["textNextMonth", "text-next-month"], ["textNextYear", "text-next-year"], ["textNextDecade", "text-next-decade"], ["textPreviousMonth", "text-previous-month"], ["textPreviousYear", "text-previous-year"], ["textPreviousDecade", "text-previous-decade"], ["textSwitchYear", "text-switch-year"]]
|
|
12714
12980
|
}; }
|
|
12715
12981
|
}
|
|
12716
|
-
PostDatePicker.FLYOUT_OFFSET = 4;
|
|
12717
|
-
// Cells per row for each view
|
|
12718
|
-
PostDatePicker.COLUMNS_BY_VIEW = {
|
|
12719
|
-
days: 7,
|
|
12720
|
-
months: 4,
|
|
12721
|
-
years: 4,
|
|
12722
|
-
};
|
|
12723
12982
|
__decorate$q([
|
|
12724
12983
|
DateValue(),
|
|
12725
12984
|
IsoDate()
|
|
@@ -12844,10 +13103,10 @@ class PostFooter {
|
|
|
12844
13103
|
const allGridSlotsEmpty = GRID_SLOTS.every(slotName => !this.slotDisplayed[slotName]);
|
|
12845
13104
|
const renderMain = !allGridSlotsEmpty || renderSocialmedia || renderApp || renderBusinesssectors;
|
|
12846
13105
|
const renderBase = renderCopyright || renderMeta;
|
|
12847
|
-
return (hAsync(Host, { key: '
|
|
13106
|
+
return (hAsync(Host, { key: '08a1ce26926dace6b5b58df118007107c971221e', "data-version": version$1, "data-color-scheme": "light" }, hAsync("footer", { key: 'bcc5101df4f8e203fdba9075e34b7aa125eb53ce' }, hAsync("h2", { key: 'a8efa01756ea699f5f66346e3cfe05cc56f36264', class: "visually-hidden" }, this.textFooter), hAsync("div", { key: '1b8e30a01c3f0a711f0351b36d396f90511154c4', class: { 'prefooter': true, 'd-none': !renderPrefooter } }, hAsync("div", { key: '2c900ed450bc1dc5ad655d35f5f50b1b5a268fec', class: "footer-container" }, hAsync("slot", { key: '8ab8cef6c639251543c65ed21a1f14adf043029e', onSlotchange: this.handleSlotChange, name: "prefooter" }))), hAsync("div", { key: 'e3f3bedd9725968fbce6e887e22842a7e8e5ffa5', class: { 'footer-main': true, 'd-none': !renderMain } }, hAsync("div", { key: '76cec7363e3771da636a6c0a32afbf16d5c4d405', class: "footer-container" }, hAsync("div", { key: '4e9ea3788103175b48839b6bf815d4c675769c97', class: { 'footer-grid': true, 'd-none': allGridSlotsEmpty } }, this.device === 'mobile' ? this.renderAccordion() : this.renderColumns()), hAsync("div", { key: '64d10c9fb543290e078f7fff098b401926b3bf4b', class: {
|
|
12848
13107
|
'footer-column': true,
|
|
12849
13108
|
'd-none': !renderSocialmedia && !renderApp,
|
|
12850
|
-
} }, hAsync("div", { key: '
|
|
13109
|
+
} }, hAsync("div", { key: '05b566b43e2c4fed2919e3312a718ea392cad0f7', class: { 'footer-socialmedia': true, 'd-none': !renderSocialmedia } }, hAsync("slot", { key: 'a46f739c9d4b6cbf96988f96f89d7cc093797b40', onSlotchange: this.handleSlotChange, name: "socialmedia" })), hAsync("div", { key: 'f28490dfaa982a609ba1eb393339980a358488e5', class: { 'footer-app': true, 'd-none': !renderApp } }, hAsync("slot", { key: '01c10bf12eb2f39a0dbceec320b476041d46c631', onSlotchange: this.handleSlotChange, name: "app" }))), hAsync("div", { key: '609935b6b6ee48176d7e44919726abdaff8e6161', class: { 'footer-businesssectors': true, 'd-none': !renderBusinesssectors } }, hAsync("slot", { key: '9f153ba54a08d48e55644fe58089ed7122c1cfdd', onSlotchange: this.handleSlotChange, name: "businesssectors" })))), hAsync("div", { key: '03fd76b711b9d9f1f912ac7a4199ee2706bd3a9a', class: { 'footer-base': true, 'd-none': !renderBase } }, hAsync("div", { key: '3eb810a55e3193295f8b9291bd824af77a5a2fac', class: "footer-container" }, hAsync("div", { key: '04c38d8d5e483b9f9cc8acca1cc8224e381651f1', class: { 'footer-copyright': true, 'd-none': !renderCopyright } }, hAsync("slot", { key: 'fdd11e63af64161288533c21ea455f3513ac7d87', onSlotchange: this.handleSlotChange, name: "copyright" })), hAsync("div", { key: 'adffa17e5f3b94af32e489d113afd9908e2b7abf', class: { 'footer-meta': true, 'd-none': !renderMeta } }, hAsync("slot", { key: '7ebaf69055332d184b86a58e57db1c214b5f08c6', onSlotchange: this.handleSlotChange, name: "meta" })))))));
|
|
12851
13110
|
}
|
|
12852
13111
|
get host() { return getElement(this); }
|
|
12853
13112
|
static get style() { return postFooterCss(); }
|
|
@@ -13179,10 +13438,10 @@ class PostHeader {
|
|
|
13179
13438
|
}, style: { '--post-header-navigation-current-inset': `${this.burgerMenu?.scrollTop ?? 0}px` }, ref: el => (this.burgerMenu = el) }, this.hasLocalNav && !this.hasTitle && (hAsync("div", { class: "local-nav" }, hAsync("slot", { name: "local-nav" }))), hAsync("div", { class: "burger-menu-body" }, hAsync("slot", { name: "audience" }), hAsync("slot", { name: "main-nav" })), hAsync("div", { class: "burger-menu-footer" }, hAsync("slot", { name: "global-nav-secondary" }), hAsync("slot", { name: "language-menu" }))));
|
|
13180
13439
|
}
|
|
13181
13440
|
render() {
|
|
13182
|
-
return (hAsync(Host, { key: '
|
|
13441
|
+
return (hAsync(Host, { key: 'd288ef2e58942c2cbc5da673076548c97eef04ed', "data-version": version$1, "data-color-scheme": "light", "data-burger-menu": this.hasBurgerMenu, "data-menu-extended": this.burgerMenuExtended }, hAsync("header", { key: '5357f3edf382dec9b552fdfe9fb51d0878de697c' }, hAsync("div", { key: 'bafa11390b33056e5a3d1a8a2922fd3a43a25020', class: "global-header" }, hAsync("div", { key: '2d54e8d2931864880ff7a28aea64625e775ce327', class: "section" }, hAsync("div", { key: 'b3a87bbf3b87213e22043d58a7298d0cff530cdf', class: "logo" }, hAsync("slot", { key: '9d559b9231dc23841e277d3f4633cdeba2da12b2', name: "post-logo" })), hAsync("div", { key: '64ebd463868ce8b417023651e745e33331feb908', class: "sliding-controls" }, (hAsync("div", { key: 'b4e7d7231a0d8bebe620d41cb655c3686449b19f', class: "audience" }, hAsync("slot", { key: '0781a76b1853a842dc74ec2a2a649f7de487e148', name: "audience" }))), hAsync("slot", { key: '25f1d5b34a5aa950014214f810f3acca95dbbe80', name: "global-nav-primary" }), [
|
|
13183
13442
|
hAsync("slot", { key: "global-nav-secondary", name: "global-nav-secondary" }),
|
|
13184
13443
|
hAsync("slot", { key: "language-menu", name: "language-menu" }),
|
|
13185
|
-
], hAsync("slot", { key: '
|
|
13444
|
+
], hAsync("slot", { key: 'd7121e5e9ddf825f96a3a82e65ff135c61891adb', name: "post-login" }), this.hasMainNav && (hAsync("post-togglebutton", { key: 'dd0bcf9cfd96d4ffa44fc549d518d7b39d287156', class: "burger-button", ref: el => (this.burgerMenuButton = el), onClick: () => this.toggleBurgerMenu() }, hAsync("span", { key: '23004cb12733a7081f828d33327cc26adafe3888' }, this.textMenu), hAsync("post-icon", { key: '7fb36892eadfcce0a85d964c411aeafc3fbbde1b', "aria-hidden": "true", name: "burger", "data-showwhen": "untoggled" }), hAsync("post-icon", { key: 'a41292205573c03f25d225d4f4296f75ffe6c7ce', "aria-hidden": "true", name: "closex", "data-showwhen": "toggled" })))))), hAsync("div", { key: '7d6d1424881bb5277210c86b194dfb9e5dcb7c59', ref: el => (this.localHeader = el), class: { 'local-header': true, 'megadropdown-open': this.megadropdownOpen } }, hAsync("div", { key: '724a8d3f79112875ba343470f9d0b753ce5d4861', class: "section" }, hAsync("slot", { key: '688aafdec4e4d5565f3d0a9d9bd9bb7bc78152be', name: "side-nav" }), hAsync("slot", { key: '12590bfb4bfcc8c565f008a8e3d75b5951eb73bc', name: "title" }), this.hasTitle && hAsync("slot", { key: 'd862de0f3aaba5ea22a26c387ea7e93dc0c5e79c', name: "local-nav" }), hAsync("slot", { key: '1a25ec6694bc8b2c06e21449dc566f36595afbb5', name: "main-nav" }), !this.hasTitle && hAsync("slot", { key: '987c26ee73fb19049fdd19de79b537b71e2771de', name: "local-nav" }))), this.hasBurgerMenu && this.renderBurgerMenu())));
|
|
13186
13445
|
}
|
|
13187
13446
|
get host() { return getElement(this); }
|
|
13188
13447
|
static get watchers() { return {
|
|
@@ -13314,7 +13573,7 @@ class PostIcon {
|
|
|
13314
13573
|
}).filter(([_key, value]) => value !== null));
|
|
13315
13574
|
}
|
|
13316
13575
|
render() {
|
|
13317
|
-
return (hAsync(Host, { key: '
|
|
13576
|
+
return (hAsync(Host, { key: '405ccfde4206c14f044575d0b23998d93a03ffb6', "data-version": version$1 }, hAsync("span", { key: 'ad70ccf63add4b881ef6096ae460e13fba09f508', style: this.getStyles() })));
|
|
13318
13577
|
}
|
|
13319
13578
|
get host() { return getElement(this); }
|
|
13320
13579
|
static get style() { return postIconCss(); }
|
|
@@ -13396,7 +13655,7 @@ class PostLanguageMenu {
|
|
|
13396
13655
|
}
|
|
13397
13656
|
componentDidLoad() {
|
|
13398
13657
|
// Initially set variants and active language
|
|
13399
|
-
// Handles cases where the language-menu is rendered after the language-
|
|
13658
|
+
// Handles cases where the language-menu is rendered after the language-menu-items have been rendered
|
|
13400
13659
|
this.updateChildrenVariant();
|
|
13401
13660
|
}
|
|
13402
13661
|
/**
|
|
@@ -13634,7 +13893,7 @@ class PostLinkarea {
|
|
|
13634
13893
|
}));
|
|
13635
13894
|
}
|
|
13636
13895
|
render() {
|
|
13637
|
-
return (hAsync(Host, { key: '
|
|
13896
|
+
return (hAsync(Host, { key: 'a187468c97584b393efb0f73966716947243fe1f', "data-version": version$1, onClick: (e) => this.dispatchClick(e) }, hAsync("slot", { key: 'a374c748871f36acf8ceda423c121645e97a6ce1' })));
|
|
13638
13897
|
}
|
|
13639
13898
|
get host() { return getElement(this); }
|
|
13640
13899
|
static get style() { return postLinkareaCss(); }
|
|
@@ -13676,7 +13935,7 @@ class PostListbox {
|
|
|
13676
13935
|
option.highlighted = false;
|
|
13677
13936
|
});
|
|
13678
13937
|
this.highlightedIndex = -1;
|
|
13679
|
-
this.
|
|
13938
|
+
this.clearActive();
|
|
13680
13939
|
};
|
|
13681
13940
|
this.clearActive = () => {
|
|
13682
13941
|
this.highlightedIndex = -1;
|
|
@@ -13780,7 +14039,7 @@ class PostListbox {
|
|
|
13780
14039
|
this.updateSelection(event.detail);
|
|
13781
14040
|
}
|
|
13782
14041
|
render() {
|
|
13783
|
-
return (hAsync(Host, { key: '
|
|
14042
|
+
return (hAsync(Host, { key: 'a59296af752a3f88bcd70663d0ce12f61718e92f', "data-version": version$1, role: "listbox" }, hAsync("post-popovercontainer", { key: '665dd563705515022edc79a4d98e9ac43b80c525', placement: "bottom-start", ref: el => (this.popoverContainer = el) }, hAsync("slot", { key: 'd8a37fd905dfaca07286913a0c680e61744d65e1', name: "blank-slate" }), hAsync("slot", { key: '22e367ae36329d0586e1a275692983cf0c004df4' }))));
|
|
13784
14043
|
}
|
|
13785
14044
|
get host() { return getElement(this); }
|
|
13786
14045
|
static get style() { return postListboxCss(); }
|
|
@@ -13817,9 +14076,9 @@ class PostListboxOption {
|
|
|
13817
14076
|
this.highlighted = false;
|
|
13818
14077
|
}
|
|
13819
14078
|
render() {
|
|
13820
|
-
return (hAsync(Host, { key: '
|
|
14079
|
+
return (hAsync(Host, { key: '38481f1a4721d50530bbd96a80ebc89933c8311c', "data-version": version$1, role: "option", "aria-selected": `${this.selected}`, "data-active": this.highlighted ? 'true' : null,
|
|
13821
14080
|
/* Prevent focus change from triggering onblur event in post-autocomplete */
|
|
13822
|
-
onPointerDown: (e) => e.preventDefault(), onClick: () => this.postOptionSelected.emit(this.value), id: `post-listbox-option-${this.optionId}` }, hAsync("span", { key: '
|
|
14081
|
+
onPointerDown: (e) => e.preventDefault(), onClick: () => this.postOptionSelected.emit(this.value), id: `post-listbox-option-${this.optionId}` }, hAsync("span", { key: '25403d2e68f44f68d5c3f2097c5aab57f90176cf', class: "option-content" }, this.value, hAsync("span", { key: '0caf89cfb81695f33637facd07dcf628fa6024a8', class: "option-description" }, hAsync("slot", { key: '857ed6d15014fb8d32f7074c9f1622d540f8ed13' }))), this.selected && hAsync("post-icon", { key: '3b300532591be12424a84cebd082b8c0c3ca6935', "aria-hidden": "true", name: "checkmark" })));
|
|
13823
14082
|
}
|
|
13824
14083
|
static get style() { return postListboxOptionCss(); }
|
|
13825
14084
|
static get cmpMeta() { return {
|
|
@@ -13866,7 +14125,7 @@ class PostLogo {
|
|
|
13866
14125
|
render() {
|
|
13867
14126
|
const logoLink = this.url && (typeof this.url === 'string' ? this.url : this.url.href);
|
|
13868
14127
|
const LogoTag = logoLink ? 'a' : 'span';
|
|
13869
|
-
return (hAsync(Host, { key: '
|
|
14128
|
+
return (hAsync(Host, { key: '1f69b0ddc0ecf2fde47423cd7824fcbe76e4a529', "data-version": version$1 }, hAsync(LogoTag, { key: '096736bd50a6dd43e02a104e7e81897cb286db60', class: `logo ${logoLink ? 'logo-link' : ''}`, ...(logoLink ? { href: logoLink } : {}) }, hAsync("span", { key: 'bc49b9591424f02744f771eb1079911f02ceca33', class: "description" }, hAsync("slot", { key: 'ea905eac805e2a9940bfe50aa222bef738d15d27', onSlotchange: () => this.checkDescription() })), hAsync("svg", { key: '482d94c38347017269dabd0ab3d15f4ede14f187', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 72 72", "aria-hidden": "true" }, hAsync("g", { key: 'fcd3dc56e8a0e448abe65b557639a8bea8ca580f', id: "Logo" }, hAsync("rect", { key: '11ed7bad596ee07301f1c1101ddded089ef2bf99', fill: "#ffcc00", x: "0", y: "0", width: "72", height: "72" }), hAsync("polygon", { key: '6ab9d28c8492c746a2620cff62dbd92a59a00aff', fill: "#ff0000", points: "34,32.3 34,19 19.7,19 19.7,29.1 10,29.1 10,42.9 19.7,42.9 19.7,53 34,53 34,39.7 30.6,39.7 30.6,49.8 23.1,49.8 23.1,39.7 13.4,39.7 13.4,32.3 23.1,32.3 23.1,22.2 30.6,22.2 30.6,32.3" }), hAsync("path", { key: '8b96cee7ee8ad1ec3c22aaf7928f7a711c05c828', d: "M53.56234,31.10526c0,2.41272-1.99154,4.29475-4.51723,4.29475H45.2v-8.3h3.84511C51.66802,27.1,53.56234,28.78889,53.56234,31.10526z M50.69666,19H36v34h9.2V42.9h5.49666c6.75131,0,11.9971-5.15137,11.9971-11.8057C62.69376,24.39136,57.35099,19,50.69666,19z" }))))));
|
|
13870
14129
|
}
|
|
13871
14130
|
get host() { return getElement(this); }
|
|
13872
14131
|
static get style() { return postLogoCss(); }
|
|
@@ -14016,7 +14275,7 @@ class PostMainnavigation {
|
|
|
14016
14275
|
}, NAVBAR_DISABLE_DURATION);
|
|
14017
14276
|
}
|
|
14018
14277
|
render() {
|
|
14019
|
-
return (hAsync(Host, { key: '
|
|
14278
|
+
return (hAsync(Host, { key: 'cf7b2328a41b41ca28956120b8042590655e7bb2', version: version$1, class: this.canScroll ? 'scrollable' : '' }, hAsync("div", { key: 'a25c55cf7b11a11ce86fb134dd57dbdad3d30301', "aria-hidden": "true", class: { 'scroll-control scroll-left': true, 'd-none': !this.canScrollLeft }, onMouseDown: e => this.handleScrollButtonClick(e, 'left') }, hAsync("post-icon", { key: '013778591637d5ee0ac2cd2bf3f23c677ba2a13f', "aria-hidden": "true", name: "chevronleft" })), hAsync("nav", { key: 'a007b7be57429580de35865e5eff0c54378d0a8e', ref: el => (this.navbar = el), "aria-label": this.textMain }, hAsync("slot", { key: 'bc8e1db18430ee43b5963539fbaa65e1fb1b0c55' })), hAsync("div", { key: 'cdb413fedc9a90c712db0fe5d6ab760a426ff632', "aria-hidden": "true", class: { 'scroll-control scroll-right': true, 'd-none': !this.canScrollRight }, onMouseDown: e => this.handleScrollButtonClick(e, 'right') }, hAsync("post-icon", { key: 'b2df569a79881b3a044556ba9c0f2e2b0646e78b', "aria-hidden": "true", name: "chevronright" }))));
|
|
14020
14279
|
}
|
|
14021
14280
|
get host() { return getElement(this); }
|
|
14022
14281
|
static get style() { return postMainnavigationCss(); }
|
|
@@ -14051,6 +14310,8 @@ var __decorate$h = (undefined && undefined.__decorate) || function (decorators,
|
|
|
14051
14310
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
14052
14311
|
};
|
|
14053
14312
|
class PostMegadropdown {
|
|
14313
|
+
/** Tracks the currently active dropdown instance. */
|
|
14314
|
+
static { this.activeDropdown = null; }
|
|
14054
14315
|
get megadropdownTrigger() {
|
|
14055
14316
|
const hostId = this.host.getAttribute('id');
|
|
14056
14317
|
return hostId ? document.querySelector(`post-megadropdown-trigger[for="${hostId}"]`) : null;
|
|
@@ -14332,7 +14593,7 @@ class PostMegadropdown {
|
|
|
14332
14593
|
}
|
|
14333
14594
|
render() {
|
|
14334
14595
|
const containerStyle = this.isVisible ? {} : { display: 'none' };
|
|
14335
|
-
return (hAsync(Host, { key: '
|
|
14596
|
+
return (hAsync(Host, { key: 'c0854fff62bf5e8de1597e46051aea5f300ee686', version: version$1 }, hAsync("div", { key: '1f4f66b74d7129481d76f1eec15a924b2c37718c', ref: el => (this.animatedContainer = el), class: "megadropdown", style: containerStyle }, hAsync("div", { key: 'af743442fe3ad6211cddccddf5d0803de9f501b5', class: "section" }, this.device !== 'desktop' && this.megadropdownTitle && (hAsync("p", { key: '35a03b2ee32498aa157140d4e6916cbf66655e5c', class: "megadropdown-title" }, this.megadropdownTitle)), hAsync("div", { key: '6c4efb52e7bb04c4f40d5b3f739ca69771c48602', class: "megadropdown-content" }, hAsync("slot", { key: '2b3200495cf23fe049734de9de9a5a1f4c9b09f3' })), this.device === 'desktop' ? (hAsync("post-closebutton", { onClick: () => this.hide(true), class: "close-button", size: "small", placement: "manual" }, this.textClose)) : (hAsync("button", { onClick: () => this.hide(true), class: "back-button" }, hAsync("post-icon", { name: "arrowleft" }), this.textBack))))));
|
|
14336
14597
|
}
|
|
14337
14598
|
get host() { return getElement(this); }
|
|
14338
14599
|
static get style() { return postMegadropdownCss(); }
|
|
@@ -14357,8 +14618,6 @@ class PostMegadropdown {
|
|
|
14357
14618
|
"$attrsToReflect$": [["textClose", "text-close"], ["textBack", "text-back"]]
|
|
14358
14619
|
}; }
|
|
14359
14620
|
}
|
|
14360
|
-
/** Tracks the currently active dropdown instance. */
|
|
14361
|
-
PostMegadropdown.activeDropdown = null;
|
|
14362
14621
|
__decorate$h([
|
|
14363
14622
|
Required(),
|
|
14364
14623
|
Type('string')
|
|
@@ -14437,7 +14696,7 @@ class PostMegadropdownTrigger {
|
|
|
14437
14696
|
this.megadropdown.toggle();
|
|
14438
14697
|
}
|
|
14439
14698
|
render() {
|
|
14440
|
-
return (hAsync(Host, { key: '
|
|
14699
|
+
return (hAsync(Host, { key: '7e6201e3cdea96113bbebdeeb805acff557c8bbb', "data-version": version$1 }, hAsync("button", { key: '1863f48dbd6e98b7a2b226b7c3b25b16a38c644b', ref: el => (this.interactiveButton = el), type: "button", "aria-haspopup": "menu", "aria-expanded": this.isMegadropdownExpanded.toString(), onClick: this.onClick.bind(this), onKeyDown: this.onKeyDown.bind(this), class: { active: this.active } }, hAsync("span", { key: 'dee7e77e45914a3e40a9f5027570bef0035dfdf2' }, hAsync("span", { key: '362865f7946f14f45ecdb240e81f09370e3f6d10', innerHTML: this.slottedContent }), hAsync("span", { key: 'd61eb63433aa65631f787646df2c6705c3d6e7a1', "aria-hidden": "true" }, hAsync("slot", { key: 'c831f7299fe3c80b8229c861e01e09a2ee481bc8' }))), hAsync("post-icon", { key: 'bcc8ed53293e16d4571e989a491760f98425b298', name: "chevrondown" }))));
|
|
14441
14700
|
}
|
|
14442
14701
|
get host() { return getElement(this); }
|
|
14443
14702
|
static get style() { return postMegadropdownTriggerCss(); }
|
|
@@ -14585,17 +14844,32 @@ class PostMenu {
|
|
|
14585
14844
|
this.toggleMenu.emit(this.isVisible);
|
|
14586
14845
|
if (this.isVisible) {
|
|
14587
14846
|
this.lastFocusedElement = this.root?.activeElement;
|
|
14588
|
-
|
|
14589
|
-
|
|
14590
|
-
|
|
14591
|
-
|
|
14592
|
-
|
|
14593
|
-
|
|
14847
|
+
// Only focus the first item if the trigger was keyboard-focus-visible
|
|
14848
|
+
// that's the browser's own signal for a keyboard-driven interaction.
|
|
14849
|
+
if (this.wasFocusVisible(this.lastFocusedElement)) {
|
|
14850
|
+
requestAnimationFrame(() => {
|
|
14851
|
+
const menuItems = this.getSlottedItems();
|
|
14852
|
+
if (menuItems.length > 0) {
|
|
14853
|
+
menuItems[0].focus();
|
|
14854
|
+
}
|
|
14855
|
+
});
|
|
14856
|
+
}
|
|
14594
14857
|
}
|
|
14595
14858
|
else if (this.lastFocusedElement) {
|
|
14596
14859
|
this.lastFocusedElement.focus();
|
|
14597
14860
|
}
|
|
14598
14861
|
}
|
|
14862
|
+
wasFocusVisible(element) {
|
|
14863
|
+
if (!element)
|
|
14864
|
+
return false;
|
|
14865
|
+
try {
|
|
14866
|
+
return element.matches(':focus-visible');
|
|
14867
|
+
}
|
|
14868
|
+
catch {
|
|
14869
|
+
// Not supported, fall back to always focusing
|
|
14870
|
+
return true;
|
|
14871
|
+
}
|
|
14872
|
+
}
|
|
14599
14873
|
controlKeyDownHandler(e) {
|
|
14600
14874
|
const menuItems = this.getSlottedItems();
|
|
14601
14875
|
if (menuItems.length === 0) {
|
|
@@ -14647,7 +14921,7 @@ class PostMenu {
|
|
|
14647
14921
|
]));
|
|
14648
14922
|
}
|
|
14649
14923
|
render() {
|
|
14650
|
-
return (hAsync(Host, { key: '
|
|
14924
|
+
return (hAsync(Host, { key: '22441c2bef0402f10e77b96b8a5d48a0648615f7', "data-version": version$1 }, hAsync("post-popovercontainer", { key: '8b37fe55d58a3a486e947266348b55408999a8bb', onPostShow: this.handlePostShown.bind(this), onPostBeforeToggle: this.handlePostBeforeToggle.bind(this), placement: this.placement, ref: e => (this.popoverRef = e) }, hAsync("div", { key: '2679eb9c4a95585b8aaf74e29f026c84b10aa6f3', part: "post-menu" }, hAsync("slot", { key: '0da58a1bde1bdb4c1f8b7b19ca8cbde14d7946fc', name: "header" }), hAsync("slot", { key: '801f7bc59d4d3267728b9adf0750dbea76a7652c' })))));
|
|
14651
14925
|
}
|
|
14652
14926
|
get host() { return getElement(this); }
|
|
14653
14927
|
static get style() { return postMenuCss(); }
|
|
@@ -14681,7 +14955,7 @@ __decorate$f([
|
|
|
14681
14955
|
EventFrom('post-popovercontainer')
|
|
14682
14956
|
], PostMenu.prototype, "handlePostBeforeToggle", null);
|
|
14683
14957
|
|
|
14684
|
-
const postMenuItemCss = () => `post-menu-item button{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button;width:100%}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-menu-item button{background-color:ButtonFace !important}post-menu-item button:hover{background-color:Highlight !important}}post-menu-item
|
|
14958
|
+
const postMenuItemCss = () => `post-menu-item button{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button;width:100%}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-menu-item button{background-color:ButtonFace !important}post-menu-item button:hover{background-color:Highlight !important}}post-menu-item button,post-menu-item a{position:relative;display:flex;align-items:center;padding:8px 12px 8px 16px;gap:12px;font-size:.875rem;color:#050400;border-radius:0;text-decoration:none}@media screen and (min-width: 780px){post-menu-item button,post-menu-item a{font-size:1rem;padding-block:12px;gap:16px}}@media screen and (min-width: 1024px){post-menu-item button,post-menu-item a{font-size:1.25rem;padding-block:13px}}post-menu-item button:focus-visible,post-menu-item a:focus-visible{outline-offset:2px !important;border-radius:4px}post-menu-item button:hover,post-menu-item a:hover{background-color:#504f4b;color:#fff}post-menu-item button post-icon,post-menu-item a post-icon{width:16px;height:16px;margin-block:4px}@media screen and (min-width: 780px){post-menu-item button post-icon,post-menu-item a post-icon{width:24px;height:24px;margin:0}}`;
|
|
14685
14959
|
|
|
14686
14960
|
class PostMenuItem {
|
|
14687
14961
|
constructor(hostRef) {
|
|
@@ -14769,7 +15043,7 @@ class PostMenuTrigger {
|
|
|
14769
15043
|
return null;
|
|
14770
15044
|
}
|
|
14771
15045
|
render() {
|
|
14772
|
-
return (hAsync(Host, { key: '
|
|
15046
|
+
return (hAsync(Host, { key: 'f75522d28e9a45c80846a191cff3ea2eb51b5bde', "data-version": version$1 }, hAsync("slot", { key: 'bc70e3ddc8dc372611c00a4cda52cd35ede02a3f' })));
|
|
14773
15047
|
}
|
|
14774
15048
|
get host() { return getElement(this); }
|
|
14775
15049
|
static get style() { return postMenuTriggerCss(); }
|
|
@@ -14805,7 +15079,7 @@ class PostNumberInput {
|
|
|
14805
15079
|
this.isIncrementDisabled = false;
|
|
14806
15080
|
this.isDecrementDisabled = false;
|
|
14807
15081
|
this.small = false;
|
|
14808
|
-
this.setupInput = debounce
|
|
15082
|
+
this.setupInput = debounce(50, () => {
|
|
14809
15083
|
this.input = this.input ?? getSlottedElement(this.host, 'input[type="number"]');
|
|
14810
15084
|
if (!this.input)
|
|
14811
15085
|
return;
|
|
@@ -14879,10 +15153,10 @@ class PostNumberInput {
|
|
|
14879
15153
|
}
|
|
14880
15154
|
render() {
|
|
14881
15155
|
const areButtonsShown = !!this.input;
|
|
14882
|
-
return (hAsync(Host, { key: '
|
|
15156
|
+
return (hAsync(Host, { key: '9bc4f1aff3f0347c5419cbc8c3f03660c8ce0ec3', "data-version": version$1, class: {
|
|
14883
15157
|
'number-input-sm': this.small,
|
|
14884
15158
|
'disabled': this.isDisabled,
|
|
14885
|
-
} }, areButtonsShown && (hAsync("div", { key: '
|
|
15159
|
+
} }, areButtonsShown && (hAsync("div", { key: '556bdd45f2dc5b924f7bb2eab0c059c3000bf404', "aria-hidden": "true", onPointerDown: () => this.step('down'), class: { 'step-button': true, 'disabled': this.isDecrementDisabled } }, hAsync("post-icon", { key: 'fc8ee1c88ab96345a0aa81928c7fd4d45dd88414', name: "minus" }))), hAsync("div", { key: '9284ca5c21009bd79b144e61a33017501646fceb', class: "input-container" }, hAsync("slot", { key: 'e6dfefd93d26fee610a82863a66f55939552ff7c', onSlotchange: () => this.setupInput() })), areButtonsShown && (hAsync("div", { key: 'd74c99d7f2db50387cd3f0d6033339fbf9480a24', "aria-hidden": "true", onPointerDown: () => this.step('up'), class: { 'step-button': true, 'disabled': this.isIncrementDisabled } }, hAsync("post-icon", { key: '25635f72d1b067663f8458bdbb7994c7dfafa6e8', name: "plus" })))));
|
|
14886
15160
|
}
|
|
14887
15161
|
get host() { return getElement(this); }
|
|
14888
15162
|
static get style() { return postNumberInputCss(); }
|
|
@@ -14936,7 +15210,7 @@ class PostPagination {
|
|
|
14936
15210
|
this.page = 1;
|
|
14937
15211
|
this.lastWindowWidth = window.innerWidth;
|
|
14938
15212
|
this.loaded = false;
|
|
14939
|
-
this.debouncedResize = debounce(this.handleResizeInternal.bind(this), RESIZE_DEBOUNCE_MS);
|
|
15213
|
+
this.debouncedResize = debounce$1(this.handleResizeInternal.bind(this), RESIZE_DEBOUNCE_MS);
|
|
14940
15214
|
this.measurementTimeoutId = null;
|
|
14941
15215
|
}
|
|
14942
15216
|
handlePropsChange() {
|
|
@@ -15546,7 +15820,7 @@ __decorate$d([
|
|
|
15546
15820
|
Type('string')
|
|
15547
15821
|
], PostPagination.prototype, "textLast", void 0);
|
|
15548
15822
|
|
|
15549
|
-
const postPopoverCss = () => `*{box-sizing:border-box}:host{display:contents}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.popover-container{color:var(--post-current-fg);background-color:var(--post-current-bg);display:flex;align-items:self-start;padding:8px;min-width:160px;max-width:var(--post-popover-max-width, 280px)}.popover-content{padding:8px;flex-grow:1}`;
|
|
15823
|
+
const postPopoverCss = () => `*{box-sizing:border-box}:host{display:contents}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.popover-container{color:var(--post-current-fg);background-color:var(--post-current-bg);display:flex;align-items:self-start;padding:8px;min-width:160px;max-width:var(--post-popover-max-width, 280px)}.popover-content{padding:8px;flex-grow:1}post-closebutton{color-scheme:light}`;
|
|
15550
15824
|
|
|
15551
15825
|
var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
15552
15826
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -15573,7 +15847,7 @@ class PostPopover {
|
|
|
15573
15847
|
/**
|
|
15574
15848
|
* Show a little indicator arrow
|
|
15575
15849
|
*/
|
|
15576
|
-
// eslint-disable-next-line
|
|
15850
|
+
// eslint-disable-next-line stencil/ban-default-true
|
|
15577
15851
|
this.arrow = true;
|
|
15578
15852
|
this.breakpointChange = () => {
|
|
15579
15853
|
requestAnimationFrame(() => this.updateEdgeGap());
|
|
@@ -15630,10 +15904,10 @@ class PostPopover {
|
|
|
15630
15904
|
}
|
|
15631
15905
|
}
|
|
15632
15906
|
render() {
|
|
15633
|
-
return (hAsync(Host, { key: '
|
|
15907
|
+
return (hAsync(Host, { key: '0e57981004d99d528a4652598739afbf1208376c', "data-version": version$1 }, hAsync("post-popovercontainer", { key: '380838970ed2c62f9e21e95da6957e9ff36db31a', arrow: this.arrow, placement: this.placement, edgeGap: this.edgeGap, autoHide: true, ref: e => {
|
|
15634
15908
|
if (e)
|
|
15635
15909
|
this.popoverRef = e;
|
|
15636
|
-
} }, hAsync("div", { key: '
|
|
15910
|
+
} }, hAsync("div", { key: '77465a8e943f61492869a3e05cf03f90b9fd553c', class: "popover-container" }, hAsync("div", { key: '0ab4e621ecc58a9775c4a9b8dfba3d26eb577878', class: "popover-content" }, hAsync("slot", { key: '1b2d37d50ef23edad118abc5949686e59e15b931' })), hAsync("post-closebutton", { key: '8c2138b22f49681d37d2f38f6fb6331c730849f3' }, this.textClose)))));
|
|
15637
15911
|
}
|
|
15638
15912
|
get host() { return getElement(this); }
|
|
15639
15913
|
static get style() { return postPopoverCss(); }
|
|
@@ -20731,7 +21005,7 @@ class PostPopoverTrigger {
|
|
|
20731
21005
|
this.trigger.ariaControlsElements = [popover];
|
|
20732
21006
|
}
|
|
20733
21007
|
else {
|
|
20734
|
-
popover.id
|
|
21008
|
+
popover.id ||= `popover-${crypto.randomUUID()}`;
|
|
20735
21009
|
this.trigger.setAttribute('aria-controls', popover.id);
|
|
20736
21010
|
}
|
|
20737
21011
|
}
|
|
@@ -20745,7 +21019,7 @@ class PostPopoverTrigger {
|
|
|
20745
21019
|
focusTrigger() {
|
|
20746
21020
|
// Restores focus to the trigger
|
|
20747
21021
|
if (!this.popoverOpen && this.trigger) {
|
|
20748
|
-
this.trigger.focus();
|
|
21022
|
+
this.trigger.focus({ preventScroll: true });
|
|
20749
21023
|
}
|
|
20750
21024
|
}
|
|
20751
21025
|
constructor(hostRef) {
|
|
@@ -20781,7 +21055,7 @@ class PostPopoverTrigger {
|
|
|
20781
21055
|
this.popover?.removeEventListener('postToggle', this.boundHandlePostToggle);
|
|
20782
21056
|
}
|
|
20783
21057
|
render() {
|
|
20784
|
-
return (hAsync(Host, { key: '
|
|
21058
|
+
return (hAsync(Host, { key: 'f9c320748c1cfdfb6accce4e20c64ea7c00d20c5', "data-version": version$1 }, hAsync("slot", { key: 'e00dcaa23ec3e2976136c26931780d083b6f1a8f', onSlotchange: () => this.setupTrigger() })));
|
|
20785
21059
|
}
|
|
20786
21060
|
get host() { return getElement(this); }
|
|
20787
21061
|
static get watchers() { return {
|
|
@@ -20812,6 +21086,7 @@ __decorate$b([
|
|
|
20812
21086
|
* @see https://floating-ui.com/docs/virtual-elements
|
|
20813
21087
|
*/
|
|
20814
21088
|
|
|
21089
|
+
const sides = ['top', 'right', 'bottom', 'left'];
|
|
20815
21090
|
const min = Math.min;
|
|
20816
21091
|
const max = Math.max;
|
|
20817
21092
|
const round = Math.round;
|
|
@@ -20904,12 +21179,12 @@ function getOppositePlacement(placement) {
|
|
|
20904
21179
|
return oppositeSideMap[side] + placement.slice(side.length);
|
|
20905
21180
|
}
|
|
20906
21181
|
function expandPaddingObject(padding) {
|
|
21182
|
+
var _padding$top, _padding$right, _padding$bottom, _padding$left;
|
|
20907
21183
|
return {
|
|
20908
|
-
top: 0,
|
|
20909
|
-
right: 0,
|
|
20910
|
-
bottom: 0,
|
|
20911
|
-
left: 0
|
|
20912
|
-
...padding
|
|
21184
|
+
top: (_padding$top = padding.top) != null ? _padding$top : 0,
|
|
21185
|
+
right: (_padding$right = padding.right) != null ? _padding$right : 0,
|
|
21186
|
+
bottom: (_padding$bottom = padding.bottom) != null ? _padding$bottom : 0,
|
|
21187
|
+
left: (_padding$left = padding.left) != null ? _padding$left : 0
|
|
20913
21188
|
};
|
|
20914
21189
|
}
|
|
20915
21190
|
function getPaddingObject(padding) {
|
|
@@ -20984,13 +21259,9 @@ function computeCoordsFromPlacement(_ref, placement, rtl) {
|
|
|
20984
21259
|
y: reference.y
|
|
20985
21260
|
};
|
|
20986
21261
|
}
|
|
20987
|
-
|
|
20988
|
-
|
|
20989
|
-
|
|
20990
|
-
break;
|
|
20991
|
-
case 'end':
|
|
20992
|
-
coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
|
|
20993
|
-
break;
|
|
21262
|
+
const alignment = getAlignment(placement);
|
|
21263
|
+
if (alignment) {
|
|
21264
|
+
coords[alignmentAxis] += commonAlign * (alignment === 'end' ? 1 : -1) * (rtl && isVertical ? -1 : 1);
|
|
20994
21265
|
}
|
|
20995
21266
|
return coords;
|
|
20996
21267
|
}
|
|
@@ -21039,10 +21310,7 @@ async function detectOverflow(state, options) {
|
|
|
21039
21310
|
height: rects.floating.height
|
|
21040
21311
|
} : rects.reference;
|
|
21041
21312
|
const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
|
|
21042
|
-
const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent)))
|
|
21043
|
-
x: 1,
|
|
21044
|
-
y: 1
|
|
21045
|
-
} : {
|
|
21313
|
+
const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) && (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
|
|
21046
21314
|
x: 1,
|
|
21047
21315
|
y: 1
|
|
21048
21316
|
};
|
|
@@ -21215,17 +21483,16 @@ const arrow$1 = options => ({
|
|
|
21215
21483
|
|
|
21216
21484
|
// Make sure the arrow doesn't overflow the floating element if the center
|
|
21217
21485
|
// point is outside the floating element's bounds.
|
|
21218
|
-
const min$1 = minPadding;
|
|
21219
21486
|
const max = clientSize - arrowDimensions[length] - maxPadding;
|
|
21220
21487
|
const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
|
|
21221
|
-
const offset = clamp(
|
|
21488
|
+
const offset = clamp(minPadding, center, max);
|
|
21222
21489
|
|
|
21223
21490
|
// If the reference is small enough that the arrow's padding causes it to
|
|
21224
21491
|
// to point to nothing for an aligned placement, adjust the offset of the
|
|
21225
21492
|
// floating element itself. To ensure `shift()` continues to take action,
|
|
21226
21493
|
// a single reset is performed when this is true.
|
|
21227
|
-
const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center <
|
|
21228
|
-
const alignmentOffset = shouldAddOffset ? center <
|
|
21494
|
+
const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < minPadding ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
|
|
21495
|
+
const alignmentOffset = shouldAddOffset ? center < minPadding ? center - minPadding : center - max : 0;
|
|
21229
21496
|
return {
|
|
21230
21497
|
[axis]: coords[axis] + alignmentOffset,
|
|
21231
21498
|
data: {
|
|
@@ -21372,6 +21639,76 @@ const flip$1 = function (options) {
|
|
|
21372
21639
|
};
|
|
21373
21640
|
};
|
|
21374
21641
|
|
|
21642
|
+
function getSideOffsets(overflow, rect) {
|
|
21643
|
+
return {
|
|
21644
|
+
top: overflow.top - rect.height,
|
|
21645
|
+
right: overflow.right - rect.width,
|
|
21646
|
+
bottom: overflow.bottom - rect.height,
|
|
21647
|
+
left: overflow.left - rect.width
|
|
21648
|
+
};
|
|
21649
|
+
}
|
|
21650
|
+
function isAnySideFullyClipped(overflow) {
|
|
21651
|
+
return sides.some(side => overflow[side] >= 0);
|
|
21652
|
+
}
|
|
21653
|
+
/**
|
|
21654
|
+
* Provides data to hide the floating element in applicable situations, such as
|
|
21655
|
+
* when it is not in the same clipping context as the reference element.
|
|
21656
|
+
* @see https://floating-ui.com/docs/hide
|
|
21657
|
+
*/
|
|
21658
|
+
const hide$1 = function (options) {
|
|
21659
|
+
if (options === void 0) {
|
|
21660
|
+
options = {};
|
|
21661
|
+
}
|
|
21662
|
+
return {
|
|
21663
|
+
name: 'hide',
|
|
21664
|
+
options,
|
|
21665
|
+
async fn(state) {
|
|
21666
|
+
const {
|
|
21667
|
+
rects,
|
|
21668
|
+
platform
|
|
21669
|
+
} = state;
|
|
21670
|
+
const {
|
|
21671
|
+
strategy = 'referenceHidden',
|
|
21672
|
+
...detectOverflowOptions
|
|
21673
|
+
} = evaluate(options, state);
|
|
21674
|
+
switch (strategy) {
|
|
21675
|
+
case 'referenceHidden':
|
|
21676
|
+
{
|
|
21677
|
+
const overflow = await platform.detectOverflow(state, {
|
|
21678
|
+
...detectOverflowOptions,
|
|
21679
|
+
elementContext: 'reference'
|
|
21680
|
+
});
|
|
21681
|
+
const offsets = getSideOffsets(overflow, rects.reference);
|
|
21682
|
+
return {
|
|
21683
|
+
data: {
|
|
21684
|
+
referenceHiddenOffsets: offsets,
|
|
21685
|
+
referenceHidden: isAnySideFullyClipped(offsets)
|
|
21686
|
+
}
|
|
21687
|
+
};
|
|
21688
|
+
}
|
|
21689
|
+
case 'escaped':
|
|
21690
|
+
{
|
|
21691
|
+
const overflow = await platform.detectOverflow(state, {
|
|
21692
|
+
...detectOverflowOptions,
|
|
21693
|
+
altBoundary: true
|
|
21694
|
+
});
|
|
21695
|
+
const offsets = getSideOffsets(overflow, rects.floating);
|
|
21696
|
+
return {
|
|
21697
|
+
data: {
|
|
21698
|
+
escapedOffsets: offsets,
|
|
21699
|
+
escaped: isAnySideFullyClipped(offsets)
|
|
21700
|
+
}
|
|
21701
|
+
};
|
|
21702
|
+
}
|
|
21703
|
+
default:
|
|
21704
|
+
{
|
|
21705
|
+
return {};
|
|
21706
|
+
}
|
|
21707
|
+
}
|
|
21708
|
+
}
|
|
21709
|
+
};
|
|
21710
|
+
};
|
|
21711
|
+
|
|
21375
21712
|
function getBoundingRect(rects) {
|
|
21376
21713
|
const minX = min(...rects.map(rect => rect.left));
|
|
21377
21714
|
const minY = min(...rects.map(rect => rect.top));
|
|
@@ -21428,12 +21765,19 @@ const inline$1 = function (options) {
|
|
|
21428
21765
|
y
|
|
21429
21766
|
} = evaluate(options, state);
|
|
21430
21767
|
const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);
|
|
21768
|
+
|
|
21769
|
+
// No rects (e.g. a hidden or detached reference, or a collapsed range) —
|
|
21770
|
+
// keep the existing reference rect rather than resetting to an invalid
|
|
21771
|
+
// one with non-finite values.
|
|
21772
|
+
if (!nativeClientRects.length) {
|
|
21773
|
+
return {};
|
|
21774
|
+
}
|
|
21431
21775
|
const clientRects = getRectsByLine(nativeClientRects);
|
|
21432
21776
|
const fallback = rectToClientRect(getBoundingRect(nativeClientRects));
|
|
21433
21777
|
const paddingObject = getPaddingObject(padding);
|
|
21434
21778
|
function getBoundingClientRect() {
|
|
21435
21779
|
// There are two rects and they are disjoined.
|
|
21436
|
-
if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {
|
|
21780
|
+
if (clientRects.length === 2 && (clientRects[0].left > clientRects[1].right || clientRects[1].left > clientRects[0].right) && x != null && y != null) {
|
|
21437
21781
|
// Find the first rect in which the point is fully inside.
|
|
21438
21782
|
return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;
|
|
21439
21783
|
}
|
|
@@ -21448,18 +21792,12 @@ const inline$1 = function (options) {
|
|
|
21448
21792
|
const bottom = lastRect.bottom;
|
|
21449
21793
|
const left = isTop ? firstRect.left : lastRect.left;
|
|
21450
21794
|
const right = isTop ? firstRect.right : lastRect.right;
|
|
21451
|
-
|
|
21452
|
-
const height = bottom - top;
|
|
21453
|
-
return {
|
|
21454
|
-
top,
|
|
21455
|
-
bottom,
|
|
21456
|
-
left,
|
|
21457
|
-
right,
|
|
21458
|
-
width,
|
|
21459
|
-
height,
|
|
21795
|
+
return rectToClientRect({
|
|
21460
21796
|
x: left,
|
|
21461
|
-
y: top
|
|
21462
|
-
|
|
21797
|
+
y: top,
|
|
21798
|
+
width: right - left,
|
|
21799
|
+
height: bottom - top
|
|
21800
|
+
});
|
|
21463
21801
|
}
|
|
21464
21802
|
const isLeftSide = getSide(placement) === 'left';
|
|
21465
21803
|
const maxRight = max(...clientRects.map(rect => rect.right));
|
|
@@ -21467,20 +21805,12 @@ const inline$1 = function (options) {
|
|
|
21467
21805
|
const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);
|
|
21468
21806
|
const top = measureRects[0].top;
|
|
21469
21807
|
const bottom = measureRects[measureRects.length - 1].bottom;
|
|
21470
|
-
|
|
21471
|
-
|
|
21472
|
-
|
|
21473
|
-
|
|
21474
|
-
|
|
21475
|
-
|
|
21476
|
-
bottom,
|
|
21477
|
-
left,
|
|
21478
|
-
right,
|
|
21479
|
-
width,
|
|
21480
|
-
height,
|
|
21481
|
-
x: left,
|
|
21482
|
-
y: top
|
|
21483
|
-
};
|
|
21808
|
+
return rectToClientRect({
|
|
21809
|
+
x: minLeft,
|
|
21810
|
+
y: top,
|
|
21811
|
+
width: maxRight - minLeft,
|
|
21812
|
+
height: bottom - top
|
|
21813
|
+
});
|
|
21484
21814
|
}
|
|
21485
21815
|
return fallback;
|
|
21486
21816
|
}
|
|
@@ -21630,23 +21960,16 @@ const shift$1 = function (options) {
|
|
|
21630
21960
|
y
|
|
21631
21961
|
};
|
|
21632
21962
|
const overflow = await platform.detectOverflow(state, detectOverflowOptions);
|
|
21633
|
-
const crossAxis = getSideAxis(
|
|
21963
|
+
const crossAxis = getSideAxis(placement);
|
|
21634
21964
|
const mainAxis = getOppositeAxis(crossAxis);
|
|
21635
21965
|
let mainAxisCoord = coords[mainAxis];
|
|
21636
21966
|
let crossAxisCoord = coords[crossAxis];
|
|
21967
|
+
const clampCoord = (axis, coord) => clamp(coord + overflow[axis === 'y' ? 'top' : 'left'], coord, coord - overflow[axis === 'y' ? 'bottom' : 'right']);
|
|
21637
21968
|
if (checkMainAxis) {
|
|
21638
|
-
|
|
21639
|
-
const maxSide = mainAxis === 'y' ? 'bottom' : 'right';
|
|
21640
|
-
const min = mainAxisCoord + overflow[minSide];
|
|
21641
|
-
const max = mainAxisCoord - overflow[maxSide];
|
|
21642
|
-
mainAxisCoord = clamp(min, mainAxisCoord, max);
|
|
21969
|
+
mainAxisCoord = clampCoord(mainAxis, mainAxisCoord);
|
|
21643
21970
|
}
|
|
21644
21971
|
if (checkCrossAxis) {
|
|
21645
|
-
|
|
21646
|
-
const maxSide = crossAxis === 'y' ? 'bottom' : 'right';
|
|
21647
|
-
const min = crossAxisCoord + overflow[minSide];
|
|
21648
|
-
const max = crossAxisCoord - overflow[maxSide];
|
|
21649
|
-
crossAxisCoord = clamp(min, crossAxisCoord, max);
|
|
21972
|
+
crossAxisCoord = clampCoord(crossAxis, crossAxisCoord);
|
|
21650
21973
|
}
|
|
21651
21974
|
const limitedCoords = limiter.fn({
|
|
21652
21975
|
...state,
|
|
@@ -21677,6 +22000,7 @@ const limitShift$1 = function (options) {
|
|
|
21677
22000
|
return {
|
|
21678
22001
|
options,
|
|
21679
22002
|
fn(state) {
|
|
22003
|
+
var _rawOffset$mainAxis, _rawOffset$crossAxis;
|
|
21680
22004
|
const {
|
|
21681
22005
|
x,
|
|
21682
22006
|
y,
|
|
@@ -21702,9 +22026,8 @@ const limitShift$1 = function (options) {
|
|
|
21702
22026
|
mainAxis: rawOffset,
|
|
21703
22027
|
crossAxis: 0
|
|
21704
22028
|
} : {
|
|
21705
|
-
mainAxis: 0,
|
|
21706
|
-
crossAxis: 0
|
|
21707
|
-
...rawOffset
|
|
22029
|
+
mainAxis: (_rawOffset$mainAxis = rawOffset.mainAxis) != null ? _rawOffset$mainAxis : 0,
|
|
22030
|
+
crossAxis: (_rawOffset$crossAxis = rawOffset.crossAxis) != null ? _rawOffset$crossAxis : 0
|
|
21708
22031
|
};
|
|
21709
22032
|
if (checkMainAxis) {
|
|
21710
22033
|
const len = mainAxis === 'y' ? 'height' : 'width';
|
|
@@ -21736,6 +22059,12 @@ const limitShift$1 = function (options) {
|
|
|
21736
22059
|
};
|
|
21737
22060
|
};
|
|
21738
22061
|
|
|
22062
|
+
// Method syntax keeps callback parameters bivariant, but expressing the
|
|
22063
|
+
// explicit `| undefined` required by `exactOptionalPropertyTypes` needs
|
|
22064
|
+
// property syntax, which is contravariant under `strictFunctionTypes`.
|
|
22065
|
+
// Extracting the function from a method position restores that bivariance so
|
|
22066
|
+
// consumers can still assign callbacks with narrower parameter types.
|
|
22067
|
+
|
|
21739
22068
|
/**
|
|
21740
22069
|
* Provides data that allows you to change the size of the floating element —
|
|
21741
22070
|
* for instance, prevent it from overflowing the clipping boundary or match the
|
|
@@ -21750,7 +22079,6 @@ const size$1 = function (options) {
|
|
|
21750
22079
|
name: 'size',
|
|
21751
22080
|
options,
|
|
21752
22081
|
async fn(state) {
|
|
21753
|
-
var _state$middlewareData, _state$middlewareData2;
|
|
21754
22082
|
const {
|
|
21755
22083
|
placement,
|
|
21756
22084
|
rects,
|
|
@@ -21782,24 +22110,21 @@ const size$1 = function (options) {
|
|
|
21782
22110
|
const maximumClippingWidth = width - overflow.left - overflow.right;
|
|
21783
22111
|
const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
|
|
21784
22112
|
const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
|
|
21785
|
-
const
|
|
22113
|
+
const shiftData = state.middlewareData.shift;
|
|
22114
|
+
const noShift = !shiftData;
|
|
21786
22115
|
let availableHeight = overflowAvailableHeight;
|
|
21787
22116
|
let availableWidth = overflowAvailableWidth;
|
|
21788
|
-
if (
|
|
22117
|
+
if (shiftData != null && shiftData.enabled.x) {
|
|
21789
22118
|
availableWidth = maximumClippingWidth;
|
|
21790
22119
|
}
|
|
21791
|
-
if (
|
|
22120
|
+
if (shiftData != null && shiftData.enabled.y) {
|
|
21792
22121
|
availableHeight = maximumClippingHeight;
|
|
21793
22122
|
}
|
|
21794
22123
|
if (noShift && !alignment) {
|
|
21795
|
-
const xMin = max(overflow.left, 0);
|
|
21796
|
-
const xMax = max(overflow.right, 0);
|
|
21797
|
-
const yMin = max(overflow.top, 0);
|
|
21798
|
-
const yMax = max(overflow.bottom, 0);
|
|
21799
22124
|
if (isYAxis) {
|
|
21800
|
-
availableWidth = width - 2 *
|
|
22125
|
+
availableWidth = width - 2 * max(overflow.left, overflow.right);
|
|
21801
22126
|
} else {
|
|
21802
|
-
availableHeight = height - 2 *
|
|
22127
|
+
availableHeight = height - 2 * max(overflow.top, overflow.bottom);
|
|
21803
22128
|
}
|
|
21804
22129
|
}
|
|
21805
22130
|
await apply({
|
|
@@ -21955,7 +22280,7 @@ function getParentNode(node) {
|
|
|
21955
22280
|
function getNearestOverflowAncestor(node) {
|
|
21956
22281
|
const parentNode = getParentNode(node);
|
|
21957
22282
|
if (isLastTraversableNode(parentNode)) {
|
|
21958
|
-
return node.ownerDocument
|
|
22283
|
+
return (node.ownerDocument || node).body;
|
|
21959
22284
|
}
|
|
21960
22285
|
if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
|
|
21961
22286
|
return parentNode;
|
|
@@ -22052,10 +22377,7 @@ function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
|
|
|
22052
22377
|
if (isFixed === void 0) {
|
|
22053
22378
|
isFixed = false;
|
|
22054
22379
|
}
|
|
22055
|
-
|
|
22056
|
-
return false;
|
|
22057
|
-
}
|
|
22058
|
-
return isFixed;
|
|
22380
|
+
return !!floatingOffsetParent && isFixed && floatingOffsetParent === getWindow(element);
|
|
22059
22381
|
}
|
|
22060
22382
|
|
|
22061
22383
|
function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
|
|
@@ -22082,12 +22404,12 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
|
|
|
22082
22404
|
let y = (clientRect.top + visualOffsets.y) / scale.y;
|
|
22083
22405
|
let width = clientRect.width / scale.x;
|
|
22084
22406
|
let height = clientRect.height / scale.y;
|
|
22085
|
-
if (domElement) {
|
|
22407
|
+
if (domElement && offsetParent) {
|
|
22086
22408
|
const win = getWindow(domElement);
|
|
22087
|
-
const offsetWin =
|
|
22409
|
+
const offsetWin = isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
|
|
22088
22410
|
let currentWin = win;
|
|
22089
22411
|
let currentIFrame = getFrameElement(currentWin);
|
|
22090
|
-
while (currentIFrame &&
|
|
22412
|
+
while (currentIFrame && offsetWin !== currentWin) {
|
|
22091
22413
|
const iframeScale = getScale(currentIFrame);
|
|
22092
22414
|
const iframeRect = currentIFrame.getBoundingClientRect();
|
|
22093
22415
|
const css = getComputedStyle$1(currentIFrame);
|
|
@@ -22151,7 +22473,7 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
|
|
|
22151
22473
|
let scale = createCoords(1);
|
|
22152
22474
|
const offsets = createCoords(0);
|
|
22153
22475
|
const isOffsetParentAnElement = isHTMLElement(offsetParent);
|
|
22154
|
-
if (isOffsetParentAnElement || !
|
|
22476
|
+
if (isOffsetParentAnElement || !isFixed) {
|
|
22155
22477
|
if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
|
|
22156
22478
|
scroll = getNodeScroll(offsetParent);
|
|
22157
22479
|
}
|
|
@@ -22172,18 +22494,17 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
|
|
|
22172
22494
|
}
|
|
22173
22495
|
|
|
22174
22496
|
function getClientRects(element) {
|
|
22175
|
-
return Array.from(element.getClientRects());
|
|
22497
|
+
return element.getClientRects ? Array.from(element.getClientRects()) : [];
|
|
22176
22498
|
}
|
|
22177
22499
|
|
|
22178
22500
|
// Gets the entire size of the scrollable document area, even extending outside
|
|
22179
22501
|
// of the `<html>` and `<body>` rect bounds if horizontally scrollable.
|
|
22180
|
-
function getDocumentRect(
|
|
22181
|
-
const
|
|
22182
|
-
const
|
|
22183
|
-
const body = element.ownerDocument.body;
|
|
22502
|
+
function getDocumentRect(html) {
|
|
22503
|
+
const scroll = getNodeScroll(html);
|
|
22504
|
+
const body = html.ownerDocument.body;
|
|
22184
22505
|
const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
|
|
22185
22506
|
const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
|
|
22186
|
-
let x = -scroll.scrollLeft + getWindowScrollBarX(
|
|
22507
|
+
let x = -scroll.scrollLeft + getWindowScrollBarX(html);
|
|
22187
22508
|
const y = -scroll.scrollTop;
|
|
22188
22509
|
if (getComputedStyle$1(body).direction === 'rtl') {
|
|
22189
22510
|
x += max(html.clientWidth, body.clientWidth) - width;
|
|
@@ -22200,7 +22521,11 @@ function getDocumentRect(element) {
|
|
|
22200
22521
|
// calculation is affected by unusual styles.
|
|
22201
22522
|
// Most scrollbars leave 15-18px of space.
|
|
22202
22523
|
const SCROLLBAR_MAX = 25;
|
|
22203
|
-
function getViewportRect(element, strategy) {
|
|
22524
|
+
function getViewportRect(element, strategy, rootBoundary) {
|
|
22525
|
+
if (rootBoundary === void 0) {
|
|
22526
|
+
rootBoundary = 'viewport';
|
|
22527
|
+
}
|
|
22528
|
+
const isLayoutViewport = rootBoundary === 'layoutViewport';
|
|
22204
22529
|
const win = getWindow(element);
|
|
22205
22530
|
const html = getDocumentElement(element);
|
|
22206
22531
|
const visualViewport = win.visualViewport;
|
|
@@ -22209,31 +22534,42 @@ function getViewportRect(element, strategy) {
|
|
|
22209
22534
|
let x = 0;
|
|
22210
22535
|
let y = 0;
|
|
22211
22536
|
if (visualViewport) {
|
|
22212
|
-
|
|
22213
|
-
|
|
22214
|
-
|
|
22215
|
-
|
|
22216
|
-
|
|
22217
|
-
|
|
22537
|
+
// Client coordinates are relative to the layout viewport, except in
|
|
22538
|
+
// WebKit with an `absolute` strategy, where they are relative to the
|
|
22539
|
+
// visual viewport.
|
|
22540
|
+
const layoutRelativeClientCoords = !isWebKit() || strategy === 'fixed';
|
|
22541
|
+
if (isLayoutViewport) {
|
|
22542
|
+
if (!layoutRelativeClientCoords) {
|
|
22543
|
+
x = -visualViewport.offsetLeft;
|
|
22544
|
+
y = -visualViewport.offsetTop;
|
|
22545
|
+
}
|
|
22546
|
+
} else {
|
|
22547
|
+
width = visualViewport.width;
|
|
22548
|
+
height = visualViewport.height;
|
|
22549
|
+
if (layoutRelativeClientCoords) {
|
|
22550
|
+
x = visualViewport.offsetLeft;
|
|
22551
|
+
y = visualViewport.offsetTop;
|
|
22552
|
+
}
|
|
22218
22553
|
}
|
|
22219
22554
|
}
|
|
22220
22555
|
const windowScrollbarX = getWindowScrollBarX(html);
|
|
22221
|
-
//
|
|
22222
|
-
// visual width
|
|
22223
|
-
//
|
|
22556
|
+
// `scrollbar-gutter: stable` on the <html> reserves gutter space that shrinks
|
|
22557
|
+
// the visual width but isn't reflected in `html.clientWidth`, so subtract it.
|
|
22558
|
+
// Only the inline-end (right) gutter can hold the scrollbar; `both-edges` also
|
|
22559
|
+
// reserves an empty inline-start gutter that clips nothing, so exclude just
|
|
22560
|
+
// the one scrollbar-side gutter — halve the measured (two-gutter) total. A
|
|
22561
|
+
// left-side scrollbar (`windowScrollbarX > 0`) is already handled by
|
|
22562
|
+
// `getHTMLOffset`/`visualViewport.width`; skip it here.
|
|
22224
22563
|
if (windowScrollbarX <= 0) {
|
|
22225
22564
|
const doc = html.ownerDocument;
|
|
22226
22565
|
const body = doc.body;
|
|
22227
22566
|
const bodyStyles = getComputedStyle(body);
|
|
22228
22567
|
const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
|
|
22229
|
-
const
|
|
22230
|
-
|
|
22231
|
-
|
|
22568
|
+
const reservedWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
|
|
22569
|
+
const gutter = getComputedStyle(html).scrollbarGutter === 'stable both-edges' ? reservedWidth / 2 : reservedWidth;
|
|
22570
|
+
if (gutter <= SCROLLBAR_MAX) {
|
|
22571
|
+
width -= gutter;
|
|
22232
22572
|
}
|
|
22233
|
-
} else if (windowScrollbarX <= SCROLLBAR_MAX) {
|
|
22234
|
-
// If the <body> scrollbar is on the left, the width needs to be extended
|
|
22235
|
-
// by the scrollbar amount so there isn't extra space on the right.
|
|
22236
|
-
width += windowScrollbarX;
|
|
22237
22573
|
}
|
|
22238
22574
|
return {
|
|
22239
22575
|
width,
|
|
@@ -22248,7 +22584,7 @@ function getInnerBoundingClientRect(element, strategy) {
|
|
|
22248
22584
|
const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
|
|
22249
22585
|
const top = clientRect.top + element.clientTop;
|
|
22250
22586
|
const left = clientRect.left + element.clientLeft;
|
|
22251
|
-
const scale =
|
|
22587
|
+
const scale = getScale(element);
|
|
22252
22588
|
const width = element.clientWidth * scale.x;
|
|
22253
22589
|
const height = element.clientHeight * scale.y;
|
|
22254
22590
|
const x = left * scale.x;
|
|
@@ -22262,8 +22598,8 @@ function getInnerBoundingClientRect(element, strategy) {
|
|
|
22262
22598
|
}
|
|
22263
22599
|
function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
|
|
22264
22600
|
let rect;
|
|
22265
|
-
if (clippingAncestor === 'viewport') {
|
|
22266
|
-
rect = getViewportRect(element, strategy);
|
|
22601
|
+
if (clippingAncestor === 'viewport' || clippingAncestor === 'layoutViewport') {
|
|
22602
|
+
rect = getViewportRect(element, strategy, clippingAncestor);
|
|
22267
22603
|
} else if (clippingAncestor === 'document') {
|
|
22268
22604
|
rect = getDocumentRect(getDocumentElement(element));
|
|
22269
22605
|
} else if (isElement(clippingAncestor)) {
|
|
@@ -22279,13 +22615,6 @@ function getClientRectFromClippingAncestor(element, clippingAncestor, strategy)
|
|
|
22279
22615
|
}
|
|
22280
22616
|
return rectToClientRect(rect);
|
|
22281
22617
|
}
|
|
22282
|
-
function hasFixedPositionAncestor(element, stopNode) {
|
|
22283
|
-
const parentNode = getParentNode(element);
|
|
22284
|
-
if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
|
|
22285
|
-
return false;
|
|
22286
|
-
}
|
|
22287
|
-
return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
|
|
22288
|
-
}
|
|
22289
22618
|
|
|
22290
22619
|
// A "clipping ancestor" is an `overflow` element with the characteristic of
|
|
22291
22620
|
// clipping (or hiding) child elements. This returns all clipping ancestors
|
|
@@ -22296,7 +22625,7 @@ function getClippingElementAncestors(element, cache) {
|
|
|
22296
22625
|
return cachedResult;
|
|
22297
22626
|
}
|
|
22298
22627
|
let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');
|
|
22299
|
-
let
|
|
22628
|
+
let lastKeptComputedStyle = null;
|
|
22300
22629
|
const elementIsFixed = getComputedStyle$1(element).position === 'fixed';
|
|
22301
22630
|
let currentNode = elementIsFixed ? getParentNode(element) : element;
|
|
22302
22631
|
|
|
@@ -22304,16 +22633,20 @@ function getClippingElementAncestors(element, cache) {
|
|
|
22304
22633
|
while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
|
|
22305
22634
|
const computedStyle = getComputedStyle$1(currentNode);
|
|
22306
22635
|
const currentNodeIsContaining = isContainingBlock(currentNode);
|
|
22307
|
-
|
|
22308
|
-
|
|
22309
|
-
|
|
22310
|
-
|
|
22636
|
+
// Position of the containing block chain below the current node. A fixed
|
|
22637
|
+
// element whose containing block hasn't been found yet is a fixed chain.
|
|
22638
|
+
const lastPosition = lastKeptComputedStyle ? lastKeptComputedStyle.position : elementIsFixed ? 'fixed' : '';
|
|
22639
|
+
|
|
22640
|
+
// A non-containing ancestor does not clip the element when the chain
|
|
22641
|
+
// below it escapes it: a fixed chain escapes all ancestors up to the
|
|
22642
|
+
// next containing block, an absolute chain escapes static ancestors.
|
|
22643
|
+
const shouldDropCurrentNode = !currentNodeIsContaining && (lastPosition === 'fixed' || lastPosition === 'absolute' && computedStyle.position === 'static');
|
|
22311
22644
|
if (shouldDropCurrentNode) {
|
|
22312
22645
|
// Drop non-containing blocks.
|
|
22313
22646
|
result = result.filter(ancestor => ancestor !== currentNode);
|
|
22314
22647
|
} else {
|
|
22315
|
-
//
|
|
22316
|
-
|
|
22648
|
+
// The kept node carries the chain position for the next iteration.
|
|
22649
|
+
lastKeptComputedStyle = computedStyle;
|
|
22317
22650
|
}
|
|
22318
22651
|
currentNode = getParentNode(currentNode);
|
|
22319
22652
|
}
|
|
@@ -22323,7 +22656,7 @@ function getClippingElementAncestors(element, cache) {
|
|
|
22323
22656
|
|
|
22324
22657
|
// Gets the maximum area that the element is visible in due to any number of
|
|
22325
22658
|
// clipping ancestors.
|
|
22326
|
-
function getClippingRect(_ref) {
|
|
22659
|
+
function getClippingRect$1(_ref) {
|
|
22327
22660
|
let {
|
|
22328
22661
|
element,
|
|
22329
22662
|
boundary,
|
|
@@ -22373,13 +22706,7 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
|
|
|
22373
22706
|
scrollTop: 0
|
|
22374
22707
|
};
|
|
22375
22708
|
const offsets = createCoords(0);
|
|
22376
|
-
|
|
22377
|
-
// If the <body> scrollbar appears on the left (e.g. RTL systems). Use
|
|
22378
|
-
// Firefox with layout.scrollbar.side = 3 in about:config to test this.
|
|
22379
|
-
function setLeftRTLScrollbarOffset() {
|
|
22380
|
-
offsets.x = getWindowScrollBarX(documentElement);
|
|
22381
|
-
}
|
|
22382
|
-
if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
|
|
22709
|
+
if (isOffsetParentAnElement || !isFixed) {
|
|
22383
22710
|
if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
|
|
22384
22711
|
scroll = getNodeScroll(offsetParent);
|
|
22385
22712
|
}
|
|
@@ -22387,12 +22714,13 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
|
|
|
22387
22714
|
const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
|
|
22388
22715
|
offsets.x = offsetRect.x + offsetParent.clientLeft;
|
|
22389
22716
|
offsets.y = offsetRect.y + offsetParent.clientTop;
|
|
22390
|
-
} else if (documentElement) {
|
|
22391
|
-
setLeftRTLScrollbarOffset();
|
|
22392
22717
|
}
|
|
22393
22718
|
}
|
|
22394
|
-
|
|
22395
|
-
|
|
22719
|
+
|
|
22720
|
+
// If the <body> scrollbar appears on the left (e.g. RTL systems). Use
|
|
22721
|
+
// Firefox with layout.scrollbar.side = 3 in about:config to test this.
|
|
22722
|
+
if (!isOffsetParentAnElement && documentElement) {
|
|
22723
|
+
offsets.x = getWindowScrollBarX(documentElement);
|
|
22396
22724
|
}
|
|
22397
22725
|
const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
|
|
22398
22726
|
const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
|
|
@@ -22477,7 +22805,7 @@ function isRTL(element) {
|
|
|
22477
22805
|
const platform = {
|
|
22478
22806
|
convertOffsetParentRelativeRectToViewportRelativeRect,
|
|
22479
22807
|
getDocumentElement,
|
|
22480
|
-
getClippingRect,
|
|
22808
|
+
getClippingRect: getClippingRect$1,
|
|
22481
22809
|
getOffsetParent,
|
|
22482
22810
|
getElementRects,
|
|
22483
22811
|
getClientRects,
|
|
@@ -22492,7 +22820,7 @@ function rectsAreEqual(a, b) {
|
|
|
22492
22820
|
}
|
|
22493
22821
|
|
|
22494
22822
|
// https://samthor.au/2021/observing-dom/
|
|
22495
|
-
function observeMove(element, onMove) {
|
|
22823
|
+
function observeMove(element, onMove, ancestorResize) {
|
|
22496
22824
|
let io = null;
|
|
22497
22825
|
let timeoutId;
|
|
22498
22826
|
const root = getDocumentElement(element);
|
|
@@ -22535,13 +22863,22 @@ function observeMove(element, onMove) {
|
|
|
22535
22863
|
let isFirstUpdate = true;
|
|
22536
22864
|
function handleObserve(entries) {
|
|
22537
22865
|
const ratio = entries[0].intersectionRatio;
|
|
22866
|
+
|
|
22867
|
+
// The entry is a snapshot, so the reference may have moved since the
|
|
22868
|
+
// intersection was computed (under performance constraints, or between
|
|
22869
|
+
// consecutive frames of a multi-frame layout shift). The reported ratio
|
|
22870
|
+
// and the observed area are stale in that case and cannot be trusted to
|
|
22871
|
+
// detect subsequent movement, so refresh regardless of the ratio.
|
|
22872
|
+
if (!rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
|
|
22873
|
+
return refresh();
|
|
22874
|
+
}
|
|
22538
22875
|
if (ratio !== threshold) {
|
|
22539
22876
|
if (!isFirstUpdate) {
|
|
22540
22877
|
return refresh();
|
|
22541
22878
|
}
|
|
22542
22879
|
if (!ratio) {
|
|
22543
|
-
// If the reference is clipped, the ratio is 0. Throttle
|
|
22544
|
-
// to prevent an infinite loop of updates.
|
|
22880
|
+
// If the reference is clipped in place, the ratio is 0. Throttle
|
|
22881
|
+
// the refresh to prevent an infinite loop of updates.
|
|
22545
22882
|
timeoutId = setTimeout(() => {
|
|
22546
22883
|
refresh(false, 1e-7);
|
|
22547
22884
|
}, 1000);
|
|
@@ -22549,16 +22886,6 @@ function observeMove(element, onMove) {
|
|
|
22549
22886
|
refresh(false, ratio);
|
|
22550
22887
|
}
|
|
22551
22888
|
}
|
|
22552
|
-
if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
|
|
22553
|
-
// It's possible that even though the ratio is reported as 1, the
|
|
22554
|
-
// element is not actually fully within the IntersectionObserver's root
|
|
22555
|
-
// area anymore. This can happen under performance constraints. This may
|
|
22556
|
-
// be a bug in the browser's IntersectionObserver implementation. To
|
|
22557
|
-
// work around this, we compare the element's bounding rect now with
|
|
22558
|
-
// what it was at the time we created the IntersectionObserver. If they
|
|
22559
|
-
// are not equal then the element moved, so we refresh.
|
|
22560
|
-
refresh();
|
|
22561
|
-
}
|
|
22562
22889
|
isFirstUpdate = false;
|
|
22563
22890
|
}
|
|
22564
22891
|
|
|
@@ -22575,8 +22902,18 @@ function observeMove(element, onMove) {
|
|
|
22575
22902
|
}
|
|
22576
22903
|
io.observe(element);
|
|
22577
22904
|
}
|
|
22905
|
+
const win = getWindow(element);
|
|
22906
|
+
// The window is a resize ancestor, so when `ancestorResize` is enabled its
|
|
22907
|
+
// listener already runs the update on resize. Here we only need to rebuild
|
|
22908
|
+
// the `IntersectionObserver` for the new root size, skipping a redundant
|
|
22909
|
+
// update. When `ancestorResize` is disabled, this becomes the sole update.
|
|
22910
|
+
const handleResize = () => refresh(ancestorResize);
|
|
22911
|
+
win.addEventListener('resize', handleResize);
|
|
22578
22912
|
refresh(true);
|
|
22579
|
-
return
|
|
22913
|
+
return () => {
|
|
22914
|
+
win.removeEventListener('resize', handleResize);
|
|
22915
|
+
cleanup();
|
|
22916
|
+
};
|
|
22580
22917
|
}
|
|
22581
22918
|
|
|
22582
22919
|
/**
|
|
@@ -22601,12 +22938,10 @@ function autoUpdate(reference, floating, update, options) {
|
|
|
22601
22938
|
const referenceEl = unwrapElement(reference);
|
|
22602
22939
|
const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...(floating ? getOverflowAncestors(floating) : [])] : [];
|
|
22603
22940
|
ancestors.forEach(ancestor => {
|
|
22604
|
-
ancestorScroll && ancestor.addEventListener('scroll', update
|
|
22605
|
-
passive: true
|
|
22606
|
-
});
|
|
22941
|
+
ancestorScroll && ancestor.addEventListener('scroll', update);
|
|
22607
22942
|
ancestorResize && ancestor.addEventListener('resize', update);
|
|
22608
22943
|
});
|
|
22609
|
-
const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;
|
|
22944
|
+
const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update, ancestorResize) : null;
|
|
22610
22945
|
let reobserveFrame = -1;
|
|
22611
22946
|
let resizeObserver = null;
|
|
22612
22947
|
if (elementResize) {
|
|
@@ -22692,6 +23027,13 @@ const flip = flip$1;
|
|
|
22692
23027
|
*/
|
|
22693
23028
|
const size = size$1;
|
|
22694
23029
|
|
|
23030
|
+
/**
|
|
23031
|
+
* Provides data to hide the floating element in applicable situations, such as
|
|
23032
|
+
* when it is not in the same clipping context as the reference element.
|
|
23033
|
+
* @see https://floating-ui.com/docs/hide
|
|
23034
|
+
*/
|
|
23035
|
+
const hide = hide$1;
|
|
23036
|
+
|
|
22695
23037
|
/**
|
|
22696
23038
|
* Provides data to position an inner element of the floating element so that it
|
|
22697
23039
|
* appears centered to the reference element.
|
|
@@ -22720,11 +23062,9 @@ const computePosition = (reference, floating, options) => {
|
|
|
22720
23062
|
// multiple lifecycle resets re-use the same result. It only lives for a
|
|
22721
23063
|
// single call. If other functions become expensive, we can add them as well.
|
|
22722
23064
|
const cache = new Map();
|
|
22723
|
-
const mergedOptions = {
|
|
22724
|
-
platform,
|
|
22725
|
-
...options
|
|
22726
|
-
};
|
|
23065
|
+
const mergedOptions = options != null ? options : {};
|
|
22727
23066
|
const platformWithCache = {
|
|
23067
|
+
...platform,
|
|
22728
23068
|
...mergedOptions.platform,
|
|
22729
23069
|
_c: cache
|
|
22730
23070
|
};
|
|
@@ -22749,6 +23089,77 @@ function popIn(el) {
|
|
|
22749
23089
|
});
|
|
22750
23090
|
}
|
|
22751
23091
|
|
|
23092
|
+
/**
|
|
23093
|
+
* This utility is covered by the end-to-end tests under 'clipping' in `popovercontainer.cy.ts`.
|
|
23094
|
+
*/
|
|
23095
|
+
const CLIPPING_RECT_CACHE = Symbol('Clipping Rect Cache');
|
|
23096
|
+
/**
|
|
23097
|
+
* A custom floating UI platform that restricts clipping rectangles to the safe area.
|
|
23098
|
+
*/
|
|
23099
|
+
const safeAreaPlatform = { ...platform, getClippingRect };
|
|
23100
|
+
/**
|
|
23101
|
+
* Computes the clipping rectangle of an element while accounting for the safe area.
|
|
23102
|
+
*/
|
|
23103
|
+
async function getClippingRect(...args) {
|
|
23104
|
+
const element = args[0].element;
|
|
23105
|
+
// Check whether the clipping rectangle of the given element has already been computed during
|
|
23106
|
+
// this pass.
|
|
23107
|
+
const hit = this[CLIPPING_RECT_CACHE].get(element);
|
|
23108
|
+
if (hit)
|
|
23109
|
+
return hit;
|
|
23110
|
+
// Compute the clipping rectangle with the Floating UI DOM platform, then restrict it to the safe
|
|
23111
|
+
// area.
|
|
23112
|
+
const clippingRect = await platform.getClippingRect.apply(this, args);
|
|
23113
|
+
applySafeArea(clippingRect, element);
|
|
23114
|
+
this[CLIPPING_RECT_CACHE].set(element, clippingRect);
|
|
23115
|
+
return clippingRect;
|
|
23116
|
+
}
|
|
23117
|
+
/**
|
|
23118
|
+
* Restricts the `clippingRect` computed for `element` to the safe area, modifying it in place.
|
|
23119
|
+
*
|
|
23120
|
+
* The safe area only applies to elements that the header can actually cover, which excludes
|
|
23121
|
+
* elements without a header on their page, elements on a top layer and elements within the header.
|
|
23122
|
+
*/
|
|
23123
|
+
function applySafeArea(clippingRect, element) {
|
|
23124
|
+
const headerElement = element.ownerDocument.querySelector('post-header');
|
|
23125
|
+
if (headerElement === null)
|
|
23126
|
+
return;
|
|
23127
|
+
let parent = element;
|
|
23128
|
+
while (!isLastTraversableNode(parent)) {
|
|
23129
|
+
parent = getParentNode(parent);
|
|
23130
|
+
if (!isHTMLElement(parent))
|
|
23131
|
+
continue;
|
|
23132
|
+
// Do not apply the safe area of the header to
|
|
23133
|
+
// - elements that are on a top layer, such as a dialog.
|
|
23134
|
+
// - elements that are located within the header itself.
|
|
23135
|
+
if (isTopLayer(parent) || parent === headerElement)
|
|
23136
|
+
return;
|
|
23137
|
+
}
|
|
23138
|
+
const headerRect = headerElement.getBoundingClientRect();
|
|
23139
|
+
const top = Math.max(clippingRect.y, headerRect.bottom);
|
|
23140
|
+
clippingRect.height -= top - clippingRect.y;
|
|
23141
|
+
clippingRect.y = top;
|
|
23142
|
+
}
|
|
23143
|
+
/**
|
|
23144
|
+
* Computes the coordinates that will position the `floating` element next to a given `reference`
|
|
23145
|
+
* element while accounting for the safe area.
|
|
23146
|
+
*
|
|
23147
|
+
* The safe area is the part of the viewport that the header does not cover. Restricting the
|
|
23148
|
+
* clipping rectangles to it makes floating elements behave as if they were clipped by the header.
|
|
23149
|
+
*/
|
|
23150
|
+
const computePositionWithSafeArea = (reference, floating, options) => {
|
|
23151
|
+
// Adapted from https://github.com/floating-ui/floating-ui/blob/27629b74ba36ab8ceb2a968051927b9b69511a3b/packages/dom/src/index.ts#L15
|
|
23152
|
+
options ??= {};
|
|
23153
|
+
return computePosition(reference, floating, {
|
|
23154
|
+
...options,
|
|
23155
|
+
platform: {
|
|
23156
|
+
...safeAreaPlatform,
|
|
23157
|
+
...options.platform,
|
|
23158
|
+
[CLIPPING_RECT_CACHE]: new Map(),
|
|
23159
|
+
},
|
|
23160
|
+
});
|
|
23161
|
+
};
|
|
23162
|
+
|
|
22752
23163
|
const postPopovercontainerCss = () => `@layer polyfill{@supports not selector(:popover-open){:host([popover]:not(.\\:popover-open)){display:none}}}:host{background-color:rgba(0,0,0,0);border:rgba(0,0,0,0);position:fixed;margin:0;padding:0;overflow:visible}:host>div{box-shadow:var(--post-device-elevation-300);width:max-content;max-width:100%;color:var(--post-current-fg);background-color:var(--post-current-bg);border-radius:4px;position:relative}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host>div{border:2px solid rgba(0,0,0,0)}}:host [part=post-popovercontainer-border-mask]{display:none;position:absolute;inset:0;border-radius:4px;pointer-events:none}:host .arrow{--post-popovercontainer-arrow-border: var(--post-popovercontainer-arrow-border-width, 0px) solid var(--post-popovercontainer-arrow-border-color, transparent);position:absolute;width:.5825rem;height:.5825rem;background-color:inherit;rotate:45deg;pointer-events:none;z-index:-1}:host .arrow[dynamic-placement=top]{border-bottom-right-radius:2px;border-bottom:var(--post-popovercontainer-arrow-border);border-right:var(--post-popovercontainer-arrow-border)}:host .arrow[dynamic-placement=right]{border-bottom-left-radius:2px;border-bottom:var(--post-popovercontainer-arrow-border);border-left:var(--post-popovercontainer-arrow-border)}:host .arrow[dynamic-placement=bottom]{border-top-left-radius:2px;border-top:var(--post-popovercontainer-arrow-border);border-left:var(--post-popovercontainer-arrow-border)}:host .arrow[dynamic-placement=left]{border-top-right-radius:2px;border-top:var(--post-popovercontainer-arrow-border);border-right:var(--post-popovercontainer-arrow-border)}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .arrow[dynamic-placement=top]{border-block-end:2px solid rgba(0,0,0,0);border-inline-end:2px solid rgba(0,0,0,0);bottom:-0.3796735336rem !important}:host .arrow[dynamic-placement=left]{border-block-start:2px solid rgba(0,0,0,0);border-inline-end:2px solid rgba(0,0,0,0);right:-0.3796735336rem !important}:host .arrow[dynamic-placement=right]{border-block-end:2px solid rgba(0,0,0,0);border-inline-start:2px solid rgba(0,0,0,0);left:-0.3796735336rem !important}:host .arrow[dynamic-placement=bottom]{border-block-start:2px solid rgba(0,0,0,0);border-inline-start:2px solid rgba(0,0,0,0);top:-0.3796735336rem !important}}:host([tooltip]){position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}:host([safe-space])::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:auto}:host([safe-space=triangle])::after{clip-path:polygon(var(--post-safe-space-cursor-x, 0) var(--post-safe-space-cursor-y, 0), var(--post-safe-space-popover-x-start, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-start, 0)), var(--post-safe-space-popover-x-end, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-end, 0)))}:host([safe-space=trapezoid])::after{clip-path:polygon(var(--post-safe-space-trigger-x-start, var(--post-safe-space-trigger-x, 0)) var(--post-safe-space-trigger-y, var(--post-safe-space-trigger-y-start, 0)), var(--post-safe-space-trigger-x-end, var(--post-safe-space-trigger-x, 0)) var(--post-safe-space-trigger-y, var(--post-safe-space-trigger-y-end, 0)), var(--post-safe-space-popover-x-end, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-end, 0)), var(--post-safe-space-popover-x-start, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-start, 0)))}:host(:not(:has(.arrow)))>div{box-shadow:var(--post-device-elevation-300)}:host(:has(.arrow))>div{filter:drop-shadow(1px 2px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(2px 4px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(4px 8px 12px hsla(225, 7%, 11%, 0.15))}:host(:has(.arrow[dynamic-placement=top]))>div{filter:drop-shadow(0px -2px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(0px -4px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(0px -8px 12px hsla(225, 7%, 11%, 0.15))}:host(:has(.arrow[dynamic-placement=left]))>div{filter:drop-shadow(-2px 0px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(-4px 0px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(-8px 0px 12px hsla(225, 7%, 11%, 0.15))}:host(:has(.arrow[dynamic-placement=right]))>div{filter:drop-shadow(2px 0px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(4px 0px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(8px 0px 12px hsla(225, 7%, 11%, 0.15))}`;
|
|
22753
23164
|
|
|
22754
23165
|
var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
@@ -22768,6 +23179,30 @@ const ANIMATIONS = {
|
|
|
22768
23179
|
* @slot - Default slot for placing content inside the popovercontainer.
|
|
22769
23180
|
*/
|
|
22770
23181
|
class PostPopovercontainer {
|
|
23182
|
+
static {
|
|
23183
|
+
this.STATIC_SIDES = {
|
|
23184
|
+
top: 'bottom',
|
|
23185
|
+
right: 'left',
|
|
23186
|
+
bottom: 'top',
|
|
23187
|
+
left: 'right',
|
|
23188
|
+
};
|
|
23189
|
+
}
|
|
23190
|
+
static {
|
|
23191
|
+
this.PROPERTIES_TO_CLEAR = [
|
|
23192
|
+
'--post-safe-space-popover-x',
|
|
23193
|
+
'--post-safe-space-popover-y',
|
|
23194
|
+
'--post-safe-space-popover-x-start',
|
|
23195
|
+
'--post-safe-space-popover-x-end',
|
|
23196
|
+
'--post-safe-space-popover-y-start',
|
|
23197
|
+
'--post-safe-space-popover-y-end',
|
|
23198
|
+
'--post-safe-space-trigger-x',
|
|
23199
|
+
'--post-safe-space-trigger-y',
|
|
23200
|
+
'--post-safe-space-trigger-x-start',
|
|
23201
|
+
'--post-safe-space-trigger-x-end',
|
|
23202
|
+
'--post-safe-space-trigger-y-start',
|
|
23203
|
+
'--post-safe-space-trigger-y-end',
|
|
23204
|
+
];
|
|
23205
|
+
}
|
|
22771
23206
|
constructor(hostRef) {
|
|
22772
23207
|
registerInstance(this, hostRef);
|
|
22773
23208
|
this.postBeforeShow = createEvent(this, "postBeforeShow");
|
|
@@ -22826,7 +23261,7 @@ class PostPopovercontainer {
|
|
|
22826
23261
|
if (this.toggleTimeoutId || !target)
|
|
22827
23262
|
return;
|
|
22828
23263
|
this.eventTarget = target;
|
|
22829
|
-
this.
|
|
23264
|
+
this.updatePosition();
|
|
22830
23265
|
this.host.showPopover();
|
|
22831
23266
|
}
|
|
22832
23267
|
/**
|
|
@@ -22852,7 +23287,7 @@ class PostPopovercontainer {
|
|
|
22852
23287
|
this.eventTarget = target;
|
|
22853
23288
|
// Prevent instant double toggle
|
|
22854
23289
|
if (!this.toggleTimeoutId) {
|
|
22855
|
-
this.
|
|
23290
|
+
this.updatePosition();
|
|
22856
23291
|
this.host.togglePopover(force);
|
|
22857
23292
|
this.toggleTimeoutId = null;
|
|
22858
23293
|
}
|
|
@@ -22964,17 +23399,14 @@ class PostPopovercontainer {
|
|
|
22964
23399
|
startAutoupdates() {
|
|
22965
23400
|
if (!this.eventTarget || !this.host)
|
|
22966
23401
|
return;
|
|
22967
|
-
this.clearAutoUpdate = autoUpdate(this.eventTarget, this.host, this.
|
|
22968
|
-
}
|
|
22969
|
-
/**
|
|
22970
|
-
* Retrieves the dynamic height of the header
|
|
22971
|
-
*/
|
|
22972
|
-
getHeaderHeight() {
|
|
22973
|
-
const header = document.querySelector('post-header');
|
|
22974
|
-
return header ? Number.parseFloat(getComputedStyle(header).height) : 0;
|
|
23402
|
+
this.clearAutoUpdate = autoUpdate(this.eventTarget, this.host, this.updatePosition.bind(this));
|
|
22975
23403
|
}
|
|
22976
|
-
async
|
|
22977
|
-
const { x, y, middlewareData, placement } = await this.
|
|
23404
|
+
async updatePosition() {
|
|
23405
|
+
const { x, y, middlewareData, placement } = await this.calculatePosition();
|
|
23406
|
+
// Hide the popover if the target is outside the viewport
|
|
23407
|
+
if (middlewareData.hide?.referenceHidden) {
|
|
23408
|
+
this.host.hidePopover();
|
|
23409
|
+
}
|
|
22978
23410
|
const currentPlacement = placement.split('-')[0];
|
|
22979
23411
|
this.dynamicPlacement = currentPlacement;
|
|
22980
23412
|
// Position popover
|
|
@@ -22999,13 +23431,15 @@ class PostPopovercontainer {
|
|
|
22999
23431
|
await this.updateSafeSpaceBoundaries(currentPlacement);
|
|
23000
23432
|
}
|
|
23001
23433
|
}
|
|
23002
|
-
async
|
|
23434
|
+
async calculatePosition() {
|
|
23003
23435
|
const gap = this.edgeGap;
|
|
23004
23436
|
const isAligned = (this.placement || 'top').includes('-');
|
|
23005
|
-
const flipMiddleware =
|
|
23006
|
-
|
|
23007
|
-
crossAxis: false,
|
|
23008
|
-
|
|
23437
|
+
const flipMiddleware = [
|
|
23438
|
+
// Flip the popover if the target moves outside the viewport
|
|
23439
|
+
flip({ elementContext: 'reference', crossAxis: false }),
|
|
23440
|
+
// Flip the popover if the popover itself moves outside the viewport
|
|
23441
|
+
flip({ elementContext: 'floating', crossAxis: false }),
|
|
23442
|
+
];
|
|
23009
23443
|
const shiftMiddleware = shift({
|
|
23010
23444
|
padding: gap,
|
|
23011
23445
|
limiter: limitShift({
|
|
@@ -23017,7 +23451,7 @@ class PostPopovercontainer {
|
|
|
23017
23451
|
inline(),
|
|
23018
23452
|
// Per floating-ui docs: for aligned placements (e.g. bottom-end),
|
|
23019
23453
|
// flip should come before shift. For non-aligned, shift before flip.
|
|
23020
|
-
...(isAligned ? [flipMiddleware, shiftMiddleware] : [shiftMiddleware, flipMiddleware]),
|
|
23454
|
+
...(isAligned ? [...flipMiddleware, shiftMiddleware] : [shiftMiddleware, ...flipMiddleware]),
|
|
23021
23455
|
size({
|
|
23022
23456
|
apply({ availableWidth, elements }) {
|
|
23023
23457
|
Object.assign(elements.floating.style, {
|
|
@@ -23029,7 +23463,12 @@ class PostPopovercontainer {
|
|
|
23029
23463
|
if (this.arrow) {
|
|
23030
23464
|
middleware.push(arrow({ element: this.arrowRef, padding: gap }));
|
|
23031
23465
|
}
|
|
23032
|
-
|
|
23466
|
+
// Automatically hide the popover if the target moves outside the scrollport.
|
|
23467
|
+
if (this.autoHide) {
|
|
23468
|
+
// Per floating-ui docs: hide should generally be placed at the end.
|
|
23469
|
+
middleware.push(hide({ strategy: 'referenceHidden' }));
|
|
23470
|
+
}
|
|
23471
|
+
return computePositionWithSafeArea(this.eventTarget, this.host, {
|
|
23033
23472
|
placement: this.placement || 'top',
|
|
23034
23473
|
strategy: 'fixed',
|
|
23035
23474
|
middleware,
|
|
@@ -23096,9 +23535,9 @@ class PostPopovercontainer {
|
|
|
23096
23535
|
}
|
|
23097
23536
|
}
|
|
23098
23537
|
render() {
|
|
23099
|
-
return (hAsync(Host, { key: '
|
|
23538
|
+
return (hAsync(Host, { key: 'f3ea4bfc9a59faa2fbf1e413a1ec648f598a6779', "data-version": version$1, popover: "auto" }, hAsync("div", { key: 'a328c73c7e08eca1e423fcbe736798188cca2a87', part: "post-popovercontainer-content", class: "popover-content" }, this.arrow && (hAsync("span", { key: '8fad0095fb8d8c903ba84a639b4efc3e321c6aef', "dynamic-placement": this.dynamicPlacement, class: "arrow", ref: el => {
|
|
23100
23539
|
this.arrowRef = el;
|
|
23101
|
-
} })), hAsync("span", { key: '
|
|
23540
|
+
} })), hAsync("span", { key: 'deadbcc5892ed545a64b4a0e5e0936e0dd1feb70', part: "post-popovercontainer-border-mask" }), hAsync("slot", { key: '48c4db7ab222f3ef18157ce19d8ba15d75441f98' }))));
|
|
23102
23541
|
}
|
|
23103
23542
|
get host() { return getElement(this); }
|
|
23104
23543
|
static get style() { return postPopovercontainerCss(); }
|
|
@@ -23111,6 +23550,7 @@ class PostPopovercontainer {
|
|
|
23111
23550
|
"offset": [2],
|
|
23112
23551
|
"arrow": [4],
|
|
23113
23552
|
"safeSpace": [513, "safe-space"],
|
|
23553
|
+
"autoHide": [4, "auto-hide"],
|
|
23114
23554
|
"dynamicPlacement": [32],
|
|
23115
23555
|
"show": [64],
|
|
23116
23556
|
"hide": [64],
|
|
@@ -23121,26 +23561,6 @@ class PostPopovercontainer {
|
|
|
23121
23561
|
"$attrsToReflect$": [["safeSpace", "safe-space"]]
|
|
23122
23562
|
}; }
|
|
23123
23563
|
}
|
|
23124
|
-
PostPopovercontainer.STATIC_SIDES = {
|
|
23125
|
-
top: 'bottom',
|
|
23126
|
-
right: 'left',
|
|
23127
|
-
bottom: 'top',
|
|
23128
|
-
left: 'right',
|
|
23129
|
-
};
|
|
23130
|
-
PostPopovercontainer.PROPERTIES_TO_CLEAR = [
|
|
23131
|
-
'--post-safe-space-popover-x',
|
|
23132
|
-
'--post-safe-space-popover-y',
|
|
23133
|
-
'--post-safe-space-popover-x-start',
|
|
23134
|
-
'--post-safe-space-popover-x-end',
|
|
23135
|
-
'--post-safe-space-popover-y-start',
|
|
23136
|
-
'--post-safe-space-popover-y-end',
|
|
23137
|
-
'--post-safe-space-trigger-x',
|
|
23138
|
-
'--post-safe-space-trigger-y',
|
|
23139
|
-
'--post-safe-space-trigger-x-start',
|
|
23140
|
-
'--post-safe-space-trigger-x-end',
|
|
23141
|
-
'--post-safe-space-trigger-y-start',
|
|
23142
|
-
'--post-safe-space-trigger-y-end',
|
|
23143
|
-
];
|
|
23144
23564
|
__decorate$a([
|
|
23145
23565
|
OneOf(PLACEMENT_TYPES)
|
|
23146
23566
|
], PostPopovercontainer.prototype, "placement", void 0);
|
|
@@ -23197,7 +23617,7 @@ class PostProgressbar {
|
|
|
23197
23617
|
const max = this.getEffectiveMax();
|
|
23198
23618
|
const value = this.getEffectiveValue(min, max);
|
|
23199
23619
|
const percentage = ((value - min) / (max - min)) * 100;
|
|
23200
|
-
return (hAsync(Host, { key: '
|
|
23620
|
+
return (hAsync(Host, { key: 'c29b1fa3dca89d999c2a55bd58c9c7450ed767c6', role: "progressbar", "aria-valuenow": value, "aria-valuemin": min, "aria-valuemax": max }, hAsync("div", { key: 'aaff038be7bdaf99de1e94c7479c2b57947195ac', class: "progress-value", style: { '--post-progressbar-value': `${percentage}%` } })));
|
|
23201
23621
|
}
|
|
23202
23622
|
get host() { return getElement(this); }
|
|
23203
23623
|
static get style() { return postProgressbarCss(); }
|
|
@@ -23314,7 +23734,7 @@ class PostRating {
|
|
|
23314
23734
|
}
|
|
23315
23735
|
}
|
|
23316
23736
|
render() {
|
|
23317
|
-
return (hAsync(Host, { key: '
|
|
23737
|
+
return (hAsync(Host, { key: '727813875ba5d754ec17f4a2b151c0c6cd4ab5ca', "data-version": version$1 }, hAsync("div", { key: '1ac7e5db0098568c16551a4850442e4c8f0e686b', role: "slider", class: "rating", tabindex: "0", "aria-label": this.label, "aria-valuemin": "0", "aria-valuemax": this.stars, "aria-valuenow": this.currentRating, "aria-valuetext": `${this.currentRating} / ${this.stars}`, "aria-readonly": this.readonly ? 'true' : 'false', onKeyDown: this.keydownHandler, onBlur: this.blurHandler }, Array.from({ length: this.stars }).map((v, i) => (hAsync("div", { key: `star-${v}`, "aria-hidden": "true", class: {
|
|
23318
23738
|
'star': true,
|
|
23319
23739
|
'before-hover': i < this.hoveredIndex,
|
|
23320
23740
|
'active': i < Math.round(this.currentRating),
|
|
@@ -23354,7 +23774,7 @@ __decorate$8([
|
|
|
23354
23774
|
|
|
23355
23775
|
const SIDE_NAVIGATION_SIZES = ['large', 'small'];
|
|
23356
23776
|
|
|
23357
|
-
const postSideNavigationCss = () => `:host{
|
|
23777
|
+
const postSideNavigationCss = () => `:host{display:flex}:host,:host dialog{background-color:var(--post-scheme-color-palette-bg-2);border-inline-end:var(--post-device-border-width-alternative1) solid var(--post-scheme-color-interactive-primary-enabled-stroke4)}:host dialog{overflow:visible;width:var(--post-core-dimension-296);bottom:auto;right:auto;border:none;padding:0;max-height:100dvh;transform:translateX(-100%);transition-property:transform,overlay,display;transition-behavior:allow-discrete;transition-duration:350ms;box-shadow:var(--post-device-elevation-300)}:host dialog[open]{transform:translateX(0)}@starting-style{:host dialog[open]{transform:translateX(-100%)}}@media (prefers-reduced-motion: reduce){:host dialog{transition:none}}:host post-closebutton{transform:translate(50%, 0)}`;
|
|
23358
23778
|
|
|
23359
23779
|
var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
23360
23780
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -23484,7 +23904,7 @@ class PostSideNavigation {
|
|
|
23484
23904
|
} }, hAsync("slot", null), hAsync("post-closebutton", { onClick: () => this.hide() }, this.textClose)));
|
|
23485
23905
|
}
|
|
23486
23906
|
render() {
|
|
23487
|
-
return (hAsync(Host, { key: '
|
|
23907
|
+
return (hAsync(Host, { key: 'f7d9b4e515e5085d78e452298bdfbfb2325e7422', "data-version": version$1 }, this.device === 'desktop' ? this.renderNav() : this.renderDialog()));
|
|
23488
23908
|
}
|
|
23489
23909
|
get host() { return getElement(this); }
|
|
23490
23910
|
static get style() { return postSideNavigationCss(); }
|
|
@@ -23599,7 +24019,7 @@ class PostSideNavigationTrigger {
|
|
|
23599
24019
|
await this.sideNavigation?.toggle();
|
|
23600
24020
|
}
|
|
23601
24021
|
render() {
|
|
23602
|
-
return (hAsync(Host, { key: '
|
|
24022
|
+
return (hAsync(Host, { key: '1c908083562ec5ca01cd9410c72ac78ae11ce72f', "data-version": version$1 }, hAsync("slot", { key: '38f63424e8c66b4bf926418b57555dc676d24d45' })));
|
|
23603
24023
|
}
|
|
23604
24024
|
get host() { return getElement(this); }
|
|
23605
24025
|
static get style() { return postSideNavigationTriggerCss(); }
|
|
@@ -23729,7 +24149,7 @@ class PostStepper {
|
|
|
23729
24149
|
}
|
|
23730
24150
|
}
|
|
23731
24151
|
render() {
|
|
23732
|
-
return (hAsync(Host, { key: '
|
|
24152
|
+
return (hAsync(Host, { key: 'e6d1f0498cb3de68badef6428cfe8fdff73b879b', "data-version": version$1 }, hAsync("ol", { key: '4c10c32d36eaeeb19712f7d99dcba7d5337d89a1' }, hAsync("slot", { key: 'ced502f01025f44c09747299cf60c82ebcd905da', onSlotchange: () => this.updateSteps() })), hAsync("div", { key: '93cfc9fbd328d4a384c56ccf1f884053643f88e6', class: "active-step", "aria-hidden": "true" }, hAsync("span", { key: '076fad4efc393852d024157011a0e86d90ecfe99', class: "active-step-label" }, this.mobileActiveStepLabel), hAsync("span", { key: '814817862389cd55859aec49205fae255cbbf1d7', innerHTML: this.mobileActiveStepName }))));
|
|
23733
24153
|
}
|
|
23734
24154
|
get host() { return getElement(this); }
|
|
23735
24155
|
static get watchers() { return {
|
|
@@ -23788,7 +24208,7 @@ class PostStepperItem {
|
|
|
23788
24208
|
registerInstance(this, hostRef);
|
|
23789
24209
|
}
|
|
23790
24210
|
render() {
|
|
23791
|
-
return (hAsync(Host, { key: '
|
|
24211
|
+
return (hAsync(Host, { key: 'f41ae27d8de89912b3aa34d9c89f5ec69f3df301', "data-version": version$1, role: "listitem" }, hAsync("span", { key: '00a0dd2eb3fb020e49c5782245e1f3e72c77e780', class: "stepper-item-content" }, hAsync("span", { key: 'bc9932083d295b92db24ddd22cb18a755db5ad11', class: "step-hidden-label visually-hidden" }), hAsync("span", { key: 'efe2d809c82c1d7de9e0cdf4e52b924943afa0bf', class: "label" }, hAsync("slot", { key: '47aceca3fc331ef91da60674dbc2af5ea7e76ec8' })))));
|
|
23792
24212
|
}
|
|
23793
24213
|
static get style() { return postStepperItemCss(); }
|
|
23794
24214
|
static get cmpMeta() { return {
|
|
@@ -23844,9 +24264,9 @@ class PostTabItem {
|
|
|
23844
24264
|
this.isPagesVariant = hasAnchor;
|
|
23845
24265
|
}
|
|
23846
24266
|
render() {
|
|
23847
|
-
return (hAsync(Host, { key: '
|
|
24267
|
+
return (hAsync(Host, { key: '0c98772d01658e932be9982b6983eb3c1f0c4053', id: this.tabId, role: this.isPagesVariant ? undefined : 'tab', "data-version": version$1, "data-pages-variant": this.isPagesVariant.toString(), "aria-selected": this.isPagesVariant ? undefined : 'false', "aria-disabled": this.disabled ? 'true' : undefined, tabindex: this.isPagesVariant ? undefined : '-1', class: `${this.isPagesVariant ? 'nav-item' : 'tab-title'}${!this.isPagesVariant ? ' ssr' : ''}`, style: !this.isPagesVariant
|
|
23848
24268
|
? { '--active': `var(--post-tab-item-${this.name}, 0)` }
|
|
23849
|
-
: undefined }, hAsync("slot", { key: '
|
|
24269
|
+
: undefined }, hAsync("slot", { key: 'fba27566a1226e560161f839df050666763bdce5' })));
|
|
23850
24270
|
}
|
|
23851
24271
|
get host() { return getElement(this); }
|
|
23852
24272
|
static get cmpMeta() { return {
|
|
@@ -23892,7 +24312,7 @@ class PostTabPanel {
|
|
|
23892
24312
|
this.panelId = `panel-${this.host.id || nanoid(6)}`;
|
|
23893
24313
|
}
|
|
23894
24314
|
render() {
|
|
23895
|
-
return (hAsync(Host, { key: '
|
|
24315
|
+
return (hAsync(Host, { key: '2b02063bf2e67f4e826155759f28a1ae47b0c8e0', "data-version": version$1, id: this.panelId, role: "tabpanel", slot: "panels", style: { display: `var(--post-tab-panel-${this.for}, none)` } }, hAsync("slot", { key: 'b4c39e035d0f49f5654b030f4aada27fbebb122c' })));
|
|
23896
24316
|
}
|
|
23897
24317
|
get host() { return getElement(this); }
|
|
23898
24318
|
static get style() { return postTabPanelCss(); }
|
|
@@ -23913,7 +24333,7 @@ __decorate$3([
|
|
|
23913
24333
|
Type('string')
|
|
23914
24334
|
], PostTabPanel.prototype, "for", void 0);
|
|
23915
24335
|
|
|
23916
|
-
const postTabsCss = () => `:host{display:block}:host .tabs-wrapper{position:relative;display:flex;align-items:center}:host .tabs-wrapper button.scroll-btn{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button;display:flex;align-items:center;justify-content:center;transition:background-color 100ms,border-color 100ms,color 100ms;cursor:pointer}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn{background-color:ButtonFace !important}:host .tabs-wrapper button.scroll-btn:hover{background-color:Highlight !important}}:host .tabs-wrapper button.scroll-btn post-icon{color:currentColor}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn post-icon{color:Highlight}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn:hover post-icon{color:canvas}}:host .tabs-wrapper button.scroll-btn[hidden]{display:none}:host .tabs-wrapper button.scroll-btn{outline-offset:var(--post-device-spacing-padding-44) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:has(:focus-visible),.pretend-focus){transition:none}:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:has(:focus-visible),.pretend-focus):hover{color:HighlightText;border-color:HighlightText}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:focus-within,.pretend-focus){transition:none}:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:focus-within,.pretend-focus):hover{color:HighlightText;border-color:HighlightText}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}:host .tabs-wrapper .tabs{overflow-x:hidden;background-color:rgba(0,0,0,0) !important;display:flex;flex-wrap:nowrap;align-items:end;overscroll-behavior-x:contain;white-space:nowrap;margin-block:0;padding-inline-start:0;list-style:none}:host(.page-tabs){overflow:visible !important}:host(.page-tabs) .tabs-wrapper{margin-inline:calc(-1*(var(--post-container-offset)))}:host(.page-tabs) .tabs-wrapper button.scroll-btn{color:var(--post-scheme-color-interactive-primary-enabled-fg5);background-color:var(--post-scheme-color-interactive-primary-enabled-bg5);border:var(--post-device-border-width-default) solid var(--post-scheme-color-interactive-primary-enabled-stroke);position:absolute;z-index:2;box-shadow:var(--post-device-elevation-200);border-radius:var(--post-device-border-radius-2)}:host(.page-tabs) .tabs-wrapper button.scroll-btn:hover{border-color:var(--post-scheme-color-interactive-primary-hover-stroke) !important;color:var(--post-scheme-color-interactive-primary-hover-fg4);background-color:var(--post-scheme-color-interactive-primary-hover-bg8)}:host(.page-tabs) .tabs-wrapper button.scroll-btn.scroll-btn-left{inset-inline-start:0;border-inline-start:none;border-radius:0 var(--post-device-border-radius-2) var(--post-device-border-radius-2) 0}:host(.page-tabs) .tabs-wrapper button.scroll-btn.scroll-btn-right{inset-inline-end:0;border-inline-end:none;border-radius:var(--post-device-border-radius-2) 0 0 var(--post-device-border-radius-2)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(.page-tabs) .tabs-wrapper button.scroll-btn.scroll-btn{background-color:Highlight;color:HighlightText}}:host(.page-tabs) .tabs-wrapper::after{content:"";position:absolute;inset-block-end:0;inset-inline-start:0;width:100%;height:var(--post-device-border-width-default);background-color:var(--post-palette-color-nested-tabs-page-stroke)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(.page-tabs) .tabs-wrapper::after{background-color:LinkText}}:host(.page-tabs) .tabs-wrapper .tabs{padding-inline:calc(var(--post-container-offset));gap:var(--post-device-spacing-gap-inline-5);scrollbar-width:none}:host(.page-tabs) .tabs-wrapper .tabs::-webkit-scrollbar{display:none}:host(.page-tabs:not([size=small])) button.scroll-btn{top:var(--post-device-spacing-padding-36)}:host(.page-tabs[size=small]) button.scroll-btn{top:var(--post-device-spacing-padding-36)}:host(.content-tabs) .tabs-wrapper button.scroll-btn{flex-shrink:0;color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg)}:host(.content-tabs) .tabs-wrapper button.scroll-btn:hover{border-color:var(--post-scheme-color-interactive-primary-hover-stroke) !important;color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(.content-tabs) .tabs-wrapper button.scroll-btn:hover{color:HighlightText}}:host(post-tabs:not([size=small])) button.scroll-btn{height:var(--post-device-sizing-interactive-button-height-10);width:var(--post-device-sizing-interactive-button-width-1);border-radius:var(--post-device-border-radius-2)}:host(post-tabs:not([size=small])) button.scroll-btn post-icon{height:var(--post-device-sizing-interactive-icon-size5);width:var(--post-device-sizing-interactive-icon-size5)}:host(.page-tabs:not([size=small])) button.scroll-btn-left{padding-inline:var(--post-device-spacing-padding-39) var(--post-device-spacing-padding-40)}:host(.page-tabs:not([size=small])) button.scroll-btn-right{padding-inline:var(--post-device-spacing-padding-40) var(--post-device-spacing-padding-39)}:host([size=small]) button.scroll-btn{height:var(--post-device-sizing-interactive-button-size-1);width:var(--post-device-sizing-interactive-button-size-1);border-radius:var(--post-device-border-radius-2)}:host([size=small]) button.scroll-btn post-icon{height:var(--post-device-sizing-interactive-icon-size4);width:var(--post-device-sizing-interactive-icon-size4)}:host(.page-tabs[size=small]) button.scroll-btn-left{padding-inline:var(--post-device-spacing-padding-42) var(--post-device-spacing-padding-43)}:host(.page-tabs[size=small]) button.scroll-btn-right{padding-inline:var(--post-device-spacing-padding-43) var(--post-device-spacing-padding-42)}`;
|
|
24336
|
+
const postTabsCss = () => `:host{display:block}:host .tabs-wrapper{position:relative;display:flex;align-items:center}:host .tabs-wrapper button.scroll-btn{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button;display:flex;align-items:center;justify-content:center;transition:background-color 100ms,border-color 100ms,color 100ms;cursor:pointer}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn{background-color:ButtonFace !important}:host .tabs-wrapper button.scroll-btn:hover{background-color:Highlight !important}}:host .tabs-wrapper button.scroll-btn post-icon{color:currentColor}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn post-icon{color:Highlight}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn:hover post-icon{color:canvas}}:host .tabs-wrapper button.scroll-btn[hidden]{display:none}:host .tabs-wrapper button.scroll-btn{outline-offset:var(--post-device-spacing-padding-44) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:has(:focus-visible),.pretend-focus){transition:none}:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:has(:focus-visible),.pretend-focus):hover{color:HighlightText;border-color:HighlightText}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:focus-within,.pretend-focus){transition:none}:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:focus-within,.pretend-focus):hover{color:HighlightText;border-color:HighlightText}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}:host .tabs-wrapper .tabs{overflow-x:hidden;background-color:rgba(0,0,0,0) !important;display:flex;flex-wrap:nowrap;align-items:end;overscroll-behavior-x:contain;white-space:nowrap;margin-block:0;padding-inline-start:0;list-style:none}:host(.page-tabs){overflow:visible !important}:host(.page-tabs) .tabs-wrapper{margin-inline:calc(-1*(var(--post-container-offset)))}@media screen and (min-width: 1024px){:host(.page-tabs) .tabs-wrapper{margin-inline:calc(-1 * (var(--post-container-offset)) + 20px)}:host(.page-tabs) .tabs-wrapper::after{box-shadow:20px 0 0 var(--post-palette-color-nested-tabs-page-stroke),-20px 0 0 var(--post-palette-color-nested-tabs-page-stroke)}}@media screen and (min-width: 1024px)and (forced-colors: active),screen and (min-width: 1024px)and (-ms-high-contrast: active),screen and (min-width: 1024px)and (-ms-high-contrast: white-on-black){:host(.page-tabs) .tabs-wrapper::after{box-shadow:20px 0 0 LinkText,-20px 0 0 LinkText}}:host(.page-tabs) .tabs-wrapper button.scroll-btn{color:var(--post-scheme-color-interactive-primary-enabled-fg5);background-color:var(--post-scheme-color-interactive-primary-enabled-bg5);border:var(--post-device-border-width-default) solid var(--post-scheme-color-interactive-primary-enabled-stroke);position:absolute;z-index:2;box-shadow:var(--post-device-elevation-200);border-radius:var(--post-device-border-radius-2)}:host(.page-tabs) .tabs-wrapper button.scroll-btn:hover{border-color:var(--post-scheme-color-interactive-primary-hover-stroke) !important;color:var(--post-scheme-color-interactive-primary-hover-fg4);background-color:var(--post-scheme-color-interactive-primary-hover-bg8)}:host(.page-tabs) .tabs-wrapper button.scroll-btn.scroll-btn-left{inset-inline-start:0;border-inline-start:none;border-radius:0 var(--post-device-border-radius-2) var(--post-device-border-radius-2) 0}:host(.page-tabs) .tabs-wrapper button.scroll-btn.scroll-btn-right{inset-inline-end:0;border-inline-end:none;border-radius:var(--post-device-border-radius-2) 0 0 var(--post-device-border-radius-2)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(.page-tabs) .tabs-wrapper button.scroll-btn.scroll-btn{background-color:Highlight;color:HighlightText}}:host(.page-tabs) .tabs-wrapper::after{content:"";position:absolute;inset-block-end:0;inset-inline-start:0;width:100%;height:var(--post-device-border-width-default);background-color:var(--post-palette-color-nested-tabs-page-stroke)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(.page-tabs) .tabs-wrapper::after{background-color:LinkText}}:host(.page-tabs) .tabs-wrapper .tabs{padding-inline:calc(var(--post-container-offset));gap:var(--post-device-spacing-gap-inline-5);scrollbar-width:none}:host(.page-tabs) .tabs-wrapper .tabs::-webkit-scrollbar{display:none}:host(.page-tabs:not([size=small])) button.scroll-btn{top:var(--post-device-spacing-padding-36)}:host(.page-tabs[size=small]) button.scroll-btn{top:var(--post-device-spacing-padding-36)}:host(.content-tabs) .tabs-wrapper button.scroll-btn{flex-shrink:0;color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg)}:host(.content-tabs) .tabs-wrapper button.scroll-btn:hover{border-color:var(--post-scheme-color-interactive-primary-hover-stroke) !important;color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(.content-tabs) .tabs-wrapper button.scroll-btn:hover{color:HighlightText}}:host(post-tabs:not([size=small])) button.scroll-btn{height:var(--post-device-sizing-interactive-button-height-10);width:var(--post-device-sizing-interactive-button-width-1);border-radius:var(--post-device-border-radius-2)}:host(post-tabs:not([size=small])) button.scroll-btn post-icon{height:var(--post-device-sizing-interactive-icon-size5);width:var(--post-device-sizing-interactive-icon-size5)}:host(.page-tabs:not([size=small])) button.scroll-btn-left{padding-inline:var(--post-device-spacing-padding-39) var(--post-device-spacing-padding-40)}:host(.page-tabs:not([size=small])) button.scroll-btn-right{padding-inline:var(--post-device-spacing-padding-40) var(--post-device-spacing-padding-39)}:host([size=small]) button.scroll-btn{height:var(--post-device-sizing-interactive-button-size-1);width:var(--post-device-sizing-interactive-button-size-1);border-radius:var(--post-device-border-radius-2)}:host([size=small]) button.scroll-btn post-icon{height:var(--post-device-sizing-interactive-icon-size4);width:var(--post-device-sizing-interactive-icon-size4)}:host(.page-tabs[size=small]) button.scroll-btn-left{padding-inline:var(--post-device-spacing-padding-42) var(--post-device-spacing-padding-43)}:host(.page-tabs[size=small]) button.scroll-btn-right{padding-inline:var(--post-device-spacing-padding-43) var(--post-device-spacing-padding-42)}`;
|
|
23917
24337
|
|
|
23918
24338
|
var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
23919
24339
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -24341,10 +24761,10 @@ class PostTabs {
|
|
|
24341
24761
|
}
|
|
24342
24762
|
: undefined;
|
|
24343
24763
|
const style = !this.isPagesVariant ? tabStyle : undefined;
|
|
24344
|
-
return (hAsync(Host, { key: '
|
|
24764
|
+
return (hAsync(Host, { key: 'fb65fd2589517dd6d86e86435ec6b3a3b64b093d', "data-version": version$1, style: style }, hAsync("div", { key: 'dbcdd791af381ccc23953acb38a8e71527a804ee', class: "tabs-wrapper", part: "post-tabs" }, hAsync("button", { key: '20ce30515d80b282aa93f20a1f3281a1ef0f6359', ref: el => (this.leftScrollButton = el), class: "scroll-btn scroll-btn-left", type: "button", "aria-label": this.textPrevTabItems, tabindex: this.showLeftScrollButton ? 0 : -1, hidden: !this.showLeftScrollButton, onClick: () => this.scrollTabs('prev') }, hAsync("post-icon", { key: '9a5402a28656d7a4459b9b848425bd15a45a0fce', name: "chevronleft" })), hAsync(TabsContainer, { key: 'e821db02fd66aef6cf7a9fb5d925b0906571f3b6', ref: el => (this.tabsContainer = el), class: "tabs", role: this.isPagesVariant ? undefined : 'tablist', "aria-label": this.isPagesVariant ? this.label : undefined }, hAsync("slot", { key: 'e3650e43ac269173cb58f1624f02778bf094573c', onSlotchange: () => {
|
|
24345
24765
|
this.moveMisplacedTabs();
|
|
24346
24766
|
this.enableTabs();
|
|
24347
|
-
} })), hAsync("button", { key: '
|
|
24767
|
+
} })), hAsync("button", { key: '4345a9bc121ce187022cddf019d5c86d875a70e9', ref: el => (this.rightScrollButton = el), class: "scroll-btn scroll-btn-right", type: "button", "aria-label": this.textNextTabItems, tabindex: this.showRightScrollButton ? 0 : -1, hidden: !this.showRightScrollButton, onClick: () => this.scrollTabs('next') }, hAsync("post-icon", { key: '2df749c1a4e506d9940ce61e077d0f0f330b7342', name: "chevronright" }))), !this.isPagesVariant && (hAsync("div", { key: '184db29a5826af78d142ed1489be33c45831970b', class: "tab-content", part: "post-tabs-content" }, hAsync("slot", { key: '4a984c7de97f2f89e7fd0f829f5bc62e2323f056', name: "panels", onSlotchange: () => this.moveMisplacedPanels() })))));
|
|
24348
24768
|
}
|
|
24349
24769
|
get host() { return getElement(this); }
|
|
24350
24770
|
static get watchers() { return {
|
|
@@ -24411,7 +24831,7 @@ class PostTogglebutton {
|
|
|
24411
24831
|
});
|
|
24412
24832
|
}
|
|
24413
24833
|
render() {
|
|
24414
|
-
return (hAsync(Host, { key: '
|
|
24834
|
+
return (hAsync(Host, { key: '81fa9d922480059096e4146c10cf2ef72357b482', "data-version": version$1, role: "button", tabindex: "0", "aria-pressed": this.toggled.toString() }, hAsync("slot", { key: '4e8d793e3867ba4c9c8e17d509652309a79f032a' })));
|
|
24415
24835
|
}
|
|
24416
24836
|
get host() { return getElement(this); }
|
|
24417
24837
|
static get style() { return postTogglebuttonCss(); }
|
|
@@ -24495,7 +24915,7 @@ class PostTooltip {
|
|
|
24495
24915
|
}
|
|
24496
24916
|
render() {
|
|
24497
24917
|
const popoverClass = `${this.arrow ? 'has-arrow' : ''}`;
|
|
24498
|
-
return (hAsync(Host, { key: '
|
|
24918
|
+
return (hAsync(Host, { key: '62d5983e0ef32f851166d0c1d2c457cac0809fdf', "data-version": version$1 }, hAsync("post-popovercontainer", { key: '10150540956510724ab4832ecceb421a7013d983', safeSpace: "trapezoid", class: popoverClass, role: "tooltip", arrow: this.arrow, placement: this.placement, autoHide: true, onPostBeforeToggle: e => this.handleBeforeToggle(e), ref: (el) => (this.popoverRef = el) }, hAsync("slot", { key: 'cdfaf0e916afa55ec3f1a7f64003101985560e27' }))));
|
|
24499
24919
|
}
|
|
24500
24920
|
get host() { return getElement(this); }
|
|
24501
24921
|
static get style() { return postTooltipCss(); }
|
|
@@ -24690,7 +25110,7 @@ class PostTooltipTrigger {
|
|
|
24690
25110
|
this.tooltip?.hide();
|
|
24691
25111
|
}
|
|
24692
25112
|
render() {
|
|
24693
|
-
return (hAsync(Host, { key: '
|
|
25113
|
+
return (hAsync(Host, { key: '55adc12f457aa8a5dd4357ed27876b0e526f7ae3', "data-version": version$1 }, hAsync("slot", { key: '84da1734ae1c1ac9376caa693108e3ed54bf176f', onSlotchange: () => this.handleSlotChange() })));
|
|
24694
25114
|
}
|
|
24695
25115
|
get host() { return getElement(this); }
|
|
24696
25116
|
static get style() { return postTooltipTriggerCss(); }
|