@rws-aoa/react-library 7.0.1 → 7.1.1

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 (30) hide show
  1. package/dist/chunks/FieldError.DXcLGJ_k.js +170 -0
  2. package/dist/chunks/FieldError.DXcLGJ_k.js.map +1 -0
  3. package/dist/chunks/compiler-runtime.hDcrsMwn.js.map +1 -1
  4. package/dist/chunks/lodash.CA_K01A9.js.map +1 -1
  5. package/dist/components/atoms/_menu/menu-item/MenuItem.d.ts +2 -2
  6. package/dist/components/atoms/_menu/menu-item/MenuItem.d.ts.map +1 -1
  7. package/dist/components/atoms/_menu/menu-item/MenuItem.js +4 -4
  8. package/dist/components/atoms/_menu/menu-item/MenuItem.js.map +1 -1
  9. package/dist/components/atoms/_menu/user-menu/UserMenu.js.map +1 -1
  10. package/dist/components/atoms/icon-button/IconButton.js.map +1 -1
  11. package/dist/components/atoms/table/Table.d.ts +1 -1
  12. package/dist/components/atoms/table/Table.d.ts.map +1 -1
  13. package/dist/components/atoms/table/Table.js.map +1 -1
  14. package/dist/components/atoms/table/_QuickSearchToolbar.js +1474 -1403
  15. package/dist/components/atoms/table/_QuickSearchToolbar.js.map +1 -1
  16. package/dist/components/molecules/field-error/FieldError.js +1 -1
  17. package/dist/components/molecules/file-dropzone/FileDropzone.js.map +1 -1
  18. package/dist/components/molecules/form-error/FormError.js +1 -1
  19. package/dist/components/molecules/form-modal/FormModal.d.ts.map +1 -1
  20. package/dist/components/molecules/form-modal/FormModal.js +1 -1
  21. package/dist/components/molecules/navigation-bar/NavigationBar.d.ts.map +1 -1
  22. package/dist/components/molecules/navigation-bar/NavigationBar.js +42 -45
  23. package/dist/components/molecules/navigation-bar/NavigationBar.js.map +1 -1
  24. package/dist/contexts/TanstackFormContext.d.ts +9 -15
  25. package/dist/contexts/TanstackFormContext.d.ts.map +1 -1
  26. package/dist/contexts/TanstackFormContext.js +1 -1
  27. package/dist/index.js +1 -1
  28. package/package.json +32 -32
  29. package/dist/chunks/FieldError.CCQnjdMd.js +0 -161
  30. package/dist/chunks/FieldError.CCQnjdMd.js.map +0 -1
@@ -61,11 +61,11 @@ interface MenuItemProps {
61
61
  /**
62
62
  * The currently active menu item
63
63
  */
64
- readonly selectedPage: number;
64
+ readonly selectedPage: number | null;
65
65
  /**
66
66
  * The function to update the active menu item
67
67
  */
68
- readonly setSelectedPage: Dispatch<SetStateAction<number>>;
68
+ readonly setSelectedPage: Dispatch<SetStateAction<number | null>>;
69
69
  }
70
70
  /**
71
71
  * Constructs a menu item using pre-defined Rijks styling
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/_menu/menu-item/MenuItem.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAY,KAAK,QAAQ,EAAE,KAAK,GAAG,EAAmB,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAGhG,UAAU,OAAO;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACnB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,KAAK,IAAI;AACP;;GAEG;AACD;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE;AACrC;;GAEG;GACD;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,EAAE,CAAC,EAAE,KAAK,CAAA;CAAE;AACrC;;GAEG;GACD;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAErC,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG;IAC3B;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,UAAU,aAAa;IACrB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;CAC5D;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,2CAuJ/C"}
1
+ {"version":3,"file":"MenuItem.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/_menu/menu-item/MenuItem.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAY,KAAK,QAAQ,EAAE,KAAK,GAAG,EAAmB,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAGhG,UAAU,OAAO;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACnB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,KAAK,IAAI;AACP;;GAEG;AACD;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE;AACrC;;GAEG;GACD;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,EAAE,CAAC,EAAE,KAAK,CAAA;CAAE;AACrC;;GAEG;GACD;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAErC,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG;IAC3B;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,UAAU,aAAa;IACrB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;CACnE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,2CAuJ/C"}
@@ -20,7 +20,7 @@ function R(e) {
20
20
  to: e.page.to
21
21
  };
22
22
  }
23
- return /* @__PURE__ */ k(g, { ...p(), "aria-controls": e.page.subItems?.length && t ? "submenu" : void 0, "aria-expanded": e.page.subItems?.length && t ? "true" : void 0, "aria-haspopup": e.page.subItems?.length ? "true" : "false", "aria-label": e.page.label, component: e.page.to && !e.page.externalPath ? c : P, key: e.index, onClick: () => e.setSelectedPage(e.index), onMouseEnter: (o) => h(o), onMouseLeave: () => l(), role: "menuitem", selected: e.selectedPage === e.index, sx: {
23
+ return /* @__PURE__ */ k(g, { ...p(), "aria-controls": e.page.subItems?.length && t ? "submenu" : void 0, "aria-expanded": e.page.subItems?.length && t ? "true" : void 0, "aria-haspopup": e.page.subItems?.length ? "true" : "false", "aria-label": e.page.label, component: e.page.to && !e.page.externalPath ? c : P, key: e.index, onClick: () => e.setSelectedPage(e.index), onMouseEnter: (o) => h(o), onMouseLeave: () => l(), role: "menuitem", selected: e.selectedPage === null ? !1 : e.selectedPage === e.index, sx: {
24
24
  height: "100%",
25
25
  borderBottom: "3px solid transparent",
26
26
  padding: "6px 20px 3px",
@@ -60,8 +60,8 @@ function R(e) {
60
60
  rgb(0 0 0 / 10%) 0 10px 15px -3px,
61
61
  rgb(0 0 0 / 5%) 0 4px 6px -2px
62
62
  `
63
- }, children: e.page.subItems?.map((o, v) => /* @__PURE__ */ i(g, { "aria-label": o.label, component: c, disableRipple: !0, divider: o.divider ?? !1, onClick: (f) => {
64
- f.stopPropagation(), e.setSelectedPage(e.index), l();
63
+ }, children: e.page.subItems?.map((o, f) => /* @__PURE__ */ i(g, { "aria-label": o.label, component: c, disableRipple: !0, divider: o.divider ?? !1, onClick: (v) => {
64
+ v.stopPropagation(), e.setSelectedPage(e.index), l();
65
65
  }, sx: u.merge({
66
66
  ":active": {
67
67
  backgroundColor: "var(--color-bg-light)"
@@ -87,7 +87,7 @@ function R(e) {
87
87
  }, x), to: o.to, children: [
88
88
  o.icon,
89
89
  o.label
90
- ] }, v)) }));
90
+ ] }, f)) }));
91
91
  }
92
92
  export {
93
93
  R as AoaMenuItem
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.js","sources":["../../../../../src/components/atoms/_menu/menu-item/MenuItem.tsx"],"sourcesContent":["import { Home as HomeIcon, KeyboardArrowDown as KeyboardArrowDownIcon } from '@mui/icons-material';\nimport {\n Link as MUILink,\n MenuItem as MUIMenuItem,\n menuItemClasses,\n svgIconClasses,\n Popper,\n Typography\n} from '@mui/material';\nimport { Link } from '@tanstack/react-router';\nimport { merge } from 'lodash';\nimport { useState, type Dispatch, type JSX, type MouseEvent, type SetStateAction } from 'react';\nimport { FontNormalSxProps } from '../../../../_constants';\n\ninterface SubMenu {\n /**\n * Optional divider to be shown below menu item\n */\n divider?: boolean;\n /**\n * Optional icon to be displayed in front of the label\n */\n icon?: JSX.Element;\n /**\n * The label of the menu item\n */\n label: string;\n /**\n * The path that the menu item links to on click\n */\n to: string;\n}\n\ntype Menu =\n /**\n * The path that the menu item links to on click and the subitems shown on hover\n */\n | { subItems: SubMenu[]; to: string }\n /**\n * Subitems are required when there is no path that the menu item links to on click\n */\n | { subItems: SubMenu[]; to?: never }\n /**\n * The path that the menu item links to on click is required when there are no subitems on hover\n */\n | { subItems?: never; to: string };\n\nexport type AoaPage = Menu & {\n /**\n * Optional boolean to indicate if it's an external \"to\" path\n */\n externalPath?: boolean;\n /**\n * The label of the menu item\n */\n label: string;\n};\n\ninterface MenuItemProps {\n /**\n * Index of the current menu item. Home === 0\n */\n readonly index: number;\n /**\n * The Page object for this menu item\n */\n readonly page: AoaPage;\n /**\n * The currently active menu item\n */\n readonly selectedPage: number;\n /**\n * The function to update the active menu item\n */\n readonly setSelectedPage: Dispatch<SetStateAction<number>>;\n}\n\n/**\n * Constructs a menu item using pre-defined Rijks styling\n *\n * @param props - Props to pass to the menu item\n * @example\n * ```jsx\n * <AoaMenuItem\n * index={index}\n * page={{\n * label: \"Products\",\n * to: \"/products\",\n * subItems: [\n * {\n * label: \"Books\",\n * to: \"/books\",\n * icon: <BookIcon />,\n * }\n * ]\n * }}\n * selectedPage={selectedPage}\n * setSelectedPage={setSelectedPage}\n * />\n * ```\n */\nexport function AoaMenuItem(props: MenuItemProps) {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const [open, setOpen] = useState(false);\n\n function handleMenuOpen(event: MouseEvent<HTMLAnchorElement, globalThis.MouseEvent>) {\n setOpen(true);\n setAnchorEl(event.currentTarget);\n }\n\n function handleMenuClose() {\n setOpen(false);\n setAnchorEl(null);\n }\n\n function linkProps() {\n if (props.page.externalPath) {\n return { href: props.page.to };\n } else {\n return { to: props.page.to };\n }\n }\n\n return (\n <MUIMenuItem\n {...linkProps()}\n aria-controls={props.page.subItems?.length && open ? 'submenu' : undefined}\n aria-expanded={props.page.subItems?.length && open ? 'true' : undefined}\n aria-haspopup={props.page.subItems?.length ? 'true' : 'false'}\n aria-label={props.page.label}\n component={props.page.to && !props.page.externalPath ? Link : MUILink}\n key={props.index}\n onClick={() => props.setSelectedPage(props.index)}\n onMouseEnter={(event: MouseEvent<HTMLAnchorElement, globalThis.MouseEvent>) => handleMenuOpen(event)}\n onMouseLeave={() => handleMenuClose()}\n role='menuitem'\n selected={props.selectedPage === props.index}\n sx={{\n height: '100%',\n borderBottom: '3px solid transparent',\n padding: '6px 20px 3px',\n\n ':hover': {\n backgroundColor: 'var(--color-rijks-yellow-hover)',\n ...(props.page.to && {\n textDecoration: 'underline'\n })\n },\n\n [`&.${menuItemClasses.selected}`]: {\n backgroundColor: 'var(--color-rijks-yellow-light)',\n borderBottomColor: 'var(--color-rijks-skyblue)',\n ':hover': {\n backgroundColor: 'var(--color-rijks-yellow-hover)'\n }\n }\n }}\n title={props.page.label}\n >\n <Typography\n aria-hidden\n component='span'\n sx={merge(\n {\n display: 'flex',\n alignItems: 'center',\n\n [`&.${svgIconClasses.root}`]: {\n marginRight: '5px'\n }\n },\n FontNormalSxProps\n )}\n variant='body1'\n >\n {props.index === 0 && <HomeIcon />}\n {props.page.label}\n {props.page.subItems?.length ? <KeyboardArrowDownIcon /> : null}\n </Typography>\n {props.page.subItems && (\n <Popper\n anchorEl={anchorEl}\n id='submenu'\n open={open}\n placement='bottom-start'\n role='menu'\n sx={{\n backgroundColor: 'var(--color-bg-light)',\n padding: '4px 0',\n borderRadius: '6px',\n marginTop: '8px',\n minWidth: '180px',\n color: 'var(--color-text)',\n boxShadow: `\n rgb(255 255 255) 0 0 0 0,\n rgb(0 0 0 / 5%) 0 0 0 1px,\n rgb(0 0 0 / 10%) 0 10px 15px -3px,\n rgb(0 0 0 / 5%) 0 4px 6px -2px\n `\n }}\n >\n {props.page.subItems?.map((subItem, index) => (\n <MUIMenuItem\n aria-label={subItem.label}\n component={Link}\n disableRipple\n divider={subItem.divider ?? false}\n key={index}\n onClick={(event) => {\n event.stopPropagation();\n props.setSelectedPage(props.index);\n handleMenuClose();\n }}\n sx={merge(\n {\n ':active': {\n backgroundColor: 'var(--color-bg-light)'\n },\n\n [`&.${menuItemClasses.divider}`]: {\n borderBottom: 'transparent',\n position: 'relative',\n marginBottom: '16px',\n\n '::after': {\n content: '\"\"',\n position: 'absolute',\n bottom: '-8px',\n left: '0',\n width: '100%',\n borderBottom: '1px solid rgba(0, 0, 0, 0.12)'\n }\n },\n\n [`&.${svgIconClasses.root}`]: {\n fontSize: 'var(--font-size-text)',\n color: 'var(--color-rijks-grey-7)',\n marginRight: '12px'\n }\n },\n FontNormalSxProps\n )}\n to={subItem.to}\n >\n {subItem.icon}\n {subItem.label}\n </MUIMenuItem>\n ))}\n </Popper>\n )}\n </MUIMenuItem>\n );\n}\n"],"names":["AoaMenuItem","props","anchorEl","setAnchorEl","useState","open","setOpen","handleMenuOpen","event","currentTarget","handleMenuClose","linkProps","page","externalPath","href","to","createElement","MUIMenuItem","subItems","length","undefined","label","Link","MUILink","index","setSelectedPage","selectedPage","height","borderBottom","padding","backgroundColor","textDecoration","menuItemClasses","selected","borderBottomColor","jsxs","Typography","merge","display","alignItems","svgIconClasses","root","marginRight","FontNormalSxProps","jsx","HomeIcon","KeyboardArrowDownIcon","Popper","borderRadius","marginTop","minWidth","color","boxShadow","map","subItem","divider","stopPropagation","position","marginBottom","content","bottom","left","width","fontSize","icon"],"mappings":"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"}
1
+ {"version":3,"file":"MenuItem.js","sources":["../../../../../src/components/atoms/_menu/menu-item/MenuItem.tsx"],"sourcesContent":["import { Home as HomeIcon, KeyboardArrowDown as KeyboardArrowDownIcon } from '@mui/icons-material';\nimport {\n Link as MUILink,\n MenuItem as MUIMenuItem,\n menuItemClasses,\n svgIconClasses,\n Popper,\n Typography\n} from '@mui/material';\nimport { Link } from '@tanstack/react-router';\nimport { merge } from 'lodash';\nimport { useState, type Dispatch, type JSX, type MouseEvent, type SetStateAction } from 'react';\nimport { FontNormalSxProps } from '../../../../_constants';\n\ninterface SubMenu {\n /**\n * Optional divider to be shown below menu item\n */\n divider?: boolean;\n /**\n * Optional icon to be displayed in front of the label\n */\n icon?: JSX.Element;\n /**\n * The label of the menu item\n */\n label: string;\n /**\n * The path that the menu item links to on click\n */\n to: string;\n}\n\ntype Menu =\n /**\n * The path that the menu item links to on click and the subitems shown on hover\n */\n | { subItems: SubMenu[]; to: string }\n /**\n * Subitems are required when there is no path that the menu item links to on click\n */\n | { subItems: SubMenu[]; to?: never }\n /**\n * The path that the menu item links to on click is required when there are no subitems on hover\n */\n | { subItems?: never; to: string };\n\nexport type AoaPage = Menu & {\n /**\n * Optional boolean to indicate if it's an external \"to\" path\n */\n externalPath?: boolean;\n /**\n * The label of the menu item\n */\n label: string;\n};\n\ninterface MenuItemProps {\n /**\n * Index of the current menu item. Home === 0\n */\n readonly index: number;\n /**\n * The Page object for this menu item\n */\n readonly page: AoaPage;\n /**\n * The currently active menu item\n */\n readonly selectedPage: number | null;\n /**\n * The function to update the active menu item\n */\n readonly setSelectedPage: Dispatch<SetStateAction<number | null>>;\n}\n\n/**\n * Constructs a menu item using pre-defined Rijks styling\n *\n * @param props - Props to pass to the menu item\n * @example\n * ```jsx\n * <AoaMenuItem\n * index={index}\n * page={{\n * label: \"Products\",\n * to: \"/products\",\n * subItems: [\n * {\n * label: \"Books\",\n * to: \"/books\",\n * icon: <BookIcon />,\n * }\n * ]\n * }}\n * selectedPage={selectedPage}\n * setSelectedPage={setSelectedPage}\n * />\n * ```\n */\nexport function AoaMenuItem(props: MenuItemProps) {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const [open, setOpen] = useState(false);\n\n function handleMenuOpen(event: MouseEvent<HTMLAnchorElement, globalThis.MouseEvent>) {\n setOpen(true);\n setAnchorEl(event.currentTarget);\n }\n\n function handleMenuClose() {\n setOpen(false);\n setAnchorEl(null);\n }\n\n function linkProps() {\n if (props.page.externalPath) {\n return { href: props.page.to };\n } else {\n return { to: props.page.to };\n }\n }\n\n return (\n <MUIMenuItem\n {...linkProps()}\n aria-controls={props.page.subItems?.length && open ? 'submenu' : undefined}\n aria-expanded={props.page.subItems?.length && open ? 'true' : undefined}\n aria-haspopup={props.page.subItems?.length ? 'true' : 'false'}\n aria-label={props.page.label}\n component={props.page.to && !props.page.externalPath ? Link : MUILink}\n key={props.index}\n onClick={() => props.setSelectedPage(props.index)}\n onMouseEnter={(event: MouseEvent<HTMLAnchorElement, globalThis.MouseEvent>) => handleMenuOpen(event)}\n onMouseLeave={() => handleMenuClose()}\n role='menuitem'\n selected={props.selectedPage === null ? false : props.selectedPage === props.index}\n sx={{\n height: '100%',\n borderBottom: '3px solid transparent',\n padding: '6px 20px 3px',\n\n ':hover': {\n backgroundColor: 'var(--color-rijks-yellow-hover)',\n ...(props.page.to && {\n textDecoration: 'underline'\n })\n },\n\n [`&.${menuItemClasses.selected}`]: {\n backgroundColor: 'var(--color-rijks-yellow-light)',\n borderBottomColor: 'var(--color-rijks-skyblue)',\n ':hover': {\n backgroundColor: 'var(--color-rijks-yellow-hover)'\n }\n }\n }}\n title={props.page.label}\n >\n <Typography\n aria-hidden\n component='span'\n sx={merge(\n {\n display: 'flex',\n alignItems: 'center',\n\n [`&.${svgIconClasses.root}`]: {\n marginRight: '5px'\n }\n },\n FontNormalSxProps\n )}\n variant='body1'\n >\n {props.index === 0 && <HomeIcon />}\n {props.page.label}\n {props.page.subItems?.length ? <KeyboardArrowDownIcon /> : null}\n </Typography>\n {props.page.subItems && (\n <Popper\n anchorEl={anchorEl}\n id='submenu'\n open={open}\n placement='bottom-start'\n role='menu'\n sx={{\n backgroundColor: 'var(--color-bg-light)',\n padding: '4px 0',\n borderRadius: '6px',\n marginTop: '8px',\n minWidth: '180px',\n color: 'var(--color-text)',\n boxShadow: `\n rgb(255 255 255) 0 0 0 0,\n rgb(0 0 0 / 5%) 0 0 0 1px,\n rgb(0 0 0 / 10%) 0 10px 15px -3px,\n rgb(0 0 0 / 5%) 0 4px 6px -2px\n `\n }}\n >\n {props.page.subItems?.map((subItem, index) => (\n <MUIMenuItem\n aria-label={subItem.label}\n component={Link}\n disableRipple\n divider={subItem.divider ?? false}\n key={index}\n onClick={(event) => {\n event.stopPropagation();\n props.setSelectedPage(props.index);\n handleMenuClose();\n }}\n sx={merge(\n {\n ':active': {\n backgroundColor: 'var(--color-bg-light)'\n },\n\n [`&.${menuItemClasses.divider}`]: {\n borderBottom: 'transparent',\n position: 'relative',\n marginBottom: '16px',\n\n '::after': {\n content: '\"\"',\n position: 'absolute',\n bottom: '-8px',\n left: '0',\n width: '100%',\n borderBottom: '1px solid rgba(0, 0, 0, 0.12)'\n }\n },\n\n [`&.${svgIconClasses.root}`]: {\n fontSize: 'var(--font-size-text)',\n color: 'var(--color-rijks-grey-7)',\n marginRight: '12px'\n }\n },\n FontNormalSxProps\n )}\n to={subItem.to}\n >\n {subItem.icon}\n {subItem.label}\n </MUIMenuItem>\n ))}\n </Popper>\n )}\n </MUIMenuItem>\n );\n}\n"],"names":["AoaMenuItem","props","anchorEl","setAnchorEl","useState","open","setOpen","handleMenuOpen","event","currentTarget","handleMenuClose","linkProps","page","externalPath","href","to","createElement","MUIMenuItem","subItems","length","undefined","label","Link","MUILink","index","setSelectedPage","selectedPage","height","borderBottom","padding","backgroundColor","textDecoration","menuItemClasses","selected","borderBottomColor","jsxs","Typography","merge","display","alignItems","svgIconClasses","root","marginRight","FontNormalSxProps","jsx","HomeIcon","KeyboardArrowDownIcon","Popper","borderRadius","marginTop","minWidth","color","boxShadow","map","subItem","divider","stopPropagation","position","marginBottom","content","bottom","left","width","fontSize","icon"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserMenu.js","sources":["../../../../../src/components/atoms/_menu/user-menu/UserMenu.tsx"],"sourcesContent":["import { Avatar, Box, Link as MUILink, MenuItem as MUIMenuItem, Popper, Typography } from '@mui/material';\nimport { Link } from '@tanstack/react-router';\nimport { merge } from 'lodash';\nimport { useState, type MouseEvent } from 'react';\nimport { FontNormalSxProps } from '../../../../_constants';\n\ntype Action =\n /**\n * The path that the menu item links to on click\n */\n | { onClick?: never; to: string }\n /**\n * The onClick function for situations where you don't want to navigate to another page (e.g. logout)\n */\n | { onClick(): void; to?: never };\n\nexport type AoaSetting = Action & {\n /**\n * Optional divider to be shown below menu item\n */\n divider?: boolean;\n /**\n * The label of the menu item\n */\n label: string;\n};\n\ninterface UserMenuProps {\n /**\n * A list of the user menu items\n */\n readonly settings: AoaSetting[];\n /**\n * Username to be displayed on the left of the settings menu icon\n */\n readonly username?: string;\n}\n\n/**\n * Constructs a user menu using pre-defined Rijks styling\n *\n * @param props - Props to pass to the user menu\n * @example\n * ```jsx\n * <AoaUserMenu\n * settings={[\n * { label: \"Logout\", onClick: () => console.log(\"Logout\") }\n * ]}\n * />\n * ```\n */\n\nexport function AoaUserMenu(props: UserMenuProps) {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const [open, setOpen] = useState(false);\n\n function handleMenuOpen(event: MouseEvent<HTMLLIElement, globalThis.MouseEvent>) {\n setOpen(true);\n setAnchorEl(event.currentTarget);\n }\n\n function handleMenuClose() {\n setOpen(false);\n setAnchorEl(null);\n }\n\n return (\n <Box alignItems='center' display='flex' role='menu' sx={{ flexGrow: 0, minWidth: 'fit-content' }}>\n {props.username && (\n <Typography component='span' sx={merge({ marginRight: '16px' }, FontNormalSxProps)}>\n {props.username}\n </Typography>\n )}\n <MUIMenuItem\n aria-controls={open ? 'usermenu' : undefined}\n aria-expanded={open ? 'true' : undefined}\n aria-haspopup='true'\n aria-label='User menu'\n onMouseEnter={(event) => handleMenuOpen(event)}\n onMouseLeave={() => handleMenuClose()}\n sx={{\n padding: 0,\n\n ':hover': {\n backgroundColor: 'transparent'\n }\n }}\n >\n <Avatar />\n <Popper\n anchorEl={anchorEl}\n id='usermenu'\n open={open}\n placement='bottom-end'\n sx={{\n backgroundColor: 'var(--color-bg-light)',\n padding: '4px 0',\n borderRadius: '6px',\n marginTop: '8px',\n minWidth: '120px',\n color: 'var(--color-text)',\n boxShadow: `\n rgb(255 255 255) 0 0 0 0,\n rgb(0 0 0 / 5%) 0 0 0 1px,\n rgb(0 0 0 / 10%) 0 10px 15px -3px,\n rgb(0 0 0 / 5%) 0 4px 6px -2px\n `\n }}\n >\n {props.settings.map((setting, index) => (\n <MUIMenuItem\n component={setting.to ? Link : MUILink}\n disableRipple\n divider={setting.divider ?? false}\n key={index}\n onClick={(event: MouseEvent<HTMLAnchorElement, globalThis.MouseEvent>) => {\n event.stopPropagation();\n if (setting.onClick) {\n setting.onClick();\n }\n\n setOpen(false);\n }}\n sx={{ ...FontNormalSxProps }}\n to={setting.to}\n >\n {setting.label}\n </MUIMenuItem>\n ))}\n </Popper>\n </MUIMenuItem>\n </Box>\n );\n}\n"],"names":["AoaUserMenu","props","$","_c","anchorEl","setAnchorEl","useState","open","setOpen","t0","Symbol","for","event","currentTarget","handleMenuOpen","t1","handleMenuClose","t2","flexGrow","minWidth","t3","username","jsx","Typography","merge","marginRight","FontNormalSxProps","t4","undefined","t5","t6","t7","event_0","t8","t9","padding","backgroundColor","Avatar","t10","borderRadius","marginTop","color","boxShadow","t11","settings","t12","setting","index","MUIMenuItem","to","Link","MUILink","divider","event_1","stopPropagation","onClick","label","map","Popper","t13","jsxs","t14","Box"],"mappings":"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"}
1
+ {"version":3,"file":"UserMenu.js","sources":["../../../../../src/components/atoms/_menu/user-menu/UserMenu.tsx"],"sourcesContent":["import { Avatar, Box, Link as MUILink, MenuItem as MUIMenuItem, Popper, Typography } from '@mui/material';\nimport { Link } from '@tanstack/react-router';\nimport { merge } from 'lodash';\nimport { useState, type MouseEvent } from 'react';\nimport { FontNormalSxProps } from '../../../../_constants';\n\ntype Action =\n /**\n * The path that the menu item links to on click\n */\n | { onClick?: never; to: string }\n /**\n * The onClick function for situations where you don't want to navigate to another page (e.g. logout)\n */\n | { onClick(): void; to?: never };\n\nexport type AoaSetting = Action & {\n /**\n * Optional divider to be shown below menu item\n */\n divider?: boolean;\n /**\n * The label of the menu item\n */\n label: string;\n};\n\ninterface UserMenuProps {\n /**\n * A list of the user menu items\n */\n readonly settings: AoaSetting[];\n /**\n * Username to be displayed on the left of the settings menu icon\n */\n readonly username?: string;\n}\n\n/**\n * Constructs a user menu using pre-defined Rijks styling\n *\n * @param props - Props to pass to the user menu\n * @example\n * ```jsx\n * <AoaUserMenu\n * settings={[\n * { label: \"Logout\", onClick: () => console.log(\"Logout\") }\n * ]}\n * />\n * ```\n */\n\nexport function AoaUserMenu(props: UserMenuProps) {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const [open, setOpen] = useState(false);\n\n function handleMenuOpen(event: MouseEvent<HTMLLIElement, globalThis.MouseEvent>) {\n setOpen(true);\n setAnchorEl(event.currentTarget);\n }\n\n function handleMenuClose() {\n setOpen(false);\n setAnchorEl(null);\n }\n\n return (\n <Box alignItems='center' display='flex' role='menu' sx={{ flexGrow: 0, minWidth: 'fit-content' }}>\n {props.username && (\n <Typography component='span' sx={merge({ marginRight: '16px' }, FontNormalSxProps)}>\n {props.username}\n </Typography>\n )}\n <MUIMenuItem\n aria-controls={open ? 'usermenu' : undefined}\n aria-expanded={open ? 'true' : undefined}\n aria-haspopup='true'\n aria-label='User menu'\n onMouseEnter={(event) => handleMenuOpen(event)}\n onMouseLeave={() => handleMenuClose()}\n sx={{\n padding: 0,\n\n ':hover': {\n backgroundColor: 'transparent'\n }\n }}\n >\n <Avatar />\n <Popper\n anchorEl={anchorEl}\n id='usermenu'\n open={open}\n placement='bottom-end'\n sx={{\n backgroundColor: 'var(--color-bg-light)',\n padding: '4px 0',\n borderRadius: '6px',\n marginTop: '8px',\n minWidth: '120px',\n color: 'var(--color-text)',\n boxShadow: `\n rgb(255 255 255) 0 0 0 0,\n rgb(0 0 0 / 5%) 0 0 0 1px,\n rgb(0 0 0 / 10%) 0 10px 15px -3px,\n rgb(0 0 0 / 5%) 0 4px 6px -2px\n `\n }}\n >\n {props.settings.map((setting, index) => (\n <MUIMenuItem\n component={setting.to ? Link : MUILink}\n disableRipple\n divider={setting.divider ?? false}\n key={index}\n onClick={(event: MouseEvent<HTMLAnchorElement, globalThis.MouseEvent>) => {\n event.stopPropagation();\n if (setting.onClick) {\n setting.onClick();\n }\n\n setOpen(false);\n }}\n sx={{ ...FontNormalSxProps }}\n to={setting.to}\n >\n {setting.label}\n </MUIMenuItem>\n ))}\n </Popper>\n </MUIMenuItem>\n </Box>\n );\n}\n"],"names":["AoaUserMenu","props","$","_c","anchorEl","setAnchorEl","useState","open","setOpen","t0","Symbol","for","event","currentTarget","handleMenuOpen","t1","handleMenuClose","t2","flexGrow","minWidth","t3","username","jsx","Typography","merge","marginRight","FontNormalSxProps","t4","undefined","t5","t6","t7","event_0","t8","t9","padding","backgroundColor","Avatar","t10","borderRadius","marginTop","color","boxShadow","t11","settings","t12","setting","index","MUIMenuItem","to","Link","MUILink","divider","event_1","stopPropagation","onClick","label","map","Popper","t13","jsxs","t14","Box"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.js","sources":["../../../../src/components/atoms/icon-button/IconButton.tsx"],"sourcesContent":["import { IconButton as MUIIconButton, type SxProps } from '@mui/material';\nimport { merge } from 'lodash';\nimport type { JSX, Ref } from 'react';\nimport { AoaTooltip } from '../tooltip/Tooltip';\n\nexport interface AoaIconButtonProps {\n /**\n * Data-qa tag for E2E test purposes\n */\n readonly 'data-qa'?: string;\n /**\n * Whether this button should be disabled\n */\n readonly disabled?: boolean;\n /**\n * The icon to be displayed as a button\n */\n readonly icon: JSX.Element;\n /**\n * Whether this button is being used inline\n */\n readonly inline?: boolean;\n /**\n * The label that is shown on hover\n */\n readonly label: string;\n /**\n * The action that should be triggered when clicking the button\n */\n onClick(this: void, ..._args: any[]): void;\n /**\n * The ref to the button element\n */\n readonly ref?: Ref<HTMLButtonElement> | undefined;\n /**\n * Material UI's property to apply styling\n */\n readonly sx?: SxProps;\n}\n\n/**\n * Constructs an icon button using pre-defined Rijks styling\n *\n * @param props - Props to pass to the icon button\n * @example\n * ```jsx\n * <AoaIconButton onClick={() => console.log()} label='Order a burger' icon={<Fastfood />} />\n * ```\n */\nexport function AoaIconButton({ ref, ...props }: AoaIconButtonProps) {\n const Button = (\n <MUIIconButton\n aria-label={props.label}\n data-qa={props['data-qa']}\n disableFocusRipple\n disableRipple\n disableTouchRipple\n disabled={props.disabled}\n onClick={props.onClick}\n ref={ref}\n role='button'\n sx={merge(\n {\n color: 'var(--color-primary)',\n border: '1px solid var(--color-primary)',\n borderRadius: 0,\n ':hover, :active, :focus': {\n color: 'var(--color-primary-hover)',\n borderColor: 'var(--color-primary-hover)'\n },\n ':disabled': {\n backgroundColor: 'transparent',\n borderColor: 'var(--color-text-disabled)',\n color: 'var(--color-text-disabled)'\n },\n ':focus': {\n outline: '2px dashed var(--color-text)',\n outlineOffset: 3,\n boxShadow: 'none'\n },\n ...(props.inline && {\n border: 'none',\n padding: 0\n })\n },\n props.sx\n )}\n >\n {props.icon}\n </MUIIconButton>\n );\n\n return (\n <AoaTooltip title={props.label}>\n {props.disabled ? (\n <span aria-label={props.label} data-testid='disabled-span-wrapper' role='tooltip'>\n {Button}\n </span>\n ) : (\n Button\n )}\n </AoaTooltip>\n );\n}\n"],"names":["AoaIconButton","t0","$","_c","props","ref","t1","label","t2","t3","disabled","t4","onClick","t5","inline","sx","t6","border","padding","merge","color","borderRadius","borderColor","backgroundColor","outline","outlineOffset","boxShadow","icon","jsx","MUIIconButton","Button","t7","t8","AoaTooltip"],"mappings":"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"}
1
+ {"version":3,"file":"IconButton.js","sources":["../../../../src/components/atoms/icon-button/IconButton.tsx"],"sourcesContent":["import { IconButton as MUIIconButton, type SxProps } from '@mui/material';\nimport { merge } from 'lodash';\nimport type { JSX, Ref } from 'react';\nimport { AoaTooltip } from '../tooltip/Tooltip';\n\nexport interface AoaIconButtonProps {\n /**\n * Data-qa tag for E2E test purposes\n */\n readonly 'data-qa'?: string;\n /**\n * Whether this button should be disabled\n */\n readonly disabled?: boolean;\n /**\n * The icon to be displayed as a button\n */\n readonly icon: JSX.Element;\n /**\n * Whether this button is being used inline\n */\n readonly inline?: boolean;\n /**\n * The label that is shown on hover\n */\n readonly label: string;\n /**\n * The action that should be triggered when clicking the button\n */\n onClick(this: void, ..._args: any[]): void;\n /**\n * The ref to the button element\n */\n readonly ref?: Ref<HTMLButtonElement> | undefined;\n /**\n * Material UI's property to apply styling\n */\n readonly sx?: SxProps;\n}\n\n/**\n * Constructs an icon button using pre-defined Rijks styling\n *\n * @param props - Props to pass to the icon button\n * @example\n * ```jsx\n * <AoaIconButton onClick={() => console.log()} label='Order a burger' icon={<Fastfood />} />\n * ```\n */\nexport function AoaIconButton({ ref, ...props }: AoaIconButtonProps) {\n const Button = (\n <MUIIconButton\n aria-label={props.label}\n data-qa={props['data-qa']}\n disableFocusRipple\n disableRipple\n disableTouchRipple\n disabled={props.disabled}\n onClick={props.onClick}\n ref={ref}\n role='button'\n sx={merge(\n {\n color: 'var(--color-primary)',\n border: '1px solid var(--color-primary)',\n borderRadius: 0,\n ':hover, :active, :focus': {\n color: 'var(--color-primary-hover)',\n borderColor: 'var(--color-primary-hover)'\n },\n ':disabled': {\n backgroundColor: 'transparent',\n borderColor: 'var(--color-text-disabled)',\n color: 'var(--color-text-disabled)'\n },\n ':focus': {\n outline: '2px dashed var(--color-text)',\n outlineOffset: 3,\n boxShadow: 'none'\n },\n ...(props.inline && {\n border: 'none',\n padding: 0\n })\n },\n props.sx\n )}\n >\n {props.icon}\n </MUIIconButton>\n );\n\n return (\n <AoaTooltip title={props.label}>\n {props.disabled ? (\n <span aria-label={props.label} data-testid='disabled-span-wrapper' role='tooltip'>\n {Button}\n </span>\n ) : (\n Button\n )}\n </AoaTooltip>\n );\n}\n"],"names":["AoaIconButton","t0","$","_c","props","ref","t1","label","t2","t3","disabled","t4","onClick","t5","inline","sx","t6","border","padding","merge","color","borderRadius","borderColor","backgroundColor","outline","outlineOffset","boxShadow","icon","jsx","MUIIconButton","Button","t7","t8","AoaTooltip"],"mappings":"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"}
@@ -57,7 +57,7 @@ export type AoaTableProps<T extends object = any> = ModeProps & {
57
57
  /**
58
58
  * Overwrite a safe selection of the {@link DataGrid} properties
59
59
  */
60
- readonly dataGridOverridableProps?: Pick<DataGridProps<T>, 'checkboxSelection' | 'disableColumnFilter' | 'disableRowSelectionOnClick' | 'getRowId' | 'ignoreDiacritics' | 'isRowSelectable' | 'loading' | 'onRowSelectionModelChange' | 'rowSelectionModel'>;
60
+ readonly dataGridOverridableProps?: Pick<DataGridProps<T>, 'apiRef' | 'checkboxSelection' | 'disableColumnFilter' | 'disableRowSelectionOnClick' | 'getRowId' | 'ignoreDiacritics' | 'isRowSelectable' | 'loading' | 'onRowSelectionModelChange' | 'rowSelectionModel'>;
61
61
  /**
62
62
  * Sets the initial sortModel in case the required sorting differs from the back-end's default sorting
63
63
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/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,mBAAmB,GACnB,qBAAqB,GACrB,4BAA4B,GAC5B,UAAU,GACV,kBAAkB,GAClB,iBAAiB,GACjB,SAAS,GACT,2BAA2B,GAC3B,mBAAmB,CACtB,CAAC;IACF;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IAC/D;;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,2CAwP9E"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/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,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IAC/D;;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,2CAwP9E"}
@@ -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 { 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
+ {"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 | '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 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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"}