@schukai/monster 4.148.8 → 4.149.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/package.json +1 -1
- package/source/components/accessibility/stylesheet/locale-picker.mjs +61 -1
- package/source/components/content/image-editor.mjs +79 -11
- package/source/components/content/style/copy.pcss +1 -1
- package/source/components/content/stylesheet/camera-capture.mjs +1 -1
- package/source/components/content/stylesheet/copy.mjs +1 -1
- package/source/components/content/stylesheet/fetch-box.mjs +1 -1
- package/source/components/content/stylesheet/viewer.mjs +61 -1
- package/source/components/data/kpi-tile.mjs +5 -3
- package/source/components/data/metric-graph.mjs +22 -20
- package/source/components/data/metric.mjs +20 -18
- package/source/components/data/style/kpi-tile.pcss +65 -43
- package/source/components/data/style/metric-graph.pcss +35 -18
- package/source/components/data/style/metric.pcss +35 -28
- package/source/components/data/stylesheet/kpi-tile.mjs +61 -1
- package/source/components/data/stylesheet/metric-graph.mjs +61 -1
- package/source/components/data/stylesheet/metric.mjs +61 -1
- package/source/components/datatable/columnbar.mjs +4 -2
- package/source/components/datatable/datatable.mjs +73 -15
- package/source/components/datatable/filter/date-range.mjs +61 -61
- package/source/components/datatable/filter/date-time.mjs +5 -1
- package/source/components/datatable/filter/range.mjs +3 -3
- package/source/components/datatable/filter/select-operator.mjs +7 -1
- package/source/components/datatable/filter/text-operator.mjs +11 -3
- package/source/components/datatable/filter.mjs +16 -0
- package/source/components/datatable/pagination.mjs +2 -2
- package/source/components/datatable/style/column-bar.pcss +115 -23
- package/source/components/datatable/style/datatable.pcss +257 -29
- package/source/components/datatable/style/embedded-pagination.pcss +63 -34
- package/source/components/datatable/style/filter-button.pcss +1 -1
- package/source/components/datatable/style/filter-controls-defaults.pcss +49 -3
- package/source/components/datatable/style/filter-select.pcss +4 -1
- package/source/components/datatable/style/filter.pcss +18 -1
- package/source/components/datatable/stylesheet/change-button.mjs +61 -1
- package/source/components/datatable/stylesheet/column-bar.mjs +69 -1
- package/source/components/datatable/stylesheet/dataset.mjs +61 -1
- package/source/components/datatable/stylesheet/datatable.mjs +71 -1
- package/source/components/datatable/stylesheet/embedded-pagination.mjs +1 -1
- package/source/components/datatable/stylesheet/filter-button.mjs +1 -1
- package/source/components/datatable/stylesheet/filter-controls-defaults.mjs +1 -1
- package/source/components/datatable/stylesheet/filter-select.mjs +61 -1
- package/source/components/datatable/stylesheet/filter.mjs +61 -1
- package/source/components/datatable/stylesheet/pagination.mjs +67 -1
- package/source/components/datatable/stylesheet/save-button.mjs +61 -1
- package/source/components/datatable/stylesheet/status.mjs +61 -1
- package/source/components/form/action-button.mjs +2 -1
- package/source/components/form/button-bar.mjs +7 -2
- package/source/components/form/context-error.mjs +4 -3
- package/source/components/form/context-help.mjs +10 -4
- package/source/components/form/context-hint.mjs +1 -1
- package/source/components/form/context-info.mjs +1 -1
- package/source/components/form/context-note.mjs +1 -1
- package/source/components/form/context-success.mjs +1 -1
- package/source/components/form/context-warning.mjs +1 -1
- package/source/components/form/control-bar.mjs +300 -14
- package/source/components/form/credential-button.mjs +4 -2
- package/source/components/form/digits.mjs +28 -1
- package/source/components/form/field-set.mjs +30 -0
- package/source/components/form/login.mjs +13 -10
- package/source/components/form/password.mjs +6 -0
- package/source/components/form/popper-button.mjs +1 -1
- package/source/components/form/quantity.mjs +14 -6
- package/source/components/form/register-wizard.mjs +46 -26
- package/source/components/form/select.mjs +17 -10
- package/source/components/form/sheet.mjs +13 -2
- package/source/components/form/style/action-button.pcss +131 -5
- package/source/components/form/style/button-bar.pcss +204 -3
- package/source/components/form/style/control-bar.pcss +254 -26
- package/source/components/form/style/digits.pcss +7 -6
- package/source/components/form/style/input-group.pcss +65 -1
- package/source/components/form/style/login.pcss +1 -1
- package/source/components/form/style/mixin/field-set-layout.pcss +8 -0
- package/source/components/form/style/password.pcss +25 -1
- package/source/components/form/style/popper-button.pcss +1 -0
- package/source/components/form/style/quantity.pcss +11 -20
- package/source/components/form/style/select.pcss +52 -7
- package/source/components/form/style/sheet.pcss +70 -1
- package/source/components/form/style/state-button.pcss +5 -2
- package/source/components/form/style/toggle-switch.pcss +7 -4
- package/source/components/form/stylesheet/action-button.mjs +63 -1
- package/source/components/form/stylesheet/button-bar.mjs +153 -1
- package/source/components/form/stylesheet/button.mjs +61 -1
- package/source/components/form/stylesheet/control-bar.mjs +163 -1
- package/source/components/form/stylesheet/digits.mjs +1 -1
- package/source/components/form/stylesheet/field-layout.mjs +1 -1
- package/source/components/form/stylesheet/field-set.mjs +1 -1
- package/source/components/form/stylesheet/form.mjs +1 -1
- package/source/components/form/stylesheet/input-group.mjs +15 -1
- package/source/components/form/stylesheet/login.mjs +1 -1
- package/source/components/form/stylesheet/password.mjs +7 -1
- package/source/components/form/stylesheet/popper-button.mjs +61 -1
- package/source/components/form/stylesheet/quantity.mjs +1 -1
- package/source/components/form/stylesheet/register-wizard.mjs +1 -1
- package/source/components/form/stylesheet/select.mjs +3 -1
- package/source/components/form/stylesheet/sheet.mjs +1 -1
- package/source/components/form/stylesheet/state-button.mjs +3 -1
- package/source/components/form/stylesheet/toggle-switch.mjs +1 -1
- package/source/components/form/stylesheet/wizard.mjs +1 -1
- package/source/components/form/util/floating-ui.mjs +35 -7
- package/source/components/host/call-button.mjs +3 -1
- package/source/components/host/stylesheet/call-button.mjs +61 -1
- package/source/components/host/stylesheet/host.mjs +1 -1
- package/source/components/host/stylesheet/toggle-button.mjs +61 -1
- package/source/components/layout/full-screen.mjs +31 -23
- package/source/components/layout/iframe.mjs +5 -1
- package/source/components/layout/popper.mjs +34 -4
- package/source/components/layout/style/full-screen.pcss +94 -23
- package/source/components/layout/style/split-panel.pcss +57 -5
- package/source/components/layout/style/tabs.pcss +277 -47
- package/source/components/layout/style/vertical-tabs.pcss +147 -0
- package/source/components/layout/stylesheet/collapse.mjs +61 -1
- package/source/components/layout/stylesheet/details.mjs +61 -1
- package/source/components/layout/stylesheet/full-screen.mjs +23 -1
- package/source/components/layout/stylesheet/overlay.mjs +1 -1
- package/source/components/layout/stylesheet/panel.mjs +1 -1
- package/source/components/layout/stylesheet/slider.mjs +1 -1
- package/source/components/layout/stylesheet/split-panel.mjs +17 -1
- package/source/components/layout/stylesheet/tabs.mjs +97 -1
- package/source/components/layout/stylesheet/vertical-tabs.mjs +33 -95
- package/source/components/layout/tabs.mjs +63 -0
- package/source/components/layout/vertical-tabs.mjs +63 -0
- package/source/components/navigation/stylesheet/site-navigation.mjs +1 -1
- package/source/components/navigation/stylesheet/table-of-content.mjs +1 -1
- package/source/components/navigation/stylesheet/wizard-navigation.mjs +1 -1
- package/source/components/navigation/table-of-content.mjs +13 -0
- package/source/components/notify/style/notify.pcss +1 -2
- package/source/components/notify/stylesheet/message.mjs +1 -1
- package/source/components/notify/stylesheet/notify.mjs +1 -1
- package/source/components/state/style/log.pcss +1 -0
- package/source/components/state/style/state.pcss +5 -1
- package/source/components/state/stylesheet/log.mjs +1 -1
- package/source/components/state/stylesheet/state.mjs +7 -1
- package/source/components/style/button.css +61 -205
- package/source/components/style/button.pcss +78 -34
- package/source/components/style/common.css +1 -170
- package/source/components/style/common.pcss +5 -9
- package/source/components/style/form.css +1 -49
- package/source/components/style/form.pcss +24 -6
- package/source/components/style/link.css +1 -39
- package/source/components/style/link.pcss +8 -16
- package/source/components/style/mixin/button.pcss +19 -10
- package/source/components/style/mixin/property.pcss +8 -0
- package/source/components/style/mixin/skeleton.pcss +11 -5
- package/source/components/style/normalize.css +1 -144
- package/source/components/style/normalize.pcss +5 -5
- package/source/components/style/property.css +1 -387
- package/source/components/style/skeleton.css +1 -198
- package/source/components/style/skeleton.pcss +8 -2
- package/source/components/style/theme-modern.css +74 -0
- package/source/components/style/theme-modern.pcss +498 -0
- package/source/components/stylesheet/button.mjs +61 -1
- package/source/components/stylesheet/common.mjs +1 -1
- package/source/components/stylesheet/form.mjs +1 -1
- package/source/components/stylesheet/link.mjs +1 -1
- package/source/components/stylesheet/normalize.mjs +1 -1
- package/source/components/stylesheet/property.mjs +1 -1
- package/source/components/stylesheet/skeleton.mjs +1 -1
- package/source/components/stylesheet/theme-modern.mjs +110 -0
- package/source/components/time/stylesheet/day.mjs +61 -1
- package/source/components/time/stylesheet/month-calendar.mjs +61 -1
- package/source/components/time/timeline/stylesheet/appointment.mjs +61 -1
- package/source/components/time/timeline/stylesheet/segment.mjs +61 -1
- package/source/components/tree-menu/style/tree-menu.pcss +26 -37
- package/source/components/tree-menu/stylesheet/tree-menu.mjs +1 -1
- package/source/dom/customelement.mjs +105 -40
- package/source/dom/updater.mjs +381 -119
- package/test/cases/components/content/image-editor.mjs +19 -0
- package/test/cases/components/datatable/accessibility-defaults.mjs +112 -0
- package/test/cases/components/datatable/filter-availability.mjs +37 -0
- package/test/cases/components/datatable/filter-date-range-layout.mjs +40 -0
- package/test/cases/components/datatable/filter-select-operator.mjs +118 -0
- package/test/cases/components/datatable/mobile-layout.mjs +203 -0
- package/test/cases/components/datatable/responsive-breakpoint.mjs +41 -0
- package/test/cases/components/datatable/selection.mjs +149 -0
- package/test/cases/components/form/action-button-style.mjs +85 -0
- package/test/cases/components/form/button-bar.mjs +222 -3
- package/test/cases/components/form/context-theme-colors.mjs +59 -0
- package/test/cases/components/form/control-bar.mjs +228 -3
- package/test/cases/components/form/control-heights.mjs +103 -0
- package/test/cases/components/form/digits-accessibility.mjs +65 -0
- package/test/cases/components/form/field-set.mjs +54 -0
- package/test/cases/components/form/floating-ui.mjs +74 -0
- package/test/cases/components/form/input-group.mjs +61 -28
- package/test/cases/components/form/login.mjs +47 -0
- package/test/cases/components/form/password.mjs +63 -0
- package/test/cases/components/form/popper-button.mjs +30 -15
- package/test/cases/components/form/quantity-accessibility.mjs +46 -0
- package/test/cases/components/form/register-wizard.mjs +79 -0
- package/test/cases/components/form/select.mjs +94 -2
- package/test/cases/components/form/sheet.mjs +56 -2
- package/test/cases/components/host/toggle-button.mjs +50 -0
- package/test/cases/components/layout/full-screen.mjs +60 -0
- package/test/cases/components/layout/iframe-accessibility.mjs +44 -0
- package/test/cases/components/layout/popper.mjs +128 -0
- package/test/cases/components/layout/slit-panel.mjs +30 -1
- package/test/cases/components/layout/tabs.mjs +93 -0
- package/test/cases/components/navigation/table-of-content.mjs +18 -0
- package/test/cases/components/state/state-style.mjs +31 -0
- package/test/cases/components/style/action-menu.mjs +74 -0
- package/test/cases/components/style/form-controls.mjs +37 -0
- package/test/cases/components/style/kpi-tile.mjs +60 -0
- package/test/cases/components/style/legacy-theme-compatibility.mjs +137 -0
- package/test/cases/components/style/metric-layout.mjs +94 -0
- package/test/cases/components/style/skeleton.mjs +69 -0
- package/test/cases/components/style/theme-component-catalog.mjs +853 -0
- package/test/cases/components/style/theme-modern.mjs +439 -0
- package/test/cases/components/style/theme-review-regressions.mjs +41 -0
- package/test/cases/dom/customelement.mjs +136 -1
- package/test/cases/dom/updater.mjs +174 -0
|
@@ -243,7 +243,7 @@ class DataTable extends CustomElement {
|
|
|
243
243
|
headers: [],
|
|
244
244
|
|
|
245
245
|
responsive: {
|
|
246
|
-
breakpoint:
|
|
246
|
+
breakpoint: 960,
|
|
247
247
|
},
|
|
248
248
|
|
|
249
249
|
labels: getTranslations(),
|
|
@@ -481,6 +481,7 @@ class DataTable extends CustomElement {
|
|
|
481
481
|
);
|
|
482
482
|
if (selectAll instanceof HTMLInputElement) {
|
|
483
483
|
selectAll.checked = false;
|
|
484
|
+
selectAll.indeterminate = false;
|
|
484
485
|
}
|
|
485
486
|
|
|
486
487
|
getSlottedElements
|
|
@@ -495,6 +496,7 @@ class DataTable extends CustomElement {
|
|
|
495
496
|
const rows = this.getGridElements(`[data-monster-role="select-row"]`);
|
|
496
497
|
rows.forEach((row) => {
|
|
497
498
|
row.checked = false;
|
|
499
|
+
setRowSelectionState.call(this, row, false);
|
|
498
500
|
});
|
|
499
501
|
}),
|
|
500
502
|
);
|
|
@@ -1267,27 +1269,21 @@ function initEventHandler() {
|
|
|
1267
1269
|
|
|
1268
1270
|
if (!(checkbox instanceof HTMLInputElement)) return;
|
|
1269
1271
|
|
|
1270
|
-
const
|
|
1271
|
-
if (
|
|
1272
|
-
|
|
1273
|
-
const key = parentNode.getAttribute("data-monster-insert-reference");
|
|
1274
|
-
const row = self.getGridElements(
|
|
1275
|
-
`[data-monster-insert-reference="${key}"]`,
|
|
1276
|
-
);
|
|
1277
|
-
const index = key.split("-").pop();
|
|
1272
|
+
const index = setRowSelectionState.call(self, checkbox, checkbox.checked);
|
|
1273
|
+
if (index === null) return;
|
|
1278
1274
|
|
|
1279
1275
|
if (checkbox.checked) {
|
|
1280
|
-
row.forEach((col) => col.classList.add("selected"));
|
|
1281
1276
|
fireCustomEvent(self, "monster-datatable-row-selected", { index });
|
|
1282
1277
|
} else {
|
|
1283
|
-
row.forEach((col) => col.classList.remove("selected"));
|
|
1284
1278
|
fireCustomEvent(self, "monster-datatable-row-deselected", { index });
|
|
1285
1279
|
}
|
|
1286
1280
|
|
|
1287
1281
|
fireCustomEvent(this, "monster-datatable-selection-changed", {});
|
|
1288
1282
|
|
|
1289
1283
|
const rows = self.getGridElements(`[data-monster-role="select-row"]`);
|
|
1290
|
-
const
|
|
1284
|
+
const selectedRows = Array.from(rows).filter((row) => row.checked);
|
|
1285
|
+
const allSelected =
|
|
1286
|
+
selectedRows.length > 0 && selectedRows.length === rows.length;
|
|
1291
1287
|
|
|
1292
1288
|
const selectAll = this[gridHeadersElementSymbol].querySelector(
|
|
1293
1289
|
`[data-monster-role="select-all"]`,
|
|
@@ -1302,7 +1298,10 @@ function initEventHandler() {
|
|
|
1302
1298
|
if (e instanceof HTMLElement) e.style.visibility = mode;
|
|
1303
1299
|
});
|
|
1304
1300
|
|
|
1305
|
-
if (selectAll
|
|
1301
|
+
if (selectAll instanceof HTMLInputElement) {
|
|
1302
|
+
selectAll.checked = allSelected;
|
|
1303
|
+
selectAll.indeterminate = selectedRows.length > 0 && !allSelected;
|
|
1304
|
+
}
|
|
1306
1305
|
};
|
|
1307
1306
|
|
|
1308
1307
|
this[gridElementSymbol].addEventListener("click", selectRowCallback);
|
|
@@ -1315,13 +1314,15 @@ function initEventHandler() {
|
|
|
1315
1314
|
"data-monster-role",
|
|
1316
1315
|
"select-all",
|
|
1317
1316
|
);
|
|
1318
|
-
if (!toggle) return;
|
|
1317
|
+
if (!(toggle instanceof HTMLInputElement)) return;
|
|
1319
1318
|
|
|
1320
1319
|
const mode = toggle.checked;
|
|
1321
1320
|
const rows = this.getGridElements(`[data-monster-role="select-row"]`);
|
|
1322
1321
|
rows.forEach((row) => {
|
|
1323
1322
|
row.checked = mode;
|
|
1323
|
+
setRowSelectionState.call(this, row, mode);
|
|
1324
1324
|
});
|
|
1325
|
+
toggle.indeterminate = false;
|
|
1325
1326
|
|
|
1326
1327
|
if (mode) {
|
|
1327
1328
|
fireCustomEvent(this, "monster-datatable-all-rows-selected", {});
|
|
@@ -1343,6 +1344,34 @@ function initEventHandler() {
|
|
|
1343
1344
|
this[gridHeadersElementSymbol].addEventListener("touch", selectAllCallback);
|
|
1344
1345
|
}
|
|
1345
1346
|
|
|
1347
|
+
/**
|
|
1348
|
+
* Synchronize a row checkbox with the selected state of every cell in its row.
|
|
1349
|
+
*
|
|
1350
|
+
* @private
|
|
1351
|
+
* @param {HTMLInputElement} checkbox
|
|
1352
|
+
* @param {boolean} selected
|
|
1353
|
+
* @returns {string|null}
|
|
1354
|
+
*/
|
|
1355
|
+
function setRowSelectionState(checkbox, selected) {
|
|
1356
|
+
const parentNode = checkbox.parentNode;
|
|
1357
|
+
if (!(parentNode instanceof HTMLDivElement)) {
|
|
1358
|
+
return null;
|
|
1359
|
+
}
|
|
1360
|
+
|
|
1361
|
+
const key = parentNode.getAttribute("data-monster-insert-reference");
|
|
1362
|
+
if (!key) {
|
|
1363
|
+
return null;
|
|
1364
|
+
}
|
|
1365
|
+
|
|
1366
|
+
this.getGridElements(`[data-monster-insert-reference="${key}"]`).forEach(
|
|
1367
|
+
(cell) => {
|
|
1368
|
+
cell.classList.toggle("selected", selected);
|
|
1369
|
+
},
|
|
1370
|
+
);
|
|
1371
|
+
|
|
1372
|
+
return key.split("-").pop();
|
|
1373
|
+
}
|
|
1374
|
+
|
|
1346
1375
|
/**
|
|
1347
1376
|
* @private
|
|
1348
1377
|
*/
|
|
@@ -1374,6 +1403,12 @@ function initGridAndStructs(hostConfig, headerOrderMap) {
|
|
|
1374
1403
|
let hClass = "";
|
|
1375
1404
|
const row = template.content.children[i];
|
|
1376
1405
|
|
|
1406
|
+
row.toggleAttribute("data-monster-datatable-row-start", i === 0);
|
|
1407
|
+
row.toggleAttribute(
|
|
1408
|
+
"data-monster-datatable-row-end",
|
|
1409
|
+
i === rowCount - 1,
|
|
1410
|
+
);
|
|
1411
|
+
|
|
1377
1412
|
let mode = "";
|
|
1378
1413
|
if (row.hasAttribute(ATTRIBUTE_DATATABLE_MODE)) {
|
|
1379
1414
|
mode = row.getAttribute(ATTRIBUTE_DATATABLE_MODE);
|
|
@@ -1464,7 +1499,11 @@ function initGridAndStructs(hostConfig, headerOrderMap) {
|
|
|
1464
1499
|
features.push(feature.trim());
|
|
1465
1500
|
|
|
1466
1501
|
if (feature === "select") {
|
|
1467
|
-
|
|
1502
|
+
const translations = getTranslations();
|
|
1503
|
+
const selectionLabel = row.hasAttribute(ATTRIBUTE_DATATABLE_HEAD)
|
|
1504
|
+
? label
|
|
1505
|
+
: translations.selectRow;
|
|
1506
|
+
label = `<input type='checkbox' data-monster-role='select-all' aria-label='${translations.selectAllRows}' />`;
|
|
1468
1507
|
|
|
1469
1508
|
while (row.firstChild) {
|
|
1470
1509
|
row.removeChild(row.firstChild);
|
|
@@ -1473,6 +1512,7 @@ function initGridAndStructs(hostConfig, headerOrderMap) {
|
|
|
1473
1512
|
const checkbox = document.createElement("input");
|
|
1474
1513
|
checkbox.type = "checkbox";
|
|
1475
1514
|
checkbox.setAttribute("data-monster-role", "select-row");
|
|
1515
|
+
checkbox.setAttribute("aria-label", selectionLabel);
|
|
1476
1516
|
row.appendChild(checkbox);
|
|
1477
1517
|
}
|
|
1478
1518
|
});
|
|
@@ -1533,6 +1573,8 @@ function getTranslations() {
|
|
|
1533
1573
|
return {
|
|
1534
1574
|
theListContainsNoEntries: "Die Liste enthält keine Einträge",
|
|
1535
1575
|
copyAll: "Alles kopieren",
|
|
1576
|
+
selectRow: "Zeile auswählen",
|
|
1577
|
+
selectAllRows: "Alle Zeilen auswählen",
|
|
1536
1578
|
helpText:
|
|
1537
1579
|
"<p>Sie können die Werte aus einzelnen Zeilen<br>" +
|
|
1538
1580
|
"in die Zwischenablage kopieren, indem Sie auf die entsprechende Spalte doppelklicken.</p>" +
|
|
@@ -1543,6 +1585,8 @@ function getTranslations() {
|
|
|
1543
1585
|
return {
|
|
1544
1586
|
theListContainsNoEntries: "La liste ne contient aucune entrée",
|
|
1545
1587
|
copyAll: "Copier tout",
|
|
1588
|
+
selectRow: "Sélectionner la ligne",
|
|
1589
|
+
selectAllRows: "Sélectionner toutes les lignes",
|
|
1546
1590
|
helpText:
|
|
1547
1591
|
"<p>Vous pouvez copier les valeurs des rangées individuelles<br>" +
|
|
1548
1592
|
"dans le presse-papiers en double-cliquant sur la colonne concernée.</p>" +
|
|
@@ -1553,6 +1597,8 @@ function getTranslations() {
|
|
|
1553
1597
|
return {
|
|
1554
1598
|
theListContainsNoEntries: "La lista no contiene entradas",
|
|
1555
1599
|
copyAll: "Copiar todo",
|
|
1600
|
+
selectRow: "Seleccionar fila",
|
|
1601
|
+
selectAllRows: "Seleccionar todas las filas",
|
|
1556
1602
|
helpText:
|
|
1557
1603
|
"<p>Puedes copiar los valores de filas individuales<br>" +
|
|
1558
1604
|
"al portapapeles haciendo doble clic en la columna correspondiente.</p>" +
|
|
@@ -1563,6 +1609,8 @@ function getTranslations() {
|
|
|
1563
1609
|
return {
|
|
1564
1610
|
theListContainsNoEntries: "L'elenco non contiene voci",
|
|
1565
1611
|
copyAll: "Copia tutto",
|
|
1612
|
+
selectRow: "Seleziona riga",
|
|
1613
|
+
selectAllRows: "Seleziona tutte le righe",
|
|
1566
1614
|
helpText:
|
|
1567
1615
|
"<p>Puoi copiare i valori dalle singole righe<br>" +
|
|
1568
1616
|
"negli appunti facendo doppio clic sulla colonna relativa.</p>" +
|
|
@@ -1573,6 +1621,8 @@ function getTranslations() {
|
|
|
1573
1621
|
return {
|
|
1574
1622
|
theListContainsNoEntries: "Lista nie zawiera wpisów",
|
|
1575
1623
|
copyAll: "Kopiuj wszystko",
|
|
1624
|
+
selectRow: "Wybierz wiersz",
|
|
1625
|
+
selectAllRows: "Wybierz wszystkie wiersze",
|
|
1576
1626
|
helpText:
|
|
1577
1627
|
"<p>Możesz skopiować wartości z poszczególnych wierszy<br>" +
|
|
1578
1628
|
"do schowka, klikając dwukrotnie na odpowiednią kolumnę.</p>" +
|
|
@@ -1583,6 +1633,8 @@ function getTranslations() {
|
|
|
1583
1633
|
return {
|
|
1584
1634
|
theListContainsNoEntries: "Listen inneholder ingen oppføringer",
|
|
1585
1635
|
copyAll: "Kopier alt",
|
|
1636
|
+
selectRow: "Velg rad",
|
|
1637
|
+
selectAllRows: "Velg alle rader",
|
|
1586
1638
|
helpText:
|
|
1587
1639
|
"<p>Du kan kopiere verdier fra enkeltrader<br>" +
|
|
1588
1640
|
"til utklippstavlen ved å dobbeltklikke på den relevante kolonnen.</p>" +
|
|
@@ -1593,6 +1645,8 @@ function getTranslations() {
|
|
|
1593
1645
|
return {
|
|
1594
1646
|
theListContainsNoEntries: "Listen indeholder ingen poster",
|
|
1595
1647
|
copyAll: "Kopiér alt",
|
|
1648
|
+
selectRow: "Vælg række",
|
|
1649
|
+
selectAllRows: "Vælg alle rækker",
|
|
1596
1650
|
helpText:
|
|
1597
1651
|
"<p>Du kan kopiere værdier fra enkelte rækker<br>" +
|
|
1598
1652
|
"til udklipsholderen ved at dobbeltklikke på den relevante kolonne.</p>" +
|
|
@@ -1603,6 +1657,8 @@ function getTranslations() {
|
|
|
1603
1657
|
return {
|
|
1604
1658
|
theListContainsNoEntries: "Listan innehåller inga poster",
|
|
1605
1659
|
copyAll: "Kopiera allt",
|
|
1660
|
+
selectRow: "Välj rad",
|
|
1661
|
+
selectAllRows: "Välj alla rader",
|
|
1606
1662
|
helpText:
|
|
1607
1663
|
"<p>Du kan kopiera värden från enskilda rader<br>" +
|
|
1608
1664
|
"till urklipp genom att dubbelklicka på den relevanta kolumnen.</p>" +
|
|
@@ -1615,6 +1671,8 @@ function getTranslations() {
|
|
|
1615
1671
|
return {
|
|
1616
1672
|
theListContainsNoEntries: "The list contains no entries",
|
|
1617
1673
|
copyAll: "Copy all",
|
|
1674
|
+
selectRow: "Select row",
|
|
1675
|
+
selectAllRows: "Select all rows",
|
|
1618
1676
|
helpText:
|
|
1619
1677
|
"<p>You can copy the values from individual rows<br>" +
|
|
1620
1678
|
"to the clipboard by double-clicking on the relevant column.</p>" +
|
|
@@ -208,7 +208,7 @@ class DateRange extends AbstractBase {
|
|
|
208
208
|
main: getTemplate(),
|
|
209
209
|
},
|
|
210
210
|
|
|
211
|
-
labels: getTranslations(),
|
|
211
|
+
labels: Object.assign({ button: "Choose date range" }, getTranslations()),
|
|
212
212
|
|
|
213
213
|
features: {
|
|
214
214
|
moreThan: true,
|
|
@@ -1107,77 +1107,77 @@ function getTemplate() {
|
|
|
1107
1107
|
// language=HTML
|
|
1108
1108
|
return `
|
|
1109
1109
|
<div data-monster-role="control" part="control">
|
|
1110
|
-
<input data-monster-
|
|
1111
|
-
data-monster-role="input"
|
|
1110
|
+
<input data-monster-role="input"
|
|
1112
1111
|
part="button"
|
|
1112
|
+
data-monster-attributes="disabled path:disabled | if:true, class path:classes.input, aria-label path:labels.button"
|
|
1113
1113
|
data-monster-replace="path:labels.button">
|
|
1114
1114
|
|
|
1115
1115
|
<div data-monster-role="popper" part="popper" tabindex="-1" class="monster-color-primary-1">
|
|
1116
1116
|
<div data-monster-role="arrow"></div>
|
|
1117
|
-
<div part="
|
|
1118
|
-
<div class="
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
<
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1117
|
+
<div part="content">
|
|
1118
|
+
<div part="filter" class="flex" data-monster-replace="path:filter">
|
|
1119
|
+
<div class="form-container" data-monster-role="form">
|
|
1120
|
+
|
|
1121
|
+
<div data-monster-role="range-type" data-monster-range-type="today" data-monster-attributes="class path:features.moreThan | ?:form-group:hidden">
|
|
1122
|
+
<input type="radio" name="rangeType" value="today" tabindex="0">
|
|
1123
|
+
<label for="today"><span data-monster-replace="path:labels.todayValue"></span></label>
|
|
1124
|
+
<input type="hidden" name="todayValue" disabled tabindex="0">
|
|
1125
|
+
</div>
|
|
1125
1126
|
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1127
|
+
<div data-monster-role="range-type" data-monster-range-type="within" data-monster-attributes="class path:features.within | ?:form-group:hidden">
|
|
1128
|
+
<input type="radio" name="rangeType" value="within" tabindex="0">
|
|
1129
|
+
<label for="within"><span
|
|
1130
|
+
data-monster-replace="path:labels.withinValue"></span></label>
|
|
1131
|
+
<input data-monster-watch="true" type="number" name="withinValue" disabled
|
|
1132
|
+
tabindex="0">
|
|
1133
|
+
<select data-monster-watch="true" name="withinValueUnit" disabled tabindex="0">
|
|
1134
|
+
<option selected value="days" data-monster-replace="path:labels.days"></option>
|
|
1135
|
+
<option value="weeks" data-monster-replace="path:labels.weeks"></option>
|
|
1136
|
+
<option value="months" data-monster-replace="path:labels.months"></option>
|
|
1137
|
+
<option value="years" data-monster-replace="path:labels.years"></option>
|
|
1138
|
+
</select>
|
|
1139
|
+
</div>
|
|
1139
1140
|
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1141
|
+
<div data-monster-role="range-type" data-monster-range-type="more-than" data-monster-attributes="class path:features.moreThan | ?:form-group:hidden">
|
|
1142
|
+
<input type="radio" name="rangeType" value="more-than" tabindex="0">
|
|
1143
|
+
<label for="more-than"><span
|
|
1144
|
+
data-monster-replace="path:labels.moreThanValue"></span></label>
|
|
1145
|
+
<input data-monster-watch="true" type="number" name="moreThanValue" disabled
|
|
1146
|
+
tabindex="0">
|
|
1147
|
+
<select data-monster-watch="true" name="moreThanValueUnit" disabled tabindex="0">
|
|
1148
|
+
<option selected value="days" data-monster-replace="path:labels.days"></option>
|
|
1149
|
+
<option value="weeks" data-monster-replace="path:labels.weeks"></option>
|
|
1150
|
+
<option value="months" data-monster-replace="path:labels.months"></option>
|
|
1151
|
+
<option value="years" data-monster-replace="path:labels.years"></option>
|
|
1152
|
+
</select>
|
|
1153
|
+
</div>
|
|
1154
|
+
|
|
1155
|
+
<div class="form-group" data-monster-role="range-type" data-monster-range-type="single">
|
|
1156
|
+
<input type="radio" name="rangeType" value="single" tabindex="0">
|
|
1157
|
+
<label for="single"><span data-monster-replace="path:labels.singleValue"></span></label>
|
|
1158
|
+
<input type="date" data-monster-watch="true" name="singleValue" disabled tabindex="0">
|
|
1159
|
+
</div>
|
|
1159
1160
|
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1161
|
+
<div class="form-group" data-monster-role="range-type" data-monster-range-type="from">
|
|
1162
|
+
<input type="radio" name="rangeType" value="from" tabindex="0">
|
|
1163
|
+
<label for="from"><span data-monster-replace="path:labels.fromValue"></span></label>
|
|
1164
|
+
<input type="date" data-monster-watch="true" name="fromValue" disabled tabindex="0">
|
|
1165
|
+
</div>
|
|
1165
1166
|
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1167
|
+
<div class="form-group" data-monster-role="range-type" data-monster-range-type="to">
|
|
1168
|
+
<input type="radio" name="rangeType" value="to" tabindex="0">
|
|
1169
|
+
<label for="to"><span data-monster-replace="path:labels.toValue"></span></label>
|
|
1170
|
+
<input type="date" data-monster-watch="true" name="toValue" disabled tabindex="0">
|
|
1171
|
+
</div>
|
|
1171
1172
|
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1173
|
+
<div class="form-group" data-monster-role="range-type" data-monster-range-type="from-to">
|
|
1174
|
+
<input type="radio" name="rangeType" value="from-to" tabindex="0">
|
|
1175
|
+
<label for="rangeFrom"><span data-monster-replace="path:labels.fromValue"></span></label>
|
|
1176
|
+
<input type="date" data-monster-watch="true" name="fromValue" disabled tabindex="0">
|
|
1177
|
+
<label for="rangeTo"><span data-monster-replace="path:labels.toValue"></span></label>
|
|
1178
|
+
<input type="date" data-monster-watch="true" name="toValue" disabled tabindex="0">
|
|
1179
|
+
</div>
|
|
1178
1180
|
</div>
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
1181
|
</div>
|
|
1182
1182
|
</div>
|
|
1183
1183
|
</div>
|
|
@@ -65,6 +65,9 @@ class DateTimeFilter extends CustomControl {
|
|
|
65
65
|
templates: {
|
|
66
66
|
main: getTemplate(),
|
|
67
67
|
},
|
|
68
|
+
labels: {
|
|
69
|
+
query: "Date and time",
|
|
70
|
+
},
|
|
68
71
|
});
|
|
69
72
|
}
|
|
70
73
|
|
|
@@ -153,7 +156,8 @@ function getTemplate() {
|
|
|
153
156
|
return `
|
|
154
157
|
<div data-monster-role="control" part="control">
|
|
155
158
|
<slot></slot>
|
|
156
|
-
<input type="datetime-local" name="query" data-monster-role="query"
|
|
159
|
+
<input type="datetime-local" name="query" data-monster-role="query"
|
|
160
|
+
data-monster-attributes="value path:query, aria-label path:labels.query">
|
|
157
161
|
</div>
|
|
158
162
|
`;
|
|
159
163
|
}
|
|
@@ -175,7 +175,7 @@ class Range extends AbstractBase {
|
|
|
175
175
|
main: getTemplate(),
|
|
176
176
|
},
|
|
177
177
|
|
|
178
|
-
labels: getTranslations(),
|
|
178
|
+
labels: Object.assign({ button: "Choose range" }, getTranslations()),
|
|
179
179
|
|
|
180
180
|
features: {},
|
|
181
181
|
|
|
@@ -722,9 +722,9 @@ function getTemplate() {
|
|
|
722
722
|
// language=HTML
|
|
723
723
|
return `
|
|
724
724
|
<div data-monster-role="control" part="control">
|
|
725
|
-
<input data-monster-
|
|
726
|
-
data-monster-role="input"
|
|
725
|
+
<input data-monster-role="input"
|
|
727
726
|
part="button"
|
|
727
|
+
data-monster-attributes="disabled path:disabled | if:true, class path:classes.input, aria-label path:labels.button"
|
|
728
728
|
data-monster-replace="path:labels.button">
|
|
729
729
|
|
|
730
730
|
<div data-monster-role="popper" part="popper" tabindex="-1" class="monster-color-primary-1">
|
|
@@ -491,12 +491,17 @@ function getTemplate() {
|
|
|
491
491
|
monster-filter-select::part(control) {
|
|
492
492
|
border: none;
|
|
493
493
|
box-shadow: none;
|
|
494
|
+
height: 100%;
|
|
495
|
+
min-block-size: 0;
|
|
494
496
|
}
|
|
495
497
|
monster-input-group {
|
|
496
498
|
width: 100%;
|
|
497
|
-
height:
|
|
499
|
+
height: var(--monster-control-min-block-size, 2.5rem);
|
|
498
500
|
align-self: stretch;
|
|
499
501
|
}
|
|
502
|
+
monster-filter-select {
|
|
503
|
+
--monster-select-control-min-block-size: 0;
|
|
504
|
+
}
|
|
500
505
|
monster-input-group::part(control) {
|
|
501
506
|
align-items: stretch;
|
|
502
507
|
}
|
|
@@ -515,6 +520,7 @@ function getTemplate() {
|
|
|
515
520
|
<select slot="prefix" data-monster-role="operator" name="operator"></select>
|
|
516
521
|
<monster-filter-select
|
|
517
522
|
data-monster-role="select"
|
|
523
|
+
data-monster-selected-template="summary"
|
|
518
524
|
style="flex: 1 1 auto; min-width: 0; width: 1%; height: -webkit-fill-available; height: -moz-available; height: fill-available; align-self: stretch;"
|
|
519
525
|
></monster-filter-select>
|
|
520
526
|
</monster-input-group>
|
|
@@ -82,7 +82,13 @@ class TextOperator extends CustomControl {
|
|
|
82
82
|
quotes: {
|
|
83
83
|
char: '"',
|
|
84
84
|
},
|
|
85
|
-
labels:
|
|
85
|
+
labels: Object.assign(
|
|
86
|
+
{
|
|
87
|
+
operator: "Filter operator",
|
|
88
|
+
query: "Filter value",
|
|
89
|
+
},
|
|
90
|
+
getTranslations(),
|
|
91
|
+
),
|
|
86
92
|
});
|
|
87
93
|
}
|
|
88
94
|
|
|
@@ -422,8 +428,10 @@ function getTemplate() {
|
|
|
422
428
|
<div data-monster-role="control" part="control">
|
|
423
429
|
<slot></slot>
|
|
424
430
|
<monster-input-group>
|
|
425
|
-
<select slot="prefix" data-monster-role="operator" name="operator"
|
|
426
|
-
|
|
431
|
+
<select slot="prefix" data-monster-role="operator" name="operator"
|
|
432
|
+
data-monster-attributes="aria-label path:labels.operator"></select>
|
|
433
|
+
<input type="search" data-monster-role="query" name="query"
|
|
434
|
+
data-monster-attributes="value path:query, aria-label path:labels.query">
|
|
427
435
|
</monster-input-group>
|
|
428
436
|
</div>
|
|
429
437
|
`;
|
|
@@ -752,6 +752,22 @@ function initFilter() {
|
|
|
752
752
|
});
|
|
753
753
|
|
|
754
754
|
updateFilterSelections.call(this);
|
|
755
|
+
updateFilterAvailability.call(this);
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
/**
|
|
759
|
+
* Disable filter actions when no filter definitions are available.
|
|
760
|
+
* @private
|
|
761
|
+
*/
|
|
762
|
+
function updateFilterAvailability() {
|
|
763
|
+
const hasFilters = this[settingsSymbol].getOptions().length > 0;
|
|
764
|
+
for (const control of [
|
|
765
|
+
this[filterSelectElementSymbol],
|
|
766
|
+
this[searchButtonElementSymbol],
|
|
767
|
+
this[resetButtonElementSymbol],
|
|
768
|
+
]) {
|
|
769
|
+
control?.setOption?.("disabled", !hasFilters);
|
|
770
|
+
}
|
|
755
771
|
}
|
|
756
772
|
|
|
757
773
|
/**
|
|
@@ -95,8 +95,8 @@ const lastNavClickTargetSymbol = Symbol("lastNavClickTarget");
|
|
|
95
95
|
|
|
96
96
|
const minNavDoubleClickDelayMs = 200;
|
|
97
97
|
|
|
98
|
-
const compactPrevIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="
|
|
99
|
-
const compactNextIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="
|
|
98
|
+
const compactPrevIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0"/></svg>`;
|
|
99
|
+
const compactNextIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 0 0 .708L10.293 8l-5.647 5.646a.5.5 0 0 0 .708.708l6-6a.5.5 0 0 0 0-.708l-6-6a.5.5 0 0 0-.708 0"/></svg>`;
|
|
100
100
|
|
|
101
101
|
/**
|
|
102
102
|
* A Pagination component
|