@swisspost/design-system-components 9.0.0-next.28 → 9.0.0-next.29

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.
Files changed (150) hide show
  1. package/dist/cjs/index.cjs.js +20 -20
  2. package/dist/cjs/{package-4a02ad6d.js → package-4af5d3ea.js} +1 -1
  3. package/dist/cjs/{post-accordion-d3f17c0d.js → post-accordion-420ef8ad.js} +1 -1
  4. package/dist/cjs/{post-accordion-item-190be662.js → post-accordion-item-717b167f.js} +1 -1
  5. package/dist/cjs/post-accordion-item.cjs.entry.js +2 -2
  6. package/dist/cjs/post-accordion.cjs.entry.js +2 -2
  7. package/dist/cjs/{post-avatar-f80c6920.js → post-avatar-076ca249.js} +1 -1
  8. package/dist/cjs/post-avatar.cjs.entry.js +2 -2
  9. package/dist/cjs/{post-back-to-top-42b834e5.js → post-back-to-top-91f47fda.js} +1 -1
  10. package/dist/cjs/post-back-to-top.cjs.entry.js +2 -2
  11. package/dist/cjs/{post-banner-bd4a9d42.js → post-banner-bf13ead3.js} +1 -1
  12. package/dist/cjs/post-banner.cjs.entry.js +2 -2
  13. package/dist/cjs/{post-breadcrumb-b1244910.js → post-breadcrumb-6435b6fa.js} +1 -1
  14. package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +2 -2
  15. package/dist/cjs/post-breadcrumb.cjs.entry.js +2 -2
  16. package/dist/cjs/{post-card-control-5f84741e.js → post-card-control-f3893ba8.js} +1 -1
  17. package/dist/cjs/post-card-control.cjs.entry.js +2 -2
  18. package/dist/cjs/post-closebutton_15.cjs.entry.js +2 -2
  19. package/dist/cjs/{post-collapsible-trigger-69c6f478.js → post-collapsible-trigger-0d9a3df8.js} +1 -1
  20. package/dist/cjs/post-collapsible_2.cjs.entry.js +2 -2
  21. package/dist/cjs/{post-footer-f9a42c07.js → post-footer-cde89a81.js} +1 -1
  22. package/dist/cjs/post-footer.cjs.entry.js +2 -2
  23. package/dist/cjs/{post-linkarea-7fb24c32.js → post-linkarea-4676e740.js} +1 -1
  24. package/dist/cjs/post-linkarea.cjs.entry.js +2 -2
  25. package/dist/cjs/{post-menu-item-dcd80934.js → post-menu-item-85ad65fb.js} +1 -1
  26. package/dist/cjs/{post-popover-1c0d832e.js → post-popover-83532b40.js} +1 -1
  27. package/dist/cjs/post-popover.cjs.entry.js +2 -2
  28. package/dist/cjs/{post-rating-d0550507.js → post-rating-21990c8b.js} +1 -1
  29. package/dist/cjs/post-rating.cjs.entry.js +2 -2
  30. package/dist/cjs/{post-tab-header-ffd43a70.js → post-tab-header-81fbf5ff.js} +1 -1
  31. package/dist/cjs/post-tab-header.cjs.entry.js +2 -2
  32. package/dist/cjs/{post-tab-panel-faf3d709.js → post-tab-panel-71ebb3cf.js} +1 -1
  33. package/dist/cjs/post-tab-panel.cjs.entry.js +2 -2
  34. package/dist/cjs/{post-tabs-efe7d7ac.js → post-tabs-be435e00.js} +1 -1
  35. package/dist/cjs/post-tabs.cjs.entry.js +2 -2
  36. package/dist/cjs/{post-tag-63992366.js → post-tag-ed81e114.js} +1 -1
  37. package/dist/cjs/post-tag.cjs.entry.js +2 -2
  38. package/dist/cjs/{post-togglebutton-88f6efd9.js → post-togglebutton-6c99f2a8.js} +44 -40
  39. package/dist/cjs/{post-tooltip-61fbe2aa.js → post-tooltip-3d847af6.js} +1 -1
  40. package/dist/cjs/post-tooltip.cjs.entry.js +2 -2
  41. package/dist/collection/components/post-header/post-header.js +47 -39
  42. package/dist/components/package.js +1 -1
  43. package/dist/components/post-header2.js +45 -41
  44. package/dist/docs.json +17 -5
  45. package/dist/esm/index.js +20 -20
  46. package/dist/esm/package-08c623bf.js +3 -0
  47. package/dist/esm/{post-accordion-c5d29a8a.js → post-accordion-465529b0.js} +1 -1
  48. package/dist/esm/{post-accordion-item-02cb14cf.js → post-accordion-item-dcb8a6b3.js} +1 -1
  49. package/dist/esm/post-accordion-item.entry.js +2 -2
  50. package/dist/esm/post-accordion.entry.js +2 -2
  51. package/dist/esm/{post-avatar-938ba966.js → post-avatar-fb92d451.js} +1 -1
  52. package/dist/esm/post-avatar.entry.js +2 -2
  53. package/dist/esm/{post-back-to-top-1b683d68.js → post-back-to-top-29c2ecbc.js} +1 -1
  54. package/dist/esm/post-back-to-top.entry.js +2 -2
  55. package/dist/esm/{post-banner-bba21993.js → post-banner-ae82b42f.js} +1 -1
  56. package/dist/esm/post-banner.entry.js +2 -2
  57. package/dist/esm/{post-breadcrumb-d7de5be8.js → post-breadcrumb-3951ef10.js} +1 -1
  58. package/dist/esm/post-breadcrumb-item_2.entry.js +2 -2
  59. package/dist/esm/post-breadcrumb.entry.js +2 -2
  60. package/dist/esm/{post-card-control-7bae2d03.js → post-card-control-1cee4a72.js} +1 -1
  61. package/dist/esm/post-card-control.entry.js +2 -2
  62. package/dist/esm/post-closebutton_15.entry.js +2 -2
  63. package/dist/esm/{post-collapsible-trigger-f0388a5d.js → post-collapsible-trigger-def32fc5.js} +1 -1
  64. package/dist/esm/post-collapsible_2.entry.js +2 -2
  65. package/dist/esm/{post-footer-2208bbc1.js → post-footer-2ec383ec.js} +1 -1
  66. package/dist/esm/post-footer.entry.js +2 -2
  67. package/dist/esm/{post-linkarea-6c4ae7d9.js → post-linkarea-d440a2b4.js} +1 -1
  68. package/dist/esm/post-linkarea.entry.js +2 -2
  69. package/dist/esm/{post-menu-item-12537d9f.js → post-menu-item-0f81dbc5.js} +1 -1
  70. package/dist/esm/{post-popover-a21da0fb.js → post-popover-4552c29a.js} +1 -1
  71. package/dist/esm/post-popover.entry.js +2 -2
  72. package/dist/esm/{post-rating-a22c63ad.js → post-rating-abfeeacf.js} +1 -1
  73. package/dist/esm/post-rating.entry.js +2 -2
  74. package/dist/esm/{post-tab-header-a6890c45.js → post-tab-header-ebbeb215.js} +1 -1
  75. package/dist/esm/post-tab-header.entry.js +2 -2
  76. package/dist/esm/{post-tab-panel-5b17d7dc.js → post-tab-panel-c2e834d4.js} +1 -1
  77. package/dist/esm/post-tab-panel.entry.js +2 -2
  78. package/dist/esm/{post-tabs-76a962ed.js → post-tabs-25ba69ea.js} +1 -1
  79. package/dist/esm/post-tabs.entry.js +2 -2
  80. package/dist/esm/{post-tag-c109721b.js → post-tag-95663466.js} +1 -1
  81. package/dist/esm/post-tag.entry.js +2 -2
  82. package/dist/esm/{post-togglebutton-62c82006.js → post-togglebutton-f076a2bb.js} +44 -40
  83. package/dist/esm/{post-tooltip-60b99658.js → post-tooltip-dc49483f.js} +1 -1
  84. package/dist/esm/post-tooltip.entry.js +2 -2
  85. package/dist/post-components/index.esm.js +1 -1
  86. package/dist/post-components/{p-9bc767bf.js → p-01c29d19.js} +1 -1
  87. package/dist/post-components/{p-8eacdd0a.js → p-029cbf1c.js} +1 -1
  88. package/dist/post-components/p-04f18b43.entry.js +1 -0
  89. package/dist/post-components/{p-d1fdb83e.js → p-1d9ceda1.js} +1 -1
  90. package/dist/post-components/p-22378e65.entry.js +1 -0
  91. package/dist/post-components/{p-4434614d.js → p-26ca0eb8.js} +1 -1
  92. package/dist/post-components/{p-7890857b.js → p-283466d7.js} +1 -1
  93. package/dist/post-components/p-4e60f6b9.entry.js +1 -0
  94. package/dist/post-components/p-53a611ba.entry.js +1 -0
  95. package/dist/post-components/p-55242ffc.entry.js +1 -0
  96. package/dist/post-components/p-56259a41.entry.js +1 -0
  97. package/dist/post-components/{p-a0977ac3.js → p-57595392.js} +1 -1
  98. package/dist/post-components/p-580fd9c5.entry.js +1 -0
  99. package/dist/post-components/{p-4117cb81.js → p-5dd40f83.js} +1 -1
  100. package/dist/post-components/{p-bf645bb3.js → p-610b4050.js} +1 -1
  101. package/dist/post-components/{p-a0a558f4.entry.js → p-699f78b5.entry.js} +1 -1
  102. package/dist/post-components/p-70e6769b.js +1 -0
  103. package/dist/post-components/p-7335c94a.entry.js +1 -0
  104. package/dist/post-components/p-7e5fbf2b.entry.js +1 -0
  105. package/dist/post-components/p-8098c26c.entry.js +1 -0
  106. package/dist/post-components/p-8515ab59.entry.js +1 -0
  107. package/dist/post-components/{p-5a527719.js → p-8d906ba2.js} +1 -1
  108. package/dist/post-components/{p-bf3eed5c.js → p-8d9b499b.js} +1 -1
  109. package/dist/post-components/{p-76b6be0b.js → p-a56dad38.js} +1 -1
  110. package/dist/post-components/{p-098d15c8.entry.js → p-a9e01ce6.entry.js} +1 -1
  111. package/dist/post-components/{p-40d54769.js → p-bceb500f.js} +1 -1
  112. package/dist/post-components/p-bdad79f6.entry.js +1 -0
  113. package/dist/post-components/{p-f0efe890.js → p-c617e1cb.js} +1 -1
  114. package/dist/post-components/p-c7944519.entry.js +1 -0
  115. package/dist/post-components/{p-02edd21e.js → p-ccd83c09.js} +1 -1
  116. package/dist/post-components/p-cddbd32f.entry.js +1 -0
  117. package/dist/post-components/{p-922fa512.js → p-ce852695.js} +1 -1
  118. package/dist/post-components/p-db8093a9.entry.js +1 -0
  119. package/dist/post-components/p-dd973323.entry.js +1 -0
  120. package/dist/post-components/p-e6038029.js +1 -0
  121. package/dist/post-components/{p-4ea7563e.js → p-eaa3937a.js} +1 -1
  122. package/dist/post-components/{p-fcd57aa0.js → p-f1012812.js} +1 -1
  123. package/dist/post-components/p-f93e5fc0.entry.js +1 -0
  124. package/dist/post-components/{p-72cb4a59.js → p-fecb2d59.js} +1 -1
  125. package/dist/post-components/post-components.esm.js +1 -1
  126. package/dist/types/components/post-header/post-header.d.ts +3 -2
  127. package/dist/types/components.d.ts +1 -1
  128. package/loaders/package.js +1 -1
  129. package/loaders/post-header.js +45 -41
  130. package/package.json +3 -3
  131. package/dist/esm/package-5427a051.js +0 -3
  132. package/dist/post-components/p-01155190.entry.js +0 -1
  133. package/dist/post-components/p-0d93cdbb.entry.js +0 -1
  134. package/dist/post-components/p-27ba60ce.entry.js +0 -1
  135. package/dist/post-components/p-28d97d97.entry.js +0 -1
  136. package/dist/post-components/p-3328ea8c.entry.js +0 -1
  137. package/dist/post-components/p-3c2ff88e.entry.js +0 -1
  138. package/dist/post-components/p-458e8300.entry.js +0 -1
  139. package/dist/post-components/p-4aa6c733.entry.js +0 -1
  140. package/dist/post-components/p-510f2ba4.js +0 -1
  141. package/dist/post-components/p-518f78cd.entry.js +0 -1
  142. package/dist/post-components/p-541eb870.entry.js +0 -1
  143. package/dist/post-components/p-55dc30da.entry.js +0 -1
  144. package/dist/post-components/p-830261c4.entry.js +0 -1
  145. package/dist/post-components/p-869b2f3d.entry.js +0 -1
  146. package/dist/post-components/p-958b1ff0.entry.js +0 -1
  147. package/dist/post-components/p-a6c1efcb.entry.js +0 -1
  148. package/dist/post-components/p-b5e256a9.entry.js +0 -1
  149. package/dist/post-components/p-d0d63856.js +0 -1
  150. package/dist/post-components/p-e474ae4e.entry.js +0 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const index = require('./index-d6bf2c66.js');
4
- const _package = require('./package-4a02ad6d.js');
4
+ const _package = require('./package-4af5d3ea.js');
5
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');
@@ -192,13 +192,6 @@ const postHeaderCss = "*,::before,::after{box-sizing:border-box}:host{z-index:10
192
192
  const PostHeaderStyle0 = postHeaderCss;
193
193
 
194
194
  const PostHeader = class {
195
- constructor(hostRef) {
196
- index.registerInstance(this, hostRef);
197
- this.postUpdateDevice = index.createEvent(this, "postUpdateDevice", 7);
198
- this.device = null;
199
- this.mobileMenuExtended = false;
200
- this.megadropdownOpen = false;
201
- }
202
195
  firstFocusableEl;
203
196
  lastFocusableEl;
204
197
  mobileMenu;
@@ -226,65 +219,76 @@ const PostHeader = class {
226
219
  if (isMobileMenuExtended) {
227
220
  scrollParent.setAttribute('data-is-post-header-scroll-parent', '');
228
221
  scrollParent.style.overflow = 'hidden';
229
- this.host.addEventListener('keydown', this.keyboardHandler.bind(this));
222
+ this.host.addEventListener('keydown', this.keyboardHandler);
230
223
  }
231
224
  else {
232
225
  scrollParent.style.overflow = '';
233
226
  scrollParent.removeAttribute('data-is-post-header-scroll-parent');
234
- this.host.removeEventListener('keydown', this.keyboardHandler.bind(this));
227
+ this.host.removeEventListener('keydown', this.keyboardHandler);
235
228
  }
236
229
  }
237
230
  /**
238
231
  * An event emitted when the device has changed
239
232
  */
240
233
  postUpdateDevice;
241
- connectedCallback() {
242
- const scrollParent = this.scrollParent;
243
- scrollParent.style.overflow = '';
244
- scrollParent.removeAttribute('data-is-post-header-scroll-parent');
245
- console.log('disconnectedCallback', this.mobileMenuExtended, this.scrollParent, this.scrollParent.style.overflow, this.scrollParent.hasAttribute('data-is-post-header-scroll-parent'));
234
+ constructor(hostRef) {
235
+ index.registerInstance(this, hostRef);
236
+ this.postUpdateDevice = index.createEvent(this, "postUpdateDevice", 7);
237
+ this.device = null;
238
+ this.mobileMenuExtended = false;
239
+ this.megadropdownOpen = false;
240
+ this.handleScrollEvent = this.handleScrollEvent.bind(this);
241
+ this.updateScrollParentHeight = this.updateScrollParentHeight.bind(this);
242
+ this.updateLocalHeaderHeight = this.updateLocalHeaderHeight.bind(this);
243
+ this.megedropdownStateHandler = this.megedropdownStateHandler.bind(this);
244
+ this.keyboardHandler = this.keyboardHandler.bind(this);
245
+ this.handleLinkClick = this.handleLinkClick.bind(this);
246
246
  }
247
- componentWillRender() {
247
+ connectedCallback() {
248
248
  window.addEventListener('resize', this.throttledResize, { passive: true });
249
- window.addEventListener('scroll', this.handleScrollEvent.bind(this), {
249
+ window.addEventListener('scroll', this.handleScrollEvent, {
250
250
  passive: true,
251
251
  });
252
- this.scrollParent.addEventListener('scroll', this.handleScrollEvent.bind(this), {
252
+ this.scrollParent.addEventListener('scroll', this.handleScrollEvent, {
253
253
  passive: true,
254
254
  });
255
+ document.addEventListener('postToggleMegadropdown', this.megedropdownStateHandler);
256
+ this.host.addEventListener('click', this.handleLinkClick);
257
+ this.frozeBody(false);
255
258
  this.handleResize();
256
259
  this.handleScrollEvent();
260
+ this.handleScrollParentResize();
261
+ }
262
+ componentDidRender() {
257
263
  this.getFocusableElements();
264
+ this.handleLocalHeaderResize();
258
265
  }
259
266
  componentDidLoad() {
260
267
  // Check if the mega dropdown is expanded
261
- document.addEventListener('postToggleMegadropdown', this.megedropdownStateHandler.bind(this));
262
- this.host.addEventListener('click', this.handleLinkClick.bind(this));
263
- this.handleScrollParentResize();
264
- this.handleLocalHeaderResize();
265
268
  }
266
269
  // Clean up possible side effects when post-header is disconnected
267
270
  disconnectedCallback() {
268
271
  const scrollParent = this.scrollParent;
269
272
  window.removeEventListener('resize', this.throttledResize);
270
- window.removeEventListener('scroll', this.handleScrollEvent.bind(this));
271
- scrollParent.removeEventListener('scroll', this.handleScrollEvent.bind(this));
272
- document.removeEventListener('postToggleMegadropdown', this.megedropdownStateHandler.bind(this));
273
- this.host.removeEventListener('keydown', this.keyboardHandler.bind(this));
274
- this.host.removeEventListener('click', this.handleLinkClick.bind(this));
275
- if (this.scrollParentResizeObserver)
273
+ window.removeEventListener('scroll', this.handleScrollEvent);
274
+ scrollParent.removeEventListener('scroll', this.handleScrollEvent);
275
+ document.removeEventListener('postToggleMegadropdown', this.megedropdownStateHandler);
276
+ this.host.removeEventListener('keydown', this.keyboardHandler);
277
+ this.host.removeEventListener('click', this.handleLinkClick);
278
+ if (this.scrollParentResizeObserver) {
276
279
  this.scrollParentResizeObserver.disconnect();
277
- if (this.localHeaderResizeObserver)
280
+ this.scrollParentResizeObserver = null;
281
+ }
282
+ if (this.localHeaderResizeObserver) {
278
283
  this.localHeaderResizeObserver.disconnect();
284
+ this.localHeaderResizeObserver = null;
285
+ }
279
286
  this.mobileMenuExtended = false;
280
- scrollParent.style.overflow = '';
281
- scrollParent.removeAttribute('data-is-post-header-scroll-parent');
282
- console.log('disconnectedCallback', this.mobileMenuExtended, this.scrollParent, this.scrollParent.style.overflow, this.scrollParent.hasAttribute('data-is-post-header-scroll-parent'));
283
287
  }
284
288
  /**
285
289
  * Toggles the mobile navigation.
286
290
  */
287
- async toggleMobileMenu() {
291
+ async toggleMobileMenu(force) {
288
292
  if (this.device === 'desktop')
289
293
  return;
290
294
  this.mobileMenuAnimation = this.mobileMenuExtended
@@ -292,11 +296,11 @@ const PostHeader = class {
292
296
  : slide.slideDown(this.mobileMenu);
293
297
  // Update the state of the toggle button
294
298
  const menuButton = this.host.querySelector('post-togglebutton');
295
- menuButton.toggled = !this.mobileMenuExtended;
299
+ menuButton.toggled = force ?? !this.mobileMenuExtended;
296
300
  // Toggle menu visibility before it slides down and after it slides back up
297
301
  if (this.mobileMenuExtended)
298
302
  await this.mobileMenuAnimation.finished;
299
- this.mobileMenuExtended = !this.mobileMenuExtended;
303
+ this.mobileMenuExtended = force ?? !this.mobileMenuExtended;
300
304
  if (!this.mobileMenuExtended)
301
305
  await this.mobileMenuAnimation.finished;
302
306
  }
@@ -351,7 +355,7 @@ const PostHeader = class {
351
355
  return;
352
356
  }
353
357
  if (this.mobileMenuExtended && (isLinkInMainNav || isLinkInMegadropdown)) {
354
- this.toggleMobileMenu();
358
+ this.toggleMobileMenu(false);
355
359
  }
356
360
  if (this.device === 'desktop' && isLinkInMegadropdown) {
357
361
  const megadropdownLink = target.closest('post-megadropdown a');
@@ -389,14 +393,14 @@ const PostHeader = class {
389
393
  }
390
394
  handleScrollParentResize() {
391
395
  if (this.scrollParent) {
392
- this.scrollParentResizeObserver = new ResizeObserver(this.updateScrollParentHeight.bind(this));
396
+ this.scrollParentResizeObserver = new ResizeObserver(this.updateScrollParentHeight);
393
397
  this.scrollParentResizeObserver.observe(this.scrollParent);
394
398
  }
395
399
  }
396
400
  handleLocalHeaderResize() {
397
401
  const localHeader = this.host.shadowRoot.querySelector('.local-header');
398
- if (localHeader) {
399
- this.localHeaderResizeObserver = new ResizeObserver(this.updateLocalHeaderHeight.bind(this));
402
+ if (localHeader && !this.localHeaderResizeObserver) {
403
+ this.localHeaderResizeObserver = new ResizeObserver(this.updateLocalHeaderHeight);
400
404
  this.localHeaderResizeObserver.observe(localHeader);
401
405
  }
402
406
  }
@@ -417,7 +421,7 @@ const PostHeader = class {
417
421
  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" }))))));
418
422
  }
419
423
  render() {
420
- return (index.h(index.Host, { key: '5107418a1d580bf6f5fecb7021536a47ac0d753f', version: _package.version }, index.h("div", { key: '07b96160f9734294624a0c4c4db686fca6909e7f', class: "global-header" }, index.h("div", { key: '549eeaee86fbd27a2e994fec00b5bcb4be417eff', class: "global-sub" }, index.h("div", { key: '3119f9f19427ddf7adb3a6f0e1c6b2acd048d758', class: "logo" }, index.h("slot", { key: '088f1a652930115b3c927048d004ebc5958c4a4c', name: "post-logo" }))), index.h("div", { key: '86dff84437178bad2fae559424a08a941822b1bc', class: "global-sub" }, this.device === 'desktop' && index.h("slot", { key: '7b68b2c648b12fe3f777fbd8bac4df51b559fcbf', name: "meta-navigation" }), index.h("slot", { key: 'ac97ce61da9280e3fd1be05fc36aa33e29795449', name: "global-controls" }), this.device === 'desktop' && index.h("slot", { key: 'df45cadb9e3bbbfb4a4b1b8799688c582e23de2b', name: "post-language-switch" }), index.h("div", { key: 'eaad8918db781de6c7c9bd0729801b11ef0cf3cf', onClick: () => this.toggleMobileMenu(), class: "mobile-toggle" }, index.h("slot", { key: '04753ff37b9523260d1e976698b0aec3838cf935', name: "post-togglebutton" })))), index.h("div", { key: 'b154e5dc69da1638d89f210cb2c7451425c52b5b', class: 'local-header ' + (this.mobileMenuExtended ? 'local-header-mobile-extended' : '') }, index.h("slot", { key: 'b1cad5b3e9acee0424884aea0caf8d9e153bf6d3', name: "title" }), index.h("div", { key: '26ec16c47a57a87ff0fc5d030f47bdd91dfbdbc0', class: "local-sub" }, index.h("slot", { key: '8e08c4ec4bd4bee4286173b4ddc77d061b97b0c4', name: "local-controls" }), index.h("slot", { key: 'ea1e250cc166c6dff8beea00fe6d9a9c3a83f55d' })), this.device === 'desktop' && this.renderNavigation()), this.device !== 'desktop' && this.renderNavigation()));
424
+ return (index.h(index.Host, { key: '9cf9cfd3c09958b60be5492f226766098aa4c3fb', version: _package.version }, index.h("div", { key: '11eff51b1d3b5da81af282b12d7c621d9d389dd0', class: "global-header" }, index.h("div", { key: 'e80d3e7726329c6902f414fd6d74f3d74f54e8ca', class: "global-sub" }, index.h("div", { key: '9c7fad8991432ca8f23193566285cb6948a9efbd', class: "logo" }, index.h("slot", { key: 'cd993961cc68757155a6408f9a1ce903cf64bb98', name: "post-logo" }))), index.h("div", { key: '0ebe23b40ed941eb743caaa68767c1e8dbab6f9e', class: "global-sub" }, this.device === 'desktop' && index.h("slot", { key: 'e972a93266f2240e1f66248c8f00fcc9fafd6b8c', name: "meta-navigation" }), index.h("slot", { key: '5ddac1faa808b043705e9f8d654b6610e230484b', name: "global-controls" }), this.device === 'desktop' && index.h("slot", { key: '86dec5106e34b14cbc6f5fa5c7cac98e0a571ef4', name: "post-language-switch" }), index.h("div", { key: '5eb98bbabfaa86c20974c9ede677bf31aa1afbc7', onClick: () => this.toggleMobileMenu(), class: "mobile-toggle" }, index.h("slot", { key: '3a35856948852d880be939b6f66b5c38e921c19a', name: "post-togglebutton" })))), index.h("div", { key: 'e2749e94aad4b6174b28dbab5d64c6bc2bd614ca', class: 'local-header ' + (this.mobileMenuExtended ? 'local-header-mobile-extended' : '') }, index.h("slot", { key: 'e767a608ecca1199554c25f86188ca3d74ec1f95', name: "title" }), index.h("div", { key: 'bedb62571e462b89948fafa319faa5937fc6b8c3', class: "local-sub" }, index.h("slot", { key: '2e051bd52a90b8f806ca3caaec2ed67c16f887f0', name: "local-controls" }), index.h("slot", { key: '5d1dc41591db297b1d4c9e1622fad2ac5376de87' })), this.device === 'desktop' && this.renderNavigation()), this.device !== 'desktop' && this.renderNavigation()));
421
425
  }
422
426
  static get watchers() { return {
423
427
  "mobileMenuExtended": ["frozeBody"]
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const index = require('./index-d6bf2c66.js');
4
- const _package = require('./package-4a02ad6d.js');
4
+ const _package = require('./package-4af5d3ea.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-61fbe2aa.js');
5
+ const postTooltip = require('./post-tooltip-3d847af6.js');
6
6
  require('./index-d6bf2c66.js');
7
- require('./package-4a02ad6d.js');
7
+ require('./package-4af5d3ea.js');
8
8
  require('./attribute-observer-6d8b886b.js');
9
9
  require('./index-23e36ff7.js');
10
10
  require('./constants-238701d3.js');
@@ -13,11 +13,6 @@ import { getFocusableChildren } from "../../utils/get-focusable-children";
13
13
  * @slot post-mainnavigation - Has a default slot because it's only meant to be used in the `<post-header>`.
14
14
  */
15
15
  export class PostHeader {
16
- constructor() {
17
- this.device = null;
18
- this.mobileMenuExtended = false;
19
- this.megadropdownOpen = false;
20
- }
21
16
  firstFocusableEl;
22
17
  lastFocusableEl;
23
18
  mobileMenu;
@@ -45,65 +40,74 @@ export class PostHeader {
45
40
  if (isMobileMenuExtended) {
46
41
  scrollParent.setAttribute('data-is-post-header-scroll-parent', '');
47
42
  scrollParent.style.overflow = 'hidden';
48
- this.host.addEventListener('keydown', this.keyboardHandler.bind(this));
43
+ this.host.addEventListener('keydown', this.keyboardHandler);
49
44
  }
50
45
  else {
51
46
  scrollParent.style.overflow = '';
52
47
  scrollParent.removeAttribute('data-is-post-header-scroll-parent');
53
- this.host.removeEventListener('keydown', this.keyboardHandler.bind(this));
48
+ this.host.removeEventListener('keydown', this.keyboardHandler);
54
49
  }
55
50
  }
56
51
  /**
57
52
  * An event emitted when the device has changed
58
53
  */
59
54
  postUpdateDevice;
60
- connectedCallback() {
61
- const scrollParent = this.scrollParent;
62
- scrollParent.style.overflow = '';
63
- scrollParent.removeAttribute('data-is-post-header-scroll-parent');
64
- console.log('disconnectedCallback', this.mobileMenuExtended, this.scrollParent, this.scrollParent.style.overflow, this.scrollParent.hasAttribute('data-is-post-header-scroll-parent'));
55
+ constructor() {
56
+ this.device = null;
57
+ this.mobileMenuExtended = false;
58
+ this.megadropdownOpen = false;
59
+ this.handleScrollEvent = this.handleScrollEvent.bind(this);
60
+ this.updateScrollParentHeight = this.updateScrollParentHeight.bind(this);
61
+ this.updateLocalHeaderHeight = this.updateLocalHeaderHeight.bind(this);
62
+ this.megedropdownStateHandler = this.megedropdownStateHandler.bind(this);
63
+ this.keyboardHandler = this.keyboardHandler.bind(this);
64
+ this.handleLinkClick = this.handleLinkClick.bind(this);
65
65
  }
66
- componentWillRender() {
66
+ connectedCallback() {
67
67
  window.addEventListener('resize', this.throttledResize, { passive: true });
68
- window.addEventListener('scroll', this.handleScrollEvent.bind(this), {
68
+ window.addEventListener('scroll', this.handleScrollEvent, {
69
69
  passive: true,
70
70
  });
71
- this.scrollParent.addEventListener('scroll', this.handleScrollEvent.bind(this), {
71
+ this.scrollParent.addEventListener('scroll', this.handleScrollEvent, {
72
72
  passive: true,
73
73
  });
74
+ document.addEventListener('postToggleMegadropdown', this.megedropdownStateHandler);
75
+ this.host.addEventListener('click', this.handleLinkClick);
76
+ this.frozeBody(false);
74
77
  this.handleResize();
75
78
  this.handleScrollEvent();
79
+ this.handleScrollParentResize();
80
+ }
81
+ componentDidRender() {
76
82
  this.getFocusableElements();
83
+ this.handleLocalHeaderResize();
77
84
  }
78
85
  componentDidLoad() {
79
86
  // Check if the mega dropdown is expanded
80
- document.addEventListener('postToggleMegadropdown', this.megedropdownStateHandler.bind(this));
81
- this.host.addEventListener('click', this.handleLinkClick.bind(this));
82
- this.handleScrollParentResize();
83
- this.handleLocalHeaderResize();
84
87
  }
85
88
  // Clean up possible side effects when post-header is disconnected
86
89
  disconnectedCallback() {
87
90
  const scrollParent = this.scrollParent;
88
91
  window.removeEventListener('resize', this.throttledResize);
89
- window.removeEventListener('scroll', this.handleScrollEvent.bind(this));
90
- scrollParent.removeEventListener('scroll', this.handleScrollEvent.bind(this));
91
- document.removeEventListener('postToggleMegadropdown', this.megedropdownStateHandler.bind(this));
92
- this.host.removeEventListener('keydown', this.keyboardHandler.bind(this));
93
- this.host.removeEventListener('click', this.handleLinkClick.bind(this));
94
- if (this.scrollParentResizeObserver)
92
+ window.removeEventListener('scroll', this.handleScrollEvent);
93
+ scrollParent.removeEventListener('scroll', this.handleScrollEvent);
94
+ document.removeEventListener('postToggleMegadropdown', this.megedropdownStateHandler);
95
+ this.host.removeEventListener('keydown', this.keyboardHandler);
96
+ this.host.removeEventListener('click', this.handleLinkClick);
97
+ if (this.scrollParentResizeObserver) {
95
98
  this.scrollParentResizeObserver.disconnect();
96
- if (this.localHeaderResizeObserver)
99
+ this.scrollParentResizeObserver = null;
100
+ }
101
+ if (this.localHeaderResizeObserver) {
97
102
  this.localHeaderResizeObserver.disconnect();
103
+ this.localHeaderResizeObserver = null;
104
+ }
98
105
  this.mobileMenuExtended = false;
99
- scrollParent.style.overflow = '';
100
- scrollParent.removeAttribute('data-is-post-header-scroll-parent');
101
- console.log('disconnectedCallback', this.mobileMenuExtended, this.scrollParent, this.scrollParent.style.overflow, this.scrollParent.hasAttribute('data-is-post-header-scroll-parent'));
102
106
  }
103
107
  /**
104
108
  * Toggles the mobile navigation.
105
109
  */
106
- async toggleMobileMenu() {
110
+ async toggleMobileMenu(force) {
107
111
  if (this.device === 'desktop')
108
112
  return;
109
113
  this.mobileMenuAnimation = this.mobileMenuExtended
@@ -111,11 +115,11 @@ export class PostHeader {
111
115
  : slideDown(this.mobileMenu);
112
116
  // Update the state of the toggle button
113
117
  const menuButton = this.host.querySelector('post-togglebutton');
114
- menuButton.toggled = !this.mobileMenuExtended;
118
+ menuButton.toggled = force ?? !this.mobileMenuExtended;
115
119
  // Toggle menu visibility before it slides down and after it slides back up
116
120
  if (this.mobileMenuExtended)
117
121
  await this.mobileMenuAnimation.finished;
118
- this.mobileMenuExtended = !this.mobileMenuExtended;
122
+ this.mobileMenuExtended = force ?? !this.mobileMenuExtended;
119
123
  if (!this.mobileMenuExtended)
120
124
  await this.mobileMenuAnimation.finished;
121
125
  }
@@ -170,7 +174,7 @@ export class PostHeader {
170
174
  return;
171
175
  }
172
176
  if (this.mobileMenuExtended && (isLinkInMainNav || isLinkInMegadropdown)) {
173
- this.toggleMobileMenu();
177
+ this.toggleMobileMenu(false);
174
178
  }
175
179
  if (this.device === 'desktop' && isLinkInMegadropdown) {
176
180
  const megadropdownLink = target.closest('post-megadropdown a');
@@ -208,14 +212,14 @@ export class PostHeader {
208
212
  }
209
213
  handleScrollParentResize() {
210
214
  if (this.scrollParent) {
211
- this.scrollParentResizeObserver = new ResizeObserver(this.updateScrollParentHeight.bind(this));
215
+ this.scrollParentResizeObserver = new ResizeObserver(this.updateScrollParentHeight);
212
216
  this.scrollParentResizeObserver.observe(this.scrollParent);
213
217
  }
214
218
  }
215
219
  handleLocalHeaderResize() {
216
220
  const localHeader = this.host.shadowRoot.querySelector('.local-header');
217
- if (localHeader) {
218
- this.localHeaderResizeObserver = new ResizeObserver(this.updateLocalHeaderHeight.bind(this));
221
+ if (localHeader && !this.localHeaderResizeObserver) {
222
+ this.localHeaderResizeObserver = new ResizeObserver(this.updateLocalHeaderHeight);
219
223
  this.localHeaderResizeObserver.observe(localHeader);
220
224
  }
221
225
  }
@@ -236,7 +240,7 @@ export class PostHeader {
236
240
  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" }))))));
237
241
  }
238
242
  render() {
239
- return (h(Host, { key: '5107418a1d580bf6f5fecb7021536a47ac0d753f', version: version }, h("div", { key: '07b96160f9734294624a0c4c4db686fca6909e7f', class: "global-header" }, h("div", { key: '549eeaee86fbd27a2e994fec00b5bcb4be417eff', class: "global-sub" }, h("div", { key: '3119f9f19427ddf7adb3a6f0e1c6b2acd048d758', class: "logo" }, h("slot", { key: '088f1a652930115b3c927048d004ebc5958c4a4c', name: "post-logo" }))), h("div", { key: '86dff84437178bad2fae559424a08a941822b1bc', class: "global-sub" }, this.device === 'desktop' && h("slot", { key: '7b68b2c648b12fe3f777fbd8bac4df51b559fcbf', name: "meta-navigation" }), h("slot", { key: 'ac97ce61da9280e3fd1be05fc36aa33e29795449', name: "global-controls" }), this.device === 'desktop' && h("slot", { key: 'df45cadb9e3bbbfb4a4b1b8799688c582e23de2b', name: "post-language-switch" }), h("div", { key: 'eaad8918db781de6c7c9bd0729801b11ef0cf3cf', onClick: () => this.toggleMobileMenu(), class: "mobile-toggle" }, h("slot", { key: '04753ff37b9523260d1e976698b0aec3838cf935', name: "post-togglebutton" })))), h("div", { key: 'b154e5dc69da1638d89f210cb2c7451425c52b5b', class: 'local-header ' + (this.mobileMenuExtended ? 'local-header-mobile-extended' : '') }, h("slot", { key: 'b1cad5b3e9acee0424884aea0caf8d9e153bf6d3', name: "title" }), h("div", { key: '26ec16c47a57a87ff0fc5d030f47bdd91dfbdbc0', class: "local-sub" }, h("slot", { key: '8e08c4ec4bd4bee4286173b4ddc77d061b97b0c4', name: "local-controls" }), h("slot", { key: 'ea1e250cc166c6dff8beea00fe6d9a9c3a83f55d' })), this.device === 'desktop' && this.renderNavigation()), this.device !== 'desktop' && this.renderNavigation()));
243
+ return (h(Host, { key: '9cf9cfd3c09958b60be5492f226766098aa4c3fb', version: version }, h("div", { key: '11eff51b1d3b5da81af282b12d7c621d9d389dd0', class: "global-header" }, h("div", { key: 'e80d3e7726329c6902f414fd6d74f3d74f54e8ca', class: "global-sub" }, h("div", { key: '9c7fad8991432ca8f23193566285cb6948a9efbd', class: "logo" }, h("slot", { key: 'cd993961cc68757155a6408f9a1ce903cf64bb98', name: "post-logo" }))), h("div", { key: '0ebe23b40ed941eb743caaa68767c1e8dbab6f9e', class: "global-sub" }, this.device === 'desktop' && h("slot", { key: 'e972a93266f2240e1f66248c8f00fcc9fafd6b8c', name: "meta-navigation" }), h("slot", { key: '5ddac1faa808b043705e9f8d654b6610e230484b', name: "global-controls" }), this.device === 'desktop' && h("slot", { key: '86dec5106e34b14cbc6f5fa5c7cac98e0a571ef4', name: "post-language-switch" }), h("div", { key: '5eb98bbabfaa86c20974c9ede677bf31aa1afbc7', onClick: () => this.toggleMobileMenu(), class: "mobile-toggle" }, h("slot", { key: '3a35856948852d880be939b6f66b5c38e921c19a', name: "post-togglebutton" })))), h("div", { key: 'e2749e94aad4b6174b28dbab5d64c6bc2bd614ca', class: 'local-header ' + (this.mobileMenuExtended ? 'local-header-mobile-extended' : '') }, h("slot", { key: 'e767a608ecca1199554c25f86188ca3d74ec1f95', name: "title" }), h("div", { key: 'bedb62571e462b89948fafa319faa5937fc6b8c3', class: "local-sub" }, h("slot", { key: '2e051bd52a90b8f806ca3caaec2ed67c16f887f0', name: "local-controls" }), h("slot", { key: '5d1dc41591db297b1d4c9e1622fad2ac5376de87' })), this.device === 'desktop' && this.renderNavigation()), this.device !== 'desktop' && this.renderNavigation()));
240
244
  }
241
245
  static get is() { return "post-header"; }
242
246
  static get encapsulation() { return "shadow"; }
@@ -285,8 +289,12 @@ export class PostHeader {
285
289
  return {
286
290
  "toggleMobileMenu": {
287
291
  "complexType": {
288
- "signature": "() => Promise<void>",
289
- "parameters": [],
292
+ "signature": "(force?: boolean) => Promise<void>",
293
+ "parameters": [{
294
+ "name": "force",
295
+ "type": "boolean",
296
+ "docs": ""
297
+ }],
290
298
  "references": {
291
299
  "Promise": {
292
300
  "location": "global",
@@ -1,3 +1,3 @@
1
- const version = "9.0.0-next.28";
1
+ const version = "9.0.0-next.29";
2
2
 
3
3
  export { version as v };
@@ -141,15 +141,6 @@ const postHeaderCss = "*,::before,::after{box-sizing:border-box}:host{z-index:10
141
141
  const PostHeaderStyle0 = postHeaderCss;
142
142
 
143
143
  const PostHeader = /*@__PURE__*/ proxyCustomElement(class PostHeader extends HTMLElement {
144
- constructor() {
145
- super();
146
- this.__registerHost();
147
- this.__attachShadow();
148
- this.postUpdateDevice = createEvent(this, "postUpdateDevice", 7);
149
- this.device = null;
150
- this.mobileMenuExtended = false;
151
- this.megadropdownOpen = false;
152
- }
153
144
  firstFocusableEl;
154
145
  lastFocusableEl;
155
146
  mobileMenu;
@@ -177,65 +168,78 @@ const PostHeader = /*@__PURE__*/ proxyCustomElement(class PostHeader extends HTM
177
168
  if (isMobileMenuExtended) {
178
169
  scrollParent.setAttribute('data-is-post-header-scroll-parent', '');
179
170
  scrollParent.style.overflow = 'hidden';
180
- this.host.addEventListener('keydown', this.keyboardHandler.bind(this));
171
+ this.host.addEventListener('keydown', this.keyboardHandler);
181
172
  }
182
173
  else {
183
174
  scrollParent.style.overflow = '';
184
175
  scrollParent.removeAttribute('data-is-post-header-scroll-parent');
185
- this.host.removeEventListener('keydown', this.keyboardHandler.bind(this));
176
+ this.host.removeEventListener('keydown', this.keyboardHandler);
186
177
  }
187
178
  }
188
179
  /**
189
180
  * An event emitted when the device has changed
190
181
  */
191
182
  postUpdateDevice;
192
- connectedCallback() {
193
- const scrollParent = this.scrollParent;
194
- scrollParent.style.overflow = '';
195
- scrollParent.removeAttribute('data-is-post-header-scroll-parent');
196
- console.log('disconnectedCallback', this.mobileMenuExtended, this.scrollParent, this.scrollParent.style.overflow, this.scrollParent.hasAttribute('data-is-post-header-scroll-parent'));
183
+ constructor() {
184
+ super();
185
+ this.__registerHost();
186
+ this.__attachShadow();
187
+ this.postUpdateDevice = createEvent(this, "postUpdateDevice", 7);
188
+ this.device = null;
189
+ this.mobileMenuExtended = false;
190
+ this.megadropdownOpen = false;
191
+ this.handleScrollEvent = this.handleScrollEvent.bind(this);
192
+ this.updateScrollParentHeight = this.updateScrollParentHeight.bind(this);
193
+ this.updateLocalHeaderHeight = this.updateLocalHeaderHeight.bind(this);
194
+ this.megedropdownStateHandler = this.megedropdownStateHandler.bind(this);
195
+ this.keyboardHandler = this.keyboardHandler.bind(this);
196
+ this.handleLinkClick = this.handleLinkClick.bind(this);
197
197
  }
198
- componentWillRender() {
198
+ connectedCallback() {
199
199
  window.addEventListener('resize', this.throttledResize, { passive: true });
200
- window.addEventListener('scroll', this.handleScrollEvent.bind(this), {
200
+ window.addEventListener('scroll', this.handleScrollEvent, {
201
201
  passive: true,
202
202
  });
203
- this.scrollParent.addEventListener('scroll', this.handleScrollEvent.bind(this), {
203
+ this.scrollParent.addEventListener('scroll', this.handleScrollEvent, {
204
204
  passive: true,
205
205
  });
206
+ document.addEventListener('postToggleMegadropdown', this.megedropdownStateHandler);
207
+ this.host.addEventListener('click', this.handleLinkClick);
208
+ this.frozeBody(false);
206
209
  this.handleResize();
207
210
  this.handleScrollEvent();
211
+ this.handleScrollParentResize();
212
+ }
213
+ componentDidRender() {
208
214
  this.getFocusableElements();
215
+ this.handleLocalHeaderResize();
209
216
  }
210
217
  componentDidLoad() {
211
218
  // Check if the mega dropdown is expanded
212
- document.addEventListener('postToggleMegadropdown', this.megedropdownStateHandler.bind(this));
213
- this.host.addEventListener('click', this.handleLinkClick.bind(this));
214
- this.handleScrollParentResize();
215
- this.handleLocalHeaderResize();
216
219
  }
217
220
  // Clean up possible side effects when post-header is disconnected
218
221
  disconnectedCallback() {
219
222
  const scrollParent = this.scrollParent;
220
223
  window.removeEventListener('resize', this.throttledResize);
221
- window.removeEventListener('scroll', this.handleScrollEvent.bind(this));
222
- scrollParent.removeEventListener('scroll', this.handleScrollEvent.bind(this));
223
- document.removeEventListener('postToggleMegadropdown', this.megedropdownStateHandler.bind(this));
224
- this.host.removeEventListener('keydown', this.keyboardHandler.bind(this));
225
- this.host.removeEventListener('click', this.handleLinkClick.bind(this));
226
- if (this.scrollParentResizeObserver)
224
+ window.removeEventListener('scroll', this.handleScrollEvent);
225
+ scrollParent.removeEventListener('scroll', this.handleScrollEvent);
226
+ document.removeEventListener('postToggleMegadropdown', this.megedropdownStateHandler);
227
+ this.host.removeEventListener('keydown', this.keyboardHandler);
228
+ this.host.removeEventListener('click', this.handleLinkClick);
229
+ if (this.scrollParentResizeObserver) {
227
230
  this.scrollParentResizeObserver.disconnect();
228
- if (this.localHeaderResizeObserver)
231
+ this.scrollParentResizeObserver = null;
232
+ }
233
+ if (this.localHeaderResizeObserver) {
229
234
  this.localHeaderResizeObserver.disconnect();
235
+ this.localHeaderResizeObserver = null;
236
+ }
230
237
  this.mobileMenuExtended = false;
231
- scrollParent.style.overflow = '';
232
- scrollParent.removeAttribute('data-is-post-header-scroll-parent');
233
- console.log('disconnectedCallback', this.mobileMenuExtended, this.scrollParent, this.scrollParent.style.overflow, this.scrollParent.hasAttribute('data-is-post-header-scroll-parent'));
234
238
  }
235
239
  /**
236
240
  * Toggles the mobile navigation.
237
241
  */
238
- async toggleMobileMenu() {
242
+ async toggleMobileMenu(force) {
239
243
  if (this.device === 'desktop')
240
244
  return;
241
245
  this.mobileMenuAnimation = this.mobileMenuExtended
@@ -243,11 +247,11 @@ const PostHeader = /*@__PURE__*/ proxyCustomElement(class PostHeader extends HTM
243
247
  : slideDown(this.mobileMenu);
244
248
  // Update the state of the toggle button
245
249
  const menuButton = this.host.querySelector('post-togglebutton');
246
- menuButton.toggled = !this.mobileMenuExtended;
250
+ menuButton.toggled = force ?? !this.mobileMenuExtended;
247
251
  // Toggle menu visibility before it slides down and after it slides back up
248
252
  if (this.mobileMenuExtended)
249
253
  await this.mobileMenuAnimation.finished;
250
- this.mobileMenuExtended = !this.mobileMenuExtended;
254
+ this.mobileMenuExtended = force ?? !this.mobileMenuExtended;
251
255
  if (!this.mobileMenuExtended)
252
256
  await this.mobileMenuAnimation.finished;
253
257
  }
@@ -302,7 +306,7 @@ const PostHeader = /*@__PURE__*/ proxyCustomElement(class PostHeader extends HTM
302
306
  return;
303
307
  }
304
308
  if (this.mobileMenuExtended && (isLinkInMainNav || isLinkInMegadropdown)) {
305
- this.toggleMobileMenu();
309
+ this.toggleMobileMenu(false);
306
310
  }
307
311
  if (this.device === 'desktop' && isLinkInMegadropdown) {
308
312
  const megadropdownLink = target.closest('post-megadropdown a');
@@ -340,14 +344,14 @@ const PostHeader = /*@__PURE__*/ proxyCustomElement(class PostHeader extends HTM
340
344
  }
341
345
  handleScrollParentResize() {
342
346
  if (this.scrollParent) {
343
- this.scrollParentResizeObserver = new ResizeObserver(this.updateScrollParentHeight.bind(this));
347
+ this.scrollParentResizeObserver = new ResizeObserver(this.updateScrollParentHeight);
344
348
  this.scrollParentResizeObserver.observe(this.scrollParent);
345
349
  }
346
350
  }
347
351
  handleLocalHeaderResize() {
348
352
  const localHeader = this.host.shadowRoot.querySelector('.local-header');
349
- if (localHeader) {
350
- this.localHeaderResizeObserver = new ResizeObserver(this.updateLocalHeaderHeight.bind(this));
353
+ if (localHeader && !this.localHeaderResizeObserver) {
354
+ this.localHeaderResizeObserver = new ResizeObserver(this.updateLocalHeaderHeight);
351
355
  this.localHeaderResizeObserver.observe(localHeader);
352
356
  }
353
357
  }
@@ -368,7 +372,7 @@ const PostHeader = /*@__PURE__*/ proxyCustomElement(class PostHeader extends HTM
368
372
  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" }))))));
369
373
  }
370
374
  render() {
371
- return (h(Host, { key: '5107418a1d580bf6f5fecb7021536a47ac0d753f', version: version }, h("div", { key: '07b96160f9734294624a0c4c4db686fca6909e7f', class: "global-header" }, h("div", { key: '549eeaee86fbd27a2e994fec00b5bcb4be417eff', class: "global-sub" }, h("div", { key: '3119f9f19427ddf7adb3a6f0e1c6b2acd048d758', class: "logo" }, h("slot", { key: '088f1a652930115b3c927048d004ebc5958c4a4c', name: "post-logo" }))), h("div", { key: '86dff84437178bad2fae559424a08a941822b1bc', class: "global-sub" }, this.device === 'desktop' && h("slot", { key: '7b68b2c648b12fe3f777fbd8bac4df51b559fcbf', name: "meta-navigation" }), h("slot", { key: 'ac97ce61da9280e3fd1be05fc36aa33e29795449', name: "global-controls" }), this.device === 'desktop' && h("slot", { key: 'df45cadb9e3bbbfb4a4b1b8799688c582e23de2b', name: "post-language-switch" }), h("div", { key: 'eaad8918db781de6c7c9bd0729801b11ef0cf3cf', onClick: () => this.toggleMobileMenu(), class: "mobile-toggle" }, h("slot", { key: '04753ff37b9523260d1e976698b0aec3838cf935', name: "post-togglebutton" })))), h("div", { key: 'b154e5dc69da1638d89f210cb2c7451425c52b5b', class: 'local-header ' + (this.mobileMenuExtended ? 'local-header-mobile-extended' : '') }, h("slot", { key: 'b1cad5b3e9acee0424884aea0caf8d9e153bf6d3', name: "title" }), h("div", { key: '26ec16c47a57a87ff0fc5d030f47bdd91dfbdbc0', class: "local-sub" }, h("slot", { key: '8e08c4ec4bd4bee4286173b4ddc77d061b97b0c4', name: "local-controls" }), h("slot", { key: 'ea1e250cc166c6dff8beea00fe6d9a9c3a83f55d' })), this.device === 'desktop' && this.renderNavigation()), this.device !== 'desktop' && this.renderNavigation()));
375
+ return (h(Host, { key: '9cf9cfd3c09958b60be5492f226766098aa4c3fb', version: version }, h("div", { key: '11eff51b1d3b5da81af282b12d7c621d9d389dd0', class: "global-header" }, h("div", { key: 'e80d3e7726329c6902f414fd6d74f3d74f54e8ca', class: "global-sub" }, h("div", { key: '9c7fad8991432ca8f23193566285cb6948a9efbd', class: "logo" }, h("slot", { key: 'cd993961cc68757155a6408f9a1ce903cf64bb98', name: "post-logo" }))), h("div", { key: '0ebe23b40ed941eb743caaa68767c1e8dbab6f9e', class: "global-sub" }, this.device === 'desktop' && h("slot", { key: 'e972a93266f2240e1f66248c8f00fcc9fafd6b8c', name: "meta-navigation" }), h("slot", { key: '5ddac1faa808b043705e9f8d654b6610e230484b', name: "global-controls" }), this.device === 'desktop' && h("slot", { key: '86dec5106e34b14cbc6f5fa5c7cac98e0a571ef4', name: "post-language-switch" }), h("div", { key: '5eb98bbabfaa86c20974c9ede677bf31aa1afbc7', onClick: () => this.toggleMobileMenu(), class: "mobile-toggle" }, h("slot", { key: '3a35856948852d880be939b6f66b5c38e921c19a', name: "post-togglebutton" })))), h("div", { key: 'e2749e94aad4b6174b28dbab5d64c6bc2bd614ca', class: 'local-header ' + (this.mobileMenuExtended ? 'local-header-mobile-extended' : '') }, h("slot", { key: 'e767a608ecca1199554c25f86188ca3d74ec1f95', name: "title" }), h("div", { key: 'bedb62571e462b89948fafa319faa5937fc6b8c3', class: "local-sub" }, h("slot", { key: '2e051bd52a90b8f806ca3caaec2ed67c16f887f0', name: "local-controls" }), h("slot", { key: '5d1dc41591db297b1d4c9e1622fad2ac5376de87' })), this.device === 'desktop' && this.renderNavigation()), this.device !== 'desktop' && this.renderNavigation()));
372
376
  }
373
377
  static get watchers() { return {
374
378
  "mobileMenuExtended": ["frozeBody"]
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2025-02-26T15:36:32",
2
+ "timestamp": "2025-02-26T18:43:34",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.19.2",
@@ -1600,8 +1600,14 @@
1600
1600
  "docs": ""
1601
1601
  },
1602
1602
  "complexType": {
1603
- "signature": "() => Promise<void>",
1604
- "parameters": [],
1603
+ "signature": "(force?: boolean) => Promise<void>",
1604
+ "parameters": [
1605
+ {
1606
+ "name": "force",
1607
+ "type": "boolean",
1608
+ "docs": ""
1609
+ }
1610
+ ],
1605
1611
  "references": {
1606
1612
  "Promise": {
1607
1613
  "location": "global",
@@ -1614,8 +1620,14 @@
1614
1620
  },
1615
1621
  "return": "Promise<void>"
1616
1622
  },
1617
- "signature": "toggleMobileMenu() => Promise<void>",
1618
- "parameters": [],
1623
+ "signature": "toggleMobileMenu(force?: boolean) => Promise<void>",
1624
+ "parameters": [
1625
+ {
1626
+ "name": "force",
1627
+ "type": "boolean",
1628
+ "docs": ""
1629
+ }
1630
+ ],
1619
1631
  "docs": "Toggles the mobile navigation.",
1620
1632
  "docsTags": []
1621
1633
  }