@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.js
CHANGED
|
@@ -5889,182 +5889,24 @@ function Url() {
|
|
|
5889
5889
|
});
|
|
5890
5890
|
}
|
|
5891
5891
|
|
|
5892
|
-
/* eslint-disable no-undefined,no-param-reassign,no-shadow */
|
|
5893
|
-
|
|
5894
|
-
/**
|
|
5895
|
-
* Throttle execution of a function. Especially useful for rate limiting
|
|
5896
|
-
* execution of handlers on events like resize and scroll.
|
|
5897
|
-
*
|
|
5898
|
-
* @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)
|
|
5899
|
-
* are most useful.
|
|
5900
|
-
* @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,
|
|
5901
|
-
* as-is, to `callback` when the throttled-function is executed.
|
|
5902
|
-
* @param {object} [options] - An object to configure options.
|
|
5903
|
-
* @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds
|
|
5904
|
-
* while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed
|
|
5905
|
-
* one final time after the last throttled-function call. (After the throttled-function has not been called for
|
|
5906
|
-
* `delay` milliseconds, the internal counter is reset).
|
|
5907
|
-
* @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback
|
|
5908
|
-
* immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that
|
|
5909
|
-
* callback will never executed if both noLeading = true and noTrailing = true.
|
|
5910
|
-
* @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is
|
|
5911
|
-
* false (at end), schedule `callback` to execute after `delay` ms.
|
|
5912
|
-
*
|
|
5913
|
-
* @returns {Function} A new, throttled, function.
|
|
5914
|
-
*/
|
|
5915
|
-
function throttle (delay, callback, options) {
|
|
5916
|
-
var _ref = options || {},
|
|
5917
|
-
_ref$noTrailing = _ref.noTrailing,
|
|
5918
|
-
noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing,
|
|
5919
|
-
_ref$noLeading = _ref.noLeading,
|
|
5920
|
-
noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading,
|
|
5921
|
-
_ref$debounceMode = _ref.debounceMode,
|
|
5922
|
-
debounceMode = _ref$debounceMode === void 0 ? undefined : _ref$debounceMode;
|
|
5923
|
-
/*
|
|
5924
|
-
* After wrapper has stopped being called, this timeout ensures that
|
|
5925
|
-
* `callback` is executed at the proper times in `throttle` and `end`
|
|
5926
|
-
* debounce modes.
|
|
5927
|
-
*/
|
|
5928
|
-
var timeoutID;
|
|
5929
|
-
var cancelled = false;
|
|
5930
|
-
|
|
5931
|
-
// Keep track of the last time `callback` was executed.
|
|
5932
|
-
var lastExec = 0;
|
|
5933
|
-
|
|
5934
|
-
// Function to clear existing timeout
|
|
5935
|
-
function clearExistingTimeout() {
|
|
5936
|
-
if (timeoutID) {
|
|
5937
|
-
clearTimeout(timeoutID);
|
|
5938
|
-
}
|
|
5939
|
-
}
|
|
5940
|
-
|
|
5941
|
-
// Function to cancel next exec
|
|
5942
|
-
function cancel(options) {
|
|
5943
|
-
var _ref2 = options || {},
|
|
5944
|
-
_ref2$upcomingOnly = _ref2.upcomingOnly,
|
|
5945
|
-
upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;
|
|
5946
|
-
clearExistingTimeout();
|
|
5947
|
-
cancelled = !upcomingOnly;
|
|
5948
|
-
}
|
|
5949
|
-
|
|
5950
|
-
/*
|
|
5951
|
-
* The `wrapper` function encapsulates all of the throttling / debouncing
|
|
5952
|
-
* functionality and when executed will limit the rate at which `callback`
|
|
5953
|
-
* is executed.
|
|
5954
|
-
*/
|
|
5955
|
-
function wrapper() {
|
|
5956
|
-
for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
5957
|
-
arguments_[_key] = arguments[_key];
|
|
5958
|
-
}
|
|
5959
|
-
var self = this;
|
|
5960
|
-
var elapsed = Date.now() - lastExec;
|
|
5961
|
-
if (cancelled) {
|
|
5962
|
-
return;
|
|
5963
|
-
}
|
|
5964
|
-
|
|
5965
|
-
// Execute `callback` and update the `lastExec` timestamp.
|
|
5966
|
-
function exec() {
|
|
5967
|
-
lastExec = Date.now();
|
|
5968
|
-
callback.apply(self, arguments_);
|
|
5969
|
-
}
|
|
5970
|
-
|
|
5971
|
-
/*
|
|
5972
|
-
* If `debounceMode` is true (at begin) this is used to clear the flag
|
|
5973
|
-
* to allow future `callback` executions.
|
|
5974
|
-
*/
|
|
5975
|
-
function clear() {
|
|
5976
|
-
timeoutID = undefined;
|
|
5977
|
-
}
|
|
5978
|
-
if (!noLeading && debounceMode && !timeoutID) {
|
|
5979
|
-
/*
|
|
5980
|
-
* Since `wrapper` is being called for the first time and
|
|
5981
|
-
* `debounceMode` is true (at begin), execute `callback`
|
|
5982
|
-
* and noLeading != true.
|
|
5983
|
-
*/
|
|
5984
|
-
exec();
|
|
5985
|
-
}
|
|
5986
|
-
clearExistingTimeout();
|
|
5987
|
-
if (debounceMode === undefined && elapsed > delay) {
|
|
5988
|
-
if (noLeading) {
|
|
5989
|
-
/*
|
|
5990
|
-
* In throttle mode with noLeading, if `delay` time has
|
|
5991
|
-
* been exceeded, update `lastExec` and schedule `callback`
|
|
5992
|
-
* to execute after `delay` ms.
|
|
5993
|
-
*/
|
|
5994
|
-
lastExec = Date.now();
|
|
5995
|
-
if (!noTrailing) {
|
|
5996
|
-
timeoutID = setTimeout(debounceMode ? clear : exec, delay);
|
|
5997
|
-
}
|
|
5998
|
-
} else {
|
|
5999
|
-
/*
|
|
6000
|
-
* In throttle mode without noLeading, if `delay` time has been exceeded, execute
|
|
6001
|
-
* `callback`.
|
|
6002
|
-
*/
|
|
6003
|
-
exec();
|
|
6004
|
-
}
|
|
6005
|
-
} else if (noTrailing !== true) {
|
|
6006
|
-
/*
|
|
6007
|
-
* In trailing throttle mode, since `delay` time has not been
|
|
6008
|
-
* exceeded, schedule `callback` to execute `delay` ms after most
|
|
6009
|
-
* recent execution.
|
|
6010
|
-
*
|
|
6011
|
-
* If `debounceMode` is true (at begin), schedule `clear` to execute
|
|
6012
|
-
* after `delay` ms.
|
|
6013
|
-
*
|
|
6014
|
-
* If `debounceMode` is false (at end), schedule `callback` to
|
|
6015
|
-
* execute after `delay` ms.
|
|
6016
|
-
*/
|
|
6017
|
-
timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);
|
|
6018
|
-
}
|
|
6019
|
-
}
|
|
6020
|
-
wrapper.cancel = cancel;
|
|
6021
|
-
|
|
6022
|
-
// Return the wrapper function.
|
|
6023
|
-
return wrapper;
|
|
6024
|
-
}
|
|
6025
|
-
|
|
6026
|
-
/* eslint-disable no-undefined */
|
|
6027
|
-
|
|
6028
|
-
/**
|
|
6029
|
-
* Debounce execution of a function. Debouncing, unlike throttling,
|
|
6030
|
-
* guarantees that a function is only executed a single time, either at the
|
|
6031
|
-
* very beginning of a series of calls, or at the very end.
|
|
6032
|
-
*
|
|
6033
|
-
* @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.
|
|
6034
|
-
* @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,
|
|
6035
|
-
* to `callback` when the debounced-function is executed.
|
|
6036
|
-
* @param {object} [options] - An object to configure options.
|
|
6037
|
-
* @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds
|
|
6038
|
-
* after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.
|
|
6039
|
-
* (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).
|
|
6040
|
-
*
|
|
6041
|
-
* @returns {Function} A new, debounced function.
|
|
6042
|
-
*/
|
|
6043
|
-
function debounce$1 (delay, callback, options) {
|
|
6044
|
-
var _ref = {},
|
|
6045
|
-
_ref$atBegin = _ref.atBegin,
|
|
6046
|
-
atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin;
|
|
6047
|
-
return throttle(delay, callback, {
|
|
6048
|
-
debounceMode: atBegin !== false
|
|
6049
|
-
});
|
|
6050
|
-
}
|
|
6051
|
-
|
|
6052
5892
|
class Breakpoint {
|
|
6053
5893
|
constructor() {
|
|
6054
5894
|
this.breakpoints = [
|
|
6055
|
-
{ key: 'xl', device: 'desktop', minWidth: 1280 },
|
|
6056
|
-
{ key: 'lg', device: 'desktop', minWidth: 1024 },
|
|
6057
|
-
{ key: 'md', device: 'tablet', minWidth: 780 },
|
|
6058
|
-
{ key: 'sm', device: 'tablet', minWidth: 600 },
|
|
6059
|
-
{ key: 'xs', device: 'mobile', minWidth: 0 },
|
|
5895
|
+
{ key: 'xl', device: 'desktop', minWidth: 1280, mediaQuery: '(min-width: 1280px)' },
|
|
5896
|
+
{ key: 'lg', device: 'desktop', minWidth: 1024, mediaQuery: '(min-width: 1024px)' },
|
|
5897
|
+
{ key: 'md', device: 'tablet', minWidth: 780, mediaQuery: '(min-width: 780px)' },
|
|
5898
|
+
{ key: 'sm', device: 'tablet', minWidth: 600, mediaQuery: '(min-width: 600px)' },
|
|
5899
|
+
{ key: 'xs', device: 'mobile', minWidth: 0, mediaQuery: '(min-width: 0px)' },
|
|
6060
5900
|
];
|
|
6061
5901
|
this.resizeObserver = globalThis.ResizeObserver
|
|
6062
5902
|
? new ResizeObserver(() => this.updateCurrentBreakpoint())
|
|
6063
5903
|
: null;
|
|
6064
|
-
this.updateCurrentBreakpoint =
|
|
5904
|
+
this.updateCurrentBreakpoint = (options = { emitEvents: true }) => {
|
|
6065
5905
|
const previousBreakpoint = this.currentBreakpoint;
|
|
6066
5906
|
const newBreakpoint = this.breakpoints.find(breakpoint => {
|
|
6067
|
-
return
|
|
5907
|
+
return globalThis.matchMedia
|
|
5908
|
+
? globalThis.matchMedia(breakpoint.mediaQuery).matches
|
|
5909
|
+
: breakpoint.minWidth <= document.documentElement.clientWidth;
|
|
6068
5910
|
});
|
|
6069
5911
|
if (!newBreakpoint)
|
|
6070
5912
|
return;
|
|
@@ -6072,9 +5914,10 @@ class Breakpoint {
|
|
|
6072
5914
|
if (!options.emitEvents)
|
|
6073
5915
|
return;
|
|
6074
5916
|
Object.keys(this.currentBreakpoint)
|
|
5917
|
+
.filter(key => key !== 'mediaQuery')
|
|
6075
5918
|
.filter(key => !previousBreakpoint || this.currentBreakpoint[key] !== previousBreakpoint[key])
|
|
6076
5919
|
.forEach((key) => this.dispatchEvent(key));
|
|
6077
|
-
}
|
|
5920
|
+
};
|
|
6078
5921
|
if (this.resizeObserver) {
|
|
6079
5922
|
this.updateCurrentBreakpoint({ emitEvents: false });
|
|
6080
5923
|
this.resizeObserver.observe(document.body);
|
|
@@ -6090,37 +5933,6 @@ class Breakpoint {
|
|
|
6090
5933
|
}
|
|
6091
5934
|
const breakpoint = new Breakpoint();
|
|
6092
5935
|
|
|
6093
|
-
/**
|
|
6094
|
-
* Invoke the `componentOnReady` method if it is available, simulate it otherwise
|
|
6095
|
-
* @see https://stenciljs.com/docs/api#componentonready
|
|
6096
|
-
*/
|
|
6097
|
-
function componentOnReady(el) {
|
|
6098
|
-
if (typeof el.componentOnReady === 'function') {
|
|
6099
|
-
return el.componentOnReady();
|
|
6100
|
-
}
|
|
6101
|
-
else {
|
|
6102
|
-
return new Promise(resolve => customOnReady(() => {
|
|
6103
|
-
resolve(el);
|
|
6104
|
-
}));
|
|
6105
|
-
}
|
|
6106
|
-
}
|
|
6107
|
-
function customOnReady(callback) {
|
|
6108
|
-
if (typeof requestAnimationFrame === 'function') {
|
|
6109
|
-
return requestAnimationFrame(callback);
|
|
6110
|
-
}
|
|
6111
|
-
return setTimeout(callback);
|
|
6112
|
-
}
|
|
6113
|
-
|
|
6114
|
-
function debounce(callback, timeout = 200) {
|
|
6115
|
-
let id;
|
|
6116
|
-
return (...args) => {
|
|
6117
|
-
if (id) {
|
|
6118
|
-
clearTimeout(id);
|
|
6119
|
-
}
|
|
6120
|
-
id = setTimeout(callback, timeout, ...args);
|
|
6121
|
-
};
|
|
6122
|
-
}
|
|
6123
|
-
|
|
6124
5936
|
/**
|
|
6125
5937
|
* Validates if an event should be processed based on target and nesting criteria
|
|
6126
5938
|
* @param event - The event to validate
|
|
@@ -6212,32 +6024,106 @@ function EventFrom(tag, option) {
|
|
|
6212
6024
|
}
|
|
6213
6025
|
/**
|
|
6214
6026
|
* Traverses up the DOM (including crossing shadow DOM boundaries) to find the closest ancestor
|
|
6215
|
-
*
|
|
6216
|
-
* @param
|
|
6217
|
-
* @param
|
|
6027
|
+
* matching the given predicate.
|
|
6028
|
+
* @param start - The starting element
|
|
6029
|
+
* @param predicate - A type guard used to test each ancestor
|
|
6218
6030
|
* @returns The closest matching ancestor or null if none found
|
|
6219
6031
|
*/
|
|
6220
|
-
function
|
|
6221
|
-
let current =
|
|
6032
|
+
function findClosestAcrossShadow(start, predicate) {
|
|
6033
|
+
let current = start;
|
|
6222
6034
|
while (current) {
|
|
6223
|
-
if (current
|
|
6035
|
+
if (predicate(current)) {
|
|
6224
6036
|
return current;
|
|
6225
6037
|
}
|
|
6226
|
-
// Check regular parent first
|
|
6227
6038
|
if (current.parentElement) {
|
|
6228
6039
|
current = current.parentElement;
|
|
6229
6040
|
}
|
|
6230
|
-
// If no parentElement, check if we're in a shadow root
|
|
6231
|
-
else if (current.parentNode instanceof ShadowRoot) {
|
|
6232
|
-
current = current.parentNode.host;
|
|
6233
|
-
}
|
|
6234
|
-
// No more parents to check
|
|
6235
6041
|
else {
|
|
6236
|
-
|
|
6042
|
+
// Duck-typed ShadowRoot check (nodeType 11 + host) instead of `instanceof ShadowRoot`,
|
|
6043
|
+
// since some test environments (e.g. JSDOM) only partially implement it.
|
|
6044
|
+
const parent = current.parentNode;
|
|
6045
|
+
if (parent !== null && parent.nodeType === 11 && 'host' in parent) {
|
|
6046
|
+
current = parent.host;
|
|
6047
|
+
}
|
|
6048
|
+
else {
|
|
6049
|
+
current = null;
|
|
6050
|
+
}
|
|
6237
6051
|
}
|
|
6238
6052
|
}
|
|
6239
6053
|
return null;
|
|
6240
6054
|
}
|
|
6055
|
+
function findClosestParentWithTag(element, tagName) {
|
|
6056
|
+
return findClosestAcrossShadow(element, (el) => el.localName === tagName);
|
|
6057
|
+
}
|
|
6058
|
+
|
|
6059
|
+
const CLOSABLE_TARGETS = [
|
|
6060
|
+
{
|
|
6061
|
+
predicate: el => el.localName === 'post-banner',
|
|
6062
|
+
close: el => void el.dismiss(),
|
|
6063
|
+
},
|
|
6064
|
+
{
|
|
6065
|
+
predicate: el => el.localName === 'post-popover',
|
|
6066
|
+
close: el => void el.hide(),
|
|
6067
|
+
},
|
|
6068
|
+
{
|
|
6069
|
+
predicate: el => el.localName === 'post-popovercontainer',
|
|
6070
|
+
close: el => void el.hide(),
|
|
6071
|
+
},
|
|
6072
|
+
{
|
|
6073
|
+
predicate: el => el.localName === 'post-collapsible',
|
|
6074
|
+
close: el => void el.toggle(false),
|
|
6075
|
+
},
|
|
6076
|
+
{
|
|
6077
|
+
predicate: el => el.localName === 'post-accordion-item',
|
|
6078
|
+
close: el => void el.toggle(false),
|
|
6079
|
+
},
|
|
6080
|
+
{
|
|
6081
|
+
predicate: el => el.localName === 'dialog',
|
|
6082
|
+
close: el => el.close(),
|
|
6083
|
+
},
|
|
6084
|
+
{
|
|
6085
|
+
predicate: el => el.hasAttribute('popover'),
|
|
6086
|
+
close: el => el.togglePopover(false),
|
|
6087
|
+
},
|
|
6088
|
+
];
|
|
6089
|
+
function findClosableTarget(start) {
|
|
6090
|
+
const el = findClosestAcrossShadow(start, (el) => CLOSABLE_TARGETS.some(t => t.predicate(el)));
|
|
6091
|
+
if (!el)
|
|
6092
|
+
return null;
|
|
6093
|
+
const match = CLOSABLE_TARGETS.find(t => t.predicate(el));
|
|
6094
|
+
return { element: el, close: () => match.close(el) };
|
|
6095
|
+
}
|
|
6096
|
+
|
|
6097
|
+
/**
|
|
6098
|
+
* Invoke the `componentOnReady` method if it is available, simulate it otherwise
|
|
6099
|
+
* @see https://stenciljs.com/docs/api#componentonready
|
|
6100
|
+
*/
|
|
6101
|
+
function componentOnReady(el) {
|
|
6102
|
+
if (typeof el.componentOnReady === 'function') {
|
|
6103
|
+
return el.componentOnReady();
|
|
6104
|
+
}
|
|
6105
|
+
else {
|
|
6106
|
+
return new Promise(resolve => customOnReady(() => {
|
|
6107
|
+
resolve(el);
|
|
6108
|
+
}));
|
|
6109
|
+
}
|
|
6110
|
+
}
|
|
6111
|
+
function customOnReady(callback) {
|
|
6112
|
+
if (typeof requestAnimationFrame === 'function') {
|
|
6113
|
+
return requestAnimationFrame(callback);
|
|
6114
|
+
}
|
|
6115
|
+
return setTimeout(callback);
|
|
6116
|
+
}
|
|
6117
|
+
|
|
6118
|
+
function debounce$1(callback, timeout = 200) {
|
|
6119
|
+
let id;
|
|
6120
|
+
return (...args) => {
|
|
6121
|
+
if (id) {
|
|
6122
|
+
clearTimeout(id);
|
|
6123
|
+
}
|
|
6124
|
+
id = setTimeout(callback, timeout, ...args);
|
|
6125
|
+
};
|
|
6126
|
+
}
|
|
6241
6127
|
|
|
6242
6128
|
/**
|
|
6243
6129
|
* getRootNode() can only be used after the element has been attached to the document!
|
|
@@ -6419,7 +6305,7 @@ function repeat(callback, { delayMs = 300, intervalMs = 100 } = {}) {
|
|
|
6419
6305
|
};
|
|
6420
6306
|
}
|
|
6421
6307
|
|
|
6422
|
-
const version$1 = "10.
|
|
6308
|
+
const version$1 = "10.6.0";
|
|
6423
6309
|
|
|
6424
6310
|
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)}`;
|
|
6425
6311
|
|
|
@@ -6640,44 +6526,31 @@ class PostAutocomplete {
|
|
|
6640
6526
|
constructor(hostRef) {
|
|
6641
6527
|
registerInstance(this, hostRef);
|
|
6642
6528
|
this.postFilteringEvent = createEvent(this, "postFilteringEvent");
|
|
6643
|
-
this.debouncedHandleInput = debounce((event) => {
|
|
6529
|
+
this.debouncedHandleInput = debounce$1((event) => {
|
|
6644
6530
|
void this.handleInput(event);
|
|
6645
6531
|
}, 250);
|
|
6646
6532
|
/** Number of characters to type before filtering methods are called */
|
|
6647
6533
|
this.filterThreshold = 0;
|
|
6648
6534
|
/** Show or hide the clear button */
|
|
6649
6535
|
this.clearable = false;
|
|
6650
|
-
|
|
6651
|
-
this.
|
|
6652
|
-
|
|
6653
|
-
|
|
6654
|
-
|
|
6655
|
-
|
|
6656
|
-
|
|
6536
|
+
/** Whether the listbox is currently expanded */
|
|
6537
|
+
this.expanded = false;
|
|
6538
|
+
/** The value of the last run query */
|
|
6539
|
+
this.lastQuery = '';
|
|
6540
|
+
/** The value of the selected listbox option */
|
|
6541
|
+
this.selectedValue = null;
|
|
6542
|
+
this.handleClick = async () => {
|
|
6543
|
+
await this.runQuery('', true);
|
|
6657
6544
|
};
|
|
6658
|
-
this.
|
|
6659
|
-
this.
|
|
6660
|
-
this.listBoxElement.filter('');
|
|
6545
|
+
this.handleBlur = () => {
|
|
6546
|
+
this.restoreSelectedValue();
|
|
6661
6547
|
this.hideListBox();
|
|
6662
6548
|
};
|
|
6663
6549
|
this.handleInput = async (event) => {
|
|
6664
6550
|
if (!this.listBoxElement)
|
|
6665
6551
|
return;
|
|
6666
6552
|
const value = event.target.value.trim();
|
|
6667
|
-
|
|
6668
|
-
// Allow for consuming parent to handle filtering (e.g. for async data) and prevent default filtering behavior
|
|
6669
|
-
const { defaultPrevented } = this.postFilteringEvent.emit(query && query.length >= this.filterThreshold ? query : '');
|
|
6670
|
-
if (defaultPrevented)
|
|
6671
|
-
return;
|
|
6672
|
-
await this.listBoxElement.filter(query);
|
|
6673
|
-
if (query) {
|
|
6674
|
-
this.showListBox();
|
|
6675
|
-
this.announceCount();
|
|
6676
|
-
}
|
|
6677
|
-
else {
|
|
6678
|
-
this.inputValue = '';
|
|
6679
|
-
this.clearAnnouncement();
|
|
6680
|
-
}
|
|
6553
|
+
await this.runQuery(value.length >= this.filterThreshold ? value : '');
|
|
6681
6554
|
};
|
|
6682
6555
|
this.handleKeyDown = (event) => {
|
|
6683
6556
|
const { key, altKey } = event;
|
|
@@ -6719,8 +6592,7 @@ class PostAutocomplete {
|
|
|
6719
6592
|
};
|
|
6720
6593
|
this.handleOptionSelected = (e) => {
|
|
6721
6594
|
const value = e.detail;
|
|
6722
|
-
this.
|
|
6723
|
-
this.inputValue = value;
|
|
6595
|
+
this.updateSelectedValue(value);
|
|
6724
6596
|
this.hideListBox();
|
|
6725
6597
|
};
|
|
6726
6598
|
this.handleOptionActive = (e) => {
|
|
@@ -6732,23 +6604,9 @@ class PostAutocomplete {
|
|
|
6732
6604
|
this.inputElement.removeAttribute('aria-activedescendant');
|
|
6733
6605
|
}
|
|
6734
6606
|
};
|
|
6735
|
-
this.
|
|
6736
|
-
this.clearAnnouncement();
|
|
6737
|
-
this.listBoxElement.hide();
|
|
6738
|
-
this.inputElement.ariaExpanded = 'false';
|
|
6739
|
-
this.host.removeAttribute('open');
|
|
6740
|
-
this.inputElement.removeAttribute('aria-activedescendant');
|
|
6741
|
-
};
|
|
6742
|
-
this.showListBox = async () => {
|
|
6743
|
-
await this.listBoxElement.show();
|
|
6744
|
-
this.inputElement.ariaExpanded = 'true';
|
|
6745
|
-
this.host.setAttribute('open', '');
|
|
6746
|
-
this.announceCount();
|
|
6747
|
-
};
|
|
6748
|
-
this.clearInput = () => {
|
|
6607
|
+
this.handleClear = () => {
|
|
6749
6608
|
if (this.inputElement) {
|
|
6750
|
-
this.
|
|
6751
|
-
this.inputValue = '';
|
|
6609
|
+
this.updateSelectedValue(null);
|
|
6752
6610
|
this.listBoxElement.clearSelection();
|
|
6753
6611
|
this.hideListBox();
|
|
6754
6612
|
}
|
|
@@ -6795,18 +6653,16 @@ class PostAutocomplete {
|
|
|
6795
6653
|
if (this.inputElement) {
|
|
6796
6654
|
this.inputElement.addEventListener('input', this.debouncedHandleInput);
|
|
6797
6655
|
this.inputElement.addEventListener('keydown', this.handleKeyDown);
|
|
6798
|
-
this.inputElement.addEventListener('blur', this.
|
|
6799
|
-
this.inputElement.addEventListener('click', this.
|
|
6800
|
-
this.inputElement.addEventListener('focus', this.handleFocus);
|
|
6656
|
+
this.inputElement.addEventListener('blur', this.handleBlur);
|
|
6657
|
+
this.inputElement.addEventListener('click', this.handleClick);
|
|
6801
6658
|
}
|
|
6802
6659
|
}
|
|
6803
6660
|
detachInputListeners() {
|
|
6804
6661
|
if (this.inputElement) {
|
|
6805
6662
|
this.inputElement.removeEventListener('input', this.debouncedHandleInput);
|
|
6806
6663
|
this.inputElement.removeEventListener('keydown', this.handleKeyDown);
|
|
6807
|
-
this.inputElement.removeEventListener('blur', this.
|
|
6808
|
-
this.inputElement.removeEventListener('click', this.
|
|
6809
|
-
this.inputElement.removeEventListener('focus', this.handleFocus);
|
|
6664
|
+
this.inputElement.removeEventListener('blur', this.handleBlur);
|
|
6665
|
+
this.inputElement.removeEventListener('click', this.handleClick);
|
|
6810
6666
|
}
|
|
6811
6667
|
}
|
|
6812
6668
|
attachListboxListeners() {
|
|
@@ -6831,8 +6687,53 @@ class PostAutocomplete {
|
|
|
6831
6687
|
const count = this.listBoxElement.querySelectorAll('post-listbox-option:not([hidden])').length;
|
|
6832
6688
|
this.outputElement.textContent = this.textAvailableSuggestions.replace('{count}', String(count));
|
|
6833
6689
|
}
|
|
6690
|
+
async showListBox() {
|
|
6691
|
+
await this.listBoxElement.show();
|
|
6692
|
+
this.expanded = true;
|
|
6693
|
+
this.inputElement.ariaExpanded = 'true';
|
|
6694
|
+
this.host.setAttribute('open', '');
|
|
6695
|
+
this.announceCount();
|
|
6696
|
+
}
|
|
6697
|
+
async hideListBox() {
|
|
6698
|
+
this.clearAnnouncement();
|
|
6699
|
+
this.expanded = false;
|
|
6700
|
+
this.host.removeAttribute('open');
|
|
6701
|
+
this.inputElement.ariaExpanded = 'false';
|
|
6702
|
+
this.inputElement.removeAttribute('aria-activedescendant');
|
|
6703
|
+
await this.listBoxElement.hide();
|
|
6704
|
+
}
|
|
6705
|
+
updateSelectedValue(value) {
|
|
6706
|
+
this.selectedValue = value;
|
|
6707
|
+
this.inputElement.value = this.selectedValue ?? '';
|
|
6708
|
+
}
|
|
6709
|
+
/** Restores the input to the value of the selected option. */
|
|
6710
|
+
restoreSelectedValue() {
|
|
6711
|
+
this.inputElement.value = this.selectedValue ?? '';
|
|
6712
|
+
}
|
|
6713
|
+
/** Runs a query, filtering the listbox options and reflecting the outcome. */
|
|
6714
|
+
async runQuery(query, alwaysExpand = false) {
|
|
6715
|
+
// Prevent running the same query twice.
|
|
6716
|
+
if (this.lastQuery !== (this.lastQuery = query)) {
|
|
6717
|
+
await this.filterListBox(query);
|
|
6718
|
+
}
|
|
6719
|
+
// Always update the count if the listbox is expanded.
|
|
6720
|
+
if (this.expanded) {
|
|
6721
|
+
this.announceCount();
|
|
6722
|
+
}
|
|
6723
|
+
// Automatically show the listbox if the query is non-empty.
|
|
6724
|
+
else if (alwaysExpand || query) {
|
|
6725
|
+
await this.showListBox();
|
|
6726
|
+
}
|
|
6727
|
+
}
|
|
6728
|
+
/** Filters the listbox options based on the query, delegating to the consuming parent when possible. */
|
|
6729
|
+
async filterListBox(query) {
|
|
6730
|
+
// Allow for consuming parent to handle filtering (e.g. for async data) and prevent default filtering behavior.
|
|
6731
|
+
if (this.postFilteringEvent.emit(query).defaultPrevented)
|
|
6732
|
+
return;
|
|
6733
|
+
await this.listBoxElement?.filter(query);
|
|
6734
|
+
}
|
|
6834
6735
|
render() {
|
|
6835
|
-
return (hAsync(Host, { key: '
|
|
6736
|
+
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) })));
|
|
6836
6737
|
}
|
|
6837
6738
|
get host() { return getElement(this); }
|
|
6838
6739
|
static get style() { return postAutocompleteCss(); }
|
|
@@ -6844,7 +6745,7 @@ class PostAutocomplete {
|
|
|
6844
6745
|
"clearable": [516],
|
|
6845
6746
|
"listbox": [513],
|
|
6846
6747
|
"textAvailableSuggestions": [513, "text-available-suggestions"],
|
|
6847
|
-
"
|
|
6748
|
+
"selectedValue": [32]
|
|
6848
6749
|
},
|
|
6849
6750
|
"$listeners$": undefined,
|
|
6850
6751
|
"$lazyBundleId$": "-",
|
|
@@ -7119,12 +7020,23 @@ class PostBackToTop {
|
|
|
7119
7020
|
return window.scrollY > window.innerHeight;
|
|
7120
7021
|
}
|
|
7121
7022
|
/*Watch for changes in belowFold to show/hide the back to top button*/
|
|
7122
|
-
watchBelowFold(newValue) {
|
|
7123
|
-
|
|
7124
|
-
|
|
7023
|
+
async watchBelowFold(newValue) {
|
|
7024
|
+
this.currentAnimation?.cancel();
|
|
7025
|
+
// host needs to be visible before we can animate, in or out
|
|
7026
|
+
// hidden state gets recalculated after the animation, based on belowFold
|
|
7027
|
+
this.host.hidden = false;
|
|
7028
|
+
this.currentAnimation = fadeSlide(this.host, newValue ? 'in' : 'out', {
|
|
7029
|
+
translate: this.translateY,
|
|
7030
|
+
fill: 'forwards',
|
|
7031
|
+
});
|
|
7032
|
+
try {
|
|
7033
|
+
await this.currentAnimation.finished;
|
|
7034
|
+
// only hide once the fade-out finished and we're still not below fold
|
|
7035
|
+
if (!this.belowFold)
|
|
7036
|
+
this.host.hidden = true;
|
|
7125
7037
|
}
|
|
7126
|
-
|
|
7127
|
-
|
|
7038
|
+
catch {
|
|
7039
|
+
// animation got canceled, nothing to do
|
|
7128
7040
|
}
|
|
7129
7041
|
}
|
|
7130
7042
|
scrollToTop() {
|
|
@@ -7166,16 +7078,17 @@ class PostBackToTop {
|
|
|
7166
7078
|
// Set the initial state
|
|
7167
7079
|
componentWillLoad() {
|
|
7168
7080
|
this.belowFold = this.isBelowFold();
|
|
7081
|
+
this.host.hidden = !this.belowFold;
|
|
7169
7082
|
}
|
|
7170
7083
|
componentDidLoad() {
|
|
7171
|
-
window.addEventListener('scroll', this.handleScroll,
|
|
7084
|
+
window.addEventListener('scroll', this.handleScroll, { passive: true });
|
|
7172
7085
|
this.animateButton();
|
|
7173
7086
|
}
|
|
7174
7087
|
disconnectedCallback() {
|
|
7175
7088
|
window.removeEventListener('scroll', this.handleScroll);
|
|
7176
7089
|
}
|
|
7177
7090
|
render() {
|
|
7178
|
-
return (hAsync(Host, { key: '
|
|
7091
|
+
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))));
|
|
7179
7092
|
}
|
|
7180
7093
|
get host() { return getElement(this); }
|
|
7181
7094
|
static get watchers() { return {
|
|
@@ -7298,14 +7211,11 @@ class PostBanner {
|
|
|
7298
7211
|
this.postDismissed.emit();
|
|
7299
7212
|
this.host.remove();
|
|
7300
7213
|
}
|
|
7301
|
-
onCloseButtonClick() {
|
|
7302
|
-
void this.dismiss();
|
|
7303
|
-
}
|
|
7304
7214
|
checkContent() {
|
|
7305
7215
|
this.hasActions = this.host.querySelectorAll('[slot="actions"]').length > 0;
|
|
7306
7216
|
}
|
|
7307
7217
|
render() {
|
|
7308
|
-
return (hAsync(Host, { key: '
|
|
7218
|
+
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" }))))));
|
|
7309
7219
|
}
|
|
7310
7220
|
get host() { return getElement(this); }
|
|
7311
7221
|
static get style() { return postBannerCss(); }
|
|
@@ -7317,7 +7227,7 @@ class PostBanner {
|
|
|
7317
7227
|
"hasActions": [32],
|
|
7318
7228
|
"dismiss": [64]
|
|
7319
7229
|
},
|
|
7320
|
-
"$listeners$":
|
|
7230
|
+
"$listeners$": undefined,
|
|
7321
7231
|
"$lazyBundleId$": "-",
|
|
7322
7232
|
"$attrsToReflect$": [["type", "type"]]
|
|
7323
7233
|
}; }
|
|
@@ -7325,13 +7235,10 @@ class PostBanner {
|
|
|
7325
7235
|
__decorate$w([
|
|
7326
7236
|
OneOf(BANNER_TYPES)
|
|
7327
7237
|
], PostBanner.prototype, "type", void 0);
|
|
7328
|
-
__decorate$w([
|
|
7329
|
-
EventFrom('post-closebutton', { allowDescendants: true })
|
|
7330
|
-
], PostBanner.prototype, "onCloseButtonClick", null);
|
|
7331
7238
|
|
|
7332
7239
|
const VARIANTS = ['listitem', 'menuitem'];
|
|
7333
7240
|
|
|
7334
|
-
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)}`;
|
|
7241
|
+
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}`;
|
|
7335
7242
|
|
|
7336
7243
|
var __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
7337
7244
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -7344,60 +7251,252 @@ var __decorate$v = (undefined && undefined.__decorate) || function (decorators,
|
|
|
7344
7251
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7345
7252
|
};
|
|
7346
7253
|
/**
|
|
7347
|
-
* @slot default - The content displayed inside the breadcrumb item.
|
|
7254
|
+
* @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.
|
|
7255
|
+
*/
|
|
7256
|
+
class PostBreadcrumbItem {
|
|
7257
|
+
constructor(hostRef) {
|
|
7258
|
+
registerInstance(this, hostRef);
|
|
7259
|
+
/**
|
|
7260
|
+
* 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.
|
|
7261
|
+
*/
|
|
7262
|
+
this.hasSlottedAnchor = false;
|
|
7263
|
+
/**
|
|
7264
|
+
* Controls how the item is rendered, either as a standard list item or within an overflow menu.
|
|
7265
|
+
*/
|
|
7266
|
+
this.variant = 'listitem';
|
|
7267
|
+
/**
|
|
7268
|
+
* Indicates that the item represents the current page, applying appropriate styling.
|
|
7269
|
+
*/
|
|
7270
|
+
this.selected = false;
|
|
7271
|
+
/**
|
|
7272
|
+
* Indicates that this is the only visible item, applying appropriate styling.
|
|
7273
|
+
*/
|
|
7274
|
+
this.standalone = false;
|
|
7275
|
+
}
|
|
7276
|
+
componentWillLoad() {
|
|
7277
|
+
this.checkSlottedAnchor();
|
|
7278
|
+
}
|
|
7279
|
+
checkSlottedAnchor() {
|
|
7280
|
+
this.hasSlottedAnchor = Array.from(this.host.children).some(child => child.tagName === 'A');
|
|
7281
|
+
}
|
|
7282
|
+
renderContent() {
|
|
7283
|
+
const slot = hAsync("slot", { onSlotchange: () => this.checkSlottedAnchor() });
|
|
7284
|
+
const href = this.url instanceof URL ? this.url.href : this.url;
|
|
7285
|
+
if (this.hasSlottedAnchor) {
|
|
7286
|
+
return slot;
|
|
7287
|
+
}
|
|
7288
|
+
else if (!href) {
|
|
7289
|
+
return hAsync("span", null, slot);
|
|
7290
|
+
}
|
|
7291
|
+
else {
|
|
7292
|
+
return (hAsync("a", { href: href, "aria-current": this.selected ? 'page' : undefined, "aria-label": this.label, "aria-description": this.description }, slot));
|
|
7293
|
+
}
|
|
7294
|
+
}
|
|
7295
|
+
render() {
|
|
7296
|
+
const content = this.renderContent();
|
|
7297
|
+
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)));
|
|
7298
|
+
}
|
|
7299
|
+
get host() { return getElement(this); }
|
|
7300
|
+
static get style() { return postBreadcrumbItemCss(); }
|
|
7301
|
+
static get cmpMeta() { return {
|
|
7302
|
+
"$flags$": 265,
|
|
7303
|
+
"$tagName$": "post-breadcrumb-item",
|
|
7304
|
+
"$members$": {
|
|
7305
|
+
"url": [513],
|
|
7306
|
+
"label": [513],
|
|
7307
|
+
"description": [513],
|
|
7308
|
+
"variant": [513],
|
|
7309
|
+
"selected": [516],
|
|
7310
|
+
"standalone": [516],
|
|
7311
|
+
"hasSlottedAnchor": [32]
|
|
7312
|
+
},
|
|
7313
|
+
"$listeners$": undefined,
|
|
7314
|
+
"$lazyBundleId$": "-",
|
|
7315
|
+
"$attrsToReflect$": [["url", "url"], ["label", "label"], ["description", "description"], ["variant", "variant"], ["selected", "selected"], ["standalone", "standalone"]]
|
|
7316
|
+
}; }
|
|
7317
|
+
}
|
|
7318
|
+
__decorate$v([
|
|
7319
|
+
Url()
|
|
7320
|
+
], PostBreadcrumbItem.prototype, "url", void 0);
|
|
7321
|
+
__decorate$v([
|
|
7322
|
+
Type('string')
|
|
7323
|
+
], PostBreadcrumbItem.prototype, "label", void 0);
|
|
7324
|
+
__decorate$v([
|
|
7325
|
+
Type('string')
|
|
7326
|
+
], PostBreadcrumbItem.prototype, "description", void 0);
|
|
7327
|
+
__decorate$v([
|
|
7328
|
+
OneOf(VARIANTS)
|
|
7329
|
+
], PostBreadcrumbItem.prototype, "variant", void 0);
|
|
7330
|
+
__decorate$v([
|
|
7331
|
+
Required(),
|
|
7332
|
+
Type('boolean')
|
|
7333
|
+
], PostBreadcrumbItem.prototype, "selected", void 0);
|
|
7334
|
+
__decorate$v([
|
|
7335
|
+
Required(),
|
|
7336
|
+
Type('boolean')
|
|
7337
|
+
], PostBreadcrumbItem.prototype, "standalone", void 0);
|
|
7338
|
+
|
|
7339
|
+
/* eslint-disable no-undefined,no-param-reassign,no-shadow */
|
|
7340
|
+
|
|
7341
|
+
/**
|
|
7342
|
+
* Throttle execution of a function. Especially useful for rate limiting
|
|
7343
|
+
* execution of handlers on events like resize and scroll.
|
|
7344
|
+
*
|
|
7345
|
+
* @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)
|
|
7346
|
+
* are most useful.
|
|
7347
|
+
* @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,
|
|
7348
|
+
* as-is, to `callback` when the throttled-function is executed.
|
|
7349
|
+
* @param {object} [options] - An object to configure options.
|
|
7350
|
+
* @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds
|
|
7351
|
+
* while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed
|
|
7352
|
+
* one final time after the last throttled-function call. (After the throttled-function has not been called for
|
|
7353
|
+
* `delay` milliseconds, the internal counter is reset).
|
|
7354
|
+
* @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback
|
|
7355
|
+
* immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that
|
|
7356
|
+
* callback will never executed if both noLeading = true and noTrailing = true.
|
|
7357
|
+
* @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is
|
|
7358
|
+
* false (at end), schedule `callback` to execute after `delay` ms.
|
|
7359
|
+
*
|
|
7360
|
+
* @returns {Function} A new, throttled, function.
|
|
7361
|
+
*/
|
|
7362
|
+
function throttle (delay, callback, options) {
|
|
7363
|
+
var _ref = options || {},
|
|
7364
|
+
_ref$noTrailing = _ref.noTrailing,
|
|
7365
|
+
noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing,
|
|
7366
|
+
_ref$noLeading = _ref.noLeading,
|
|
7367
|
+
noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading,
|
|
7368
|
+
_ref$debounceMode = _ref.debounceMode,
|
|
7369
|
+
debounceMode = _ref$debounceMode === void 0 ? undefined : _ref$debounceMode;
|
|
7370
|
+
/*
|
|
7371
|
+
* After wrapper has stopped being called, this timeout ensures that
|
|
7372
|
+
* `callback` is executed at the proper times in `throttle` and `end`
|
|
7373
|
+
* debounce modes.
|
|
7374
|
+
*/
|
|
7375
|
+
var timeoutID;
|
|
7376
|
+
var cancelled = false;
|
|
7377
|
+
|
|
7378
|
+
// Keep track of the last time `callback` was executed.
|
|
7379
|
+
var lastExec = 0;
|
|
7380
|
+
|
|
7381
|
+
// Function to clear existing timeout
|
|
7382
|
+
function clearExistingTimeout() {
|
|
7383
|
+
if (timeoutID) {
|
|
7384
|
+
clearTimeout(timeoutID);
|
|
7385
|
+
}
|
|
7386
|
+
}
|
|
7387
|
+
|
|
7388
|
+
// Function to cancel next exec
|
|
7389
|
+
function cancel(options) {
|
|
7390
|
+
var _ref2 = options || {},
|
|
7391
|
+
_ref2$upcomingOnly = _ref2.upcomingOnly,
|
|
7392
|
+
upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;
|
|
7393
|
+
clearExistingTimeout();
|
|
7394
|
+
cancelled = !upcomingOnly;
|
|
7395
|
+
}
|
|
7396
|
+
|
|
7397
|
+
/*
|
|
7398
|
+
* The `wrapper` function encapsulates all of the throttling / debouncing
|
|
7399
|
+
* functionality and when executed will limit the rate at which `callback`
|
|
7400
|
+
* is executed.
|
|
7401
|
+
*/
|
|
7402
|
+
function wrapper() {
|
|
7403
|
+
for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
7404
|
+
arguments_[_key] = arguments[_key];
|
|
7405
|
+
}
|
|
7406
|
+
var self = this;
|
|
7407
|
+
var elapsed = Date.now() - lastExec;
|
|
7408
|
+
if (cancelled) {
|
|
7409
|
+
return;
|
|
7410
|
+
}
|
|
7411
|
+
|
|
7412
|
+
// Execute `callback` and update the `lastExec` timestamp.
|
|
7413
|
+
function exec() {
|
|
7414
|
+
lastExec = Date.now();
|
|
7415
|
+
callback.apply(self, arguments_);
|
|
7416
|
+
}
|
|
7417
|
+
|
|
7418
|
+
/*
|
|
7419
|
+
* If `debounceMode` is true (at begin) this is used to clear the flag
|
|
7420
|
+
* to allow future `callback` executions.
|
|
7421
|
+
*/
|
|
7422
|
+
function clear() {
|
|
7423
|
+
timeoutID = undefined;
|
|
7424
|
+
}
|
|
7425
|
+
if (!noLeading && debounceMode && !timeoutID) {
|
|
7426
|
+
/*
|
|
7427
|
+
* Since `wrapper` is being called for the first time and
|
|
7428
|
+
* `debounceMode` is true (at begin), execute `callback`
|
|
7429
|
+
* and noLeading != true.
|
|
7430
|
+
*/
|
|
7431
|
+
exec();
|
|
7432
|
+
}
|
|
7433
|
+
clearExistingTimeout();
|
|
7434
|
+
if (debounceMode === undefined && elapsed > delay) {
|
|
7435
|
+
if (noLeading) {
|
|
7436
|
+
/*
|
|
7437
|
+
* In throttle mode with noLeading, if `delay` time has
|
|
7438
|
+
* been exceeded, update `lastExec` and schedule `callback`
|
|
7439
|
+
* to execute after `delay` ms.
|
|
7440
|
+
*/
|
|
7441
|
+
lastExec = Date.now();
|
|
7442
|
+
if (!noTrailing) {
|
|
7443
|
+
timeoutID = setTimeout(debounceMode ? clear : exec, delay);
|
|
7444
|
+
}
|
|
7445
|
+
} else {
|
|
7446
|
+
/*
|
|
7447
|
+
* In throttle mode without noLeading, if `delay` time has been exceeded, execute
|
|
7448
|
+
* `callback`.
|
|
7449
|
+
*/
|
|
7450
|
+
exec();
|
|
7451
|
+
}
|
|
7452
|
+
} else if (noTrailing !== true) {
|
|
7453
|
+
/*
|
|
7454
|
+
* In trailing throttle mode, since `delay` time has not been
|
|
7455
|
+
* exceeded, schedule `callback` to execute `delay` ms after most
|
|
7456
|
+
* recent execution.
|
|
7457
|
+
*
|
|
7458
|
+
* If `debounceMode` is true (at begin), schedule `clear` to execute
|
|
7459
|
+
* after `delay` ms.
|
|
7460
|
+
*
|
|
7461
|
+
* If `debounceMode` is false (at end), schedule `callback` to
|
|
7462
|
+
* execute after `delay` ms.
|
|
7463
|
+
*/
|
|
7464
|
+
timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);
|
|
7465
|
+
}
|
|
7466
|
+
}
|
|
7467
|
+
wrapper.cancel = cancel;
|
|
7468
|
+
|
|
7469
|
+
// Return the wrapper function.
|
|
7470
|
+
return wrapper;
|
|
7471
|
+
}
|
|
7472
|
+
|
|
7473
|
+
/* eslint-disable no-undefined */
|
|
7474
|
+
|
|
7475
|
+
/**
|
|
7476
|
+
* Debounce execution of a function. Debouncing, unlike throttling,
|
|
7477
|
+
* guarantees that a function is only executed a single time, either at the
|
|
7478
|
+
* very beginning of a series of calls, or at the very end.
|
|
7479
|
+
*
|
|
7480
|
+
* @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.
|
|
7481
|
+
* @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,
|
|
7482
|
+
* to `callback` when the debounced-function is executed.
|
|
7483
|
+
* @param {object} [options] - An object to configure options.
|
|
7484
|
+
* @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds
|
|
7485
|
+
* after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.
|
|
7486
|
+
* (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).
|
|
7487
|
+
*
|
|
7488
|
+
* @returns {Function} A new, debounced function.
|
|
7348
7489
|
*/
|
|
7349
|
-
|
|
7350
|
-
|
|
7351
|
-
|
|
7352
|
-
|
|
7353
|
-
|
|
7354
|
-
|
|
7355
|
-
|
|
7356
|
-
/**
|
|
7357
|
-
* Indicates that the item represents the current page, applying appropriate styling.
|
|
7358
|
-
*/
|
|
7359
|
-
this.selected = false;
|
|
7360
|
-
}
|
|
7361
|
-
render() {
|
|
7362
|
-
const href = this.url instanceof URL ? this.url.href : this.url;
|
|
7363
|
-
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)));
|
|
7364
|
-
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)));
|
|
7365
|
-
}
|
|
7366
|
-
get host() { return getElement(this); }
|
|
7367
|
-
static get style() { return postBreadcrumbItemCss(); }
|
|
7368
|
-
static get cmpMeta() { return {
|
|
7369
|
-
"$flags$": 265,
|
|
7370
|
-
"$tagName$": "post-breadcrumb-item",
|
|
7371
|
-
"$members$": {
|
|
7372
|
-
"url": [513],
|
|
7373
|
-
"label": [513],
|
|
7374
|
-
"description": [513],
|
|
7375
|
-
"variant": [513],
|
|
7376
|
-
"selected": [516]
|
|
7377
|
-
},
|
|
7378
|
-
"$listeners$": undefined,
|
|
7379
|
-
"$lazyBundleId$": "-",
|
|
7380
|
-
"$attrsToReflect$": [["url", "url"], ["label", "label"], ["description", "description"], ["variant", "variant"], ["selected", "selected"]]
|
|
7381
|
-
}; }
|
|
7490
|
+
function debounce (delay, callback, options) {
|
|
7491
|
+
var _ref = {},
|
|
7492
|
+
_ref$atBegin = _ref.atBegin,
|
|
7493
|
+
atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin;
|
|
7494
|
+
return throttle(delay, callback, {
|
|
7495
|
+
debounceMode: atBegin !== false
|
|
7496
|
+
});
|
|
7382
7497
|
}
|
|
7383
|
-
__decorate$v([
|
|
7384
|
-
Url()
|
|
7385
|
-
], PostBreadcrumbItem.prototype, "url", void 0);
|
|
7386
|
-
__decorate$v([
|
|
7387
|
-
Type('string')
|
|
7388
|
-
], PostBreadcrumbItem.prototype, "label", void 0);
|
|
7389
|
-
__decorate$v([
|
|
7390
|
-
Type('string')
|
|
7391
|
-
], PostBreadcrumbItem.prototype, "description", void 0);
|
|
7392
|
-
__decorate$v([
|
|
7393
|
-
OneOf(VARIANTS)
|
|
7394
|
-
], PostBreadcrumbItem.prototype, "variant", void 0);
|
|
7395
|
-
__decorate$v([
|
|
7396
|
-
Required(),
|
|
7397
|
-
Type('boolean')
|
|
7398
|
-
], PostBreadcrumbItem.prototype, "selected", void 0);
|
|
7399
7498
|
|
|
7400
|
-
const postBreadcrumbsCss = () => `:host{display:block;position:relative}nav{max-width:100%}nav.invisible{
|
|
7499
|
+
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}`;
|
|
7401
7500
|
|
|
7402
7501
|
var __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
7403
7502
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -7409,92 +7508,241 @@ var __decorate$u = (undefined && undefined.__decorate) || function (decorators,
|
|
|
7409
7508
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
7410
7509
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7411
7510
|
};
|
|
7511
|
+
const MAX_VISIBLE_ITEMS = 6;
|
|
7512
|
+
const MEASUREMENT_DEBOUNCE_MS$1 = 50;
|
|
7513
|
+
/**
|
|
7514
|
+
* @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.
|
|
7515
|
+
*/
|
|
7412
7516
|
class PostBreadcrumbs {
|
|
7413
7517
|
constructor(hostRef) {
|
|
7414
7518
|
registerInstance(this, hostRef);
|
|
7415
|
-
this.
|
|
7519
|
+
this.debounceUpdateCollapsedItems = throttle(MEASUREMENT_DEBOUNCE_MS$1, this.updateCollapsedItems.bind(this));
|
|
7520
|
+
this.resizeObserver = new ResizeObserver(this.debounceUpdateCollapsedItems);
|
|
7521
|
+
this.mutationObserver = new MutationObserver(() => {
|
|
7522
|
+
void this.updateAfterMutation();
|
|
7523
|
+
});
|
|
7524
|
+
this.loaded = false;
|
|
7525
|
+
/** 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. */
|
|
7526
|
+
this.hasSlottedHomeAnchor = false;
|
|
7527
|
+
/** Whether the slotted home anchor contains a post-icon. */
|
|
7528
|
+
this.hasSlottedHomeIcon = false;
|
|
7529
|
+
/** The number of breadcrumb items, counted from the start, moved into the overflow menu. */
|
|
7530
|
+
this.collapsed = 0;
|
|
7531
|
+
/** Whether the home item is collapsed into its own overflow menu. */
|
|
7532
|
+
this.homeCollapsed = false;
|
|
7533
|
+
/** Whether the last (selected) item wraps onto multiple lines. */
|
|
7534
|
+
this.lastItemWraps = false;
|
|
7535
|
+
/** The visible breadcrumb navigation. */
|
|
7536
|
+
this.nav = null;
|
|
7537
|
+
/** An off-screen copy of the breadcrumb navigation used for measurement. */
|
|
7538
|
+
this.hiddenNav = null;
|
|
7539
|
+
/**
|
|
7540
|
+
* Whether `text-home` content is displayed instead of the home icon, enabling segment specific
|
|
7541
|
+
* breadcrumbs (like "Private customers" or "About us").
|
|
7542
|
+
*/
|
|
7543
|
+
this.homeTextOnly = false;
|
|
7416
7544
|
}
|
|
7417
7545
|
componentWillLoad() {
|
|
7418
7546
|
this.id = this.host.id || `b${nanoid(6)}`;
|
|
7547
|
+
this.checkSlottedHomeAnchor();
|
|
7419
7548
|
}
|
|
7420
|
-
componentDidLoad() {
|
|
7421
|
-
this.
|
|
7422
|
-
this.
|
|
7423
|
-
}
|
|
7424
|
-
disconnectedCallback() {
|
|
7425
|
-
this.mutationObserver?.disconnect();
|
|
7426
|
-
this.resizeObserver?.disconnect();
|
|
7427
|
-
}
|
|
7428
|
-
createMutationObserver() {
|
|
7429
|
-
this.mutationObserver = new MutationObserver(this.duplicateNavElement.bind(this));
|
|
7430
|
-
this.mutationObserver.observe(this.host, {
|
|
7549
|
+
async componentDidLoad() {
|
|
7550
|
+
this.resizeObserver?.observe(document.body);
|
|
7551
|
+
this.mutationObserver?.observe(this.host, {
|
|
7431
7552
|
childList: true,
|
|
7432
7553
|
characterData: true,
|
|
7433
7554
|
subtree: true,
|
|
7434
7555
|
});
|
|
7435
|
-
this.
|
|
7556
|
+
await this.updateHiddenNav();
|
|
7557
|
+
await this.updateCollapsedItems();
|
|
7558
|
+
this.loaded = true;
|
|
7436
7559
|
}
|
|
7437
|
-
|
|
7438
|
-
this.resizeObserver
|
|
7439
|
-
this.
|
|
7560
|
+
disconnectedCallback() {
|
|
7561
|
+
this.resizeObserver?.disconnect();
|
|
7562
|
+
this.mutationObserver?.disconnect();
|
|
7563
|
+
this.debounceUpdateCollapsedItems.cancel();
|
|
7440
7564
|
}
|
|
7441
|
-
|
|
7442
|
-
|
|
7443
|
-
|
|
7444
|
-
|
|
7445
|
-
|
|
7446
|
-
const nav = shadowRoot?.querySelector('nav');
|
|
7447
|
-
if (!shadowRoot || !nav)
|
|
7448
|
-
return;
|
|
7449
|
-
this.prepareBreadcrumbItemsForClone();
|
|
7450
|
-
const clone = nav.cloneNode(true);
|
|
7451
|
-
clone.classList.add('invisible');
|
|
7452
|
-
shadowRoot.querySelector('nav.invisible')?.remove();
|
|
7453
|
-
shadowRoot.append(clone);
|
|
7454
|
-
requestAnimationFrame(() => {
|
|
7455
|
-
this.duplicateSlottedElements(clone, 'slot:not([name])');
|
|
7456
|
-
this.duplicateSlottedElements(clone, 'slot[name="selected"]');
|
|
7457
|
-
this.checkOverflow();
|
|
7458
|
-
});
|
|
7565
|
+
checkSlottedHomeAnchor() {
|
|
7566
|
+
const homeSlotElement = Array.from(this.host.children).find(child => child.getAttribute('slot') === 'home');
|
|
7567
|
+
this.hasSlottedHomeAnchor = homeSlotElement?.tagName === 'A';
|
|
7568
|
+
this.hasSlottedHomeIcon =
|
|
7569
|
+
this.hasSlottedHomeAnchor && !!homeSlotElement?.querySelector('post-icon');
|
|
7459
7570
|
}
|
|
7460
|
-
|
|
7461
|
-
|
|
7462
|
-
const clonedSlot = clone.querySelector(slotSelector);
|
|
7463
|
-
if (!originalSlot || !clonedSlot)
|
|
7464
|
-
return;
|
|
7465
|
-
originalSlot.assignedElements().forEach(element => {
|
|
7466
|
-
clonedSlot.insertAdjacentElement('beforebegin', element.cloneNode(true));
|
|
7467
|
-
});
|
|
7468
|
-
clonedSlot.remove();
|
|
7571
|
+
get usesHomeText() {
|
|
7572
|
+
return this.hasSlottedHomeAnchor ? !this.hasSlottedHomeIcon : this.homeTextOnly;
|
|
7469
7573
|
}
|
|
7470
|
-
|
|
7471
|
-
|
|
7472
|
-
|
|
7574
|
+
// Degrade order: collapse middle items -> collapse home -> wrap the last item.
|
|
7575
|
+
/** Measures the available space and updates all three degrade-stage states. */
|
|
7576
|
+
async updateCollapsedItems() {
|
|
7577
|
+
if (!this.nav)
|
|
7473
7578
|
return;
|
|
7474
|
-
const
|
|
7475
|
-
|
|
7476
|
-
|
|
7477
|
-
|
|
7478
|
-
|
|
7579
|
+
const { overflowing, homeOverflows, lastItemWraps } = await this.calculateCollapsedItems();
|
|
7580
|
+
this.collapsed = overflowing;
|
|
7581
|
+
this.homeCollapsed = homeOverflows;
|
|
7582
|
+
this.lastItemWraps = lastItemWraps;
|
|
7583
|
+
}
|
|
7584
|
+
async calculateCollapsedItems() {
|
|
7585
|
+
const items = this.host.querySelectorAll('post-breadcrumb-item');
|
|
7586
|
+
const { overflowing, homeOverflows, lastItemWraps } = await this.calculateOverflowingItems();
|
|
7587
|
+
// Never show more than `MAX_VISIBLE_ITEMS`, even if the nav is wide enough to fit them all.
|
|
7588
|
+
return {
|
|
7589
|
+
overflowing: Math.max(overflowing, items.length - MAX_VISIBLE_ITEMS),
|
|
7590
|
+
homeOverflows,
|
|
7591
|
+
lastItemWraps,
|
|
7592
|
+
};
|
|
7593
|
+
}
|
|
7594
|
+
/** Runs the three degrade stages in order against the off-screen measurement clone. */
|
|
7595
|
+
async calculateOverflowingItems() {
|
|
7596
|
+
if (!this.hiddenNav)
|
|
7597
|
+
return { overflowing: 0, homeOverflows: false, lastItemWraps: false };
|
|
7598
|
+
const nav = this.hiddenNav;
|
|
7599
|
+
const availableWidth = nav.clientWidth;
|
|
7600
|
+
const gap = Number.parseFloat(getComputedStyle(nav.firstElementChild).gap);
|
|
7601
|
+
const menuWidth = nav.querySelector('.menu')?.clientWidth ?? 0;
|
|
7602
|
+
const homeWidth = nav.querySelector('.home')?.clientWidth ?? 0;
|
|
7603
|
+
// Stage 1: collapse middle items, starting closest to home, until the rest fits.
|
|
7604
|
+
const middleItems = Array.from(nav.querySelectorAll('post-breadcrumb-item')).slice(0, -1);
|
|
7605
|
+
const { overflowing, remainingWidth } = this.collapseMiddleItems(middleItems, gap, menuWidth, availableWidth);
|
|
7606
|
+
// Stage 2: home + last item, single-line. Text home can collapse into the menu, while the
|
|
7607
|
+
// icon-only home remains visible and lets the last item wrap instead.
|
|
7608
|
+
const homeOverflows = this.usesHomeText && remainingWidth > availableWidth;
|
|
7609
|
+
// Stage 3: home joins the existing menu when middle items have collapsed. If no middle item
|
|
7610
|
+
// collapsed, the menu needs to be added when home moves into it.
|
|
7611
|
+
const widthWithHomeCollapsed = remainingWidth - homeWidth + (overflowing === 0 ? menuWidth : 0);
|
|
7612
|
+
const lastItemWraps = this.usesHomeText
|
|
7613
|
+
? homeOverflows && widthWithHomeCollapsed > availableWidth
|
|
7614
|
+
: remainingWidth > availableWidth;
|
|
7615
|
+
return { overflowing, homeOverflows, lastItemWraps };
|
|
7616
|
+
}
|
|
7617
|
+
/** Stage 1: collapses middle items until the rest fits, or none are left. */
|
|
7618
|
+
collapseMiddleItems(items, gap, menuWidth, availableWidth) {
|
|
7619
|
+
// Start from the assumption that all items fit and that no menu is shown, so subtract the
|
|
7620
|
+
// overflow menu's width from the total.
|
|
7621
|
+
let width = this.hiddenNav.scrollWidth - menuWidth + gap;
|
|
7622
|
+
let overflowing = 0;
|
|
7623
|
+
while (overflowing < items.length && width > availableWidth) {
|
|
7624
|
+
// The overflow menu needs to be displayed as soon as the first item is moved into it, so its
|
|
7625
|
+
// width needs to be taken into account when measuring the remaining items.
|
|
7626
|
+
if (overflowing === 0)
|
|
7627
|
+
width += menuWidth;
|
|
7628
|
+
width -= items[overflowing++].clientWidth + gap;
|
|
7629
|
+
}
|
|
7630
|
+
return { overflowing, remainingWidth: width };
|
|
7631
|
+
}
|
|
7632
|
+
/** Applies the degrade states to the `<post-breadcrumb-item>` elements. */
|
|
7633
|
+
updateItems(items, collapsed, lastItemWraps) {
|
|
7634
|
+
items.forEach((item, index) => {
|
|
7635
|
+
const isLast = index === items.length - 1;
|
|
7636
|
+
item.setAttribute('variant', index < collapsed ? 'menuitem' : 'listitem');
|
|
7637
|
+
item.setAttribute('selected', String(isLast));
|
|
7638
|
+
item.setAttribute('standalone', String(isLast && index === collapsed && lastItemWraps));
|
|
7479
7639
|
});
|
|
7480
7640
|
}
|
|
7481
|
-
|
|
7482
|
-
|
|
7483
|
-
this.
|
|
7641
|
+
/** Rebuilds the off-screen copy of the breadcrumb navigation. */
|
|
7642
|
+
async updateHiddenNav() {
|
|
7643
|
+
this.hiddenNav?.remove();
|
|
7644
|
+
this.hiddenNav = await this.renderHiddenNav();
|
|
7484
7645
|
}
|
|
7485
|
-
|
|
7486
|
-
|
|
7487
|
-
|
|
7488
|
-
|
|
7489
|
-
|
|
7646
|
+
async updateAfterMutation() {
|
|
7647
|
+
await this.updateHiddenNav();
|
|
7648
|
+
await this.updateCollapsedItems();
|
|
7649
|
+
}
|
|
7650
|
+
/**
|
|
7651
|
+
* Renders an off-screen copy of the nav for measurements. `.home` is rebuilt independently (see
|
|
7652
|
+
* `buildMeasurementHomeElement`) rather than cloned, since the live nav may show the home item
|
|
7653
|
+
* in the overflow menu instead if it is already collapsed.
|
|
7654
|
+
*/
|
|
7655
|
+
async renderHiddenNav() {
|
|
7656
|
+
const shadowRoot = this.host.shadowRoot;
|
|
7657
|
+
if (!shadowRoot || !this.nav)
|
|
7658
|
+
return null;
|
|
7659
|
+
const clone = this.nav.cloneNode(true);
|
|
7660
|
+
const slots = clone.querySelectorAll('slot');
|
|
7661
|
+
// Deep clone the breadcrumb navigation and flatten its slots into the clone.
|
|
7662
|
+
this.nav.querySelectorAll('slot').forEach((source, index) => {
|
|
7663
|
+
const target = slots[index];
|
|
7664
|
+
const assignedElements = source.assignedElements();
|
|
7665
|
+
if (assignedElements.length > 0) {
|
|
7666
|
+
// Insert the assigned elements where the slot used to be, then drop the now empty slot.
|
|
7667
|
+
assignedElements.forEach(element => {
|
|
7668
|
+
target.insertAdjacentElement('beforebegin', element.cloneNode(true));
|
|
7669
|
+
});
|
|
7670
|
+
target.remove();
|
|
7671
|
+
}
|
|
7672
|
+
else {
|
|
7673
|
+
// Nothing assigned: keep the slot's own fallback content (e.g. the default home link) by
|
|
7674
|
+
// unwrap the <slot> in place, move its children to where it was, then remove it.
|
|
7675
|
+
const parent = target.parentNode;
|
|
7676
|
+
if (parent) {
|
|
7677
|
+
Array.from(target.childNodes).forEach(child => parent.insertBefore(child, target));
|
|
7678
|
+
target.remove();
|
|
7679
|
+
}
|
|
7680
|
+
}
|
|
7490
7681
|
});
|
|
7682
|
+
// Always measure the full, uncollapsed home item — see the method doc above. Uses
|
|
7683
|
+
// replaceChild rather than replaceWith, since the latter isn't implemented by Stencil's
|
|
7684
|
+
// mock-doc DOM used during SSR/hydration.
|
|
7685
|
+
const existingHome = clone.querySelector('.home');
|
|
7686
|
+
existingHome?.parentNode?.replaceChild(this.buildMeasurementHomeElement(), existingHome);
|
|
7687
|
+
clone.classList.remove('loading');
|
|
7688
|
+
clone.classList.add('invisible');
|
|
7689
|
+
// Show the overflow menu so that we can include the space it takes up in the measurement.
|
|
7690
|
+
clone.querySelector('.menu').classList.remove('empty');
|
|
7691
|
+
shadowRoot.append(clone);
|
|
7692
|
+
// Wait for all items to be fully hydrated before measuring.
|
|
7693
|
+
const items = clone.querySelectorAll('post-breadcrumb-item');
|
|
7694
|
+
await Promise.all(Array.from(items).map(item => componentOnReady(item)));
|
|
7695
|
+
// Uncollapsed layout, both single-line, for measurement.
|
|
7696
|
+
this.updateItems(items, 0, false);
|
|
7697
|
+
return clone;
|
|
7698
|
+
}
|
|
7699
|
+
/** Builds `.home` in its full, uncollapsed form for measurement. Mirrors `renderHomeContent`, but as plain DOM since this runs outside the render cycle. */
|
|
7700
|
+
buildMeasurementHomeElement() {
|
|
7701
|
+
const home = document.createElement('div');
|
|
7702
|
+
home.className = `breadcrumb-item home${this.usesHomeText ? '' : ' icon'}`;
|
|
7703
|
+
home.setAttribute('role', 'listitem');
|
|
7704
|
+
const slottedAnchor = this.hasSlottedHomeAnchor
|
|
7705
|
+
? Array.from(this.host.children).find(child => child.getAttribute('slot') === 'home')
|
|
7706
|
+
: null;
|
|
7707
|
+
if (slottedAnchor) {
|
|
7708
|
+
home.append(slottedAnchor.cloneNode(true));
|
|
7709
|
+
return home;
|
|
7710
|
+
}
|
|
7711
|
+
const anchor = document.createElement('a');
|
|
7712
|
+
if (this.homeUrl)
|
|
7713
|
+
anchor.href = this.homeUrl;
|
|
7714
|
+
const label = document.createElement('span');
|
|
7715
|
+
if (!this.usesHomeText)
|
|
7716
|
+
label.className = 'visually-hidden';
|
|
7717
|
+
label.textContent = this.textHome;
|
|
7718
|
+
anchor.append(label);
|
|
7719
|
+
if (!this.usesHomeText) {
|
|
7720
|
+
const icon = document.createElement('post-icon');
|
|
7721
|
+
icon.setAttribute('aria-hidden', 'true');
|
|
7722
|
+
icon.setAttribute('name', 'home');
|
|
7723
|
+
anchor.append(icon);
|
|
7724
|
+
}
|
|
7725
|
+
home.append(anchor);
|
|
7726
|
+
return home;
|
|
7491
7727
|
}
|
|
7492
7728
|
renderMenu() {
|
|
7493
7729
|
const menuId = `${this.id}-menu`;
|
|
7494
|
-
return (hAsync("div", {
|
|
7730
|
+
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" }))));
|
|
7731
|
+
}
|
|
7732
|
+
/** Reused by the plain home item and the home menu — a slot can only be assigned once. */
|
|
7733
|
+
renderHomeContent() {
|
|
7734
|
+
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" }))));
|
|
7735
|
+
}
|
|
7736
|
+
/** Degrade stage 2: home renders in full, single-line, not yet collapsed. */
|
|
7737
|
+
renderHome() {
|
|
7738
|
+
return (hAsync("div", { class: `breadcrumb-item home${this.usesHomeText ? '' : ' icon'}`, role: "listitem" }, this.renderHomeContent()));
|
|
7495
7739
|
}
|
|
7496
7740
|
render() {
|
|
7497
|
-
|
|
7741
|
+
if (this.loaded) {
|
|
7742
|
+
const items = this.host.querySelectorAll('post-breadcrumb-item');
|
|
7743
|
+
this.updateItems(items, this.collapsed, this.lastItemWraps);
|
|
7744
|
+
}
|
|
7745
|
+
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" })))));
|
|
7498
7746
|
}
|
|
7499
7747
|
get host() { return getElement(this); }
|
|
7500
7748
|
static get style() { return postBreadcrumbsCss(); }
|
|
@@ -7504,24 +7752,34 @@ class PostBreadcrumbs {
|
|
|
7504
7752
|
"$members$": {
|
|
7505
7753
|
"homeUrl": [513, "home-url"],
|
|
7506
7754
|
"textHome": [513, "text-home"],
|
|
7755
|
+
"homeTextOnly": [516, "home-text-only"],
|
|
7507
7756
|
"textBreadcrumbs": [513, "text-breadcrumbs"],
|
|
7508
7757
|
"textMoreItems": [513, "text-more-items"],
|
|
7509
|
-
"
|
|
7510
|
-
"
|
|
7758
|
+
"id": [32],
|
|
7759
|
+
"loaded": [32],
|
|
7760
|
+
"hasSlottedHomeAnchor": [32],
|
|
7761
|
+
"hasSlottedHomeIcon": [32],
|
|
7762
|
+
"collapsed": [32],
|
|
7763
|
+
"homeCollapsed": [32],
|
|
7764
|
+
"lastItemWraps": [32]
|
|
7511
7765
|
},
|
|
7512
7766
|
"$listeners$": undefined,
|
|
7513
7767
|
"$lazyBundleId$": "-",
|
|
7514
|
-
"$attrsToReflect$": [["homeUrl", "home-url"], ["textHome", "text-home"], ["textBreadcrumbs", "text-breadcrumbs"], ["textMoreItems", "text-more-items"]]
|
|
7768
|
+
"$attrsToReflect$": [["homeUrl", "home-url"], ["textHome", "text-home"], ["homeTextOnly", "home-text-only"], ["textBreadcrumbs", "text-breadcrumbs"], ["textMoreItems", "text-more-items"]]
|
|
7515
7769
|
}; }
|
|
7516
7770
|
}
|
|
7517
7771
|
__decorate$u([
|
|
7518
|
-
Required(),
|
|
7772
|
+
Required({ when: 'hasSlottedHomeAnchor', truthy: false }),
|
|
7519
7773
|
Url()
|
|
7520
7774
|
], PostBreadcrumbs.prototype, "homeUrl", void 0);
|
|
7521
7775
|
__decorate$u([
|
|
7522
|
-
Required(),
|
|
7776
|
+
Required({ when: 'hasSlottedHomeAnchor', truthy: false }),
|
|
7523
7777
|
Type('string')
|
|
7524
7778
|
], PostBreadcrumbs.prototype, "textHome", void 0);
|
|
7779
|
+
__decorate$u([
|
|
7780
|
+
Required(),
|
|
7781
|
+
Type('boolean')
|
|
7782
|
+
], PostBreadcrumbs.prototype, "homeTextOnly", void 0);
|
|
7525
7783
|
__decorate$u([
|
|
7526
7784
|
Required(),
|
|
7527
7785
|
Type('string')
|
|
@@ -7562,7 +7820,7 @@ class PostClosebutton {
|
|
|
7562
7820
|
}
|
|
7563
7821
|
/**
|
|
7564
7822
|
* The "type" attribute used for the close button
|
|
7565
|
-
|
|
7823
|
+
|
|
7566
7824
|
*/
|
|
7567
7825
|
this.buttonType = 'button';
|
|
7568
7826
|
/**
|
|
@@ -7573,6 +7831,10 @@ class PostClosebutton {
|
|
|
7573
7831
|
* The size of the close button.
|
|
7574
7832
|
*/
|
|
7575
7833
|
this.size = 'default';
|
|
7834
|
+
this.handleClick = () => {
|
|
7835
|
+
const target = findClosableTarget(this.host);
|
|
7836
|
+
target?.close();
|
|
7837
|
+
};
|
|
7576
7838
|
}
|
|
7577
7839
|
componentDidLoad() {
|
|
7578
7840
|
if (globalThis.MutationObserver) {
|
|
@@ -7597,13 +7859,8 @@ class PostClosebutton {
|
|
|
7597
7859
|
console.error(`The \`${this.host.localName}\` component requires content for accessibility.`);
|
|
7598
7860
|
}
|
|
7599
7861
|
}
|
|
7600
|
-
handleClick() {
|
|
7601
|
-
if (this.buttonType === 'reset')
|
|
7602
|
-
this.internals.form?.reset();
|
|
7603
|
-
this.host.closest('dialog')?.close();
|
|
7604
|
-
}
|
|
7605
7862
|
render() {
|
|
7606
|
-
return (hAsync(Host, { key: '
|
|
7863
|
+
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' })))));
|
|
7607
7864
|
}
|
|
7608
7865
|
static get formAssociated() { return true; }
|
|
7609
7866
|
get host() { return getElement(this); }
|
|
@@ -7699,7 +7956,7 @@ class PostCollapsible {
|
|
|
7699
7956
|
triggers.forEach(trigger => trigger.update());
|
|
7700
7957
|
}
|
|
7701
7958
|
render() {
|
|
7702
|
-
return (hAsync(Host, { key: '
|
|
7959
|
+
return (hAsync(Host, { key: '243dad696871a08bc07325d4511f5baeb937c194', "data-version": version$1, tabindex: this.collapsed ? -1 : undefined, style: this.collapsed ? collapsedKeyframe : undefined }, hAsync("slot", { key: '5f4f8a9bb698f6558b114c760e5eeb355ac35b80' })));
|
|
7703
7960
|
}
|
|
7704
7961
|
get host() { return getElement(this); }
|
|
7705
7962
|
static get style() { return postCollapsibleCss(); }
|
|
@@ -7778,7 +8035,7 @@ class PostCollapsibleTrigger {
|
|
|
7778
8035
|
if (!this.trigger || !collapsible)
|
|
7779
8036
|
return;
|
|
7780
8037
|
// a nested collapsible may have no id, but aria-controls needs one to reference
|
|
7781
|
-
collapsible.id
|
|
8038
|
+
collapsible.id ||= `collapsible-${crypto.randomUUID()}`;
|
|
7782
8039
|
const collapsibleId = collapsible.id;
|
|
7783
8040
|
// add the controlled collapsible's id to the aria-controls list
|
|
7784
8041
|
const ariaControls = this.trigger.getAttribute('aria-controls');
|
|
@@ -7825,7 +8082,7 @@ class PostCollapsibleTrigger {
|
|
|
7825
8082
|
this.updateAriaAttributes();
|
|
7826
8083
|
}
|
|
7827
8084
|
render() {
|
|
7828
|
-
return (hAsync(Host, { key: '
|
|
8085
|
+
return (hAsync(Host, { key: '4d28c7068acd2e1b4a5f2272bee3b51ec5d8a216', "data-version": version$1 }, hAsync("slot", { key: '0bcbb780ed6d06ef36b9129b22b4a5dcd5aa7294' })));
|
|
7829
8086
|
}
|
|
7830
8087
|
get host() { return getElement(this); }
|
|
7831
8088
|
static get cmpMeta() { return {
|
|
@@ -11450,7 +11707,7 @@ try {
|
|
|
11450
11707
|
// environments (e.g. Next.js pre-rendering) with `HTMLInputElement is not defined`.
|
|
11451
11708
|
let cachedNativeValueDescriptor;
|
|
11452
11709
|
function nativeValueDescriptor() {
|
|
11453
|
-
cachedNativeValueDescriptor
|
|
11710
|
+
cachedNativeValueDescriptor ??= Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value');
|
|
11454
11711
|
return cachedNativeValueDescriptor;
|
|
11455
11712
|
}
|
|
11456
11713
|
// iMask adapter that bypasses the instance-level `input.value` override (which returns ISO strings)
|
|
@@ -12030,6 +12287,15 @@ class PostDatePicker {
|
|
|
12030
12287
|
console.error('hide: popoverRef is null or undefined');
|
|
12031
12288
|
}
|
|
12032
12289
|
}
|
|
12290
|
+
static { this.FLYOUT_OFFSET = 4; }
|
|
12291
|
+
// Cells per row for each view
|
|
12292
|
+
static {
|
|
12293
|
+
this.COLUMNS_BY_VIEW = {
|
|
12294
|
+
days: 7,
|
|
12295
|
+
months: 4,
|
|
12296
|
+
years: 4,
|
|
12297
|
+
};
|
|
12298
|
+
}
|
|
12033
12299
|
/**
|
|
12034
12300
|
* Get the system locale (e.g.`en`, etc.) from the closest parent with a `lang` attribute,
|
|
12035
12301
|
* or fallback to a default language code if not found or in server environment.
|
|
@@ -12659,11 +12925,11 @@ class PostDatePicker {
|
|
|
12659
12925
|
}
|
|
12660
12926
|
}
|
|
12661
12927
|
render() {
|
|
12662
|
-
return (hAsync(Host, { key: '
|
|
12928
|
+
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: {
|
|
12663
12929
|
'calendar-input': !this.range,
|
|
12664
12930
|
'calendar-input-range': this.range,
|
|
12665
12931
|
'disabled': this.inputDisabled,
|
|
12666
|
-
} }, hAsync("slot", { key: '
|
|
12932
|
+
} }, 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" }))))));
|
|
12667
12933
|
}
|
|
12668
12934
|
get host() { return getElement(this); }
|
|
12669
12935
|
static get watchers() { return {
|
|
@@ -12715,13 +12981,6 @@ class PostDatePicker {
|
|
|
12715
12981
|
"$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"]]
|
|
12716
12982
|
}; }
|
|
12717
12983
|
}
|
|
12718
|
-
PostDatePicker.FLYOUT_OFFSET = 4;
|
|
12719
|
-
// Cells per row for each view
|
|
12720
|
-
PostDatePicker.COLUMNS_BY_VIEW = {
|
|
12721
|
-
days: 7,
|
|
12722
|
-
months: 4,
|
|
12723
|
-
years: 4,
|
|
12724
|
-
};
|
|
12725
12984
|
__decorate$q([
|
|
12726
12985
|
DateValue(),
|
|
12727
12986
|
IsoDate()
|
|
@@ -12846,10 +13105,10 @@ class PostFooter {
|
|
|
12846
13105
|
const allGridSlotsEmpty = GRID_SLOTS.every(slotName => !this.slotDisplayed[slotName]);
|
|
12847
13106
|
const renderMain = !allGridSlotsEmpty || renderSocialmedia || renderApp || renderBusinesssectors;
|
|
12848
13107
|
const renderBase = renderCopyright || renderMeta;
|
|
12849
|
-
return (hAsync(Host, { key: '
|
|
13108
|
+
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: {
|
|
12850
13109
|
'footer-column': true,
|
|
12851
13110
|
'd-none': !renderSocialmedia && !renderApp,
|
|
12852
|
-
} }, hAsync("div", { key: '
|
|
13111
|
+
} }, 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" })))))));
|
|
12853
13112
|
}
|
|
12854
13113
|
get host() { return getElement(this); }
|
|
12855
13114
|
static get style() { return postFooterCss(); }
|
|
@@ -13181,10 +13440,10 @@ class PostHeader {
|
|
|
13181
13440
|
}, 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" }))));
|
|
13182
13441
|
}
|
|
13183
13442
|
render() {
|
|
13184
|
-
return (hAsync(Host, { key: '
|
|
13443
|
+
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" }), [
|
|
13185
13444
|
hAsync("slot", { key: "global-nav-secondary", name: "global-nav-secondary" }),
|
|
13186
13445
|
hAsync("slot", { key: "language-menu", name: "language-menu" }),
|
|
13187
|
-
], hAsync("slot", { key: '
|
|
13446
|
+
], 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())));
|
|
13188
13447
|
}
|
|
13189
13448
|
get host() { return getElement(this); }
|
|
13190
13449
|
static get watchers() { return {
|
|
@@ -13316,7 +13575,7 @@ class PostIcon {
|
|
|
13316
13575
|
}).filter(([_key, value]) => value !== null));
|
|
13317
13576
|
}
|
|
13318
13577
|
render() {
|
|
13319
|
-
return (hAsync(Host, { key: '
|
|
13578
|
+
return (hAsync(Host, { key: '405ccfde4206c14f044575d0b23998d93a03ffb6', "data-version": version$1 }, hAsync("span", { key: 'ad70ccf63add4b881ef6096ae460e13fba09f508', style: this.getStyles() })));
|
|
13320
13579
|
}
|
|
13321
13580
|
get host() { return getElement(this); }
|
|
13322
13581
|
static get style() { return postIconCss(); }
|
|
@@ -13398,7 +13657,7 @@ class PostLanguageMenu {
|
|
|
13398
13657
|
}
|
|
13399
13658
|
componentDidLoad() {
|
|
13400
13659
|
// Initially set variants and active language
|
|
13401
|
-
// Handles cases where the language-menu is rendered after the language-
|
|
13660
|
+
// Handles cases where the language-menu is rendered after the language-menu-items have been rendered
|
|
13402
13661
|
this.updateChildrenVariant();
|
|
13403
13662
|
}
|
|
13404
13663
|
/**
|
|
@@ -13636,7 +13895,7 @@ class PostLinkarea {
|
|
|
13636
13895
|
}));
|
|
13637
13896
|
}
|
|
13638
13897
|
render() {
|
|
13639
|
-
return (hAsync(Host, { key: '
|
|
13898
|
+
return (hAsync(Host, { key: 'a187468c97584b393efb0f73966716947243fe1f', "data-version": version$1, onClick: (e) => this.dispatchClick(e) }, hAsync("slot", { key: 'a374c748871f36acf8ceda423c121645e97a6ce1' })));
|
|
13640
13899
|
}
|
|
13641
13900
|
get host() { return getElement(this); }
|
|
13642
13901
|
static get style() { return postLinkareaCss(); }
|
|
@@ -13678,7 +13937,7 @@ class PostListbox {
|
|
|
13678
13937
|
option.highlighted = false;
|
|
13679
13938
|
});
|
|
13680
13939
|
this.highlightedIndex = -1;
|
|
13681
|
-
this.
|
|
13940
|
+
this.clearActive();
|
|
13682
13941
|
};
|
|
13683
13942
|
this.clearActive = () => {
|
|
13684
13943
|
this.highlightedIndex = -1;
|
|
@@ -13782,7 +14041,7 @@ class PostListbox {
|
|
|
13782
14041
|
this.updateSelection(event.detail);
|
|
13783
14042
|
}
|
|
13784
14043
|
render() {
|
|
13785
|
-
return (hAsync(Host, { key: '
|
|
14044
|
+
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' }))));
|
|
13786
14045
|
}
|
|
13787
14046
|
get host() { return getElement(this); }
|
|
13788
14047
|
static get style() { return postListboxCss(); }
|
|
@@ -13819,9 +14078,9 @@ class PostListboxOption {
|
|
|
13819
14078
|
this.highlighted = false;
|
|
13820
14079
|
}
|
|
13821
14080
|
render() {
|
|
13822
|
-
return (hAsync(Host, { key: '
|
|
14081
|
+
return (hAsync(Host, { key: '38481f1a4721d50530bbd96a80ebc89933c8311c', "data-version": version$1, role: "option", "aria-selected": `${this.selected}`, "data-active": this.highlighted ? 'true' : null,
|
|
13823
14082
|
/* Prevent focus change from triggering onblur event in post-autocomplete */
|
|
13824
|
-
onPointerDown: (e) => e.preventDefault(), onClick: () => this.postOptionSelected.emit(this.value), id: `post-listbox-option-${this.optionId}` }, hAsync("span", { key: '
|
|
14083
|
+
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" })));
|
|
13825
14084
|
}
|
|
13826
14085
|
static get style() { return postListboxOptionCss(); }
|
|
13827
14086
|
static get cmpMeta() { return {
|
|
@@ -13868,7 +14127,7 @@ class PostLogo {
|
|
|
13868
14127
|
render() {
|
|
13869
14128
|
const logoLink = this.url && (typeof this.url === 'string' ? this.url : this.url.href);
|
|
13870
14129
|
const LogoTag = logoLink ? 'a' : 'span';
|
|
13871
|
-
return (hAsync(Host, { key: '
|
|
14130
|
+
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" }))))));
|
|
13872
14131
|
}
|
|
13873
14132
|
get host() { return getElement(this); }
|
|
13874
14133
|
static get style() { return postLogoCss(); }
|
|
@@ -14018,7 +14277,7 @@ class PostMainnavigation {
|
|
|
14018
14277
|
}, NAVBAR_DISABLE_DURATION);
|
|
14019
14278
|
}
|
|
14020
14279
|
render() {
|
|
14021
|
-
return (hAsync(Host, { key: '
|
|
14280
|
+
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" }))));
|
|
14022
14281
|
}
|
|
14023
14282
|
get host() { return getElement(this); }
|
|
14024
14283
|
static get style() { return postMainnavigationCss(); }
|
|
@@ -14053,6 +14312,8 @@ var __decorate$h = (undefined && undefined.__decorate) || function (decorators,
|
|
|
14053
14312
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
14054
14313
|
};
|
|
14055
14314
|
class PostMegadropdown {
|
|
14315
|
+
/** Tracks the currently active dropdown instance. */
|
|
14316
|
+
static { this.activeDropdown = null; }
|
|
14056
14317
|
get megadropdownTrigger() {
|
|
14057
14318
|
const hostId = this.host.getAttribute('id');
|
|
14058
14319
|
return hostId ? document.querySelector(`post-megadropdown-trigger[for="${hostId}"]`) : null;
|
|
@@ -14334,7 +14595,7 @@ class PostMegadropdown {
|
|
|
14334
14595
|
}
|
|
14335
14596
|
render() {
|
|
14336
14597
|
const containerStyle = this.isVisible ? {} : { display: 'none' };
|
|
14337
|
-
return (hAsync(Host, { key: '
|
|
14598
|
+
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))))));
|
|
14338
14599
|
}
|
|
14339
14600
|
get host() { return getElement(this); }
|
|
14340
14601
|
static get style() { return postMegadropdownCss(); }
|
|
@@ -14359,8 +14620,6 @@ class PostMegadropdown {
|
|
|
14359
14620
|
"$attrsToReflect$": [["textClose", "text-close"], ["textBack", "text-back"]]
|
|
14360
14621
|
}; }
|
|
14361
14622
|
}
|
|
14362
|
-
/** Tracks the currently active dropdown instance. */
|
|
14363
|
-
PostMegadropdown.activeDropdown = null;
|
|
14364
14623
|
__decorate$h([
|
|
14365
14624
|
Required(),
|
|
14366
14625
|
Type('string')
|
|
@@ -14439,7 +14698,7 @@ class PostMegadropdownTrigger {
|
|
|
14439
14698
|
this.megadropdown.toggle();
|
|
14440
14699
|
}
|
|
14441
14700
|
render() {
|
|
14442
|
-
return (hAsync(Host, { key: '
|
|
14701
|
+
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" }))));
|
|
14443
14702
|
}
|
|
14444
14703
|
get host() { return getElement(this); }
|
|
14445
14704
|
static get style() { return postMegadropdownTriggerCss(); }
|
|
@@ -14587,17 +14846,32 @@ class PostMenu {
|
|
|
14587
14846
|
this.toggleMenu.emit(this.isVisible);
|
|
14588
14847
|
if (this.isVisible) {
|
|
14589
14848
|
this.lastFocusedElement = this.root?.activeElement;
|
|
14590
|
-
|
|
14591
|
-
|
|
14592
|
-
|
|
14593
|
-
|
|
14594
|
-
|
|
14595
|
-
|
|
14849
|
+
// Only focus the first item if the trigger was keyboard-focus-visible
|
|
14850
|
+
// that's the browser's own signal for a keyboard-driven interaction.
|
|
14851
|
+
if (this.wasFocusVisible(this.lastFocusedElement)) {
|
|
14852
|
+
requestAnimationFrame(() => {
|
|
14853
|
+
const menuItems = this.getSlottedItems();
|
|
14854
|
+
if (menuItems.length > 0) {
|
|
14855
|
+
menuItems[0].focus();
|
|
14856
|
+
}
|
|
14857
|
+
});
|
|
14858
|
+
}
|
|
14596
14859
|
}
|
|
14597
14860
|
else if (this.lastFocusedElement) {
|
|
14598
14861
|
this.lastFocusedElement.focus();
|
|
14599
14862
|
}
|
|
14600
14863
|
}
|
|
14864
|
+
wasFocusVisible(element) {
|
|
14865
|
+
if (!element)
|
|
14866
|
+
return false;
|
|
14867
|
+
try {
|
|
14868
|
+
return element.matches(':focus-visible');
|
|
14869
|
+
}
|
|
14870
|
+
catch {
|
|
14871
|
+
// Not supported, fall back to always focusing
|
|
14872
|
+
return true;
|
|
14873
|
+
}
|
|
14874
|
+
}
|
|
14601
14875
|
controlKeyDownHandler(e) {
|
|
14602
14876
|
const menuItems = this.getSlottedItems();
|
|
14603
14877
|
if (menuItems.length === 0) {
|
|
@@ -14649,7 +14923,7 @@ class PostMenu {
|
|
|
14649
14923
|
]));
|
|
14650
14924
|
}
|
|
14651
14925
|
render() {
|
|
14652
|
-
return (hAsync(Host, { key: '
|
|
14926
|
+
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' })))));
|
|
14653
14927
|
}
|
|
14654
14928
|
get host() { return getElement(this); }
|
|
14655
14929
|
static get style() { return postMenuCss(); }
|
|
@@ -14683,7 +14957,7 @@ __decorate$f([
|
|
|
14683
14957
|
EventFrom('post-popovercontainer')
|
|
14684
14958
|
], PostMenu.prototype, "handlePostBeforeToggle", null);
|
|
14685
14959
|
|
|
14686
|
-
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
|
|
14960
|
+
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}}`;
|
|
14687
14961
|
|
|
14688
14962
|
class PostMenuItem {
|
|
14689
14963
|
constructor(hostRef) {
|
|
@@ -14771,7 +15045,7 @@ class PostMenuTrigger {
|
|
|
14771
15045
|
return null;
|
|
14772
15046
|
}
|
|
14773
15047
|
render() {
|
|
14774
|
-
return (hAsync(Host, { key: '
|
|
15048
|
+
return (hAsync(Host, { key: 'f75522d28e9a45c80846a191cff3ea2eb51b5bde', "data-version": version$1 }, hAsync("slot", { key: 'bc70e3ddc8dc372611c00a4cda52cd35ede02a3f' })));
|
|
14775
15049
|
}
|
|
14776
15050
|
get host() { return getElement(this); }
|
|
14777
15051
|
static get style() { return postMenuTriggerCss(); }
|
|
@@ -14807,7 +15081,7 @@ class PostNumberInput {
|
|
|
14807
15081
|
this.isIncrementDisabled = false;
|
|
14808
15082
|
this.isDecrementDisabled = false;
|
|
14809
15083
|
this.small = false;
|
|
14810
|
-
this.setupInput = debounce
|
|
15084
|
+
this.setupInput = debounce(50, () => {
|
|
14811
15085
|
this.input = this.input ?? getSlottedElement(this.host, 'input[type="number"]');
|
|
14812
15086
|
if (!this.input)
|
|
14813
15087
|
return;
|
|
@@ -14881,10 +15155,10 @@ class PostNumberInput {
|
|
|
14881
15155
|
}
|
|
14882
15156
|
render() {
|
|
14883
15157
|
const areButtonsShown = !!this.input;
|
|
14884
|
-
return (hAsync(Host, { key: '
|
|
15158
|
+
return (hAsync(Host, { key: '9bc4f1aff3f0347c5419cbc8c3f03660c8ce0ec3', "data-version": version$1, class: {
|
|
14885
15159
|
'number-input-sm': this.small,
|
|
14886
15160
|
'disabled': this.isDisabled,
|
|
14887
|
-
} }, areButtonsShown && (hAsync("div", { key: '
|
|
15161
|
+
} }, 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" })))));
|
|
14888
15162
|
}
|
|
14889
15163
|
get host() { return getElement(this); }
|
|
14890
15164
|
static get style() { return postNumberInputCss(); }
|
|
@@ -14938,7 +15212,7 @@ class PostPagination {
|
|
|
14938
15212
|
this.page = 1;
|
|
14939
15213
|
this.lastWindowWidth = window.innerWidth;
|
|
14940
15214
|
this.loaded = false;
|
|
14941
|
-
this.debouncedResize = debounce(this.handleResizeInternal.bind(this), RESIZE_DEBOUNCE_MS);
|
|
15215
|
+
this.debouncedResize = debounce$1(this.handleResizeInternal.bind(this), RESIZE_DEBOUNCE_MS);
|
|
14942
15216
|
this.measurementTimeoutId = null;
|
|
14943
15217
|
}
|
|
14944
15218
|
handlePropsChange() {
|
|
@@ -15548,7 +15822,7 @@ __decorate$d([
|
|
|
15548
15822
|
Type('string')
|
|
15549
15823
|
], PostPagination.prototype, "textLast", void 0);
|
|
15550
15824
|
|
|
15551
|
-
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}`;
|
|
15825
|
+
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}`;
|
|
15552
15826
|
|
|
15553
15827
|
var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
15554
15828
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -15575,7 +15849,7 @@ class PostPopover {
|
|
|
15575
15849
|
/**
|
|
15576
15850
|
* Show a little indicator arrow
|
|
15577
15851
|
*/
|
|
15578
|
-
// eslint-disable-next-line
|
|
15852
|
+
// eslint-disable-next-line stencil/ban-default-true
|
|
15579
15853
|
this.arrow = true;
|
|
15580
15854
|
this.breakpointChange = () => {
|
|
15581
15855
|
requestAnimationFrame(() => this.updateEdgeGap());
|
|
@@ -15632,10 +15906,10 @@ class PostPopover {
|
|
|
15632
15906
|
}
|
|
15633
15907
|
}
|
|
15634
15908
|
render() {
|
|
15635
|
-
return (hAsync(Host, { key: '
|
|
15909
|
+
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 => {
|
|
15636
15910
|
if (e)
|
|
15637
15911
|
this.popoverRef = e;
|
|
15638
|
-
} }, hAsync("div", { key: '
|
|
15912
|
+
} }, 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)))));
|
|
15639
15913
|
}
|
|
15640
15914
|
get host() { return getElement(this); }
|
|
15641
15915
|
static get style() { return postPopoverCss(); }
|
|
@@ -20733,7 +21007,7 @@ class PostPopoverTrigger {
|
|
|
20733
21007
|
this.trigger.ariaControlsElements = [popover];
|
|
20734
21008
|
}
|
|
20735
21009
|
else {
|
|
20736
|
-
popover.id
|
|
21010
|
+
popover.id ||= `popover-${crypto.randomUUID()}`;
|
|
20737
21011
|
this.trigger.setAttribute('aria-controls', popover.id);
|
|
20738
21012
|
}
|
|
20739
21013
|
}
|
|
@@ -20747,7 +21021,7 @@ class PostPopoverTrigger {
|
|
|
20747
21021
|
focusTrigger() {
|
|
20748
21022
|
// Restores focus to the trigger
|
|
20749
21023
|
if (!this.popoverOpen && this.trigger) {
|
|
20750
|
-
this.trigger.focus();
|
|
21024
|
+
this.trigger.focus({ preventScroll: true });
|
|
20751
21025
|
}
|
|
20752
21026
|
}
|
|
20753
21027
|
constructor(hostRef) {
|
|
@@ -20783,7 +21057,7 @@ class PostPopoverTrigger {
|
|
|
20783
21057
|
this.popover?.removeEventListener('postToggle', this.boundHandlePostToggle);
|
|
20784
21058
|
}
|
|
20785
21059
|
render() {
|
|
20786
|
-
return (hAsync(Host, { key: '
|
|
21060
|
+
return (hAsync(Host, { key: 'f9c320748c1cfdfb6accce4e20c64ea7c00d20c5', "data-version": version$1 }, hAsync("slot", { key: 'e00dcaa23ec3e2976136c26931780d083b6f1a8f', onSlotchange: () => this.setupTrigger() })));
|
|
20787
21061
|
}
|
|
20788
21062
|
get host() { return getElement(this); }
|
|
20789
21063
|
static get watchers() { return {
|
|
@@ -20814,6 +21088,7 @@ __decorate$b([
|
|
|
20814
21088
|
* @see https://floating-ui.com/docs/virtual-elements
|
|
20815
21089
|
*/
|
|
20816
21090
|
|
|
21091
|
+
const sides = ['top', 'right', 'bottom', 'left'];
|
|
20817
21092
|
const min = Math.min;
|
|
20818
21093
|
const max = Math.max;
|
|
20819
21094
|
const round = Math.round;
|
|
@@ -20906,12 +21181,12 @@ function getOppositePlacement(placement) {
|
|
|
20906
21181
|
return oppositeSideMap[side] + placement.slice(side.length);
|
|
20907
21182
|
}
|
|
20908
21183
|
function expandPaddingObject(padding) {
|
|
21184
|
+
var _padding$top, _padding$right, _padding$bottom, _padding$left;
|
|
20909
21185
|
return {
|
|
20910
|
-
top: 0,
|
|
20911
|
-
right: 0,
|
|
20912
|
-
bottom: 0,
|
|
20913
|
-
left: 0
|
|
20914
|
-
...padding
|
|
21186
|
+
top: (_padding$top = padding.top) != null ? _padding$top : 0,
|
|
21187
|
+
right: (_padding$right = padding.right) != null ? _padding$right : 0,
|
|
21188
|
+
bottom: (_padding$bottom = padding.bottom) != null ? _padding$bottom : 0,
|
|
21189
|
+
left: (_padding$left = padding.left) != null ? _padding$left : 0
|
|
20915
21190
|
};
|
|
20916
21191
|
}
|
|
20917
21192
|
function getPaddingObject(padding) {
|
|
@@ -20986,13 +21261,9 @@ function computeCoordsFromPlacement(_ref, placement, rtl) {
|
|
|
20986
21261
|
y: reference.y
|
|
20987
21262
|
};
|
|
20988
21263
|
}
|
|
20989
|
-
|
|
20990
|
-
|
|
20991
|
-
|
|
20992
|
-
break;
|
|
20993
|
-
case 'end':
|
|
20994
|
-
coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
|
|
20995
|
-
break;
|
|
21264
|
+
const alignment = getAlignment(placement);
|
|
21265
|
+
if (alignment) {
|
|
21266
|
+
coords[alignmentAxis] += commonAlign * (alignment === 'end' ? 1 : -1) * (rtl && isVertical ? -1 : 1);
|
|
20996
21267
|
}
|
|
20997
21268
|
return coords;
|
|
20998
21269
|
}
|
|
@@ -21041,10 +21312,7 @@ async function detectOverflow(state, options) {
|
|
|
21041
21312
|
height: rects.floating.height
|
|
21042
21313
|
} : rects.reference;
|
|
21043
21314
|
const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
|
|
21044
|
-
const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent)))
|
|
21045
|
-
x: 1,
|
|
21046
|
-
y: 1
|
|
21047
|
-
} : {
|
|
21315
|
+
const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) && (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
|
|
21048
21316
|
x: 1,
|
|
21049
21317
|
y: 1
|
|
21050
21318
|
};
|
|
@@ -21217,17 +21485,16 @@ const arrow$1 = options => ({
|
|
|
21217
21485
|
|
|
21218
21486
|
// Make sure the arrow doesn't overflow the floating element if the center
|
|
21219
21487
|
// point is outside the floating element's bounds.
|
|
21220
|
-
const min$1 = minPadding;
|
|
21221
21488
|
const max = clientSize - arrowDimensions[length] - maxPadding;
|
|
21222
21489
|
const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
|
|
21223
|
-
const offset = clamp(
|
|
21490
|
+
const offset = clamp(minPadding, center, max);
|
|
21224
21491
|
|
|
21225
21492
|
// If the reference is small enough that the arrow's padding causes it to
|
|
21226
21493
|
// to point to nothing for an aligned placement, adjust the offset of the
|
|
21227
21494
|
// floating element itself. To ensure `shift()` continues to take action,
|
|
21228
21495
|
// a single reset is performed when this is true.
|
|
21229
|
-
const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center <
|
|
21230
|
-
const alignmentOffset = shouldAddOffset ? center <
|
|
21496
|
+
const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < minPadding ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
|
|
21497
|
+
const alignmentOffset = shouldAddOffset ? center < minPadding ? center - minPadding : center - max : 0;
|
|
21231
21498
|
return {
|
|
21232
21499
|
[axis]: coords[axis] + alignmentOffset,
|
|
21233
21500
|
data: {
|
|
@@ -21374,6 +21641,76 @@ const flip$1 = function (options) {
|
|
|
21374
21641
|
};
|
|
21375
21642
|
};
|
|
21376
21643
|
|
|
21644
|
+
function getSideOffsets(overflow, rect) {
|
|
21645
|
+
return {
|
|
21646
|
+
top: overflow.top - rect.height,
|
|
21647
|
+
right: overflow.right - rect.width,
|
|
21648
|
+
bottom: overflow.bottom - rect.height,
|
|
21649
|
+
left: overflow.left - rect.width
|
|
21650
|
+
};
|
|
21651
|
+
}
|
|
21652
|
+
function isAnySideFullyClipped(overflow) {
|
|
21653
|
+
return sides.some(side => overflow[side] >= 0);
|
|
21654
|
+
}
|
|
21655
|
+
/**
|
|
21656
|
+
* Provides data to hide the floating element in applicable situations, such as
|
|
21657
|
+
* when it is not in the same clipping context as the reference element.
|
|
21658
|
+
* @see https://floating-ui.com/docs/hide
|
|
21659
|
+
*/
|
|
21660
|
+
const hide$1 = function (options) {
|
|
21661
|
+
if (options === void 0) {
|
|
21662
|
+
options = {};
|
|
21663
|
+
}
|
|
21664
|
+
return {
|
|
21665
|
+
name: 'hide',
|
|
21666
|
+
options,
|
|
21667
|
+
async fn(state) {
|
|
21668
|
+
const {
|
|
21669
|
+
rects,
|
|
21670
|
+
platform
|
|
21671
|
+
} = state;
|
|
21672
|
+
const {
|
|
21673
|
+
strategy = 'referenceHidden',
|
|
21674
|
+
...detectOverflowOptions
|
|
21675
|
+
} = evaluate(options, state);
|
|
21676
|
+
switch (strategy) {
|
|
21677
|
+
case 'referenceHidden':
|
|
21678
|
+
{
|
|
21679
|
+
const overflow = await platform.detectOverflow(state, {
|
|
21680
|
+
...detectOverflowOptions,
|
|
21681
|
+
elementContext: 'reference'
|
|
21682
|
+
});
|
|
21683
|
+
const offsets = getSideOffsets(overflow, rects.reference);
|
|
21684
|
+
return {
|
|
21685
|
+
data: {
|
|
21686
|
+
referenceHiddenOffsets: offsets,
|
|
21687
|
+
referenceHidden: isAnySideFullyClipped(offsets)
|
|
21688
|
+
}
|
|
21689
|
+
};
|
|
21690
|
+
}
|
|
21691
|
+
case 'escaped':
|
|
21692
|
+
{
|
|
21693
|
+
const overflow = await platform.detectOverflow(state, {
|
|
21694
|
+
...detectOverflowOptions,
|
|
21695
|
+
altBoundary: true
|
|
21696
|
+
});
|
|
21697
|
+
const offsets = getSideOffsets(overflow, rects.floating);
|
|
21698
|
+
return {
|
|
21699
|
+
data: {
|
|
21700
|
+
escapedOffsets: offsets,
|
|
21701
|
+
escaped: isAnySideFullyClipped(offsets)
|
|
21702
|
+
}
|
|
21703
|
+
};
|
|
21704
|
+
}
|
|
21705
|
+
default:
|
|
21706
|
+
{
|
|
21707
|
+
return {};
|
|
21708
|
+
}
|
|
21709
|
+
}
|
|
21710
|
+
}
|
|
21711
|
+
};
|
|
21712
|
+
};
|
|
21713
|
+
|
|
21377
21714
|
function getBoundingRect(rects) {
|
|
21378
21715
|
const minX = min(...rects.map(rect => rect.left));
|
|
21379
21716
|
const minY = min(...rects.map(rect => rect.top));
|
|
@@ -21430,12 +21767,19 @@ const inline$1 = function (options) {
|
|
|
21430
21767
|
y
|
|
21431
21768
|
} = evaluate(options, state);
|
|
21432
21769
|
const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);
|
|
21770
|
+
|
|
21771
|
+
// No rects (e.g. a hidden or detached reference, or a collapsed range) —
|
|
21772
|
+
// keep the existing reference rect rather than resetting to an invalid
|
|
21773
|
+
// one with non-finite values.
|
|
21774
|
+
if (!nativeClientRects.length) {
|
|
21775
|
+
return {};
|
|
21776
|
+
}
|
|
21433
21777
|
const clientRects = getRectsByLine(nativeClientRects);
|
|
21434
21778
|
const fallback = rectToClientRect(getBoundingRect(nativeClientRects));
|
|
21435
21779
|
const paddingObject = getPaddingObject(padding);
|
|
21436
21780
|
function getBoundingClientRect() {
|
|
21437
21781
|
// There are two rects and they are disjoined.
|
|
21438
|
-
if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {
|
|
21782
|
+
if (clientRects.length === 2 && (clientRects[0].left > clientRects[1].right || clientRects[1].left > clientRects[0].right) && x != null && y != null) {
|
|
21439
21783
|
// Find the first rect in which the point is fully inside.
|
|
21440
21784
|
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;
|
|
21441
21785
|
}
|
|
@@ -21450,18 +21794,12 @@ const inline$1 = function (options) {
|
|
|
21450
21794
|
const bottom = lastRect.bottom;
|
|
21451
21795
|
const left = isTop ? firstRect.left : lastRect.left;
|
|
21452
21796
|
const right = isTop ? firstRect.right : lastRect.right;
|
|
21453
|
-
|
|
21454
|
-
const height = bottom - top;
|
|
21455
|
-
return {
|
|
21456
|
-
top,
|
|
21457
|
-
bottom,
|
|
21458
|
-
left,
|
|
21459
|
-
right,
|
|
21460
|
-
width,
|
|
21461
|
-
height,
|
|
21797
|
+
return rectToClientRect({
|
|
21462
21798
|
x: left,
|
|
21463
|
-
y: top
|
|
21464
|
-
|
|
21799
|
+
y: top,
|
|
21800
|
+
width: right - left,
|
|
21801
|
+
height: bottom - top
|
|
21802
|
+
});
|
|
21465
21803
|
}
|
|
21466
21804
|
const isLeftSide = getSide(placement) === 'left';
|
|
21467
21805
|
const maxRight = max(...clientRects.map(rect => rect.right));
|
|
@@ -21469,20 +21807,12 @@ const inline$1 = function (options) {
|
|
|
21469
21807
|
const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);
|
|
21470
21808
|
const top = measureRects[0].top;
|
|
21471
21809
|
const bottom = measureRects[measureRects.length - 1].bottom;
|
|
21472
|
-
|
|
21473
|
-
|
|
21474
|
-
|
|
21475
|
-
|
|
21476
|
-
|
|
21477
|
-
|
|
21478
|
-
bottom,
|
|
21479
|
-
left,
|
|
21480
|
-
right,
|
|
21481
|
-
width,
|
|
21482
|
-
height,
|
|
21483
|
-
x: left,
|
|
21484
|
-
y: top
|
|
21485
|
-
};
|
|
21810
|
+
return rectToClientRect({
|
|
21811
|
+
x: minLeft,
|
|
21812
|
+
y: top,
|
|
21813
|
+
width: maxRight - minLeft,
|
|
21814
|
+
height: bottom - top
|
|
21815
|
+
});
|
|
21486
21816
|
}
|
|
21487
21817
|
return fallback;
|
|
21488
21818
|
}
|
|
@@ -21632,23 +21962,16 @@ const shift$1 = function (options) {
|
|
|
21632
21962
|
y
|
|
21633
21963
|
};
|
|
21634
21964
|
const overflow = await platform.detectOverflow(state, detectOverflowOptions);
|
|
21635
|
-
const crossAxis = getSideAxis(
|
|
21965
|
+
const crossAxis = getSideAxis(placement);
|
|
21636
21966
|
const mainAxis = getOppositeAxis(crossAxis);
|
|
21637
21967
|
let mainAxisCoord = coords[mainAxis];
|
|
21638
21968
|
let crossAxisCoord = coords[crossAxis];
|
|
21969
|
+
const clampCoord = (axis, coord) => clamp(coord + overflow[axis === 'y' ? 'top' : 'left'], coord, coord - overflow[axis === 'y' ? 'bottom' : 'right']);
|
|
21639
21970
|
if (checkMainAxis) {
|
|
21640
|
-
|
|
21641
|
-
const maxSide = mainAxis === 'y' ? 'bottom' : 'right';
|
|
21642
|
-
const min = mainAxisCoord + overflow[minSide];
|
|
21643
|
-
const max = mainAxisCoord - overflow[maxSide];
|
|
21644
|
-
mainAxisCoord = clamp(min, mainAxisCoord, max);
|
|
21971
|
+
mainAxisCoord = clampCoord(mainAxis, mainAxisCoord);
|
|
21645
21972
|
}
|
|
21646
21973
|
if (checkCrossAxis) {
|
|
21647
|
-
|
|
21648
|
-
const maxSide = crossAxis === 'y' ? 'bottom' : 'right';
|
|
21649
|
-
const min = crossAxisCoord + overflow[minSide];
|
|
21650
|
-
const max = crossAxisCoord - overflow[maxSide];
|
|
21651
|
-
crossAxisCoord = clamp(min, crossAxisCoord, max);
|
|
21974
|
+
crossAxisCoord = clampCoord(crossAxis, crossAxisCoord);
|
|
21652
21975
|
}
|
|
21653
21976
|
const limitedCoords = limiter.fn({
|
|
21654
21977
|
...state,
|
|
@@ -21679,6 +22002,7 @@ const limitShift$1 = function (options) {
|
|
|
21679
22002
|
return {
|
|
21680
22003
|
options,
|
|
21681
22004
|
fn(state) {
|
|
22005
|
+
var _rawOffset$mainAxis, _rawOffset$crossAxis;
|
|
21682
22006
|
const {
|
|
21683
22007
|
x,
|
|
21684
22008
|
y,
|
|
@@ -21704,9 +22028,8 @@ const limitShift$1 = function (options) {
|
|
|
21704
22028
|
mainAxis: rawOffset,
|
|
21705
22029
|
crossAxis: 0
|
|
21706
22030
|
} : {
|
|
21707
|
-
mainAxis: 0,
|
|
21708
|
-
crossAxis: 0
|
|
21709
|
-
...rawOffset
|
|
22031
|
+
mainAxis: (_rawOffset$mainAxis = rawOffset.mainAxis) != null ? _rawOffset$mainAxis : 0,
|
|
22032
|
+
crossAxis: (_rawOffset$crossAxis = rawOffset.crossAxis) != null ? _rawOffset$crossAxis : 0
|
|
21710
22033
|
};
|
|
21711
22034
|
if (checkMainAxis) {
|
|
21712
22035
|
const len = mainAxis === 'y' ? 'height' : 'width';
|
|
@@ -21738,6 +22061,12 @@ const limitShift$1 = function (options) {
|
|
|
21738
22061
|
};
|
|
21739
22062
|
};
|
|
21740
22063
|
|
|
22064
|
+
// Method syntax keeps callback parameters bivariant, but expressing the
|
|
22065
|
+
// explicit `| undefined` required by `exactOptionalPropertyTypes` needs
|
|
22066
|
+
// property syntax, which is contravariant under `strictFunctionTypes`.
|
|
22067
|
+
// Extracting the function from a method position restores that bivariance so
|
|
22068
|
+
// consumers can still assign callbacks with narrower parameter types.
|
|
22069
|
+
|
|
21741
22070
|
/**
|
|
21742
22071
|
* Provides data that allows you to change the size of the floating element —
|
|
21743
22072
|
* for instance, prevent it from overflowing the clipping boundary or match the
|
|
@@ -21752,7 +22081,6 @@ const size$1 = function (options) {
|
|
|
21752
22081
|
name: 'size',
|
|
21753
22082
|
options,
|
|
21754
22083
|
async fn(state) {
|
|
21755
|
-
var _state$middlewareData, _state$middlewareData2;
|
|
21756
22084
|
const {
|
|
21757
22085
|
placement,
|
|
21758
22086
|
rects,
|
|
@@ -21784,24 +22112,21 @@ const size$1 = function (options) {
|
|
|
21784
22112
|
const maximumClippingWidth = width - overflow.left - overflow.right;
|
|
21785
22113
|
const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
|
|
21786
22114
|
const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
|
|
21787
|
-
const
|
|
22115
|
+
const shiftData = state.middlewareData.shift;
|
|
22116
|
+
const noShift = !shiftData;
|
|
21788
22117
|
let availableHeight = overflowAvailableHeight;
|
|
21789
22118
|
let availableWidth = overflowAvailableWidth;
|
|
21790
|
-
if (
|
|
22119
|
+
if (shiftData != null && shiftData.enabled.x) {
|
|
21791
22120
|
availableWidth = maximumClippingWidth;
|
|
21792
22121
|
}
|
|
21793
|
-
if (
|
|
22122
|
+
if (shiftData != null && shiftData.enabled.y) {
|
|
21794
22123
|
availableHeight = maximumClippingHeight;
|
|
21795
22124
|
}
|
|
21796
22125
|
if (noShift && !alignment) {
|
|
21797
|
-
const xMin = max(overflow.left, 0);
|
|
21798
|
-
const xMax = max(overflow.right, 0);
|
|
21799
|
-
const yMin = max(overflow.top, 0);
|
|
21800
|
-
const yMax = max(overflow.bottom, 0);
|
|
21801
22126
|
if (isYAxis) {
|
|
21802
|
-
availableWidth = width - 2 *
|
|
22127
|
+
availableWidth = width - 2 * max(overflow.left, overflow.right);
|
|
21803
22128
|
} else {
|
|
21804
|
-
availableHeight = height - 2 *
|
|
22129
|
+
availableHeight = height - 2 * max(overflow.top, overflow.bottom);
|
|
21805
22130
|
}
|
|
21806
22131
|
}
|
|
21807
22132
|
await apply({
|
|
@@ -21957,7 +22282,7 @@ function getParentNode(node) {
|
|
|
21957
22282
|
function getNearestOverflowAncestor(node) {
|
|
21958
22283
|
const parentNode = getParentNode(node);
|
|
21959
22284
|
if (isLastTraversableNode(parentNode)) {
|
|
21960
|
-
return node.ownerDocument
|
|
22285
|
+
return (node.ownerDocument || node).body;
|
|
21961
22286
|
}
|
|
21962
22287
|
if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
|
|
21963
22288
|
return parentNode;
|
|
@@ -22054,10 +22379,7 @@ function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
|
|
|
22054
22379
|
if (isFixed === void 0) {
|
|
22055
22380
|
isFixed = false;
|
|
22056
22381
|
}
|
|
22057
|
-
|
|
22058
|
-
return false;
|
|
22059
|
-
}
|
|
22060
|
-
return isFixed;
|
|
22382
|
+
return !!floatingOffsetParent && isFixed && floatingOffsetParent === getWindow(element);
|
|
22061
22383
|
}
|
|
22062
22384
|
|
|
22063
22385
|
function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
|
|
@@ -22084,12 +22406,12 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
|
|
|
22084
22406
|
let y = (clientRect.top + visualOffsets.y) / scale.y;
|
|
22085
22407
|
let width = clientRect.width / scale.x;
|
|
22086
22408
|
let height = clientRect.height / scale.y;
|
|
22087
|
-
if (domElement) {
|
|
22409
|
+
if (domElement && offsetParent) {
|
|
22088
22410
|
const win = getWindow(domElement);
|
|
22089
|
-
const offsetWin =
|
|
22411
|
+
const offsetWin = isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
|
|
22090
22412
|
let currentWin = win;
|
|
22091
22413
|
let currentIFrame = getFrameElement(currentWin);
|
|
22092
|
-
while (currentIFrame &&
|
|
22414
|
+
while (currentIFrame && offsetWin !== currentWin) {
|
|
22093
22415
|
const iframeScale = getScale(currentIFrame);
|
|
22094
22416
|
const iframeRect = currentIFrame.getBoundingClientRect();
|
|
22095
22417
|
const css = getComputedStyle$1(currentIFrame);
|
|
@@ -22153,7 +22475,7 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
|
|
|
22153
22475
|
let scale = createCoords(1);
|
|
22154
22476
|
const offsets = createCoords(0);
|
|
22155
22477
|
const isOffsetParentAnElement = isHTMLElement(offsetParent);
|
|
22156
|
-
if (isOffsetParentAnElement || !
|
|
22478
|
+
if (isOffsetParentAnElement || !isFixed) {
|
|
22157
22479
|
if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
|
|
22158
22480
|
scroll = getNodeScroll(offsetParent);
|
|
22159
22481
|
}
|
|
@@ -22174,18 +22496,17 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
|
|
|
22174
22496
|
}
|
|
22175
22497
|
|
|
22176
22498
|
function getClientRects(element) {
|
|
22177
|
-
return Array.from(element.getClientRects());
|
|
22499
|
+
return element.getClientRects ? Array.from(element.getClientRects()) : [];
|
|
22178
22500
|
}
|
|
22179
22501
|
|
|
22180
22502
|
// Gets the entire size of the scrollable document area, even extending outside
|
|
22181
22503
|
// of the `<html>` and `<body>` rect bounds if horizontally scrollable.
|
|
22182
|
-
function getDocumentRect(
|
|
22183
|
-
const
|
|
22184
|
-
const
|
|
22185
|
-
const body = element.ownerDocument.body;
|
|
22504
|
+
function getDocumentRect(html) {
|
|
22505
|
+
const scroll = getNodeScroll(html);
|
|
22506
|
+
const body = html.ownerDocument.body;
|
|
22186
22507
|
const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
|
|
22187
22508
|
const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
|
|
22188
|
-
let x = -scroll.scrollLeft + getWindowScrollBarX(
|
|
22509
|
+
let x = -scroll.scrollLeft + getWindowScrollBarX(html);
|
|
22189
22510
|
const y = -scroll.scrollTop;
|
|
22190
22511
|
if (getComputedStyle$1(body).direction === 'rtl') {
|
|
22191
22512
|
x += max(html.clientWidth, body.clientWidth) - width;
|
|
@@ -22202,7 +22523,11 @@ function getDocumentRect(element) {
|
|
|
22202
22523
|
// calculation is affected by unusual styles.
|
|
22203
22524
|
// Most scrollbars leave 15-18px of space.
|
|
22204
22525
|
const SCROLLBAR_MAX = 25;
|
|
22205
|
-
function getViewportRect(element, strategy) {
|
|
22526
|
+
function getViewportRect(element, strategy, rootBoundary) {
|
|
22527
|
+
if (rootBoundary === void 0) {
|
|
22528
|
+
rootBoundary = 'viewport';
|
|
22529
|
+
}
|
|
22530
|
+
const isLayoutViewport = rootBoundary === 'layoutViewport';
|
|
22206
22531
|
const win = getWindow(element);
|
|
22207
22532
|
const html = getDocumentElement(element);
|
|
22208
22533
|
const visualViewport = win.visualViewport;
|
|
@@ -22211,31 +22536,42 @@ function getViewportRect(element, strategy) {
|
|
|
22211
22536
|
let x = 0;
|
|
22212
22537
|
let y = 0;
|
|
22213
22538
|
if (visualViewport) {
|
|
22214
|
-
|
|
22215
|
-
|
|
22216
|
-
|
|
22217
|
-
|
|
22218
|
-
|
|
22219
|
-
|
|
22539
|
+
// Client coordinates are relative to the layout viewport, except in
|
|
22540
|
+
// WebKit with an `absolute` strategy, where they are relative to the
|
|
22541
|
+
// visual viewport.
|
|
22542
|
+
const layoutRelativeClientCoords = !isWebKit() || strategy === 'fixed';
|
|
22543
|
+
if (isLayoutViewport) {
|
|
22544
|
+
if (!layoutRelativeClientCoords) {
|
|
22545
|
+
x = -visualViewport.offsetLeft;
|
|
22546
|
+
y = -visualViewport.offsetTop;
|
|
22547
|
+
}
|
|
22548
|
+
} else {
|
|
22549
|
+
width = visualViewport.width;
|
|
22550
|
+
height = visualViewport.height;
|
|
22551
|
+
if (layoutRelativeClientCoords) {
|
|
22552
|
+
x = visualViewport.offsetLeft;
|
|
22553
|
+
y = visualViewport.offsetTop;
|
|
22554
|
+
}
|
|
22220
22555
|
}
|
|
22221
22556
|
}
|
|
22222
22557
|
const windowScrollbarX = getWindowScrollBarX(html);
|
|
22223
|
-
//
|
|
22224
|
-
// visual width
|
|
22225
|
-
//
|
|
22558
|
+
// `scrollbar-gutter: stable` on the <html> reserves gutter space that shrinks
|
|
22559
|
+
// the visual width but isn't reflected in `html.clientWidth`, so subtract it.
|
|
22560
|
+
// Only the inline-end (right) gutter can hold the scrollbar; `both-edges` also
|
|
22561
|
+
// reserves an empty inline-start gutter that clips nothing, so exclude just
|
|
22562
|
+
// the one scrollbar-side gutter — halve the measured (two-gutter) total. A
|
|
22563
|
+
// left-side scrollbar (`windowScrollbarX > 0`) is already handled by
|
|
22564
|
+
// `getHTMLOffset`/`visualViewport.width`; skip it here.
|
|
22226
22565
|
if (windowScrollbarX <= 0) {
|
|
22227
22566
|
const doc = html.ownerDocument;
|
|
22228
22567
|
const body = doc.body;
|
|
22229
22568
|
const bodyStyles = getComputedStyle(body);
|
|
22230
22569
|
const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
|
|
22231
|
-
const
|
|
22232
|
-
|
|
22233
|
-
|
|
22570
|
+
const reservedWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
|
|
22571
|
+
const gutter = getComputedStyle(html).scrollbarGutter === 'stable both-edges' ? reservedWidth / 2 : reservedWidth;
|
|
22572
|
+
if (gutter <= SCROLLBAR_MAX) {
|
|
22573
|
+
width -= gutter;
|
|
22234
22574
|
}
|
|
22235
|
-
} else if (windowScrollbarX <= SCROLLBAR_MAX) {
|
|
22236
|
-
// If the <body> scrollbar is on the left, the width needs to be extended
|
|
22237
|
-
// by the scrollbar amount so there isn't extra space on the right.
|
|
22238
|
-
width += windowScrollbarX;
|
|
22239
22575
|
}
|
|
22240
22576
|
return {
|
|
22241
22577
|
width,
|
|
@@ -22250,7 +22586,7 @@ function getInnerBoundingClientRect(element, strategy) {
|
|
|
22250
22586
|
const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
|
|
22251
22587
|
const top = clientRect.top + element.clientTop;
|
|
22252
22588
|
const left = clientRect.left + element.clientLeft;
|
|
22253
|
-
const scale =
|
|
22589
|
+
const scale = getScale(element);
|
|
22254
22590
|
const width = element.clientWidth * scale.x;
|
|
22255
22591
|
const height = element.clientHeight * scale.y;
|
|
22256
22592
|
const x = left * scale.x;
|
|
@@ -22264,8 +22600,8 @@ function getInnerBoundingClientRect(element, strategy) {
|
|
|
22264
22600
|
}
|
|
22265
22601
|
function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
|
|
22266
22602
|
let rect;
|
|
22267
|
-
if (clippingAncestor === 'viewport') {
|
|
22268
|
-
rect = getViewportRect(element, strategy);
|
|
22603
|
+
if (clippingAncestor === 'viewport' || clippingAncestor === 'layoutViewport') {
|
|
22604
|
+
rect = getViewportRect(element, strategy, clippingAncestor);
|
|
22269
22605
|
} else if (clippingAncestor === 'document') {
|
|
22270
22606
|
rect = getDocumentRect(getDocumentElement(element));
|
|
22271
22607
|
} else if (isElement(clippingAncestor)) {
|
|
@@ -22281,13 +22617,6 @@ function getClientRectFromClippingAncestor(element, clippingAncestor, strategy)
|
|
|
22281
22617
|
}
|
|
22282
22618
|
return rectToClientRect(rect);
|
|
22283
22619
|
}
|
|
22284
|
-
function hasFixedPositionAncestor(element, stopNode) {
|
|
22285
|
-
const parentNode = getParentNode(element);
|
|
22286
|
-
if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
|
|
22287
|
-
return false;
|
|
22288
|
-
}
|
|
22289
|
-
return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
|
|
22290
|
-
}
|
|
22291
22620
|
|
|
22292
22621
|
// A "clipping ancestor" is an `overflow` element with the characteristic of
|
|
22293
22622
|
// clipping (or hiding) child elements. This returns all clipping ancestors
|
|
@@ -22298,7 +22627,7 @@ function getClippingElementAncestors(element, cache) {
|
|
|
22298
22627
|
return cachedResult;
|
|
22299
22628
|
}
|
|
22300
22629
|
let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');
|
|
22301
|
-
let
|
|
22630
|
+
let lastKeptComputedStyle = null;
|
|
22302
22631
|
const elementIsFixed = getComputedStyle$1(element).position === 'fixed';
|
|
22303
22632
|
let currentNode = elementIsFixed ? getParentNode(element) : element;
|
|
22304
22633
|
|
|
@@ -22306,16 +22635,20 @@ function getClippingElementAncestors(element, cache) {
|
|
|
22306
22635
|
while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
|
|
22307
22636
|
const computedStyle = getComputedStyle$1(currentNode);
|
|
22308
22637
|
const currentNodeIsContaining = isContainingBlock(currentNode);
|
|
22309
|
-
|
|
22310
|
-
|
|
22311
|
-
|
|
22312
|
-
|
|
22638
|
+
// Position of the containing block chain below the current node. A fixed
|
|
22639
|
+
// element whose containing block hasn't been found yet is a fixed chain.
|
|
22640
|
+
const lastPosition = lastKeptComputedStyle ? lastKeptComputedStyle.position : elementIsFixed ? 'fixed' : '';
|
|
22641
|
+
|
|
22642
|
+
// A non-containing ancestor does not clip the element when the chain
|
|
22643
|
+
// below it escapes it: a fixed chain escapes all ancestors up to the
|
|
22644
|
+
// next containing block, an absolute chain escapes static ancestors.
|
|
22645
|
+
const shouldDropCurrentNode = !currentNodeIsContaining && (lastPosition === 'fixed' || lastPosition === 'absolute' && computedStyle.position === 'static');
|
|
22313
22646
|
if (shouldDropCurrentNode) {
|
|
22314
22647
|
// Drop non-containing blocks.
|
|
22315
22648
|
result = result.filter(ancestor => ancestor !== currentNode);
|
|
22316
22649
|
} else {
|
|
22317
|
-
//
|
|
22318
|
-
|
|
22650
|
+
// The kept node carries the chain position for the next iteration.
|
|
22651
|
+
lastKeptComputedStyle = computedStyle;
|
|
22319
22652
|
}
|
|
22320
22653
|
currentNode = getParentNode(currentNode);
|
|
22321
22654
|
}
|
|
@@ -22325,7 +22658,7 @@ function getClippingElementAncestors(element, cache) {
|
|
|
22325
22658
|
|
|
22326
22659
|
// Gets the maximum area that the element is visible in due to any number of
|
|
22327
22660
|
// clipping ancestors.
|
|
22328
|
-
function getClippingRect(_ref) {
|
|
22661
|
+
function getClippingRect$1(_ref) {
|
|
22329
22662
|
let {
|
|
22330
22663
|
element,
|
|
22331
22664
|
boundary,
|
|
@@ -22375,13 +22708,7 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
|
|
|
22375
22708
|
scrollTop: 0
|
|
22376
22709
|
};
|
|
22377
22710
|
const offsets = createCoords(0);
|
|
22378
|
-
|
|
22379
|
-
// If the <body> scrollbar appears on the left (e.g. RTL systems). Use
|
|
22380
|
-
// Firefox with layout.scrollbar.side = 3 in about:config to test this.
|
|
22381
|
-
function setLeftRTLScrollbarOffset() {
|
|
22382
|
-
offsets.x = getWindowScrollBarX(documentElement);
|
|
22383
|
-
}
|
|
22384
|
-
if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
|
|
22711
|
+
if (isOffsetParentAnElement || !isFixed) {
|
|
22385
22712
|
if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
|
|
22386
22713
|
scroll = getNodeScroll(offsetParent);
|
|
22387
22714
|
}
|
|
@@ -22389,12 +22716,13 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
|
|
|
22389
22716
|
const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
|
|
22390
22717
|
offsets.x = offsetRect.x + offsetParent.clientLeft;
|
|
22391
22718
|
offsets.y = offsetRect.y + offsetParent.clientTop;
|
|
22392
|
-
} else if (documentElement) {
|
|
22393
|
-
setLeftRTLScrollbarOffset();
|
|
22394
22719
|
}
|
|
22395
22720
|
}
|
|
22396
|
-
|
|
22397
|
-
|
|
22721
|
+
|
|
22722
|
+
// If the <body> scrollbar appears on the left (e.g. RTL systems). Use
|
|
22723
|
+
// Firefox with layout.scrollbar.side = 3 in about:config to test this.
|
|
22724
|
+
if (!isOffsetParentAnElement && documentElement) {
|
|
22725
|
+
offsets.x = getWindowScrollBarX(documentElement);
|
|
22398
22726
|
}
|
|
22399
22727
|
const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
|
|
22400
22728
|
const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
|
|
@@ -22479,7 +22807,7 @@ function isRTL(element) {
|
|
|
22479
22807
|
const platform = {
|
|
22480
22808
|
convertOffsetParentRelativeRectToViewportRelativeRect,
|
|
22481
22809
|
getDocumentElement,
|
|
22482
|
-
getClippingRect,
|
|
22810
|
+
getClippingRect: getClippingRect$1,
|
|
22483
22811
|
getOffsetParent,
|
|
22484
22812
|
getElementRects,
|
|
22485
22813
|
getClientRects,
|
|
@@ -22494,7 +22822,7 @@ function rectsAreEqual(a, b) {
|
|
|
22494
22822
|
}
|
|
22495
22823
|
|
|
22496
22824
|
// https://samthor.au/2021/observing-dom/
|
|
22497
|
-
function observeMove(element, onMove) {
|
|
22825
|
+
function observeMove(element, onMove, ancestorResize) {
|
|
22498
22826
|
let io = null;
|
|
22499
22827
|
let timeoutId;
|
|
22500
22828
|
const root = getDocumentElement(element);
|
|
@@ -22537,13 +22865,22 @@ function observeMove(element, onMove) {
|
|
|
22537
22865
|
let isFirstUpdate = true;
|
|
22538
22866
|
function handleObserve(entries) {
|
|
22539
22867
|
const ratio = entries[0].intersectionRatio;
|
|
22868
|
+
|
|
22869
|
+
// The entry is a snapshot, so the reference may have moved since the
|
|
22870
|
+
// intersection was computed (under performance constraints, or between
|
|
22871
|
+
// consecutive frames of a multi-frame layout shift). The reported ratio
|
|
22872
|
+
// and the observed area are stale in that case and cannot be trusted to
|
|
22873
|
+
// detect subsequent movement, so refresh regardless of the ratio.
|
|
22874
|
+
if (!rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
|
|
22875
|
+
return refresh();
|
|
22876
|
+
}
|
|
22540
22877
|
if (ratio !== threshold) {
|
|
22541
22878
|
if (!isFirstUpdate) {
|
|
22542
22879
|
return refresh();
|
|
22543
22880
|
}
|
|
22544
22881
|
if (!ratio) {
|
|
22545
|
-
// If the reference is clipped, the ratio is 0. Throttle
|
|
22546
|
-
// to prevent an infinite loop of updates.
|
|
22882
|
+
// If the reference is clipped in place, the ratio is 0. Throttle
|
|
22883
|
+
// the refresh to prevent an infinite loop of updates.
|
|
22547
22884
|
timeoutId = setTimeout(() => {
|
|
22548
22885
|
refresh(false, 1e-7);
|
|
22549
22886
|
}, 1000);
|
|
@@ -22551,16 +22888,6 @@ function observeMove(element, onMove) {
|
|
|
22551
22888
|
refresh(false, ratio);
|
|
22552
22889
|
}
|
|
22553
22890
|
}
|
|
22554
|
-
if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
|
|
22555
|
-
// It's possible that even though the ratio is reported as 1, the
|
|
22556
|
-
// element is not actually fully within the IntersectionObserver's root
|
|
22557
|
-
// area anymore. This can happen under performance constraints. This may
|
|
22558
|
-
// be a bug in the browser's IntersectionObserver implementation. To
|
|
22559
|
-
// work around this, we compare the element's bounding rect now with
|
|
22560
|
-
// what it was at the time we created the IntersectionObserver. If they
|
|
22561
|
-
// are not equal then the element moved, so we refresh.
|
|
22562
|
-
refresh();
|
|
22563
|
-
}
|
|
22564
22891
|
isFirstUpdate = false;
|
|
22565
22892
|
}
|
|
22566
22893
|
|
|
@@ -22577,8 +22904,18 @@ function observeMove(element, onMove) {
|
|
|
22577
22904
|
}
|
|
22578
22905
|
io.observe(element);
|
|
22579
22906
|
}
|
|
22907
|
+
const win = getWindow(element);
|
|
22908
|
+
// The window is a resize ancestor, so when `ancestorResize` is enabled its
|
|
22909
|
+
// listener already runs the update on resize. Here we only need to rebuild
|
|
22910
|
+
// the `IntersectionObserver` for the new root size, skipping a redundant
|
|
22911
|
+
// update. When `ancestorResize` is disabled, this becomes the sole update.
|
|
22912
|
+
const handleResize = () => refresh(ancestorResize);
|
|
22913
|
+
win.addEventListener('resize', handleResize);
|
|
22580
22914
|
refresh(true);
|
|
22581
|
-
return
|
|
22915
|
+
return () => {
|
|
22916
|
+
win.removeEventListener('resize', handleResize);
|
|
22917
|
+
cleanup();
|
|
22918
|
+
};
|
|
22582
22919
|
}
|
|
22583
22920
|
|
|
22584
22921
|
/**
|
|
@@ -22603,12 +22940,10 @@ function autoUpdate(reference, floating, update, options) {
|
|
|
22603
22940
|
const referenceEl = unwrapElement(reference);
|
|
22604
22941
|
const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...(floating ? getOverflowAncestors(floating) : [])] : [];
|
|
22605
22942
|
ancestors.forEach(ancestor => {
|
|
22606
|
-
ancestorScroll && ancestor.addEventListener('scroll', update
|
|
22607
|
-
passive: true
|
|
22608
|
-
});
|
|
22943
|
+
ancestorScroll && ancestor.addEventListener('scroll', update);
|
|
22609
22944
|
ancestorResize && ancestor.addEventListener('resize', update);
|
|
22610
22945
|
});
|
|
22611
|
-
const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;
|
|
22946
|
+
const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update, ancestorResize) : null;
|
|
22612
22947
|
let reobserveFrame = -1;
|
|
22613
22948
|
let resizeObserver = null;
|
|
22614
22949
|
if (elementResize) {
|
|
@@ -22694,6 +23029,13 @@ const flip = flip$1;
|
|
|
22694
23029
|
*/
|
|
22695
23030
|
const size = size$1;
|
|
22696
23031
|
|
|
23032
|
+
/**
|
|
23033
|
+
* Provides data to hide the floating element in applicable situations, such as
|
|
23034
|
+
* when it is not in the same clipping context as the reference element.
|
|
23035
|
+
* @see https://floating-ui.com/docs/hide
|
|
23036
|
+
*/
|
|
23037
|
+
const hide = hide$1;
|
|
23038
|
+
|
|
22697
23039
|
/**
|
|
22698
23040
|
* Provides data to position an inner element of the floating element so that it
|
|
22699
23041
|
* appears centered to the reference element.
|
|
@@ -22722,11 +23064,9 @@ const computePosition = (reference, floating, options) => {
|
|
|
22722
23064
|
// multiple lifecycle resets re-use the same result. It only lives for a
|
|
22723
23065
|
// single call. If other functions become expensive, we can add them as well.
|
|
22724
23066
|
const cache = new Map();
|
|
22725
|
-
const mergedOptions = {
|
|
22726
|
-
platform,
|
|
22727
|
-
...options
|
|
22728
|
-
};
|
|
23067
|
+
const mergedOptions = options != null ? options : {};
|
|
22729
23068
|
const platformWithCache = {
|
|
23069
|
+
...platform,
|
|
22730
23070
|
...mergedOptions.platform,
|
|
22731
23071
|
_c: cache
|
|
22732
23072
|
};
|
|
@@ -22751,6 +23091,77 @@ function popIn(el) {
|
|
|
22751
23091
|
});
|
|
22752
23092
|
}
|
|
22753
23093
|
|
|
23094
|
+
/**
|
|
23095
|
+
* This utility is covered by the end-to-end tests under 'clipping' in `popovercontainer.cy.ts`.
|
|
23096
|
+
*/
|
|
23097
|
+
const CLIPPING_RECT_CACHE = Symbol('Clipping Rect Cache');
|
|
23098
|
+
/**
|
|
23099
|
+
* A custom floating UI platform that restricts clipping rectangles to the safe area.
|
|
23100
|
+
*/
|
|
23101
|
+
const safeAreaPlatform = { ...platform, getClippingRect };
|
|
23102
|
+
/**
|
|
23103
|
+
* Computes the clipping rectangle of an element while accounting for the safe area.
|
|
23104
|
+
*/
|
|
23105
|
+
async function getClippingRect(...args) {
|
|
23106
|
+
const element = args[0].element;
|
|
23107
|
+
// Check whether the clipping rectangle of the given element has already been computed during
|
|
23108
|
+
// this pass.
|
|
23109
|
+
const hit = this[CLIPPING_RECT_CACHE].get(element);
|
|
23110
|
+
if (hit)
|
|
23111
|
+
return hit;
|
|
23112
|
+
// Compute the clipping rectangle with the Floating UI DOM platform, then restrict it to the safe
|
|
23113
|
+
// area.
|
|
23114
|
+
const clippingRect = await platform.getClippingRect.apply(this, args);
|
|
23115
|
+
applySafeArea(clippingRect, element);
|
|
23116
|
+
this[CLIPPING_RECT_CACHE].set(element, clippingRect);
|
|
23117
|
+
return clippingRect;
|
|
23118
|
+
}
|
|
23119
|
+
/**
|
|
23120
|
+
* Restricts the `clippingRect` computed for `element` to the safe area, modifying it in place.
|
|
23121
|
+
*
|
|
23122
|
+
* The safe area only applies to elements that the header can actually cover, which excludes
|
|
23123
|
+
* elements without a header on their page, elements on a top layer and elements within the header.
|
|
23124
|
+
*/
|
|
23125
|
+
function applySafeArea(clippingRect, element) {
|
|
23126
|
+
const headerElement = element.ownerDocument.querySelector('post-header');
|
|
23127
|
+
if (headerElement === null)
|
|
23128
|
+
return;
|
|
23129
|
+
let parent = element;
|
|
23130
|
+
while (!isLastTraversableNode(parent)) {
|
|
23131
|
+
parent = getParentNode(parent);
|
|
23132
|
+
if (!isHTMLElement(parent))
|
|
23133
|
+
continue;
|
|
23134
|
+
// Do not apply the safe area of the header to
|
|
23135
|
+
// - elements that are on a top layer, such as a dialog.
|
|
23136
|
+
// - elements that are located within the header itself.
|
|
23137
|
+
if (isTopLayer(parent) || parent === headerElement)
|
|
23138
|
+
return;
|
|
23139
|
+
}
|
|
23140
|
+
const headerRect = headerElement.getBoundingClientRect();
|
|
23141
|
+
const top = Math.max(clippingRect.y, headerRect.bottom);
|
|
23142
|
+
clippingRect.height -= top - clippingRect.y;
|
|
23143
|
+
clippingRect.y = top;
|
|
23144
|
+
}
|
|
23145
|
+
/**
|
|
23146
|
+
* Computes the coordinates that will position the `floating` element next to a given `reference`
|
|
23147
|
+
* element while accounting for the safe area.
|
|
23148
|
+
*
|
|
23149
|
+
* The safe area is the part of the viewport that the header does not cover. Restricting the
|
|
23150
|
+
* clipping rectangles to it makes floating elements behave as if they were clipped by the header.
|
|
23151
|
+
*/
|
|
23152
|
+
const computePositionWithSafeArea = (reference, floating, options) => {
|
|
23153
|
+
// Adapted from https://github.com/floating-ui/floating-ui/blob/27629b74ba36ab8ceb2a968051927b9b69511a3b/packages/dom/src/index.ts#L15
|
|
23154
|
+
options ??= {};
|
|
23155
|
+
return computePosition(reference, floating, {
|
|
23156
|
+
...options,
|
|
23157
|
+
platform: {
|
|
23158
|
+
...safeAreaPlatform,
|
|
23159
|
+
...options.platform,
|
|
23160
|
+
[CLIPPING_RECT_CACHE]: new Map(),
|
|
23161
|
+
},
|
|
23162
|
+
});
|
|
23163
|
+
};
|
|
23164
|
+
|
|
22754
23165
|
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))}`;
|
|
22755
23166
|
|
|
22756
23167
|
var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
@@ -22770,6 +23181,30 @@ const ANIMATIONS = {
|
|
|
22770
23181
|
* @slot - Default slot for placing content inside the popovercontainer.
|
|
22771
23182
|
*/
|
|
22772
23183
|
class PostPopovercontainer {
|
|
23184
|
+
static {
|
|
23185
|
+
this.STATIC_SIDES = {
|
|
23186
|
+
top: 'bottom',
|
|
23187
|
+
right: 'left',
|
|
23188
|
+
bottom: 'top',
|
|
23189
|
+
left: 'right',
|
|
23190
|
+
};
|
|
23191
|
+
}
|
|
23192
|
+
static {
|
|
23193
|
+
this.PROPERTIES_TO_CLEAR = [
|
|
23194
|
+
'--post-safe-space-popover-x',
|
|
23195
|
+
'--post-safe-space-popover-y',
|
|
23196
|
+
'--post-safe-space-popover-x-start',
|
|
23197
|
+
'--post-safe-space-popover-x-end',
|
|
23198
|
+
'--post-safe-space-popover-y-start',
|
|
23199
|
+
'--post-safe-space-popover-y-end',
|
|
23200
|
+
'--post-safe-space-trigger-x',
|
|
23201
|
+
'--post-safe-space-trigger-y',
|
|
23202
|
+
'--post-safe-space-trigger-x-start',
|
|
23203
|
+
'--post-safe-space-trigger-x-end',
|
|
23204
|
+
'--post-safe-space-trigger-y-start',
|
|
23205
|
+
'--post-safe-space-trigger-y-end',
|
|
23206
|
+
];
|
|
23207
|
+
}
|
|
22773
23208
|
constructor(hostRef) {
|
|
22774
23209
|
registerInstance(this, hostRef);
|
|
22775
23210
|
this.postBeforeShow = createEvent(this, "postBeforeShow");
|
|
@@ -22828,7 +23263,7 @@ class PostPopovercontainer {
|
|
|
22828
23263
|
if (this.toggleTimeoutId || !target)
|
|
22829
23264
|
return;
|
|
22830
23265
|
this.eventTarget = target;
|
|
22831
|
-
this.
|
|
23266
|
+
this.updatePosition();
|
|
22832
23267
|
this.host.showPopover();
|
|
22833
23268
|
}
|
|
22834
23269
|
/**
|
|
@@ -22854,7 +23289,7 @@ class PostPopovercontainer {
|
|
|
22854
23289
|
this.eventTarget = target;
|
|
22855
23290
|
// Prevent instant double toggle
|
|
22856
23291
|
if (!this.toggleTimeoutId) {
|
|
22857
|
-
this.
|
|
23292
|
+
this.updatePosition();
|
|
22858
23293
|
this.host.togglePopover(force);
|
|
22859
23294
|
this.toggleTimeoutId = null;
|
|
22860
23295
|
}
|
|
@@ -22966,17 +23401,14 @@ class PostPopovercontainer {
|
|
|
22966
23401
|
startAutoupdates() {
|
|
22967
23402
|
if (!this.eventTarget || !this.host)
|
|
22968
23403
|
return;
|
|
22969
|
-
this.clearAutoUpdate = autoUpdate(this.eventTarget, this.host, this.
|
|
22970
|
-
}
|
|
22971
|
-
/**
|
|
22972
|
-
* Retrieves the dynamic height of the header
|
|
22973
|
-
*/
|
|
22974
|
-
getHeaderHeight() {
|
|
22975
|
-
const header = document.querySelector('post-header');
|
|
22976
|
-
return header ? Number.parseFloat(getComputedStyle(header).height) : 0;
|
|
23404
|
+
this.clearAutoUpdate = autoUpdate(this.eventTarget, this.host, this.updatePosition.bind(this));
|
|
22977
23405
|
}
|
|
22978
|
-
async
|
|
22979
|
-
const { x, y, middlewareData, placement } = await this.
|
|
23406
|
+
async updatePosition() {
|
|
23407
|
+
const { x, y, middlewareData, placement } = await this.calculatePosition();
|
|
23408
|
+
// Hide the popover if the target is outside the viewport
|
|
23409
|
+
if (middlewareData.hide?.referenceHidden) {
|
|
23410
|
+
this.host.hidePopover();
|
|
23411
|
+
}
|
|
22980
23412
|
const currentPlacement = placement.split('-')[0];
|
|
22981
23413
|
this.dynamicPlacement = currentPlacement;
|
|
22982
23414
|
// Position popover
|
|
@@ -23001,13 +23433,15 @@ class PostPopovercontainer {
|
|
|
23001
23433
|
await this.updateSafeSpaceBoundaries(currentPlacement);
|
|
23002
23434
|
}
|
|
23003
23435
|
}
|
|
23004
|
-
async
|
|
23436
|
+
async calculatePosition() {
|
|
23005
23437
|
const gap = this.edgeGap;
|
|
23006
23438
|
const isAligned = (this.placement || 'top').includes('-');
|
|
23007
|
-
const flipMiddleware =
|
|
23008
|
-
|
|
23009
|
-
crossAxis: false,
|
|
23010
|
-
|
|
23439
|
+
const flipMiddleware = [
|
|
23440
|
+
// Flip the popover if the target moves outside the viewport
|
|
23441
|
+
flip({ elementContext: 'reference', crossAxis: false }),
|
|
23442
|
+
// Flip the popover if the popover itself moves outside the viewport
|
|
23443
|
+
flip({ elementContext: 'floating', crossAxis: false }),
|
|
23444
|
+
];
|
|
23011
23445
|
const shiftMiddleware = shift({
|
|
23012
23446
|
padding: gap,
|
|
23013
23447
|
limiter: limitShift({
|
|
@@ -23019,7 +23453,7 @@ class PostPopovercontainer {
|
|
|
23019
23453
|
inline(),
|
|
23020
23454
|
// Per floating-ui docs: for aligned placements (e.g. bottom-end),
|
|
23021
23455
|
// flip should come before shift. For non-aligned, shift before flip.
|
|
23022
|
-
...(isAligned ? [flipMiddleware, shiftMiddleware] : [shiftMiddleware, flipMiddleware]),
|
|
23456
|
+
...(isAligned ? [...flipMiddleware, shiftMiddleware] : [shiftMiddleware, ...flipMiddleware]),
|
|
23023
23457
|
size({
|
|
23024
23458
|
apply({ availableWidth, elements }) {
|
|
23025
23459
|
Object.assign(elements.floating.style, {
|
|
@@ -23031,7 +23465,12 @@ class PostPopovercontainer {
|
|
|
23031
23465
|
if (this.arrow) {
|
|
23032
23466
|
middleware.push(arrow({ element: this.arrowRef, padding: gap }));
|
|
23033
23467
|
}
|
|
23034
|
-
|
|
23468
|
+
// Automatically hide the popover if the target moves outside the scrollport.
|
|
23469
|
+
if (this.autoHide) {
|
|
23470
|
+
// Per floating-ui docs: hide should generally be placed at the end.
|
|
23471
|
+
middleware.push(hide({ strategy: 'referenceHidden' }));
|
|
23472
|
+
}
|
|
23473
|
+
return computePositionWithSafeArea(this.eventTarget, this.host, {
|
|
23035
23474
|
placement: this.placement || 'top',
|
|
23036
23475
|
strategy: 'fixed',
|
|
23037
23476
|
middleware,
|
|
@@ -23098,9 +23537,9 @@ class PostPopovercontainer {
|
|
|
23098
23537
|
}
|
|
23099
23538
|
}
|
|
23100
23539
|
render() {
|
|
23101
|
-
return (hAsync(Host, { key: '
|
|
23540
|
+
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 => {
|
|
23102
23541
|
this.arrowRef = el;
|
|
23103
|
-
} })), hAsync("span", { key: '
|
|
23542
|
+
} })), hAsync("span", { key: 'deadbcc5892ed545a64b4a0e5e0936e0dd1feb70', part: "post-popovercontainer-border-mask" }), hAsync("slot", { key: '48c4db7ab222f3ef18157ce19d8ba15d75441f98' }))));
|
|
23104
23543
|
}
|
|
23105
23544
|
get host() { return getElement(this); }
|
|
23106
23545
|
static get style() { return postPopovercontainerCss(); }
|
|
@@ -23113,6 +23552,7 @@ class PostPopovercontainer {
|
|
|
23113
23552
|
"offset": [2],
|
|
23114
23553
|
"arrow": [4],
|
|
23115
23554
|
"safeSpace": [513, "safe-space"],
|
|
23555
|
+
"autoHide": [4, "auto-hide"],
|
|
23116
23556
|
"dynamicPlacement": [32],
|
|
23117
23557
|
"show": [64],
|
|
23118
23558
|
"hide": [64],
|
|
@@ -23123,26 +23563,6 @@ class PostPopovercontainer {
|
|
|
23123
23563
|
"$attrsToReflect$": [["safeSpace", "safe-space"]]
|
|
23124
23564
|
}; }
|
|
23125
23565
|
}
|
|
23126
|
-
PostPopovercontainer.STATIC_SIDES = {
|
|
23127
|
-
top: 'bottom',
|
|
23128
|
-
right: 'left',
|
|
23129
|
-
bottom: 'top',
|
|
23130
|
-
left: 'right',
|
|
23131
|
-
};
|
|
23132
|
-
PostPopovercontainer.PROPERTIES_TO_CLEAR = [
|
|
23133
|
-
'--post-safe-space-popover-x',
|
|
23134
|
-
'--post-safe-space-popover-y',
|
|
23135
|
-
'--post-safe-space-popover-x-start',
|
|
23136
|
-
'--post-safe-space-popover-x-end',
|
|
23137
|
-
'--post-safe-space-popover-y-start',
|
|
23138
|
-
'--post-safe-space-popover-y-end',
|
|
23139
|
-
'--post-safe-space-trigger-x',
|
|
23140
|
-
'--post-safe-space-trigger-y',
|
|
23141
|
-
'--post-safe-space-trigger-x-start',
|
|
23142
|
-
'--post-safe-space-trigger-x-end',
|
|
23143
|
-
'--post-safe-space-trigger-y-start',
|
|
23144
|
-
'--post-safe-space-trigger-y-end',
|
|
23145
|
-
];
|
|
23146
23566
|
__decorate$a([
|
|
23147
23567
|
OneOf(PLACEMENT_TYPES)
|
|
23148
23568
|
], PostPopovercontainer.prototype, "placement", void 0);
|
|
@@ -23199,7 +23619,7 @@ class PostProgressbar {
|
|
|
23199
23619
|
const max = this.getEffectiveMax();
|
|
23200
23620
|
const value = this.getEffectiveValue(min, max);
|
|
23201
23621
|
const percentage = ((value - min) / (max - min)) * 100;
|
|
23202
|
-
return (hAsync(Host, { key: '
|
|
23622
|
+
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}%` } })));
|
|
23203
23623
|
}
|
|
23204
23624
|
get host() { return getElement(this); }
|
|
23205
23625
|
static get style() { return postProgressbarCss(); }
|
|
@@ -23316,7 +23736,7 @@ class PostRating {
|
|
|
23316
23736
|
}
|
|
23317
23737
|
}
|
|
23318
23738
|
render() {
|
|
23319
|
-
return (hAsync(Host, { key: '
|
|
23739
|
+
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: {
|
|
23320
23740
|
'star': true,
|
|
23321
23741
|
'before-hover': i < this.hoveredIndex,
|
|
23322
23742
|
'active': i < Math.round(this.currentRating),
|
|
@@ -23356,7 +23776,7 @@ __decorate$8([
|
|
|
23356
23776
|
|
|
23357
23777
|
const SIDE_NAVIGATION_SIZES = ['large', 'small'];
|
|
23358
23778
|
|
|
23359
|
-
const postSideNavigationCss = () => `:host{
|
|
23779
|
+
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)}`;
|
|
23360
23780
|
|
|
23361
23781
|
var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
23362
23782
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -23486,7 +23906,7 @@ class PostSideNavigation {
|
|
|
23486
23906
|
} }, hAsync("slot", null), hAsync("post-closebutton", { onClick: () => this.hide() }, this.textClose)));
|
|
23487
23907
|
}
|
|
23488
23908
|
render() {
|
|
23489
|
-
return (hAsync(Host, { key: '
|
|
23909
|
+
return (hAsync(Host, { key: 'f7d9b4e515e5085d78e452298bdfbfb2325e7422', "data-version": version$1 }, this.device === 'desktop' ? this.renderNav() : this.renderDialog()));
|
|
23490
23910
|
}
|
|
23491
23911
|
get host() { return getElement(this); }
|
|
23492
23912
|
static get style() { return postSideNavigationCss(); }
|
|
@@ -23601,7 +24021,7 @@ class PostSideNavigationTrigger {
|
|
|
23601
24021
|
await this.sideNavigation?.toggle();
|
|
23602
24022
|
}
|
|
23603
24023
|
render() {
|
|
23604
|
-
return (hAsync(Host, { key: '
|
|
24024
|
+
return (hAsync(Host, { key: '1c908083562ec5ca01cd9410c72ac78ae11ce72f', "data-version": version$1 }, hAsync("slot", { key: '38f63424e8c66b4bf926418b57555dc676d24d45' })));
|
|
23605
24025
|
}
|
|
23606
24026
|
get host() { return getElement(this); }
|
|
23607
24027
|
static get style() { return postSideNavigationTriggerCss(); }
|
|
@@ -23731,7 +24151,7 @@ class PostStepper {
|
|
|
23731
24151
|
}
|
|
23732
24152
|
}
|
|
23733
24153
|
render() {
|
|
23734
|
-
return (hAsync(Host, { key: '
|
|
24154
|
+
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 }))));
|
|
23735
24155
|
}
|
|
23736
24156
|
get host() { return getElement(this); }
|
|
23737
24157
|
static get watchers() { return {
|
|
@@ -23790,7 +24210,7 @@ class PostStepperItem {
|
|
|
23790
24210
|
registerInstance(this, hostRef);
|
|
23791
24211
|
}
|
|
23792
24212
|
render() {
|
|
23793
|
-
return (hAsync(Host, { key: '
|
|
24213
|
+
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' })))));
|
|
23794
24214
|
}
|
|
23795
24215
|
static get style() { return postStepperItemCss(); }
|
|
23796
24216
|
static get cmpMeta() { return {
|
|
@@ -23846,9 +24266,9 @@ class PostTabItem {
|
|
|
23846
24266
|
this.isPagesVariant = hasAnchor;
|
|
23847
24267
|
}
|
|
23848
24268
|
render() {
|
|
23849
|
-
return (hAsync(Host, { key: '
|
|
24269
|
+
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
|
|
23850
24270
|
? { '--active': `var(--post-tab-item-${this.name}, 0)` }
|
|
23851
|
-
: undefined }, hAsync("slot", { key: '
|
|
24271
|
+
: undefined }, hAsync("slot", { key: 'fba27566a1226e560161f839df050666763bdce5' })));
|
|
23852
24272
|
}
|
|
23853
24273
|
get host() { return getElement(this); }
|
|
23854
24274
|
static get cmpMeta() { return {
|
|
@@ -23894,7 +24314,7 @@ class PostTabPanel {
|
|
|
23894
24314
|
this.panelId = `panel-${this.host.id || nanoid(6)}`;
|
|
23895
24315
|
}
|
|
23896
24316
|
render() {
|
|
23897
|
-
return (hAsync(Host, { key: '
|
|
24317
|
+
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' })));
|
|
23898
24318
|
}
|
|
23899
24319
|
get host() { return getElement(this); }
|
|
23900
24320
|
static get style() { return postTabPanelCss(); }
|
|
@@ -23915,7 +24335,7 @@ __decorate$3([
|
|
|
23915
24335
|
Type('string')
|
|
23916
24336
|
], PostTabPanel.prototype, "for", void 0);
|
|
23917
24337
|
|
|
23918
|
-
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)}`;
|
|
24338
|
+
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)}`;
|
|
23919
24339
|
|
|
23920
24340
|
var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
23921
24341
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -24343,10 +24763,10 @@ class PostTabs {
|
|
|
24343
24763
|
}
|
|
24344
24764
|
: undefined;
|
|
24345
24765
|
const style = !this.isPagesVariant ? tabStyle : undefined;
|
|
24346
|
-
return (hAsync(Host, { key: '
|
|
24766
|
+
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: () => {
|
|
24347
24767
|
this.moveMisplacedTabs();
|
|
24348
24768
|
this.enableTabs();
|
|
24349
|
-
} })), hAsync("button", { key: '
|
|
24769
|
+
} })), 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() })))));
|
|
24350
24770
|
}
|
|
24351
24771
|
get host() { return getElement(this); }
|
|
24352
24772
|
static get watchers() { return {
|
|
@@ -24413,7 +24833,7 @@ class PostTogglebutton {
|
|
|
24413
24833
|
});
|
|
24414
24834
|
}
|
|
24415
24835
|
render() {
|
|
24416
|
-
return (hAsync(Host, { key: '
|
|
24836
|
+
return (hAsync(Host, { key: '81fa9d922480059096e4146c10cf2ef72357b482', "data-version": version$1, role: "button", tabindex: "0", "aria-pressed": this.toggled.toString() }, hAsync("slot", { key: '4e8d793e3867ba4c9c8e17d509652309a79f032a' })));
|
|
24417
24837
|
}
|
|
24418
24838
|
get host() { return getElement(this); }
|
|
24419
24839
|
static get style() { return postTogglebuttonCss(); }
|
|
@@ -24497,7 +24917,7 @@ class PostTooltip {
|
|
|
24497
24917
|
}
|
|
24498
24918
|
render() {
|
|
24499
24919
|
const popoverClass = `${this.arrow ? 'has-arrow' : ''}`;
|
|
24500
|
-
return (hAsync(Host, { key: '
|
|
24920
|
+
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' }))));
|
|
24501
24921
|
}
|
|
24502
24922
|
get host() { return getElement(this); }
|
|
24503
24923
|
static get style() { return postTooltipCss(); }
|
|
@@ -24692,7 +25112,7 @@ class PostTooltipTrigger {
|
|
|
24692
25112
|
this.tooltip?.hide();
|
|
24693
25113
|
}
|
|
24694
25114
|
render() {
|
|
24695
|
-
return (hAsync(Host, { key: '
|
|
25115
|
+
return (hAsync(Host, { key: '55adc12f457aa8a5dd4357ed27876b0e526f7ae3', "data-version": version$1 }, hAsync("slot", { key: '84da1734ae1c1ac9376caa693108e3ed54bf176f', onSlotchange: () => this.handleSlotChange() })));
|
|
24696
25116
|
}
|
|
24697
25117
|
get host() { return getElement(this); }
|
|
24698
25118
|
static get style() { return postTooltipTriggerCss(); }
|