lintje 0.1.1 → 0.2.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/dist-elements/actions.js +1 -1
- package/dist-elements/charts.js +1 -1
- package/dist-elements/chunks/{base-rBLTcEIv.js → base-Bg-IFOPG.js} +134 -105
- package/dist-elements/chunks/{date-format-B5DPGjAw.js → date-format-mHtZyBys.js} +28 -2
- package/dist-elements/chunks/disclosure-BXTX04gM.js +4 -0
- package/dist-elements/chunks/{disclosure-CHasOudX.js → disclosure-CMXhX-Vb.js} +7 -7
- package/dist-elements/chunks/download-y528pIHP.js +230 -0
- package/dist-elements/chunks/{focus-trap-w3vCamJ6.js → focus-trap-9BnE-xWv.js} +1 -1
- package/dist-elements/chunks/{input-jQVTln7H.js → input-BtuNFSWk.js} +13 -13
- package/dist-elements/chunks/{player-Bq9YGnpt.js → player-DXOZEyEy.js} +24 -24
- package/dist-elements/chunks/{sentence-CLNJOeXz.js → sentence-BI3lwEuT.js} +3 -3
- package/dist-elements/chunks/{stagger-9hYzxhMG.js → stagger-qGD3wmhg.js} +145 -123
- package/dist-elements/core.js +1 -1
- package/dist-elements/custom-elements.json +436 -26
- package/dist-elements/feedback.js +1 -1
- package/dist-elements/guides/dashboard.md +1 -1
- package/dist-elements/guides/events.md +3 -2
- package/dist-elements/guides/loading.md +3 -3
- package/dist-elements/guides/start.md +1 -1
- package/dist-elements/inputs.js +1 -0
- package/dist-elements/layout.js +1 -1
- package/dist-elements/lintje.js +22659 -22216
- package/dist-elements/map.js +1 -1
- package/dist-elements/overlays.js +1 -1
- package/dist-elements/tag/activity-log.js +11 -11
- package/dist-elements/tag/ai-label.js +7 -7
- package/dist-elements/tag/announcement.js +19 -19
- package/dist-elements/tag/app-search.js +21 -21
- package/dist-elements/tag/audio-player.js +34 -34
- package/dist-elements/tag/badge.js +1 -1
- package/dist-elements/tag/breadcrumbs.js +11 -11
- package/dist-elements/tag/button.js +1 -1
- package/dist-elements/tag/card-list.js +1 -1
- package/dist-elements/tag/card.js +25 -25
- package/dist-elements/tag/chart.d.ts +1 -0
- package/dist-elements/tag/chart.js +1868 -0
- package/dist-elements/tag/chat-answer.js +28 -28
- package/dist-elements/tag/chat-composer.js +20 -20
- package/dist-elements/tag/chat-message.js +9 -9
- package/dist-elements/tag/chat-strip.js +16 -16
- package/dist-elements/tag/chat-suggestions.js +1 -1
- package/dist-elements/tag/chat.js +27 -27
- package/dist-elements/tag/checkbox.js +6 -6
- package/dist-elements/tag/code.js +8 -8
- package/dist-elements/tag/combobox.js +13 -13
- package/dist-elements/tag/confirm-dialog.js +6 -6
- package/dist-elements/tag/conflict-alert.js +5 -5
- package/dist-elements/tag/copy-button.js +7 -7
- package/dist-elements/tag/data-table.js +179 -179
- package/dist-elements/tag/date-input.js +34 -42
- package/dist-elements/tag/date-range.js +33 -33
- package/dist-elements/tag/description-list.js +20 -20
- package/dist-elements/tag/document-viewer.js +19 -19
- package/dist-elements/tag/drawer.js +7 -7
- package/dist-elements/tag/empty-state.js +11 -11
- package/dist-elements/tag/error-summary.js +8 -8
- package/dist-elements/tag/expander.js +7 -7
- package/dist-elements/tag/explainer.js +9 -9
- package/dist-elements/tag/field.js +4 -4
- package/dist-elements/tag/file-upload.js +20 -20
- package/dist-elements/tag/filter-bar.js +35 -35
- package/dist-elements/tag/filter-sheet.js +6 -6
- package/dist-elements/tag/filter-zone.js +21 -21
- package/dist-elements/tag/footer.js +1 -1
- package/dist-elements/tag/form-actions.js +7 -7
- package/dist-elements/tag/form-section.js +3 -3
- package/dist-elements/tag/form.js +4 -4
- package/dist-elements/tag/gallery.js +6 -6
- package/dist-elements/tag/grid-item.js +1 -1
- package/dist-elements/tag/grid.js +1 -1
- package/dist-elements/tag/hero.js +6 -6
- package/dist-elements/tag/highlight.js +6 -6
- package/dist-elements/tag/icon-button.js +1 -1
- package/dist-elements/tag/icon.js +1 -1
- package/dist-elements/tag/job-list.js +6 -6
- package/dist-elements/tag/kpi-row.js +7 -5
- package/dist-elements/tag/kpi.js +259 -69
- package/dist-elements/tag/level-meter.js +5 -5
- package/dist-elements/tag/list.js +28 -28
- package/dist-elements/tag/logo.js +9 -9
- package/dist-elements/tag/map.d.ts +1 -0
- package/dist-elements/tag/map.js +21910 -0
- package/dist-elements/tag/menu-button.js +48 -47
- package/dist-elements/tag/modal.js +9 -9
- package/dist-elements/tag/multiselect.js +18 -18
- package/dist-elements/tag/note.js +4 -4
- package/dist-elements/tag/notifications.js +24 -24
- package/dist-elements/tag/number-input.js +8 -8
- package/dist-elements/tag/page-header.js +13 -13
- package/dist-elements/tag/pagination.js +27 -27
- package/dist-elements/tag/popover.js +1 -1
- package/dist-elements/tag/progress-bar.js +1 -1
- package/dist-elements/tag/prose.js +4 -4
- package/dist-elements/tag/qr-code.js +6 -6
- package/dist-elements/tag/radio-group.js +7 -7
- package/dist-elements/tag/range.js +13 -13
- package/dist-elements/tag/recording-status.js +8 -8
- package/dist-elements/tag/repeater.js +1 -1
- package/dist-elements/tag/segmented.js +7 -7
- package/dist-elements/tag/select.js +6 -6
- package/dist-elements/tag/session-expiry.js +13 -13
- package/dist-elements/tag/shell.js +168 -168
- package/dist-elements/tag/shortcuts.js +8 -8
- package/dist-elements/tag/skeleton.js +1 -1
- package/dist-elements/tag/slot-picker.d.ts +1 -0
- package/dist-elements/tag/slot-picker.js +74 -0
- package/dist-elements/tag/sortable-list.js +11 -11
- package/dist-elements/tag/spinner.js +1 -1
- package/dist-elements/tag/split-pane.js +4 -4
- package/dist-elements/tag/status-dot.js +1 -1
- package/dist-elements/tag/stepper.js +13 -13
- package/dist-elements/tag/streaming-text.js +15 -15
- package/dist-elements/tag/sub-nav.js +26 -26
- package/dist-elements/tag/tabs.js +13 -13
- package/dist-elements/tag/tag-input.js +14 -14
- package/dist-elements/tag/text-editor.js +7 -7
- package/dist-elements/tag/text-input.js +10 -10
- package/dist-elements/tag/textarea.js +6 -6
- package/dist-elements/tag/tile.js +1 -1
- package/dist-elements/tag/time-input.js +136 -42
- package/dist-elements/tag/toast.js +10 -10
- package/dist-elements/tag/toggle.js +6 -6
- package/dist-elements/tag/toggletip.js +11 -11
- package/dist-elements/tag/tooltip.js +1 -1
- package/dist-elements/tag/transcript.js +31 -31
- package/dist-elements/tag/translator.js +7 -7
- package/dist-elements/tag/tree-view.js +12 -12
- package/dist-elements/tag/user-menu.js +31 -30
- package/dist-elements/tag/video-player.js +13 -13
- package/dist-elements/tokens.css +2 -0
- package/dist-elements/types/bundle/charts.d.ts +1 -1
- package/dist-elements/types/bundle/index.d.ts +1 -1
- package/dist-elements/types/bundle/inputs.d.ts +1 -0
- package/dist-elements/types/bundle/map.d.ts +1 -1
- package/dist-elements/types/components/charts/{chart-tile/chart-tile.d.ts → chart/chart.d.ts} +7 -7
- package/dist-elements/types/components/charts/kpi/gauge.d.ts +18 -0
- package/dist-elements/types/components/charts/kpi/kpi.d.ts +28 -3
- package/dist-elements/types/components/chat/chat-answer/chat-answer.d.ts +1 -1
- package/dist-elements/types/components/index.d.ts +8 -5
- package/dist-elements/types/components/inputs/date-input/date-format.d.ts +4 -0
- package/dist-elements/types/components/inputs/slot-picker/slot-picker.d.ts +41 -0
- package/dist-elements/types/components/inputs/time-input/time-format.d.ts +4 -0
- package/dist-elements/types/components/inputs/time-input/time-input.d.ts +25 -6
- package/dist-elements/types/components/map/{map-tile/map-tile.d.ts → map/map.d.ts} +10 -6
- package/dist-elements/types/components/shared/charts/histogram-chart/histogram-chart.d.ts +33 -0
- package/dist-elements/types/components/shared/charts/index.d.ts +3 -1
- package/dist-elements/types/components/shared/charts/map-chart/area.d.ts +16 -0
- package/dist-elements/types/components/shared/charts/map-chart/drawings.d.ts +6 -2
- package/dist-elements/types/components/shared/charts/map-chart/geo.d.ts +6 -0
- package/dist-elements/types/components/shared/charts/map-chart/leaflet.d.ts +40 -2
- package/dist-elements/types/components/shared/charts/map-chart/map-chart.d.ts +17 -3
- package/dist-elements/types/components/shared/charts/map-chart/map-legend.d.ts +26 -0
- package/dist-elements/types/components/shared/charts/map-chart/marks.d.ts +47 -0
- package/dist-elements/types/components/shared/charts/map-chart/reveal.d.ts +1 -1
- package/dist-elements/types/components/shared/charts/scatter-chart/scatter-chart.d.ts +29 -0
- package/dist-elements/types/components/shared/charts/shared/axes.d.ts +21 -4
- package/dist-elements/types/components/shared/charts/shared/chart-icons.d.ts +4 -3
- package/dist-elements/types/components/shared/charts/shared/controller.d.ts +27 -15
- package/dist-elements/types/components/shared/charts/shared/types.d.ts +112 -6
- package/dist-elements/types/core/format.d.ts +5 -2
- package/dist-elements/types/icons/register.d.ts +1 -1
- package/dist-elements/types/primitives/shared/place.d.ts +1 -1
- package/dist-elements/types/primitives/tooltip/tooltip.d.ts +2 -0
- package/dist-elements/types/types.d.ts +37 -7
- package/dist-icons/functioneel-cirkelselectie.svg +1 -0
- package/dist-icons/functioneel-lasso.svg +1 -0
- package/dist-icons/functioneel-punaise-outline.svg +1 -0
- package/dist-icons/functioneel-punaise.svg +1 -0
- package/dist-icons/functioneel-rechthoekselectie.svg +1 -0
- package/dist-icons/functioneel-selectie.svg +1 -0
- package/package.json +1 -1
- package/dist-elements/chunks/disclosure-Z7Ny17sS.js +0 -4
- package/dist-elements/chunks/download-lFooAfD1.js +0 -226
- package/dist-elements/tag/chart-tile.d.ts +0 -1
- package/dist-elements/tag/chart-tile.js +0 -1474
- package/dist-elements/tag/map-tile.d.ts +0 -1
- package/dist-elements/tag/map-tile.js +0 -22292
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { $ as e, Bt as t, G as n, Gt as r, H as i, Ht as a,
|
|
2
|
-
import { n as _, r as v } from "../chunks/focus-trap-
|
|
1
|
+
import { $ as e, Bt as t, G as n, Gt as r, H as i, Ht as a, Lt as o, S as s, U as c, Z as l, c as u, d, et as f, k as p, qt as m, s as h, w as g } from "../chunks/base-Bg-IFOPG.js";
|
|
2
|
+
import { n as _, r as v } from "../chunks/focus-trap-9BnE-xWv.js";
|
|
3
3
|
import "./menu-button.js";
|
|
4
|
-
import { t as y } from "../chunks/input-
|
|
4
|
+
import { t as y } from "../chunks/input-BtuNFSWk.js";
|
|
5
5
|
import { t as b } from "./announcement.js";
|
|
6
6
|
import "./drawer.js";
|
|
7
7
|
import "./description-list.js";
|
|
8
|
-
import {
|
|
9
|
-
import { a as S, c as C, d as w, o as T, r as E, s as ee, t as te } from "../chunks/download-
|
|
8
|
+
import { d as x } from "../chunks/date-format-mHtZyBys.js";
|
|
9
|
+
import { a as S, c as C, d as w, o as T, r as E, s as ee, t as te } from "../chunks/download-y528pIHP.js";
|
|
10
10
|
import "./pagination.js";
|
|
11
11
|
import "./sortable-list.js";
|
|
12
12
|
//#region src/components/tables/data-table/data-table.css?inline
|
|
@@ -140,48 +140,48 @@ var ie = 0, k = class {
|
|
|
140
140
|
let r = n.querySelector(".lintje-data-table__editor");
|
|
141
141
|
t.target === "editor" && r ? (r.focus(), r instanceof HTMLInputElement && r.select()) : n.focus();
|
|
142
142
|
}
|
|
143
|
-
content(e, t, n, i, a,
|
|
144
|
-
let
|
|
145
|
-
if (
|
|
146
|
-
><lintje-spinner size="16"></lintje-spinner><span>${
|
|
143
|
+
content(e, t, n, i, a, o) {
|
|
144
|
+
let s = this.mode(e, n);
|
|
145
|
+
if (s.kind === "busy") return m`<span class="lintje-data-table__busy"
|
|
146
|
+
><lintje-spinner size="16"></lintje-spinner><span>${s.value}</span></span
|
|
147
147
|
>`;
|
|
148
|
-
if (
|
|
148
|
+
if (s.kind === "rest") return m`${i}${f("functioneel-bewerken", {
|
|
149
149
|
size: 14,
|
|
150
150
|
className: "lintje-data-table__edit-icon"
|
|
151
151
|
})}`;
|
|
152
|
-
let
|
|
152
|
+
let c = s.error ? `${this.#t}-${o.copy}-error-${o.ids.indexOf(e.id)}-${e.column}` : null, u = (t) => {
|
|
153
153
|
let r = t.currentTarget;
|
|
154
|
-
t.stopPropagation(), t.key === "Escape" ? (t.preventDefault(), this.cancel(e)) : t.key === "Enter" ? (t.preventDefault(), this.commit(e, r.value, n, "down",
|
|
155
|
-
},
|
|
156
|
-
!
|
|
157
|
-
},
|
|
154
|
+
t.stopPropagation(), t.key === "Escape" ? (t.preventDefault(), this.cancel(e)) : t.key === "Enter" ? (t.preventDefault(), this.commit(e, r.value, n, "down", o)) : t.key === "Tab" && (t.preventDefault(), this.commit(e, r.value, n, t.shiftKey ? "previous" : "next", o));
|
|
155
|
+
}, d = (t) => {
|
|
156
|
+
!s.error && this.editing && D(this.editing) === D(e) && this.commit(e, t.currentTarget.value, n, null, o);
|
|
157
|
+
}, p = l({
|
|
158
158
|
"lintje-data-table__editor": !0,
|
|
159
159
|
"focus-inset": !0,
|
|
160
|
-
"is-error": !!
|
|
161
|
-
}), h = t.editor, g = h?.kind === "select" ?
|
|
162
|
-
class=${
|
|
160
|
+
"is-error": !!s.error
|
|
161
|
+
}), h = t.editor, g = h?.kind === "select" ? m`<select
|
|
162
|
+
class=${p}
|
|
163
163
|
aria-label=${a}
|
|
164
|
-
aria-invalid=${
|
|
165
|
-
aria-describedby=${
|
|
166
|
-
@keydown=${
|
|
167
|
-
@blur=${
|
|
164
|
+
aria-invalid=${s.error ? "true" : r}
|
|
165
|
+
aria-describedby=${c ?? r}
|
|
166
|
+
@keydown=${u}
|
|
167
|
+
@blur=${d}
|
|
168
168
|
>
|
|
169
|
-
${(h.options ?? []).map((e) =>
|
|
169
|
+
${(h.options ?? []).map((e) => m`<option value=${e.value} ?selected=${e.value === s.value}>
|
|
170
170
|
${e.label ?? e.value}
|
|
171
171
|
</option>`)}
|
|
172
|
-
</select>` :
|
|
172
|
+
</select>` : m`<input
|
|
173
173
|
type="text"
|
|
174
|
-
class=${
|
|
174
|
+
class=${p}
|
|
175
175
|
inputmode=${h?.kind === "number" ? "decimal" : r}
|
|
176
176
|
placeholder=${h?.kind === "date" ? "dd-mm-jjjj" : r}
|
|
177
177
|
aria-label=${a}
|
|
178
|
-
aria-invalid=${
|
|
179
|
-
aria-describedby=${
|
|
180
|
-
.value=${
|
|
181
|
-
@keydown=${
|
|
182
|
-
@blur=${
|
|
178
|
+
aria-invalid=${s.error ? "true" : r}
|
|
179
|
+
aria-describedby=${c ?? r}
|
|
180
|
+
.value=${s.value}
|
|
181
|
+
@keydown=${u}
|
|
182
|
+
@blur=${d}
|
|
183
183
|
/>`;
|
|
184
|
-
return
|
|
184
|
+
return m`${g}${s.error ? m`<span id=${c ?? r} class="lintje-data-table__edit-error">${s.error}</span>` : r}`;
|
|
185
185
|
}
|
|
186
186
|
cellClasses(e, t) {
|
|
187
187
|
let n = this.mode(e, t);
|
|
@@ -195,7 +195,7 @@ var ie = 0, k = class {
|
|
|
195
195
|
t.target === t.currentTarget && (t.key === "Enter" || t.key === "F2") && (t.preventDefault(), t.stopPropagation(), this.open(e, t.currentTarget));
|
|
196
196
|
}
|
|
197
197
|
renderStatus() {
|
|
198
|
-
return
|
|
198
|
+
return m`<span id=${this.hintId} class="visually-hidden">Bewerkbaar met Enter of F2</span
|
|
199
199
|
><span class="visually-hidden" role="status">${this.message}</span>`;
|
|
200
200
|
}
|
|
201
201
|
};
|
|
@@ -213,7 +213,7 @@ function ae(e, t) {
|
|
|
213
213
|
return [...e, ...t.filter((e) => !n.has(e))];
|
|
214
214
|
}
|
|
215
215
|
function j(e, t, n) {
|
|
216
|
-
return
|
|
216
|
+
return m`<lintje-menu-button
|
|
217
217
|
icon
|
|
218
218
|
variant="tertiary"
|
|
219
219
|
placement="bottom-end"
|
|
@@ -225,13 +225,13 @@ function j(e, t, n) {
|
|
|
225
225
|
></lintje-menu-button>`;
|
|
226
226
|
}
|
|
227
227
|
function oe(e, t, n, i, a) {
|
|
228
|
-
let
|
|
228
|
+
let o = n ? e.length > 0 ? m`<lintje-menu-button
|
|
229
229
|
label="Acties"
|
|
230
230
|
.items=${e}
|
|
231
231
|
@lintje-action=${(e) => {
|
|
232
232
|
e.stopPropagation(), i(e.detail);
|
|
233
233
|
}}
|
|
234
|
-
></lintje-menu-button>` : r : e.map((e) =>
|
|
234
|
+
></lintje-menu-button>` : r : e.map((e) => m`<lintje-button
|
|
235
235
|
variant=${e.danger ? "danger-secondary" : "secondary"}
|
|
236
236
|
size="compact"
|
|
237
237
|
icon=${e.icon ?? r}
|
|
@@ -239,14 +239,14 @@ function oe(e, t, n, i, a) {
|
|
|
239
239
|
@click=${() => i(e.value)}
|
|
240
240
|
>${e.label}</lintje-button
|
|
241
241
|
>`);
|
|
242
|
-
return
|
|
242
|
+
return m`<div
|
|
243
243
|
class="lintje-data-table__selection ${n ? "lintje-data-table__selection--mobile" : ""}"
|
|
244
244
|
role="toolbar"
|
|
245
245
|
aria-label="Acties op de selectie"
|
|
246
246
|
>
|
|
247
247
|
<!-- The table's own status region reads the count: one inserted with its bar would not be. -->
|
|
248
248
|
<strong class="lintje-data-table__selection-count">${t} geselecteerd</strong>
|
|
249
|
-
${
|
|
249
|
+
${o}
|
|
250
250
|
<lintje-button
|
|
251
251
|
class="lintje-data-table__selection-clear"
|
|
252
252
|
variant="tertiary"
|
|
@@ -306,9 +306,9 @@ function L(e, t) {
|
|
|
306
306
|
}
|
|
307
307
|
function R(e, t, n, r) {
|
|
308
308
|
let i = M(t);
|
|
309
|
-
return
|
|
309
|
+
return m`<button
|
|
310
310
|
type="button"
|
|
311
|
-
class=${
|
|
311
|
+
class=${l({
|
|
312
312
|
"lintje-data-table__funnel": !0,
|
|
313
313
|
"is-filtered": i
|
|
314
314
|
})}
|
|
@@ -322,10 +322,10 @@ function R(e, t, n, r) {
|
|
|
322
322
|
</button>`;
|
|
323
323
|
}
|
|
324
324
|
function z() {
|
|
325
|
-
return
|
|
325
|
+
return m`<span class="lintje-data-table__filter-dot" role="img" aria-label="Gefilterd"></span>`;
|
|
326
326
|
}
|
|
327
327
|
function B(e, t, n) {
|
|
328
|
-
if (e.filter?.kind === "text") return
|
|
328
|
+
if (e.filter?.kind === "text") return m`<input
|
|
329
329
|
type="search"
|
|
330
330
|
class="lintje-data-table__filter-search"
|
|
331
331
|
aria-label=${`Zoek in ${e.header.toLocaleLowerCase("nl")}`}
|
|
@@ -333,8 +333,8 @@ function B(e, t, n) {
|
|
|
333
333
|
@input=${(e) => n(e.target.value)}
|
|
334
334
|
/>`;
|
|
335
335
|
let i = new Set(Array.isArray(t) ? t : []);
|
|
336
|
-
return
|
|
337
|
-
${(e.filter?.options ?? []).map((e) =>
|
|
336
|
+
return m`<div class="lintje-data-table__filter-options">
|
|
337
|
+
${(e.filter?.options ?? []).map((e) => m`<label class="lintje-choice lintje-data-table__filter-option">
|
|
338
338
|
<input
|
|
339
339
|
type="checkbox"
|
|
340
340
|
class="lintje-choice__input"
|
|
@@ -348,13 +348,13 @@ function B(e, t, n) {
|
|
|
348
348
|
><span class="lintje-choice__mark">✓</span></span
|
|
349
349
|
>
|
|
350
350
|
<span class="lintje-choice__label">${e.label ?? e.value}</span>
|
|
351
|
-
${e.count == null ? r :
|
|
351
|
+
${e.count == null ? r : m`<span class="lintje-data-table__filter-count">${e.count}</span>`}
|
|
352
352
|
</label>`)}
|
|
353
353
|
</div>`;
|
|
354
354
|
}
|
|
355
355
|
function V(e) {
|
|
356
356
|
let { column: t } = e, n = L(e.anchor, e.onLeave);
|
|
357
|
-
return
|
|
357
|
+
return m`<lintje-popover
|
|
358
358
|
open
|
|
359
359
|
panel-role="dialog"
|
|
360
360
|
label=${P(t, null)}
|
|
@@ -376,14 +376,14 @@ function V(e) {
|
|
|
376
376
|
</lintje-popover>`;
|
|
377
377
|
}
|
|
378
378
|
function H(e) {
|
|
379
|
-
return
|
|
379
|
+
return m`<lintje-drawer
|
|
380
380
|
open
|
|
381
381
|
heading="Filters"
|
|
382
382
|
@lintje-close=${(t) => {
|
|
383
383
|
t.stopPropagation(), e.onClose();
|
|
384
384
|
}}
|
|
385
385
|
>
|
|
386
|
-
${e.columns.map((t) =>
|
|
386
|
+
${e.columns.map((t) => m`<section class="lintje-data-table__filter-section">
|
|
387
387
|
<div class="lintje-data-table__filter-name">${t.header}</div>
|
|
388
388
|
${B(t, e.draft[t.key], (n) => e.onDraft(t.key, n))}
|
|
389
389
|
</section>`)}
|
|
@@ -393,11 +393,11 @@ function H(e) {
|
|
|
393
393
|
}
|
|
394
394
|
function U(e) {
|
|
395
395
|
let t = e.columns.filter((t) => M(e.values[t.key])), n = t.length > 0 && e.total != null ? `${e.shown} van ${e.total} rijen` : "", i = t.length === 0;
|
|
396
|
-
return
|
|
396
|
+
return m`<div
|
|
397
397
|
class="lintje-data-table__toolbar ${i ? "lintje-data-table__toolbar--quiet" : ""}"
|
|
398
398
|
>
|
|
399
399
|
<div class="lintje-data-table__chips">
|
|
400
|
-
${e.columns.length > 0 ?
|
|
400
|
+
${e.columns.length > 0 ? m`<lintje-button
|
|
401
401
|
class="lintje-data-table__sheet-button"
|
|
402
402
|
variant="secondary"
|
|
403
403
|
size="compact"
|
|
@@ -408,7 +408,7 @@ function U(e) {
|
|
|
408
408
|
${e.sortMenu ?? r}
|
|
409
409
|
${t.map((t) => {
|
|
410
410
|
let n = e.values[t.key];
|
|
411
|
-
return
|
|
411
|
+
return m`<span class="lintje-data-table__chip"
|
|
412
412
|
>${ce(t, n)}<button
|
|
413
413
|
type="button"
|
|
414
414
|
class="lintje-data-table__chip-clear"
|
|
@@ -424,7 +424,7 @@ function U(e) {
|
|
|
424
424
|
</div>`;
|
|
425
425
|
}
|
|
426
426
|
function W(e, t) {
|
|
427
|
-
return
|
|
427
|
+
return m`<button
|
|
428
428
|
type="button"
|
|
429
429
|
class="lintje-data-table__chooser-button"
|
|
430
430
|
aria-label="Kolommen kiezen"
|
|
@@ -438,7 +438,7 @@ function W(e, t) {
|
|
|
438
438
|
}
|
|
439
439
|
function le(e) {
|
|
440
440
|
let t = L(e.anchor, e.onLeave);
|
|
441
|
-
return
|
|
441
|
+
return m`<lintje-popover
|
|
442
442
|
open
|
|
443
443
|
panel-role="dialog"
|
|
444
444
|
label="Kolommen kiezen"
|
|
@@ -496,7 +496,7 @@ function q(e, t) {
|
|
|
496
496
|
function J(e, t) {
|
|
497
497
|
if (t == null) return null;
|
|
498
498
|
let n;
|
|
499
|
-
return n = typeof t == "string" || e.format === "text" ? String(t) : e.format === "change" || e.format === "change-compact" ? `${t > 0 ? "▲" : t < 0 ? "▼" : "●"} ${t > 0 ? "+" : ""}${
|
|
499
|
+
return n = typeof t == "string" || e.format === "text" ? String(t) : e.format === "change" || e.format === "change-compact" ? `${t > 0 ? "▲" : t < 0 ? "▼" : "●"} ${t > 0 ? "+" : ""}${h(t, e.decimals ?? 0)}%` : e.format === "percent" ? u(t, e.decimals ?? 0) : e.format === "decimal" ? h(t, e.decimals ?? 1) : h(t, e.decimals ?? 0), e.unit ? `${n} ${e.unit}` : n;
|
|
500
500
|
}
|
|
501
501
|
function Y(e, t) {
|
|
502
502
|
let n = e.threshold;
|
|
@@ -518,7 +518,7 @@ function pe(e, t) {
|
|
|
518
518
|
let n = e.status?.tones?.[t] ?? t;
|
|
519
519
|
return fe.has(n) ? n : null;
|
|
520
520
|
}
|
|
521
|
-
var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z =
|
|
521
|
+
var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = m`<span aria-hidden="true" class="lintje-data-table__muted">—</span
|
|
522
522
|
><span class="visually-hidden">geen gegevens</span>`, Q = class {
|
|
523
523
|
#e;
|
|
524
524
|
#t;
|
|
@@ -538,7 +538,7 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
538
538
|
}
|
|
539
539
|
}, $ = class extends w {
|
|
540
540
|
constructor(...e) {
|
|
541
|
-
super(...e), this.bare = !1, this.plain = !1, this.sort = null, this.checkedIds = [], this.page = 0, this.mobilePage = 0, this.#e = new
|
|
541
|
+
super(...e), this.bare = !1, this.plain = !1, this.sort = null, this.checkedIds = [], this.page = 0, this.mobilePage = 0, this.#e = new o(this), this.#t = new Q(() => this.requestUpdate()), this.#n = new Q(() => this.requestUpdate()), this.#r = JSON.stringify(null), this.#i = JSON.stringify([]), this.filterValues = {}, this.filterDraft = {}, this.columnOrder = null, this.hiddenKeys = [], this.panel = null, this.mobileOpen = [], this.liveMessage = "", this.#a = 0, this.#o = !1, this.#s = new k({
|
|
542
542
|
requestUpdate: () => this.requestUpdate(),
|
|
543
543
|
editCell: (e) => this.emit("lintje-cell-edit", e)
|
|
544
544
|
}), this.#c = JSON.stringify({}), this.#l = "", this.#u = null, this.#d = null, this.#f = !1, this.#p = {
|
|
@@ -556,7 +556,7 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
556
556
|
p,
|
|
557
557
|
a(b),
|
|
558
558
|
a(g),
|
|
559
|
-
a(
|
|
559
|
+
a(s),
|
|
560
560
|
a(y),
|
|
561
561
|
E,
|
|
562
562
|
a(ne)
|
|
@@ -629,11 +629,11 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
629
629
|
super.updated(e), this.#s.restoreFocus(this.renderRoot), this.#_();
|
|
630
630
|
}
|
|
631
631
|
#g() {
|
|
632
|
-
if (this.#m = null, !
|
|
633
|
-
let e = [...this.renderRoot.querySelectorAll(".lintje-data-table")].find(
|
|
632
|
+
if (this.#m = null, !c(this)) return;
|
|
633
|
+
let e = [...this.renderRoot.querySelectorAll(".lintje-data-table")].find(c);
|
|
634
634
|
if (!e) return;
|
|
635
635
|
let t = e.querySelector(":scope > .lintje-data-table__selection");
|
|
636
|
-
if (t &&
|
|
636
|
+
if (t && c(t)) {
|
|
637
637
|
this.#m = {
|
|
638
638
|
scope: e,
|
|
639
639
|
table: null,
|
|
@@ -642,9 +642,9 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
642
642
|
};
|
|
643
643
|
return;
|
|
644
644
|
}
|
|
645
|
-
let n = [...e.querySelectorAll("table")].find(
|
|
645
|
+
let n = [...e.querySelectorAll("table")].find(c), r = n ? [...n.querySelectorAll(K)] : [], i = r.findIndex(c);
|
|
646
646
|
if (!n || i === -1) return;
|
|
647
|
-
let a = v(r[i]).findIndex(
|
|
647
|
+
let a = v(r[i]).findIndex(c);
|
|
648
648
|
this.#m = {
|
|
649
649
|
scope: e,
|
|
650
650
|
table: n,
|
|
@@ -803,7 +803,7 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
803
803
|
this.filterValues = n, this.page = 0, this.mobilePage = 0, this.closePanel();
|
|
804
804
|
}
|
|
805
805
|
async clearFilter(e, t) {
|
|
806
|
-
let n =
|
|
806
|
+
let n = c(t), r = t.closest(".lintje-data-table"), i = { ...this.filterValues };
|
|
807
807
|
if (delete i[e], this.filterValues = i, this.page = 0, this.mobilePage = 0, this.#o = !0, this.emit("lintje-filter-change", {
|
|
808
808
|
column: e,
|
|
809
809
|
value: null
|
|
@@ -839,7 +839,7 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
839
839
|
if (this.bare) return this.table(this.#t);
|
|
840
840
|
if (this.plain) return this.content();
|
|
841
841
|
let t = (e.state ?? "ready") === "ready", n = this.#e.matches && e.mobileSubtitle ? e.mobileSubtitle : e.subtitle;
|
|
842
|
-
return
|
|
842
|
+
return m`<lintje-tile
|
|
843
843
|
id=${this.id ? `${this.id}-tile` : r}
|
|
844
844
|
span=${e.span ?? r}
|
|
845
845
|
heading=${e.title ?? r}
|
|
@@ -856,7 +856,7 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
856
856
|
e.stopPropagation(), this.csv();
|
|
857
857
|
}}
|
|
858
858
|
>
|
|
859
|
-
${e.notice ?
|
|
859
|
+
${e.notice ? m`<lintje-announcement slot="notice" compact .data=${e.notice}></lintje-announcement>` : r}
|
|
860
860
|
${this.content()}
|
|
861
861
|
</lintje-tile>
|
|
862
862
|
|
|
@@ -885,31 +885,31 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
885
885
|
}
|
|
886
886
|
}
|
|
887
887
|
table(e) {
|
|
888
|
-
let t = this.data, n = this.sortedRows, i = t.pageSize ?? 25, a = Math.ceil(n.length / i),
|
|
889
|
-
return
|
|
888
|
+
let t = this.data, n = this.sortedRows, i = t.pageSize ?? 25, a = Math.ceil(n.length / i), o = n.slice(this.page * i, (this.page + 1) * i), s = Math.ceil(n.length / G), c = this.mobilePage * G, u = n.slice(c, c + G), f = this.#e.matches, p = e === this.#n === this.expanded;
|
|
889
|
+
return m`<div class=${l({
|
|
890
890
|
"lintje-data-table": !0,
|
|
891
891
|
"is-phone": f
|
|
892
892
|
})}>
|
|
893
893
|
${this.toolbar(e)} ${f ? r : this.selectionBar(!1)}
|
|
894
894
|
<!-- Desktop table: scrolls sideways when it is wider than the tile -->
|
|
895
895
|
<div
|
|
896
|
-
class=${
|
|
896
|
+
class=${l({
|
|
897
897
|
"lintje-data-table__frame": !0,
|
|
898
898
|
"is-scrollable-start": e.start,
|
|
899
899
|
"is-scrollable-end": e.end
|
|
900
900
|
})}
|
|
901
901
|
>
|
|
902
|
-
<div class="lintje-data-table__scroller" ${
|
|
903
|
-
${this.fullTable(
|
|
902
|
+
<div class="lintje-data-table__scroller" ${d(e.watch)}>
|
|
903
|
+
${this.fullTable(o, a, i, e)}
|
|
904
904
|
</div>
|
|
905
905
|
</div>
|
|
906
906
|
|
|
907
907
|
<!-- Mobile representation: two columns (C8) -->
|
|
908
|
-
${this.mobileTable(
|
|
908
|
+
${this.mobileTable(u, s, e === this.#n ? "modal" : "tile")}
|
|
909
909
|
${a > 1 ? this.pager("full", this.page, a, i, n.length, (e) => {
|
|
910
910
|
this.page = e;
|
|
911
911
|
}) : r}
|
|
912
|
-
${
|
|
912
|
+
${s > 1 ? this.pager("mobile", this.mobilePage, s, G, n.length, (e) => {
|
|
913
913
|
this.mobilePage = e;
|
|
914
914
|
}) : r}
|
|
915
915
|
${f ? this.selectionBar(!0) : r} ${this.panels(e)}
|
|
@@ -957,7 +957,7 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
957
957
|
checked: i.direction === "desc"
|
|
958
958
|
}
|
|
959
959
|
];
|
|
960
|
-
return
|
|
960
|
+
return m`<lintje-menu-button
|
|
961
961
|
class="lintje-data-table__sort-menu"
|
|
962
962
|
label="Sorteren"
|
|
963
963
|
.items=${a}
|
|
@@ -1036,36 +1036,36 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
1036
1036
|
}) : r;
|
|
1037
1037
|
}
|
|
1038
1038
|
fullTable(e, t, n, i) {
|
|
1039
|
-
let a = this.data,
|
|
1039
|
+
let a = this.data, o = this.shown, s = !!a.selectable, c = !!a.clickable && !s, u = this.activeSort, d = new Set(this.checkedIds), f = a.rowActions?.length ? a.rowActions : null, p = !!a.columnChooser, h = !!f || p, g = {
|
|
1040
1040
|
ids: e.map((e) => this.rowKey(e)),
|
|
1041
|
-
columns:
|
|
1041
|
+
columns: o,
|
|
1042
1042
|
offset: this.page * n,
|
|
1043
1043
|
copy: i === this.#n ? "modal" : "tile"
|
|
1044
1044
|
};
|
|
1045
|
-
return
|
|
1045
|
+
return m`<table class="lintje-data-table__full">
|
|
1046
1046
|
<caption class="visually-hidden">${a.caption}</caption>
|
|
1047
1047
|
<thead>
|
|
1048
1048
|
<tr>
|
|
1049
|
-
${
|
|
1049
|
+
${s ? m`<th
|
|
1050
1050
|
scope="col"
|
|
1051
1051
|
class="lintje-data-table__header-cell lintje-data-table__check-cell"
|
|
1052
1052
|
>
|
|
1053
1053
|
${this.headerCheck()}
|
|
1054
1054
|
</th>` : r}
|
|
1055
|
-
${
|
|
1056
|
-
let t =
|
|
1055
|
+
${o.map((e) => {
|
|
1056
|
+
let t = u.key === e.key, n = (e.align ?? (q(e, this.rows) ? "right" : "left")) === "right", a = !!e.filter && M(this.filterValues[e.key]), o = a ? z() : r, s = e.sortable === !1 ? e.filter ? m`<span class="lintje-data-table__header-label">${e.header}${o}</span>` : e.header : m`<button
|
|
1057
1057
|
type="button"
|
|
1058
1058
|
class="lintje-data-table__sort-button"
|
|
1059
1059
|
@click=${() => this.toggleSort(e)}
|
|
1060
1060
|
>
|
|
1061
|
-
<span class="lintje-data-table__sort-label">${e.header}</span>${
|
|
1061
|
+
<span class="lintje-data-table__sort-label">${e.header}</span>${o}
|
|
1062
1062
|
<span class="lintje-data-table__sort-icon" aria-hidden="true"
|
|
1063
|
-
>${t ?
|
|
1063
|
+
>${t ? u.direction === "asc" ? "▲" : "▼" : "▲▼"}</span
|
|
1064
1064
|
>
|
|
1065
1065
|
</button>`;
|
|
1066
|
-
return
|
|
1066
|
+
return m`<th
|
|
1067
1067
|
scope="col"
|
|
1068
|
-
class=${
|
|
1068
|
+
class=${l({
|
|
1069
1069
|
"lintje-data-table__header-cell": !0,
|
|
1070
1070
|
"lintje-data-table__header-cell--align-right": n,
|
|
1071
1071
|
"lintje-data-table__header-cell--sortable": e.sortable !== !1,
|
|
@@ -1073,20 +1073,20 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
1073
1073
|
"is-active": t,
|
|
1074
1074
|
"is-filtered": a
|
|
1075
1075
|
})}
|
|
1076
|
-
aria-sort=${t ?
|
|
1076
|
+
aria-sort=${t ? u.direction === "asc" ? "ascending" : "descending" : "none"}
|
|
1077
1077
|
>
|
|
1078
|
-
${e.filter ?
|
|
1079
|
-
>${
|
|
1078
|
+
${e.filter ? m`<span class="lintje-data-table__header-inner"
|
|
1079
|
+
>${s}${R(e, this.filterValues[e.key], this.panel?.kind === "filter" && this.panel.column === e.key, (t) => this.panel?.kind === "filter" && this.panel.column === e.key ? this.closePanel() : this.openPanel({
|
|
1080
1080
|
kind: "filter",
|
|
1081
1081
|
column: e.key,
|
|
1082
1082
|
edges: i
|
|
1083
1083
|
}, t))}</span
|
|
1084
|
-
>` :
|
|
1084
|
+
>` : s}
|
|
1085
1085
|
</th>`;
|
|
1086
1086
|
})}
|
|
1087
|
-
${h ?
|
|
1088
|
-
${
|
|
1089
|
-
${
|
|
1087
|
+
${h ? m`<th scope="col" class="lintje-data-table__header-cell lintje-data-table__action-cell">
|
|
1088
|
+
${f ? m`<span class="visually-hidden">Acties</span>` : r}
|
|
1089
|
+
${p ? W(this.panel?.kind === "columns", (e) => this.panel?.kind === "columns" ? this.closePanel() : this.openPanel({
|
|
1090
1090
|
kind: "columns",
|
|
1091
1091
|
edges: i
|
|
1092
1092
|
}, e)) : r}
|
|
@@ -1096,99 +1096,99 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
1096
1096
|
<tbody>
|
|
1097
1097
|
${e.map((e, t) => {
|
|
1098
1098
|
let n = this.rowKey(e), i = n === a.selectedId;
|
|
1099
|
-
return
|
|
1100
|
-
class=${
|
|
1099
|
+
return m`<tr
|
|
1100
|
+
class=${l({
|
|
1101
1101
|
"lintje-data-table__row": !0,
|
|
1102
|
-
"is-clickable":
|
|
1102
|
+
"is-clickable": c,
|
|
1103
1103
|
"is-selected": i,
|
|
1104
|
-
"is-checked":
|
|
1104
|
+
"is-checked": d.has(n)
|
|
1105
1105
|
})}
|
|
1106
|
-
tabindex=${
|
|
1107
|
-
aria-selected=${
|
|
1108
|
-
@click=${
|
|
1109
|
-
@keydown=${
|
|
1106
|
+
tabindex=${c ? 0 : r}
|
|
1107
|
+
aria-selected=${c ? i : r}
|
|
1108
|
+
@click=${c ? () => this.emit("lintje-row-click", this.rowDetail(e)) : r}
|
|
1109
|
+
@keydown=${c ? (t) => this.rowKeydown(t, e) : r}
|
|
1110
1110
|
>
|
|
1111
|
-
${
|
|
1112
|
-
${this.rowCheck(e, n,
|
|
1111
|
+
${s ? m`<td class="lintje-data-table__cell lintje-data-table__check-cell">
|
|
1112
|
+
${this.rowCheck(e, n, d.has(n))}
|
|
1113
1113
|
</td>` : r}
|
|
1114
|
-
${
|
|
1115
|
-
let i = n.truncate === !0, a = i ? this.truncatedCell(n, e[n.key]) : this.cell(n, e[n.key]),
|
|
1116
|
-
return n.editor ? this.editableCell(e, t, n, r === 0,
|
|
1114
|
+
${o.map((n, r) => {
|
|
1115
|
+
let i = n.truncate === !0, a = i ? this.truncatedCell(n, e[n.key]) : this.cell(n, e[n.key]), o = (n.align ?? (q(n, this.rows) ? "right" : "left")) === "right";
|
|
1116
|
+
return n.editor ? this.editableCell(e, t, n, r === 0, o, a, g) : r === 0 ? m`<th
|
|
1117
1117
|
scope="row"
|
|
1118
|
-
class=${
|
|
1118
|
+
class=${l({
|
|
1119
1119
|
"lintje-data-table__cell": !0,
|
|
1120
1120
|
"lintje-data-table__name": !0,
|
|
1121
1121
|
"lintje-data-table__cell--truncate": i
|
|
1122
1122
|
})}
|
|
1123
1123
|
>
|
|
1124
1124
|
${this.opener(e, a)}
|
|
1125
|
-
</th>` :
|
|
1126
|
-
class=${
|
|
1125
|
+
</th>` : m`<td
|
|
1126
|
+
class=${l({
|
|
1127
1127
|
"lintje-data-table__cell": !0,
|
|
1128
|
-
"lintje-data-table__cell--align-right":
|
|
1128
|
+
"lintje-data-table__cell--align-right": o,
|
|
1129
1129
|
"lintje-data-table__cell--truncate": i
|
|
1130
1130
|
})}
|
|
1131
1131
|
>
|
|
1132
1132
|
${a}
|
|
1133
1133
|
</td>`;
|
|
1134
1134
|
})}
|
|
1135
|
-
${
|
|
1135
|
+
${f ? m`<td
|
|
1136
1136
|
class="lintje-data-table__cell lintje-data-table__action-cell"
|
|
1137
1137
|
@click=${(e) => e.stopPropagation()}
|
|
1138
1138
|
@keydown=${(e) => e.stopPropagation()}
|
|
1139
1139
|
>
|
|
1140
|
-
${j(
|
|
1140
|
+
${j(f, this.rowDetail(e).label, (e) => this.emit("lintje-row-action", {
|
|
1141
1141
|
id: n,
|
|
1142
1142
|
action: e
|
|
1143
1143
|
}))}
|
|
1144
|
-
</td>` :
|
|
1144
|
+
</td>` : p ? m`<td class="lintje-data-table__cell lintje-data-table__action-cell"></td>` : r}
|
|
1145
1145
|
</tr>`;
|
|
1146
1146
|
})}
|
|
1147
1147
|
<!-- A short last page keeps the height of a full one, so the page below doesn't jump. -->
|
|
1148
|
-
${t > 1 ? Array.from({ length: n - e.length }, () =>
|
|
1148
|
+
${t > 1 ? Array.from({ length: n - e.length }, () => m`<tr
|
|
1149
1149
|
class="lintje-data-table__row lintje-data-table__row--filler"
|
|
1150
1150
|
aria-hidden="true"
|
|
1151
1151
|
>
|
|
1152
1152
|
<td
|
|
1153
1153
|
class="lintje-data-table__cell"
|
|
1154
|
-
colspan=${
|
|
1154
|
+
colspan=${o.length + +!!s + +!!h}
|
|
1155
1155
|
></td>
|
|
1156
1156
|
</tr>`) : r}
|
|
1157
1157
|
</tbody>
|
|
1158
1158
|
</table>`;
|
|
1159
1159
|
}
|
|
1160
|
-
editableCell(e, t, n, i, a,
|
|
1161
|
-
let
|
|
1160
|
+
editableCell(e, t, n, i, a, o, s) {
|
|
1161
|
+
let c = this.#s, u = {
|
|
1162
1162
|
id: this.rowKey(e),
|
|
1163
1163
|
column: n.key
|
|
1164
|
-
},
|
|
1164
|
+
}, d = e[n.key] ?? null, f = c.mode(u, d).kind, p = l({
|
|
1165
1165
|
"lintje-data-table__cell": !0,
|
|
1166
1166
|
"lintje-data-table__name": i,
|
|
1167
1167
|
"lintje-data-table__cell--align-right": a,
|
|
1168
1168
|
"lintje-data-table__cell--truncate": n.truncate === !0,
|
|
1169
1169
|
"focus-inset": !0,
|
|
1170
|
-
...
|
|
1171
|
-
}), h =
|
|
1172
|
-
|
|
1170
|
+
...c.cellClasses(u, d)
|
|
1171
|
+
}), h = c.content(u, n, d, o, `${n.header} van rij ${s.offset + t + 1}`, s), g = (e) => {
|
|
1172
|
+
c.editable(u, n) && c.cellKeydown(u, e);
|
|
1173
1173
|
}, _ = (e) => {
|
|
1174
|
-
|
|
1175
|
-
}, v = (e) => e.stopPropagation(), y =
|
|
1176
|
-
return i ?
|
|
1174
|
+
f === "rest" && c.editable(u, n) && c.open(u, e.currentTarget);
|
|
1175
|
+
}, v = (e) => e.stopPropagation(), y = f === "editor" ? -1 : 0, b = D(u);
|
|
1176
|
+
return i ? m`<th
|
|
1177
1177
|
scope="row"
|
|
1178
|
-
class=${
|
|
1178
|
+
class=${p}
|
|
1179
1179
|
tabindex=${y}
|
|
1180
1180
|
data-cell=${b}
|
|
1181
|
-
aria-describedby=${
|
|
1181
|
+
aria-describedby=${f === "rest" ? c.hintId : r}
|
|
1182
1182
|
@keydown=${g}
|
|
1183
1183
|
@dblclick=${_}
|
|
1184
1184
|
@click=${v}
|
|
1185
1185
|
>
|
|
1186
1186
|
${h}
|
|
1187
|
-
</th>` :
|
|
1188
|
-
class=${
|
|
1187
|
+
</th>` : m`<td
|
|
1188
|
+
class=${p}
|
|
1189
1189
|
tabindex=${y}
|
|
1190
1190
|
data-cell=${b}
|
|
1191
|
-
aria-describedby=${
|
|
1191
|
+
aria-describedby=${f === "rest" ? c.hintId : r}
|
|
1192
1192
|
@keydown=${g}
|
|
1193
1193
|
@dblclick=${_}
|
|
1194
1194
|
@click=${v}
|
|
@@ -1197,13 +1197,13 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
1197
1197
|
</td>`;
|
|
1198
1198
|
}
|
|
1199
1199
|
mobileTable(e, t, n) {
|
|
1200
|
-
let i = this.data, a = this.shown,
|
|
1201
|
-
if (!
|
|
1202
|
-
let h =
|
|
1203
|
-
...
|
|
1200
|
+
let i = this.data, a = this.shown, o = !!i.selectable, s = !!i.clickable && !o, c = a[0], u = this.mobileMeasure, d = this.activeSort, p = new Set(this.checkedIds);
|
|
1201
|
+
if (!c || !u) return m`<table class="lintje-data-table__mobile"></table>`;
|
|
1202
|
+
let h = u.format === "change-compact" ? {
|
|
1203
|
+
...u,
|
|
1204
1204
|
format: "change"
|
|
1205
|
-
} :
|
|
1206
|
-
return
|
|
1205
|
+
} : u, g = i.rowActions?.length ? i.rowActions : null, _ = a.filter((e) => e !== c && e !== u), v = !!g || _.length > 0, y = v ? 3 : 2, b = d.key === u.key, x = new Set(this.mobileOpen);
|
|
1206
|
+
return m`<table class="lintje-data-table__mobile">
|
|
1207
1207
|
<caption class="visually-hidden">${i.caption}</caption>
|
|
1208
1208
|
<thead>
|
|
1209
1209
|
<tr>
|
|
@@ -1211,33 +1211,33 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
1211
1211
|
scope="col"
|
|
1212
1212
|
class="lintje-data-table__header-cell lintje-data-table__header-cell--mobile"
|
|
1213
1213
|
>
|
|
1214
|
-
${
|
|
1215
|
-
>${this.headerCheck()}${
|
|
1216
|
-
>` :
|
|
1214
|
+
${o ? m`<span class="lintje-data-table__mobile-check"
|
|
1215
|
+
>${this.headerCheck()}${c.header}</span
|
|
1216
|
+
>` : c.header}
|
|
1217
1217
|
</th>
|
|
1218
1218
|
<th
|
|
1219
1219
|
scope="col"
|
|
1220
|
-
class=${
|
|
1220
|
+
class=${l({
|
|
1221
1221
|
"lintje-data-table__header-cell": !0,
|
|
1222
1222
|
"lintje-data-table__header-cell--mobile": !0,
|
|
1223
1223
|
"lintje-data-table__header-cell--align-right": !0,
|
|
1224
|
-
"lintje-data-table__header-cell--sortable":
|
|
1224
|
+
"lintje-data-table__header-cell--sortable": u.sortable !== !1,
|
|
1225
1225
|
"is-active": b
|
|
1226
1226
|
})}
|
|
1227
|
-
aria-sort=${
|
|
1227
|
+
aria-sort=${u.sortable === !1 ? r : b ? d.direction === "asc" ? "ascending" : "descending" : "none"}
|
|
1228
1228
|
>
|
|
1229
|
-
${
|
|
1229
|
+
${u.sortable === !1 ? u.header : m`<button
|
|
1230
1230
|
type="button"
|
|
1231
1231
|
class="lintje-data-table__sort-button"
|
|
1232
|
-
@click=${() => this.toggleSort(
|
|
1232
|
+
@click=${() => this.toggleSort(u)}
|
|
1233
1233
|
>
|
|
1234
|
-
<span class="lintje-data-table__sort-label">${
|
|
1234
|
+
<span class="lintje-data-table__sort-label">${u.header}</span>
|
|
1235
1235
|
<span class="lintje-data-table__sort-icon" aria-hidden="true"
|
|
1236
|
-
>${b ?
|
|
1236
|
+
>${b ? d.direction === "asc" ? "▲" : "▼" : "▲▼"}</span
|
|
1237
1237
|
>
|
|
1238
1238
|
</button>`}
|
|
1239
1239
|
</th>
|
|
1240
|
-
${v ?
|
|
1240
|
+
${v ? m`<th
|
|
1241
1241
|
scope="col"
|
|
1242
1242
|
class="lintje-data-table__header-cell lintje-data-table__header-cell--mobile lintje-data-table__mobile-cell--actions"
|
|
1243
1243
|
>
|
|
@@ -1247,25 +1247,25 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
1247
1247
|
</thead>
|
|
1248
1248
|
<tbody>
|
|
1249
1249
|
${e.map((e) => {
|
|
1250
|
-
let t = this.rowKey(e), a = this.rowDetail(e),
|
|
1251
|
-
>${this.opener(e, this.cell(
|
|
1250
|
+
let t = this.rowKey(e), a = this.rowDetail(e), d = this.mobileStatus(u, e), b = x.has(t) && _.length > 0, S = `lintje-data-table-${n}-detail-${t}`, C = m`<span class="lintje-data-table__mobile-name"
|
|
1251
|
+
>${this.opener(e, this.cell(c, e[c.key]))}</span
|
|
1252
1252
|
>${this.subline(e)}`, w = t === i.selectedId;
|
|
1253
|
-
return
|
|
1254
|
-
class=${
|
|
1253
|
+
return m`<tr
|
|
1254
|
+
class=${l({
|
|
1255
1255
|
"lintje-data-table__mobile-row": !0,
|
|
1256
|
-
"is-clickable":
|
|
1256
|
+
"is-clickable": s,
|
|
1257
1257
|
"is-selected": w,
|
|
1258
|
-
"is-checked":
|
|
1258
|
+
"is-checked": p.has(t),
|
|
1259
1259
|
"is-open": b
|
|
1260
1260
|
})}
|
|
1261
|
-
tabindex=${
|
|
1262
|
-
aria-selected=${
|
|
1263
|
-
@click=${
|
|
1264
|
-
@keydown=${
|
|
1261
|
+
tabindex=${s ? 0 : r}
|
|
1262
|
+
aria-selected=${s ? w : r}
|
|
1263
|
+
@click=${s ? () => this.emit("lintje-row-click", a) : r}
|
|
1264
|
+
@keydown=${s ? (t) => this.rowKeydown(t, e) : r}
|
|
1265
1265
|
>
|
|
1266
1266
|
<th scope="row" class="lintje-data-table__mobile-cell">
|
|
1267
|
-
${
|
|
1268
|
-
${this.rowCheck(e, t,
|
|
1267
|
+
${o ? m`<span class="lintje-data-table__mobile-check">
|
|
1268
|
+
${this.rowCheck(e, t, p.has(t))}
|
|
1269
1269
|
<span class="lintje-data-table__mobile-identity">${C}</span>
|
|
1270
1270
|
</span>` : C}
|
|
1271
1271
|
</th>
|
|
@@ -1273,20 +1273,20 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
1273
1273
|
class="lintje-data-table__mobile-cell lintje-data-table__mobile-cell--align-right"
|
|
1274
1274
|
>
|
|
1275
1275
|
<span class="lintje-data-table__mobile-measure"
|
|
1276
|
-
>${this.cell(h, e[
|
|
1276
|
+
>${this.cell(h, e[u.key])}</span
|
|
1277
1277
|
>
|
|
1278
|
-
${
|
|
1279
|
-
class="lintje-data-table__mobile-status lintje-data-table__mobile-status--${
|
|
1280
|
-
>${
|
|
1278
|
+
${d ? m`<span
|
|
1279
|
+
class="lintje-data-table__mobile-status lintje-data-table__mobile-status--${d.tone}"
|
|
1280
|
+
>${d.label}</span
|
|
1281
1281
|
>` : r}
|
|
1282
1282
|
</td>
|
|
1283
|
-
${v ?
|
|
1283
|
+
${v ? m`<td
|
|
1284
1284
|
class="lintje-data-table__mobile-cell lintje-data-table__mobile-cell--actions"
|
|
1285
1285
|
@click=${(e) => e.stopPropagation()}
|
|
1286
1286
|
@keydown=${(e) => e.stopPropagation()}
|
|
1287
1287
|
>
|
|
1288
1288
|
<span class="lintje-data-table__mobile-actions">
|
|
1289
|
-
${_.length > 0 ?
|
|
1289
|
+
${_.length > 0 ? m`<button
|
|
1290
1290
|
type="button"
|
|
1291
1291
|
class="lintje-data-table__mobile-toggle"
|
|
1292
1292
|
aria-label=${`Alle gegevens van ${a.label}`}
|
|
@@ -1306,13 +1306,13 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
1306
1306
|
</span>
|
|
1307
1307
|
</td>` : r}
|
|
1308
1308
|
</tr>
|
|
1309
|
-
${_.length > 0 ?
|
|
1309
|
+
${_.length > 0 ? m`<tr
|
|
1310
1310
|
class="lintje-data-table__mobile-detail"
|
|
1311
1311
|
id=${S}
|
|
1312
1312
|
?hidden=${!b}
|
|
1313
1313
|
>
|
|
1314
1314
|
<td class="lintje-data-table__mobile-cell" colspan=${y}>
|
|
1315
|
-
${b ?
|
|
1315
|
+
${b ? m`<lintje-description-list
|
|
1316
1316
|
.items=${_.map((t) => ({
|
|
1317
1317
|
label: t.header,
|
|
1318
1318
|
value: X(t, e[t.key])
|
|
@@ -1322,17 +1322,17 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
1322
1322
|
</tr>` : r}`;
|
|
1323
1323
|
})}
|
|
1324
1324
|
<!-- Empty rows with the same two lines per cell keep a short last page as tall as a full one. -->
|
|
1325
|
-
${t > 1 ? Array.from({ length: G - e.length }, () =>
|
|
1325
|
+
${t > 1 ? Array.from({ length: G - e.length }, () => m`<tr
|
|
1326
1326
|
class="lintje-data-table__mobile-row lintje-data-table__mobile-row--filler"
|
|
1327
1327
|
aria-hidden="true"
|
|
1328
1328
|
>
|
|
1329
1329
|
<td class="lintje-data-table__mobile-cell">
|
|
1330
1330
|
<span class="lintje-data-table__mobile-name"> </span>
|
|
1331
|
-
${this.hasSubline ?
|
|
1331
|
+
${this.hasSubline ? m`<span class="lintje-data-table__mobile-sub"> </span>` : r}
|
|
1332
1332
|
</td>
|
|
1333
1333
|
<td class="lintje-data-table__mobile-cell" colspan=${y - 1}>
|
|
1334
1334
|
<span class="lintje-data-table__mobile-measure"> </span>
|
|
1335
|
-
${
|
|
1335
|
+
${u.threshold ? m`<span class="lintje-data-table__mobile-status"> </span>` : r}
|
|
1336
1336
|
</td>
|
|
1337
1337
|
</tr>`) : r}
|
|
1338
1338
|
</tbody>
|
|
@@ -1345,10 +1345,10 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
1345
1345
|
e.target === e.currentTarget && (e.key === "Enter" || e.key === " ") && (e.preventDefault(), this.emit("lintje-row-click", this.rowDetail(t)));
|
|
1346
1346
|
}
|
|
1347
1347
|
pager(e, t, n, r, i, a) {
|
|
1348
|
-
let
|
|
1349
|
-
return
|
|
1348
|
+
let o = this.data?.caption;
|
|
1349
|
+
return m`<lintje-pagination
|
|
1350
1350
|
class="lintje-data-table__pagination lintje-data-table__pagination--${e}"
|
|
1351
|
-
label=${
|
|
1351
|
+
label=${o ? `Paginering ${o}` : "Paginering"}
|
|
1352
1352
|
.page=${t + 1}
|
|
1353
1353
|
.pageCount=${n}
|
|
1354
1354
|
.pageSize=${r}
|
|
@@ -1361,7 +1361,7 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
1361
1361
|
></lintje-pagination>`;
|
|
1362
1362
|
}
|
|
1363
1363
|
opener(e, t) {
|
|
1364
|
-
return this.data?.openable ?
|
|
1364
|
+
return this.data?.openable ? m`<button
|
|
1365
1365
|
type="button"
|
|
1366
1366
|
class="lintje-data-table__open"
|
|
1367
1367
|
@click=${(t) => {
|
|
@@ -1372,10 +1372,10 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
1372
1372
|
</button>` : t;
|
|
1373
1373
|
}
|
|
1374
1374
|
cell(e, t) {
|
|
1375
|
-
if (t === 0 && e.zeroText != null) return
|
|
1375
|
+
if (t === 0 && e.zeroText != null) return m`<span class="lintje-data-table__muted">${e.zeroText}</span>`;
|
|
1376
1376
|
if (e.format === "status" && t != null) {
|
|
1377
1377
|
let n = pe(e, String(t));
|
|
1378
|
-
if (n) return
|
|
1378
|
+
if (n) return m`<lintje-status-dot
|
|
1379
1379
|
tone=${n}
|
|
1380
1380
|
label=${e.status?.labels?.[String(t)] ?? r}
|
|
1381
1381
|
></lintje-status-dot>`;
|
|
@@ -1384,11 +1384,11 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
1384
1384
|
if (n == null) return Z;
|
|
1385
1385
|
if ((e.format === "change" || e.format === "change-compact") && typeof t == "number") {
|
|
1386
1386
|
let r = t === 0 ? "flat" : t > 0 ? "up" : "down";
|
|
1387
|
-
return e.format === "change-compact" ?
|
|
1387
|
+
return e.format === "change-compact" ? m`<span
|
|
1388
1388
|
class="lintje-data-table__change lintje-data-table__change--${r}"
|
|
1389
1389
|
aria-hidden="true"
|
|
1390
1390
|
>${t > 0 ? "▲" : t < 0 ? "▼" : "●"}</span
|
|
1391
|
-
><span class="visually-hidden">${n}</span>` :
|
|
1391
|
+
><span class="visually-hidden">${n}</span>` : m`<span class="lintje-data-table__change lintje-data-table__change--${r}">${n}</span>`;
|
|
1392
1392
|
}
|
|
1393
1393
|
let i = Y(e, t);
|
|
1394
1394
|
if (!i) return n;
|
|
@@ -1396,13 +1396,13 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
1396
1396
|
size: 14,
|
|
1397
1397
|
className: "lintje-threshold-cell__icon"
|
|
1398
1398
|
});
|
|
1399
|
-
return
|
|
1399
|
+
return m`<span class="lintje-threshold-cell lintje-threshold-cell--${i.tone}"
|
|
1400
1400
|
>${a}${n}<span class="visually-hidden"> · ${i.label}</span></span
|
|
1401
1401
|
>`;
|
|
1402
1402
|
}
|
|
1403
1403
|
truncatedCell(e, t) {
|
|
1404
1404
|
let n = X(e, t);
|
|
1405
|
-
return n == null ? Z :
|
|
1405
|
+
return n == null ? Z : m`<span class="lintje-data-table__cell-text" aria-hidden="true" title=${n}
|
|
1406
1406
|
>${this.cell(e, t)}</span
|
|
1407
1407
|
><span class="visually-hidden">${n}</span>`;
|
|
1408
1408
|
}
|
|
@@ -1417,7 +1417,7 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
1417
1417
|
return t ? n = t.replace(/\{(\w+)\}/g, (t, n) => {
|
|
1418
1418
|
let r = this.columns.find((e) => e.key === n), i = e[n];
|
|
1419
1419
|
return (r ? J(r, i) : i == null ? null : String(i)) ?? "—";
|
|
1420
|
-
}) : this.sublineColumns.length > 0 && (n = this.sublineColumns.map((t) => J(t, e[t.key]) ?? "—").join(" · ")), n == null ? r :
|
|
1420
|
+
}) : this.sublineColumns.length > 0 && (n = this.sublineColumns.map((t) => J(t, e[t.key]) ?? "—").join(" · ")), n == null ? r : m`<span class="lintje-data-table__mobile-sub">${n}</span>`;
|
|
1421
1421
|
}
|
|
1422
1422
|
mobileStatus(e, t) {
|
|
1423
1423
|
if (!e.threshold) return null;
|
|
@@ -1429,11 +1429,11 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
1429
1429
|
}
|
|
1430
1430
|
headerCheck() {
|
|
1431
1431
|
let e = this.uncheckable, t = this.rows.filter((t) => !e.has(this.rowKey(t))), n = new Set(this.checkedIds), r = t.filter((e) => n.has(this.rowKey(e))).length;
|
|
1432
|
-
return this.checkbox(
|
|
1432
|
+
return this.checkbox(m`<span class="visually-hidden">Alles selecteren</span>`, t.length > 0 && r === t.length, r > 0, (e) => this.setChecked(e ? t.map((e) => this.rowKey(e)) : []));
|
|
1433
1433
|
}
|
|
1434
1434
|
rowCheck(e, t, n) {
|
|
1435
1435
|
let r = this.columns[0], i = r ? this.sortValue(r, e) : t;
|
|
1436
|
-
return this.checkbox(
|
|
1436
|
+
return this.checkbox(m`<span class="visually-hidden">${`${i} selecteren`}</span>`, n, !1, (e) => {
|
|
1437
1437
|
let n = this.checkedIds.filter((e) => e !== t);
|
|
1438
1438
|
if (e && this.#f && this.data?.bulkActions) {
|
|
1439
1439
|
let e = this.uncheckable, n = this.sortedRows.map((e) => this.rowKey(e)).filter((t) => !e.has(t));
|
|
@@ -1443,7 +1443,7 @@ var me = (e) => `${e} ${e === 1 ? "rij" : "rijen"}`, Z = o`<span aria-hidden="tr
|
|
|
1443
1443
|
}, this.uncheckable.has(t));
|
|
1444
1444
|
}
|
|
1445
1445
|
checkbox(e, t, n, r, i = !1) {
|
|
1446
|
-
return
|
|
1446
|
+
return m`<label class="lintje-choice${i ? " is-disabled" : ""}">
|
|
1447
1447
|
<input
|
|
1448
1448
|
type="checkbox"
|
|
1449
1449
|
class="lintje-choice__input"
|