xv-webcomponents 1.3.21-qa.0 → 1.3.22-qa.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/xv-accordion-v2_45.cjs.entry.js +51 -61
- package/dist/cjs/xv-accordion-v2_45.cjs.entry.js.map +1 -1
- package/dist/collection/components/xv-footer/xv-footer.js +26 -12
- package/dist/collection/components/xv-footer/xv-footer.js.map +1 -1
- package/dist/collection/components/xv-header/xv-header.js +4 -5
- package/dist/collection/components/xv-header/xv-header.js.map +1 -1
- package/dist/collection/components/xv-mega-menu/xv-mega-menu.js +21 -44
- package/dist/collection/components/xv-mega-menu/xv-mega-menu.js.map +1 -1
- package/dist/esm/xv-accordion-v2_45.entry.js +51 -61
- package/dist/esm/xv-accordion-v2_45.entry.js.map +1 -1
- package/dist/types/components/xv-footer/xv-footer.d.ts +1 -1
- package/dist/types/components/xv-mega-menu/xv-mega-menu.d.ts +1 -0
- package/dist/xv-webcomponents/{p-7bb31b90.entry.js → p-9cfe81d4.entry.js} +2 -2
- package/dist/xv-webcomponents/p-9cfe81d4.entry.js.map +1 -0
- package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
- package/package.json +1 -1
- package/dist/xv-webcomponents/p-7bb31b90.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xv-mega-menu.js","sourceRoot":"","sources":["../../../src/components/xv-mega-menu/xv-mega-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, State, Listen, Element, Prop, Event, EventEmitter } from '@stencil/core';\nimport { MenuAction, MenuGroup, MenuItem } from './xv-mega-menu.model';\nimport { getMetaNav } from '../../utils/utils';\n\n@Component({\n tag: 'xv-mega-menu',\n styleUrl: 'xv-mega-menu.scss',\n shadow: true,\n})\nexport class XvMegaMenu {\n private readonly mobileSize: number = 991;\n @Element() el: HTMLElement;\n @Prop({ reflect: true, mutable: true }) open: boolean = false;\n @Event() openChange: EventEmitter<boolean>;\n @State() loading: boolean = false;\n @State() activeItem?: MenuItem;\n @State() activeGroup?: MenuGroup;\n @State() menuItems: MenuItem[] = [];\n\n @Listen('click', { target: 'document' })\n handleClickOutside(e: MouseEvent) {\n if (this.open && !this.el.contains(e.target as Node)) {\n this.handleClose();\n }\n }\n\n async componentWillLoad() {\n this.menuItems = await this.fetchMenuData();\n }\n\n private handleClose() {\n this.open = false;\n this.activeItem = this.activeGroup = undefined;\n this.openChange.emit(this.open);\n }\n\n private get isMobile() {\n return window.outerWidth <= this.mobileSize;\n }\n\n private setActiveItem(item?: MenuItem): void {\n this.activeItem = this.activeItem?.id === item?.id ? undefined : item;\n if (!this.isMobile || (this.activeItem?.groups?.length || 0) === 1) {\n this.setActiveGroup(this.activeItem?.groups?.[0]);\n }\n // Toggle just for desktop\n if (!this.isMobile) {\n this.open = !!this.activeItem;\n !this.open && this.handleClose();\n }\n }\n\n private setActiveGroup(group?: MenuGroup): void {\n this.activeGroup = this.isMobile && this.activeGroup?.id === group?.id ? undefined : group;\n }\n\n private navActionClick(action: MenuAction) {\n window.location.href = action.url;\n }\n\n private async fetchMenuData(): Promise<MenuItem[]> {\n if (typeof fetch !== 'function') return [];\n\n try {\n const isBrowser = typeof window !== 'undefined';\n if (!isBrowser) return [];\n \n const hostname = window.location.hostname;\n \n // --- Map hostnames to environment names ---\n const envMap = {\n 'qa.crossvertise.com': 'qa',\n 'sitefinity-qa.crossvertise.com': 'qa',\n 'sitefinity-staging.crossvertise.com': 'staging',\n 'www.crossvertise.com': 'release',\n 'komsa-test.crossvertise.com': 'qa',\n 'staging.crossvertise.com': 'staging',\n 'market.crossvertise.com': 'release',\n 'allianz.crossvertise.com': 'release',\n 'philips.crossvertise.com': 'release',\n 'komsa.crossvertise.com': 'release',\n };\n \n const matchedKey = Object.keys(envMap).find(h => hostname.includes(h));\n const env = matchedKey ? envMap[matchedKey] : 'qa';\n \n const subdomain = hostname.split('.')[0];\n \n const shouldUseBlob =\n subdomain === 'www' || subdomain === 'sitefinity-qa' || subdomain === 'sitefinity-staging' ||\n subdomain === 'market' ||\n (['qa', 'staging'].includes(env) && getMetaNav()?.WhitelabelName === 'Xv');\n \n let dataUrl = '';\n \n if (shouldUseBlob) {\n // --- Use blob storage ---\n const blobEnv = env === 'qa' || env === 'staging' ? env : 'release';\n dataUrl = `https://xvsitefinitystorage.blob.core.windows.net/nav-sync-${blobEnv}/mega-menu.json`;\n } else {\n // --- Use API Front Door ---\n const isLocalhost = /^(localhost|127\\.0\\.0\\.1)$/i.test(hostname);\n const baseUrl = isLocalhost\n ? 'https://qa.crossvertise.com'\n : window.location.origin;\n dataUrl = `${baseUrl}/api-fd/v1/home/menu`;\n }\n \n // --- Fetch menu data ---\n const response = await fetch(dataUrl, {\n method: 'GET',\n headers: { Accept: 'application/json' },\n credentials: 'include',\n });\n \n if (!response.ok) {\n console.error(`Failed to fetch menu data: ${response.status}`, response);\n return [];\n }\n \n const result = await response.json();\n return result?.data ?? result;\n } catch (error) {\n console.error('fetchMenuData error', error);\n return [];\n }\n }\n \n\n render() {\n return (\n <Host>\n <nav class={{ 'xv-menu': true, open: this.open }}>\n {this.loading && (<div class={{ 'xv-menu-loader': true, open: this.open }}>\n <xv-loader-v2></xv-loader-v2>\n </div>)}\n\n <ul class={{ menu: true, open: this.open }}>\n {this.menuItems.map((menuItem) => (\n <li class={{ 'menu-item': true, active: menuItem.id === this.activeItem?.id }}>\n <p class=\"menu-item-label\" onClick={() => this.setActiveItem(menuItem)}>{menuItem?.label}</p>\n\n <ul class=\"menu-item-groups\">\n {menuItem.groups.map((group) => (\n <li class={{ group: true, active: this.activeGroup?.id === group.id }}>\n {group.label && (\n <div class=\"group-label\" onClick={() => this.setActiveGroup(group)}>\n <span class=\"group-label-text\">{group.label}</span>\n <span class=\"group-label-icon\" />\n </div>\n )}\n\n <div class=\"group-container\">\n <div class={{ 'group-container-absolute': true, noLabel: !group.label && (menuItem.groups?.length || 0) < 2 }}>\n <div class=\"group-menus\">\n <ul class={{ 'group-menus-categories': true, inline: group.layout === 'inline' }}>\n {group.categories.map((category) => (\n <li class=\"category\">\n <p class=\"category-label\">{category.label}</p>\n\n <ul class=\"category-routes\">\n {category.routes.map((route) => (\n <li class=\"route\">\n <xv-link-v2 size=\"lg\" variant=\"ghost\" href={route.route || '#'}>\n {route.label}\n </xv-link-v2>\n {route.tag && (\n <xv-tag-v2 class=\"route-tag\" size=\"sm\" color=\"#161616\" bg=\"#E0E0E0\">{route.tag}</xv-tag-v2>\n )}\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n\n <ul class=\"group-menus-actions\">\n {group.actions.map((action) => (\n <li class=\"action\">\n {action.type === 'link' && (\n <xv-link-v2 variant=\"standalone\" href={action?.url}>\n {action.label}\n <span class=\"link-chevron\" slot=\"icon-right\">→</span>\n </xv-link-v2>\n )}\n {action.type === 'button' && <xv-button-v2 onClick={() => this.navActionClick(action)} block={true} variant=\"tertiary\">{action.label}</xv-button-v2>}\n </li>\n ))}\n </ul>\n </div>\n\n {group?.card && (\n <div class=\"group-card\">\n <xv-card-v2 media={group.card.image} variant={this.isMobile ? 'horizontal' : 'vertical'}>\n <h5 slot=\"header\" class=\"group-card-title\">{group.card.title}</h5>\n <p slot=\"body\" class=\"group-card-desc\">{group.card.description}</p>\n {group.card.linkLabel && (\n <xv-link-v2 slot=\"footer\" variant=\"standalone\" href={group.card.linkUrl || '#'}>\n {group.card.linkLabel}\n <span class=\"link-chevron\" slot=\"icon-right\">→</span>\n </xv-link-v2>\n )}\n </xv-card-v2>\n </div>\n )}\n </div>\n </div>\n </li>\n ))}\n </ul>\n </li>\n ))}\n <li class=\"menu--right\">\n <slot name=\"menu-right\"></slot>\n </li>\n {this.open && (\n <li class=\"menu--backdrop\" onClick={() => this.handleClose()} />\n )}\n </ul>\n </nav>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"xv-mega-menu.js","sourceRoot":"","sources":["../../../src/components/xv-mega-menu/xv-mega-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, State, Listen, Element, Prop, Event, EventEmitter } from '@stencil/core';\nimport { MenuAction, MenuGroup, MenuItem } from './xv-mega-menu.model';\nimport { getMetaNav } from '../../utils/utils';\n\n@Component({\n tag: 'xv-mega-menu',\n styleUrl: 'xv-mega-menu.scss',\n shadow: true,\n})\nexport class XvMegaMenu {\n private readonly mobileSize: number = 991;\n @Element() el: HTMLElement;\n @Prop({ reflect: true, mutable: true }) open: boolean = false;\n @Event() openChange: EventEmitter<boolean>;\n @State() loading: boolean = false;\n @State() activeItem?: MenuItem;\n @State() activeGroup?: MenuGroup;\n @State() menuItems: MenuItem[] = [];\n\n @Listen('click', { target: 'document' })\n handleClickOutside(e: MouseEvent) {\n if (this.open && !this.el.contains(e.target as Node)) {\n this.handleClose();\n }\n }\n\n async componentWillLoad() {\n this.menuItems = await this.fetchMenuData();\n }\n\n private handleClose() {\n this.open = false;\n this.activeItem = this.activeGroup = undefined;\n this.openChange.emit(this.open);\n }\n\n private get isMobile() {\n return window.outerWidth <= this.mobileSize;\n }\n\n private setActiveItem(item?: MenuItem): void {\n this.activeItem = this.activeItem?.id === item?.id ? undefined : item;\n if (!this.isMobile || (this.activeItem?.groups?.length || 0) === 1) {\n this.setActiveGroup(this.activeItem?.groups?.[0]);\n }\n // Toggle just for desktop\n if (!this.isMobile) {\n this.open = !!this.activeItem;\n !this.open && this.handleClose();\n }\n }\n\n private setActiveGroup(group?: MenuGroup): void {\n this.activeGroup = this.isMobile && this.activeGroup?.id === group?.id ? undefined : group;\n }\n\n private navActionClick(action: MenuAction) {\n window.location.href = action.url;\n }\n\n private getEnvFromHost(): 'qa' | 'release' | 'staging' {\n if (typeof window === 'undefined') return 'qa';\n const host = window.location.hostname;\n\n if (host.includes('localhost') || host.includes('127.0.0.1')) return 'qa';\n if (host.includes('qa.') || host.includes('komsa-test')) return 'qa';\n if (host.includes('staging.')) return 'staging';\n return 'release';\n }\n\n private async fetchMenuData(): Promise<MenuItem[]> {\n if (typeof window === 'undefined' || typeof fetch !== 'function') return [];\n\n try {\n const url = (getMetaNav()?.WhitelabelName || 'Xv') === 'Xv'\n ? `https://xvsitefinitystorage.blob.core.windows.net/nav-sync-${this.getEnvFromHost()}/mega-menu.json`\n : `${window.location.origin}/api-fd/v1/home/menu`;\n const response = await fetch(url, {\n method: 'GET',\n headers: { Accept: 'application/json' },\n credentials: 'include'\n });\n if (!response.ok) {\n console.error(`[fetchMenuData] Failed (${response.status}): ${url}`, response);\n return [];\n }\n const result = await response.json();\n return result?.data ?? result;\n } catch (error) {\n console.error('fetchMenuData error', error);\n return [];\n }\n }\n\n render() {\n return (\n <Host>\n <nav class={{ 'xv-menu': true, open: this.open }}>\n {this.loading && (<div class={{ 'xv-menu-loader': true, open: this.open }}>\n <xv-loader-v2></xv-loader-v2>\n </div>)}\n\n <ul class={{ menu: true, open: this.open }}>\n {this.menuItems.map((menuItem) => (\n <li class={{ 'menu-item': true, active: menuItem.id === this.activeItem?.id }}>\n <p class=\"menu-item-label\" onClick={() => this.setActiveItem(menuItem)}>{menuItem?.label}</p>\n\n <ul class=\"menu-item-groups\">\n {menuItem.groups.map((group) => (\n <li class={{ group: true, active: this.activeGroup?.id === group.id }}>\n {group.label && (\n <div class=\"group-label\" onClick={() => this.setActiveGroup(group)}>\n <span class=\"group-label-text\">{group.label}</span>\n <span class=\"group-label-icon\" />\n </div>\n )}\n\n <div class=\"group-container\">\n <div class={{ 'group-container-absolute': true, noLabel: !group.label && (menuItem.groups?.length || 0) < 2 }}>\n <div class=\"group-menus\">\n <ul class={{ 'group-menus-categories': true, inline: group.layout === 'inline' }}>\n {group.categories.map((category) => (\n <li class=\"category\">\n <p class=\"category-label\">{category.label}</p>\n\n <ul class=\"category-routes\">\n {category.routes.map((route) => (\n <li class=\"route\">\n <xv-link-v2 size=\"lg\" variant=\"ghost\" href={route.route || '#'}>\n {route.label}\n </xv-link-v2>\n {route.tag && (\n <xv-tag-v2 class=\"route-tag\" size=\"sm\" color=\"#161616\" bg=\"#E0E0E0\">{route.tag}</xv-tag-v2>\n )}\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n\n <ul class=\"group-menus-actions\">\n {group.actions.map((action) => (\n <li class=\"action\">\n {action.type === 'link' && (\n <xv-link-v2 variant=\"standalone\" href={action?.url}>\n {action.label}\n <span class=\"link-chevron\" slot=\"icon-right\">→</span>\n </xv-link-v2>\n )}\n {action.type === 'button' && <xv-button-v2 onClick={() => this.navActionClick(action)} block={true} variant=\"tertiary\">{action.label}</xv-button-v2>}\n </li>\n ))}\n </ul>\n </div>\n\n {group?.card && (\n <div class=\"group-card\">\n <xv-card-v2 media={group.card.image} variant={this.isMobile ? 'horizontal' : 'vertical'}>\n <h5 slot=\"header\" class=\"group-card-title\">{group.card.title}</h5>\n <p slot=\"body\" class=\"group-card-desc\">{group.card.description}</p>\n {group.card.linkLabel && (\n <xv-link-v2 slot=\"footer\" variant=\"standalone\" href={group.card.linkUrl || '#'}>\n {group.card.linkLabel}\n <span class=\"link-chevron\" slot=\"icon-right\">→</span>\n </xv-link-v2>\n )}\n </xv-card-v2>\n </div>\n )}\n </div>\n </div>\n </li>\n ))}\n </ul>\n </li>\n ))}\n <li class=\"menu--right\">\n <slot name=\"menu-right\"></slot>\n </li>\n {this.open && (\n <li class=\"menu--backdrop\" onClick={() => this.handleClose()} />\n )}\n </ul>\n </nav>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -77936,18 +77936,32 @@ const Xvfooter = class {
|
|
|
77936
77936
|
constructor(hostRef) {
|
|
77937
77937
|
registerInstance(this, hostRef);
|
|
77938
77938
|
}
|
|
77939
|
-
handleLoadData() {
|
|
77939
|
+
async handleLoadData() {
|
|
77940
77940
|
var _a;
|
|
77941
|
-
|
|
77942
|
-
const
|
|
77943
|
-
|
|
77944
|
-
|
|
77945
|
-
|
|
77946
|
-
|
|
77947
|
-
|
|
77948
|
-
|
|
77949
|
-
|
|
77950
|
-
|
|
77941
|
+
const baseUrl = 'https://xvsitefinitystorage.blob.core.windows.net/production/components/xv-footer/';
|
|
77942
|
+
const brand = ((_a = getMetaNav()) === null || _a === void 0 ? void 0 : _a.WhitelabelName) || 'Xv';
|
|
77943
|
+
try {
|
|
77944
|
+
const res = await fetch(`${baseUrl}xv-footer.data.${brand}.json`);
|
|
77945
|
+
if (!res.ok)
|
|
77946
|
+
throw new Error(`HTTP ${res.status}`);
|
|
77947
|
+
this.data = await res.json();
|
|
77948
|
+
return;
|
|
77949
|
+
}
|
|
77950
|
+
catch (err) {
|
|
77951
|
+
console.warn(`Failed to fetch footer data for ${brand}, using fallback:`, err);
|
|
77952
|
+
if (brand === 'Xv')
|
|
77953
|
+
return; // No need to fallback if already trying default brand
|
|
77954
|
+
}
|
|
77955
|
+
// Fallback to default brand
|
|
77956
|
+
try {
|
|
77957
|
+
const fallbackRes = await fetch(`${baseUrl}xv-footer.data.Xv.json`);
|
|
77958
|
+
if (!fallbackRes.ok)
|
|
77959
|
+
throw new Error(`HTTP ${fallbackRes.status}`);
|
|
77960
|
+
this.data = await fallbackRes.json();
|
|
77961
|
+
}
|
|
77962
|
+
catch (finalErr) {
|
|
77963
|
+
console.error('Fallback footer load failed:', finalErr);
|
|
77964
|
+
}
|
|
77951
77965
|
}
|
|
77952
77966
|
componentWillLoad() {
|
|
77953
77967
|
this.handleLoadData();
|
|
@@ -77955,7 +77969,7 @@ const Xvfooter = class {
|
|
|
77955
77969
|
render() {
|
|
77956
77970
|
const { categories, socials, logo, legalLinks, payments, partners, advantages } = this.data || {};
|
|
77957
77971
|
const hasDataLength = ((categories === null || categories === void 0 ? void 0 : categories.length) || (partners === null || partners === void 0 ? void 0 : partners.length) || (payments === null || payments === void 0 ? void 0 : payments.length) || (socials === null || socials === void 0 ? void 0 : socials.length));
|
|
77958
|
-
return (h("footer", { key: '
|
|
77972
|
+
return (h("footer", { key: 'd2f3c0b5b446ea8e72e3d6a47873767e96986a37', class: "xv-footer" }, (advantages === null || advantages === void 0 ? void 0 : advantages.length) > 0 && (h("div", { key: '2d5a279cc43f7f5a81fe967f88d916bc6a571687', class: "xv-footer-advantages" }, h("div", { key: 'dd500002c100990bc3f2afced3a8e226dd4a2d06', class: "container" }, this._renderFooterList(advantages, { itemWithLabel: true })))), hasDataLength && (h("div", { key: 'b1ea6fa7e57c467369804c47e0f12ce69ee80acc', class: "container" }, h("div", { key: 'ae9171e321a11968a971eaae998f1d5103da5f0f', class: "row xv-footer-y-spacing" }, h("div", { key: '1a24634c4a1a6f098889b953d9ec2b5d9bd50955', class: "col-sm-12 col-md-8" }, h("ul", { key: '9d579504251ee6e31266ec03d3811be95f0eb7f2', class: "xv-footer-categories" }, categories === null || categories === void 0 ? void 0 : categories.map((category) => (h("li", null, h("p", { class: "xv-label-02" }, category.label), h("ul", { class: "xv-footer-routes" }, category.routes.map((item) => (h("li", null, h("a", { class: "xv-body-compact-02", href: item.href, target: item.target }, item.label)))))))))), h("div", { key: '96499913d1790f5403b51de5eaf729b1fa5c1b4d', class: "col-sm-12 col-md-3 col-md-push-1" }, this._renderFooterList(partners, { label: 'crossvertise Partner' }), this._renderFooterList(payments, { label: 'Bequem und sicher bezahlen' }), this._renderFooterList(socials, { label: 'Folgen Sie uns', isRow: true }))))), (legalLinks === null || legalLinks === void 0 ? void 0 : legalLinks.length) > 0 && (h("div", { key: 'e02473308d044fe1470455d7d32b8c989e8edcbe', class: "xv-footer-legal" }, h("div", { key: '834de7c7eb1257e3d6694dea8801a596360e0e81', class: "container" }, h("div", { key: 'c41da3fb43d15b880af4cc79f58df5abedf8f070', class: "xv-footer-legal-row" }, logo && (h("a", { key: '87a5129a30c11337917be26214df91fb5be882fe', class: "xv-footer-logo", href: logo.href, target: logo.target }, logo.label && h("span", { key: '8c33fc1b69dc106aeccba22cdaebccc3225ff88f', class: "xv-label-02" }, logo.label), h("img", { key: '9b24f578fbd6c4ed12aaa8166d33168b69834cb8', loading: "lazy", src: logo.image, alt: logo.label }))), h("ul", { key: '06967e54963d7bdb342bf211571c0d7e087f1884' }, legalLinks.map((item) => h("li", null, h("a", { class: "xv-helper-text-02", href: item.href, target: item.target }, item.label))))))))));
|
|
77959
77973
|
}
|
|
77960
77974
|
_renderFooterList(items = [], opt) {
|
|
77961
77975
|
if (!(items === null || items === void 0 ? void 0 : items.length))
|
|
@@ -78221,9 +78235,9 @@ const XvHeader = class {
|
|
|
78221
78235
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19;
|
|
78222
78236
|
const baseUrl = window.location.origin;
|
|
78223
78237
|
const isMegaMenuEnabled = !!(((_a = this.metaNav) === null || _a === void 0 ? void 0 : _a.EnableMegaMenu) || this.megaMenu);
|
|
78224
|
-
return (h("div", { key: '
|
|
78225
|
-
_w.map(item => (h("li", null, h("a", { href: item.Url, target: item.Target || '_self' }, h("i", { class: item.CssClass }), "\u00A0", item.Text)))), ((_x = this.metaNav) === null || _x === void 0 ? void 0 : _x.IsManager) && (h("li", { key: '
|
|
78226
|
-
_8.map(item => (h("li", null, h("a", { href: item.Url, target: item.Target || '_self' }, h("i", { class: item.CssClass }), item.Text)))), h("li", { key: '
|
|
78238
|
+
return (h("div", { key: '8edc85b9012e9d471ef313c7599eeda7c31f6ce9', id: "nav-container", class: "xv-header" }, h("nav", { key: '9f15b8b4d505761666da7dc3e1151e42b6b21168', class: "navbar navbar-default navbar-fixed-top backend-force-relative" }, h("div", { key: '140422372855e067def455c5db5261fe684a4771', class: "generic-wrapper" }, h("div", { key: '95dac0a0d8aebfa0167244ab8bbcae675ba65a76', class: "container" }, h("div", { key: 'd3cc7d55e230f53ffb6e54ba5ba12ec4999190f1', class: "xv-header-row" }, h("div", { key: '7561d9396c8ce8042194198aa79e6eabcd468d44', class: "xv-header-col xv-header-col--left" }, h("div", { key: '7af279c51931636338b7f81ee21086bea72a6af0', class: "navbar-header" }, h("button", { key: 'ddc352dde34d81dfbed2764d2741daff9f576139', class: "btn btn-default navbar-toggle pull-left navbar-btn", onClick: this.toggleMobMenu }, h("i", { key: '18cf4c517de3194e777064554c414ffbbc630444', class: "fa fa-bars fa-lg", "aria-hidden": "true" })), h("div", { key: '4969645e91b342d2e09f1edf31408b1f1bb9f5ae', class: "visible-xs-inline visible-sm-inline" }, h("a", { key: 'c4eae4944a964b49c18adbb7f03565d3bfa9b9f2', href: `${baseUrl}/`, class: "navbar-brand" }, h("img", { key: '72c07af038c7382f171e5e892c1ce2c509aee861', src: this.getSmallLogoUrl(), alt: "Crossvertise" }))), h("div", { key: 'd740a48868612b5ca7e10a54e10fa8b7538bb3c9', class: "hidden-xs hidden-sm" }, h("a", { key: '53e776f301c171097cbaac2beee1d91acafe1ce4', href: `${baseUrl}/`, class: "navbar-brand" }, h("img", { key: 'a9d7b9f7a1d24bcb530582f4703da293821af96d', loading: "lazy", src: this.getLogoUrl(), alt: "Crossvertise" })))), this.orgUnit && (h("xv-link-v2", { key: 'e76b5221793753595738d01768c4ac48ea56a223', size: "lg", class: "xv-header--link-no-visited", variant: "standalone", href: "/de-de/mycrossvertise" }, this.orgUnit))), h("div", { key: 'a1ebb049a8a6c99914a4d20ee1d7dec8f054a6c8', class: "xv-header-col xv-header-col--right" }, h("ul", { key: 'dbafb579718f3c992a974dad2ae298c94a69c1f5', class: "nav nav-pills nav-meta pull-right" }, ((_b = this.metaNav) === null || _b === void 0 ? void 0 : _b.ImpersonationInfo) && (h("li", { key: 'dfd3d3545255add81d054c3dde3ec449654f4814' }, h("div", { key: '2505edd14fee5b90e0919722a91f83d3163ac2bb', class: "btn btn-link navbar-btn navbar-btn-cust hidden-xs", onClick: this.togglePopover }, h("i", { key: '55d1bb531d4d0c661b882119feeba78840b9fa6b', class: "fa fa-user" }), h("i", { key: 'b5c6cdc79b16eb802029593e8dac15d29c2c5923', class: "fa fa-exchange-alt" })), h("div", { key: '6e8a9cb7fc73dda080543de1988ed08999d34e90', class: "popover popover-fixed fade bottom in", style: { "display": this.showPopover ? "block" : "none" } }, h("div", { key: '780eb7c8969cb871a16d71d72cb866688ba612e3', class: "arrow" }), h("h3", { key: 'b0be23dc00bd544ea1acf8774b86ae756549c22c', class: "popover-title" }, "Momentan ist die Kundenperspektive aktiviert f\u00FCr:"), h("div", { key: '86d2069989cc323abd7e7dbbf4259469b071663d', class: "popover-content" }, h("div", { key: 'b66e30f43a8ac3152dfd2b1c27c747b80d8338ae', class: "row" }, h("div", { key: '9a9c40b5259510c622f358eb7927d889562e775d', class: "col-xs-12" }, h("table", { key: '29362d0eb84eda92fab1c6c0e26f34e76529f8ca', class: "table-condensed" }, h("tbody", { key: '19d8dde342252eaf8e9d3d2bcd43bbeb34821373' }, h("tr", { key: 'e63edbc0f577cc476b5de4210c79c02a24030006' }, h("td", { key: '742fd0954eb54b816fc5e855d0e89fca37a2de36' }, h("span", { key: 'ef1929bf7564dbc4bd8e76b20d5a3a8f274dc578' }, (_d = (_c = this.metaNav) === null || _c === void 0 ? void 0 : _c.ImpersonationInfo) === null || _d === void 0 ? void 0 : _d.NameAndTitle))), h("tr", { key: '91525c6a4e18b047dd327c719ad4a4c2ff966811' }, h("td", { key: 'b35cbc342fa516ffb96dfb7aa03ff2204237f18d' }, h("span", { key: 'ba585bcfeb076a5fdb2511d4fda2e62995380d5b' }, (_f = (_e = this.metaNav) === null || _e === void 0 ? void 0 : _e.ImpersonationInfo) === null || _f === void 0 ? void 0 : _f.CompanyName))), h("tr", { key: '3c4570f61245377f4a1c0a3da74c33535117de1b' }, h("td", { key: 'd61180f241529aff8b64aeef1205119c96ab4a08' }, h("span", { key: '6750544669f4046f3354b530534d34b7e71292fd' }, (_h = (_g = this.metaNav) === null || _g === void 0 ? void 0 : _g.ImpersonationInfo) === null || _h === void 0 ? void 0 : _h.Email))), h("tr", { key: 'bd791540d3629b1bd80938ef9e85cd6030fab181' }, h("td", { key: '9a76d23e1b3ec338621f3c8d6c701eae89fbef76' }, h("span", { key: '68ea39dbc57a902d8c58df0c2f4ecf8ecd8758fd' }, (_k = (_j = this.metaNav) === null || _j === void 0 ? void 0 : _j.ImpersonationInfo) === null || _k === void 0 ? void 0 : _k.PhoneOffice)))))))), h("div", { key: 'fce00d420cf918faa3b9d21f1206982818a9f60d', class: "row contact-contactform-container", id: "contact-contactform-container-nav" }, h("div", { key: '4ea5771774596d8e1bb814640fcdcc48cbd606a9', class: "col-xs-12" }, h("a", { key: '2ddf3d572bb1e0952df96500f1e35e4ffc3d46fb', class: "btn btn-primary btn-block", href: "/de-de/mycrossvertise/account/clearimpersonation" }, "Kundenperspektive verlassen")))))), h("li", { key: '3fa24a8a829f03ff24317150c7112eabfbe4db44' }, h("a", { key: '9ea9233728f001f37cf9c0736b5741093b3d6f95', class: "btn btn-link navbar-btn hidden-xs", href: "https://www.crossvertise.com/ueber-uns/kontakt" }, "Kontakt"), h("a", { key: '5c7a7a89d960f814f21446f471063ba1863591b4', href: "/contact", class: "btn btn-link navbar-btn hidden-xs", style: { display: 'none' } }, "Kontakt"), h("a", { key: '0c890cad0dc344cfce16dab7c253a5923a2e8078', class: "btn btn-default btn-link navbar-btn visible-xs hidden-xxs", href: "#" }, h("i", { key: '91db21122671eac3c3854e83edffa3b899ca6009', class: "fa fa-phone" }))), ((_l = this.metaNav) === null || _l === void 0 ? void 0 : _l.IsManager) && (h("li", { key: '237c4f5c124bdae1a4db87bafea0c488876a4998', class: "dropdown", "data-bind": "visible: $root.isManager", id: "notifications-dropdown" }, h("a", { key: 'f74d6ffa120fcd69bdee88294c7842acf248e1a3', id: "notifications-dropdown-toggle", "data-target": "#", class: "dropdown-toggle btn navbar-btn btn-link", "data-toggle": "dropdown", role: "button", "data-container": "body", "aria-haspopup": "true", "aria-expanded": "false" }, h("i", { key: '5a1aa6aace28120aec666826f205f10e777c2f3d', class: "fas fa-bell fa-lg" }), this.notificationsCount > 0 && (h("span", { key: '8a8cd255e28cf5898a2b588398ca3094f468590f', id: "notifications-count", class: "badge badge-success badge-top-right" }, this.notificationsCount))), this.notificationsHtml && (h("ul", { key: 'cdc13585ec8573de235aeb15a420cb607ee732f0', id: "notifications-menu", class: "dropdown-menu dropdown-menu-left notification-panel" }, h("div", { key: '32e6dc2604a3a8dc935c4504fa355ae672000494', class: "notification-body", id: "notification-body" }, h("div", { key: '40579dad2e356dd8a94f37006c1dbc1f8d4255e2', class: "notifications", innerHTML: this.notificationsHtml })))))), ((_m = this.metaNav) === null || _m === void 0 ? void 0 : _m.IsAuthenticated) && (h("li", { key: 'be8c1a3f229b67a0b22257fef4ffca8a2dfea2cb', class: "dropdown", id: "my-xv-menu" }, h("a", { key: '3f3c5c6cbceb3602c60ac1ea2adf7406470204f4', class: "dropdown-toggle btn navbar-btn btn-link", "data-toggle": "dropdown", role: "button", "data-container": "body", "aria-haspopup": "true", "aria-expanded": "false" }, h("i", { key: 'a974625a2d043174682e5b8ba5bb050804712b72', class: "fa fa-user fa-lg text-success", "aria-hidden": "true" }), "\u00A0", h("span", { key: '5f7124e458b51937e4babfeb2eaee1693c3f730c', class: "hidden-xs" }, (_o = this.metaNav) === null || _o === void 0 ? void 0 : _o.UserMenuText), "\u00A0", h("span", { key: '939d60b2115bfb1c80a5f46ebdb4bfe3d3a0281c', class: "caret" })), h("ul", { key: 'adaebe4fca562765c0d024619558baabeacbdf05', class: "dropdown-menu-left dropdown-menu navbar-myxv" }, ((_p = this.metaNav) === null || _p === void 0 ? void 0 : _p.IsManager) && (h("li", { key: '71746dfed0b9d41707da3cf7a0f3309916e3b428' }, h("a", { key: '456e5c0309c0dcd5fbba40e636e82fd895aa926c', onClick: () => this.toggleCockpitMenu() }, h("i", { key: 'c0f83cc0c4d329b47dc184daa802d785ec02f217', class: "fa fa-tachometer-alt fa-fw" }), "\u00A0Cockpitfunktionen \u00A0", h("i", { key: '4db3c2a99ebc9519cda5fd7cf54121bb98a95b5c', class: "fa fa-caret-down" })))), this.isCockpitMenuExpanded && ((_r = (_q = this.metaNav) === null || _q === void 0 ? void 0 : _q.ManagerCockpitMenu) === null || _r === void 0 ? void 0 : _r.map(item => (h("li", { class: 'user-menu-item' }, h("a", { href: item.Url, target: item.Target || '_self' }, h("i", { class: item.CssClass }), "\u00A0\u00A0", item.Text))))), ((_s = this.metaNav) === null || _s === void 0 ? void 0 : _s.IsManager) && (h("li", { key: '89d5135fcf766dec40c64e97a1f943b74b210e7d' }, h("a", { key: '8d9a2a6c15e7e6e8cb93dca2bd6ba55d93de1661', onClick: () => this.toggleEntitiesMenu() }, h("i", { key: 'ee03bbfaa86d73aa241e87a13901accd5e014938', class: "fa fa-cubes" }), "\u00A0Entit\u00E4ten \u00A0", h("i", { key: 'bcf2ae7add852d1c356d41667c81b03af720ff83', class: "fa fa-caret-down" })))), this.isEntitiesMenuExpanded && ((_u = (_t = this.metaNav) === null || _t === void 0 ? void 0 : _t.ManagerEntitiesMenu) === null || _u === void 0 ? void 0 : _u.map(item => (h("li", { class: 'user-menu-item' }, h("a", { href: item.Url, target: item.Target || '_self' }, h("i", { class: item.CssClass }), item.Text))))), (_w = (_v = this.metaNav) === null || _v === void 0 ? void 0 : _v.ManagerMenu) === null || _w === void 0 ? void 0 :
|
|
78239
|
+
_w.map(item => (h("li", null, h("a", { href: item.Url, target: item.Target || '_self' }, h("i", { class: item.CssClass }), "\u00A0", item.Text)))), ((_x = this.metaNav) === null || _x === void 0 ? void 0 : _x.IsManager) && (h("li", { key: 'd6ed833bd15cfc7490a3a30e6ddaa3db976de470', role: "separator", class: "divider" })), ((_y = this.metaNav) === null || _y === void 0 ? void 0 : _y.IsManager) && (h("li", { key: 'b816ee95ff07a709abec4a13d269feb4790a8c4b' }, h("a", { key: '611f6474244f0b736737c938ea5737ec2de7c346', onClick: () => this.toggleUserMenu() }, h("i", { key: 'b8c57eb2cf89a2fc021ee4ec0bf1c3fc60b22b35', class: "fa fa-user" }), "\u00A0Mein Crossvertise \u00A0", h("span", { key: 'de4096acd2b08a6ffce03542e045d56b988df791', class: "badge" }, (_z = this.metaNav) === null || _z === void 0 ? void 0 : _z.PendingItems), h("i", { key: '4fd1e9a5f2ff723797448ef51878c877ac68dd37', class: "fa fa-caret-down" })))), this.isUserMenuExpanded && ((_1 = (_0 = this.metaNav) === null || _0 === void 0 ? void 0 : _0.UserMenu) === null || _1 === void 0 ? void 0 : _1.map(item => (h("li", { class: 'user-menu-item' }, h("a", { href: item.Url, target: item.Target || '_self', class: "user-menu-item-link" }, h("i", { class: item.CssClass }), item.Text, "\u00A0", item.BadgeText && (h("span", { class: "badge" }, item.BadgeText))))))), ((_3 = (_2 = this.metaNav) === null || _2 === void 0 ? void 0 : _2.ImpersonationInfo) === null || _3 === void 0 ? void 0 : _3.isImpersonated) && (h("li", { key: '1988c481e6a4a21d88da2fe5112998c79b9496ad', class: 'user-menu-item' }, h("a", { key: 'ef702794f0e0a1e387ad96d35c4ff261120d41ba', href: (_5 = (_4 = this.metaNav) === null || _4 === void 0 ? void 0 : _4.ImpersonationInfo) === null || _5 === void 0 ? void 0 : _5.ClearImpersonationUrl }, h("i", { key: '6ad80f14b178ac68b06a366e748b60fed7f8cdb5', class: "fa fa-exchange-alt" }), "Kundenperspektive verlassen"))), ((_6 = this.metaNav) === null || _6 === void 0 ? void 0 : _6.IsManager) && (h("li", { key: '59a7529def30092c195366d1c2d7c670407350ec', role: "separator", class: "divider" })), (_8 = (_7 = this.metaNav) === null || _7 === void 0 ? void 0 : _7.ActionsMenu) === null || _8 === void 0 ? void 0 :
|
|
78240
|
+
_8.map(item => (h("li", null, h("a", { href: item.Url, target: item.Target || '_self' }, h("i", { class: item.CssClass }), item.Text)))), h("li", { key: '8ed29cc336eecb8cd1e2bd19f534baf0188ca239' }, h("a", { key: '918277a87ac19364406191ddeeee4170ec0d75bb', href: `${this.getBaseUrl()}/de-de/mycrossvertise/account/logoff?returnUrl=${window.location.hostname}` }, h("i", { key: 'a2acc3d0ae29c73d5240006bad82bb7423929d36', class: "fa fa-sign-out-alt fa-fw", "aria-hidden": "true" }), "Logout"))))), !((_9 = this.metaNav) === null || _9 === void 0 ? void 0 : _9.IsAuthenticated) && (h("li", { key: 'db31b8f1d4478fd3521572d65eb100acde8888b9', class: "hidden-md hidden-lg" }, h("a", { key: '38028d1b8120b4606bec21d9dff7ea1412e3f508', class: "btn btn-default navbar-btn btn-link mob-login", href: "/de-de/mycrossvertise/account/logon" }, h("i", { key: '9ae831ed8581328c7df47a95bb4a3d80600bae4a', class: "fa fa-user fa-lg", "aria-hidden": "true" })))), h("xv-login-modal", { key: 'b76bcf7f0f437b136921eef5aee8c1fd8a6a6d39', visible: this.showLoginModal, onClose: this.closeLoginModal }), !((_10 = this.metaNav) === null || _10 === void 0 ? void 0 : _10.IsAuthenticated) && (h("li", { key: '58d5c3d0cbc27e1b65d132824f036c0d057094fc', class: "hidden-xs hidden-sm" }, h("a", { key: '600070ffa48877bbfa72c4d08c01295d5545a89b', role: "button", onClick: this.openLoginModal, class: "btn btn-default navbar-btn btn-link" }, h("i", { key: 'c10e207991d53f458a57c9b5e938b63c870870a9', class: "fa fa-user fa-lg", "aria-hidden": "true" }), h("span", { key: '8c9bf0b884a1ef31df59329000635480d5f36ba8', class: "padding-sm-left" }, "Login")))), !((_11 = this.metaNav) === null || _11 === void 0 ? void 0 : _11.IsAuthenticated) && (h("li", { key: '7a9b74e207a2c146c0db633e2be18217a16a8796', class: "hidden-xs" }, h("a", { key: 'dbdb528f55104ee79549125823ded21ff1624114', class: "btn btn-default navbar-btn btn-link", href: "/de-de/mycrossvertise/account/register" }, h("span", { key: 'abf6c046531f94b49c68cce94609fb8b4564ea1c' }, "Registrieren")))), h("li", { key: '690976a1e682cd5aa3177d38213d4c45188283c2', class: "navbar-divider hidden-xs" }), h("li", { key: '09cb11c7de09f2e23477a4468808dd0e016d6448' }, h("xv-button-v2", { key: 'f1f9732f04d05948b8475fba25f03fd93bbe3fa8', class: "navbar-btn", variant: 'accent', onClick: () => window.location.href = '/de-de/mycrossvertise/shoppingcart/activecart' }, h("span", { key: 'd6d223442fcb1e59988a49004505a3d043156581', class: "xv-font-icon-warenkorb fa-lg fa-fw", "aria-hidden": "true" }), h("span", { key: 'e6126e3e51b1231a1891587e9a9db67826050c41', class: "hidden-xs hidden-sm" }, "\u00A0Warenkorb\u00A0"), h("xv-tag-v2", { key: 'ab99fd2a26f5f15956e4d62245524864b0a404c9', id: "shopping-cart-items-badge", size: 'sm', bg: "var(--background)", color: "var(--icon-interactive)" }, ((_13 = (_12 = this.metaNav) === null || _12 === void 0 ? void 0 : _12.Cart) === null || _13 === void 0 ? void 0 : _13.NumberOfItems) || 0)))))))), h("div", { key: '2fd5f56bd12cd30e5db5931d58be0265ba34b4f6', class: "collapse hidden-md hidden-lg", id: "search-collapse" }, h("div", { key: 'fdbd352cc74621c9da66c4a4407ad5bd5a0c299d', class: "container" }, h("form", { key: '395d38cee92b9433dc19323c7eec4a2c4f2e3f7d', action: "/de-de/media/search", class: "navbar-form", method: "get", role: "search" }, h("div", { key: '9f5077b7ffda17da8994fe31114a500b6c0e47f4', class: "input-group" }, h("input", { key: 'a546fef6304e0d60d4cd4e29d6d6d2e0e8924382', class: "form-control", name: "Q", placeholder: "Suche", type: "text", autocomplete: "off" }), h("span", { key: '2d809b38c84bc16ff152c3fc757a945d9f9f02ff', class: "input-group-btn force-full-width" }, h("button", { key: 'c81fc700db6663423436c5f2cc3b94454d4e7bf8', class: "btn btn-default search-addon", type: "submit" }, h("i", { key: '22042e265cbc2c0857f721f6c53b34ad21373600', class: "fa fa-search", "aria-hidden": "true" }))))))), isMegaMenuEnabled && (h("div", { key: '5ec06c26bc28f185434038b3f662bc280c817826', class: "xv-header-nav xv-header-nav--shadow" }, h("div", { key: 'af1f96a72ea35e82722174b17a99ca1bdeea3dc2', class: "container" }, h("xv-mega-menu", { key: '35a1d19e30f45ca9e04fdf554c457edff7f01ba3', open: this.mobMenuOpen, onOpenChange: this.closeMobMenu }, ((_14 = this.metaNav) === null || _14 === void 0 ? void 0 : _14.EnableMegaMenuSearch) || isMegaMenuEnabled && (h("div", { key: 'add19e819a3b76cb19529d87c0caf335bf4329cd', slot: "menu-right", innerHTML: this.htmlSearchForm }))))))), !isMegaMenuEnabled && (h("div", { key: '5df9b9aadc2570244ea6d17a8b9793beaec455ee', innerHTML: this.htmlContent })), ((_15 = this.metaNav) === null || _15 === void 0 ? void 0 : _15.EnableMegaMenuSearch) || isMegaMenuEnabled && (h("ul", { key: '052b13f3d38352d56d18ad3b49958ceb37fca69a', class: "ui-autocomplete ui-front ui-menu ui-widget ui-widget-content ui-corner-all", id: "xv-search-suggestions", style: {
|
|
78227
78241
|
width: `${(_16 = this.listPosition) === null || _16 === void 0 ? void 0 : _16.width}px`,
|
|
78228
78242
|
top: `${(_17 = this.listPosition) === null || _17 === void 0 ? void 0 : _17.top}px`,
|
|
78229
78243
|
left: `${(_18 = this.listPosition) === null || _18 === void 0 ? void 0 : _18.left}px`,
|
|
@@ -78271,8 +78285,7 @@ const XvHeader = class {
|
|
|
78271
78285
|
}
|
|
78272
78286
|
const data = await response.json();
|
|
78273
78287
|
if (Array.isArray(data) && data.length > 0) {
|
|
78274
|
-
|
|
78275
|
-
this.notificationsHtml = result;
|
|
78288
|
+
this.notificationsHtml = data.reduce((acc, notification) => acc + ((notification === null || notification === void 0 ? void 0 : notification.template) || ''), '');
|
|
78276
78289
|
this.notificationsCount = data.length;
|
|
78277
78290
|
}
|
|
78278
78291
|
else {
|
|
@@ -78539,56 +78552,33 @@ const XvMegaMenu = class {
|
|
|
78539
78552
|
navActionClick(action) {
|
|
78540
78553
|
window.location.href = action.url;
|
|
78541
78554
|
}
|
|
78555
|
+
getEnvFromHost() {
|
|
78556
|
+
if (typeof window === 'undefined')
|
|
78557
|
+
return 'qa';
|
|
78558
|
+
const host = window.location.hostname;
|
|
78559
|
+
if (host.includes('localhost') || host.includes('127.0.0.1'))
|
|
78560
|
+
return 'qa';
|
|
78561
|
+
if (host.includes('qa.') || host.includes('komsa-test'))
|
|
78562
|
+
return 'qa';
|
|
78563
|
+
if (host.includes('staging.'))
|
|
78564
|
+
return 'staging';
|
|
78565
|
+
return 'release';
|
|
78566
|
+
}
|
|
78542
78567
|
async fetchMenuData() {
|
|
78543
78568
|
var _a, _b;
|
|
78544
|
-
if (typeof fetch !== 'function')
|
|
78569
|
+
if (typeof window === 'undefined' || typeof fetch !== 'function')
|
|
78545
78570
|
return [];
|
|
78546
78571
|
try {
|
|
78547
|
-
const
|
|
78548
|
-
|
|
78549
|
-
|
|
78550
|
-
const
|
|
78551
|
-
// --- Map hostnames to environment names ---
|
|
78552
|
-
const envMap = {
|
|
78553
|
-
'qa.crossvertise.com': 'qa',
|
|
78554
|
-
'sitefinity-qa.crossvertise.com': 'qa',
|
|
78555
|
-
'sitefinity-staging.crossvertise.com': 'staging',
|
|
78556
|
-
'www.crossvertise.com': 'release',
|
|
78557
|
-
'komsa-test.crossvertise.com': 'qa',
|
|
78558
|
-
'staging.crossvertise.com': 'staging',
|
|
78559
|
-
'market.crossvertise.com': 'release',
|
|
78560
|
-
'allianz.crossvertise.com': 'release',
|
|
78561
|
-
'philips.crossvertise.com': 'release',
|
|
78562
|
-
'komsa.crossvertise.com': 'release',
|
|
78563
|
-
};
|
|
78564
|
-
const matchedKey = Object.keys(envMap).find(h => hostname.includes(h));
|
|
78565
|
-
const env = matchedKey ? envMap[matchedKey] : 'qa';
|
|
78566
|
-
const subdomain = hostname.split('.')[0];
|
|
78567
|
-
const shouldUseBlob = subdomain === 'www' || subdomain === 'sitefinity-qa' || subdomain === 'sitefinity-staging' ||
|
|
78568
|
-
subdomain === 'market' ||
|
|
78569
|
-
(['qa', 'staging'].includes(env) && ((_a = getMetaNav()) === null || _a === void 0 ? void 0 : _a.WhitelabelName) === 'Xv');
|
|
78570
|
-
let dataUrl = '';
|
|
78571
|
-
if (shouldUseBlob) {
|
|
78572
|
-
// --- Use blob storage ---
|
|
78573
|
-
const blobEnv = env === 'qa' || env === 'staging' ? env : 'release';
|
|
78574
|
-
dataUrl = `https://xvsitefinitystorage.blob.core.windows.net/nav-sync-${blobEnv}/mega-menu.json`;
|
|
78575
|
-
}
|
|
78576
|
-
else {
|
|
78577
|
-
// --- Use API Front Door ---
|
|
78578
|
-
const isLocalhost = /^(localhost|127\.0\.0\.1)$/i.test(hostname);
|
|
78579
|
-
const baseUrl = isLocalhost
|
|
78580
|
-
? 'https://qa.crossvertise.com'
|
|
78581
|
-
: window.location.origin;
|
|
78582
|
-
dataUrl = `${baseUrl}/api-fd/v1/home/menu`;
|
|
78583
|
-
}
|
|
78584
|
-
// --- Fetch menu data ---
|
|
78585
|
-
const response = await fetch(dataUrl, {
|
|
78572
|
+
const url = (((_a = getMetaNav()) === null || _a === void 0 ? void 0 : _a.WhitelabelName) || 'Xv') === 'Xv'
|
|
78573
|
+
? `https://xvsitefinitystorage.blob.core.windows.net/nav-sync-${this.getEnvFromHost()}/mega-menu.json`
|
|
78574
|
+
: `${window.location.origin}/api-fd/v1/home/menu`;
|
|
78575
|
+
const response = await fetch(url, {
|
|
78586
78576
|
method: 'GET',
|
|
78587
78577
|
headers: { Accept: 'application/json' },
|
|
78588
|
-
credentials: 'include'
|
|
78578
|
+
credentials: 'include'
|
|
78589
78579
|
});
|
|
78590
78580
|
if (!response.ok) {
|
|
78591
|
-
console.error(`Failed
|
|
78581
|
+
console.error(`[fetchMenuData] Failed (${response.status}): ${url}`, response);
|
|
78592
78582
|
return [];
|
|
78593
78583
|
}
|
|
78594
78584
|
const result = await response.json();
|
|
@@ -78600,13 +78590,13 @@ const XvMegaMenu = class {
|
|
|
78600
78590
|
}
|
|
78601
78591
|
}
|
|
78602
78592
|
render() {
|
|
78603
|
-
return (h(Host, { key: '
|
|
78593
|
+
return (h(Host, { key: '5d6f4d453649abf5926c9fe715886b0e06ae5362' }, h("nav", { key: '2e8f702d25602ac8f063bba5c0165196cc177907', class: { 'xv-menu': true, open: this.open } }, this.loading && (h("div", { key: '760c1f7ff7f4b8d08cde9ab35551a5e5c7f81747', class: { 'xv-menu-loader': true, open: this.open } }, h("xv-loader-v2", { key: '5cd25ebb6e9a9bcd57d06c619f56b65cf81f4dce' }))), h("ul", { key: '14b36cbde6a58bd28a3ae5474a412688ad38ffb4', class: { menu: true, open: this.open } }, this.menuItems.map((menuItem) => {
|
|
78604
78594
|
var _a;
|
|
78605
78595
|
return (h("li", { class: { 'menu-item': true, active: menuItem.id === ((_a = this.activeItem) === null || _a === void 0 ? void 0 : _a.id) } }, h("p", { class: "menu-item-label", onClick: () => this.setActiveItem(menuItem) }, menuItem === null || menuItem === void 0 ? void 0 : menuItem.label), h("ul", { class: "menu-item-groups" }, menuItem.groups.map((group) => {
|
|
78606
78596
|
var _a, _b;
|
|
78607
78597
|
return (h("li", { class: { group: true, active: ((_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id) === group.id } }, group.label && (h("div", { class: "group-label", onClick: () => this.setActiveGroup(group) }, h("span", { class: "group-label-text" }, group.label), h("span", { class: "group-label-icon" }))), h("div", { class: "group-container" }, h("div", { class: { 'group-container-absolute': true, noLabel: !group.label && (((_b = menuItem.groups) === null || _b === void 0 ? void 0 : _b.length) || 0) < 2 } }, h("div", { class: "group-menus" }, h("ul", { class: { 'group-menus-categories': true, inline: group.layout === 'inline' } }, group.categories.map((category) => (h("li", { class: "category" }, h("p", { class: "category-label" }, category.label), h("ul", { class: "category-routes" }, category.routes.map((route) => (h("li", { class: "route" }, h("xv-link-v2", { size: "lg", variant: "ghost", href: route.route || '#' }, route.label), route.tag && (h("xv-tag-v2", { class: "route-tag", size: "sm", color: "#161616", bg: "#E0E0E0" }, route.tag)))))))))), h("ul", { class: "group-menus-actions" }, group.actions.map((action) => (h("li", { class: "action" }, action.type === 'link' && (h("xv-link-v2", { variant: "standalone", href: action === null || action === void 0 ? void 0 : action.url }, action.label, h("span", { class: "link-chevron", slot: "icon-right" }, "\u2192"))), action.type === 'button' && h("xv-button-v2", { onClick: () => this.navActionClick(action), block: true, variant: "tertiary" }, action.label)))))), (group === null || group === void 0 ? void 0 : group.card) && (h("div", { class: "group-card" }, h("xv-card-v2", { media: group.card.image, variant: this.isMobile ? 'horizontal' : 'vertical' }, h("h5", { slot: "header", class: "group-card-title" }, group.card.title), h("p", { slot: "body", class: "group-card-desc" }, group.card.description), group.card.linkLabel && (h("xv-link-v2", { slot: "footer", variant: "standalone", href: group.card.linkUrl || '#' }, group.card.linkLabel, h("span", { class: "link-chevron", slot: "icon-right" }, "\u2192"))))))))));
|
|
78608
78598
|
}))));
|
|
78609
|
-
}), h("li", { key: '
|
|
78599
|
+
}), h("li", { key: 'cf826d8de6bf554b050f3c4101ef3ccb1d9c5eae', class: "menu--right" }, h("slot", { key: '830c2392a8700e556d028976698df7c0a6c229ac', name: "menu-right" })), this.open && (h("li", { key: 'b26ec8b245b5adef4bcbbdb7f873b48293989952', class: "menu--backdrop", onClick: () => this.handleClose() }))))));
|
|
78610
78600
|
}
|
|
78611
78601
|
get el() { return getElement(this); }
|
|
78612
78602
|
};
|