xv-webcomponents 1.6.4 → 1.6.5

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.
@@ -19,7 +19,7 @@ var patchBrowser = () => {
19
19
 
20
20
  patchBrowser().then(async (options) => {
21
21
  await appGlobals.globalScripts();
22
- return index.bootstrapLazy([["xv-accordion-v2_45.cjs",[[256,"xv-header",{"metaNav":[32],"orgUnit":[32],"baseUrl":[32],"mobMenuOpen":[32],"suggestions":[32],"suggestionsLoading":[32],"notifications":[32],"showLoginModal":[32]},[[8,"xv:orgUnitChange","handleOrgUnitChange"],[8,"xv:metaNav-update","metaNavUpdate"]]],[257,"xv-dropdown-v2",{"search":[516],"disabled":[516],"multiple":[516],"required":[516],"loading":[516],"readonly":[516],"open":[1540],"error":[520],"label":[513],"helper":[513],"warning":[513],"placeholder":[513],"info":[1],"searchPlaceholder":[1,"search-placeholder"],"size":[1],"defaultValue":[8,"default-value"],"variant":[1],"selected":[32],"selectedMap":[32],"searchQuery":[32]},[[0,"itemSelected","handleItemSelected"]],{"open":["openChangeHandle"],"multiple":["multipleChangeHandle"]}],[257,"xv-data-table-row",{"variant":[1],"name":[1025],"collapse":[1],"collapsable":[516],"checked":[1028],"partial":[1028],"hover":[1028],"group":[4],"header":[4],"footer":[4],"disabled":[4],"readonly":[4],"required":[4],"value":[8],"collapsed":[32]}],[321,"xv-datepicker",{"value":[1040],"variant":[1],"label":[1],"helper":[1],"error":[8],"warning":[8],"readonly":[4],"disabled":[4],"loading":[4],"block":[4],"size":[513],"min":[1],"max":[1],"month":[32],"days":[32],"open":[32],"localError":[32]},[[4,"click","handleClickOutside"]],{"open":["openChange"],"month":["getCalendarGrid"],"value":["handleValueChange"]}],[257,"xv-file-uploader",{"label":[1],"description":[1],"addText":[1,"add-text"],"variant":[1],"size":[1],"accept":[16],"buttonVariant":[1,"button-variant"],"maxFileSizeMB":[2,"max-file-size-mb"],"maxFiles":[2,"max-files"],"multiple":[4],"disabled":[516],"files":[1040],"loadingStates":[1040,"loading-states"],"error":[1537],"errors":[1040],"dragActive":[32],"errorMessages":[32],"clearFiles":[64]}],[321,"xv-number-input-v2",{"label":[1],"placeholder":[513],"name":[513],"value":[1538],"helper":[1],"error":[8],"warning":[8],"step":[2],"max":[2],"min":[2],"readonly":[4],"disabled":[4],"loading":[4],"block":[4],"size":[513]}],[257,"xv-pagination",{"total":[2],"page":[1026],"size":[1],"block":[4],"variant":[1],"responsiveVariant":[16,"responsive-variant"],"totalItems":[2,"total-items"],"itemsPerPage":[32],"currentVariant":[32]}],[257,"xv-table-v2-row",{"checked":[1540],"partial":[1540],"name":[1537],"value":[520],"hover":[1540],"readonly":[516],"required":[516],"disabled":[516],"header":[516],"variant":[1537]},null,{"checked":["checkedChangeHandle"]}],[321,"xv-textarea",{"value":[1025],"name":[1],"label":[1],"placeholder":[1],"helper":[1],"info":[1],"error":[8],"warning":[8],"disabled":[4],"readonly":[4],"block":[4],"counterHide":[4,"counter-hide"],"noResize":[4,"no-resize"],"loading":[4],"max":[2],"rows":[2],"size":[513]}],[257,"xv-data-table",{"size":[1],"block":[4],"loading":[4],"columnWidths":[16,"column-widths"],"hover":[4]}],[257,"xv-dropdown-v2-item",{"disabled":[4],"value":[1544],"selected":[1540],"multiple":[516],"size":[513]},[[0,"click","handleClick"]]],[257,"xv-image-viewer",{"src":[1],"fullscreenSrc":[1,"fullscreen-src"],"alt":[1],"placeholder":[1],"lazy":[4],"isFullscreen":[32],"loaded":[32],"fullscreenLoaded":[32]}],[257,"xv-tab-v2",{"label":[513],"disabled":[516],"loading":[516],"name":[8]}],[257,"xv-table-v2",{"size":[513],"hover":[516],"loading":[516],"colsSize":[16,"colssize"],"selected":[32],"selectedCount":[32]},[[0,"checkedChange","handleCheckedChange"]],{"colsSize":["setColsSizeTemplate"]}],[257,"xv-tabs-v2",{"active":[1544],"loading":[516],"variant":[1],"emptyMessage":[1,"empty-message"],"hideSingleTab":[4,"hide-single-tab"],"tabElements":[32],"showArrows":[32]},[[9,"resize","updateArrowVisibility"]]],[257,"xv-tag-combobox",{"options":[16],"label":[1],"size":[1],"placeholder":[1],"allowCreate":[4,"allow-create"],"maxSuggestions":[2,"max-suggestions"],"disabled":[4],"readonly":[4],"error":[8],"warning":[8],"value":[16],"normalizedOptions":[32],"selected":[32],"inputValue":[32],"open":[32],"filtered":[32],"highlighted":[32],"focusInput":[64],"clear":[64]},null,{"options":["watchOptions"],"value":["watchValue"]}],[257,"xv-accordion-v2",{"multiple":[4],"xvId":[1,"xv-id"],"value":[1025],"opened":[32],"toggleItem":[64]}],[257,"xv-accordion-v2-item",{"disabled":[4],"label":[1],"value":[1],"isOpen":[32]},[[16,"accordionChange","handleAccordionChange"]]],[260,"xv-breadcrumbs-v2"],[257,"xv-data-table-collapse",{"collapsed":[1540],"setCollapsed":[64]}],[256,"xv-footer",{"data":[32]},[[8,"xv:metaNav-update","handleLoadData"]]],[257,"xv-progress-indicator-v2",{"progress":[514],"variant":[1],"size":[1]},null,{"progress":["updateChildItems"]}],[257,"xv-progress-indicator-v2-item",{"status":[1]}],[324,"xv-radio-v2",{"name":[1],"value":[1],"label":[1],"checked":[1028],"indeterminate":[4],"block":[4],"disabled":[4],"required":[4],"reverse":[4],"readonly":[4],"error":[8],"warning":[520],"size":[1]},null,{"checked":["onCheckedChange"]}],[321,"xv-slider-v2",{"label":[1],"name":[1],"min":[2],"max":[2],"value":[1026],"step":[2],"disabled":[4],"readonly":[4],"notEditable":[4,"not-editable"]}],[257,"xv-table-v2-expand",{"open":[1540],"disabled":[516]}],[260,"xv-tile",{"variant":[513],"label":[1],"error":[4],"multiple":[4],"disabled":[4],"block":[4],"name":[1],"value":[1025],"checked":[1028]},[[4,"tileChange","tileChangeHandle"],[0,"click","handleClick"]]],[321,"xv-toggle",{"label":[1],"value":[1],"name":[1],"checked":[1540],"disabled":[4],"readonly":[4],"size":[513],"block":[4]}],[257,"xv-login-modal",{"visible":[4],"urls":[32],"loading":[32],"errorMessage":[32]}],[257,"xv-mega-menu",{"open":[1540],"loading":[32],"activeItem":[32],"activeGroup":[32],"menuItems":[32]},[[4,"click","handleClickOutside"]]],[257,"xv-data-table-cell",{"name":[1025],"sort":[1537],"multiline":[2],"width":[1],"align":[1],"tooltip":[1]},[[0,"click","handleSort"]]],[257,"xv-overflow-menu-v2",{"open":[1540],"disabled":[516],"position":[1],"size":[1],"tooltip":[1]},[[0,"keydown","handleKeyDown"]],{"open":["openChangeHandle"]}],[257,"xv-overflow-menu-v2-item",{"disabled":[516],"value":[520],"variant":[513],"clickable":[4]},[[0,"click","handleClick"]]],[257,"xv-table-v2-cell",{"multiline":[516],"name":[1537],"align":[513],"sort":[1537]},[[0,"click","handleSort"]]],[257,"xv-toggle-tip",{"open":[1540],"autoSize":[516,"auto-size"],"block":[4],"position":[1],"setPopover":[64]},[[4,"click","handleClickOutside"],[0,"keydown","handleKeyDown"]],{"open":["openChangeHandle"]}],[257,"xv-modal-v2",{"open":[1540],"permanent":[516],"size":[513],"overflow":[516],"loading":[4],"openModal":[64],"closeModal":[64]}],[257,"xv-card-v2",{"variant":[1],"media":[1],"header":[1],"body":[1],"footer":[1]}],[257,"xv-notification-v2",{"variant":[513],"dismissible":[516]}],[321,"xv-text-input-v2",{"type":[1],"label":[1],"placeholder":[513],"name":[513],"value":[1025],"autocomplete":[1],"helper":[1],"error":[8],"warning":[8],"readonly":[4],"disabled":[4],"loading":[4],"block":[516],"size":[513],"isPasswordVisible":[32]}],[257,"xv-link-v2",{"href":[1],"target":[1],"disabled":[4],"size":[1],"variant":[1]}],[257,"xv-tag-v2",{"size":[1],"color":[1],"bg":[1],"disabled":[4],"closeable":[4]}],[321,"xv-checkbox-v2",{"checked":[1540],"indeterminate":[516],"disabled":[516],"name":[513],"value":[513],"readonly":[516],"required":[516],"partial":[516],"label":[1],"size":[513],"error":[520],"hasFocus":[32]},null,{"checked":["onCheckedChange"]}],[260,"xv-tooltip-v2",{"message":[1],"position":[1],"block":[4],"dashed":[4]},[[1,"mouseenter","onMouseEnter"],[1,"mouseleave","onMouseLeave"]]],[321,"xv-button-v2",{"value":[1],"name":[1],"label":[513],"variant":[513],"size":[513],"disabled":[516],"loading":[516],"block":[516],"type":[513],"hasLeftIcon":[32],"hasRightIcon":[32],"hasContent":[32]}],[257,"xv-loader-v2",{"show":[4],"variant":[1],"size":[1]}]]]], options);
22
+ return index.bootstrapLazy([["xv-accordion-v2_45.cjs",[[256,"xv-header",{"metaNav":[32],"orgUnit":[32],"baseUrl":[32],"loading":[32],"mobMenuOpen":[32],"suggestions":[32],"suggestionsLoading":[32],"notifications":[32],"showLoginModal":[32]},[[8,"xv:orgUnitChange","handleOrgUnitChange"],[8,"xv:metaNav-update","metaNavUpdate"]]],[257,"xv-dropdown-v2",{"search":[516],"disabled":[516],"multiple":[516],"required":[516],"loading":[516],"readonly":[516],"open":[1540],"error":[520],"label":[513],"helper":[513],"warning":[513],"placeholder":[513],"info":[1],"searchPlaceholder":[1,"search-placeholder"],"size":[1],"defaultValue":[8,"default-value"],"variant":[1],"selected":[32],"selectedMap":[32],"searchQuery":[32]},[[0,"itemSelected","handleItemSelected"]],{"open":["openChangeHandle"],"multiple":["multipleChangeHandle"]}],[257,"xv-data-table-row",{"variant":[1],"name":[1025],"collapse":[1],"collapsable":[516],"checked":[1028],"partial":[1028],"hover":[1028],"group":[4],"header":[4],"footer":[4],"disabled":[4],"readonly":[4],"required":[4],"value":[8],"collapsed":[32]}],[321,"xv-datepicker",{"value":[1040],"variant":[1],"label":[1],"helper":[1],"error":[8],"warning":[8],"readonly":[4],"disabled":[4],"loading":[4],"block":[4],"size":[513],"min":[1],"max":[1],"month":[32],"days":[32],"open":[32],"localError":[32]},[[4,"click","handleClickOutside"]],{"open":["openChange"],"month":["getCalendarGrid"],"value":["handleValueChange"]}],[257,"xv-file-uploader",{"label":[1],"description":[1],"addText":[1,"add-text"],"variant":[1],"size":[1],"accept":[16],"buttonVariant":[1,"button-variant"],"maxFileSizeMB":[2,"max-file-size-mb"],"maxFiles":[2,"max-files"],"multiple":[4],"disabled":[516],"files":[1040],"loadingStates":[1040,"loading-states"],"error":[1537],"errors":[1040],"dragActive":[32],"errorMessages":[32],"clearFiles":[64]}],[321,"xv-number-input-v2",{"label":[1],"placeholder":[513],"name":[513],"value":[1538],"helper":[1],"error":[8],"warning":[8],"step":[2],"max":[2],"min":[2],"readonly":[4],"disabled":[4],"loading":[4],"block":[4],"size":[513]}],[257,"xv-pagination",{"total":[2],"page":[1026],"size":[1],"block":[4],"variant":[1],"responsiveVariant":[16,"responsive-variant"],"totalItems":[2,"total-items"],"itemsPerPage":[32],"currentVariant":[32]}],[257,"xv-table-v2-row",{"checked":[1540],"partial":[1540],"name":[1537],"value":[520],"hover":[1540],"readonly":[516],"required":[516],"disabled":[516],"header":[516],"variant":[1537]},null,{"checked":["checkedChangeHandle"]}],[321,"xv-textarea",{"value":[1025],"name":[1],"label":[1],"placeholder":[1],"helper":[1],"info":[1],"error":[8],"warning":[8],"disabled":[4],"readonly":[4],"block":[4],"counterHide":[4,"counter-hide"],"noResize":[4,"no-resize"],"loading":[4],"max":[2],"rows":[2],"size":[513]}],[257,"xv-data-table",{"size":[1],"block":[4],"loading":[4],"columnWidths":[16,"column-widths"],"hover":[4]}],[257,"xv-dropdown-v2-item",{"disabled":[4],"value":[1544],"selected":[1540],"multiple":[516],"size":[513]},[[0,"click","handleClick"]]],[257,"xv-image-viewer",{"src":[1],"fullscreenSrc":[1,"fullscreen-src"],"alt":[1],"placeholder":[1],"lazy":[4],"isFullscreen":[32],"loaded":[32],"fullscreenLoaded":[32]}],[257,"xv-tab-v2",{"label":[513],"disabled":[516],"loading":[516],"name":[8]}],[257,"xv-table-v2",{"size":[513],"hover":[516],"loading":[516],"colsSize":[16,"colssize"],"selected":[32],"selectedCount":[32]},[[0,"checkedChange","handleCheckedChange"]],{"colsSize":["setColsSizeTemplate"]}],[257,"xv-tabs-v2",{"active":[1544],"loading":[516],"variant":[1],"emptyMessage":[1,"empty-message"],"hideSingleTab":[4,"hide-single-tab"],"tabElements":[32],"showArrows":[32]},[[9,"resize","updateArrowVisibility"]]],[257,"xv-tag-combobox",{"options":[16],"label":[1],"size":[1],"placeholder":[1],"allowCreate":[4,"allow-create"],"maxSuggestions":[2,"max-suggestions"],"disabled":[4],"readonly":[4],"error":[8],"warning":[8],"value":[16],"normalizedOptions":[32],"selected":[32],"inputValue":[32],"open":[32],"filtered":[32],"highlighted":[32],"focusInput":[64],"clear":[64]},null,{"options":["watchOptions"],"value":["watchValue"]}],[257,"xv-accordion-v2",{"multiple":[4],"xvId":[1,"xv-id"],"value":[1025],"opened":[32],"toggleItem":[64]}],[257,"xv-accordion-v2-item",{"disabled":[4],"label":[1],"value":[1],"isOpen":[32]},[[16,"accordionChange","handleAccordionChange"]]],[260,"xv-breadcrumbs-v2"],[257,"xv-data-table-collapse",{"collapsed":[1540],"setCollapsed":[64]}],[256,"xv-footer",{"data":[32]},[[8,"xv:metaNav-update","handleLoadData"]]],[257,"xv-progress-indicator-v2",{"progress":[514],"variant":[1],"size":[1]},null,{"progress":["updateChildItems"]}],[257,"xv-progress-indicator-v2-item",{"status":[1]}],[324,"xv-radio-v2",{"name":[1],"value":[1],"label":[1],"checked":[1028],"indeterminate":[4],"block":[4],"disabled":[4],"required":[4],"reverse":[4],"readonly":[4],"error":[8],"warning":[520],"size":[1]},null,{"checked":["onCheckedChange"]}],[321,"xv-slider-v2",{"label":[1],"name":[1],"min":[2],"max":[2],"value":[1026],"step":[2],"disabled":[4],"readonly":[4],"notEditable":[4,"not-editable"]}],[257,"xv-table-v2-expand",{"open":[1540],"disabled":[516]}],[260,"xv-tile",{"variant":[513],"label":[1],"error":[4],"multiple":[4],"disabled":[4],"block":[4],"name":[1],"value":[1025],"checked":[1028]},[[4,"tileChange","tileChangeHandle"],[0,"click","handleClick"]]],[321,"xv-toggle",{"label":[1],"value":[1],"name":[1],"checked":[1540],"disabled":[4],"readonly":[4],"size":[513],"block":[4]}],[257,"xv-login-modal",{"visible":[4],"urls":[32],"loading":[32],"errorMessage":[32]}],[257,"xv-mega-menu",{"open":[1540],"loading":[1028],"activeItem":[32],"activeGroup":[32],"menuItems":[32]},[[4,"click","handleClickOutside"]],{"loading":["fetchMenuData"]}],[257,"xv-data-table-cell",{"name":[1025],"sort":[1537],"multiline":[2],"width":[1],"align":[1],"tooltip":[1]},[[0,"click","handleSort"]]],[257,"xv-overflow-menu-v2",{"open":[1540],"disabled":[516],"position":[1],"size":[1],"tooltip":[1]},[[0,"keydown","handleKeyDown"]],{"open":["openChangeHandle"]}],[257,"xv-overflow-menu-v2-item",{"disabled":[516],"value":[520],"variant":[513],"clickable":[4]},[[0,"click","handleClick"]]],[257,"xv-table-v2-cell",{"multiline":[516],"name":[1537],"align":[513],"sort":[1537]},[[0,"click","handleSort"]]],[257,"xv-toggle-tip",{"open":[1540],"autoSize":[516,"auto-size"],"block":[4],"position":[1],"setPopover":[64]},[[4,"click","handleClickOutside"],[0,"keydown","handleKeyDown"]],{"open":["openChangeHandle"]}],[257,"xv-modal-v2",{"open":[1540],"permanent":[516],"size":[513],"overflow":[516],"loading":[4],"openModal":[64],"closeModal":[64]}],[257,"xv-card-v2",{"variant":[1],"media":[1],"header":[1],"body":[1],"footer":[1]}],[257,"xv-notification-v2",{"variant":[513],"dismissible":[516]}],[321,"xv-text-input-v2",{"type":[1],"label":[1],"placeholder":[513],"name":[513],"value":[1025],"autocomplete":[1],"helper":[1],"error":[8],"warning":[8],"readonly":[4],"disabled":[4],"loading":[4],"block":[516],"size":[513],"isPasswordVisible":[32]}],[257,"xv-link-v2",{"href":[1],"target":[1],"disabled":[4],"size":[1],"variant":[1]}],[257,"xv-tag-v2",{"size":[1],"color":[1],"bg":[1],"disabled":[4],"closeable":[4]}],[321,"xv-checkbox-v2",{"checked":[1540],"indeterminate":[516],"disabled":[516],"name":[513],"value":[513],"readonly":[516],"required":[516],"partial":[516],"label":[1],"size":[513],"error":[520],"hasFocus":[32]},null,{"checked":["onCheckedChange"]}],[260,"xv-tooltip-v2",{"message":[1],"position":[1],"block":[4],"dashed":[4]},[[1,"mouseenter","onMouseEnter"],[1,"mouseleave","onMouseLeave"]]],[321,"xv-button-v2",{"value":[1],"name":[1],"label":[513],"variant":[513],"size":[513],"disabled":[516],"loading":[516],"block":[516],"type":[513],"hasLeftIcon":[32],"hasRightIcon":[32],"hasContent":[32]}],[257,"xv-loader-v2",{"show":[4],"variant":[1],"size":[1]}]]]], options);
23
23
  });
24
24
 
25
25
  exports.setNonce = index.setNonce;
@@ -22770,7 +22770,7 @@ header.header {
22770
22770
  top: 0;
22771
22771
  }
22772
22772
  header.header .header-wrapper {
22773
- width: 100vw;
22773
+ width: min(100vw - 15px, 100%);
22774
22774
  padding-top: var(--spacing-04);
22775
22775
  background-color: var(--background, #fff);
22776
22776
  box-shadow: 1px 1px 0 0 rgba(39, 52, 53, 0.15), 0 3px 2px 0 rgba(39, 52, 53, 0.3);
@@ -22795,6 +22795,12 @@ header.header .header-top--left {
22795
22795
  header.header .header-top--left img {
22796
22796
  width: 100%;
22797
22797
  max-height: 26px;
22798
+ min-width: 181px;
22799
+ }
22800
+ @media screen and (max-width: 990px) {
22801
+ header.header .header-top--left img {
22802
+ min-width: 26px;
22803
+ }
22798
22804
  }
22799
22805
  header.header .header-top--left .menu-btn {
22800
22806
  display: none;
@@ -22862,9 +22868,9 @@ header.header .header-top--right .counter-badge--absolute {
22862
22868
  right: 0;
22863
22869
  }
22864
22870
  header.header .header-top--right .counter-badge::part(details-content) {
22865
- padding: 0;
22871
+ padding: 1px;
22866
22872
  line-height: 1;
22867
- width: 16px;
22873
+ min-width: 16px;
22868
22874
  height: 16px;
22869
22875
  font-size: 10px;
22870
22876
  text-align: center;
@@ -7,6 +7,7 @@ export class XvHeader {
7
7
  constructor() {
8
8
  this.orgUnit = '';
9
9
  this.baseUrl = '';
10
+ this.loading = false;
10
11
  // region Helpers
11
12
  this.mobMenuOpen = false;
12
13
  this.toggleMobMenu = () => {
@@ -101,10 +102,8 @@ export class XvHeader {
101
102
  void this.initHeader();
102
103
  }
103
104
  async initHeader() {
104
- var _a, _b;
105
105
  try {
106
- if ((_b = (_a = getMetaNav()) === null || _a === void 0 ? void 0 : _a.User) === null || _b === void 0 ? void 0 : _b.Id)
107
- return;
106
+ this.loading = true;
108
107
  const response = await fetch(`${this.baseUrl}/de-de/home/getpersonalareajson`, {
109
108
  method: 'POST',
110
109
  credentials: "include",
@@ -119,10 +118,11 @@ export class XvHeader {
119
118
  }
120
119
  finally {
121
120
  this.metaNavUpdate();
121
+ this.loading = false;
122
122
  }
123
123
  }
124
124
  _renderSearch() {
125
- return (h("li", { class: "search-form" }, h("form", { action: `${this.baseUrl}/de-de/media/search`, method: "get", role: "search" }, h("input", { onKeyDown: this.handleSearchKeydown, onInput: debounce(this.handleSearch, 700), type: "search", name: "Q", placeholder: "Suchen", title: "Dr\u00FCcken Sie die 'Enter' zum 'Suchen' oder Escape zum Zur\u00FCcksetzen", autoComplete: "off" }), h("xv-button-v2", { onClick: this.handleSearchOpen, onMouseDown: this.handlePreventEvent, type: "button", variant: "ghost", size: SIZE_VAR.MD }, h("i", { class: "header-icon far fa-search" })), h("xv-button-v2", { type: "submit", variant: "ghost", size: SIZE_VAR.MD }, h("i", { class: "header-icon far fa-search" }))), h("ul", { class: { 'search-form-suggestions': true, loading: this.suggestionsLoading } }, this.suggestions.map((suggestion) => (h("li", null, h("xv-link-v2", { variant: "standalone", href: `https://www.crossvertise.com/${suggestion.page_link}` }, suggestion.title_de)))), !this.suggestions.length && h("li", { class: "text-center xv-helper-text-02" }, "Keine Daten gefunden"))));
125
+ return (h("li", { class: "search-form" }, h("form", { action: `${this.baseUrl}/de-de/media/search`, method: "get", role: "search" }, h("input", { onKeyDown: this.handleSearchKeydown, onInput: debounce(this.handleSearch, 700), type: "search", name: "Q", placeholder: "Suchen", title: "Dr\u00FCcken Sie die 'Enter' zum 'Suchen' oder Escape zum Zur\u00FCcksetzen", autoComplete: "off" }), h("xv-button-v2", { onClick: this.handleSearchOpen, onMouseDown: this.handlePreventEvent, type: "button", variant: "ghost", size: SIZE_VAR.MD }, h("i", { class: "header-icon far fa-search" })), h("xv-button-v2", { type: "submit", variant: "ghost", size: SIZE_VAR.MD }, h("i", { class: "header-icon far fa-search" }))), h("ul", { class: { 'search-form-suggestions': true, loading: this.suggestionsLoading } }, this.suggestions.map((suggestion) => (h("li", null, h("xv-link-v2", { variant: "standalone", href: `https://www.crossvertise.com${suggestion.page_link}` }, suggestion.title_de)))), !this.suggestions.length && h("li", { class: "text-center xv-helper-text-02" }, "Keine Daten gefunden"))));
126
126
  }
127
127
  // endregion
128
128
  // region ImpersonationInfo
@@ -175,7 +175,7 @@ export class XvHeader {
175
175
  render() {
176
176
  var _a, _b, _c, _d, _e;
177
177
  const isXvBrand = (((_a = this.metaNav) === null || _a === void 0 ? void 0 : _a['WhitelabelName']) || 'Xv') === 'Xv';
178
- return (h("header", { key: 'bda607874395a3f10b0cb336cddd748587b4f7b0', class: "header" }, h("div", { key: '943417e8c6825076c3ce9d94dd3e929f853b2eec', class: "header-wrapper" }, h("div", { key: '59df1ef80a243bc890715af9fc9dd4e5f12ab5d4', class: "container" }, h("div", { key: '6b4587b07e3352f42ffacab928a4340c95157b22', class: "header-top" }, h("div", { key: '2c8e8ecbdd15afa9edfd52aae43055352f7a1380', class: "header-top--left" }, h("xv-button-v2", { key: '466d12b165e09c6b87b2e91df454680eedaf699f', class: "menu-btn", variant: "ghost", onClick: this.toggleMobMenu }, h("i", { key: '2f65fe6e404979004ee4c3fd2e36768b7fee22c7', slot: "icon-left", class: { 'fa': true, 'fa-times': this.mobMenuOpen, 'fa-bars': !this.mobMenuOpen } })), h("a", { key: 'c2a337c706e1cb009ce00bebc7dbabba0bba5a3f', href: `${window.location.origin}/` }, h("picture", { key: '1278b93a6c5619461f159491d69a0df9f5974f58' }, h("source", { key: '1c7bc0771b0efe933172de20c4190ea11b5ba652', srcSet: ((_b = this.metaNav) === null || _b === void 0 ? void 0 : _b.LogoUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg', media: "(min-width: 990px)" }), h("img", { key: 'd873e12158ce86d85e3dbeb6cb5f0d241114e8ad', src: ((_c = this.metaNav) === null || _c === void 0 ? void 0 : _c.LogoSmallUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg', onError: this.logoFallback, loading: "lazy", alt: "Crossvertise" }))), this.orgUnit && (h("xv-link-v2", { key: 'e3184040453fe93fcd6f6b1e9337bd7fac781b78', class: "header-top--orgUnit", variant: "standalone", href: "/de-de/mycrossvertise" }, this.orgUnit))), h("ul", { key: '4c163570a5c42b0eba30100a326e66f5f0566927', class: "header-top--right" }, this._renderSearch(), this._renderImpersonationInfo(), !((_d = this.metaNav) === null || _d === void 0 ? void 0 : _d.IsManager) && isXvBrand && (h("li", { key: 'b75f98580d7d59650e09a272a468eec78347fd32' }, h("xv-link-v2", { key: '7067cc52e9dbb6337b11db639e1e3b7e94e3f5de', variant: "ghost", href: "https://www.crossvertise.com/ueber-uns/kontakt" }, h("xv-button-v2", { key: '1556760189d2a6a167cdf2a07a713f7067faaf90', variant: "ghost", size: SIZE_VAR.MD }, h("i", { key: '7b1f99d9d4f4425aa7e027bd0d0214a80d880880', class: "header-icon far fa-envelope" }), h("span", { key: '2914116ddd9224f1e000b82a575709fc159f03ba', class: "header-label" }, "Kontakt"))))), this._renderNotifications(), this._renderAccount(), !((_e = this.metaNav) === null || _e === void 0 ? void 0 : _e.IsManager) && isXvBrand && (h("li", { key: '8e5804d5e37760ac7f987c7c730a4a485d3cd9e8' }, h("xv-link-v2", { key: '685534f0a14b53b2793572f9c13e40737058a74c', variant: "ghost", href: "https://help.crossvertise.com" }, h("xv-button-v2", { key: '82e5909d162a2c14fad2656ca9f76ee7962825cf', variant: "ghost", size: SIZE_VAR.MD }, h("i", { key: '42c8853372427e64d0f9b4dda50008cb0bba45f7', class: "header-icon far fa-question-circle" }), h("span", { key: '23b2dc1ebac83f8c8675fc2e38d6ffde2eeb08e4', class: "header-label" }, "Hilfe"))))), this._renderShoppingCart())), h("xv-mega-menu", { key: '11a15f9220045d2f7fa66ce65ec57ccf142e2b66', open: this.mobMenuOpen, onOpenChange: this.closeMobMenu }))), h("xv-login-modal", { key: '1191debd93f7e3a02a55af4855b16569f58285be', visible: this.showLoginModal, onClose: () => this.showLoginModal = false })));
178
+ return (h("header", { key: '3083987960ae75b3c6dd188e17f2cbd9259a7799', class: "header" }, h("div", { key: '7903a7d2119abde3ed1c76fe59a3345a133137fa', class: "header-wrapper" }, h("div", { key: 'de17a283ba588a6186174c0a55345e45d70f3c91', class: "container" }, h("div", { key: '033c60ad44c2112c15b7a07143e573de0c843160', class: "header-top" }, h("div", { key: 'a61cf9c14a93be3667b6f9ddefc593f008e17a4e', class: "header-top--left" }, h("xv-button-v2", { key: 'dd1764f0fef171bb43e808acab92fe533f8ed3ed', class: "menu-btn", variant: "ghost", onClick: this.toggleMobMenu }, h("i", { key: 'ed703fdca492ce4345f9a708a6649f7b84bcca7e', slot: "icon-left", class: { 'fa': true, 'fa-times': this.mobMenuOpen, 'fa-bars': !this.mobMenuOpen } })), h("a", { key: '2c7d54294c44b8bed354b633a2183c74777ddcab', href: `${window.location.origin}/` }, h("picture", { key: '407f00bea842daac9f2ad614ed0c4d68a827123f' }, h("source", { key: '10ebce97d743610ed994168e2e5dc86b9ae90df8', srcSet: ((_b = this.metaNav) === null || _b === void 0 ? void 0 : _b.LogoUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg', media: "(min-width: 990px)" }), h("img", { key: '560f193da60a94c784ec746c093b00bdd4851e97', src: ((_c = this.metaNav) === null || _c === void 0 ? void 0 : _c.LogoSmallUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg', onError: this.logoFallback, loading: "lazy", alt: "Crossvertise" }))), this.orgUnit && (h("xv-link-v2", { key: 'ce3b8159272462f078e355f990c4f259adbe9b48', class: "header-top--orgUnit", variant: "standalone", href: "/de-de/mycrossvertise" }, this.orgUnit))), h("ul", { key: 'a080aa9e03a0bda3fcc23eddead1958927368f89', class: "header-top--right" }, this._renderSearch(), this._renderImpersonationInfo(), !((_d = this.metaNav) === null || _d === void 0 ? void 0 : _d.IsManager) && isXvBrand && (h("li", { key: '3304a2ec14ff14586f490a4af3fe3672e10a6421' }, h("xv-link-v2", { key: '5b1496bd2467f00feec15539c21666ac22a38630', variant: "ghost", href: "https://www.crossvertise.com/ueber-uns/kontakt" }, h("xv-button-v2", { key: '969bcbe97dfef5416f1e8cbaf288c14fb581638c', variant: "ghost", size: SIZE_VAR.MD }, h("i", { key: 'aa4776b9b4a2a1b32fdc3c2b9f15364545643325', class: "header-icon far fa-envelope" }), h("span", { key: '9a584f8df6e3734dac8e8f45f20d20b1039e67ad', class: "header-label" }, "Kontakt"))))), this._renderNotifications(), this._renderAccount(), !((_e = this.metaNav) === null || _e === void 0 ? void 0 : _e.IsManager) && isXvBrand && (h("li", { key: '3b081c10a2e3da85d8e6e41fb437f5e3760e5701' }, h("xv-link-v2", { key: '20d9f6a3000ab93bd7665863038a6c1fe80f35a5', variant: "ghost", href: "https://help.crossvertise.com" }, h("xv-button-v2", { key: 'af79784cdcaaaf976a6e85585b6ea39383c1aeee', variant: "ghost", size: SIZE_VAR.MD }, h("i", { key: 'f298d7ee6d17b30b72dca07edd5ecd0a9a43a416', class: "header-icon far fa-question-circle" }), h("span", { key: 'a12d55813b8cdf6241d53209ba2c46eb809563b0', class: "header-label" }, "Hilfe"))))), this._renderShoppingCart())), h("xv-mega-menu", { key: 'e7445903ba9732167939ce42f3104a09385b6119', loading: this.loading, open: this.mobMenuOpen, onOpenChange: this.closeMobMenu }))), h("xv-login-modal", { key: '608c7eb4ba290a0044a57aa4864935dda4d1295a', visible: this.showLoginModal, onClose: () => this.showLoginModal = false })));
179
179
  }
180
180
  static get is() { return "xv-header"; }
181
181
  static get originalStyleUrls() {
@@ -193,6 +193,7 @@ export class XvHeader {
193
193
  "metaNav": {},
194
194
  "orgUnit": {},
195
195
  "baseUrl": {},
196
+ "loading": {},
196
197
  "mobMenuOpen": {},
197
198
  "suggestions": {},
198
199
  "suggestionsLoading": {},
@@ -1 +1 @@
1
- {"version":3,"file":"xv-header.js","sourceRoot":"","sources":["../../../src/components/xv-header/xv-header.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Event, Component, h, Element, State, Listen, Fragment, EventEmitter } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\nimport { debounce, getBaseUrl, getMetaNav } from '../../utils/utils';\nimport { OverflowMenuVariant } from '../xv-overflow-menu/_vars';\nimport UserSearchIcon from './user-magnifying-glass-regular-full.svg';\n\n@Component({\n tag: 'xv-header',\n styleUrl: 'xv-header.scss',\n})\nexport class XvHeader {\n @Element() el: HTMLElement;\n @State() metaNav: any;\n @State() orgUnit: string = '';\n @State() baseUrl: string = '';\n @Event() xvMetaNavUpdate: EventEmitter;\n\n @Listen('xv:orgUnitChange', { target: 'window'})\n handleOrgUnitChange({ detail: orgUnit }: CustomEvent<string | undefined>) {\n this.orgUnit = orgUnit || '';\n }\n\n @Listen('xv:metaNav-update', { target: 'window' })\n metaNavUpdate() {\n const metaNav = getMetaNav();\n\n if (metaNav) {\n this.metaNav = metaNav;\n this.orgUnit = this.metaNav?.User?.SelectedOrgUnitName || '';\n void this.getNotifications();\n }\n\n console.info('MetaNav was updated', this.metaNav);\n }\n\n componentWillLoad() {\n this.baseUrl = getBaseUrl();\n void this.initHeader();\n }\n\n private async initHeader() {\n try {\n if (getMetaNav()?.User?.Id) return;\n const response = await fetch(`${this.baseUrl}/de-de/home/getpersonalareajson`, {\n method: 'POST',\n credentials:\"include\",\n headers: { 'Content-Type': 'application/json' }\n });\n const metaNav = await response.json();\n this.xvMetaNavUpdate.emit(metaNav);\n localStorage.setItem('metaNav', JSON.stringify(metaNav));\n } catch (error) {\n console.error('Failed to fetch initial Header data:', error?.message, error);\n } finally {\n this.metaNavUpdate();\n }\n }\n\n // region Helpers\n @State() mobMenuOpen: boolean = false;\n\n private readonly toggleMobMenu = () => {\n this.mobMenuOpen = !this.mobMenuOpen;\n }\n\n private readonly closeMobMenu = ({ detail }: CustomEvent<boolean>) => {\n this.mobMenuOpen = !!detail;\n }\n\n private readonly logoFallback = (e: Event) => {\n const img = e.currentTarget as HTMLImageElement;\n const prevSource = img.previousElementSibling as HTMLSourceElement | null;\n const fallbackUrl = 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg';\n\n if (fallbackUrl === img.src) return;\n\n img.onerror = null;\n img.src = fallbackUrl;\n\n if (prevSource?.srcset) {\n prevSource.srcset = 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg';\n }\n };\n // endregion Helpers\n\n // region Search\n @State() suggestions: { title_de: string; page_link: string; source: string }[] = [];\n @State() suggestionsLoading = false;\n\n private handleSearch = async (event: InputEvent) => {\n try {\n this.suggestionsLoading = true;\n const search: string = (event.target as HTMLInputElement).value.trim();\n if (!search) {\n this.suggestions = [];\n return;\n }\n const queryString = new URLSearchParams({\n fuzzy: 'true',\n suggesterName: 'xv-shared-index-live-suggester',\n 'api-version': '2020-06-30',\n search,\n $top: '10',\n $select: 'title_de,page_link,source',\n $orderby: 'source desc',\n }).toString();\n const res = await fetch(\n `https://xv-search.search.windows.net/indexes/xv-shared-index-live/docs/suggest?${queryString}`,\n { headers: { 'Content-Type': 'application/json', 'api-key': '7315DEF1FA0C8B12109B12BA28E517E7' } }\n );\n const data = await res.json();\n this.suggestions = Array.isArray(data.value) ? data.value : [];\n } catch (error) {\n console.log('error', error);\n } finally {\n this.suggestionsLoading = false;\n }\n };\n\n private handleSearchOpen = (event: Event) => {\n const button = event.currentTarget as HTMLElement;\n const form = button.closest('form');\n if (!form) return;\n const input = form.querySelector('input[type=\"search\"]') as HTMLInputElement;\n if (input) input.focus();\n };\n\n private handleSearchKeydown = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return;\n (event.currentTarget as HTMLInputElement)?.blur();\n this.suggestions = [];\n };\n\n private handlePreventEvent = (e: Event) => e.preventDefault();\n\n private _renderSearch() {\n return (\n <li class=\"search-form\">\n <form action={`${this.baseUrl}/de-de/media/search`} method=\"get\" role=\"search\">\n <input onKeyDown={this.handleSearchKeydown}\n onInput={debounce(this.handleSearch, 700)}\n type=\"search\"\n name=\"Q\"\n placeholder=\"Suchen\"\n title=\"Drücken Sie die 'Enter' zum 'Suchen' oder Escape zum Zurücksetzen\"\n autoComplete=\"off\" />\n <xv-button-v2 onClick={this.handleSearchOpen}\n onMouseDown={this.handlePreventEvent}\n type=\"button\"\n variant=\"ghost\"\n size={SIZE_VAR.MD}><i class=\"header-icon far fa-search\" /></xv-button-v2>\n <xv-button-v2 type=\"submit\" variant=\"ghost\" size={SIZE_VAR.MD}>\n <i class=\"header-icon far fa-search\" />\n </xv-button-v2>\n </form>\n <ul class={{ 'search-form-suggestions': true, loading: this.suggestionsLoading }}>\n {this.suggestions.map((suggestion) => (\n <li>\n <xv-link-v2\n variant=\"standalone\"\n href={`https://www.crossvertise.com/${suggestion.page_link}`}>{suggestion.title_de}</xv-link-v2>\n </li>\n ))}\n {!this.suggestions.length && <li class=\"text-center xv-helper-text-02\">Keine Daten gefunden</li>}\n </ul>\n </li>\n )\n }\n // endregion\n\n // region ImpersonationInfo\n private _renderImpersonationInfo() {\n if (!this.metaNav?.ImpersonationInfo) return null;\n return (\n <li class=\"impersonationInfo\">\n <xv-toggle-tip position=\"bottom-end\" autoSize={true}>\n <xv-button-v2 variant=\"ghost\" slot=\"trigger\" size={SIZE_VAR.MD}>\n <img slot=\"icon-left\" width={16} height={16} src={UserSearchIcon} alt=\"ic\" />\n </xv-button-v2>\n\n <ul slot=\"body\" class=\"xv-helper-text-02\">\n <li>Kundenperspektive aktiviert für:</li>\n <li>{this.metaNav.ImpersonationInfo?.NameAndTitle}</li>\n <li>{this.metaNav.ImpersonationInfo?.CompanyName}</li>\n <li>{this.metaNav.ImpersonationInfo?.Email}</li>\n <li>{this.metaNav.ImpersonationInfo?.PhoneOffice}</li>\n </ul>\n <xv-link-v2 slot=\"footer\" href={`${this.baseUrl}/de-de/mycrossvertise/account/clearimpersonation`} variant=\"ghost\">\n <xv-button-v2 block={true} variant=\"accent\">Kundenperspektive verlassen</xv-button-v2>\n </xv-link-v2>\n </xv-toggle-tip>\n </li>\n )\n }\n // endregion ImpersonationInfo\n\n // region Notifications\n @State() notifications: {\n orderId: number;\n template: string;\n id: string;\n userId: number;\n status: number;\n pdfSrc: string | null;\n isRead: boolean;\n payloadType: string;\n expiryDateUtc: string;\n dateDeletedUtc: string | null;\n dateCreatedUtc: string;\n }[] = [];\n\n private async getNotifications() {\n if (!this.metaNav?.IsManager) return;\n\n try {\n const response = await fetch(`${this.baseUrl}/de-de/api/notifications/list`, {credentials: 'include'});\n if (!response.ok) throw new Error(`Request failed with status ${response.status}`);\n const data = await response.json();\n this.notifications = Array.isArray(data) ? data : [];\n } catch (error) {\n this.notifications = [];\n }\n }\n\n private _renderNotifications() {\n if (!this.metaNav?.IsManager) return null;\n\n return (\n <li class=\"notifications\">\n <xv-overflow-menu-v2 position=\"right\" size={SIZE_VAR.MD}>\n <span slot=\"trigger\" class=\"fa-stack\">\n <i class=\"notifications-icon far fa-bell fa-stack-1x\" />\n {this.notifications.length > 0 && (\n <xv-tag-v2 class=\"counter-badge counter-badge--absolute\"\n bg=\"var(--icon-interactive, #97BF0D)\"\n color=\"var(--text-inverse, #FFF)\">{this.notifications.length}</xv-tag-v2>\n )}\n </span>\n {this.notifications.map((notification) => (\n <xv-overflow-menu-v2-item value={notification.id}\n variant={OverflowMenuVariant.GHOST}\n disabled={notification.isRead}\n clickable={false}>\n <div class=\"notifications-item\">\n <i class={{\n far: true,\n 'fa-clock': !notification.status,\n 'fa-times-circle': notification.status === 1,\n 'fa-circle': notification.status && notification.status !== 1,\n }} />\n <div class=\"notifications-item-body\">\n <span>Rechnungsentwurf für Auftrag {notification.orderId} ist ausstehend</span>\n <xv-link-v2\n variant={notification.isRead ? 'ghost' : 'standalone'}\n href={`/de-de/manager/ordersales/details/${notification.orderId}`}\n >Auftrag anschauen</xv-link-v2>\n </div>\n </div>\n </xv-overflow-menu-v2-item>\n ))}\n </xv-overflow-menu-v2>\n </li>\n )\n }\n // endregion Notifications\n\n // region Account\n @State() showLoginModal = false;\n\n private _renderAccount() {\n if (!this.metaNav?.IsAuthenticated) {\n return (\n <li>\n <xv-button-v2 variant=\"ghost\" size={SIZE_VAR.MD} onClick={() => this.showLoginModal = true}>\n <i class=\"header-icon far fa-user\" />\n <span class=\"header-label\">Mein Konto</span>\n </xv-button-v2>\n </li>\n );\n }\n\n return (\n <li class={{ myArea: true, onHover: true, isOpen: false }}>\n <xv-button-v2 class=\"myArea-btn\" variant=\"ghost\" size={SIZE_VAR.MD}>\n <i class=\"far fa-user\" />\n <div class=\"header-label\">\n {this.metaNav?.IsManager && <small>Manager</small>}\n <span>{this.metaNav?.UserMenuText || 'Mein Konto'}</span>\n </div>\n <i class=\"caret\" />\n </xv-button-v2>\n\n <ul class=\"myArea-list\">\n {this.metaNav?.ManagerCockpitMenu?.length && (\n <Fragment>\n <li class=\"myArea-list--category\">Cockpitfunktionen</li>\n {this.metaNav.ManagerCockpitMenu.map((item: any) => (\n <li>\n <xv-link-v2 variant=\"standalone\" href={item.Url} target={item.Target}>\n {item.Text}\n {item.BadgeText && (\n <xv-tag-v2 class=\"category-badge\"\n color=\"var(--text-inverse, #FFF)\"\n bg=\"var(--icon-interactive, #97BF0D)\">{item.BadgeText}</xv-tag-v2>\n )}\n </xv-link-v2>\n </li>\n ))}\n <li class=\"myArea-list--divider\" />\n </Fragment>\n )}\n {this.metaNav?.ManagerEntitiesMenu?.length && (\n <Fragment>\n <li class=\"myArea-list--category\">Entitäten</li>\n {this.metaNav.ManagerEntitiesMenu.map((item: any) => (\n <li>\n <xv-link-v2 variant=\"standalone\" href={item.Url} target={item.Target}>\n {item.Text}\n {item.BadgeText && (\n <xv-tag-v2 class=\"category-badge\"\n color=\"var(--text-inverse, #FFF)\"\n bg=\"var(--icon-interactive, #97BF0D)\">{item.BadgeText}</xv-tag-v2>\n )}\n </xv-link-v2>\n </li>\n ))}\n <li class=\"myArea-list--divider\" />\n </Fragment>\n )}\n {this.metaNav?.ManagerMenu?.length && (\n <Fragment>\n {this.metaNav.ManagerMenu.map((item: any) => (\n <li>\n <xv-link-v2 variant=\"standalone\" href={item.Url} target={item.Target}>\n {item.Text}\n {item.BadgeText && (\n <xv-tag-v2 class=\"category-badge\"\n color=\"var(--text-inverse, #FFF)\"\n bg=\"var(--icon-interactive, #97BF0D)\">{item.BadgeText}</xv-tag-v2>\n )}\n </xv-link-v2>\n </li>\n ))}\n <li class=\"myArea-list--divider\" />\n </Fragment>\n )}\n {!this.metaNav?.IsManager && this.metaNav?.UserMenu?.length && (\n <Fragment>\n {this.metaNav.UserMenu.map((item: any) => (\n <li>\n <xv-link-v2 variant=\"standalone\" href={item.Url} target={item.Target}>\n {item.Text}\n {item.BadgeText && (\n <xv-tag-v2 class=\"category-badge\"\n color=\"var(--text-inverse, #FFF)\"\n bg=\"var(--icon-interactive, #97BF0D)\">{item.BadgeText}</xv-tag-v2>\n )}\n </xv-link-v2>\n </li>\n ))}\n <li class=\"myArea-list--divider\" />\n </Fragment>\n )}\n <li>\n <xv-link-v2\n href={`${this.baseUrl}/de-de/mycrossvertise/account/logoff?returnUrl=${window.location.hostname}`}\n variant=\"standalone\">Abmelden</xv-link-v2>\n </li>\n </ul>\n </li>\n );\n }\n // endregion Account\n\n // region ShoppingCart\n private _renderShoppingCart() {\n return (\n <li>\n <xv-link-v2 href={`${this.baseUrl}/de-de/mycrossvertise/shoppingcart/activecart`} variant=\"ghost\">\n <xv-button-v2 variant=\"ghost\" size={SIZE_VAR.MD}>\n <i class=\"header-icon far fa-shopping-cart\" />\n <span class=\"header-label\">Warenkorb</span>\n <xv-tag-v2 class=\"counter-badge\" bg=\"var(--icon-interactive, #97BF0D)\" color=\"var(--text-inverse, #FFF)\">\n {this.metaNav?.Cart?.NumberOfItems || 0}\n </xv-tag-v2>\n </xv-button-v2>\n </xv-link-v2>\n </li>\n );\n }\n // endregion ShoppingCart\n\n render() {\n const isXvBrand = (this.metaNav?.['WhitelabelName'] || 'Xv') === 'Xv';\n\n return (\n <header class=\"header\">\n <div class=\"header-wrapper\">\n <div class=\"container\">\n <div class=\"header-top\">\n <div class=\"header-top--left\">\n <xv-button-v2 class=\"menu-btn\" variant=\"ghost\" onClick={this.toggleMobMenu}>\n <i slot=\"icon-left\"\n class={{ 'fa': true, 'fa-times': this.mobMenuOpen, 'fa-bars': !this.mobMenuOpen }} />\n </xv-button-v2>\n <a href={`${window.location.origin}/`}>\n <picture>\n <source\n srcSet={this.metaNav?.LogoUrl || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg'}\n media=\"(min-width: 990px)\"\n />\n <img\n src={this.metaNav?.LogoSmallUrl || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg'}\n onError={this.logoFallback}\n loading=\"lazy\"\n alt=\"Crossvertise\"\n />\n </picture>\n </a>\n {this.orgUnit && (\n <xv-link-v2\n class=\"header-top--orgUnit\"\n variant=\"standalone\"\n href=\"/de-de/mycrossvertise\">{this.orgUnit}</xv-link-v2>\n )}\n </div>\n\n <ul class=\"header-top--right\">\n {this._renderSearch()}\n {this._renderImpersonationInfo()}\n {!this.metaNav?.IsManager && isXvBrand && (\n <li>\n <xv-link-v2 variant=\"ghost\" href=\"https://www.crossvertise.com/ueber-uns/kontakt\">\n <xv-button-v2 variant=\"ghost\" size={SIZE_VAR.MD}>\n <i class=\"header-icon far fa-envelope\" />\n <span class=\"header-label\">Kontakt</span>\n </xv-button-v2>\n </xv-link-v2>\n </li>\n )}\n {this._renderNotifications()}\n {this._renderAccount()}\n {!this.metaNav?.IsManager && isXvBrand && (\n <li>\n <xv-link-v2 variant=\"ghost\" href=\"https://help.crossvertise.com\">\n <xv-button-v2 variant=\"ghost\" size={SIZE_VAR.MD}>\n <i class=\"header-icon far fa-question-circle\" />\n <span class=\"header-label\">Hilfe</span>\n </xv-button-v2>\n </xv-link-v2>\n </li>\n )}\n {this._renderShoppingCart()}\n </ul>\n </div>\n <xv-mega-menu open={this.mobMenuOpen} onOpenChange={this.closeMobMenu} />\n </div>\n </div>\n <xv-login-modal visible={this.showLoginModal} onClose={() => this.showLoginModal = false} />\n </header>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"xv-header.js","sourceRoot":"","sources":["../../../src/components/xv-header/xv-header.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Event, Component, h, Element, State, Listen, Fragment, EventEmitter } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\nimport { debounce, getBaseUrl, getMetaNav } from '../../utils/utils';\nimport { OverflowMenuVariant } from '../xv-overflow-menu/_vars';\nimport UserSearchIcon from './user-magnifying-glass-regular-full.svg';\n\n@Component({\n tag: 'xv-header',\n styleUrl: 'xv-header.scss',\n})\nexport class XvHeader {\n @Element() el: HTMLElement;\n @State() metaNav: any;\n @State() orgUnit: string = '';\n @State() baseUrl: string = '';\n @State() loading: boolean = false;\n @Event() xvMetaNavUpdate: EventEmitter;\n\n @Listen('xv:orgUnitChange', { target: 'window'})\n handleOrgUnitChange({ detail: orgUnit }: CustomEvent<string | undefined>) {\n this.orgUnit = orgUnit || '';\n }\n\n @Listen('xv:metaNav-update', { target: 'window' })\n metaNavUpdate() {\n const metaNav = getMetaNav();\n\n if (metaNav) {\n this.metaNav = metaNav;\n this.orgUnit = this.metaNav?.User?.SelectedOrgUnitName || '';\n void this.getNotifications();\n }\n\n console.info('MetaNav was updated', this.metaNav);\n }\n\n componentWillLoad() {\n this.baseUrl = getBaseUrl();\n void this.initHeader();\n }\n\n private async initHeader() {\n try {\n this.loading = true;\n const response = await fetch(`${this.baseUrl}/de-de/home/getpersonalareajson`, {\n method: 'POST',\n credentials:\"include\",\n headers: { 'Content-Type': 'application/json' }\n });\n const metaNav = await response.json();\n this.xvMetaNavUpdate.emit(metaNav);\n localStorage.setItem('metaNav', JSON.stringify(metaNav));\n } catch (error) {\n console.error('Failed to fetch initial Header data:', error?.message, error);\n } finally {\n this.metaNavUpdate();\n this.loading = false;\n }\n }\n\n // region Helpers\n @State() mobMenuOpen: boolean = false;\n\n private readonly toggleMobMenu = () => {\n this.mobMenuOpen = !this.mobMenuOpen;\n }\n\n private readonly closeMobMenu = ({ detail }: CustomEvent<boolean>) => {\n this.mobMenuOpen = !!detail;\n }\n\n private readonly logoFallback = (e: Event) => {\n const img = e.currentTarget as HTMLImageElement;\n const prevSource = img.previousElementSibling as HTMLSourceElement | null;\n const fallbackUrl = 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg';\n\n if (fallbackUrl === img.src) return;\n\n img.onerror = null;\n img.src = fallbackUrl;\n\n if (prevSource?.srcset) {\n prevSource.srcset = 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg';\n }\n };\n // endregion Helpers\n\n // region Search\n @State() suggestions: { title_de: string; page_link: string; source: string }[] = [];\n @State() suggestionsLoading = false;\n\n private handleSearch = async (event: InputEvent) => {\n try {\n this.suggestionsLoading = true;\n const search: string = (event.target as HTMLInputElement).value.trim();\n if (!search) {\n this.suggestions = [];\n return;\n }\n const queryString = new URLSearchParams({\n fuzzy: 'true',\n suggesterName: 'xv-shared-index-live-suggester',\n 'api-version': '2020-06-30',\n search,\n $top: '10',\n $select: 'title_de,page_link,source',\n $orderby: 'source desc',\n }).toString();\n const res = await fetch(\n `https://xv-search.search.windows.net/indexes/xv-shared-index-live/docs/suggest?${queryString}`,\n { headers: { 'Content-Type': 'application/json', 'api-key': '7315DEF1FA0C8B12109B12BA28E517E7' } }\n );\n const data = await res.json();\n this.suggestions = Array.isArray(data.value) ? data.value : [];\n } catch (error) {\n console.log('error', error);\n } finally {\n this.suggestionsLoading = false;\n }\n };\n\n private handleSearchOpen = (event: Event) => {\n const button = event.currentTarget as HTMLElement;\n const form = button.closest('form');\n if (!form) return;\n const input = form.querySelector('input[type=\"search\"]') as HTMLInputElement;\n if (input) input.focus();\n };\n\n private handleSearchKeydown = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return;\n (event.currentTarget as HTMLInputElement)?.blur();\n this.suggestions = [];\n };\n\n private handlePreventEvent = (e: Event) => e.preventDefault();\n\n private _renderSearch() {\n return (\n <li class=\"search-form\">\n <form action={`${this.baseUrl}/de-de/media/search`} method=\"get\" role=\"search\">\n <input onKeyDown={this.handleSearchKeydown}\n onInput={debounce(this.handleSearch, 700)}\n type=\"search\"\n name=\"Q\"\n placeholder=\"Suchen\"\n title=\"Drücken Sie die 'Enter' zum 'Suchen' oder Escape zum Zurücksetzen\"\n autoComplete=\"off\" />\n <xv-button-v2 onClick={this.handleSearchOpen}\n onMouseDown={this.handlePreventEvent}\n type=\"button\"\n variant=\"ghost\"\n size={SIZE_VAR.MD}><i class=\"header-icon far fa-search\" /></xv-button-v2>\n <xv-button-v2 type=\"submit\" variant=\"ghost\" size={SIZE_VAR.MD}>\n <i class=\"header-icon far fa-search\" />\n </xv-button-v2>\n </form>\n <ul class={{ 'search-form-suggestions': true, loading: this.suggestionsLoading }}>\n {this.suggestions.map((suggestion) => (\n <li>\n <xv-link-v2\n variant=\"standalone\"\n href={`https://www.crossvertise.com${suggestion.page_link}`}>{suggestion.title_de}</xv-link-v2>\n </li>\n ))}\n {!this.suggestions.length && <li class=\"text-center xv-helper-text-02\">Keine Daten gefunden</li>}\n </ul>\n </li>\n )\n }\n // endregion\n\n // region ImpersonationInfo\n private _renderImpersonationInfo() {\n if (!this.metaNav?.ImpersonationInfo) return null;\n return (\n <li class=\"impersonationInfo\">\n <xv-toggle-tip position=\"bottom-end\" autoSize={true}>\n <xv-button-v2 variant=\"ghost\" slot=\"trigger\" size={SIZE_VAR.MD}>\n <img slot=\"icon-left\" width={16} height={16} src={UserSearchIcon} alt=\"ic\" />\n </xv-button-v2>\n\n <ul slot=\"body\" class=\"xv-helper-text-02\">\n <li>Kundenperspektive aktiviert für:</li>\n <li>{this.metaNav.ImpersonationInfo?.NameAndTitle}</li>\n <li>{this.metaNav.ImpersonationInfo?.CompanyName}</li>\n <li>{this.metaNav.ImpersonationInfo?.Email}</li>\n <li>{this.metaNav.ImpersonationInfo?.PhoneOffice}</li>\n </ul>\n <xv-link-v2 slot=\"footer\" href={`${this.baseUrl}/de-de/mycrossvertise/account/clearimpersonation`} variant=\"ghost\">\n <xv-button-v2 block={true} variant=\"accent\">Kundenperspektive verlassen</xv-button-v2>\n </xv-link-v2>\n </xv-toggle-tip>\n </li>\n )\n }\n // endregion ImpersonationInfo\n\n // region Notifications\n @State() notifications: {\n orderId: number;\n template: string;\n id: string;\n userId: number;\n status: number;\n pdfSrc: string | null;\n isRead: boolean;\n payloadType: string;\n expiryDateUtc: string;\n dateDeletedUtc: string | null;\n dateCreatedUtc: string;\n }[] = [];\n\n private async getNotifications() {\n if (!this.metaNav?.IsManager) return;\n\n try {\n const response = await fetch(`${this.baseUrl}/de-de/api/notifications/list`, {credentials: 'include'});\n if (!response.ok) throw new Error(`Request failed with status ${response.status}`);\n const data = await response.json();\n this.notifications = Array.isArray(data) ? data : [];\n } catch (error) {\n this.notifications = [];\n }\n }\n\n private _renderNotifications() {\n if (!this.metaNav?.IsManager) return null;\n\n return (\n <li class=\"notifications\">\n <xv-overflow-menu-v2 position=\"right\" size={SIZE_VAR.MD}>\n <span slot=\"trigger\" class=\"fa-stack\">\n <i class=\"notifications-icon far fa-bell fa-stack-1x\" />\n {this.notifications.length > 0 && (\n <xv-tag-v2 class=\"counter-badge counter-badge--absolute\"\n bg=\"var(--icon-interactive, #97BF0D)\"\n color=\"var(--text-inverse, #FFF)\">{this.notifications.length}</xv-tag-v2>\n )}\n </span>\n {this.notifications.map((notification) => (\n <xv-overflow-menu-v2-item value={notification.id}\n variant={OverflowMenuVariant.GHOST}\n disabled={notification.isRead}\n clickable={false}>\n <div class=\"notifications-item\">\n <i class={{\n far: true,\n 'fa-clock': !notification.status,\n 'fa-times-circle': notification.status === 1,\n 'fa-circle': notification.status && notification.status !== 1,\n }} />\n <div class=\"notifications-item-body\">\n <span>Rechnungsentwurf für Auftrag {notification.orderId} ist ausstehend</span>\n <xv-link-v2\n variant={notification.isRead ? 'ghost' : 'standalone'}\n href={`/de-de/manager/ordersales/details/${notification.orderId}`}\n >Auftrag anschauen</xv-link-v2>\n </div>\n </div>\n </xv-overflow-menu-v2-item>\n ))}\n </xv-overflow-menu-v2>\n </li>\n )\n }\n // endregion Notifications\n\n // region Account\n @State() showLoginModal = false;\n\n private _renderAccount() {\n if (!this.metaNav?.IsAuthenticated) {\n return (\n <li>\n <xv-button-v2 variant=\"ghost\" size={SIZE_VAR.MD} onClick={() => this.showLoginModal = true}>\n <i class=\"header-icon far fa-user\" />\n <span class=\"header-label\">Mein Konto</span>\n </xv-button-v2>\n </li>\n );\n }\n\n return (\n <li class={{ myArea: true, onHover: true, isOpen: false }}>\n <xv-button-v2 class=\"myArea-btn\" variant=\"ghost\" size={SIZE_VAR.MD}>\n <i class=\"far fa-user\" />\n <div class=\"header-label\">\n {this.metaNav?.IsManager && <small>Manager</small>}\n <span>{this.metaNav?.UserMenuText || 'Mein Konto'}</span>\n </div>\n <i class=\"caret\" />\n </xv-button-v2>\n\n <ul class=\"myArea-list\">\n {this.metaNav?.ManagerCockpitMenu?.length && (\n <Fragment>\n <li class=\"myArea-list--category\">Cockpitfunktionen</li>\n {this.metaNav.ManagerCockpitMenu.map((item: any) => (\n <li>\n <xv-link-v2 variant=\"standalone\" href={item.Url} target={item.Target}>\n {item.Text}\n {item.BadgeText && (\n <xv-tag-v2 class=\"category-badge\"\n color=\"var(--text-inverse, #FFF)\"\n bg=\"var(--icon-interactive, #97BF0D)\">{item.BadgeText}</xv-tag-v2>\n )}\n </xv-link-v2>\n </li>\n ))}\n <li class=\"myArea-list--divider\" />\n </Fragment>\n )}\n {this.metaNav?.ManagerEntitiesMenu?.length && (\n <Fragment>\n <li class=\"myArea-list--category\">Entitäten</li>\n {this.metaNav.ManagerEntitiesMenu.map((item: any) => (\n <li>\n <xv-link-v2 variant=\"standalone\" href={item.Url} target={item.Target}>\n {item.Text}\n {item.BadgeText && (\n <xv-tag-v2 class=\"category-badge\"\n color=\"var(--text-inverse, #FFF)\"\n bg=\"var(--icon-interactive, #97BF0D)\">{item.BadgeText}</xv-tag-v2>\n )}\n </xv-link-v2>\n </li>\n ))}\n <li class=\"myArea-list--divider\" />\n </Fragment>\n )}\n {this.metaNav?.ManagerMenu?.length && (\n <Fragment>\n {this.metaNav.ManagerMenu.map((item: any) => (\n <li>\n <xv-link-v2 variant=\"standalone\" href={item.Url} target={item.Target}>\n {item.Text}\n {item.BadgeText && (\n <xv-tag-v2 class=\"category-badge\"\n color=\"var(--text-inverse, #FFF)\"\n bg=\"var(--icon-interactive, #97BF0D)\">{item.BadgeText}</xv-tag-v2>\n )}\n </xv-link-v2>\n </li>\n ))}\n <li class=\"myArea-list--divider\" />\n </Fragment>\n )}\n {!this.metaNav?.IsManager && this.metaNav?.UserMenu?.length && (\n <Fragment>\n {this.metaNav.UserMenu.map((item: any) => (\n <li>\n <xv-link-v2 variant=\"standalone\" href={item.Url} target={item.Target}>\n {item.Text}\n {item.BadgeText && (\n <xv-tag-v2 class=\"category-badge\"\n color=\"var(--text-inverse, #FFF)\"\n bg=\"var(--icon-interactive, #97BF0D)\">{item.BadgeText}</xv-tag-v2>\n )}\n </xv-link-v2>\n </li>\n ))}\n <li class=\"myArea-list--divider\" />\n </Fragment>\n )}\n <li>\n <xv-link-v2\n href={`${this.baseUrl}/de-de/mycrossvertise/account/logoff?returnUrl=${window.location.hostname}`}\n variant=\"standalone\">Abmelden</xv-link-v2>\n </li>\n </ul>\n </li>\n );\n }\n // endregion Account\n\n // region ShoppingCart\n private _renderShoppingCart() {\n return (\n <li>\n <xv-link-v2 href={`${this.baseUrl}/de-de/mycrossvertise/shoppingcart/activecart`} variant=\"ghost\">\n <xv-button-v2 variant=\"ghost\" size={SIZE_VAR.MD}>\n <i class=\"header-icon far fa-shopping-cart\" />\n <span class=\"header-label\">Warenkorb</span>\n <xv-tag-v2 class=\"counter-badge\" bg=\"var(--icon-interactive, #97BF0D)\" color=\"var(--text-inverse, #FFF)\">\n {this.metaNav?.Cart?.NumberOfItems || 0}\n </xv-tag-v2>\n </xv-button-v2>\n </xv-link-v2>\n </li>\n );\n }\n // endregion ShoppingCart\n\n render() {\n const isXvBrand = (this.metaNav?.['WhitelabelName'] || 'Xv') === 'Xv';\n\n return (\n <header class=\"header\">\n <div class=\"header-wrapper\">\n <div class=\"container\">\n <div class=\"header-top\">\n <div class=\"header-top--left\">\n <xv-button-v2 class=\"menu-btn\" variant=\"ghost\" onClick={this.toggleMobMenu}>\n <i slot=\"icon-left\"\n class={{ 'fa': true, 'fa-times': this.mobMenuOpen, 'fa-bars': !this.mobMenuOpen }} />\n </xv-button-v2>\n <a href={`${window.location.origin}/`}>\n <picture>\n <source\n srcSet={this.metaNav?.LogoUrl || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg'}\n media=\"(min-width: 990px)\"\n />\n <img\n src={this.metaNav?.LogoSmallUrl || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg'}\n onError={this.logoFallback}\n loading=\"lazy\"\n alt=\"Crossvertise\"\n />\n </picture>\n </a>\n {this.orgUnit && (\n <xv-link-v2\n class=\"header-top--orgUnit\"\n variant=\"standalone\"\n href=\"/de-de/mycrossvertise\">{this.orgUnit}</xv-link-v2>\n )}\n </div>\n\n <ul class=\"header-top--right\">\n {this._renderSearch()}\n {this._renderImpersonationInfo()}\n {!this.metaNav?.IsManager && isXvBrand && (\n <li>\n <xv-link-v2 variant=\"ghost\" href=\"https://www.crossvertise.com/ueber-uns/kontakt\">\n <xv-button-v2 variant=\"ghost\" size={SIZE_VAR.MD}>\n <i class=\"header-icon far fa-envelope\" />\n <span class=\"header-label\">Kontakt</span>\n </xv-button-v2>\n </xv-link-v2>\n </li>\n )}\n {this._renderNotifications()}\n {this._renderAccount()}\n {!this.metaNav?.IsManager && isXvBrand && (\n <li>\n <xv-link-v2 variant=\"ghost\" href=\"https://help.crossvertise.com\">\n <xv-button-v2 variant=\"ghost\" size={SIZE_VAR.MD}>\n <i class=\"header-icon far fa-question-circle\" />\n <span class=\"header-label\">Hilfe</span>\n </xv-button-v2>\n </xv-link-v2>\n </li>\n )}\n {this._renderShoppingCart()}\n </ul>\n </div>\n <xv-mega-menu loading={this.loading} open={this.mobMenuOpen} onOpenChange={this.closeMobMenu} />\n </div>\n </div>\n <xv-login-modal visible={this.showLoginModal} onClose={() => this.showLoginModal = false} />\n </header>\n );\n }\n}\n"]}
@@ -12,9 +12,6 @@ export class XvMegaMenu {
12
12
  this.handleClose();
13
13
  }
14
14
  }
15
- async componentWillLoad() {
16
- this.menuItems = await this.fetchMenuData();
17
- }
18
15
  handleClose() {
19
16
  this.open = false;
20
17
  this.activeItem = this.activeGroup = undefined;
@@ -58,8 +55,9 @@ export class XvMegaMenu {
58
55
  }
59
56
  async fetchMenuData() {
60
57
  var _a, _b;
61
- if (typeof window === 'undefined' || typeof fetch !== 'function')
62
- return [];
58
+ let menuItems = this.menuItems = [];
59
+ if (typeof window === 'undefined' || typeof fetch !== 'function' || this.loading)
60
+ return;
63
61
  try {
64
62
  const metaNav = getMetaNav();
65
63
  const url = (metaNav['WhitelabelName'] || 'Xv') === 'Xv'
@@ -72,31 +70,32 @@ export class XvMegaMenu {
72
70
  });
73
71
  if (!response.ok) {
74
72
  console.error(`[fetchMenuData] Failed (${response.status}): ${url}`, response);
75
- return [];
73
+ return;
76
74
  }
77
75
  const result = await response.json();
78
- const navs = ((_b = (_a = result === null || result === void 0 ? void 0 : result.data) !== null && _a !== void 0 ? _a : result) !== null && _b !== void 0 ? _b : []);
79
- if (metaNav['EnableMegaMenu'])
80
- return navs;
81
- return navs
82
- .flatMap((menuItem) => menuItem.groups)
83
- .filter((group) => !!group.card)
84
- .map((group) => {
85
- var _a, _b, _c;
86
- return ({
87
- id: group.id,
88
- label: ((_a = group.card) === null || _a === void 0 ? void 0 : _a.title) || group.label,
89
- route: { id: group.id, label: ((_b = group.card) === null || _b === void 0 ? void 0 : _b.title) || group.label || '', route: ((_c = group.card) === null || _c === void 0 ? void 0 : _c.linkUrl) || '#' }
76
+ menuItems = ((_b = (_a = result === null || result === void 0 ? void 0 : result.data) !== null && _a !== void 0 ? _a : result) !== null && _b !== void 0 ? _b : []);
77
+ if (metaNav['EnableMegaMenu'] === false) {
78
+ menuItems = menuItems
79
+ .flatMap((menuItem) => menuItem.groups)
80
+ .filter((group) => !!group.card)
81
+ .map((group) => {
82
+ var _a, _b, _c;
83
+ return ({
84
+ id: group.id,
85
+ label: ((_a = group.card) === null || _a === void 0 ? void 0 : _a.title) || group.label,
86
+ route: { id: group.id, label: ((_b = group.card) === null || _b === void 0 ? void 0 : _b.title) || group.label || '', route: ((_c = group.card) === null || _c === void 0 ? void 0 : _c.linkUrl) || '#' }
87
+ });
90
88
  });
91
- });
89
+ }
92
90
  }
93
91
  catch (error) {
94
92
  console.error('fetchMenuData error', error);
95
- return [];
93
+ menuItems = [];
96
94
  }
95
+ this.menuItems = menuItems;
97
96
  }
98
97
  render() {
99
- return (h(Host, { key: 'c04eb90a3fcb9ee88c59384b933fc1c34cd0439f' }, h("nav", { key: 'cb12b08f93eff6f901ff3477b581d40dbd412c0b', class: { 'xv-menu': true, open: this.open } }, this.loading && (h("div", { key: '13bf1b7904affe25cb1689e0b678cafa722d0968', class: { 'xv-menu-loader': true, open: this.open } }, h("xv-loader-v2", { key: 'e1bf9f048d5b1c426c5fb21e83aecb9714bc1558' }))), h("ul", { key: '9ffa20766d2e191b97645371edf1ca02e97c147a', class: { menu: true, open: this.open } }, this.menuItems.map((menuItem) => {
98
+ return (h(Host, { key: '0f46a8d2764fbfb355411c7c92f8744c4a7f5060' }, h("nav", { key: '5033f3eabc5f4674da2a0b91d2782a4f60195385', class: { 'xv-menu': true, open: this.open } }, this.loading && (h("div", { key: '88735b9f7813527861114a7aa7ca068afbb83b89', class: { 'xv-menu-loader': true, open: this.open } }, h("xv-loader-v2", { key: '3b674c488c27b54822ef4be17cf32a9ef3fe8e7e' }))), h("ul", { key: '9aed31cf1e975718324b955a79d47e5076e22965', class: { menu: true, open: this.open } }, this.menuItems.map((menuItem) => {
100
99
  var _a, _b;
101
100
  return (h("li", { class: { 'menu-item': true, active: menuItem.id === ((_a = this.activeItem) === null || _a === void 0 ? void 0 : _a.id) } }, menuItem.route ? (h("xv-link-v2", { variant: "ghost", href: menuItem.route.route }, h("p", { class: "menu-item-label" }, (_b = menuItem.route) === null || _b === void 0 ? void 0 : _b.label))) : (h(Fragment, null, 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) => {
102
101
  var _a, _b;
@@ -106,7 +105,7 @@ export class XvMegaMenu {
106
105
  } }, 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' &&
107
106
  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"))))))))));
108
107
  }))))));
109
- }), h("li", { key: 'a978770171885693e9788c20fbe53b4106d8987b', class: "menu--right" }, h("slot", { key: '0bff3b8878b76484f3dc9dde27ff27d0e5566d52', name: "menu-right" })), this.open && (h("li", { key: '2544cb4d4d03f36e6c3ac809ef8d483ed6b6c3ce', class: "menu--backdrop", onClick: () => this.handleClose() }))))));
108
+ }), h("li", { key: 'ac7bdbc1895eed31a406a7a1e61c1941ab203304', class: "menu--right" }, h("slot", { key: '40f0787d1185c119f93742fdd36bb4351dd0041e', name: "menu-right" })), this.open && (h("li", { key: 'bbae371c83c0603bb8a2076713d70547c07d802b', class: "menu--backdrop", onClick: () => this.handleClose() }))))));
110
109
  }
111
110
  static get is() { return "xv-mega-menu"; }
112
111
  static get encapsulation() { return "shadow"; }
@@ -141,12 +140,31 @@ export class XvMegaMenu {
141
140
  "setter": false,
142
141
  "reflect": true,
143
142
  "defaultValue": "false"
143
+ },
144
+ "loading": {
145
+ "type": "boolean",
146
+ "attribute": "loading",
147
+ "mutable": true,
148
+ "complexType": {
149
+ "original": "boolean",
150
+ "resolved": "boolean",
151
+ "references": {}
152
+ },
153
+ "required": false,
154
+ "optional": false,
155
+ "docs": {
156
+ "tags": [],
157
+ "text": ""
158
+ },
159
+ "getter": false,
160
+ "setter": false,
161
+ "reflect": false,
162
+ "defaultValue": "false"
144
163
  }
145
164
  };
146
165
  }
147
166
  static get states() {
148
167
  return {
149
- "loading": {},
150
168
  "activeItem": {},
151
169
  "activeGroup": {},
152
170
  "menuItems": {}
@@ -171,6 +189,12 @@ export class XvMegaMenu {
171
189
  }];
172
190
  }
173
191
  static get elementRef() { return "el"; }
192
+ static get watchers() {
193
+ return [{
194
+ "propName": "loading",
195
+ "methodName": "fetchMenuData"
196
+ }];
197
+ }
174
198
  static get listeners() {
175
199
  return [{
176
200
  "name": "click",
@@ -1 +1 @@
1
- {"version":3,"file":"xv-mega-menu.js","sourceRoot":"","sources":["../../../src/components/xv-mega-menu/xv-mega-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAgB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEhH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAO/C,MAAM,OAAO,UAAU;IALvB;QAMmB,eAAU,GAAW,GAAG,CAAC;QAEF,SAAI,GAAY,KAAK,CAAC;QAErD,YAAO,GAAY,KAAK,CAAC;QAGzB,cAAS,GAAe,EAAE,CAAC;KAuMrC;IApMC,kBAAkB,CAAC,CAAa;QAC9B,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC9C,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;IAC9C,CAAC;IAEO,aAAa,CAAC,IAAe;;QACnC,IAAI,CAAC,UAAU,GAAG,CAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,EAAE,OAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAA,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAA,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,0CAAE,MAAM,KAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,cAAc,CAAC,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,0CAAG,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;YAC9B,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,KAAiB;;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,EAAE,OAAK,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,CAAA,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7F,CAAC;IAEO,cAAc,CAAC,MAAkB;QACvC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC;IACpC,CAAC;IAEO,cAAc;QACpB,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAEtC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1E,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,IAAI,CAAC;QACrE,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,OAAO,SAAS,CAAC;QAChD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,aAAa;;QACzB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,KAAK,KAAK,UAAU;YAAE,OAAO,EAAE,CAAC;QAE5E,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI;gBACtD,CAAC,CAAC,8DAA8D,IAAI,CAAC,cAAc,EAAE,iBAAiB;gBACtG,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,sBAAsB,CAAC;YACpD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;gBACvC,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,2BAA2B,QAAQ,CAAC,MAAM,MAAM,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAC/E,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrC,MAAM,IAAI,GAAe,CAAC,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,MAAM,mCAAI,EAAE,CAAC,CAAC;YAExD,IAAI,OAAO,CAAC,gBAAgB,CAAC;gBAAE,OAAO,IAAI,CAAC;YAE3C,OAAO,IAAI;iBACR,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;iBACtC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;iBAC/B,GAAG,CAAW,CAAC,KAAK,EAAE,EAAE;;gBAAC,OAAA,CAAC;oBACzB,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,KAAK,EAAE,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,KAAK,KAAI,KAAK,CAAC,KAAK;oBACvC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,KAAK,KAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,OAAO,KAAI,GAAG,EAAE;iBAC1G,CAAC,CAAA;aAAA,CAAC,CAAC;QACR,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBAC7C,IAAI,CAAC,OAAO,IAAI,CAAC,4DAAK,KAAK,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;oBACvE,sEAA6B,CACzB,CAAC;gBAEP,2DAAI,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;oBACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;;wBAAC,OAAA,CAChC,UAAI,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAK,MAAA,IAAI,CAAC,UAAU,0CAAE,EAAE,CAAA,EAAE,IAC1E,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAChB,kBAAY,OAAO,EAAC,OAAO,EAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK;4BACpD,SAAG,KAAK,EAAC,iBAAiB,IAAE,MAAA,QAAQ,CAAC,KAAK,0CAAE,KAAK,CAAK,CAC3C,CACd,CAAC,CAAC,CAAC,CACF,EAAC,QAAQ;4BACP,SAAG,KAAK,EAAC,iBAAiB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CAAK;4BAE7F,UAAI,KAAK,EAAC,kBAAkB,IACzB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;;gCAAC,OAAA,CAC9B,UAAI,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,EAAE,MAAK,KAAK,CAAC,EAAE,EAAE;oCAClE,KAAK,CAAC,KAAK,IAAI,CACd,WAAK,KAAK,EAAC,aAAa,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;wCAChE,YAAM,KAAK,EAAC,kBAAkB,IAAE,KAAK,CAAC,KAAK,CAAQ;wCACnD,YAAM,KAAK,EAAC,kBAAkB,GAAG,CAC7B,CACP;oCAED,WAAK,KAAK,EAAC,iBAAiB;wCAC1B,WAAK,KAAK,EAAE;gDACV,0BAA0B,EAAE,IAAI;gDAChC,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAA,MAAA,QAAQ,CAAC,MAAM,0CAAE,MAAM,KAAI,CAAC,CAAC,GAAG,CAAC;6CAC5D;4CACC,WAAK,KAAK,EAAC,aAAa;gDACtB,UAAI,KAAK,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,IAC7E,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAClC,UAAI,KAAK,EAAC,UAAU;oDAClB,SAAG,KAAK,EAAC,gBAAgB,IAAE,QAAQ,CAAC,KAAK,CAAK;oDAE9C,UAAI,KAAK,EAAC,iBAAiB,IACxB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC9B,UAAI,KAAK,EAAC,OAAO;wDACf,kBAAY,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG,IAC3D,KAAK,CAAC,KAAK,CACD;wDACZ,KAAK,CAAC,GAAG,IAAI,CACZ,iBAAW,KAAK,EAAC,WAAW,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,SAAS,EAC3C,EAAE,EAAC,SAAS,IAAE,KAAK,CAAC,GAAG,CAAa,CAChD,CACE,CACN,CAAC,CACC,CACF,CACN,CAAC,CACC;gDAEL,UAAI,KAAK,EAAC,qBAAqB,IAC5B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC7B,UAAI,KAAK,EAAC,QAAQ;oDACf,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,CACzB,kBAAY,OAAO,EAAC,YAAY,EAAC,IAAI,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG;wDAC/C,MAAM,CAAC,KAAK;wDACb,YAAM,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,YAAY,aAAS,CAC1C,CACd;oDACA,MAAM,CAAC,IAAI,KAAK,QAAQ;wDACvB,oBAAc,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EACvD,OAAO,EAAC,UAAU,IAAE,MAAM,CAAC,KAAK,CAAgB,CAC7D,CACN,CAAC,CACC,CACD;4CAEL,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,KAAI,CACd,WAAK,KAAK,EAAC,YAAY;gDACrB,kBAAY,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EACvB,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU;oDAC5D,UAAI,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,kBAAkB,IAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAM;oDAClE,SAAG,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,iBAAiB,IAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAK;oDAClE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CACvB,kBAAY,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,YAAY,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,GAAG;wDAC3E,KAAK,CAAC,IAAI,CAAC,SAAS;wDACrB,YAAM,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,YAAY,aAAS,CAC1C,CACd,CACU,CACT,CACP,CACG,CACF,CACH,CACN,CAAA;6BAAA,CAAC,CACC,CACI,CACZ,CACE,CACN,CAAA;qBAAA,CAAC;oBACF,2DAAI,KAAK,EAAC,aAAa;wBACrB,6DAAM,IAAI,EAAC,YAAY,GAAQ,CAC5B;oBACJ,IAAI,CAAC,IAAI,IAAI,CACZ,2DAAI,KAAK,EAAC,gBAAgB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,GAAI,CACjE,CACE,CACD,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, State, Listen, Element, Prop, Event, EventEmitter, Fragment } 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' | 'dev' {\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 if (host.includes('dev.')) return 'dev';\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 metaNav = getMetaNav();\n const url = (metaNav['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 const navs: MenuItem[] = (result?.data ?? result ?? []);\n\n if (metaNav['EnableMegaMenu']) return navs;\n\n return navs\n .flatMap((menuItem) => menuItem.groups)\n .filter((group) => !!group.card)\n .map<MenuItem>((group) => ({\n id: group.id,\n label: group.card?.title || group.label,\n route: { id: group.id, label: group.card?.title || group.label || '', route: group.card?.linkUrl || '#' }\n }));\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 {menuItem.route ? (\n <xv-link-v2 variant=\"ghost\" href={menuItem.route.route}>\n <p class=\"menu-item-label\">{menuItem.route?.label}</p>\n </xv-link-v2>\n ) : (\n <Fragment>\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={{\n 'group-container-absolute': true,\n noLabel: !group.label && (menuItem.groups?.length || 0) < 2,\n }}>\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\"\n 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' &&\n <xv-button-v2 onClick={() => this.navActionClick(action)} block={true}\n 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}\n 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 </Fragment>\n )}\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, Fragment, Watch } 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 @Prop({ mutable: true }) loading: boolean = false;\n @Event() openChange: EventEmitter<boolean>;\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 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' | 'dev' {\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 if (host.includes('dev.')) return 'dev';\n return 'release';\n }\n\n @Watch('loading')\n async fetchMenuData() {\n let menuItems: MenuItem[] = this.menuItems = [];\n if (typeof window === 'undefined' || typeof fetch !== 'function' || this.loading) return;\n\n try {\n const metaNav = getMetaNav();\n const url = (metaNav['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 menuItems = (result?.data ?? result ?? []);\n\n if (metaNav['EnableMegaMenu'] === false) {\n menuItems = menuItems\n .flatMap((menuItem) => menuItem.groups)\n .filter((group) => !!group.card)\n .map<MenuItem>((group) => ({\n id: group.id,\n label: group.card?.title || group.label,\n route: { id: group.id, label: group.card?.title || group.label || '', route: group.card?.linkUrl || '#' }\n }));\n }\n } catch (error) {\n console.error('fetchMenuData error', error);\n menuItems = [];\n }\n\n this.menuItems = menuItems;\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 {menuItem.route ? (\n <xv-link-v2 variant=\"ghost\" href={menuItem.route.route}>\n <p class=\"menu-item-label\">{menuItem.route?.label}</p>\n </xv-link-v2>\n ) : (\n <Fragment>\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={{\n 'group-container-absolute': true,\n noLabel: !group.label && (menuItem.groups?.length || 0) < 2,\n }}>\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\"\n 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' &&\n <xv-button-v2 onClick={() => this.navActionClick(action)} block={true}\n 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}\n 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 </Fragment>\n )}\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"]}
@@ -95,7 +95,7 @@
95
95
 
96
96
  :host {
97
97
  display: inline-flex;
98
- --xv-modal-max-height: min(80vh, 720px);
98
+ --xv-modal-max-height: calc(95vh - (var(--spacing-05) * 2));
99
99
  }
100
100
  :host .backdrop {
101
101
  position: fixed;
@@ -127,7 +127,7 @@
127
127
  }
128
128
  :host .modal_header::slotted([slot=header]), :host .modal_header__title {
129
129
  color: var(--text-text-primary, #333);
130
- font-family: var(--ff-heading, "Gill Sans");
130
+ font-family: var(--ff-heading, "Gill Sans"), sans-serif;
131
131
  font-size: var(--fz-xl, 21px);
132
132
  line-height: 133.333%;
133
133
  margin: 0 20px 0 0;