@swisspost/internet-header 1.5.1 → 1.5.2

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 (132) hide show
  1. package/dist/cjs/index-3216e4c8.js +176 -0
  2. package/dist/cjs/index-3216e4c8.js.map +1 -0
  3. package/dist/cjs/{language.service-7dbf739d.js → language.service-41b458b1.js} +6 -1
  4. package/dist/cjs/language.service-41b458b1.js.map +1 -0
  5. package/dist/cjs/post-language-switch.cjs.entry.js +1 -1
  6. package/dist/cjs/post-logo.cjs.entry.js +1 -1
  7. package/dist/cjs/post-main-navigation.cjs.entry.js +1 -1
  8. package/dist/cjs/post-search.cjs.entry.js +1 -1
  9. package/dist/cjs/post-skiplinks.cjs.entry.js +2 -2
  10. package/dist/cjs/post-skiplinks.cjs.entry.js.map +1 -1
  11. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js +112 -92
  12. package/dist/cjs/swisspost-internet-breadcrumbs.cjs.entry.js.map +1 -1
  13. package/dist/cjs/swisspost-internet-header.cjs.entry.js +15 -13
  14. package/dist/cjs/swisspost-internet-header.cjs.entry.js.map +1 -1
  15. package/dist/collection/assets/i18n/translations.js +5 -0
  16. package/dist/collection/assets/i18n/translations.js.map +1 -1
  17. package/dist/collection/components/post-internet-breadcrumbs/post-internet-breadcrumbs.css +0 -4
  18. package/dist/collection/components/post-skiplinks/post-skiplinks.js +1 -1
  19. package/dist/collection/components/post-skiplinks/post-skiplinks.js.map +1 -1
  20. package/dist/collection/models/general.model.js.map +1 -1
  21. package/dist/collection/services/config.service.js +5 -3
  22. package/dist/collection/services/config.service.js.map +1 -1
  23. package/dist/components/index2.js +67 -35
  24. package/dist/components/index2.js.map +1 -1
  25. package/dist/components/language.service.js +5 -0
  26. package/dist/components/language.service.js.map +1 -1
  27. package/dist/components/post-skiplinks2.js +1 -1
  28. package/dist/components/post-skiplinks2.js.map +1 -1
  29. package/dist/components/swisspost-internet-breadcrumbs.js +110 -90
  30. package/dist/components/swisspost-internet-breadcrumbs.js.map +1 -1
  31. package/dist/components/swisspost-internet-header.js +13 -11
  32. package/dist/components/swisspost-internet-header.js.map +1 -1
  33. package/dist/esm/index-d2256e06.js +173 -0
  34. package/dist/esm/index-d2256e06.js.map +1 -0
  35. package/dist/esm/{language.service-023d2711.js → language.service-85d8689e.js} +6 -1
  36. package/dist/esm/language.service-85d8689e.js.map +1 -0
  37. package/dist/esm/post-language-switch.entry.js +1 -1
  38. package/dist/esm/post-logo.entry.js +1 -1
  39. package/dist/esm/post-main-navigation.entry.js +1 -1
  40. package/dist/esm/post-search.entry.js +1 -1
  41. package/dist/esm/post-skiplinks.entry.js +2 -2
  42. package/dist/esm/post-skiplinks.entry.js.map +1 -1
  43. package/dist/esm/swisspost-internet-breadcrumbs.entry.js +112 -92
  44. package/dist/esm/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  45. package/dist/esm/swisspost-internet-header.entry.js +15 -13
  46. package/dist/esm/swisspost-internet-header.entry.js.map +1 -1
  47. package/dist/esm-es5/index-d2256e06.js +2 -0
  48. package/dist/esm-es5/index-d2256e06.js.map +1 -0
  49. package/dist/esm-es5/language.service-85d8689e.js +2 -0
  50. package/dist/esm-es5/language.service-85d8689e.js.map +1 -0
  51. package/dist/esm-es5/post-language-switch.entry.js +1 -1
  52. package/dist/esm-es5/post-logo.entry.js +1 -1
  53. package/dist/esm-es5/post-main-navigation.entry.js +1 -1
  54. package/dist/esm-es5/post-search.entry.js +1 -1
  55. package/dist/esm-es5/post-skiplinks.entry.js +1 -1
  56. package/dist/esm-es5/post-skiplinks.entry.js.map +1 -1
  57. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js +2 -2
  58. package/dist/esm-es5/swisspost-internet-breadcrumbs.entry.js.map +1 -1
  59. package/dist/esm-es5/swisspost-internet-header.entry.js +1 -1
  60. package/dist/esm-es5/swisspost-internet-header.entry.js.map +1 -1
  61. package/dist/swisspost-internet-header/p-17a47667.system.js +1 -1
  62. package/dist/swisspost-internet-header/{p-38d645ba.system.entry.js → p-1f13dad6.system.entry.js} +2 -2
  63. package/dist/swisspost-internet-header/{p-38d645ba.system.entry.js.map → p-1f13dad6.system.entry.js.map} +0 -0
  64. package/dist/swisspost-internet-header/{p-5d2fac3b.system.entry.js → p-2df9df9c.system.entry.js} +2 -2
  65. package/dist/swisspost-internet-header/{p-5d2fac3b.system.entry.js.map → p-2df9df9c.system.entry.js.map} +0 -0
  66. package/dist/swisspost-internet-header/{p-d33734b5.entry.js → p-2fd9a085.entry.js} +2 -2
  67. package/dist/swisspost-internet-header/{p-d33734b5.entry.js.map → p-2fd9a085.entry.js.map} +0 -0
  68. package/dist/swisspost-internet-header/p-324563ab.system.js +2 -0
  69. package/dist/swisspost-internet-header/p-324563ab.system.js.map +1 -0
  70. package/dist/swisspost-internet-header/p-33ff32c6.entry.js +2 -0
  71. package/dist/swisspost-internet-header/p-33ff32c6.entry.js.map +1 -0
  72. package/dist/swisspost-internet-header/{p-493337e1.system.entry.js → p-38f55161.system.entry.js} +2 -2
  73. package/dist/swisspost-internet-header/{p-493337e1.system.entry.js.map → p-38f55161.system.entry.js.map} +0 -0
  74. package/dist/swisspost-internet-header/p-4f39b3a4.system.entry.js +2 -0
  75. package/dist/swisspost-internet-header/p-4f39b3a4.system.entry.js.map +1 -0
  76. package/dist/swisspost-internet-header/p-5adcac2a.entry.js +6 -0
  77. package/dist/swisspost-internet-header/p-5adcac2a.entry.js.map +1 -0
  78. package/dist/swisspost-internet-header/{p-0cba8ab4.entry.js → p-5b22e42c.entry.js} +2 -2
  79. package/dist/swisspost-internet-header/{p-0cba8ab4.entry.js.map → p-5b22e42c.entry.js.map} +0 -0
  80. package/dist/swisspost-internet-header/p-733756a9.system.entry.js +7 -0
  81. package/dist/swisspost-internet-header/p-733756a9.system.entry.js.map +1 -0
  82. package/dist/swisspost-internet-header/{p-322526ef.entry.js → p-812b69b4.entry.js} +2 -2
  83. package/dist/swisspost-internet-header/{p-322526ef.entry.js.map → p-812b69b4.entry.js.map} +0 -0
  84. package/dist/swisspost-internet-header/p-84d73529.system.entry.js +2 -0
  85. package/dist/swisspost-internet-header/p-84d73529.system.entry.js.map +1 -0
  86. package/dist/swisspost-internet-header/{p-62c5cf26.entry.js → p-908c0350.entry.js} +2 -2
  87. package/dist/swisspost-internet-header/{p-62c5cf26.entry.js.map → p-908c0350.entry.js.map} +0 -0
  88. package/dist/swisspost-internet-header/p-9b4d5e90.system.js +2 -0
  89. package/dist/swisspost-internet-header/p-9b4d5e90.system.js.map +1 -0
  90. package/dist/swisspost-internet-header/p-a6001d1e.js +2 -0
  91. package/dist/swisspost-internet-header/p-a6001d1e.js.map +1 -0
  92. package/dist/swisspost-internet-header/p-a74b380d.js +2 -0
  93. package/dist/swisspost-internet-header/p-a74b380d.js.map +1 -0
  94. package/dist/swisspost-internet-header/p-c565414e.entry.js +2 -0
  95. package/dist/swisspost-internet-header/p-c565414e.entry.js.map +1 -0
  96. package/dist/swisspost-internet-header/{p-db87f3e3.system.entry.js → p-c5f85f6e.system.entry.js} +2 -2
  97. package/dist/swisspost-internet-header/{p-db87f3e3.system.entry.js.map → p-c5f85f6e.system.entry.js.map} +0 -0
  98. package/dist/swisspost-internet-header/swisspost-internet-header.esm.js +1 -1
  99. package/dist/types/assets/i18n/translations.d.ts +5 -0
  100. package/dist/types/models/general.model.d.ts +1 -1
  101. package/dist/types/services/language.service.d.ts +5 -0
  102. package/package.json +8 -8
  103. package/dist/cjs/index-e7245d60.js +0 -144
  104. package/dist/cjs/index-e7245d60.js.map +0 -1
  105. package/dist/cjs/language.service-7dbf739d.js.map +0 -1
  106. package/dist/esm/index-a75df186.js +0 -141
  107. package/dist/esm/index-a75df186.js.map +0 -1
  108. package/dist/esm/language.service-023d2711.js.map +0 -1
  109. package/dist/esm-es5/index-a75df186.js +0 -2
  110. package/dist/esm-es5/index-a75df186.js.map +0 -1
  111. package/dist/esm-es5/language.service-023d2711.js +0 -2
  112. package/dist/esm-es5/language.service-023d2711.js.map +0 -1
  113. package/dist/swisspost-internet-header/p-0942595f.js +0 -2
  114. package/dist/swisspost-internet-header/p-0942595f.js.map +0 -1
  115. package/dist/swisspost-internet-header/p-3753a678.system.js +0 -2
  116. package/dist/swisspost-internet-header/p-3753a678.system.js.map +0 -1
  117. package/dist/swisspost-internet-header/p-3df823de.system.entry.js +0 -2
  118. package/dist/swisspost-internet-header/p-3df823de.system.entry.js.map +0 -1
  119. package/dist/swisspost-internet-header/p-69c64c29.js +0 -2
  120. package/dist/swisspost-internet-header/p-69c64c29.js.map +0 -1
  121. package/dist/swisspost-internet-header/p-715ebef7.system.entry.js +0 -7
  122. package/dist/swisspost-internet-header/p-715ebef7.system.entry.js.map +0 -1
  123. package/dist/swisspost-internet-header/p-7709ed5c.entry.js +0 -2
  124. package/dist/swisspost-internet-header/p-7709ed5c.entry.js.map +0 -1
  125. package/dist/swisspost-internet-header/p-c8296f63.system.js +0 -2
  126. package/dist/swisspost-internet-header/p-c8296f63.system.js.map +0 -1
  127. package/dist/swisspost-internet-header/p-ccb522ba.entry.js +0 -2
  128. package/dist/swisspost-internet-header/p-ccb522ba.entry.js.map +0 -1
  129. package/dist/swisspost-internet-header/p-cfa787d7.entry.js +0 -6
  130. package/dist/swisspost-internet-header/p-cfa787d7.entry.js.map +0 -1
  131. package/dist/swisspost-internet-header/p-f38f38f4.system.entry.js +0 -2
  132. package/dist/swisspost-internet-header/p-f38f38f4.system.entry.js.map +0 -1
@@ -0,0 +1,176 @@
1
+ 'use strict';
2
+
3
+ /* eslint-disable no-undefined,no-param-reassign,no-shadow */
4
+
5
+ /**
6
+ * Throttle execution of a function. Especially useful for rate limiting
7
+ * execution of handlers on events like resize and scroll.
8
+ *
9
+ * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)
10
+ * are most useful.
11
+ * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,
12
+ * as-is, to `callback` when the throttled-function is executed.
13
+ * @param {object} [options] - An object to configure options.
14
+ * @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds
15
+ * while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed
16
+ * one final time after the last throttled-function call. (After the throttled-function has not been called for
17
+ * `delay` milliseconds, the internal counter is reset).
18
+ * @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback
19
+ * immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that
20
+ * callback will never executed if both noLeading = true and noTrailing = true.
21
+ * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is
22
+ * false (at end), schedule `callback` to execute after `delay` ms.
23
+ *
24
+ * @returns {Function} A new, throttled, function.
25
+ */
26
+ function throttle (delay, callback, options) {
27
+ var _ref = options || {},
28
+ _ref$noTrailing = _ref.noTrailing,
29
+ noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing,
30
+ _ref$noLeading = _ref.noLeading,
31
+ noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading,
32
+ _ref$debounceMode = _ref.debounceMode,
33
+ debounceMode = _ref$debounceMode === void 0 ? undefined : _ref$debounceMode;
34
+ /*
35
+ * After wrapper has stopped being called, this timeout ensures that
36
+ * `callback` is executed at the proper times in `throttle` and `end`
37
+ * debounce modes.
38
+ */
39
+
40
+
41
+ var timeoutID;
42
+ var cancelled = false; // Keep track of the last time `callback` was executed.
43
+
44
+ var lastExec = 0; // Function to clear existing timeout
45
+
46
+ function clearExistingTimeout() {
47
+ if (timeoutID) {
48
+ clearTimeout(timeoutID);
49
+ }
50
+ } // Function to cancel next exec
51
+
52
+
53
+ function cancel(options) {
54
+ var _ref2 = options || {},
55
+ _ref2$upcomingOnly = _ref2.upcomingOnly,
56
+ upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;
57
+
58
+ clearExistingTimeout();
59
+ cancelled = !upcomingOnly;
60
+ }
61
+ /*
62
+ * The `wrapper` function encapsulates all of the throttling / debouncing
63
+ * functionality and when executed will limit the rate at which `callback`
64
+ * is executed.
65
+ */
66
+
67
+
68
+ function wrapper() {
69
+ for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {
70
+ arguments_[_key] = arguments[_key];
71
+ }
72
+
73
+ var self = this;
74
+ var elapsed = Date.now() - lastExec;
75
+
76
+ if (cancelled) {
77
+ return;
78
+ } // Execute `callback` and update the `lastExec` timestamp.
79
+
80
+
81
+ function exec() {
82
+ lastExec = Date.now();
83
+ callback.apply(self, arguments_);
84
+ }
85
+ /*
86
+ * If `debounceMode` is true (at begin) this is used to clear the flag
87
+ * to allow future `callback` executions.
88
+ */
89
+
90
+
91
+ function clear() {
92
+ timeoutID = undefined;
93
+ }
94
+
95
+ if (!noLeading && debounceMode && !timeoutID) {
96
+ /*
97
+ * Since `wrapper` is being called for the first time and
98
+ * `debounceMode` is true (at begin), execute `callback`
99
+ * and noLeading != true.
100
+ */
101
+ exec();
102
+ }
103
+
104
+ clearExistingTimeout();
105
+
106
+ if (debounceMode === undefined && elapsed > delay) {
107
+ if (noLeading) {
108
+ /*
109
+ * In throttle mode with noLeading, if `delay` time has
110
+ * been exceeded, update `lastExec` and schedule `callback`
111
+ * to execute after `delay` ms.
112
+ */
113
+ lastExec = Date.now();
114
+
115
+ if (!noTrailing) {
116
+ timeoutID = setTimeout(debounceMode ? clear : exec, delay);
117
+ }
118
+ } else {
119
+ /*
120
+ * In throttle mode without noLeading, if `delay` time has been exceeded, execute
121
+ * `callback`.
122
+ */
123
+ exec();
124
+ }
125
+ } else if (noTrailing !== true) {
126
+ /*
127
+ * In trailing throttle mode, since `delay` time has not been
128
+ * exceeded, schedule `callback` to execute `delay` ms after most
129
+ * recent execution.
130
+ *
131
+ * If `debounceMode` is true (at begin), schedule `clear` to execute
132
+ * after `delay` ms.
133
+ *
134
+ * If `debounceMode` is false (at end), schedule `callback` to
135
+ * execute after `delay` ms.
136
+ */
137
+ timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);
138
+ }
139
+ }
140
+
141
+ wrapper.cancel = cancel; // Return the wrapper function.
142
+
143
+ return wrapper;
144
+ }
145
+
146
+ /* eslint-disable no-undefined */
147
+ /**
148
+ * Debounce execution of a function. Debouncing, unlike throttling,
149
+ * guarantees that a function is only executed a single time, either at the
150
+ * very beginning of a series of calls, or at the very end.
151
+ *
152
+ * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.
153
+ * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,
154
+ * to `callback` when the debounced-function is executed.
155
+ * @param {object} [options] - An object to configure options.
156
+ * @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds
157
+ * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.
158
+ * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).
159
+ *
160
+ * @returns {Function} A new, debounced function.
161
+ */
162
+
163
+ function debounce (delay, callback, options) {
164
+ var _ref = options || {},
165
+ _ref$atBegin = _ref.atBegin,
166
+ atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin;
167
+
168
+ return throttle(delay, callback, {
169
+ debounceMode: atBegin !== false
170
+ });
171
+ }
172
+
173
+ exports.debounce = debounce;
174
+ exports.throttle = throttle;
175
+
176
+ //# sourceMappingURL=index-3216e4c8.js.map
@@ -0,0 +1 @@
1
+ {"file":"index-3216e4c8.js","mappings":"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","names":[],"sources":["../../node_modules/.pnpm/throttle-debounce@5.0.0/node_modules/throttle-debounce/esm/index.js"],"sourcesContent":["/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)\n * are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,\n * as-is, to `callback` when the throttled-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds\n * while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed\n * one final time after the last throttled-function call. (After the throttled-function has not been called for\n * `delay` milliseconds, the internal counter is reset).\n * @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback\n * immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that\n * callback will never executed if both noLeading = true and noTrailing = true.\n * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is\n * false (at end), schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nfunction throttle (delay, callback, options) {\n var _ref = options || {},\n _ref$noTrailing = _ref.noTrailing,\n noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing,\n _ref$noLeading = _ref.noLeading,\n noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading,\n _ref$debounceMode = _ref.debounceMode,\n debounceMode = _ref$debounceMode === void 0 ? undefined : _ref$debounceMode;\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n\n\n var timeoutID;\n var cancelled = false; // Keep track of the last time `callback` was executed.\n\n var lastExec = 0; // Function to clear existing timeout\n\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n } // Function to cancel next exec\n\n\n function cancel(options) {\n var _ref2 = options || {},\n _ref2$upcomingOnly = _ref2.upcomingOnly,\n upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;\n\n clearExistingTimeout();\n cancelled = !upcomingOnly;\n }\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n\n\n function wrapper() {\n for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {\n arguments_[_key] = arguments[_key];\n }\n\n var self = this;\n var elapsed = Date.now() - lastExec;\n\n if (cancelled) {\n return;\n } // Execute `callback` and update the `lastExec` timestamp.\n\n\n function exec() {\n lastExec = Date.now();\n callback.apply(self, arguments_);\n }\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n\n\n function clear() {\n timeoutID = undefined;\n }\n\n if (!noLeading && debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`\n * and noLeading != true.\n */\n exec();\n }\n\n clearExistingTimeout();\n\n if (debounceMode === undefined && elapsed > delay) {\n if (noLeading) {\n /*\n * In throttle mode with noLeading, if `delay` time has\n * been exceeded, update `lastExec` and schedule `callback`\n * to execute after `delay` ms.\n */\n lastExec = Date.now();\n\n if (!noTrailing) {\n timeoutID = setTimeout(debounceMode ? clear : exec, delay);\n }\n } else {\n /*\n * In throttle mode without noLeading, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n }\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n\n wrapper.cancel = cancel; // Return the wrapper function.\n\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n *\n * @returns {Function} A new, debounced function.\n */\n\nfunction debounce (delay, callback, options) {\n var _ref = options || {},\n _ref$atBegin = _ref.atBegin,\n atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin;\n\n return throttle(delay, callback, {\n debounceMode: atBegin !== false\n });\n}\n\nexport { debounce, throttle };\n//# sourceMappingURL=index.js.map\n"],"version":3}
@@ -38,6 +38,11 @@ const translations = {
38
38
  fr: 'Ouvrir le menu',
39
39
  it: 'Apri il menu',
40
40
  },
41
+ 'Navigate on post.ch': {
42
+ de: 'Navigieren auf post.ch',
43
+ fr: 'Naviguer sur post.ch',
44
+ it: 'Navigate su post.ch',
45
+ },
41
46
  };
42
47
 
43
48
  const getUserLang = (supportedLanguages, implementorPreferredLanguage, localStorageKey, cookieKey) => {
@@ -149,4 +154,4 @@ exports.getUserLang = getUserLang;
149
154
  exports.persistLanguageChoice = persistLanguageChoice;
150
155
  exports.translate = translate;
151
156
 
152
- //# sourceMappingURL=language.service-7dbf739d.js.map
157
+ //# sourceMappingURL=language.service-41b458b1.js.map
@@ -0,0 +1 @@
1
+ {"file":"language.service-41b458b1.js","mappings":"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","names":["state"],"sources":["./src/assets/i18n/translations.ts","./src/services/language.service.ts"],"sourcesContent":["export const translations = {\n 'Close overlay': {\n de: 'Overlay Schliessen',\n fr: 'Fermer la superposition',\n it: 'Chiudi sovrapposizione',\n },\n 'Current language is English': {\n de: 'Die aktuelle Sprache ist Deutsch',\n fr: 'La langue actuelle est le français',\n it: \"La lingua corrente è l'italiano\",\n },\n 'Change language': {\n de: 'Sprache wechseln',\n fr: 'Changer de langue',\n it: 'Cambia lingua',\n },\n 'Go to main content': {\n de: 'Zum Hauptinhalt springen',\n fr: 'Aller au contenu principal',\n it: 'Vai al contenuto principale',\n },\n 'Go to search': {\n de: 'Zur Suche springen',\n fr: 'Aller à la recherche',\n it: 'Vai alla ricerca',\n },\n 'Go to login': {\n de: 'Zum Login springen',\n fr: 'Aller au login',\n it: 'Vai al login',\n },\n 'Open menu': {\n de: 'Menü öffnen',\n fr: 'Ouvrir le menu',\n it: 'Apri il menu',\n },\n 'Navigate on post.ch': {\n de: 'Navigieren auf post.ch',\n fr: 'Naviguer sur post.ch',\n it: 'Navigate su post.ch',\n },\n};\n","import { translations } from '../assets/i18n/translations';\nimport { state } from '../data/store';\n\nexport const getUserLang = (\n supportedLanguages: string[],\n implementorPreferredLanguage?: string,\n localStorageKey?: string,\n cookieKey?: string,\n) => {\n // If there are no supported languages, well...\n if (supportedLanguages.length === 0) {\n return undefined;\n }\n\n // If there is only one language in the config, use this\n if (supportedLanguages.length === 1) {\n return supportedLanguages[0];\n }\n\n const url = new URL(window.location.href);\n\n /**\n * Build array of possible language definitions in order of importance.\n * At the end is a filter function that will weed out any undefined or null entries.\n */\n let languagesSet: Array<string> = [\n // Check if implementor overrides lang config\n implementorPreferredLanguage,\n\n // Check query string param\n url.searchParams.get('lang'),\n\n // Check url pathname\n url.pathname.split('/').find(segment => supportedLanguages.includes(segment)),\n\n // Check local storage with the key provided\n localStorageKey !== undefined ? window.localStorage.getItem(localStorageKey) : null,\n\n // Check cookies\n getCookie('language'),\n getCookie('lang'),\n cookieKey !== undefined ? getCookie(cookieKey) : null,\n\n // Check document language\n document.documentElement.lang,\n\n // Check browser preferred language\n getPreferredLanguageFromBrowser(supportedLanguages),\n\n // Check the state\n state.currentLanguage,\n ].filter((lang): lang is string => !!lang);\n\n // Check the set of languages to see if it matches\n // any of the supported languages. Return the first\n // supported language if there is none set\n const lang =\n languagesSet.find(language => supportedLanguages.includes(language)) || supportedLanguages[0];\n\n if (!lang || lang.length !== 2) {\n throw new Error(\n `Current language could not be determined from settings or the language provided (${lang}) is not supported by the Header API.`,\n );\n }\n\n return lang;\n};\n\n/**\n * Persist chosen language to local storage\n * @param lang Currently chose language, two char string\n */\nexport const persistLanguageChoice = (\n lang: string,\n cookieKey?: string,\n localStorageKey?: string,\n) => {\n if (localStorageKey !== undefined) {\n window.localStorage.setItem(localStorageKey, lang);\n }\n\n if (cookieKey !== undefined) {\n setCookie(cookieKey, lang);\n }\n\n state.currentLanguage = lang;\n};\n\n/**\n * Read a cookie by name\n * https://stackoverflow.com/questions/5639346/what-is-the-shortest-function-for-reading-a-cookie-by-name-in-javascript?rq=1\n * @param name Cookie name\n * @returns Cookie value or an empty string\n */\nexport const getCookie = (name: string) => {\n return document.cookie.match('(^|;)\\\\s*' + name + '\\\\s*=\\\\s*([^;]+)')?.pop() || '';\n};\n\n/**\n * Write a new cookie\n * https://developer.mozilla.org/en-US/docs/Web/API/document/cookie#A_little_framework.3A_a_complete_cookies_reader.2Fwriter_with_full_unicode_support\n * @param key\n * @param value\n */\nexport const setCookie = (key: string, value: string) => {\n document.cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;\n};\n\nconst getPreferredLanguageFromBrowser = (supportedLanguages: string[]): string | null => {\n // IE & Chrome\n if (navigator.language) {\n const lang = extractLanguage(navigator.language);\n if (supportedLanguages.indexOf(lang) !== -1) {\n return lang;\n }\n }\n\n // Chrome supports a list of preferred languages: if the preferred is not supported, we go down the list.\n if (navigator.languages) {\n for (const l of navigator.languages) {\n const lang = extractLanguage(l);\n if (supportedLanguages.indexOf(lang) !== -1) {\n return lang;\n }\n }\n }\n\n return null;\n};\n\nconst extractLanguage = (language: string): string => language.substring(0, 2).toLowerCase();\n\n/**\n * Simple translate function for general header UI strings\n *\n * @param key Translation key\n * @param lang Force a language\n * @param translationObject Optionally provide translations\n * @returns Translated string or the key\n */\nexport const translate = (key: string, lang?: string, translationObject = translations) =>\n translationObject[key]?.[lang ?? state.currentLanguage ?? ''] ?? key;\n"],"version":3}
@@ -7,7 +7,7 @@ const svgSprite_component = require('./svg-sprite.component-1bd7a058.js');
7
7
  const svgIcon_component = require('./svg-icon.component-be93f876.js');
8
8
  const store = require('./store-d0d514fc.js');
9
9
  const ui_service = require('./ui.service-e1ebb6d4.js');
10
- const language_service = require('./language.service-7dbf739d.js');
10
+ const language_service = require('./language.service-41b458b1.js');
11
11
 
12
12
  const PostLanguageSwitchList = (props) => (index.h("nav", { class: "language-switch-dropdown", ref: e => props.dropdownRef(e) },
13
13
  index.h("h3", { class: "visually-hidden" }, language_service.translate('Change language')),
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-5751975e.js');
6
- const index$1 = require('./index-e7245d60.js');
6
+ const index$1 = require('./index-3216e4c8.js');
7
7
  const store = require('./store-d0d514fc.js');
8
8
 
9
9
  const LogoSprite = () => (index.h("svg", { "aria-hidden": "true", style: { display: 'none' } },
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-5751975e.js');
6
- const index$1 = require('./index-e7245d60.js');
6
+ const index$1 = require('./index-3216e4c8.js');
7
7
  const bodyScrollLock_esm = require('./bodyScrollLock.esm-59f17217.js');
8
8
  const store = require('./store-d0d514fc.js');
9
9
  const ui_service = require('./ui.service-e1ebb6d4.js');
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-5751975e.js');
6
- const index$1 = require('./index-e7245d60.js');
6
+ const index$1 = require('./index-3216e4c8.js');
7
7
  const bodyScrollLock_esm = require('./bodyScrollLock.esm-59f17217.js');
8
8
  const store = require('./store-d0d514fc.js');
9
9
  const ui_service = require('./ui.service-e1ebb6d4.js');
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-5751975e.js');
6
6
  const store = require('./store-d0d514fc.js');
7
- const language_service = require('./language.service-7dbf739d.js');
7
+ const language_service = require('./language.service-41b458b1.js');
8
8
  const svgIcon_component = require('./svg-icon.component-be93f876.js');
9
9
 
10
10
  const postSkiplinksCss = ":host{display:block}.skiplinks a{position:absolute;top:0.5rem;left:0.5rem;clip:rect(0 0 0 0);width:1px;overflow:hidden;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:0.25rem;background:white}.skiplinks a:focus-visible{clip:unset;width:auto}";
@@ -43,7 +43,7 @@ const PostSkiplinks = class {
43
43
  if (config === undefined) {
44
44
  return;
45
45
  }
46
- return (index.h(index.Host, null, index.h("nav", { class: "skiplinks" }, index.h("ul", { class: "no-list" }, index.h("li", null, index.h("a", { class: "nav-link", href: config.logo.logoLink, accessKey: "0", title: "[ALT + 0]" }, index.h("span", null, config.logo.logoLinkTitle), index.h(svgIcon_component.SvgIcon, { name: "pi-pointy-arrow-right" }))), index.h("li", null, index.h("a", { class: "nav-link", href: "#post-internet-header-main-navigation", accessKey: "1", title: "[ALT + 1]", onClick: () => this.focusMain() }, index.h("span", null, config.translations.navMainAriaLabel), index.h(svgIcon_component.SvgIcon, { name: "pi-pointy-arrow-right" }))), mainId ? (index.h("li", null, index.h("a", { class: "nav-link", href: `#${mainId}`, accessKey: "2", title: "[ALT + 2]" }, index.h("span", null, language_service.translate('Go to main content')), index.h(svgIcon_component.SvgIcon, { name: "pi-pointy-arrow-right" })))) : null, store.state.search ? (index.h("li", null, index.h("a", { class: "nav-link", href: "#post-internet-header-search-button", accessKey: "3", title: "[ALT + 3]", onClick: () => this.focusSearch() }, index.h("span", null, language_service.translate('Go to search')), index.h(svgIcon_component.SvgIcon, { name: "pi-pointy-arrow-right" })))) : null, store.state.login ? (index.h("li", null, index.h("a", { class: "nav-link", href: "#post-klp-login-widget", accessKey: "4", title: "[ALT + 4]", onClick: () => this.focusLogin() }, index.h("span", null, language_service.translate('Go to login')), index.h(svgIcon_component.SvgIcon, { name: "pi-pointy-arrow-right" })))) : null))));
46
+ return (index.h(index.Host, null, index.h("div", { class: "skiplinks" }, index.h("h1", { class: "visually-hidden" }, language_service.translate('Navigate on post.ch')), index.h("ul", { class: "no-list" }, index.h("li", null, index.h("a", { class: "nav-link", href: config.logo.logoLink, accessKey: "0", title: "[ALT + 0]" }, index.h("span", null, config.logo.logoLinkTitle), index.h(svgIcon_component.SvgIcon, { name: "pi-pointy-arrow-right" }))), index.h("li", null, index.h("a", { class: "nav-link", href: "#post-internet-header-main-navigation", accessKey: "1", title: "[ALT + 1]", onClick: () => this.focusMain() }, index.h("span", null, config.translations.navMainAriaLabel), index.h(svgIcon_component.SvgIcon, { name: "pi-pointy-arrow-right" }))), mainId ? (index.h("li", null, index.h("a", { class: "nav-link", href: `#${mainId}`, accessKey: "2", title: "[ALT + 2]" }, index.h("span", null, language_service.translate('Go to main content')), index.h(svgIcon_component.SvgIcon, { name: "pi-pointy-arrow-right" })))) : null, store.state.search ? (index.h("li", null, index.h("a", { class: "nav-link", href: "#post-internet-header-search-button", accessKey: "3", title: "[ALT + 3]", onClick: () => this.focusSearch() }, index.h("span", null, language_service.translate('Go to search')), index.h(svgIcon_component.SvgIcon, { name: "pi-pointy-arrow-right" })))) : null, store.state.login ? (index.h("li", null, index.h("a", { class: "nav-link", href: "#post-klp-login-widget", accessKey: "4", title: "[ALT + 4]", onClick: () => this.focusLogin() }, index.h("span", null, language_service.translate('Go to login')), index.h(svgIcon_component.SvgIcon, { name: "pi-pointy-arrow-right" })))) : null))));
47
47
  }
48
48
  get host() { return index.getElement(this); }
49
49
  };
@@ -1 +1 @@
1
- {"file":"post-skiplinks.entry.cjs.js","mappings":"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","names":["state","h","Host","SvgIcon","translate"],"sources":["./src/components/post-skiplinks/post-skiplinks.scss?tag=post-skiplinks","./src/components/post-skiplinks/post-skiplinks.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.skiplinks {\n a {\n position: absolute;\n top: 0.5rem;\n left: 0.5rem;\n clip: rect(0 0 0 0);\n width: 1px;\n overflow: hidden;\n display: flex;\n align-items: center;\n padding: 0.25rem;\n background: white;\n\n &:focus-visible {\n clip: unset;\n width: auto;\n }\n }\n}\n","import { Component, Host, h, Element } from '@stencil/core';\nimport { state } from '../../data/store';\nimport { FocusableElement } from '../../models/header.model';\nimport { translate } from '../../services/language.service';\nimport { SvgIcon } from '../../utils/svg-icon.component';\n\n@Component({\n tag: 'post-skiplinks',\n styleUrl: 'post-skiplinks.scss',\n shadow: false,\n})\nexport class PostSkiplinks {\n @Element() host: HTMLElement;\n\n private getMainId() {\n return document.querySelector('main[id]')?.getAttribute('id');\n }\n\n private setFocus(tagname: string) {\n const rootHost = this.host.closest('.post-internet-header');\n if (!rootHost) {\n return;\n }\n\n const focusable = rootHost.querySelector<FocusableElement>(tagname);\n if (focusable) {\n focusable.setFocus();\n }\n }\n\n private focusMain() {\n this.setFocus('post-main-navigation');\n }\n\n private focusSearch() {\n this.setFocus('post-search');\n }\n\n private focusLogin() {\n this.setFocus('post-klp-login-widget');\n }\n\n render() {\n const config = state.localizedConfig?.header;\n const mainId = this.getMainId();\n\n if (config === undefined) {\n return;\n }\n\n return (\n <Host>\n <nav class=\"skiplinks\">\n <ul class=\"no-list\">\n <li>\n <a class=\"nav-link\" href={config.logo.logoLink} accessKey=\"0\" title=\"[ALT + 0]\">\n <span>{config.logo.logoLinkTitle}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n <li>\n <a\n class=\"nav-link\"\n href=\"#post-internet-header-main-navigation\"\n accessKey=\"1\"\n title=\"[ALT + 1]\"\n onClick={() => this.focusMain()}\n >\n <span>{config.translations.navMainAriaLabel}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n {mainId ? (\n <li>\n <a class=\"nav-link\" href={`#${mainId}`} accessKey=\"2\" title=\"[ALT + 2]\">\n <span>{translate('Go to main content')}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n ) : null}\n {state.search ? (\n <li>\n <a\n class=\"nav-link\"\n href=\"#post-internet-header-search-button\"\n accessKey=\"3\"\n title=\"[ALT + 3]\"\n onClick={() => this.focusSearch()}\n >\n <span>{translate('Go to search')}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n ) : null}\n {state.login ? (\n <li>\n <a\n class=\"nav-link\"\n href=\"#post-klp-login-widget\"\n accessKey=\"4\"\n title=\"[ALT + 4]\"\n onClick={() => this.focusLogin()}\n >\n <span>{translate('Go to login')}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n ) : null}\n </ul>\n </nav>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"post-skiplinks.entry.cjs.js","mappings":";;;;;;;;;AAAA,MAAM,gBAAgB,GAAG,qRAAqR;;MCWjS,aAAa;;;;EAGhB,SAAS;;IACf,OAAO,MAAA,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,0CAAE,YAAY,CAAC,IAAI,CAAC,CAAC;GAC/D;EAEO,QAAQ,CAAC,OAAe;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC5D,IAAI,CAAC,QAAQ,EAAE;MACb,OAAO;KACR;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAmB,OAAO,CAAC,CAAC;IACpE,IAAI,SAAS,EAAE;MACb,SAAS,CAAC,QAAQ,EAAE,CAAC;KACtB;GACF;EAEO,SAAS;IACf,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;GACvC;EAEO,WAAW;IACjB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;GAC9B;EAEO,UAAU;IAChB,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;GACxC;EAED,MAAM;;IACJ,MAAM,MAAM,GAAG,MAAAA,WAAK,CAAC,eAAe,0CAAE,MAAM,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAEhC,IAAI,MAAM,KAAK,SAAS,EAAE;MACxB,OAAO;KACR;IAED,QACEC,QAACC,UAAI,QACHD,iBAAK,KAAK,EAAC,WAAW,IACpBA,gBAAI,KAAK,EAAC,iBAAiB,IAAEE,0BAAS,CAAC,qBAAqB,CAAC,CAAM,EACnEF,gBAAI,KAAK,EAAC,SAAS,IACjBA,oBACEA,eAAG,KAAK,EAAC,UAAU,EAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAC,GAAG,EAAC,KAAK,EAAC,WAAW,IAC7EA,sBAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAQ,EACxCA,QAACG,yBAAO,IAAC,IAAI,EAAC,uBAAuB,GAAG,CACtC,CACD,EACLH,oBACEA,eACE,KAAK,EAAC,UAAU,EAChB,IAAI,EAAC,uCAAuC,EAC5C,SAAS,EAAC,GAAG,EACb,KAAK,EAAC,WAAW,EACjB,OAAO,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,IAE/BA,sBAAO,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAQ,EACnDA,QAACG,yBAAO,IAAC,IAAI,EAAC,uBAAuB,GAAG,CACtC,CACD,EACJ,MAAM,IACLH,oBACEA,eAAG,KAAK,EAAC,UAAU,EAAC,IAAI,EAAE,IAAI,MAAM,EAAE,EAAE,SAAS,EAAC,GAAG,EAAC,KAAK,EAAC,WAAW,IACrEA,sBAAOE,0BAAS,CAAC,oBAAoB,CAAC,CAAQ,EAC9CF,QAACG,yBAAO,IAAC,IAAI,EAAC,uBAAuB,GAAG,CACtC,CACD,IACH,IAAI,EACPJ,WAAK,CAAC,MAAM,IACXC,oBACEA,eACE,KAAK,EAAC,UAAU,EAChB,IAAI,EAAC,qCAAqC,EAC1C,SAAS,EAAC,GAAG,EACb,KAAK,EAAC,WAAW,EACjB,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,IAEjCA,sBAAOE,0BAAS,CAAC,cAAc,CAAC,CAAQ,EACxCF,QAACG,yBAAO,IAAC,IAAI,EAAC,uBAAuB,GAAG,CACtC,CACD,IACH,IAAI,EACPJ,WAAK,CAAC,KAAK,IACVC,oBACEA,eACE,KAAK,EAAC,UAAU,EAChB,IAAI,EAAC,wBAAwB,EAC7B,SAAS,EAAC,GAAG,EACb,KAAK,EAAC,WAAW,EACjB,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE,IAEhCA,sBAAOE,0BAAS,CAAC,aAAa,CAAC,CAAQ,EACvCF,QAACG,yBAAO,IAAC,IAAI,EAAC,uBAAuB,GAAG,CACtC,CACD,IACH,IAAI,CACL,CACD,CACD,EACP;GACH;;;;;;;","names":["state","h","Host","translate","SvgIcon"],"sources":["./src/components/post-skiplinks/post-skiplinks.scss?tag=post-skiplinks","./src/components/post-skiplinks/post-skiplinks.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.skiplinks {\n a {\n position: absolute;\n top: 0.5rem;\n left: 0.5rem;\n clip: rect(0 0 0 0);\n width: 1px;\n overflow: hidden;\n display: flex;\n align-items: center;\n padding: 0.25rem;\n background: white;\n\n &:focus-visible {\n clip: unset;\n width: auto;\n }\n }\n}\n","import { Component, Host, h, Element } from '@stencil/core';\nimport { state } from '../../data/store';\nimport { FocusableElement } from '../../models/header.model';\nimport { translate } from '../../services/language.service';\nimport { SvgIcon } from '../../utils/svg-icon.component';\n\n@Component({\n tag: 'post-skiplinks',\n styleUrl: 'post-skiplinks.scss',\n shadow: false,\n})\nexport class PostSkiplinks {\n @Element() host: HTMLElement;\n\n private getMainId() {\n return document.querySelector('main[id]')?.getAttribute('id');\n }\n\n private setFocus(tagname: string) {\n const rootHost = this.host.closest('.post-internet-header');\n if (!rootHost) {\n return;\n }\n\n const focusable = rootHost.querySelector<FocusableElement>(tagname);\n if (focusable) {\n focusable.setFocus();\n }\n }\n\n private focusMain() {\n this.setFocus('post-main-navigation');\n }\n\n private focusSearch() {\n this.setFocus('post-search');\n }\n\n private focusLogin() {\n this.setFocus('post-klp-login-widget');\n }\n\n render() {\n const config = state.localizedConfig?.header;\n const mainId = this.getMainId();\n\n if (config === undefined) {\n return;\n }\n\n return (\n <Host>\n <div class=\"skiplinks\">\n <h1 class=\"visually-hidden\">{translate('Navigate on post.ch')}</h1>\n <ul class=\"no-list\">\n <li>\n <a class=\"nav-link\" href={config.logo.logoLink} accessKey=\"0\" title=\"[ALT + 0]\">\n <span>{config.logo.logoLinkTitle}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n <li>\n <a\n class=\"nav-link\"\n href=\"#post-internet-header-main-navigation\"\n accessKey=\"1\"\n title=\"[ALT + 1]\"\n onClick={() => this.focusMain()}\n >\n <span>{config.translations.navMainAriaLabel}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n {mainId ? (\n <li>\n <a class=\"nav-link\" href={`#${mainId}`} accessKey=\"2\" title=\"[ALT + 2]\">\n <span>{translate('Go to main content')}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n ) : null}\n {state.search ? (\n <li>\n <a\n class=\"nav-link\"\n href=\"#post-internet-header-search-button\"\n accessKey=\"3\"\n title=\"[ALT + 3]\"\n onClick={() => this.focusSearch()}\n >\n <span>{translate('Go to search')}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n ) : null}\n {state.login ? (\n <li>\n <a\n class=\"nav-link\"\n href=\"#post-klp-login-widget\"\n accessKey=\"4\"\n title=\"[ALT + 4]\"\n onClick={() => this.focusLogin()}\n >\n <span>{translate('Go to login')}</span>\n <SvgIcon name=\"pi-pointy-arrow-right\" />\n </a>\n </li>\n ) : null}\n </ul>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}