dinocollab-core 1.1.15 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/_virtual/_rollupPluginBabelHelpers.js +2 -2
  2. package/dist/api-context/drawer-global.js +1 -1
  3. package/dist/api-context/global-modal.js +1 -1
  4. package/dist/api-context/index.js +2 -0
  5. package/dist/api-context/index.js.map +1 -0
  6. package/dist/api-context/popover-global.js +1 -1
  7. package/dist/api-context/popover.js +1 -1
  8. package/dist/components/copy-to-clipboard.js +1 -1
  9. package/dist/components/index.js +2 -0
  10. package/dist/components/index.js.map +1 -0
  11. package/dist/data-view/create.data-view.js +1 -1
  12. package/dist/data-view/create.filter-bar.js +1 -1
  13. package/dist/data-view/create.filter-bar.js.map +1 -1
  14. package/dist/data-view/filter-store.js +1 -1
  15. package/dist/data-view/index.js +2 -0
  16. package/dist/data-view/index.js.map +1 -0
  17. package/dist/data-view/view-mode.content.js +1 -1
  18. package/dist/form/create.autocomplete.chips.js +1 -1
  19. package/dist/form/create.date-expired.js +1 -1
  20. package/dist/form/create.date-picker.js +1 -1
  21. package/dist/form/create.form-grid-layout.js +1 -1
  22. package/dist/form/create.input.file.js +1 -1
  23. package/dist/form/create.input.image-file.js +1 -1
  24. package/dist/form/create.input.js +1 -1
  25. package/dist/form/create.input.js.map +1 -1
  26. package/dist/form/create.select-simple.js +1 -1
  27. package/dist/form/create.select-with-api.js +1 -1
  28. package/dist/form/create.text-editor.js +1 -1
  29. package/dist/form/create.text-editor.js.map +1 -1
  30. package/dist/form/index.js +2 -0
  31. package/dist/form/index.js.map +1 -0
  32. package/dist/index.js +1 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/redux/create.hoc-lazy.js +1 -1
  35. package/dist/redux/index.js +2 -0
  36. package/dist/redux/index.js.map +1 -0
  37. package/dist/redux/ui.error-page.js +1 -1
  38. package/dist/redux/ui.error-page.js.map +1 -1
  39. package/dist/table/create.action-row.js +1 -1
  40. package/dist/table/dino.js +1 -1
  41. package/dist/table/dino.js.map +1 -1
  42. package/dist/table/index.js +2 -0
  43. package/dist/table/index.js.map +1 -0
  44. package/dist/table/toolbar-pannel.js +1 -1
  45. package/dist/table/toolbar-pannel.js.map +1 -1
  46. package/dist/table/ui.units.js +1 -1
  47. package/dist/table/ui.units.js.map +1 -1
  48. package/dist/table-grid/create.table-grid.js +1 -1
  49. package/dist/table-grid/filter-bar/create.filter-bar.js +1 -1
  50. package/dist/table-grid/filter-bar/create.filter-bar.js.map +1 -1
  51. package/dist/table-grid/index.js +2 -0
  52. package/dist/table-grid/index.js.map +1 -0
  53. package/dist/table-grid/item-actions.js +1 -1
  54. package/dist/table-grid/toolbar-pannel.js +1 -1
  55. package/dist/table-grid/toolbar-pannel.js.map +1 -1
  56. package/dist/types/data-view/dino.d.ts +1 -1
  57. package/dist/types/data-view/query-param-url.d.ts +1 -1
  58. package/dist/types/index.d.ts +5 -9
  59. package/dist/utils/helpers.js +1 -1
  60. package/dist/utils/index.js +2 -0
  61. package/dist/utils/index.js.map +1 -0
  62. package/package.json +137 -66
  63. package/dist/assets/vector-404.webp.js +0 -2
  64. package/dist/assets/vector-404.webp.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ui.units.js","sources":["../../src/table/ui.units.tsx"],"sourcesContent":["import React, { ComponentType, FC, PropsWithChildren, useEffect, useState } from 'react'\r\nimport { Box, BoxProps, Chip, Divider, IconButton, styled, SxProps, Theme, Tooltip, Typography, TypographyProps } from '@mui/material'\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 imageUrl?: string\r\n imageFallbackSrc?: string\r\n valueFormatter?: (value?: string) => string\r\n wrapProps?: BoxProps\r\n typographyProps?: TypographyProps\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 <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 {...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","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":"k1BAuBaA,EAAmB,SAC9BC,EACAC,GAeA,OAb4C,SAACC,GAAS,IAAAC,EACZC,EACvBC,EAAMC,EAAIC,EAI3B,OAAKL,EAAMM,MAETC,EAACC,EAAgBC,EAAAA,EAAA,CAACC,QAASV,EAAMU,iBAAOT,EAAMD,EAAMK,aAAK,IAAAJ,OAAA,EAAXA,EAAaU,iBAAe,CAAA,EAAA,CAAEP,IAN7DD,EAAoBH,EAA3BM,MAAaF,EAAcJ,EAAdI,GAAIC,EAAUL,EAAVK,MAClBO,OAAOC,OAAO,CAAE,EAAEV,EAAOL,EAAOK,GAAQ,CAAA,EAAIJ,aAAO,EAAPA,EAASK,GAAIA,EAAIC,SAAsBH,QAAjBA,EAALG,EAAOM,2BAAeT,SAAtBA,EAAwBE,KAKAU,SACzFd,EAAMe,OAASf,EAAMM,SAHDC,OAM1B,CAEH,EAEMC,EAAmBQ,EAAOC,EAAPD,CAAmB,CAC1CE,aAAc,MACdC,SAAU,SACVC,QAAS,UACTC,WAAY,IACZC,SAAU,OACVC,UAAW,SACXC,MAAO,UACPC,QAAS,iBAUEC,EAA0C,SAAC1B,GAAS,IAAA2B,EAC/DC,EAA4BC,EAAuB,QAAfF,EAAC3B,EAAM8B,gBAAQH,IAAAA,EAAAA,EAAI3B,EAAM+B,aAAYC,EAAAC,EAAAL,EAAA,GAAlEM,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAIxB,OAHAI,GAAU,WAAK,IAAAC,EACbF,EAAwB,QAAfE,EAACrC,EAAM8B,gBAAQ,IAAAO,EAAAA,EAAIrC,EAAM+B,YACnC,GAAE,CAAC/B,EAAM8B,SAAU9B,EAAM+B,cAExBO,EAACC,EAAI,CAAAnC,GAAI,CAAEqB,QAAS,OAAQe,WAAY,SAAUC,OAAQ,OAAQC,IAAK,QAAQ5B,SAAA,CAC7EP,EAACoC,EAAW,CAAAC,IAAKV,EAAQW,QAAS,WAAF,OAAQV,EAAUnC,EAAM+B,YAAY,IACpExB,EAACU,EAAU,CAAC6B,QAAQ,QAAOhC,SAAEd,EAAMM,UAGzC,EAQayC,EAAkD,SAAC/C,GAAS,IAAAgD,EACvEC,EAA4BpB,EAAuB,QAAfmB,EAAChD,EAAM8B,gBAAQkB,IAAAA,EAAAA,EAAIhD,EAAMkD,eAAcC,EAAAlB,EAAAgB,EAAA,GAApEf,EAAMiB,EAAA,GAAEhB,EAASgB,EAAA,GAIxB,OAHAf,GAAU,WAAK,IAAAgB,EACbjB,EAAwB,QAAfiB,EAACpD,EAAM8B,gBAAQ,IAAAsB,EAAAA,EAAIpD,EAAMkD,cACnC,GAAE,CAAClD,EAAM8B,SAAU9B,EAAMkD,gBACnB3C,EAACoC,EAAU,CAACC,IAAKV,EAAQW,QAAS,WAAF,OAAQV,EAAUnC,EAAMkD,cAAc,EAAE9C,GAAIJ,EAAMI,IAC3F,EAEMuC,EAAa3B,EAAO,MAAPA,CAAc,CAC/BqC,iBAAkB,YAClBZ,OAAQ,OACRa,MAAO,OACPC,eAAgB,UAChBrC,aAAc,MACdsC,UAAW,oCAsBAC,EAA8B,SAACzD,GAAS,IAAA0D,EAC7CpD,EAA4BoD,QAAvBA,EAAG1D,EAAM2D,sBAAcD,IAAAA,EAAAA,EAAI1D,EAAMM,MACtCsD,IAAsB5D,EAAM6D,mBAAqBvD,EACvD,OACEgC,EAACwB,EAAYrD,EAAAA,EAAA,CAACM,MAAOT,GAAWN,EAAM+D,WAAS,GAAA,CAAAjD,SAAA,CAC5Cd,EAAMgE,UAAYzD,EAACwC,EAAkB,CAACjB,SAAU9B,EAAMgE,SAAU5D,GAAI,CAAE6D,GAAI,QAAUf,cAAelD,EAAMkE,mBAC1G3D,EAACU,EAAUR,EAAAA,EAAA,CAACqC,QAAQ,QAAQqB,UAAU,OAAOC,QAAM,EAAChE,GAAI,CAAEiE,KAAM,IAASrE,EAAMW,iBAAe,GAAA,CAC3FG,SAAAR,KAEFA,IAAgC,IAAvBN,EAAMsE,cACd/D,EAACgE,EAAO,CAACC,OAAK,EAACzD,MAAM,eACnBD,SAAAP,EAACkE,EAAW,CAAAN,UAAU,IAAIO,KAAMpE,EAAOqE,OAAO,SAC5C7D,SAAAP,EAACqE,EAAc,CAAAzD,SAAS,QAAQf,GAAI,CAAEoB,MAAO,iBAIlDoC,GAAqBrD,EAACsE,EAAe,CAACvE,MAAOA,IAC7CA,IAA8B,IAArBN,EAAM8E,YAAuBvE,EAACwE,EAAQ,CAAAC,YAASlC,QAAQ,SAASmC,YAAY,gBAG5F,EAEMnB,EAAe9C,GAAO,SAAAkE,GAAA,IAAGpE,EAAQoE,EAARpE,SAAad,EAAKmF,EAAAD,EAAAE,GAAA,OAC/C7E,EAACgC,EAAG9B,EAAAA,KAAKT,GAAK,GAAA,CAAAc,SACZP,EAAM,MAAA,CAAAO,SAAAA,MACF,GAHaE,CAIlB,CACDqD,KAAM,EACNf,MAAO,OACPb,OAAQ,OACR4C,SAAU,WACVC,IAAK,EACLC,KAAM,EACN,UAAW,CACT9D,QAAS,OACTe,WAAY,SACZc,MAAO,OACPb,OAAQ,OACR4C,SAAU,WACVC,IAAK,EACLC,KAAM,KAaGC,EAAgC,SAACxF,GAAS,IAAAyF,EAAAC,EACrD,GAA2B,iBAAhB1F,EAAMM,MAAoB,OAAkBmF,QAAlBA,EAAOzF,EAAMM,aAAKmF,IAAAA,EAAAA,EAAIlF,QAE3D,IAAMoF,EAAO3F,EAAMM,MAAMsF,MAAsB,QAAjBF,EAAC1F,aAAK,EAALA,EAAO6F,iBAAS,IAAAH,EAAAA,EAAI,KAAKI,QAAO,SAACC,GAAC,QAAOA,KAClEC,EAAchG,SAAAA,EAAOiG,QAAUN,EAAKO,MAAM,EAAGlG,EAAMiG,SAAWN,EAC9DQ,EAAiBnG,SAAAA,EAAOiG,SAAWN,EAAKS,OAASpG,EAAMiG,QAAUN,EAAKS,OAASpG,EAAMiG,QAAU,EAErG,OACE3D,EAACC,EAAI,CAAAnC,GAAI,CAAEqB,QAAS,OAAQe,WAAY,SAAU6D,SAAU,OAAQ3D,IAAK,MAAOD,OAAQ,QAAQ3B,SAAA,CAC7FkF,EAAYM,KAAI,SAACP,EAAGQ,GAAC,OACpBhG,EAACiG,EAA2B,CAAAC,MAAOzG,EAAM0G,eAAiB1G,EAAM0G,eAAeX,GAAKA,EAAGY,KAAK,SAA3E,MAAQJ,EAC1B,IACAJ,EAAiB,GAChB5F,EAACqG,EACC,CAAA7F,MAAM,UACN8F,QACEtG,EAACgC,EAAG,CAACnC,GAAI,CAAEqB,QAAS,OAAQe,WAAY,SAAU6D,SAAU,OAAQ3D,IAAK,OAAO5B,SAC7E6E,EAAKW,KAAI,SAACP,EAAGQ,GAAC,OACbhG,EAACiG,EAA2B,CAAAC,MAAOV,EAAGY,KAAK,SAA1B,MAAQJ,EAC1B,MACGzF,SAGRP,EAACiG,GAA2BC,MAAKK,IAAAA,OAAMX,GAAkBQ,KAAK,SAA9C,iBAK1B,EAEMH,EAAaxF,EAAO+F,EAAP/F,CAAa,CAC9BgG,WAAY,IAeDC,EAA8B,SAACjH,GAC1C,IAAI,IAAAkH,EAAAC,EACIC,EAAkCF,QAAtBA,EAAGlH,aAAK,EAALA,EAAOoH,oBAAYF,IAAAA,GAAAA,EAClCG,EAAOC,EAAYtH,EAAMM,OACzBiH,EAAYF,EAAKG,OAAOxH,EAAMyH,cAC9BnH,EAAQ8G,KAAYN,OAAMS,EAAST,MAAAA,OAAKQ,IAAcI,GAAGL,QAAWE,EACpEnH,EAAKJ,EAAM2H,aAAe3H,EAAM2H,aAAa3H,EAAMM,OAAS,CAAE+D,KAAM,GACpEuD,EAAuBC,EAA8B,WAAEV,EAAEnH,EAAMW,uBAAe,IAAAwG,EAAAA,EAAI,CAAA,EAAI,CAAE/G,GAAAA,IAC9F,OACEG,EAACU,EAAUR,EAAAA,EAAA,CAACqC,QAAQ,QAAQqB,UAAU,OAAOC,QAAW,GAAAwD,GAAoB,GAAA,UACzEtH,IAGN,CAAC,MAAAwH,GACA,OACEvH,EAACU,EAAU,CAAC6B,QAAQ,QAAQqB,UAAU,OAAOC,QAAM,EAAAtD,SAAA,kBAItD,CACH"}
1
+ {"version":3,"file":"ui.units.js","sources":["../../src/table/ui.units.tsx"],"sourcesContent":["import React, { ComponentType, FC, PropsWithChildren, useEffect, useState } from 'react'\r\nimport { Box, BoxProps, Chip, Divider, IconButton, styled, SxProps, Theme, Tooltip, Typography, TypographyProps } from '@mui/material'\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 imageUrl?: string\r\n imageFallbackSrc?: string\r\n valueFormatter?: (value?: string) => string\r\n wrapProps?: BoxProps\r\n typographyProps?: TypographyProps\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 <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 {...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","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{defineProperty as t,inherits as e,createClass as i,objectSpread2 as o,classCallCheck as n,callSuper as r}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a,jsxs as l}from"react/jsx-runtime";import{Component as s}from"react";import{styled as c,Box as p,colors as d,tablePaginationClasses as g,alpha as u,Grid as m,Fade as h,CircularProgress as f,Typography as v,Divider as S,TablePagination as b}from"@mui/material";import{mergeObjects as P}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"react-router-dom";import"../utils/query-param.js";import{tableGridClasses as x,defaultPagination as j}from"./helpers.js";import{CreateTableGridItemActions as C}from"./item-actions.js";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import y from"../api-context/global-modal.js";import I from"../api-context/popover-global.js";import z from"./filter-bar/create.filter-bar.js";import"./filter-bar/types.js";import w from"./toolbar-pannel.js";function k(c){var d,g=z(null!==(d=c.filterBarConfigs)&&void 0!==d?d:{fields:{}}),u=C(),k=function(){function d(){var e;n(this,d);for(var i=arguments.length,s=new Array(i),c=0;c<i;c++)s[c]=arguments[c];return e=r(this,d,[].concat(s)),t(e,"filterStateStore",{pagination:j}),t(e,"setFilterState",(function(t){try{t.details?e.filterStateStore=o({pagination:e.filterStateStore.pagination},t):e.filterStateStore=P({},e.filterState,t),e.props.onFilterChange&&e.props.onFilterChange(e.filterStateStore),e.forceUpdate()}catch(t){console.log(t)}})),t(e,"preRender",(function(t){return l(y,{children:[a(I.Provider,{}),t]})})),t(e,"getPagination",(function(){var t;return null!==(t=e.filterState.pagination)&&void 0!==t?t:j})),t(e,"getRootClasses",(function(){var t=[x.root];return e.filterState.loading&&t.push(x.loading),t.join(" ")})),t(e,"getItems",(function(){var t;return null!==(t=e.props.data.items)&&void 0!==t?t:[]})),t(e,"handleFilterChange",(function(t){e.setFilterState(t)})),t(e,"handleChangePage",(function(t,i){var o=e.getPagination();e.setFilterState({pagination:{page:i,pageSize:o.pageSize}})})),t(e,"handleChangeRowsPerPage",(function(t){e.setFilterState({pagination:{page:0,pageSize:parseInt(t.target.value,10)}})})),e}return e(d,s),i(d,[{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,i,n,r,l,s;return o(o({},Object.assign({},c.slots,this.props.slots)),{},{TableGridItem:null!==(t=null!==(e=null===(i=this.props.slots)||void 0===i?void 0:i.item)&&void 0!==e?e:c.item)&&void 0!==t?t:function(){return a(N,{})},ToolbarPannel:null!==(n=null!==(r=null===(l=this.props.slots)||void 0===l?void 0:l.toolbar)&&void 0!==r?r:null===(s=c.slots)||void 0===s?void 0:s.toolbar)&&void 0!==n?n:w})}},{key:"mergeConfig",get:function(){var t;return{size:null!==(t=c.size)&&void 0!==t?t:{xs:12,sm:6,md:4}}}},{key:"render",value:function(){var t,e=this,i=this.slots,n=i.TableGridItem,r=i.ToolbarPannel,s=i.actionProps,d=this.getItems(),P=this.getPagination();return this.preRender(l(F,{className:this.getRootClasses(),children:[a(r,o({title:c.title},this.slots.toolbarProps)),a(g,{value:this.filterState,onChange:this.handleFilterChange}),l("div",{className:x.content,children:[a("div",{className:[x.contentInner,x.contentPosition].join(" "),children:a(m,o(o({container:!0,spacing:2},this.slots.gridContainer),{},{children:d.map((function(t,i){return a(m,o(o(o({item:!0},e.mergeConfig.size),e.slots.gridItem),{},{children:l("div",{className:x.item,children:[a(n,{value:t}),a(p,{className:x.actions,children:a(u,o({value:t},s))})]})}),c.getSelecterId(t).toString()+i)}))}))}),a(h,{in:this.filterState.loading,unmountOnExit:!0,children:a("div",{className:[x.overlay,x.contentPosition].join(" "),children:a(f,{size:36})})}),a(h,{in:d.length<1&&!this.filterState.loading,unmountOnExit:!0,children:a("div",{className:[x.noItems,x.contentPosition].join(" "),children:a(v,{variant:"body2",children:"No items data"})})})]}),a(S,{sx:{position:"relative",zIndex:2}}),a(b,{component:"div",count:null!==(t=this.props.data.totalItems)&&void 0!==t?t:0,page:P.page,onPageChange:this.handleChangePage,rowsPerPage:P.pageSize,onRowsPerPageChange:this.handleChangeRowsPerPage,slotProps:{select:{MenuProps:{disableScrollLock:!0}}}})]}))}}])}();return k}var F=c(p)(t(t(t(t(t(t(t(t({flex:1,height:"100%",display:"flex",flexDirection:"column"},".".concat(x.content),{position:"relative",flex:1,zIndex:1}),".".concat(x.contentPosition),{position:"absolute",top:0,left:0,width:"100%",height:"100%"}),".".concat(x.contentInner),{overflowY:"auto",padding:"10px 5px"}),".".concat(x.overlay),{display:"flex",alignItems:"center",justifyContent:"center",background:u(d.common.white,.4),zIndex:10}),".".concat(x.noItems),{display:"flex",alignItems:"center",justifyContent:"center"}),".".concat(x.item),{position:"relative"}),".".concat(x.actions),{position:"absolute",top:"5px",right:"5px",zIndex:5,display:"inline-block"}),".".concat(g.root),{background:d.common.white,position:"relative",zIndex:5})),N=c(p)({width:"100%",paddingBottom:"100%",background:d.grey[600]});export{k as default};
1
+ import{defineProperty as t,inherits as e,createClass as i,classCallCheck as o,callSuper as n,objectSpread2 as r}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as a,jsx as l}from"react/jsx-runtime";import{Component as s}from"react";import{styled as c,Box as p,colors as d,tablePaginationClasses as g,alpha as u,Grid as m,Fade as h,CircularProgress as f,Typography as v,Divider as S,TablePagination as b}from"@mui/material";import{mergeObjects as P}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"react-router-dom";import"../utils/query-param.js";import{tableGridClasses as x,defaultPagination as j}from"./helpers.js";import{CreateTableGridItemActions as C}from"./item-actions.js";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import y from"../api-context/global-modal.js";import I from"../api-context/popover-global.js";import z from"./filter-bar/create.filter-bar.js";import"./filter-bar/types.js";import w from"./toolbar-pannel.js";function k(c){var d,g=z(null!==(d=c.filterBarConfigs)&&void 0!==d?d:{fields:{}}),u=C(),k=function(){function d(){var e;o(this,d);for(var i=arguments.length,s=new Array(i),c=0;c<i;c++)s[c]=arguments[c];return e=n(this,d,[].concat(s)),t(e,"filterStateStore",{pagination:j}),t(e,"setFilterState",(function(t){try{t.details?e.filterStateStore=r({pagination:e.filterStateStore.pagination},t):e.filterStateStore=P({},e.filterState,t),e.props.onFilterChange&&e.props.onFilterChange(e.filterStateStore),e.forceUpdate()}catch(t){console.log(t)}})),t(e,"preRender",(function(t){return a(y,{children:[l(I.Provider,{}),t]})})),t(e,"getPagination",(function(){var t;return null!==(t=e.filterState.pagination)&&void 0!==t?t:j})),t(e,"getRootClasses",(function(){var t=[x.root];return e.filterState.loading&&t.push(x.loading),t.join(" ")})),t(e,"getItems",(function(){var t;return null!==(t=e.props.data.items)&&void 0!==t?t:[]})),t(e,"handleFilterChange",(function(t){e.setFilterState(t)})),t(e,"handleChangePage",(function(t,i){var o=e.getPagination();e.setFilterState({pagination:{page:i,pageSize:o.pageSize}})})),t(e,"handleChangeRowsPerPage",(function(t){e.setFilterState({pagination:{page:0,pageSize:parseInt(t.target.value,10)}})})),e}return e(d,s),i(d,[{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,i,o,n,a,s;return r(r({},Object.assign({},c.slots,this.props.slots)),{},{TableGridItem:null!==(t=null!==(e=null===(i=this.props.slots)||void 0===i?void 0:i.item)&&void 0!==e?e:c.item)&&void 0!==t?t:function(){return l(N,{})},ToolbarPannel:null!==(o=null!==(n=null===(a=this.props.slots)||void 0===a?void 0:a.toolbar)&&void 0!==n?n:null===(s=c.slots)||void 0===s?void 0:s.toolbar)&&void 0!==o?o:w})}},{key:"mergeConfig",get:function(){var t;return{size:null!==(t=c.size)&&void 0!==t?t:{xs:12,sm:6,md:4}}}},{key:"render",value:function(){var t,e=this,i=this.slots,o=i.TableGridItem,n=i.ToolbarPannel,s=i.actionProps,d=this.getItems(),P=this.getPagination();return this.preRender(a(F,{className:this.getRootClasses(),children:[l(n,r({title:c.title},this.slots.toolbarProps)),l(g,{value:this.filterState,onChange:this.handleFilterChange}),a("div",{className:x.content,children:[l("div",{className:[x.contentInner,x.contentPosition].join(" "),children:l(m,r(r({container:!0,spacing:2},this.slots.gridContainer),{},{children:d.map((function(t,i){return l(m,r(r(r({item:!0},e.mergeConfig.size),e.slots.gridItem),{},{children:a("div",{className:x.item,children:[l(o,{value:t}),l(p,{className:x.actions,children:l(u,r({value:t},s))})]})}),c.getSelecterId(t).toString()+i)}))}))}),l(h,{in:this.filterState.loading,unmountOnExit:!0,children:l("div",{className:[x.overlay,x.contentPosition].join(" "),children:l(f,{size:36})})}),l(h,{in:d.length<1&&!this.filterState.loading,unmountOnExit:!0,children:l("div",{className:[x.noItems,x.contentPosition].join(" "),children:l(v,{variant:"body2",children:"No items data"})})})]}),l(S,{sx:{position:"relative",zIndex:2}}),l(b,{component:"div",count:null!==(t=this.props.data.totalItems)&&void 0!==t?t:0,page:P.page,onPageChange:this.handleChangePage,rowsPerPage:P.pageSize,onRowsPerPageChange:this.handleChangeRowsPerPage,slotProps:{select:{MenuProps:{disableScrollLock:!0}}}})]}))}}])}();return k}var F=c(p)(t(t(t(t(t(t(t(t({flex:1,height:"100%",display:"flex",flexDirection:"column"},".".concat(x.content),{position:"relative",flex:1,zIndex:1}),".".concat(x.contentPosition),{position:"absolute",top:0,left:0,width:"100%",height:"100%"}),".".concat(x.contentInner),{overflowY:"auto",padding:"10px 5px"}),".".concat(x.overlay),{display:"flex",alignItems:"center",justifyContent:"center",background:u(d.common.white,.4),zIndex:10}),".".concat(x.noItems),{display:"flex",alignItems:"center",justifyContent:"center"}),".".concat(x.item),{position:"relative"}),".".concat(x.actions),{position:"absolute",top:"5px",right:"5px",zIndex:5,display:"inline-block"}),".".concat(g.root),{background:d.common.white,position:"relative",zIndex:5})),N=c(p)({width:"100%",paddingBottom:"100%",background:d.grey[600]});export{k as default};
2
2
  //# sourceMappingURL=create.table-grid.js.map
@@ -1,2 +1,2 @@
1
- import{inherits as e,createClass as t,objectSpread2 as r,classCallCheck as l,callSuper as a,defineProperty as i}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as n,jsxs as o}from"react/jsx-runtime";import{styled as s,Box as f,ClickAwayListener as u,IconButton as d,InputBase as c}from"@mui/material";import h from"@mui/icons-material/FilterList";import{ButtonClear as p,FilterNotes as S}from"./ui.units.js";import m from"./base.js";import v from"./create.filtered.js";import g from"./create.filter-panel.js";function k(s){var k=g(s),w=v(s);return function(){function v(e){var t;return l(this,v),t=a(this,v,[e]),i(t,"defaultState",{keyword:"",panelState:{anchorEl:null}}),i(t,"filterStateStore",{filter:{}}),i(t,"setFilterState",(function(e){t.props.value||(t.filterStateStore=e),t.props.onChange&&t.props.onChange(e)})),i(t,"refFilterButton",null),i(t,"refSortButton",null),i(t,"refInput",null),i(t,"refBeforeInput",null),i(t,"renderTextField",(function(){return o(f,{component:"label",htmlFor:t.configs.id,sx:{flex:1,display:"flex",alignItems:"flex-end"},children:[n(f,{ref:function(e){return t.refBeforeInput=e},sx:{height:"100%"}}),n(c,{id:t.configs.id,placeholder:t.configs.placeholder,fullWidth:!0,autoComplete:"off",inputRef:function(e){return t.refInput=e},onChange:function(e){return t.setState({keyword:e.target.value})},value:t.state.keyword,onFocus:function(){return t.showPanel("searchInput")},onKeyDown:t.handleKeyDown})]})})),i(t,"handleKeyDown",(function(e){var r=e.keyCode;if(13===r){if(!t.state.keyword)return;var l,a=t.addQuickSearch(t.filterState,s.quickSearch,t.state.keyword);if(a.filterState.details="add",a.isChanged)null===(l=t.refInput)||void 0===l||l.blur(),t.setFilterState(a.filterState),t.setState(t.defaultState)}else if(27===r){var i;null===(i=t.refInput)||void 0===i||i.blur(),t.setState(t.defaultState)}})),i(t,"handleAdd",(function(e,r){var l,a={isChanged:!1,filterState:t.filterState};("field"===e&&r?a=t.patchFilterWithKey(t.filterState,r):"quickSearch"===e&&(a=t.addQuickSearch(t.filterState,s.quickSearch,t.state.keyword)),a.filterState.details="add",a.isChanged)&&(null===(l=t.refInput)||void 0===l||l.blur(),t.setFilterState(a.filterState),t.setState(t.defaultState))})),i(t,"handleRemove",(function(e,r){var l,a={isChanged:!1,filterState:t.filterState};("field"===e&&r?a=t.deleteFilterWithKey(t.filterState,r):"quickSearch"===e&&(a=t.removeQuickSearch(t.filterState)),a.filterState.details="remove",a.isChanged)&&(null===(l=t.refInput)||void 0===l||l.blur(),t.setFilterState(a.filterState),t.forceUpdate())})),i(t,"handleClear",(function(){t.setFilterState({filter:{},details:"remove"}),t.setState(t.defaultState)})),i(t,"showPanel",(function(e){var r=null;switch(e){case"searchInput":r=t.refBeforeInput;break;case"filterButton":r=t.refFilterButton}t.setState({panelState:{anchorEl:r,reason:e}})})),i(t,"closePanel",(function(){return t.setState({panelState:{anchorEl:null}})})),t.state=t.defaultState,t}return e(v,m),t(v,[{key:"filterState",get:function(){var e;return null!==(e=this.props.value)&&void 0!==e?e:this.filterStateStore}},{key:"configs",get:function(){var e,t,r,l;return{id:null!==(e=null!==(t=this.props.id)&&void 0!==t?t:s.id)&&void 0!==e?e:(new Date).getTime().toString(),placeholder:null!==(r=null!==(l=this.props.placeholder)&&void 0!==l?l:s.placeholder)&&void 0!==r?r:"Filter",notes:s.notes}}},{key:"render",value:function(){var e=this;return n(u,{onClickAway:this.closePanel,children:o(y,{children:[n(d,{ref:function(t){return e.refFilterButton=t},onClick:function(){return e.showPanel("filterButton")},children:n(h,{})}),o(C,{children:[n(w,{filterState:this.filterState,onRemove:this.handleRemove}),this.renderTextField()]}),n(p,{visibled:!this.isFilterEmpty(this.filterState),onClick:this.handleClear}),this.configs.notes&&n(S,r({},this.configs.notes)),n(k,r(r({},this.state.panelState),{},{keyword:this.state.keyword,onSubmit:this.handleAdd,onClose:this.closePanel}))]})})}}])}()}var y=s(f)({display:"flex",gap:"8px",width:"100%",borderRadius:"6px",transition:"all linear 0.2s",padding:"2px",backgroundColor:"#fafafa","&:hover":{backgroundColor:"#ededed"}}),C=s(f)({flex:1,minHeight:"40px",display:"flex",flexWrap:"wrap",alignItems:"center",gap:"6px"});export{k as default};
1
+ import{inherits as e,createClass as t,classCallCheck as r,callSuper as i,defineProperty as a,objectSpread2 as l}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as n,jsx as o}from"react/jsx-runtime";import{styled as s,Box as f,InputBase as u,IconButton as d}from"@mui/material";import c from"@mui/icons-material/FilterList";import h from"@mui/material/ClickAwayListener";import{ButtonClear as p,FilterNotes as S}from"./ui.units.js";import m from"./base.js";import v from"./create.filtered.js";import g from"./create.filter-panel.js";function k(s){var k=g(s),w=v(s);return function(){function v(e){var t;return r(this,v),t=i(this,v,[e]),a(t,"defaultState",{keyword:"",panelState:{anchorEl:null}}),a(t,"filterStateStore",{filter:{}}),a(t,"setFilterState",(function(e){t.props.value||(t.filterStateStore=e),t.props.onChange&&t.props.onChange(e)})),a(t,"refFilterButton",null),a(t,"refSortButton",null),a(t,"refInput",null),a(t,"refBeforeInput",null),a(t,"renderTextField",(function(){return n(f,{component:"label",htmlFor:t.configs.id,sx:{flex:1,display:"flex",alignItems:"flex-end"},children:[o(f,{ref:function(e){return t.refBeforeInput=e},sx:{height:"100%"}}),o(u,{id:t.configs.id,placeholder:t.configs.placeholder,fullWidth:!0,autoComplete:"off",inputRef:function(e){return t.refInput=e},onChange:function(e){return t.setState({keyword:e.target.value})},value:t.state.keyword,onFocus:function(){return t.showPanel("searchInput")},onKeyDown:t.handleKeyDown})]})})),a(t,"handleKeyDown",(function(e){var r=e.keyCode;if(13===r){if(!t.state.keyword)return;var i,a=t.addQuickSearch(t.filterState,s.quickSearch,t.state.keyword);if(a.filterState.details="add",a.isChanged)null===(i=t.refInput)||void 0===i||i.blur(),t.setFilterState(a.filterState),t.setState(t.defaultState)}else if(27===r){var l;null===(l=t.refInput)||void 0===l||l.blur(),t.setState(t.defaultState)}})),a(t,"handleAdd",(function(e,r){var i,a={isChanged:!1,filterState:t.filterState};("field"===e&&r?a=t.patchFilterWithKey(t.filterState,r):"quickSearch"===e&&(a=t.addQuickSearch(t.filterState,s.quickSearch,t.state.keyword)),a.filterState.details="add",a.isChanged)&&(null===(i=t.refInput)||void 0===i||i.blur(),t.setFilterState(a.filterState),t.setState(t.defaultState))})),a(t,"handleRemove",(function(e,r){var i,a={isChanged:!1,filterState:t.filterState};("field"===e&&r?a=t.deleteFilterWithKey(t.filterState,r):"quickSearch"===e&&(a=t.removeQuickSearch(t.filterState)),a.filterState.details="remove",a.isChanged)&&(null===(i=t.refInput)||void 0===i||i.blur(),t.setFilterState(a.filterState),t.forceUpdate())})),a(t,"handleClear",(function(){t.setFilterState({filter:{},details:"remove"}),t.setState(t.defaultState)})),a(t,"showPanel",(function(e){var r=null;switch(e){case"searchInput":r=t.refBeforeInput;break;case"filterButton":r=t.refFilterButton}t.setState({panelState:{anchorEl:r,reason:e}})})),a(t,"closePanel",(function(){return t.setState({panelState:{anchorEl:null}})})),t.state=t.defaultState,t}return e(v,m),t(v,[{key:"filterState",get:function(){var e;return null!==(e=this.props.value)&&void 0!==e?e:this.filterStateStore}},{key:"configs",get:function(){var e,t,r,i;return{id:null!==(e=null!==(t=this.props.id)&&void 0!==t?t:s.id)&&void 0!==e?e:(new Date).getTime().toString(),placeholder:null!==(r=null!==(i=this.props.placeholder)&&void 0!==i?i:s.placeholder)&&void 0!==r?r:"Filter",notes:s.notes}}},{key:"render",value:function(){var e=this;return o(h,{onClickAway:this.closePanel,children:n(y,{children:[o(d,{ref:function(t){return e.refFilterButton=t},onClick:function(){return e.showPanel("filterButton")},children:o(c,{})}),n(C,{children:[o(w,{filterState:this.filterState,onRemove:this.handleRemove}),this.renderTextField()]}),o(p,{visibled:!this.isFilterEmpty(this.filterState),onClick:this.handleClear}),this.configs.notes&&o(S,l({},this.configs.notes)),o(k,l(l({},this.state.panelState),{},{keyword:this.state.keyword,onSubmit:this.handleAdd,onClose:this.closePanel}))]})})}}])}()}var y=s(f)({display:"flex",gap:"8px",width:"100%",borderRadius:"6px",transition:"all linear 0.2s",padding:"2px",backgroundColor:"#fafafa","&:hover":{backgroundColor:"#ededed"}}),C=s(f)({flex:1,minHeight:"40px",display:"flex",flexWrap:"wrap",alignItems:"center",gap:"6px"});export{k as default};
2
2
  //# sourceMappingURL=create.filter-bar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.filter-bar.js","sources":["../../../src/table-grid/filter-bar/create.filter-bar.tsx"],"sourcesContent":["import React, { ComponentType } from 'react'\r\nimport { Box, ClickAwayListener, IconButton, InputBase, styled } from '@mui/material'\r\nimport FilterListIcon from '@mui/icons-material/FilterList'\r\nimport { ButtonClear, FilterNotes } from './ui.units'\r\nimport { IFilterReason, IFilterState, IFilterBarConfigs, IFilterBarProps, IFilterBarState, IFilterSubmitFunc } from './types'\r\nimport FilterBarBase, { IFilterChange } from './base'\r\nimport CreateFiltered from './create.filtered'\r\nimport CreateFilterPanel from './create.filter-panel'\r\n\r\nfunction CreateFilterBar<T>(params: IFilterBarConfigs<T>): ComponentType<IFilterBarProps<T>> {\r\n const FilterPanelInstance = CreateFilterPanel<T>(params)\r\n const FilteredInstance = CreateFiltered<T>(params)\r\n\r\n class FilterBar extends FilterBarBase<IFilterBarProps<T>, IFilterBarState, T> {\r\n defaultState: IFilterBarState = { keyword: '', panelState: { anchorEl: null } }\r\n constructor(props: IFilterBarProps<T>) {\r\n super(props)\r\n this.state = this.defaultState\r\n }\r\n\r\n filterStateStore: IFilterState<T> = { filter: {} }\r\n get filterState(): IFilterState<T> {\r\n return this.props.value ?? this.filterStateStore\r\n }\r\n\r\n setFilterState = (filterState: IFilterState<T>) => {\r\n if (!this.props.value) {\r\n this.filterStateStore = filterState\r\n }\r\n this.props.onChange && this.props.onChange(filterState)\r\n }\r\n\r\n get configs() {\r\n return {\r\n id: this.props.id ?? params.id ?? new Date().getTime().toString(),\r\n placeholder: this.props.placeholder ?? params.placeholder ?? 'Filter',\r\n notes: params.notes\r\n }\r\n }\r\n\r\n refFilterButton: HTMLButtonElement | null = null\r\n refSortButton: HTMLButtonElement | null = null\r\n render() {\r\n return (\r\n <ClickAwayListener onClickAway={this.closePanel}>\r\n <Wrapper>\r\n <IconButton ref={(ref) => (this.refFilterButton = ref)} onClick={() => this.showPanel('filterButton')}>\r\n <FilterListIcon />\r\n </IconButton>\r\n <Content>\r\n <FilteredInstance filterState={this.filterState} onRemove={this.handleRemove} />\r\n {this.renderTextField()}\r\n </Content>\r\n <ButtonClear visibled={!this.isFilterEmpty(this.filterState)} onClick={this.handleClear} />\r\n {/* <IconButton ref={(ref) => (this.refSortButton = ref)} onClick={() => this.showPanel('sortButton')}>\r\n <SwapVertIcon />\r\n </IconButton> */}\r\n {this.configs.notes && <FilterNotes {...this.configs.notes} />}\r\n <FilterPanelInstance {...this.state.panelState} keyword={this.state.keyword} onSubmit={this.handleAdd} onClose={this.closePanel} />\r\n </Wrapper>\r\n </ClickAwayListener>\r\n )\r\n }\r\n\r\n refInput: HTMLInputElement | null = null\r\n refBeforeInput: HTMLElement | null = null\r\n renderTextField = () => (\r\n <Box component='label' htmlFor={this.configs.id} sx={{ flex: 1, display: 'flex', alignItems: 'flex-end' }}>\r\n <Box ref={(ref: HTMLElement) => (this.refBeforeInput = ref)} sx={{ height: '100%' }} />\r\n <InputBase\r\n id={this.configs.id}\r\n placeholder={this.configs.placeholder}\r\n fullWidth\r\n autoComplete='off'\r\n inputRef={(ref: HTMLInputElement) => (this.refInput = ref)}\r\n onChange={(event) => this.setState({ keyword: event.target.value })}\r\n value={this.state.keyword}\r\n onFocus={() => this.showPanel('searchInput')}\r\n onKeyDown={this.handleKeyDown}\r\n />\r\n </Box>\r\n )\r\n\r\n handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\r\n const keyCode: number = event.keyCode\r\n if (keyCode === 13) {\r\n if (!this.state.keyword) return\r\n const temp = this.addQuickSearch(this.filterState, params.quickSearch, this.state.keyword)\r\n temp.filterState.details = 'add'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.setState(this.defaultState)\r\n }\r\n } else if (keyCode === 27) {\r\n this.refInput?.blur()\r\n this.setState(this.defaultState)\r\n }\r\n }\r\n\r\n handleAdd: IFilterSubmitFunc<T> = (mode, data) => {\r\n let temp: IFilterChange<T> = { isChanged: false, filterState: this.filterState }\r\n if (mode === 'field' && !!data) {\r\n temp = this.patchFilterWithKey(this.filterState, data)\r\n } else if (mode === 'quickSearch') {\r\n temp = this.addQuickSearch(this.filterState, params.quickSearch, this.state.keyword)\r\n }\r\n temp.filterState.details = 'add'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.setState(this.defaultState)\r\n }\r\n }\r\n\r\n handleRemove: IFilterSubmitFunc<T> = (mode, data) => {\r\n let temp: IFilterChange<T> = { isChanged: false, filterState: this.filterState }\r\n if (mode === 'field' && !!data) {\r\n temp = this.deleteFilterWithKey(this.filterState, data)\r\n } else if (mode === 'quickSearch') {\r\n temp = this.removeQuickSearch(this.filterState)\r\n }\r\n temp.filterState.details = 'remove'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.forceUpdate()\r\n }\r\n }\r\n\r\n handleClear = () => {\r\n this.setFilterState({ filter: {}, details: 'remove' })\r\n this.setState(this.defaultState)\r\n }\r\n\r\n showPanel = (reason: IFilterReason) => {\r\n let anchorEl = null\r\n switch (reason) {\r\n case 'searchInput':\r\n anchorEl = this.refBeforeInput\r\n break\r\n case 'filterButton':\r\n anchorEl = this.refFilterButton\r\n break\r\n // case 'sortButton':\r\n // anchorEl = this.refSortButton\r\n // break\r\n default:\r\n break\r\n }\r\n this.setState({ panelState: { anchorEl, reason } })\r\n }\r\n\r\n closePanel = () => this.setState({ panelState: { anchorEl: null } })\r\n }\r\n\r\n return FilterBar\r\n}\r\n\r\nexport default CreateFilterBar\r\n\r\nconst Wrapper = styled(Box)({\r\n display: 'flex',\r\n gap: '8px',\r\n width: '100%',\r\n borderRadius: '6px',\r\n transition: 'all linear 0.2s',\r\n padding: '2px',\r\n backgroundColor: '#fafafa',\r\n '&:hover': { backgroundColor: '#ededed' }\r\n})\r\n\r\nconst Content = styled(Box)({\r\n flex: 1,\r\n minHeight: '40px',\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: '6px'\r\n})\r\n"],"names":["CreateFilterBar","params","FilterPanelInstance","CreateFilterPanel","FilteredInstance","CreateFiltered","FilterBar","props","_this","_classCallCheck","_callSuper","_defineProperty","keyword","panelState","anchorEl","filter","filterState","value","filterStateStore","onChange","_jsxs","Box","component","htmlFor","configs","id","sx","flex","display","alignItems","children","_jsx","ref","refBeforeInput","height","InputBase","placeholder","fullWidth","autoComplete","inputRef","refInput","event","setState","target","state","onFocus","showPanel","onKeyDown","handleKeyDown","keyCode","_this$refInput","temp","addQuickSearch","quickSearch","details","isChanged","blur","setFilterState","defaultState","_this$refInput2","mode","data","_this$refInput3","patchFilterWithKey","_this$refInput4","deleteFilterWithKey","removeQuickSearch","forceUpdate","reason","refFilterButton","_inherits","FilterBarBase","_createClass","key","get","_this$props$value","this","_ref2","_this$props$id","_ref3","_this$props$placehold","Date","getTime","toString","notes","_this2","ClickAwayListener","onClickAway","closePanel","Wrapper","IconButton","onClick","FilterListIcon","Content","onRemove","handleRemove","renderTextField","ButtonClear","visibled","isFilterEmpty","handleClear","FilterNotes","_objectSpread","onSubmit","handleAdd","onClose","styled","gap","width","borderRadius","transition","padding","backgroundColor","minHeight","flexWrap"],"mappings":"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"}
1
+ {"version":3,"file":"create.filter-bar.js","sources":["../../../src/table-grid/filter-bar/create.filter-bar.tsx"],"sourcesContent":["import React, { ComponentType } from 'react'\r\nimport { Box, IconButton, InputBase, styled } from '@mui/material'\r\nimport FilterListIcon from '@mui/icons-material/FilterList'\r\nimport ClickAwayListener from '@mui/material/ClickAwayListener'\r\nimport { ButtonClear, FilterNotes } from './ui.units'\r\nimport { IFilterReason, IFilterState, IFilterBarConfigs, IFilterBarProps, IFilterBarState, IFilterSubmitFunc } from './types'\r\nimport FilterBarBase, { IFilterChange } from './base'\r\nimport CreateFiltered from './create.filtered'\r\nimport CreateFilterPanel from './create.filter-panel'\r\n\r\nfunction CreateFilterBar<T>(params: IFilterBarConfigs<T>): ComponentType<IFilterBarProps<T>> {\r\n const FilterPanelInstance = CreateFilterPanel<T>(params)\r\n const FilteredInstance = CreateFiltered<T>(params)\r\n\r\n class FilterBar extends FilterBarBase<IFilterBarProps<T>, IFilterBarState, T> {\r\n defaultState: IFilterBarState = { keyword: '', panelState: { anchorEl: null } }\r\n constructor(props: IFilterBarProps<T>) {\r\n super(props)\r\n this.state = this.defaultState\r\n }\r\n\r\n filterStateStore: IFilterState<T> = { filter: {} }\r\n get filterState(): IFilterState<T> {\r\n return this.props.value ?? this.filterStateStore\r\n }\r\n\r\n setFilterState = (filterState: IFilterState<T>) => {\r\n if (!this.props.value) {\r\n this.filterStateStore = filterState\r\n }\r\n this.props.onChange && this.props.onChange(filterState)\r\n }\r\n\r\n get configs() {\r\n return {\r\n id: this.props.id ?? params.id ?? new Date().getTime().toString(),\r\n placeholder: this.props.placeholder ?? params.placeholder ?? 'Filter',\r\n notes: params.notes\r\n }\r\n }\r\n\r\n refFilterButton: HTMLButtonElement | null = null\r\n refSortButton: HTMLButtonElement | null = null\r\n render() {\r\n return (\r\n <ClickAwayListener onClickAway={this.closePanel}>\r\n <Wrapper>\r\n <IconButton ref={(ref) => (this.refFilterButton = ref)} onClick={() => this.showPanel('filterButton')}>\r\n <FilterListIcon />\r\n </IconButton>\r\n <Content>\r\n <FilteredInstance filterState={this.filterState} onRemove={this.handleRemove} />\r\n {this.renderTextField()}\r\n </Content>\r\n <ButtonClear visibled={!this.isFilterEmpty(this.filterState)} onClick={this.handleClear} />\r\n {/* <IconButton ref={(ref) => (this.refSortButton = ref)} onClick={() => this.showPanel('sortButton')}>\r\n <SwapVertIcon />\r\n </IconButton> */}\r\n {this.configs.notes && <FilterNotes {...this.configs.notes} />}\r\n <FilterPanelInstance {...this.state.panelState} keyword={this.state.keyword} onSubmit={this.handleAdd} onClose={this.closePanel} />\r\n </Wrapper>\r\n </ClickAwayListener>\r\n )\r\n }\r\n\r\n refInput: HTMLInputElement | null = null\r\n refBeforeInput: HTMLElement | null = null\r\n renderTextField = () => (\r\n <Box component='label' htmlFor={this.configs.id} sx={{ flex: 1, display: 'flex', alignItems: 'flex-end' }}>\r\n <Box ref={(ref: HTMLElement) => (this.refBeforeInput = ref)} sx={{ height: '100%' }} />\r\n <InputBase\r\n id={this.configs.id}\r\n placeholder={this.configs.placeholder}\r\n fullWidth\r\n autoComplete='off'\r\n inputRef={(ref: HTMLInputElement) => (this.refInput = ref)}\r\n onChange={(event) => this.setState({ keyword: event.target.value })}\r\n value={this.state.keyword}\r\n onFocus={() => this.showPanel('searchInput')}\r\n onKeyDown={this.handleKeyDown}\r\n />\r\n </Box>\r\n )\r\n\r\n handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\r\n const keyCode: number = event.keyCode\r\n if (keyCode === 13) {\r\n if (!this.state.keyword) return\r\n const temp = this.addQuickSearch(this.filterState, params.quickSearch, this.state.keyword)\r\n temp.filterState.details = 'add'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.setState(this.defaultState)\r\n }\r\n } else if (keyCode === 27) {\r\n this.refInput?.blur()\r\n this.setState(this.defaultState)\r\n }\r\n }\r\n\r\n handleAdd: IFilterSubmitFunc<T> = (mode, data) => {\r\n let temp: IFilterChange<T> = { isChanged: false, filterState: this.filterState }\r\n if (mode === 'field' && !!data) {\r\n temp = this.patchFilterWithKey(this.filterState, data)\r\n } else if (mode === 'quickSearch') {\r\n temp = this.addQuickSearch(this.filterState, params.quickSearch, this.state.keyword)\r\n }\r\n temp.filterState.details = 'add'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.setState(this.defaultState)\r\n }\r\n }\r\n\r\n handleRemove: IFilterSubmitFunc<T> = (mode, data) => {\r\n let temp: IFilterChange<T> = { isChanged: false, filterState: this.filterState }\r\n if (mode === 'field' && !!data) {\r\n temp = this.deleteFilterWithKey(this.filterState, data)\r\n } else if (mode === 'quickSearch') {\r\n temp = this.removeQuickSearch(this.filterState)\r\n }\r\n temp.filterState.details = 'remove'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.forceUpdate()\r\n }\r\n }\r\n\r\n handleClear = () => {\r\n this.setFilterState({ filter: {}, details: 'remove' })\r\n this.setState(this.defaultState)\r\n }\r\n\r\n showPanel = (reason: IFilterReason) => {\r\n let anchorEl = null\r\n switch (reason) {\r\n case 'searchInput':\r\n anchorEl = this.refBeforeInput\r\n break\r\n case 'filterButton':\r\n anchorEl = this.refFilterButton\r\n break\r\n // case 'sortButton':\r\n // anchorEl = this.refSortButton\r\n // break\r\n default:\r\n break\r\n }\r\n this.setState({ panelState: { anchorEl, reason } })\r\n }\r\n\r\n closePanel = () => this.setState({ panelState: { anchorEl: null } })\r\n }\r\n\r\n return FilterBar\r\n}\r\n\r\nexport default CreateFilterBar\r\n\r\nconst Wrapper = styled(Box)({\r\n display: 'flex',\r\n gap: '8px',\r\n width: '100%',\r\n borderRadius: '6px',\r\n transition: 'all linear 0.2s',\r\n padding: '2px',\r\n backgroundColor: '#fafafa',\r\n '&:hover': { backgroundColor: '#ededed' }\r\n})\r\n\r\nconst Content = styled(Box)({\r\n flex: 1,\r\n minHeight: '40px',\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: '6px'\r\n})\r\n"],"names":["CreateFilterBar","params","FilterPanelInstance","CreateFilterPanel","FilteredInstance","CreateFiltered","FilterBar","props","_this","_classCallCheck","_callSuper","_defineProperty","keyword","panelState","anchorEl","filter","filterState","value","filterStateStore","onChange","_jsxs","Box","component","htmlFor","configs","id","sx","flex","display","alignItems","children","_jsx","ref","refBeforeInput","height","InputBase","placeholder","fullWidth","autoComplete","inputRef","refInput","event","setState","target","state","onFocus","showPanel","onKeyDown","handleKeyDown","keyCode","_this$refInput","temp","addQuickSearch","quickSearch","details","isChanged","blur","setFilterState","defaultState","_this$refInput2","mode","data","_this$refInput3","patchFilterWithKey","_this$refInput4","deleteFilterWithKey","removeQuickSearch","forceUpdate","reason","refFilterButton","_inherits","FilterBarBase","_createClass","key","get","_this$props$value","this","_ref2","_this$props$id","_ref3","_this$props$placehold","Date","getTime","toString","notes","_this2","ClickAwayListener","onClickAway","closePanel","Wrapper","IconButton","onClick","FilterListIcon","Content","onRemove","handleRemove","renderTextField","ButtonClear","visibled","isFilterEmpty","handleClear","FilterNotes","_objectSpread","onSubmit","handleAdd","onClose","styled","gap","width","borderRadius","transition","padding","backgroundColor","minHeight","flexWrap"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export{default as DinoTableGrid}from"./dino.js";export{CreateTableGridItemActions}from"./item-actions.js";export{EMenuValidate,ESearchMatch}from"./filter-bar/types.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +1,2 @@
1
- import{inherits as r,createClass as o,classCallCheck as e,callSuper as t,defineProperty as i,toConsumableArray as n,objectSpread2 as a}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,Fragment as s,jsxs as p}from"react/jsx-runtime";import{Component as c}from"react";import{styled as m,Box as u,colors as d,ListItem as f,IconButton as h,List as v,ListItemButton as g,ListItemIcon as y,ListItemText as b}from"@mui/material";import A from"@mui/icons-material/Edit";import C from"@mui/icons-material/MoreVert";import I from"@mui/icons-material/DeleteOutline";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{mapGlobalModalContext as x}from"../api-context/global-modal.js";import k from"../api-context/popover-global.js";var E={Edit:l(A,{fontSize:"small",color:"primary"}),Delete:l(I,{fontSize:"small",color:"error"})};function P(){var m=function(){function m(){var r;e(this,m);for(var o=arguments.length,c=new Array(o),u=0;u<o;u++)c[u]=arguments[u];return r=t(this,m,[].concat(c)),i(r,"isVisible",(function(){var o=r.props.menuList,e=[].concat(n(r.singleOrArrayToArray(null==o?void 0:o.before)),n(r.singleOrArrayToArray(null==o?void 0:o.after)));return!!r.props.formEdit||!!r.props.formDelete||e.length>0})),i(r,"singleOrArrayToArray",(function(r){return r?Array.isArray(r)?r:[r]:[]})),i(r,"renderItems",(function(o){return o?(Array.isArray(o)?o:[o]).map((function(o,e){var t=o.name+e,i=o.override;if(i)return l(i,{onClose:k.Api.close},t);var n=o.listItemPropsGetter?o.listItemPropsGetter(r.props.value):o.listItemProps;return l(j,a(a({disablePadding:!0,onClick:function(e){!1!==o.closableOnClick&&k.Api.close(),o.onClick&&o.onClick(e,r.props.value)}},n),{},{children:p(g,{children:[l(y,{children:o.icon}),l(b,{primary:o.name})]})}),t)})):l(s,{})})),i(r,"renderItemWithForm",(function(o,e,t){return e?x((function(i){return l(j,{disablePadding:!0,onClick:function(){k.Api.close(),i.show(a({renderContent:function(){return e(r.props.value)}},t))},children:p(g,{children:[l(y,{children:E[o]}),l(b,{primary:o})]})})})):l(s,{})})),r}return r(m,c),o(m,[{key:"render",value:function(){var r=this;return this.isVisible()?l(T,{children:l(h,{size:"small",onClick:function(o){var e,t,i;k.Api.open({anchorEl:o.currentTarget,popoverProps:{anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"}},content:p(v,{children:[r.renderItems(null===(e=r.props.menuList)||void 0===e?void 0:e.before),r.renderItemWithForm("Edit",r.props.formEdit,r.props.buttonEditConfig),r.renderItemWithForm("Delete",r.props.formDelete,null!==(t=r.props.buttonEditConfig)&&void 0!==t?t:{backdropActivated:!0}),r.renderItems(null===(i=r.props.menuList)||void 0===i?void 0:i.after)]})})},children:l(C,{fontSize:"small"})})}):l(s,{})}}])}();return m}var T=m(u)({background:d.common.white,borderRadius:"6px","& > .MuiButtonBase-root":{borderRadius:"6px"}}),j=m(f)({minWidth:"150px",".MuiListItemIcon-root":{minWidth:"40px"},".MuiListItemText-root .MuiTypography-root":{color:d.grey[800]},"&:hover":{".MuiListItemText-root .MuiTypography-root":{background:d.grey[100],color:d.grey[900]}}});export{P as CreateTableGridItemActions};
1
+ import{inherits as r,createClass as o,classCallCheck as e,callSuper as t,defineProperty as i,toConsumableArray as n,objectSpread2 as a}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,Fragment as s,jsxs as p}from"react/jsx-runtime";import{Component as c}from"react";import{styled as m,Box as u,colors as d,ListItem as f,ListItemButton as h,ListItemIcon as v,ListItemText as g,IconButton as y,List as b}from"@mui/material";import A from"@mui/icons-material/Edit";import C from"@mui/icons-material/MoreVert";import I from"@mui/icons-material/DeleteOutline";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{mapGlobalModalContext as x}from"../api-context/global-modal.js";import k from"../api-context/popover-global.js";var E={Edit:l(A,{fontSize:"small",color:"primary"}),Delete:l(I,{fontSize:"small",color:"error"})};function P(){var m=function(){function m(){var r;e(this,m);for(var o=arguments.length,c=new Array(o),u=0;u<o;u++)c[u]=arguments[u];return r=t(this,m,[].concat(c)),i(r,"isVisible",(function(){var o=r.props.menuList,e=[].concat(n(r.singleOrArrayToArray(null==o?void 0:o.before)),n(r.singleOrArrayToArray(null==o?void 0:o.after)));return!!r.props.formEdit||!!r.props.formDelete||e.length>0})),i(r,"singleOrArrayToArray",(function(r){return r?Array.isArray(r)?r:[r]:[]})),i(r,"renderItems",(function(o){return o?(Array.isArray(o)?o:[o]).map((function(o,e){var t=o.name+e,i=o.override;if(i)return l(i,{onClose:k.Api.close},t);var n=o.listItemPropsGetter?o.listItemPropsGetter(r.props.value):o.listItemProps;return l(j,a(a({disablePadding:!0,onClick:function(e){!1!==o.closableOnClick&&k.Api.close(),o.onClick&&o.onClick(e,r.props.value)}},n),{},{children:p(h,{children:[l(v,{children:o.icon}),l(g,{primary:o.name})]})}),t)})):l(s,{})})),i(r,"renderItemWithForm",(function(o,e,t){return e?x((function(i){return l(j,{disablePadding:!0,onClick:function(){k.Api.close(),i.show(a({renderContent:function(){return e(r.props.value)}},t))},children:p(h,{children:[l(v,{children:E[o]}),l(g,{primary:o})]})})})):l(s,{})})),r}return r(m,c),o(m,[{key:"render",value:function(){var r=this;return this.isVisible()?l(T,{children:l(y,{size:"small",onClick:function(o){var e,t,i;k.Api.open({anchorEl:o.currentTarget,popoverProps:{anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"}},content:p(b,{children:[r.renderItems(null===(e=r.props.menuList)||void 0===e?void 0:e.before),r.renderItemWithForm("Edit",r.props.formEdit,r.props.buttonEditConfig),r.renderItemWithForm("Delete",r.props.formDelete,null!==(t=r.props.buttonEditConfig)&&void 0!==t?t:{backdropActivated:!0}),r.renderItems(null===(i=r.props.menuList)||void 0===i?void 0:i.after)]})})},children:l(C,{fontSize:"small"})})}):l(s,{})}}])}();return m}var T=m(u)({background:d.common.white,borderRadius:"6px","& > .MuiButtonBase-root":{borderRadius:"6px"}}),j=m(f)({minWidth:"150px",".MuiListItemIcon-root":{minWidth:"40px"},".MuiListItemText-root .MuiTypography-root":{color:d.grey[800]},"&:hover":{".MuiListItemText-root .MuiTypography-root":{background:d.grey[100],color:d.grey[900]}}});export{P as CreateTableGridItemActions};
2
2
  //# sourceMappingURL=item-actions.js.map
@@ -1,2 +1,2 @@
1
- import{objectSpread2 as t,inherits as r,createClass as o,classCallCheck as e,callSuper as i,defineProperty as n}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,jsxs as s,Fragment as a}from"react/jsx-runtime";import{Component as p}from"react";import{styled as c,Typography as m,Box as u,Tooltip as d,Button as f}from"@mui/material";import v from"@mui/icons-material/AddCircleOutline";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{mapGlobalModalContext as h}from"../api-context/global-modal.js";import b from"../components/breadcrumbs.js";import"../components/buttons.js";import"clipboard-copy";import"@mui/icons-material/Done";import"@mui/icons-material/ContentCopy";import"../components/create.multi-select-dropdown.js";import"../components/help-tooltip.js";import"../components/text-editor.js";var C=function(){function c(){var r;e(this,c);for(var o=arguments.length,s=new Array(o),p=0;p<o;p++)s[p]=arguments[p];return r=i(this,c,[].concat(s)),n(r,"renderButtonCreate",(function(){return r.props.formCreate?h((function(o){var e;return l(d,{title:"Create new",children:l(f,t(t({size:"small",onClick:function(){return o.show({renderContent:function(){return r.props.formCreate}})},startIcon:l(v,{fontSize:"small"}),sx:{fontWeight:600},variant:"contained"},null===(e=r.props.slots)||void 0===e?void 0:e.buttonCreateProps),{},{children:"Create"}))})})):l(a,{})})),n(r,"renderTitle",(function(){var t,o=null!==(t=r.props)&&void 0!==t?t:{},e=o.title,i=o.breadcrumbs;return i?l(b,{value:i}):l("string"==typeof e?x:a,{children:e})})),r}return r(c,p),o(c,[{key:"render",value:function(){var r,o,e,i,n;if(!1!==this.props.visible)return s(g,t(t({},null===(r=this.props.slots)||void 0===r?void 0:r.rootProps),{},{children:[null===(o=this.props.titleSlots)||void 0===o?void 0:o.before,this.renderTitle(),null===(e=this.props.titleSlots)||void 0===e?void 0:e.after,l(u,{sx:{flex:1}}),null===(i=this.props.actionSlots)||void 0===i?void 0:i.before,this.renderButtonCreate(),null===(n=this.props.actionSlots)||void 0===n?void 0:n.after]}))}}])}(),x=c((function(r){return l(m,t({noWrap:!0,variant:"subtitle1"},r))}))({fontWeight:700,flex:1}),g=c(u)({height:"var(--height-toolbar, 56px)",display:"flex",alignItems:"center",gap:"8px",padding:"0 6px"});export{C as default};
1
+ import{objectSpread2 as r,inherits as t,createClass as e,classCallCheck as o,callSuper as i,defineProperty as n}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,jsxs as a,Fragment as s}from"react/jsx-runtime";import{Component as p}from"react";import{styled as u,Typography as c,Box as d,Tooltip as f,Button as m}from"@mui/material";import v from"@mui/icons-material/AddCircleOutline";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{mapGlobalModalContext as h}from"../api-context/global-modal.js";import b from"../components/breadcrumbs.js";var g=function(){function u(){var t;o(this,u);for(var e=arguments.length,a=new Array(e),p=0;p<e;p++)a[p]=arguments[p];return t=i(this,u,[].concat(a)),n(t,"renderButtonCreate",(function(){return t.props.formCreate?h((function(e){var o;return l(f,{title:"Create new",children:l(m,r(r({size:"small",onClick:function(){return e.show({renderContent:function(){return t.props.formCreate}})},startIcon:l(v,{fontSize:"small"}),sx:{fontWeight:600},variant:"contained"},null===(o=t.props.slots)||void 0===o?void 0:o.buttonCreateProps),{},{children:"Create"}))})})):l(s,{})})),n(t,"renderTitle",(function(){var r,e=null!==(r=t.props)&&void 0!==r?r:{},o=e.title,i=e.breadcrumbs;return i?l(b,{value:i}):l("string"==typeof o?x:s,{children:o})})),t}return t(u,p),e(u,[{key:"render",value:function(){var t,e,o,i,n;if(!1!==this.props.visible)return a(C,r(r({},null===(t=this.props.slots)||void 0===t?void 0:t.rootProps),{},{children:[null===(e=this.props.titleSlots)||void 0===e?void 0:e.before,this.renderTitle(),null===(o=this.props.titleSlots)||void 0===o?void 0:o.after,l(d,{sx:{flex:1}}),null===(i=this.props.actionSlots)||void 0===i?void 0:i.before,this.renderButtonCreate(),null===(n=this.props.actionSlots)||void 0===n?void 0:n.after]}))}}])}(),x=u((function(t){return l(c,r({noWrap:!0,variant:"subtitle1"},t))}))({fontWeight:700,flex:1}),C=u(d)({height:"var(--height-toolbar, 56px)",display:"flex",alignItems:"center",gap:"8px",padding:"0 6px"});export{g as default};
2
2
  //# sourceMappingURL=toolbar-pannel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar-pannel.js","sources":["../../src/table-grid/toolbar-pannel.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { Box, BoxProps, Button, ButtonProps, styled, Tooltip, Typography, TypographyProps } from '@mui/material'\r\nimport AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline'\r\nimport { mapGlobalModalContext } from '../api-context'\r\nimport { Breadcrumbs, IBreadcrumbConfig } from '../components'\r\n\r\nexport interface ISectionSlots {\r\n before?: React.ReactNode\r\n after?: React.ReactNode\r\n}\r\n\r\nexport interface IToolbarPannelProps {\r\n /** @default true */\r\n visible?: boolean\r\n searchInclude?: string[]\r\n breadcrumbs?: IBreadcrumbConfig[]\r\n title?: React.ReactNode\r\n titleSlots?: ISectionSlots\r\n formCreate?: React.ReactNode\r\n actionSlots?: ISectionSlots\r\n slots?: {\r\n rootProps?: BoxProps\r\n buttonCreateProps?: ButtonProps\r\n }\r\n}\r\n\r\nclass ToolbarPannel extends Component<IToolbarPannelProps> {\r\n render() {\r\n if (this.props.visible === false) return\r\n return (\r\n <Wrap {...this.props.slots?.rootProps}>\r\n {this.props.titleSlots?.before}\r\n {this.renderTitle()}\r\n {this.props.titleSlots?.after}\r\n <Box sx={{ flex: 1 }} />\r\n {this.props.actionSlots?.before}\r\n {this.renderButtonCreate()}\r\n {this.props.actionSlots?.after}\r\n </Wrap>\r\n )\r\n }\r\n\r\n renderButtonCreate = () => {\r\n if (!this.props.formCreate) return <></>\r\n return mapGlobalModalContext((context) => (\r\n <Tooltip title='Create new'>\r\n <Button\r\n size='small'\r\n onClick={() => context.show({ renderContent: () => this.props.formCreate })}\r\n startIcon={<AddCircleOutlineIcon fontSize='small' />}\r\n sx={{ fontWeight: 600 }}\r\n variant='contained'\r\n {...this.props.slots?.buttonCreateProps}\r\n >\r\n Create\r\n </Button>\r\n </Tooltip>\r\n ))\r\n }\r\n\r\n renderTitle = () => {\r\n const { title, breadcrumbs } = this.props ?? {}\r\n if (breadcrumbs) return <Breadcrumbs value={breadcrumbs} />\r\n if (typeof title === 'string') return <Title>{title}</Title>\r\n return <>{title}</>\r\n }\r\n}\r\n\r\nexport default ToolbarPannel\r\n\r\n// const SearchHelp = styled('ul')({\r\n// margin: '0 0 0 18px',\r\n// padding: 0,\r\n// li: {\r\n// position: 'relative'\r\n// },\r\n// 'li::after': {\r\n// content: '\"►\"',\r\n// display: 'inline-block',\r\n// top: '50%',\r\n// transform: 'translateY(-50%)',\r\n// position: 'absolute',\r\n// left: '-18px'\r\n// }\r\n// })\r\n\r\nconst Title = styled((props: TypographyProps) => <Typography noWrap variant='subtitle1' {...props} />)({\r\n fontWeight: 700,\r\n flex: 1\r\n})\r\n\r\nconst Wrap = styled(Box)({\r\n height: 'var(--height-toolbar, 56px)',\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px',\r\n padding: '0 6px'\r\n})\r\n"],"names":["ToolbarPannel","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","props","formCreate","mapGlobalModalContext","context","_this$props$slots","_jsx","Tooltip","title","children","Button","_objectSpread","size","onClick","show","renderContent","startIcon","AddCircleOutlineIcon","fontSize","sx","fontWeight","variant","slots","buttonCreateProps","_this$props","_ref","breadcrumbs","Breadcrumbs","value","Title","_Fragment","_inherits","Component","_createClass","key","_this$props$slots2","_this$props$titleSlot","_this$props$titleSlot2","_this$props$actionSlo","_this$props$actionSlo2","visible","_jsxs","Wrap","rootProps","titleSlots","before","renderTitle","after","Box","flex","actionSlots","renderButtonCreate","styled","Typography","noWrap","height","display","alignItems","gap","padding"],"mappings":"k1BA0BMA,IAAAA,aAAc,SAAAA,IAAA,IAAAC,EAAAC,OAAAF,GAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAAC,EAAAC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAuCjB,OAvCiBP,EAAAQ,EAAAC,KAAAV,EAAAW,GAAAA,OAAAL,IAAAM,EAAAX,EAAA,sBAgBG,WACnB,OAAKA,EAAKY,MAAMC,WACTC,GAAsB,SAACC,GAAO,IAAAC,EAAA,OACnCC,EAACC,GAAQC,MAAM,aAAYC,SACzBH,EAACI,EAAMC,EAAAA,EAAA,CACLC,KAAK,QACLC,QAAS,WAAF,OAAQT,EAAQU,KAAK,CAAEC,cAAe,WAAF,OAAQ1B,EAAKY,MAAMC,UAAU,GAAG,EAC3Ec,UAAWV,EAACW,EAAqB,CAAAC,SAAS,UAC1CC,GAAI,CAAEC,WAAY,KAClBC,QAAQ,aACY,QADDhB,EACfhB,EAAKY,MAAMqB,aAAK,IAAAjB,OAAA,EAAhBA,EAAkBkB,mBAAiB,CAAA,EAAA,uBAIjC,IAbuBjB,WAepCN,EAAAX,EAAA,eAEa,WAAK,IAAAmC,EACjBC,EAAyC,QAAzCD,EAA+BnC,EAAKY,aAAK,IAAAuB,EAAAA,EAAI,CAAE,EAAvChB,EAAKiB,EAALjB,MAAOkB,EAAWD,EAAXC,YACf,OAAIA,EAAoBpB,EAACqB,EAAW,CAACC,MAAOF,IACNpB,EAAjB,iBAAVE,EAA4BqB,EAChCC,EADuC,CAAArB,SAAAD,OAE/CnB,CAAA,CAAA,OAAA0C,EAAA3C,EAvCyB4C,GAuCzBC,EAAA7C,EAAA,CAAA,CAAA8C,IAAA,SAAAN,MAtCD,WAAM,IAAAO,EAAAC,EAAAC,EAAAC,EAAAC,EACJ,IAA2B,IAAvBzC,KAAKG,MAAMuC,QACf,OACEC,EAACC,EAAI/B,EAAAA,KAAqB,QAArBwB,EAAKrC,KAAKG,MAAMqB,aAAXa,IAAgBA,OAAhBA,EAAAA,EAAkBQ,WAAS,GAAA,CAAAlC,SAAA,CACb,QADa2B,EAClCtC,KAAKG,MAAM2C,kBAAXR,IAAqBA,OAArBA,EAAAA,EAAuBS,OACvB/C,KAAKgD,cACgB,QADHT,EAClBvC,KAAKG,MAAM2C,kBAAU,IAAAP,OAAA,EAArBA,EAAuBU,MACxBzC,EAAC0C,EAAI,CAAA7B,GAAI,CAAE8B,KAAM,aAAOX,EACvBxC,KAAKG,MAAMiD,mBAAW,IAAAZ,OAAA,EAAtBA,EAAwBO,OACxB/C,KAAKqD,qBACiBZ,QADGA,EACzBzC,KAAKG,MAAMiD,mBAAXX,IAAsBA,OAAtBA,EAAAA,EAAwBQ,SAG/B,IAAC,IA8CGlB,EAAQuB,GAAO,SAACnD,GAAsB,OAAKK,EAAC+C,EAAU1C,EAAA,CAAC2C,UAAOjC,QAAQ,aAAgBpB,GAAS,GAAvFmD,CAAyF,CACrGhC,WAAY,IACZ6B,KAAM,IAGFP,EAAOU,EAAOJ,EAAPI,CAAY,CACvBG,OAAQ,8BACRC,QAAS,OACTC,WAAY,SACZC,IAAK,MACLC,QAAS"}
1
+ {"version":3,"file":"toolbar-pannel.js","sources":["../../src/table-grid/toolbar-pannel.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { Box, BoxProps, Button, ButtonProps, styled, Tooltip, Typography, TypographyProps } from '@mui/material'\r\nimport AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline'\r\nimport { mapGlobalModalContext } from '../api-context'\r\nimport { Breadcrumbs, IBreadcrumbConfig } from '../components'\r\n\r\nexport interface ISectionSlots {\r\n before?: React.ReactNode\r\n after?: React.ReactNode\r\n}\r\n\r\nexport interface IToolbarPannelProps {\r\n /** @default true */\r\n visible?: boolean\r\n searchInclude?: string[]\r\n breadcrumbs?: IBreadcrumbConfig[]\r\n title?: React.ReactNode\r\n titleSlots?: ISectionSlots\r\n formCreate?: React.ReactNode\r\n actionSlots?: ISectionSlots\r\n slots?: {\r\n rootProps?: BoxProps\r\n buttonCreateProps?: ButtonProps\r\n }\r\n}\r\n\r\nclass ToolbarPannel extends Component<IToolbarPannelProps> {\r\n render() {\r\n if (this.props.visible === false) return\r\n return (\r\n <Wrap {...this.props.slots?.rootProps}>\r\n {this.props.titleSlots?.before}\r\n {this.renderTitle()}\r\n {this.props.titleSlots?.after}\r\n <Box sx={{ flex: 1 }} />\r\n {this.props.actionSlots?.before}\r\n {this.renderButtonCreate()}\r\n {this.props.actionSlots?.after}\r\n </Wrap>\r\n )\r\n }\r\n\r\n renderButtonCreate = () => {\r\n if (!this.props.formCreate) return <></>\r\n return mapGlobalModalContext((context) => (\r\n <Tooltip title='Create new'>\r\n <Button\r\n size='small'\r\n onClick={() => context.show({ renderContent: () => this.props.formCreate })}\r\n startIcon={<AddCircleOutlineIcon fontSize='small' />}\r\n sx={{ fontWeight: 600 }}\r\n variant='contained'\r\n {...this.props.slots?.buttonCreateProps}\r\n >\r\n Create\r\n </Button>\r\n </Tooltip>\r\n ))\r\n }\r\n\r\n renderTitle = () => {\r\n const { title, breadcrumbs } = this.props ?? {}\r\n if (breadcrumbs) return <Breadcrumbs value={breadcrumbs} />\r\n if (typeof title === 'string') return <Title>{title}</Title>\r\n return <>{title}</>\r\n }\r\n}\r\n\r\nexport default ToolbarPannel\r\n\r\n// const SearchHelp = styled('ul')({\r\n// margin: '0 0 0 18px',\r\n// padding: 0,\r\n// li: {\r\n// position: 'relative'\r\n// },\r\n// 'li::after': {\r\n// content: '\"►\"',\r\n// display: 'inline-block',\r\n// top: '50%',\r\n// transform: 'translateY(-50%)',\r\n// position: 'absolute',\r\n// left: '-18px'\r\n// }\r\n// })\r\n\r\nconst Title = styled((props: TypographyProps) => <Typography noWrap variant='subtitle1' {...props} />)({\r\n fontWeight: 700,\r\n flex: 1\r\n})\r\n\r\nconst Wrap = styled(Box)({\r\n height: 'var(--height-toolbar, 56px)',\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px',\r\n padding: '0 6px'\r\n})\r\n"],"names":["ToolbarPannel","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","props","formCreate","mapGlobalModalContext","context","_this$props$slots","_jsx","Tooltip","title","children","Button","_objectSpread","size","onClick","show","renderContent","startIcon","AddCircleOutlineIcon","fontSize","sx","fontWeight","variant","slots","buttonCreateProps","_this$props","_ref","breadcrumbs","Breadcrumbs","value","Title","_Fragment","_inherits","Component","_createClass","key","_this$props$slots2","_this$props$titleSlot","_this$props$titleSlot2","_this$props$actionSlo","_this$props$actionSlo2","visible","_jsxs","Wrap","rootProps","titleSlots","before","renderTitle","after","Box","flex","actionSlots","renderButtonCreate","styled","Typography","noWrap","height","display","alignItems","gap","padding"],"mappings":"glBA0BMA,IAAAA,aAAc,SAAAA,IAAA,IAAAC,EAAAC,OAAAF,GAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAAC,EAAAC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAuCjB,OAvCiBP,EAAAQ,EAAAC,KAAAV,EAAAW,GAAAA,OAAAL,IAAAM,EAAAX,EAAA,sBAgBG,WACnB,OAAKA,EAAKY,MAAMC,WACTC,GAAsB,SAACC,GAAO,IAAAC,EAAA,OACnCC,EAACC,GAAQC,MAAM,aAAYC,SACzBH,EAACI,EAAMC,EAAAA,EAAA,CACLC,KAAK,QACLC,QAAS,WAAF,OAAQT,EAAQU,KAAK,CAAEC,cAAe,WAAF,OAAQ1B,EAAKY,MAAMC,UAAU,GAAG,EAC3Ec,UAAWV,EAACW,EAAqB,CAAAC,SAAS,UAC1CC,GAAI,CAAEC,WAAY,KAClBC,QAAQ,aACY,QADDhB,EACfhB,EAAKY,MAAMqB,aAAK,IAAAjB,OAAA,EAAhBA,EAAkBkB,mBAAiB,CAAA,EAAA,uBAIjC,IAbuBjB,WAepCN,EAAAX,EAAA,eAEa,WAAK,IAAAmC,EACjBC,EAAyC,QAAzCD,EAA+BnC,EAAKY,aAAK,IAAAuB,EAAAA,EAAI,CAAE,EAAvChB,EAAKiB,EAALjB,MAAOkB,EAAWD,EAAXC,YACf,OAAIA,EAAoBpB,EAACqB,EAAW,CAACC,MAAOF,IACNpB,EAAjB,iBAAVE,EAA4BqB,EAChCC,EADuC,CAAArB,SAAAD,OAE/CnB,CAAA,CAAA,OAAA0C,EAAA3C,EAvCyB4C,GAuCzBC,EAAA7C,EAAA,CAAA,CAAA8C,IAAA,SAAAN,MAtCD,WAAM,IAAAO,EAAAC,EAAAC,EAAAC,EAAAC,EACJ,IAA2B,IAAvBzC,KAAKG,MAAMuC,QACf,OACEC,EAACC,EAAI/B,EAAAA,KAAqB,QAArBwB,EAAKrC,KAAKG,MAAMqB,aAAXa,IAAgBA,OAAhBA,EAAAA,EAAkBQ,WAAS,GAAA,CAAAlC,SAAA,CACb,QADa2B,EAClCtC,KAAKG,MAAM2C,kBAAXR,IAAqBA,OAArBA,EAAAA,EAAuBS,OACvB/C,KAAKgD,cACgB,QADHT,EAClBvC,KAAKG,MAAM2C,kBAAU,IAAAP,OAAA,EAArBA,EAAuBU,MACxBzC,EAAC0C,EAAI,CAAA7B,GAAI,CAAE8B,KAAM,aAAOX,EACvBxC,KAAKG,MAAMiD,mBAAW,IAAAZ,OAAA,EAAtBA,EAAwBO,OACxB/C,KAAKqD,qBACiBZ,QADGA,EACzBzC,KAAKG,MAAMiD,mBAAXX,IAAsBA,OAAtBA,EAAAA,EAAwBQ,SAG/B,IAAC,IA8CGlB,EAAQuB,GAAO,SAACnD,GAAsB,OAAKK,EAAC+C,EAAU1C,EAAA,CAAC2C,UAAOjC,QAAQ,aAAgBpB,GAAS,GAAvFmD,CAAyF,CACrGhC,WAAY,IACZ6B,KAAM,IAGFP,EAAOU,EAAOJ,EAAPI,CAAY,CACvBG,OAAQ,8BACRC,QAAS,OACTC,WAAY,SACZC,IAAK,MACLC,QAAS"}
@@ -16,7 +16,7 @@ declare class DinoDataViewBase {
16
16
  createPaginationBar: typeof createPaginationBar;
17
17
  createViewMode: typeof createViewMode;
18
18
  createViewModeButtons: () => import("react").FC<import("./view-mode.units").IViewModeProps>;
19
- syncQueryToURL: <T>(params: import("./query-param-url").IViewDataHandlerParams<T, "filter" | "defaultFilter" | "seedKey">) => void;
19
+ syncQueryToURL: <T>(params: import("./query-param-url").IViewDataHandlerParams<T, "filter" | "seedKey" | "defaultFilter">) => void;
20
20
  getQueryFromURL: <T>(params: import("./query-param-url").IViewDataHandlerParams<T, "defaultFilter" | "defaultSeedKey">) => {
21
21
  filter: import("./types").IFilterState<T>;
22
22
  seedKey: string;
@@ -15,7 +15,7 @@ export interface IViewDataHandlerDef<T> {
15
15
  defaultViewMode?: EViewMode;
16
16
  }
17
17
  export type IViewDataHandlerParams<T, K extends keyof IViewDataHandlerDef<T> = keyof IViewDataHandlerDef<T>> = Pick<IViewDataHandlerDef<T>, K>;
18
- export declare const syncQueryToURL: <T>(params: IViewDataHandlerParams<T, "filter" | "defaultFilter" | "seedKey">) => void;
18
+ export declare const syncQueryToURL: <T>(params: IViewDataHandlerParams<T, "filter" | "seedKey" | "defaultFilter">) => void;
19
19
  export declare const getQueryFromURL: <T>(params: IViewDataHandlerParams<T, "defaultFilter" | "defaultSeedKey">) => {
20
20
  filter: IFilterState<T>;
21
21
  seedKey: string;
@@ -1,10 +1,6 @@
1
1
  /// <reference path="./@types/global.d.ts" />
2
- export * from './utils';
3
- export * from './api-context';
4
- export * from './components';
5
- export * from './form';
6
- export * from './hooks';
7
- export * from './redux';
8
- export * from './table';
9
- export * from './table-grid';
10
- export * from './data-view';
2
+ export declare const LIBRARY_INFO: {
3
+ name: string;
4
+ version: string;
5
+ usage: string;
6
+ };
@@ -1,2 +1,2 @@
1
- import{slicedToArray as r,asyncToGenerator as t,typeof as n,regenerator as e,objectSpread2 as o,toArray as a}from"../_virtual/_rollupPluginBabelHelpers.js";import i from"dayjs";var c=function(r){return new Promise((function(t){return setTimeout(t,r)}))},u=function(){var n=t(e().m((function t(n,o){var a,i,u;return e().w((function(t){for(;;)switch(t.n){case 0:return t.n=1,Promise.all([n(),c(o)]);case 1:return a=t.v,i=r(a,1),u=i[0],t.a(2,u)}}),t)})));return function(r,t){return n.apply(this,arguments)}}(),s=function(r){return/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(r)},f=function(r){return/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(r)},l=function(r){return/^(\+?\d{1,4}[\s-]?)?((\(\d{1,4}\))|\d{1,4})[\s-]?\d{1,4}[\s-]?\d{1,9}$/.test((null!=r?r:"").trim())},d=function(r){return/^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/i.test(r)},y=function(r,t){setTimeout((function(){window.scrollTo(o({top:0,left:0,behavior:"smooth"},r))}),t||50)},h=function(){for(var r=arguments.length,t=new Array(r),n=0;n<r;n++)t[n]=arguments[n];return t.join(" ")},v=function(r){return r&&"object"===n(r)&&!Array.isArray(r)},p=function(){for(var r=arguments.length,t=new Array(r),n=0;n<r;n++)t[n]=arguments[n];return t.reduce((function(r,t){return t?(Object.keys(t).forEach((function(n){v(r[n])&&v(t[n])?r[n]=p(r[n],t[n]):r[n]=t[n]})),r):r}),{})},A=function(t){try{return t?Object.entries(t).reduce((function(t,n){var e=r(n,2),o=e[0],a=e[1];return void 0!==a&&(t[o]=a),t}),{}):{}}catch(r){return{}}},m=function(t){if("object"!==n(t)||null===t)return t;var e=Array.isArray(t)?[]:{};return Object.entries(t).forEach((function(t){var o=r(t,2),a=o[0],i=o[1];if(null==i||"string"==typeof i&&""===i.trim()||"number"==typeof i&&isNaN(i)||Array.isArray(i)&&0===i.length||"object"===n(i)&&!Array.isArray(i)&&0===Object.keys(m(i)).length);else if("object"!==n(i)||Array.isArray(i))e[a]=i;else{var c=m(i);Object.keys(c).length>0&&(e[a]=c)}})),e},g=function(r){try{var t=(new TextEncoder).encode(r),n="";return t.forEach((function(r){n+=String.fromCharCode(r)})),btoa(n)}catch(r){return console.error("Error encoding to base64",r),""}},b=function(r){try{for(var t=atob(r),n=new Uint8Array(t.length),e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return(new TextDecoder).decode(n)}catch(r){return void console.error("Error decoding base64",r)}},w=function(r,t){try{if(!r)throw new Error("Value is required!");return JSON.parse(r)}catch(r){return t}},j=function(r){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];try{if(!r)return[];var n=JSON.parse(r);return Array.isArray(n)?n:[]}catch(r){return t}},F=function(r,t){try{return r?parseInt(r):t}catch(r){return t}},E=function(r){return new Promise((function(t,n){var e=new FileReader;e.onload=function(){try{var r=e.result.split(/\r?\n/).filter(Boolean);if(r.length<1)return t([]);var n=r[0].split(",").map((function(r){return r.trim()})),o=r.slice(1).map((function(r){var t=r.split(",").map((function(r){return r.trim()})),e={};return n.forEach((function(r,n){var o;e[r]=null!==(o=t[n])&&void 0!==o?o:""})),e}));t(o)}catch(r){t([])}},e.onerror=function(){n(new Error("Error reading file"))},e.readAsText(r)}))},Y=function(r){return r<1024?r.toFixed(2)+" Kb":r<1048576?(r/1024).toFixed(2)+" Mb":r<1073741824?(r/1048576).toFixed(2)+" Gb":(r/1073741824).toFixed(2)+" Tb"},x=function(t){var n,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"$ ",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";try{n=parseFloat(t),isNaN(n)&&(n=0)}catch(r){n=0}var a=n.toFixed(2).split("."),i=r(a,2),c=i[0],u=i[1],s=c.replace(/\B(?=(\d{3})+(?!\d))/g," "),f=s;return"00"!==u&&(f="".concat(s,".").concat(u)),"".concat(e).concat(f).concat(o)},M=function(r){return r.toLocaleString("en-US")},T=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(!r)return r;var t=Array.from(r),n=a(t),e=n[0],o=n.slice(1);return"".concat(e.toUpperCase()).concat(o.join(""))},O={style1:"DD/MM/YYYY HH:mm",style2:"MMMM D, YYYY",style3:"MM-DD-YYYY"},D=function(r){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"style1";try{if(!r)throw new Error;return i(r).format(O[t])}catch(r){return"unknown"}};export{A as cleanObject,b as decodeBase64,m as deepRemoveEmptyFields,g as encodeBase64,u as fetchDelay,T as formatCapitalizeFirstText,x as formatCurrency,D as formatDatetime,Y as formatFileSize,M as formatNumberWithCommas,s as isGuid,f as isValidEmail,l as isValidPhoneNumber,d as isValidURL,h as mergeClasses,p as mergeObjects,c as sleep,j as tryParseArray,E as tryParseCsvFileToArray,F as tryParseIntRequired,w as tryParseObject,y as windowScrollToTop};
1
+ import{typeof as r,slicedToArray as t,asyncToGenerator as n,regenerator as e,objectSpread2 as o,toArray as a}from"../_virtual/_rollupPluginBabelHelpers.js";import i from"dayjs";var c=function(r){return new Promise((function(t){return setTimeout(t,r)}))},u=function(){var r=n(e().m((function r(n,o){var a,i,u;return e().w((function(r){for(;;)switch(r.n){case 0:return r.n=1,Promise.all([n(),c(o)]);case 1:return a=r.v,i=t(a,1),u=i[0],r.a(2,u)}}),r)})));return function(t,n){return r.apply(this,arguments)}}(),s=function(r){return/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(r)},f=function(r){return/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(r)},l=function(r){return/^(\+?\d{1,4}[\s-]?)?((\(\d{1,4}\))|\d{1,4})[\s-]?\d{1,4}[\s-]?\d{1,9}$/.test((null!=r?r:"").trim())},d=function(r){return/^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/i.test(r)},y=function(r,t){setTimeout((function(){window.scrollTo(o({top:0,left:0,behavior:"smooth"},r))}),t||50)},h=function(){for(var r=arguments.length,t=new Array(r),n=0;n<r;n++)t[n]=arguments[n];return t.join(" ")},v=function(t){return t&&"object"===r(t)&&!Array.isArray(t)},p=function(){for(var r=arguments.length,t=new Array(r),n=0;n<r;n++)t[n]=arguments[n];return t.reduce((function(r,t){return t?(Object.keys(t).forEach((function(n){v(r[n])&&v(t[n])?r[n]=p(r[n],t[n]):r[n]=t[n]})),r):r}),{})},A=function(r){try{return r?Object.entries(r).reduce((function(r,n){var e=t(n,2),o=e[0],a=e[1];return void 0!==a&&(r[o]=a),r}),{}):{}}catch(r){return{}}},m=function(n){if("object"!==r(n)||null===n)return n;var e=Array.isArray(n)?[]:{};return Object.entries(n).forEach((function(n){var o=t(n,2),a=o[0],i=o[1];if(null==i||"string"==typeof i&&""===i.trim()||"number"==typeof i&&isNaN(i)||Array.isArray(i)&&0===i.length||"object"===r(i)&&!Array.isArray(i)&&0===Object.keys(m(i)).length);else if("object"!==r(i)||Array.isArray(i))e[a]=i;else{var c=m(i);Object.keys(c).length>0&&(e[a]=c)}})),e},g=function(r){try{var t=(new TextEncoder).encode(r),n="";return t.forEach((function(r){n+=String.fromCharCode(r)})),btoa(n)}catch(r){return console.error("Error encoding to base64",r),""}},b=function(r){try{for(var t=atob(r),n=new Uint8Array(t.length),e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return(new TextDecoder).decode(n)}catch(r){return void console.error("Error decoding base64",r)}},w=function(r,t){try{if(!r)throw new Error("Value is required!");return JSON.parse(r)}catch(r){return t}},j=function(r){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];try{if(!r)return[];var n=JSON.parse(r);return Array.isArray(n)?n:[]}catch(r){return t}},F=function(r,t){try{return r?parseInt(r):t}catch(r){return t}},E=function(r){return new Promise((function(t,n){var e=new FileReader;e.onload=function(){try{var r=e.result.split(/\r?\n/).filter(Boolean);if(r.length<1)return t([]);var n=r[0].split(",").map((function(r){return r.trim()})),o=r.slice(1).map((function(r){var t=r.split(",").map((function(r){return r.trim()})),e={};return n.forEach((function(r,n){var o;e[r]=null!==(o=t[n])&&void 0!==o?o:""})),e}));t(o)}catch(r){t([])}},e.onerror=function(){n(new Error("Error reading file"))},e.readAsText(r)}))},Y=function(r){return r<1024?r.toFixed(2)+" Kb":r<1048576?(r/1024).toFixed(2)+" Mb":r<1073741824?(r/1048576).toFixed(2)+" Gb":(r/1073741824).toFixed(2)+" Tb"},x=function(r){var n,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"$ ",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";try{n=parseFloat(r),isNaN(n)&&(n=0)}catch(r){n=0}var a=n.toFixed(2).split("."),i=t(a,2),c=i[0],u=i[1],s=c.replace(/\B(?=(\d{3})+(?!\d))/g," "),f=s;return"00"!==u&&(f="".concat(s,".").concat(u)),"".concat(e).concat(f).concat(o)},M=function(r){return r.toLocaleString("en-US")},T=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(!r)return r;var t=Array.from(r),n=a(t),e=n[0],o=n.slice(1);return"".concat(e.toUpperCase()).concat(o.join(""))},O={style1:"DD/MM/YYYY HH:mm",style2:"MMMM D, YYYY",style3:"MM-DD-YYYY"},D=function(r){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"style1";try{if(!r)throw new Error;return i(r).format(O[t])}catch(r){return"unknown"}};export{A as cleanObject,b as decodeBase64,m as deepRemoveEmptyFields,g as encodeBase64,u as fetchDelay,T as formatCapitalizeFirstText,x as formatCurrency,D as formatDatetime,Y as formatFileSize,M as formatNumberWithCommas,s as isGuid,f as isValidEmail,l as isValidPhoneNumber,d as isValidURL,h as mergeClasses,p as mergeObjects,c as sleep,j as tryParseArray,E as tryParseCsvFileToArray,F as tryParseIntRequired,w as tryParseObject,y as windowScrollToTop};
2
2
  //# sourceMappingURL=helpers.js.map
@@ -0,0 +1,2 @@
1
+ export{cleanObject,decodeBase64,deepRemoveEmptyFields,encodeBase64,fetchDelay,formatCapitalizeFirstText,formatCurrency,formatDatetime,formatFileSize,formatNumberWithCommas,isGuid,isValidEmail,isValidPhoneNumber,isValidURL,mergeClasses,mergeObjects,sleep,tryParseArray,tryParseCsvFileToArray,tryParseIntRequired,tryParseObject,windowScrollToTop}from"./helpers.js";import"./dayjs-config.js";export{default as JObject}from"./json-object.js";export{MFEventProvider,useMFEvent}from"./mfe-events.js";export{QueryParam}from"./query-param.js";export{default as dayjsCustom}from"dayjs";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,66 +1,137 @@
1
- {
2
- "name": "dinocollab-core",
3
- "version": "1.1.15",
4
- "description": "",
5
- "main": "dist/index.js",
6
- "module": "dist/index.js",
7
- "types": "dist/types/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "import": "./dist/index.js",
11
- "types": "./dist/types/index.d.ts"
12
- }
13
- },
14
- "files": [
15
- "dist"
16
- ],
17
- "scripts": {
18
- "build": "npx rimraf dist && rollup -c",
19
- "build:watch": "rollup -c -w"
20
- },
21
- "keywords": [],
22
- "author": "",
23
- "license": "ISC",
24
- "peerDependencies": {
25
- "@emotion/react": "11.14.0",
26
- "@emotion/styled": "11.14.0",
27
- "@mui/icons-material": "5.17.1",
28
- "@mui/material": "5.17.1",
29
- "@mui/x-data-grid": "6.20.4",
30
- "@mui/x-date-pickers": "6.20.2",
31
- "axios": "1.8.3",
32
- "clipboard-copy": "4.0.1",
33
- "dayjs": "1.11.5",
34
- "dinocollab-http-service": "1.1.5",
35
- "dotenv": "16.4.7",
36
- "framer-motion": "12.12.1",
37
- "query-string": "9.1.1",
38
- "react": "18.3.1",
39
- "react-dom": "18.3.1",
40
- "react-quill": "2.0.0",
41
- "react-router-dom": "6.30.0"
42
- },
43
- "devDependencies": {
44
- "@babel/core": "7.27.1",
45
- "@babel/preset-env": "7.27.2",
46
- "@babel/preset-react": "7.27.1",
47
- "@babel/preset-typescript": "7.27.1",
48
- "@rollup/plugin-babel": "6.0.4",
49
- "@rollup/plugin-commonjs": "28.0.3",
50
- "@rollup/plugin-node-resolve": "16.0.1",
51
- "@rollup/plugin-typescript": "12.1.2",
52
- "@rollup/plugin-url": "8.0.2",
53
- "@types/node": "16.18.126",
54
- "@types/react": "18.3.20",
55
- "@types/react-dom": "18.3.5",
56
- "babel-preset-react": "6.24.1",
57
- "babel-preset-typescript": "7.0.0-alpha.19",
58
- "rollup": "4.41.0",
59
- "rollup-plugin-copy": "3.5.0",
60
- "rollup-plugin-peer-deps-external": "2.2.4",
61
- "rollup-plugin-postcss": "4.0.2",
62
- "rollup-plugin-terser": "7.0.2",
63
- "tslib": "2.8.1",
64
- "typescript": "4.9.5"
65
- }
66
- }
1
+ {
2
+ "name": "dinocollab-core",
3
+ "version": "2.0.0",
4
+ "description": "",
5
+ "main": "dist/index.js",
6
+ "module": "dist/index.js",
7
+ "types": "dist/types/index.d.ts",
8
+ "sideEffects": false,
9
+ "typesVersions": {
10
+ "*": {
11
+ "redux": [
12
+ "./dist/types/redux/index.d.ts"
13
+ ],
14
+ "table": [
15
+ "./dist/types/table/index.d.ts"
16
+ ],
17
+ "table-grid": [
18
+ "./dist/types/table-grid/index.d.ts"
19
+ ],
20
+ "form": [
21
+ "./dist/types/form/index.d.ts"
22
+ ],
23
+ "data-view": [
24
+ "./dist/types/data-view/index.d.ts"
25
+ ],
26
+ "components": [
27
+ "./dist/types/components/index.d.ts"
28
+ ],
29
+ "api-context": [
30
+ "./dist/types/api-context/index.d.ts"
31
+ ],
32
+ "hooks": [
33
+ "./dist/types/hooks/index.d.ts"
34
+ ],
35
+ "utils": [
36
+ "./dist/types/utils/index.d.ts"
37
+ ]
38
+ }
39
+ },
40
+ "exports": {
41
+ ".": {
42
+ "import": "./dist/index.js",
43
+ "types": "./dist/types/index.d.ts"
44
+ },
45
+ "./redux": {
46
+ "import": "./dist/redux/index.js",
47
+ "types": "./dist/types/redux/index.d.ts"
48
+ },
49
+ "./table": {
50
+ "import": "./dist/table/index.js",
51
+ "types": "./dist/types/table/index.d.ts"
52
+ },
53
+ "./table-grid": {
54
+ "import": "./dist/table-grid/index.js",
55
+ "types": "./dist/types/table-grid/index.d.ts"
56
+ },
57
+ "./form": {
58
+ "import": "./dist/form/index.js",
59
+ "types": "./dist/types/form/index.d.ts"
60
+ },
61
+ "./data-view": {
62
+ "import": "./dist/data-view/index.js",
63
+ "types": "./dist/types/data-view/index.d.ts"
64
+ },
65
+ "./components": {
66
+ "import": "./dist/components/index.js",
67
+ "types": "./dist/types/components/index.d.ts"
68
+ },
69
+ "./api-context": {
70
+ "import": "./dist/api-context/index.js",
71
+ "types": "./dist/types/api-context/index.d.ts"
72
+ },
73
+ "./hooks": {
74
+ "import": "./dist/hooks/index.js",
75
+ "types": "./dist/types/hooks/index.d.ts"
76
+ },
77
+ "./utils": {
78
+ "import": "./dist/utils/index.js",
79
+ "types": "./dist/types/utils/index.d.ts"
80
+ }
81
+ },
82
+ "files": [
83
+ "dist"
84
+ ],
85
+ "scripts": {
86
+ "build": "npx rimraf dist && rollup -c",
87
+ "build:watch": "rollup -c -w",
88
+ "build:analyze": "npx rimraf dist && rollup -c",
89
+ "calc-size": "node calc-build-size.js"
90
+ },
91
+ "keywords": [],
92
+ "author": "",
93
+ "license": "ISC",
94
+ "peerDependencies": {
95
+ "@emotion/react": "11.14.0",
96
+ "@emotion/styled": "11.14.0",
97
+ "@mui/icons-material": "5.17.1",
98
+ "@mui/material": "5.17.1",
99
+ "@mui/x-data-grid": "6.20.4",
100
+ "@mui/x-date-pickers": "6.20.2",
101
+ "axios": "1.8.3",
102
+ "clipboard-copy": "4.0.1",
103
+ "dayjs": "1.11.5",
104
+ "dinocollab-http-service": "1.1.5",
105
+ "dotenv": "16.4.7",
106
+ "framer-motion": "12.12.1",
107
+ "query-string": "9.1.1",
108
+ "react": "18.3.1",
109
+ "react-dom": "18.3.1",
110
+ "react-quill": "2.0.0",
111
+ "react-router-dom": "6.30.0"
112
+ },
113
+ "devDependencies": {
114
+ "@babel/core": "7.27.1",
115
+ "@babel/preset-env": "7.27.2",
116
+ "@babel/preset-react": "7.27.1",
117
+ "@babel/preset-typescript": "7.27.1",
118
+ "@rollup/plugin-babel": "6.0.4",
119
+ "@rollup/plugin-commonjs": "28.0.3",
120
+ "@rollup/plugin-node-resolve": "16.0.1",
121
+ "@rollup/plugin-typescript": "12.1.2",
122
+ "@rollup/plugin-url": "8.0.2",
123
+ "@types/node": "16.18.126",
124
+ "@types/react": "18.3.20",
125
+ "@types/react-dom": "18.3.5",
126
+ "babel-preset-react": "6.24.1",
127
+ "babel-preset-typescript": "7.0.0-alpha.19",
128
+ "rollup": "4.41.0",
129
+ "rollup-plugin-copy": "3.5.0",
130
+ "rollup-plugin-peer-deps-external": "2.2.4",
131
+ "rollup-plugin-postcss": "4.0.2",
132
+ "rollup-plugin-terser": "7.0.2",
133
+ "rollup-plugin-visualizer": "6.0.3",
134
+ "tslib": "2.8.1",
135
+ "typescript": "4.9.5"
136
+ }
137
+ }