@rws-aoa/react-library 9.1.0 → 9.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.
Files changed (42) hide show
  1. package/dist/chunks/createTheme.edEUUU41.js +1761 -0
  2. package/dist/chunks/createTheme.edEUUU41.js.map +1 -0
  3. package/dist/components-domain/ivon-project-planning/IvonProjectPlanning.d.ts.map +1 -1
  4. package/dist/components-domain/ivon-project-planning/IvonProjectPlanning.js +70 -30
  5. package/dist/components-domain/ivon-project-planning/IvonProjectPlanning.js.map +1 -1
  6. package/dist/components-domain/ivon-project-planning/_IvonDataGrid/IvonDataGrid.d.ts +4 -2
  7. package/dist/components-domain/ivon-project-planning/_IvonDataGrid/IvonDataGrid.d.ts.map +1 -1
  8. package/dist/components-domain/ivon-project-planning/_IvonDataGrid/IvonDataGrid.js +84 -72
  9. package/dist/components-domain/ivon-project-planning/_IvonDataGrid/IvonDataGrid.js.map +1 -1
  10. package/dist/components-domain/ivon-project-planning/_IvonHectometerView/IvonHectometerView.d.ts +8 -0
  11. package/dist/components-domain/ivon-project-planning/_IvonHectometerView/IvonHectometerView.d.ts.map +1 -0
  12. package/dist/components-domain/ivon-project-planning/_IvonHectometerView/IvonHectometerView.js +48 -0
  13. package/dist/components-domain/ivon-project-planning/_IvonHectometerView/IvonHectometerView.js.map +1 -0
  14. package/dist/components-domain/ivon-project-planning/_IvonPopup/IvonDeklaagPopup.d.ts +9 -0
  15. package/dist/components-domain/ivon-project-planning/_IvonPopup/IvonDeklaagPopup.d.ts.map +1 -0
  16. package/dist/components-domain/ivon-project-planning/_IvonPopup/IvonDeklaagPopup.js +231 -0
  17. package/dist/components-domain/ivon-project-planning/_IvonPopup/IvonDeklaagPopup.js.map +1 -0
  18. package/dist/components-domain/ivon-project-planning/_IvonProjectPlanningView/IvonProjectPlanningView.d.ts.map +1 -1
  19. package/dist/components-domain/ivon-project-planning/_IvonProjectPlanningView/IvonProjectPlanningView.js +52 -71
  20. package/dist/components-domain/ivon-project-planning/_IvonProjectPlanningView/IvonProjectPlanningView.js.map +1 -1
  21. package/dist/components-domain/ivon-project-planning/_IvonSchematicView/IvonSchematicView.d.ts +1 -1
  22. package/dist/components-domain/ivon-project-planning/_IvonSchematicView/IvonSchematicView.d.ts.map +1 -1
  23. package/dist/components-domain/ivon-project-planning/_IvonSchematicView/IvonSchematicView.js +42 -49
  24. package/dist/components-domain/ivon-project-planning/_IvonSchematicView/IvonSchematicView.js.map +1 -1
  25. package/dist/components-domain/ivon-project-planning/_dummy-data/{ivon3-data.json.d.ts → ivon3-test-data.json.d.ts} +46 -8
  26. package/dist/components-domain/ivon-project-planning/_helpers/IvonDataBridge.d.ts +4 -1
  27. package/dist/components-domain/ivon-project-planning/_helpers/IvonDataBridge.d.ts.map +1 -1
  28. package/dist/components-domain/ivon-project-planning/_helpers/IvonDataBridge.js +14 -5
  29. package/dist/components-domain/ivon-project-planning/_helpers/IvonDataBridge.js.map +1 -1
  30. package/dist/components-domain/ivon-project-planning/_helpers/IvonUtility.d.ts +3 -0
  31. package/dist/components-domain/ivon-project-planning/_helpers/IvonUtility.d.ts.map +1 -1
  32. package/dist/components-domain/ivon-project-planning/_helpers/IvonUtility.js +11 -2
  33. package/dist/components-domain/ivon-project-planning/_helpers/IvonUtility.js.map +1 -1
  34. package/dist/components-domain/ivon-project-planning/_types/ivon-types.d.ts +8 -1
  35. package/dist/components-domain/ivon-project-planning/_types/ivon-types.d.ts.map +1 -1
  36. package/dist/components-generic/atoms/table/Table.d.ts +5 -1
  37. package/dist/components-generic/atoms/table/Table.d.ts.map +1 -1
  38. package/dist/components-generic/atoms/table/Table.js +49 -31
  39. package/dist/components-generic/atoms/table/Table.js.map +1 -1
  40. package/dist/components-generic/atoms/table/_QuickSearchToolbar.js +853 -2594
  41. package/dist/components-generic/atoms/table/_QuickSearchToolbar.js.map +1 -1
  42. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components-generic/atoms/table/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,iBAAiB,EAEtB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EAGvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAgC,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAI/D,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB;IAC3E;;;OAGG;IACH,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;AAEtE,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,iBAAiB,GAAG,OAAO,CAAC,CAAC;AAEtH,KAAK,SAAS;AACZ;;GAEG;AACD;IAAE,OAAO,CAAC,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE;AACrC;;GAEG;GACD;IAAE,OAAO,CAAC,YAAY,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE3F,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,IAAI,SAAS,GAAG;IAC9D;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IACvC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,wBAAwB,CAAC,EAAE,IAAI,CACtC,aAAa,CAAC,CAAC,CAAC,EACd,QAAQ,GACR,mBAAmB,GACnB,qBAAqB,GACrB,4BAA4B,GAC5B,UAAU,GACV,kBAAkB,GAClB,iBAAiB,GACjB,SAAS,GACT,2BAA2B,GAC3B,mBAAmB,CACtB,CAAC;IACF;;OAEG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,iBAAiB,GAAG,OAAO,CAAC,CAAC;IAClH;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,GAAG;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;GAYG;AAEH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,2CAiP9E"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components-generic/atoms/table/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,iBAAiB,EAEtB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EAGvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAgC,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAI/D,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB;IAC3E;;;OAGG;IACH,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;AAEtE,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,iBAAiB,GAAG,OAAO,CAAC,CAAC;AAEtH,KAAK,SAAS;AACZ;;GAEG;AACD;IAAE,OAAO,CAAC,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE;AACrC;;GAEG;GACD;IAAE,OAAO,CAAC,YAAY,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE3F,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,IAAI,SAAS,GAAG;IAC9D;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IACvC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,wBAAwB,CAAC,EAAE,IAAI,CACtC,aAAa,CAAC,CAAC,CAAC,EACd,QAAQ,GACR,mBAAmB,GACnB,qBAAqB,GACrB,mBAAmB,GACnB,4BAA4B,GAC5B,UAAU,GACV,kBAAkB,GAClB,iBAAiB,GACjB,SAAS,GACT,2BAA2B,GAC3B,mBAAmB,GACnB,qBAAqB,GACrB,aAAa,GACb,qBAAqB,GACrB,kBAAkB,GAClB,cAAc,GACd,gBAAgB,CACnB,CAAC;IAEF;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,iBAAiB,GAAG,OAAO,CAAC,CAAC;IAClH;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,GAAG;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;GAYG;AAEH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,2CAmQ9E"}
@@ -1,40 +1,40 @@
1
- import { jsx as F } from "react/jsx-runtime";
2
- import { checkboxClasses as m, paginationItemClasses as D } from "@mui/material";
3
- import { GridLogicOperator as f, DataGrid as G, gridClasses as t } from "@mui/x-data-grid";
4
- import { l as p } from "../../../chunks/lodash.CdkV4gpV.js";
5
- import { useState as a, useEffect as v, useMemo as L } from "react";
6
- import { FontNormalSxProps as O } from "../../../_constants.js";
7
- import { QuickSearchToolbar as R } from "./_QuickSearchToolbar.js";
8
- function z({
1
+ import { jsx as $ } from "react/jsx-runtime";
2
+ import { checkboxClasses as p, paginationItemClasses as P } from "@mui/material";
3
+ import { GridLogicOperator as m, DataGrid as D, gridClasses as t } from "@mui/x-data-grid";
4
+ import { l as b } from "../../../chunks/lodash.CdkV4gpV.js";
5
+ import { useState as a, useEffect as v, useMemo as F } from "react";
6
+ import { FontNormalSxProps as G } from "../../../_constants.js";
7
+ import { QuickSearchToolbar as L } from "./_QuickSearchToolbar.js";
8
+ function q({
9
9
  ...e
10
10
  }) {
11
- const [k, d] = a(!1), [r, x] = a({
11
+ const [O, d] = a(!1), [r, k] = a({
12
12
  page: e.initialQueryOptions?.page ?? 0,
13
13
  pageSize: e.initialQueryOptions?.pageSize ?? 10
14
14
  }), [l, h] = a(e.initialQueryOptions?.sortModel ?? []), [i, C] = a(e.initialQueryOptions?.filterModel ?? {
15
15
  items: [],
16
- logicOperator: f.And,
17
- quickFilterLogicOperator: f.And,
16
+ logicOperator: m.And,
17
+ quickFilterLogicOperator: m.And,
18
18
  quickFilterValues: []
19
- }), [y, w] = a(null), [M, u] = a(e.data?.rowCount ?? 0), n = e.mode ?? "server", g = n === "server";
20
- async function b(o, s, c) {
19
+ }), [x, y] = a(null), [S, u] = a(e.data?.rowCount ?? 0), n = e.mode ?? "server", g = n === "server";
20
+ async function f(o, s, c) {
21
21
  if (g && e.getData) {
22
- const P = async () => {
22
+ const M = async () => {
23
23
  await e.getData({
24
24
  ...o,
25
25
  sortModel: s,
26
26
  filterModel: c
27
27
  });
28
28
  };
29
- d(!0), await P(), d(!1);
29
+ d(!0), await M(), d(!1);
30
30
  }
31
31
  }
32
32
  v(() => {
33
33
  u((o) => e.data?.rowCount ?? o);
34
34
  }, [e.data?.rowCount, u]), v(() => {
35
- b(r, l, i);
35
+ f(r, l, i);
36
36
  }, [r, l, i]);
37
- const S = L(() => ({
37
+ const w = F(() => ({
38
38
  pagination: {
39
39
  paginationModel: r,
40
40
  rowCount: 0
@@ -45,10 +45,29 @@ function z({
45
45
  filter: {
46
46
  filterModel: i
47
47
  }
48
- }), [r, l, i]), $ = p.merge({
48
+ }), [r, l, i]), I = b.merge({
49
49
  columnHeaderSortIconLabel: "Sorteren",
50
50
  filterPanelColumns: "Kolom",
51
51
  filterPanelInputLabel: "Zoekterm",
52
+ filterPanelOperator: "Criterium",
53
+ filterOperatorContains: "Bevat",
54
+ filterOperatorDoesNotContain: "Bevat niet",
55
+ filterOperatorEquals: "Is gelijk aan",
56
+ filterOperatorDoesNotEqual: "Is niet gelijk aan",
57
+ filterOperatorStartsWith: "Begint met",
58
+ filterOperatorEndsWith: "Eindigt met",
59
+ filterOperatorIs: "Is",
60
+ filterOperatorNot: "Is niet",
61
+ filterOperatorAfter: "Is na",
62
+ filterOperatorOnOrAfter: "Is op of na",
63
+ filterOperatorBefore: "Is voor",
64
+ filterOperatorOnOrBefore: "Is op of voor",
65
+ filterOperatorIsEmpty: "Is leeg",
66
+ filterOperatorIsNotEmpty: "Is niet leeg",
67
+ columnMenuSortAsc: "Sorteer oplopend",
68
+ columnMenuSortDesc: "Sorteer aflopend",
69
+ columnMenuFilter: "Filteren",
70
+ filterOperatorIsAnyOf: "Is een van",
52
71
  filterPanelInputPlaceholder: "Zoeken...",
53
72
  toolbarQuickFilterPlaceholder: "Zoeken...",
54
73
  toolbarQuickFilterLabel: "Zoeken",
@@ -77,13 +96,12 @@ function z({
77
96
  paginationRowsPerPage: "Regels per pagina",
78
97
  footerRowSelected: (o) => `${o} regels geselecteerd`
79
98
  }, e.localeText);
80
- return /* @__PURE__ */ F(G, { columns: e.columns, disableColumnFilter: !0, disableColumnMenu: !0, disableColumnSelector: !0, disableDensitySelector: !0, disableRowSelectionOnClick: !0, disableVirtualization: !0, filterMode: n, getRowHeight: () => "auto", ignoreDiacritics: !0, initialState: S, loading: k, localeText: $, onFilterModelChange: (o) => C(o), onPaginationModelChange: x, onSortModelChange: (o) => h(o), pageSizeOptions: [5, 10, 20, 40, 80], paginationMode: n, paginationModel: r, rowCount: g ? M : void 0, rows: e.data?.rows, showToolbar: !0, slotProps: {
99
+ return /* @__PURE__ */ $(D, { columns: e.columns, disableColumnFilter: !0, disableColumnMenu: !0, disableColumnSelector: !0, disableDensitySelector: !0, disableRowSelectionOnClick: !0, disableVirtualization: !0, filterMode: n, getRowHeight: () => "auto", ignoreDiacritics: !0, initialState: w, loading: O, localeText: I, onFilterModelChange: (o) => C(o), onPaginationModelChange: k, onSortModelChange: (o) => h(o), pageSizeOptions: [5, 10, 20, 40, 80], paginationMode: n, paginationModel: r, rowCount: g ? S : void 0, rows: e.data?.rows, showToolbar: !0, slotProps: {
81
100
  filterPanel: {
82
101
  filterFormProps: {
83
102
  operatorInputProps: {
84
- disabled: !0,
85
103
  sx: {
86
- display: "none"
104
+ display: e.showOperator ? "block" : "none"
87
105
  }
88
106
  },
89
107
  valueInputProps: {
@@ -94,16 +112,16 @@ function z({
94
112
  }
95
113
  },
96
114
  panel: {
97
- target: y
115
+ target: x
98
116
  },
99
117
  toolbar: {
100
- setFilterButtonEl: w,
118
+ setFilterButtonEl: y,
101
119
  showQuickFilter: e.dataGridOverridableProps?.disableColumnFilter === !1,
102
120
  quickFilterProps: {
103
121
  debounceMs: 500
104
122
  },
105
123
  mode: n,
106
- getData: async () => b(r, l, i),
124
+ getData: async () => f(r, l, i),
107
125
  actionButtons: e.actionButtons,
108
126
  localeText: e.localeText
109
127
  },
@@ -111,8 +129,8 @@ function z({
111
129
  "data-qa": e["data-qa"]
112
130
  }
113
131
  }, slots: {
114
- toolbar: R
115
- }, sortingMode: n, sx: p.merge({
132
+ toolbar: L
133
+ }, sortingMode: n, sx: b.merge({
116
134
  border: 0,
117
135
  color: "var(--color-text)",
118
136
  letterSpacing: "normal",
@@ -165,10 +183,10 @@ function z({
165
183
  [`.${t.cell}`]: {
166
184
  color: "var(--color-text)"
167
185
  },
168
- [`.${D.root}`]: {
186
+ [`.${P.root}`]: {
169
187
  borderRadius: 0
170
188
  },
171
- [`.${m.root}`]: {
189
+ [`.${p.root}`]: {
172
190
  color: "var(--color-primary)",
173
191
  ":focus": {
174
192
  outline: "2px dashed var(--color-text)",
@@ -179,12 +197,12 @@ function z({
179
197
  color: "var(--color-disabled)"
180
198
  }
181
199
  },
182
- [`.${t.columnHeader} .${m.root}`]: {
200
+ [`.${t.columnHeader} .${p.root}`]: {
183
201
  color: "white"
184
202
  }
185
- }, e.sx, O), ...e.dataGridOverridableProps });
203
+ }, e.sx, G), ...e.dataGridOverridableProps });
186
204
  }
187
205
  export {
188
- z as AoaTable
206
+ q as AoaTable
189
207
  };
190
208
  //# sourceMappingURL=Table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sources":["../../../../src/components-generic/atoms/table/Table.tsx"],"sourcesContent":["import { checkboxClasses, paginationItemClasses, type SxProps } from '@mui/material';\nimport {\n GridLogicOperator,\n DataGrid,\n gridClasses,\n type DataGridProps,\n type GridColDef,\n type GridGetRowsParams,\n type GridInitialState,\n type GridLocaleText,\n type GridPaginationModel,\n type GridRowModel,\n type GridValidRowModel,\n type GridSortModel,\n type GridFilterModel\n} from '@mui/x-data-grid';\nimport { merge } from 'lodash';\nimport { useEffect, useMemo, useState, type JSX } from 'react';\nimport { FontNormalSxProps } from '../../../_constants';\nimport { QuickSearchToolbar } from './_QuickSearchToolbar';\n\nexport interface AoaTableData<T extends GridValidRowModel = GridValidRowModel> {\n /**\n * Additional `pageInfo` for advanced use-cases.\n * `hasNextPage`: When row count is unknown/estimated, `hasNextPage` will be used to check if more records are available on server.\n */\n pageInfo?: {\n hasNextPage?: boolean;\n nextCursor?: string;\n };\n /**\n * To reflect updates in total `rowCount` (optional).\n * Useful when the `rowCount` is inaccurate (for example when filtering) or not available upfront.\n */\n rowCount?: number;\n /**\n * The paged, filtered and sorted items from the database\n */\n rows: GridRowModel<T>[];\n}\n\nexport type AoaTableColumns<T extends object = any> = GridColDef<T>[];\n\nexport type AoaTableQueryOptions = GridPaginationModel & Omit<GridGetRowsParams, 'end' | 'paginationModel' | 'start'>;\n\ntype ModeProps =\n /**\n * Overwrites the default mode (server) when you need pagination, filtering and sorting on the client side\n */\n | { getData?: never; mode: 'client' }\n /**\n * The Redux action that takes PaginationModel as parameter to retrieve data from the server\n */\n | { getData(queryOptions: AoaTableQueryOptions): Promise<void> | void; mode?: 'server' };\n\nexport type AoaTableProps<T extends object = any> = ModeProps & {\n /**\n * Action buttons shown in the toolbar of the table\n */\n readonly actionButtons?: JSX.Element[];\n /**\n * The column structure to display the data\n */\n readonly columns: GridColDef<T>[];\n /**\n * The TableData object to be displayed in the table\n */\n readonly data: AoaTableData<T>;\n /**\n * Data-qa tag for E2E test purposes\n */\n readonly 'data-qa'?: string;\n /**\n * Overwrite a safe selection of the {@link DataGrid} properties\n */\n readonly dataGridOverridableProps?: Pick<\n DataGridProps<T>,\n | 'apiRef'\n | 'checkboxSelection'\n | 'disableColumnFilter'\n | 'disableRowSelectionOnClick'\n | 'getRowId'\n | 'ignoreDiacritics'\n | 'isRowSelectable'\n | 'loading'\n | 'onRowSelectionModelChange'\n | 'rowSelectionModel'\n >;\n /**\n * Sets the initial query options to retain query details after opening a page and returning to the table\n */\n readonly initialQueryOptions?: GridPaginationModel & Omit<GridGetRowsParams, 'end' | 'paginationModel' | 'start'>;\n /**\n * Overwrites the default labels when you need a different language than Dutch\n */\n readonly localeText?: GridLocaleText & { refreshTable: string };\n /**\n * Material UI's property to apply styling\n */\n readonly sx?: SxProps;\n};\n\n/**\n * Constructs a table using pre-defined Rijks styling\n *\n * @param props - Props to pass to the button\n * @example\n * ```jsx\n * <AoaTable\n * getData={(queryOptions) => getMockData(queryOptions)}\n * data={mockData}\n * columns={[{ field: \"id\" }, { field: \"title\" }, { field: \"completed\" }]}\n * />\n * ```\n */\n\nexport function AoaTable<T extends object = any>({ ...props }: AoaTableProps<T>) {\n const [isLoading, setIsLoading] = useState(false);\n const [paginationModel, setPaginationModel] = useState<GridPaginationModel>({\n page: props.initialQueryOptions?.page ?? 0,\n pageSize: props.initialQueryOptions?.pageSize ?? 10\n });\n const [sortModel, setSortModel] = useState<GridSortModel>(props.initialQueryOptions?.sortModel ?? []);\n const [filterModel, setFilterModel] = useState<GridFilterModel>(\n props.initialQueryOptions?.filterModel ?? {\n items: [],\n logicOperator: GridLogicOperator.And,\n quickFilterLogicOperator: GridLogicOperator.And,\n quickFilterValues: []\n }\n );\n const [filterButtonEl, setFilterButtonEl] = useState<HTMLButtonElement | null>(null);\n\n const [rowCountState, setRowCountState] = useState(props.data?.rowCount ?? 0);\n\n const mode = props.mode ?? 'server';\n const isServerMode = mode === 'server';\n\n async function getData(paginationModel: GridPaginationModel, sortModel: GridSortModel, filterModel: GridFilterModel) {\n if (isServerMode && props.getData) {\n const fetchData = async () => {\n await props.getData({ ...paginationModel, sortModel, filterModel });\n };\n\n setIsLoading(true);\n await fetchData();\n setIsLoading(false);\n }\n }\n\n useEffect(() => {\n setRowCountState((prevRowCountState) => props.data?.rowCount ?? prevRowCountState);\n }, [props.data?.rowCount, setRowCountState]);\n\n useEffect(() => {\n void getData(paginationModel, sortModel, filterModel);\n // ESLint tells us here that we should add the `getData` function, however,\n // doing so will cause the fetching to loop infinity until the JavaScript heap overflows.\n // eslint-disable-next-line react-compiler/react-compiler\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [paginationModel, sortModel, filterModel]);\n\n const initialState: GridInitialState = useMemo(\n () => ({\n pagination: {\n paginationModel,\n rowCount: 0\n },\n sorting: {\n sortModel\n },\n filter: {\n filterModel\n }\n }),\n [paginationModel, sortModel, filterModel]\n );\n\n const mergedLocaleText = merge<Partial<GridLocaleText & { refreshTable: string }>, (GridLocaleText & { refreshTable: string }) | undefined>(\n {\n columnHeaderSortIconLabel: 'Sorteren',\n filterPanelColumns: 'Kolom',\n filterPanelInputLabel: 'Zoekterm',\n filterPanelInputPlaceholder: 'Zoeken...',\n toolbarQuickFilterPlaceholder: 'Zoeken...',\n toolbarQuickFilterLabel: 'Zoeken',\n toolbarQuickFilterDeleteIconLabel: 'Wissen',\n noRowsLabel: 'Geen regels beschikbaar',\n noResultsOverlayLabel: 'Geen regels gevonden.',\n paginationItemAriaLabel: (type) => {\n switch (type) {\n /* v8 ignore start */\n case 'first':\n return 'Ga naar eerste pagina';\n case 'last':\n return 'Ga naar laatste pagina';\n /* v8 ignore stop */\n case 'next':\n return 'Ga naar volgende pagina';\n case 'previous':\n return 'Ga naar vorige pagina';\n }\n },\n paginationDisplayedRows: ({ from, to, count }) => `${from} - ${to} van ${count}`,\n paginationRowsPerPage: 'Regels per pagina',\n footerRowSelected: (count) => `${count} regels geselecteerd`\n },\n props.localeText\n );\n\n return (\n <DataGrid\n columns={props.columns}\n disableColumnFilter\n disableColumnMenu\n disableColumnSelector\n disableDensitySelector\n disableRowSelectionOnClick\n disableVirtualization\n filterMode={mode}\n getRowHeight={() => 'auto'}\n ignoreDiacritics\n initialState={initialState}\n loading={isLoading}\n localeText={mergedLocaleText}\n onFilterModelChange={(filterModel) => setFilterModel(filterModel)}\n onPaginationModelChange={setPaginationModel}\n onSortModelChange={(sortModel) => setSortModel(sortModel)}\n pageSizeOptions={[5, 10, 20, 40, 80]}\n paginationMode={mode}\n paginationModel={paginationModel}\n rowCount={isServerMode ? rowCountState : undefined}\n rows={props.data?.rows}\n showToolbar\n slotProps={{\n filterPanel: {\n filterFormProps: {\n operatorInputProps: {\n disabled: true,\n sx: { display: 'none' }\n },\n valueInputProps: {\n sx: {\n marginLeft: '15px'\n }\n }\n }\n },\n panel: {\n target: filterButtonEl\n },\n toolbar: {\n setFilterButtonEl,\n showQuickFilter: props.dataGridOverridableProps?.disableColumnFilter === false,\n quickFilterProps: { debounceMs: 500 },\n mode,\n getData: async () => getData(paginationModel, sortModel, filterModel),\n actionButtons: props.actionButtons,\n localeText: props.localeText\n },\n root: {\n 'data-qa': props['data-qa']\n }\n }}\n slots={{ toolbar: QuickSearchToolbar }}\n sortingMode={mode}\n sx={merge(\n {\n border: 0,\n color: 'var(--color-text)',\n letterSpacing: 'normal',\n minHeight: '300px',\n\n [`&.${gridClasses['root--densityCompact']}`]: {\n [`.${gridClasses.cell}`]: {\n py: '8px'\n }\n },\n [`&.${gridClasses['root--densityStandard']}`]: {\n [`.${gridClasses.cell}`]: {\n py: '15px'\n }\n },\n [`&.${gridClasses['root--densityComfortable']}`]: {\n [`.${gridClasses.cell}`]: {\n py: '22px'\n }\n },\n\n /**\n * The 'no results' message does not show if the DataGrid does not have a fixed height.\n * Because a fixed height is not desirable, we set a min-height on the DataGrid and set\n * the min-height of the virtualScroller to half of that height.\n */\n [`.${gridClasses.virtualScroller}`]: {\n minHeight: '150px',\n overflow: 'hidden',\n position: 'relative'\n },\n\n [`.${gridClasses.columnHeader}`]: {\n '--DataGrid-containerBackground': 'var(--color-rijks-skyblue)',\n '--DataGrid-t-header-background-base': 'transparent',\n backgroundColor: 'var(--color-rijks-skyblue)',\n color: 'var(--color-text-light)'\n },\n\n [`.${gridClasses.row}`]: {\n ':hover': {\n backgroundColor: 'var(--color-rijks-skyblue-light)'\n },\n\n ':nth-of-type(even)': {\n backgroundColor: 'var(--color-rijks-grey-1)',\n\n ':hover': {\n backgroundColor: 'var(--color-rijks-skyblue-light)'\n }\n }\n },\n\n [`.${gridClasses.columnHeader}, .${gridClasses.cell}, .MuiDataGrid-columnsContainer`]: {\n borderRight: '1px solid var(--color-rijks-grey-2)'\n },\n\n [`.${gridClasses.cell}`]: {\n color: 'var(--color-text)'\n },\n\n [`.${paginationItemClasses.root}`]: {\n borderRadius: 0\n },\n\n [`.${checkboxClasses.root}`]: {\n color: 'var(--color-primary)',\n\n ':focus': {\n outline: '2px dashed var(--color-text)',\n outlineOffset: '-9px',\n borderRadius: 0\n },\n\n ':disabled': {\n color: 'var(--color-disabled)'\n }\n },\n\n [`.${gridClasses.columnHeader} .${checkboxClasses.root}`]: {\n color: 'white'\n }\n },\n props.sx,\n FontNormalSxProps\n )}\n {...props.dataGridOverridableProps}\n />\n );\n}\n"],"names":["AoaTable","props","isLoading","setIsLoading","useState","paginationModel","setPaginationModel","page","initialQueryOptions","pageSize","sortModel","setSortModel","filterModel","setFilterModel","items","logicOperator","GridLogicOperator","And","quickFilterLogicOperator","quickFilterValues","filterButtonEl","setFilterButtonEl","rowCountState","setRowCountState","data","rowCount","mode","isServerMode","getData","fetchData","useEffect","prevRowCountState","initialState","useMemo","pagination","sorting","filter","mergedLocaleText","merge","columnHeaderSortIconLabel","filterPanelColumns","filterPanelInputLabel","filterPanelInputPlaceholder","toolbarQuickFilterPlaceholder","toolbarQuickFilterLabel","toolbarQuickFilterDeleteIconLabel","noRowsLabel","noResultsOverlayLabel","paginationItemAriaLabel","type","paginationDisplayedRows","from","to","count","paginationRowsPerPage","footerRowSelected","localeText","jsx","DataGrid","columns","undefined","rows","filterPanel","filterFormProps","operatorInputProps","disabled","sx","display","valueInputProps","marginLeft","panel","target","toolbar","showQuickFilter","dataGridOverridableProps","disableColumnFilter","quickFilterProps","debounceMs","actionButtons","root","QuickSearchToolbar","border","color","letterSpacing","minHeight","gridClasses","cell","py","virtualScroller","overflow","position","columnHeader","backgroundColor","row","borderRight","paginationItemClasses","borderRadius","checkboxClasses","outline","outlineOffset","FontNormalSxProps"],"mappings":";;;;;;;AAoHO,SAASA,EAAiC;AAAA,EAAE,GAAGC;AAAwB,GAAG;AAC/E,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAK,GAC1C,CAACC,GAAiBC,CAAkB,IAAIF,EAA8B;AAAA,IAC1EG,MAAMN,EAAMO,qBAAqBD,QAAQ;AAAA,IACzCE,UAAUR,EAAMO,qBAAqBC,YAAY;AAAA,EAAA,CAClD,GACK,CAACC,GAAWC,CAAY,IAAIP,EAAwBH,EAAMO,qBAAqBE,aAAa,EAAE,GAC9F,CAACE,GAAaC,CAAc,IAAIT,EACpCH,EAAMO,qBAAqBI,eAAe;AAAA,IACxCE,OAAO,CAAA;AAAA,IACPC,eAAeC,EAAkBC;AAAAA,IACjCC,0BAA0BF,EAAkBC;AAAAA,IAC5CE,mBAAmB,CAAA;AAAA,EAAA,CAEvB,GACM,CAACC,GAAgBC,CAAiB,IAAIjB,EAAmC,IAAI,GAE7E,CAACkB,GAAeC,CAAgB,IAAInB,EAASH,EAAMuB,MAAMC,YAAY,CAAC,GAEtEC,IAAOzB,EAAMyB,QAAQ,UACrBC,IAAeD,MAAS;AAE9B,iBAAeE,EAAQvB,GAAsCK,GAA0BE,GAA8B;AACnH,QAAIe,KAAgB1B,EAAM2B,SAAS;AACjC,YAAMC,IAAY,YAAY;AAC5B,cAAM5B,EAAM2B,QAAQ;AAAA,UAAE,GAAGvB;AAAAA,UAAiBK,WAAAA;AAAAA,UAAWE,aAAAA;AAAAA,QAAAA,CAAa;AAAA,MACpE;AAEAT,MAAAA,EAAa,EAAI,GACjB,MAAM0B,EAAAA,GACN1B,EAAa,EAAK;AAAA,IACpB;AAAA,EACF;AAEA2B,EAAAA,EAAU,MAAM;AACdP,IAAAA,EAAkBQ,CAAAA,MAAsB9B,EAAMuB,MAAMC,YAAYM,CAAiB;AAAA,EACnF,GAAG,CAAC9B,EAAMuB,MAAMC,UAAUF,CAAgB,CAAC,GAE3CO,EAAU,MAAM;AACd,IAAKF,EAAQvB,GAAiBK,GAAWE,CAAW;AAAA,EAKtD,GAAG,CAACP,GAAiBK,GAAWE,CAAW,CAAC;AAE5C,QAAMoB,IAAiCC,EACrC,OAAO;AAAA,IACLC,YAAY;AAAA,MACV7B,iBAAAA;AAAAA,MACAoB,UAAU;AAAA,IAAA;AAAA,IAEZU,SAAS;AAAA,MACPzB,WAAAA;AAAAA,IAAAA;AAAAA,IAEF0B,QAAQ;AAAA,MACNxB,aAAAA;AAAAA,IAAAA;AAAAA,EACF,IAEF,CAACP,GAAiBK,GAAWE,CAAW,CAC1C,GAEMyB,IAAmBC,EAAAA,MACvB;AAAA,IACEC,2BAA2B;AAAA,IAC3BC,oBAAoB;AAAA,IACpBC,uBAAuB;AAAA,IACvBC,6BAA6B;AAAA,IAC7BC,+BAA+B;AAAA,IAC/BC,yBAAyB;AAAA,IACzBC,mCAAmC;AAAA,IACnCC,aAAa;AAAA,IACbC,uBAAuB;AAAA,IACvBC,yBAA0BC,CAAAA,MAAS;AACjC,cAAQA,GAAAA;AAAAA;AAAAA,QAEN,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA;AAAA,QAET,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,MAAA;AAAA,IAEb;AAAA,IACAC,yBAAyBA,CAAC;AAAA,MAAEC,MAAAA;AAAAA,MAAMC,IAAAA;AAAAA,MAAIC,OAAAA;AAAAA,IAAAA,MAAY,GAAGF,CAAI,MAAMC,CAAE,QAAQC,CAAK;AAAA,IAC9EC,uBAAuB;AAAA,IACvBC,mBAAoBF,CAAAA,MAAU,GAAGA,CAAK;AAAA,EAAA,GAExCpD,EAAMuD,UACR;AAEA,SACE,gBAAAC,EAACC,GAAA,EACC,SAASzD,EAAM0D,SACf,qBAAmB,IACnB,mBAAiB,IACjB,uBAAqB,IACrB,wBAAsB,IACtB,4BAA0B,IAC1B,uBAAqB,IACrB,YAAYjC,GACZ,cAAc,MAAM,QACpB,kBAAgB,IAChB,cAAAM,GACA,SAAS9B,GACT,YAAYmC,GACZ,qBAAsBzB,CAAAA,MAAgBC,EAAeD,CAAW,GAChE,yBAAyBN,GACzB,mBAAoBI,CAAAA,MAAcC,EAAaD,CAAS,GACxD,iBAAiB,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,GACnC,gBAAgBgB,GAChB,iBAAArB,GACA,UAAUsB,IAAeL,IAAgBsC,QACzC,MAAM3D,EAAMuB,MAAMqC,MAClB,aAAW,IACX,WAAW;AAAA,IACTC,aAAa;AAAA,MACXC,iBAAiB;AAAA,QACfC,oBAAoB;AAAA,UAClBC,UAAU;AAAA,UACVC,IAAI;AAAA,YAAEC,SAAS;AAAA,UAAA;AAAA,QAAO;AAAA,QAExBC,iBAAiB;AAAA,UACfF,IAAI;AAAA,YACFG,YAAY;AAAA,UAAA;AAAA,QACd;AAAA,MACF;AAAA,IACF;AAAA,IAEFC,OAAO;AAAA,MACLC,QAAQnD;AAAAA,IAAAA;AAAAA,IAEVoD,SAAS;AAAA,MACPnD,mBAAAA;AAAAA,MACAoD,iBAAiBxE,EAAMyE,0BAA0BC,wBAAwB;AAAA,MACzEC,kBAAkB;AAAA,QAAEC,YAAY;AAAA,MAAA;AAAA,MAChCnD,MAAAA;AAAAA,MACAE,SAAS,YAAYA,EAAQvB,GAAiBK,GAAWE,CAAW;AAAA,MACpEkE,eAAe7E,EAAM6E;AAAAA,MACrBtB,YAAYvD,EAAMuD;AAAAA,IAAAA;AAAAA,IAEpBuB,MAAM;AAAA,MACJ,WAAW9E,EAAM,SAAS;AAAA,IAAA;AAAA,EAC5B,GAEF,OAAO;AAAA,IAAEuE,SAASQ;AAAAA,EAAAA,GAClB,aAAatD,GACb,IAAIY,QACF;AAAA,IACE2C,QAAQ;AAAA,IACRC,OAAO;AAAA,IACPC,eAAe;AAAA,IACfC,WAAW;AAAA,IAEX,CAAC,KAAKC,EAAY,sBAAsB,CAAC,EAAE,GAAG;AAAA,MAC5C,CAAC,IAAIA,EAAYC,IAAI,EAAE,GAAG;AAAA,QACxBC,IAAI;AAAA,MAAA;AAAA,IACN;AAAA,IAEF,CAAC,KAAKF,EAAY,uBAAuB,CAAC,EAAE,GAAG;AAAA,MAC7C,CAAC,IAAIA,EAAYC,IAAI,EAAE,GAAG;AAAA,QACxBC,IAAI;AAAA,MAAA;AAAA,IACN;AAAA,IAEF,CAAC,KAAKF,EAAY,0BAA0B,CAAC,EAAE,GAAG;AAAA,MAChD,CAAC,IAAIA,EAAYC,IAAI,EAAE,GAAG;AAAA,QACxBC,IAAI;AAAA,MAAA;AAAA,IACN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQF,CAAC,IAAIF,EAAYG,eAAe,EAAE,GAAG;AAAA,MACnCJ,WAAW;AAAA,MACXK,UAAU;AAAA,MACVC,UAAU;AAAA,IAAA;AAAA,IAGZ,CAAC,IAAIL,EAAYM,YAAY,EAAE,GAAG;AAAA,MAChC,kCAAkC;AAAA,MAClC,uCAAuC;AAAA,MACvCC,iBAAiB;AAAA,MACjBV,OAAO;AAAA,IAAA;AAAA,IAGT,CAAC,IAAIG,EAAYQ,GAAG,EAAE,GAAG;AAAA,MACvB,UAAU;AAAA,QACRD,iBAAiB;AAAA,MAAA;AAAA,MAGnB,sBAAsB;AAAA,QACpBA,iBAAiB;AAAA,QAEjB,UAAU;AAAA,UACRA,iBAAiB;AAAA,QAAA;AAAA,MACnB;AAAA,IACF;AAAA,IAGF,CAAC,IAAIP,EAAYM,YAAY,MAAMN,EAAYC,IAAI,iCAAiC,GAAG;AAAA,MACrFQ,aAAa;AAAA,IAAA;AAAA,IAGf,CAAC,IAAIT,EAAYC,IAAI,EAAE,GAAG;AAAA,MACxBJ,OAAO;AAAA,IAAA;AAAA,IAGT,CAAC,IAAIa,EAAsBhB,IAAI,EAAE,GAAG;AAAA,MAClCiB,cAAc;AAAA,IAAA;AAAA,IAGhB,CAAC,IAAIC,EAAgBlB,IAAI,EAAE,GAAG;AAAA,MAC5BG,OAAO;AAAA,MAEP,UAAU;AAAA,QACRgB,SAAS;AAAA,QACTC,eAAe;AAAA,QACfH,cAAc;AAAA,MAAA;AAAA,MAGhB,aAAa;AAAA,QACXd,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,CAAC,IAAIG,EAAYM,YAAY,KAAKM,EAAgBlB,IAAI,EAAE,GAAG;AAAA,MACzDG,OAAO;AAAA,IAAA;AAAA,EACT,GAEFjF,EAAMiE,IACNkC,CACF,GACA,GAAInG,EAAMyE,0BAAyB;AAGzC;"}
1
+ {"version":3,"file":"Table.js","sources":["../../../../src/components-generic/atoms/table/Table.tsx"],"sourcesContent":["import { checkboxClasses, paginationItemClasses, type SxProps } from '@mui/material';\nimport {\n GridLogicOperator,\n DataGrid,\n gridClasses,\n type DataGridProps,\n type GridColDef,\n type GridGetRowsParams,\n type GridInitialState,\n type GridLocaleText,\n type GridPaginationModel,\n type GridRowModel,\n type GridValidRowModel,\n type GridSortModel,\n type GridFilterModel\n} from '@mui/x-data-grid';\nimport { merge } from 'lodash';\nimport { useEffect, useMemo, useState, type JSX } from 'react';\nimport { FontNormalSxProps } from '../../../_constants';\nimport { QuickSearchToolbar } from './_QuickSearchToolbar';\n\nexport interface AoaTableData<T extends GridValidRowModel = GridValidRowModel> {\n /**\n * Additional `pageInfo` for advanced use-cases.\n * `hasNextPage`: When row count is unknown/estimated, `hasNextPage` will be used to check if more records are available on server.\n */\n pageInfo?: {\n hasNextPage?: boolean;\n nextCursor?: string;\n };\n /**\n * To reflect updates in total `rowCount` (optional).\n * Useful when the `rowCount` is inaccurate (for example when filtering) or not available upfront.\n */\n rowCount?: number;\n /**\n * The paged, filtered and sorted items from the database\n */\n rows: GridRowModel<T>[];\n}\n\nexport type AoaTableColumns<T extends object = any> = GridColDef<T>[];\n\nexport type AoaTableQueryOptions = GridPaginationModel & Omit<GridGetRowsParams, 'end' | 'paginationModel' | 'start'>;\n\ntype ModeProps =\n /**\n * Overwrites the default mode (server) when you need pagination, filtering and sorting on the client side\n */\n | { getData?: never; mode: 'client' }\n /**\n * The Redux action that takes PaginationModel as parameter to retrieve data from the server\n */\n | { getData(queryOptions: AoaTableQueryOptions): Promise<void> | void; mode?: 'server' };\n\nexport type AoaTableProps<T extends object = any> = ModeProps & {\n /**\n * Action buttons shown in the toolbar of the table\n */\n readonly actionButtons?: JSX.Element[];\n /**\n * The column structure to display the data\n */\n readonly columns: GridColDef<T>[];\n /**\n * The TableData object to be displayed in the table\n */\n readonly data: AoaTableData<T>;\n /**\n * Data-qa tag for E2E test purposes\n */\n readonly 'data-qa'?: string;\n /**\n * Overwrite a safe selection of the {@link DataGrid} properties\n */\n readonly dataGridOverridableProps?: Pick<\n DataGridProps<T>,\n | 'apiRef'\n | 'checkboxSelection'\n | 'disableColumnFilter'\n | 'disableColumnMenu'\n | 'disableRowSelectionOnClick'\n | 'getRowId'\n | 'ignoreDiacritics'\n | 'isRowSelectable'\n | 'loading'\n | 'onRowSelectionModelChange'\n | 'rowSelectionModel'\n | 'columnGroupingModel'\n | 'filterModel'\n | 'onFilterModelChange'\n | 'processRowUpdate'\n | 'initialState'\n | 'onCellEditStop'\n >;\n\n /**\n * Shows the logic operator when filtering yes or no\n */\n readonly showOperator?: boolean;\n /**\n * Sets the initial query options to retain query details after opening a page and returning to the table\n */\n readonly initialQueryOptions?: GridPaginationModel & Omit<GridGetRowsParams, 'end' | 'paginationModel' | 'start'>;\n /**\n * Overwrites the default labels when you need a different language than Dutch\n */\n readonly localeText?: GridLocaleText & { refreshTable: string };\n /**\n * Material UI's property to apply styling\n */\n readonly sx?: SxProps;\n};\n\n/**\n * Constructs a table using pre-defined Rijks styling\n *\n * @param props - Props to pass to the button\n * @example\n * ```jsx\n * <AoaTable\n * getData={(queryOptions) => getMockData(queryOptions)}\n * data={mockData}\n * columns={[{ field: \"id\" }, { field: \"title\" }, { field: \"completed\" }]}\n * />\n * ```\n */\n\nexport function AoaTable<T extends object = any>({ ...props }: AoaTableProps<T>) {\n const [isLoading, setIsLoading] = useState(false);\n const [paginationModel, setPaginationModel] = useState<GridPaginationModel>({\n page: props.initialQueryOptions?.page ?? 0,\n pageSize: props.initialQueryOptions?.pageSize ?? 10\n });\n const [sortModel, setSortModel] = useState<GridSortModel>(props.initialQueryOptions?.sortModel ?? []);\n const [filterModel, setFilterModel] = useState<GridFilterModel>(\n props.initialQueryOptions?.filterModel ?? {\n items: [],\n logicOperator: GridLogicOperator.And,\n quickFilterLogicOperator: GridLogicOperator.And,\n quickFilterValues: []\n }\n );\n const [filterButtonEl, setFilterButtonEl] = useState<HTMLButtonElement | null>(null);\n\n const [rowCountState, setRowCountState] = useState(props.data?.rowCount ?? 0);\n\n const mode = props.mode ?? 'server';\n const isServerMode = mode === 'server';\n\n async function getData(paginationModel: GridPaginationModel, sortModel: GridSortModel, filterModel: GridFilterModel) {\n if (isServerMode && props.getData) {\n const fetchData = async () => {\n await props.getData({ ...paginationModel, sortModel, filterModel });\n };\n\n setIsLoading(true);\n await fetchData();\n setIsLoading(false);\n }\n }\n\n useEffect(() => {\n setRowCountState((prevRowCountState) => props.data?.rowCount ?? prevRowCountState);\n }, [props.data?.rowCount, setRowCountState]);\n\n useEffect(() => {\n void getData(paginationModel, sortModel, filterModel);\n // ESLint tells us here that we should add the `getData` function, however,\n // doing so will cause the fetching to loop infinity until the JavaScript heap overflows.\n // eslint-disable-next-line react-compiler/react-compiler\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [paginationModel, sortModel, filterModel]);\n\n const initialState: GridInitialState = useMemo(\n () => ({\n pagination: {\n paginationModel,\n rowCount: 0\n },\n sorting: {\n sortModel\n },\n filter: {\n filterModel\n }\n }),\n [paginationModel, sortModel, filterModel]\n );\n\n const mergedLocaleText = merge<Partial<GridLocaleText & { refreshTable: string }>, (GridLocaleText & { refreshTable: string }) | undefined>(\n {\n columnHeaderSortIconLabel: 'Sorteren',\n filterPanelColumns: 'Kolom',\n filterPanelInputLabel: 'Zoekterm',\n filterPanelOperator: 'Criterium',\n filterOperatorContains: 'Bevat',\n filterOperatorDoesNotContain: 'Bevat niet',\n filterOperatorEquals: 'Is gelijk aan',\n filterOperatorDoesNotEqual: 'Is niet gelijk aan',\n filterOperatorStartsWith: 'Begint met',\n filterOperatorEndsWith: 'Eindigt met',\n filterOperatorIs: 'Is',\n filterOperatorNot: 'Is niet',\n filterOperatorAfter: 'Is na',\n filterOperatorOnOrAfter: 'Is op of na',\n filterOperatorBefore: 'Is voor',\n filterOperatorOnOrBefore: 'Is op of voor',\n filterOperatorIsEmpty: 'Is leeg',\n filterOperatorIsNotEmpty: 'Is niet leeg',\n columnMenuSortAsc: 'Sorteer oplopend',\n columnMenuSortDesc: 'Sorteer aflopend',\n columnMenuFilter: 'Filteren',\n filterOperatorIsAnyOf: 'Is een van',\n filterPanelInputPlaceholder: 'Zoeken...',\n toolbarQuickFilterPlaceholder: 'Zoeken...',\n toolbarQuickFilterLabel: 'Zoeken',\n toolbarQuickFilterDeleteIconLabel: 'Wissen',\n noRowsLabel: 'Geen regels beschikbaar',\n noResultsOverlayLabel: 'Geen regels gevonden.',\n paginationItemAriaLabel: (type) => {\n switch (type) {\n /* v8 ignore start */\n case 'first':\n return 'Ga naar eerste pagina';\n case 'last':\n return 'Ga naar laatste pagina';\n /* v8 ignore stop */\n case 'next':\n return 'Ga naar volgende pagina';\n case 'previous':\n return 'Ga naar vorige pagina';\n }\n },\n paginationDisplayedRows: ({ from, to, count }) => `${from} - ${to} van ${count}`,\n paginationRowsPerPage: 'Regels per pagina',\n footerRowSelected: (count) => `${count} regels geselecteerd`\n },\n props.localeText\n );\n\n return (\n <DataGrid\n columns={props.columns}\n disableColumnFilter\n disableColumnMenu\n disableColumnSelector\n disableDensitySelector\n disableRowSelectionOnClick\n disableVirtualization\n filterMode={mode}\n getRowHeight={() => 'auto'}\n ignoreDiacritics\n initialState={initialState}\n loading={isLoading}\n localeText={mergedLocaleText}\n onFilterModelChange={(filterModel) => setFilterModel(filterModel)}\n onPaginationModelChange={setPaginationModel}\n onSortModelChange={(sortModel) => setSortModel(sortModel)}\n pageSizeOptions={[5, 10, 20, 40, 80]}\n paginationMode={mode}\n paginationModel={paginationModel}\n rowCount={isServerMode ? rowCountState : undefined}\n rows={props.data?.rows}\n showToolbar\n slotProps={{\n filterPanel: {\n filterFormProps: {\n operatorInputProps: {\n sx: { display: props.showOperator ? 'block' : 'none' }\n },\n valueInputProps: {\n sx: {\n marginLeft: '15px'\n }\n }\n }\n },\n panel: {\n target: filterButtonEl\n },\n toolbar: {\n setFilterButtonEl,\n showQuickFilter: props.dataGridOverridableProps?.disableColumnFilter === false,\n quickFilterProps: { debounceMs: 500 },\n mode,\n getData: async () => getData(paginationModel, sortModel, filterModel),\n actionButtons: props.actionButtons,\n localeText: props.localeText\n },\n root: {\n 'data-qa': props['data-qa']\n }\n }}\n slots={{ toolbar: QuickSearchToolbar }}\n sortingMode={mode}\n sx={merge(\n {\n border: 0,\n color: 'var(--color-text)',\n letterSpacing: 'normal',\n minHeight: '300px',\n\n [`&.${gridClasses['root--densityCompact']}`]: {\n [`.${gridClasses.cell}`]: {\n py: '8px'\n }\n },\n [`&.${gridClasses['root--densityStandard']}`]: {\n [`.${gridClasses.cell}`]: {\n py: '15px'\n }\n },\n [`&.${gridClasses['root--densityComfortable']}`]: {\n [`.${gridClasses.cell}`]: {\n py: '22px'\n }\n },\n\n /**\n * The 'no results' message does not show if the DataGrid does not have a fixed height.\n * Because a fixed height is not desirable, we set a min-height on the DataGrid and set\n * the min-height of the virtualScroller to half of that height.\n */\n [`.${gridClasses.virtualScroller}`]: {\n minHeight: '150px',\n overflow: 'hidden',\n position: 'relative'\n },\n\n [`.${gridClasses.columnHeader}`]: {\n '--DataGrid-containerBackground': 'var(--color-rijks-skyblue)',\n '--DataGrid-t-header-background-base': 'transparent',\n backgroundColor: 'var(--color-rijks-skyblue)',\n color: 'var(--color-text-light)'\n },\n\n [`.${gridClasses.row}`]: {\n ':hover': {\n backgroundColor: 'var(--color-rijks-skyblue-light)'\n },\n\n ':nth-of-type(even)': {\n backgroundColor: 'var(--color-rijks-grey-1)',\n\n ':hover': {\n backgroundColor: 'var(--color-rijks-skyblue-light)'\n }\n }\n },\n\n [`.${gridClasses.columnHeader}, .${gridClasses.cell}, .MuiDataGrid-columnsContainer`]: {\n borderRight: '1px solid var(--color-rijks-grey-2)'\n },\n\n [`.${gridClasses.cell}`]: {\n color: 'var(--color-text)'\n },\n\n [`.${paginationItemClasses.root}`]: {\n borderRadius: 0\n },\n\n [`.${checkboxClasses.root}`]: {\n color: 'var(--color-primary)',\n\n ':focus': {\n outline: '2px dashed var(--color-text)',\n outlineOffset: '-9px',\n borderRadius: 0\n },\n\n ':disabled': {\n color: 'var(--color-disabled)'\n }\n },\n\n [`.${gridClasses.columnHeader} .${checkboxClasses.root}`]: {\n color: 'white'\n }\n },\n props.sx,\n FontNormalSxProps\n )}\n {...props.dataGridOverridableProps}\n />\n );\n}\n"],"names":["AoaTable","props","isLoading","setIsLoading","useState","paginationModel","setPaginationModel","page","initialQueryOptions","pageSize","sortModel","setSortModel","filterModel","setFilterModel","items","logicOperator","GridLogicOperator","And","quickFilterLogicOperator","quickFilterValues","filterButtonEl","setFilterButtonEl","rowCountState","setRowCountState","data","rowCount","mode","isServerMode","getData","fetchData","useEffect","prevRowCountState","initialState","useMemo","pagination","sorting","filter","mergedLocaleText","merge","columnHeaderSortIconLabel","filterPanelColumns","filterPanelInputLabel","filterPanelOperator","filterOperatorContains","filterOperatorDoesNotContain","filterOperatorEquals","filterOperatorDoesNotEqual","filterOperatorStartsWith","filterOperatorEndsWith","filterOperatorIs","filterOperatorNot","filterOperatorAfter","filterOperatorOnOrAfter","filterOperatorBefore","filterOperatorOnOrBefore","filterOperatorIsEmpty","filterOperatorIsNotEmpty","columnMenuSortAsc","columnMenuSortDesc","columnMenuFilter","filterOperatorIsAnyOf","filterPanelInputPlaceholder","toolbarQuickFilterPlaceholder","toolbarQuickFilterLabel","toolbarQuickFilterDeleteIconLabel","noRowsLabel","noResultsOverlayLabel","paginationItemAriaLabel","type","paginationDisplayedRows","from","to","count","paginationRowsPerPage","footerRowSelected","localeText","jsx","DataGrid","columns","undefined","rows","filterPanel","filterFormProps","operatorInputProps","sx","display","showOperator","valueInputProps","marginLeft","panel","target","toolbar","showQuickFilter","dataGridOverridableProps","disableColumnFilter","quickFilterProps","debounceMs","actionButtons","root","QuickSearchToolbar","border","color","letterSpacing","minHeight","gridClasses","cell","py","virtualScroller","overflow","position","columnHeader","backgroundColor","row","borderRight","paginationItemClasses","borderRadius","checkboxClasses","outline","outlineOffset","FontNormalSxProps"],"mappings":"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"}