@swisspost/design-system-components 9.0.0-next.24 → 9.0.0-next.26
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/cjs/index.cjs.js +21 -21
- package/dist/cjs/{package-be30a2ae.js → package-8dee32a7.js} +1 -1
- package/dist/cjs/{post-accordion-980e3707.js → post-accordion-0b2214eb.js} +1 -1
- package/dist/cjs/{post-accordion-item-34526ddd.js → post-accordion-item-de23d2a4.js} +1 -1
- package/dist/cjs/post-accordion-item.cjs.entry.js +2 -2
- package/dist/cjs/post-accordion.cjs.entry.js +2 -2
- package/dist/cjs/{post-avatar-ed964ac4.js → post-avatar-ae0f8117.js} +1 -1
- package/dist/cjs/post-avatar.cjs.entry.js +2 -2
- package/dist/cjs/{post-back-to-top-12ee9182.js → post-back-to-top-821fa8c6.js} +4 -4
- package/dist/cjs/post-back-to-top.cjs.entry.js +3 -3
- package/dist/cjs/{post-banner-13755850.js → post-banner-f703f839.js} +1 -1
- package/dist/cjs/post-banner.cjs.entry.js +2 -2
- package/dist/cjs/{post-breadcrumb-d6d9f5a4.js → post-breadcrumb-db70dbb0.js} +1 -1
- package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +2 -2
- package/dist/cjs/post-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/{post-card-control-4a6fbf19.js → post-card-control-0a234cd7.js} +1 -1
- package/dist/cjs/post-card-control.cjs.entry.js +2 -2
- package/dist/cjs/post-closebutton_15.cjs.entry.js +3 -3
- package/dist/cjs/{post-collapsible-trigger-5bdd97f1.js → post-collapsible-trigger-cde50d59.js} +1 -1
- package/dist/cjs/post-collapsible_2.cjs.entry.js +2 -2
- package/dist/cjs/{post-footer-f2217a34.js → post-footer-da4d4cf7.js} +1 -1
- package/dist/cjs/post-footer.cjs.entry.js +2 -2
- package/dist/cjs/{post-linkarea-ced4f6ad.js → post-linkarea-e08ff922.js} +1 -1
- package/dist/cjs/post-linkarea.cjs.entry.js +2 -2
- package/dist/cjs/{post-menu-item-4ef32029.js → post-menu-item-6e00329f.js} +1 -1
- package/dist/cjs/{post-popover-1a5b1f4c.js → post-popover-083e3d27.js} +1 -1
- package/dist/cjs/post-popover.cjs.entry.js +2 -2
- package/dist/cjs/{post-rating-9a9ce431.js → post-rating-7aea8f7a.js} +1 -1
- package/dist/cjs/post-rating.cjs.entry.js +2 -2
- package/dist/cjs/{post-tab-header-43c52a57.js → post-tab-header-4ec43572.js} +1 -1
- package/dist/cjs/post-tab-header.cjs.entry.js +2 -2
- package/dist/cjs/{post-tab-panel-16064007.js → post-tab-panel-140f40c4.js} +1 -1
- package/dist/cjs/post-tab-panel.cjs.entry.js +2 -2
- package/dist/cjs/{post-tabs-e4739459.js → post-tabs-0a05ad67.js} +1 -1
- package/dist/cjs/post-tabs.cjs.entry.js +2 -2
- package/dist/cjs/{post-tag-e1ed422b.js → post-tag-64ca2aaa.js} +1 -1
- package/dist/cjs/post-tag.cjs.entry.js +2 -2
- package/dist/cjs/{post-togglebutton-38ec151e.js → post-togglebutton-245f7bb8.js} +83 -58
- package/dist/cjs/{post-tooltip-463eaaf6.js → post-tooltip-0dfe7ecc.js} +1 -1
- package/dist/cjs/post-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/{slide-8ae17ee4.js → slide-cd1f09b3.js} +6 -6
- package/dist/collection/animations/slide.js +6 -6
- package/dist/collection/components/post-back-to-top/post-back-to-top.js +2 -2
- package/dist/collection/components/post-header/post-header.css +1 -1
- package/dist/collection/components/post-header/post-header.js +79 -54
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
- package/dist/components/package.js +1 -1
- package/dist/components/post-back-to-top2.js +3 -3
- package/dist/components/post-header2.js +81 -56
- package/dist/components/post-mainnavigation2.js +1 -1
- package/dist/components/slide.js +7 -7
- package/dist/docs.json +1 -1
- package/dist/esm/index.js +21 -21
- package/dist/esm/package-69fdcae3.js +3 -0
- package/dist/esm/{post-accordion-7f239aa6.js → post-accordion-f67ce0ad.js} +1 -1
- package/dist/esm/{post-accordion-item-bac98792.js → post-accordion-item-4f1a4597.js} +1 -1
- package/dist/esm/post-accordion-item.entry.js +2 -2
- package/dist/esm/post-accordion.entry.js +2 -2
- package/dist/esm/{post-avatar-f74f6de0.js → post-avatar-52a2ba46.js} +1 -1
- package/dist/esm/post-avatar.entry.js +2 -2
- package/dist/esm/{post-back-to-top-6fdad155.js → post-back-to-top-9d72c88f.js} +4 -4
- package/dist/esm/post-back-to-top.entry.js +3 -3
- package/dist/esm/{post-banner-8448d770.js → post-banner-9487b62d.js} +1 -1
- package/dist/esm/post-banner.entry.js +2 -2
- package/dist/esm/{post-breadcrumb-d35e27a0.js → post-breadcrumb-5096ed4f.js} +1 -1
- package/dist/esm/post-breadcrumb-item_2.entry.js +2 -2
- package/dist/esm/post-breadcrumb.entry.js +2 -2
- package/dist/esm/{post-card-control-9233ca52.js → post-card-control-de358f9d.js} +1 -1
- package/dist/esm/post-card-control.entry.js +2 -2
- package/dist/esm/post-closebutton_15.entry.js +3 -3
- package/dist/esm/{post-collapsible-trigger-f98e1f9a.js → post-collapsible-trigger-4566760b.js} +1 -1
- package/dist/esm/post-collapsible_2.entry.js +2 -2
- package/dist/esm/{post-footer-f4be2a31.js → post-footer-9117392a.js} +1 -1
- package/dist/esm/post-footer.entry.js +2 -2
- package/dist/esm/{post-linkarea-c9d8d2be.js → post-linkarea-9412ebb6.js} +1 -1
- package/dist/esm/post-linkarea.entry.js +2 -2
- package/dist/esm/{post-menu-item-1ea9397a.js → post-menu-item-b475d581.js} +1 -1
- package/dist/esm/{post-popover-aa961cc7.js → post-popover-33f9c2a2.js} +1 -1
- package/dist/esm/post-popover.entry.js +2 -2
- package/dist/esm/{post-rating-17ecd4f4.js → post-rating-215726b3.js} +1 -1
- package/dist/esm/post-rating.entry.js +2 -2
- package/dist/esm/{post-tab-header-6f9449f1.js → post-tab-header-bd6cc764.js} +1 -1
- package/dist/esm/post-tab-header.entry.js +2 -2
- package/dist/esm/{post-tab-panel-fcecd935.js → post-tab-panel-1070163c.js} +1 -1
- package/dist/esm/post-tab-panel.entry.js +2 -2
- package/dist/esm/{post-tabs-008c118d.js → post-tabs-2bb77fdd.js} +1 -1
- package/dist/esm/post-tabs.entry.js +2 -2
- package/dist/esm/{post-tag-1e709fe5.js → post-tag-45a5e46a.js} +1 -1
- package/dist/esm/post-tag.entry.js +2 -2
- package/dist/esm/{post-togglebutton-a932d770.js → post-togglebutton-83debaae.js} +83 -58
- package/dist/esm/{post-tooltip-ad5b722d.js → post-tooltip-c29ac8e8.js} +1 -1
- package/dist/esm/post-tooltip.entry.js +2 -2
- package/dist/esm/{slide-62768431.js → slide-cd2850ee.js} +7 -7
- package/dist/post-components/index.esm.js +1 -1
- package/dist/post-components/p-07788cb9.entry.js +1 -0
- package/dist/post-components/p-12d9fcd9.entry.js +1 -0
- package/dist/post-components/{p-7daa1a9c.js → p-1698e849.js} +1 -1
- package/dist/post-components/p-189d9cb4.entry.js +1 -0
- package/dist/post-components/{p-edcc075c.js → p-1c55ede8.js} +1 -1
- package/dist/post-components/p-21003c46.entry.js +1 -0
- package/dist/post-components/{p-23c2b420.js → p-24d7d1a9.js} +1 -1
- package/dist/post-components/{p-c1307879.js → p-303eaf1d.js} +1 -1
- package/dist/post-components/p-3aaac027.entry.js +1 -0
- package/dist/post-components/{p-5e4d5df5.js → p-3bbd92a0.js} +1 -1
- package/dist/post-components/{p-1382d4c9.js → p-4bdde06a.js} +1 -1
- package/dist/post-components/{p-78d9d13e.entry.js → p-4f471325.entry.js} +1 -1
- package/dist/post-components/p-54c9cdb3.entry.js +1 -0
- package/dist/post-components/p-61423175.entry.js +1 -0
- package/dist/post-components/p-62de2967.entry.js +1 -0
- package/dist/post-components/{p-53dd7a51.js → p-848f737d.js} +1 -1
- package/dist/post-components/p-876b1909.entry.js +1 -0
- package/dist/post-components/p-8bb67775.entry.js +1 -0
- package/dist/post-components/{p-6545ed83.js → p-984a0615.js} +1 -1
- package/dist/post-components/p-9b052461.js +1 -0
- package/dist/post-components/{p-f0719685.js → p-9e673495.js} +1 -1
- package/dist/post-components/p-a354bd50.entry.js +1 -0
- package/dist/post-components/{p-923793ff.js → p-a37b1832.js} +1 -1
- package/dist/post-components/p-a98123d4.entry.js +1 -0
- package/dist/post-components/{p-12d7344a.entry.js → p-b332e4ba.entry.js} +1 -1
- package/dist/post-components/{p-bd957c85.js → p-b646df4e.js} +1 -1
- package/dist/post-components/{p-cfe29403.js → p-bad8774d.js} +1 -1
- package/dist/post-components/p-bb0c8b7f.js +1 -0
- package/dist/post-components/{p-637b619c.js → p-cdf8245c.js} +1 -1
- package/dist/post-components/p-d20f0d29.entry.js +1 -0
- package/dist/post-components/p-daba2472.js +1 -0
- package/dist/post-components/p-e28d2566.entry.js +1 -0
- package/dist/post-components/{p-f4c60bbb.js → p-e60601e1.js} +1 -1
- package/dist/post-components/p-e6272866.entry.js +1 -0
- package/dist/post-components/p-e66049a5.js +1 -0
- package/dist/post-components/{p-43b10fa7.js → p-e95db4f0.js} +1 -1
- package/dist/post-components/p-eae73564.js +1 -0
- package/dist/post-components/p-ed2b9ebc.entry.js +1 -0
- package/dist/post-components/{p-a0345520.js → p-f6ada564.js} +1 -1
- package/dist/post-components/p-fb548ceb.entry.js +1 -0
- package/dist/post-components/post-components.esm.js +1 -1
- package/dist/types/components/post-header/post-header.d.ts +10 -7
- package/loaders/package.js +1 -1
- package/loaders/post-back-to-top.js +3 -3
- package/loaders/post-header.js +81 -56
- package/loaders/post-mainnavigation.js +1 -1
- package/loaders/slide.js +7 -7
- package/package.json +3 -3
- package/dist/esm/package-7deeece6.js +0 -3
- package/dist/post-components/p-0e6ce700.entry.js +0 -1
- package/dist/post-components/p-20e07b4f.entry.js +0 -1
- package/dist/post-components/p-3b7f8717.entry.js +0 -1
- package/dist/post-components/p-453aa3c8.js +0 -1
- package/dist/post-components/p-4af6dbed.js +0 -1
- package/dist/post-components/p-6239b8f8.entry.js +0 -1
- package/dist/post-components/p-64ba9026.entry.js +0 -1
- package/dist/post-components/p-6a79800f.entry.js +0 -1
- package/dist/post-components/p-6eaba4b6.entry.js +0 -1
- package/dist/post-components/p-73acda40.entry.js +0 -1
- package/dist/post-components/p-7796d5c5.entry.js +0 -1
- package/dist/post-components/p-87c82919.entry.js +0 -1
- package/dist/post-components/p-8f80c6f8.entry.js +0 -1
- package/dist/post-components/p-9184781c.entry.js +0 -1
- package/dist/post-components/p-96e3823e.entry.js +0 -1
- package/dist/post-components/p-9b4b416c.entry.js +0 -1
- package/dist/post-components/p-a5682a18.entry.js +0 -1
- package/dist/post-components/p-ac46ccd1.entry.js +0 -1
- package/dist/post-components/p-c8bfefed.js +0 -1
- package/dist/post-components/p-d6757696.entry.js +0 -1
- package/dist/post-components/p-e47d9a2b.js +0 -1
- package/dist/post-components/p-fbe84d70.js +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const index = require('./index-d6bf2c66.js');
|
|
4
|
-
const _package = require('./package-
|
|
5
|
-
const slide = require('./slide-
|
|
4
|
+
const _package = require('./package-8dee32a7.js');
|
|
5
|
+
const slide = require('./slide-cd1f09b3.js');
|
|
6
6
|
const index$1 = require('./index-23e36ff7.js');
|
|
7
7
|
const checkNonEmpty = require('./check-non-empty-bd99d236.js');
|
|
8
8
|
const checkType = require('./check-type-cdbf6d29.js');
|
|
@@ -188,7 +188,7 @@ function getFocusableChildren(element) {
|
|
|
188
188
|
return visibleFocusableChildren;
|
|
189
189
|
}
|
|
190
190
|
|
|
191
|
-
const postHeaderCss = "*,::before,::after{box-sizing:border-box}:host{z-index:1020;position:relative}:host(:not(:has([slot=title]))) .local-header{padding-block-start:0}:host(:not(:has([slot=title]))) .local-sub{display:none}.d-flex{display:flex}.space-between{justify-content:space-between}.global-header{background-color:#fc0;display:flex;justify-content:space-between;position:sticky;padding-inline:4px;height:var(--global-header-height)}@media screen and (max-width: 1023.98px){.global-header{z-index:3;inset-block-start:0}}@media screen and (min-width: 1024px){.global-header{z-index:5;padding-inline-end:12px;inset-block-start:calc((var(--global-header-height) - var(--global-header-reduced-height))*-1)}}.global-sub{display:flex;align-items:center;gap:24px}.align-end{align-items:flex-end}.logo{flex:1 0 auto;height:var(--global-header-height);width:var(--global-header-height);min-height:var(--global-header-reduced-height);align-self:flex-end}@media screen and (min-width: 1024px){.logo{height:calc(var(--global-header-height) - var(--header-scroll-top))}}::slotted(ul){margin-block:0 !important;list-style:none;display:flex;padding-left:0;gap:1rem;flex-shrink:0 !important}.local-header{display:flex;position:sticky;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px;min-height:var(--local-header-min-height);background:#fff;transition:box-shadow .2s ease-in-out}.local-header::after{content:\"\";position:absolute;width:100%;height:1px;background-color:#e1e0dc;bottom:-1px;z-index:1}@media screen and (min-width: 1024px){.local-header{z-index:3;inset-block-start:calc(-1*(var(--local-header-height) - var(--main-navigation-height)) + var(--global-header-reduced-height));padding-block-start:18px;box-shadow:var(--post-device-elevation-300)}}@media screen and (max-width: 1023.98px){.local-header{z-index:2;inset-block-start:var(--global-header-height);padding-block:12px;flex-wrap:wrap;gap:16px}.local-header.local-header-mobile-extended::after{bottom:0}.local-header:not(.local-header-mobile-extended){box-shadow:var(--post-device-elevation-300)}}.local-sub{margin-inline-end:16px}::slotted(.list-inline){margin:0 !important;z-index:3 !important;position:relative !important}
|
|
191
|
+
const postHeaderCss = "*,::before,::after{box-sizing:border-box}:host{z-index:1020;position:relative}:host(:not(:has([slot=title]))) .local-header{padding-block-start:0}:host(:not(:has([slot=title]))) .local-sub{display:none}.d-flex{display:flex}.space-between{justify-content:space-between}.global-header{background-color:#fc0;display:flex;justify-content:space-between;position:sticky;padding-inline:4px;height:var(--global-header-height)}@media screen and (max-width: 1023.98px){.global-header{z-index:3;inset-block-start:0}}@media screen and (min-width: 1024px){.global-header{z-index:5;padding-inline-end:12px;inset-block-start:calc((var(--global-header-height) - var(--global-header-reduced-height))*-1)}}.global-sub{display:flex;align-items:center;gap:24px}.align-end{align-items:flex-end}.logo{flex:1 0 auto;height:var(--global-header-height);width:var(--global-header-height);min-height:var(--global-header-reduced-height);align-self:flex-end}@media screen and (min-width: 1024px){.logo{height:calc(var(--global-header-height) - var(--header-scroll-top))}}::slotted(ul){margin-block:0 !important;list-style:none;display:flex;padding-left:0;gap:1rem;flex-shrink:0 !important}.local-header{display:flex;position:sticky;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px;min-height:var(--local-header-min-height);background:#fff;transition:box-shadow .2s ease-in-out}.local-header::after{content:\"\";position:absolute;width:100%;height:1px;background-color:#e1e0dc;bottom:-1px;z-index:1}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.local-header::after{background-color:Highlight}}@media screen and (min-width: 1024px){.local-header{z-index:3;inset-block-start:calc(-1*(var(--local-header-height) - var(--main-navigation-height)) + var(--global-header-reduced-height));padding-block-start:18px;box-shadow:var(--post-device-elevation-300)}}@media screen and (max-width: 1023.98px){.local-header{z-index:2;inset-block-start:var(--global-header-height);padding-block:12px;flex-wrap:wrap;gap:16px}.local-header.local-header-mobile-extended::after{bottom:0}.local-header:not(.local-header-mobile-extended){box-shadow:var(--post-device-elevation-300)}}.local-sub{margin-inline-end:16px}::slotted(.list-inline){margin:0 !important;z-index:3 !important;position:relative !important}@media screen and (min-width: 1024px){.mobile-toggle{display:none}}.navigation{width:100%}@media screen and (min-width: 1024px){.navigation{inset-block-start:var(--global-header-reduced-height)}.navigation::before{display:block;content:\"\";position:absolute;inset:0;z-index:2;background:#fff}}@media screen and (max-width: 1023.98px){.navigation{position:fixed;z-index:1;inset-inline:0;inset-block-start:var(--header-height);overflow:hidden}::slotted(post-mainnavigation),.navigation-footer{display:none;flex-direction:column;padding-block:16px 24px;padding-inline:32px}.navigation.extended ::slotted(post-mainnavigation),.navigation.extended .navigation-footer{display:flex}.navigation.extended>div{display:flex;flex-direction:column;height:calc(100dvh - var(--header-height))}.navigation.extended.scroll-y>div{overflow-y:auto;overflow-x:hidden}.navigation.extended ::slotted(post-mainnavigation){flex-grow:1 !important}::slotted(post-mainnavigation){background-color:#fafafa;gap:32px}.navigation-footer{background-color:#f0efed;gap:24px}}@media screen and (max-width: 599.98px){::slotted(post-mainnavigation),.navigation-footer{padding-inline:16px}}";
|
|
192
192
|
const PostHeaderStyle0 = postHeaderCss;
|
|
193
193
|
|
|
194
194
|
const PostHeader = class {
|
|
@@ -201,59 +201,79 @@ const PostHeader = class {
|
|
|
201
201
|
}
|
|
202
202
|
firstFocusableEl;
|
|
203
203
|
lastFocusableEl;
|
|
204
|
-
scrollListenerElement = null;
|
|
205
|
-
overflowElement = null;
|
|
206
204
|
mobileMenu;
|
|
207
205
|
mobileMenuAnimation;
|
|
208
|
-
throttledScroll = () => this.handleScrollEvent();
|
|
209
206
|
throttledResize = throttle(50, () => this.handleResize());
|
|
207
|
+
scrollParentResizeObserver;
|
|
208
|
+
localHeaderResizeObserver;
|
|
209
|
+
get scrollParent() {
|
|
210
|
+
const frozenScrollParent = document.querySelector('[data-is-post-header-scroll-parent]');
|
|
211
|
+
if (frozenScrollParent)
|
|
212
|
+
return frozenScrollParent;
|
|
213
|
+
let element = this.host.parentElement;
|
|
214
|
+
while (element) {
|
|
215
|
+
const overflow = getComputedStyle(element).overflowY;
|
|
216
|
+
if (['auto', 'scroll'].includes(overflow)) {
|
|
217
|
+
return element;
|
|
218
|
+
}
|
|
219
|
+
element = element.parentElement;
|
|
220
|
+
}
|
|
221
|
+
return document.documentElement;
|
|
222
|
+
}
|
|
223
|
+
get host() { return index.getElement(this); }
|
|
224
|
+
frozeBody(isMobileMenuExtended) {
|
|
225
|
+
const scrollParent = this.scrollParent;
|
|
226
|
+
if (isMobileMenuExtended) {
|
|
227
|
+
scrollParent.setAttribute('data-is-post-header-scroll-parent', '');
|
|
228
|
+
scrollParent.style.overflow = 'hidden';
|
|
229
|
+
this.host.addEventListener('keydown', this.keyboardHandler.bind(this));
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
scrollParent.style.overflow = '';
|
|
233
|
+
scrollParent.removeAttribute('data-is-post-header-scroll-parent');
|
|
234
|
+
this.host.removeEventListener('keydown', this.keyboardHandler.bind(this));
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* An event emitted when the device has changed
|
|
239
|
+
*/
|
|
240
|
+
postUpdateDevice;
|
|
210
241
|
componentWillRender() {
|
|
211
|
-
this.scrollListenerElement = this.getScrollParent();
|
|
212
|
-
this.overflowElement =
|
|
213
|
-
this.scrollListenerElement === document
|
|
214
|
-
? document.documentElement
|
|
215
|
-
: this.scrollListenerElement;
|
|
216
|
-
this.scrollListenerElement.addEventListener('scroll', this.throttledScroll, { passive: true });
|
|
217
242
|
window.addEventListener('resize', this.throttledResize, { passive: true });
|
|
243
|
+
window.addEventListener('scroll', this.handleScrollEvent.bind(this), {
|
|
244
|
+
passive: true,
|
|
245
|
+
});
|
|
246
|
+
this.scrollParent.addEventListener('scroll', this.handleScrollEvent.bind(this), {
|
|
247
|
+
passive: true,
|
|
248
|
+
});
|
|
218
249
|
this.handleResize();
|
|
219
250
|
this.handleScrollEvent();
|
|
220
251
|
this.getFocusableElements();
|
|
221
252
|
}
|
|
222
253
|
componentDidLoad() {
|
|
223
|
-
this.updateLocalHeaderHeight();
|
|
224
254
|
// Check if the mega dropdown is expanded
|
|
225
|
-
document.addEventListener('postToggleMegadropdown', (
|
|
226
|
-
this.megadropdownOpen = event.detail.isVisible;
|
|
227
|
-
});
|
|
255
|
+
document.addEventListener('postToggleMegadropdown', this.megedropdownStateHandler.bind(this));
|
|
228
256
|
this.host.addEventListener('click', this.handleLinkClick.bind(this));
|
|
257
|
+
this.handleScrollParentResize();
|
|
258
|
+
this.handleLocalHeaderResize();
|
|
229
259
|
}
|
|
230
260
|
// Clean up possible side effects when post-header is disconnected
|
|
231
261
|
disconnectedCallback() {
|
|
262
|
+
const scrollParent = this.scrollParent;
|
|
232
263
|
this.mobileMenuExtended = false;
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
264
|
+
scrollParent.style.overflow = '';
|
|
265
|
+
scrollParent.removeAttribute('data-is-post-header-scroll-parent');
|
|
266
|
+
window.removeEventListener('resize', this.throttledResize);
|
|
267
|
+
window.removeEventListener('scroll', this.handleScrollEvent.bind(this));
|
|
268
|
+
scrollParent.removeEventListener('scroll', this.handleScrollEvent.bind(this));
|
|
269
|
+
document.removeEventListener('postToggleMegadropdown', this.megedropdownStateHandler.bind(this));
|
|
270
|
+
this.host.removeEventListener('keydown', this.keyboardHandler.bind(this));
|
|
237
271
|
this.host.removeEventListener('click', this.handleLinkClick.bind(this));
|
|
272
|
+
if (this.scrollParentResizeObserver)
|
|
273
|
+
this.scrollParentResizeObserver.disconnect();
|
|
274
|
+
if (this.localHeaderResizeObserver)
|
|
275
|
+
this.localHeaderResizeObserver.disconnect();
|
|
238
276
|
}
|
|
239
|
-
get host() { return index.getElement(this); }
|
|
240
|
-
frozeBody(isMobileMenuExtended) {
|
|
241
|
-
this.overflowElement.style.overflow = isMobileMenuExtended ? 'hidden' : '';
|
|
242
|
-
if (isMobileMenuExtended) {
|
|
243
|
-
this.host.addEventListener('keydown', e => {
|
|
244
|
-
this.keyboardHandler(e);
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
else {
|
|
248
|
-
this.host.removeEventListener('keydown', e => {
|
|
249
|
-
this.keyboardHandler(e);
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* An event emitted when the device has changed
|
|
255
|
-
*/
|
|
256
|
-
postUpdateDevice;
|
|
257
277
|
/**
|
|
258
278
|
* Toggles the mobile navigation.
|
|
259
279
|
*/
|
|
@@ -273,6 +293,9 @@ const PostHeader = class {
|
|
|
273
293
|
if (!this.mobileMenuExtended)
|
|
274
294
|
await this.mobileMenuAnimation.finished;
|
|
275
295
|
}
|
|
296
|
+
megedropdownStateHandler(event) {
|
|
297
|
+
this.megadropdownOpen = event.detail.isVisible;
|
|
298
|
+
}
|
|
276
299
|
// Get all the focusable elements in the post-header mobile menu
|
|
277
300
|
getFocusableElements() {
|
|
278
301
|
// Get elements in the correct order (different as the DOM order)
|
|
@@ -303,25 +326,15 @@ const PostHeader = class {
|
|
|
303
326
|
}
|
|
304
327
|
}
|
|
305
328
|
}
|
|
306
|
-
getScrollParent() {
|
|
307
|
-
let parent = this.host.parentElement;
|
|
308
|
-
if (parent.tagName === 'BODY') {
|
|
309
|
-
parent = document;
|
|
310
|
-
}
|
|
311
|
-
return parent;
|
|
312
|
-
}
|
|
313
329
|
handleScrollEvent() {
|
|
314
|
-
|
|
315
|
-
const st = Math.max(0, this.scrollListenerElement instanceof Document
|
|
316
|
-
? this.scrollListenerElement.documentElement.scrollTop
|
|
317
|
-
: this.scrollListenerElement.scrollTop);
|
|
318
|
-
this.host.style.setProperty('--header-scroll-top', `${st}px`);
|
|
330
|
+
this.host.style.setProperty('--header-scroll-top', `${this.scrollParent.scrollTop}px`);
|
|
319
331
|
}
|
|
320
332
|
updateLocalHeaderHeight() {
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
333
|
+
const localHeaderHeight = this.host.shadowRoot.querySelector('.local-header')?.clientHeight || 0;
|
|
334
|
+
this.host.style.setProperty('--local-header-height', `${localHeaderHeight}px`);
|
|
335
|
+
}
|
|
336
|
+
updateScrollParentHeight() {
|
|
337
|
+
this.host.style.setProperty('--header-scroll-parent-height', `${this.scrollParent.clientHeight}px`);
|
|
325
338
|
}
|
|
326
339
|
handleLinkClick(event) {
|
|
327
340
|
const target = event.target;
|
|
@@ -358,7 +371,6 @@ const PostHeader = class {
|
|
|
358
371
|
this.toggleMobileMenu();
|
|
359
372
|
this.mobileMenuAnimation.finish(); // no animation
|
|
360
373
|
}
|
|
361
|
-
this.updateLocalHeaderHeight();
|
|
362
374
|
// Apply only on change for doing work only when necessary
|
|
363
375
|
if (newDevice !== previousDevice) {
|
|
364
376
|
this.device = newDevice;
|
|
@@ -368,6 +380,19 @@ const PostHeader = class {
|
|
|
368
380
|
});
|
|
369
381
|
}
|
|
370
382
|
}
|
|
383
|
+
handleScrollParentResize() {
|
|
384
|
+
if (this.scrollParent) {
|
|
385
|
+
this.scrollParentResizeObserver = new ResizeObserver(this.updateScrollParentHeight.bind(this));
|
|
386
|
+
this.scrollParentResizeObserver.observe(this.scrollParent);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
handleLocalHeaderResize() {
|
|
390
|
+
const localHeader = this.host.shadowRoot.querySelector('.local-header');
|
|
391
|
+
if (localHeader) {
|
|
392
|
+
this.localHeaderResizeObserver = new ResizeObserver(this.updateLocalHeaderHeight.bind(this));
|
|
393
|
+
this.localHeaderResizeObserver.observe(localHeader);
|
|
394
|
+
}
|
|
395
|
+
}
|
|
371
396
|
switchLanguageSwitchMode() {
|
|
372
397
|
const variant = this.device === 'desktop' ? 'menu' : 'list';
|
|
373
398
|
Array.from(this.host.querySelectorAll('post-language-switch')).forEach(languageSwitch => {
|
|
@@ -382,10 +407,10 @@ const PostHeader = class {
|
|
|
382
407
|
if (!this.megadropdownOpen) {
|
|
383
408
|
navigationClasses.push('scroll-y');
|
|
384
409
|
}
|
|
385
|
-
return (index.h("div", { ref: el => (this.mobileMenu = el)
|
|
410
|
+
return (index.h("div", { class: navigationClasses.join(' ') }, index.h("div", { ref: el => (this.mobileMenu = el) }, index.h("slot", { name: "post-mainnavigation" }), (this.device === 'mobile' || this.device === 'tablet') && (index.h("div", { class: "navigation-footer" }, index.h("slot", { name: "meta-navigation" }), index.h("slot", { name: "post-language-switch" }))))));
|
|
386
411
|
}
|
|
387
412
|
render() {
|
|
388
|
-
return (index.h(index.Host, { key: '
|
|
413
|
+
return (index.h(index.Host, { key: '866b6378652ff5860c8b046f249411941e3510ca', version: _package.version }, index.h("div", { key: '4f834e011faf12f0e9629c442172153a5d710f6a', class: "global-header" }, index.h("div", { key: '16acea9aa91b071f4ee25b00e19a0d23f5765ffa', class: "global-sub" }, index.h("div", { key: '1aea872a00166aeada3538f25c8d5b1afb0595a5', class: "logo" }, index.h("slot", { key: '343ed3f016295d025196841260fc501795f211ec', name: "post-logo" }))), index.h("div", { key: '47e2d3df5973d8cf542051c9da6b2b7f077d202c', class: "global-sub" }, this.device === 'desktop' && index.h("slot", { key: '2000cf588d06f28b1d25bca60842d05e01635e7c', name: "meta-navigation" }), index.h("slot", { key: '40d62c75e080bbee36b4a5f75ee0d6a727b0153a', name: "global-controls" }), this.device === 'desktop' && index.h("slot", { key: '531b27a3332a6f91491b0e04efce42037edf7384', name: "post-language-switch" }), index.h("div", { key: '427b869f050400509ec17b1ed8aa539a3efb8fef', onClick: () => this.toggleMobileMenu(), class: "mobile-toggle" }, index.h("slot", { key: '3d824c0b31cc55f4279944e02c4fa3f26bce9b7e', name: "post-togglebutton" })))), index.h("div", { key: 'bd23ea8c42abf93d343f4579b1a433d7224a3631', class: 'local-header ' + (this.mobileMenuExtended ? 'local-header-mobile-extended' : '') }, index.h("slot", { key: '25ee29386c66395371dd1fa7c61794fefc220b85', name: "title" }), index.h("div", { key: 'e8b11280d2664a8d19935fe7fc095830d0ff4a1c', class: "local-sub" }, index.h("slot", { key: 'af10ad2f82146d10af525dd6a83871f428d09953', name: "local-controls" }), index.h("slot", { key: '311f3b2ef20794fae57d8354bd4a06552e90703e' })), this.device === 'desktop' && this.renderNavigation()), this.device !== 'desktop' && this.renderNavigation()));
|
|
389
414
|
}
|
|
390
415
|
static get watchers() { return {
|
|
391
416
|
"mobileMenuExtended": ["frozeBody"]
|
|
@@ -779,7 +804,7 @@ const PostLogo = class {
|
|
|
779
804
|
};
|
|
780
805
|
PostLogo.style = PostLogoStyle0;
|
|
781
806
|
|
|
782
|
-
const postMainnavigationCss = "post-mainnavigation post-list-item>a{text-decoration:none;border-radius:0}post-mainnavigation post-list-item post-megadropdown-trigger 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;text-align:start}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-mainnavigation post-list-item post-megadropdown-trigger button{background-color:ButtonFace !important}post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:Highlight !important}}post-mainnavigation post-list-item post-megadropdown-trigger button{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}post-mainnavigation post-list-item post-megadropdown-trigger button: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){post-mainnavigation post-list-item post-megadropdown-trigger button:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){post-mainnavigation post-list-item post-megadropdown-trigger button: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){post-mainnavigation post-list-item post-megadropdown-trigger button:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item post-megadropdown-trigger button{flex:0 0 fit-content;white-space:nowrap;display:flex;align-items:center;justify-content:space-between}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{color:var(--post-scheme-color-interactive-primary-hover-fg1)}post-mainnavigation post-list-item>a:focus-visible,post-mainnavigation post-list-item post-megadropdown-trigger button:focus-visible{border-radius:4px}post-mainnavigation .back-button post-icon{transform:rotate(180deg)}@media screen and (max-width: 1023.98px){post-mainnavigation .back-button{font-size:16px}}@media screen and (max-width: 599.98px){post-mainnavigation .back-button{font-size:14px}}post-mainnavigation>button::after,post-mainnavigation post-megadropdown-trigger button::after{content:\"\";mask-image:url(\"data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m23.6 13.2-7.5 7.6-7.6-7.6.9-.9 6.6 6.6 6.6-6.6z'/%3E%3C/svg%3E\");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;height:24px;width:24px}@media screen and (min-width: 1024px){post-mainnavigation{display:block}post-mainnavigation nav{max-width:100%;background:#fff;max-height:var(--main-navigation-height);user-select:none;transition:margin 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation .left-scroll-button,post-mainnavigation .right-scroll-button{z-index:4;position:absolute;inset-block-end:0;overflow:hidden}post-mainnavigation .left-scroll-button button,post-mainnavigation .right-scroll-button 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;background:#fff;padding:16px;box-shadow:var(--post-device-elevation-500);line-height:100%;height:var(--main-navigation-height)}}@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){post-mainnavigation .left-scroll-button button,post-mainnavigation .right-scroll-button button{background-color:ButtonFace !important}post-mainnavigation .left-scroll-button button:hover,post-mainnavigation .right-scroll-button button:hover{background-color:Highlight !important}}@media screen and (min-width: 1024px){post-mainnavigation .left-scroll-button button post-icon,post-mainnavigation .right-scroll-button button post-icon{font-size:1rem}}@media screen and (min-width: 1024px){post-mainnavigation .left-scroll-button.d-none,post-mainnavigation .right-scroll-button.d-none{display:none}}@media screen and (min-width: 1024px){post-mainnavigation .left-scroll-button{inset-inline-start:0;padding-inline-end:2rem}}@media screen and (min-width: 1024px){post-mainnavigation .right-scroll-button{inset-inline-end:0;padding-inline-start:2rem}}@media screen and (min-width: 1024px){post-mainnavigation post-list>[role=list]{flex-direction:row;max-width:100vw}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{position:sticky;padding-inline:12px;height:var(--main-navigation-height);gap:4px;font-size:16px;z-index:4}post-mainnavigation post-list-item>a .nav-el-active,post-mainnavigation post-list-item>button .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-active{font-weight:700;text-align:center;opacity:0}post-mainnavigation post-list-item>a .nav-el-inactive,post-mainnavigation post-list-item>button .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{position:absolute;opacity:1;text-align:center;width:100%;left:0}post-mainnavigation post-list-item>a.selected,post-mainnavigation post-list-item>a[aria-expanded=true],post-mainnavigation post-list-item>button.selected,post-mainnavigation post-list-item>button[aria-expanded=true],post-mainnavigation post-list-item post-megadropdown-trigger button.selected,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff;font-weight:700}post-mainnavigation post-list-item>a.selected .nav-el-active,post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-active,post-mainnavigation post-list-item>button.selected .nav-el-active,post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button.selected .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-active{opacity:1}post-mainnavigation post-list-item>a.selected .nav-el-inactive,post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-inactive,post-mainnavigation post-list-item>button.selected .nav-el-inactive,post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button.selected .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-inactive{opacity:0}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}}@media screen and (min-width: 1024px)and (max-width: 599.98px){post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{font-size:14px}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{padding-inline-end:12px;transition:border-block-end-color 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation post-list-item>button .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{width:calc(100% - 28px)}post-mainnavigation post-list-item>button::after,post-mainnavigation post-list-item post-megadropdown-trigger button::after{transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation post-list-item>button.selected::after,post-mainnavigation post-list-item>button[aria-expanded=true]::after,post-mainnavigation post-list-item post-megadropdown-trigger button.selected::after,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]::after{transform:rotate(180deg)}}@media screen and (min-width: 1024px){post-mainnavigation post-megadropdown button:not(.btn-icon-close),post-mainnavigation post-megadropdown a{width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative}post-mainnavigation post-megadropdown button:not(.btn-icon-close)::before,post-mainnavigation post-megadropdown a::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}post-mainnavigation post-megadropdown button:not(.btn-icon-close).selected,post-mainnavigation post-megadropdown button:not(.btn-icon-close)[aria-expanded=true],post-mainnavigation post-megadropdown a.selected,post-mainnavigation post-megadropdown a[aria-expanded=true]{background-color:#050400;color:#fff}post-mainnavigation post-megadropdown button:not(.btn-icon-close):hover,post-mainnavigation post-megadropdown a:hover{background-color:#504f4b;color:#fff}post-mainnavigation post-megadropdown button:not(.btn-icon-close):hover::before,post-mainnavigation post-megadropdown a:hover::before{background-color:#504f4b}}@media screen and (min-width: 1024px){post-mainnavigation [slot=back-button]{display:none}}@media screen and (max-width: 1023.98px){post-mainnavigation nav{transform:none !important}post-mainnavigation .left-scroll-button,post-mainnavigation .right-scroll-button{display:none}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative}post-mainnavigation post-list-item>a::before,post-mainnavigation post-list-item>button::before,post-mainnavigation post-list-item post-megadropdown-trigger button::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}post-mainnavigation post-list-item>a.selected,post-mainnavigation post-list-item>a[aria-expanded=true],post-mainnavigation post-list-item>button.selected,post-mainnavigation post-list-item>button[aria-expanded=true],post-mainnavigation post-list-item post-megadropdown-trigger button.selected,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}post-mainnavigation post-list-item>a:hover::before,post-mainnavigation post-list-item>button:hover::before,post-mainnavigation post-list-item post-megadropdown-trigger button:hover::before{background-color:#504f4b}post-mainnavigation post-list-item>a .nav-el-inactive,post-mainnavigation post-list-item>button .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{display:none}post-mainnavigation>button::after,post-mainnavigation post-megadropdown-trigger button::after{transform:rotate(-90deg)}}post-mainnavigation .back-button .btn{padding-inline:0}";
|
|
807
|
+
const postMainnavigationCss = "post-mainnavigation post-list-item>a{text-decoration:none;border-radius:0}post-mainnavigation post-list-item post-megadropdown-trigger 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;text-align:start}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-mainnavigation post-list-item post-megadropdown-trigger button{background-color:ButtonFace !important}post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:Highlight !important}}post-mainnavigation post-list-item post-megadropdown-trigger button{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}post-mainnavigation post-list-item post-megadropdown-trigger button: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){post-mainnavigation post-list-item post-megadropdown-trigger button:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){post-mainnavigation post-list-item post-megadropdown-trigger button: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){post-mainnavigation post-list-item post-megadropdown-trigger button:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item post-megadropdown-trigger button{flex:0 0 fit-content;white-space:nowrap;display:flex;align-items:center;justify-content:space-between}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{color:var(--post-scheme-color-interactive-primary-hover-fg1)}post-mainnavigation post-list-item>a:focus-visible,post-mainnavigation post-list-item post-megadropdown-trigger button:focus-visible{border-radius:4px}post-mainnavigation .back-button post-icon{transform:rotate(180deg)}@media screen and (max-width: 1023.98px){post-mainnavigation .back-button{font-size:16px}}@media screen and (max-width: 599.98px){post-mainnavigation .back-button{font-size:14px}}post-mainnavigation>button::after,post-mainnavigation post-megadropdown-trigger button::after{content:\"\";mask-image:url(\"data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m23.6 13.2-7.5 7.6-7.6-7.6.9-.9 6.6 6.6 6.6-6.6z'/%3E%3C/svg%3E\");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;height:24px;width:24px}@media screen and (min-width: 1024px){post-mainnavigation{display:block;overflow-x:hidden}post-mainnavigation nav{max-width:100%;background:#fff;max-height:var(--main-navigation-height);user-select:none;transition:margin 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation .left-scroll-button,post-mainnavigation .right-scroll-button{z-index:4;position:absolute;inset-block-end:0;overflow:hidden}post-mainnavigation .left-scroll-button button,post-mainnavigation .right-scroll-button 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;background:#fff;padding:16px;box-shadow:var(--post-device-elevation-500);line-height:100%;height:var(--main-navigation-height)}}@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){post-mainnavigation .left-scroll-button button,post-mainnavigation .right-scroll-button button{background-color:ButtonFace !important}post-mainnavigation .left-scroll-button button:hover,post-mainnavigation .right-scroll-button button:hover{background-color:Highlight !important}}@media screen and (min-width: 1024px){post-mainnavigation .left-scroll-button button post-icon,post-mainnavigation .right-scroll-button button post-icon{font-size:1rem}}@media screen and (min-width: 1024px){post-mainnavigation .left-scroll-button.d-none,post-mainnavigation .right-scroll-button.d-none{display:none}}@media screen and (min-width: 1024px){post-mainnavigation .left-scroll-button{inset-inline-start:0;padding-inline-end:2rem}}@media screen and (min-width: 1024px){post-mainnavigation .right-scroll-button{inset-inline-end:0;padding-inline-start:2rem}}@media screen and (min-width: 1024px){post-mainnavigation post-list>[role=list]{flex-direction:row;max-width:100vw}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{position:sticky;padding-inline:12px;height:var(--main-navigation-height);gap:4px;font-size:16px;z-index:4}post-mainnavigation post-list-item>a .nav-el-active,post-mainnavigation post-list-item>button .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-active{font-weight:700;text-align:center;opacity:0}post-mainnavigation post-list-item>a .nav-el-inactive,post-mainnavigation post-list-item>button .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{position:absolute;opacity:1;text-align:center;width:100%;left:0}post-mainnavigation post-list-item>a.selected,post-mainnavigation post-list-item>a[aria-expanded=true],post-mainnavigation post-list-item>button.selected,post-mainnavigation post-list-item>button[aria-expanded=true],post-mainnavigation post-list-item post-megadropdown-trigger button.selected,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff;font-weight:700}post-mainnavigation post-list-item>a.selected .nav-el-active,post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-active,post-mainnavigation post-list-item>button.selected .nav-el-active,post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button.selected .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-active{opacity:1}post-mainnavigation post-list-item>a.selected .nav-el-inactive,post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-inactive,post-mainnavigation post-list-item>button.selected .nav-el-inactive,post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button.selected .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-inactive{opacity:0}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}}@media screen and (min-width: 1024px)and (max-width: 599.98px){post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{font-size:14px}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{padding-inline-end:12px;transition:border-block-end-color 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation post-list-item>button .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{width:calc(100% - 28px)}post-mainnavigation post-list-item>button::after,post-mainnavigation post-list-item post-megadropdown-trigger button::after{transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation post-list-item>button.selected::after,post-mainnavigation post-list-item>button[aria-expanded=true]::after,post-mainnavigation post-list-item post-megadropdown-trigger button.selected::after,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]::after{transform:rotate(180deg)}}@media screen and (min-width: 1024px){post-mainnavigation post-megadropdown button:not(.btn-icon-close),post-mainnavigation post-megadropdown a{width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative}post-mainnavigation post-megadropdown button:not(.btn-icon-close)::before,post-mainnavigation post-megadropdown a::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}post-mainnavigation post-megadropdown button:not(.btn-icon-close).selected,post-mainnavigation post-megadropdown button:not(.btn-icon-close)[aria-expanded=true],post-mainnavigation post-megadropdown a.selected,post-mainnavigation post-megadropdown a[aria-expanded=true]{background-color:#050400;color:#fff}post-mainnavigation post-megadropdown button:not(.btn-icon-close):hover,post-mainnavigation post-megadropdown a:hover{background-color:#504f4b;color:#fff}post-mainnavigation post-megadropdown button:not(.btn-icon-close):hover::before,post-mainnavigation post-megadropdown a:hover::before{background-color:#504f4b}}@media screen and (min-width: 1024px){post-mainnavigation [slot=back-button]{display:none}}@media screen and (max-width: 1023.98px){post-mainnavigation nav{transform:none !important}post-mainnavigation .left-scroll-button,post-mainnavigation .right-scroll-button{display:none}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative}post-mainnavigation post-list-item>a::before,post-mainnavigation post-list-item>button::before,post-mainnavigation post-list-item post-megadropdown-trigger button::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}post-mainnavigation post-list-item>a.selected,post-mainnavigation post-list-item>a[aria-expanded=true],post-mainnavigation post-list-item>button.selected,post-mainnavigation post-list-item>button[aria-expanded=true],post-mainnavigation post-list-item post-megadropdown-trigger button.selected,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}post-mainnavigation post-list-item>a:hover::before,post-mainnavigation post-list-item>button:hover::before,post-mainnavigation post-list-item post-megadropdown-trigger button:hover::before{background-color:#504f4b}post-mainnavigation post-list-item>a .nav-el-inactive,post-mainnavigation post-list-item>button .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{display:none}post-mainnavigation>button::after,post-mainnavigation post-megadropdown-trigger button::after{transform:rotate(-90deg)}}post-mainnavigation .back-button .btn{padding-inline:0}";
|
|
783
808
|
const PostMainnavigationStyle0 = postMainnavigationCss;
|
|
784
809
|
|
|
785
810
|
const SCROLL_REPEAT_INTERVAL = 100; // Interval for repeated scrolling when holding down scroll button
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const index = require('./index-d6bf2c66.js');
|
|
4
|
-
const _package = require('./package-
|
|
4
|
+
const _package = require('./package-8dee32a7.js');
|
|
5
5
|
const attributeObserver = require('./attribute-observer-6d8b886b.js');
|
|
6
6
|
const index$1 = require('./index-23e36ff7.js');
|
|
7
7
|
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const postTooltip = require('./post-tooltip-
|
|
5
|
+
const postTooltip = require('./post-tooltip-0dfe7ecc.js');
|
|
6
6
|
require('./index-d6bf2c66.js');
|
|
7
|
-
require('./package-
|
|
7
|
+
require('./package-8dee32a7.js');
|
|
8
8
|
require('./attribute-observer-6d8b886b.js');
|
|
9
9
|
require('./index-23e36ff7.js');
|
|
10
10
|
require('./constants-238701d3.js');
|
|
@@ -3,20 +3,20 @@
|
|
|
3
3
|
const easing = 'ease';
|
|
4
4
|
const duration = 500;
|
|
5
5
|
const fill = 'forwards';
|
|
6
|
-
function slideUp(el, translateSize = '100%') {
|
|
6
|
+
function slideUp(el, translateSize = '-100%') {
|
|
7
7
|
return el.animate([
|
|
8
|
-
{ transform:
|
|
9
|
-
{ transform:
|
|
8
|
+
{ transform: 'translateY(0)' }, // Starting position (no translation)
|
|
9
|
+
{ transform: `translateY(${translateSize})` }, // End position
|
|
10
10
|
], {
|
|
11
11
|
duration: duration,
|
|
12
12
|
easing,
|
|
13
13
|
fill,
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
|
-
function slideDown(el, translateSize = '100%') {
|
|
16
|
+
function slideDown(el, translateSize = '-100%') {
|
|
17
17
|
return el.animate([
|
|
18
|
-
{ transform:
|
|
19
|
-
{ transform:
|
|
18
|
+
{ transform: `translateY(${translateSize})` }, // Starting position (no translation)
|
|
19
|
+
{ transform: 'translateY(0)' }, // End position
|
|
20
20
|
], {
|
|
21
21
|
duration: duration,
|
|
22
22
|
easing,
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
const easing = 'ease';
|
|
2
2
|
const duration = 500;
|
|
3
3
|
const fill = 'forwards';
|
|
4
|
-
export function slideUp(el, translateSize = '100%') {
|
|
4
|
+
export function slideUp(el, translateSize = '-100%') {
|
|
5
5
|
return el.animate([
|
|
6
|
-
{ transform:
|
|
7
|
-
{ transform:
|
|
6
|
+
{ transform: 'translateY(0)' }, // Starting position (no translation)
|
|
7
|
+
{ transform: `translateY(${translateSize})` }, // End position
|
|
8
8
|
], {
|
|
9
9
|
duration: duration,
|
|
10
10
|
easing,
|
|
11
11
|
fill,
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
|
-
export function slideDown(el, translateSize = '100%') {
|
|
14
|
+
export function slideDown(el, translateSize = '-100%') {
|
|
15
15
|
return el.animate([
|
|
16
|
-
{ transform:
|
|
17
|
-
{ transform:
|
|
16
|
+
{ transform: `translateY(${translateSize})` }, // Starting position (no translation)
|
|
17
|
+
{ transform: 'translateY(0)' }, // End position
|
|
18
18
|
], {
|
|
19
19
|
duration: duration,
|
|
20
20
|
easing,
|
|
@@ -18,10 +18,10 @@ export class PostBackToTop {
|
|
|
18
18
|
// Watch for changes in belowFold
|
|
19
19
|
watchBelowFold(newValue) {
|
|
20
20
|
if (newValue) {
|
|
21
|
-
|
|
21
|
+
slideDown(this.host, this.translateY);
|
|
22
22
|
}
|
|
23
23
|
else {
|
|
24
|
-
|
|
24
|
+
slideUp(this.host, this.translateY);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
scrollToTop() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
*,::before,::after{box-sizing:border-box}:host{z-index:1020;position:relative}:host(:not(:has([slot=title]))) .local-header{padding-block-start:0}:host(:not(:has([slot=title]))) .local-sub{display:none}.d-flex{display:flex}.space-between{justify-content:space-between}.global-header{background-color:#fc0;display:flex;justify-content:space-between;position:sticky;padding-inline:4px;height:var(--global-header-height)}@media screen and (max-width: 1023.98px){.global-header{z-index:3;inset-block-start:0}}@media screen and (min-width: 1024px){.global-header{z-index:5;padding-inline-end:12px;inset-block-start:calc((var(--global-header-height) - var(--global-header-reduced-height))*-1)}}.global-sub{display:flex;align-items:center;gap:24px}.align-end{align-items:flex-end}.logo{flex:1 0 auto;height:var(--global-header-height);width:var(--global-header-height);min-height:var(--global-header-reduced-height);align-self:flex-end}@media screen and (min-width: 1024px){.logo{height:calc(var(--global-header-height) - var(--header-scroll-top))}}::slotted(ul){margin-block:0 !important;list-style:none;display:flex;padding-left:0;gap:1rem;flex-shrink:0 !important}.local-header{display:flex;position:sticky;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px;min-height:var(--local-header-min-height);background:#fff;transition:box-shadow .2s ease-in-out}.local-header::after{content:"";position:absolute;width:100%;height:1px;background-color:#e1e0dc;bottom:-1px;z-index:1}@media screen and (min-width: 1024px){.local-header{z-index:3;inset-block-start:calc(-1*(var(--local-header-height) - var(--main-navigation-height)) + var(--global-header-reduced-height));padding-block-start:18px;box-shadow:var(--post-device-elevation-300)}}@media screen and (max-width: 1023.98px){.local-header{z-index:2;inset-block-start:var(--global-header-height);padding-block:12px;flex-wrap:wrap;gap:16px}.local-header.local-header-mobile-extended::after{bottom:0}.local-header:not(.local-header-mobile-extended){box-shadow:var(--post-device-elevation-300)}}.local-sub{margin-inline-end:16px}::slotted(.list-inline){margin:0 !important;z-index:3 !important;position:relative !important}
|
|
1
|
+
*,::before,::after{box-sizing:border-box}:host{z-index:1020;position:relative}:host(:not(:has([slot=title]))) .local-header{padding-block-start:0}:host(:not(:has([slot=title]))) .local-sub{display:none}.d-flex{display:flex}.space-between{justify-content:space-between}.global-header{background-color:#fc0;display:flex;justify-content:space-between;position:sticky;padding-inline:4px;height:var(--global-header-height)}@media screen and (max-width: 1023.98px){.global-header{z-index:3;inset-block-start:0}}@media screen and (min-width: 1024px){.global-header{z-index:5;padding-inline-end:12px;inset-block-start:calc((var(--global-header-height) - var(--global-header-reduced-height))*-1)}}.global-sub{display:flex;align-items:center;gap:24px}.align-end{align-items:flex-end}.logo{flex:1 0 auto;height:var(--global-header-height);width:var(--global-header-height);min-height:var(--global-header-reduced-height);align-self:flex-end}@media screen and (min-width: 1024px){.logo{height:calc(var(--global-header-height) - var(--header-scroll-top))}}::slotted(ul){margin-block:0 !important;list-style:none;display:flex;padding-left:0;gap:1rem;flex-shrink:0 !important}.local-header{display:flex;position:sticky;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px;min-height:var(--local-header-min-height);background:#fff;transition:box-shadow .2s ease-in-out}.local-header::after{content:"";position:absolute;width:100%;height:1px;background-color:#e1e0dc;bottom:-1px;z-index:1}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.local-header::after{background-color:Highlight}}@media screen and (min-width: 1024px){.local-header{z-index:3;inset-block-start:calc(-1*(var(--local-header-height) - var(--main-navigation-height)) + var(--global-header-reduced-height));padding-block-start:18px;box-shadow:var(--post-device-elevation-300)}}@media screen and (max-width: 1023.98px){.local-header{z-index:2;inset-block-start:var(--global-header-height);padding-block:12px;flex-wrap:wrap;gap:16px}.local-header.local-header-mobile-extended::after{bottom:0}.local-header:not(.local-header-mobile-extended){box-shadow:var(--post-device-elevation-300)}}.local-sub{margin-inline-end:16px}::slotted(.list-inline){margin:0 !important;z-index:3 !important;position:relative !important}@media screen and (min-width: 1024px){.mobile-toggle{display:none}}.navigation{width:100%}@media screen and (min-width: 1024px){.navigation{inset-block-start:var(--global-header-reduced-height)}.navigation::before{display:block;content:"";position:absolute;inset:0;z-index:2;background:#fff}}@media screen and (max-width: 1023.98px){.navigation{position:fixed;z-index:1;inset-inline:0;inset-block-start:var(--header-height);overflow:hidden}::slotted(post-mainnavigation),.navigation-footer{display:none;flex-direction:column;padding-block:16px 24px;padding-inline:32px}.navigation.extended ::slotted(post-mainnavigation),.navigation.extended .navigation-footer{display:flex}.navigation.extended>div{display:flex;flex-direction:column;height:calc(100dvh - var(--header-height))}.navigation.extended.scroll-y>div{overflow-y:auto;overflow-x:hidden}.navigation.extended ::slotted(post-mainnavigation){flex-grow:1 !important}::slotted(post-mainnavigation){background-color:#fafafa;gap:32px}.navigation-footer{background-color:#f0efed;gap:24px}}@media screen and (max-width: 599.98px){::slotted(post-mainnavigation),.navigation-footer{padding-inline:16px}}
|
|
@@ -20,59 +20,79 @@ export class PostHeader {
|
|
|
20
20
|
}
|
|
21
21
|
firstFocusableEl;
|
|
22
22
|
lastFocusableEl;
|
|
23
|
-
scrollListenerElement = null;
|
|
24
|
-
overflowElement = null;
|
|
25
23
|
mobileMenu;
|
|
26
24
|
mobileMenuAnimation;
|
|
27
|
-
throttledScroll = () => this.handleScrollEvent();
|
|
28
25
|
throttledResize = throttle(50, () => this.handleResize());
|
|
26
|
+
scrollParentResizeObserver;
|
|
27
|
+
localHeaderResizeObserver;
|
|
28
|
+
get scrollParent() {
|
|
29
|
+
const frozenScrollParent = document.querySelector('[data-is-post-header-scroll-parent]');
|
|
30
|
+
if (frozenScrollParent)
|
|
31
|
+
return frozenScrollParent;
|
|
32
|
+
let element = this.host.parentElement;
|
|
33
|
+
while (element) {
|
|
34
|
+
const overflow = getComputedStyle(element).overflowY;
|
|
35
|
+
if (['auto', 'scroll'].includes(overflow)) {
|
|
36
|
+
return element;
|
|
37
|
+
}
|
|
38
|
+
element = element.parentElement;
|
|
39
|
+
}
|
|
40
|
+
return document.documentElement;
|
|
41
|
+
}
|
|
42
|
+
host;
|
|
43
|
+
frozeBody(isMobileMenuExtended) {
|
|
44
|
+
const scrollParent = this.scrollParent;
|
|
45
|
+
if (isMobileMenuExtended) {
|
|
46
|
+
scrollParent.setAttribute('data-is-post-header-scroll-parent', '');
|
|
47
|
+
scrollParent.style.overflow = 'hidden';
|
|
48
|
+
this.host.addEventListener('keydown', this.keyboardHandler.bind(this));
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
scrollParent.style.overflow = '';
|
|
52
|
+
scrollParent.removeAttribute('data-is-post-header-scroll-parent');
|
|
53
|
+
this.host.removeEventListener('keydown', this.keyboardHandler.bind(this));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* An event emitted when the device has changed
|
|
58
|
+
*/
|
|
59
|
+
postUpdateDevice;
|
|
29
60
|
componentWillRender() {
|
|
30
|
-
this.scrollListenerElement = this.getScrollParent();
|
|
31
|
-
this.overflowElement =
|
|
32
|
-
this.scrollListenerElement === document
|
|
33
|
-
? document.documentElement
|
|
34
|
-
: this.scrollListenerElement;
|
|
35
|
-
this.scrollListenerElement.addEventListener('scroll', this.throttledScroll, { passive: true });
|
|
36
61
|
window.addEventListener('resize', this.throttledResize, { passive: true });
|
|
62
|
+
window.addEventListener('scroll', this.handleScrollEvent.bind(this), {
|
|
63
|
+
passive: true,
|
|
64
|
+
});
|
|
65
|
+
this.scrollParent.addEventListener('scroll', this.handleScrollEvent.bind(this), {
|
|
66
|
+
passive: true,
|
|
67
|
+
});
|
|
37
68
|
this.handleResize();
|
|
38
69
|
this.handleScrollEvent();
|
|
39
70
|
this.getFocusableElements();
|
|
40
71
|
}
|
|
41
72
|
componentDidLoad() {
|
|
42
|
-
this.updateLocalHeaderHeight();
|
|
43
73
|
// Check if the mega dropdown is expanded
|
|
44
|
-
document.addEventListener('postToggleMegadropdown', (
|
|
45
|
-
this.megadropdownOpen = event.detail.isVisible;
|
|
46
|
-
});
|
|
74
|
+
document.addEventListener('postToggleMegadropdown', this.megedropdownStateHandler.bind(this));
|
|
47
75
|
this.host.addEventListener('click', this.handleLinkClick.bind(this));
|
|
76
|
+
this.handleScrollParentResize();
|
|
77
|
+
this.handleLocalHeaderResize();
|
|
48
78
|
}
|
|
49
79
|
// Clean up possible side effects when post-header is disconnected
|
|
50
80
|
disconnectedCallback() {
|
|
81
|
+
const scrollParent = this.scrollParent;
|
|
51
82
|
this.mobileMenuExtended = false;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
83
|
+
scrollParent.style.overflow = '';
|
|
84
|
+
scrollParent.removeAttribute('data-is-post-header-scroll-parent');
|
|
85
|
+
window.removeEventListener('resize', this.throttledResize);
|
|
86
|
+
window.removeEventListener('scroll', this.handleScrollEvent.bind(this));
|
|
87
|
+
scrollParent.removeEventListener('scroll', this.handleScrollEvent.bind(this));
|
|
88
|
+
document.removeEventListener('postToggleMegadropdown', this.megedropdownStateHandler.bind(this));
|
|
89
|
+
this.host.removeEventListener('keydown', this.keyboardHandler.bind(this));
|
|
56
90
|
this.host.removeEventListener('click', this.handleLinkClick.bind(this));
|
|
91
|
+
if (this.scrollParentResizeObserver)
|
|
92
|
+
this.scrollParentResizeObserver.disconnect();
|
|
93
|
+
if (this.localHeaderResizeObserver)
|
|
94
|
+
this.localHeaderResizeObserver.disconnect();
|
|
57
95
|
}
|
|
58
|
-
host;
|
|
59
|
-
frozeBody(isMobileMenuExtended) {
|
|
60
|
-
this.overflowElement.style.overflow = isMobileMenuExtended ? 'hidden' : '';
|
|
61
|
-
if (isMobileMenuExtended) {
|
|
62
|
-
this.host.addEventListener('keydown', e => {
|
|
63
|
-
this.keyboardHandler(e);
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
this.host.removeEventListener('keydown', e => {
|
|
68
|
-
this.keyboardHandler(e);
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* An event emitted when the device has changed
|
|
74
|
-
*/
|
|
75
|
-
postUpdateDevice;
|
|
76
96
|
/**
|
|
77
97
|
* Toggles the mobile navigation.
|
|
78
98
|
*/
|
|
@@ -92,6 +112,9 @@ export class PostHeader {
|
|
|
92
112
|
if (!this.mobileMenuExtended)
|
|
93
113
|
await this.mobileMenuAnimation.finished;
|
|
94
114
|
}
|
|
115
|
+
megedropdownStateHandler(event) {
|
|
116
|
+
this.megadropdownOpen = event.detail.isVisible;
|
|
117
|
+
}
|
|
95
118
|
// Get all the focusable elements in the post-header mobile menu
|
|
96
119
|
getFocusableElements() {
|
|
97
120
|
// Get elements in the correct order (different as the DOM order)
|
|
@@ -122,25 +145,15 @@ export class PostHeader {
|
|
|
122
145
|
}
|
|
123
146
|
}
|
|
124
147
|
}
|
|
125
|
-
getScrollParent() {
|
|
126
|
-
let parent = this.host.parentElement;
|
|
127
|
-
if (parent.tagName === 'BODY') {
|
|
128
|
-
parent = document;
|
|
129
|
-
}
|
|
130
|
-
return parent;
|
|
131
|
-
}
|
|
132
148
|
handleScrollEvent() {
|
|
133
|
-
|
|
134
|
-
const st = Math.max(0, this.scrollListenerElement instanceof Document
|
|
135
|
-
? this.scrollListenerElement.documentElement.scrollTop
|
|
136
|
-
: this.scrollListenerElement.scrollTop);
|
|
137
|
-
this.host.style.setProperty('--header-scroll-top', `${st}px`);
|
|
149
|
+
this.host.style.setProperty('--header-scroll-top', `${this.scrollParent.scrollTop}px`);
|
|
138
150
|
}
|
|
139
151
|
updateLocalHeaderHeight() {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
152
|
+
const localHeaderHeight = this.host.shadowRoot.querySelector('.local-header')?.clientHeight || 0;
|
|
153
|
+
this.host.style.setProperty('--local-header-height', `${localHeaderHeight}px`);
|
|
154
|
+
}
|
|
155
|
+
updateScrollParentHeight() {
|
|
156
|
+
this.host.style.setProperty('--header-scroll-parent-height', `${this.scrollParent.clientHeight}px`);
|
|
144
157
|
}
|
|
145
158
|
handleLinkClick(event) {
|
|
146
159
|
const target = event.target;
|
|
@@ -177,7 +190,6 @@ export class PostHeader {
|
|
|
177
190
|
this.toggleMobileMenu();
|
|
178
191
|
this.mobileMenuAnimation.finish(); // no animation
|
|
179
192
|
}
|
|
180
|
-
this.updateLocalHeaderHeight();
|
|
181
193
|
// Apply only on change for doing work only when necessary
|
|
182
194
|
if (newDevice !== previousDevice) {
|
|
183
195
|
this.device = newDevice;
|
|
@@ -187,6 +199,19 @@ export class PostHeader {
|
|
|
187
199
|
});
|
|
188
200
|
}
|
|
189
201
|
}
|
|
202
|
+
handleScrollParentResize() {
|
|
203
|
+
if (this.scrollParent) {
|
|
204
|
+
this.scrollParentResizeObserver = new ResizeObserver(this.updateScrollParentHeight.bind(this));
|
|
205
|
+
this.scrollParentResizeObserver.observe(this.scrollParent);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
handleLocalHeaderResize() {
|
|
209
|
+
const localHeader = this.host.shadowRoot.querySelector('.local-header');
|
|
210
|
+
if (localHeader) {
|
|
211
|
+
this.localHeaderResizeObserver = new ResizeObserver(this.updateLocalHeaderHeight.bind(this));
|
|
212
|
+
this.localHeaderResizeObserver.observe(localHeader);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
190
215
|
switchLanguageSwitchMode() {
|
|
191
216
|
const variant = this.device === 'desktop' ? 'menu' : 'list';
|
|
192
217
|
Array.from(this.host.querySelectorAll('post-language-switch')).forEach(languageSwitch => {
|
|
@@ -201,10 +226,10 @@ export class PostHeader {
|
|
|
201
226
|
if (!this.megadropdownOpen) {
|
|
202
227
|
navigationClasses.push('scroll-y');
|
|
203
228
|
}
|
|
204
|
-
return (h("div", { ref: el => (this.mobileMenu = el)
|
|
229
|
+
return (h("div", { class: navigationClasses.join(' ') }, h("div", { ref: el => (this.mobileMenu = el) }, h("slot", { name: "post-mainnavigation" }), (this.device === 'mobile' || this.device === 'tablet') && (h("div", { class: "navigation-footer" }, h("slot", { name: "meta-navigation" }), h("slot", { name: "post-language-switch" }))))));
|
|
205
230
|
}
|
|
206
231
|
render() {
|
|
207
|
-
return (h(Host, { key: '
|
|
232
|
+
return (h(Host, { key: '866b6378652ff5860c8b046f249411941e3510ca', version: version }, h("div", { key: '4f834e011faf12f0e9629c442172153a5d710f6a', class: "global-header" }, h("div", { key: '16acea9aa91b071f4ee25b00e19a0d23f5765ffa', class: "global-sub" }, h("div", { key: '1aea872a00166aeada3538f25c8d5b1afb0595a5', class: "logo" }, h("slot", { key: '343ed3f016295d025196841260fc501795f211ec', name: "post-logo" }))), h("div", { key: '47e2d3df5973d8cf542051c9da6b2b7f077d202c', class: "global-sub" }, this.device === 'desktop' && h("slot", { key: '2000cf588d06f28b1d25bca60842d05e01635e7c', name: "meta-navigation" }), h("slot", { key: '40d62c75e080bbee36b4a5f75ee0d6a727b0153a', name: "global-controls" }), this.device === 'desktop' && h("slot", { key: '531b27a3332a6f91491b0e04efce42037edf7384', name: "post-language-switch" }), h("div", { key: '427b869f050400509ec17b1ed8aa539a3efb8fef', onClick: () => this.toggleMobileMenu(), class: "mobile-toggle" }, h("slot", { key: '3d824c0b31cc55f4279944e02c4fa3f26bce9b7e', name: "post-togglebutton" })))), h("div", { key: 'bd23ea8c42abf93d343f4579b1a433d7224a3631', class: 'local-header ' + (this.mobileMenuExtended ? 'local-header-mobile-extended' : '') }, h("slot", { key: '25ee29386c66395371dd1fa7c61794fefc220b85', name: "title" }), h("div", { key: 'e8b11280d2664a8d19935fe7fc095830d0ff4a1c', class: "local-sub" }, h("slot", { key: 'af10ad2f82146d10af525dd6a83871f428d09953', name: "local-controls" }), h("slot", { key: '311f3b2ef20794fae57d8354bd4a06552e90703e' })), this.device === 'desktop' && this.renderNavigation()), this.device !== 'desktop' && this.renderNavigation()));
|
|
208
233
|
}
|
|
209
234
|
static get is() { return "post-header"; }
|
|
210
235
|
static get encapsulation() { return "shadow"; }
|