dinocollab-core 2.1.41 → 2.1.43

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 (43) hide show
  1. package/dist/src/components/create.multi-select-dropdown.js +1 -1
  2. package/dist/src/components/create.multi-select-dropdown.js.map +1 -1
  3. package/dist/src/data-view/create.active-filters-panel.js +1 -1
  4. package/dist/src/data-view/create.active-filters-panel.js.map +1 -1
  5. package/dist/src/data-view/dino.js +1 -1
  6. package/dist/src/data-view/dino.js.map +1 -1
  7. package/dist/src/data-view/filter-store.js +1 -1
  8. package/dist/src/data-view/filter-store.js.map +1 -1
  9. package/dist/src/data-view/query-param-url.js +1 -1
  10. package/dist/src/data-view/query-param-url.js.map +1 -1
  11. package/dist/src/form/create.date-expired.js +1 -1
  12. package/dist/src/form/create.date-expired.js.map +1 -1
  13. package/dist/src/form/create.date-picker.js +1 -1
  14. package/dist/src/form/create.date-picker.js.map +1 -1
  15. package/dist/src/form/create.form-comfirm.js +1 -1
  16. package/dist/src/form/create.form-comfirm.js.map +1 -1
  17. package/dist/src/form/create.form-grid-layout.js +1 -1
  18. package/dist/src/form/create.form-grid-layout.js.map +1 -1
  19. package/dist/src/form/create.input-file.csv-local-parser.js +1 -1
  20. package/dist/src/form/create.input-file.csv-local-parser.js.map +1 -1
  21. package/dist/src/form/create.input.js +1 -1
  22. package/dist/src/form/create.input.js.map +1 -1
  23. package/dist/src/form/create.select-simple.js +1 -1
  24. package/dist/src/form/create.select-simple.js.map +1 -1
  25. package/dist/src/form/validator.js +1 -1
  26. package/dist/src/form/validator.js.map +1 -1
  27. package/dist/src/table/create.action-row.js +1 -1
  28. package/dist/src/table/create.action-row.js.map +1 -1
  29. package/dist/src/table/create.table.js +1 -1
  30. package/dist/src/table/create.table.js.map +1 -1
  31. package/dist/src/table/dino.js +1 -1
  32. package/dist/src/table/dino.js.map +1 -1
  33. package/dist/src/table/helpers.js +1 -1
  34. package/dist/src/table/helpers.js.map +1 -1
  35. package/dist/src/table/ui.units.js +1 -1
  36. package/dist/src/table/ui.units.js.map +1 -1
  37. package/dist/src/table-grid/create.table-grid.js +1 -1
  38. package/dist/src/table-grid/create.table-grid.js.map +1 -1
  39. package/dist/src/table-grid/url-query-param.js +1 -1
  40. package/dist/src/table-grid/url-query-param.js.map +1 -1
  41. package/dist/table/index.js +1 -1
  42. package/dist/types/table/create.table.d.ts +3 -3
  43. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ui.units.js","sources":["../../../src/table/ui.units.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\r\nimport { Box, BoxProps, Chip, Divider, IconButton, styled, SxProps, Theme, Tooltip, Typography, TypographyProps } from '@mui/material'\r\nimport type { ComponentType, FC, PropsWithChildren, ReactNode } from 'react'\r\nimport OpenInNewIcon from '@mui/icons-material/OpenInNew'\r\nimport { dayjsCustom, mergeObjects } from '../utils'\r\nimport { CopyToClipboard, HelpTooltipWrap } from '../components'\r\n\r\n//#region CellImageSmall\r\nexport type IStatusCellConfig<T extends string> = { [key in T]: SxProps<Theme> }\r\n\r\nexport interface IStatusCellOptions {\r\n sx?: SxProps<Theme>\r\n}\r\n\r\nexport interface IStatusCellProps<T extends string> extends PropsWithChildren {\r\n value?: T\r\n title?: string\r\n sx?: SxProps<Theme>\r\n onClick?: TypographyProps['onClick']\r\n slots?: {\r\n typographyProps?: TypographyProps\r\n }\r\n}\r\n\r\nexport const CreateStatusCell = function <T extends string>(\r\n config: IStatusCellConfig<T>,\r\n options?: IStatusCellOptions\r\n): ComponentType<IStatusCellProps<T>> {\r\n const StatusCell: FC<IStatusCellProps<T>> = (props) => {\r\n const getSxProps = (): SxProps<Theme> => {\r\n const { value: data, sx, slots } = props\r\n return Object.assign({}, data ? config[data] : {}, options?.sx, sx, slots?.typographyProps?.sx)\r\n }\r\n\r\n if (!props.value) return <></>\r\n return (\r\n <CustomTypography onClick={props.onClick} {...props.slots?.typographyProps} sx={getSxProps()}>\r\n {props.title || props.value}\r\n </CustomTypography>\r\n )\r\n }\r\n return StatusCell\r\n}\r\n\r\nconst CustomTypography = styled(Typography)({\r\n borderRadius: '4px',\r\n fontSize: '0.8rem',\r\n padding: '4px 9px',\r\n fontWeight: 600,\r\n minWidth: '70px',\r\n textAlign: 'center',\r\n color: '#ffffff',\r\n display: 'inline-block'\r\n})\r\n\r\n//#region CellImageSmall\r\ninterface CellImageSmallProps {\r\n value: string\r\n imageUri?: string\r\n fallbackSrc?: string\r\n}\r\n\r\nexport const CellImageSmall: FC<CellImageSmallProps> = (props) => {\r\n const [imgSrc, setImgSrc] = useState(props.imageUri ?? props.fallbackSrc)\r\n useEffect(() => {\r\n setImgSrc(props.imageUri ?? props.fallbackSrc)\r\n }, [props.imageUri, props.fallbackSrc])\r\n return (\r\n <Box sx={{ display: 'flex', alignItems: 'center', height: '100%', gap: '10px' }}>\r\n <ImageSmall src={imgSrc} onError={() => setImgSrc(props.fallbackSrc)} />\r\n <Typography variant='body1'>{props.value}</Typography>\r\n </Box>\r\n )\r\n}\r\n\r\ninterface ImageSmallFallbackProps {\r\n imageUri?: string\r\n imageFallback?: string\r\n sx?: SxProps<Theme>\r\n}\r\n\r\nexport const ImageSmallFallback: FC<ImageSmallFallbackProps> = (props) => {\r\n const [imgSrc, setImgSrc] = useState(props.imageUri ?? props.imageFallback)\r\n useEffect(() => {\r\n setImgSrc(props.imageUri ?? props.imageFallback)\r\n }, [props.imageUri, props.imageFallback])\r\n return <ImageSmall src={imgSrc} onError={() => setImgSrc(props.imageFallback)} sx={props.sx} />\r\n}\r\n\r\nconst ImageSmall = styled('img')({\r\n backgroundRepeat: 'no-repeat',\r\n height: '50px',\r\n width: '50px',\r\n backgroundSize: 'contain',\r\n borderRadius: '8px',\r\n boxShadow: 'rgba(0, 0, 0, 0.16) 0px 1px 4px'\r\n})\r\n//#endregion\r\n\r\n//#region CellBase\r\n\r\nexport interface CellBaseOptions {\r\n openInNewTab?: boolean\r\n beforeLine?: boolean\r\n copyToClipboard?: boolean\r\n icon?: ReactNode\r\n imageUrl?: string\r\n imageFallbackSrc?: string\r\n valueFormatter?: (value?: string) => string\r\n wrapProps?: BoxProps & { [key: string]: any }\r\n typographyProps?: TypographyProps & { [key: string]: any }\r\n}\r\n\r\ninterface CellBaseProps extends CellBaseOptions {\r\n value?: string\r\n valueFormatted?: string\r\n}\r\n\r\nexport const CellBase: FC<CellBaseProps> = (props) => {\r\n const value = props.valueFormatted ?? props.value\r\n const isCopyToClipboard = !!props.copyToClipboard && !!value\r\n return (\r\n <CellBaseWrap title={value} {...props.wrapProps}>\r\n {!!props.imageUrl && <ImageSmallFallback imageUri={props.imageUrl} sx={{ mr: '10px' }} imageFallback={props.imageFallbackSrc} />}\r\n {!!props.icon && props.icon}\r\n <Typography variant='body2' component='span' noWrap sx={{ flex: 1 }} {...props.typographyProps}>\r\n {value}\r\n </Typography>\r\n {value && props.openInNewTab === true && (\r\n <Tooltip arrow title='Open new tab'>\r\n <IconButton component='a' href={value} target='_blank'>\r\n <OpenInNewIcon fontSize='small' sx={{ color: '#1A75E2' }} />\r\n </IconButton>\r\n </Tooltip>\r\n )}\r\n {isCopyToClipboard && <CopyToClipboard value={value} />}\r\n {value && props.beforeLine === true && <Divider flexItem variant='middle' orientation='vertical' />}\r\n </CellBaseWrap>\r\n )\r\n}\r\n\r\nconst CellBaseWrap = styled(({ children, ...props }: BoxProps) => (\r\n <Box {...props}>\r\n <div>{children}</div>\r\n </Box>\r\n))({\r\n flex: 1,\r\n width: '100%',\r\n height: '100%',\r\n position: 'relative',\r\n top: 0,\r\n left: 0,\r\n '& > div': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%',\r\n height: '100%',\r\n position: 'absolute',\r\n top: 0,\r\n left: 0\r\n }\r\n})\r\n//#endregion\r\n\r\n//#region Chips\r\nexport interface CellChipsProps {\r\n value?: string\r\n valueFormatter?: (value: string) => string\r\n separator?: string\r\n maximum?: number\r\n}\r\n\r\nexport const CellChips: FC<CellChipsProps> = (props) => {\r\n if (typeof props.value !== 'string') return props.value ?? <></>\r\n\r\n const list = props.value.split(props?.separator ?? '|').filter((x) => !!x)\r\n const displayList = props?.maximum ? list.slice(0, props.maximum) : list\r\n const remainingCount = props?.maximum && list.length > props.maximum ? list.length - props.maximum : 0\r\n\r\n return (\r\n <Box sx={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: '4px', height: '100%' }}>\r\n {displayList.map((x, i) => (\r\n <CustomChip key={'key' + i} label={props.valueFormatter ? props.valueFormatter(x) : x} size='small' />\r\n ))}\r\n {remainingCount > 0 && (\r\n <HelpTooltipWrap\r\n title='Artists'\r\n content={\r\n <Box sx={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: '4px' }}>\r\n {list.map((x, i) => (\r\n <CustomChip key={'key' + i} label={x} size='small' />\r\n ))}\r\n </Box>\r\n }\r\n >\r\n <CustomChip key='remaining' label={`+${remainingCount}`} size='small' />\r\n </HelpTooltipWrap>\r\n )}\r\n </Box>\r\n )\r\n}\r\n\r\nconst CustomChip = styled(Chip)({\r\n lineHeight: 1\r\n})\r\n//#endregion\r\n\r\n//#region Date\r\nexport interface CellDatePropsOwner {\r\n formatString?: string\r\n showRelative?: boolean\r\n typographyProps?: TypographyProps\r\n styledGetter?: (value: any) => SxProps<Theme>\r\n}\r\nexport interface CellDateProps extends CellDatePropsOwner {\r\n value: any\r\n}\r\n\r\nexport const CellDate: FC<CellDateProps> = (props) => {\r\n try {\r\n const showRelative = props?.showRelative ?? false\r\n const date = dayjsCustom(props.value)\r\n const formatted = date.format(props.formatString)\r\n const value = showRelative ? `${formatted} (${dayjsCustom().to(date)})` : formatted\r\n const sx = props.styledGetter ? props.styledGetter(props.value) : { flex: 1 }\r\n const mergeTypographyProps = mergeObjects<TypographyProps>({}, props.typographyProps ?? {}, { sx })\r\n return (\r\n <Typography variant='body2' component='span' noWrap title={`${value} formatted with ${props.formatString}`} {...mergeTypographyProps}>\r\n {value}\r\n </Typography>\r\n )\r\n } catch {\r\n return (\r\n <Typography variant='body2' component='span' noWrap>\r\n format invalid\r\n </Typography>\r\n )\r\n }\r\n}\r\n//#endregion\r\n"],"names":["CreateStatusCell","config","options","props","_props$slots","_slots$typographyProp","data","sx","slots","value","_jsx","CustomTypography","_objectSpread","onClick","typographyProps","Object","assign","children","title","styled","Typography","borderRadius","fontSize","padding","fontWeight","minWidth","textAlign","color","display","CellImageSmall","_props$imageUri","_useState","useState","imageUri","fallbackSrc","_useState2","_slicedToArray","imgSrc","setImgSrc","useEffect","_props$imageUri2","_jsxs","Box","alignItems","height","gap","ImageSmall","src","onError","variant","ImageSmallFallback","_props$imageUri3","_useState3","imageFallback","_useState4","_props$imageUri4","backgroundRepeat","width","backgroundSize","boxShadow","CellBase","_props$valueFormatted","valueFormatted","isCopyToClipboard","copyToClipboard","CellBaseWrap","wrapProps","imageUrl","mr","imageFallbackSrc","icon","component","noWrap","flex","openInNewTab","Tooltip","arrow","IconButton","href","target","OpenInNewIcon","CopyToClipboard","beforeLine","Divider","flexItem","orientation","_ref","_objectWithoutProperties","_excluded","position","top","left","CellChips","_props$value","_props$separator","list","split","separator","filter","x","displayList","maximum","slice","remainingCount","length","flexWrap","map","i","CustomChip","label","valueFormatter","size","HelpTooltipWrap","content","concat","Chip","lineHeight","CellDate","_props$showRelative","_props$typographyProp","showRelative","date","dayjsCustom","formatted","format","formatString","to","styledGetter","mergeTypographyProps","mergeObjects","_unused"],"mappings":"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"}
1
+ {"version":3,"file":"ui.units.js","sources":["../../../src/table/ui.units.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\r\nimport { Box, BoxProps, Chip, Divider, IconButton, styled, SxProps, Theme, Tooltip, Typography, TypographyProps } from '@mui/material'\r\nimport type { ComponentType, FC, PropsWithChildren, ReactNode } from 'react'\r\nimport OpenInNewIcon from '@mui/icons-material/OpenInNew'\r\nimport { dayjsCustom, mergeObjects } from '../utils'\r\nimport { CopyToClipboard, HelpTooltipWrap } from '../components'\r\n\r\n//#region CellImageSmall\r\nexport type IStatusCellConfig<T extends string> = { [key in T]: SxProps<Theme> }\r\n\r\nexport interface IStatusCellOptions {\r\n sx?: SxProps<Theme>\r\n}\r\n\r\nexport interface IStatusCellProps<T extends string> extends PropsWithChildren {\r\n value?: T\r\n title?: string\r\n sx?: SxProps<Theme>\r\n onClick?: TypographyProps['onClick']\r\n slots?: {\r\n typographyProps?: TypographyProps\r\n }\r\n}\r\n\r\nexport const CreateStatusCell = function <T extends string>(\r\n config: IStatusCellConfig<T>,\r\n options?: IStatusCellOptions\r\n): ComponentType<IStatusCellProps<T>> {\r\n const StatusCell: FC<IStatusCellProps<T>> = (props) => {\r\n const getSxProps = (): SxProps<Theme> => {\r\n const { value: data, sx, slots } = props\r\n return Object.assign({}, data ? config[data] : {}, options?.sx, sx, slots?.typographyProps?.sx)\r\n }\r\n\r\n if (!props.value) return <></>\r\n return (\r\n <CustomTypography onClick={props.onClick} {...props.slots?.typographyProps} sx={getSxProps()}>\r\n {props.title || props.value}\r\n </CustomTypography>\r\n )\r\n }\r\n return StatusCell\r\n}\r\n\r\nconst CustomTypography = styled(Typography)({\r\n borderRadius: '4px',\r\n fontSize: '0.8rem',\r\n padding: '4px 9px',\r\n fontWeight: 600,\r\n minWidth: '70px',\r\n textAlign: 'center',\r\n color: '#ffffff',\r\n display: 'inline-block'\r\n})\r\n\r\n//#region CellImageSmall\r\ninterface CellImageSmallProps {\r\n value: string\r\n imageUri?: string\r\n fallbackSrc?: string\r\n}\r\n\r\nexport const CellImageSmall: FC<CellImageSmallProps> = (props) => {\r\n const [imgSrc, setImgSrc] = useState(props.imageUri ?? props.fallbackSrc)\r\n useEffect(() => {\r\n setImgSrc(props.imageUri ?? props.fallbackSrc)\r\n }, [props.imageUri, props.fallbackSrc])\r\n return (\r\n <Box sx={{ display: 'flex', alignItems: 'center', height: '100%', gap: '10px' }}>\r\n <ImageSmall src={imgSrc} onError={() => setImgSrc(props.fallbackSrc)} />\r\n <Typography variant='body1'>{props.value}</Typography>\r\n </Box>\r\n )\r\n}\r\n\r\ninterface ImageSmallFallbackProps {\r\n imageUri?: string\r\n imageFallback?: string\r\n sx?: SxProps<Theme>\r\n}\r\n\r\nexport const ImageSmallFallback: FC<ImageSmallFallbackProps> = (props) => {\r\n const [imgSrc, setImgSrc] = useState(props.imageUri ?? props.imageFallback)\r\n useEffect(() => {\r\n setImgSrc(props.imageUri ?? props.imageFallback)\r\n }, [props.imageUri, props.imageFallback])\r\n return <ImageSmall src={imgSrc} onError={() => setImgSrc(props.imageFallback)} sx={props.sx} />\r\n}\r\n\r\nconst ImageSmall = styled('img')({\r\n backgroundRepeat: 'no-repeat',\r\n height: '50px',\r\n width: '50px',\r\n backgroundSize: 'contain',\r\n borderRadius: '8px',\r\n boxShadow: 'rgba(0, 0, 0, 0.16) 0px 1px 4px'\r\n})\r\n//#endregion\r\n\r\n//#region CellBase\r\n\r\nexport interface CellBaseOptions {\r\n openInNewTab?: boolean\r\n beforeLine?: boolean\r\n copyToClipboard?: boolean\r\n icon?: ReactNode\r\n imageUrl?: string\r\n imageFallbackSrc?: string\r\n valueFormatter?: (value?: string) => string\r\n wrapProps?: BoxProps & { [key: string]: any }\r\n typographyProps?: TypographyProps & { [key: string]: any }\r\n}\r\n\r\ninterface CellBaseProps extends CellBaseOptions {\r\n value?: string\r\n valueFormatted?: string\r\n}\r\n\r\nexport const CellBase: FC<CellBaseProps> = (props) => {\r\n const value = props.valueFormatted ?? props.value\r\n const isCopyToClipboard = !!props.copyToClipboard && !!value\r\n return (\r\n <CellBaseWrap title={value} {...props.wrapProps}>\r\n {!!props.imageUrl && <ImageSmallFallback imageUri={props.imageUrl} sx={{ mr: '10px' }} imageFallback={props.imageFallbackSrc} />}\r\n {!!props.icon && props.icon}\r\n <Typography variant='body2' component='span' noWrap sx={{ flex: 1 }} {...props.typographyProps}>\r\n {value}\r\n </Typography>\r\n {value && props.openInNewTab === true && (\r\n <Tooltip arrow title='Open new tab'>\r\n <IconButton component='a' href={value} target='_blank'>\r\n <OpenInNewIcon fontSize='small' sx={{ color: '#1A75E2' }} />\r\n </IconButton>\r\n </Tooltip>\r\n )}\r\n {isCopyToClipboard && <CopyToClipboard value={value} />}\r\n {value && props.beforeLine === true && <Divider flexItem variant='middle' orientation='vertical' />}\r\n </CellBaseWrap>\r\n )\r\n}\r\n\r\nconst CellBaseWrap = styled(({ children, ...props }: BoxProps) => (\r\n <Box {...props}>\r\n <div>{children}</div>\r\n </Box>\r\n))({\r\n flex: 1,\r\n width: '100%',\r\n height: '100%',\r\n position: 'relative',\r\n top: 0,\r\n left: 0,\r\n '& > div': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%',\r\n height: '100%',\r\n position: 'absolute',\r\n top: 0,\r\n left: 0\r\n }\r\n})\r\n//#endregion\r\n\r\n//#region Chips\r\nexport interface CellChipsProps {\r\n value?: string\r\n valueFormatter?: (value: string) => string\r\n separator?: string\r\n maximum?: number\r\n}\r\n\r\nexport const CellChips: FC<CellChipsProps> = (props) => {\r\n if (typeof props.value !== 'string') return props.value ?? <></>\r\n\r\n const list = props.value.split(props?.separator ?? '|').filter((x) => !!x)\r\n const displayList = props?.maximum ? list.slice(0, props.maximum) : list\r\n const remainingCount = props?.maximum && list.length > props.maximum ? list.length - props.maximum : 0\r\n\r\n return (\r\n <Box sx={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: '4px', height: '100%' }}>\r\n {displayList.map((x, i) => (\r\n <CustomChip key={'key' + i} label={props.valueFormatter ? props.valueFormatter(x) : x} size='small' />\r\n ))}\r\n {remainingCount > 0 && (\r\n <HelpTooltipWrap\r\n title='Artists'\r\n content={\r\n <Box sx={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: '4px' }}>\r\n {list.map((x, i) => (\r\n <CustomChip key={'key' + i} label={x} size='small' />\r\n ))}\r\n </Box>\r\n }\r\n >\r\n <CustomChip key='remaining' label={`+${remainingCount}`} size='small' />\r\n </HelpTooltipWrap>\r\n )}\r\n </Box>\r\n )\r\n}\r\n\r\nconst CustomChip = styled(Chip)({\r\n lineHeight: 1\r\n})\r\n//#endregion\r\n\r\n//#region Date\r\nexport interface CellDatePropsOwner {\r\n formatString?: string\r\n showRelative?: boolean\r\n typographyProps?: TypographyProps\r\n styledGetter?: (value: any) => SxProps<Theme>\r\n}\r\nexport interface CellDateProps extends CellDatePropsOwner {\r\n value: any\r\n}\r\n\r\nexport const CellDate: FC<CellDateProps> = (props) => {\r\n try {\r\n const showRelative = props?.showRelative ?? false\r\n const date = dayjsCustom(props.value)\r\n const formatted = date.format(props.formatString)\r\n const value = showRelative ? `${formatted} (${dayjsCustom().to(date)})` : formatted\r\n const sx = props.styledGetter ? props.styledGetter(props.value) : { flex: 1 }\r\n const mergeTypographyProps = mergeObjects<TypographyProps>({}, props.typographyProps ?? {}, { sx })\r\n return (\r\n <Typography variant='body2' component='span' noWrap title={`${value} formatted with ${props.formatString}`} {...mergeTypographyProps}>\r\n {value}\r\n </Typography>\r\n )\r\n } catch {\r\n return (\r\n <Typography variant='body2' component='span' noWrap>\r\n format invalid\r\n </Typography>\r\n )\r\n }\r\n}\r\n//#endregion\r\n"],"names":["CreateStatusCell","config","options","props","_props$slots","_slots$typographyProp","data","sx","slots","value","_jsx","CustomTypography","_objectSpread","onClick","typographyProps","Object","assign","children","title","styled","Typography","borderRadius","fontSize","padding","fontWeight","minWidth","textAlign","color","display","CellImageSmall","_props$imageUri","_useState","useState","imageUri","fallbackSrc","_useState2","_slicedToArray","imgSrc","setImgSrc","useEffect","_props$imageUri2","_jsxs","Box","alignItems","height","gap","ImageSmall","src","onError","variant","ImageSmallFallback","_props$imageUri3","_useState3","imageFallback","_useState4","_props$imageUri4","backgroundRepeat","width","backgroundSize","boxShadow","CellBase","_props$valueFormatted","valueFormatted","isCopyToClipboard","copyToClipboard","CellBaseWrap","wrapProps","imageUrl","mr","imageFallbackSrc","icon","component","noWrap","flex","openInNewTab","Tooltip","arrow","IconButton","href","target","OpenInNewIcon","CopyToClipboard","beforeLine","Divider","flexItem","orientation","_ref","_objectWithoutProperties","_excluded","position","top","left","CellChips","_props$value","_props$separator","list","split","separator","filter","x","displayList","maximum","slice","remainingCount","length","flexWrap","map","i","CustomChip","label","valueFormatter","size","HelpTooltipWrap","content","concat","Chip","lineHeight","CellDate","_props$showRelative","_props$typographyProp","showRelative","date","dayjsCustom","formatted","format","formatString","to","styledGetter","mergeTypographyProps","mergeObjects","_unused"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{inherits as t,createClass as e,objectSpread2 as i,classCallCheck as r,callSuper as o,defineProperty as n}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a,jsxs as l}from"react/jsx-runtime";import{Component as s}from"react";import{Stack as d,Grid as c,Box as p,Fade as u,CircularProgress as g,Typography as h,Divider as m,TablePagination as f}from"@mui/material";import{mergeObjects as v}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"../utils/query-param.js";import{defaultPagination as S}from"./helpers.js";import{CreateTableGridItemActions as P}from"./item-actions.js";import j from"./filter-bar/create.filter-bar.js";import"./filter-bar/types.js";import{ItemDefault as b,TableGridStyled as C,tableGridClasses as y}from"./styled.js";import x from"./toolbar-pannel.js";import I from"../api-context/popover-global.js";import{GlobalModal as z}from"../api-context/global-modal.js";function N(N){var F,R=j(null!==(F=N.filterBarConfigs)&&void 0!==F?F:{fields:{}}),k=P(),B=function(){function P(){var t;r(this,P);for(var e=arguments.length,s=new Array(e),d=0;d<e;d++)s[d]=arguments[d];return t=o(this,P,[].concat(s)),n(t,"filterStateStore",{pagination:S}),n(t,"setFilterState",function(e){try{e.details?t.filterStateStore=i({pagination:t.filterStateStore.pagination},e):t.filterStateStore=v({},t.filterState,e),t.props.onFilterChange&&t.props.onFilterChange(t.filterStateStore),t.forceUpdate()}catch(t){console.log(t)}}),n(t,"preRender",function(t){return l(z,{children:[a(I.Provider,{}),t]})}),n(t,"getPagination",function(){var e;return null!==(e=t.filterState.pagination)&&void 0!==e?e:S}),n(t,"getRootClasses",function(){var e=[y.root];return t.filterState.loading&&e.push(y.loading),e.join(" ")}),n(t,"getItems",function(){var e;return null!==(e=t.props.data.items)&&void 0!==e?e:[]}),n(t,"handleFilterChange",function(e){t.setFilterState(e)}),n(t,"handleChangePage",function(e,i){var r=t.getPagination();t.setFilterState({pagination:{page:i,pageSize:r.pageSize}})}),n(t,"handleChangeRowsPerPage",function(e){t.setFilterState({pagination:{page:0,pageSize:parseInt(e.target.value,10)}})}),t}return t(P,s),e(P,[{key:"filterState",get:function(){var t;return null!==(t=this.props.filter)&&void 0!==t?t:this.filterStateStore}},{key:"slots",get:function(){var t,e,r,o,n,l,s;return i(i({},Object.assign({},N.slots,this.props.slots)),{},{TableGridItem:null!==(t=null!==(e=null===(r=this.props.slots)||void 0===r?void 0:r.item)&&void 0!==e?e:N.item)&&void 0!==t?t:function(){return a(b,{})},ToolbarPannel:null!==(o=null!==(n=null===(l=this.props.slots)||void 0===l?void 0:l.toolbar)&&void 0!==n?n:null===(s=N.slots)||void 0===s?void 0:s.toolbar)&&void 0!==o?o:x})}},{key:"mergeConfig",get:function(){var t;return{size:null!==(t=N.size)&&void 0!==t?t:{xs:12,sm:6,md:4}}}},{key:"render",value:function(){var t,e,r,o,n=this,s=this.slots,v=s.TableGridItem,S=s.ToolbarPannel,P=s.actionProps,j=this.getItems(),b=this.getPagination();return this.preRender(l(C,{className:this.getRootClasses(),children:[a(S,i({title:N.title},this.slots.toolbarProps)),l(d,{className:y.filterBarWrap,sx:null===(t=this.slots.filterBar)||void 0===t?void 0:t.sx,children:[(null===(e=this.slots.filterBar)||void 0===e?void 0:e.before)||null,a(R,{value:this.filterState,onChange:this.handleFilterChange}),(null===(r=this.slots.filterBar)||void 0===r?void 0:r.after)||null]}),l("div",{className:y.content,children:[a("div",{className:[y.contentInner,y.contentPosition].join(" "),children:a(c,i(i({container:!0,spacing:2},this.slots.gridContainer),{},{children:j.map(function(t,e){return a(c,i(i(i({item:!0},n.mergeConfig.size),n.slots.gridItem),{},{children:l("div",{className:y.item,children:[a(v,{value:t}),a(p,{className:y.actions,children:a(k,i({value:t},P))})]})}),N.getSelecterId(t).toString()+e)})}))}),a(u,{in:this.filterState.loading,unmountOnExit:!0,children:a("div",{className:[y.overlay,y.contentPosition].join(" "),children:a(g,{size:36})})}),a(u,{in:j.length<1&&!this.filterState.loading,unmountOnExit:!0,children:a("div",{className:[y.noItems,y.contentPosition].join(" "),children:a(h,{variant:"body2",children:"No items data"})})})]}),a(m,{sx:{position:"relative",zIndex:2}}),a(f,{component:"div",count:null!==(o=this.props.data.totalItems)&&void 0!==o?o:0,page:b.page,onPageChange:this.handleChangePage,rowsPerPage:b.pageSize,onRowsPerPageChange:this.handleChangeRowsPerPage,slotProps:{select:{MenuProps:{disableScrollLock:!0}}}})]}))}}])}();return B}export{N as default};
1
+ import{inherits as t,createClass as e,objectSpread2 as i,classCallCheck as r,callSuper as o,defineProperty as n}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a,jsxs as l}from"react/jsx-runtime";import{Component as s}from"react";import{Stack as d,Grid as c,Box as p,Fade as g,CircularProgress as u,Typography as h,Divider as f,TablePagination as m}from"@mui/material";import{defaultPagination as v}from"./helpers.js";import{CreateTableGridItemActions as S}from"./item-actions.js";import P from"./filter-bar/create.filter-bar.js";import"./filter-bar/types.js";import{ItemDefault as b,TableGridStyled as C,tableGridClasses as j}from"./styled.js";import x from"./toolbar-pannel.js";import y from"../api-context/popover-global.js";import{mergeObjects as I}from"../utils/helpers.js";import{GlobalModal as z}from"../api-context/global-modal.js";function N(N){var F,R=P(null!==(F=N.filterBarConfigs)&&void 0!==F?F:{fields:{}}),k=S(),B=function(){function S(){var t;r(this,S);for(var e=arguments.length,s=new Array(e),d=0;d<e;d++)s[d]=arguments[d];return t=o(this,S,[].concat(s)),n(t,"filterStateStore",{pagination:v}),n(t,"setFilterState",function(e){try{e.details?t.filterStateStore=i({pagination:t.filterStateStore.pagination},e):t.filterStateStore=I({},t.filterState,e),t.props.onFilterChange&&t.props.onFilterChange(t.filterStateStore),t.forceUpdate()}catch(t){console.log(t)}}),n(t,"preRender",function(t){return l(z,{children:[a(y.Provider,{}),t]})}),n(t,"getPagination",function(){var e;return null!==(e=t.filterState.pagination)&&void 0!==e?e:v}),n(t,"getRootClasses",function(){var e=[j.root];return t.filterState.loading&&e.push(j.loading),e.join(" ")}),n(t,"getItems",function(){var e;return null!==(e=t.props.data.items)&&void 0!==e?e:[]}),n(t,"handleFilterChange",function(e){t.setFilterState(e)}),n(t,"handleChangePage",function(e,i){var r=t.getPagination();t.setFilterState({pagination:{page:i,pageSize:r.pageSize}})}),n(t,"handleChangeRowsPerPage",function(e){t.setFilterState({pagination:{page:0,pageSize:parseInt(e.target.value,10)}})}),t}return t(S,s),e(S,[{key:"filterState",get:function(){var t;return null!==(t=this.props.filter)&&void 0!==t?t:this.filterStateStore}},{key:"slots",get:function(){var t,e,r,o,n,l,s;return i(i({},Object.assign({},N.slots,this.props.slots)),{},{TableGridItem:null!==(t=null!==(e=null===(r=this.props.slots)||void 0===r?void 0:r.item)&&void 0!==e?e:N.item)&&void 0!==t?t:function(){return a(b,{})},ToolbarPannel:null!==(o=null!==(n=null===(l=this.props.slots)||void 0===l?void 0:l.toolbar)&&void 0!==n?n:null===(s=N.slots)||void 0===s?void 0:s.toolbar)&&void 0!==o?o:x})}},{key:"mergeConfig",get:function(){var t;return{size:null!==(t=N.size)&&void 0!==t?t:{xs:12,sm:6,md:4}}}},{key:"render",value:function(){var t,e,r,o,n=this,s=this.slots,v=s.TableGridItem,S=s.ToolbarPannel,P=s.actionProps,b=this.getItems(),x=this.getPagination();return this.preRender(l(C,{className:this.getRootClasses(),children:[a(S,i({title:N.title},this.slots.toolbarProps)),l(d,{className:j.filterBarWrap,sx:null===(t=this.slots.filterBar)||void 0===t?void 0:t.sx,children:[(null===(e=this.slots.filterBar)||void 0===e?void 0:e.before)||null,a(R,{value:this.filterState,onChange:this.handleFilterChange}),(null===(r=this.slots.filterBar)||void 0===r?void 0:r.after)||null]}),l("div",{className:j.content,children:[a("div",{className:[j.contentInner,j.contentPosition].join(" "),children:a(c,i(i({container:!0,spacing:2},this.slots.gridContainer),{},{children:b.map(function(t,e){return a(c,i(i(i({item:!0},n.mergeConfig.size),n.slots.gridItem),{},{children:l("div",{className:j.item,children:[a(v,{value:t}),a(p,{className:j.actions,children:a(k,i({value:t},P))})]})}),N.getSelecterId(t).toString()+e)})}))}),a(g,{in:this.filterState.loading,unmountOnExit:!0,children:a("div",{className:[j.overlay,j.contentPosition].join(" "),children:a(u,{size:36})})}),a(g,{in:b.length<1&&!this.filterState.loading,unmountOnExit:!0,children:a("div",{className:[j.noItems,j.contentPosition].join(" "),children:a(h,{variant:"body2",children:"No items data"})})})]}),a(f,{sx:{position:"relative",zIndex:2}}),a(m,{component:"div",count:null!==(o=this.props.data.totalItems)&&void 0!==o?o:0,page:x.page,onPageChange:this.handleChangePage,rowsPerPage:x.pageSize,onRowsPerPageChange:this.handleChangeRowsPerPage,slotProps:{select:{MenuProps:{disableScrollLock:!0}}}})]}))}}])}();return B}export{N as default};
2
2
  //# sourceMappingURL=create.table-grid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.table-grid.js","sources":["../../../src/table-grid/create.table-grid.tsx"],"sourcesContent":["import { Component } from 'react'\r\nimport type { ChangeEventHandler, ComponentType, MouseEvent as RMEvent, ReactNode } from 'react'\r\nimport { Box, CircularProgress, Divider, Fade, Grid, Stack, TablePagination, Typography } from '@mui/material'\r\nimport { mergeObjects } from '../utils'\r\nimport { defaultPagination } from './helpers'\r\nimport { CreateTableGridItemActions } from './item-actions'\r\nimport { GlobalModal, PopoverGlobal } from '../api-context'\r\nimport { CreateFilterBar, IFilterState } from './filter-bar'\r\nimport { ItemDefault, tableGridClasses, TableGridStyled } from './styled'\r\nimport { ITableGridFilter, IPaginationModel, ITableGridParams, ITableGridProps, ITableGridInnerSlots } from './types'\r\nimport ToolbarPannelDefault from './toolbar-pannel'\r\n\r\nfunction CreateTableGrid<T extends object>(params: ITableGridParams<T>): ComponentType<ITableGridProps<T>> {\r\n const FilterBarInstance = CreateFilterBar<T>(params.filterBarConfigs ?? { fields: {} })\r\n const ItemActions = CreateTableGridItemActions<T>()\r\n\r\n class TableGrid extends Component<ITableGridProps<T>> {\r\n private filterStateStore: ITableGridFilter<T> = { pagination: defaultPagination }\r\n get filterState(): ITableGridFilter<T> {\r\n return this.props.filter ?? this.filterStateStore\r\n }\r\n\r\n get slots(): ITableGridInnerSlots<T> {\r\n return {\r\n ...Object.assign({}, params.slots, this.props.slots),\r\n TableGridItem: this.props.slots?.item ?? params.item ?? (() => <ItemDefault />),\r\n ToolbarPannel: this.props.slots?.toolbar ?? params.slots?.toolbar ?? ToolbarPannelDefault\r\n }\r\n }\r\n\r\n get mergeConfig() {\r\n return {\r\n size: params.size ?? { xs: 12, sm: 6, md: 4 }\r\n }\r\n }\r\n\r\n setFilterState = (value: Partial<ITableGridFilter<T>>) => {\r\n try {\r\n if (!!value.details) {\r\n this.filterStateStore = { pagination: this.filterStateStore.pagination, ...value }\r\n } else {\r\n this.filterStateStore = mergeObjects<any>({}, this.filterState, value)\r\n }\r\n this.props.onFilterChange && this.props.onFilterChange(this.filterStateStore)\r\n this.forceUpdate()\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n\r\n render() {\r\n const { TableGridItem, ToolbarPannel, actionProps } = this.slots\r\n const items = this.getItems()\r\n const pagination = this.getPagination()\r\n return this.preRender(\r\n <TableGridStyled className={this.getRootClasses()}>\r\n <ToolbarPannel title={params.title} {...this.slots.toolbarProps} />\r\n <Stack className={tableGridClasses.filterBarWrap} sx={this.slots.filterBar?.sx}>\r\n {this.slots.filterBar?.before || null}\r\n <FilterBarInstance value={this.filterState} onChange={this.handleFilterChange} />\r\n {this.slots.filterBar?.after || null}\r\n </Stack>\r\n <div className={tableGridClasses.content}>\r\n <div className={[tableGridClasses.contentInner, tableGridClasses.contentPosition].join(' ')}>\r\n <Grid container spacing={2} {...this.slots.gridContainer}>\r\n {items.map((item, index) => (\r\n <Grid key={params.getSelecterId(item).toString() + index} item {...this.mergeConfig.size} {...this.slots.gridItem}>\r\n <div className={tableGridClasses.item}>\r\n <TableGridItem value={item} />\r\n <Box className={tableGridClasses.actions}>\r\n <ItemActions value={item} {...actionProps} />\r\n </Box>\r\n </div>\r\n </Grid>\r\n ))}\r\n </Grid>\r\n </div>\r\n <Fade in={this.filterState.loading} unmountOnExit>\r\n <div className={[tableGridClasses.overlay, tableGridClasses.contentPosition].join(' ')}>\r\n <CircularProgress size={36} />\r\n </div>\r\n </Fade>\r\n <Fade in={items.length < 1 && !this.filterState.loading} unmountOnExit>\r\n <div className={[tableGridClasses.noItems, tableGridClasses.contentPosition].join(' ')}>\r\n <Typography variant='body2'>No items data</Typography>\r\n </div>\r\n </Fade>\r\n </div>\r\n <Divider sx={{ position: 'relative', zIndex: 2 }} />\r\n <TablePagination\r\n component='div'\r\n count={this.props.data.totalItems ?? 0}\r\n page={pagination.page}\r\n onPageChange={this.handleChangePage}\r\n rowsPerPage={pagination.pageSize}\r\n onRowsPerPageChange={this.handleChangeRowsPerPage}\r\n slotProps={{ select: { MenuProps: { disableScrollLock: true } } }}\r\n />\r\n </TableGridStyled>\r\n )\r\n }\r\n\r\n preRender = (children?: ReactNode) => (\r\n <GlobalModal>\r\n <PopoverGlobal.Provider />\r\n {children}\r\n </GlobalModal>\r\n )\r\n\r\n getPagination = (): IPaginationModel => this.filterState.pagination ?? defaultPagination\r\n\r\n getRootClasses = () => {\r\n const classes = [tableGridClasses.root]\r\n if (this.filterState.loading) classes.push(tableGridClasses.loading)\r\n return classes.join(' ')\r\n }\r\n\r\n getItems = () => {\r\n return this.props.data.items ?? []\r\n }\r\n\r\n handleFilterChange = (filterStateChange: IFilterState<T>) => {\r\n this.setFilterState(filterStateChange)\r\n }\r\n\r\n handleChangePage = (_: RMEvent<HTMLButtonElement, MouseEvent> | null, page: number) => {\r\n const pagination = this.getPagination()\r\n this.setFilterState({ pagination: { page, pageSize: pagination.pageSize } })\r\n }\r\n\r\n handleChangeRowsPerPage: ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement> = (event) => {\r\n this.setFilterState({ pagination: { page: 0, pageSize: parseInt(event.target.value, 10) } })\r\n }\r\n }\r\n\r\n return TableGrid\r\n}\r\n\r\nexport default CreateTableGrid\r\n"],"names":["CreateTableGrid","params","_params$filterBarConf","FilterBarInstance","CreateFilterBar","filterBarConfigs","fields","ItemActions","CreateTableGridItemActions","TableGrid","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","pagination","defaultPagination","value","details","filterStateStore","_objectSpread","mergeObjects","filterState","props","onFilterChange","forceUpdate","error","console","log","children","_jsxs","GlobalModal","_jsx","PopoverGlobal","Provider","_this$filterState$pag","classes","tableGridClasses","root","loading","push","join","_this$props$data$item","data","items","filterStateChange","setFilterState","_","page","getPagination","pageSize","event","parseInt","target","_inherits","Component","_createClass","key","get","_this$props$filter","filter","_ref","_this$props$slots$ite","_this$props$slots","_ref2","_this$props$slots$too","_this$props$slots2","_params$slots","Object","assign","slots","TableGridItem","item","ItemDefault","ToolbarPannel","toolbar","ToolbarPannelDefault","_params$size","size","xs","sm","md","_this$slots$filterBar","_this$slots$filterBar2","_this$slots$filterBar3","_this$props$data$tota","_this2","_this$slots","actionProps","getItems","preRender","TableGridStyled","className","getRootClasses","title","toolbarProps","Stack","filterBarWrap","sx","filterBar","before","onChange","handleFilterChange","after","content","contentInner","contentPosition","Grid","container","spacing","gridContainer","map","index","mergeConfig","gridItem","Box","actions","getSelecterId","toString","Fade","in","unmountOnExit","overlay","CircularProgress","noItems","Typography","variant","Divider","position","zIndex","TablePagination","component","count","totalItems","onPageChange","handleChangePage","rowsPerPage","onRowsPerPageChange","handleChangeRowsPerPage","slotProps","select","MenuProps","disableScrollLock"],"mappings":"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"}
1
+ {"version":3,"file":"create.table-grid.js","sources":["../../../src/table-grid/create.table-grid.tsx"],"sourcesContent":["import { Component } from 'react'\r\nimport type { ChangeEventHandler, ComponentType, MouseEvent as RMEvent, ReactNode } from 'react'\r\nimport { Box, CircularProgress, Divider, Fade, Grid, Stack, TablePagination, Typography } from '@mui/material'\r\nimport { mergeObjects } from '../utils'\r\nimport { defaultPagination } from './helpers'\r\nimport { CreateTableGridItemActions } from './item-actions'\r\nimport { GlobalModal, PopoverGlobal } from '../api-context'\r\nimport { CreateFilterBar, IFilterState } from './filter-bar'\r\nimport { ItemDefault, tableGridClasses, TableGridStyled } from './styled'\r\nimport { ITableGridFilter, IPaginationModel, ITableGridParams, ITableGridProps, ITableGridInnerSlots } from './types'\r\nimport ToolbarPannelDefault from './toolbar-pannel'\r\n\r\nfunction CreateTableGrid<T extends object>(params: ITableGridParams<T>): ComponentType<ITableGridProps<T>> {\r\n const FilterBarInstance = CreateFilterBar<T>(params.filterBarConfigs ?? { fields: {} })\r\n const ItemActions = CreateTableGridItemActions<T>()\r\n\r\n class TableGrid extends Component<ITableGridProps<T>> {\r\n private filterStateStore: ITableGridFilter<T> = { pagination: defaultPagination }\r\n get filterState(): ITableGridFilter<T> {\r\n return this.props.filter ?? this.filterStateStore\r\n }\r\n\r\n get slots(): ITableGridInnerSlots<T> {\r\n return {\r\n ...Object.assign({}, params.slots, this.props.slots),\r\n TableGridItem: this.props.slots?.item ?? params.item ?? (() => <ItemDefault />),\r\n ToolbarPannel: this.props.slots?.toolbar ?? params.slots?.toolbar ?? ToolbarPannelDefault\r\n }\r\n }\r\n\r\n get mergeConfig() {\r\n return {\r\n size: params.size ?? { xs: 12, sm: 6, md: 4 }\r\n }\r\n }\r\n\r\n setFilterState = (value: Partial<ITableGridFilter<T>>) => {\r\n try {\r\n if (!!value.details) {\r\n this.filterStateStore = { pagination: this.filterStateStore.pagination, ...value }\r\n } else {\r\n this.filterStateStore = mergeObjects<any>({}, this.filterState, value)\r\n }\r\n this.props.onFilterChange && this.props.onFilterChange(this.filterStateStore)\r\n this.forceUpdate()\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n\r\n render() {\r\n const { TableGridItem, ToolbarPannel, actionProps } = this.slots\r\n const items = this.getItems()\r\n const pagination = this.getPagination()\r\n return this.preRender(\r\n <TableGridStyled className={this.getRootClasses()}>\r\n <ToolbarPannel title={params.title} {...this.slots.toolbarProps} />\r\n <Stack className={tableGridClasses.filterBarWrap} sx={this.slots.filterBar?.sx}>\r\n {this.slots.filterBar?.before || null}\r\n <FilterBarInstance value={this.filterState} onChange={this.handleFilterChange} />\r\n {this.slots.filterBar?.after || null}\r\n </Stack>\r\n <div className={tableGridClasses.content}>\r\n <div className={[tableGridClasses.contentInner, tableGridClasses.contentPosition].join(' ')}>\r\n <Grid container spacing={2} {...this.slots.gridContainer}>\r\n {items.map((item, index) => (\r\n <Grid key={params.getSelecterId(item).toString() + index} item {...this.mergeConfig.size} {...this.slots.gridItem}>\r\n <div className={tableGridClasses.item}>\r\n <TableGridItem value={item} />\r\n <Box className={tableGridClasses.actions}>\r\n <ItemActions value={item} {...actionProps} />\r\n </Box>\r\n </div>\r\n </Grid>\r\n ))}\r\n </Grid>\r\n </div>\r\n <Fade in={this.filterState.loading} unmountOnExit>\r\n <div className={[tableGridClasses.overlay, tableGridClasses.contentPosition].join(' ')}>\r\n <CircularProgress size={36} />\r\n </div>\r\n </Fade>\r\n <Fade in={items.length < 1 && !this.filterState.loading} unmountOnExit>\r\n <div className={[tableGridClasses.noItems, tableGridClasses.contentPosition].join(' ')}>\r\n <Typography variant='body2'>No items data</Typography>\r\n </div>\r\n </Fade>\r\n </div>\r\n <Divider sx={{ position: 'relative', zIndex: 2 }} />\r\n <TablePagination\r\n component='div'\r\n count={this.props.data.totalItems ?? 0}\r\n page={pagination.page}\r\n onPageChange={this.handleChangePage}\r\n rowsPerPage={pagination.pageSize}\r\n onRowsPerPageChange={this.handleChangeRowsPerPage}\r\n slotProps={{ select: { MenuProps: { disableScrollLock: true } } }}\r\n />\r\n </TableGridStyled>\r\n )\r\n }\r\n\r\n preRender = (children?: ReactNode) => (\r\n <GlobalModal>\r\n <PopoverGlobal.Provider />\r\n {children}\r\n </GlobalModal>\r\n )\r\n\r\n getPagination = (): IPaginationModel => this.filterState.pagination ?? defaultPagination\r\n\r\n getRootClasses = () => {\r\n const classes = [tableGridClasses.root]\r\n if (this.filterState.loading) classes.push(tableGridClasses.loading)\r\n return classes.join(' ')\r\n }\r\n\r\n getItems = () => {\r\n return this.props.data.items ?? []\r\n }\r\n\r\n handleFilterChange = (filterStateChange: IFilterState<T>) => {\r\n this.setFilterState(filterStateChange)\r\n }\r\n\r\n handleChangePage = (_: RMEvent<HTMLButtonElement, MouseEvent> | null, page: number) => {\r\n const pagination = this.getPagination()\r\n this.setFilterState({ pagination: { page, pageSize: pagination.pageSize } })\r\n }\r\n\r\n handleChangeRowsPerPage: ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement> = (event) => {\r\n this.setFilterState({ pagination: { page: 0, pageSize: parseInt(event.target.value, 10) } })\r\n }\r\n }\r\n\r\n return TableGrid\r\n}\r\n\r\nexport default CreateTableGrid\r\n"],"names":["CreateTableGrid","params","_params$filterBarConf","FilterBarInstance","CreateFilterBar","filterBarConfigs","fields","ItemActions","CreateTableGridItemActions","TableGrid","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","pagination","defaultPagination","value","details","filterStateStore","_objectSpread","mergeObjects","filterState","props","onFilterChange","forceUpdate","error","console","log","children","_jsxs","GlobalModal","_jsx","PopoverGlobal","Provider","_this$filterState$pag","classes","tableGridClasses","root","loading","push","join","_this$props$data$item","data","items","filterStateChange","setFilterState","_","page","getPagination","pageSize","event","parseInt","target","_inherits","Component","_createClass","key","get","_this$props$filter","filter","_ref","_this$props$slots$ite","_this$props$slots","_ref2","_this$props$slots$too","_this$props$slots2","_params$slots","Object","assign","slots","TableGridItem","item","ItemDefault","ToolbarPannel","toolbar","ToolbarPannelDefault","_params$size","size","xs","sm","md","_this$slots$filterBar","_this$slots$filterBar2","_this$slots$filterBar3","_this$props$data$tota","_this2","_this$slots","actionProps","getItems","preRender","TableGridStyled","className","getRootClasses","title","toolbarProps","Stack","filterBarWrap","sx","filterBar","before","onChange","handleFilterChange","after","content","contentInner","contentPosition","Grid","container","spacing","gridContainer","map","index","mergeConfig","gridItem","Box","actions","getSelecterId","toString","Fade","in","unmountOnExit","overlay","CircularProgress","noItems","Typography","variant","Divider","position","zIndex","TablePagination","component","count","totalItems","onPageChange","handleChangePage","rowsPerPage","onRowsPerPageChange","handleChangeRowsPerPage","slotProps","select","MenuProps","disableScrollLock"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{createClass as e,classCallCheck as t,defineProperty as a,objectSpread2 as i}from"../../_virtual/_rollupPluginBabelHelpers.js";import{deepRemoveEmptyFields as l}from"../utils/helpers.js";import"../utils/dayjs-config.js";import{QueryParam as r}from"../utils/query-param.js";var n=new(e(function e(){var n=this;t(this,e),a(this,"getUrlQuery",function(e){try{var t=r.gets("table");return t.table?JSON.parse(t.table):null==e?void 0:e.defaultFilter}catch(t){return null==e?void 0:e.defaultFilter}}),a(this,"setUrlQuery",function(e,t){var a=n.extractFilter(e,t),i=l(a);if(0===Object.keys(i).length)return r.replaceDeletes("table");r.replacePatch({table:JSON.stringify(i)})}),a(this,"extractFilter",function(e,t){var a,l,r,n,o=(null==t?void 0:t.defaultFilter)||{},s=i({},e);delete s.details,delete s.loading;var u=(null===(a=s.pagination)||void 0===a?void 0:a.page)===(null===(l=o.pagination)||void 0===l?void 0:l.page),d=(null===(r=s.pagination)||void 0===r?void 0:r.pageSize)===(null===(n=o.pagination)||void 0===n?void 0:n.pageSize);return u&&d&&delete s.pagination,s})}));export{n as default};
1
+ import{createClass as e,classCallCheck as t,defineProperty as a,objectSpread2 as l}from"../../_virtual/_rollupPluginBabelHelpers.js";import{QueryParam as i}from"../utils/query-param.js";import{deepRemoveEmptyFields as r}from"../utils/helpers.js";var n=new(e(function e(){var n=this;t(this,e),a(this,"getUrlQuery",function(e){try{var t=i.gets("table");return t.table?JSON.parse(t.table):null==e?void 0:e.defaultFilter}catch(t){return null==e?void 0:e.defaultFilter}}),a(this,"setUrlQuery",function(e,t){var a=n.extractFilter(e,t),l=r(a);if(0===Object.keys(l).length)return i.replaceDeletes("table");i.replacePatch({table:JSON.stringify(l)})}),a(this,"extractFilter",function(e,t){var a,i,r,n,o=(null==t?void 0:t.defaultFilter)||{},s=l({},e);delete s.details,delete s.loading;var u=(null===(a=s.pagination)||void 0===a?void 0:a.page)===(null===(i=o.pagination)||void 0===i?void 0:i.page),d=(null===(r=s.pagination)||void 0===r?void 0:r.pageSize)===(null===(n=o.pagination)||void 0===n?void 0:n.pageSize);return u&&d&&delete s.pagination,s})}));export{n as default};
2
2
  //# sourceMappingURL=url-query-param.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"url-query-param.js","sources":["../../../src/table-grid/url-query-param.ts"],"sourcesContent":["import { ITableGridFilter } from './types'\r\nimport { deepRemoveEmptyFields, QueryParam } from '../utils'\r\n\r\nexport interface ITableGridQueryParams {\r\n table?: string\r\n}\r\n\r\nexport interface IUrlQueryParamOptions<T> {\r\n defaultFilter?: ITableGridFilter<T>\r\n}\r\n\r\nclass UrlQueryParamBase {\r\n getUrlQuery = <T>(options?: IUrlQueryParamOptions<T>) => {\r\n try {\r\n const query = QueryParam.gets<ITableGridQueryParams>('table')\r\n return query.table ? JSON.parse(query.table) : options?.defaultFilter\r\n } catch (error) {\r\n return options?.defaultFilter\r\n }\r\n }\r\n\r\n setUrlQuery = <T>(params: ITableGridFilter<T>, options?: IUrlQueryParamOptions<T>) => {\r\n const filter = this.extractFilter(params, options)\r\n const filterRemovedEmpty = deepRemoveEmptyFields(filter)\r\n\r\n if (Object.keys(filterRemovedEmpty).length === 0) {\r\n return QueryParam.replaceDeletes<ITableGridQueryParams>('table')\r\n }\r\n QueryParam.replacePatch<ITableGridQueryParams>({ table: JSON.stringify(filterRemovedEmpty) })\r\n }\r\n\r\n extractFilter = <T>(filter: ITableGridFilter<T>, options?: IUrlQueryParamOptions<T>): ITableGridFilter<T> => {\r\n const dFilter: Partial<ITableGridFilter<T>> = options?.defaultFilter || {}\r\n const obj = { ...filter }\r\n delete obj.details\r\n delete obj.loading\r\n\r\n const checkPagination1 = obj.pagination?.page === dFilter.pagination?.page\r\n const checkPagination2 = obj.pagination?.pageSize === dFilter.pagination?.pageSize\r\n if (checkPagination1 && checkPagination2) delete obj.pagination\r\n\r\n return obj\r\n }\r\n}\r\n\r\nconst UrlQueryParam = new UrlQueryParamBase()\r\nexport default UrlQueryParam\r\n"],"names":["UrlQueryParam","_createClass","UrlQueryParamBase","_this","this","_classCallCheck","_defineProperty","options","query","QueryParam","gets","table","JSON","parse","defaultFilter","error","params","filter","extractFilter","filterRemovedEmpty","deepRemoveEmptyFields","Object","keys","length","replaceDeletes","replacePatch","stringify","_obj$pagination","_dFilter$pagination","_obj$pagination2","_dFilter$pagination2","dFilter","obj","_objectSpread","details","loading","checkPagination1","pagination","page","checkPagination2","pageSize"],"mappings":"uRAC4D,IA4CtDA,EAAgB,IAlCCC,EAAA,SAAAC,IAAA,IAAAC,EAAAC,KAAAC,OAAAH,GAAAI,EAAAF,KAAA,cACP,SAAIG,GAChB,IACE,IAAMC,EAAQC,EAAWC,KAA4B,SACrD,OAAOF,EAAMG,MAAQC,KAAKC,MAAML,EAAMG,OAASJ,aAAAA,EAAAA,EAASO,aACzD,CAAC,MAAOC,GACP,OAAOR,aAAAA,EAAAA,EAASO,aACjB,IACFR,EAEaF,KAAA,cAAA,SAAIY,EAA6BT,GAC7C,IAAMU,EAASd,EAAKe,cAAcF,EAAQT,GACpCY,EAAqBC,EAAsBH,GAEjD,GAA+C,IAA3CI,OAAOC,KAAKH,GAAoBI,OAClC,OAAOd,EAAWe,eAAsC,SAE1Df,EAAWgB,aAAoC,CAAEd,MAAOC,KAAKc,UAAUP,OACxEb,EAEeF,KAAA,gBAAA,SAAIa,EAA6BV,GAA2D,IAAAoB,EAAAC,EAAAC,EAAAC,EACpGC,GAAwCxB,aAAAA,EAAAA,EAASO,gBAAiB,CAAE,EACpEkB,EAAGC,EAAA,CAAA,EAAQhB,UACVe,EAAIE,eACJF,EAAIG,QAEX,IAAMC,GAAiCT,QAAdA,EAAAK,EAAIK,kBAAJV,IAAcA,OAAdA,EAAAA,EAAgBW,SAA2B,QAAvBV,EAAKG,EAAQM,kBAAU,IAAAT,OAAA,EAAlBA,EAAoBU,MAChEC,GAAiCV,QAAdA,EAAAG,EAAIK,kBAAJR,IAAcA,OAAdA,EAAAA,EAAgBW,aAA+B,QAAvBV,EAAKC,EAAQM,kBAAU,IAAAP,OAAA,EAAlBA,EAAoBU,UAG1E,OAFIJ,GAAoBG,UAAyBP,EAAIK,WAE9CL,GACR"}
1
+ {"version":3,"file":"url-query-param.js","sources":["../../../src/table-grid/url-query-param.ts"],"sourcesContent":["import { ITableGridFilter } from './types'\r\nimport { deepRemoveEmptyFields, QueryParam } from '../utils'\r\n\r\nexport interface ITableGridQueryParams {\r\n table?: string\r\n}\r\n\r\nexport interface IUrlQueryParamOptions<T> {\r\n defaultFilter?: ITableGridFilter<T>\r\n}\r\n\r\nclass UrlQueryParamBase {\r\n getUrlQuery = <T>(options?: IUrlQueryParamOptions<T>) => {\r\n try {\r\n const query = QueryParam.gets<ITableGridQueryParams>('table')\r\n return query.table ? JSON.parse(query.table) : options?.defaultFilter\r\n } catch (error) {\r\n return options?.defaultFilter\r\n }\r\n }\r\n\r\n setUrlQuery = <T>(params: ITableGridFilter<T>, options?: IUrlQueryParamOptions<T>) => {\r\n const filter = this.extractFilter(params, options)\r\n const filterRemovedEmpty = deepRemoveEmptyFields(filter)\r\n\r\n if (Object.keys(filterRemovedEmpty).length === 0) {\r\n return QueryParam.replaceDeletes<ITableGridQueryParams>('table')\r\n }\r\n QueryParam.replacePatch<ITableGridQueryParams>({ table: JSON.stringify(filterRemovedEmpty) })\r\n }\r\n\r\n extractFilter = <T>(filter: ITableGridFilter<T>, options?: IUrlQueryParamOptions<T>): ITableGridFilter<T> => {\r\n const dFilter: Partial<ITableGridFilter<T>> = options?.defaultFilter || {}\r\n const obj = { ...filter }\r\n delete obj.details\r\n delete obj.loading\r\n\r\n const checkPagination1 = obj.pagination?.page === dFilter.pagination?.page\r\n const checkPagination2 = obj.pagination?.pageSize === dFilter.pagination?.pageSize\r\n if (checkPagination1 && checkPagination2) delete obj.pagination\r\n\r\n return obj\r\n }\r\n}\r\n\r\nconst UrlQueryParam = new UrlQueryParamBase()\r\nexport default UrlQueryParam\r\n"],"names":["UrlQueryParam","_createClass","UrlQueryParamBase","_this","this","_classCallCheck","_defineProperty","options","query","QueryParam","gets","table","JSON","parse","defaultFilter","error","params","filter","extractFilter","filterRemovedEmpty","deepRemoveEmptyFields","Object","keys","length","replaceDeletes","replacePatch","stringify","_obj$pagination","_dFilter$pagination","_obj$pagination2","_dFilter$pagination2","dFilter","obj","_objectSpread","details","loading","checkPagination1","pagination","page","checkPagination2","pageSize"],"mappings":"sPAC4D,IA4CtDA,EAAgB,IAlCCC,EAAA,SAAAC,IAAA,IAAAC,EAAAC,KAAAC,OAAAH,GAAAI,EAAAF,KAAA,cACP,SAAIG,GAChB,IACE,IAAMC,EAAQC,EAAWC,KAA4B,SACrD,OAAOF,EAAMG,MAAQC,KAAKC,MAAML,EAAMG,OAASJ,aAAAA,EAAAA,EAASO,aACzD,CAAC,MAAOC,GACP,OAAOR,aAAAA,EAAAA,EAASO,aACjB,IACFR,EAEaF,KAAA,cAAA,SAAIY,EAA6BT,GAC7C,IAAMU,EAASd,EAAKe,cAAcF,EAAQT,GACpCY,EAAqBC,EAAsBH,GAEjD,GAA+C,IAA3CI,OAAOC,KAAKH,GAAoBI,OAClC,OAAOd,EAAWe,eAAsC,SAE1Df,EAAWgB,aAAoC,CAAEd,MAAOC,KAAKc,UAAUP,OACxEb,EAEeF,KAAA,gBAAA,SAAIa,EAA6BV,GAA2D,IAAAoB,EAAAC,EAAAC,EAAAC,EACpGC,GAAwCxB,aAAAA,EAAAA,EAASO,gBAAiB,CAAE,EACpEkB,EAAGC,EAAA,CAAA,EAAQhB,UACVe,EAAIE,eACJF,EAAIG,QAEX,IAAMC,GAAiCT,QAAdA,EAAAK,EAAIK,kBAAJV,IAAcA,OAAdA,EAAAA,EAAgBW,SAA2B,QAAvBV,EAAKG,EAAQM,kBAAU,IAAAT,OAAA,EAAlBA,EAAoBU,MAChEC,GAAiCV,QAAdA,EAAAG,EAAIK,kBAAJR,IAAcA,OAAdA,EAAAA,EAAgBW,aAA+B,QAAvBV,EAAKC,EAAQM,kBAAU,IAAAP,OAAA,EAAlBA,EAAoBU,UAG1E,OAFIJ,GAAoBG,UAAyBP,EAAIK,WAE9CL,GACR"}
@@ -1,2 +1,2 @@
1
- export{ELogic,EOperator,EOrder}from"../src/table/model-filter.js";import"react/jsx-runtime";import"react";import"@mui/material";import"@mui/icons-material/Edit";import"@mui/icons-material/Delete";import"dayjs";import"../src/utils/dayjs-config.js";import"../src/utils/query-param.js";export{CreateTable}from"../src/table/create.table.js";export{default as DinoTable}from"../src/table/dino.js";export{dinoTableClasses}from"../src/table/helpers.js";
1
+ export{ELogic,EOperator,EOrder}from"../src/table/model-filter.js";import"react/jsx-runtime";import"react";import"@mui/material";import"@mui/icons-material/Edit";import"@mui/icons-material/Delete";export{CreateTable}from"../src/table/create.table.js";export{default as DinoTable}from"../src/table/dino.js";export{dinoTableClasses}from"../src/table/helpers.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1,15 +1,15 @@
1
- import React, { ComponentType } from 'react';
2
1
  import { DataGridProps, GridColDef, GridFeatureMode, GridFilterOperator } from '@mui/x-data-grid';
3
2
  import { GridValidRowModel, GridRowIdGetter } from '@mui/x-data-grid';
4
3
  import { GridDensity } from '@mui/x-data-grid';
4
+ import type { ComponentType } from 'react';
5
5
  import { IActionRowProps } from './create.action-row';
6
6
  import { ICustomGridColDef, ITableData, ITableQueryParams } from './types';
7
7
  import { IToolbarPannelProps } from './toolbar-pannel';
8
8
  export interface ITableSlots<T> {
9
9
  maxSelection?: number;
10
10
  density?: GridDensity;
11
- toolbar?: React.ComponentType<IToolbarPannelProps>;
12
- actionRow?: React.ComponentType<IActionRowProps<T>>;
11
+ toolbar?: ComponentType<IToolbarPannelProps>;
12
+ actionRow?: ComponentType<IActionRowProps<T>>;
13
13
  toolbarProps?: IToolbarPannelProps;
14
14
  dataGridProps?: DataGridProps;
15
15
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dinocollab-core",
3
- "version": "2.1.41",
3
+ "version": "2.1.43",
4
4
  "description": "Dinocollab core - libraries for building collaborative applications with React 18",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",