@swisspost/design-system-components 9.0.0-next.3 → 9.0.0-next.30
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/dist/.config/bindings.angular.js +4 -0
- package/dist/cjs/{attribute-observer-10f08c04.js → attribute-observer-6d8b886b.js} +4 -4
- package/dist/cjs/breakpoints-c6247c71.js +54 -0
- package/dist/cjs/check-non-empty-bd99d236.js +15 -0
- package/dist/cjs/check-one-of-75d270b5.js +13 -0
- package/dist/cjs/check-type-cdbf6d29.js +21 -0
- package/dist/cjs/check-url-220a286c.js +19 -0
- package/dist/cjs/debounce-158fd76f.js +13 -0
- package/dist/cjs/fade-72d5ef55.js +14 -0
- package/dist/cjs/get-root-7a3498ef.js +11 -0
- package/dist/cjs/index-23e36ff7.js +37 -0
- package/dist/cjs/{index-e1f32cce.js → index-d6bf2c66.js} +30 -18
- package/dist/cjs/index.browser-2f65f583.js +15 -0
- package/dist/cjs/index.cjs.js +56 -30
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{package-ef26e62c.js → package-c3dbd35b.js} +1 -1
- package/dist/cjs/{post-accordion-3878bf43.js → post-accordion-2108bc31.js} +9 -8
- package/dist/cjs/post-accordion-item-64051590.js +64 -0
- package/dist/cjs/post-accordion-item.cjs.entry.js +8 -5
- package/dist/cjs/post-accordion.cjs.entry.js +4 -4
- package/dist/cjs/{post-avatar-2bcfc016.js → post-avatar-2db58753.js} +10 -14
- package/dist/cjs/post-avatar.cjs.entry.js +4 -4
- package/dist/cjs/post-back-to-top-e64d70c8.js +76 -0
- package/dist/cjs/post-back-to-top.cjs.entry.js +15 -0
- package/dist/cjs/post-banner-caa5e06d.js +96 -0
- package/dist/cjs/post-banner.cjs.entry.js +19 -0
- package/dist/cjs/post-breadcrumb-acb6890e.js +112 -0
- package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +17 -0
- package/dist/cjs/post-breadcrumb.cjs.entry.js +13 -0
- package/dist/cjs/post-card-control-e2421427.js +283 -0
- package/dist/cjs/post-card-control.cjs.entry.js +5 -5
- package/dist/cjs/post-closebutton_15.cjs.entry.js +35 -0
- package/dist/cjs/{post-collapsible-trigger-6ae59c64.js → post-collapsible-trigger-13b87403.js} +50 -56
- package/dist/cjs/post-collapsible_2.cjs.entry.js +10 -6
- package/dist/cjs/post-components.cjs.js +2 -2
- package/dist/cjs/post-footer-057ce0a8.js +38 -0
- package/dist/cjs/post-footer.cjs.entry.js +12 -0
- package/dist/cjs/post-linkarea-e2b39f1a.js +30 -0
- package/dist/cjs/post-linkarea.cjs.entry.js +11 -0
- package/dist/cjs/post-menu-item-3f6c1fcb.js +68 -0
- package/dist/cjs/post-popover-dccede57.js +106 -0
- package/dist/cjs/post-popover.cjs.entry.js +4 -4
- package/dist/cjs/{post-rating-1d2c59b7.js → post-rating-bec67143.js} +16 -6
- package/dist/cjs/post-rating.cjs.entry.js +3 -3
- package/dist/cjs/post-tab-header-d32947dc.js +33 -0
- package/dist/cjs/post-tab-header.cjs.entry.js +5 -4
- package/dist/cjs/{post-tab-panel-80b1f3ee.js → post-tab-panel-07d462ac.js} +6 -5
- package/dist/cjs/post-tab-panel.cjs.entry.js +4 -3
- package/dist/cjs/{post-tabs-c2d42035.js → post-tabs-e5e71053.js} +23 -16
- package/dist/cjs/post-tabs.cjs.entry.js +4 -4
- package/dist/cjs/post-tag-380a1bf0.js +47 -0
- package/dist/cjs/post-tag.cjs.entry.js +3 -3
- package/dist/cjs/post-togglebutton-553316f3.js +3965 -0
- package/dist/cjs/{post-tooltip-9a120b2e.js → post-tooltip-40812a6b.js} +38 -25
- package/dist/cjs/post-tooltip.cjs.entry.js +8 -6
- package/dist/cjs/slide-cd1f09b3.js +28 -0
- package/dist/collection/animations/collapse.js +5 -5
- package/dist/collection/animations/fade.js +6 -2
- package/dist/collection/animations/slide.js +23 -0
- package/dist/collection/collection-manifest.json +20 -3
- package/dist/collection/components/post-accordion/post-accordion.css +1 -1
- package/dist/collection/components/post-accordion/post-accordion.js +5 -3
- package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
- package/dist/collection/components/post-accordion-item/post-accordion-item.js +26 -9
- package/dist/collection/components/post-avatar/post-avatar.js +8 -11
- package/dist/collection/components/post-back-to-top/post-back-to-top.css +1 -0
- package/dist/collection/components/post-back-to-top/post-back-to-top.js +109 -0
- package/dist/collection/components/post-banner/banner-types.js +1 -0
- package/dist/collection/components/post-banner/post-banner.css +3 -0
- package/dist/collection/components/{post-alert/post-alert.js → post-banner/post-banner.js} +50 -72
- package/dist/collection/components/post-breadcrumb/post-breadcrumb.css +3 -0
- package/dist/collection/components/post-breadcrumb/post-breadcrumb.js +163 -0
- package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.css +1 -0
- package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +98 -0
- package/dist/collection/components/post-card-control/post-card-control.css +1 -1
- package/dist/collection/components/post-card-control/post-card-control.js +55 -43
- package/dist/collection/components/post-closebutton/post-closebutton.js +13 -0
- package/dist/collection/components/post-collapsible/post-collapsible.css +1 -1
- package/dist/collection/components/post-collapsible/post-collapsible.js +15 -6
- package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +21 -20
- package/dist/collection/components/post-footer/post-footer.css +1 -0
- package/dist/collection/components/post-footer/post-footer.js +76 -0
- package/dist/collection/components/post-header/post-header.css +1 -0
- package/dist/collection/components/post-header/post-header.js +323 -0
- package/dist/collection/components/post-icon/post-icon.js +79 -46
- package/dist/collection/components/post-language-option/post-language-option.css +1 -1
- package/dist/collection/components/post-language-option/post-language-option.js +65 -10
- package/dist/collection/components/post-language-switch/post-language-switch.css +1 -0
- package/dist/collection/components/post-language-switch/post-language-switch.js +192 -0
- package/dist/collection/components/post-language-switch/switch-variants.js +1 -0
- package/dist/collection/components/post-linkarea/post-linkarea.css +1 -0
- package/dist/collection/components/post-linkarea/post-linkarea.js +30 -0
- package/dist/collection/components/post-list/post-list.css +3 -0
- package/dist/collection/components/post-list/post-list.js +90 -0
- package/dist/collection/components/post-list-item/post-list-item.css +1 -0
- package/dist/collection/components/post-list-item/post-list-item.js +26 -0
- package/dist/collection/components/post-logo/post-logo.css +1 -1
- package/dist/collection/components/post-logo/post-logo.js +3 -2
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -0
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +267 -0
- package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -0
- package/dist/collection/components/post-megadropdown/post-megadropdown.js +284 -0
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +1 -0
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +127 -0
- package/dist/collection/components/post-menu/post-menu.css +3 -0
- package/dist/collection/components/post-menu/post-menu.js +297 -0
- package/dist/collection/components/post-menu-item/post-menu-item.js +8 -0
- package/dist/collection/components/post-menu-trigger/post-menu-trigger.css +1 -0
- package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +122 -0
- package/dist/collection/components/post-popover/post-popover.css +1 -1
- package/dist/collection/components/post-popover/post-popover.js +6 -3
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +203 -39
- package/dist/collection/components/post-rating/post-rating.css +1 -1
- package/dist/collection/components/post-rating/post-rating.js +13 -2
- package/dist/collection/components/post-tab-header/post-tab-header.css +2 -2
- package/dist/collection/components/post-tab-header/post-tab-header.js +6 -4
- package/dist/collection/components/post-tab-panel/post-tab-panel.js +4 -2
- package/dist/collection/components/post-tabs/post-tabs.css +1 -1
- package/dist/collection/components/post-tabs/post-tabs.js +17 -14
- package/dist/collection/components/post-tag/post-tag.css +1 -1
- package/dist/collection/components/post-tag/post-tag.js +3 -2
- package/dist/collection/components/post-togglebutton/post-togglebutton.css +1 -0
- package/dist/collection/components/post-togglebutton/post-togglebutton.js +75 -0
- package/dist/collection/components/post-tooltip/post-tooltip.css +1 -1
- package/dist/collection/components/post-tooltip/post-tooltip.js +35 -17
- package/dist/collection/index.js +19 -2
- package/dist/collection/utils/attribute-observer.js +4 -4
- package/dist/collection/utils/breakpoints.js +50 -0
- package/dist/collection/utils/component-on-ready.js +4 -4
- package/dist/collection/utils/debounce.js +2 -1
- package/dist/collection/utils/get-focusable-children.js +33 -0
- package/dist/collection/utils/property-checkers/check-non-empty.js +6 -2
- package/dist/collection/utils/property-checkers/check-one-of.js +8 -3
- package/dist/collection/utils/property-checkers/check-pattern.js +8 -3
- package/dist/collection/utils/property-checkers/check-type.js +11 -6
- package/dist/collection/utils/property-checkers/check-url.js +11 -6
- package/dist/collection/utils/property-checkers/empty-or.js +5 -2
- package/dist/collection/utils/sass-export.js +8 -5
- package/dist/components/attribute-observer.js +4 -4
- package/dist/components/breakpoints.js +52 -0
- package/dist/components/check-non-empty.js +6 -2
- package/dist/components/check-one-of.js +8 -3
- package/dist/components/check-type.js +11 -6
- package/dist/components/debounce.js +11 -0
- package/dist/components/fade.js +6 -2
- package/dist/components/get-focusable-children.js +35 -0
- package/dist/components/get-root.js +9 -0
- package/dist/components/index.browser.js +13 -0
- package/dist/components/index.js +19 -2
- package/dist/components/index2.js +25 -12
- package/dist/components/package.js +1 -1
- package/dist/components/post-accordion-item2.js +33 -14
- package/dist/components/post-accordion2.js +6 -5
- package/dist/components/post-avatar2.js +7 -11
- package/dist/components/post-back-to-top.d.ts +11 -0
- package/dist/components/post-back-to-top.js +6 -0
- package/dist/components/post-back-to-top2.js +101 -0
- package/dist/components/post-banner.d.ts +11 -0
- package/dist/components/post-banner.js +6 -0
- package/dist/components/post-banner2.js +131 -0
- package/dist/components/post-breadcrumb-item.d.ts +11 -0
- package/dist/components/post-breadcrumb-item.js +6 -0
- package/dist/components/post-breadcrumb-item2.js +82 -0
- package/dist/components/post-breadcrumb.d.ts +11 -0
- package/dist/components/post-breadcrumb.js +6 -0
- package/dist/components/post-breadcrumb2.js +169 -0
- package/dist/components/post-card-control2.js +50 -39
- package/dist/components/post-closebutton.d.ts +11 -0
- package/dist/components/post-closebutton.js +6 -0
- package/dist/components/post-closebutton2.js +34 -0
- package/dist/components/post-collapsible-trigger2.js +23 -38
- package/dist/components/post-collapsible2.js +22 -14
- package/dist/components/post-footer.d.ts +11 -0
- package/dist/components/post-footer.js +6 -0
- package/dist/components/post-footer2.js +78 -0
- package/dist/components/post-header.d.ts +11 -0
- package/dist/components/post-header.js +6 -0
- package/dist/components/post-header2.js +401 -0
- package/dist/components/post-icon2.js +81 -45
- package/dist/components/post-language-option2.js +32 -14
- package/dist/components/post-language-switch.d.ts +11 -0
- package/dist/components/post-language-switch.js +6 -0
- package/dist/components/post-language-switch2.js +148 -0
- package/dist/components/post-linkarea.d.ts +11 -0
- package/dist/components/post-linkarea.js +6 -0
- package/dist/components/post-linkarea2.js +42 -0
- package/dist/components/post-list-item.d.ts +11 -0
- package/dist/components/post-list-item.js +6 -0
- package/dist/components/post-list-item2.js +35 -0
- package/dist/components/{post-alert.d.ts → post-list.d.ts} +4 -4
- package/dist/components/post-list.js +6 -0
- package/dist/components/post-list2.js +55 -0
- package/dist/components/post-logo2.js +4 -4
- package/dist/components/post-mainnavigation.d.ts +11 -0
- package/dist/components/post-mainnavigation.js +6 -0
- package/dist/components/post-mainnavigation2.js +270 -0
- package/dist/components/post-megadropdown-trigger.d.ts +11 -0
- package/dist/components/post-megadropdown-trigger.js +6 -0
- package/dist/components/post-megadropdown-trigger2.js +113 -0
- package/dist/components/post-megadropdown.d.ts +11 -0
- package/dist/components/post-megadropdown.js +6 -0
- package/dist/components/post-megadropdown2.js +198 -0
- package/dist/components/post-menu-item.d.ts +11 -0
- package/dist/components/post-menu-item.js +6 -0
- package/dist/components/post-menu-item2.js +27 -0
- package/dist/components/post-menu-trigger.d.ts +11 -0
- package/dist/components/post-menu-trigger.js +6 -0
- package/dist/components/post-menu-trigger2.js +109 -0
- package/dist/components/post-menu.d.ts +11 -0
- package/dist/components/post-menu.js +6 -0
- package/dist/components/post-menu2.js +193 -0
- package/dist/components/post-popover2.js +6 -4
- package/dist/components/post-popovercontainer2.js +249 -72
- package/dist/components/post-rating2.js +14 -4
- package/dist/components/post-tab-header2.js +7 -6
- package/dist/components/post-tab-panel2.js +4 -3
- package/dist/components/post-tabs2.js +20 -13
- package/dist/components/post-tag2.js +3 -3
- package/dist/components/post-togglebutton.d.ts +11 -0
- package/dist/components/post-togglebutton.js +6 -0
- package/dist/components/post-togglebutton2.js +61 -0
- package/dist/components/post-tooltip2.js +35 -22
- package/dist/components/slide.js +25 -0
- package/dist/docs.json +1653 -186
- package/dist/esm/{attribute-observer-37fa950a.js → attribute-observer-2f203993.js} +4 -4
- package/dist/esm/breakpoints-bbe0c54e.js +52 -0
- package/dist/esm/check-non-empty-258a56b3.js +13 -0
- package/dist/esm/check-one-of-0bee20f5.js +11 -0
- package/dist/esm/check-type-37d5d307.js +19 -0
- package/dist/esm/check-url-17962bc8.js +17 -0
- package/dist/esm/debounce-e54c7131.js +11 -0
- package/dist/esm/fade-1f3cacf4.js +11 -0
- package/dist/esm/get-root-7af2e0d1.js +9 -0
- package/dist/esm/{index-e1b64755.js → index-3419e46d.js} +30 -18
- package/dist/esm/index-8f8fe5b0.js +32 -0
- package/dist/esm/index.browser-51485f85.js +13 -0
- package/dist/esm/index.js +33 -24
- package/dist/esm/loader.js +3 -3
- package/dist/esm/package-da1ccbc7.js +3 -0
- package/dist/esm/{post-accordion-01d49d83.js → post-accordion-f5e449c0.js} +9 -8
- package/dist/esm/post-accordion-item-1195d94a.js +62 -0
- package/dist/esm/post-accordion-item.entry.js +8 -5
- package/dist/esm/post-accordion.entry.js +4 -4
- package/dist/esm/{post-avatar-6f24d1ab.js → post-avatar-9b85c11c.js} +10 -14
- package/dist/esm/post-avatar.entry.js +4 -4
- package/dist/esm/post-back-to-top-335075d4.js +74 -0
- package/dist/esm/post-back-to-top.entry.js +7 -0
- package/dist/esm/post-banner-6b939740.js +94 -0
- package/dist/esm/post-banner.entry.js +11 -0
- package/dist/esm/post-breadcrumb-5a61269c.js +110 -0
- package/dist/esm/post-breadcrumb-item_2.entry.js +8 -0
- package/dist/esm/post-breadcrumb.entry.js +5 -0
- package/dist/esm/post-card-control-7fe3804c.js +281 -0
- package/dist/esm/post-card-control.entry.js +5 -5
- package/dist/esm/post-closebutton_15.entry.js +13 -0
- package/dist/esm/{post-collapsible-trigger-654bf2b0.js → post-collapsible-trigger-e3ef47ff.js} +49 -55
- package/dist/esm/post-collapsible_2.entry.js +10 -6
- package/dist/esm/post-components.js +3 -3
- package/dist/esm/post-footer-e68c21a1.js +36 -0
- package/dist/esm/post-footer.entry.js +4 -0
- package/dist/esm/post-linkarea-bc607c52.js +28 -0
- package/dist/esm/post-linkarea.entry.js +3 -0
- package/dist/esm/post-menu-item-ab01683c.js +65 -0
- package/dist/esm/{post-popover-7d44a85c.js → post-popover-7427bb6d.js} +9 -7
- package/dist/esm/post-popover.entry.js +4 -4
- package/dist/esm/{post-rating-3cd3e97b.js → post-rating-16c9ada8.js} +16 -6
- package/dist/esm/post-rating.entry.js +3 -3
- package/dist/esm/post-tab-header-e0f39999.js +31 -0
- package/dist/esm/post-tab-header.entry.js +5 -4
- package/dist/esm/{post-tab-panel-163e6c99.js → post-tab-panel-9a8b852c.js} +6 -5
- package/dist/esm/post-tab-panel.entry.js +4 -3
- package/dist/esm/{post-tabs-8cb1bce9.js → post-tabs-34f70c88.js} +23 -16
- package/dist/esm/post-tabs.entry.js +4 -4
- package/dist/esm/post-tag-ec5578c2.js +45 -0
- package/dist/esm/post-tag.entry.js +3 -3
- package/dist/esm/post-togglebutton-5fb5e500.js +3949 -0
- package/dist/esm/{post-tooltip-dc7e1a21.js → post-tooltip-c201c4db.js} +38 -25
- package/dist/esm/post-tooltip.entry.js +8 -6
- package/dist/esm/slide-cd2850ee.js +25 -0
- package/dist/post-components/index.esm.js +1 -1
- package/dist/post-components/p-02f1cb03.js +1 -0
- package/dist/post-components/p-037755f5.js +1 -0
- package/dist/post-components/p-11cac89a.js +1 -0
- package/dist/post-components/p-181c73d5.js +1 -0
- package/dist/post-components/p-2995938c.entry.js +1 -0
- package/dist/post-components/p-2adbc7bf.js +1 -0
- package/dist/post-components/p-2ea2ced2.js +1 -0
- package/dist/post-components/p-2ff7f948.js +1 -0
- package/dist/post-components/p-32815e91.js +1 -0
- package/dist/post-components/{p-0ad93d89.js → p-33a5eac4.js} +3 -3
- package/dist/post-components/p-38c39936.js +1 -0
- package/dist/post-components/p-3a9ddb5a.entry.js +1 -0
- package/dist/post-components/p-3dbda892.entry.js +1 -0
- package/dist/post-components/p-3ea156c8.js +1 -0
- package/dist/post-components/p-4620784a.entry.js +1 -0
- package/dist/post-components/p-52231570.entry.js +1 -0
- package/dist/post-components/p-54ecbfaf.entry.js +1 -0
- package/dist/post-components/p-5959f2bd.js +1 -0
- package/dist/post-components/p-5aeb3656.js +1 -0
- package/dist/post-components/{p-3eab790d.js → p-5c758f41.js} +1 -1
- package/dist/post-components/p-61946a7e.js +1 -0
- package/dist/post-components/p-64e3de38.js +1 -0
- package/dist/post-components/p-66f2e7cb.js +1 -0
- package/dist/post-components/p-6912bf0f.entry.js +1 -0
- package/dist/post-components/p-691c07e3.entry.js +1 -0
- package/dist/post-components/p-6ed2e162.js +1 -0
- package/dist/post-components/p-712670a6.js +1 -0
- package/dist/post-components/p-7709c14a.js +1 -0
- package/dist/post-components/p-7f695ad8.js +1 -0
- package/dist/post-components/p-804c1f5f.entry.js +1 -0
- package/dist/post-components/p-85fdc2d3.js +1 -0
- package/dist/post-components/p-8779d765.entry.js +1 -0
- package/dist/post-components/p-8d625b78.entry.js +1 -0
- package/dist/post-components/p-9748a355.js +1 -0
- package/dist/post-components/p-9b052461.js +1 -0
- package/dist/post-components/p-a205b34d.entry.js +1 -0
- package/dist/post-components/p-b21729d2.entry.js +1 -0
- package/dist/post-components/p-b240727d.js +1 -0
- package/dist/post-components/p-b5318286.js +1 -0
- package/dist/post-components/p-be16b84d.entry.js +1 -0
- package/dist/post-components/p-c222539e.js +1 -0
- package/dist/post-components/p-c8afafa1.js +1 -0
- package/dist/post-components/p-d295b769.entry.js +1 -0
- package/dist/post-components/p-d45df336.js +1 -0
- package/dist/post-components/p-d58f5eaf.js +1 -0
- package/dist/post-components/p-e1baac59.js +1 -0
- package/dist/post-components/p-e585c6fe.js +1 -0
- package/dist/post-components/p-e644a698.entry.js +1 -0
- package/dist/post-components/p-e689bfbb.entry.js +1 -0
- package/dist/post-components/p-f17be52c.entry.js +1 -0
- package/dist/post-components/p-f4850dea.entry.js +1 -0
- package/dist/post-components/p-fc91cbc2.js +1 -0
- package/dist/post-components/post-components.esm.js +1 -1
- package/dist/types/animations/collapse.d.ts +2 -2
- package/dist/types/animations/fade.d.ts +2 -2
- package/dist/types/animations/slide.d.ts +2 -0
- package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +8 -2
- package/dist/types/components/post-avatar/post-avatar.d.ts +1 -1
- package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +19 -0
- package/dist/types/components/post-banner/banner-types.d.ts +2 -0
- package/dist/types/components/post-banner/post-banner.d.ts +49 -0
- package/dist/types/components/post-breadcrumb/post-breadcrumb.d.ts +30 -0
- package/dist/types/components/post-breadcrumb-item/post-breadcrumb-item.d.ts +20 -0
- package/dist/types/components/post-card-control/post-card-control.d.ts +9 -9
- package/dist/types/components/post-closebutton/post-closebutton.d.ts +7 -0
- package/dist/types/components/post-footer/post-footer.d.ts +23 -0
- package/dist/types/components/post-header/post-header.d.ts +51 -0
- package/dist/types/components/post-icon/post-icon.d.ts +13 -11
- package/dist/types/components/post-language-option/post-language-option.d.ts +13 -4
- package/dist/types/components/post-language-switch/post-language-switch.d.ts +39 -0
- package/dist/types/components/post-language-switch/switch-variants.d.ts +2 -0
- package/dist/types/components/post-linkarea/post-linkarea.d.ts +5 -0
- package/dist/types/components/post-list/post-list.d.ts +24 -0
- package/dist/types/components/post-list-item/post-list-item.d.ts +8 -0
- package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +71 -0
- package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +59 -0
- package/dist/types/components/post-megadropdown-trigger/post-megadropdown-trigger.d.ts +31 -0
- package/dist/types/components/post-menu/post-menu.d.ts +48 -0
- package/dist/types/components/post-menu-item/post-menu-item.d.ts +3 -0
- package/dist/types/components/post-menu-trigger/post-menu-trigger.d.ts +28 -0
- package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +27 -1
- package/dist/types/components/post-tab-header/post-tab-header.d.ts +1 -1
- package/dist/types/components/post-tabs/post-tabs.d.ts +1 -1
- package/dist/types/components/post-tag/post-tag.d.ts +1 -1
- package/dist/types/components/post-togglebutton/post-togglebutton.d.ts +15 -0
- package/dist/types/components.d.ts +532 -76
- package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/.config/bindings.angular.d.ts +2 -0
- package/dist/types/index.d.ts +20 -3
- package/dist/types/utils/attribute-observer.d.ts +1 -1
- package/dist/types/utils/breakpoints.d.ts +12 -0
- package/dist/types/utils/component-on-ready.d.ts +1 -1
- package/dist/types/utils/get-focusable-children.d.ts +1 -0
- package/dist/types/utils/get-root.d.ts +1 -1
- package/dist/types/utils/property-checkers/check-non-empty.d.ts +3 -1
- package/dist/types/utils/property-checkers/check-one-of.d.ts +3 -1
- package/dist/types/utils/property-checkers/check-pattern.d.ts +3 -1
- package/dist/types/utils/property-checkers/check-type.d.ts +3 -1
- package/dist/types/utils/property-checkers/check-url.d.ts +3 -1
- package/dist/types/utils/property-checkers/index.d.ts +12 -4
- package/dist/types/utils/sass-export.d.ts +5 -1
- package/loaders/attribute-observer.js +4 -4
- package/loaders/breakpoints.js +52 -0
- package/loaders/check-non-empty.js +6 -2
- package/loaders/check-one-of.js +8 -3
- package/loaders/check-type.js +11 -6
- package/loaders/debounce.js +11 -0
- package/loaders/fade.js +6 -2
- package/loaders/get-focusable-children.js +35 -0
- package/loaders/get-root.js +9 -0
- package/loaders/index.browser.js +13 -0
- package/loaders/index.d.ts +36 -2
- package/loaders/index.js +20 -2
- package/loaders/index2.js +25 -12
- package/loaders/package.js +1 -1
- package/loaders/post-accordion-item.js +1 -82
- package/loaders/post-accordion-item2.js +103 -0
- package/loaders/post-accordion.js +6 -5
- package/loaders/post-avatar.js +7 -11
- package/loaders/post-back-to-top.d.ts +11 -0
- package/loaders/post-back-to-top.js +104 -0
- package/loaders/post-banner.d.ts +11 -0
- package/loaders/post-banner.js +134 -0
- package/loaders/post-breadcrumb-item.d.ts +11 -0
- package/loaders/post-breadcrumb-item.js +6 -0
- package/loaders/post-breadcrumb-item2.js +82 -0
- package/loaders/post-breadcrumb.d.ts +11 -0
- package/loaders/post-breadcrumb.js +172 -0
- package/loaders/post-card-control.js +50 -39
- package/loaders/post-closebutton.d.ts +11 -0
- package/loaders/post-closebutton.js +37 -0
- package/loaders/post-collapsible-trigger2.js +23 -38
- package/loaders/post-collapsible2.js +21 -13
- package/loaders/post-footer.d.ts +11 -0
- package/loaders/post-footer.js +81 -0
- package/loaders/post-header.d.ts +11 -0
- package/loaders/post-header.js +404 -0
- package/loaders/post-icon2.js +81 -45
- package/loaders/post-language-option.js +31 -13
- package/loaders/post-language-switch.d.ts +11 -0
- package/loaders/post-language-switch.js +151 -0
- package/loaders/post-linkarea.d.ts +11 -0
- package/loaders/post-linkarea.js +45 -0
- package/loaders/post-list-item.d.ts +11 -0
- package/loaders/post-list-item.js +38 -0
- package/loaders/{post-alert.d.ts → post-list.d.ts} +4 -4
- package/loaders/post-list.js +58 -0
- package/loaders/post-logo.js +5 -5
- package/loaders/post-mainnavigation.d.ts +11 -0
- package/loaders/post-mainnavigation.js +273 -0
- package/loaders/post-megadropdown-trigger.d.ts +11 -0
- package/loaders/post-megadropdown-trigger.js +116 -0
- package/loaders/post-megadropdown.d.ts +11 -0
- package/loaders/post-megadropdown.js +201 -0
- package/loaders/post-menu-item.d.ts +11 -0
- package/loaders/post-menu-item.js +6 -0
- package/loaders/post-menu-item2.js +27 -0
- package/loaders/post-menu-trigger.d.ts +11 -0
- package/loaders/post-menu-trigger.js +6 -0
- package/loaders/post-menu-trigger2.js +109 -0
- package/loaders/post-menu.d.ts +11 -0
- package/loaders/post-menu.js +6 -0
- package/loaders/post-menu2.js +193 -0
- package/loaders/post-popover.js +6 -4
- package/loaders/post-popovercontainer2.js +249 -72
- package/loaders/post-rating.js +14 -4
- package/loaders/post-tab-header.js +7 -6
- package/loaders/post-tab-panel.js +4 -3
- package/loaders/post-tabs.js +20 -13
- package/loaders/post-tag.js +3 -3
- package/loaders/post-togglebutton.d.ts +11 -0
- package/loaders/post-togglebutton.js +64 -0
- package/loaders/post-tooltip.js +34 -21
- package/loaders/slide.js +25 -0
- package/package.json +26 -20
- package/dist/cjs/check-non-empty-eeaa8f77.js +0 -11
- package/dist/cjs/check-one-of-f4f5d0c0.js +0 -8
- package/dist/cjs/fade-35a3633a.js +0 -10
- package/dist/cjs/index-01f30442.js +0 -52
- package/dist/cjs/post-accordion-item-0278e6e2.js +0 -52
- package/dist/cjs/post-alert-5f795d9c.js +0 -98
- package/dist/cjs/post-alert.cjs.entry.js +0 -16
- package/dist/cjs/post-card-control-5ffcd201.js +0 -272
- package/dist/cjs/post-icon-1f71aa0f.js +0 -104
- package/dist/cjs/post-icon.cjs.entry.js +0 -15
- package/dist/cjs/post-language-option-4a3ecaeb.js +0 -67
- package/dist/cjs/post-language-option.cjs.entry.js +0 -14
- package/dist/cjs/post-logo-7070d727.js +0 -39
- package/dist/cjs/post-logo.cjs.entry.js +0 -14
- package/dist/cjs/post-popover-de1b8d95.js +0 -104
- package/dist/cjs/post-popovercontainer-6a25713a.js +0 -2186
- package/dist/cjs/post-popovercontainer.cjs.entry.js +0 -11
- package/dist/cjs/post-tab-header-877676bf.js +0 -32
- package/dist/cjs/post-tag-5e2c7798.js +0 -47
- package/dist/collection/components/post-alert/alert-types.js +0 -1
- package/dist/collection/components/post-alert/post-alert.css +0 -7
- package/dist/components/post-alert.js +0 -6
- package/dist/components/post-alert2.js +0 -136
- package/dist/esm/check-non-empty-58bd6b17.js +0 -9
- package/dist/esm/check-one-of-6b3ef8eb.js +0 -6
- package/dist/esm/fade-7fd71785.js +0 -7
- package/dist/esm/index-f41b763f.js +0 -46
- package/dist/esm/package-0311770e.js +0 -3
- package/dist/esm/post-accordion-item-366f385b.js +0 -50
- package/dist/esm/post-alert-5a69f40d.js +0 -96
- package/dist/esm/post-alert.entry.js +0 -8
- package/dist/esm/post-card-control-2a7939c3.js +0 -270
- package/dist/esm/post-icon-885f17e9.js +0 -102
- package/dist/esm/post-icon.entry.js +0 -7
- package/dist/esm/post-language-option-0c2818aa.js +0 -65
- package/dist/esm/post-language-option.entry.js +0 -6
- package/dist/esm/post-logo-dd425f2e.js +0 -37
- package/dist/esm/post-logo.entry.js +0 -6
- package/dist/esm/post-popovercontainer-e6d11d81.js +0 -2184
- package/dist/esm/post-popovercontainer.entry.js +0 -3
- package/dist/esm/post-tab-header-776a991a.js +0 -30
- package/dist/esm/post-tag-deefcc86.js +0 -45
- package/dist/post-components/p-048538ea.js +0 -1
- package/dist/post-components/p-0a1f5e13.entry.js +0 -1
- package/dist/post-components/p-0a4318ff.js +0 -1
- package/dist/post-components/p-0d64ef0c.entry.js +0 -1
- package/dist/post-components/p-1198a5f2.entry.js +0 -1
- package/dist/post-components/p-13d1bef7.entry.js +0 -1
- package/dist/post-components/p-16d057a6.js +0 -1
- package/dist/post-components/p-1a091fca.entry.js +0 -1
- package/dist/post-components/p-1f35b0ba.entry.js +0 -1
- package/dist/post-components/p-246a6d28.js +0 -1
- package/dist/post-components/p-2737eaf5.js +0 -1
- package/dist/post-components/p-3aa5e1e5.js +0 -1
- package/dist/post-components/p-3d3795f9.js +0 -1
- package/dist/post-components/p-3fabf6e4.entry.js +0 -1
- package/dist/post-components/p-4f0617e6.js +0 -1
- package/dist/post-components/p-53bacbbc.js +0 -1
- package/dist/post-components/p-5c8cb76f.entry.js +0 -1
- package/dist/post-components/p-5eee8d31.entry.js +0 -1
- package/dist/post-components/p-60e72b25.js +0 -1
- package/dist/post-components/p-611b3c41.js +0 -1
- package/dist/post-components/p-66ed33a9.js +0 -1
- package/dist/post-components/p-681b751d.entry.js +0 -1
- package/dist/post-components/p-6adeaa6c.js +0 -1
- package/dist/post-components/p-6b6a1e82.entry.js +0 -1
- package/dist/post-components/p-752e6a98.entry.js +0 -1
- package/dist/post-components/p-8734876e.js +0 -1
- package/dist/post-components/p-9ac2a947.js +0 -1
- package/dist/post-components/p-9d211a45.js +0 -1
- package/dist/post-components/p-b095519d.js +0 -1
- package/dist/post-components/p-b38eaabf.js +0 -1
- package/dist/post-components/p-cdfcc758.entry.js +0 -1
- package/dist/post-components/p-d50d4ec1.entry.js +0 -1
- package/dist/post-components/p-d785856c.js +0 -1
- package/dist/post-components/p-deb4131c.js +0 -1
- package/dist/post-components/p-e18f3639.js +0 -1
- package/dist/post-components/p-f1b7797f.entry.js +0 -1
- package/dist/post-components/p-f6efc76b.entry.js +0 -1
- package/dist/post-components/p-f825d681.js +0 -1
- package/dist/post-components/p-fff1c2ee.entry.js +0 -1
- package/dist/types/components/post-alert/alert-types.d.ts +0 -2
- package/dist/types/components/post-alert/post-alert.d.ts +0 -54
- package/loaders/post-alert.js +0 -139
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import { Host, h } from "@stencil/core";
|
|
2
|
+
const SCROLL_REPEAT_INTERVAL = 100; // Interval for repeated scrolling when holding down scroll button
|
|
3
|
+
const NAVBAR_DISABLE_DURATION = 400; // Duration to temporarily disable navbar interactions during scrolling
|
|
4
|
+
const NAVIGATION_LIST_SELECTOR = 'post-list > [role="list"]:not(post-megadropdown *)';
|
|
5
|
+
const NAVIGATION_ITEM_SELECTOR = 'post-list-item :is(a, button):not(post-megadropdown *)';
|
|
6
|
+
export class PostMainnavigation {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.canScrollLeft = false;
|
|
9
|
+
this.canScrollRight = false;
|
|
10
|
+
this.translationAmount = 0;
|
|
11
|
+
}
|
|
12
|
+
header;
|
|
13
|
+
navbar;
|
|
14
|
+
rightScrollButton;
|
|
15
|
+
leftScrollButton;
|
|
16
|
+
scrollRepeatInterval;
|
|
17
|
+
navbarDisableTimer;
|
|
18
|
+
resizeObserver;
|
|
19
|
+
mutationObserver = new MutationObserver(async (mutations) => {
|
|
20
|
+
// Wait for all elements to be hydrated
|
|
21
|
+
await Promise.all(mutations
|
|
22
|
+
.flatMap((mutation) => Array.from(mutation.addedNodes))
|
|
23
|
+
.map((item) => item.componentOnReady ? item.componentOnReady() : Promise.resolve(item)));
|
|
24
|
+
// Recalculate scrollability after DOM changes
|
|
25
|
+
this.checkScrollability();
|
|
26
|
+
});
|
|
27
|
+
host;
|
|
28
|
+
/**
|
|
29
|
+
* Update navbar translation when 'translateAmount' changes and recalculate scrollability
|
|
30
|
+
*/
|
|
31
|
+
onTranslateAmountChanges(value) {
|
|
32
|
+
this.navbar.style.marginInlineStart = `-${value}px`;
|
|
33
|
+
this.checkScrollability();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Retrieves a reference to the closest 'post-header' element when the main navigation is added to the DOM.
|
|
37
|
+
* This ensures that we can interact with the header for mobile menu toggling.
|
|
38
|
+
*/
|
|
39
|
+
connectedCallback() {
|
|
40
|
+
this.header = this.host.closest('post-header');
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Cleans up references and disconnects the MutationObserver when the main navigation is removed from the DOM.
|
|
44
|
+
*/
|
|
45
|
+
disconnectedCallback() {
|
|
46
|
+
this.header = null;
|
|
47
|
+
this.mutationObserver.disconnect();
|
|
48
|
+
if (this.resizeObserver) {
|
|
49
|
+
this.resizeObserver.disconnect();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
componentDidLoad() {
|
|
53
|
+
setTimeout(() => this.checkScrollability()); // Initial check to determine if scrolling is needed
|
|
54
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
55
|
+
this.checkScrollability();
|
|
56
|
+
});
|
|
57
|
+
// Observe the navbar and the navigation list for size changes
|
|
58
|
+
if (this.navbar) {
|
|
59
|
+
this.resizeObserver.observe(this.navbar);
|
|
60
|
+
const navList = this.navigationList;
|
|
61
|
+
if (navList) {
|
|
62
|
+
this.resizeObserver.observe(navList);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
this.mutationObserver.observe(this.navigationList, { subtree: true, childList: true }); // Recheck scrollability when navigation list changes
|
|
66
|
+
this.fixLayoutShift();
|
|
67
|
+
// Handle focus changes and adjust scroll as needed
|
|
68
|
+
this.navbar.addEventListener('focusin', e => this.adjustTranslation(e));
|
|
69
|
+
}
|
|
70
|
+
// Hack that duplicates navigation elements to fix the layout shift on active elements
|
|
71
|
+
fixLayoutShift() {
|
|
72
|
+
// Select first level of main navigation elements, both the links and the megadropdown trigger buttons
|
|
73
|
+
const children = this.host.querySelectorAll('nav > post-list > div > post-list-item > a, nav > post-list > div > post-list-item > post-megadropdown-trigger > button');
|
|
74
|
+
// Update HTML so that the content is duplicated
|
|
75
|
+
children.forEach(child => (child.innerHTML = `<span class="nav-el-active">${child.innerHTML}</span><span class="nav-el-inactive"aria-hidden="true">${child.innerHTML}</span>`));
|
|
76
|
+
}
|
|
77
|
+
handleBackButtonClick() {
|
|
78
|
+
if (this.header)
|
|
79
|
+
this.header.toggleMobileMenu();
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Moves focus on the navbar and adjusts scrolling to bring focused element into view.
|
|
83
|
+
*/
|
|
84
|
+
adjustTranslation(e) {
|
|
85
|
+
const focusedElement = e.target;
|
|
86
|
+
if (!this.canScroll || !focusedElement.matches(NAVIGATION_ITEM_SELECTOR))
|
|
87
|
+
return;
|
|
88
|
+
// We need to move the element into the view before it is focused to avoid browser default behavior
|
|
89
|
+
e.preventDefault();
|
|
90
|
+
this.withoutTransition(() => {
|
|
91
|
+
// Try scrolling in both directions, only the necessary translation will actually occur
|
|
92
|
+
this.translateRightTo(focusedElement);
|
|
93
|
+
this.translateLeftTo(focusedElement);
|
|
94
|
+
focusedElement.focus();
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Checks if scrolling is possible in either direction (left or right) and updates the state accordingly.
|
|
99
|
+
*/
|
|
100
|
+
checkScrollability() {
|
|
101
|
+
const { scrollWidth, clientWidth } = this.navbar;
|
|
102
|
+
const couldScroll = this.canScroll;
|
|
103
|
+
if (scrollWidth === clientWidth) {
|
|
104
|
+
// If scroll width equals client width, scrolling is disabled in both directions
|
|
105
|
+
this.canScrollLeft = this.canScrollRight = false;
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
this.canScrollLeft = this.translationAmount > 0; // Scrolling left is possible if not at the start
|
|
109
|
+
this.canScrollRight = clientWidth + this.translationAmount < scrollWidth; // Scrolling right is possible if not at the end
|
|
110
|
+
}
|
|
111
|
+
if (couldScroll && !this.canScroll) {
|
|
112
|
+
this.withoutTransition(() => (this.translationAmount = 0));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Returns whether scrolling is enabled in either the left or right direction.
|
|
117
|
+
*/
|
|
118
|
+
get canScroll() {
|
|
119
|
+
return this.canScrollLeft || this.canScrollRight;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Handles the scrolling behavior when a user clicks on the left or right scroll buttons.
|
|
123
|
+
*/
|
|
124
|
+
handleScrollButtonClick(direction) {
|
|
125
|
+
if (!this.canScroll)
|
|
126
|
+
return;
|
|
127
|
+
// Disable interaction with the navbar during scrolling
|
|
128
|
+
this.disableNavbar();
|
|
129
|
+
// Perform the initial scroll action
|
|
130
|
+
this.scroll(direction);
|
|
131
|
+
// Repeat the scrolling action while the button is held down
|
|
132
|
+
this.scrollRepeatInterval = setInterval(() => {
|
|
133
|
+
this.scroll(direction);
|
|
134
|
+
}, SCROLL_REPEAT_INTERVAL);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Stops the repeated scrolling when the mouse button is released.
|
|
138
|
+
*/
|
|
139
|
+
stopScrolling() {
|
|
140
|
+
if (this.scrollRepeatInterval)
|
|
141
|
+
clearInterval(this.scrollRepeatInterval);
|
|
142
|
+
}
|
|
143
|
+
scroll(direction) {
|
|
144
|
+
const navigationItems = Array.from(this.navigationItems);
|
|
145
|
+
if (direction === 'left')
|
|
146
|
+
navigationItems.reverse();
|
|
147
|
+
for (const item of navigationItems) {
|
|
148
|
+
const couldScroll = direction === 'left' ? this.translateLeftTo(item, true) : this.translateRightTo(item, true);
|
|
149
|
+
if (couldScroll)
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
translateRightTo(navigationItem, skipSmallTranslation = false) {
|
|
154
|
+
const listItem = navigationItem.closest('post-list-item');
|
|
155
|
+
// Calculate the right edge position of the list item relative to the left of the screen
|
|
156
|
+
const rightEdgePosition = listItem.offsetLeft + listItem.offsetWidth;
|
|
157
|
+
// Calculate the last visible position on the screen, right before the right scroll button
|
|
158
|
+
const lastVisiblePosition = this.host.clientWidth - this.rightScrollButton.clientWidth;
|
|
159
|
+
// If the item is already fully visible, no translation is needed
|
|
160
|
+
if (rightEdgePosition < lastVisiblePosition)
|
|
161
|
+
return false;
|
|
162
|
+
const translationIncrease = rightEdgePosition - lastVisiblePosition + 1; // + 1 because offset values are rounded
|
|
163
|
+
// If the required scroll distance is too small (less than half the width of the item), avoid unnecessary scroll
|
|
164
|
+
if (skipSmallTranslation && translationIncrease < listItem.clientWidth / 2)
|
|
165
|
+
return false;
|
|
166
|
+
// Calculate the maximum translation amount to prevent scrolling past the end of the content
|
|
167
|
+
const maximumTranslation = this.navbar.scrollWidth - this.host.clientWidth;
|
|
168
|
+
// Adjust the translation amount, ensuring it doesn't exceed the maximum scrollable area
|
|
169
|
+
const { marginRight } = getComputedStyle(this.navigationList);
|
|
170
|
+
this.translationAmount =
|
|
171
|
+
Math.min(this.translationAmount + translationIncrease, maximumTranslation) +
|
|
172
|
+
parseInt(marginRight);
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
175
|
+
translateLeftTo(navigationItem, skipSmallTranslation = false) {
|
|
176
|
+
const listItem = navigationItem.closest('post-list-item');
|
|
177
|
+
// Get the left edge position of the list item relative to the left of the screen
|
|
178
|
+
const leftEdgePosition = listItem.offsetLeft;
|
|
179
|
+
// Calculate the first visible position on the screen to the left, right after the left scroll button
|
|
180
|
+
const firstVisiblePosition = this.leftScrollButton.clientWidth;
|
|
181
|
+
// If the item is already fully visible, no translation is needed
|
|
182
|
+
if (leftEdgePosition > firstVisiblePosition)
|
|
183
|
+
return false;
|
|
184
|
+
const translationDecrease = firstVisiblePosition - leftEdgePosition + 1; // + 1 because offset values are rounded
|
|
185
|
+
// If the required scroll distance is too small (less than half the width of the item), don't perform the scroll
|
|
186
|
+
if (skipSmallTranslation && translationDecrease < listItem.clientWidth / 2)
|
|
187
|
+
return false;
|
|
188
|
+
// Calculate the minimum allowed translation amount (no negative scrolling allowed)
|
|
189
|
+
const minimumTranslation = 0;
|
|
190
|
+
// Adjust the translation amount, ensuring it doesn't go below the minimum scrollable area
|
|
191
|
+
const { marginLeft } = getComputedStyle(this.navigationList);
|
|
192
|
+
this.translationAmount = Math.max(this.translationAmount - translationDecrease - parseInt(marginLeft), minimumTranslation);
|
|
193
|
+
return true;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Returns the navigation list container element
|
|
197
|
+
*/
|
|
198
|
+
get navigationList() {
|
|
199
|
+
return this.navbar.querySelector(NAVIGATION_LIST_SELECTOR);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Returns the navigation items
|
|
203
|
+
*/
|
|
204
|
+
get navigationItems() {
|
|
205
|
+
return this.navbar.querySelectorAll(NAVIGATION_ITEM_SELECTOR);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Temporarily disables interactions with the navbar during scrolling to prevent accidental clicks.
|
|
209
|
+
* Re-enables interactions after a brief delay to avoid blocking the user entirely.
|
|
210
|
+
*/
|
|
211
|
+
disableNavbar() {
|
|
212
|
+
if (this.navbarDisableTimer)
|
|
213
|
+
clearTimeout(this.navbarDisableTimer);
|
|
214
|
+
this.navbar.style.pointerEvents = 'none';
|
|
215
|
+
this.navbarDisableTimer = setTimeout(() => {
|
|
216
|
+
this.navbar.style.pointerEvents = 'initial';
|
|
217
|
+
}, NAVBAR_DISABLE_DURATION);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Allows to translate the navbar without a transition
|
|
221
|
+
*/
|
|
222
|
+
withoutTransition(callback) {
|
|
223
|
+
const transition = this.navbar.style.transition;
|
|
224
|
+
this.navbar.style.transition = 'none';
|
|
225
|
+
callback();
|
|
226
|
+
setTimeout(() => {
|
|
227
|
+
this.navbar.style.transition = transition;
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
render() {
|
|
231
|
+
return (h(Host, { key: '3c740536fd968e22d22a8117766df12800e6eb6e', slot: "post-mainnavigation" }, h("div", { key: '113602ca8b5ee48c290b31b77329b34d85df40bd', onClick: () => this.handleBackButtonClick(), class: "back-button" }, h("slot", { key: '6cd5e18449f1a9340a6c35c0b97385f0a4bf6ede', name: "back-button" })), h("nav", { key: '6fb39c4a929f973468407928b43f877233fa9326', ref: el => (this.navbar = el) }, h("slot", { key: 'dd9957b2dea293bc7153239f817ac76f37db3728' })), h("div", { key: '3942637952cec7095dbbcfa16aea1a3768a52fdb', class: `left-scroll-button${this.canScrollLeft ? '' : ' d-none'}`, "aria-hidden": "true" }, h("button", { key: '381b0aef119a161e6e3ac8f396ef8a214df0c439', type: "button", tabindex: "-1", ref: el => (this.leftScrollButton = el), onMouseDown: () => this.handleScrollButtonClick('left') }, h("post-icon", { key: '632835cf735a1d5487d1e18861622318041b9fb3', "aria-hidden": "true", name: "chevronleft" }))), h("div", { key: '2cb6c7222c5e755ba1fdfc8c9e68d73299efe0de', class: `right-scroll-button${this.canScrollRight ? '' : ' d-none'}`, "aria-hidden": "true" }, h("button", { key: 'd665cde32ea285134522a00689accf3cc40c927c', type: "button", tabindex: "-1", ref: el => (this.rightScrollButton = el), onMouseDown: () => this.handleScrollButtonClick('right') }, h("post-icon", { key: '13530078ad9aa9b48bdfd5bd78c8aa8d6ea910d0', "aria-hidden": "true", name: "chevronright" })))));
|
|
232
|
+
}
|
|
233
|
+
static get is() { return "post-mainnavigation"; }
|
|
234
|
+
static get originalStyleUrls() {
|
|
235
|
+
return {
|
|
236
|
+
"$": ["./post-mainnavigation.scss"]
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
static get styleUrls() {
|
|
240
|
+
return {
|
|
241
|
+
"$": ["post-mainnavigation.css"]
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
static get states() {
|
|
245
|
+
return {
|
|
246
|
+
"canScrollLeft": {},
|
|
247
|
+
"canScrollRight": {},
|
|
248
|
+
"translationAmount": {}
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
static get elementRef() { return "host"; }
|
|
252
|
+
static get watchers() {
|
|
253
|
+
return [{
|
|
254
|
+
"propName": "translationAmount",
|
|
255
|
+
"methodName": "onTranslateAmountChanges"
|
|
256
|
+
}];
|
|
257
|
+
}
|
|
258
|
+
static get listeners() {
|
|
259
|
+
return [{
|
|
260
|
+
"name": "mouseup",
|
|
261
|
+
"method": "stopScrolling",
|
|
262
|
+
"target": "window",
|
|
263
|
+
"capture": false,
|
|
264
|
+
"passive": true
|
|
265
|
+
}];
|
|
266
|
+
}
|
|
267
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@keyframes slide-in{0%{transform:translateX(100%)}100%{transform:translateX(0%)}}@keyframes slide-out{from{transform:translateX(0%)}to{transform:translateX(100%)}}@keyframes slide-down{from{transform:translateY(-100%)}to{transform:translateY(0%)}}@keyframes slide-up{0%{transform:translateY(0%)}100%{transform:translateY(-100%)}}*,::before,::after{box-sizing:border-box}.megadropdown-container{box-shadow:0 8px 6px rgba(0,0,0,.16);position:absolute;background-color:#fafafa;border:none;z-index:1;width:100%;inset-block-start:100%;inset-inline-start:0;border-radius:0}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.megadropdown-container{border-block-end:1px solid CanvasText}}.megadropdown-container.slide-in{animation:slide-down 350ms forwards}.megadropdown-container.slide-out{animation:slide-up 350ms forwards}@media screen and (max-width: 1023.98px){.megadropdown-container{z-index:4;position:fixed;inset-block-start:var(--header-navigation-current-inset);inset-inline:0;height:calc(min(var(--header-scroll-parent-height, 100dvh),100dvh) - var(--header-height));border-top:unset;overflow-y:auto;overscroll-behavior:contain}.megadropdown-container.slide-in{animation:slide-in 350ms forwards}.megadropdown-container.slide-out{animation:slide-out 350ms forwards}}.megadropdown{padding:31px 40px 40px;background-color:#fafafa}@media screen and (max-width: 1023.98px){.megadropdown{display:flex;flex-direction:column;width:inherit;padding:16px 32px 24px}}@media screen and (max-width: 599.98px){.megadropdown{padding-inline:16px}}.megadropdown .megadropdown-content{gap:1.5rem;display:grid;grid-template-columns:repeat(auto-fit, minmax(min(15vw, 100%), 1fr));grid-auto-rows:1fr auto;grid-auto-flow:dense}@media screen and (max-width: 1023.98px){.megadropdown .megadropdown-content{grid-template-columns:repeat(auto-fit, minmax(min(35vw, 100%), 1fr))}}@media screen and (max-width: 599.98px){.megadropdown .megadropdown-content{grid-template-columns:1fr}}.megadropdown h2{display:none;margin-top:0;margin-bottom:8px;font-weight:900}.megadropdown h2 a{text-decoration:none;display:none;font-weight:inherit;border-bottom:0;border-top:0}@media screen and (max-width: 1023.98px){.megadropdown h2{display:block;font-size:1.25rem}}@media screen and (max-width: 599.98px){.megadropdown h2{font-size:1.125rem}}.megadropdown post-list{display:grid;grid-row:span 2;grid-template-rows:subgrid;row-gap:0px}.megadropdown post-list>[role=list]{flex-direction:unset;display:unset}.megadropdown post-list>*{width:100%}.megadropdown post-list .list-title{display:flex;flex-direction:column-reverse;height:100%}.megadropdown post-list .list-title h3{font-size:20px;display:block;font-weight:900}.megadropdown post-list .list-title h3:not(:has(a)),.megadropdown post-list .list-title h3 a{padding:16px 12px 14px 8px}.megadropdown post-list .list-title h3:not(:has(a)){position:relative}.megadropdown post-list .list-title h3:not(:has(a))::before{content:"";background-color:#050400;bottom:0;width:100%;height:2px;position:absolute;left:0}.megadropdown post-list .list-title h3 a{border-radius:0;text-decoration:none;font-size:inherit;display:flex;align-items:center;justify-content:space-between;min-height:53px;width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative;height:unset;font-weight:900}.megadropdown post-list .list-title h3 a::before{content:"";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}.megadropdown post-list .list-title h3 a.selected,.megadropdown post-list .list-title h3 a[aria-expanded=true]{background-color:#050400;color:#fff}.megadropdown post-list .list-title h3 a:hover{background-color:#504f4b;color:#fff}.megadropdown post-list .list-title h3 a:hover::before{background-color:#504f4b}.megadropdown post-list .list-title h3 a::before{height:2px}@media screen and (max-width: 1023.98px){.megadropdown post-list .list-title h3{font-size:1rem}.megadropdown post-list .list-title h3:not(:has(a)),.megadropdown post-list .list-title h3 a{padding:14px 12px 12px 8px}}@media screen and (max-width: 599.98px){.megadropdown post-list .list-title h3{font-size:.875rem}}.megadropdown post-list-item>a{padding-block:13px 12px;padding-inline-start:8px;display:flex;text-decoration:none;width:100%;min-width:100%;height:auto;min-height:48px;white-space:normal;word-break:break-word}.megadropdown post-list-item>a:hover{border-block-width:0}@media screen and (min-width: 1024px){.megadropdown post-list-item>a{font-size:1.25rem}}@media screen and (max-width: 1023.98px){.megadropdown post-list-item>a{padding-block:12px 11px}}@media screen and (max-width: 599.98px){.megadropdown post-list-item>a{font-size:.875rem}}.megadropdown .back-button{display:none;margin-bottom:2rem}.megadropdown .back-button .btn{width:auto}@media screen and (max-width: 1023.98px){.megadropdown .back-button{order:-1;display:block}}.megadropdown .close-button{position:absolute;top:1rem;right:1rem}@media screen and (max-width: 1023.98px){.megadropdown .close-button{display:none}}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { getFocusableChildren } from "../../utils/get-focusable-children";
|
|
2
|
+
import { h, Host } from "@stencil/core";
|
|
3
|
+
import { breakpoint } from "../../utils/breakpoints";
|
|
4
|
+
export class PostMegadropdown {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.device = breakpoint.get('name');
|
|
7
|
+
this.isVisible = false;
|
|
8
|
+
this.animationClass = null;
|
|
9
|
+
}
|
|
10
|
+
firstFocusableEl;
|
|
11
|
+
lastFocusableEl;
|
|
12
|
+
host;
|
|
13
|
+
/** Tracks the currently active dropdown instance. */
|
|
14
|
+
static activeDropdown = null;
|
|
15
|
+
breakpointChange(e) {
|
|
16
|
+
this.device = e.detail;
|
|
17
|
+
if (this.device === 'desktop' && this.isVisible) {
|
|
18
|
+
this.animationClass = null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Emits when the dropdown is shown or hidden.
|
|
23
|
+
* The event payload is an object.
|
|
24
|
+
* `isVisible` is true when the dropdown gets opened and false when it gets closed
|
|
25
|
+
* `focusParent` determines whether after the closing of the mega dropdown, the focus should go back to the trigger parent or naturally go to the next focusable element in the page
|
|
26
|
+
**/
|
|
27
|
+
postToggleMegadropdown;
|
|
28
|
+
disconnectedCallback() {
|
|
29
|
+
this.removeListeners();
|
|
30
|
+
window.removeEventListener('postBreakpoint:name', this.breakpointChange.bind(this));
|
|
31
|
+
if (PostMegadropdown.activeDropdown === this) {
|
|
32
|
+
PostMegadropdown.activeDropdown = null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
componentWillRender() {
|
|
36
|
+
this.getFocusableElements();
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Toggles the dropdown visibility based on its current state.
|
|
40
|
+
*/
|
|
41
|
+
async toggle() {
|
|
42
|
+
if (this.isVisible) {
|
|
43
|
+
this.hide();
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
await this.show();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Displays the dropdown.
|
|
51
|
+
*/
|
|
52
|
+
async show() {
|
|
53
|
+
if (PostMegadropdown.activeDropdown && PostMegadropdown.activeDropdown !== this) {
|
|
54
|
+
// Close the previously active dropdown without animation
|
|
55
|
+
PostMegadropdown.activeDropdown.forceClose();
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
this.animationClass = 'slide-in';
|
|
59
|
+
}
|
|
60
|
+
this.isVisible = true;
|
|
61
|
+
PostMegadropdown.activeDropdown = this;
|
|
62
|
+
this.postToggleMegadropdown.emit({ isVisible: this.isVisible });
|
|
63
|
+
if (this.firstFocusableEl &&
|
|
64
|
+
window.getComputedStyle(this.firstFocusableEl).display !== 'none') {
|
|
65
|
+
this.firstFocusableEl.focus();
|
|
66
|
+
}
|
|
67
|
+
this.addListeners();
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Hides the dropdown with an animation.
|
|
71
|
+
*/
|
|
72
|
+
async hide(focusParent = true, forceClose = false) {
|
|
73
|
+
this.postToggleMegadropdown.emit({ isVisible: false, focusParent: focusParent });
|
|
74
|
+
if (forceClose) {
|
|
75
|
+
this.forceClose();
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
this.animationClass = 'slide-out';
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Sets focus to the first focusable element within the component.
|
|
83
|
+
*/
|
|
84
|
+
async focusFirst() {
|
|
85
|
+
this.firstFocusableEl?.focus();
|
|
86
|
+
}
|
|
87
|
+
connectedCallback() {
|
|
88
|
+
window.addEventListener('postBreakpoint:name', this.breakpointChange.bind(this));
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Forces the dropdown to close without animation.
|
|
92
|
+
*/
|
|
93
|
+
forceClose() {
|
|
94
|
+
this.isVisible = false;
|
|
95
|
+
this.animationClass = null;
|
|
96
|
+
this.postToggleMegadropdown.emit({ isVisible: this.isVisible, focusParent: false });
|
|
97
|
+
this.removeListeners();
|
|
98
|
+
}
|
|
99
|
+
handleAnimationEnd() {
|
|
100
|
+
if (this.animationClass === 'slide-out') {
|
|
101
|
+
this.isVisible = false;
|
|
102
|
+
this.animationClass = null;
|
|
103
|
+
PostMegadropdown.activeDropdown = null;
|
|
104
|
+
this.removeListeners();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
handleClickOutside = (event) => {
|
|
108
|
+
if (this.device !== 'desktop')
|
|
109
|
+
return;
|
|
110
|
+
const target = event.target;
|
|
111
|
+
if (this.host.contains(target)) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (target instanceof HTMLElement) {
|
|
115
|
+
const trigger = target.closest('post-megadropdown-trigger');
|
|
116
|
+
if (trigger) {
|
|
117
|
+
const targetDropdownId = trigger.getAttribute('for');
|
|
118
|
+
if (targetDropdownId !== this.host.id) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
this.hide(false);
|
|
124
|
+
};
|
|
125
|
+
addListeners() {
|
|
126
|
+
this.host.addEventListener('keydown', e => this.keyboardHandler(e));
|
|
127
|
+
document.addEventListener('keyup', e => this.handleTabOutside(e));
|
|
128
|
+
document.addEventListener('mousedown', this.handleClickOutside);
|
|
129
|
+
}
|
|
130
|
+
removeListeners() {
|
|
131
|
+
this.host.removeEventListener('keydown', e => this.keyboardHandler(e));
|
|
132
|
+
document.removeEventListener('keyup', e => this.handleTabOutside(e));
|
|
133
|
+
document.removeEventListener('mousedown', this.handleClickOutside);
|
|
134
|
+
}
|
|
135
|
+
getFocusableElements() {
|
|
136
|
+
const focusableEls = Array.from(this.host.querySelectorAll('post-list-item, h3, .back-button'));
|
|
137
|
+
const focusableChildren = focusableEls.flatMap(el => Array.from(getFocusableChildren(el)));
|
|
138
|
+
this.firstFocusableEl = focusableChildren[0];
|
|
139
|
+
this.lastFocusableEl = focusableChildren[focusableChildren.length - 1];
|
|
140
|
+
}
|
|
141
|
+
// Loop through the focusable children
|
|
142
|
+
keyboardHandler(e) {
|
|
143
|
+
if (e.key === 'Tab' && this.device !== 'desktop') {
|
|
144
|
+
if (e.shiftKey && document.activeElement === this.firstFocusableEl) {
|
|
145
|
+
// If back tab (TAB + Shift) and first element is focused, focus goes to the last element of the megadropdown
|
|
146
|
+
e.preventDefault();
|
|
147
|
+
this.lastFocusableEl.focus();
|
|
148
|
+
}
|
|
149
|
+
else if (!e.shiftKey && document.activeElement === this.lastFocusableEl) {
|
|
150
|
+
// If TAB and last element is focused, focus goes back to the first element of the megadropdown
|
|
151
|
+
e.preventDefault();
|
|
152
|
+
this.firstFocusableEl.focus();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
handleTabOutside(e) {
|
|
157
|
+
if (e.key === 'Tab' && this.device === 'desktop') {
|
|
158
|
+
if (!this.host.contains(e.target)) {
|
|
159
|
+
this.hide(false);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
render() {
|
|
164
|
+
const containerStyle = this.isVisible ? {} : { display: 'none' };
|
|
165
|
+
return (h(Host, { key: '823a6bf8bfa10457db0fe6d0693d514d747ad559' }, h("div", { key: '7bf71bd92e5cf548ac66acbb08ee0e39145f5e1e', class: `megadropdown-container ${this.animationClass || ''}`, style: containerStyle, onAnimationEnd: () => this.handleAnimationEnd() }, h("div", { key: '0d37ac5f97521db3003f619465ed771b14291966', class: "megadropdown" }, h("slot", { key: '5b43cc2a8978eb42b5626f62a84c639e9abffb10', name: "megadropdown-title" }), h("div", { key: 'e8e3a768ad28e14597f9671137dc6815baea5666', class: "megadropdown-content" }, h("slot", { key: 'f230793ceb2daca7d79e3098e057acbba5c2d879' })), h("div", { key: 'd008a5f9f25fbd722023c7f966541ebc29e8cc01', onClick: () => this.hide(true), class: "back-button" }, h("slot", { key: 'aec3e3119e5dd90b715f269f677f6b98008d215a', name: "back-button" })), h("div", { key: 'f2c283e08b13cb78b8af1b7779758b2b924f343c', onClick: () => this.hide(true), class: "close-button" }, h("slot", { key: '72a40613d8b0b8c50354f510d66290c661c86f69', name: "close-button" }))))));
|
|
166
|
+
}
|
|
167
|
+
static get is() { return "post-megadropdown"; }
|
|
168
|
+
static get originalStyleUrls() {
|
|
169
|
+
return {
|
|
170
|
+
"$": ["post-megadropdown.scss"]
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
static get styleUrls() {
|
|
174
|
+
return {
|
|
175
|
+
"$": ["post-megadropdown.css"]
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
static get states() {
|
|
179
|
+
return {
|
|
180
|
+
"device": {},
|
|
181
|
+
"isVisible": {},
|
|
182
|
+
"animationClass": {}
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
static get events() {
|
|
186
|
+
return [{
|
|
187
|
+
"method": "postToggleMegadropdown",
|
|
188
|
+
"name": "postToggleMegadropdown",
|
|
189
|
+
"bubbles": true,
|
|
190
|
+
"cancelable": true,
|
|
191
|
+
"composed": true,
|
|
192
|
+
"docs": {
|
|
193
|
+
"tags": [],
|
|
194
|
+
"text": "Emits when the dropdown is shown or hidden.\nThe event payload is an object.\n`isVisible` is true when the dropdown gets opened and false when it gets closed\n`focusParent` determines whether after the closing of the mega dropdown, the focus should go back to the trigger parent or naturally go to the next focusable element in the page"
|
|
195
|
+
},
|
|
196
|
+
"complexType": {
|
|
197
|
+
"original": "{ isVisible: boolean; focusParent?: boolean }",
|
|
198
|
+
"resolved": "{ isVisible: boolean; focusParent?: boolean; }",
|
|
199
|
+
"references": {}
|
|
200
|
+
}
|
|
201
|
+
}];
|
|
202
|
+
}
|
|
203
|
+
static get methods() {
|
|
204
|
+
return {
|
|
205
|
+
"toggle": {
|
|
206
|
+
"complexType": {
|
|
207
|
+
"signature": "() => Promise<void>",
|
|
208
|
+
"parameters": [],
|
|
209
|
+
"references": {
|
|
210
|
+
"Promise": {
|
|
211
|
+
"location": "global",
|
|
212
|
+
"id": "global::Promise"
|
|
213
|
+
}
|
|
214
|
+
},
|
|
215
|
+
"return": "Promise<void>"
|
|
216
|
+
},
|
|
217
|
+
"docs": {
|
|
218
|
+
"text": "Toggles the dropdown visibility based on its current state.",
|
|
219
|
+
"tags": []
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
"show": {
|
|
223
|
+
"complexType": {
|
|
224
|
+
"signature": "() => Promise<void>",
|
|
225
|
+
"parameters": [],
|
|
226
|
+
"references": {
|
|
227
|
+
"Promise": {
|
|
228
|
+
"location": "global",
|
|
229
|
+
"id": "global::Promise"
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
"return": "Promise<void>"
|
|
233
|
+
},
|
|
234
|
+
"docs": {
|
|
235
|
+
"text": "Displays the dropdown.",
|
|
236
|
+
"tags": []
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
"hide": {
|
|
240
|
+
"complexType": {
|
|
241
|
+
"signature": "(focusParent?: boolean, forceClose?: boolean) => Promise<void>",
|
|
242
|
+
"parameters": [{
|
|
243
|
+
"name": "focusParent",
|
|
244
|
+
"type": "boolean",
|
|
245
|
+
"docs": ""
|
|
246
|
+
}, {
|
|
247
|
+
"name": "forceClose",
|
|
248
|
+
"type": "boolean",
|
|
249
|
+
"docs": ""
|
|
250
|
+
}],
|
|
251
|
+
"references": {
|
|
252
|
+
"Promise": {
|
|
253
|
+
"location": "global",
|
|
254
|
+
"id": "global::Promise"
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
"return": "Promise<void>"
|
|
258
|
+
},
|
|
259
|
+
"docs": {
|
|
260
|
+
"text": "Hides the dropdown with an animation.",
|
|
261
|
+
"tags": []
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
"focusFirst": {
|
|
265
|
+
"complexType": {
|
|
266
|
+
"signature": "() => Promise<void>",
|
|
267
|
+
"parameters": [],
|
|
268
|
+
"references": {
|
|
269
|
+
"Promise": {
|
|
270
|
+
"location": "global",
|
|
271
|
+
"id": "global::Promise"
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
"return": "Promise<void>"
|
|
275
|
+
},
|
|
276
|
+
"docs": {
|
|
277
|
+
"text": "Sets focus to the first focusable element within the component.",
|
|
278
|
+
"tags": []
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
static get elementRef() { return "host"; }
|
|
284
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
post-megadropdown-trigger{width:100%;position:relative;z-index:3}
|