@oneblink/apps-react 1.0.0-beta.1 → 1.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CopyToClipboardIconButton.js +6 -15
- package/dist/components/CopyToClipboardIconButton.js.map +1 -1
- package/dist/components/CustomAccordion.d.ts +4 -4
- package/dist/components/CustomAccordion.js +33 -35
- package/dist/components/CustomAccordion.js.map +1 -1
- package/dist/components/ErrorSnackbar.d.ts +3 -3
- package/dist/components/ErrorSnackbar.js +22 -45
- package/dist/components/ErrorSnackbar.js.map +1 -1
- package/dist/components/Lists.d.ts +19 -4
- package/dist/components/Lists.js +40 -38
- package/dist/components/Lists.js.map +1 -1
- package/dist/components/LoadingWithMessage.js +3 -3
- package/dist/components/LoadingWithMessage.js.map +1 -1
- package/dist/components/formStore/FormStoreTableProvider.d.ts +6 -0
- package/dist/components/formStore/FormStoreTableProvider.js +89 -0
- package/dist/components/formStore/FormStoreTableProvider.js.map +1 -0
- package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.d.ts +5 -0
- package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +19 -0
- package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js.map +1 -0
- package/dist/components/formStore/OneBlinkFormStoreColumnsButton.d.ts +5 -0
- package/dist/components/formStore/{ColumnsConfigurationButton.js → OneBlinkFormStoreColumnsButton.js} +8 -4
- package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js.map +1 -0
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.d.ts +5 -0
- package/dist/components/formStore/{DownloadSubmissionDataButton.js → OneBlinkFormStoreDownloadButton.js} +8 -4
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js.map +1 -0
- package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +8 -0
- package/dist/components/formStore/OneBlinkFormStoreProvider.js +25 -0
- package/dist/components/formStore/OneBlinkFormStoreProvider.js.map +1 -0
- package/dist/components/formStore/OneBlinkFormStoreRefreshButton.d.ts +5 -0
- package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +12 -0
- package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js.map +1 -0
- package/dist/components/formStore/OneBlinkFormStoreTable.d.ts +4 -0
- package/dist/components/formStore/OneBlinkFormStoreTable.js +184 -0
- package/dist/components/formStore/OneBlinkFormStoreTable.js.map +1 -0
- package/dist/components/formStore/table/FormElementTableCell.js +28 -8
- package/dist/components/formStore/table/FormElementTableCell.js.map +1 -1
- package/dist/components/formStore/table/RepeatableSetCell.d.ts +0 -1
- package/dist/components/formStore/table/RepeatableSetCell.js +23 -25
- package/dist/components/formStore/table/RepeatableSetCell.js.map +1 -1
- package/dist/components/formStore/table/TableCellCopyButton.js +15 -18
- package/dist/components/formStore/table/TableCellCopyButton.js.map +1 -1
- package/dist/components/formStore/table/generateColumns.js.map +1 -1
- package/dist/components/formStore/table/useFormStoreTable.d.ts +43 -3
- package/dist/components/formStore/table/useFormStoreTable.js +11 -2
- package/dist/components/formStore/table/useFormStoreTable.js.map +1 -1
- package/dist/components/formStore/useFormStoreTableContext.d.ts +44 -0
- package/dist/components/formStore/useFormStoreTableContext.js +10 -0
- package/dist/components/formStore/useFormStoreTableContext.js.map +1 -0
- package/dist/components/{ErrorMessage.d.ts → messages/ErrorMessage.d.ts} +2 -3
- package/dist/components/{ErrorMessage.js → messages/ErrorMessage.js} +2 -2
- package/dist/components/messages/ErrorMessage.js.map +1 -0
- package/dist/components/messages/LargeIconMessage.d.ts +6 -3
- package/dist/components/messages/LargeIconMessage.js +33 -63
- package/dist/components/messages/LargeIconMessage.js.map +1 -1
- package/dist/components/{NoResourcesYet.d.ts → messages/NoResourcesYet.d.ts} +2 -3
- package/dist/components/{NoResourcesYet.js → messages/NoResourcesYet.js} +2 -2
- package/dist/components/messages/NoResourcesYet.js.map +1 -0
- package/dist/form-elements/FormElementDate.js +1 -1
- package/dist/form-elements/FormElementDate.js.map +1 -1
- package/dist/hooks/useInfiniteScrollDataLoad.d.ts +2 -1
- package/dist/hooks/useInfiniteScrollDataLoad.js +4 -4
- package/dist/hooks/useInfiniteScrollDataLoad.js.map +1 -1
- package/dist/hooks/useSubmissionIdIsValid.d.ts +0 -1
- package/dist/hooks/useSubmissionIdIsValid.js +1 -2
- package/dist/hooks/useSubmissionIdIsValid.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/package.json +8 -6
- package/dist/OneBlinkFormStoreView.d.ts +0 -8
- package/dist/OneBlinkFormStoreView.js +0 -55
- package/dist/OneBlinkFormStoreView.js.map +0 -1
- package/dist/components/ErrorMessage.js.map +0 -1
- package/dist/components/NoResourcesYet.js.map +0 -1
- package/dist/components/formStore/ColumnsConfigurationButton.d.ts +0 -10
- package/dist/components/formStore/ColumnsConfigurationButton.js.map +0 -1
- package/dist/components/formStore/DownloadSubmissionDataButton.d.ts +0 -13
- package/dist/components/formStore/DownloadSubmissionDataButton.js.map +0 -1
- package/dist/components/formStore/FormStore.d.ts +0 -9
- package/dist/components/formStore/FormStore.js +0 -103
- package/dist/components/formStore/FormStore.js.map +0 -1
- package/dist/components/formStore/table/index.d.ts +0 -17
- package/dist/components/formStore/table/index.js +0 -194
- package/dist/components/formStore/table/index.js.map +0 -1
- package/dist/hooks/useLegacyElements.d.ts +0 -16
- package/dist/hooks/useLegacyElements.js +0 -55
- 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
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
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:
|
33
|
-
React.createElement(FileCopy, {
|
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,
|
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("
|
3
|
-
export declare const CustomAccordionSummary: import("
|
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"
|
27
|
-
export declare const CustomAccordionDetails: import("
|
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,38 @@
|
|
1
|
-
import { Accordion, AccordionSummary, AccordionDetails } from '@mui/material';
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
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
|
-
|
19
|
-
|
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
|
-
|
29
|
-
'
|
30
|
-
margin: theme.spacing(1, 0),
|
31
|
-
},
|
12
|
+
'&.Mui-expanded': {
|
13
|
+
margin: 'unset',
|
32
14
|
},
|
33
|
-
expanded: {
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
15
|
+
'& .Mui-expanded': {
|
16
|
+
margin: 'auto',
|
17
|
+
},
|
18
|
+
}));
|
19
|
+
export const CustomAccordionSummary = styled(AccordionSummary)(({ theme }) => ({
|
20
|
+
backgroundColor: 'rgba(0, 0, 0, .03)',
|
21
|
+
'&.Mui-expanded': {
|
22
|
+
minHeight: theme.spacing(6),
|
23
|
+
},
|
24
|
+
'& .Mui-expanded': {
|
25
|
+
marginTop: theme.spacing(1.5),
|
26
|
+
marginBottom: theme.spacing(1.5),
|
27
|
+
},
|
28
|
+
'& .MuiAccordionSummary-content': {
|
29
|
+
'&.Mui-expanded': {
|
30
|
+
margin: theme.spacing(1.5, 0),
|
31
|
+
},
|
38
32
|
},
|
39
|
-
}))
|
33
|
+
}));
|
34
|
+
export const CustomAccordionDetails = styled(AccordionDetails)(({ theme }) => ({
|
35
|
+
padding: theme.spacing(1, 2),
|
36
|
+
borderTop: `1px solid ${theme.palette.divider}`,
|
37
|
+
}));
|
40
38
|
//# sourceMappingURL=CustomAccordion.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CustomAccordion.js","sourceRoot":"","sources":["../../src/components/CustomAccordion.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
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,gBAAgB,EAAE;QAChB,MAAM,EAAE,OAAO;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,gBAAgB,EAAE;YAChB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;SAC9B;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: 'unset',\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.5, 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
|
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.
|
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
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
6
|
-
|
7
|
-
|
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
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
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, className: "ob-error-snackbar" },
|
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
|
-
|
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,
|
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,EACpB,SAAS,EAAC,mBAAmB;QAE7B,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 className=\"ob-error-snackbar\"\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
|
-
|
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
|
8
|
-
|
9
|
-
|
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 {};
|
package/dist/components/Lists.js
CHANGED
@@ -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
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
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
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
return
|
37
|
-
|
38
|
-
|
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
|
41
|
-
|
42
|
-
|
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,
|
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"]}
|
@@ -1,11 +1,11 @@
|
|
1
1
|
import * as React from 'react';
|
2
2
|
import { Box, CircularProgress, Grid, Typography } from '@mui/material';
|
3
3
|
const Loading = ({ message }) => {
|
4
|
-
return (React.createElement(Box, { p: 2 },
|
5
|
-
React.createElement(Grid, { container: true, spacing: 2 },
|
4
|
+
return (React.createElement(Box, { p: 2, className: "ob-loading-with-message" },
|
5
|
+
React.createElement(Grid, { container: true, spacing: 2, className: "ob-loading" },
|
6
6
|
React.createElement(Grid, { xs: 12, container: true, item: true, justifyContent: "center" },
|
7
7
|
React.createElement(CircularProgress, null)),
|
8
|
-
message && (React.createElement(Grid, { xs: 12, container: true, item: true, justifyContent: "center" },
|
8
|
+
message && (React.createElement(Grid, { xs: 12, container: true, item: true, justifyContent: "center", className: "ob-loading-message" },
|
9
9
|
React.createElement(Typography, { variant: "body2", align: "center" }, message))))));
|
10
10
|
};
|
11
11
|
export default React.memo(Loading);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LoadingWithMessage.js","sourceRoot":"","sources":["../../src/components/LoadingWithMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAKvE,MAAM,OAAO,GAAG,CAAC,EAAE,OAAO,EAAS,EAAE,EAAE;IACrC,OAAO,CACL,oBAAC,GAAG,IAAC,CAAC,EAAE,CAAC;
|
1
|
+
{"version":3,"file":"LoadingWithMessage.js","sourceRoot":"","sources":["../../src/components/LoadingWithMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAKvE,MAAM,OAAO,GAAG,CAAC,EAAE,OAAO,EAAS,EAAE,EAAE;IACrC,OAAO,CACL,oBAAC,GAAG,IAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAC,yBAAyB;QAC5C,oBAAC,IAAI,IAAC,SAAS,QAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAC,YAAY;YAChD,oBAAC,IAAI,IAAC,EAAE,EAAE,EAAE,EAAE,SAAS,QAAC,IAAI,QAAC,cAAc,EAAC,QAAQ;gBAClD,oBAAC,gBAAgB,OAAoB,CAChC;YACN,OAAO,IAAI,CACV,oBAAC,IAAI,IACH,EAAE,EAAE,EAAE,EACN,SAAS,QACT,IAAI,QACJ,cAAc,EAAC,QAAQ,EACvB,SAAS,EAAC,oBAAoB;gBAE9B,oBAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,QAAQ,IACvC,OAAO,CACG,CACR,CACR,CACI,CACH,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,KAAK,CAAC,IAAI,CAAQ,OAAO,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport { Box, CircularProgress, Grid, Typography } from '@mui/material'\ntype Props = {\n message?: string\n}\n\nconst Loading = ({ message }: Props) => {\n return (\n <Box p={2} className=\"ob-loading-with-message\">\n <Grid container spacing={2} className=\"ob-loading\">\n <Grid xs={12} container item justifyContent=\"center\">\n <CircularProgress></CircularProgress>\n </Grid>\n {message && (\n <Grid\n xs={12}\n container\n item\n justifyContent=\"center\"\n className=\"ob-loading-message\"\n >\n <Typography variant=\"body2\" align=\"center\">\n {message}\n </Typography>\n </Grid>\n )}\n </Grid>\n </Box>\n )\n}\n\nexport default React.memo<Props>(Loading)\n"]}
|
@@ -0,0 +1,89 @@
|
|
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("div", { className: isLoading === 'INITIAL'
|
81
|
+
? 'ob-form-store-loading-initial'
|
82
|
+
: 'ob-form-store-loading-more' },
|
83
|
+
React.createElement(LoadingWithMessage, { message: "Loading more records..." }))),
|
84
|
+
loadError && (React.createElement(React.Fragment, null,
|
85
|
+
React.createElement(ErrorMessage, { title: "Error Retrieving Submissions", gutterBottom: true, gutterTop: true }, loadError.message),
|
86
|
+
React.createElement(Grid, { container: true, justifyContent: "center" },
|
87
|
+
React.createElement(Button, { className: "ob-form-store-try-again-button", variant: "outlined", color: "primary", onClick: () => onTryAgain() }, "Try Again"))))));
|
88
|
+
}
|
89
|
+
//# 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 && (\n <div\n className={\n isLoading === 'INITIAL'\n ? 'ob-form-store-loading-initial'\n : 'ob-form-store-loading-more'\n }\n >\n <LoadingWithMessage message=\"Loading more records...\" />\n </div>\n )}\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 className=\"ob-form-store-try-again-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;
|