@openeuropa/bcl-theme-default 1.10.8 → 1.10.9

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 (35) hide show
  1. package/css/oe-bcl-ckeditor5.min.css +1 -1
  2. package/css/oe-bcl-ckeditor5.min.css.map +1 -1
  3. package/css/oe-bcl-default.css +156 -85
  4. package/css/oe-bcl-default.css.map +1 -1
  5. package/css/oe-bcl-default.min.css +1 -1
  6. package/css/oe-bcl-default.min.css.map +1 -1
  7. package/js/oe-bcl-default.bundle.js +68 -1
  8. package/js/oe-bcl-default.bundle.js.map +1 -1
  9. package/js/oe-bcl-default.bundle.min.js +1 -1
  10. package/js/oe-bcl-default.bundle.min.js.map +1 -1
  11. package/js/oe-bcl-default.esm.js +67 -1
  12. package/js/oe-bcl-default.esm.js.map +1 -1
  13. package/js/oe-bcl-default.esm.min.js +1 -1
  14. package/js/oe-bcl-default.esm.min.js.map +1 -1
  15. package/js/oe-bcl-default.umd.js +68 -1
  16. package/js/oe-bcl-default.umd.js.map +1 -1
  17. package/js/oe-bcl-default.umd.min.js +1 -1
  18. package/js/oe-bcl-default.umd.min.js.map +1 -1
  19. package/package.json +5 -5
  20. package/src/js/header/header.js +91 -0
  21. package/src/js/index.esm.js +2 -0
  22. package/src/js/index.umd.js +2 -0
  23. package/src/scss/_header.scss +3 -2
  24. package/src/scss/_input.scss +72 -31
  25. package/src/scss/_mega-menu.scss +47 -58
  26. package/src/scss/_multiselect-2.scss +21 -11
  27. package/src/scss/_pagination.scss +1 -0
  28. package/src/scss/_search-form.scss +4 -0
  29. package/src/scss/base/_mixins.scss +12 -0
  30. package/templates/bcl-file/file.html.twig +1 -1
  31. package/templates/bcl-header/header.html.twig +43 -50
  32. package/templates/bcl-links-block/links-block.html.twig +1 -1
  33. package/templates/bcl-mega-menu/mega-menu-submenu.html.twig +10 -7
  34. package/templates/bcl-modal/modal.html.twig +4 -3
  35. /package/templates/{bcl-toast → bcl-toasts}/toasts.html.twig +0 -0
@@ -6923,6 +6923,72 @@
6923
6923
  }
6924
6924
  }
6925
6925
 
6926
+ const HEADER_SELECTOR = ".bcl-header";
6927
+ const TOGGLER_SELECTOR = ".bcl-navbar-toggler";
6928
+ const OFFSET_VARIABLE = "--oel-mega-menu-offset-top";
6929
+ class Header {
6930
+ scheduleUpdate = () => {
6931
+ if (this.frameRequest) {
6932
+ return;
6933
+ }
6934
+ this.frameRequest = window.requestAnimationFrame(() => {
6935
+ this.frameRequest = null;
6936
+ this.updateOffset();
6937
+ });
6938
+ };
6939
+ constructor(element) {
6940
+ this.element = element;
6941
+ this.frameRequest = null;
6942
+ this.resizeObserver = null;
6943
+ this.init();
6944
+ }
6945
+ init() {
6946
+ this.updateOffset();
6947
+ EventHandler.on(window, "resize", this.scheduleUpdate);
6948
+ EventHandler.on(window, "orientationchange", this.scheduleUpdate);
6949
+ const togglers = SelectorEngine.find(TOGGLER_SELECTOR, this.element);
6950
+ togglers.forEach(toggler => {
6951
+ // Some layouts move the header when the nav toggler expands; keep offset in sync.
6952
+ EventHandler.on(toggler, "click", this.scheduleUpdate);
6953
+ });
6954
+ }
6955
+ updateOffset() {
6956
+ if (!this.element) {
6957
+ return;
6958
+ }
6959
+ const rect = this.element.getBoundingClientRect();
6960
+ const offset = Math.max(0, rect.top);
6961
+ const value = `${offset}px`;
6962
+ if (this.element.style.getPropertyValue(OFFSET_VARIABLE) === value) {
6963
+ return;
6964
+ }
6965
+ this.element.style.setProperty(OFFSET_VARIABLE, value);
6966
+ }
6967
+ static init(root) {
6968
+ if (typeof document === "undefined" || typeof window === "undefined") {
6969
+ return;
6970
+ }
6971
+ const resolvedRoot = root || document;
6972
+ const context = resolvedRoot instanceof Element ? resolvedRoot : resolvedRoot.documentElement || document.documentElement;
6973
+ const headers = SelectorEngine.find(HEADER_SELECTOR, context);
6974
+ headers.forEach(headerElement => {
6975
+ if (headerElement.dataset.headerOffsetInitialized === "true") {
6976
+ return;
6977
+ }
6978
+ headerElement.dataset.headerOffsetInitialized = "true";
6979
+ new Header(headerElement);
6980
+ });
6981
+ }
6982
+ }
6983
+ if (typeof document !== "undefined") {
6984
+ const initializeHeaderOffset = () => Header.init();
6985
+ if (document.readyState === "loading") {
6986
+ document.addEventListener("DOMContentLoaded", initializeHeaderOffset);
6987
+ } else {
6988
+ initializeHeaderOffset();
6989
+ }
6990
+ }
6991
+
6926
6992
  /**
6927
6993
  * --------------------------------------------------------------------------
6928
6994
  * Bootstrap (v5.1.0): index.esm.js
@@ -6948,7 +7014,8 @@
6948
7014
  Tooltip,
6949
7015
  Gallery,
6950
7016
  AccessibleToggle,
6951
- AccordionToggle
7017
+ AccordionToggle,
7018
+ Header
6952
7019
  };
6953
7020
 
6954
7021
  return index_umd;