@schukai/monster 4.43.2 → 4.43.3

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.
@@ -13,8 +13,8 @@ import { instanceSymbol } from "../../constants.mjs";
13
13
  import { ATTRIBUTE_ROLE } from "../../dom/constants.mjs";
14
14
  import { CustomElement } from "../../dom/customelement.mjs";
15
15
  import {
16
- assembleMethodSymbol,
17
- registerCustomElement,
16
+ assembleMethodSymbol,
17
+ registerCustomElement,
18
18
  } from "../../dom/customelement.mjs";
19
19
  import { isFunction, isObject } from "../../types/is.mjs";
20
20
  import { LocalePickerStyleSheet } from "./stylesheet/locale-picker.mjs";
@@ -43,63 +43,63 @@ const detectedLanguagesSymbol = Symbol("detectedLanguages");
43
43
  * @return {string}
44
44
  */
45
45
  function getLocalizedLabel() {
46
- const lang = document.documentElement.lang || navigator.language || "en";
47
- switch (lang.split("-")[0]) {
48
- case "de":
49
- return "Sprache wählen";
50
- case "fr":
51
- return "Sélectionnez une langue";
52
- case "es":
53
- return "Seleccione un idioma";
54
- case "it":
55
- return "Seleziona una lingua";
56
- case "pt":
57
- return "Selecione um idioma";
58
- case "nl":
59
- return "Selecteer een taal";
60
- case "pl":
61
- return "Wybierz język";
62
- case "ru":
63
- return "Выберите язык";
64
- case "cs":
65
- return "Vyberte jazyk";
66
- case "sk":
67
- return "Vyberte jazyk";
68
- case "bg":
69
- return "Изберете език";
70
- case "hr":
71
- return "Odaberite jezik";
72
- case "fi":
73
- return "Valitse kieli";
74
- case "sv":
75
- return "Välj ett språk";
76
- case "el":
77
- return "Επιλέξτε γλώσσα";
78
- case "hu":
79
- return "Válasszon egy nyelvet";
80
- case "ro":
81
- return "Selectați o limbă";
82
- case "da":
83
- return "Vælg et sprog";
84
- case "no":
85
- return "Velg et språk";
86
- case "hi":
87
- return "एक भाषा चुनें";
88
- case "bn":
89
- return "একটি ভাষা নির্বাচন করুন";
90
- case "ta":
91
- return "ஒரு மொழியைத் தேர்ந்தெடுக்கவும்";
92
- case "te":
93
- return "భాషను ఎంచుకోండి";
94
- case "mr":
95
- return "एक भाषा निवडा";
96
- case "zh":
97
- return "选择一种语言";
98
- case "ja":
99
- return "言語を選択してください";
100
- default:
101
- return "Select a language";
102
- }
46
+ const lang = document.documentElement.lang || navigator.language || "en";
47
+ switch (lang.split("-")[0]) {
48
+ case "de":
49
+ return "Sprache wählen";
50
+ case "fr":
51
+ return "Sélectionnez une langue";
52
+ case "es":
53
+ return "Seleccione un idioma";
54
+ case "it":
55
+ return "Seleziona una lingua";
56
+ case "pt":
57
+ return "Selecione um idioma";
58
+ case "nl":
59
+ return "Selecteer een taal";
60
+ case "pl":
61
+ return "Wybierz język";
62
+ case "ru":
63
+ return "Выберите язык";
64
+ case "cs":
65
+ return "Vyberte jazyk";
66
+ case "sk":
67
+ return "Vyberte jazyk";
68
+ case "bg":
69
+ return "Изберете език";
70
+ case "hr":
71
+ return "Odaberite jezik";
72
+ case "fi":
73
+ return "Valitse kieli";
74
+ case "sv":
75
+ return "Välj ett språk";
76
+ case "el":
77
+ return "Επιλέξτε γλώσσα";
78
+ case "hu":
79
+ return "Válasszon egy nyelvet";
80
+ case "ro":
81
+ return "Selectați o limbă";
82
+ case "da":
83
+ return "Vælg et sprog";
84
+ case "no":
85
+ return "Velg et språk";
86
+ case "hi":
87
+ return "एक भाषा चुनें";
88
+ case "bn":
89
+ return "একটি ভাষা নির্বাচন করুন";
90
+ case "ta":
91
+ return "ஒரு மொழியைத் தேர்ந்தெடுக்கவும்";
92
+ case "te":
93
+ return "భాషను ఎంచుకోండి";
94
+ case "mr":
95
+ return "एक भाषा निवडा";
96
+ case "zh":
97
+ return "选择一种语言";
98
+ case "ja":
99
+ return "言語を選択してください";
100
+ default:
101
+ return "Select a language";
102
+ }
103
103
  }
104
104
 
105
105
  /**
@@ -112,92 +112,92 @@ function getLocalizedLabel() {
112
112
  * @summary A simple language switcher as a select.
113
113
  */
114
114
  class LocaleSelect extends CustomElement {
115
- /**
116
- * Used by the instanceof operator.
117
- * @returns {symbol}
118
- */
119
- static get [instanceSymbol]() {
120
- return Symbol.for(
121
- "@schukai/monster/components/accessibility/local-selector@@instance",
122
- );
123
- }
115
+ /**
116
+ * Used by the instanceof operator.
117
+ * @returns {symbol}
118
+ */
119
+ static get [instanceSymbol]() {
120
+ return Symbol.for(
121
+ "@schukai/monster/components/accessibility/local-selector@@instance",
122
+ );
123
+ }
124
124
 
125
- /**
126
- * Initializes the component.
127
- * @return {LocaleSelect}
128
- */
129
- [assembleMethodSymbol]() {
130
- super[assembleMethodSymbol]();
131
- initControlReferences.call(this);
132
- initSelectOptions.call(this);
133
- initEventHandler.call(this);
134
- return this;
135
- }
125
+ /**
126
+ * Initializes the component.
127
+ * @return {LocaleSelect}
128
+ */
129
+ [assembleMethodSymbol]() {
130
+ super[assembleMethodSymbol]();
131
+ initControlReferences.call(this);
132
+ initSelectOptions.call(this);
133
+ initEventHandler.call(this);
134
+ return this;
135
+ }
136
136
 
137
- /**
138
- * Default options
139
- */
140
- get defaults() {
141
- return Object.assign({}, super.defaults, {
142
- templates: {
143
- main: getTemplate(),
144
- },
145
- labels: {
146
- "select-an-option": getLocalizedLabel(),
147
- },
148
- callbacks: {},
149
- disabled: false,
150
- });
151
- }
137
+ /**
138
+ * Default options
139
+ */
140
+ get defaults() {
141
+ return Object.assign({}, super.defaults, {
142
+ templates: {
143
+ main: getTemplate(),
144
+ },
145
+ labels: {
146
+ "select-an-option": getLocalizedLabel(),
147
+ },
148
+ callbacks: {},
149
+ disabled: false,
150
+ });
151
+ }
152
152
 
153
- /**
154
- * connectedCallback
155
- */
156
- connectedCallback() {
157
- super.connectedCallback();
158
- this[detectedLanguagesSymbol] = detectUserLanguagePreference();
159
- initSelectOptions.call(this);
160
- }
153
+ /**
154
+ * connectedCallback
155
+ */
156
+ connectedCallback() {
157
+ super.connectedCallback();
158
+ this[detectedLanguagesSymbol] = detectUserLanguagePreference();
159
+ initSelectOptions.call(this);
160
+ }
161
161
 
162
- /**
163
- * @return {string}
164
- */
165
- static getTag() {
166
- return "monster-locale-select";
167
- }
162
+ /**
163
+ * @return {string}
164
+ */
165
+ static getTag() {
166
+ return "monster-locale-select";
167
+ }
168
168
 
169
- /**
170
- * @return {CSSStyleSheet[]}
171
- */
172
- static getCSSStyleSheet() {
173
- return [LocalePickerStyleSheet];
174
- }
169
+ /**
170
+ * @return {CSSStyleSheet[]}
171
+ */
172
+ static getCSSStyleSheet() {
173
+ return [LocalePickerStyleSheet];
174
+ }
175
175
 
176
- /**
177
- * Export parts from monster-select to make them available for styling outside.
178
- */
179
- static get exportparts() {
180
- // The parts from monster-select, as defined in source/components/form/select.mjs:
181
- return [
182
- "control",
183
- "container",
184
- "popper",
185
- "option",
186
- "option-label",
187
- "option-control",
188
- "badge",
189
- "badge-label",
190
- "remove-badge",
191
- "summary",
192
- "status-or-remove-badges",
193
- "remote-info",
194
- "no-options",
195
- "selection",
196
- "inline-filter",
197
- "popper-filter",
198
- "content",
199
- ].join(",");
200
- }
176
+ /**
177
+ * Export parts from monster-select to make them available for styling outside.
178
+ */
179
+ static get exportparts() {
180
+ // The parts from monster-select, as defined in source/components/form/select.mjs:
181
+ return [
182
+ "control",
183
+ "container",
184
+ "popper",
185
+ "option",
186
+ "option-label",
187
+ "option-control",
188
+ "badge",
189
+ "badge-label",
190
+ "remove-badge",
191
+ "summary",
192
+ "status-or-remove-badges",
193
+ "remote-info",
194
+ "no-options",
195
+ "selection",
196
+ "inline-filter",
197
+ "popper-filter",
198
+ "content",
199
+ ].join(",");
200
+ }
201
201
  }
202
202
 
203
203
  /**
@@ -205,9 +205,9 @@ class LocaleSelect extends CustomElement {
205
205
  * @private
206
206
  */
207
207
  function initControlReferences() {
208
- this[selectElementSymbol] = this.shadowRoot.querySelector(
209
- `[${ATTRIBUTE_ROLE}="select"]`,
210
- );
208
+ this[selectElementSymbol] = this.shadowRoot.querySelector(
209
+ `[${ATTRIBUTE_ROLE}="select"]`,
210
+ );
211
211
  }
212
212
 
213
213
  /**
@@ -215,29 +215,29 @@ function initControlReferences() {
215
215
  * @private
216
216
  */
217
217
  function initSelectOptions() {
218
- const detected =
219
- this[detectedLanguagesSymbol] || detectUserLanguagePreference();
218
+ const detected =
219
+ this[detectedLanguagesSymbol] || detectUserLanguagePreference();
220
220
 
221
- let options = [];
222
- if (Array.isArray(detected.available)) {
223
- const currentLang = detected.current;
224
- options = detected.available.filter(
225
- (lang) => lang.baseLang !== currentLang && lang.fullLang !== currentLang,
226
- );
227
- } else if (Array.isArray(detected.allOfferable)) {
228
- options = detected.allOfferable;
229
- }
221
+ let options = [];
222
+ if (Array.isArray(detected.available)) {
223
+ const currentLang = detected.current;
224
+ options = detected.available.filter(
225
+ (lang) => lang.baseLang !== currentLang && lang.fullLang !== currentLang,
226
+ );
227
+ } else if (Array.isArray(detected.allOfferable)) {
228
+ options = detected.allOfferable;
229
+ }
230
230
 
231
- options = detected.allOfferable;
232
- if (this[selectElementSymbol]) {
233
- this[selectElementSymbol].setOption("mapping.labelTemplate", "${label}");
234
- this[selectElementSymbol].setOption("mapping.valueTemplate", "${href}");
235
- this[selectElementSymbol].setOption(
236
- "labels.select-an-option",
237
- this.getOption("labels.select-an-option"),
238
- );
239
- this[selectElementSymbol].importOptions(options);
240
- }
231
+ options = detected.allOfferable;
232
+ if (this[selectElementSymbol]) {
233
+ this[selectElementSymbol].setOption("mapping.labelTemplate", "${label}");
234
+ this[selectElementSymbol].setOption("mapping.valueTemplate", "${href}");
235
+ this[selectElementSymbol].setOption(
236
+ "labels.select-an-option",
237
+ this.getOption("labels.select-an-option"),
238
+ );
239
+ this[selectElementSymbol].importOptions(options);
240
+ }
241
241
  }
242
242
 
243
243
  /**
@@ -245,14 +245,14 @@ function initSelectOptions() {
245
245
  * @private
246
246
  */
247
247
  function initEventHandler() {
248
- if (!this[selectElementSymbol]) return;
248
+ if (!this[selectElementSymbol]) return;
249
249
 
250
- this[selectElementSymbol].addEventListener("change", (event) => {
251
- const selected = event.target?.value;
252
- if (selected) {
253
- window.location.href = selected;
254
- }
255
- });
250
+ this[selectElementSymbol].addEventListener("change", (event) => {
251
+ const selected = event.target?.value;
252
+ if (selected) {
253
+ window.location.href = selected;
254
+ }
255
+ });
256
256
  }
257
257
 
258
258
  /**
@@ -261,8 +261,8 @@ function initEventHandler() {
261
261
  * @return {string}
262
262
  */
263
263
  function getTemplate() {
264
- // language=HTML
265
- return `
264
+ // language=HTML
265
+ return `
266
266
  <monster-select exportparts="control,container,popper,option,option-label,option-control,badge,badge-label,remove-badge,summary,status-or-remove-badges,remote-info,no-options,selection,inline-filter,popper-filter,content" data-monster-role="select"></monster-select>
267
267
  `;
268
268
  }