xv-webcomponents 0.1.38 → 0.1.41

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 (111) hide show
  1. package/dist/cjs/{index-D41mMXvd.js → index-MLh9SbX2.js} +349 -8
  2. package/dist/cjs/index-MLh9SbX2.js.map +1 -0
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/xv-accordion-v2_33.cjs.entry.js +3411 -0
  5. package/dist/cjs/xv-accordion-v2_33.cjs.entry.js.map +1 -0
  6. package/dist/cjs/xv-breadcrumbs-v2.cjs.entry.js +1 -1
  7. package/dist/cjs/xv-webcomponents.cjs.js +3 -3
  8. package/dist/cjs/xv-webcomponents.cjs.js.map +1 -1
  9. package/dist/collection/collection-manifest.json +8 -1
  10. package/dist/collection/components/xv-button/xv-button-v2.css +136 -118
  11. package/dist/collection/components/xv-button/xv-button.js +132 -67
  12. package/dist/collection/components/xv-button/xv-button.js.map +1 -1
  13. package/dist/collection/components/xv-card/xv-card.js +1 -1
  14. package/dist/collection/components/xv-checkbox/xv-checkbox.css +3 -0
  15. package/dist/collection/components/xv-checkbox/xv-checkbox.js +1 -1
  16. package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.css +30 -0
  17. package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.js +80 -0
  18. package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.js.map +1 -0
  19. package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.css +4 -0
  20. package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.js +42 -0
  21. package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.js.map +1 -0
  22. package/dist/collection/components/xv-data-table/xv-data-table.css +51 -0
  23. package/dist/collection/components/xv-data-table/xv-data-table.js +130 -0
  24. package/dist/collection/components/xv-data-table/xv-data-table.js.map +1 -0
  25. package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js +1 -1
  26. package/dist/collection/components/xv-dropdown/xv-dropdown.css +6 -1
  27. package/dist/collection/components/xv-dropdown/xv-dropdown.js +20 -1
  28. package/dist/collection/components/xv-dropdown/xv-dropdown.js.map +1 -1
  29. package/dist/collection/components/xv-file-uploader/_vars.js +6 -0
  30. package/dist/collection/components/xv-file-uploader/_vars.js.map +1 -0
  31. package/dist/collection/components/xv-file-uploader/xv-file-uploader.css +136 -0
  32. package/dist/collection/components/xv-file-uploader/xv-file-uploader.js +448 -0
  33. package/dist/collection/components/xv-file-uploader/xv-file-uploader.js.map +1 -0
  34. package/dist/collection/components/xv-footer/xv-footer.js +1 -1
  35. package/dist/collection/components/xv-header/xv-header.js +10 -2
  36. package/dist/collection/components/xv-header/xv-header.js.map +1 -1
  37. package/dist/collection/components/xv-link/xv-link.js +1 -1
  38. package/dist/collection/components/xv-login-modal/xv-login-modal.css +22575 -0
  39. package/dist/collection/components/xv-login-modal/xv-login-modal.js +146 -0
  40. package/dist/collection/components/xv-login-modal/xv-login-modal.js.map +1 -0
  41. package/dist/collection/components/xv-modal/xv-modal.js +1 -1
  42. package/dist/collection/components/xv-notification/xv-notification.css +1 -0
  43. package/dist/collection/components/xv-notification/xv-notification.js +1 -1
  44. package/dist/collection/components/xv-number-input/xv-number-input.css +128 -0
  45. package/dist/collection/components/xv-number-input/xv-number-input.js +373 -0
  46. package/dist/collection/components/xv-number-input/xv-number-input.js.map +1 -0
  47. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.js +1 -1
  48. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.js +1 -1
  49. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +1 -1
  50. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +1 -1
  51. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js +1 -1
  52. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +1 -1
  53. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +1 -1
  54. package/dist/collection/components/xv-table/xv-table.js +1 -1
  55. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +1 -1
  56. package/dist/collection/components/xv-tabs/xv-tabs.js +1 -2
  57. package/dist/collection/components/xv-tabs/xv-tabs.js.map +1 -1
  58. package/dist/collection/components/xv-tag/xv-tag.js +1 -1
  59. package/dist/collection/components/xv-text-input/xv-text-input.css +110 -89
  60. package/dist/collection/components/xv-text-input/xv-text-input.js +113 -80
  61. package/dist/collection/components/xv-text-input/xv-text-input.js.map +1 -1
  62. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.css +95 -0
  63. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js +201 -0
  64. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js.map +1 -0
  65. package/dist/collection/components/xv-tooltip/xv-tooltip.css +31 -147
  66. package/dist/collection/components/xv-tooltip/xv-tooltip.js +59 -34
  67. package/dist/collection/components/xv-tooltip/xv-tooltip.js.map +1 -1
  68. package/dist/esm/{index-Datpns0U.js → index-DLYJiP99.js} +349 -8
  69. package/dist/esm/index-DLYJiP99.js.map +1 -0
  70. package/dist/esm/loader.js +3 -3
  71. package/dist/esm/xv-accordion-v2_33.entry.js +3377 -0
  72. package/dist/esm/xv-accordion-v2_33.entry.js.map +1 -0
  73. package/dist/esm/xv-breadcrumbs-v2.entry.js +1 -1
  74. package/dist/esm/xv-webcomponents.js +4 -4
  75. package/dist/esm/xv-webcomponents.js.map +1 -1
  76. package/dist/types/components/xv-button/xv-button.d.ts +21 -12
  77. package/dist/types/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.d.ts +6 -0
  78. package/dist/types/components/xv-data-table/xv-data-table-row/xv-data-table-row.d.ts +4 -0
  79. package/dist/types/components/xv-data-table/xv-data-table.d.ts +9 -0
  80. package/dist/types/components/xv-dropdown/xv-dropdown.d.ts +1 -0
  81. package/dist/types/components/xv-file-uploader/_vars.d.ts +4 -0
  82. package/dist/types/components/xv-file-uploader/xv-file-uploader.d.ts +36 -0
  83. package/dist/types/components/xv-header/xv-header.d.ts +3 -0
  84. package/dist/types/components/xv-login-modal/xv-login-modal.d.ts +29 -0
  85. package/dist/types/components/xv-number-input/xv-number-input.d.ts +26 -0
  86. package/dist/types/components/xv-text-input/xv-text-input.d.ts +10 -11
  87. package/dist/types/components/xv-toggle-tip/xv-toggle-tip.d.ts +19 -0
  88. package/dist/types/components/xv-tooltip/xv-tooltip.d.ts +10 -8
  89. package/dist/types/components.d.ts +636 -49
  90. package/dist/xv-webcomponents/{p-054f5d59.entry.js → p-5b63a259.entry.js} +2 -2
  91. package/dist/xv-webcomponents/p-DLYJiP99.js +3 -0
  92. package/dist/xv-webcomponents/p-DLYJiP99.js.map +1 -0
  93. package/dist/xv-webcomponents/p-ec72208c.entry.js +2 -0
  94. package/dist/xv-webcomponents/p-ec72208c.entry.js.map +1 -0
  95. package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
  96. package/dist/xv-webcomponents/xv-webcomponents.esm.js.map +1 -1
  97. package/package.json +6 -4
  98. package/dist/cjs/index-D41mMXvd.js.map +0 -1
  99. package/dist/cjs/xv-accordion-v2_26.cjs.entry.js +0 -1193
  100. package/dist/cjs/xv-accordion-v2_26.cjs.entry.js.map +0 -1
  101. package/dist/collection/components/xv-text-input/_vars.js +0 -7
  102. package/dist/collection/components/xv-text-input/_vars.js.map +0 -1
  103. package/dist/esm/index-Datpns0U.js.map +0 -1
  104. package/dist/esm/xv-accordion-v2_26.entry.js +0 -1166
  105. package/dist/esm/xv-accordion-v2_26.entry.js.map +0 -1
  106. package/dist/types/components/xv-text-input/_vars.d.ts +0 -5
  107. package/dist/xv-webcomponents/p-4d970ae4.entry.js +0 -2
  108. package/dist/xv-webcomponents/p-4d970ae4.entry.js.map +0 -1
  109. package/dist/xv-webcomponents/p-Datpns0U.js +0 -3
  110. package/dist/xv-webcomponents/p-Datpns0U.js.map +0 -1
  111. /package/dist/xv-webcomponents/{p-054f5d59.entry.js.map → p-5b63a259.entry.js.map} +0 -0
@@ -0,0 +1,448 @@
1
+ import { h, Host, Fragment } from "@stencil/core";
2
+ import { SIZE_VAR } from "../../types/enum";
3
+ import { XvFileUploaderVariants } from "./_vars";
4
+ export class XvFileUploader {
5
+ constructor() {
6
+ this.variant = XvFileUploaderVariants.BUTTON;
7
+ this.size = SIZE_VAR.MD;
8
+ this.accept = [];
9
+ this.maxFileSizeMB = 5;
10
+ this.maxFiles = 20;
11
+ this.multiple = true;
12
+ this.files = [];
13
+ this.loadingStates = [];
14
+ this.errors = [];
15
+ this.dragActive = false;
16
+ this.errorMessages = [];
17
+ this.onFileSelect = (event) => {
18
+ const input = event.target;
19
+ const selectedFiles = Array.from(input.files || []);
20
+ this.handleFiles(selectedFiles);
21
+ };
22
+ this.onDrop = (event) => {
23
+ var _a;
24
+ event.preventDefault();
25
+ this.dragActive = false;
26
+ const droppedFiles = Array.from(((_a = event.dataTransfer) === null || _a === void 0 ? void 0 : _a.files) || []);
27
+ this.handleFiles(droppedFiles);
28
+ };
29
+ this.handleFiles = (files) => {
30
+ this.files = this.validation(this.multiple ? [...this.files, ...files] : files);
31
+ this.filesChange.emit(this.files);
32
+ };
33
+ this.onDragOver = (event) => {
34
+ event.preventDefault();
35
+ this.dragActive = true;
36
+ };
37
+ this.onDragLeave = () => {
38
+ this.dragActive = false;
39
+ };
40
+ }
41
+ validation(files) {
42
+ var _a;
43
+ const maxSize = this.maxFileSizeMB * 1024 * 1024;
44
+ const seenFileNames = new Set();
45
+ const errorMessages = [];
46
+ const uniqueFiles = [];
47
+ for (const file of files) {
48
+ let error = null;
49
+ if (!seenFileNames.has(file.name)) {
50
+ seenFileNames.add(file.name);
51
+ uniqueFiles.push(file);
52
+ }
53
+ const extension = (_a = file.name.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase();
54
+ const isAccepted = this.accept.length === 0 ||
55
+ this.accept.some(type => {
56
+ const normalized = type.toLowerCase().replace(/^\./, '');
57
+ return normalized === extension;
58
+ });
59
+ if (!isAccepted) {
60
+ error = 'Unsupported file type.';
61
+ }
62
+ else if (file.size > maxSize) {
63
+ error = `File ${file.name} is too large.`;
64
+ }
65
+ errorMessages.push(error);
66
+ }
67
+ this.error = uniqueFiles.length > this.maxFiles
68
+ ? `Only ${this.maxFiles} file(s) allowed.`
69
+ : null;
70
+ this.errorMessages = errorMessages;
71
+ return uniqueFiles;
72
+ }
73
+ removeFile(index) {
74
+ this.files = this.validation([...this.files.slice(0, index), ...this.files.slice(index + 1)]);
75
+ this.filesChange.emit(this.files);
76
+ if (this.fileInput) {
77
+ this.fileInput.value = '';
78
+ }
79
+ }
80
+ render() {
81
+ var _a;
82
+ return (h(Host, { key: '92aef18b84c7ff27bffa4e08f277037b8c980269', class: { 'upload-wrapper': true, [`uploader-${this.size}`]: true, disabled: !!this.disabled } }, this.label && h("label", { key: 'a1249cbce402d895e28417f0ea3b7be0432939a5', class: "label" }, this.label), this.description && h("p", { key: '5c3000bcdeea9a0952f67e6f09b38f476eb5380d', class: "description" }, this.description), this.variant === 'button' ? (h("button", { disabled: this.disabled, class: "upload-btn", 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: '0b0d4765dacd6dd3d0a9afb5b761976018728502', ref: el => (this.fileInput = el), type: "file", hidden: true, onChange: this.onFileSelect, multiple: this.multiple, accept: this.accept.map(type => `.${type}`).join(',') }), h("ul", { key: 'f6f1a14ab1d2a705018ffed46ff6b3439bcedd1b', class: "file-list" }, this.files.map((file, index) => {
83
+ var _a, _b;
84
+ 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)));
85
+ })), this.error && (h("div", { key: 'aa38b9ddbcebdd48c166dcc1a007549b6665b718', class: "error-container" }, h("p", { key: 'a421c517fe2681b089ac13d88a4bca1c6edde44c', class: "error-container_primary" }, this.error)))));
86
+ }
87
+ _renderLoaderState(index) {
88
+ var _a, _b, _c;
89
+ const state = ((_a = this.loadingStates) === null || _a === void 0 ? void 0 : _a[index]) || null;
90
+ const errorIcon = ((_b = this.errors) === null || _b === void 0 ? void 0 : _b[index]) || ((_c = this.errorMessages) === null || _c === void 0 ? void 0 : _c[index]) ? (h("svg", { class: "file_container_errorIcon", width: "16", height: "16", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512" }, h("path", { fill: "currentColor", 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" }))) : null;
91
+ switch (state) {
92
+ case 'loading':
93
+ return (h(Fragment, null, errorIcon, h("xv-loader-v2", { size: SIZE_VAR.XS })));
94
+ case 'success':
95
+ return (h(Fragment, null, errorIcon, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 18 16", fill: "none" }, h("path", { d: "M9 16C6.125 16 3.5 14.5 2.0625 12C0.625 9.53125 0.625 6.5 2.0625 4C3.5 1.53125 6.125 0 9 0C11.8438 0 14.4688 1.53125 15.9062 4C17.3438 6.5 17.3438 9.53125 15.9062 12C14.4688 14.5 11.8438 16 9 16ZM12.5312 6.53125H12.5C12.8125 6.25 12.8125 5.78125 12.5 5.46875C12.2188 5.1875 11.75 5.1875 11.4688 5.46875L8 8.96875L6.53125 7.5C6.21875 7.1875 5.75 7.1875 5.46875 7.5C5.15625 7.78125 5.15625 8.25 5.46875 8.53125L7.46875 10.5312C7.75 10.8438 8.21875 10.8438 8.53125 10.5312L12.5312 6.53125Z", fill: "#97BF0D" }))));
96
+ case 'uploaded':
97
+ default:
98
+ return (h(Fragment, null, errorIcon, h("xv-button-v2", { variant: "ghost", size: SIZE_VAR.XS, onClick: () => this.removeFile(index) }, h("span", { slot: "icon-left" }, "\u00D7"))));
99
+ }
100
+ }
101
+ _renderError(index) {
102
+ var _a, _b;
103
+ const error = ((_a = this.errors) === null || _a === void 0 ? void 0 : _a[index]) || ((_b = this.errorMessages) === null || _b === void 0 ? void 0 : _b[index]);
104
+ if (!error)
105
+ return;
106
+ if (typeof error === 'object') {
107
+ return (h("div", { class: "error-container" }, h("p", { class: "error-container_primary" }, error.primary), h("p", { class: "error-container_secondary" }, error.secondary)));
108
+ }
109
+ if (typeof error === 'string') {
110
+ return (h("div", { class: "error-container" }, h("p", { class: "error-container_primary" }, error)));
111
+ }
112
+ return null;
113
+ }
114
+ static get is() { return "xv-file-uploader"; }
115
+ static get encapsulation() { return "shadow"; }
116
+ static get originalStyleUrls() {
117
+ return {
118
+ "$": ["xv-file-uploader.scss"]
119
+ };
120
+ }
121
+ static get styleUrls() {
122
+ return {
123
+ "$": ["xv-file-uploader.css"]
124
+ };
125
+ }
126
+ static get properties() {
127
+ return {
128
+ "label": {
129
+ "type": "string",
130
+ "attribute": "label",
131
+ "mutable": false,
132
+ "complexType": {
133
+ "original": "string",
134
+ "resolved": "string",
135
+ "references": {}
136
+ },
137
+ "required": false,
138
+ "optional": true,
139
+ "docs": {
140
+ "tags": [],
141
+ "text": ""
142
+ },
143
+ "getter": false,
144
+ "setter": false,
145
+ "reflect": false
146
+ },
147
+ "description": {
148
+ "type": "string",
149
+ "attribute": "description",
150
+ "mutable": false,
151
+ "complexType": {
152
+ "original": "string",
153
+ "resolved": "string",
154
+ "references": {}
155
+ },
156
+ "required": false,
157
+ "optional": true,
158
+ "docs": {
159
+ "tags": [],
160
+ "text": ""
161
+ },
162
+ "getter": false,
163
+ "setter": false,
164
+ "reflect": false
165
+ },
166
+ "addText": {
167
+ "type": "string",
168
+ "attribute": "add-text",
169
+ "mutable": false,
170
+ "complexType": {
171
+ "original": "string",
172
+ "resolved": "string",
173
+ "references": {}
174
+ },
175
+ "required": false,
176
+ "optional": true,
177
+ "docs": {
178
+ "tags": [],
179
+ "text": ""
180
+ },
181
+ "getter": false,
182
+ "setter": false,
183
+ "reflect": false
184
+ },
185
+ "variant": {
186
+ "type": "string",
187
+ "attribute": "variant",
188
+ "mutable": false,
189
+ "complexType": {
190
+ "original": "XvFileUploaderVariants",
191
+ "resolved": "XvFileUploaderVariants.BUTTON | XvFileUploaderVariants.DRAG_DROP",
192
+ "references": {
193
+ "XvFileUploaderVariants": {
194
+ "location": "import",
195
+ "path": "./_vars",
196
+ "id": "src/components/xv-file-uploader/_vars.ts::XvFileUploaderVariants"
197
+ }
198
+ }
199
+ },
200
+ "required": false,
201
+ "optional": false,
202
+ "docs": {
203
+ "tags": [],
204
+ "text": ""
205
+ },
206
+ "getter": false,
207
+ "setter": false,
208
+ "reflect": false,
209
+ "defaultValue": "XvFileUploaderVariants.BUTTON"
210
+ },
211
+ "size": {
212
+ "type": "string",
213
+ "attribute": "size",
214
+ "mutable": false,
215
+ "complexType": {
216
+ "original": "SIZE_VAR",
217
+ "resolved": "SIZE_VAR.LG | SIZE_VAR.MD | SIZE_VAR.SM | SIZE_VAR.XL | SIZE_VAR.XS",
218
+ "references": {
219
+ "SIZE_VAR": {
220
+ "location": "import",
221
+ "path": "../../types/enum",
222
+ "id": "src/types/enum.ts::SIZE_VAR"
223
+ }
224
+ }
225
+ },
226
+ "required": false,
227
+ "optional": false,
228
+ "docs": {
229
+ "tags": [],
230
+ "text": ""
231
+ },
232
+ "getter": false,
233
+ "setter": false,
234
+ "reflect": false,
235
+ "defaultValue": "SIZE_VAR.MD"
236
+ },
237
+ "accept": {
238
+ "type": "unknown",
239
+ "attribute": "accept",
240
+ "mutable": false,
241
+ "complexType": {
242
+ "original": "string[]",
243
+ "resolved": "string[]",
244
+ "references": {}
245
+ },
246
+ "required": false,
247
+ "optional": false,
248
+ "docs": {
249
+ "tags": [],
250
+ "text": ""
251
+ },
252
+ "getter": false,
253
+ "setter": false,
254
+ "defaultValue": "[]"
255
+ },
256
+ "maxFileSizeMB": {
257
+ "type": "number",
258
+ "attribute": "max-file-size-mb",
259
+ "mutable": false,
260
+ "complexType": {
261
+ "original": "number",
262
+ "resolved": "number",
263
+ "references": {}
264
+ },
265
+ "required": false,
266
+ "optional": false,
267
+ "docs": {
268
+ "tags": [],
269
+ "text": ""
270
+ },
271
+ "getter": false,
272
+ "setter": false,
273
+ "reflect": false,
274
+ "defaultValue": "5"
275
+ },
276
+ "maxFiles": {
277
+ "type": "number",
278
+ "attribute": "max-files",
279
+ "mutable": false,
280
+ "complexType": {
281
+ "original": "number",
282
+ "resolved": "number",
283
+ "references": {}
284
+ },
285
+ "required": false,
286
+ "optional": false,
287
+ "docs": {
288
+ "tags": [],
289
+ "text": ""
290
+ },
291
+ "getter": false,
292
+ "setter": false,
293
+ "reflect": false,
294
+ "defaultValue": "20"
295
+ },
296
+ "multiple": {
297
+ "type": "boolean",
298
+ "attribute": "multiple",
299
+ "mutable": false,
300
+ "complexType": {
301
+ "original": "boolean",
302
+ "resolved": "boolean",
303
+ "references": {}
304
+ },
305
+ "required": false,
306
+ "optional": false,
307
+ "docs": {
308
+ "tags": [],
309
+ "text": ""
310
+ },
311
+ "getter": false,
312
+ "setter": false,
313
+ "reflect": false,
314
+ "defaultValue": "true"
315
+ },
316
+ "disabled": {
317
+ "type": "boolean",
318
+ "attribute": "disabled",
319
+ "mutable": false,
320
+ "complexType": {
321
+ "original": "boolean",
322
+ "resolved": "boolean",
323
+ "references": {}
324
+ },
325
+ "required": false,
326
+ "optional": true,
327
+ "docs": {
328
+ "tags": [],
329
+ "text": ""
330
+ },
331
+ "getter": false,
332
+ "setter": false,
333
+ "reflect": true
334
+ },
335
+ "files": {
336
+ "type": "unknown",
337
+ "attribute": "files",
338
+ "mutable": true,
339
+ "complexType": {
340
+ "original": "File[]",
341
+ "resolved": "File[]",
342
+ "references": {
343
+ "File": {
344
+ "location": "global",
345
+ "id": "global::File"
346
+ }
347
+ }
348
+ },
349
+ "required": false,
350
+ "optional": false,
351
+ "docs": {
352
+ "tags": [],
353
+ "text": ""
354
+ },
355
+ "getter": false,
356
+ "setter": false,
357
+ "defaultValue": "[]"
358
+ },
359
+ "loadingStates": {
360
+ "type": "unknown",
361
+ "attribute": "loading-states",
362
+ "mutable": true,
363
+ "complexType": {
364
+ "original": "('loading' | 'success' | 'uploaded')[]",
365
+ "resolved": "(\"loading\" | \"success\" | \"uploaded\")[]",
366
+ "references": {}
367
+ },
368
+ "required": false,
369
+ "optional": false,
370
+ "docs": {
371
+ "tags": [],
372
+ "text": ""
373
+ },
374
+ "getter": false,
375
+ "setter": false,
376
+ "defaultValue": "[]"
377
+ },
378
+ "error": {
379
+ "type": "string",
380
+ "attribute": "error",
381
+ "mutable": true,
382
+ "complexType": {
383
+ "original": "string",
384
+ "resolved": "string",
385
+ "references": {}
386
+ },
387
+ "required": false,
388
+ "optional": true,
389
+ "docs": {
390
+ "tags": [],
391
+ "text": ""
392
+ },
393
+ "getter": false,
394
+ "setter": false,
395
+ "reflect": true
396
+ },
397
+ "errors": {
398
+ "type": "unknown",
399
+ "attribute": "errors",
400
+ "mutable": true,
401
+ "complexType": {
402
+ "original": "string[] | { primary: string; secondary: string; }[]",
403
+ "resolved": "string[] | { primary: string; secondary: string; }[]",
404
+ "references": {}
405
+ },
406
+ "required": false,
407
+ "optional": false,
408
+ "docs": {
409
+ "tags": [],
410
+ "text": ""
411
+ },
412
+ "getter": false,
413
+ "setter": false,
414
+ "defaultValue": "[]"
415
+ }
416
+ };
417
+ }
418
+ static get states() {
419
+ return {
420
+ "dragActive": {},
421
+ "errorMessages": {}
422
+ };
423
+ }
424
+ static get events() {
425
+ return [{
426
+ "method": "filesChange",
427
+ "name": "filesChange",
428
+ "bubbles": true,
429
+ "cancelable": true,
430
+ "composed": true,
431
+ "docs": {
432
+ "tags": [],
433
+ "text": ""
434
+ },
435
+ "complexType": {
436
+ "original": "File[]",
437
+ "resolved": "File[]",
438
+ "references": {
439
+ "File": {
440
+ "location": "global",
441
+ "id": "global::File"
442
+ }
443
+ }
444
+ }
445
+ }];
446
+ }
447
+ }
448
+ //# sourceMappingURL=xv-file-uploader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xv-file-uploader.js","sourceRoot":"","sources":["../../../src/components/xv-file-uploader/xv-file-uploader.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Event, h, Host, Prop, State, Fragment } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\nimport { XvFileUploaderVariants } from './_vars';\n\n@Component({\n tag: 'xv-file-uploader',\n styleUrl: 'xv-file-uploader.scss',\n shadow: true,\n})\nexport class XvFileUploader {\n @Prop() label?: string;\n @Prop() description?: string;\n @Prop({ attribute: 'add-text' }) addText?: string;\n @Prop() variant: XvFileUploaderVariants = XvFileUploaderVariants.BUTTON;\n @Prop() size: SIZE_VAR = SIZE_VAR.MD;\n @Prop() accept: string[] = [];\n @Prop({ attribute: 'max-file-size-mb' }) maxFileSizeMB: number = 5;\n @Prop({ attribute: 'max-files' }) maxFiles: number = 20;\n @Prop() multiple: boolean = true;\n @Prop({ reflect: true }) disabled?: boolean;\n @Prop({ reflect: true, mutable: true }) files: File[] = [];\n @Prop({ reflect: true, mutable: true, attribute: 'loading-states' }) loadingStates: ('loading' | 'success' | 'uploaded')[] = [];\n @Prop({ reflect: true, mutable: true }) error?: string;\n @Prop({ reflect: true, mutable: true }) errors: string[] | { primary: string; secondary: string; }[] = [];\n\n @State() dragActive = false;\n @State() errorMessages: string[] = [];\n\n @Event() filesChange: EventEmitter<File[]>;\n\n private fileInput: HTMLInputElement;\n\n private onFileSelect = (event: Event) => {\n const input = event.target as HTMLInputElement;\n const selectedFiles = Array.from(input.files || []);\n this.handleFiles(selectedFiles);\n };\n\n private onDrop = (event: DragEvent) => {\n event.preventDefault();\n this.dragActive = false;\n const droppedFiles = Array.from(event.dataTransfer?.files || []);\n this.handleFiles(droppedFiles);\n };\n\n private handleFiles = (files: File[]) => {\n this.files = this.validation(this.multiple ? [...this.files, ...files] : files);\n this.filesChange.emit(this.files);\n };\n\n private validation(files: File[]): File[] {\n const maxSize = this.maxFileSizeMB * 1024 * 1024;\n const seenFileNames = new Set<string>();\n const errorMessages: (string | null)[] = [];\n const uniqueFiles: File[] = [];\n\n for (const file of files) {\n let error: string | undefined = null;\n\n if (!seenFileNames.has(file.name)) {\n seenFileNames.add(file.name);\n uniqueFiles.push(file);\n }\n\n const extension = file.name.split('.').pop()?.toLowerCase();\n const isAccepted =\n this.accept.length === 0 ||\n this.accept.some(type => {\n const normalized = type.toLowerCase().replace(/^\\./, '');\n return normalized === extension;\n });\n\n if (!isAccepted) {\n error = 'Unsupported file type.';\n } else if (file.size > maxSize) {\n error = `File ${file.name} is too large.`;\n }\n\n errorMessages.push(error);\n }\n\n this.error = uniqueFiles.length > this.maxFiles\n ? `Only ${this.maxFiles} file(s) allowed.`\n : null;\n\n this.errorMessages = errorMessages;\n\n return uniqueFiles;\n }\n\n private removeFile(index: number) {\n this.files = this.validation([...this.files.slice(0, index), ...this.files.slice(index + 1)]);\n this.filesChange.emit(this.files);\n if (this.fileInput) {\n this.fileInput.value = '';\n }\n }\n\n private onDragOver = (event: DragEvent) => {\n event.preventDefault();\n this.dragActive = true;\n };\n\n private onDragLeave = () => {\n this.dragActive = false;\n };\n\n render() {\n return (\n <Host class={{ 'upload-wrapper': true, [`uploader-${this.size}`]: true, disabled: !!this.disabled }}>\n {this.label && <label class=\"label\">{this.label}</label>}\n {this.description && <p class=\"description\">{this.description}</p>}\n {this.variant === 'button' ? (\n <button disabled={this.disabled} class=\"upload-btn\" onClick={() => this.fileInput.click()}>\n {this.addText || 'Dateien auswählen'}\n </button>\n ) : (\n <div\n class={{ 'drop-zone': true, active: this.dragActive }}\n onDrop={this.onDrop}\n onDragOver={this.onDragOver}\n onDragLeave={this.onDragLeave}\n onClick={() => this.fileInput.click()}\n >\n {this.addText || 'Dateien hierher ziehen oder darauf klicken, um eine Datei auszuwählen.'}\n {this.accept?.length > 0 && <span> ({this.accept.join(', ')})</span>}\n </div>\n )}\n\n <input\n ref={el => (this.fileInput = el)}\n type=\"file\"\n hidden\n onChange={this.onFileSelect}\n multiple={this.multiple}\n accept={this.accept.map(type => `.${type}`).join(',')}\n />\n\n <ul class=\"file-list\">\n {this.files.map((file, index) => (\n <li class={{ file: true, withError: !!(this.errors?.[index] || this.errorMessages?.[index]) }}>\n <div class=\"file_container\">\n <span class=\"file_container_name\">{file.name}</span>\n {this._renderLoaderState(index)}\n </div>\n {this._renderError(index)}\n </li>\n ))}\n </ul>\n {this.error && (\n <div class=\"error-container\">\n <p class=\"error-container_primary\">{this.error}</p>\n </div>\n )}\n </Host>\n );\n }\n\n private _renderLoaderState(index: number) {\n const state = this.loadingStates?.[index] || null;\n\n const errorIcon = this.errors?.[index] || this.errorMessages?.[index] ? (\n <svg class=\"file_container_errorIcon\" width=\"16\" height=\"16\" 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 ) : null;\n\n switch (state) {\n case 'loading':\n return (\n <Fragment>\n {errorIcon}\n <xv-loader-v2 size={SIZE_VAR.XS} />\n </Fragment>\n );\n case 'success':\n return (\n <Fragment>\n {errorIcon}\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 18 16\" fill=\"none\">\n <path\n d=\"M9 16C6.125 16 3.5 14.5 2.0625 12C0.625 9.53125 0.625 6.5 2.0625 4C3.5 1.53125 6.125 0 9 0C11.8438 0 14.4688 1.53125 15.9062 4C17.3438 6.5 17.3438 9.53125 15.9062 12C14.4688 14.5 11.8438 16 9 16ZM12.5312 6.53125H12.5C12.8125 6.25 12.8125 5.78125 12.5 5.46875C12.2188 5.1875 11.75 5.1875 11.4688 5.46875L8 8.96875L6.53125 7.5C6.21875 7.1875 5.75 7.1875 5.46875 7.5C5.15625 7.78125 5.15625 8.25 5.46875 8.53125L7.46875 10.5312C7.75 10.8438 8.21875 10.8438 8.53125 10.5312L12.5312 6.53125Z\"\n fill=\"#97BF0D\" />\n </svg>\n </Fragment>\n );\n case 'uploaded':\n default:\n return (\n <Fragment>\n {errorIcon}\n <xv-button-v2 variant=\"ghost\" size={SIZE_VAR.XS} onClick={() => this.removeFile(index)}>\n <span slot=\"icon-left\">×</span>\n </xv-button-v2>\n </Fragment>\n );\n }\n }\n\n private _renderError(index: number) {\n const error = this.errors?.[index] || this.errorMessages?.[index];\n\n if (!error) return;\n\n if (typeof error === 'object') {\n return (\n <div class=\"error-container\">\n <p class=\"error-container_primary\">{error.primary}</p>\n <p class=\"error-container_secondary\">{error.secondary}</p>\n </div>\n );\n }\n\n if (typeof error === 'string') {\n return (\n <div class=\"error-container\">\n <p class=\"error-container_primary\">{error}</p>\n </div>\n );\n }\n\n return null;\n }\n}\n"]}
@@ -14,7 +14,7 @@ export class Xvfooter {
14
14
  }
15
15
  }
16
16
  render() {
17
- return (h("footer", { key: '0db6bc4ceab1da36181d8a106677ee2b4c871a5d' }, h("div", { key: '4ed868bc230e7dd45ebca9255827c1cfeb40e1f7', innerHTML: this.htmlContent })));
17
+ return (h("footer", { key: '25f7acefd3d83e3f85547e0c3165eba04cae14bc' }, h("div", { key: 'df924fadef964c0736fc9d88de8e27f034e0da16', innerHTML: this.htmlContent })));
18
18
  }
19
19
  static get is() { return "xv-footer"; }
20
20
  static get originalStyleUrls() {
@@ -2,6 +2,13 @@ import { h } from "@stencil/core";
2
2
  export class XvHeader {
3
3
  constructor() {
4
4
  this.htmlContent = '';
5
+ this.showLoginModal = false;
6
+ this.openLoginModal = () => {
7
+ this.showLoginModal = true;
8
+ };
9
+ this.closeLoginModal = () => {
10
+ this.showLoginModal = false;
11
+ };
5
12
  }
6
13
  async componentWillLoad() {
7
14
  try {
@@ -23,7 +30,7 @@ export class XvHeader {
23
30
  }
24
31
  }
25
32
  render() {
26
- return (h("div", { key: 'fb841d4abad14c4387fe46688c4f3af2307b886a', id: "nav-container", class: "xv-header" }, h("nav", { key: '58e74fe05d964a92caa4557b80507a38c4a98179', class: "navbar navbar-default navbar-fixed-top backend-force-relative" }, h("div", { key: '97ea3528c6e075c1d387ea24594f91104d7b8867', class: "container" }, h("div", { key: '8bdd52c37bcec11ea6b30d0174736f59788b53eb', class: "row" }, h("div", { key: 'e449f3feac1044f052ec6e2617c0d935064656c7', class: "col-sm-3 col-xs-3 col-xxs-4 no-padding-right" }, h("div", { key: '55a1d17cba703a6e40eb338c7543dc6976bf38a9', class: "navbar-header" }, h("button", { key: '4db1d1c007cce64e85d9c4bed564d2871ababcfc', class: "btn btn-default navbar-toggle pull-left navbar-btn", "data-toggle": "collapse", "data-target": "#main-menu" }, h("i", { key: '65e325b62f0438edd702620c4e17a53219967a0a', class: "fa fa-bars fa-lg", "aria-hidden": "true" })), h("div", { key: '441bfb68db2009ee3237b77d81fb95dc81aa481f', class: "visible-xs-inline" }, h("a", { key: 'addb8f9d2564bb51622d446709200f1f11ca5676', href: "https://www.crossvertise.com/", class: "navbar-brand" }, h("img", { key: 'e3397a1cce10f32d84b329d7e0f86a668b59f0ce', src: "https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg", alt: "Crossvertise" }))), h("div", { key: '90f493fdfb861b43a6e15fd98f4b20b5c27393f1', class: "hidden-xs" }, h("a", { key: '91d6cc6a27a1a1345453b6e61bffc75dd8af8dac', href: "https://www.crossvertise.com/", class: "navbar-brand" }, h("img", { key: '3e865f04a2b4fd3518d9afdb6e14c1ff40fe316f', loading: "lazy", src: "https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg", alt: "Crossvertise" }))))), h("div", { key: 'f93d3819bb445cdb9e5af3aef12b015a343d6310', class: "col-sm-9 col-xs-9 col-xxs-8 no-padding-left" }, h("ul", { key: 'f45ff2bde04e59dcf6b64843540aa3fd4e40f689', class: "nav nav-pills nav-meta pull-right" }, h("li", { key: 'ed84b8372b0d2bb667a8cafadb4ab563da5abfe0' }, h("a", { key: '13a62dee054906b573e6680101a3ca0b21b831a0', class: "btn btn-link navbar-btn hidden-xs", href: "#" }, h("i", { key: '0baabbb18c07000acd90290323c9634be9c4fc7c', class: "fa fa-user" }), h("i", { key: 'd704cea8700026507e77c06ef9b9ed7debabe817', class: "fa fa-exchange-alt" }))), h("li", { key: '71071c96004f83a4aaf0c882139da925e42866a8' }, h("a", { key: 'e408f1d8d07134e922871ad2cf528f1593d0d1e0', class: "btn btn-link navbar-btn hidden-xs", href: "#" }, "Kontakt"), h("a", { key: 'c646eb76e06b7dbdc38b2c2781271413d2fd15ea', href: "https://www.crossvertise.com/contact", class: "btn btn-link navbar-btn hidden-xs", style: { display: 'none' } }, "Kontakt"), h("a", { key: '0af75819d57f535803e52289ff96fac569c50300', class: "btn btn-default btn-link navbar-btn visible-xs hidden-xxs", href: "#" }, h("i", { key: '5bbb8f180b8e305b03b6fdfec3390582b0150d5d', class: "fa fa-phone" }))), h("li", { key: 'eccf3a963e94fbfd5d0bac632583bf1bb8ae75af', class: "dropdown", id: "my-xv-menu" }, h("a", { key: 'c08b078cf111d3b68521eae23b80ca6f179462ca', href: "#", class: "dropdown-toggle btn btn-default navbar-btn btn-link", "data-toggle": "dropdown" }, h("i", { key: '64624fbad4dfcf0249e8cfeb40bf6724d1546b06', class: "fa fa-user fa-lg text-success", "aria-hidden": "true" }), "\u00A0", h("span", { key: '7cb9c97ba9717c43d5ca6f590434dd925e523726', class: "hidden-xs" }, "Mein Bereich"), h("span", { key: '96609dcd1f21c1de3f6b5921bf8d0d21414e16ba', class: "caret" })), h("ul", { key: '89d95f1a1620aba9e971ea4f2b53d5e82634dcb7', class: "dropdown-menu-left dropdown-menu navbar-myxv" }, h("li", { key: 'f995fffeb04c8e71855e333d1bcb88fa96cf138b' }, h("a", { key: '4f4109b08bd7fb0e0beff296a5566f447febb72e', href: "#" }, h("i", { key: '4676a42f1d33aca1fa82c39c66ad852d4a46a90b', class: "fa fa-tachometer-alt fa-fw" }), "\u00A0Cockpitfunktionen\u00A0", h("i", { key: '8f786200fa2781591c930bf2f8c5bcaab9c26ee6', class: "fa fa-caret-down" }))), h("li", { key: 'cbbe6aea9589e291677d1d4a9545b6338c515f59' }, h("a", { key: '90d02c4e0ffd7c880d5a054bd93efad517c17cf1', href: "#" }, h("i", { key: 'a658d4354d00bc1b33bdbabdd67c2822c0bbadd7', class: "fa fa-cubes" }), "\u00A0Entit\u00E4ten\u00A0", h("i", { key: 'a2a4d953a2f7ab3becd94609a063bd41444f1d5e', class: "fa fa-caret-down" }))), h("li", { key: '45f2e6536719387d007c300569bd888ab73a368e', role: "separator", class: "divider" }), h("li", { key: 'c1b3c21287ad9c948994a7e66b5598f2d7b92cee' }, h("a", { key: '4577bb088ee70c827a6c73670ab333c1e7233ebb', href: "#" }, h("i", { key: '59190e441f77825b6faa7f1a6a126b55368424bd', class: "fa fa-user" }), "\u00A0Mein Crossvertise\u00A0", h("span", { key: '56c84bb9710788f708f66a29b8ed2560eddcdc9c', class: "badge" }, "0"), h("i", { key: '3a94b49a78254ff80c748031879499e0b1c3d6cd', class: "fa fa-caret-down" }))), h("li", { key: '56c19ee479dd30ef4b2a3ced111c5a2488b011be' }, h("a", { key: 'bf6795b1a369fd48144a5c3f2d6dde87329005d3', href: "https://www.crossvertise.com/de-de/mycrossvertise/account/logoff?returnUrl=https%3A%2F%2Fwww.crossvertise.com" }, h("i", { key: 'd74387b0a971ec31ef52f7275a4059135f7a2f2e', class: "fa fa-sign-out-alt fa-fw", "aria-hidden": "true" }), "\u00A0Logout")))), h("li", { key: '4cd39d21f39cf38b653fe354fcac95541ed3b5d4', class: "visible-sm-block visible-xs-block hidden-xxs" }, h("a", { key: 'ff7d151d063d17b4937c8adee7240928abf11ca1', class: "btn btn-default navbar-btn btn-link", "data-toggle": "collapse", "data-target": "#search-collapse" }, h("i", { key: 'e921298a0e809efa116a19445211146af7ff478c', class: "fa fa-search", "aria-hidden": "true" }))), h("li", { key: 'daa6740a57a697e93099a9acf0f290103e38885e', class: "hidden-md hidden-lg" }, h("a", { key: '6b1d587f4fde5f26adcec987a13d837db9b3d4b9', class: "btn btn-default navbar-btn btn-link", href: "https://market.crossvertise.com/de-de/mycrossvertise/account/logon?returnUrl=https%3A%2F%2Fwww.crossvertise.com%2F" }, h("i", { key: '29eaea9f9d7c099b0666aa80c0baa47f0194eca8', class: "fa fa-user fa-lg", "aria-hidden": "true" }), h("span", { key: '2e32a44fff79ce051c6478911dff06ab014fcb03', class: "hidden-xs" }, "Login"))), h("li", { key: '70aad34ed65c79187309b6d43c2d60a4c50c10f7', class: "hidden-xs hidden-sm" }, h("a", { key: '0700efbabecfcc3c23703d5ef51d455cc37a7c76', role: "button", class: "btn btn-default navbar-btn btn-link", "data-toggle": "modal", "data-target": "#login-modal" }, h("i", { key: 'dacc64c5ec7a805a82c04786942045d34f9f5505', class: "fa fa-user fa-lg", "aria-hidden": "true" }), h("span", { key: '6862516762bb49b3268ab5439616e5d84eeee33a' }, "Login"))), h("li", { key: '1465c89bc216b466eb9b502503c4e071522b949e', class: "hidden-xs" }, h("a", { key: '4fb628fc7e3713032c8cc6291bea0364549ec486', class: "btn btn-default navbar-btn btn-link", href: "https://market.crossvertise.com/de-de/mycrossvertise/account/register" }, h("span", { key: 'bd27d18587f03bb6579a68ec0f67e401e9a2f4aa' }, "Registrieren"))), h("li", { key: 'b58c8bdfcba9fbcc4fc9abcc7a532552a6bf4d59', class: "navbar-divider hidden-xs" }), h("li", { key: '9c184e2e5ce45a573f227427b21511efb77a7367' }, h("a", { key: '4e1e2905fa27feef5ee4d7e8d08cf8f365460aa9', class: "btn btn-success navbar-btn", href: "https://market.crossvertise.com/de-de/mycrossvertise/shoppingcart/activecart" }, h("span", { key: 'bc461fb3883487c5a9bab6171e0395d896871dae', class: "xv-font-icon-warenkorb fa-lg fa-fw", "aria-hidden": "true" }), h("span", { key: '798befbada9c958f75aa71534223bfc3053e2d8a', class: "hidden-xs hidden-sm" }, "\u00A0Warenkorb\u00A0"), h("span", { key: '466810cee52d04c975304e2644a19b0fed8acb52', class: "badge badge-success" }, "0"))))))), h("div", { key: 'df2e0fdf3ee050571555b538a13b81255a5ed6d6', class: "collapse hidden-md hidden-lg", id: "search-collapse" }, h("div", { key: 'aa8e481da43b4d19fef2ebe5f18c3f698188109a', class: "container" }, h("form", { key: '1f74f4c3728f1dbc53ee160316cfc503a05d1809', action: "https://market.crossvertise.com/de-de/media/search", class: "navbar-form", method: "get", role: "search" }, h("div", { key: '3b0a8b8e0422baeabf49bc2acbd416ce3d0d0f4d', class: "input-group" }, h("input", { key: '81b1da2dc533688f68238fde64d2b0137143bfa0', class: "form-control", name: "Q", placeholder: "Suche", type: "text", autocomplete: "off" }), h("span", { key: '1bd05fa901a518fbfe48044a73d6b134699c1aeb', class: "input-group-btn force-full-width" }, h("button", { key: '825112ca880ad4ca36e449def155c87f1b134168', class: "btn btn-default search-addon", type: "submit" }, h("i", { key: '2812b8d6e635a3c8d971982340e70c1aa1d72072', class: "fa fa-search", "aria-hidden": "true" })))))))), h("div", { key: '33abf8e8dbe83d92a154f9487ba37826e0c3befe', innerHTML: this.htmlContent })));
33
+ return (h("div", { key: 'f1fa7a66f5646c91c3bec60242259aa47b9916db', id: "nav-container", class: "xv-header" }, h("nav", { key: '93c1d68ba793edb98ff140ab2cb3be7a3a14b4aa', class: "navbar navbar-default navbar-fixed-top backend-force-relative" }, h("div", { key: 'b031c74cb7fa6803bc5d18c3dbff11adb4b51ef6', class: "container" }, h("div", { key: 'ab24ec15ae5109b66b93ac2c66cc85a0c5bc997d', class: "row" }, h("div", { key: '40e7c0208009bdb2011e4ec38a31dda850622dd3', class: "col-sm-3 col-xs-3 col-xxs-4 no-padding-right" }, h("div", { key: '3e73dead56efa1c7c0a2f8feff92321306a40755', class: "navbar-header" }, h("button", { key: 'edbd2b2b4270f600043ba51284ea871131e0f2d9', class: "btn btn-default navbar-toggle pull-left navbar-btn", "data-toggle": "collapse", "data-target": "#main-menu" }, h("i", { key: '2fb6c9fbc127eac495fff5c0f93d250c980b58b1', class: "fa fa-bars fa-lg", "aria-hidden": "true" })), h("div", { key: 'adfe681e34aa6c609557641e9af0df662e78ffd3', class: "visible-xs-inline" }, h("a", { key: '932c99d3e3ddba203ea97fd576fe9152d9f72a16', href: "https://www.crossvertise.com/", class: "navbar-brand" }, h("img", { key: 'e05d25ae3af59d77590e43a132ad9e97ff546fae', src: "https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg", alt: "Crossvertise" }))), h("div", { key: '8484fe0e888857d086989e9f4cc7caef8bf58fe8', class: "hidden-xs" }, h("a", { key: '9b000a2b4efc8a60f3b0f18278cabd28e021b972', href: "https://www.crossvertise.com/", class: "navbar-brand" }, h("img", { key: 'a96d1afff0c35c21c51475205fa7094fdd803f13', loading: "lazy", src: "https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg", alt: "Crossvertise" }))))), h("div", { key: '920f52e74137ae786c32b4f15d4da2d48824082e', class: "col-sm-9 col-xs-9 col-xxs-8 no-padding-left" }, h("ul", { key: '098d6fa397ce40a65e7d0e56beebf9b855683e74', class: "nav nav-pills nav-meta pull-right" }, h("li", { key: 'e69db80df8e0fdce4dbdfaf3460a6baa85b7455f' }, h("a", { key: '1bd1de4852603bcc7380cbb0b13943b7c46f3a18', class: "btn btn-link navbar-btn hidden-xs", href: "#" }, h("i", { key: '03059f6b70ddf78c0eab55fb57291a5dfdefdaab', class: "fa fa-user" }), h("i", { key: 'cf8e0d2f1533be362ae2d44379bf81ffeca94a62', class: "fa fa-exchange-alt" }))), h("li", { key: '5508f231657ec2ecb34d26f1fbdfe1bcd81c9bfc' }, h("a", { key: '81ac0da6631bc11aea5620dc949c856495cda486', class: "btn btn-link navbar-btn hidden-xs", href: "#" }, "Kontakt"), h("a", { key: 'af1b609f44b88f51dbaad88bb035171d491f30c7', href: "https://www.crossvertise.com/contact", class: "btn btn-link navbar-btn hidden-xs", style: { display: 'none' } }, "Kontakt"), h("a", { key: '25ab2f195433651bc6c46f0e04825b21c1e857fd', class: "btn btn-default btn-link navbar-btn visible-xs hidden-xxs", href: "#" }, h("i", { key: 'cb595bdb1fc64f93da1de0072b9cd2e9d22e7f54', class: "fa fa-phone" }))), h("li", { key: 'd817905dac3ad0ad06ff2222b5e6cf5cf1588850', class: "dropdown", id: "my-xv-menu" }, h("a", { key: '89d84fa4b57677b6da2f9760c596e726be3d7840', href: "#", class: "dropdown-toggle btn btn-default navbar-btn btn-link", "data-toggle": "dropdown" }, h("i", { key: '3cc519aa50ff205461f272880218eaa147ae3c2c', class: "fa fa-user fa-lg text-success", "aria-hidden": "true" }), "\u00A0", h("span", { key: '54e5571967500594d1d81b94d3344ebfc43d5e76', class: "hidden-xs" }, "Mein Bereich"), h("span", { key: 'd94f684d2e92cae8fbfa7801096fb9cf68a77a0d', class: "caret" })), h("ul", { key: '3fc48bc0efea55e776c3090ecfa11488b7b3b660', class: "dropdown-menu-left dropdown-menu navbar-myxv" }, h("li", { key: 'fdc28d4743e5ff08a7ad82aa832ce4b2b0cda2c9' }, h("a", { key: 'd6299037715fd7334908cf46aa1363c7c6b93628', href: "#" }, h("i", { key: 'bbef2ea537e2ac45ddb96b9a1c75385b74ab27bd', class: "fa fa-tachometer-alt fa-fw" }), "\u00A0Cockpitfunktionen\u00A0", h("i", { key: '3180f5eb463d952208c5dab92df10bf1d91188d4', class: "fa fa-caret-down" }))), h("li", { key: 'ab0801ac2ce1accdd4f3181bae621ceb5622085d' }, h("a", { key: 'c301aa9512a9e10a8e75714143cdc79b133f0f79', href: "#" }, h("i", { key: 'c66fc798ef7c26fd578bd4dfb52aad0fe0058079', class: "fa fa-cubes" }), "\u00A0Entit\u00E4ten\u00A0", h("i", { key: 'f4d020afc421e0da2825952c1734c2527ed768b3', class: "fa fa-caret-down" }))), h("li", { key: 'dad4a83d6d3b5a3fe2ae83f85c09c1482fd6c029', role: "separator", class: "divider" }), h("li", { key: '1227163cae5a535c37b314c10dddfe57d26def4d' }, h("a", { key: '4c1421bfd184e329f0502b8c63b0b40f54f6417b', href: "#" }, h("i", { key: 'acee487f4eca767f942a8ca77a1fe848c793f6af', class: "fa fa-user" }), "\u00A0Mein Crossvertise\u00A0", h("span", { key: '237f3d89333d7325043ea34c9bbb65eebe734768', class: "badge" }, "0"), h("i", { key: '6470c884f34df3018a14a61dd872d101fdc693f4', class: "fa fa-caret-down" }))), h("li", { key: '280fef33a19151ba180aeeba866cb006027515d0' }, h("a", { key: '00136d3e0a8742f546051400117f6a62cc4561d3', href: "https://www.crossvertise.com/de-de/mycrossvertise/account/logoff?returnUrl=https%3A%2F%2Fwww.crossvertise.com" }, h("i", { key: 'acda646a3b0e50dcc65002faf717effadc73b2eb', class: "fa fa-sign-out-alt fa-fw", "aria-hidden": "true" }), "\u00A0Logout")))), h("li", { key: '97f77e84bf17ef45a321590f4092a1e8efbce5d3', class: "visible-sm-block visible-xs-block hidden-xxs" }, h("a", { key: 'cbd99563d2a807763386d8d11dc9b5c8500e06f1', class: "btn btn-default navbar-btn btn-link", "data-toggle": "collapse", "data-target": "#search-collapse" }, h("i", { key: 'dcda6727eca7a6d323e5a8b222fe5d9cf1f51e3b', class: "fa fa-search", "aria-hidden": "true" }))), h("li", { key: 'f4f79c26e331795f069863e9d808c25ba826d909', class: "hidden-xs hidden-sm" }, h("a", { key: '8cc458cced48ab651861abc7cb3392e78a7f2d82', role: "button", onClick: this.openLoginModal, class: "btn btn-default navbar-btn btn-link" }, h("i", { key: 'fc4ad896ef0c0133e7cd5e004f4305232c2f8736', class: "fa fa-user fa-lg", "aria-hidden": "true" }), h("span", { key: '3a18b0ada04b3dc59c745bac9fbb9c913a1f285b' }, "Login"))), h("xv-login-modal", { key: 'eb76a226443b6ce861c90ebdc42b4dd18487a7ea', visible: this.showLoginModal, onClose: this.closeLoginModal }), h("li", { key: '3926d6711fadd3101a47fd5ad44dd34e1b4ea41f', class: "hidden-xs" }, h("a", { key: '54c7d9a8880732540ccaea643f08e55df857c80a', class: "btn btn-default navbar-btn btn-link", href: "https://market.crossvertise.com/de-de/mycrossvertise/account/register" }, h("span", { key: 'a886fd9515fd42a787a0bee5782739100ba2a874' }, "Registrieren"))), h("li", { key: 'bb728014870b1ee825ae44e05e435b4f249ae943', class: "navbar-divider hidden-xs" }), h("li", { key: '686a75dc0b4f4d544e2e4a58bceb9220bf584401' }, h("a", { key: '7a5501d91d1e80ecbf3e1cff254d9ed8404cb4a6', class: "btn btn-success navbar-btn", href: "https://market.crossvertise.com/de-de/mycrossvertise/shoppingcart/activecart" }, h("span", { key: '3907db53aca750a7af24a40f30078c8cb3f12f0a', class: "xv-font-icon-warenkorb fa-lg fa-fw", "aria-hidden": "true" }), h("span", { key: '0f9fbbe251f1f95dcfd7a55af4613b119291a1c5', class: "hidden-xs hidden-sm" }, "\u00A0Warenkorb\u00A0"), h("span", { key: '9a5a84b9ee050a8a2d9cd8a51a63a6bcecef6f72', class: "badge badge-success" }, "0"))))))), h("div", { key: 'd558a444b34b0c9b78eb2ffba68cfb4cad2783e7', class: "collapse hidden-md hidden-lg", id: "search-collapse" }, h("div", { key: 'cdfdc3c8481eed737bc36d0cc559ec0cfa60a431', class: "container" }, h("form", { key: 'fe2253d8cb3d211b59a7898d696631a9f74ec6f6', action: "https://market.crossvertise.com/de-de/media/search", class: "navbar-form", method: "get", role: "search" }, h("div", { key: '8d0722f3ba685197514c2c7f0d255c7dd59fb40e', class: "input-group" }, h("input", { key: '3827a888727f94f7e84920f544a50235a5c10bec', class: "form-control", name: "Q", placeholder: "Suche", type: "text", autocomplete: "off" }), h("span", { key: '93748c9301681f31497cbcedc0a989e794bbd2d7', class: "input-group-btn force-full-width" }, h("button", { key: 'cf00efc17ded1365ee4f5dfdbed70e2e309c8ccc', class: "btn btn-default search-addon", type: "submit" }, h("i", { key: '38f9d4c2cf46da5fbc8ff31f5ee4e1e7f93ee5eb', class: "fa fa-search", "aria-hidden": "true" })))))))), h("div", { key: '9885522bb7260b13e95036e79c181b5924f41bc9', innerHTML: this.htmlContent })));
27
34
  }
28
35
  static get is() { return "xv-header"; }
29
36
  static get originalStyleUrls() {
@@ -38,7 +45,8 @@ export class XvHeader {
38
45
  }
39
46
  static get states() {
40
47
  return {
41
- "htmlContent": {}
48
+ "htmlContent": {},
49
+ "showLoginModal": {}
42
50
  };
43
51
  }
44
52
  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":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAM5D,MAAM,OAAO,QAAQ;IAJrB;QAKW,gBAAW,GAAW,EAAE,CAAC;KA4InC;IAzIC,KAAK,CAAC,iBAAiB;QACrB,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;YAExD,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;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,CACL,4DAAK,EAAE,EAAC,eAAe,EAAC,KAAK,EAAC,WAAW;YACvC,4DAAK,KAAK,EAAC,+DAA+D;gBAC1E,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;gCAC3C;oCACE,0DAAG,KAAK,EAAC,mCAAmC,EAAC,IAAI,EAAC,GAAG;wCACnD,0DAAG,KAAK,EAAC,YAAY,GAAK;wCAC1B,0DAAG,KAAK,EAAC,oBAAoB,GAAK,CAChC,CACD;gCACL;oCACE,0DAAG,KAAK,EAAC,mCAAmC,EAAC,IAAI,EAAC,GAAG,cAAY;oCACjE,0DAAG,IAAI,EAAC,sCAAsC,EAAC,KAAK,EAAC,mCAAmC,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAa;oCAChI,0DAAG,KAAK,EAAC,2DAA2D,EAAC,IAAI,EAAC,GAAG;wCAC3E,0DAAG,KAAK,EAAC,aAAa,GAAK,CACzB,CACD;gCACL,2DAAI,KAAK,EAAC,UAAU,EAAC,EAAE,EAAC,YAAY;oCAClC,0DAAG,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,qDAAqD,iBAAa,UAAU;wCAC5F,0DAAG,KAAK,EAAC,+BAA+B,iBAAa,MAAM,GAAK;;wCAChE,6DAAM,KAAK,EAAC,WAAW,mBAAoB;wCAC3C,6DAAM,KAAK,EAAC,OAAO,GAAQ,CACzB;oCACJ,2DAAI,KAAK,EAAC,8CAA8C;wCACtD;4CACE,0DAAG,IAAI,EAAC,GAAG;gDAAC,0DAAG,KAAK,EAAC,4BAA4B,GAAK;;gDAA6B,0DAAG,KAAK,EAAC,kBAAkB,GAAK,CAAI,CACpH;wCACL;4CACE,0DAAG,IAAI,EAAC,GAAG;gDAAC,0DAAG,KAAK,EAAC,aAAa,GAAK;;gDAAqB,0DAAG,KAAK,EAAC,kBAAkB,GAAK,CAAI,CAC7F;wCACL,2DAAI,IAAI,EAAC,WAAW,EAAC,KAAK,EAAC,SAAS,GAAM;wCAC1C;4CACE,0DAAG,IAAI,EAAC,GAAG;gDAAC,0DAAG,KAAK,EAAC,YAAY,GAAK;;gDAA6B,6DAAM,KAAK,EAAC,OAAO,QAAS;gDAAA,0DAAG,KAAK,EAAC,kBAAkB,GAAK,CAAI,CAChI;wCACL;4CACE,0DAAG,IAAI,EAAC,+GAA+G;gDACrH,0DAAG,KAAK,EAAC,0BAA0B,iBAAa,MAAM,GAAK;+DACzD,CACD,CACF,CACF;gCACL,2DAAI,KAAK,EAAC,8CAA8C;oCACtD,0DAAG,KAAK,EAAC,qCAAqC,iBAAa,UAAU,iBAAa,kBAAkB;wCAClG,0DAAG,KAAK,EAAC,cAAc,iBAAa,MAAM,GAAK,CAC7C,CACD;gCACL,2DAAI,KAAK,EAAC,qBAAqB;oCAC7B,0DAAG,KAAK,EAAC,qCAAqC,EAAC,IAAI,EAAC,oHAAoH;wCACtK,0DAAG,KAAK,EAAC,kBAAkB,iBAAa,MAAM,GAAK;wCACnD,6DAAM,KAAK,EAAC,WAAW,YAAa,CAClC,CACD;gCACL,2DAAI,KAAK,EAAC,qBAAqB;oCAC7B,0DAAG,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,qCAAqC,iBAAa,OAAO,iBAAa,cAAc;wCACzG,0DAAG,KAAK,EAAC,kBAAkB,iBAAa,MAAM,GAAK;wCACnD,uEAAkB,CAChB,CACD;gCACL,2DAAI,KAAK,EAAC,WAAW;oCACnB,0DAAG,KAAK,EAAC,qCAAqC,EAAC,IAAI,EAAC,uEAAuE;wCACzH,8EAAyB,CACvB,CACD;gCACL,2DAAI,KAAK,EAAC,0BAA0B,GAAM;gCAC1C;oCACE,0DAAG,KAAK,EAAC,4BAA4B,EAAC,IAAI,EAAC,8EAA8E;wCACvH,6DAAM,KAAK,EAAC,oCAAoC,iBAAa,MAAM,GAAQ;wCAC3E,6DAAM,KAAK,EAAC,qBAAqB,4BAA6B;wCAC9D,6DAAM,KAAK,EAAC,qBAAqB,QAAS,CACxC,CACD,CACF,CACD,CACF,CACF;gBACN,4DAAK,KAAK,EAAC,8BAA8B,EAAC,EAAE,EAAC,iBAAiB;oBAC5D,4DAAK,KAAK,EAAC,WAAW;wBACpB,6DAAM,MAAM,EAAC,oDAAoD,EAAC,KAAK,EAAC,aAAa,EAAC,MAAM,EAAC,KAAK,EAAC,IAAI,EAAC,QAAQ;4BAC9G,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;YACJ,4DAAK,SAAS,EAAE,IAAI,CAAC,WAAW,GAAQ,CACpC,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 @Element() el: HTMLElement;\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-md hidden-lg\">\n <a class=\"btn btn-default navbar-btn btn-link\" href=\"https://market.crossvertise.com/de-de/mycrossvertise/account/logon?returnUrl=https%3A%2F%2Fwww.crossvertise.com%2F\">\n <i class=\"fa fa-user fa-lg\" aria-hidden=\"true\"></i>\n <span class=\"hidden-xs\">Login</span>\n </a>\n </li>\n <li class=\"hidden-xs hidden-sm\">\n <a role=\"button\" class=\"btn btn-default navbar-btn btn-link\" data-toggle=\"modal\" data-target=\"#login-modal\">\n <i class=\"fa fa-user fa-lg\" aria-hidden=\"true\"></i>\n <span>Login</span>\n </a>\n </li>\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":"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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"]}