@postnord/pn-marketweb-components 2.4.20 → 2.4.22

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 (98) hide show
  1. package/cjs/index-4199ff85.js +8 -4
  2. package/cjs/loader.cjs.js +1 -1
  3. package/cjs/pn-address-autofill.cjs.entry.js +322 -0
  4. package/cjs/pn-market-web-components.cjs.js +1 -1
  5. package/cjs/pn-marketweb-input.cjs.entry.js +36 -25
  6. package/cjs/pn-marketweb-sitefooter.cjs.entry.js +7 -6
  7. package/cjs/pn-marketweb-siteheader.cjs.entry.js +3 -3
  8. package/cjs/pn-proxio-findprice.cjs.entry.js +3 -3
  9. package/cjs/pn-proxio-pricegroup.cjs.entry.js +3 -3
  10. package/cjs/pn-site-footer_3.cjs.entry.js +3 -2
  11. package/collection/collection-manifest.json +2 -1
  12. package/collection/components/input/pn-address-autofill/pn-address-autofill.css +45 -0
  13. package/collection/components/input/pn-address-autofill/pn-address-autofill.js +537 -0
  14. package/collection/components/input/pn-address-autofill/pn-address-autofill.stories.js +40 -0
  15. package/collection/components/input/pn-marketweb-input/pn-marketweb-input.js +50 -39
  16. package/collection/components/input/pn-multi-formfield/types.js +1 -0
  17. package/collection/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter.js +22 -3
  18. package/collection/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter.stories.js +2 -0
  19. package/collection/components/minor/pn-swan/pn-swan.css +12 -0
  20. package/collection/components/minor/pn-swan/pn-swan.js +19 -1
  21. package/collection/components/minor/pn-swan/pn-swan.stories.js +1 -1
  22. package/components/index.d.ts +2 -1
  23. package/components/index.js +1 -0
  24. package/components/index2.js +63 -52
  25. package/components/index3.js +52 -63
  26. package/components/pn-address-autofill.d.ts +11 -0
  27. package/components/pn-address-autofill.js +359 -0
  28. package/components/pn-animated-tile.js +1 -1
  29. package/components/pn-dropdown-choice-adds-row.js +1 -1
  30. package/components/pn-marketweb-input2.js +36 -25
  31. package/components/pn-marketweb-sitefooter.js +6 -4
  32. package/components/pn-marketweb-siteheader.js +1 -1
  33. package/components/pn-multi-formfield.js +1 -1
  34. package/components/pn-proxio-findprice.js +1 -1
  35. package/components/pn-proxio-pricegroup.js +1 -1
  36. package/components/pn-spotlight.js +1 -1
  37. package/components/pn-swan2.js +4 -2
  38. package/esm/index-ee44c065.js +8 -4
  39. package/esm/loader.js +1 -1
  40. package/esm/pn-address-autofill.entry.js +318 -0
  41. package/esm/pn-market-web-components.js +1 -1
  42. package/esm/pn-marketweb-input.entry.js +36 -25
  43. package/esm/pn-marketweb-sitefooter.entry.js +5 -4
  44. package/esm/pn-marketweb-siteheader.entry.js +1 -1
  45. package/esm/pn-proxio-findprice.entry.js +1 -1
  46. package/esm/pn-proxio-pricegroup.entry.js +1 -1
  47. package/esm/pn-site-footer_3.entry.js +3 -2
  48. package/esm-es5/FetchHelper-62dc55bf.js +1 -0
  49. package/esm-es5/index-ee44c065.js +1 -1
  50. package/esm-es5/loader.js +1 -1
  51. package/esm-es5/pn-address-autofill.entry.js +1 -0
  52. package/esm-es5/pn-market-web-components.js +1 -1
  53. package/esm-es5/pn-marketweb-input.entry.js +1 -1
  54. package/esm-es5/pn-marketweb-sitefooter.entry.js +1 -1
  55. package/esm-es5/pn-marketweb-siteheader.entry.js +1 -1
  56. package/esm-es5/pn-proxio-findprice.entry.js +1 -1
  57. package/esm-es5/pn-proxio-pricegroup.entry.js +1 -1
  58. package/esm-es5/pn-site-footer_3.entry.js +1 -1
  59. package/package.json +1 -1
  60. package/pn-market-web-components/{p-7e99f631.system.entry.js → p-18aca162.system.entry.js} +1 -1
  61. package/pn-market-web-components/{p-6e11edfe.entry.js → p-1b282c2b.entry.js} +1 -1
  62. package/pn-market-web-components/{p-3c38a67e.system.entry.js → p-256ba011.system.entry.js} +1 -1
  63. package/pn-market-web-components/{p-21bf0e64.system.entry.js → p-356a937e.system.entry.js} +1 -1
  64. package/pn-market-web-components/{p-1a8d7eb8.entry.js → p-372b4cad.entry.js} +1 -1
  65. package/{esm-es5/MarketWebContextService-f6a33f17.js → pn-market-web-components/p-439d5d73.system.js} +1 -1
  66. package/pn-market-web-components/p-4afba818.entry.js +1 -0
  67. package/pn-market-web-components/p-4b0ccb02.system.entry.js +1 -0
  68. package/pn-market-web-components/p-592b66fc.system.entry.js +1 -0
  69. package/pn-market-web-components/{p-8e9abd24.system.entry.js → p-89fcb948.system.entry.js} +1 -1
  70. package/pn-market-web-components/{p-5427a6ba.entry.js → p-90d2fb46.entry.js} +1 -1
  71. package/pn-market-web-components/p-9ad0ceb0.js +1 -0
  72. package/pn-market-web-components/p-b1527c0c.entry.js +1 -0
  73. package/pn-market-web-components/{p-0ae0b140.system.entry.js → p-c06e3588.system.entry.js} +1 -1
  74. package/pn-market-web-components/p-da9e05c0.entry.js +1 -0
  75. package/pn-market-web-components/p-fcdb7381.system.js +1 -1
  76. package/pn-market-web-components/p-ffae5f6b.entry.js +1 -0
  77. package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
  78. package/types/components/input/pn-address-autofill/pn-address-autofill.d.ts +56 -0
  79. package/types/components/input/pn-address-autofill/types.d.ts +40 -0
  80. package/types/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter-types.d.ts +1 -1
  81. package/types/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter.d.ts +2 -0
  82. package/types/components/minor/pn-swan/pn-swan.d.ts +1 -0
  83. package/types/components.d.ts +60 -1
  84. package/pn-market-web-components/p-33322417.system.js +0 -1
  85. package/pn-market-web-components/p-3ba2a479.entry.js +0 -1
  86. package/pn-market-web-components/p-5d21372b.js +0 -1
  87. package/pn-market-web-components/p-f0078106.entry.js +0 -1
  88. package/pn-market-web-components/p-f45f034b.entry.js +0 -1
  89. package/pn-market-web-components/p-f7165a26.system.entry.js +0 -1
  90. package/cjs/{MarketWebContextService-17053565.js → FetchHelper-2130dacf.js} +84 -84
  91. package/collection/components/{layout-components/pn-multi-formfield → input/pn-address-autofill}/types.js +0 -0
  92. package/collection/components/{layout-components → input}/pn-multi-formfield/multi-formfield.stories.js +0 -0
  93. package/collection/components/{layout-components → input}/pn-multi-formfield/pn-multi-formfield.css +0 -0
  94. package/collection/components/{layout-components → input}/pn-multi-formfield/pn-multi-formfield.js +0 -0
  95. package/components/{MarketWebContextService.js → FetchHelper.js} +84 -84
  96. package/esm/{MarketWebContextService-f6a33f17.js → FetchHelper-62dc55bf.js} +84 -84
  97. /package/types/components/{layout-components → input}/pn-multi-formfield/pn-multi-formfield.d.ts +0 -0
  98. /package/types/components/{layout-components → input}/pn-multi-formfield/types.d.ts +0 -0
@@ -1,70 +1,59 @@
1
- /**
2
- * Returns a function, that, as long as it continues to be invoked, will not
3
- * be triggered. The function will be called after it stops being called for
4
- * N milliseconds. If `immediate` is passed, trigger the function on the
5
- * leading edge, instead of the trailing. The function also has a property 'clear'
6
- * that is a function which will clear the timer to prevent previously scheduled executions.
7
- *
8
- * @source underscore.js
9
- * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/
10
- * @param {Function} function to wrap
11
- * @param {Number} timeout in ms (`100`)
12
- * @param {Boolean} whether to execute at the beginning (`false`)
13
- * @api public
14
- */
15
- function debounce(func, wait, immediate){
16
- var timeout, args, context, timestamp, result;
17
- if (null == wait) wait = 100;
1
+ import { c as createCommonjsModule } from './_commonjsHelpers.js';
18
2
 
19
- function later() {
20
- var last = Date.now() - timestamp;
3
+ var classnames = createCommonjsModule(function (module) {
4
+ /*!
5
+ Copyright (c) 2018 Jed Watson.
6
+ Licensed under the MIT License (MIT), see
7
+ http://jedwatson.github.io/classnames
8
+ */
9
+ /* global define */
21
10
 
22
- if (last < wait && last >= 0) {
23
- timeout = setTimeout(later, wait - last);
24
- } else {
25
- timeout = null;
26
- if (!immediate) {
27
- result = func.apply(context, args);
28
- context = args = null;
29
- }
30
- }
31
- }
32
- var debounced = function(){
33
- context = this;
34
- args = arguments;
35
- timestamp = Date.now();
36
- var callNow = immediate && !timeout;
37
- if (!timeout) timeout = setTimeout(later, wait);
38
- if (callNow) {
39
- result = func.apply(context, args);
40
- context = args = null;
41
- }
11
+ (function () {
42
12
 
43
- return result;
44
- };
13
+ var hasOwn = {}.hasOwnProperty;
45
14
 
46
- debounced.clear = function() {
47
- if (timeout) {
48
- clearTimeout(timeout);
49
- timeout = null;
50
- }
51
- };
52
-
53
- debounced.flush = function() {
54
- if (timeout) {
55
- result = func.apply(context, args);
56
- context = args = null;
57
-
58
- clearTimeout(timeout);
59
- timeout = null;
60
- }
61
- };
15
+ function classNames() {
16
+ var classes = [];
62
17
 
63
- return debounced;
64
- }
65
- // Adds compatibility for ES modules
66
- debounce.debounce = debounce;
18
+ for (var i = 0; i < arguments.length; i++) {
19
+ var arg = arguments[i];
20
+ if (!arg) continue;
67
21
 
68
- var debounce_1 = debounce;
22
+ var argType = typeof arg;
69
23
 
70
- export { debounce_1 as d };
24
+ if (argType === 'string' || argType === 'number') {
25
+ classes.push(arg);
26
+ } else if (Array.isArray(arg)) {
27
+ if (arg.length) {
28
+ var inner = classNames.apply(null, arg);
29
+ if (inner) {
30
+ classes.push(inner);
31
+ }
32
+ }
33
+ } else if (argType === 'object') {
34
+ if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
35
+ classes.push(arg.toString());
36
+ continue;
37
+ }
38
+
39
+ for (var key in arg) {
40
+ if (hasOwn.call(arg, key) && arg[key]) {
41
+ classes.push(key);
42
+ }
43
+ }
44
+ }
45
+ }
46
+
47
+ return classes.join(' ');
48
+ }
49
+
50
+ if (module.exports) {
51
+ classNames.default = classNames;
52
+ module.exports = classNames;
53
+ } else {
54
+ window.classNames = classNames;
55
+ }
56
+ }());
57
+ });
58
+
59
+ export { classnames as c };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface PnAddressAutofill extends Components.PnAddressAutofill, HTMLElement {}
4
+ export const PnAddressAutofill: {
5
+ prototype: PnAddressAutofill;
6
+ new (): PnAddressAutofill;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,359 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import { F as FetchHelper, M as MarketWebContextService } from './FetchHelper.js';
3
+ import { d as debounce_1 } from './index2.js';
4
+ import { d as defineCustomElement$2 } from './pn-marketweb-input2.js';
5
+
6
+ const pnAddressAutofillCss = "pn-address-autofill pn-marketweb-input{width:50%}pn-address-autofill .input-container-row{display:-ms-flexbox;display:flex;gap:1rem;margin-bottom:1rem}pn-address-autofill .label-container{color:#5E554A;font-size:0.875em;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:end;align-items:flex-end}pn-address-autofill .autocomplete-items{position:absolute;border-radius:0.8rem;border:0.1rem solid #5E554A;width:100%;max-height:30rem;overflow-y:auto}pn-address-autofill .autocomplete-items:hover,pn-address-autofill .autocomplete-items :focus{border:0.1rem solid #00A0D6}pn-address-autofill .autocomplete-items div{padding:1.6rem;cursor:pointer;background-color:#fff;border:0.1rem solid transparent}pn-address-autofill .autocomplete-items div:first-child{border-radius:0.8rem 0.8rem 0 0}pn-address-autofill .autocomplete-items div:last-child{border-radius:0 0 0.8rem 0.8rem}pn-address-autofill .autocomplete-items div:hover{background-color:#e0f8ff}pn-address-autofill .autocomplete-items .autocomplete-active{background-color:#e0f8ff}";
7
+
8
+ const PnAddressAutofill$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
9
+ constructor() {
10
+ super();
11
+ this.__registerHost();
12
+ this.addresscomplete = createEvent(this, "addresscomplete", 7);
13
+ this.pnInputPostalCode = null;
14
+ this.pnInputCity = null;
15
+ this.pnInputStreetAddress = null;
16
+ this.pnInputStreetNumber = null;
17
+ this.postalCodeInputField = null;
18
+ this.streetAddressInputField = null;
19
+ this.streetNumberInputField = null;
20
+ this.pnInputHiddenValue = null;
21
+ this.endpointPath = '/api/location/get-by-location';
22
+ this._postalCodeProps = null;
23
+ this._cityProps = null;
24
+ this._streetAddressProps = null;
25
+ this._streetNumberProps = null;
26
+ this.fetchHelper = new FetchHelper('PostalCodeCityAutofill');
27
+ this.filterStreetNames = (data) => {
28
+ const addresses = [];
29
+ this.streetAdressArr = null;
30
+ data.addresses.forEach(item => {
31
+ if (item.postalCode.postalCity === this.city && !addresses.includes(item.street)) {
32
+ addresses.push(item.street);
33
+ }
34
+ });
35
+ this.streetAdressArr = addresses;
36
+ };
37
+ this.filterStreetNumbers = (data) => {
38
+ const streetNumbersResult = [];
39
+ data.addresses.forEach(item => {
40
+ if (item.postalCode.postalCode === this.postalCode) {
41
+ const { numberFrom, numberTo } = item;
42
+ const from = parseInt(numberFrom);
43
+ const to = parseInt(numberTo);
44
+ for (let i = from; i <= to; i++) {
45
+ const nrString = i.toString();
46
+ if (!streetNumbersResult.includes(nrString)) {
47
+ streetNumbersResult.push(i.toString());
48
+ }
49
+ }
50
+ }
51
+ });
52
+ this.streetNumberArr = streetNumbersResult;
53
+ };
54
+ this.market = null;
55
+ this.environment = null;
56
+ this.endpoint = null;
57
+ this.cache = true;
58
+ this.countryCode = null;
59
+ this.postalCodeProps = null;
60
+ this.cityProps = null;
61
+ this.streetAddressProps = null;
62
+ this.streetNumberProps = null;
63
+ this.streetAdressArr = null;
64
+ this.streetNumberArr = null;
65
+ this.city = null;
66
+ this.postalCode = null;
67
+ this.streetAddress = null;
68
+ this.streetNumber = null;
69
+ this.fullAddress = null;
70
+ }
71
+ componentWillLoad() {
72
+ this.setInitialValues();
73
+ this._postalCodeProps = this.setProps(this.postalCodeProps);
74
+ this._cityProps = this.setProps(this.cityProps);
75
+ this._streetAddressProps = this.setProps(this.streetAddressProps);
76
+ this._streetNumberProps = this.setProps(this.streetNumberProps);
77
+ }
78
+ setProps(props) {
79
+ if (typeof props === 'string') {
80
+ return JSON.parse(props);
81
+ }
82
+ else {
83
+ return props;
84
+ }
85
+ }
86
+ componentDidLoad() {
87
+ this.postalCodeInputField = this.pnInputPostalCode.querySelector('input');
88
+ this.streetAddressInputField = this.pnInputStreetAddress.querySelector('input');
89
+ this.streetNumberInputField = this.pnInputStreetNumber.querySelector('input');
90
+ this.addEventHandlers();
91
+ }
92
+ async setInitialValues(href = window.location.href) {
93
+ var _a;
94
+ const marketWebContextService = new MarketWebContextService(href);
95
+ if (!this.environment) {
96
+ this.environment = await marketWebContextService.getEnvironmentName();
97
+ }
98
+ if (!this.endpoint && ((_a = this.environment) === null || _a === void 0 ? void 0 : _a.indexOf('local')) === -1) {
99
+ this.endpoint = await marketWebContextService.getEndpoint(this.environment, this.market);
100
+ }
101
+ if (!this.endpoint) {
102
+ this.endpoint = '';
103
+ }
104
+ }
105
+ addEventHandlers() {
106
+ const postalCodeSearch = debounce_1.debounce(this.fetchData.bind(this, this.postalCodeInputField), 1000);
107
+ this.postalCodeInputField.addEventListener('keyup', postalCodeSearch);
108
+ this.streetAddressInputField.addEventListener('keyup', this.handleStreetAddressDropdown.bind(this));
109
+ this.streetNumberInputField.addEventListener('focus', this.handleStreetNumberDropdown.bind(this));
110
+ this.addFormFieldEvent();
111
+ }
112
+ addFormFieldEvent() {
113
+ const allInputs = this.hostElement.querySelectorAll('input');
114
+ allInputs.forEach(element => {
115
+ ['keyup', 'change'].forEach(eventName => {
116
+ const debounceUpdate = debounce_1.debounce(this.updateHiddenValue.bind(this), 1000);
117
+ element.addEventListener(eventName, debounceUpdate);
118
+ });
119
+ });
120
+ }
121
+ updateHiddenValue(e) {
122
+ if (e.target === this.streetNumberInputField) {
123
+ this.streetNumber = this.streetNumberInputField.value;
124
+ }
125
+ if (this.postalCode && this.city && this.streetAddress && this.streetNumber) {
126
+ this.fullAddress = `${this.streetAddress} ${this.streetNumber}, ${this.city} ${this.postalCode}`;
127
+ }
128
+ else {
129
+ this.fullAddress = '';
130
+ }
131
+ this.addresscomplete.emit(this.fullAddress);
132
+ }
133
+ async fetchData(field, e) {
134
+ var _a;
135
+ if (e) {
136
+ e.preventDefault();
137
+ if (e.key === 'Tab') {
138
+ if (this.city) {
139
+ return;
140
+ }
141
+ }
142
+ }
143
+ let query = '';
144
+ const isPostalCodeSearch = e && e.target === this.postalCodeInputField;
145
+ const isStreetAddressSearch = field === this.streetAddressInputField && this.city && this.city.length;
146
+ const isStreetNumberSearch = field === this.streetNumberInputField && this.city && this.city.length && this.streetAddress && this.streetAddress.length;
147
+ if (isPostalCodeSearch) {
148
+ query = this.postalCodeInputField.value;
149
+ this.streetAdressArr = null;
150
+ this.streetAddressInputField.value = '';
151
+ this.streetNumberArr = null;
152
+ this.streetNumberInputField.value = '';
153
+ this.city = null;
154
+ this.streetAddress = null;
155
+ this.streetNumber = null;
156
+ }
157
+ if (isStreetAddressSearch) {
158
+ query = `${this.streetAddressInputField.value}, ${this.city}`;
159
+ this.streetNumberArr = null;
160
+ this.streetNumberInputField.value = '';
161
+ this.streetNumber = null;
162
+ }
163
+ if (isStreetNumberSearch) {
164
+ this.streetAdressArr = null;
165
+ query = `${this.streetAddress}, ${this.city}`;
166
+ }
167
+ if (query.length > 0) {
168
+ const endpointBase = this.endpoint.lastIndexOf('/') === this.endpoint.length - 1 ? this.endpoint.substring(0, this.endpoint.length - 1) : this.endpoint;
169
+ const fetchUrl = `${endpointBase}${this.endpointPath}?countryCode=${this.countryCode}&query=${query}`;
170
+ const data = (await this.fetchHelper.fetchJson(fetchUrl, {
171
+ mode: 'cors',
172
+ }, this.cache));
173
+ if (data) {
174
+ if (isPostalCodeSearch) {
175
+ this.city = data.postalCodes ? (_a = data.postalCodes[0]) === null || _a === void 0 ? void 0 : _a.postalCity : null;
176
+ }
177
+ if (isStreetAddressSearch && data.addresses) {
178
+ this.postalCode = this.postalCodeInputField.value;
179
+ this.filterStreetNames(data);
180
+ }
181
+ if (isStreetNumberSearch && data.addresses) {
182
+ this.filterStreetNumbers(data);
183
+ }
184
+ }
185
+ }
186
+ }
187
+ async handleStreetAddressDropdown(e) {
188
+ const target = e.target;
189
+ if (target === this.streetAddressInputField && target.value.length) {
190
+ if (!this.streetAdressArr || !this.streetAdressArr.length) {
191
+ await this.fetchData(this.streetAddressInputField, null);
192
+ }
193
+ }
194
+ if (!target.value || !target.value.length) {
195
+ this.streetAdressArr = null;
196
+ }
197
+ if (this.streetAdressArr && this.streetAdressArr.length) {
198
+ this.autoComplete(e, this.streetAdressArr);
199
+ }
200
+ }
201
+ async handleStreetNumberDropdown(e) {
202
+ e.preventDefault();
203
+ const target = e.target;
204
+ if (target === this.streetNumberInputField) {
205
+ if (!this.streetNumberArr || !this.streetNumberArr.length) {
206
+ await this.fetchData(this.streetNumberInputField, null);
207
+ }
208
+ if (this.streetNumberArr) {
209
+ this.autoComplete(e, this.streetNumberArr);
210
+ }
211
+ }
212
+ }
213
+ autoComplete(e, arr) {
214
+ const inputField = e.target;
215
+ if (arr.length < 1) {
216
+ return;
217
+ }
218
+ let currentFocus = 0;
219
+ inputField.addEventListener('input', () => {
220
+ const val = inputField.value;
221
+ this.closeAllLists(inputField);
222
+ if (!val) {
223
+ return;
224
+ }
225
+ currentFocus = -1;
226
+ let list = document.createElement('div');
227
+ list.setAttribute('id', 'autocomplete-list' + inputField.name);
228
+ list.setAttribute('class', 'autocomplete-items');
229
+ inputField.parentElement.appendChild(list);
230
+ for (let i = 0; i < arr.length; i++) {
231
+ if (arr[i].substring(0, val.length).toUpperCase() == val.toUpperCase()) {
232
+ let option = document.createElement('div');
233
+ option.innerHTML = '<strong>' + arr[i].substring(0, val.length) + '</strong>';
234
+ option.innerHTML += arr[i].substring(val.length);
235
+ option.innerHTML += "<input type='hidden' value='" + arr[i] + "'>";
236
+ option.addEventListener('click', clickEvent => {
237
+ const inputParrent = inputField.closest('pn-marketweb-input');
238
+ let eventTarget = clickEvent.target;
239
+ if (eventTarget.nodeName === 'STRONG') {
240
+ eventTarget = eventTarget.parentElement;
241
+ }
242
+ inputParrent.value = eventTarget.getElementsByTagName('input')[0].value;
243
+ if (inputField === this.streetNumberInputField) {
244
+ this.streetNumber = inputParrent.value;
245
+ }
246
+ if (inputField === this.streetAddressInputField) {
247
+ this.streetAddress = inputParrent.value;
248
+ }
249
+ this.closeAllLists(clickEvent.target);
250
+ inputField.focus();
251
+ });
252
+ list.appendChild(option);
253
+ }
254
+ }
255
+ });
256
+ inputField.addEventListener('keydown', keydownEvent => {
257
+ const listElement = document.getElementById('autocomplete-list' + inputField.name);
258
+ let element;
259
+ if (listElement) {
260
+ element = listElement.getElementsByTagName('div');
261
+ }
262
+ else {
263
+ element = listElement;
264
+ }
265
+ //If arrow DOWN key is pressed
266
+ if (keydownEvent.keyCode == 40) {
267
+ currentFocus++;
268
+ this.addActive(element, currentFocus);
269
+ }
270
+ //If the arrow UP key is pressed
271
+ if (keydownEvent.keyCode == 38) {
272
+ currentFocus--;
273
+ this.addActive(element, currentFocus);
274
+ }
275
+ //If the ENTER key is pressed
276
+ if (keydownEvent.keyCode == 13) {
277
+ keydownEvent.preventDefault();
278
+ if (currentFocus > -1) {
279
+ if (element) {
280
+ element[currentFocus].click();
281
+ }
282
+ }
283
+ }
284
+ });
285
+ }
286
+ //close all autocomplete lists in the document, except the one passed as an argument:
287
+ closeAllLists(elmnt) {
288
+ const lists = document.getElementsByClassName('autocomplete-items');
289
+ for (let i = 0; i < lists.length; i++) {
290
+ if (elmnt != lists[i]) {
291
+ lists[i].parentNode.removeChild(lists[i]);
292
+ }
293
+ }
294
+ }
295
+ //a function to classify an item as "active":
296
+ addActive(elmnt, currentFocus) {
297
+ if (!elmnt)
298
+ return;
299
+ this.removeActive(elmnt);
300
+ if (currentFocus >= elmnt.length)
301
+ currentFocus = 0;
302
+ if (currentFocus < 0)
303
+ currentFocus = elmnt.length - 1;
304
+ elmnt[currentFocus].classList.add('autocomplete-active');
305
+ }
306
+ //a function to remove the "active" class from all autocomplete items:
307
+ removeActive(elmnt) {
308
+ for (let i = 0; i < elmnt.length; i++) {
309
+ elmnt[i].classList.remove('autocomplete-active');
310
+ }
311
+ }
312
+ render() {
313
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
314
+ return (h(Host, { class: "pn-address-autofill" }, ((_a = this._postalCodeProps) === null || _a === void 0 ? void 0 : _a.postalCodeCityLabel) ? (h("div", { class: "label-container" }, h("label", null, `${this._postalCodeProps.postalCodeCityLabel}`))) : null, h("div", { class: "input-container-row" }, h("pn-marketweb-input", { type: "text", name: (_b = this._postalCodeProps) === null || _b === void 0 ? void 0 : _b.postalCodeInputName, required: (_c = this._postalCodeProps) === null || _c === void 0 ? void 0 : _c.postalCodeInputRequired, placeholder: (_d = this._postalCodeProps) === null || _d === void 0 ? void 0 : _d.postalCodeInputPlaceholder, ref: el => (this.pnInputPostalCode = el), autocomplete: "off", helpertext: (_e = this._postalCodeProps) === null || _e === void 0 ? void 0 : _e.postalCodeInputHelpertext }), h("pn-marketweb-input", { type: "text", name: (_f = this._cityProps) === null || _f === void 0 ? void 0 : _f.cityInputName, disabled: true, value: this.city, placeholder: (_g = this._cityProps) === null || _g === void 0 ? void 0 : _g.cityInputPlaceholder, autocomplete: "off", helpertext: (_h = this._cityProps) === null || _h === void 0 ? void 0 : _h.cityInputHelpertext })), ((_j = this._streetAddressProps) === null || _j === void 0 ? void 0 : _j.streetAddressNumberLabel) ? (h("div", { class: "label-container" }, h("label", null, `${this._streetAddressProps.streetAddressNumberLabel}`))) : null, h("div", { class: "input-container-row" }, h("pn-marketweb-input", { type: "text", name: (_k = this._streetAddressProps) === null || _k === void 0 ? void 0 : _k.streetAddressInputName, required: (_l = this._streetAddressProps) === null || _l === void 0 ? void 0 : _l.streetAddressInputRequired, value: this.streetAddress, placeholder: (_m = this._streetAddressProps) === null || _m === void 0 ? void 0 : _m.streetAddressInputPlaceholder, ref: el => (this.pnInputStreetAddress = el), autocomplete: "off", helpertext: (_o = this._streetAddressProps) === null || _o === void 0 ? void 0 : _o.streetAddressInputHelpertext }), h("pn-marketweb-input", { type: "text", name: (_p = this._streetNumberProps) === null || _p === void 0 ? void 0 : _p.streetNumberInputName, required: (_q = this._streetNumberProps) === null || _q === void 0 ? void 0 : _q.streetNumberInputRequired, value: this.streetNumber, placeholder: (_r = this._streetNumberProps) === null || _r === void 0 ? void 0 : _r.streetNumberInputPlaceholder, ref: el => (this.pnInputStreetNumber = el), autocomplete: "off", helpertext: (_s = this._streetNumberProps) === null || _s === void 0 ? void 0 : _s.streetNumberInputHelpertext }))));
315
+ }
316
+ get hostElement() { return this; }
317
+ static get style() { return pnAddressAutofillCss; }
318
+ }, [0, "pn-address-autofill", {
319
+ "market": [1537],
320
+ "environment": [1537],
321
+ "endpoint": [1],
322
+ "cache": [4],
323
+ "countryCode": [1, "country-code"],
324
+ "postalCodeProps": [1, "postal-code-props"],
325
+ "cityProps": [1, "city-props"],
326
+ "streetAddressProps": [1, "street-address-props"],
327
+ "streetNumberProps": [1, "street-number-props"],
328
+ "streetAdressArr": [32],
329
+ "streetNumberArr": [32],
330
+ "city": [32],
331
+ "postalCode": [32],
332
+ "streetAddress": [32],
333
+ "streetNumber": [32],
334
+ "fullAddress": [32]
335
+ }]);
336
+ function defineCustomElement$1() {
337
+ if (typeof customElements === "undefined") {
338
+ return;
339
+ }
340
+ const components = ["pn-address-autofill", "pn-marketweb-input"];
341
+ components.forEach(tagName => { switch (tagName) {
342
+ case "pn-address-autofill":
343
+ if (!customElements.get(tagName)) {
344
+ customElements.define(tagName, PnAddressAutofill$1);
345
+ }
346
+ break;
347
+ case "pn-marketweb-input":
348
+ if (!customElements.get(tagName)) {
349
+ defineCustomElement$2();
350
+ }
351
+ break;
352
+ } });
353
+ }
354
+ defineCustomElement$1();
355
+
356
+ const PnAddressAutofill = PnAddressAutofill$1;
357
+ const defineCustomElement = defineCustomElement$1;
358
+
359
+ export { PnAddressAutofill, defineCustomElement };
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
- import { c as classnames } from './index2.js';
2
+ import { c as classnames } from './index3.js';
3
3
 
4
4
  const pnAnimatedTileCss = "pn-animated-tile .pn-animated-tile__container{position:relative;border-radius:2.4rem;height:56rem;cursor:default}pn-animated-tile .pn-animated-tile__content{position:relative;display:-ms-flexbox;display:flex;height:100%;width:100%;background-color:transparent}pn-animated-tile [slot=side-a],pn-animated-tile [slot=side-b]{position:absolute;-ms-flex-item-align:stretch;align-self:stretch;top:0;left:0;width:100%;height:100%}pn-animated-tile [slot=side-a]{padding:0;opacity:1}pn-animated-tile [slot=side-b]{z-index:-1;padding:2.4rem 2.4rem 7rem 2.4rem;opacity:0;-webkit-transform:translateY(50px);transform:translateY(50px)}pn-animated-tile .pn-animated-tile__toggle{z-index:2;position:absolute;bottom:2.4rem;right:2.4rem;padding:0.8rem;border-radius:50%;border:none;cursor:pointer;background-color:#FFFFFF;-webkit-transition:background-color 0.45s ease-in-out;transition:background-color 0.45s ease-in-out}pn-animated-tile .pn-animated-tile__toggle pn-icon{background-color:#FFFFFF;-webkit-transition:background-color 0.45s ease-in-out, -webkit-transform 0.45s ease-in-out 0.5s;transition:background-color 0.45s ease-in-out, -webkit-transform 0.45s ease-in-out 0.5s;transition:background-color 0.45s ease-in-out, transform 0.45s ease-in-out 0.5s;transition:background-color 0.45s ease-in-out, transform 0.45s ease-in-out 0.5s, -webkit-transform 0.45s ease-in-out 0.5s}pn-animated-tile .pn-animated-tile__toggle:hover{background-color:#e9e6e5}pn-animated-tile .pn-animated-tile__toggle:hover pn-icon{background-color:#e9e6e5}pn-animated-tile .button-tooltip{display:none}.cat-animate [slot=side-a],.cat-animate [slot=side-b]{-webkit-transition:opacity 0.45s ease-in-out, -webkit-transform 0.45s ease-in-out 0.5s;transition:opacity 0.45s ease-in-out, -webkit-transform 0.45s ease-in-out 0.5s;transition:opacity 0.45s ease-in-out, transform 0.45s ease-in-out 0.5s;transition:opacity 0.45s ease-in-out, transform 0.45s ease-in-out 0.5s, -webkit-transform 0.45s ease-in-out 0.5s}.cat-animate.fade [slot=side-a]{opacity:0;z-index:-1}.cat-animate.fade [slot=side-b]{z-index:1;opacity:1;-webkit-transform:translateY(0);transform:translateY(0);-webkit-transition-delay:0.5s;transition-delay:0.5s}.cat-animate.fade--reversed [slot=side-a]{opacity:1;-webkit-transition-delay:0.5s;transition-delay:0.5s}.cat-animate.fade--reversed [slot=side-b]{opacity:0;-webkit-transform:translateY(50px);transform:translateY(50px)}.cat-animate.toggle.animate pn-icon{-webkit-transform:rotate(45deg);transform:rotate(45deg)}[data-cat-theme=white] .pn-animated-tile__container{background-color:#FFFFFF}[data-cat-theme=white] .pn-animated-tile__toggle{background-color:#00A0D6}[data-cat-theme=white] .pn-animated-tile__toggle pn-icon{background-color:#00A0D6}[data-cat-theme=white] .pn-animated-tile__toggle pn-icon svg>path{fill:#FFFFFF}[data-cat-theme=white] .pn-animated-tile__toggle:hover{background-color:#005D92}[data-cat-theme=white] .pn-animated-tile__toggle:hover pn-icon{background-color:#005D92}[data-cat-theme=white] .pn-animated-tile__toggle:focus,[data-cat-theme=white] .pn-animated-tile__toggle:focus-visible{outline-color:#005D92}[data-cat-theme=coral400] .pn-animated-tile__container{background-color:#F06365}[data-cat-theme=coral400] .pn-animated-tile__toggle{background-color:#FFFFFF}[data-cat-theme=coral400] .pn-animated-tile__toggle pn-icon{background-color:#FFFFFF}[data-cat-theme=coral400] .pn-animated-tile__toggle pn-icon svg>path{fill:#F06365}[data-cat-theme=coral400] .pn-animated-tile__toggle:focus,[data-cat-theme=coral400] .pn-animated-tile__toggle:focus-visible{outline-color:#F06365}[data-cat-theme=private] .pn-animated-tile__container{background-color:#00A0D6}[data-cat-theme=private] .pn-animated-tile__toggle{background-color:#FFFFFF}[data-cat-theme=private] .pn-animated-tile__toggle pn-icon{background-color:#FFFFFF}[data-cat-theme=private] .pn-animated-tile__toggle pn-icon svg>path{fill:#00A0D6}[data-cat-theme=private] .pn-animated-tile__toggle:focus,[data-cat-theme=private] .pn-animated-tile__toggle:focus-visible{outline-color:#00A0D6}[data-cat-theme=business] .pn-animated-tile__container{background-color:#0D234B}[data-cat-theme=business] .pn-animated-tile__toggle{background-color:#FFFFFF}[data-cat-theme=business] .pn-animated-tile__toggle pn-icon{background-color:#FFFFFF}[data-cat-theme=business] .pn-animated-tile__toggle pn-icon svg>path{fill:#0D234B}[data-cat-theme=business] .pn-animated-tile__toggle:focus,[data-cat-theme=business] .pn-animated-tile__toggle:focus-visible{outline-color:#0D234B}[data-cat-theme=hybrid] .pn-animated-tile__container{background-color:#e9e6e5}[data-cat-theme=hybrid] .pn-animated-tile__toggle{background-color:#FFFFFF}[data-cat-theme=hybrid] .pn-animated-tile__toggle pn-icon{background-color:#FFFFFF}[data-cat-theme=hybrid] .pn-animated-tile__toggle pn-icon svg>path{fill:#005D92}[data-cat-theme=hybrid] .pn-animated-tile__toggle:focus,[data-cat-theme=hybrid] .pn-animated-tile__toggle:focus-visible{outline-color:#005D92}[data-cat-firstpage-only=true] [slot=side-b],[data-cat-firstpage-only=true] .pn-animated-tile__toggle{display:none}";
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { d as debounce_1 } from './index3.js';
2
+ import { d as debounce_1 } from './index2.js';
3
3
  import { d as defineCustomElement$2 } from './pn-marketweb-input2.js';
4
4
 
5
5
  const pnDropdownChoiceAddsRowCss = "pn-dropdown-choice-adds-row{gap:1rem}pn-dropdown-choice-adds-row .dropdown-choice-form-row{display:-ms-flexbox;display:flex;gap:1rem}pn-dropdown-choice-adds-row .pn-row-select-dropdown{width:50%;margin-bottom:1rem}@media only screen and (max-width: 640px){pn-dropdown-choice-adds-row .pn-row-select-dropdown{width:100%}}pn-dropdown-choice-adds-row .pn-dropdown-choice-table{width:100%;border-spacing:0rem}pn-dropdown-choice-adds-row .pn-dropdown-choice-table thead th{text-align:left;padding:1rem 0.5rem}pn-dropdown-choice-adds-row .pn-dropdown-choice-table thead th label{color:#5E554A;font-size:1.4rem;font-weight:400}pn-dropdown-choice-adds-row .pn-dropdown-choice-table thead .table-header--name{width:40%}pn-dropdown-choice-adds-row .pn-dropdown-choice-table thead .table-header--dropdown{width:40%}pn-dropdown-choice-adds-row .pn-dropdown-choice-table thead .table-header--input{width:10%}pn-dropdown-choice-adds-row .pn-dropdown-choice-table thead .table-header--delete{width:10%}pn-dropdown-choice-adds-row .pn-dropdown-choice-table tbody td{padding:0.5rem}pn-dropdown-choice-adds-row .pn-dropdown-choice-table tbody tr:nth-child(even){background-color:#effbff}pn-dropdown-choice-adds-row .pn-dropdown-choice-table tbody .tr-delete{text-align:center}pn-dropdown-choice-adds-row .pn-dropdown-choice-table tfoot td small{color:#A70707;vertical-align:middle}pn-dropdown-choice-adds-row .pn-dropdown-choice-table tfoot td pn-icon{margin-right:0.25em;vertical-align:middle}";
@@ -7,23 +7,23 @@ const PnMarketwebInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElem
7
7
  super();
8
8
  this.__registerHost();
9
9
  this.disabled = false;
10
- this.error = '';
10
+ this.error = "";
11
11
  this.invalid = false;
12
- this.helpertext = '';
13
- this.label = '';
14
- this.placeholder = '';
12
+ this.helpertext = "";
13
+ this.label = "";
14
+ this.placeholder = "";
15
15
  this.inputid = `${Math.random()}`;
16
- this.name = '';
17
- this.required = null;
18
- this.type = 'text';
19
- this.autocomplete = '';
16
+ this.name = "";
17
+ this.required = false;
18
+ this.type = "text";
19
+ this.autocomplete = "";
20
20
  this.valid = null;
21
- this.value = '';
22
- this.maxlength = '';
23
- this.min = '';
24
- this.max = '';
25
- this.step = '';
26
- this.pattern = '';
21
+ this.value = "";
22
+ this.maxlength = "";
23
+ this.min = "";
24
+ this.max = "";
25
+ this.step = "";
26
+ this.pattern = "";
27
27
  this.showText = false;
28
28
  }
29
29
  getTextMessage() {
@@ -37,8 +37,21 @@ const PnMarketwebInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElem
37
37
  this.showText = !this.showText;
38
38
  }
39
39
  getInputType() {
40
- let types = ['text', 'password', 'url', 'tel', 'search', 'number', 'email', 'date', 'datetime-local', 'month', 'week', 'time'];
41
- return (types.includes(this.type) && !this.showText) ? this.type : 'text';
40
+ let types = [
41
+ "text",
42
+ "password",
43
+ "url",
44
+ "tel",
45
+ "search",
46
+ "number",
47
+ "email",
48
+ "date",
49
+ "datetime-local",
50
+ "month",
51
+ "week",
52
+ "time",
53
+ ];
54
+ return types.includes(this.type) && !this.showText ? this.type : "text";
42
55
  }
43
56
  setVal(e) {
44
57
  var _a;
@@ -46,21 +59,19 @@ const PnMarketwebInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElem
46
59
  this.value = target.value;
47
60
  }
48
61
  getClassNames() {
49
- let classNames = 'pn-input ';
62
+ let classNames = "pn-input ";
50
63
  if (this.error.length > 0 || this.invalid)
51
- classNames += 'error ';
64
+ classNames += "error ";
52
65
  if (this.valid)
53
- classNames += 'valid ';
54
- if (this.type === 'password')
55
- classNames += 'password ';
66
+ classNames += "valid ";
67
+ if (this.type === "password")
68
+ classNames += "password ";
56
69
  if (this.error || this.invalid || this.valid)
57
- classNames += 'icon ';
70
+ classNames += "icon ";
58
71
  return classNames;
59
72
  }
60
73
  render() {
61
- return (h(Host, { class: this.getClassNames() }, (this.label || this.maxlength) &&
62
- h("div", { class: "label-container" }, this.label && h("label", { htmlFor: this.inputid }, this.label), parseInt(this.maxlength) > 0 && h("label", { class: "char-count", htmlFor: this.inputid }, `${this.value.length}/${this.maxlength}`)), h("div", { class: "input-container" }, h("input", { type: this.getInputType(), value: this.value, id: this.inputid, name: this.name, placeholder: this.placeholder, disabled: this.disabled, autocomplete: this.autocomplete, onInput: (e) => this.setVal(e), maxlength: this.maxlength ? this.maxlength : null, min: (this.min ? this.min : null), max: (this.max ? this.max : null), step: (this.step ? this.step : null), pattern: (this.pattern ? this.pattern : null) }), h("svg", { class: "pn-input-checkmark", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none" }, h("polyline", { class: "checkmark-path", points: "4,12 9,17 20,6", "stroke-width": "3" })), this.type === 'password' && !this.disabled && h("button", { onClick: () => this.toggleTextVisibility() }, "Show")), this.getTextMessage() &&
63
- h("small", null, this.error && h("pn-icon", { symbol: "alert-exclamation-circle", small: true, color: "warning" }), this.getTextMessage())));
74
+ return (h(Host, { class: this.getClassNames() }, (this.label || this.maxlength) && (h("div", { class: "label-container" }, this.label && h("label", { htmlFor: this.inputid }, this.label), parseInt(this.maxlength) > 0 && (h("label", { class: "char-count", htmlFor: this.inputid }, `${this.value.length}/${this.maxlength}`)))), h("div", { class: "input-container" }, h("input", { type: this.getInputType(), value: this.value, id: this.inputid, name: this.name, placeholder: this.placeholder, disabled: this.disabled, required: this.required, autocomplete: this.autocomplete, onInput: (e) => this.setVal(e), maxlength: this.maxlength ? this.maxlength : null, min: this.min ? this.min : null, max: this.max ? this.max : null, step: this.step ? this.step : null, pattern: this.pattern ? this.pattern : null }), h("svg", { class: "pn-input-checkmark", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none" }, h("polyline", { class: "checkmark-path", points: "4,12 9,17 20,6", "stroke-width": "3" })), this.type === "password" && !this.disabled && (h("button", { onClick: () => this.toggleTextVisibility() }, "Show"))), this.getTextMessage() && (h("small", null, this.error && h("pn-icon", { symbol: "alert-exclamation-circle", small: true, color: "warning" }), this.getTextMessage()))));
64
75
  }
65
76
  static get style() { return pnMarketwebInputCss; }
66
77
  }, [0, "pn-marketweb-input", {
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
- import { F as FetchHelper, M as MarketWebContextService } from './MarketWebContextService.js';
2
+ import { F as FetchHelper, M as MarketWebContextService } from './FetchHelper.js';
3
3
  import { d as defineCustomElement$4 } from './pn-site-footer2.js';
4
4
  import { d as defineCustomElement$3 } from './pn-site-footer-col2.js';
5
5
  import { d as defineCustomElement$2 } from './pn-swan2.js';
@@ -139,6 +139,7 @@ const PnMarketwebSiteheader = /*@__PURE__*/ proxyCustomElement(class extends HTM
139
139
  this.cache = false;
140
140
  this.theme = 'default';
141
141
  this.backgroundcolor = 'darkestblue';
142
+ this.showSwan = false;
142
143
  this.siteDefinition = undefined;
143
144
  this.footerContent = undefined;
144
145
  this.i18n = undefined;
@@ -299,11 +300,11 @@ const PnMarketwebSiteheader = /*@__PURE__*/ proxyCustomElement(class extends HTM
299
300
  }
300
301
  renderSwanComponent() {
301
302
  var _a, _b, _c, _d;
302
- return (((_b = (_a = this.footerContent) === null || _a === void 0 ? void 0 : _a.swanInfo) === null || _b === void 0 ? void 0 : _b.showSwan) && (h("div", { class: "swan-wrapper" }, h("div", { class: "separator" }), h("pn-swan", { language: this.language, "license-number": (_d = (_c = this.footerContent) === null || _c === void 0 ? void 0 : _c.swanInfo) === null || _d === void 0 ? void 0 : _d.swanLicense }))));
303
+ return (this.showSwan && (h("div", { class: "swan-wrapper" }, h("div", { class: "separator" }), h("pn-swan", { language: this.language, "license-number": (_b = (_a = this.footerContent) === null || _a === void 0 ? void 0 : _a.swanInfo) === null || _b === void 0 ? void 0 : _b.swanLicense, "link-to": (_d = (_c = this.footerContent) === null || _c === void 0 ? void 0 : _c.swanInfo) === null || _d === void 0 ? void 0 : _d.swanLink }))));
303
304
  }
304
305
  renderDotComFooter() {
305
- var _a, _b, _c, _d, _e, _f;
306
- return (h(Host, { language: this.language, market: this.market, environment: this.environment }, h("pn-site-footer", { theme: this.theme, url: (_b = (_a = this.siteDefinition) === null || _a === void 0 ? void 0 : _a.url) !== null && _b !== void 0 ? _b : '' }, this.renderCols(), h("slot", { name: "middle-extra" }), h("slot", { name: "middle-extra-mobile" }), h("div", { slot: "bottom" }, h("div", { class: `social-media ${((_d = (_c = this.footerContent) === null || _c === void 0 ? void 0 : _c.swanInfo) === null || _d === void 0 ? void 0 : _d.showSwan) ? 'social-media--swan' : ''}` }, h("ul", null, this.renderSocialMeidaIconListElements()), this.renderSwanComponent()), h("div", { class: "copyright" }, this.gotData && ((_e = this.footerContent) === null || _e === void 0 ? void 0 : _e.copyrightText) ? h("span", null, this.footerContent.copyrightText) : null, this.gotData && ((_f = this.footerContent) === null || _f === void 0 ? void 0 : _f.bottomLinks) ? h("ul", null, this.renderBottomLinks()) : null)))));
306
+ var _a, _b, _c, _d;
307
+ return (h(Host, { language: this.language, market: this.market, environment: this.environment }, h("pn-site-footer", { theme: this.theme, url: (_b = (_a = this.siteDefinition) === null || _a === void 0 ? void 0 : _a.url) !== null && _b !== void 0 ? _b : '' }, this.renderCols(), h("slot", { name: "middle-extra" }), h("slot", { name: "middle-extra-mobile" }), h("div", { slot: "bottom" }, h("div", { class: `social-media ${this.showSwan ? 'social-media--swan' : ''}` }, h("ul", null, this.renderSocialMeidaIconListElements()), this.renderSwanComponent()), h("div", { class: "copyright" }, this.gotData && ((_c = this.footerContent) === null || _c === void 0 ? void 0 : _c.copyrightText) ? h("span", null, this.footerContent.copyrightText) : null, this.gotData && ((_d = this.footerContent) === null || _d === void 0 ? void 0 : _d.bottomLinks) ? h("ul", null, this.renderBottomLinks()) : null)))));
307
308
  }
308
309
  render() {
309
310
  switch (this.theme) {
@@ -328,6 +329,7 @@ const PnMarketwebSiteheader = /*@__PURE__*/ proxyCustomElement(class extends HTM
328
329
  "cache": [4],
329
330
  "theme": [513],
330
331
  "backgroundcolor": [513],
332
+ "showSwan": [4, "show-swan"],
331
333
  "siteDefinition": [32],
332
334
  "footerContent": [32],
333
335
  "i18n": [32],
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { F as FetchHelper, M as MarketWebContextService } from './MarketWebContextService.js';
2
+ import { F as FetchHelper, M as MarketWebContextService } from './FetchHelper.js';
3
3
  import { s as state, d as defineCustomElement$9 } from './pn-marketweb-siteheader-login-linklist2.js';
4
4
  import { d as defineCustomElement$h } from './pn-language-selector2.js';
5
5
  import { d as defineCustomElement$g } from './pn-language-selector-option2.js';