xv-webcomponents 0.1.46 → 0.1.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/dist/cjs/{index-MLh9SbX2.js → index-CjhPTfz8.js} +41 -14
  2. package/dist/cjs/index-CjhPTfz8.js.map +1 -0
  3. package/dist/cjs/loader.cjs.js +3 -4
  4. package/dist/cjs/loader.cjs.js.map +1 -1
  5. package/dist/cjs/xv-accordion-v2_38.cjs.entry.js +79193 -0
  6. package/dist/cjs/xv-accordion-v2_38.cjs.entry.js.map +1 -0
  7. package/dist/cjs/xv-breadcrumbs-v2.cjs.entry.js +1 -1
  8. package/dist/cjs/xv-webcomponents.cjs.js +4 -5
  9. package/dist/cjs/xv-webcomponents.cjs.js.map +1 -1
  10. package/dist/collection/collection-manifest.json +5 -1
  11. package/dist/collection/components/xv-datepicker/xv-datepicker.css +401 -0
  12. package/dist/collection/components/xv-datepicker/xv-datepicker.js +570 -0
  13. package/dist/collection/components/xv-datepicker/xv-datepicker.js.map +1 -0
  14. package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js +1 -1
  15. package/dist/collection/components/xv-dropdown/xv-dropdown.js +2 -2
  16. package/dist/collection/components/xv-dropdown/xv-dropdown.js.map +1 -1
  17. package/dist/collection/components/xv-file-uploader/xv-file-uploader.js +2 -2
  18. package/dist/collection/components/xv-footer/xv-footer.js +1 -1
  19. package/dist/collection/components/xv-header/xv-header.css +109 -0
  20. package/dist/collection/components/xv-header/xv-header.js +131 -3
  21. package/dist/collection/components/xv-header/xv-header.js.map +1 -1
  22. package/dist/collection/components/xv-link/xv-link.js +1 -1
  23. package/dist/collection/components/xv-modal/xv-modal.js +1 -1
  24. package/dist/collection/components/xv-notification/xv-notification.css +1 -1
  25. package/dist/collection/components/xv-notification/xv-notification.js +1 -1
  26. package/dist/collection/components/xv-number-input/xv-number-input.js +2 -2
  27. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.js +1 -1
  28. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.js +1 -1
  29. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +1 -1
  30. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +1 -1
  31. package/dist/collection/components/xv-slider/xv-slider.css +196 -0
  32. package/dist/collection/components/xv-slider/xv-slider.js +259 -0
  33. package/dist/collection/components/xv-slider/xv-slider.js.map +1 -0
  34. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js +1 -1
  35. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +1 -1
  36. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +1 -1
  37. package/dist/collection/components/xv-table/xv-table.js +1 -1
  38. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +1 -1
  39. package/dist/collection/components/xv-tag/xv-tag.js +1 -1
  40. package/dist/collection/components/xv-text-input/xv-text-input.js +2 -2
  41. package/dist/collection/components/xv-textarea/xv-textarea.css +254 -0
  42. package/dist/collection/components/xv-textarea/xv-textarea.js +411 -0
  43. package/dist/collection/components/xv-textarea/xv-textarea.js.map +1 -0
  44. package/dist/collection/components/xv-tile/xv-tile.css +294 -0
  45. package/dist/collection/components/xv-tile/xv-tile.js +264 -0
  46. package/dist/collection/components/xv-tile/xv-tile.js.map +1 -0
  47. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js +1 -1
  48. package/dist/collection/components/xv-tooltip/xv-tooltip.js +2 -2
  49. package/dist/esm/{index-DLYJiP99.js → index-BQoQLd_U.js} +41 -15
  50. package/dist/esm/index-BQoQLd_U.js.map +1 -0
  51. package/dist/esm/loader.js +3 -4
  52. package/dist/esm/loader.js.map +1 -1
  53. package/dist/esm/xv-accordion-v2_38.entry.js +79154 -0
  54. package/dist/esm/xv-accordion-v2_38.entry.js.map +1 -0
  55. package/dist/esm/xv-breadcrumbs-v2.entry.js +1 -1
  56. package/dist/esm/xv-webcomponents.js +4 -5
  57. package/dist/esm/xv-webcomponents.js.map +1 -1
  58. package/dist/types/components/xv-datepicker/xv-datepicker.d.ts +69 -0
  59. package/dist/types/components/xv-header/xv-header.d.ts +30 -0
  60. package/dist/types/components/xv-slider/xv-slider.d.ts +20 -0
  61. package/dist/types/components/xv-textarea/xv-textarea.d.ts +27 -0
  62. package/dist/types/components/xv-tile/xv-tile.d.ts +24 -0
  63. package/dist/types/components.d.ts +344 -0
  64. package/dist/types/stencil-public-runtime.d.ts +1 -1
  65. package/dist/xv-webcomponents/loader.esm.js.map +1 -1
  66. package/dist/xv-webcomponents/p-BQoQLd_U.js +3 -0
  67. package/dist/xv-webcomponents/p-BQoQLd_U.js.map +1 -0
  68. package/dist/xv-webcomponents/{p-851c4716.entry.js → p-a8d785da.entry.js} +2 -2
  69. package/dist/xv-webcomponents/p-f00c82ed.entry.js +2 -0
  70. package/dist/xv-webcomponents/p-f00c82ed.entry.js.map +1 -0
  71. package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
  72. package/dist/xv-webcomponents/xv-webcomponents.esm.js.map +1 -1
  73. package/package.json +7 -4
  74. package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -8
  75. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +0 -1
  76. package/dist/cjs/index-MLh9SbX2.js.map +0 -1
  77. package/dist/cjs/xv-accordion-v2_34.cjs.entry.js +0 -3542
  78. package/dist/cjs/xv-accordion-v2_34.cjs.entry.js.map +0 -1
  79. package/dist/esm/app-globals-DQuL1Twl.js +0 -6
  80. package/dist/esm/app-globals-DQuL1Twl.js.map +0 -1
  81. package/dist/esm/index-DLYJiP99.js.map +0 -1
  82. package/dist/esm/xv-accordion-v2_34.entry.js +0 -3507
  83. package/dist/esm/xv-accordion-v2_34.entry.js.map +0 -1
  84. package/dist/xv-webcomponents/p-DLYJiP99.js +0 -3
  85. package/dist/xv-webcomponents/p-DLYJiP99.js.map +0 -1
  86. package/dist/xv-webcomponents/p-DQuL1Twl.js +0 -2
  87. package/dist/xv-webcomponents/p-DQuL1Twl.js.map +0 -1
  88. package/dist/xv-webcomponents/p-d96c1b6a.entry.js +0 -2
  89. package/dist/xv-webcomponents/p-d96c1b6a.entry.js.map +0 -1
  90. /package/dist/xv-webcomponents/{p-851c4716.entry.js.map → p-a8d785da.entry.js.map} +0 -0
@@ -10,7 +10,7 @@ export class XvDropdown {
10
10
  this.setSelected = (selectedMap, optionNodes) => {
11
11
  const values = Array.from(selectedMap.values());
12
12
  const options = optionNodes || this.el.querySelectorAll(DropdownItemSelector);
13
- this.selected = values.length === options.length ?
13
+ this.selected = this.multiple && values.length === options.length ?
14
14
  ['Alle ausgewählt'] : values.length > 2 ?
15
15
  [`${values.length} ausgewählt`] : values.map((v) => v.text);
16
16
  return values;
@@ -94,7 +94,7 @@ export class XvDropdown {
94
94
  this.changeSelection.emit(this.setSelected(this.selectedMap, optionElements));
95
95
  }
96
96
  render() {
97
- return (h(Host, { key: '2c5ea06ed7caeb3eb112f0421439d83666c71c0f', class: "xv-dropdown", role: "combobox", size: this.size, open: this.open, error: this.error, disabled: this.disabled, tabindex: this.disabled ? -1 : false }, h("label", { key: '1c57d5005bbf6e4419f5b4b55ea76a97d0bd6223', class: "label" }, h("slot", { key: '2ce3f332265b9e4dfa1b884d3bb869640d78b25f', name: "label" }, this.label), this.info && h("xv-tooltip-v2", { key: 'a46c73b62c3a2074a64ceeb0334ac0c55eef60fd', class: "label_info", message: this.info })), h("div", { key: '6711f988978aa4c1773f905c974aeadd3d23eba2', class: "xv-dropdown-control control", onClick: this.handleOpen }, this.selected.length ? (h("p", { class: "control_value" }, this.selected.join(', '))) : (h("p", { class: "control_placeholder" }, this.placeholder || '')), this.renderIcon(), h("svg", { key: 'dbd8ac8a724266322bf6a69c3b51aa0e653fce82', class: "control_arrow", focusable: "false", preserveAspectRatio: "xMidYMid meet", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", "aria-hidden": "true", width: "16", height: "16", viewBox: "0 0 16 16" }, h("path", { key: '9d41c7560755d88a502e3ea0024d021fcb467e6e', d: "M8 11L3 6 3.7 5.3 8 9.6 12.3 5.3 13 6z" }))), this.open && h("div", { key: '2fbd336e60ad52321b571b2e369dfd0b0a14925f', class: "options" }, h("slot", { key: "xv-dropdown-options" })), (this.helper || this.error || this.warning) && (h("p", { key: '89dac505b3b1617eed4fe4ddfd2a088efb88ebbc', class: "helper" }, this.error || this.warning || this.helper))));
97
+ return (h(Host, { key: '22a368d8ed8366bc14b76571d1d230b09a8796b0', class: "xv-dropdown", role: "combobox", size: this.size, open: this.open, error: this.error, disabled: this.disabled, tabindex: this.disabled ? -1 : false }, h("label", { key: '758412d82f433d5675f0f69048a76c67d7fea92c', class: "label" }, h("slot", { key: '7ea798f0ddca889db33845470d45aeeaaddce4a8', name: "label" }, this.label), this.info && h("xv-tooltip-v2", { key: '72bdd6aabf193f323cbc5ca715314568dc3aa8c8', class: "label_info", message: this.info })), h("div", { key: '91fc2cae2fe12eb171c017fcbf2e9b5a204bc955', class: "xv-dropdown-control control", onClick: this.handleOpen }, this.selected.length ? (h("p", { class: "control_value" }, this.selected.join(', '))) : (h("p", { class: "control_placeholder" }, this.placeholder || '')), this.renderIcon(), h("svg", { key: 'ab6e2eea7aa7563f9bdfa82bd980ba62bc29037a', class: "control_arrow", focusable: "false", preserveAspectRatio: "xMidYMid meet", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", "aria-hidden": "true", width: "16", height: "16", viewBox: "0 0 16 16" }, h("path", { key: '71fc59d404e95dc3de990403370bc5abf206812b', d: "M8 11L3 6 3.7 5.3 8 9.6 12.3 5.3 13 6z" }))), this.open && h("div", { key: '52f8a04ccb8364b6e9a0b1d3ad50cbff3ebf96af', class: "options" }, h("slot", { key: "xv-dropdown-options" })), (this.helper || this.error || this.warning) && (h("p", { key: 'a83ed0ce93a8886dbdff9e0d271c8d4229ffadc0', class: "helper" }, this.error || this.warning || this.helper))));
98
98
  }
99
99
  componentWillLoad() {
100
100
  this.setDefaultValues();
@@ -1 +1 @@
1
- {"version":3,"file":"xv-dropdown.js","sourceRoot":"","sources":["../../../src/components/xv-dropdown/xv-dropdown.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, State, Element, Watch, Listen, Event, EventEmitter } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\nimport { DropdownItemData, DropdownItemSelector } from './_vars';\nimport { forEach, setAttr } from '../../utils/utils';\n\n@Component({\n tag: 'xv-dropdown-v2',\n styleUrl: 'xv-dropdown.scss',\n shadow: true,\n})\nexport class XvDropdown {\n @Element() el: HTMLElement;\n @Prop({ reflect: true }) disabled?: boolean;\n @Prop({ reflect: true }) multiple?: boolean;\n @Prop({ reflect: true }) required?: boolean;\n @Prop({ reflect: true }) loading?: boolean;\n @Prop({ reflect: true, mutable: true }) open?: boolean;\n @Prop({ reflect: true }) error?: string;\n @Prop({ reflect: true }) label?: string;\n @Prop({ reflect: true }) helper?: string;\n @Prop({ reflect: true }) warning?: string;\n @Prop({ reflect: true }) placeholder?: string;\n @Prop({ reflect: false }) info?: string;\n @Prop() size: SIZE_VAR = SIZE_VAR.MD;\n @Prop({ attribute: 'default-value'}) defaultValue?: DropdownItemData['value'];\n\n @State() selected: DropdownItemData['text'][] = [];\n @State() selectedMap: Map<DropdownItemData['value'], DropdownItemData> = new Map();\n\n @Event() changeSelection: EventEmitter<DropdownItemData[]>;\n\n @Watch('open')\n openChangeHandle() {\n if (this.disabled) return;\n\n if (this.open) {\n this.addListeners();\n } else {\n this.removeListeners();\n }\n }\n\n @Listen('itemSelected')\n handleItemSelected({ detail }: CustomEvent<DropdownItemData>) {\n const hasItem = this.selectedMap.has(detail.value);\n\n if (this.multiple) {\n if (detail.selected) {\n if (!hasItem) this.selectedMap.set(detail.value, detail);\n } else {\n if (hasItem) {\n if (this.required && this.selectedMap.size === 1) return;\n this.selectedMap.delete(detail.value);\n }\n }\n } else {\n if (detail.selected) {\n this.selectedMap.clear();\n this.selectedMap.set(detail.value, detail);\n } else {\n if (!this.required) this.selectedMap.clear();\n }\n this.open = false;\n }\n\n const optionElements = this.el.querySelectorAll(DropdownItemSelector);\n\n forEach(\n optionElements,\n (option) => setAttr(option, 'selected', this.selectedMap.has(option.getAttribute('value')))\n );\n\n this.changeSelection.emit(this.setSelected(this.selectedMap, optionElements));\n }\n\n private setSelected = (selectedMap: typeof this.selectedMap, optionNodes?: NodeListOf<Element>): DropdownItemData[] => {\n const values = Array.from(selectedMap.values());\n const options = optionNodes || this.el.querySelectorAll(DropdownItemSelector);\n\n this.selected = values.length === options.length ?\n ['Alle ausgewählt'] : values.length > 2 ?\n [`${values.length} ausgewählt`] : values.map((v) => v.text);\n\n return values;\n };\n\n private handleOpen = () => {\n if (this.disabled || this.open || this.loading) return;\n this.open = true;\n };\n\n private handleClickOutside = (ev: MouseEvent) => {\n if (!this.open || this.el.contains(ev.target as Node)) return;\n\n if (this.open) this.open = false;\n }\n\n private addListeners = () => {\n document.body.addEventListener('click', this.handleClickOutside);\n }\n\n private removeListeners = () => {\n document.body.removeEventListener('click', this.handleClickOutside);\n }\n\n private setDefaultValues = () => {\n if (!this.defaultValue) return;\n\n // Needs to wait next Javascript tik\n setTimeout(() => {\n const options = this.el.querySelectorAll(DropdownItemSelector);\n\n forEach(\n options,\n (option) => {\n const dropdownItemData: DropdownItemData = {\n value: option.getAttribute('value'),\n text: (option as any).innerText,\n selected: `${this.defaultValue}` === option.getAttribute('value'),\n };\n\n if (dropdownItemData.selected) {\n setAttr(option, 'selected', dropdownItemData.selected);\n this.selectedMap.set(dropdownItemData.value, dropdownItemData);\n }\n }\n );\n\n this.setSelected(this.selectedMap, options);\n });\n };\n\n render() {\n return (\n <Host\n class=\"xv-dropdown\"\n role=\"combobox\"\n size={this.size}\n open={this.open}\n error={this.error}\n disabled={this.disabled}\n tabindex={this.disabled ? -1 : false}>\n <label class=\"label\">\n <slot name=\"label\">{this.label}</slot>\n {this.info && <xv-tooltip-v2 class=\"label_info\" message={this.info}></xv-tooltip-v2>}\n </label>\n\n <div class=\"xv-dropdown-control control\" onClick={this.handleOpen}>\n {this.selected.length ? (\n <p class=\"control_value\">{this.selected.join(', ')}</p>\n ) : (\n <p class=\"control_placeholder\">{this.placeholder || ''}</p>\n )}\n\n {this.renderIcon()}\n\n <svg class=\"control_arrow\" focusable=\"false\" preserveAspectRatio=\"xMidYMid meet\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\" aria-hidden=\"true\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path d=\"M8 11L3 6 3.7 5.3 8 9.6 12.3 5.3 13 6z\"></path>\n </svg>\n </div>\n\n {this.open && <div class=\"options\">\n <slot key=\"xv-dropdown-options\" />\n </div>}\n\n {(this.helper || this.error || this.warning) && (\n <p class=\"helper\">{this.error || this.warning || this.helper}</p>\n )}\n </Host>\n );\n }\n\n componentWillLoad() {\n this.setDefaultValues();\n }\n\n componentDidLoad() {\n this.openChangeHandle();\n }\n\n disconnectedCallback() {\n this.removeListeners();\n }\n\n private renderIcon(): undefined | HTMLElement {\n if (this.loading) {\n return <xv-loader-v2 class=\"control_icon error\" size={SIZE_VAR.XS} />\n }\n\n if (this.error) {\n return (\n <svg class=\"control_icon error\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path fill=\"currentColor\"\n d=\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\" />\n </svg>\n )\n }\n\n if (!this.error && !!this.warning) {\n return (\n <svg class=\"control_icon warning\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path fill=\"currentColor\" d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\" />\n </svg>\n );\n }\n\n return undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"xv-dropdown.js","sourceRoot":"","sources":["../../../src/components/xv-dropdown/xv-dropdown.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, State, Element, Watch, Listen, Event, EventEmitter } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\nimport { DropdownItemData, DropdownItemSelector } from './_vars';\nimport { forEach, setAttr } from '../../utils/utils';\n\n@Component({\n tag: 'xv-dropdown-v2',\n styleUrl: 'xv-dropdown.scss',\n shadow: true,\n})\nexport class XvDropdown {\n @Element() el: HTMLElement;\n @Prop({ reflect: true }) disabled?: boolean;\n @Prop({ reflect: true }) multiple?: boolean;\n @Prop({ reflect: true }) required?: boolean;\n @Prop({ reflect: true }) loading?: boolean;\n @Prop({ reflect: true, mutable: true }) open?: boolean;\n @Prop({ reflect: true }) error?: string;\n @Prop({ reflect: true }) label?: string;\n @Prop({ reflect: true }) helper?: string;\n @Prop({ reflect: true }) warning?: string;\n @Prop({ reflect: true }) placeholder?: string;\n @Prop({ reflect: false }) info?: string;\n @Prop() size: SIZE_VAR = SIZE_VAR.MD;\n @Prop({ attribute: 'default-value'}) defaultValue?: DropdownItemData['value'];\n\n @State() selected: DropdownItemData['text'][] = [];\n @State() selectedMap: Map<DropdownItemData['value'], DropdownItemData> = new Map();\n\n @Event() changeSelection: EventEmitter<DropdownItemData[]>;\n\n @Watch('open')\n openChangeHandle() {\n if (this.disabled) return;\n\n if (this.open) {\n this.addListeners();\n } else {\n this.removeListeners();\n }\n }\n\n @Listen('itemSelected')\n handleItemSelected({ detail }: CustomEvent<DropdownItemData>) {\n const hasItem = this.selectedMap.has(detail.value);\n\n if (this.multiple) {\n if (detail.selected) {\n if (!hasItem) this.selectedMap.set(detail.value, detail);\n } else {\n if (hasItem) {\n if (this.required && this.selectedMap.size === 1) return;\n this.selectedMap.delete(detail.value);\n }\n }\n } else {\n if (detail.selected) {\n this.selectedMap.clear();\n this.selectedMap.set(detail.value, detail);\n } else {\n if (!this.required) this.selectedMap.clear();\n }\n this.open = false;\n }\n\n const optionElements = this.el.querySelectorAll(DropdownItemSelector);\n\n forEach(\n optionElements,\n (option) => setAttr(option, 'selected', this.selectedMap.has(option.getAttribute('value')))\n );\n\n this.changeSelection.emit(this.setSelected(this.selectedMap, optionElements));\n }\n\n private setSelected = (selectedMap: typeof this.selectedMap, optionNodes?: NodeListOf<Element>): DropdownItemData[] => {\n const values = Array.from(selectedMap.values());\n const options = optionNodes || this.el.querySelectorAll(DropdownItemSelector);\n\n this.selected = this.multiple && values.length === options.length ?\n ['Alle ausgewählt'] : values.length > 2 ?\n [`${values.length} ausgewählt`] : values.map((v) => v.text);\n\n return values;\n };\n\n private handleOpen = () => {\n if (this.disabled || this.open || this.loading) return;\n this.open = true;\n };\n\n private handleClickOutside = (ev: MouseEvent) => {\n if (!this.open || this.el.contains(ev.target as Node)) return;\n\n if (this.open) this.open = false;\n }\n\n private addListeners = () => {\n document.body.addEventListener('click', this.handleClickOutside);\n }\n\n private removeListeners = () => {\n document.body.removeEventListener('click', this.handleClickOutside);\n }\n\n private setDefaultValues = () => {\n if (!this.defaultValue) return;\n\n // Needs to wait next Javascript tik\n setTimeout(() => {\n const options = this.el.querySelectorAll(DropdownItemSelector);\n\n forEach(\n options,\n (option) => {\n const dropdownItemData: DropdownItemData = {\n value: option.getAttribute('value'),\n text: (option as any).innerText,\n selected: `${this.defaultValue}` === option.getAttribute('value'),\n };\n\n if (dropdownItemData.selected) {\n setAttr(option, 'selected', dropdownItemData.selected);\n this.selectedMap.set(dropdownItemData.value, dropdownItemData);\n }\n }\n );\n\n this.setSelected(this.selectedMap, options);\n });\n };\n\n render() {\n return (\n <Host\n class=\"xv-dropdown\"\n role=\"combobox\"\n size={this.size}\n open={this.open}\n error={this.error}\n disabled={this.disabled}\n tabindex={this.disabled ? -1 : false}>\n <label class=\"label\">\n <slot name=\"label\">{this.label}</slot>\n {this.info && <xv-tooltip-v2 class=\"label_info\" message={this.info}></xv-tooltip-v2>}\n </label>\n\n <div class=\"xv-dropdown-control control\" onClick={this.handleOpen}>\n {this.selected.length ? (\n <p class=\"control_value\">{this.selected.join(', ')}</p>\n ) : (\n <p class=\"control_placeholder\">{this.placeholder || ''}</p>\n )}\n\n {this.renderIcon()}\n\n <svg class=\"control_arrow\" focusable=\"false\" preserveAspectRatio=\"xMidYMid meet\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\" aria-hidden=\"true\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path d=\"M8 11L3 6 3.7 5.3 8 9.6 12.3 5.3 13 6z\"></path>\n </svg>\n </div>\n\n {this.open && <div class=\"options\">\n <slot key=\"xv-dropdown-options\" />\n </div>}\n\n {(this.helper || this.error || this.warning) && (\n <p class=\"helper\">{this.error || this.warning || this.helper}</p>\n )}\n </Host>\n );\n }\n\n componentWillLoad() {\n this.setDefaultValues();\n }\n\n componentDidLoad() {\n this.openChangeHandle();\n }\n\n disconnectedCallback() {\n this.removeListeners();\n }\n\n private renderIcon(): undefined | HTMLElement {\n if (this.loading) {\n return <xv-loader-v2 class=\"control_icon error\" size={SIZE_VAR.XS} />\n }\n\n if (this.error) {\n return (\n <svg class=\"control_icon error\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path fill=\"currentColor\"\n d=\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\" />\n </svg>\n )\n }\n\n if (!this.error && !!this.warning) {\n return (\n <svg class=\"control_icon warning\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path fill=\"currentColor\" d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\" />\n </svg>\n );\n }\n\n return undefined;\n }\n}\n"]}
@@ -84,10 +84,10 @@ export class XvFileUploader {
84
84
  }
85
85
  render() {
86
86
  var _a;
87
- return (h(Host, { key: 'cca5e29c47f1272eb20ce505f824bf0fee264d79', class: { 'upload-wrapper': true, [`uploader-${this.size}`]: true, disabled: !!this.disabled } }, this.label && h("label", { key: '83b6b040877e31d98485f8216923613dca2a8bdc', class: "label" }, this.label), this.description && h("p", { key: 'c5fee7ad8b3b000bf07436dbaa875c072e1e0169', class: "description" }, this.description), this.variant === 'button' ? (h("xv-button-v2", { variant: this.buttonVariant, disabled: this.disabled, onClick: () => this.fileInput.click() }, this.addText || 'Dateien auswählen')) : (h("div", { class: { 'drop-zone': true, active: this.dragActive }, onDrop: this.onDrop, onDragOver: this.onDragOver, onDragLeave: this.onDragLeave, onClick: () => this.fileInput.click() }, this.addText || 'Dateien hierher ziehen oder darauf klicken, um eine Datei auszuwählen.', ((_a = this.accept) === null || _a === void 0 ? void 0 : _a.length) > 0 && h("span", null, " (", this.accept.join(', '), ")"))), h("input", { key: 'a3ccac67e702ea3d3e900b90fdb5fe0a2f8dd220', ref: el => (this.fileInput = el), type: "file", hidden: true, onChange: this.onFileSelect, multiple: this.multiple, accept: this.accept.join(',') }), h("ul", { key: 'c9ac4dce2a161863836af7c13c71783a9b51cdf0', class: "file-list" }, this.files.map((file, index) => {
87
+ return (h(Host, { key: '4a33985fd3a6b9213d592ebec1b5b8abbf1d27df', class: { 'upload-wrapper': true, [`uploader-${this.size}`]: true, disabled: !!this.disabled } }, this.label && h("label", { key: '127894a635ce497df0a3a4732f5fc5a28f4d635b', class: "label" }, this.label), this.description && h("p", { key: 'dc34a999207c109b45f6e793552ff93b144fde85', class: "description" }, this.description), this.variant === 'button' ? (h("xv-button-v2", { variant: this.buttonVariant, disabled: this.disabled, onClick: () => this.fileInput.click() }, this.addText || 'Dateien auswählen')) : (h("div", { class: { 'drop-zone': true, active: this.dragActive }, onDrop: this.onDrop, onDragOver: this.onDragOver, onDragLeave: this.onDragLeave, onClick: () => this.fileInput.click() }, this.addText || 'Dateien hierher ziehen oder darauf klicken, um eine Datei auszuwählen.', ((_a = this.accept) === null || _a === void 0 ? void 0 : _a.length) > 0 && h("span", null, " (", this.accept.join(', '), ")"))), h("input", { key: 'f7d47bff9993ab16abb38d70a065c6778f141359', ref: el => (this.fileInput = el), type: "file", hidden: true, onChange: this.onFileSelect, multiple: this.multiple, accept: this.accept.join(',') }), h("ul", { key: '04f33d47b7f3389b29b880261eb7d032ffea37e4', class: "file-list" }, this.files.map((file, index) => {
88
88
  var _a, _b;
89
89
  return (h("li", { class: { file: true, withError: !!(((_a = this.errors) === null || _a === void 0 ? void 0 : _a[index]) || ((_b = this.errorMessages) === null || _b === void 0 ? void 0 : _b[index])) } }, h("div", { class: "file_container" }, h("span", { class: "file_container_name" }, file.name), this._renderLoaderState(index)), this._renderError(index)));
90
- })), this.error && (h("div", { key: '642650576c9019fb3e90ff2306a4ba2bc57ca6f7', class: "error-container" }, h("p", { key: '5ec4fe02693c4aa160d57721b2a44814c2081662', class: "error-container_primary" }, this.error)))));
90
+ })), this.error && (h("div", { key: '21aae629c18e97fc42f478e78ed4b771975389ab', class: "error-container" }, h("p", { key: '2fefb6eae6b6a8d838f6aca2ff05c5981f1491a2', class: "error-container_primary" }, this.error)))));
91
91
  }
92
92
  _renderLoaderState(index) {
93
93
  var _a, _b, _c;
@@ -14,7 +14,7 @@ export class Xvfooter {
14
14
  }
15
15
  }
16
16
  render() {
17
- return (h("footer", { key: '8cc48f284221abc3e130a5151f6128fd14f7df58' }, h("div", { key: '0cf27056ee190f644c339f7ffcf2ba8604a33bf3', innerHTML: this.htmlContent })));
17
+ return (h("footer", { key: '69d48cf34ca1c2b39cc4152b1da10e3d6784ecaf' }, h("div", { key: '91a2a4e95bc830478182cdd2b64d68670a36bb41', innerHTML: this.htmlContent })));
18
18
  }
19
19
  static get is() { return "xv-footer"; }
20
20
  static get originalStyleUrls() {
@@ -22679,4 +22679,113 @@ button.ui-button::-moz-focus-inner {
22679
22679
 
22680
22680
  #nav-container .media-nav #media-menu-item-alle-kategorien li:hover > ul {
22681
22681
  display: block;
22682
+ }
22683
+
22684
+ #my-xv-menu.dropdown:hover > .dropdown-menu-left {
22685
+ display: block;
22686
+ }
22687
+
22688
+ .xv-user-menu-wrapper .dropdown {
22689
+ position: relative;
22690
+ }
22691
+ .xv-user-menu-wrapper .navbar-btn {
22692
+ margin-top: 8px;
22693
+ margin-bottom: 8px;
22694
+ }
22695
+ .xv-user-menu-wrapper .btn-link {
22696
+ color: #337ab7;
22697
+ font-weight: 400;
22698
+ border-radius: 0;
22699
+ }
22700
+ .xv-user-menu-wrapper .btn-link:hover {
22701
+ color: #23527c;
22702
+ text-decoration: underline;
22703
+ background-color: transparent;
22704
+ }
22705
+ .xv-user-menu-wrapper .dropdown-menu {
22706
+ position: absolute;
22707
+ top: 100%;
22708
+ left: 0;
22709
+ z-index: 1000;
22710
+ display: none;
22711
+ float: left;
22712
+ min-width: 160px;
22713
+ padding: 5px 0;
22714
+ margin: 2px 0 0;
22715
+ font-size: 14px;
22716
+ text-align: left;
22717
+ background-color: #fff;
22718
+ border: 1px solid rgba(0, 0, 0, 0.15);
22719
+ border-radius: 4px;
22720
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
22721
+ }
22722
+ .xv-user-menu-wrapper .dropdown-menu-left {
22723
+ right: auto;
22724
+ left: 0;
22725
+ }
22726
+ .xv-user-menu-wrapper .navbar-myxv .user-menu-item {
22727
+ padding-left: 20px;
22728
+ }
22729
+ .xv-user-menu-wrapper .navbar-myxv .divider {
22730
+ height: 1px;
22731
+ margin: 9px 0;
22732
+ overflow: hidden;
22733
+ background-color: #e5e5e5;
22734
+ }
22735
+ .xv-user-menu-wrapper .navbar-myxv li > a:hover {
22736
+ color: #262626;
22737
+ text-decoration: none;
22738
+ background-color: #f5f5f5;
22739
+ }
22740
+ @media (max-width: 767px) {
22741
+ .xv-user-menu-wrapper .hidden-xs {
22742
+ display: none !important;
22743
+ }
22744
+ }
22745
+ .xv-user-menu-wrapper .badge {
22746
+ display: inline-block;
22747
+ min-width: 10px;
22748
+ padding: 3px 7px;
22749
+ font-size: 12px;
22750
+ font-weight: 700;
22751
+ color: #fff;
22752
+ line-height: 1;
22753
+ vertical-align: middle;
22754
+ white-space: nowrap;
22755
+ text-align: center;
22756
+ background-color: #777;
22757
+ border-radius: 10px;
22758
+ }
22759
+
22760
+ .ui-menu-item a:hover {
22761
+ background-color: linear-gradient(to bottom, #f4f4f4 61%, #fff 100%);
22762
+ color: #79990a !important;
22763
+ box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.5) inset;
22764
+ }
22765
+
22766
+ .popover.popover-fixed.fade.bottom.in {
22767
+ position: absolute;
22768
+ display: block;
22769
+ opacity: 1;
22770
+ top: 49.3472px;
22771
+ left: 279px;
22772
+ z-index: 9999;
22773
+ }
22774
+
22775
+ .popover .arrow {
22776
+ position: absolute;
22777
+ left: 50%;
22778
+ width: 0;
22779
+ height: 0;
22780
+ border-left: 5px solid transparent;
22781
+ border-right: 5px solid transparent;
22782
+ border-top: 5px solid #333;
22783
+ }
22784
+
22785
+ .popover .popover-content {
22786
+ padding: 10px;
22787
+ background: #fff;
22788
+ border: 1px solid #ccc;
22789
+ border-radius: 4px;
22790
+ color: #333;
22682
22791
  }
@@ -3,14 +3,122 @@ export class XvHeader {
3
3
  constructor() {
4
4
  this.htmlContent = '';
5
5
  this.showLoginModal = false;
6
+ this.isCockpitMenuExpanded = true;
7
+ this.isEntitiesMenuExpanded = true;
8
+ this.isUserMenuExpanded = true;
9
+ this.suggestions = [];
10
+ this.searchQuery = '';
11
+ this.listPosition = { width: 0, top: 0, left: 0 };
12
+ this.showPopover = false;
13
+ this.currentSuggestion = null;
14
+ this.inputHandlers = [];
6
15
  this.openLoginModal = () => {
7
16
  this.showLoginModal = true;
8
17
  };
18
+ this.togglePopover = () => {
19
+ this.showPopover = !this.showPopover;
20
+ };
9
21
  this.closeLoginModal = () => {
10
22
  this.showLoginModal = false;
11
23
  };
24
+ this.handleSearchInput = async (e) => {
25
+ const target = e.target;
26
+ const query = target.value.trim();
27
+ this.searchQuery = query;
28
+ if (query.length < 2) {
29
+ this.suggestions = [];
30
+ this.currentSuggestion = null;
31
+ return;
32
+ }
33
+ const rect = target.getBoundingClientRect();
34
+ this.listPosition = { width: rect.width, top: rect.bottom + window.scrollY, left: rect.left + window.scrollX };
35
+ const url = 'https://xv-search.search.windows.net/indexes/xv-shared-index-live/docs/suggest?fuzzy=true&suggesterName=xv-shared-index-live-suggester&api-version=2020-06-30&search=' +
36
+ encodeURIComponent(query) +
37
+ '&$top=10&$select=title_de,page_link,source&$orderby=source desc';
38
+ try {
39
+ const resp = await fetch(url, {
40
+ headers: {
41
+ 'Content-Type': 'application/json',
42
+ 'api-key': '7315DEF1FA0C8B12109B12BA28E517E7',
43
+ },
44
+ });
45
+ const data = await resp.json();
46
+ this.suggestions = Array.isArray(data.value) ? data.value : [];
47
+ this.currentSuggestion = this.suggestions.length > 0 ? this.suggestions[0].title_de : null;
48
+ }
49
+ catch (err) {
50
+ console.error('Failed to fetch suggestions', err);
51
+ }
52
+ };
53
+ this.navigateToSuggestion = (s) => {
54
+ const url = "https://www.crossvertise.com" + s.page_link;
55
+ window.location.href = url;
56
+ };
57
+ this.handleKeyDown = (e) => {
58
+ const input = e.target;
59
+ if (e.key === 'Tab' && this.currentSuggestion) {
60
+ input.value = this.currentSuggestion;
61
+ e.preventDefault();
62
+ }
63
+ else if (e.key === 'Escape') {
64
+ this.currentSuggestion = null;
65
+ input.value = '';
66
+ this.suggestions = [];
67
+ }
68
+ };
69
+ }
70
+ escapeRegExp(text) {
71
+ return text.replace(/[.*+?^${}()|[\\]\\]/g, '\\$&');
72
+ }
73
+ componentDidLoad() {
74
+ const inputs = this.el.querySelectorAll('input[name="Q"]');
75
+ inputs.forEach(input => {
76
+ const handleInput = this.handleSearchInput.bind(this);
77
+ const handleKeyDown = this.handleKeyDown.bind(this);
78
+ input.addEventListener('input', handleInput);
79
+ input.addEventListener('keydown', handleKeyDown);
80
+ this.inputHandlers.push({
81
+ input: input,
82
+ listeners: [
83
+ ['input', handleInput],
84
+ ['keydown', handleKeyDown],
85
+ ],
86
+ });
87
+ if (!this.searchInput) {
88
+ this.searchInput = input;
89
+ }
90
+ });
91
+ }
92
+ loadMetaNav() {
93
+ try {
94
+ const metaNavRaw = localStorage.getItem('metaNav');
95
+ if (metaNavRaw) {
96
+ this.metaNav = JSON.parse(metaNavRaw);
97
+ }
98
+ }
99
+ catch (e) {
100
+ console.warn('Could not parse metaNav from localStorage:', e);
101
+ }
102
+ }
103
+ toggleCockpitMenu() {
104
+ this.isCockpitMenuExpanded = !this.isCockpitMenuExpanded;
105
+ }
106
+ toggleEntitiesMenu() {
107
+ this.isEntitiesMenuExpanded = !this.isEntitiesMenuExpanded;
108
+ }
109
+ toggleUserMenu() {
110
+ this.isUserMenuExpanded = !this.isUserMenuExpanded;
111
+ }
112
+ disconnectedCallback() {
113
+ this.inputHandlers.forEach(({ input, listeners }) => {
114
+ listeners.forEach(([event, handler]) => {
115
+ input.removeEventListener(event, handler);
116
+ });
117
+ });
118
+ this.inputHandlers = [];
12
119
  }
13
120
  async componentWillLoad() {
121
+ this.loadMetaNav();
14
122
  try {
15
123
  const response = await fetch('https://crossvertise.blob.core.windows.net/nav-sync-qa/nav.html');
16
124
  const text = await response.text();
@@ -26,11 +134,24 @@ export class XvHeader {
26
134
  this.htmlContent = doc.body.innerHTML;
27
135
  }
28
136
  catch (error) {
29
- console.error('Failed to fetch header HTML:', error);
137
+ console.error('Failed to fetch header HTML:', error === null || error === void 0 ? void 0 : error.message, error);
30
138
  }
31
139
  }
32
140
  render() {
33
- return (h("div", { key: 'b7aab6acaa7c2413b1c6e9a4b6ae05713811960c', id: "nav-container", class: "xv-header" }, h("nav", { key: 'f788b98e47962ac01b496b8f0f89b58ce4370419', class: "navbar navbar-default navbar-fixed-top backend-force-relative" }, h("div", { key: '8a40f066454f9653ee8edb4f1f48a52b20218011', class: "container" }, h("div", { key: 'd678952c074b64205fd6ace899aef78ca160a0e5', class: "row" }, h("div", { key: 'f205bb60260b131fa6d6dabac56bc42b8766fc34', class: "col-sm-3 col-xs-3 col-xxs-4 no-padding-right" }, h("div", { key: 'ce7e0e8f266811a72bf50e6b6ab9151abfec3cb5', class: "navbar-header" }, h("button", { key: 'f927eedb153cc3a70ac4806bf464306818fcc1ce', class: "btn btn-default navbar-toggle pull-left navbar-btn", "data-toggle": "collapse", "data-target": "#main-menu" }, h("i", { key: '79a7dbea97c0b2f90efd2b07714e542b34abb19a', class: "fa fa-bars fa-lg", "aria-hidden": "true" })), h("div", { key: 'bc11baf30585ac9e4dc20db488fae122e4d2ad8a', class: "visible-xs-inline" }, h("a", { key: '8df1723becb1239e99ef723258b117c080b69148', href: "https://www.crossvertise.com/", class: "navbar-brand" }, h("img", { key: '6596d266e73b88d73375952703a879b1e64366cb', src: "https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg", alt: "Crossvertise" }))), h("div", { key: 'd0881fa49bb3869013762fe946ecd778611f969b', class: "hidden-xs" }, h("a", { key: 'c5a75281506a325de9a0ae18a7caa42b4891ea20', href: "https://www.crossvertise.com/", class: "navbar-brand" }, h("img", { key: '9823da8d0f391a06376a4207917cb518e3106fd7', loading: "lazy", src: "https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg", alt: "Crossvertise" }))))), h("div", { key: '751f34a9ac038f8adeaab310a8460cd5d874595b', class: "col-sm-9 col-xs-9 col-xxs-8 no-padding-left" }, h("ul", { key: '3dafb893f2d7f1fe939b76f3cce0f1dce38525b5', class: "nav nav-pills nav-meta pull-right" }, h("li", { key: 'be464f72fa4691826033b40a024edf6408dd5e0d' }, h("a", { key: 'b2bf46d24a3a67affa5ee0fe45e10d52da7d6529', class: "btn btn-link navbar-btn hidden-xs", href: "#" }, h("i", { key: 'f3d77fdd87de26113f3d8a44b997536a62afef7a', class: "fa fa-user" }), h("i", { key: '6485646caf92d85c8a8f28b19cf978a13afa9aa8', class: "fa fa-exchange-alt" }))), h("li", { key: 'e962f8de44d5d890da4feffb078a47c3f35e3880' }, h("a", { key: '211740f428b4331c861ab1b6c66d1b66d5d8cc78', class: "btn btn-link navbar-btn hidden-xs", href: "#" }, "Kontakt"), h("a", { key: '236cdec447c0fa7dee945b2292d802e6130d73f9', href: "https://www.crossvertise.com/contact", class: "btn btn-link navbar-btn hidden-xs", style: { display: 'none' } }, "Kontakt"), h("a", { key: '0420eddf96d681532dce268bd5a9ead16c3c8aec', class: "btn btn-default btn-link navbar-btn visible-xs hidden-xxs", href: "#" }, h("i", { key: 'e6a8674a98ae9b14d8c2c2b1d7401c263dce1a3e', class: "fa fa-phone" }))), h("li", { key: 'b86f2ae90a88c656bb57e6e11d7d01c3351828ae', class: "dropdown", id: "my-xv-menu" }, h("a", { key: '03612f92396ecaa250c4034857651059856d1079', href: "#", class: "dropdown-toggle btn btn-default navbar-btn btn-link", "data-toggle": "dropdown" }, h("i", { key: '88373fa2719c5ba53a010547c8da5d03157e473b', class: "fa fa-user fa-lg text-success", "aria-hidden": "true" }), "\u00A0", h("span", { key: '01d46ab9a728b4bed00f7e51447590167488f174', class: "hidden-xs" }, "Mein Bereich"), h("span", { key: 'f5aa74c331af74f2ddfe4982448811080f5d6cbd', class: "caret" })), h("ul", { key: '08b246ba0841a78d36b80941ad31a2ecbecb78bf', class: "dropdown-menu-left dropdown-menu navbar-myxv" }, h("li", { key: 'be019929b12cc758b33c4501054b5202e2a6c231' }, h("a", { key: 'b03b8b3cbf8fa30716bac0ded50c8a9ab0d65ddc', href: "#" }, h("i", { key: '504c93b867f94e168e3f830b38dc35e40fb47413', class: "fa fa-tachometer-alt fa-fw" }), "\u00A0Cockpitfunktionen\u00A0", h("i", { key: '4bdc28d3fa15730bc0f1878fbea1e8114494fb58', class: "fa fa-caret-down" }))), h("li", { key: '83f8664631367b6a619eb84eab24b960769ba2e8' }, h("a", { key: 'c07ed425d1887b6f660daf8de6634100caa2c2f2', href: "#" }, h("i", { key: '85a23d5082e867842f24c508dcd28601d40cedbd', class: "fa fa-cubes" }), "\u00A0Entit\u00E4ten\u00A0", h("i", { key: 'e82487a0fcfd86ae9569fa40145d57b8095c8833', class: "fa fa-caret-down" }))), h("li", { key: '4c8e3f50586c7d666209952d5a269d1c727f9e58', role: "separator", class: "divider" }), h("li", { key: '42ea22dc947b257a5884ed149ded2d475cfb1a65' }, h("a", { key: 'f035a6e82af476aea781164ac3256d9a8e216b29', href: "#" }, h("i", { key: '728d79a2925441364f7e145fa5eaa346c6c0185c', class: "fa fa-user" }), "\u00A0Mein Crossvertise\u00A0", h("span", { key: 'c7f81006d6be91706bc8390c1f24eb6885f62c54', class: "badge" }, "0"), h("i", { key: 'b222edbd876509add34ac486616c269598af26fe', class: "fa fa-caret-down" }))), h("li", { key: '8e986473435ca9f93f45852a772336d65ad4a0ed' }, h("a", { key: 'd911df5a29b62096226f29c30435d37db8d2e62e', href: "https://www.crossvertise.com/de-de/mycrossvertise/account/logoff?returnUrl=https%3A%2F%2Fwww.crossvertise.com" }, h("i", { key: '5fc4602c6860a2ef5253bc1aff26b786f4bf6614', class: "fa fa-sign-out-alt fa-fw", "aria-hidden": "true" }), "\u00A0Logout")))), h("li", { key: 'ad9e678d4fd0c19c1d66bafca4177b6a11215768', class: "visible-sm-block visible-xs-block hidden-xxs" }, h("a", { key: '35c8bae0c030cde5e632240ebcfee1d3bc9da937', class: "btn btn-default navbar-btn btn-link", "data-toggle": "collapse", "data-target": "#search-collapse" }, h("i", { key: '1b3398b90d545f6d1fea285a454876308fddd0f7', class: "fa fa-search", "aria-hidden": "true" }))), h("li", { key: '5290e6a7fa352551948eacf154ace580ccabe28c', class: "hidden-xs hidden-sm" }, h("a", { key: '82535cb3eab93b2c404d8c7c9773d7cba9f1a68d', role: "button", onClick: this.openLoginModal, class: "btn btn-default navbar-btn btn-link" }, h("i", { key: '77a780b94ed0146d76db21fb0e90498ea1f38788', class: "fa fa-user fa-lg", "aria-hidden": "true" }), h("span", { key: '24a441304c43addc005355b9314c3c6ef02594e5' }, "Login"))), h("xv-login-modal", { key: 'b7f62e49b69348456003bbab3859780648fb1bbb', visible: this.showLoginModal, onClose: this.closeLoginModal }), h("li", { key: '8f407702b11dac6fc0828e905ec0eca8e2e3024d', class: "hidden-xs" }, h("a", { key: 'c4d3fc79144ffc58f65bdd9b1b9d1d7fa7a9c208', class: "btn btn-default navbar-btn btn-link", href: "https://market.crossvertise.com/de-de/mycrossvertise/account/register" }, h("span", { key: 'cf68d99b8a1264ca965c4ff507198ebcadbcc1ca' }, "Registrieren"))), h("li", { key: 'd28aaa20152434878fd4b549762fe493d0cbf98b', class: "navbar-divider hidden-xs" }), h("li", { key: '73fb5fc8726a3f218ddac938d32af24fcc14391e' }, h("a", { key: '24323784701f4c141d4f497c26fd4d251e934bc0', class: "btn btn-success navbar-btn", href: "https://market.crossvertise.com/de-de/mycrossvertise/shoppingcart/activecart" }, h("span", { key: 'd5aef82ca7995f937d07f84d13319f63f3fe7734', class: "xv-font-icon-warenkorb fa-lg fa-fw", "aria-hidden": "true" }), h("span", { key: '4eaa3b73bd43436c727e686fad291cb6da11d212', class: "hidden-xs hidden-sm" }, "\u00A0Warenkorb\u00A0"), h("span", { key: 'ddd067ecfdd76154a43a91e84a6f806bcd207069', class: "badge badge-success" }, "0"))))))), h("div", { key: 'd16d981fe0df4b1a6db976e518bc814c598f88f0', class: "collapse hidden-md hidden-lg", id: "search-collapse" }, h("div", { key: 'f8af23ba283e7ebaeea9177d336b63f3073d9fb3', class: "container" }, h("form", { key: '366bbb3bb49d548a94b18411ab48c03cf678a5bc', action: "https://market.crossvertise.com/de-de/media/search", class: "navbar-form", method: "get", role: "search" }, h("div", { key: '5f02be2ba0e3b02e38c997f92e2235b72c245e94', class: "input-group" }, h("input", { key: '791818f062dfb12fdb82e6a36f78cdfa2d3d4c90', class: "form-control", name: "Q", placeholder: "Suche", type: "text", autocomplete: "off" }), h("span", { key: '5403c028759d73f11750adbbcfcd78399abec986', class: "input-group-btn force-full-width" }, h("button", { key: 'c553c93e1d6727a33379faff15ff3d2d1f1fc829', class: "btn btn-default search-addon", type: "submit" }, h("i", { key: '595c6b8bab74002d85b994af6edb1adf10c34add', class: "fa fa-search", "aria-hidden": "true" })))))))), h("div", { key: '5cd2952c6329675c83cf442ab89a74557d7147ec', innerHTML: this.htmlContent })));
141
+ var _a, _b, _c, _d, _e, _f;
142
+ return (h("div", { key: '93fd7f643af32209c7363bd40447e2cb5f03b87d', id: "nav-container", class: "xv-header" }, h("nav", { key: 'fe1f8989458093ad736f97be04d1d9eab29081c5', class: "navbar navbar-default navbar-fixed-top backend-force-relative" }, h("div", { key: '7b48f1581ebfc7327bcad90da1d7484271076e32', class: "container" }, h("div", { key: '9395c2928aa7d7e5e6acf8521f018dd55e0a1a58', class: "row" }, h("div", { key: '66bf156f202e95056a6198d08a2b862c33338fc8', class: "col-sm-3 col-xs-3 col-xxs-4 no-padding-right" }, h("div", { key: 'c617809b1cb179948fd9a41d5404ed3258687d81', class: "navbar-header" }, h("button", { key: '6be7b3ddce715f2360c60183eaeaead383418581', class: "btn btn-default navbar-toggle pull-left navbar-btn", "data-toggle": "collapse", "data-target": "#main-menu" }, h("i", { key: 'f71d314e1e95bd4b6acd44b96a0838d832aa6c8b', class: "fa fa-bars fa-lg", "aria-hidden": "true" })), h("div", { key: '06a93b00144a0e94d27ff0acc84290e807c4052f', class: "visible-xs-inline" }, h("a", { key: 'bc93916ba2cbdfe0761cbc2881c0284f5fe5cd24', href: "https://www.crossvertise.com/", class: "navbar-brand" }, h("img", { key: '47f2d23c4e7c1d76c670dba10bea33a1578a0485', src: "https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg", alt: "Crossvertise" }))), h("div", { key: 'a0b14089c386ab992c52400eeda4879ad34db9d8', class: "hidden-xs" }, h("a", { key: '637cb16a57adc6fa726438978b09b523a1bdcc33', href: "https://www.crossvertise.com/", class: "navbar-brand" }, h("img", { key: '4fa046cb5236a01e80cffcf2f92a78b6aebf1163', loading: "lazy", src: "https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg", alt: "Crossvertise" }))))), h("div", { key: '85ec0aa830f92704e578468824efa9281caaf676', class: "col-sm-9 col-xs-9 col-xxs-8 no-padding-left" }, h("ul", { key: '2fc012f39b02ed22dac98f168d9ad37e1d8d7406', class: "nav nav-pills nav-meta pull-right" }, this.metaNav.ImpersonationInfo && (h("li", { key: '20aead2e87b7eda8beed65746de4981d696dc390' }, h("a", { key: 'e79eefd3c317a0482738b07fffa5fc6151ebc90e', class: "btn btn-link navbar-btn hidden-xs", href: "#", onClick: this.togglePopover }, h("i", { key: '2c5874fd4a0f1cee0fa20945842893de4cc1d22d', class: "fa fa-user" }), h("i", { key: 'bacae1fac2e693953fc67029f192da807c6192b0', class: "fa fa-exchange-alt" })))), this.showPopover && this.metaNav.ImpersonationInfo && (h("div", { key: 'df8a66f19d87fcdea818e13f137647e17e0a405d', class: "popover popover-fixed fade bottom in", id: "popover939183" }, h("div", { key: '041b7e3c4b8e82d133aab96f7d8e7907eba7d887', class: "arrow" }), h("h3", { key: '16434bb25b28a41d22765d96e7b03e7cbdad5acb', class: "popover-title" }, "Momentan ist die Kundenperspektive aktiviert f\u00FCr:"), h("div", { key: 'eb49882fbb7eadf5ba96f5ff520b0c090095ca49', class: "popover-content" }, h("div", { key: '1504ab87c801568848586fc9590fc13c2be651bc', class: "row" }, h("div", { key: '5ee4cc8445fbe4b95399eda3da4f1c1c24a9be3d', class: "col-xs-12" }, h("table", { key: '64f421d82639b8e0f7d0b3d31745e04969ca7f60', class: "table-condensed" }, h("tbody", { key: '730c3c0ec2d64f470267e10358aeadfe7ed6e84f' }, h("tr", { key: '87fe00b45e553ea3e3d4e13a50ed8145c2e0e450' }, h("td", { key: '0ed15b4102a09489fa10ddaecd9a47aa69764ffc' }, h("span", { key: '074a28cc52eac24f9809603dab24d8ba6dbbf344' }, this.metaNav.ImpersonationInfo.NameAndTitle))), h("tr", { key: 'bda47eae106f3a39bd6622464802a6485656ce13' }, h("td", { key: '3915c1455d9ad29eef0adcd6a5bce0d44c8e7b37' }, h("span", { key: 'f1c81fcd3fb2e730759e0dd2b749c5205221887b' }, this.metaNav.ImpersonationInfo.CompanyName))), h("tr", { key: 'cfe48315f561c4efe2efe62b6d20f026d2438ef4' }, h("td", { key: '5d97273da13b069f4fe8c5e4147516520a486c42' }, h("span", { key: 'c38356d0674a52d8115cb27f1c70bfe584fd06de' }, this.metaNav.ImpersonationInfo.Email))), h("tr", { key: 'de97e437c572148c390778227e816b63549def9d' }, h("td", { key: 'ac587ea474b64a7b68186b7d15ad3af221cc0a9c' }, h("span", { key: '24e4c0f37eca6f5f5c64729219afcb6288b6f84c' }, this.metaNav.ImpersonationInfo.PhoneOffice))))))), h("div", { key: '660680c17e9f133a221b55220ef99d29ade82587', class: "row contact-contactform-container", id: "contact-contactform-container-nav" }, h("div", { key: 'c1aebd949b0beb9dc8630e042dea712b2b51ed90', class: "col-xs-12" }, h("a", { key: 'c329df2eccfca0eacef2dfc30ca8ff2173b7c5b7', class: "btn btn-primary btn-block", href: "/de-de/mycrossvertise/account/clearimpersonation" }, "Kundenperspektive verlassen")))))), h("li", { key: '04a0fa4d476413039daf259c4b8163f18e2dee7f' }, h("a", { key: '20625d0e480808eb019b167787c0419ac5981b8d', class: "btn btn-link navbar-btn hidden-xs", href: "#" }, "Kontakt"), h("a", { key: '36551fb1a9a1cd5d4b8b4f8efde1689672f6bb07', href: "/contact", class: "btn btn-link navbar-btn hidden-xs", style: { display: 'none' } }, "Kontakt"), h("a", { key: '2ae3fc4849533e03dfda03e8638dc46951d47ab5', class: "btn btn-default btn-link navbar-btn visible-xs hidden-xxs", href: "#" }, h("i", { key: '84b9e4d1791a6529835e1611f42ad35ca3cac513', class: "fa fa-phone" }))), this.metaNav.IsManager && (h("li", { key: '4b17bc00a443a419a4f14c402fde99dcb230c925', class: "dropdown" }, h("a", { key: '5b8557b0261ca870dad38baaae65795beb57530d', 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: 'b477a11fb1652f8f889fa8c94700847be706f74d', class: "fas fa-bell fa-lg" }), h("span", { key: '72fb51e3abbaec72b1a78a6b27b6b7b4c4fd2b29', id: "notifications-count", class: "badge badge-success badge-top-right", style: { display: 'none' } })))), this.metaNav.IsAuthenticated && (h("li", { key: '7d4bae2a48592957c0799fa0398aa2551b193198', class: "dropdown", id: "my-xv-menu" }, h("a", { key: '3e50dc08b1de0f71256461a54d27c85ff628cc48', 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: '988ea73bcda1d6c6eb44feacada29053ce5e21c8', class: "fa fa-user fa-lg text-success", "aria-hidden": "true" }), "\u00A0", h("span", { key: '42d08c2c4acf02c3115f6fcae2aedb2b9e8ba404', class: "hidden-xs" }, this.metaNav.UserMenuText), h("span", { key: 'b6a9fd99388628376cbef2aa416e74392a1e01dc', class: "caret" })), h("ul", { key: '98f1c2b6c7fd40c478676613f101d38f4c67c40e', class: "dropdown-menu-left dropdown-menu navbar-myxv" }, this.metaNav.IsManager && (h("li", { key: '0e56b69cdb8d5b8ce2bc524f2a9ccbab9e192ae4' }, h("a", { key: '424e760893e9e238e0f32ff0cd574fb44f0ec562', onClick: () => this.toggleCockpitMenu() }, h("i", { key: '1917959bccdd7cdf5b00bd44988f79bbebc7a0dc', class: "fa fa-tachometer-alt fa-fw" }), "\u00A0Cockpitfunktionen\u00A0", h("i", { key: '663965576a6cd76e310b43f5d7667edbf7225396', class: "fa fa-caret-down" })))), this.isCockpitMenuExpanded && ((_a = this.metaNav.ManagerCockpitMenu) === null || _a === void 0 ? void 0 : _a.map(item => (h("li", { class: 'user-menu-item' }, h("a", { href: item.Url, target: item.Target || '_self' }, h("i", { class: item.CssClass }), "\u00A0", item.Text))))), this.metaNav.IsManager && (h("li", { key: 'bb1fbbb00a8e0cf547a7f66bbea0c25e746f3b1e' }, h("a", { key: 'c59aa42ba2d4e358f3c7c9640a6a3f6c2b001013', onClick: () => this.toggleEntitiesMenu() }, h("i", { key: 'b53f21751ff726ed95ebe324e6b0426158ad25a4', class: "fa fa-cubes" }), "\u00A0Entit\u00E4ten\u00A0", h("i", { key: 'a2950dbd622abbfdc263a1caa23569082beaea50', class: "fa fa-caret-down" })))), this.isEntitiesMenuExpanded && ((_b = this.metaNav.ManagerEntitiesMenu) === null || _b === void 0 ? void 0 : _b.map(item => (h("li", { class: 'user-menu-item' }, h("a", { href: item.Url, target: item.Target || '_self' }, h("i", { class: item.CssClass }), "\u00A0", item.Text))))), (_c = this.metaNav.ManagerMenu) === null || _c === void 0 ? void 0 :
143
+ _c.map(item => (h("li", null, h("a", { href: item.Url, target: item.Target || '_self' }, h("i", { class: item.CssClass }), "\u00A0", item.Text)))), this.metaNav.IsManager && (h("li", { key: 'c0d56fd0f2b34d84c736f57402404b9ec5e98dd8', role: "separator", class: "divider" })), this.metaNav.IsManager && (h("li", { key: '143a401dbba971edaece0fdb79c5d4f2bccb7163' }, h("a", { key: 'c9892cd243aad26ac6211b2ea7d170c66b3d7e52', onClick: () => this.toggleUserMenu() }, h("i", { key: '8c6275b3fa326b335e500f6f414ccb7299767528', class: "fa fa-user" }), "\u00A0Mein Crossvertise\u00A0", h("span", { key: '3e426ee213fcca69e8512df20f23c64e497cfa2b', class: "badge" }, this.metaNav.PendingItems), h("i", { key: '8e82befce0c97f7be0e396fa7d3046b7c1152f45', class: "fa fa-caret-down" })))), this.isUserMenuExpanded && ((_d = this.metaNav.UserMenu) === null || _d === void 0 ? void 0 : _d.map(item => (h("li", { class: 'user-menu-item' }, h("a", { href: item.Url, target: item.Target || '_self' }, h("i", { class: item.CssClass }), "\u00A0", item.Text, item.BadgeText && (h("span", { class: "badge" }, "\u00A0", item.BadgeText, "\u00A0"))))))), this.metaNav.ImpersonationInfo.isImpersonated && (h("li", { key: '71db2fcb913e43c63eab02b6b09d733d33a864be', class: 'user-menu-item' }, h("a", { key: 'e3eab89b4f14cb352bdad7015ddb01584db79d9a', href: this.metaNav.ImpersonationInfo.ClearImpersonationUrl }, h("i", { key: '5741d69dfbf4a561c3bf9203d36870756e6486cd', class: "fa fa-exchange-alt" }), "\u00A0 Kundenperspektive verlassen"))), this.metaNav.IsManager && (h("li", { key: '9604be58c5333fa2edfdb3b18caf09bc47aa338d', role: "separator", class: "divider" })), (_e = this.metaNav.ActionsMenu) === null || _e === void 0 ? void 0 :
144
+ _e.map(item => (h("li", null, h("a", { href: item.Url, target: item.Target || '_self' }, h("i", { class: item.CssClass }), "\u00A0", item.Text)))), h("li", { key: 'c5a90368b0fac69b54616bf8afffae1c994e5152' }, h("a", { key: 'c9ae00d7d99aa1ff9e6163117c008021846ca4a2', href: "/de-de/mycrossvertise/account/logoff?returnUrl=/" }, h("i", { key: '049b3cbee18f4995029947a6c17fb9bc8bb2aa49', class: "fa fa-sign-out-alt fa-fw", "aria-hidden": "true" }), "\u00A0Logout"))))), h("li", { key: '149d7830fc4adb028319b513ca28355fcfc6fe10', class: "visible-sm-block visible-xs-block hidden-xxs" }, h("a", { key: '369db07c48112cdcd3efe25b1eb825785fe1e30c', class: "btn btn-default navbar-btn btn-link", "data-toggle": "collapse", "data-target": "#search-collapse" }, h("i", { key: '380e11725e3f14d107557c3bf09e709652c25f60', class: "fa fa-search", "aria-hidden": "true" }))), !this.metaNav.IsAuthenticated && (h("li", { key: '6b5c52b1ed06fba08ddf9aa878839d9407377e08', class: "hidden-xs hidden-sm" }, h("a", { key: 'b50d45cd41db554ecd210ea1086ccbe067a23300', role: "button", onClick: this.openLoginModal, class: "btn btn-default navbar-btn btn-link" }, h("i", { key: '3a51ad2ca17d9be3eabcdc81c817c4d09375e264', class: "fa fa-user fa-lg", "aria-hidden": "true" }), h("span", { key: '3529bbe6cd57a0671ecbaf3cf2702d9f86aeee9d' }, "Login")), h("xv-login-modal", { key: 'c814f739f0417e46e0fada997c5b400a3b21577a', visible: this.showLoginModal, onClose: this.closeLoginModal }))), !this.metaNav.IsAuthenticated && (h("li", { key: '5d1c58613419078e61ecfd2ca0e8beaa91d75511', class: "hidden-xs" }, h("a", { key: 'ccdb7d688302a34f3e7ee359175dfb81fc90b3f4', class: "btn btn-default navbar-btn btn-link", href: "/de-de/mycrossvertise/account/register" }, h("span", { key: 'd4dc5c89862ab94bfda49a97e53b13ba9455c480' }, "Registrieren")))), h("li", { key: '18151e11b76dd7d6df8f595d8d0a57353c623e5d', class: "navbar-divider hidden-xs" }), h("li", { key: '8ed41e0756fb4ddc5cd3c77c37969a5560826c95' }, h("a", { key: '01a378f50cd4e7f6fb7355487d302a45ffa672f5', class: "btn btn-success navbar-btn", href: "/de-de/mycrossvertise/shoppingcart/activecart" }, h("span", { key: '62a313a493304d3053880a969a6243b33f063fe9', class: "xv-font-icon-warenkorb fa-lg fa-fw", "aria-hidden": "true" }), h("span", { key: 'c7238c0cc4d25719dd2d8614823edb8134a84ed7', class: "hidden-xs hidden-sm" }, "\u00A0Warenkorb\u00A0"), h("span", { key: '81bdb531ee7acb303ff96377d6838640bf3f37d6', class: "badge badge-success" }, ((_f = this.metaNav.Cart) === null || _f === void 0 ? void 0 : _f.NumberOfItems) || 0))))))), h("div", { key: 'f0fbbe7a85f4d7f3d88f296c4b03f3db98963a7d', class: "collapse hidden-md hidden-lg", id: "search-collapse" }, h("div", { key: 'f23542a964bad418aa29b08f91cbfd981cb750c5', class: "container" }, h("form", { key: 'c246764fa9c9231b134947404bba5898879a6aed', action: "/de-de/media/search", class: "navbar-form", method: "get", role: "search" }, h("div", { key: 'c331948463fefe95f159ca8f09f2eebde4753b98', class: "input-group" }, h("input", { key: 'e23c5ffc1b31422f1b06019889da38ef67751d4c', class: "form-control", name: "Q", placeholder: "Suche", type: "text", autocomplete: "off" }), h("span", { key: '8f21b826d436836481d02c0d05b33a6ee76fccbb', class: "input-group-btn force-full-width" }, h("button", { key: 'cedea10cb7e54a081ab86b4380042d0e768ac966', class: "btn btn-default search-addon", type: "submit" }, h("i", { key: 'ebc209a41b781700fd6afa9866520dd580c6c0e5', class: "fa fa-search", "aria-hidden": "true" })))))))), h("div", { key: '09934df90dd8968f7358108795c3b734298a2d9d', innerHTML: this.htmlContent }), h("ul", { key: 'd343f3a2d5cdf0925d423d328ae655191579eb9a', class: "ui-autocomplete ui-front ui-menu ui-widget ui-widget-content ui-corner-all", id: "xv-search-suggestions", tabindex: "0", style: {
145
+ width: `${this.listPosition.width}px`,
146
+ top: `${this.listPosition.top}px`,
147
+ left: `${this.listPosition.left}px`,
148
+ display: this.suggestions.length ? 'block' : 'none',
149
+ position: 'absolute',
150
+ zIndex: '1000',
151
+ } }, this.suggestions.map(s => (h("li", { class: "ui-menu-item", role: "presentation" }, h("a", { href: "#", onClick: e => {
152
+ e.preventDefault();
153
+ this.navigateToSuggestion(s);
154
+ } }, s.title_de.split(new RegExp(`(${this.escapeRegExp(this.searchQuery)})`, 'gi')).map(part => part.toLowerCase() === this.searchQuery.toLowerCase() ? h("b", null, part) : part))))))));
34
155
  }
35
156
  static get is() { return "xv-header"; }
36
157
  static get originalStyleUrls() {
@@ -46,7 +167,14 @@ export class XvHeader {
46
167
  static get states() {
47
168
  return {
48
169
  "htmlContent": {},
49
- "showLoginModal": {}
170
+ "showLoginModal": {},
171
+ "isCockpitMenuExpanded": {},
172
+ "isEntitiesMenuExpanded": {},
173
+ "isUserMenuExpanded": {},
174
+ "suggestions": {},
175
+ "searchQuery": {},
176
+ "listPosition": {},
177
+ "showPopover": {}
50
178
  };
51
179
  }
52
180
  static get elementRef() { return "el"; }
@@ -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 { Component, h,Element, State } from '@stencil/core';\n\n@Component({\n tag: 'xv-header',\n styleUrl: 'xv-header.scss',\n})\nexport class XvHeader {\n @State() htmlContent: string = '';\n @State() showLoginModal = false;\n @Element() el: HTMLElement;\n\n\n private openLoginModal = () => {\n this.showLoginModal = true;\n };\n\n private closeLoginModal = () => {\n this.showLoginModal = false;\n };\n\n async componentWillLoad() {\n try {\n const response = await fetch('https://crossvertise.blob.core.windows.net/nav-sync-qa/nav.html');\n const text = await response.text();\n const parser = new DOMParser();\n const doc = parser.parseFromString(text, 'text/html');\n\n const mixedMenu = doc.querySelector('.alle-kategorien-menu');\n const allCategoriesGenerals = doc.querySelector('.alle-kategorien-allgemines');\n const allCategoriesContainer = doc.querySelector('#media-menu-item-alle-kategorien > .dropdown-menu');\n\n if (mixedMenu && allCategoriesGenerals && allCategoriesContainer) {\n allCategoriesContainer.appendChild(mixedMenu);\n allCategoriesContainer.appendChild(allCategoriesGenerals);\n }\n\n this.htmlContent = doc.body.innerHTML;\n } catch (error) {\n console.error('Failed to fetch header HTML:', error);\n }\n }\n\n render() {\n return (\n <div id=\"nav-container\" class=\"xv-header\">\n <nav class=\"navbar navbar-default navbar-fixed-top backend-force-relative\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-sm-3 col-xs-3 col-xxs-4 no-padding-right\">\n <div class=\"navbar-header\">\n <button class=\"btn btn-default navbar-toggle pull-left navbar-btn\" data-toggle=\"collapse\" data-target=\"#main-menu\">\n <i class=\"fa fa-bars fa-lg\" aria-hidden=\"true\"></i>\n </button>\n <div class=\"visible-xs-inline\">\n <a href=\"https://www.crossvertise.com/\" class=\"navbar-brand\">\n <img src=\"https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg\" alt=\"Crossvertise\" />\n </a>\n </div>\n <div class=\"hidden-xs\">\n <a href=\"https://www.crossvertise.com/\" class=\"navbar-brand\">\n <img loading=\"lazy\" src=\"https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg\" alt=\"Crossvertise\" />\n </a>\n </div>\n </div>\n </div>\n <div class=\"col-sm-9 col-xs-9 col-xxs-8 no-padding-left\">\n <ul class=\"nav nav-pills nav-meta pull-right\">\n <li>\n <a class=\"btn btn-link navbar-btn hidden-xs\" href=\"#\">\n <i class=\"fa fa-user\"></i>\n <i class=\"fa fa-exchange-alt\"></i>\n </a>\n </li>\n <li>\n <a class=\"btn btn-link navbar-btn hidden-xs\" href=\"#\">Kontakt</a>\n <a href=\"https://www.crossvertise.com/contact\" class=\"btn btn-link navbar-btn hidden-xs\" style={{ display: 'none' }}>Kontakt</a>\n <a class=\"btn btn-default btn-link navbar-btn visible-xs hidden-xxs\" href=\"#\">\n <i class=\"fa fa-phone\"></i>\n </a>\n </li>\n <li class=\"dropdown\" id=\"my-xv-menu\">\n <a href=\"#\" class=\"dropdown-toggle btn btn-default navbar-btn btn-link\" data-toggle=\"dropdown\">\n <i class=\"fa fa-user fa-lg text-success\" aria-hidden=\"true\"></i>&nbsp;\n <span class=\"hidden-xs\">Mein Bereich</span>\n <span class=\"caret\"></span>\n </a>\n <ul class=\"dropdown-menu-left dropdown-menu navbar-myxv\">\n <li>\n <a href=\"#\"><i class=\"fa fa-tachometer-alt fa-fw\"></i>&nbsp;Cockpitfunktionen&nbsp;<i class=\"fa fa-caret-down\"></i></a>\n </li>\n <li>\n <a href=\"#\"><i class=\"fa fa-cubes\"></i>&nbsp;Entitäten&nbsp;<i class=\"fa fa-caret-down\"></i></a>\n </li>\n <li role=\"separator\" class=\"divider\"></li>\n <li>\n <a href=\"#\"><i class=\"fa fa-user\"></i>&nbsp;Mein Crossvertise&nbsp;<span class=\"badge\">0</span><i class=\"fa fa-caret-down\"></i></a>\n </li>\n <li>\n <a href=\"https://www.crossvertise.com/de-de/mycrossvertise/account/logoff?returnUrl=https%3A%2F%2Fwww.crossvertise.com\">\n <i class=\"fa fa-sign-out-alt fa-fw\" aria-hidden=\"true\"></i>&nbsp;Logout\n </a>\n </li>\n </ul>\n </li>\n <li class=\"visible-sm-block visible-xs-block hidden-xxs\">\n <a class=\"btn btn-default navbar-btn btn-link\" data-toggle=\"collapse\" data-target=\"#search-collapse\">\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i>\n </a>\n </li>\n <li class=\"hidden-xs hidden-sm\">\n <a role=\"button\" onClick={this.openLoginModal} class=\"btn btn-default navbar-btn btn-link\">\n <i class=\"fa fa-user fa-lg\" aria-hidden=\"true\"></i>\n <span>Login</span>\n </a>\n </li>\n <xv-login-modal visible={this.showLoginModal} onClose={this.closeLoginModal}></xv-login-modal>\n <li class=\"hidden-xs\">\n <a class=\"btn btn-default navbar-btn btn-link\" href=\"https://market.crossvertise.com/de-de/mycrossvertise/account/register\">\n <span>Registrieren</span>\n </a>\n </li>\n <li class=\"navbar-divider hidden-xs\"></li>\n <li>\n <a class=\"btn btn-success navbar-btn\" href=\"https://market.crossvertise.com/de-de/mycrossvertise/shoppingcart/activecart\">\n <span class=\"xv-font-icon-warenkorb fa-lg fa-fw\" aria-hidden=\"true\"></span>\n <span class=\"hidden-xs hidden-sm\">&nbsp;Warenkorb&nbsp;</span>\n <span class=\"badge badge-success\">0</span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"collapse hidden-md hidden-lg\" id=\"search-collapse\">\n <div class=\"container\">\n <form action=\"https://market.crossvertise.com/de-de/media/search\" class=\"navbar-form\" method=\"get\" role=\"search\">\n <div class=\"input-group\">\n <input class=\"form-control\" name=\"Q\" placeholder=\"Suche\" type=\"text\" autocomplete=\"off\" />\n <span class=\"input-group-btn force-full-width\">\n <button class=\"btn btn-default search-addon\" type=\"submit\">\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i>\n </button>\n </span>\n </div>\n </form>\n </div>\n </div>\n </nav>\n <div innerHTML={this.htmlContent}></div>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"xv-header.js","sourceRoot":"","sources":["../../../src/components/xv-header/xv-header.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAM7D,MAAM,OAAO,QAAQ;IAJrB;QAKW,gBAAW,GAAW,EAAE,CAAC;QACzB,mBAAc,GAAG,KAAK,CAAC;QACvB,0BAAqB,GAAY,IAAI,CAAC;QACtC,2BAAsB,GAAY,IAAI,CAAC;QACvC,uBAAkB,GAAY,IAAI,CAAC;QAEnC,gBAAW,GAA8D,EAAE,CAAC;QAC5E,gBAAW,GAAW,EAAE,CAAC;QACzB,iBAAY,GAAiD,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3F,gBAAW,GAAG,KAAK,CAAC;QAGrB,sBAAiB,GAAkB,IAAI,CAAC;QAExC,kBAAa,GAAwE,EAAE,CAAC;QAExF,mBAAc,GAAG,GAAG,EAAE;YAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC,CAAC;QAEM,kBAAa,GAAG,GAAG,EAAE;YAC3B,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;QACvC,CAAC,CAAC;QAEM,oBAAe,GAAG,GAAG,EAAE;YAC7B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC9B,CAAC,CAAC;QAEM,sBAAiB,GAAG,KAAK,EAAE,CAAQ,EAAE,EAAE;YAC7C,MAAM,MAAM,GAAG,CAAC,CAAC,MAA0B,CAAC;YAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC5C,IAAI,CAAC,YAAY,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/G,MAAM,GAAG,GACP,uKAAuK;gBACvK,kBAAkB,CAAC,KAAK,CAAC;gBACzB,iEAAiE,CAAC;YACpE,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAC5B,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,SAAS,EAAE,kCAAkC;qBAC9C;iBACF,CAAC,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC/B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7F,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC;QAEM,yBAAoB,GAAG,CAAC,CAA0D,EAAE,EAAE;YAC5F,MAAM,GAAG,GAAG,8BAA8B,GAAG,CAAC,CAAC,SAAS,CAAC;YACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;QAC7B,CAAC,CAAC;QAMM,kBAAa,GAAG,CAAC,CAAgB,EAAE,EAAE;YAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,MAA0B,CAAC;YAC3C,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC9C,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBACrC,CAAC,CAAC,cAAc,EAAE,CAAC;YACrB,CAAC;iBAAM,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;gBACjB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACxB,CAAC;QACH,CAAC,CAAC;KA4WH;IA1XS,YAAY,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAcD,gBAAgB;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC7C,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACjD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBACtB,KAAK,EAAE,KAAyB;gBAChC,SAAS,EAAE;oBACT,CAAC,OAAO,EAAE,WAAW,CAAC;oBACtB,CAAC,SAAS,EAAE,aAAa,CAAC;iBAC3B;aACF,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,IAAI,CAAC,WAAW,GAAG,KAAyB,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAIO,WAAW;QACjB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,qBAAqB,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC;IAC3D,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,sBAAsB,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC;IAC7D,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC;IACrD,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE;YAClD,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE;gBACrC,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,iEAAiE,CAAC,CAAC;YAChG,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAEtD,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;YAC7D,MAAM,qBAAqB,GAAG,GAAG,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;YAC/E,MAAM,sBAAsB,GAAG,GAAG,CAAC,aAAa,CAAC,mDAAmD,CAAC,CAAC;YAEtG,IAAI,SAAS,IAAI,qBAAqB,IAAI,sBAAsB,EAAE,CAAC;gBACjE,sBAAsB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAC9C,sBAAsB,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,MAAM;;QACJ,OAAO,CACL,4DAAK,EAAE,EAAC,eAAe,EAAC,KAAK,EAAC,WAAW;YACvC,4DAAK,KAAK,EAAC,+DAA+D;gBAExE,4DAAK,KAAK,EAAC,WAAW;oBACpB,4DAAK,KAAK,EAAC,KAAK;wBACd,4DAAK,KAAK,EAAC,8CAA8C;4BACvD,4DAAK,KAAK,EAAC,eAAe;gCACxB,+DAAQ,KAAK,EAAC,oDAAoD,iBAAa,UAAU,iBAAa,YAAY;oCAChH,0DAAG,KAAK,EAAC,kBAAkB,iBAAa,MAAM,GAAK,CAC5C;gCACT,4DAAK,KAAK,EAAC,mBAAmB;oCAC5B,0DAAG,IAAI,EAAC,+BAA+B,EAAC,KAAK,EAAC,cAAc;wCAC1D,4DAAK,GAAG,EAAC,2FAA2F,EAAC,GAAG,EAAC,cAAc,GAAG,CACxH,CACA;gCACN,4DAAK,KAAK,EAAC,WAAW;oCACpB,0DAAG,IAAI,EAAC,+BAA+B,EAAC,KAAK,EAAC,cAAc;wCAC1D,4DAAK,OAAO,EAAC,MAAM,EAAC,GAAG,EAAC,qFAAqF,EAAC,GAAG,EAAC,cAAc,GAAG,CACjI,CACA,CACF,CACF;wBACN,4DAAK,KAAK,EAAC,6CAA6C;4BACtD,2DAAI,KAAK,EAAC,mCAAmC;gCAE1C,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,CACnC;oCACE,0DAAG,KAAK,EAAC,mCAAmC,EAAC,IAAI,EAAC,GAAG,EAAC,OAAO,EAAE,IAAI,CAAC,aAAa;wCAC/E,0DAAG,KAAK,EAAC,YAAY,GAAK;wCAC1B,0DAAG,KAAK,EAAC,oBAAoB,GAAK,CAChC,CACD,CACJ;gCAEA,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAK,CACpD,4DAAK,KAAK,EAAC,sCAAsC,EAAC,EAAE,EAAC,eAAe;oCAClE,4DAAK,KAAK,EAAC,OAAO,GAAO;oCACzB,2DAAI,KAAK,EAAC,eAAe,6DAAuD;oCAChF,4DAAK,KAAK,EAAC,iBAAiB;wCAC1B,4DAAK,KAAK,EAAC,KAAK;4CACd,4DAAK,KAAK,EAAC,WAAW;gDACpB,8DAAO,KAAK,EAAC,iBAAiB;oDAC5B;wDACE;4DAAI;gEAAI,+DAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAE,YAAY,CAAQ,CAAK,CAAK;wDAC7E;4DAAI;gEAAI,+DAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAE,WAAW,CAAQ,CAAK,CAAK;wDAC5E;4DAAI;gEAAI,+DAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAE,KAAK,CAAQ,CAAK,CAAK;wDACtE;4DAAI;gEAAI,+DAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAE,WAAW,CAAQ,CAAK,CAAK,CACtE,CACF,CACJ,CACF;wCACN,4DAAK,KAAK,EAAC,mCAAmC,EAAC,EAAE,EAAC,mCAAmC;4CACnF,4DAAK,KAAK,EAAC,WAAW;gDACpB,0DAAG,KAAK,EAAC,2BAA2B,EAAC,IAAI,EAAC,kDAAkD,kCAExF,CACA,CACF,CACF,CACF,CACP;gCAEH;oCACE,0DAAG,KAAK,EAAC,mCAAmC,EAAC,IAAI,EAAC,GAAG,cAAY;oCACjE,0DAAG,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,mCAAmC,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAa;oCACpG,0DAAG,KAAK,EAAC,2DAA2D,EAAC,IAAI,EAAC,GAAG;wCAC3E,0DAAG,KAAK,EAAC,aAAa,GAAK,CACzB,CACD;gCAGJ,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CACzB,2DAAI,KAAK,EAAC,UAAU;oCAClB,0DAAG,KAAK,EAAC,yCAAyC,iBACpC,UAAU,EACtB,IAAI,EAAC,QAAQ,oBACE,MAAM,mBACP,MAAM,mBACN,OAAO;wCACrB,0DAAG,KAAK,EAAC,mBAAmB,GAAK;wCACjC,6DAAM,EAAE,EAAC,qBAAqB,EAAC,KAAK,EAAC,qCAAqC,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAS,CAC5G,CACD,CACN;gCAGA,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,CAC/B,2DAAI,KAAK,EAAC,UAAU,EAAC,EAAE,EAAC,YAAY;oCAClC,0DAAG,KAAK,EAAC,yCAAyC,iBACpC,UAAU,EACtB,IAAI,EAAC,QAAQ,oBACE,MAAM,mBACP,MAAM,mBACN,OAAO;wCACrB,0DAAG,KAAK,EAAC,+BAA+B,iBAAa,MAAM,GAAK;;wCAEhE,6DAAM,KAAK,EAAC,WAAW,IAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAQ;wCAC1D,6DAAM,KAAK,EAAC,OAAO,GAAQ,CACzB;oCACJ,2DAAI,KAAK,EAAC,8CAA8C;wCAGrD,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CACzB;4CACE,0DAAG,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE;gDACxC,0DAAG,KAAK,EAAC,4BAA4B,GAAK;;gDAA6B,0DAAG,KAAK,EAAC,kBAAkB,GAAK,CACrG,CACD,CACN;wCACA,IAAI,CAAC,qBAAqB,KAAI,MAAA,IAAI,CAAC,OAAO,CAAC,kBAAkB,0CAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAC1E,UAAI,KAAK,EAAC,gBAAgB;4CACxB,SAAG,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO;gDAC/C,SAAG,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAM;;gDAC5B,IAAI,CAAC,IAAI,CACR,CACD,CACN,CAAC,CAAA;wCAGD,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CACzB;4CACE,0DAAG,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE;gDAAE,0DAAG,KAAK,EAAC,aAAa,GAAK;;gDAAqB,0DAAG,KAAK,EAAC,kBAAkB,GAAK,CAAI,CAC9H,CACN;wCACA,IAAI,CAAC,sBAAsB,KAAI,MAAA,IAAI,CAAC,OAAO,CAAC,mBAAmB,0CAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAC5E,UAAI,KAAK,EAAC,gBAAgB;4CACxB,SAAG,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO;gDAC/C,SAAG,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAM;;gDAC5B,IAAI,CAAC,IAAI,CACR,CACD,CACN,CAAC,CAAA,EAGD,MAAA,IAAI,CAAC,OAAO,CAAC,WAAW;2CAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CACrC;4CACE,SAAG,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO;gDAC/C,SAAG,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAM;;gDAC5B,IAAI,CAAC,IAAI,CACR,CACD,CACN,CAAC;wCAED,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CACzB,2DAAI,IAAI,EAAC,WAAW,EAAC,KAAK,EAAC,SAAS,GAAM,CAC3C;wCAGA,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CACzB;4CACE,0DAAG,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;gDAAE,0DAAG,KAAK,EAAC,YAAY,GAAK;;gDAA6B,6DAAM,KAAK,EAAC,OAAO,IAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAQ;gDAAA,0DAAG,KAAK,EAAC,kBAAkB,GAAK,CAAI,CACvL,CACN;wCACA,IAAI,CAAC,kBAAkB,KAAI,MAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,0CAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAC7D,UAAI,KAAK,EAAC,gBAAgB;4CACxB,SAAG,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO;gDAC/C,SAAG,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAM;;gDAC5B,IAAI,CAAC,IAAI;gDAAE,IAAI,CAAC,SAAS,IAAI,CAAC,YAAM,KAAK,EAAC,OAAO;;oDAAQ,IAAI,CAAC,SAAS;6DAAc,CAAC,CACrF,CACD,CACN,CAAC,CAAA;wCAID,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,cAAc,IAAI,CAChD,2DAAI,KAAK,EAAC,gBAAgB;4CACxB,0DAAG,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,qBAAqB;gDAC3D,0DAAG,KAAK,EAAC,oBAAoB,GAAK;qFAEhC,CACD,CACN;wCAEA,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CACzB,2DAAI,IAAI,EAAC,WAAW,EAAC,KAAK,EAAC,SAAS,GAAM,CAC3C,EAGA,MAAA,IAAI,CAAC,OAAO,CAAC,WAAW;2CAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CACrC;4CACE,SAAG,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO;gDAC/C,SAAG,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAM;;gDAC5B,IAAI,CAAC,IAAI,CACR,CACD,CACN,CAAC;wCAEF;4CACE,0DAAG,IAAI,EAAC,kDAAkD;gDAAC,0DAAG,KAAK,EAAC,0BAA0B,iBAAa,MAAM,GAAK;+DAAgB,CACnI,CACF,CACF,CACN;gCAED,2DAAI,KAAK,EAAC,8CAA8C;oCACtD,0DAAG,KAAK,EAAC,qCAAqC,iBAAa,UAAU,iBAAa,kBAAkB;wCAClG,0DAAG,KAAK,EAAC,cAAc,iBAAa,MAAM,GAAK,CAC7C,CACD;gCAGJ,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,CAChC,2DAAI,KAAK,EAAC,qBAAqB;oCAC7B,0DAAG,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,EAAC,qCAAqC;wCACxF,0DAAG,KAAK,EAAC,kBAAkB,iBAAa,MAAM,GAAK;wCACnD,uEAAkB,CAChB;oCACJ,uEAAgB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,GAAmB,CAC3F,CACN;gCAGA,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,CAChC,2DAAI,KAAK,EAAC,WAAW;oCACnB,0DAAG,KAAK,EAAC,qCAAqC,EAAC,IAAI,EAAC,wCAAwC;wCAC1F,8EAAyB,CACvB,CACD,CACN;gCAED,2DAAI,KAAK,EAAC,0BAA0B,GAAM;gCAC1C;oCACE,0DAAG,KAAK,EAAC,4BAA4B,EACnC,IAAI,EAAC,+CAA+C;wCACpD,6DAAM,KAAK,EAAC,oCAAoC,iBAAa,MAAM,GAAQ;wCAC3E,6DAAM,KAAK,EAAC,qBAAqB,4BAA6B;wCAC9D,6DAAM,KAAK,EAAC,qBAAqB,IAC9B,CAAA,MAAA,IAAI,CAAC,OAAO,CAAC,IAAI,0CAAE,aAAa,KAAI,CAAC,CACjC,CACL,CACD,CACF,CACD,CACF,CACF;gBACN,4DAAK,KAAK,EAAC,8BAA8B,EAAC,EAAE,EAAC,iBAAiB;oBAC5D,4DAAK,KAAK,EAAC,WAAW;wBACpB,6DAAM,MAAM,EAAC,qBAAqB,EAAC,KAAK,EAAC,aAAa,EAAC,MAAM,EAAC,KAAK,EAAC,IAAI,EAAC,QAAQ;4BAC/E,4DAAK,KAAK,EAAC,aAAa;gCACtB,8DAAO,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,GAAG,EAAC,WAAW,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,YAAY,EAAC,KAAK,GAAG;gCAC1F,6DAAM,KAAK,EAAC,kCAAkC;oCAC5C,+DAAQ,KAAK,EAAC,8BAA8B,EAAC,IAAI,EAAC,QAAQ;wCACxD,0DAAG,KAAK,EAAC,cAAc,iBAAa,MAAM,GAAK,CACxC,CACJ,CACH,CACD,CACH,CACF,CACF;YACN,4DAAK,SAAS,EAAE,IAAI,CAAC,WAAW,GAAQ;YACxC,2DACE,KAAK,EAAC,4EAA4E,EAClF,EAAE,EAAC,uBAAuB,EAC1B,QAAQ,EAAC,GAAG,EACZ,KAAK,EAAE;oBACL,KAAK,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI;oBACrC,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI;oBACjC,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI;oBACnC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;oBACnD,QAAQ,EAAE,UAAU;oBACpB,MAAM,EAAE,MAAM;iBACf,IAEA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACzB,UAAI,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,cAAc;gBAC1C,SACE,IAAI,EAAC,GAAG,EACR,OAAO,EAAE,CAAC,CAAC,EAAE;wBACX,CAAC,CAAC,cAAc,EAAE,CAAC;wBACnB,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;oBAC/B,CAAC,IAEA,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACzF,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,aAAI,IAAI,CAAK,CAAC,CAAC,CAAC,IAAI,CAC7E,CACC,CACD,CACN,CAAC,CACC,CACD,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Element, State } from '@stencil/core';\n\n@Component({\n tag: 'xv-header',\n styleUrl: 'xv-header.scss',\n})\nexport class XvHeader {\n @State() htmlContent: string = '';\n @State() showLoginModal = false;\n @State() isCockpitMenuExpanded: boolean = true;\n @State() isEntitiesMenuExpanded: boolean = true;\n @State() isUserMenuExpanded: boolean = true;\n @Element() el: HTMLElement;\n @State() suggestions: { title_de: string; page_link: string; source: string }[] = [];\n @State() searchQuery: string = '';\n @State() listPosition: { width: number; top: number; left: number } = { width: 0, top: 0, left: 0 };\n @State() showPopover = false;\n\n\n private currentSuggestion: string | null = null;\n private searchInput?: HTMLInputElement;\n private inputHandlers: { input: HTMLInputElement; listeners: [string, EventListener][] }[] = [];\n\n private openLoginModal = () => {\n this.showLoginModal = true;\n };\n\n private togglePopover = () => {\n this.showPopover = !this.showPopover;\n };\n\n private closeLoginModal = () => {\n this.showLoginModal = false;\n };\n\n private handleSearchInput = async (e: Event) => {\n const target = e.target as HTMLInputElement;\n const query = target.value.trim();\n this.searchQuery = query;\n if (query.length < 2) {\n this.suggestions = [];\n this.currentSuggestion = null;\n return;\n }\n const rect = target.getBoundingClientRect();\n this.listPosition = { width: rect.width, top: rect.bottom + window.scrollY, left: rect.left + window.scrollX };\n const url =\n 'https://xv-search.search.windows.net/indexes/xv-shared-index-live/docs/suggest?fuzzy=true&suggesterName=xv-shared-index-live-suggester&api-version=2020-06-30&search=' +\n encodeURIComponent(query) +\n '&$top=10&$select=title_de,page_link,source&$orderby=source desc';\n try {\n const resp = await fetch(url, {\n headers: {\n 'Content-Type': 'application/json',\n 'api-key': '7315DEF1FA0C8B12109B12BA28E517E7',\n },\n });\n const data = await resp.json();\n this.suggestions = Array.isArray(data.value) ? data.value : [];\n this.currentSuggestion = this.suggestions.length > 0 ? this.suggestions[0].title_de : null;\n } catch (err) {\n console.error('Failed to fetch suggestions', err);\n }\n };\n\n private navigateToSuggestion = (s: { title_de: string; page_link: string; source: string }) => {\n const url = \"https://www.crossvertise.com\" + s.page_link;\n window.location.href = url;\n };\n\n private escapeRegExp(text: string) {\n return text.replace(/[.*+?^${}()|[\\\\]\\\\]/g, '\\\\$&');\n }\n\n private handleKeyDown = (e: KeyboardEvent) => {\n const input = e.target as HTMLInputElement;\n if (e.key === 'Tab' && this.currentSuggestion) {\n input.value = this.currentSuggestion;\n e.preventDefault();\n } else if (e.key === 'Escape') {\n this.currentSuggestion = null;\n input.value = '';\n this.suggestions = [];\n }\n };\n\n componentDidLoad() {\n const inputs = this.el.querySelectorAll('input[name=\"Q\"]');\n inputs.forEach(input => {\n const handleInput = this.handleSearchInput.bind(this);\n const handleKeyDown = this.handleKeyDown.bind(this);\n input.addEventListener('input', handleInput);\n input.addEventListener('keydown', handleKeyDown);\n this.inputHandlers.push({\n input: input as HTMLInputElement,\n listeners: [\n ['input', handleInput],\n ['keydown', handleKeyDown],\n ],\n });\n if (!this.searchInput) {\n this.searchInput = input as HTMLInputElement;\n }\n }); \n }\n\n private metaNav;\n\n private loadMetaNav() {\n try {\n const metaNavRaw = localStorage.getItem('metaNav');\n if (metaNavRaw) {\n this.metaNav = JSON.parse(metaNavRaw);\n }\n } catch (e) {\n console.warn('Could not parse metaNav from localStorage:', e);\n }\n }\n\n private toggleCockpitMenu() {\n this.isCockpitMenuExpanded = !this.isCockpitMenuExpanded;\n }\n\n private toggleEntitiesMenu() {\n this.isEntitiesMenuExpanded = !this.isEntitiesMenuExpanded;\n }\n\n private toggleUserMenu() {\n this.isUserMenuExpanded = !this.isUserMenuExpanded;\n }\n\n disconnectedCallback() {\n this.inputHandlers.forEach(({ input, listeners }) => {\n listeners.forEach(([event, handler]) => {\n input.removeEventListener(event, handler);\n });\n });\n this.inputHandlers = [];\n }\n\n async componentWillLoad() {\n this.loadMetaNav();\n try {\n const response = await fetch('https://crossvertise.blob.core.windows.net/nav-sync-qa/nav.html');\n const text = await response.text();\n const parser = new DOMParser();\n const doc = parser.parseFromString(text, 'text/html');\n\n const mixedMenu = doc.querySelector('.alle-kategorien-menu');\n const allCategoriesGenerals = doc.querySelector('.alle-kategorien-allgemines');\n const allCategoriesContainer = doc.querySelector('#media-menu-item-alle-kategorien > .dropdown-menu');\n\n if (mixedMenu && allCategoriesGenerals && allCategoriesContainer) {\n allCategoriesContainer.appendChild(mixedMenu);\n allCategoriesContainer.appendChild(allCategoriesGenerals);\n }\n\n this.htmlContent = doc.body.innerHTML;\n } catch (error) {\n console.error('Failed to fetch header HTML:', error?.message, error);\n }\n }\n\n render() {\n return (\n <div id=\"nav-container\" class=\"xv-header\">\n <nav class=\"navbar navbar-default navbar-fixed-top backend-force-relative\"> \n\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-sm-3 col-xs-3 col-xxs-4 no-padding-right\">\n <div class=\"navbar-header\">\n <button class=\"btn btn-default navbar-toggle pull-left navbar-btn\" data-toggle=\"collapse\" data-target=\"#main-menu\">\n <i class=\"fa fa-bars fa-lg\" aria-hidden=\"true\"></i>\n </button>\n <div class=\"visible-xs-inline\">\n <a href=\"https://www.crossvertise.com/\" class=\"navbar-brand\">\n <img src=\"https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg\" alt=\"Crossvertise\" />\n </a>\n </div>\n <div class=\"hidden-xs\">\n <a href=\"https://www.crossvertise.com/\" class=\"navbar-brand\">\n <img loading=\"lazy\" src=\"https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg\" alt=\"Crossvertise\" />\n </a>\n </div>\n </div>\n </div>\n <div class=\"col-sm-9 col-xs-9 col-xxs-8 no-padding-left\">\n <ul class=\"nav nav-pills nav-meta pull-right\">\n\n {this.metaNav.ImpersonationInfo &&(\n <li>\n <a class=\"btn btn-link navbar-btn hidden-xs\" href=\"#\" onClick={this.togglePopover}>\n <i class=\"fa fa-user\"></i>\n <i class=\"fa fa-exchange-alt\"></i>\n </a>\n </li>\n )}\n \n {this.showPopover && this.metaNav.ImpersonationInfo && (\n <div class=\"popover popover-fixed fade bottom in\" id=\"popover939183\">\n <div class=\"arrow\"></div>\n <h3 class=\"popover-title\">Momentan ist die Kundenperspektive aktiviert für:</h3>\n <div class=\"popover-content\">\n <div class=\"row\">\n <div class=\"col-xs-12\">\n <table class=\"table-condensed\">\n <tbody>\n <tr><td><span>{this.metaNav.ImpersonationInfo .NameAndTitle}</span></td></tr>\n <tr><td><span>{this.metaNav.ImpersonationInfo .CompanyName}</span></td></tr>\n <tr><td><span>{this.metaNav.ImpersonationInfo .Email}</span></td></tr>\n <tr><td><span>{this.metaNav.ImpersonationInfo .PhoneOffice}</span></td></tr>\n </tbody>\n </table>\n </div>\n </div>\n <div class=\"row contact-contactform-container\" id=\"contact-contactform-container-nav\">\n <div class=\"col-xs-12\">\n <a class=\"btn btn-primary btn-block\" href=\"/de-de/mycrossvertise/account/clearimpersonation\">\n Kundenperspektive verlassen\n </a>\n </div>\n </div>\n </div>\n </div>\n )}\n\n <li>\n <a class=\"btn btn-link navbar-btn hidden-xs\" href=\"#\">Kontakt</a>\n <a href=\"/contact\" class=\"btn btn-link navbar-btn hidden-xs\" style={{ display: 'none' }}>Kontakt</a>\n <a class=\"btn btn-default btn-link navbar-btn visible-xs hidden-xxs\" href=\"#\">\n <i class=\"fa fa-phone\"></i>\n </a>\n </li>\n\n {/* Notifications Bell for Manager */}\n {this.metaNav.IsManager && (\n <li class=\"dropdown\">\n <a class=\"dropdown-toggle btn navbar-btn btn-link\"\n data-toggle=\"dropdown\"\n role=\"button\"\n data-container=\"body\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\">\n <i class=\"fas fa-bell fa-lg\"></i>\n <span id=\"notifications-count\" class=\"badge badge-success badge-top-right\" style={{ display: 'none' }}></span>\n </a>\n </li>\n )}\n\n {/* User Menu Dropdown */}\n {this.metaNav.IsAuthenticated && (\n <li class=\"dropdown\" id=\"my-xv-menu\">\n <a class=\"dropdown-toggle btn navbar-btn btn-link\"\n data-toggle=\"dropdown\"\n role=\"button\"\n data-container=\"body\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\">\n <i class=\"fa fa-user fa-lg text-success\" aria-hidden=\"true\"></i>\n &nbsp;\n <span class=\"hidden-xs\">{this.metaNav.UserMenuText}</span>\n <span class=\"caret\"></span>\n </a>\n <ul class=\"dropdown-menu-left dropdown-menu navbar-myxv\">\n\n {/* Manager Menu Section */}\n {this.metaNav.IsManager && (\n <li>\n <a onClick={() => this.toggleCockpitMenu()}>\n <i class=\"fa fa-tachometer-alt fa-fw\"></i>&nbsp;Cockpitfunktionen&nbsp;<i class=\"fa fa-caret-down\"></i>\n </a>\n </li>\n )}\n {this.isCockpitMenuExpanded && this.metaNav.ManagerCockpitMenu?.map(item => (\n <li class='user-menu-item'>\n <a href={item.Url} target={item.Target || '_self'}>\n <i class={item.CssClass}></i>&nbsp;\n {item.Text}\n </a>\n </li>\n ))}\n\n {/* Manager Entities Menu */}\n {this.metaNav.IsManager && (\n <li>\n <a onClick={() => this.toggleEntitiesMenu()}><i class=\"fa fa-cubes\"></i>&nbsp;Entitäten&nbsp;<i class=\"fa fa-caret-down\"></i></a>\n </li>\n )}\n {this.isEntitiesMenuExpanded && this.metaNav.ManagerEntitiesMenu?.map(item => (\n <li class='user-menu-item'>\n <a href={item.Url} target={item.Target || '_self'}>\n <i class={item.CssClass}></i>&nbsp;\n {item.Text}\n </a>\n </li>\n ))}\n\n {/* Administration */}\n {this.metaNav.ManagerMenu?.map(item => (\n <li>\n <a href={item.Url} target={item.Target || '_self'}>\n <i class={item.CssClass}></i>&nbsp;\n {item.Text}\n </a>\n </li>\n ))}\n\n {this.metaNav.IsManager && (\n <li role=\"separator\" class=\"divider\"></li>\n )}\n\n {/* User Menu */}\n {this.metaNav.IsManager && (\n <li >\n <a onClick={() => this.toggleUserMenu()}><i class=\"fa fa-user\"></i>&nbsp;Mein Crossvertise&nbsp;<span class=\"badge\">{this.metaNav.PendingItems}</span><i class=\"fa fa-caret-down\"></i></a>\n </li>\n )}\n {this.isUserMenuExpanded && this.metaNav.UserMenu?.map(item => (\n <li class='user-menu-item'>\n <a href={item.Url} target={item.Target || '_self'}>\n <i class={item.CssClass}></i>&nbsp;\n {item.Text}{item.BadgeText && (<span class=\"badge\">&nbsp;{item.BadgeText}&nbsp;</span>)}\n </a>\n </li>\n ))}\n\n\n {/* Impersonation Info */}\n {this.metaNav.ImpersonationInfo.isImpersonated && (\n <li class='user-menu-item'>\n <a href={this.metaNav.ImpersonationInfo.ClearImpersonationUrl}>\n <i class=\"fa fa-exchange-alt\"></i>&nbsp;\n Kundenperspektive verlassen\n </a>\n </li>\n )}\n\n {this.metaNav.IsManager && (\n <li role=\"separator\" class=\"divider\"></li>\n )}\n\n {/* Actions Menu */}\n {this.metaNav.ActionsMenu?.map(item => (\n <li>\n <a href={item.Url} target={item.Target || '_self'}>\n <i class={item.CssClass}></i>&nbsp;\n {item.Text}\n </a>\n </li>\n ))}\n\n <li>\n <a href=\"/de-de/mycrossvertise/account/logoff?returnUrl=/\"><i class=\"fa fa-sign-out-alt fa-fw\" aria-hidden=\"true\"></i>&nbsp;Logout</a>\n </li>\n </ul>\n </li>\n )}\n\n <li class=\"visible-sm-block visible-xs-block hidden-xxs\">\n <a class=\"btn btn-default navbar-btn btn-link\" data-toggle=\"collapse\" data-target=\"#search-collapse\">\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i>\n </a>\n </li>\n\n {/* Login */}\n {!this.metaNav.IsAuthenticated && (\n <li class=\"hidden-xs hidden-sm\">\n <a role=\"button\" onClick={this.openLoginModal} class=\"btn btn-default navbar-btn btn-link\">\n <i class=\"fa fa-user fa-lg\" aria-hidden=\"true\"></i>\n <span>Login</span>\n </a>\n <xv-login-modal visible={this.showLoginModal} onClose={this.closeLoginModal}></xv-login-modal>\n </li>\n )}\n\n {/* Registrieren */}\n {!this.metaNav.IsAuthenticated && (\n <li class=\"hidden-xs\">\n <a class=\"btn btn-default navbar-btn btn-link\" href=\"/de-de/mycrossvertise/account/register\">\n <span>Registrieren</span>\n </a>\n </li>\n )}\n\n <li class=\"navbar-divider hidden-xs\"></li>\n <li>\n <a class=\"btn btn-success navbar-btn\"\n href=\"/de-de/mycrossvertise/shoppingcart/activecart\">\n <span class=\"xv-font-icon-warenkorb fa-lg fa-fw\" aria-hidden=\"true\"></span>\n <span class=\"hidden-xs hidden-sm\">&nbsp;Warenkorb&nbsp;</span>\n <span class=\"badge badge-success\">\n {this.metaNav.Cart?.NumberOfItems || 0}\n </span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"collapse hidden-md hidden-lg\" id=\"search-collapse\">\n <div class=\"container\">\n <form action=\"/de-de/media/search\" class=\"navbar-form\" method=\"get\" role=\"search\">\n <div class=\"input-group\">\n <input class=\"form-control\" name=\"Q\" placeholder=\"Suche\" type=\"text\" autocomplete=\"off\" />\n <span class=\"input-group-btn force-full-width\">\n <button class=\"btn btn-default search-addon\" type=\"submit\">\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i>\n </button>\n </span>\n </div>\n </form>\n </div>\n </div>\n </nav>\n <div innerHTML={this.htmlContent}></div>\n <ul\n class=\"ui-autocomplete ui-front ui-menu ui-widget ui-widget-content ui-corner-all\"\n id=\"xv-search-suggestions\"\n tabindex=\"0\"\n style={{\n width: `${this.listPosition.width}px`,\n top: `${this.listPosition.top}px`,\n left: `${this.listPosition.left}px`,\n display: this.suggestions.length ? 'block' : 'none',\n position: 'absolute',\n zIndex: '1000',\n }}\n >\n {this.suggestions.map(s => (\n <li class=\"ui-menu-item\" role=\"presentation\">\n <a\n href=\"#\"\n onClick={e => {\n e.preventDefault();\n this.navigateToSuggestion(s);\n }}\n >\n {s.title_de.split(new RegExp(`(${this.escapeRegExp(this.searchQuery)})`, 'gi')).map(part =>\n part.toLowerCase() === this.searchQuery.toLowerCase() ? <b>{part}</b> : part\n )}\n </a>\n </li>\n ))}\n </ul> \n </div>\n );\n }\n}"]}
@@ -12,7 +12,7 @@ export class XvLink {
12
12
  e.stopPropagation();
13
13
  }
14
14
  render() {
15
- return (h(Host, { key: 'ba018404c9793ec486297fd0b033f30dec4a5d02', class: `xv-link_${this.variant}` }, h("a", { key: 'ab2696b4a1b3a9f46f7a7358073d62fa368e1705', href: this.href, onClick: this.preventLinkHandler.bind(this), class: `xv-link ${this.disabled ? 'xv-link_disabled' : ''} ${this.size}`, target: this.target }, h("slot", { key: 'e9d547bfd23215c9291080fb45b539743d56e4ed', name: "icon-left" }), h("slot", { key: '2ffb2c2b7fbe7f29cfb8913fc8900142c03cb385' }), h("slot", { key: '7d5d6c69aa44cbda8d954d01fcf580ae21d99a84', name: "icon-right" }))));
15
+ return (h(Host, { key: '077c6a5d0d2e382458e69a377c73f354fe4b3524', class: `xv-link_${this.variant}` }, h("a", { key: '7fe343ed2076c25bf4607df21ec59986f30daf1d', href: this.href, onClick: this.preventLinkHandler.bind(this), class: `xv-link ${this.disabled ? 'xv-link_disabled' : ''} ${this.size}`, target: this.target }, h("slot", { key: 'ac806bdf7552f020d89ad5808dd3ed9b4eaf2f8c', name: "icon-left" }), h("slot", { key: 'f9a7a7c7d4605964ad80d420b4f91be95f24136f' }), h("slot", { key: '044239a7f478b3c493e4652c11451cc79a9b82e3', name: "icon-right" }))));
16
16
  }
17
17
  static get is() { return "xv-link-v2"; }
18
18
  static get encapsulation() { return "shadow"; }
@@ -58,7 +58,7 @@ export class XvModal {
58
58
  }
59
59
  render() {
60
60
  var _a;
61
- return (h(Host, { key: '2fe817b5afe354f4fefd9bdd4efde9956936b0d2', role: "dialog", size: this.size, id: this.el.id }, h("slot", { key: 'e7d2514be603ac04a401f6fab9e8135d9fc02dfc', name: "trigger", onSlotchange: this.setupTrigger }), h("div", { key: 'aa2faf03935125e6ab2156b9c2909485a829e7ed', class: { backdrop: true }, onClick: this.onBackdropClick }, h("div", { key: 'b21b739d5f3b03a5cf6345bb2de370f306e2a763', class: "modal" }, h("button", { key: '3f7c775b5145bd6dec8478b625dec78f84b38e9a', class: "modal_close", onClick: this.closeModal.bind(this) }, "\u00D7"), h("div", { key: '53a5b436a40f4e3b3c85db0bf94d6e96f0d297fe', class: "modal_header" }, h("slot", { key: 'a9f44d4b9cab25b39f2780b85ba06b7b19c57b72', name: "header" }, ((_a = this.el) === null || _a === void 0 ? void 0 : _a.title) && h("h5", { key: '3c8aeae5ad36dc00ce02badf5c9c7f54f55083a5', class: "modal_header__title" }, this.el.title))), h("div", { key: 'f8d57aacd10b4d20521c25ca71d87d6ccc5a3145', class: { 'modal_content': true, overflow: this.overflow } }, h("slot", { key: '1522095e46206cb1738c29dc4c02fb0bb288f490' })), h("div", { key: '50578184ddd5d3b7284f1c5f78d76c1c84bfa73a', class: "modal_footer" }, h("slot", { key: 'fc76f6ea53b69c11446be8394e0ceb6caa9c9e5a', name: "footer" })), !!this.loading && (h("div", { key: '99f0045bd17cfd3d891b8134858b655b1cb6cb48', class: "loading" }, h("xv-loader-v2", { key: '0440f5a5e82f2f2061425e26ebf85386afe6bb67', size: SIZE_VAR.LG })))))));
61
+ return (h(Host, { key: '5ba704d4d640754218b5abe1c8f0559516926138', role: "dialog", size: this.size, id: this.el.id }, h("slot", { key: '8e1f96318081cb32eb0abf0263474629cf8485a3', name: "trigger", onSlotchange: this.setupTrigger }), h("div", { key: '3801a7e24dc2d8ccde493019011ea0d4094d7790', class: { backdrop: true }, onClick: this.onBackdropClick }, h("div", { key: '6d07afa0629f708cc2128ec9fed346646a8a0e51', class: "modal" }, h("button", { key: '3b429f23cf861a21d78707885abfc2d89adda1fe', class: "modal_close", onClick: this.closeModal.bind(this) }, "\u00D7"), h("div", { key: '120d258fbccebde85a32e6f5e71b8c10d9350bf1', class: "modal_header" }, h("slot", { key: '93bcef31685ac5fb308262388414cd00142be549', name: "header" }, ((_a = this.el) === null || _a === void 0 ? void 0 : _a.title) && h("h5", { key: 'ba0a90d36a048005bd912985c67d9eb243ac284f', class: "modal_header__title" }, this.el.title))), h("div", { key: 'af80967d7c116d993e5965c5e0f635011976befe', class: { 'modal_content': true, overflow: this.overflow } }, h("slot", { key: '01e0d9cbb531e14fc153693caf52b0784f352018' })), h("div", { key: 'bf611ca504579ccc444503f2e797b8584e79905a', class: "modal_footer" }, h("slot", { key: '4a340e93a8c1970227b59ac3f28157ba49266e2f', name: "footer" })), !!this.loading && (h("div", { key: '377608fc48e83e6e44c692199b657a8c5368cecb', class: "loading" }, h("xv-loader-v2", { key: '78296cc8c55622c729a80d77920933ce3a5b3789', size: SIZE_VAR.LG })))))));
62
62
  }
63
63
  disconnectedCallback() {
64
64
  this.removeTriggerListener();
@@ -115,7 +115,7 @@
115
115
  display: flex;
116
116
  flex-direction: column;
117
117
  row-gap: var(--spacing-06, 24px);
118
- word-break: break-all;
118
+ word-break: break-word;
119
119
  }
120
120
  :host .content_title {
121
121
  text-align: left;