@everymatrix/general-footer-template 1.77.4 → 1.77.6

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 (43) hide show
  1. package/dist/cjs/custom-clock.cjs.entry.js +1 -1
  2. package/dist/cjs/custom-content-section.cjs.entry.js +1 -1
  3. package/dist/cjs/footer-logo.cjs.entry.js +61 -0
  4. package/dist/cjs/general-footer-template.cjs.entry.js +6 -2
  5. package/dist/cjs/general-footer-template.cjs.js +2 -2
  6. package/dist/cjs/image-list.cjs.entry.js +1 -1
  7. package/dist/cjs/{index-4f1d0ebb.js → index-13599735.js} +38 -5
  8. package/dist/cjs/link-section-list.cjs.entry.js +19 -5
  9. package/dist/cjs/loader.cjs.js +2 -2
  10. package/dist/cjs/ui-image_2.cjs.entry.js +7 -36
  11. package/dist/collection/collection-manifest.json +1 -0
  12. package/dist/collection/components/footer-logo-section/footer-logo.css +12 -0
  13. package/dist/collection/components/footer-logo-section/footer-logo.js +110 -0
  14. package/dist/collection/components/general-footer-template/general-footer-template.js +20 -1
  15. package/dist/collection/components/link-section-list/link-section-list.css +46 -0
  16. package/dist/collection/components/link-section-list/link-section-list.js +40 -3
  17. package/dist/collection/utils/utils.js +3 -0
  18. package/dist/esm/custom-clock.entry.js +1 -1
  19. package/dist/esm/custom-content-section.entry.js +1 -1
  20. package/dist/esm/footer-logo.entry.js +57 -0
  21. package/dist/esm/general-footer-template.entry.js +6 -2
  22. package/dist/esm/general-footer-template.js +3 -3
  23. package/dist/esm/image-list.entry.js +1 -1
  24. package/dist/esm/{index-83985f06.js → index-4b819858.js} +38 -5
  25. package/dist/esm/link-section-list.entry.js +19 -5
  26. package/dist/esm/loader.js +3 -3
  27. package/dist/esm/ui-image_2.entry.js +7 -36
  28. package/dist/general-footer-template/custom-clock.entry.js +1 -1
  29. package/dist/general-footer-template/custom-content-section.entry.js +1 -1
  30. package/dist/general-footer-template/footer-logo.entry.js +1 -0
  31. package/dist/general-footer-template/general-footer-template.entry.js +1 -1
  32. package/dist/general-footer-template/general-footer-template.esm.js +1 -1
  33. package/dist/general-footer-template/image-list.entry.js +1 -1
  34. package/dist/general-footer-template/index-4b819858.js +2 -0
  35. package/dist/general-footer-template/link-section-list.entry.js +1 -1
  36. package/dist/general-footer-template/ui-image_2.entry.js +1 -1
  37. package/dist/types/components/footer-logo-section/footer-logo.d.ts +16 -0
  38. package/dist/types/components/general-footer-template/general-footer-template.d.ts +4 -0
  39. package/dist/types/components/link-section-list/link-section-list.d.ts +7 -0
  40. package/dist/types/components.d.ts +45 -0
  41. package/dist/types/utils/utils.d.ts +3 -0
  42. package/package.json +1 -1
  43. package/dist/general-footer-template/index-83985f06.js +0 -2
@@ -26,6 +26,7 @@ export class GeneralFooterTemplate {
26
26
  this.clockFormat = 'HH:MM:ss';
27
27
  this.timeZone = '';
28
28
  this.mbSource = undefined;
29
+ this.dropdownLinks = false;
29
30
  this.hasErrors = false;
30
31
  this.footerContent = undefined;
31
32
  }
@@ -89,7 +90,7 @@ export class GeneralFooterTemplate {
89
90
  const FooterElement = componentRules[section].component;
90
91
  const elementIsRepeater = this.footerContent.repeaters.hasOwnProperty(section);
91
92
  const elementIsCustom = this.footerContent.wysiwyg.hasOwnProperty(section);
92
- return h(FooterElement, { class: `${section} FooterSectionContainer FooterSectionContainer${i + 1}`, userid: this.userid, session: this.session, "base-url": this.baseUrl, language: this.language, "navigate-via-event": this.navigateViaEvent, "post-message-event": this.postMessageEvent, ruleset: componentRules[section], repeaterContent: elementIsRepeater ? this.footerContent.repeaters[section] : null, customContent: elementIsCustom ? this.footerContent.wysiwyg[section].content : null, "translation-url": this.translationUrl, "clock-format": this.clockFormat, "time-zone": this.timeZone });
93
+ return h(FooterElement, { class: `${section} FooterSectionContainer FooterSectionContainer${i + 1}`, userid: this.userid, session: this.session, "base-url": this.baseUrl, endpoint: this.endpoint, language: this.language, "navigate-via-event": this.navigateViaEvent, "post-message-event": this.postMessageEvent, ruleset: componentRules[section], repeaterContent: elementIsRepeater ? this.footerContent.repeaters[section] : null, customContent: elementIsCustom ? this.footerContent.wysiwyg[section].content : null, "translation-url": this.translationUrl, "clock-format": this.clockFormat, "time-zone": this.timeZone, "dropdown-links": this.dropdownLinks });
93
94
  });
94
95
  return (h("footer", { class: "FooterContainer", ref: el => this.stylingContainer = el }, h("div", { class: "FooterGrid customStyle" }, footerSections)));
95
96
  }
@@ -405,6 +406,24 @@ export class GeneralFooterTemplate {
405
406
  },
406
407
  "attribute": "mb-source",
407
408
  "reflect": true
409
+ },
410
+ "dropdownLinks": {
411
+ "type": "boolean",
412
+ "mutable": false,
413
+ "complexType": {
414
+ "original": "boolean",
415
+ "resolved": "boolean",
416
+ "references": {}
417
+ },
418
+ "required": false,
419
+ "optional": false,
420
+ "docs": {
421
+ "tags": [],
422
+ "text": "whether dropdown behavior is enabled for the link-section-list"
423
+ },
424
+ "attribute": "dropdown-links",
425
+ "reflect": true,
426
+ "defaultValue": "false"
408
427
  }
409
428
  };
410
429
  }
@@ -23,6 +23,52 @@
23
23
  font-weight: var(--emw--font-weight-semibold, 500);
24
24
  text-transform: uppercase;
25
25
  }
26
+ .LinkSectionListDropdownHeader {
27
+ display: flex;
28
+ justify-content: space-between;
29
+ align-items: center;
30
+ width: 100%;
31
+ background: var(--emw--color-primary, #184026);
32
+ color: var(--emw--color-typography, #FFFFFF);
33
+ text-align: left;
34
+ padding: 10px;
35
+ border: none;
36
+ border-radius: var(--emw--button-border-radius, 4px);
37
+ margin-bottom: 3px;
38
+ cursor: pointer;
39
+ font-size: 1rem;
40
+ }
41
+ .LinkSectionListDropdownHeader:hover {
42
+ color: var(--emw--color-secondary, #52d004);
43
+ }
44
+ .LinkSectionListDropdownHeader:hover svg {
45
+ fill: var(--emw--color-secondary, #52d004);
46
+ }
47
+ .LinkSectionListDropdownHeader.IsOpen {
48
+ color: var(--emw--color-secondary, #52d004);
49
+ }
50
+ .LinkSectionListDropdownHeader.IsOpen svg {
51
+ fill: var(--emw--color-secondary, #52d004);
52
+ }
53
+ .LinkSectionListDropdownHeader .TriangleActive {
54
+ transform: rotate(90deg);
55
+ -webkit-transform: rotate(90deg);
56
+ }
57
+ .LinkSectionListDropdownHeader svg {
58
+ fill: var(--emw--color-typography, #FFFFFF);
59
+ margin-left: 8px;
60
+ width: 16px;
61
+ transform: rotate(-90deg);
62
+ -webkit-transform: rotate(-90deg);
63
+ }
64
+ .LinkSectionListDropdownList {
65
+ list-style: none;
66
+ display: none;
67
+ }
68
+ .LinkSectionListDropdownList.open {
69
+ display: flex;
70
+ margin: 5px 0;
71
+ }
26
72
  .LinkSectionListLink {
27
73
  font-weight: var(--emw--font-weight-light, 300);
28
74
  }
@@ -7,10 +7,18 @@ export class LinkSectionList {
7
7
  this.language = undefined;
8
8
  this.navigateViaEvent = false;
9
9
  this.postMessageEvent = '';
10
+ this.dropdownLinks = true;
11
+ this.openCategory = null;
10
12
  }
11
13
  navigateLink(link) {
12
14
  window.postMessage({ type: this.postMessageEvent, path: link.linkUrl, url: link.linkUrl, target: link.target, externalLink: link.externalLink }, window.location.href);
13
15
  }
16
+ toggleCategory(cat) {
17
+ this.openCategory = this.openCategory === cat ? null : cat;
18
+ }
19
+ createHrefLink(link) {
20
+ return link.externalLink ? link.linkUrl : `${this.baseUrl}/${this.language}${link.linkUrl}`;
21
+ }
14
22
  render() {
15
23
  var _a, _b;
16
24
  const linkSections = (_b = (_a = this.repeaterContent) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.reduce((obj, elem) => {
@@ -40,13 +48,19 @@ export class LinkSectionList {
40
48
  }
41
49
  return obj;
42
50
  }, []);
43
- return h("div", { class: "LinkSectionListContainer" }, h("div", { class: "LinkSectionListWrapper" }, this.repeaterContent.categoryTitle && h("h2", { class: "LinkSectionListTitle" }, this.repeaterContent.categoryTitle), linkSections.map(category => h("ul", null, category.categoryTitle && h("p", null, category.categoryTitle), category.links.map(link => h("li", { class: "LinkSectionListLink", key: link.linkName }, this.navigateViaEvent === true ? (h("span", null, link.linkName && link.icon ? (h("span", { class: "LinkSectionListLinkText", onClick: () => this.navigateLink(link) }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" })), h("span", { class: '' }, link.linkName, " "))) :
51
+ return h("div", { class: "LinkSectionListContainer" }, h("div", { class: "LinkSectionListWrapper" }, this.repeaterContent.categoryTitle && h("h2", { class: "LinkSectionListTitle" }, this.repeaterContent.categoryTitle), linkSections.map(category => this.dropdownLinks ? (h("div", { class: "LinkSectionListDropdown" }, h("button", { type: 'button', class: `LinkSectionListDropdownHeader ${this.openCategory === category.categoryTitle ? 'IsOpen' : ''}`, onClick: () => this.toggleCategory(category.categoryTitle) }, category.categoryTitle, h("span", { class: this.openCategory === category.categoryTitle ? 'TriangleActive' : 'TriangleInactive' }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "14", height: "6.835", viewBox: "0 0 14 6.835" }, h("path", { id: "arrow", d: "M281.541,447.921a.488.488,0,0,0,.295-.122l6.5-5.851a.488.488,0,1,0-.65-.726l-6.176,5.556-6.176-5.556h0a.488.488,0,1,0-.65.726l6.5,5.851a.488.488,0,0,0,.355.122Z", transform: "translate(-274.511 -441.088)" })))), h("ul", { class: { 'LinkSectionListDropdownList': true, open: this.openCategory === category.categoryTitle } }, category.links.map(link => h("li", { class: "LinkSectionListLink", key: link.linkName }, this.navigateViaEvent === true ? (h("span", null, link.linkName && link.icon ? (h("span", { class: "LinkSectionListLinkText", onClick: () => this.navigateLink(link) }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" })), h("span", { class: '' }, link.linkName, " "))) :
52
+ link.linkName ?
53
+ h("span", { class: "LinkSectionListLinkText", onClick: () => this.navigateLink(link) }, h("span", null, link.linkName, " "))
54
+ :
55
+ h("span", { class: "LinkSectionListLinkText", onClick: () => this.navigateLink(link) }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" }))))) : (h("a", { class: "LinkSectionListLink", href: this.createHrefLink(link), target: link.target || '_blank' }, link.linkName && link.icon ? (h("span", { class: "LinkSectionListLinkText" }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" })), h("span", null, link.linkName))) :
56
+ link.linkName ? (h("span", { class: "LinkSectionListLinkText" }, h("span", null, link.linkName))) :
57
+ h("span", { class: "LinkSectionListLinkText" }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" })))))))))) : (h("ul", null, category.categoryTitle && h("p", null, category.categoryTitle), category.links.map(link => h("li", { class: "LinkSectionListLink", key: link.linkName }, this.navigateViaEvent === true ? (h("span", null, link.linkName && link.icon ? (h("span", { class: "LinkSectionListLinkText", onClick: () => this.navigateLink(link) }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" })), h("span", { class: '' }, link.linkName, " "))) :
44
58
  link.linkName ?
45
59
  h("span", { class: "LinkSectionListLinkText", onClick: () => this.navigateLink(link) }, h("span", null, link.linkName, " "))
46
60
  :
47
- h("span", { class: "LinkSectionListLinkText", onClick: () => this.navigateLink(link) }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" }))))) : (h("a", { class: "LinkSectionListLink", href: link.externalLink ? link.linkUrl : `${this.baseUrl}/${this.language}${link.linkUrl}`, target: link.target || '_blank' }, link.linkName && link.icon ? (h("span", { class: "LinkSectionListLinkText" }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" })), h("span", null, link.linkName))) :
61
+ h("span", { class: "LinkSectionListLinkText", onClick: () => this.navigateLink(link) }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" }))))) : (h("a", { class: "LinkSectionListLink", href: this.createHrefLink(link), target: link.target || '_blank' }, link.linkName && link.icon ? (h("span", { class: "LinkSectionListLinkText" }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" })), h("span", null, link.linkName))) :
48
62
  link.linkName ? (h("span", { class: "LinkSectionListLinkText" }, h("span", null, link.linkName))) :
49
- h("span", { class: "LinkSectionListLinkText" }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" })))))))))));
63
+ h("span", { class: "LinkSectionListLinkText" }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" }))))))))))));
50
64
  }
51
65
  static get is() { return "link-section-list"; }
52
66
  static get originalStyleUrls() {
@@ -147,7 +161,30 @@ export class LinkSectionList {
147
161
  "attribute": "post-message-event",
148
162
  "reflect": true,
149
163
  "defaultValue": "''"
164
+ },
165
+ "dropdownLinks": {
166
+ "type": "boolean",
167
+ "mutable": false,
168
+ "complexType": {
169
+ "original": "boolean",
170
+ "resolved": "boolean",
171
+ "references": {}
172
+ },
173
+ "required": false,
174
+ "optional": false,
175
+ "docs": {
176
+ "tags": [],
177
+ "text": "If is true then this component will look like a dropdown"
178
+ },
179
+ "attribute": "dropdown-links",
180
+ "reflect": true,
181
+ "defaultValue": "true"
150
182
  }
151
183
  };
152
184
  }
185
+ static get states() {
186
+ return {
187
+ "openCategory": {}
188
+ };
189
+ }
153
190
  }
@@ -72,6 +72,9 @@ export const componentRules = {
72
72
  "clock": {
73
73
  component: 'custom-clock',
74
74
  },
75
+ "logo": {
76
+ component: 'footer-logo'
77
+ }
75
78
  };
76
79
  // This method takes repeater content and changes it to fit an uniform standard for property names in order to be treated in a general case by the footer
77
80
  // ex. if helpLinks repeaters use "helpImage" and socialLinks repeaters use "socialImage", both will use "image" after the normalization
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h } from './index-83985f06.js';
1
+ import { r as registerInstance, h } from './index-4b819858.js';
2
2
  import { c as commonjsGlobal } from './_commonjsHelpers-1c8beb5f.js';
3
3
 
4
4
  const DEFAULT_LANGUAGE = 'en';
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h } from './index-83985f06.js';
1
+ import { r as registerInstance, h } from './index-4b819858.js';
2
2
  import { c as commonjsGlobal } from './_commonjsHelpers-1c8beb5f.js';
3
3
 
4
4
  var purify = {exports: {}};
@@ -0,0 +1,57 @@
1
+ import { r as registerInstance, h } from './index-4b819858.js';
2
+
3
+ const footerLogoCss = ".HeaderBranding.sc-footer-logo{text-align:center;width:100%;display:flex;justify-content:center;align-items:center}img.sc-footer-logo{width:10rem;height:auto}";
4
+ const FooterLogoStyle0 = footerLogoCss;
5
+
6
+ const FooterLogo = class {
7
+ constructor(hostRef) {
8
+ registerInstance(this, hostRef);
9
+ this.isLogoFromCMS = false;
10
+ this.endpoint = undefined;
11
+ this.language = 'en';
12
+ this.logoContent = null;
13
+ }
14
+ onConfigChange(newValue, oldValue) {
15
+ if (newValue !== oldValue && this.endpoint && this.language) {
16
+ this.getLogo();
17
+ }
18
+ }
19
+ getLogo() {
20
+ const logoURL = new URL(`${this.endpoint}/${this.language.toLowerCase()}/op-options/style`);
21
+ return fetch(logoURL)
22
+ .then((res) => res.json())
23
+ .then((data) => {
24
+ if (data.logoUrl.length > 0 && (data.logoUrl != "null" || data.logoUrl != "false")) {
25
+ this.isLogoFromCMS = true;
26
+ return data.logoUrl;
27
+ }
28
+ else {
29
+ this.isLogoFromCMS = false;
30
+ console.error("Invalid logo URL:", data);
31
+ return null;
32
+ }
33
+ })
34
+ .catch((error) => {
35
+ console.error("Error fetching logo:", error);
36
+ return null;
37
+ });
38
+ }
39
+ async connectedCallback() {
40
+ if (this.endpoint && this.language) {
41
+ const logo = await this.getLogo();
42
+ if (this.isLogoFromCMS && logo) {
43
+ this.logoContent = logo;
44
+ }
45
+ }
46
+ }
47
+ render() {
48
+ return (this.logoContent ? (h("div", { class: "HeaderBranding" }, h("img", { src: this.logoContent, alt: "Logo" }))) : null);
49
+ }
50
+ static get watchers() { return {
51
+ "endpoint": ["onConfigChange"],
52
+ "language": ["onConfigChange"]
53
+ }; }
54
+ };
55
+ FooterLogo.style = FooterLogoStyle0;
56
+
57
+ export { FooterLogo as footer_logo };
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, g as getElement } from './index-83985f06.js';
1
+ import { r as registerInstance, h, g as getElement } from './index-4b819858.js';
2
2
 
3
3
  /**
4
4
  * custom rules for component types
@@ -67,6 +67,9 @@ const componentRules = {
67
67
  "clock": {
68
68
  component: 'custom-clock',
69
69
  },
70
+ "logo": {
71
+ component: 'footer-logo'
72
+ }
70
73
  };
71
74
  // This method takes repeater content and changes it to fit an uniform standard for property names in order to be treated in a general case by the footer
72
75
  // ex. if helpLinks repeaters use "helpImage" and socialLinks repeaters use "socialImage", both will use "image" after the normalization
@@ -299,6 +302,7 @@ const GeneralFooterTemplate = class {
299
302
  this.clockFormat = 'HH:MM:ss';
300
303
  this.timeZone = '';
301
304
  this.mbSource = undefined;
305
+ this.dropdownLinks = false;
302
306
  this.hasErrors = false;
303
307
  this.footerContent = undefined;
304
308
  }
@@ -362,7 +366,7 @@ const GeneralFooterTemplate = class {
362
366
  const FooterElement = componentRules[section].component;
363
367
  const elementIsRepeater = this.footerContent.repeaters.hasOwnProperty(section);
364
368
  const elementIsCustom = this.footerContent.wysiwyg.hasOwnProperty(section);
365
- return h(FooterElement, { class: `${section} FooterSectionContainer FooterSectionContainer${i + 1}`, userid: this.userid, session: this.session, "base-url": this.baseUrl, language: this.language, "navigate-via-event": this.navigateViaEvent, "post-message-event": this.postMessageEvent, ruleset: componentRules[section], repeaterContent: elementIsRepeater ? this.footerContent.repeaters[section] : null, customContent: elementIsCustom ? this.footerContent.wysiwyg[section].content : null, "translation-url": this.translationUrl, "clock-format": this.clockFormat, "time-zone": this.timeZone });
369
+ return h(FooterElement, { class: `${section} FooterSectionContainer FooterSectionContainer${i + 1}`, userid: this.userid, session: this.session, "base-url": this.baseUrl, endpoint: this.endpoint, language: this.language, "navigate-via-event": this.navigateViaEvent, "post-message-event": this.postMessageEvent, ruleset: componentRules[section], repeaterContent: elementIsRepeater ? this.footerContent.repeaters[section] : null, customContent: elementIsCustom ? this.footerContent.wysiwyg[section].content : null, "translation-url": this.translationUrl, "clock-format": this.clockFormat, "time-zone": this.timeZone, "dropdown-links": this.dropdownLinks });
366
370
  });
367
371
  return (h("footer", { class: "FooterContainer", ref: el => this.stylingContainer = el }, h("div", { class: "FooterGrid customStyle" }, footerSections)));
368
372
  }
@@ -1,5 +1,5 @@
1
- import { p as promiseResolve, b as bootstrapLazy } from './index-83985f06.js';
2
- export { s as setNonce } from './index-83985f06.js';
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-4b819858.js';
2
+ export { s as setNonce } from './index-4b819858.js';
3
3
  import { g as globalScripts } from './app-globals-0f993ce5.js';
4
4
 
5
5
  /*
@@ -16,5 +16,5 @@ var patchBrowser = () => {
16
16
 
17
17
  patchBrowser().then(async (options) => {
18
18
  await globalScripts();
19
- return bootstrapLazy([["custom-content-section",[[2,"custom-content-section",{"customContent":[1,"custom-content"],"repeaterContent":[8,"repeater-content"],"navigateViaEvent":[516,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"]}]]],["link-section-list",[[0,"link-section-list",{"repeaterContent":[8,"repeater-content"],"baseUrl":[513,"base-url"],"language":[513],"navigateViaEvent":[4,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"]}]]],["custom-clock",[[2,"custom-clock",{"clockFormat":[513,"clock-format"],"timeZone":[513,"time-zone"],"translationUrl":[513,"translation-url"],"language":[513],"timeString":[32]},null,{"translationUrl":["handleNewTranslations"]}]]],["general-footer-template",[[1,"general-footer-template",{"language":[513],"sections":[513],"endpoint":[513],"env":[513],"userRoles":[513,"user-roles"],"userid":[513],"session":[513],"baseUrl":[513,"base-url"],"navigateViaEvent":[513,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"customCss":[513,"custom-css"],"translationUrl":[513,"translation-url"],"clockFormat":[513,"clock-format"],"timeZone":[513,"time-zone"],"mbSource":[513,"mb-source"],"hasErrors":[32],"footerContent":[32]},null,{"language":["watchLanguage"]}]]],["ui-image_2",[[0,"ui-image",{"src":[1],"width":[1],"height":[1],"alt":[1],"styles":[8],"detectDistance":[1,"detect-distance"],"loading":[1],"imgLoaded":[32]},null,{"src":["onSrcChange"],"loading":["onLoadingChange"]}],[0,"ui-skeleton",{"structure":[1],"width":[1],"height":[1],"borderRadius":[8,"border-radius"],"marginBottom":[8,"margin-bottom"],"marginTop":[8,"margin-top"],"marginLeft":[8,"margin-left"],"marginRight":[8,"margin-right"],"animation":[4],"rows":[2],"size":[1]},null,{"structure":["handleStructureChange"]}]]],["image-list",[[2,"image-list",{"repeaterContent":[8,"repeater-content"],"navigateViaEvent":[4,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"]}]]]], options);
19
+ return bootstrapLazy([["custom-content-section",[[2,"custom-content-section",{"customContent":[1,"custom-content"],"repeaterContent":[8,"repeater-content"],"navigateViaEvent":[516,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"]}]]],["link-section-list",[[0,"link-section-list",{"repeaterContent":[8,"repeater-content"],"baseUrl":[513,"base-url"],"language":[513],"navigateViaEvent":[4,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"],"dropdownLinks":[516,"dropdown-links"],"openCategory":[32]}]]],["custom-clock",[[2,"custom-clock",{"clockFormat":[513,"clock-format"],"timeZone":[513,"time-zone"],"translationUrl":[513,"translation-url"],"language":[513],"timeString":[32]},null,{"translationUrl":["handleNewTranslations"]}]]],["footer-logo",[[2,"footer-logo",{"endpoint":[513],"language":[513],"logoContent":[32]},null,{"endpoint":["onConfigChange"],"language":["onConfigChange"]}]]],["general-footer-template",[[1,"general-footer-template",{"language":[513],"sections":[513],"endpoint":[513],"env":[513],"userRoles":[513,"user-roles"],"userid":[513],"session":[513],"baseUrl":[513,"base-url"],"navigateViaEvent":[513,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"customCss":[513,"custom-css"],"translationUrl":[513,"translation-url"],"clockFormat":[513,"clock-format"],"timeZone":[513,"time-zone"],"mbSource":[513,"mb-source"],"dropdownLinks":[516,"dropdown-links"],"hasErrors":[32],"footerContent":[32]},null,{"language":["watchLanguage"]}]]],["ui-image_2",[[0,"ui-image",{"src":[1],"width":[1],"height":[1],"alt":[1],"styles":[8],"detectDistance":[1,"detect-distance"],"loading":[1],"imgLoaded":[32]},null,{"src":["onSrcChange"],"loading":["onLoadingChange"]}],[0,"ui-skeleton",{"structure":[1],"width":[1],"height":[1],"borderRadius":[8,"border-radius"],"marginBottom":[8,"margin-bottom"],"marginTop":[8,"margin-top"],"marginLeft":[8,"margin-left"],"marginRight":[8,"margin-right"],"animation":[4],"rows":[2],"size":[1]},null,{"structure":["handleStructureChange"]}]]],["image-list",[[2,"image-list",{"repeaterContent":[8,"repeater-content"],"navigateViaEvent":[4,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"]}]]]], options);
20
20
  });
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h } from './index-83985f06.js';
1
+ import { r as registerInstance, h } from './index-4b819858.js';
2
2
 
3
3
  const imageListCss = ".sc-image-list-h {\n display: block;\n margin: 0;\n padding: 0;\n}\n\n.ContainerImage.sc-image-list {\n position: relative;\n display: inline-block;\n width: 100%;\n}\n\n.SkeletonWrapper.sc-image-list {\n background-color: #f0f0f0;\n width: 50px;\n height: 40px;\n}\n\n.ImageListContainer.sc-image-list {\n height: 100%;\n}\n.ImageListWrapper.sc-image-list {\n box-sizing: border-box;\n height: 100%;\n display: flex;\n flex-direction: column;\n max-width: 90%;\n margin: auto;\n padding: var(--emw--spacing-large, 20px) 0;\n}\n.ImageListSectionTitle.sc-image-list {\n width: 100%;\n display: flex;\n justify-content: left;\n align-content: center;\n padding: var(--emw--spacing-large, 20px) var(--emw--spacing-medium, 14px) var(--emw--spacing-x-large, 30px);\n color: var(--emw--footer-typography, var(--emw--color-thpography, #fff));\n text-transform: uppercase;\n font-size: 24px;\n font-weight: 100;\n}\n.ImageListLineup.sc-image-list {\n box-sizing: border-box;\n display: flex;\n flex-wrap: wrap;\n gap: var(--emw--spacing-x-large, 30px);\n justify-content: left;\n align-items: flex-start;\n padding-left: var(--emw--spacing-large, 20px);\n}\n.ImageListIcon.sc-image-list img.sc-image-list {\n max-height: var(--emw--size-medium-2x-minus, 40px);\n}\n\na.sc-image-list {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-end;\n text-decoration: none;\n}\n\na.sc-image-list p.sc-image-list {\n text-decoration: none;\n color: var(--emw--color-gray-100, #666);\n margin: 0;\n}\n\n@container (max-width: 750px) {\n .ImageListSectionTitle.sc-image-list {\n justify-content: center;\n font-size: var(--emw--font-size-medium, 16px);\n color: var(--emw--footer-typography, var(--emw--color-thpography, #fff));\n padding: var(--emw--spacing-large, 20px) 0 var(--emw--spacing-x-large, 30px);\n justify-content: center;\n }\n .ImageListLineup.sc-image-list {\n justify-content: center;\n padding: 0;\n }\n}";
4
4
  const ImageListStyle0 = imageListCss;
@@ -1,5 +1,5 @@
1
1
  const NAMESPACE = 'general-footer-template';
2
- const BUILD = /* general-footer-template */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: false, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: false, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: false, propNumber: true, propString: true, reflect: true, scoped: true, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: false, slotChildNodesFix: false, slotRelocation: false, state: true, style: true, svg: false, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback: true };
2
+ const BUILD = /* general-footer-template */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: true, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: false, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: false, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: false, propNumber: true, propString: true, reflect: true, scoped: true, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: false, slotChildNodesFix: false, slotRelocation: false, state: true, style: true, svg: true, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback: true };
3
3
 
4
4
  /*
5
5
  Stencil Client Platform v4.19.2 | MIT Licensed | https://stenciljs.com
@@ -61,6 +61,10 @@ var loadModule = (cmpMeta, hostRef, hmrVersionId) => {
61
61
  return import(
62
62
  /* webpackMode: "lazy" */
63
63
  './custom-content-section.entry.js').then(processMod, consoleError);
64
+ case 'footer-logo':
65
+ return import(
66
+ /* webpackMode: "lazy" */
67
+ './footer-logo.entry.js').then(processMod, consoleError);
64
68
  case 'link-section-list':
65
69
  return import(
66
70
  /* webpackMode: "lazy" */
@@ -151,6 +155,8 @@ var writeTask = /* @__PURE__ */ queueTask(queueDomWrites, true);
151
155
 
152
156
  // src/utils/constants.ts
153
157
  var EMPTY_OBJ = {};
158
+ var SVG_NS = "http://www.w3.org/2000/svg";
159
+ var HTML_NS = "http://www.w3.org/1999/xhtml";
154
160
 
155
161
  // src/utils/helpers.ts
156
162
  var isDef = (v) => v != null;
@@ -547,9 +553,16 @@ var createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
547
553
  if (newVNode2.$text$ !== null) {
548
554
  elm = newVNode2.$elm$ = doc.createTextNode(newVNode2.$text$);
549
555
  } else {
550
- elm = newVNode2.$elm$ = doc.createElement(
556
+ if (!isSvgMode) {
557
+ isSvgMode = newVNode2.$tag$ === "svg";
558
+ }
559
+ elm = newVNode2.$elm$ = doc.createElementNS(
560
+ isSvgMode ? SVG_NS : HTML_NS,
551
561
  !useNativeShadowDom && BUILD.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? "slot-fb" : newVNode2.$tag$
552
- );
562
+ ) ;
563
+ if (isSvgMode && newVNode2.$tag$ === "foreignObject") {
564
+ isSvgMode = false;
565
+ }
553
566
  {
554
567
  updateElement(null, newVNode2, isSvgMode);
555
568
  }
@@ -567,6 +580,13 @@ var createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
567
580
  }
568
581
  }
569
582
  }
583
+ {
584
+ if (newVNode2.$tag$ === "svg") {
585
+ isSvgMode = false;
586
+ } else if (elm.tagName === "foreignObject") {
587
+ isSvgMode = true;
588
+ }
589
+ }
570
590
  }
571
591
  elm["s-hn"] = hostTagName;
572
592
  return elm;
@@ -696,8 +716,12 @@ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
696
716
  const elm = newVNode2.$elm$ = oldVNode.$elm$;
697
717
  const oldChildren = oldVNode.$children$;
698
718
  const newChildren = newVNode2.$children$;
719
+ const tag = newVNode2.$tag$;
699
720
  const text = newVNode2.$text$;
700
721
  if (text === null) {
722
+ {
723
+ isSvgMode = tag === "svg" ? true : tag === "foreignObject" ? false : isSvgMode;
724
+ }
701
725
  {
702
726
  {
703
727
  updateElement(oldVNode, newVNode2, isSvgMode);
@@ -713,6 +737,9 @@ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
713
737
  } else if (oldChildren !== null) {
714
738
  removeVnodes(oldChildren, 0, oldChildren.length - 1);
715
739
  }
740
+ if (isSvgMode && tag === "svg") {
741
+ isSvgMode = false;
742
+ }
716
743
  } else if (oldVNode.$text$ !== text) {
717
744
  elm.data = text;
718
745
  }
@@ -1083,6 +1110,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1083
1110
  hostRef.$flags$ |= 128 /* isWatchReady */;
1084
1111
  }
1085
1112
  endNewInstance();
1113
+ fireConnectedCallback(hostRef.$lazyInstance$);
1086
1114
  } else {
1087
1115
  Cstr = elm.constructor;
1088
1116
  const cmpTag = elm.localName;
@@ -1110,6 +1138,9 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1110
1138
  }
1111
1139
  };
1112
1140
  var fireConnectedCallback = (instance) => {
1141
+ {
1142
+ safeCall(instance, "connectedCallback");
1143
+ }
1113
1144
  };
1114
1145
 
1115
1146
  // src/runtime/connected-callback.ts
@@ -1142,8 +1173,10 @@ var connectedCallback = (elm) => {
1142
1173
  initializeComponent(elm, hostRef, cmpMeta);
1143
1174
  }
1144
1175
  } else {
1145
- if (hostRef == null ? void 0 : hostRef.$lazyInstance$) ; else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
1146
- hostRef.$onReadyPromise$.then(() => fireConnectedCallback());
1176
+ if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
1177
+ fireConnectedCallback(hostRef.$lazyInstance$);
1178
+ } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
1179
+ hostRef.$onReadyPromise$.then(() => fireConnectedCallback(hostRef.$lazyInstance$));
1147
1180
  }
1148
1181
  }
1149
1182
  endConnected();
@@ -1,6 +1,6 @@
1
- import { r as registerInstance, h } from './index-83985f06.js';
1
+ import { r as registerInstance, h } from './index-4b819858.js';
2
2
 
3
- const linkSectionListCss = ":host {\n display: block;\n margin: 0;\n padding: 0;\n}\n\n.SkeletonWrapper {\n width: 25px;\n height: 25px;\n}\n\n.LinkSectionListContainer {\n display: block;\n container-type: inline-size;\n}\n.LinkSectionListWrapper {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n grid-template-columns: 1fr;\n}\n.LinkSectionListTitle {\n font-weight: var(--emw--font-weight-semibold, 500);\n text-transform: uppercase;\n}\n.LinkSectionListLink {\n font-weight: var(--emw--font-weight-light, 300);\n}\n\nul {\n width: fit-content;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: var(--emw--spacing-medium, 16px);\n padding-left: var(--emw--spacing-small-minus, 10px);\n font-size: var(--emw--font-size-small, 16px);\n text-transform: uppercase;\n}\nul li {\n list-style: disc;\n display: flex;\n align-items: center;\n position: relative;\n}\nul li .LinkSectionListLinkText {\n display: flex;\n gap: 5px;\n flex-direction: row;\n align-items: center;\n}\nul li .LinkSectionListLinkText span {\n text-align: center;\n cursor: pointer;\n}\nul li .LinkSectionListLinkText img.LinkSectionIcon {\n position: relative;\n height: 25px;\n}\n\na {\n color: inherit;\n}\n\n@container (min-width: 280px) {\n .LinkSectionListWrapper {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n@container (min-width: 650px) {\n .LinkSectionListWrapper {\n grid-gap: 2rem;\n grid-template-columns: repeat(4, 1fr);\n grid-template-rows: 1fr;\n }\n}";
3
+ const linkSectionListCss = ":host {\n display: block;\n margin: 0;\n padding: 0;\n}\n\n.SkeletonWrapper {\n width: 25px;\n height: 25px;\n}\n\n.LinkSectionListContainer {\n display: block;\n container-type: inline-size;\n}\n.LinkSectionListWrapper {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n grid-template-columns: 1fr;\n}\n.LinkSectionListTitle {\n font-weight: var(--emw--font-weight-semibold, 500);\n text-transform: uppercase;\n}\n.LinkSectionListDropdownHeader {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n background: var(--emw--color-primary, #184026);\n color: var(--emw--color-typography, #FFFFFF);\n text-align: left;\n padding: 10px;\n border: none;\n border-radius: var(--emw--button-border-radius, 4px);\n margin-bottom: 3px;\n cursor: pointer;\n font-size: 1rem;\n}\n.LinkSectionListDropdownHeader:hover {\n color: var(--emw--color-secondary, #52d004);\n}\n.LinkSectionListDropdownHeader:hover svg {\n fill: var(--emw--color-secondary, #52d004);\n}\n.LinkSectionListDropdownHeader.IsOpen {\n color: var(--emw--color-secondary, #52d004);\n}\n.LinkSectionListDropdownHeader.IsOpen svg {\n fill: var(--emw--color-secondary, #52d004);\n}\n.LinkSectionListDropdownHeader .TriangleActive {\n transform: rotate(90deg);\n -webkit-transform: rotate(90deg);\n}\n.LinkSectionListDropdownHeader svg {\n fill: var(--emw--color-typography, #FFFFFF);\n margin-left: 8px;\n width: 16px;\n transform: rotate(-90deg);\n -webkit-transform: rotate(-90deg);\n}\n.LinkSectionListDropdownList {\n list-style: none;\n display: none;\n}\n.LinkSectionListDropdownList.open {\n display: flex;\n margin: 5px 0;\n}\n.LinkSectionListLink {\n font-weight: var(--emw--font-weight-light, 300);\n}\n\nul {\n width: fit-content;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: var(--emw--spacing-medium, 16px);\n padding-left: var(--emw--spacing-small-minus, 10px);\n font-size: var(--emw--font-size-small, 16px);\n text-transform: uppercase;\n}\nul li {\n list-style: disc;\n display: flex;\n align-items: center;\n position: relative;\n}\nul li .LinkSectionListLinkText {\n display: flex;\n gap: 5px;\n flex-direction: row;\n align-items: center;\n}\nul li .LinkSectionListLinkText span {\n text-align: center;\n cursor: pointer;\n}\nul li .LinkSectionListLinkText img.LinkSectionIcon {\n position: relative;\n height: 25px;\n}\n\na {\n color: inherit;\n}\n\n@container (min-width: 280px) {\n .LinkSectionListWrapper {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n@container (min-width: 650px) {\n .LinkSectionListWrapper {\n grid-gap: 2rem;\n grid-template-columns: repeat(4, 1fr);\n grid-template-rows: 1fr;\n }\n}";
4
4
  const LinkSectionListStyle0 = linkSectionListCss;
5
5
 
6
6
  const LinkSectionList = class {
@@ -11,10 +11,18 @@ const LinkSectionList = class {
11
11
  this.language = undefined;
12
12
  this.navigateViaEvent = false;
13
13
  this.postMessageEvent = '';
14
+ this.dropdownLinks = true;
15
+ this.openCategory = null;
14
16
  }
15
17
  navigateLink(link) {
16
18
  window.postMessage({ type: this.postMessageEvent, path: link.linkUrl, url: link.linkUrl, target: link.target, externalLink: link.externalLink }, window.location.href);
17
19
  }
20
+ toggleCategory(cat) {
21
+ this.openCategory = this.openCategory === cat ? null : cat;
22
+ }
23
+ createHrefLink(link) {
24
+ return link.externalLink ? link.linkUrl : `${this.baseUrl}/${this.language}${link.linkUrl}`;
25
+ }
18
26
  render() {
19
27
  var _a, _b;
20
28
  const linkSections = (_b = (_a = this.repeaterContent) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.reduce((obj, elem) => {
@@ -44,13 +52,19 @@ const LinkSectionList = class {
44
52
  }
45
53
  return obj;
46
54
  }, []);
47
- return h("div", { class: "LinkSectionListContainer" }, h("div", { class: "LinkSectionListWrapper" }, this.repeaterContent.categoryTitle && h("h2", { class: "LinkSectionListTitle" }, this.repeaterContent.categoryTitle), linkSections.map(category => h("ul", null, category.categoryTitle && h("p", null, category.categoryTitle), category.links.map(link => h("li", { class: "LinkSectionListLink", key: link.linkName }, this.navigateViaEvent === true ? (h("span", null, link.linkName && link.icon ? (h("span", { class: "LinkSectionListLinkText", onClick: () => this.navigateLink(link) }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" })), h("span", { class: '' }, link.linkName, " "))) :
55
+ return h("div", { class: "LinkSectionListContainer" }, h("div", { class: "LinkSectionListWrapper" }, this.repeaterContent.categoryTitle && h("h2", { class: "LinkSectionListTitle" }, this.repeaterContent.categoryTitle), linkSections.map(category => this.dropdownLinks ? (h("div", { class: "LinkSectionListDropdown" }, h("button", { type: 'button', class: `LinkSectionListDropdownHeader ${this.openCategory === category.categoryTitle ? 'IsOpen' : ''}`, onClick: () => this.toggleCategory(category.categoryTitle) }, category.categoryTitle, h("span", { class: this.openCategory === category.categoryTitle ? 'TriangleActive' : 'TriangleInactive' }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "14", height: "6.835", viewBox: "0 0 14 6.835" }, h("path", { id: "arrow", d: "M281.541,447.921a.488.488,0,0,0,.295-.122l6.5-5.851a.488.488,0,1,0-.65-.726l-6.176,5.556-6.176-5.556h0a.488.488,0,1,0-.65.726l6.5,5.851a.488.488,0,0,0,.355.122Z", transform: "translate(-274.511 -441.088)" })))), h("ul", { class: { 'LinkSectionListDropdownList': true, open: this.openCategory === category.categoryTitle } }, category.links.map(link => h("li", { class: "LinkSectionListLink", key: link.linkName }, this.navigateViaEvent === true ? (h("span", null, link.linkName && link.icon ? (h("span", { class: "LinkSectionListLinkText", onClick: () => this.navigateLink(link) }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" })), h("span", { class: '' }, link.linkName, " "))) :
56
+ link.linkName ?
57
+ h("span", { class: "LinkSectionListLinkText", onClick: () => this.navigateLink(link) }, h("span", null, link.linkName, " "))
58
+ :
59
+ h("span", { class: "LinkSectionListLinkText", onClick: () => this.navigateLink(link) }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" }))))) : (h("a", { class: "LinkSectionListLink", href: this.createHrefLink(link), target: link.target || '_blank' }, link.linkName && link.icon ? (h("span", { class: "LinkSectionListLinkText" }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" })), h("span", null, link.linkName))) :
60
+ link.linkName ? (h("span", { class: "LinkSectionListLinkText" }, h("span", null, link.linkName))) :
61
+ h("span", { class: "LinkSectionListLinkText" }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" })))))))))) : (h("ul", null, category.categoryTitle && h("p", null, category.categoryTitle), category.links.map(link => h("li", { class: "LinkSectionListLink", key: link.linkName }, this.navigateViaEvent === true ? (h("span", null, link.linkName && link.icon ? (h("span", { class: "LinkSectionListLinkText", onClick: () => this.navigateLink(link) }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" })), h("span", { class: '' }, link.linkName, " "))) :
48
62
  link.linkName ?
49
63
  h("span", { class: "LinkSectionListLinkText", onClick: () => this.navigateLink(link) }, h("span", null, link.linkName, " "))
50
64
  :
51
- h("span", { class: "LinkSectionListLinkText", onClick: () => this.navigateLink(link) }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" }))))) : (h("a", { class: "LinkSectionListLink", href: link.externalLink ? link.linkUrl : `${this.baseUrl}/${this.language}${link.linkUrl}`, target: link.target || '_blank' }, link.linkName && link.icon ? (h("span", { class: "LinkSectionListLinkText" }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" })), h("span", null, link.linkName))) :
65
+ h("span", { class: "LinkSectionListLinkText", onClick: () => this.navigateLink(link) }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" }))))) : (h("a", { class: "LinkSectionListLink", href: this.createHrefLink(link), target: link.target || '_blank' }, link.linkName && link.icon ? (h("span", { class: "LinkSectionListLinkText" }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" })), h("span", null, link.linkName))) :
52
66
  link.linkName ? (h("span", { class: "LinkSectionListLinkText" }, h("span", null, link.linkName))) :
53
- h("span", { class: "LinkSectionListLinkText" }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" })))))))))));
67
+ h("span", { class: "LinkSectionListLinkText" }, h("div", { class: "ContainerImage" }, h("ui-image", { class: "LinkSectionIcon", src: link.icon, alt: "icon" }))))))))))));
54
68
  }
55
69
  };
56
70
  LinkSectionList.style = LinkSectionListStyle0;
@@ -1,11 +1,11 @@
1
- import { b as bootstrapLazy } from './index-83985f06.js';
2
- export { s as setNonce } from './index-83985f06.js';
1
+ import { b as bootstrapLazy } from './index-4b819858.js';
2
+ export { s as setNonce } from './index-4b819858.js';
3
3
  import { g as globalScripts } from './app-globals-0f993ce5.js';
4
4
 
5
5
  const defineCustomElements = async (win, options) => {
6
6
  if (typeof window === 'undefined') return undefined;
7
7
  await globalScripts();
8
- return bootstrapLazy([["custom-content-section",[[2,"custom-content-section",{"customContent":[1,"custom-content"],"repeaterContent":[8,"repeater-content"],"navigateViaEvent":[516,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"]}]]],["link-section-list",[[0,"link-section-list",{"repeaterContent":[8,"repeater-content"],"baseUrl":[513,"base-url"],"language":[513],"navigateViaEvent":[4,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"]}]]],["custom-clock",[[2,"custom-clock",{"clockFormat":[513,"clock-format"],"timeZone":[513,"time-zone"],"translationUrl":[513,"translation-url"],"language":[513],"timeString":[32]},null,{"translationUrl":["handleNewTranslations"]}]]],["general-footer-template",[[1,"general-footer-template",{"language":[513],"sections":[513],"endpoint":[513],"env":[513],"userRoles":[513,"user-roles"],"userid":[513],"session":[513],"baseUrl":[513,"base-url"],"navigateViaEvent":[513,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"customCss":[513,"custom-css"],"translationUrl":[513,"translation-url"],"clockFormat":[513,"clock-format"],"timeZone":[513,"time-zone"],"mbSource":[513,"mb-source"],"hasErrors":[32],"footerContent":[32]},null,{"language":["watchLanguage"]}]]],["ui-image_2",[[0,"ui-image",{"src":[1],"width":[1],"height":[1],"alt":[1],"styles":[8],"detectDistance":[1,"detect-distance"],"loading":[1],"imgLoaded":[32]},null,{"src":["onSrcChange"],"loading":["onLoadingChange"]}],[0,"ui-skeleton",{"structure":[1],"width":[1],"height":[1],"borderRadius":[8,"border-radius"],"marginBottom":[8,"margin-bottom"],"marginTop":[8,"margin-top"],"marginLeft":[8,"margin-left"],"marginRight":[8,"margin-right"],"animation":[4],"rows":[2],"size":[1]},null,{"structure":["handleStructureChange"]}]]],["image-list",[[2,"image-list",{"repeaterContent":[8,"repeater-content"],"navigateViaEvent":[4,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"]}]]]], options);
8
+ return bootstrapLazy([["custom-content-section",[[2,"custom-content-section",{"customContent":[1,"custom-content"],"repeaterContent":[8,"repeater-content"],"navigateViaEvent":[516,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"]}]]],["link-section-list",[[0,"link-section-list",{"repeaterContent":[8,"repeater-content"],"baseUrl":[513,"base-url"],"language":[513],"navigateViaEvent":[4,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"],"dropdownLinks":[516,"dropdown-links"],"openCategory":[32]}]]],["custom-clock",[[2,"custom-clock",{"clockFormat":[513,"clock-format"],"timeZone":[513,"time-zone"],"translationUrl":[513,"translation-url"],"language":[513],"timeString":[32]},null,{"translationUrl":["handleNewTranslations"]}]]],["footer-logo",[[2,"footer-logo",{"endpoint":[513],"language":[513],"logoContent":[32]},null,{"endpoint":["onConfigChange"],"language":["onConfigChange"]}]]],["general-footer-template",[[1,"general-footer-template",{"language":[513],"sections":[513],"endpoint":[513],"env":[513],"userRoles":[513,"user-roles"],"userid":[513],"session":[513],"baseUrl":[513,"base-url"],"navigateViaEvent":[513,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"customCss":[513,"custom-css"],"translationUrl":[513,"translation-url"],"clockFormat":[513,"clock-format"],"timeZone":[513,"time-zone"],"mbSource":[513,"mb-source"],"dropdownLinks":[516,"dropdown-links"],"hasErrors":[32],"footerContent":[32]},null,{"language":["watchLanguage"]}]]],["ui-image_2",[[0,"ui-image",{"src":[1],"width":[1],"height":[1],"alt":[1],"styles":[8],"detectDistance":[1,"detect-distance"],"loading":[1],"imgLoaded":[32]},null,{"src":["onSrcChange"],"loading":["onLoadingChange"]}],[0,"ui-skeleton",{"structure":[1],"width":[1],"height":[1],"borderRadius":[8,"border-radius"],"marginBottom":[8,"margin-bottom"],"marginTop":[8,"margin-top"],"marginLeft":[8,"margin-left"],"marginRight":[8,"margin-right"],"animation":[4],"rows":[2],"size":[1]},null,{"structure":["handleStructureChange"]}]]],["image-list",[[2,"image-list",{"repeaterContent":[8,"repeater-content"],"navigateViaEvent":[4,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"]}]]]], options);
9
9
  };
10
10
 
11
11
  export { defineCustomElements };
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, H as Host, g as getElement } from './index-83985f06.js';
1
+ import { r as registerInstance, h, H as Host, g as getElement } from './index-4b819858.js';
2
2
 
3
3
  const uiImageCss = ".HostContainer{display:block}.UiContainer{height:100%;width:100%;border-radius:inherit;object-fit:inherit}.UiContainer .Image{border-radius:inherit}.Hidden{opacity:0;transition:opacity 0.5s ease-in-out}.Visible{opacity:1;border-radius:var(--emw--border-radius-medium, 10px);transition:opacity 0.5s ease-in-out}";
4
4
  const UiImageStyle0 = uiImageCss;
@@ -7,6 +7,9 @@ const UiImage = class {
7
7
  constructor(hostRef) {
8
8
  registerInstance(this, hostRef);
9
9
  this.hasStarted = false;
10
+ this._onLoad = () => {
11
+ this.imgLoaded = true;
12
+ };
10
13
  this.src = undefined;
11
14
  this.width = undefined;
12
15
  this.height = undefined;
@@ -29,7 +32,6 @@ const UiImage = class {
29
32
  if (newVal === oldVal)
30
33
  return;
31
34
  this.cleanupObserver();
32
- this.detachImgHandlers();
33
35
  if (newVal === 'eager') {
34
36
  if (this.imgEl && this.src) {
35
37
  this.imgEl.src = this.src;
@@ -49,7 +51,8 @@ const UiImage = class {
49
51
  }
50
52
  disconnectedCallback() {
51
53
  this.cleanupObserver();
52
- this.detachImgHandlers();
54
+ if (this.imgEl)
55
+ this.imgEl.src = '';
53
56
  }
54
57
  canUseIO() {
55
58
  return typeof window !== 'undefined' && 'IntersectionObserver' in window;
@@ -79,32 +82,6 @@ const UiImage = class {
79
82
  (_a = this.io) === null || _a === void 0 ? void 0 : _a.disconnect();
80
83
  this.io = undefined;
81
84
  }
82
- wireOnceHandlers() {
83
- if (!this.imgEl)
84
- return;
85
- this.detachImgHandlers();
86
- this._onLoad = () => {
87
- var _a;
88
- if (this.currentSrc && ((_a = this.imgEl) === null || _a === void 0 ? void 0 : _a.currentSrc) && !this.imgEl.currentSrc.includes(this.currentSrc))
89
- return;
90
- this.imgLoaded = true;
91
- };
92
- this._onError = () => {
93
- console.error('Load image failed:', this.src);
94
- };
95
- this.imgEl.addEventListener('load', this._onLoad, { once: true });
96
- this.imgEl.addEventListener('error', this._onError, { once: true });
97
- }
98
- detachImgHandlers() {
99
- if (!this.imgEl)
100
- return;
101
- if (this._onLoad)
102
- this.imgEl.removeEventListener('load', this._onLoad);
103
- if (this._onError)
104
- this.imgEl.removeEventListener('error', this._onError);
105
- this._onLoad = undefined;
106
- this._onError = undefined;
107
- }
108
85
  beginLoad() {
109
86
  if (this.hasStarted)
110
87
  return;
@@ -113,12 +90,6 @@ const UiImage = class {
113
90
  if (!this.src)
114
91
  return;
115
92
  this.hasStarted = true;
116
- this.wireOnceHandlers();
117
- if (this.imgEl.complete && this.imgEl.naturalWidth > 0) {
118
- this.imgLoaded = true;
119
- return;
120
- }
121
- this.currentSrc = this.src;
122
93
  this.imgEl.src = this.src;
123
94
  if (this.imgEl.complete && this.imgEl.naturalWidth > 0) {
124
95
  this.imgLoaded = true;
@@ -131,7 +102,7 @@ const UiImage = class {
131
102
  return (h(Host, { class: "HostContainer" }, h("img", { src: this.src, decoding: "async", style: this.styles, class: "UiContainer Visible", alt: this.alt, width: this.width, height: this.height, loading: "eager" })));
132
103
  }
133
104
  renderLazy() {
134
- return (h(Host, { class: "HostContainer", "aria-busy": !this.imgLoaded ? 'true' : 'false' }, this.showSkeleton && (h("ui-skeleton", { class: "UiContainer", structure: "image", width: "100%", height: "100%" })), h("img", { ref: (el) => (this.imgEl = el), src: undefined, decoding: "async", style: this.styles, class: `UiContainer ${this.imgLoaded ? 'Visible' : 'Hidden'}`, alt: this.alt, width: this.width, height: this.height, loading: "lazy" })));
105
+ return (h(Host, { class: "HostContainer", "aria-busy": !this.imgLoaded ? 'true' : 'false' }, this.showSkeleton && (h("ui-skeleton", { class: "UiContainer", structure: "image", width: "100%", height: "100%" })), h("img", { ref: (el) => (this.imgEl = el), src: undefined, decoding: "async", style: this.styles, onLoad: this._onLoad, class: `UiContainer ${this.imgLoaded ? 'Visible' : 'Hidden'}`, alt: this.alt, width: this.width, height: this.height, loading: "lazy" })));
135
106
  }
136
107
  render() {
137
108
  return this.loading === 'eager' ? this.renderEager() : this.renderLazy();