@oneblink/apps-react 1.0.0-beta.2 → 1.0.0-beta.5

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 (79) hide show
  1. package/dist/components/CopyToClipboardIconButton.js +6 -15
  2. package/dist/components/CopyToClipboardIconButton.js.map +1 -1
  3. package/dist/components/CustomAccordion.d.ts +4 -4
  4. package/dist/components/CustomAccordion.js +29 -34
  5. package/dist/components/CustomAccordion.js.map +1 -1
  6. package/dist/components/ErrorSnackbar.d.ts +3 -3
  7. package/dist/components/ErrorSnackbar.js +22 -45
  8. package/dist/components/ErrorSnackbar.js.map +1 -1
  9. package/dist/components/Lists.d.ts +19 -4
  10. package/dist/components/Lists.js +40 -38
  11. package/dist/components/Lists.js.map +1 -1
  12. package/dist/components/formStore/FormStoreTableProvider.d.ts +6 -0
  13. package/dist/components/formStore/FormStoreTableProvider.js +86 -0
  14. package/dist/components/formStore/FormStoreTableProvider.js.map +1 -0
  15. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.d.ts +5 -0
  16. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +16 -0
  17. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js.map +1 -0
  18. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.d.ts +5 -0
  19. package/dist/components/formStore/{ColumnsConfigurationButton.js → OneBlinkFormStoreColumnsButton.js} +8 -4
  20. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js.map +1 -0
  21. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.d.ts +5 -0
  22. package/dist/components/formStore/{DownloadSubmissionDataButton.js → OneBlinkFormStoreDownloadButton.js} +8 -4
  23. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js.map +1 -0
  24. package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +8 -0
  25. package/dist/components/formStore/OneBlinkFormStoreProvider.js +25 -0
  26. package/dist/components/formStore/OneBlinkFormStoreProvider.js.map +1 -0
  27. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.d.ts +5 -0
  28. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +12 -0
  29. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js.map +1 -0
  30. package/dist/components/formStore/OneBlinkFormStoreTable.d.ts +4 -0
  31. package/dist/components/formStore/OneBlinkFormStoreTable.js +184 -0
  32. package/dist/components/formStore/OneBlinkFormStoreTable.js.map +1 -0
  33. package/dist/components/formStore/table/FormElementTableCell.js +28 -8
  34. package/dist/components/formStore/table/FormElementTableCell.js.map +1 -1
  35. package/dist/components/formStore/table/RepeatableSetCell.d.ts +0 -1
  36. package/dist/components/formStore/table/RepeatableSetCell.js +23 -25
  37. package/dist/components/formStore/table/RepeatableSetCell.js.map +1 -1
  38. package/dist/components/formStore/table/TableCellCopyButton.js +15 -18
  39. package/dist/components/formStore/table/TableCellCopyButton.js.map +1 -1
  40. package/dist/components/formStore/table/generateColumns.js.map +1 -1
  41. package/dist/components/formStore/table/useFormStoreTable.d.ts +43 -3
  42. package/dist/components/formStore/table/useFormStoreTable.js +11 -2
  43. package/dist/components/formStore/table/useFormStoreTable.js.map +1 -1
  44. package/dist/components/formStore/useFormStoreTableContext.d.ts +44 -0
  45. package/dist/components/formStore/useFormStoreTableContext.js +10 -0
  46. package/dist/components/formStore/useFormStoreTableContext.js.map +1 -0
  47. package/dist/components/{ErrorMessage.d.ts → messages/ErrorMessage.d.ts} +2 -3
  48. package/dist/components/{ErrorMessage.js → messages/ErrorMessage.js} +1 -1
  49. package/dist/components/messages/ErrorMessage.js.map +1 -0
  50. package/dist/components/messages/LargeIconMessage.d.ts +4 -3
  51. package/dist/components/messages/LargeIconMessage.js +31 -61
  52. package/dist/components/messages/LargeIconMessage.js.map +1 -1
  53. package/dist/components/{NoResourcesYet.d.ts → messages/NoResourcesYet.d.ts} +2 -3
  54. package/dist/components/{NoResourcesYet.js → messages/NoResourcesYet.js} +1 -1
  55. package/dist/components/messages/NoResourcesYet.js.map +1 -0
  56. package/dist/form-elements/FormElementDate.js +1 -1
  57. package/dist/form-elements/FormElementDate.js.map +1 -1
  58. package/dist/index.d.ts +6 -1
  59. package/dist/index.js +6 -1
  60. package/dist/index.js.map +1 -1
  61. package/package.json +7 -5
  62. package/dist/OneBlinkFormStoreView.d.ts +0 -8
  63. package/dist/OneBlinkFormStoreView.js +0 -55
  64. package/dist/OneBlinkFormStoreView.js.map +0 -1
  65. package/dist/components/ErrorMessage.js.map +0 -1
  66. package/dist/components/NoResourcesYet.js.map +0 -1
  67. package/dist/components/formStore/ColumnsConfigurationButton.d.ts +0 -10
  68. package/dist/components/formStore/ColumnsConfigurationButton.js.map +0 -1
  69. package/dist/components/formStore/DownloadSubmissionDataButton.d.ts +0 -13
  70. package/dist/components/formStore/DownloadSubmissionDataButton.js.map +0 -1
  71. package/dist/components/formStore/FormStore.d.ts +0 -9
  72. package/dist/components/formStore/FormStore.js +0 -103
  73. package/dist/components/formStore/FormStore.js.map +0 -1
  74. package/dist/components/formStore/table/index.d.ts +0 -17
  75. package/dist/components/formStore/table/index.js +0 -194
  76. package/dist/components/formStore/table/index.js.map +0 -1
  77. package/dist/hooks/useLegacyElements.d.ts +0 -16
  78. package/dist/hooks/useLegacyElements.js +0 -55
  79. package/dist/hooks/useLegacyElements.js.map +0 -1
@@ -1,21 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import copy from 'copy-to-clipboard';
3
3
  import { IconButton, Tooltip, Snackbar } from '@mui/material';
4
- import makeStyles from '@mui/styles/makeStyles';
5
4
  import FileCopy from '@mui/icons-material/FileCopy';
6
- import clsx from 'clsx';
7
- // Styles
8
- const useStyles = makeStyles((theme) => ({
9
- icon: {
10
- fontSize: 18,
11
- },
12
- noMarginY: {
13
- marginTop: theme.spacing(-1),
14
- marginBottom: theme.spacing(-1),
15
- },
16
- }));
5
+ const noMargin = {
6
+ marginTop: -1,
7
+ marginBottom: -1,
8
+ };
17
9
  export function CopyToClipBoardIconButton({ text, large, noMarginY, className, ...rest }) {
18
- const classes = useStyles();
19
10
  const [isCopyToClipboardOpen, setIsCopyToClipboardOpen] = React.useState(false);
20
11
  const copyToClipboard = React.useCallback(() => {
21
12
  copy(text);
@@ -29,8 +20,8 @@ export function CopyToClipBoardIconButton({ text, large, noMarginY, className, .
29
20
  React.createElement(IconButton, { onClick: (e) => {
30
21
  e.stopPropagation();
31
22
  copyToClipboard();
32
- }, "data-cypress": "copy-to-clip-board-button", className: clsx(className, { [classes.noMarginY]: noMarginY }), ...rest },
33
- React.createElement(FileCopy, { className: large ? undefined : classes.icon }))),
23
+ }, "data-cypress": "copy-to-clip-board-button", className: className, sx: noMarginY ? noMargin : undefined, ...rest },
24
+ React.createElement(FileCopy, { sx: large ? undefined : { fontSize: 18 } }))),
34
25
  React.createElement(Snackbar, { anchorOrigin: {
35
26
  vertical: 'bottom',
36
27
  horizontal: 'right',
@@ -1 +1 @@
1
- {"version":3,"file":"CopyToClipboardIconButton.js","sourceRoot":"","sources":["../../src/components/CopyToClipboardIconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,mBAAmB,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAC/C,OAAO,QAAQ,MAAM,8BAA8B,CAAA;AACnD,OAAO,IAAI,MAAM,MAAM,CAAA;AAQvB,SAAS;AACT,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvC,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE;KACb;IACD,SAAS,EAAE;QACT,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5B,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KAChC;CACF,CAAC,CAAC,CAAA;AAEH,MAAM,UAAU,yBAAyB,CAAC,EACxC,IAAI,EACJ,KAAK,EACL,SAAS,EACT,SAAS,EACT,GAAG,IAAI,EACD;IACN,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GACrD,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvB,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7C,IAAI,CAAC,IAAI,CAAC,CAAA;QACV,wBAAwB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IACV,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,wBAAwB,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,OAAO,CACL;QACE,oBAAC,OAAO,IAAC,KAAK,EAAC,mBAAmB;YAChC,oBAAC,UAAU,IACT,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBACb,CAAC,CAAC,eAAe,EAAE,CAAA;oBACnB,eAAe,EAAE,CAAA;gBACnB,CAAC,kBACY,2BAA2B,EACxC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,KAC1D,IAAI;gBAER,oBAAC,QAAQ,IAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAI,CAC9C,CACL;QACV,oBAAC,QAAQ,IACP,YAAY,EAAE;gBACZ,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,OAAO;aACpB,EACD,IAAI,EAAE,qBAAqB,EAC3B,OAAO,EAAE,WAAW,EACpB,gBAAgB,EAAE,IAAI,EACtB,YAAY,EAAE;gBACZ,kBAAkB,EAAE,4BAA4B;aACjD,EACD,OAAO,EACL,8BACE,EAAE,EAAC,4BAA4B,kBAClB,mCAAmC,0BAG3C,GAET,CACD,CACJ,CAAA;AACH,CAAC;AACD,eAAe,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport copy from 'copy-to-clipboard'\nimport { IconButton, Tooltip, Snackbar } from '@mui/material'\nimport makeStyles from '@mui/styles/makeStyles'\nimport FileCopy from '@mui/icons-material/FileCopy'\nimport clsx from 'clsx'\n\ntype Props = {\n text: string\n large?: boolean\n noMarginY?: boolean\n} & React.ComponentProps<typeof IconButton>\n\n// Styles\nconst useStyles = makeStyles((theme) => ({\n icon: {\n fontSize: 18,\n },\n noMarginY: {\n marginTop: theme.spacing(-1),\n marginBottom: theme.spacing(-1),\n },\n}))\n\nexport function CopyToClipBoardIconButton({\n text,\n large,\n noMarginY,\n className,\n ...rest\n}: Props) {\n const classes = useStyles()\n const [isCopyToClipboardOpen, setIsCopyToClipboardOpen] =\n React.useState(false)\n const copyToClipboard = React.useCallback(() => {\n copy(text)\n setIsCopyToClipboardOpen(true)\n }, [text])\n const handleClose = React.useCallback(() => {\n setIsCopyToClipboardOpen(false)\n }, [])\n return (\n <>\n <Tooltip title=\"Copy to clipboard\">\n <IconButton\n onClick={(e) => {\n e.stopPropagation()\n copyToClipboard()\n }}\n data-cypress=\"copy-to-clip-board-button\"\n className={clsx(className, { [classes.noMarginY]: noMarginY })}\n {...rest}\n >\n <FileCopy className={large ? undefined : classes.icon} />\n </IconButton>\n </Tooltip>\n <Snackbar\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n open={isCopyToClipboardOpen}\n onClose={handleClose}\n autoHideDuration={1500}\n ContentProps={{\n 'aria-describedby': 'copy-clip-board-message-id',\n }}\n message={\n <span\n id=\"copy-clip-board-message-id\"\n data-cypress=\"copied-text-to-clip-board-message\"\n >\n Copied to Clipboard\n </span>\n }\n />\n </>\n )\n}\nexport default React.memo(CopyToClipBoardIconButton)\n"]}
1
+ {"version":3,"file":"CopyToClipboardIconButton.js","sourceRoot":"","sources":["../../src/components/CopyToClipboardIconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,mBAAmB,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAW,MAAM,eAAe,CAAA;AACtE,OAAO,QAAQ,MAAM,8BAA8B,CAAA;AAQnD,MAAM,QAAQ,GAAY;IACxB,SAAS,EAAE,CAAC,CAAC;IACb,YAAY,EAAE,CAAC,CAAC;CACjB,CAAA;AACD,MAAM,UAAU,yBAAyB,CAAC,EACxC,IAAI,EACJ,KAAK,EACL,SAAS,EACT,SAAS,EACT,GAAG,IAAI,EACD;IACN,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GACrD,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvB,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7C,IAAI,CAAC,IAAI,CAAC,CAAA;QACV,wBAAwB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IACV,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,wBAAwB,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,OAAO,CACL;QACE,oBAAC,OAAO,IAAC,KAAK,EAAC,mBAAmB;YAChC,oBAAC,UAAU,IACT,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBACb,CAAC,CAAC,eAAe,EAAE,CAAA;oBACnB,eAAe,EAAE,CAAA;gBACnB,CAAC,kBACY,2BAA2B,EACxC,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,KAChC,IAAI;gBAER,oBAAC,QAAQ,IAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAI,CAC3C,CACL;QACV,oBAAC,QAAQ,IACP,YAAY,EAAE;gBACZ,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,OAAO;aACpB,EACD,IAAI,EAAE,qBAAqB,EAC3B,OAAO,EAAE,WAAW,EACpB,gBAAgB,EAAE,IAAI,EACtB,YAAY,EAAE;gBACZ,kBAAkB,EAAE,4BAA4B;aACjD,EACD,OAAO,EACL,8BACE,EAAE,EAAC,4BAA4B,kBAClB,mCAAmC,0BAG3C,GAET,CACD,CACJ,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport copy from 'copy-to-clipboard'\nimport { IconButton, Tooltip, Snackbar, SxProps } from '@mui/material'\nimport FileCopy from '@mui/icons-material/FileCopy'\n\ntype Props = {\n text: string\n large?: boolean\n noMarginY?: boolean\n} & React.ComponentProps<typeof IconButton>\n\nconst noMargin: SxProps = {\n marginTop: -1,\n marginBottom: -1,\n}\nexport function CopyToClipBoardIconButton({\n text,\n large,\n noMarginY,\n className,\n ...rest\n}: Props) {\n const [isCopyToClipboardOpen, setIsCopyToClipboardOpen] =\n React.useState(false)\n const copyToClipboard = React.useCallback(() => {\n copy(text)\n setIsCopyToClipboardOpen(true)\n }, [text])\n const handleClose = React.useCallback(() => {\n setIsCopyToClipboardOpen(false)\n }, [])\n return (\n <>\n <Tooltip title=\"Copy to clipboard\">\n <IconButton\n onClick={(e) => {\n e.stopPropagation()\n copyToClipboard()\n }}\n data-cypress=\"copy-to-clip-board-button\"\n className={className}\n sx={noMarginY ? noMargin : undefined}\n {...rest}\n >\n <FileCopy sx={large ? undefined : { fontSize: 18 }} />\n </IconButton>\n </Tooltip>\n <Snackbar\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n open={isCopyToClipboardOpen}\n onClose={handleClose}\n autoHideDuration={1500}\n ContentProps={{\n 'aria-describedby': 'copy-clip-board-message-id',\n }}\n message={\n <span\n id=\"copy-clip-board-message-id\"\n data-cypress=\"copied-text-to-clip-board-message\"\n >\n Copied to Clipboard\n </span>\n }\n />\n </>\n )\n}\n\nexport default React.memo(CopyToClipBoardIconButton)\n"]}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- export declare const CustomAccordion: import("react").JSXElementConstructor<Omit<import("@mui/material").AccordionProps, "classes"> & import("@mui/styles/withStyles").StyledComponentProps<"root" | "expanded"> & object>;
3
- export declare const CustomAccordionSummary: import("react").JSXElementConstructor<Omit<{
2
+ export declare const CustomAccordion: import("@emotion/styled").StyledComponent<import("@mui/material").AccordionProps & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
3
+ export declare const CustomAccordionSummary: import("@emotion/styled").StyledComponent<{
4
4
  children?: import("react").ReactNode;
5
5
  classes?: Partial<import("@mui/material").AccordionSummaryClasses> | undefined;
6
6
  expandIcon?: import("react").ReactNode;
@@ -23,5 +23,5 @@ export declare const CustomAccordionSummary: import("react").JSXElementConstruct
23
23
  touchRippleRef?: import("react").Ref<import("@mui/material/ButtonBase/TouchRipple").TouchRippleActions> | undefined;
24
24
  }, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement> | "key"> & {
25
25
  ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
26
- }, "children" | "disabled" | "tabIndex" | keyof import("@mui/material/OverridableComponent").CommonProps | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "sx" | "TouchRippleProps" | "touchRippleRef" | "expandIcon">, "classes"> & import("@mui/styles/withStyles").StyledComponentProps<"root" | "content" | "expanded"> & object>;
27
- export declare const CustomAccordionDetails: import("react").JSXElementConstructor<Omit<import("@mui/material").AccordionDetailsProps, "classes"> & import("@mui/styles/withStyles").StyledComponentProps<"root"> & object>;
26
+ }, "children" | "disabled" | "tabIndex" | keyof import("@mui/material/OverridableComponent").CommonProps | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "sx" | "TouchRippleProps" | "touchRippleRef" | "expandIcon"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
27
+ export declare const CustomAccordionDetails: import("@emotion/styled").StyledComponent<import("@mui/material").AccordionDetailsProps & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
@@ -1,40 +1,35 @@
1
- import { Accordion, AccordionSummary, AccordionDetails } from '@mui/material';
2
- import withStyles from '@mui/styles/withStyles';
3
- export const CustomAccordion = withStyles((theme) => ({
4
- root: {
5
- border: `1px solid ${theme.palette.divider}`,
6
- boxShadow: 'none',
7
- width: '100%',
8
- '&:not(:last-of-type)': {
9
- borderBottom: 'none',
10
- },
11
- '&:before': {
12
- display: 'none',
13
- },
14
- '&$expanded': {
15
- margin: 'auto',
16
- },
1
+ import { Accordion, AccordionSummary, AccordionDetails, styled, } from '@mui/material';
2
+ export const CustomAccordion = styled(Accordion)(({ theme }) => ({
3
+ border: `1px solid ${theme.palette.divider}`,
4
+ boxShadow: 'none',
5
+ width: '100%',
6
+ '&:not(:last-of-type)': {
7
+ borderBottom: 'none',
17
8
  },
18
- expanded: {},
19
- }))(Accordion);
20
- export const CustomAccordionSummary = withStyles((theme) => ({
21
- root: {
22
- backgroundColor: 'rgba(0, 0, 0, .03)',
23
- '&$expanded': {
24
- borderBottom: `1px solid ${theme.palette.divider}`,
25
- minHeight: theme.spacing(6),
26
- },
9
+ '&:before': {
10
+ display: 'none',
27
11
  },
28
- content: {
29
- '&$expanded': {
12
+ '& .Mui-expanded': {
13
+ margin: 'auto',
14
+ },
15
+ }));
16
+ export const CustomAccordionSummary = styled(AccordionSummary)(({ theme }) => ({
17
+ backgroundColor: 'rgba(0, 0, 0, .03)',
18
+ '&.Mui-expanded': {
19
+ minHeight: theme.spacing(6),
20
+ },
21
+ '& .Mui-expanded': {
22
+ marginTop: theme.spacing(1.5),
23
+ marginBottom: theme.spacing(1.5),
24
+ },
25
+ '& .MuiAccordionSummary-content': {
26
+ '.Mui-expanded': {
30
27
  margin: theme.spacing(1, 0),
31
28
  },
32
29
  },
33
- expanded: {},
34
- }))(AccordionSummary);
35
- export const CustomAccordionDetails = withStyles((theme) => ({
36
- root: {
37
- padding: theme.spacing(1, 2),
38
- },
39
- }))(AccordionDetails);
30
+ }));
31
+ export const CustomAccordionDetails = styled(AccordionDetails)(({ theme }) => ({
32
+ padding: theme.spacing(1, 2),
33
+ borderTop: `1px solid ${theme.palette.divider}`,
34
+ }));
40
35
  //# sourceMappingURL=CustomAccordion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomAccordion.js","sourceRoot":"","sources":["../../src/components/CustomAccordion.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAE7E,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAE/C,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,EAAE;QACJ,MAAM,EAAE,aAAa,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;QAC5C,SAAS,EAAE,MAAM;QACjB,KAAK,EAAE,MAAM;QACb,sBAAsB,EAAE;YACtB,YAAY,EAAE,MAAM;SACrB;QACD,UAAU,EAAE;YACV,OAAO,EAAE,MAAM;SAChB;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,MAAM;SACf;KACF;IACD,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;AAEd,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3D,IAAI,EAAE;QACJ,eAAe,EAAE,oBAAoB;QACrC,YAAY,EAAE;YACZ,YAAY,EAAE,aAAa,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;YAClD,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;SAC5B;KACF;IACD,OAAO,EAAE;QACP,YAAY,EAAE;YACZ,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;SAC5B;KACF;IACD,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAA;AAErB,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3D,IAAI,EAAE;QACJ,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;KAC7B;CACF,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAA","sourcesContent":["import { Accordion, AccordionSummary, AccordionDetails } from '@mui/material'\n\nimport withStyles from '@mui/styles/withStyles'\n\nexport const CustomAccordion = withStyles((theme) => ({\n root: {\n border: `1px solid ${theme.palette.divider}`,\n boxShadow: 'none',\n width: '100%',\n '&:not(:last-of-type)': {\n borderBottom: 'none',\n },\n '&:before': {\n display: 'none',\n },\n '&$expanded': {\n margin: 'auto',\n },\n },\n expanded: {},\n}))(Accordion)\n\nexport const CustomAccordionSummary = withStyles((theme) => ({\n root: {\n backgroundColor: 'rgba(0, 0, 0, .03)',\n '&$expanded': {\n borderBottom: `1px solid ${theme.palette.divider}`,\n minHeight: theme.spacing(6),\n },\n },\n content: {\n '&$expanded': {\n margin: theme.spacing(1, 0),\n },\n },\n expanded: {},\n}))(AccordionSummary)\n\nexport const CustomAccordionDetails = withStyles((theme) => ({\n root: {\n padding: theme.spacing(1, 2),\n },\n}))(AccordionDetails)\n"]}
1
+ {"version":3,"file":"CustomAccordion.js","sourceRoot":"","sources":["../../src/components/CustomAccordion.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,GACP,MAAM,eAAe,CAAA;AAEtB,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,EAAE,aAAa,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;IAC5C,SAAS,EAAE,MAAM;IACjB,KAAK,EAAE,MAAM;IACb,sBAAsB,EAAE;QACtB,YAAY,EAAE,MAAM;KACrB;IACD,UAAU,EAAE;QACV,OAAO,EAAE,MAAM;KAChB;IACD,iBAAiB,EAAE;QACjB,MAAM,EAAE,MAAM;KACf;CACF,CAAC,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7E,eAAe,EAAE,oBAAoB;IACrC,gBAAgB,EAAE;QAChB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KAC5B;IACD,iBAAiB,EAAE;QACjB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAC7B,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;KACjC;IACD,gCAAgC,EAAE;QAChC,eAAe,EAAE;YACf,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;SAC5B;KACF;CACF,CAAC,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7E,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5B,SAAS,EAAE,aAAa,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;CAChD,CAAC,CAAC,CAAA","sourcesContent":["import {\n Accordion,\n AccordionSummary,\n AccordionDetails,\n styled,\n} from '@mui/material'\n\nexport const CustomAccordion = styled(Accordion)(({ theme }) => ({\n border: `1px solid ${theme.palette.divider}`,\n boxShadow: 'none',\n width: '100%',\n '&:not(:last-of-type)': {\n borderBottom: 'none',\n },\n '&:before': {\n display: 'none',\n },\n '& .Mui-expanded': {\n margin: 'auto',\n },\n}))\n\nexport const CustomAccordionSummary = styled(AccordionSummary)(({ theme }) => ({\n backgroundColor: 'rgba(0, 0, 0, .03)',\n '&.Mui-expanded': {\n minHeight: theme.spacing(6),\n },\n '& .Mui-expanded': {\n marginTop: theme.spacing(1.5),\n marginBottom: theme.spacing(1.5),\n },\n '& .MuiAccordionSummary-content': {\n '.Mui-expanded': {\n margin: theme.spacing(1, 0),\n },\n },\n}))\n\nexport const CustomAccordionDetails = styled(AccordionDetails)(({ theme }) => ({\n padding: theme.spacing(1, 2),\n borderTop: `1px solid ${theme.palette.divider}`,\n}))\n"]}
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
- declare type Props = {
2
+ declare function ErrorSnackbar({ open, onClose, children, }: {
3
3
  open: boolean;
4
4
  children: React.ReactNode;
5
5
  onClose: (arg: null) => unknown;
6
- };
7
- declare const _default: React.ComponentType<Props>;
6
+ }): JSX.Element;
7
+ declare const _default: React.MemoExoticComponent<typeof ErrorSnackbar>;
8
8
  export default _default;
@@ -1,49 +1,26 @@
1
1
  import * as React from 'react';
2
- import clsx from 'clsx';
3
- import withStyles from '@mui/styles/withStyles';
4
- import IconButton from '@mui/material/IconButton';
5
- import Snackbar from '@mui/material/Snackbar';
6
- import SnackbarContent from '@mui/material/SnackbarContent';
7
- import ErrorIcon from '@mui/icons-material/Error';
8
- import CloseIcon from '@mui/icons-material/Close';
9
- const styles = (theme) => ({
10
- snackbarContent: {
11
- backgroundColor: theme.palette.error.dark,
12
- },
13
- icon: {
14
- fontSize: 20,
15
- },
16
- iconVariant: {
17
- marginRight: theme.spacing(2),
18
- },
19
- message: {
20
- display: 'flex',
21
- alignItems: 'center',
22
- },
2
+ import { Snackbar, IconButton } from '@mui/material';
3
+ import { Close } from '@mui/icons-material';
4
+ import MuiAlert from '@mui/material/Alert';
5
+ import { styled } from '@mui/material/styles';
6
+ const Alert = React.forwardRef(function Alert(props, ref) {
7
+ return React.createElement(MuiAlert, { elevation: 6, ref: ref, variant: "filled", ...props });
23
8
  });
24
- class ErrorSnackbar extends React.Component {
25
- constructor() {
26
- super(...arguments);
27
- this.handleClose = (e, reason) => {
28
- if (reason !== 'clickaway') {
29
- this.props.onClose(null);
30
- }
31
- };
32
- }
33
- render() {
34
- const { classes, open, children } = this.props;
35
- return (React.createElement(Snackbar, { anchorOrigin: {
36
- vertical: 'bottom',
37
- horizontal: 'right',
38
- }, open: open, onClose: this.handleClose },
39
- React.createElement(SnackbarContent, { className: classes.snackbarContent, message: React.createElement("span", { className: classes.message },
40
- React.createElement(ErrorIcon, { className: clsx(classes.icon, classes.iconVariant) }),
41
- children), action: [
42
- // @ts-expect-error ???
43
- React.createElement(IconButton, { key: "close", "aria-label": "Close", color: "inherit", className: classes.close, onClick: this.handleClose, "data-cypress": "error-snackbar-close", size: "large" },
44
- React.createElement(CloseIcon, { className: classes.icon })),
45
- ] })));
46
- }
9
+ function ErrorSnackbar({ open, onClose, children, }) {
10
+ const handleClose = React.useCallback((e, reason) => {
11
+ if (reason !== 'clickaway') {
12
+ onClose(null);
13
+ }
14
+ }, [onClose]);
15
+ return (React.createElement(Snackbar, { anchorOrigin: {
16
+ vertical: 'bottom',
17
+ horizontal: 'right',
18
+ }, open: open, onClose: handleClose },
19
+ React.createElement(Alert, { severity: "error", action: React.createElement(IconButton, { key: "close", "aria-label": "Close", color: "inherit", onClick: handleClose, "data-cypress": "error-snackbar-close", size: "large" },
20
+ React.createElement(StyledCloseIcon, null)) }, children)));
47
21
  }
48
- export default withStyles(styles)(ErrorSnackbar);
22
+ const StyledCloseIcon = styled(Close)(() => ({
23
+ fontSize: 20,
24
+ }));
25
+ export default React.memo(ErrorSnackbar);
49
26
  //# sourceMappingURL=ErrorSnackbar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorSnackbar.js","sourceRoot":"","sources":["../../src/components/ErrorSnackbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAC/C,OAAO,UAAU,MAAM,0BAA0B,CAAA;AACjD,OAAO,QAAQ,MAAM,wBAAwB,CAAA;AAC7C,OAAO,eAAe,MAAM,+BAA+B,CAAA;AAC3D,OAAO,SAAS,MAAM,2BAA2B,CAAA;AACjD,OAAO,SAAS,MAAM,2BAA2B,CAAA;AAEjD,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC;IAChC,eAAe,EAAE;QACf,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;KAC1C;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE;KACb;IACD,WAAW,EAAE;QACX,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KAC9B;IACD,OAAO,EAAE;QACP,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;KACrB;CACF,CAAC,CAAA;AAQF,MAAM,aAAc,SAAQ,KAAK,CAAC,SAIjC;IAJD;;QAKE,gBAAW,GAAG,CAAC,CAAU,EAAE,MAAc,EAAE,EAAE;YAC3C,IAAI,MAAM,KAAK,WAAW,EAAE;gBAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;aACzB;QACH,CAAC,CAAA;IAuCH,CAAC;IArCC,MAAM;QACJ,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAC9C,OAAO,CACL,oBAAC,QAAQ,IACP,YAAY,EAAE;gBACZ,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,OAAO;aACpB,EACD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,IAAI,CAAC,WAAW;YAEzB,oBAAC,eAAe,IACd,SAAS,EAAE,OAAO,CAAC,eAAe,EAClC,OAAO,EACL,8BAAM,SAAS,EAAE,OAAO,CAAC,OAAO;oBAC9B,oBAAC,SAAS,IAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GAAI;oBAChE,QAAQ,CACJ,EAET,MAAM,EAAE;oBACN,uBAAuB;oBACvB,oBAAC,UAAU,IACT,GAAG,EAAC,OAAO,gBACA,OAAO,EAClB,KAAK,EAAC,SAAS,EACf,SAAS,EAAE,OAAO,CAAC,KAAK,EACxB,OAAO,EAAE,IAAI,CAAC,WAAW,kBACZ,sBAAsB,EACnC,IAAI,EAAC,OAAO;wBAEZ,oBAAC,SAAS,IAAC,SAAS,EAAE,OAAO,CAAC,IAAI,GAAI,CAC3B;iBACd,GACD,CACO,CACZ,CAAA;IACH,CAAC;CACF;AAED,eAAe,UAAU,CAAC,MAAM,CAAC,CAAC,aAAa,CAA+B,CAAA","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport { Theme } from '@mui/material/styles'\nimport withStyles from '@mui/styles/withStyles'\nimport IconButton from '@mui/material/IconButton'\nimport Snackbar from '@mui/material/Snackbar'\nimport SnackbarContent from '@mui/material/SnackbarContent'\nimport ErrorIcon from '@mui/icons-material/Error'\nimport CloseIcon from '@mui/icons-material/Close'\n\nconst styles = (theme: Theme) => ({\n snackbarContent: {\n backgroundColor: theme.palette.error.dark,\n },\n icon: {\n fontSize: 20,\n },\n iconVariant: {\n marginRight: theme.spacing(2),\n },\n message: {\n display: 'flex',\n alignItems: 'center',\n },\n})\n\ntype Props = {\n open: boolean\n children: React.ReactNode\n onClose: (arg: null) => unknown\n}\n\nclass ErrorSnackbar extends React.Component<\n Props & {\n classes: Record<string, string>\n }\n> {\n handleClose = (e: unknown, reason: string) => {\n if (reason !== 'clickaway') {\n this.props.onClose(null)\n }\n }\n\n render() {\n const { classes, open, children } = this.props\n return (\n <Snackbar\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n open={open}\n onClose={this.handleClose}\n >\n <SnackbarContent\n className={classes.snackbarContent}\n message={\n <span className={classes.message}>\n <ErrorIcon className={clsx(classes.icon, classes.iconVariant)} />\n {children}\n </span>\n }\n action={[\n // @ts-expect-error ???\n <IconButton\n key=\"close\"\n aria-label=\"Close\"\n color=\"inherit\"\n className={classes.close}\n onClick={this.handleClose}\n data-cypress=\"error-snackbar-close\"\n size=\"large\"\n >\n <CloseIcon className={classes.icon} />\n </IconButton>,\n ]}\n />\n </Snackbar>\n )\n }\n}\n\nexport default withStyles(styles)(ErrorSnackbar) as React.ComponentType<Props>\n"]}
1
+ {"version":3,"file":"ErrorSnackbar.js","sourceRoot":"","sources":["../../src/components/ErrorSnackbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,QAAwB,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAA6B,SAAS,KAAK,CACvE,KAAK,EACL,GAAG;IAEH,OAAO,oBAAC,QAAQ,IAAC,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAC,QAAQ,KAAK,KAAK,GAAI,CAAA;AACzE,CAAC,CAAC,CAAA;AAEF,SAAS,aAAa,CAAC,EACrB,IAAI,EACJ,OAAO,EACP,QAAQ,GAKT;IACC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACnC,CAAC,CAAU,EAAE,MAAe,EAAE,EAAE;QAC9B,IAAI,MAAM,KAAK,WAAW,EAAE;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAA;SACd;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAA;IACD,OAAO,CACL,oBAAC,QAAQ,IACP,YAAY,EAAE;YACZ,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,OAAO;SACpB,EACD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,WAAW;QAEpB,oBAAC,KAAK,IACJ,QAAQ,EAAC,OAAO,EAChB,MAAM,EACJ,oBAAC,UAAU,IACT,GAAG,EAAC,OAAO,gBACA,OAAO,EAClB,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,WAAW,kBACP,sBAAsB,EACnC,IAAI,EAAC,OAAO;gBAEZ,oBAAC,eAAe,OAAG,CACR,IAGd,QAAQ,CACH,CACC,CACZ,CAAA;AACH,CAAC;AAED,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC,CAAA;AAEH,eAAe,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport { Snackbar, IconButton } from '@mui/material'\nimport { Close } from '@mui/icons-material'\nimport MuiAlert, { AlertProps } from '@mui/material/Alert'\nimport { styled } from '@mui/material/styles'\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(function Alert(\n props,\n ref,\n) {\n return <MuiAlert elevation={6} ref={ref} variant=\"filled\" {...props} />\n})\n\nfunction ErrorSnackbar({\n open,\n onClose,\n children,\n}: {\n open: boolean\n children: React.ReactNode\n onClose: (arg: null) => unknown\n}) {\n const handleClose = React.useCallback(\n (e: unknown, reason?: string) => {\n if (reason !== 'clickaway') {\n onClose(null)\n }\n },\n [onClose],\n )\n return (\n <Snackbar\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n open={open}\n onClose={handleClose}\n >\n <Alert\n severity=\"error\"\n action={\n <IconButton\n key=\"close\"\n aria-label=\"Close\"\n color=\"inherit\"\n onClick={handleClose}\n data-cypress=\"error-snackbar-close\"\n size=\"large\"\n >\n <StyledCloseIcon />\n </IconButton>\n }\n >\n {children}\n </Alert>\n </Snackbar>\n )\n}\n\nconst StyledCloseIcon = styled(Close)(() => ({\n fontSize: 20,\n}))\n\nexport default React.memo(ErrorSnackbar)\n"]}
@@ -1,10 +1,25 @@
1
1
  import * as React from 'react';
2
- declare type Props = {
2
+ import { Theme } from '@mui/material';
3
+ declare type ListItemsProps = {
3
4
  children: React.ReactNode;
4
5
  disablePadding?: boolean;
6
+ };
7
+ export declare const OrderedList: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<Theme> & ListItemsProps, React.DetailedHTMLProps<React.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>, {}>;
8
+ export declare const UnorderedList: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<Theme> & ListItemsProps, React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement>, {}>;
9
+ declare type ListProps = {
5
10
  spaced?: boolean;
6
11
  };
7
- export declare const OrderedList: React.ComponentType<Props>;
8
- export declare const UnorderedList: React.ComponentType<Props>;
9
- export declare const ListItem: React.ComponentType<Props>;
12
+ export declare const ListItem: import("@emotion/styled").StyledComponent<Omit<import("@mui/system").SystemProps<Theme> & {
13
+ align?: "inherit" | "right" | "left" | "center" | "justify" | undefined;
14
+ children?: React.ReactNode;
15
+ classes?: Partial<import("@mui/material").TypographyClasses> | undefined;
16
+ gutterBottom?: boolean | undefined;
17
+ noWrap?: boolean | undefined;
18
+ paragraph?: boolean | undefined;
19
+ sx?: import("@mui/material").SxProps<Theme> | undefined;
20
+ variant?: "button" | "caption" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "inherit" | "subtitle1" | "subtitle2" | "body1" | "body2" | "overline" | undefined;
21
+ variantMapping?: Partial<Record<"button" | "caption" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "inherit" | "subtitle1" | "subtitle2" | "body1" | "body2" | "overline", string>> | undefined;
22
+ } & import("@mui/material/OverridableComponent").CommonProps & Omit<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "key" | keyof React.HTMLAttributes<HTMLSpanElement>> & {
23
+ ref?: ((instance: HTMLSpanElement | null) => void) | React.RefObject<HTMLSpanElement> | null | undefined;
24
+ }, "children" | keyof import("@mui/material/OverridableComponent").CommonProps | "sx" | ("p" | "color" | "top" | "right" | "bottom" | "left" | "height" | "width" | "fontStyle" | "marginBottom" | "position" | "my" | "pl" | "pt" | "zIndex" | "typography" | "fontFamily" | "fontSize" | "flex" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "boxShadow" | "maxWidth" | "minWidth" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "pr" | "pb" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginLeft" | "marginX" | "marginY" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "fontWeight" | "letterSpacing" | "lineHeight" | "textAlign" | "textTransform") | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variant" | "variantMapping">, "ref"> & import("@mui/system").MUIStyledCommonProps<Theme> & ListProps, {}, {}>;
10
25
  export {};
@@ -1,43 +1,45 @@
1
1
  import * as React from 'react';
2
- import clsx from 'clsx';
3
- import withStyles from '@mui/styles/withStyles';
4
2
  import Typography from '@mui/material/Typography';
5
- const styles = (theme) => ({
6
- list: {
7
- margin: 0,
8
- padding: theme.spacing(1, 1, 1, 4),
9
- '& > ul, & > ol': {
10
- 'padding-top': 0,
11
- 'padding-bottom': 0,
12
- },
13
- },
14
- noPadding: {
15
- 'padding-top': 0,
16
- 'padding-bottom': 0,
17
- },
18
- listItem: {
19
- display: 'list-item',
20
- },
21
- spacedLineHeight: {
22
- lineHeight: 1.9,
23
- },
3
+ import { styled } from '@mui/material';
4
+ const noPaddingY = {
5
+ paddingTop: 0,
6
+ paddingBottom: 0,
7
+ };
8
+ const getListStyles = (theme) => ({
9
+ margin: 0,
10
+ padding: theme.spacing(1, 1, 1, 4),
11
+ listStyle: 'inherit',
12
+ '& > ul, & > ol': noPaddingY,
24
13
  });
25
- function ol({ classes, disablePadding, children, ...props }) {
26
- return (React.createElement("ol", { className: clsx(classes.list, {
27
- [classes.noPadding]: disablePadding,
28
- }), ...props }, children));
29
- }
30
- function ul({ classes, disablePadding, children, ...props }) {
31
- return (React.createElement("ul", { className: clsx(classes.list, {
32
- [classes.noPadding]: disablePadding,
33
- }), ...props }, children));
34
- }
35
- function li({ classes, children, spaced, ...props }) {
36
- return (React.createElement(Typography, { component: "li", color: "inherit", variant: "body2", className: clsx(classes.listItem, {
37
- [classes.spacedLineHeight]: spaced,
38
- }), ...props }, children));
14
+ export const OrderedList = styled('ol', {
15
+ shouldForwardProp: (prop) => prop !== 'disablePadding',
16
+ })(({ theme, disablePadding }) => {
17
+ return {
18
+ ...getListStyles(theme),
19
+ ...(disablePadding ? noPaddingY : {}),
20
+ };
21
+ });
22
+ export const UnorderedList = styled('ul', {
23
+ shouldForwardProp: (prop) => prop !== 'disablePadding',
24
+ })(({ theme, disablePadding }) => {
25
+ return {
26
+ ...getListStyles(theme),
27
+ ...(disablePadding ? noPaddingY : {}),
28
+ };
29
+ });
30
+ function Li(props) {
31
+ return (React.createElement(Typography, { ...props, component: "li", color: "inherit", variant: "body2" }));
39
32
  }
40
- export const OrderedList = withStyles(styles)(ol);
41
- export const UnorderedList = withStyles(styles)(ul);
42
- export const ListItem = withStyles(styles)(li);
33
+ export const ListItem = styled(Li, {
34
+ shouldForwardProp: (prop) => prop !== 'spaced',
35
+ })(({ spaced }) => {
36
+ return {
37
+ display: 'list-item',
38
+ ...(spaced
39
+ ? {
40
+ lineHeight: 1.9,
41
+ }
42
+ : {}),
43
+ };
44
+ });
43
45
  //# sourceMappingURL=Lists.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Lists.js","sourceRoot":"","sources":["../../src/components/Lists.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAC/C,OAAO,UAAU,MAAM,0BAA0B,CAAA;AAMjD,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC;IAChC,IAAI,EAAE;QACJ,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAClC,gBAAgB,EAAE;YAChB,aAAa,EAAE,CAAC;YAChB,gBAAgB,EAAE,CAAC;SACpB;KACF;IACD,SAAS,EAAE;QACT,aAAa,EAAE,CAAC;QAChB,gBAAgB,EAAE,CAAC;KACpB;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,WAAW;KACrB;IACD,gBAAgB,EAAE;QAChB,UAAU,EAAE,GAAG;KAChB;CACF,CAAC,CAAA;AAQF,SAAS,EAAE,CAAC,EACV,OAAO,EACP,cAAc,EACd,QAAQ,EACR,GAAG,KAAK,EACgB;IACxB,OAAO,CACL,4BACE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAC5B,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,cAAc;SACpC,CAAC,KACE,KAAK,IAER,QAAQ,CACN,CACN,CAAA;AACH,CAAC;AAED,SAAS,EAAE,CAAC,EACV,OAAO,EACP,cAAc,EACd,QAAQ,EACR,GAAG,KAAK,EACgB;IACxB,OAAO,CACL,4BACE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAC5B,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,cAAc;SACpC,CAAC,KACE,KAAK,IAER,QAAQ,CACN,CACN,CAAA;AACH,CAAC;AAED,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,EAA2B;IAC1E,OAAO,CACL,oBAAC,UAAU,IACT,SAAS,EAAC,IAAI,EACd,KAAK,EAAC,SAAS,EACf,OAAO,EAAC,OAAO,EACf,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YAChC,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,MAAM;SACnC,CAAC,KACE,KAAK,IAER,QAAQ,CACE,CACd,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAA+B,CAAA;AAC/E,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAC7C,EAAE,CAC2B,CAAA;AAC/B,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAA+B,CAAA","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport { Theme } from '@mui/material/styles'\nimport withStyles from '@mui/styles/withStyles'\nimport Typography from '@mui/material/Typography'\n\ninterface WithStylesProps {\n classes: Record<string, string>\n}\n\nconst styles = (theme: Theme) => ({\n list: {\n margin: 0,\n padding: theme.spacing(1, 1, 1, 4),\n '& > ul, & > ol': {\n 'padding-top': 0,\n 'padding-bottom': 0,\n },\n },\n noPadding: {\n 'padding-top': 0,\n 'padding-bottom': 0,\n },\n listItem: {\n display: 'list-item',\n },\n spacedLineHeight: {\n lineHeight: 1.9,\n },\n})\n\ntype Props = {\n children: React.ReactNode\n disablePadding?: boolean\n spaced?: boolean\n}\n\nfunction ol({\n classes,\n disablePadding,\n children,\n ...props\n}: Props & WithStylesProps) {\n return (\n <ol\n className={clsx(classes.list, {\n [classes.noPadding]: disablePadding,\n })}\n {...props}\n >\n {children}\n </ol>\n )\n}\n\nfunction ul({\n classes,\n disablePadding,\n children,\n ...props\n}: Props & WithStylesProps) {\n return (\n <ul\n className={clsx(classes.list, {\n [classes.noPadding]: disablePadding,\n })}\n {...props}\n >\n {children}\n </ul>\n )\n}\n\nfunction li({ classes, children, spaced, ...props }: Props & WithStylesProps) {\n return (\n <Typography\n component=\"li\"\n color=\"inherit\"\n variant=\"body2\"\n className={clsx(classes.listItem, {\n [classes.spacedLineHeight]: spaced,\n })}\n {...props}\n >\n {children}\n </Typography>\n )\n}\n\nexport const OrderedList = withStyles(styles)(ol) as React.ComponentType<Props>\nexport const UnorderedList = withStyles(styles)(\n ul,\n) as React.ComponentType<Props>\nexport const ListItem = withStyles(styles)(li) as React.ComponentType<Props>\n"]}
1
+ {"version":3,"file":"Lists.js","sourceRoot":"","sources":["../../src/components/Lists.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,UAAU,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAS,MAAM,eAAe,CAAA;AAO7C,MAAM,UAAU,GAAG;IACjB,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,CAAC;CACjB,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC;IACvC,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClC,SAAS,EAAE,SAAS;IACpB,gBAAgB,EAAE,UAAU;CAC7B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE;IACtC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,gBAAgB;CACvD,CAAC,CAAiB,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE;IAC/C,OAAO;QACL,GAAG,aAAa,CAAC,KAAK,CAAC;QACvB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAA;AACH,CAAC,CAAC,CAAA;AACF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE;IACxC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,gBAAgB;CACvD,CAAC,CAAiB,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE;IAC/C,OAAO;QACL,GAAG,aAAa,CAAC,KAAK,CAAC;QACvB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAA;AACH,CAAC,CAAC,CAAA;AAMF,SAAS,EAAE,CAAC,KAA2D;IACrE,OAAO,CACL,oBAAC,UAAU,OAAK,KAAK,EAAE,SAAS,EAAC,IAAI,EAAC,KAAK,EAAC,SAAS,EAAC,OAAO,EAAC,OAAO,GAAG,CACzE,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,EAAE;IACjC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ;CAC/C,CAAC,CAAY,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAC3B,OAAO;QACL,OAAO,EAAE,WAAW;QACpB,GAAG,CAAC,MAAM;YACR,CAAC,CAAC;gBACE,UAAU,EAAE,GAAG;aAChB;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAA;AACH,CAAC,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport Typography from '@mui/material/Typography'\nimport { styled, Theme } from '@mui/material'\n\ntype ListItemsProps = {\n children: React.ReactNode\n disablePadding?: boolean\n}\n\nconst noPaddingY = {\n paddingTop: 0,\n paddingBottom: 0,\n}\n\nconst getListStyles = (theme: Theme) => ({\n margin: 0,\n padding: theme.spacing(1, 1, 1, 4),\n listStyle: 'inherit',\n '& > ul, & > ol': noPaddingY,\n})\n\nexport const OrderedList = styled('ol', {\n shouldForwardProp: (prop) => prop !== 'disablePadding',\n})<ListItemsProps>(({ theme, disablePadding }) => {\n return {\n ...getListStyles(theme),\n ...(disablePadding ? noPaddingY : {}),\n }\n})\nexport const UnorderedList = styled('ul', {\n shouldForwardProp: (prop) => prop !== 'disablePadding',\n})<ListItemsProps>(({ theme, disablePadding }) => {\n return {\n ...getListStyles(theme),\n ...(disablePadding ? noPaddingY : {}),\n }\n})\n\ntype ListProps = {\n spaced?: boolean\n}\n\nfunction Li(props: Omit<React.ComponentProps<typeof Typography>, 'ref'>) {\n return (\n <Typography {...props} component=\"li\" color=\"inherit\" variant=\"body2\" />\n )\n}\n\nexport const ListItem = styled(Li, {\n shouldForwardProp: (prop) => prop !== 'spaced',\n})<ListProps>(({ spaced }) => {\n return {\n display: 'list-item',\n ...(spaced\n ? {\n lineHeight: 1.9,\n }\n : {}),\n }\n})\n"]}
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ import { FormTypes } from '@oneblink/types';
3
+ export declare function FormStoreTableProvider({ form, children, }: {
4
+ form: FormTypes.Form;
5
+ children: React.ReactNode;
6
+ }): JSX.Element;
@@ -0,0 +1,86 @@
1
+ import * as React from 'react';
2
+ import { useHistory } from 'react-router-dom';
3
+ import querystring from 'query-string';
4
+ import { formStoreService } from '@oneblink/apps';
5
+ import useInfiniteScrollDataLoad from '../../hooks/useInfiniteScrollDataLoad';
6
+ import useFormStoreTable from './table/useFormStoreTable';
7
+ import { Button, Grid } from '@mui/material';
8
+ import { Settings as SettingsIcon } from '@mui/icons-material';
9
+ import useSubmissionIdValidationMessage, { validateIsUUID, } from '../../hooks/useSubmissionIdIsValid';
10
+ import ErrorMessage from '../messages/ErrorMessage';
11
+ import LoadingWithMessage from '../LoadingWithMessage';
12
+ import NoResourcesYet from '../messages/NoResourcesYet';
13
+ import FormStoreIcon from './display/FormStoreIcon';
14
+ import { FormStoreTableContext } from './useFormStoreTableContext';
15
+ export function FormStoreTableProvider({ form, children, }) {
16
+ var _a;
17
+ const history = useHistory();
18
+ const { isLoading, loadError, records: formStoreRecords, onTryAgain, onRefresh, filters, onChangeFilters, } = useInfiniteScrollDataLoad({
19
+ limit: 50,
20
+ debounceSearchMs: 1000,
21
+ onDefaultFilters: React.useCallback((query) => {
22
+ let filters = {};
23
+ try {
24
+ if (typeof query.filters === 'string') {
25
+ filters = JSON.parse(query.filters);
26
+ }
27
+ }
28
+ catch (error) {
29
+ console.warn('Could not parse filter as JSON', error);
30
+ }
31
+ if (!filters.sorting) {
32
+ filters.sorting = [
33
+ { property: 'dateTimeSubmitted', direction: 'descending' },
34
+ ];
35
+ }
36
+ return filters;
37
+ }, []),
38
+ onSearch: React.useCallback(async (filters, paging, abortSignal) => {
39
+ // Exclude all search parameters if searching
40
+ // for a specific submission using an identifier
41
+ const searchFilters = filters.submissionId
42
+ ? {
43
+ submissionId: filters.submissionId,
44
+ }
45
+ : filters;
46
+ const result = await formStoreService.searchFormStoreRecords({
47
+ paging,
48
+ formId: form.id,
49
+ filters: searchFilters,
50
+ }, abortSignal);
51
+ return {
52
+ records: result.formStoreRecords,
53
+ meta: result.meta,
54
+ };
55
+ }, [form.id]),
56
+ onValidateFilters: React.useCallback((currentFilters) => {
57
+ var _a;
58
+ return validateIsUUID((_a = currentFilters.submissionId) === null || _a === void 0 ? void 0 : _a.$eq);
59
+ }, []),
60
+ });
61
+ React.useEffect(() => {
62
+ history.replace({
63
+ search: querystring.stringify({
64
+ filters: JSON.stringify(filters),
65
+ }),
66
+ });
67
+ }, [filters, history]);
68
+ const submissionIdValidationMessage = useSubmissionIdValidationMessage((_a = filters.submissionId) === null || _a === void 0 ? void 0 : _a.$eq);
69
+ const formStoreTable = useFormStoreTable({
70
+ formStoreRecords,
71
+ filters,
72
+ onChangeFilters,
73
+ submissionIdValidationMessage,
74
+ form,
75
+ onRefresh,
76
+ });
77
+ return (React.createElement(FormStoreTableContext.Provider, { value: formStoreTable },
78
+ children,
79
+ formStoreTable.visibleColumns.length ? (React.createElement(React.Fragment, null, !formStoreRecords.length && !isLoading && !loadError && (React.createElement(NoResourcesYet, { IconComponent: FormStoreIcon, title: "No Records Found..." }, "There are no Submissions matching your filters.")))) : (React.createElement(NoResourcesYet, { IconComponent: SettingsIcon, title: "No Columns Visible", gutterBottom: true }, "It looks like you have hidden all of the available columns. Please enable at least one column to view submissions.")),
80
+ isLoading && React.createElement(LoadingWithMessage, { message: "Loading more records..." }),
81
+ loadError && (React.createElement(React.Fragment, null,
82
+ React.createElement(ErrorMessage, { title: "Error Retrieving Submissions", gutterBottom: true, gutterTop: true }, loadError.message),
83
+ React.createElement(Grid, { container: true, justifyContent: "center" },
84
+ React.createElement(Button, { variant: "outlined", color: "primary", onClick: () => onTryAgain() }, "Try Again"))))));
85
+ }
86
+ //# sourceMappingURL=FormStoreTableProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormStoreTableProvider.js","sourceRoot":"","sources":["../../../src/components/formStore/FormStoreTableProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { useHistory } from 'react-router-dom'\nimport querystring from 'query-string'\nimport { FormStoreRecord } from '@oneblink/types/typescript/submissions'\nimport { formStoreService } from '@oneblink/apps'\nimport useInfiniteScrollDataLoad from '../../hooks/useInfiniteScrollDataLoad'\nimport useFormStoreTable from './table/useFormStoreTable'\nimport { Button, Grid } from '@mui/material'\nimport { Settings as SettingsIcon } from '@mui/icons-material'\nimport { FormTypes } from '@oneblink/types'\nimport useSubmissionIdValidationMessage, {\n validateIsUUID,\n} from '../../hooks/useSubmissionIdIsValid'\nimport ErrorMessage from '../messages/ErrorMessage'\nimport LoadingWithMessage from '../LoadingWithMessage'\nimport NoResourcesYet from '../messages/NoResourcesYet'\nimport FormStoreIcon from './display/FormStoreIcon'\nimport { FormStoreTableContext } from './useFormStoreTableContext'\n\nexport function FormStoreTableProvider({\n form,\n children,\n}: {\n form: FormTypes.Form\n children: React.ReactNode\n}) {\n const history = useHistory()\n const {\n isLoading,\n loadError,\n records: formStoreRecords,\n onTryAgain,\n onRefresh,\n filters,\n onChangeFilters,\n } = useInfiniteScrollDataLoad<\n formStoreService.FormStoreFilters,\n FormStoreRecord\n >({\n limit: 50,\n debounceSearchMs: 1000,\n onDefaultFilters: React.useCallback((query) => {\n let filters: formStoreService.FormStoreFilters = {}\n try {\n if (typeof query.filters === 'string') {\n filters = JSON.parse(query.filters)\n }\n } catch (error) {\n console.warn('Could not parse filter as JSON', error)\n }\n if (!filters.sorting) {\n filters.sorting = [\n { property: 'dateTimeSubmitted', direction: 'descending' },\n ]\n }\n return filters\n }, []),\n onSearch: React.useCallback(\n async (filters, paging, abortSignal) => {\n // Exclude all search parameters if searching\n // for a specific submission using an identifier\n const searchFilters = filters.submissionId\n ? {\n submissionId: filters.submissionId,\n }\n : filters\n const result = await formStoreService.searchFormStoreRecords(\n {\n paging,\n formId: form.id,\n filters: searchFilters,\n },\n abortSignal,\n )\n return {\n records: result.formStoreRecords,\n meta: result.meta,\n }\n },\n [form.id],\n ),\n onValidateFilters: React.useCallback(\n (currentFilters: formStoreService.FormStoreFilters) => {\n return validateIsUUID(currentFilters.submissionId?.$eq)\n },\n [],\n ),\n })\n\n React.useEffect(() => {\n history.replace({\n search: querystring.stringify({\n filters: JSON.stringify(filters),\n }),\n })\n }, [filters, history])\n\n const submissionIdValidationMessage = useSubmissionIdValidationMessage(\n filters.submissionId?.$eq,\n )\n\n const formStoreTable = useFormStoreTable({\n formStoreRecords,\n filters,\n onChangeFilters,\n submissionIdValidationMessage,\n form,\n onRefresh,\n })\n\n return (\n <FormStoreTableContext.Provider value={formStoreTable}>\n {children}\n {formStoreTable.visibleColumns.length ? (\n <>\n {!formStoreRecords.length && !isLoading && !loadError && (\n <NoResourcesYet\n IconComponent={FormStoreIcon}\n title=\"No Records Found...\"\n >\n There are no Submissions matching your filters.\n </NoResourcesYet>\n )}\n </>\n ) : (\n <NoResourcesYet\n IconComponent={SettingsIcon}\n title=\"No Columns Visible\"\n gutterBottom\n >\n It looks like you have hidden all of the available columns. Please\n enable at least one column to view submissions.\n </NoResourcesYet>\n )}\n\n {isLoading && <LoadingWithMessage message=\"Loading more records...\" />}\n\n {loadError && (\n <>\n <ErrorMessage\n title=\"Error Retrieving Submissions\"\n gutterBottom\n gutterTop\n >\n {loadError.message}\n </ErrorMessage>\n <Grid container justifyContent=\"center\">\n <Button\n variant=\"outlined\"\n color=\"primary\"\n onClick={() => onTryAgain()}\n >\n Try Again\n </Button>\n </Grid>\n </>\n )}\n </FormStoreTableContext.Provider>\n )\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ import { Button } from '@mui/material';
3
+ declare function OneBlinkFormStoreClearFiltersButton(props: React.ComponentProps<typeof Button>): JSX.Element;
4
+ declare const _default: React.MemoExoticComponent<typeof OneBlinkFormStoreClearFiltersButton>;
5
+ export default _default;
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ import { Button } from '@mui/material';
3
+ import { FilterList as FilterIcon } from '@mui/icons-material';
4
+ import useFormStoreTableContext from './useFormStoreTableContext';
5
+ function OneBlinkFormStoreClearFiltersButton(props) {
6
+ const { onChangeFilters } = useFormStoreTableContext();
7
+ return (React.createElement(Button, { startIcon: React.createElement(FilterIcon, null), onClick: () => {
8
+ onChangeFilters((currentFilters) => ({
9
+ sorting: currentFilters.sorting,
10
+ }), false);
11
+ },
12
+ // eslint-disable-next-line react/no-children-prop
13
+ children: React.createElement(React.Fragment, null, "Clear Filters"), ...props }));
14
+ }
15
+ export default React.memo(OneBlinkFormStoreClearFiltersButton);
16
+ //# sourceMappingURL=OneBlinkFormStoreClearFiltersButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OneBlinkFormStoreClearFiltersButton.js","sourceRoot":"","sources":["../../../src/components/formStore/OneBlinkFormStoreClearFiltersButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,UAAU,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,wBAAwB,MAAM,4BAA4B,CAAA;AAEjE,SAAS,mCAAmC,CAC1C,KAA0C;IAE1C,MAAM,EAAE,eAAe,EAAE,GAAG,wBAAwB,EAAE,CAAA;IACtD,OAAO,CACL,oBAAC,MAAM,IACL,SAAS,EAAE,oBAAC,UAAU,OAAG,EACzB,OAAO,EAAE,GAAG,EAAE;YACZ,eAAe,CACb,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBACnB,OAAO,EAAE,cAAc,CAAC,OAAO;aAChC,CAAC,EACF,KAAK,CACN,CAAA;QACH,CAAC;QACD,kDAAkD;QAClD,QAAQ,EAAE,0DAAkB,KACxB,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport { Button } from '@mui/material'\nimport { FilterList as FilterIcon } from '@mui/icons-material'\nimport useFormStoreTableContext from './useFormStoreTableContext'\n\nfunction OneBlinkFormStoreClearFiltersButton(\n props: React.ComponentProps<typeof Button>,\n) {\n const { onChangeFilters } = useFormStoreTableContext()\n return (\n <Button\n startIcon={<FilterIcon />}\n onClick={() => {\n onChangeFilters(\n (currentFilters) => ({\n sorting: currentFilters.sorting,\n }),\n false,\n )\n }}\n // eslint-disable-next-line react/no-children-prop\n children={<>Clear Filters</>}\n {...props}\n />\n )\n}\n\nexport default React.memo(OneBlinkFormStoreClearFiltersButton)\n"]}
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ import { Button } from '@mui/material';
3
+ declare function OneBlinkFormStoreColumnsButton(props: React.ComponentProps<typeof Button>): JSX.Element;
4
+ declare const _default: React.MemoExoticComponent<typeof OneBlinkFormStoreColumnsButton>;
5
+ export default _default;