@rws-aoa/react-library 6.0.0 → 7.0.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 (114) hide show
  1. package/dist/_constants.js.map +1 -1
  2. package/dist/chunks/FieldError.CCQnjdMd.js +161 -0
  3. package/dist/chunks/{FieldError.B8t3zEhf.js.map → FieldError.CCQnjdMd.js.map} +1 -1
  4. package/dist/chunks/compiler-runtime.hDcrsMwn.js +55 -0
  5. package/dist/chunks/compiler-runtime.hDcrsMwn.js.map +1 -0
  6. package/dist/components/atoms/_menu/menu-item/MenuItem.d.ts +2 -2
  7. package/dist/components/atoms/_menu/menu-item/MenuItem.d.ts.map +1 -1
  8. package/dist/components/atoms/_menu/menu-item/MenuItem.js +73 -128
  9. package/dist/components/atoms/_menu/menu-item/MenuItem.js.map +1 -1
  10. package/dist/components/atoms/_menu/user-menu/UserMenu.d.ts +1 -2
  11. package/dist/components/atoms/_menu/user-menu/UserMenu.d.ts.map +1 -1
  12. package/dist/components/atoms/_menu/user-menu/UserMenu.js +72 -72
  13. package/dist/components/atoms/_menu/user-menu/UserMenu.js.map +1 -1
  14. package/dist/components/atoms/button/Button.d.ts +2 -2
  15. package/dist/components/atoms/button/Button.d.ts.map +1 -1
  16. package/dist/components/atoms/button/Button.js +120 -133
  17. package/dist/components/atoms/button/Button.js.map +1 -1
  18. package/dist/components/atoms/icon-button/IconButton.d.ts +6 -1
  19. package/dist/components/atoms/icon-button/IconButton.d.ts.map +1 -1
  20. package/dist/components/atoms/icon-button/IconButton.js +50 -50
  21. package/dist/components/atoms/icon-button/IconButton.js.map +1 -1
  22. package/dist/components/atoms/input/Input.d.ts +1 -2
  23. package/dist/components/atoms/input/Input.d.ts.map +1 -1
  24. package/dist/components/atoms/input/Input.js +51 -56
  25. package/dist/components/atoms/input/Input.js.map +1 -1
  26. package/dist/components/atoms/logo/Logo.d.ts +2 -2
  27. package/dist/components/atoms/logo/Logo.d.ts.map +1 -1
  28. package/dist/components/atoms/logo/Logo.js +298 -457
  29. package/dist/components/atoms/logo/Logo.js.map +1 -1
  30. package/dist/components/atoms/no-permission/NoPermission.d.ts +1 -1
  31. package/dist/components/atoms/no-permission/NoPermission.d.ts.map +1 -1
  32. package/dist/components/atoms/no-permission/NoPermission.js +20 -23
  33. package/dist/components/atoms/no-permission/NoPermission.js.map +1 -1
  34. package/dist/components/atoms/notification/Notification.d.ts +1 -2
  35. package/dist/components/atoms/notification/Notification.d.ts.map +1 -1
  36. package/dist/components/atoms/notification/Notification.js +29 -41
  37. package/dist/components/atoms/notification/Notification.js.map +1 -1
  38. package/dist/components/atoms/notification/_icons/Error.d.ts +1 -1
  39. package/dist/components/atoms/notification/_icons/Error.d.ts.map +1 -1
  40. package/dist/components/atoms/notification/_icons/Error.js +25 -32
  41. package/dist/components/atoms/notification/_icons/Error.js.map +1 -1
  42. package/dist/components/atoms/notification/_icons/Info.d.ts +1 -1
  43. package/dist/components/atoms/notification/_icons/Info.d.ts.map +1 -1
  44. package/dist/components/atoms/notification/_icons/Info.js +26 -39
  45. package/dist/components/atoms/notification/_icons/Info.js.map +1 -1
  46. package/dist/components/atoms/notification/_icons/Success.d.ts +1 -1
  47. package/dist/components/atoms/notification/_icons/Success.d.ts.map +1 -1
  48. package/dist/components/atoms/notification/_icons/Success.js +26 -39
  49. package/dist/components/atoms/notification/_icons/Success.js.map +1 -1
  50. package/dist/components/atoms/notification/_icons/Warning.js +23 -38
  51. package/dist/components/atoms/notification/_icons/Warning.js.map +1 -1
  52. package/dist/components/atoms/section-header/SectionHeader.d.ts +1 -1
  53. package/dist/components/atoms/section-header/SectionHeader.d.ts.map +1 -1
  54. package/dist/components/atoms/section-header/SectionHeader.js +37 -64
  55. package/dist/components/atoms/section-header/SectionHeader.js.map +1 -1
  56. package/dist/components/atoms/selection-buttons/checkbox/Checkbox.d.ts +1 -2
  57. package/dist/components/atoms/selection-buttons/checkbox/Checkbox.d.ts.map +1 -1
  58. package/dist/components/atoms/selection-buttons/checkbox/Checkbox.js +23 -35
  59. package/dist/components/atoms/selection-buttons/checkbox/Checkbox.js.map +1 -1
  60. package/dist/components/atoms/selection-buttons/radio-button/RadioButton.d.ts +1 -2
  61. package/dist/components/atoms/selection-buttons/radio-button/RadioButton.d.ts.map +1 -1
  62. package/dist/components/atoms/selection-buttons/radio-button/RadioButton.js +19 -29
  63. package/dist/components/atoms/selection-buttons/radio-button/RadioButton.js.map +1 -1
  64. package/dist/components/atoms/selection-buttons/switch-button/SwitchButton.d.ts +1 -2
  65. package/dist/components/atoms/selection-buttons/switch-button/SwitchButton.d.ts.map +1 -1
  66. package/dist/components/atoms/selection-buttons/switch-button/SwitchButton.js +26 -29
  67. package/dist/components/atoms/selection-buttons/switch-button/SwitchButton.js.map +1 -1
  68. package/dist/components/atoms/table/Table.d.ts +1 -0
  69. package/dist/components/atoms/table/Table.d.ts.map +1 -1
  70. package/dist/components/atoms/table/Table.js +172 -201
  71. package/dist/components/atoms/table/Table.js.map +1 -1
  72. package/dist/components/atoms/table/_QuickSearchToolbar.d.ts +3 -2
  73. package/dist/components/atoms/table/_QuickSearchToolbar.d.ts.map +1 -1
  74. package/dist/components/atoms/table/_QuickSearchToolbar.js +1456 -1544
  75. package/dist/components/atoms/table/_QuickSearchToolbar.js.map +1 -1
  76. package/dist/components/atoms/tooltip/Tooltip.js +16 -27
  77. package/dist/components/atoms/tooltip/Tooltip.js.map +1 -1
  78. package/dist/components/atoms/zero-width-space/ZeroWidthSpace.d.ts +1 -2
  79. package/dist/components/atoms/zero-width-space/ZeroWidthSpace.d.ts.map +1 -1
  80. package/dist/components/atoms/zero-width-space/ZeroWidthSpace.js +16 -7
  81. package/dist/components/atoms/zero-width-space/ZeroWidthSpace.js.map +1 -1
  82. package/dist/components/molecules/field-error/FieldError.js +3 -2
  83. package/dist/components/molecules/field-error/FieldError.js.map +1 -1
  84. package/dist/components/molecules/file-dropzone/FileDropzone.d.ts.map +1 -1
  85. package/dist/components/molecules/file-dropzone/FileDropzone.js +90 -79
  86. package/dist/components/molecules/file-dropzone/FileDropzone.js.map +1 -1
  87. package/dist/components/molecules/file-table/FileTable.js +4 -14
  88. package/dist/components/molecules/file-table/FileTable.js.map +1 -1
  89. package/dist/components/molecules/form-error/FormError.js +3 -2
  90. package/dist/components/molecules/form-error/FormError.js.map +1 -1
  91. package/dist/components/molecules/form-modal/FormModal.js +3 -2
  92. package/dist/components/molecules/form-modal/FormModal.js.map +1 -1
  93. package/dist/components/molecules/modal/Modal.d.ts +1 -1
  94. package/dist/components/molecules/modal/Modal.d.ts.map +1 -1
  95. package/dist/components/molecules/modal/Modal.js +50 -68
  96. package/dist/components/molecules/modal/Modal.js.map +1 -1
  97. package/dist/components/molecules/modal-close-button/ModalCloseButton.d.ts +1 -1
  98. package/dist/components/molecules/modal-close-button/ModalCloseButton.d.ts.map +1 -1
  99. package/dist/components/molecules/modal-close-button/ModalCloseButton.js +20 -19
  100. package/dist/components/molecules/modal-close-button/ModalCloseButton.js.map +1 -1
  101. package/dist/components/molecules/navigation-bar/NavigationBar.d.ts +1 -2
  102. package/dist/components/molecules/navigation-bar/NavigationBar.d.ts.map +1 -1
  103. package/dist/components/molecules/navigation-bar/NavigationBar.js +96 -97
  104. package/dist/components/molecules/navigation-bar/NavigationBar.js.map +1 -1
  105. package/dist/components/molecules/upload-button/UploadButton.js +36 -33
  106. package/dist/components/molecules/upload-button/UploadButton.js.map +1 -1
  107. package/dist/components/organisms/content-page/ContentPage.d.ts +1 -1
  108. package/dist/components/organisms/content-page/ContentPage.d.ts.map +1 -1
  109. package/dist/components/organisms/content-page/ContentPage.js +22 -11
  110. package/dist/components/organisms/content-page/ContentPage.js.map +1 -1
  111. package/dist/contexts/TanstackFormContext.js +1 -1
  112. package/dist/index.js +1 -1
  113. package/package.json +21 -21
  114. package/dist/chunks/FieldError.B8t3zEhf.js +0 -143
@@ -1,223 +1,194 @@
1
- import { jsx as R } from "react/jsx-runtime";
2
- import { checkboxClasses as b, paginationItemClasses as G } from "@mui/material";
3
- import { GridLogicOperator as f, DataGrid as I, gridClasses as t } from "@mui/x-data-grid";
1
+ import { jsx as F } from "react/jsx-runtime";
2
+ import { checkboxClasses as b, paginationItemClasses as L } from "@mui/material";
3
+ import { GridLogicOperator as f, DataGrid as D, gridClasses as t } from "@mui/x-data-grid";
4
4
  import { l as p } from "../../../chunks/lodash.CA_K01A9.js";
5
- import { useState as r, useCallback as k, useEffect as v, useMemo as O } from "react";
6
- import { FontNormalSxProps as T } from "../../../_constants.js";
7
- import { QuickSearchToolbar as j } from "./_QuickSearchToolbar.js";
8
- function Z({ ...e }) {
9
- const [h, d] = r(!1), [l, x] = r({
5
+ import { useState as r, useEffect as v, useMemo as G } from "react";
6
+ import { FontNormalSxProps as R } from "../../../_constants.js";
7
+ import { QuickSearchToolbar as I } from "./_QuickSearchToolbar.js";
8
+ function z({
9
+ ...e
10
+ }) {
11
+ const [k, d] = r(!1), [l, x] = r({
10
12
  page: 0,
11
13
  pageSize: 10
12
- }), [i, C] = r([]), [n, S] = r({
14
+ }), [i, h] = r([]), [n, C] = r({
13
15
  items: []
14
- }), [w, M] = r(null), a = e.mode ?? "server", u = a === "server", y = k((o) => {
15
- C(o);
16
- }, []), $ = k((o) => {
17
- S(o);
18
- }, []), [P, g] = r(e.data?.rowCount ?? 0);
16
+ }), [S, w] = r(null), [M, u] = r(e.data?.rowCount ?? 0), a = e.mode ?? "server", g = a === "server";
19
17
  async function m(o, s, c) {
20
- if (u && e.getData) {
21
- const D = async () => {
22
- await e.getData({ ...o, sortModel: s, filterModel: c });
18
+ if (g && e.getData) {
19
+ const P = async () => {
20
+ await e.getData({
21
+ ...o,
22
+ sortModel: s,
23
+ filterModel: c
24
+ });
23
25
  };
24
- d(!0), await D(), d(!1);
26
+ d(!0), await P(), d(!1);
25
27
  }
26
28
  }
27
29
  v(() => {
28
- g((o) => e.data?.rowCount ?? o);
29
- }, [e.data?.rowCount, g]), v(() => {
30
+ u((o) => e.data?.rowCount ?? o);
31
+ }, [e.data?.rowCount, u]), v(() => {
30
32
  m(l, i, n);
31
33
  }, [l, i, n]);
32
- const F = O(
33
- () => ({
34
- pagination: {
35
- paginationModel: {
36
- page: 0,
37
- pageSize: 10
38
- },
39
- rowCount: 0
40
- },
41
- sorting: {
42
- sortModel: e.initialSort ? [e.initialSort] : []
34
+ const y = G(() => ({
35
+ pagination: {
36
+ paginationModel: {
37
+ page: 0,
38
+ pageSize: 10
43
39
  },
44
- filter: {
45
- filterModel: {
46
- items: [],
47
- logicOperator: f.And,
48
- quickFilterLogicOperator: f.And,
49
- quickFilterValues: []
50
- }
40
+ rowCount: 0
41
+ },
42
+ sorting: {
43
+ sortModel: e.initialSort ? [e.initialSort] : []
44
+ },
45
+ filter: {
46
+ filterModel: {
47
+ items: [],
48
+ logicOperator: f.And,
49
+ quickFilterLogicOperator: f.And,
50
+ quickFilterValues: []
51
51
  }
52
- }),
53
- [e.initialSort]
54
- ), L = p.merge(
55
- {
56
- columnHeaderSortIconLabel: "Sorteren",
57
- filterPanelColumns: "Kolom",
58
- filterPanelInputLabel: "Zoekterm",
59
- filterPanelInputPlaceholder: "Zoeken...",
60
- toolbarQuickFilterPlaceholder: "Zoeken...",
61
- toolbarQuickFilterLabel: "Zoeken",
62
- toolbarQuickFilterDeleteIconLabel: "Wissen",
63
- noRowsLabel: "Geen regels beschikbaar",
64
- noResultsOverlayLabel: "Geen regels gevonden.",
65
- paginationItemAriaLabel: (o) => {
66
- switch (o) {
67
- /* v8 ignore next */
68
- case "first":
69
- return "Ga naar eerste pagina";
70
- /* v8 ignore next */
71
- case "last":
72
- return "Ga naar laatste pagina";
73
- case "next":
74
- return "Ga naar volgende pagina";
75
- case "previous":
76
- return "Ga naar vorige pagina";
77
- }
78
- },
79
- paginationDisplayedRows: ({ from: o, to: s, count: c }) => `${o} - ${s} van ${c}`,
80
- paginationRowsPerPage: "Regels per pagina",
81
- footerRowSelected: (o) => `${o} regels geselecteerd`
82
- },
83
- e.localeText
84
- );
85
- return /* @__PURE__ */ R(
86
- I,
87
- {
88
- columns: e.columns,
89
- disableColumnFilter: !0,
90
- disableColumnMenu: !0,
91
- disableColumnSelector: !0,
92
- disableDensitySelector: !0,
93
- disableRowSelectionOnClick: !0,
94
- disableVirtualization: !0,
95
- filterMode: a,
96
- getRowHeight: () => "auto",
97
- ignoreDiacritics: !0,
98
- initialState: F,
99
- loading: h,
100
- localeText: L,
101
- onFilterModelChange: $,
102
- onPaginationModelChange: x,
103
- onSortModelChange: y,
104
- pageSizeOptions: [5, 10, 20, 40, 80],
105
- paginationMode: a,
106
- paginationModel: l,
107
- rowCount: u ? P : void 0,
108
- rows: e.data?.rows,
109
- showToolbar: !0,
110
- slotProps: {
111
- filterPanel: {
112
- filterFormProps: {
113
- operatorInputProps: {
114
- disabled: !0,
115
- sx: { display: "none" }
116
- },
117
- valueInputProps: {
118
- sx: {
119
- marginLeft: "15px"
120
- }
121
- }
52
+ }
53
+ }), [e.initialSort]), $ = p.merge({
54
+ columnHeaderSortIconLabel: "Sorteren",
55
+ filterPanelColumns: "Kolom",
56
+ filterPanelInputLabel: "Zoekterm",
57
+ filterPanelInputPlaceholder: "Zoeken...",
58
+ toolbarQuickFilterPlaceholder: "Zoeken...",
59
+ toolbarQuickFilterLabel: "Zoeken",
60
+ toolbarQuickFilterDeleteIconLabel: "Wissen",
61
+ noRowsLabel: "Geen regels beschikbaar",
62
+ noResultsOverlayLabel: "Geen regels gevonden.",
63
+ paginationItemAriaLabel: (o) => {
64
+ switch (o) {
65
+ /* v8 ignore next */
66
+ case "first":
67
+ return "Ga naar eerste pagina";
68
+ /* v8 ignore next */
69
+ case "last":
70
+ return "Ga naar laatste pagina";
71
+ case "next":
72
+ return "Ga naar volgende pagina";
73
+ case "previous":
74
+ return "Ga naar vorige pagina";
75
+ }
76
+ },
77
+ paginationDisplayedRows: ({
78
+ from: o,
79
+ to: s,
80
+ count: c
81
+ }) => `${o} - ${s} van ${c}`,
82
+ paginationRowsPerPage: "Regels per pagina",
83
+ footerRowSelected: (o) => `${o} regels geselecteerd`
84
+ }, e.localeText);
85
+ return /* @__PURE__ */ F(D, { columns: e.columns, disableColumnFilter: !0, disableColumnMenu: !0, disableColumnSelector: !0, disableDensitySelector: !0, disableRowSelectionOnClick: !0, disableVirtualization: !0, filterMode: a, getRowHeight: () => "auto", ignoreDiacritics: !0, initialState: y, loading: k, localeText: $, onFilterModelChange: (o) => C(o), onPaginationModelChange: x, onSortModelChange: (o) => h(o), pageSizeOptions: [5, 10, 20, 40, 80], paginationMode: a, paginationModel: l, rowCount: g ? M : void 0, rows: e.data?.rows, showToolbar: !0, slotProps: {
86
+ filterPanel: {
87
+ filterFormProps: {
88
+ operatorInputProps: {
89
+ disabled: !0,
90
+ sx: {
91
+ display: "none"
122
92
  }
123
93
  },
124
- panel: {
125
- target: w
126
- },
127
- toolbar: {
128
- setFilterButtonEl: M,
129
- showQuickFilter: !0,
130
- quickFilterProps: { debounceMs: 500 },
131
- mode: a,
132
- getData: async () => m(l, i, n),
133
- actionButtons: e.actionButtons,
134
- localeText: e.localeText
135
- },
136
- root: {
137
- "data-qa": e["data-qa"]
94
+ valueInputProps: {
95
+ sx: {
96
+ marginLeft: "15px"
97
+ }
138
98
  }
99
+ }
100
+ },
101
+ panel: {
102
+ target: S
103
+ },
104
+ toolbar: {
105
+ setFilterButtonEl: w,
106
+ showQuickFilter: e.dataGridOverridableProps?.disableColumnFilter === !1,
107
+ quickFilterProps: {
108
+ debounceMs: 500
139
109
  },
140
- slots: { toolbar: j },
141
- sortingMode: a,
142
- sx: p.merge(
143
- {
144
- border: 0,
145
- color: "var(--color-text)",
146
- letterSpacing: "normal",
147
- minHeight: "300px",
148
- [`&.${t["root--densityCompact"]}`]: {
149
- [`.${t.cell}`]: {
150
- py: "8px"
151
- }
152
- },
153
- [`&.${t["root--densityStandard"]}`]: {
154
- [`.${t.cell}`]: {
155
- py: "15px"
156
- }
157
- },
158
- [`&.${t["root--densityComfortable"]}`]: {
159
- [`.${t.cell}`]: {
160
- py: "22px"
161
- }
162
- },
163
- /**
164
- * The 'no results' message does not show if the DataGrid does not have a fixed height.
165
- * Because a fixed height is not desirable, we set a min-height on the DataGrid and set
166
- * the min-height of the virtualScroller to half of that height.
167
- */
168
- [`.${t.virtualScroller}`]: {
169
- minHeight: "150px",
170
- overflow: "hidden",
171
- position: "relative"
172
- },
173
- [`.${t.columnHeader}`]: {
174
- "--DataGrid-containerBackground": "var(--color-rijks-skyblue)",
175
- backgroundColor: "var(--color-rijks-skyblue)",
176
- color: "var(--color-text-light)"
177
- },
178
- [`.${t.row}`]: {
179
- ":hover": {
180
- backgroundColor: "var(--color-rijks-skyblue-light)"
181
- },
182
- ":nth-of-type(even)": {
183
- backgroundColor: "var(--color-rijks-grey-1)",
184
- ":hover": {
185
- backgroundColor: "var(--color-rijks-skyblue-light)"
186
- }
187
- }
188
- },
189
- [`.${t.columnHeader}, .${t.cell}, .MuiDataGrid-columnsContainer`]: {
190
- borderRight: "1px solid var(--color-rijks-grey-2)"
191
- },
192
- [`.${t.cell}`]: {
193
- color: "var(--color-text)"
194
- },
195
- [`.${G.root}`]: {
196
- borderRadius: 0
197
- },
198
- [`.${b.root}`]: {
199
- color: "var(--color-primary)",
200
- ":focus": {
201
- outline: "2px dashed var(--color-text)",
202
- outlineOffset: "-9px",
203
- borderRadius: 0
204
- },
205
- ":disabled": {
206
- color: "var(--color-disabled)"
207
- }
208
- },
209
- [`.${t.columnHeader} .${b.root}`]: {
210
- color: "white"
211
- }
212
- },
213
- e.sx,
214
- T
215
- ),
216
- ...e.dataGridOverridableProps
110
+ mode: a,
111
+ getData: async () => m(l, i, n),
112
+ actionButtons: e.actionButtons,
113
+ localeText: e.localeText
114
+ },
115
+ root: {
116
+ "data-qa": e["data-qa"]
117
+ }
118
+ }, slots: {
119
+ toolbar: I
120
+ }, sortingMode: a, sx: p.merge({
121
+ border: 0,
122
+ color: "var(--color-text)",
123
+ letterSpacing: "normal",
124
+ minHeight: "300px",
125
+ [`&.${t["root--densityCompact"]}`]: {
126
+ [`.${t.cell}`]: {
127
+ py: "8px"
128
+ }
129
+ },
130
+ [`&.${t["root--densityStandard"]}`]: {
131
+ [`.${t.cell}`]: {
132
+ py: "15px"
133
+ }
134
+ },
135
+ [`&.${t["root--densityComfortable"]}`]: {
136
+ [`.${t.cell}`]: {
137
+ py: "22px"
138
+ }
139
+ },
140
+ /**
141
+ * The 'no results' message does not show if the DataGrid does not have a fixed height.
142
+ * Because a fixed height is not desirable, we set a min-height on the DataGrid and set
143
+ * the min-height of the virtualScroller to half of that height.
144
+ */
145
+ [`.${t.virtualScroller}`]: {
146
+ minHeight: "150px",
147
+ overflow: "hidden",
148
+ position: "relative"
149
+ },
150
+ [`.${t.columnHeader}`]: {
151
+ "--DataGrid-containerBackground": "var(--color-rijks-skyblue)",
152
+ backgroundColor: "var(--color-rijks-skyblue)",
153
+ color: "var(--color-text-light)"
154
+ },
155
+ [`.${t.row}`]: {
156
+ ":hover": {
157
+ backgroundColor: "var(--color-rijks-skyblue-light)"
158
+ },
159
+ ":nth-of-type(even)": {
160
+ backgroundColor: "var(--color-rijks-grey-1)",
161
+ ":hover": {
162
+ backgroundColor: "var(--color-rijks-skyblue-light)"
163
+ }
164
+ }
165
+ },
166
+ [`.${t.columnHeader}, .${t.cell}, .MuiDataGrid-columnsContainer`]: {
167
+ borderRight: "1px solid var(--color-rijks-grey-2)"
168
+ },
169
+ [`.${t.cell}`]: {
170
+ color: "var(--color-text)"
171
+ },
172
+ [`.${L.root}`]: {
173
+ borderRadius: 0
174
+ },
175
+ [`.${b.root}`]: {
176
+ color: "var(--color-primary)",
177
+ ":focus": {
178
+ outline: "2px dashed var(--color-text)",
179
+ outlineOffset: "-9px",
180
+ borderRadius: 0
181
+ },
182
+ ":disabled": {
183
+ color: "var(--color-disabled)"
184
+ }
185
+ },
186
+ [`.${t.columnHeader} .${b.root}`]: {
187
+ color: "white"
217
188
  }
218
- );
189
+ }, e.sx, R), ...e.dataGridOverridableProps });
219
190
  }
220
191
  export {
221
- Z as AoaTable
192
+ z as AoaTable
222
193
  };
223
194
  //# sourceMappingURL=Table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sources":["../../../../src/components/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 { useCallback, useEffect, useMemo, useState } 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 | 'checkboxSelection'\n | 'disableColumnFilter'\n | 'disableRowSelectionOnClick'\n | 'getRowId'\n | 'ignoreDiacritics'\n | 'isRowSelectable'\n | 'loading'\n | 'onRowSelectionModelChange'\n | 'rowSelectionModel'\n >;\n /**\n * Sets the initial sortModel in case the required sorting differs from the back-end's default sorting\n */\n readonly initialSort?: { field: string; sort: 'asc' | 'desc' };\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: 0,\n pageSize: 10\n });\n const [sortModel, setSortModel] = useState<GridSortModel>([]);\n const [filterModel, setFilterModel] = useState<GridFilterModel>({\n items: []\n });\n const [filterButtonEl, setFilterButtonEl] = useState<HTMLButtonElement | null>(null);\n\n const mode = props.mode ?? 'server';\n const isServerMode = mode === 'server';\n\n const handleSortModelChange = useCallback((sortModel: GridSortModel) => {\n setSortModel(sortModel);\n }, []);\n\n const onFilterChange = useCallback((filterModel: GridFilterModel) => {\n setFilterModel(filterModel);\n }, []);\n\n const [rowCountState, setRowCountState] = useState(props.data?.rowCount ?? 0);\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-hooks/exhaustive-deps\n }, [paginationModel, sortModel, filterModel]);\n\n const initialState: GridInitialState = useMemo(\n () => ({\n pagination: {\n paginationModel: {\n page: 0,\n pageSize: 10\n },\n rowCount: 0\n },\n sorting: {\n sortModel: props.initialSort ? [props.initialSort] : []\n },\n filter: {\n filterModel: {\n items: [],\n logicOperator: GridLogicOperator.And,\n quickFilterLogicOperator: GridLogicOperator.And,\n quickFilterValues: []\n }\n }\n }),\n [props.initialSort]\n );\n\n const mergedLocaleText = merge<\n Partial<GridLocaleText & { refreshTable: string }>,\n (GridLocaleText & { refreshTable: string }) | undefined\n >(\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 next */\n case 'first':\n /* v8 ignore next */\n return 'Ga naar eerste pagina';\n /* v8 ignore next */\n case 'last':\n /* v8 ignore next */\n return 'Ga naar laatste pagina';\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={onFilterChange}\n onPaginationModelChange={setPaginationModel}\n onSortModelChange={handleSortModelChange}\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: true,\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 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","sortModel","setSortModel","filterModel","setFilterModel","filterButtonEl","setFilterButtonEl","mode","isServerMode","handleSortModelChange","useCallback","onFilterChange","rowCountState","setRowCountState","getData","fetchData","useEffect","prevRowCountState","initialState","useMemo","GridLogicOperator","mergedLocaleText","merge","type","from","to","count","jsx","DataGrid","QuickSearchToolbar","gridClasses","paginationItemClasses","checkboxClasses","FontNormalSxProps"],"mappings":"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"}
1
+ {"version":3,"file":"Table.js","sources":["../../../../src/components/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 | 'checkboxSelection'\n | 'disableColumnFilter'\n | 'disableRowSelectionOnClick'\n | 'getRowId'\n | 'ignoreDiacritics'\n | 'isRowSelectable'\n | 'loading'\n | 'onRowSelectionModelChange'\n | 'rowSelectionModel'\n >;\n /**\n * Sets the initial sortModel in case the required sorting differs from the back-end's default sorting\n */\n readonly initialSort?: { field: string; sort: 'asc' | 'desc' };\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: 0,\n pageSize: 10\n });\n const [sortModel, setSortModel] = useState<GridSortModel>([]);\n const [filterModel, setFilterModel] = useState<GridFilterModel>({\n items: []\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 page: 0,\n pageSize: 10\n },\n rowCount: 0\n },\n sorting: {\n sortModel: props.initialSort ? [props.initialSort] : []\n },\n filter: {\n filterModel: {\n items: [],\n logicOperator: GridLogicOperator.And,\n quickFilterLogicOperator: GridLogicOperator.And,\n quickFilterValues: []\n }\n }\n }),\n [props.initialSort]\n );\n\n const mergedLocaleText = merge<\n Partial<GridLocaleText & { refreshTable: string }>,\n (GridLocaleText & { refreshTable: string }) | undefined\n >(\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 next */\n case 'first':\n /* v8 ignore next */\n return 'Ga naar eerste pagina';\n /* v8 ignore next */\n case 'last':\n /* v8 ignore next */\n return 'Ga naar laatste pagina';\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 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","pageSize","sortModel","setSortModel","filterModel","setFilterModel","items","filterButtonEl","setFilterButtonEl","rowCountState","setRowCountState","data","rowCount","mode","isServerMode","getData","fetchData","useEffect","prevRowCountState","initialState","useMemo","pagination","sorting","initialSort","filter","logicOperator","GridLogicOperator","And","quickFilterLogicOperator","quickFilterValues","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":"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"}
@@ -1,5 +1,5 @@
1
1
  import { GridLocaleText, GridToolbarProps, ToolbarPropsOverrides } from '@mui/x-data-grid';
2
- import { Dispatch, SetStateAction } from 'react';
2
+ import { Dispatch, JSX, SetStateAction } from 'react';
3
3
  declare module '@mui/x-data-grid' {
4
4
  interface ToolbarPropsOverrides {
5
5
  actionButtons?: JSX.Element[];
@@ -9,7 +9,8 @@ declare module '@mui/x-data-grid' {
9
9
  };
10
10
  mode: 'client' | 'server';
11
11
  setFilterButtonEl: Dispatch<SetStateAction<HTMLButtonElement | null>>;
12
+ showQuickFilter: boolean;
12
13
  }
13
14
  }
14
- export declare function QuickSearchToolbar({ mode, actionButtons, localeText, getData, setFilterButtonEl }: GridToolbarProps & ToolbarPropsOverrides): import("react/jsx-runtime").JSX.Element;
15
+ export declare function QuickSearchToolbar({ mode, actionButtons, localeText, showQuickFilter, getData, setFilterButtonEl }: GridToolbarProps & ToolbarPropsOverrides): import("react/jsx-runtime").JSX.Element;
15
16
  //# sourceMappingURL=_QuickSearchToolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_QuickSearchToolbar.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/table/_QuickSearchToolbar.tsx"],"names":[],"mappings":"AAKA,OAAO,EAOL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,QAAQ,EAAkB,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAI3E,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAiB,qBAAqB;QACpC,aAAa,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;QAC1B,UAAU,CAAC,EAAE,cAAc,GAAG;YAC5B,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC;QACF,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC1B,iBAAiB,EAAE,QAAQ,CAAC,cAAc,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC;KACvE;CACF;AAED,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,aAAa,EACb,UAAU,EACV,OAAO,EACP,iBAAiB,EAClB,EAAE,gBAAgB,GAAG,qBAAqB,2CA0J1C"}
1
+ {"version":3,"file":"_QuickSearchToolbar.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/table/_QuickSearchToolbar.tsx"],"names":[],"mappings":"AAKA,OAAO,EAOL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,GAAG,EAAkB,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAIrF,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAiB,qBAAqB;QACpC,aAAa,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;QAC1B,UAAU,CAAC,EAAE,cAAc,GAAG;YAC5B,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC;QACF,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC1B,iBAAiB,EAAE,QAAQ,CAAC,cAAc,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC;QACtE,eAAe,EAAE,OAAO,CAAC;KAC1B;CACF;AAED,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,aAAa,EACb,UAAU,EACV,eAAe,EACf,OAAO,EACP,iBAAiB,EAClB,EAAE,gBAAgB,GAAG,qBAAqB,2CA4J1C"}