@schukai/monster 3.98.2 → 3.99.0
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.
- package/CHANGELOG.md +22 -0
- package/package.json +1 -1
- package/source/components/datatable/columnbar.mjs +19 -20
- package/source/components/datatable/datatable.mjs +94 -80
- package/source/components/datatable/filter/date-range.mjs +19 -20
- package/source/components/datatable/filter/input.mjs +19 -20
- package/source/components/datatable/filter/range.mjs +19 -19
- package/source/components/datatable/filter-button.mjs +19 -20
- package/source/components/datatable/filter.mjs +48 -31
- package/source/components/datatable/pagination.mjs +19 -20
- package/source/components/datatable/save-button.mjs +19 -20
- package/source/components/datatable/stylesheet/datatable.mjs +13 -6
- package/source/components/form/action-button.mjs +2 -1
- package/source/components/form/api-button.mjs +4 -4
- package/source/components/form/button-bar.mjs +2 -3
- package/source/components/form/button.mjs +1 -0
- package/source/components/form/context-error.mjs +1 -0
- package/source/components/form/field-set.mjs +21 -21
- package/source/components/form/popper-button.mjs +274 -273
- package/source/components/form/reload.mjs +1 -0
- package/source/components/form/select.mjs +56 -34
- package/source/components/form/toggle-switch.mjs +2 -2
- package/source/components/layout/details.mjs +19 -20
- package/source/components/layout/tabs.mjs +19 -20
- package/source/components/notify/monitor-attribute-errors.mjs +184 -179
- package/source/data/buildtree.mjs +1 -1
- package/source/dom/customelement.mjs +944 -945
- package/source/dom/error.mjs +106 -0
- package/source/monster.mjs +1 -0
- package/source/types/version.mjs +1 -1
- package/test/cases/dom/customcontrol.mjs +1 -1
- package/test/cases/dom/customelement.mjs +3 -3
- package/test/cases/monster.mjs +1 -1
- package/test/web/test.html +2 -2
- package/test/web/tests.js +334 -63
package/CHANGELOG.md
CHANGED
@@ -2,6 +2,28 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
+
## [3.99.0] - 2025-01-07
|
6
|
+
|
7
|
+
### Add Features
|
8
|
+
|
9
|
+
- new error functions addErrorAttribute and removeErrorAttribute; small database changes
|
10
|
+
### Bug Fixes
|
11
|
+
|
12
|
+
- update tests
|
13
|
+
### Changes
|
14
|
+
|
15
|
+
- update webtest
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
## [3.98.3] - 2025-01-07
|
20
|
+
|
21
|
+
### Bug Fixes
|
22
|
+
|
23
|
+
- update doc
|
24
|
+
|
25
|
+
|
26
|
+
|
5
27
|
## [3.98.2] - 2025-01-07
|
6
28
|
|
7
29
|
### Bug Fixes
|
package/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"author":"schukai GmbH","dependencies":{"@floating-ui/dom":"^1.6.
|
1
|
+
{"author":"schukai GmbH","dependencies":{"@floating-ui/dom":"^1.6.13","@popperjs/core":"^2.11.8"},"description":"Monster is a simple library for creating fast, robust and lightweight websites.","homepage":"https://monsterjs.org/","keywords":["framework","web","dom","css","sass","mobile-first","app","front-end","templates","schukai","core","shopcloud","alvine","monster","buildmap","stack","observer","observable","uuid","node","nodelist","css-in-js","logger","log","theme"],"license":"AGPL 3.0","main":"source/monster.mjs","module":"source/monster.mjs","name":"@schukai/monster","repository":{"type":"git","url":"https://gitlab.schukai.com/oss/libraries/javascript/monster.git"},"type":"module","version":"3.99.0"}
|
@@ -22,7 +22,7 @@ import { findTargetElementFromEvent } from "../../dom/events.mjs";
|
|
22
22
|
import { clone } from "../../util/clone.mjs";
|
23
23
|
import { ColumnBarStyleSheet } from "./stylesheet/column-bar.mjs";
|
24
24
|
import { createPopper } from "@popperjs/core";
|
25
|
-
import {getLocaleOfDocument} from "../../dom/locale.mjs";
|
25
|
+
import { getLocaleOfDocument } from "../../dom/locale.mjs";
|
26
26
|
|
27
27
|
export { ColumnBar };
|
28
28
|
|
@@ -133,47 +133,46 @@ class ColumnBar extends CustomElement {
|
|
133
133
|
function getTranslations() {
|
134
134
|
const locale = getLocaleOfDocument();
|
135
135
|
switch (locale.language) {
|
136
|
-
case
|
136
|
+
case "de":
|
137
137
|
return {
|
138
|
-
settings: "Einstellungen"
|
138
|
+
settings: "Einstellungen",
|
139
139
|
};
|
140
|
-
case
|
140
|
+
case "fr":
|
141
141
|
return {
|
142
|
-
settings: "Paramètres"
|
142
|
+
settings: "Paramètres",
|
143
143
|
};
|
144
|
-
case
|
144
|
+
case "sp":
|
145
145
|
return {
|
146
|
-
settings: "Configuración"
|
146
|
+
settings: "Configuración",
|
147
147
|
};
|
148
|
-
case
|
148
|
+
case "it":
|
149
149
|
return {
|
150
|
-
settings: "Impostazioni"
|
150
|
+
settings: "Impostazioni",
|
151
151
|
};
|
152
|
-
case
|
152
|
+
case "pl":
|
153
153
|
return {
|
154
|
-
settings: "Ustawienia"
|
154
|
+
settings: "Ustawienia",
|
155
155
|
};
|
156
|
-
case
|
156
|
+
case "no":
|
157
157
|
return {
|
158
|
-
settings: "Innstillinger"
|
158
|
+
settings: "Innstillinger",
|
159
159
|
};
|
160
|
-
case
|
160
|
+
case "dk":
|
161
161
|
return {
|
162
|
-
settings: "Indstillinger"
|
162
|
+
settings: "Indstillinger",
|
163
163
|
};
|
164
|
-
case
|
164
|
+
case "sw":
|
165
165
|
return {
|
166
|
-
settings: "Inställningar"
|
166
|
+
settings: "Inställningar",
|
167
167
|
};
|
168
168
|
default:
|
169
|
-
case
|
169
|
+
case "en":
|
170
170
|
return {
|
171
|
-
settings: "Settings"
|
171
|
+
settings: "Settings",
|
172
172
|
};
|
173
173
|
}
|
174
174
|
}
|
175
175
|
|
176
|
-
|
177
176
|
/**
|
178
177
|
* @private
|
179
178
|
* @return {ColumnBar}
|
@@ -71,8 +71,7 @@ import {
|
|
71
71
|
getDocument,
|
72
72
|
getWindow,
|
73
73
|
} from "../../dom/util.mjs";
|
74
|
-
|
75
|
-
import {ATTRIBUTE_ERRORMESSAGE} from "../../dom/constants.mjs";
|
74
|
+
|
76
75
|
import {getDocumentTranslations} from "../../i18n/translations.mjs";
|
77
76
|
import "../state/state.mjs";
|
78
77
|
import "../host/collapse.mjs";
|
@@ -83,7 +82,7 @@ import "./datasource/rest.mjs";
|
|
83
82
|
|
84
83
|
import "../form/context-help.mjs";
|
85
84
|
import {getLocaleOfDocument} from "../../dom/locale.mjs";
|
86
|
-
|
85
|
+
import {addErrorAttribute} from "../../dom/error.mjs";
|
87
86
|
|
88
87
|
export {DataTable};
|
89
88
|
|
@@ -251,7 +250,7 @@ class DataTable extends CustomElement {
|
|
251
250
|
/**
|
252
251
|
*
|
253
252
|
* @param {string} selector
|
254
|
-
* @return {
|
253
|
+
* @return {NodeList}
|
255
254
|
*/
|
256
255
|
getGridElements(selector) {
|
257
256
|
return this[gridElementSymbol].querySelectorAll(selector);
|
@@ -299,7 +298,9 @@ class DataTable extends CustomElement {
|
|
299
298
|
const selectedRows = [];
|
300
299
|
rows.forEach((row) => {
|
301
300
|
if (row.checked) {
|
302
|
-
const key = row.parentNode.getAttribute(
|
301
|
+
const key = row.parentNode.getAttribute(
|
302
|
+
"data-monster-insert-reference",
|
303
|
+
);
|
303
304
|
const index = key.split("-").pop();
|
304
305
|
selectedRows.push(parseInt(index, 10));
|
305
306
|
}
|
@@ -336,28 +337,6 @@ class DataTable extends CustomElement {
|
|
336
337
|
initControlReferences.call(this);
|
337
338
|
initEventHandler.call(this);
|
338
339
|
|
339
|
-
const selector = this.getOption("datasource.selector");
|
340
|
-
|
341
|
-
if (isString(selector)) {
|
342
|
-
const element = findElementWithSelectorUpwards(this, selector);
|
343
|
-
if (element === null) {
|
344
|
-
throw new Error("the selector must match exactly one element");
|
345
|
-
}
|
346
|
-
|
347
|
-
if (!isInstance(element, Datasource)) {
|
348
|
-
throw new TypeError("the element must be a datasource");
|
349
|
-
}
|
350
|
-
|
351
|
-
this[datasourceLinkedElementSymbol] = element;
|
352
|
-
|
353
|
-
queueMicrotask(() => {
|
354
|
-
handleDataSourceChanges.call(this);
|
355
|
-
element.datasource.attachObserver(
|
356
|
-
new Observer(handleDataSourceChanges.bind(this)),
|
357
|
-
);
|
358
|
-
});
|
359
|
-
}
|
360
|
-
|
361
340
|
getHostConfig
|
362
341
|
.call(this, getColumnVisibilityConfigKey)
|
363
342
|
.then((config) => {
|
@@ -380,30 +359,54 @@ class DataTable extends CustomElement {
|
|
380
359
|
try {
|
381
360
|
initGridAndStructs.call(this, config, headerOrderMap);
|
382
361
|
} catch (error) {
|
383
|
-
|
362
|
+
addErrorAttribute(
|
384
363
|
this,
|
385
|
-
|
386
|
-
error?.message || error.toString(),
|
364
|
+
error
|
387
365
|
);
|
388
366
|
}
|
389
367
|
|
390
368
|
updateColumnBar.call(this);
|
391
369
|
})
|
392
370
|
.catch((error) => {
|
393
|
-
|
394
|
-
this,
|
395
|
-
ATTRIBUTE_ERRORMESSAGE,
|
396
|
-
error?.message || error.toString(),
|
371
|
+
addErrorAttribute(
|
372
|
+
this, error,
|
397
373
|
);
|
398
374
|
});
|
399
375
|
})
|
400
376
|
.catch((error) => {
|
401
|
-
|
377
|
+
addErrorAttribute(
|
402
378
|
this,
|
403
|
-
|
404
|
-
error?.message || error.toString(),
|
379
|
+
error
|
405
380
|
);
|
381
|
+
})
|
382
|
+
.finally(() => {
|
383
|
+
|
384
|
+
const selector = this.getOption("datasource.selector");
|
385
|
+
|
386
|
+
if (isString(selector)) {
|
387
|
+
const element = findElementWithSelectorUpwards(this, selector);
|
388
|
+
if (element === null) {
|
389
|
+
throw new Error("the selector must match exactly one element");
|
390
|
+
}
|
391
|
+
|
392
|
+
if (!isInstance(element, Datasource)) {
|
393
|
+
throw new TypeError("the element must be a datasource");
|
394
|
+
}
|
395
|
+
|
396
|
+
this[datasourceLinkedElementSymbol] = element;
|
397
|
+
|
398
|
+
getWindow().requestAnimationFrame(() => {
|
399
|
+
|
400
|
+
handleDataSourceChanges.call(this);
|
401
|
+
if (element && "datasource" in element) {
|
402
|
+
element.datasource.attachObserver(
|
403
|
+
new Observer(handleDataSourceChanges.bind(this)),
|
404
|
+
);
|
405
|
+
}
|
406
|
+
});
|
407
|
+
}
|
406
408
|
});
|
409
|
+
|
407
410
|
}
|
408
411
|
|
409
412
|
/**
|
@@ -588,14 +591,13 @@ function getHostConfig(callback) {
|
|
588
591
|
const host = findElementWithSelectorUpwards(this, "monster-host");
|
589
592
|
|
590
593
|
if (!host) {
|
591
|
-
|
594
|
+
addErrorAttribute(this, "no host found");
|
592
595
|
return Promise.resolve({});
|
593
596
|
}
|
594
597
|
|
595
598
|
if (!this.id) {
|
596
|
-
|
599
|
+
addErrorAttribute(
|
597
600
|
this,
|
598
|
-
ATTRIBUTE_ERRORMESSAGE,
|
599
601
|
"no id found; id is required for config",
|
600
602
|
);
|
601
603
|
return Promise.resolve({});
|
@@ -700,7 +702,7 @@ function updateConfigColumnBar() {
|
|
700
702
|
try {
|
701
703
|
host.setConfig(configKey, map);
|
702
704
|
} catch (error) {
|
703
|
-
|
705
|
+
addErrorAttribute(this, error);
|
704
706
|
}
|
705
707
|
}
|
706
708
|
|
@@ -874,9 +876,15 @@ function initEventHandler() {
|
|
874
876
|
}
|
875
877
|
|
876
878
|
const selectRowCallback = (event) => {
|
877
|
-
const element = findTargetElementFromEvent(
|
879
|
+
const element = findTargetElementFromEvent(
|
880
|
+
event,
|
881
|
+
"data-monster-role",
|
882
|
+
"select-row",
|
883
|
+
);
|
878
884
|
if (element) {
|
879
|
-
const key = element.parentNode.getAttribute(
|
885
|
+
const key = element.parentNode.getAttribute(
|
886
|
+
"data-monster-insert-reference",
|
887
|
+
);
|
880
888
|
const row = self.getGridElements(
|
881
889
|
`[data-monster-insert-reference="${key}"]`,
|
882
890
|
);
|
@@ -889,37 +897,40 @@ function initEventHandler() {
|
|
889
897
|
});
|
890
898
|
|
891
899
|
fireCustomEvent(self, "monster-datatable-row-selected", {
|
892
|
-
index: index
|
893
|
-
})
|
894
|
-
|
900
|
+
index: index,
|
901
|
+
});
|
895
902
|
} else {
|
896
903
|
row.forEach((col) => {
|
897
904
|
col.classList.remove("selected");
|
898
905
|
});
|
899
906
|
|
900
907
|
fireCustomEvent(self, "monster-datatable-row-deselected", {
|
901
|
-
index: index
|
902
|
-
})
|
908
|
+
index: index,
|
909
|
+
});
|
903
910
|
}
|
904
911
|
|
905
|
-
fireCustomEvent(this, "monster-datatable-selection-changed", {})
|
912
|
+
fireCustomEvent(this, "monster-datatable-selection-changed", {});
|
906
913
|
}
|
907
914
|
|
908
915
|
const rows = self.getGridElements(`[data-monster-role="select-row"]`);
|
909
916
|
const allSelected = Array.from(rows).every((row) => row.checked);
|
910
|
-
const selectAll = this[gridHeadersElementSymbol].querySelector(
|
917
|
+
const selectAll = this[gridHeadersElementSymbol].querySelector(
|
918
|
+
`[data-monster-role="select-all"]`,
|
919
|
+
);
|
911
920
|
selectAll.checked = allSelected;
|
912
|
-
|
913
|
-
|
914
|
-
}
|
921
|
+
};
|
915
922
|
|
916
923
|
this[gridElementSymbol].addEventListener("click", selectRowCallback);
|
917
924
|
this[gridElementSymbol].addEventListener("touch", selectRowCallback);
|
918
925
|
|
919
926
|
const selectAllCallback = (event) => {
|
920
|
-
const element = findTargetElementFromEvent(
|
927
|
+
const element = findTargetElementFromEvent(
|
928
|
+
event,
|
929
|
+
"data-monster-role",
|
930
|
+
"select-all",
|
931
|
+
);
|
921
932
|
if (element) {
|
922
|
-
const mode = element.checked
|
933
|
+
const mode = element.checked;
|
923
934
|
|
924
935
|
const rows = this.getGridElements(`[data-monster-role="select-row"]`);
|
925
936
|
rows.forEach((row) => {
|
@@ -927,20 +938,17 @@ function initEventHandler() {
|
|
927
938
|
});
|
928
939
|
|
929
940
|
if (mode) {
|
930
|
-
fireCustomEvent(this, "monster-datatable-all-rows-selected", {})
|
941
|
+
fireCustomEvent(this, "monster-datatable-all-rows-selected", {});
|
931
942
|
} else {
|
932
|
-
fireCustomEvent(this, "monster-datatable-all-rows-deselected", {})
|
943
|
+
fireCustomEvent(this, "monster-datatable-all-rows-deselected", {});
|
933
944
|
}
|
934
945
|
|
935
|
-
fireCustomEvent(this, "monster-datatable-selection-changed", {})
|
936
|
-
|
946
|
+
fireCustomEvent(this, "monster-datatable-selection-changed", {});
|
937
947
|
}
|
938
|
-
}
|
939
|
-
|
940
|
-
this[gridHeadersElementSymbol].addEventListener("click", selectAllCallback)
|
941
|
-
this[gridHeadersElementSymbol].addEventListener("touch", selectAllCallback)
|
942
|
-
|
948
|
+
};
|
943
949
|
|
950
|
+
this[gridHeadersElementSymbol].addEventListener("click", selectAllCallback);
|
951
|
+
this[gridHeadersElementSymbol].addEventListener("touch", selectAllCallback);
|
944
952
|
}
|
945
953
|
|
946
954
|
/**
|
@@ -950,19 +958,23 @@ function initGridAndStructs(hostConfig, headerOrderMap) {
|
|
950
958
|
const rowID = this.getOption("templateMapping.row-key");
|
951
959
|
|
952
960
|
if (!this[gridElementSymbol]) {
|
953
|
-
|
961
|
+
addErrorAttribute(this, "no grid element found");
|
962
|
+
return;
|
954
963
|
}
|
955
964
|
|
956
965
|
let template;
|
957
966
|
getSlottedElements.call(this).forEach((e) => {
|
958
|
-
|
959
967
|
if (e instanceof HTMLTemplateElement && e.id === rowID) {
|
960
968
|
template = e;
|
961
969
|
}
|
962
970
|
});
|
963
971
|
|
964
972
|
if (!template) {
|
965
|
-
|
973
|
+
addErrorAttribute(
|
974
|
+
this,
|
975
|
+
"no template found, please add a template",
|
976
|
+
);
|
977
|
+
return;
|
966
978
|
}
|
967
979
|
|
968
980
|
const rowCount = template.content.children.length;
|
@@ -1055,9 +1067,13 @@ function initGridAndStructs(hostConfig, headerOrderMap) {
|
|
1055
1067
|
}
|
1056
1068
|
|
1057
1069
|
const features = [];
|
1070
|
+
|
1058
1071
|
if (row.hasAttribute(ATTRIBUTE_DATATABLE_FEATURES)) {
|
1059
|
-
const
|
1060
|
-
|
1072
|
+
const fl = row
|
1073
|
+
.getAttribute(ATTRIBUTE_DATATABLE_FEATURES)
|
1074
|
+
.split(" ");
|
1075
|
+
|
1076
|
+
fl.forEach((feature) => {
|
1061
1077
|
features.push(feature.trim());
|
1062
1078
|
|
1063
1079
|
if (feature === "select") {
|
@@ -1072,7 +1088,6 @@ function initGridAndStructs(hostConfig, headerOrderMap) {
|
|
1072
1088
|
checkbox.setAttribute("data-monster-role", "select-row");
|
1073
1089
|
row.appendChild(checkbox);
|
1074
1090
|
}
|
1075
|
-
|
1076
1091
|
});
|
1077
1092
|
}
|
1078
1093
|
|
@@ -1105,7 +1120,7 @@ function initGridAndStructs(hostConfig, headerOrderMap) {
|
|
1105
1120
|
function getTranslations() {
|
1106
1121
|
const locale = getLocaleOfDocument();
|
1107
1122
|
switch (locale.language) {
|
1108
|
-
case
|
1123
|
+
case "de":
|
1109
1124
|
return {
|
1110
1125
|
theListContainsNoEntries: "Die Liste enthält keine Einträge",
|
1111
1126
|
copyAll: "Alles kopieren",
|
@@ -1115,7 +1130,7 @@ function getTranslations() {
|
|
1115
1130
|
"<p>Um eine ganze Zeile zu kopieren, halten Sie die Umschalttaste gedrückt, während Sie klicken.<br>" +
|
1116
1131
|
"Wenn Sie alle Zeilen kopieren möchten, können Sie die Schaltfläche <strong>Alles kopieren</strong> verwenden.</p>",
|
1117
1132
|
};
|
1118
|
-
case
|
1133
|
+
case "fr":
|
1119
1134
|
return {
|
1120
1135
|
theListContainsNoEntries: "La liste ne contient aucune entrée",
|
1121
1136
|
copyAll: "Copier tout",
|
@@ -1125,7 +1140,7 @@ function getTranslations() {
|
|
1125
1140
|
"<p>Pour copier une rangée entière, maintenez la touche Maj enfoncée tout en cliquant.<br>" +
|
1126
1141
|
"Si vous souhaitez copier toutes les rangées, vous pouvez utiliser le bouton <strong>Copier tout</strong>.</p>",
|
1127
1142
|
};
|
1128
|
-
case
|
1143
|
+
case "sp":
|
1129
1144
|
return {
|
1130
1145
|
theListContainsNoEntries: "La lista no contiene entradas",
|
1131
1146
|
copyAll: "Copiar todo",
|
@@ -1135,7 +1150,7 @@ function getTranslations() {
|
|
1135
1150
|
"<p>Para copiar una fila entera, mantén presionada la tecla Shift mientras haces clic.<br>" +
|
1136
1151
|
"Si quieres copiar todas las filas, puedes usar el botón <strong>Copiar todo</strong>.</p>",
|
1137
1152
|
};
|
1138
|
-
case
|
1153
|
+
case "it":
|
1139
1154
|
return {
|
1140
1155
|
theListContainsNoEntries: "L'elenco non contiene voci",
|
1141
1156
|
copyAll: "Copia tutto",
|
@@ -1145,7 +1160,7 @@ function getTranslations() {
|
|
1145
1160
|
"<p>Per copiare un'intera riga, tieni premuto il tasto Shift mentre clicchi.<br>" +
|
1146
1161
|
"Se vuoi copiare tutte le righe, puoi usare il pulsante <strong>Copia tutto</strong>.</p>",
|
1147
1162
|
};
|
1148
|
-
case
|
1163
|
+
case "pl":
|
1149
1164
|
return {
|
1150
1165
|
theListContainsNoEntries: "Lista nie zawiera wpisów",
|
1151
1166
|
copyAll: "Kopiuj wszystko",
|
@@ -1155,7 +1170,7 @@ function getTranslations() {
|
|
1155
1170
|
"<p>Aby skopiować cały wiersz, przytrzymaj klawisz Shift podczas klikania.<br>" +
|
1156
1171
|
"Jeśli chcesz skopiować wszystkie wiersze, możesz użyć przycisku <strong>Kopiuj wszystko</strong>.</p>",
|
1157
1172
|
};
|
1158
|
-
case
|
1173
|
+
case "no":
|
1159
1174
|
return {
|
1160
1175
|
theListContainsNoEntries: "Listen inneholder ingen oppføringer",
|
1161
1176
|
copyAll: "Kopier alt",
|
@@ -1165,7 +1180,7 @@ function getTranslations() {
|
|
1165
1180
|
"<p>For å kopiere en hel rad, hold nede Skift-tasten mens du klikker.<br>" +
|
1166
1181
|
"Hvis du vil kopiere alle radene, kan du bruke knappen <strong>Kopier alt</strong>.</p>",
|
1167
1182
|
};
|
1168
|
-
case
|
1183
|
+
case "dk":
|
1169
1184
|
return {
|
1170
1185
|
theListContainsNoEntries: "Listen indeholder ingen poster",
|
1171
1186
|
copyAll: "Kopiér alt",
|
@@ -1175,7 +1190,7 @@ function getTranslations() {
|
|
1175
1190
|
"<p>For at kopiere en hel række, hold Shift-tasten nede, mens du klikker.<br>" +
|
1176
1191
|
"Hvis du vil kopiere alle rækker, kan du bruge knappen <strong>Kopiér alt</strong>.</p>",
|
1177
1192
|
};
|
1178
|
-
case
|
1193
|
+
case "sw":
|
1179
1194
|
return {
|
1180
1195
|
theListContainsNoEntries: "Listan innehåller inga poster",
|
1181
1196
|
copyAll: "Kopiera allt",
|
@@ -1186,8 +1201,7 @@ function getTranslations() {
|
|
1186
1201
|
"Om du vill kopiera alla rader kan du använda knappen <strong>Kopiera allt</strong>.</p>",
|
1187
1202
|
};
|
1188
1203
|
|
1189
|
-
|
1190
|
-
case 'en':
|
1204
|
+
case "en":
|
1191
1205
|
default:
|
1192
1206
|
return {
|
1193
1207
|
theListContainsNoEntries: "The list contains no entries",
|
@@ -30,7 +30,7 @@ import {
|
|
30
30
|
removeAttributeToken,
|
31
31
|
} from "../../../dom/attributes.mjs";
|
32
32
|
import { findTargetElementFromEvent } from "../../../dom/events.mjs";
|
33
|
-
import {getLocaleOfDocument} from "../../../dom/locale.mjs";
|
33
|
+
import { getLocaleOfDocument } from "../../../dom/locale.mjs";
|
34
34
|
|
35
35
|
export { DateRange };
|
36
36
|
|
@@ -305,7 +305,7 @@ class DateRange extends AbstractBase {
|
|
305
305
|
function getTranslations() {
|
306
306
|
const locale = getLocaleOfDocument();
|
307
307
|
switch (locale.language) {
|
308
|
-
case
|
308
|
+
case "de":
|
309
309
|
return {
|
310
310
|
singleValue: "Wert",
|
311
311
|
fromValue: "Von",
|
@@ -318,9 +318,9 @@ function getTranslations() {
|
|
318
318
|
days: "Tage",
|
319
319
|
years: "Jahre",
|
320
320
|
weeks: "Wochen",
|
321
|
-
moreThanValue: "Mehr als"
|
321
|
+
moreThanValue: "Mehr als",
|
322
322
|
};
|
323
|
-
case
|
323
|
+
case "fr":
|
324
324
|
return {
|
325
325
|
singleValue: "Valeur",
|
326
326
|
fromValue: "De",
|
@@ -333,9 +333,9 @@ function getTranslations() {
|
|
333
333
|
days: "Jours",
|
334
334
|
years: "Années",
|
335
335
|
weeks: "Semaines",
|
336
|
-
moreThanValue: "Plus de"
|
336
|
+
moreThanValue: "Plus de",
|
337
337
|
};
|
338
|
-
case
|
338
|
+
case "sp":
|
339
339
|
return {
|
340
340
|
singleValue: "Valor",
|
341
341
|
fromValue: "Desde",
|
@@ -348,9 +348,9 @@ function getTranslations() {
|
|
348
348
|
days: "Días",
|
349
349
|
years: "Años",
|
350
350
|
weeks: "Semanas",
|
351
|
-
moreThanValue: "Más de"
|
351
|
+
moreThanValue: "Más de",
|
352
352
|
};
|
353
|
-
case
|
353
|
+
case "it":
|
354
354
|
return {
|
355
355
|
singleValue: "Valore",
|
356
356
|
fromValue: "Da",
|
@@ -363,9 +363,9 @@ function getTranslations() {
|
|
363
363
|
days: "Giorni",
|
364
364
|
years: "Anni",
|
365
365
|
weeks: "Settimane",
|
366
|
-
moreThanValue: "Più di"
|
366
|
+
moreThanValue: "Più di",
|
367
367
|
};
|
368
|
-
case
|
368
|
+
case "pl":
|
369
369
|
return {
|
370
370
|
singleValue: "Wartość",
|
371
371
|
fromValue: "Od",
|
@@ -378,9 +378,9 @@ function getTranslations() {
|
|
378
378
|
days: "Dni",
|
379
379
|
years: "Lata",
|
380
380
|
weeks: "Tygodnie",
|
381
|
-
moreThanValue: "Więcej niż"
|
381
|
+
moreThanValue: "Więcej niż",
|
382
382
|
};
|
383
|
-
case
|
383
|
+
case "no":
|
384
384
|
return {
|
385
385
|
singleValue: "Verdi",
|
386
386
|
fromValue: "Fra",
|
@@ -393,9 +393,9 @@ function getTranslations() {
|
|
393
393
|
days: "Dager",
|
394
394
|
years: "År",
|
395
395
|
weeks: "Uker",
|
396
|
-
moreThanValue: "Mer enn"
|
396
|
+
moreThanValue: "Mer enn",
|
397
397
|
};
|
398
|
-
case
|
398
|
+
case "dk":
|
399
399
|
return {
|
400
400
|
singleValue: "Værdi",
|
401
401
|
fromValue: "Fra",
|
@@ -408,9 +408,9 @@ function getTranslations() {
|
|
408
408
|
days: "Dage",
|
409
409
|
years: "År",
|
410
410
|
weeks: "Uger",
|
411
|
-
moreThanValue: "Mere end"
|
411
|
+
moreThanValue: "Mere end",
|
412
412
|
};
|
413
|
-
case
|
413
|
+
case "sw":
|
414
414
|
return {
|
415
415
|
singleValue: "Värde",
|
416
416
|
fromValue: "Från",
|
@@ -423,10 +423,10 @@ function getTranslations() {
|
|
423
423
|
days: "Dagar",
|
424
424
|
years: "År",
|
425
425
|
weeks: "Veckor",
|
426
|
-
moreThanValue: "Mer än"
|
426
|
+
moreThanValue: "Mer än",
|
427
427
|
};
|
428
428
|
default:
|
429
|
-
case
|
429
|
+
case "en":
|
430
430
|
return {
|
431
431
|
singleValue: "Value",
|
432
432
|
fromValue: "From",
|
@@ -439,12 +439,11 @@ function getTranslations() {
|
|
439
439
|
days: "Days",
|
440
440
|
years: "Years",
|
441
441
|
weeks: "Weeks",
|
442
|
-
moreThanValue: "More than"
|
442
|
+
moreThanValue: "More than",
|
443
443
|
};
|
444
444
|
}
|
445
445
|
}
|
446
446
|
|
447
|
-
|
448
447
|
/**
|
449
448
|
*
|
450
449
|
* @param {HTMLElement} group
|