dinocollab-core 1.0.13 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export{default as ApiPopover,ApiPopoverContext,mapApiPopoverContext,withApiPopoverContext}from"./api-context/popover.js";export{AlertDialog,default as AlertGlobal,ApiAlertContext}from"./api-context/alert-global.js";export{default as DrawerGlobal}from"./api-context/drawer-global.js";export{default as GlobalModal,GlobalModalContext,mapGlobalModalContext,withApiGlobalModalConsumerContext,withApiGlobalModalContext}from"./api-context/global-modal.js";export{default as PopoverGlobal,PopoverGlobalApi,PopoverGlobalContext,PopoverGlobalProvider,mapPopoverGlobalContext,withPopoverGlobalContext}from"./api-context/popover-global.js";export{default as Breadcrumbs}from"./components/breadcrumbs.js";export{LoadingButton}from"./components/buttons.js";export{default as CopyToClipboard}from"./components/copy-to-clipboard.js";export{default as CreateMultiSelectDropdown}from"./components/create.multi-select-dropdown.js";export{default as ImageWithFallback}from"./components/image-with-fallback.js";export{default as HelpTooltip,HelpTooltipWrap}from"./components/help-tooltip.js";export{default as TextEditorPreview}from"./components/text-editor.preview.js";export{default as TextEditor,textEditorClasses}from"./components/text-editor.js";export{default as CreateFilterBar}from"./filter-bar/create.filter-bar.js";export{EFieldValidate,ESearchMatch}from"./filter-bar/types.js";export{default as FormValidator,SingleRuleValidate,createFormValidator,mapRuleOptions}from"./form/validator.js";export{default as DinoForm}from"./form/dino-form.js";export{convertFormDataToJson,getErrorMessage}from"./form/helper.js";export{useCheckScrolled,useDebounce}from"./hooks/index.js";export{ELazyStatus}from"./redux/types.js";export{default as DinoRedux}from"./redux/dino.js";export{default as CreateHocLazy,EmptyComponent,defaultOptionHocLazy}from"./redux/create.hoc-lazy.js";export{ELogic,EOperator,EOrder}from"./table/model-filter.js";import"react/jsx-runtime";import"react";import"@mui/material";import"@mui/icons-material/Edit";import"@mui/icons-material/Delete";export{decodeBase64,encodeBase64,fetchDelay,formatCapitalizeFirstText,formatCurrency,formatDatetime,formatFileSize,formatNumberWithCommas,mergeClasses,mergeObjects,sleep,tryParseArray,tryParseIntRequired,tryParseObject,windowScrollToTop}from"./utils/helpers.js";import"./utils/dayjs-config.js";export{default as JObject}from"./utils/json-object.js";export{MFEventProvider,useMFEvent}from"./utils/mfe-events.js";export{QueryParam}from"./utils/query-param.js";export{default as CreateTable}from"./table/create.table.js";export{default as DinoTable}from"./table/dino.js";export{dinoTableClasses}from"./table/helpers.js";export{default as DinoTableGrid}from"./table-grid/dino.js";export{default as dayjsCustom}from"dayjs";
1
+ export{default as ApiPopover,ApiPopoverContext,mapApiPopoverContext,withApiPopoverContext}from"./api-context/popover.js";export{AlertDialog,default as AlertGlobal,ApiAlertContext}from"./api-context/alert-global.js";export{default as DrawerGlobal}from"./api-context/drawer-global.js";export{default as GlobalModal,GlobalModalContext,mapGlobalModalContext,withApiGlobalModalConsumerContext,withApiGlobalModalContext}from"./api-context/global-modal.js";export{default as PopoverGlobal,PopoverGlobalApi,PopoverGlobalContext,PopoverGlobalProvider,mapPopoverGlobalContext,withPopoverGlobalContext}from"./api-context/popover-global.js";export{default as Breadcrumbs}from"./components/breadcrumbs.js";export{LoadingButton}from"./components/buttons.js";export{default as CopyToClipboard}from"./components/copy-to-clipboard.js";export{default as CreateMultiSelectDropdown}from"./components/create.multi-select-dropdown.js";export{default as ImageWithFallback}from"./components/image-with-fallback.js";export{default as HelpTooltip,HelpTooltipWrap}from"./components/help-tooltip.js";export{default as TextEditorPreview}from"./components/text-editor.preview.js";export{default as TextEditor,textEditorClasses}from"./components/text-editor.js";export{default as CreateFilterBar}from"./filter-bar/create.filter-bar.js";export{EFieldValidate,ESearchMatch}from"./filter-bar/types.js";export{default as FormValidator,SingleRuleValidate,createFormValidator,mapRuleOptions}from"./form/validator.js";export{default as DinoForm}from"./form/dino-form.js";export{convertFormDataToJson,getErrorMessage}from"./form/helper.js";export{useCheckScrolled,useDebounce}from"./hooks/index.js";export{ELazyStatus}from"./redux/types.js";export{default as DinoRedux}from"./redux/dino.js";export{default as CreateHocLazy,EmptyComponent,defaultOptionHocLazy}from"./redux/create.hoc-lazy.js";export{ELogic,EOperator,EOrder}from"./table/model-filter.js";import"react/jsx-runtime";import"react";import"@mui/material";import"@mui/icons-material/Edit";import"@mui/icons-material/Delete";export{decodeBase64,encodeBase64,fetchDelay,formatCapitalizeFirstText,formatCurrency,formatDatetime,formatFileSize,formatNumberWithCommas,mergeClasses,mergeObjects,sleep,tryParseArray,tryParseIntRequired,tryParseObject,windowScrollToTop}from"./utils/helpers.js";import"./utils/dayjs-config.js";export{default as JObject}from"./utils/json-object.js";export{MFEventProvider,useMFEvent}from"./utils/mfe-events.js";export{QueryParam}from"./utils/query-param.js";export{default as CreateTable}from"./table/create.table.js";export{default as DinoTable}from"./table/dino.js";export{dinoTableClasses}from"./table/helpers.js";export{default as DinoTableGrid}from"./table-grid/dino.js";export{CreateTableGridItemActions}from"./table-grid/item-actions.js";export{default as dayjsCustom}from"dayjs";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.table-grid.js","sources":["../../src/table-grid/create.table-grid.tsx"],"sourcesContent":["import React, { Component, ReactNode } from 'react'\r\nimport { alpha, Box, CircularProgress, colors, Divider, Fade, Grid, styled, TablePagination, Typography } from '@mui/material'\r\nimport { mergeObjects } from '../utils'\r\nimport { tableGridClasses } from './helpers'\r\nimport { CreateTableGridItemActions } from './item-actions'\r\nimport { GlobalModal, PopoverGlobal } from '../api-context'\r\nimport { CreateFilterBar, IFilterState } from '../filter-bar'\r\nimport { TableGridFilter, PaginationModel, TableGridParams, TableGridProps, TableGridInnerSlots } from './types'\r\nimport ToolbarPannelDefault from './toolbar-pannel'\r\n\r\nfunction CreateTableGrid<T extends object>(params: TableGridParams<T>): React.ComponentType<TableGridProps<T>> {\r\n const FilterBarInstance = CreateFilterBar<T>(params.filterBarConfig ?? { fields: {} })\r\n const ItemActions = CreateTableGridItemActions<T>()\r\n\r\n class TableGrid extends Component<TableGridProps<T>> {\r\n defaultPagination: PaginationModel = { page: 0, pageSize: 10 }\r\n private filterStateStore: TableGridFilter<T> = { pagination: this.defaultPagination }\r\n get filterState(): TableGridFilter<T> {\r\n return this.props.filter ?? this.filterStateStore\r\n }\r\n\r\n get slots(): TableGridInnerSlots<T> {\r\n const obj = mergeObjects(params.slots, this.props.slots)\r\n return {\r\n ...obj,\r\n TableGridItem: this.props.slots?.item ?? params.item ?? (() => <ItemDefault />),\r\n ToolbarPannel: this.props.slots?.toolbar ?? params.slots?.toolbar ?? ToolbarPannelDefault\r\n }\r\n }\r\n\r\n get mergeConfig() {\r\n return {\r\n size: params.size ?? { xs: 12, sm: 6, md: 4 }\r\n }\r\n }\r\n\r\n setFilterState = (value: Partial<TableGridFilter<T>>) => {\r\n try {\r\n if (!!value.details) {\r\n this.filterStateStore = { pagination: this.filterStateStore.pagination, ...value }\r\n } else {\r\n this.filterStateStore = mergeObjects<any>({}, this.filterState, value)\r\n }\r\n this.props.onFilterChange && this.props.onFilterChange(this.filterStateStore)\r\n this.forceUpdate()\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n\r\n render() {\r\n const { TableGridItem, ToolbarPannel, actionProps } = this.slots\r\n const items = this.getItems()\r\n return this.preRender(\r\n <Wrap className={this.getRootClases()}>\r\n <ToolbarPannel title={params.title} {...this.slots.toolbarProps} />\r\n <FilterBarInstance value={this.filterState} onChange={this.handleFilterChange} />\r\n <div className={tableGridClasses.content}>\r\n <div className={[tableGridClasses.contentInner, tableGridClasses.contentPosition].join(' ')}>\r\n <Grid container spacing={2} {...this.slots.gridContainer}>\r\n {items.map((item, index) => (\r\n <Grid key={params.getSelecterId(item).toString() + index} item {...this.mergeConfig.size} {...this.slots.gridItem}>\r\n <div className={tableGridClasses.item}>\r\n <TableGridItem value={item} />\r\n <Box className={tableGridClasses.actions}>\r\n <ItemActions value={item} {...actionProps} />\r\n </Box>\r\n </div>\r\n </Grid>\r\n ))}\r\n </Grid>\r\n </div>\r\n <Fade in={this.filterState.loading} unmountOnExit>\r\n <div className={[tableGridClasses.overlay, tableGridClasses.contentPosition].join(' ')}>\r\n <CircularProgress size={36} />\r\n </div>\r\n </Fade>\r\n <Fade in={items.length < 1 && !this.filterState.loading} unmountOnExit>\r\n <div className={[tableGridClasses.noItems, tableGridClasses.contentPosition].join(' ')}>\r\n <Typography variant='body2'>No items data</Typography>\r\n </div>\r\n </Fade>\r\n </div>\r\n <Divider />\r\n <TablePagination\r\n component='div'\r\n count={this.props.data.totalItems ?? 0}\r\n page={this.filterState.pagination.page}\r\n onPageChange={this.handleChangePage}\r\n rowsPerPage={this.filterState.pagination.pageSize}\r\n onRowsPerPageChange={this.handleChangeRowsPerPage}\r\n slotProps={{ select: { MenuProps: { disableScrollLock: true } } }}\r\n />\r\n </Wrap>\r\n )\r\n }\r\n\r\n preRender = (children?: ReactNode) => (\r\n <GlobalModal>\r\n <PopoverGlobal.Provider />\r\n {children}\r\n </GlobalModal>\r\n )\r\n\r\n getRootClases = () => {\r\n const classes = [tableGridClasses.root]\r\n if (this.filterState.loading) classes.push(tableGridClasses.loading)\r\n return classes.join(' ')\r\n }\r\n\r\n getItems = () => {\r\n return this.props.data.items ?? []\r\n }\r\n\r\n handleFilterChange = (filterStateChange: IFilterState<T>) => {\r\n this.setFilterState(filterStateChange)\r\n }\r\n\r\n handleChangePage = (_: React.MouseEvent<HTMLButtonElement, MouseEvent> | null, page: number) => {\r\n // this.setState((prev) => ({ pagination: { ...prev.pagination, page } }))\r\n this.setFilterState({ pagination: { page, pageSize: this.filterState.pagination.pageSize } })\r\n }\r\n\r\n handleChangeRowsPerPage: React.ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement> = (event) => {\r\n // this.setState({ pagination: { page: 0, pageSize: parseInt(event.target.value, 10) } })\r\n this.setFilterState({ pagination: { page: 0, pageSize: parseInt(event.target.value, 10) } })\r\n }\r\n }\r\n\r\n return TableGrid\r\n}\r\n\r\nexport default CreateTableGrid\r\n\r\nconst Wrap = styled(Box)({\r\n flex: 1,\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n [`.${tableGridClasses.content}`]: {\r\n position: 'relative',\r\n flex: 1\r\n },\r\n [`.${tableGridClasses.contentPosition}`]: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%'\r\n },\r\n [`.${tableGridClasses.contentInner}`]: {\r\n overflowY: 'auto',\r\n padding: '10px 5px'\r\n },\r\n [`.${tableGridClasses.overlay}`]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n background: alpha(colors.common.white, 0.4),\r\n zIndex: 10\r\n },\r\n [`.${tableGridClasses.noItems}`]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n },\r\n [`.${tableGridClasses.item}`]: {\r\n position: 'relative'\r\n },\r\n [`.${tableGridClasses.actions}`]: {\r\n position: 'absolute',\r\n top: '5px',\r\n right: '5px',\r\n zIndex: 5,\r\n display: 'inline-block'\r\n }\r\n})\r\n\r\nconst ItemDefault = styled(Box)({\r\n width: '100%',\r\n paddingBottom: '100%',\r\n background: colors.grey[600]\r\n})\r\n"],"names":["CreateTableGrid","params","_params$filterBarConf","FilterBarInstance","CreateFilterBar","filterBarConfig","fields","ItemActions","CreateTableGridItemActions","TableGrid","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","page","pageSize","pagination","defaultPagination","value","details","filterStateStore","_objectSpread","mergeObjects","filterState","props","onFilterChange","forceUpdate","error","console","log","children","_jsxs","GlobalModal","_jsx","PopoverGlobal","Provider","classes","tableGridClasses","root","loading","push","join","_this$props$data$item","data","items","filterStateChange","setFilterState","_","event","parseInt","target","_inherits","Component","_createClass","key","get","_this$props$filter","filter","_ref","_this$props$slots$ite","_this$props$slots","_ref2","_this$props$slots$too","_this$props$slots2","_params$slots","obj","slots","TableGridItem","item","ItemDefault","ToolbarPannel","toolbar","ToolbarPannelDefault","_params$size","size","xs","sm","md","_this$props$data$tota","_this2","_this$slots","actionProps","getItems","preRender","Wrap","className","getRootClases","title","toolbarProps","onChange","handleFilterChange","content","contentInner","contentPosition","Grid","container","spacing","gridContainer","map","index","mergeConfig","gridItem","Box","actions","getSelecterId","toString","Fade","in","unmountOnExit","overlay","CircularProgress","noItems","Typography","variant","Divider","TablePagination","component","count","totalItems","onPageChange","handleChangePage","rowsPerPage","onRowsPerPageChange","handleChangeRowsPerPage","slotProps","select","MenuProps","disableScrollLock","styled","flex","height","display","flexDirection","position","top","left","width","overflowY","padding","alignItems","justifyContent","background","alpha","colors","common","white","zIndex","right","paddingBottom","grey"],"mappings":"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"}
1
+ {"version":3,"file":"create.table-grid.js","sources":["../../src/table-grid/create.table-grid.tsx"],"sourcesContent":["import React, { Component, ReactNode } from 'react'\r\nimport { alpha, Box, CircularProgress, colors, Divider, Fade, Grid, styled, TablePagination, Typography } from '@mui/material'\r\nimport { mergeObjects } from '../utils'\r\nimport { tableGridClasses } from './helpers'\r\nimport { CreateTableGridItemActions } from './item-actions'\r\nimport { GlobalModal, PopoverGlobal } from '../api-context'\r\nimport { CreateFilterBar, IFilterState } from '../filter-bar'\r\nimport { ITableGridFilter, IPaginationModel, ITableGridParams, ITableGridProps, ITableGridInnerSlots } from './types'\r\nimport ToolbarPannelDefault from './toolbar-pannel'\r\n\r\nfunction CreateTableGrid<T extends object>(params: ITableGridParams<T>): React.ComponentType<ITableGridProps<T>> {\r\n const FilterBarInstance = CreateFilterBar<T>(params.filterBarConfig ?? { fields: {} })\r\n const ItemActions = CreateTableGridItemActions<T>()\r\n\r\n class TableGrid extends Component<ITableGridProps<T>> {\r\n defaultPagination: IPaginationModel = { page: 0, pageSize: 10 }\r\n private filterStateStore: ITableGridFilter<T> = { pagination: this.defaultPagination }\r\n get filterState(): ITableGridFilter<T> {\r\n return this.props.filter ?? this.filterStateStore\r\n }\r\n\r\n get slots(): ITableGridInnerSlots<T> {\r\n const obj = mergeObjects(params.slots, this.props.slots)\r\n return {\r\n ...obj,\r\n TableGridItem: this.props.slots?.item ?? params.item ?? (() => <ItemDefault />),\r\n ToolbarPannel: this.props.slots?.toolbar ?? params.slots?.toolbar ?? ToolbarPannelDefault\r\n }\r\n }\r\n\r\n get mergeConfig() {\r\n return {\r\n size: params.size ?? { xs: 12, sm: 6, md: 4 }\r\n }\r\n }\r\n\r\n setFilterState = (value: Partial<ITableGridFilter<T>>) => {\r\n try {\r\n if (!!value.details) {\r\n this.filterStateStore = { pagination: this.filterStateStore.pagination, ...value }\r\n } else {\r\n this.filterStateStore = mergeObjects<any>({}, this.filterState, value)\r\n }\r\n this.props.onFilterChange && this.props.onFilterChange(this.filterStateStore)\r\n this.forceUpdate()\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n\r\n render() {\r\n const { TableGridItem, ToolbarPannel, actionProps } = this.slots\r\n const items = this.getItems()\r\n return this.preRender(\r\n <Wrap className={this.getRootClases()}>\r\n <ToolbarPannel title={params.title} {...this.slots.toolbarProps} />\r\n <FilterBarInstance value={this.filterState} onChange={this.handleFilterChange} />\r\n <div className={tableGridClasses.content}>\r\n <div className={[tableGridClasses.contentInner, tableGridClasses.contentPosition].join(' ')}>\r\n <Grid container spacing={2} {...this.slots.gridContainer}>\r\n {items.map((item, index) => (\r\n <Grid key={params.getSelecterId(item).toString() + index} item {...this.mergeConfig.size} {...this.slots.gridItem}>\r\n <div className={tableGridClasses.item}>\r\n <TableGridItem value={item} />\r\n <Box className={tableGridClasses.actions}>\r\n <ItemActions value={item} {...actionProps} />\r\n </Box>\r\n </div>\r\n </Grid>\r\n ))}\r\n </Grid>\r\n </div>\r\n <Fade in={this.filterState.loading} unmountOnExit>\r\n <div className={[tableGridClasses.overlay, tableGridClasses.contentPosition].join(' ')}>\r\n <CircularProgress size={36} />\r\n </div>\r\n </Fade>\r\n <Fade in={items.length < 1 && !this.filterState.loading} unmountOnExit>\r\n <div className={[tableGridClasses.noItems, tableGridClasses.contentPosition].join(' ')}>\r\n <Typography variant='body2'>No items data</Typography>\r\n </div>\r\n </Fade>\r\n </div>\r\n <Divider />\r\n <TablePagination\r\n component='div'\r\n count={this.props.data.totalItems ?? 0}\r\n page={this.filterState.pagination.page}\r\n onPageChange={this.handleChangePage}\r\n rowsPerPage={this.filterState.pagination.pageSize}\r\n onRowsPerPageChange={this.handleChangeRowsPerPage}\r\n slotProps={{ select: { MenuProps: { disableScrollLock: true } } }}\r\n />\r\n </Wrap>\r\n )\r\n }\r\n\r\n preRender = (children?: ReactNode) => (\r\n <GlobalModal>\r\n <PopoverGlobal.Provider />\r\n {children}\r\n </GlobalModal>\r\n )\r\n\r\n getRootClases = () => {\r\n const classes = [tableGridClasses.root]\r\n if (this.filterState.loading) classes.push(tableGridClasses.loading)\r\n return classes.join(' ')\r\n }\r\n\r\n getItems = () => {\r\n return this.props.data.items ?? []\r\n }\r\n\r\n handleFilterChange = (filterStateChange: IFilterState<T>) => {\r\n this.setFilterState(filterStateChange)\r\n }\r\n\r\n handleChangePage = (_: React.MouseEvent<HTMLButtonElement, MouseEvent> | null, page: number) => {\r\n // this.setState((prev) => ({ pagination: { ...prev.pagination, page } }))\r\n this.setFilterState({ pagination: { page, pageSize: this.filterState.pagination.pageSize } })\r\n }\r\n\r\n handleChangeRowsPerPage: React.ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement> = (event) => {\r\n // this.setState({ pagination: { page: 0, pageSize: parseInt(event.target.value, 10) } })\r\n this.setFilterState({ pagination: { page: 0, pageSize: parseInt(event.target.value, 10) } })\r\n }\r\n }\r\n\r\n return TableGrid\r\n}\r\n\r\nexport default CreateTableGrid\r\n\r\nconst Wrap = styled(Box)({\r\n flex: 1,\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n [`.${tableGridClasses.content}`]: {\r\n position: 'relative',\r\n flex: 1\r\n },\r\n [`.${tableGridClasses.contentPosition}`]: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%'\r\n },\r\n [`.${tableGridClasses.contentInner}`]: {\r\n overflowY: 'auto',\r\n padding: '10px 5px'\r\n },\r\n [`.${tableGridClasses.overlay}`]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n background: alpha(colors.common.white, 0.4),\r\n zIndex: 10\r\n },\r\n [`.${tableGridClasses.noItems}`]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n },\r\n [`.${tableGridClasses.item}`]: {\r\n position: 'relative'\r\n },\r\n [`.${tableGridClasses.actions}`]: {\r\n position: 'absolute',\r\n top: '5px',\r\n right: '5px',\r\n zIndex: 5,\r\n display: 'inline-block'\r\n }\r\n})\r\n\r\nconst ItemDefault = styled(Box)({\r\n width: '100%',\r\n paddingBottom: '100%',\r\n background: colors.grey[600]\r\n})\r\n"],"names":["CreateTableGrid","params","_params$filterBarConf","FilterBarInstance","CreateFilterBar","filterBarConfig","fields","ItemActions","CreateTableGridItemActions","TableGrid","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","page","pageSize","pagination","defaultPagination","value","details","filterStateStore","_objectSpread","mergeObjects","filterState","props","onFilterChange","forceUpdate","error","console","log","children","_jsxs","GlobalModal","_jsx","PopoverGlobal","Provider","classes","tableGridClasses","root","loading","push","join","_this$props$data$item","data","items","filterStateChange","setFilterState","_","event","parseInt","target","_inherits","Component","_createClass","key","get","_this$props$filter","filter","_ref","_this$props$slots$ite","_this$props$slots","_ref2","_this$props$slots$too","_this$props$slots2","_params$slots","obj","slots","TableGridItem","item","ItemDefault","ToolbarPannel","toolbar","ToolbarPannelDefault","_params$size","size","xs","sm","md","_this$props$data$tota","_this2","_this$slots","actionProps","getItems","preRender","Wrap","className","getRootClases","title","toolbarProps","onChange","handleFilterChange","content","contentInner","contentPosition","Grid","container","spacing","gridContainer","map","index","mergeConfig","gridItem","Box","actions","getSelecterId","toString","Fade","in","unmountOnExit","overlay","CircularProgress","noItems","Typography","variant","Divider","TablePagination","component","count","totalItems","onPageChange","handleChangePage","rowsPerPage","onRowsPerPageChange","handleChangeRowsPerPage","slotProps","select","MenuProps","disableScrollLock","styled","flex","height","display","flexDirection","position","top","left","width","overflowY","padding","alignItems","justifyContent","background","alpha","colors","common","white","zIndex","right","paddingBottom","grey"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"item-actions.js","sources":["../../src/table-grid/item-actions.tsx"],"sourcesContent":["import React, { Component, ComponentType, ReactNode } from 'react'\r\nimport { Box, colors, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemProps, ListItemText, styled } from '@mui/material'\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport MoreVertIcon from '@mui/icons-material/MoreVert'\r\nimport DeleteOutlineIcon from '@mui/icons-material/DeleteOutline'\r\nimport { ClosePopover, GlobalModalState, mapGlobalModalContext, PopoverGlobal } from '../api-context'\r\n\r\nexport type TableGridItemActionType = 'Edit' | 'Delete'\r\n\r\nconst mapIcons: { [key in TableGridItemActionType]: ReactNode } = {\r\n Edit: <EditIcon fontSize='small' color='primary' />,\r\n Delete: <DeleteOutlineIcon fontSize='small' color='error' />\r\n}\r\n\r\nexport interface TableGridItemActionsProps<T> {\r\n value: T\r\n}\r\n\r\ntype FormRenderFunc<T> = (value: T) => React.ReactNode\r\n\r\ninterface ListItemDef<T> {\r\n name: string\r\n icon?: ReactNode\r\n /** Whether this item should trigger a close action when clicked. @default true */\r\n closableOnClick?: boolean\r\n /** Handler called when item is clicked */\r\n onClick?: (event: React.MouseEvent<HTMLLIElement, MouseEvent>, value: T) => void\r\n listItemProps?: ListItemProps\r\n /**\r\n * Optional custom ReactNode to override the entire ListItem UI.\r\n * If provided, this will be rendered instead of the default ListItem structure\r\n * (icon + text + click behavior).\r\n */\r\n override?: ComponentType<{ onClose?: ClosePopover }>\r\n}\r\n\r\nexport interface TableGridItemActionsConfig<T> {\r\n formEdit?: FormRenderFunc<T>\r\n formDelete?: FormRenderFunc<T>\r\n buttonEditConfig?: GlobalModalState\r\n buttonDeleteConfig?: GlobalModalState\r\n menuList?: {\r\n before?: SingleOrArray<ListItemDef<T>>\r\n after?: ListItemDef<T>\r\n }\r\n}\r\n\r\ninterface IProps<T> extends TableGridItemActionsProps<T>, TableGridItemActionsConfig<T> {}\r\n\r\nexport function CreateTableGridItemActions<T>() {\r\n class TableGridItemActions extends Component<IProps<T>> {\r\n render() {\r\n if (!this.isVisible()) return <></>\r\n return (\r\n <Wrap>\r\n <IconButton\r\n size='small'\r\n onClick={(e) => {\r\n PopoverGlobal.Api.open({\r\n anchorEl: e.currentTarget,\r\n popoverProps: { anchorOrigin: { vertical: 'top', horizontal: 'right' }, transformOrigin: { vertical: 'top', horizontal: 'right' } },\r\n content: (\r\n <List>\r\n {this.renderItems(this.props.menuList?.before)}\r\n {this.renderItemWithForm('Edit', this.props.formEdit, this.props.buttonEditConfig)}\r\n {this.renderItemWithForm('Delete', this.props.formDelete, this.props.buttonEditConfig ?? { backdropActivated: true })}\r\n {this.renderItems(this.props.menuList?.after)}\r\n </List>\r\n )\r\n })\r\n }}\r\n >\r\n <MoreVertIcon fontSize='small' />\r\n </IconButton>\r\n </Wrap>\r\n )\r\n }\r\n\r\n isVisible = () => {\r\n return !!this.props.formEdit || !!this.props.formDelete\r\n }\r\n\r\n renderItems = (value?: SingleOrArray<ListItemDef<T>>) => {\r\n if (!value) return <></>\r\n const list = Array.isArray(value) ? value : [value]\r\n return list.map((item, index) => {\r\n const key = item.name + index\r\n const { override: Override } = item\r\n if (Override) return <Override key={key} onClose={PopoverGlobal.Api.close} />\r\n return (\r\n <ListItem\r\n key={key}\r\n disablePadding\r\n sx={{ minWidth: '170px' }}\r\n onClick={(e) => {\r\n if (item.closableOnClick !== false) PopoverGlobal.Api.close()\r\n item.onClick && item.onClick(e, this.props.value)\r\n }}\r\n {...item.listItemProps}\r\n >\r\n <ListItemButton>\r\n <ListItemIcon>{item.icon}</ListItemIcon>\r\n <ListItemText primary={item.name} />\r\n </ListItemButton>\r\n </ListItem>\r\n )\r\n })\r\n }\r\n\r\n renderItemWithForm = (name: TableGridItemActionType, form?: FormRenderFunc<T>, globalState?: GlobalModalState) => {\r\n if (!form) return <></>\r\n return mapGlobalModalContext((context) => (\r\n <ListItem\r\n disablePadding\r\n sx={{ minWidth: '170px' }}\r\n onClick={() => {\r\n PopoverGlobal.Api.close()\r\n context.show({ renderContent: () => form(this.props.value), ...globalState })\r\n }}\r\n >\r\n <ListItemButton>\r\n <ListItemIcon>{mapIcons[name]}</ListItemIcon>\r\n <ListItemText primary={name} />\r\n </ListItemButton>\r\n </ListItem>\r\n ))\r\n }\r\n }\r\n return TableGridItemActions\r\n}\r\n\r\nconst Wrap = styled(Box)({\r\n background: colors.common.white,\r\n borderRadius: '6px',\r\n '& > .MuiButtonBase-root': {\r\n borderRadius: '6px'\r\n }\r\n})\r\n"],"names":["mapIcons","Edit","_jsx","EditIcon","fontSize","color","Delete","DeleteOutlineIcon","CreateTableGridItemActions","TableGridItemActions","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","props","formEdit","formDelete","value","isArray","map","item","index","key","name","Override","override","onClose","PopoverGlobal","Api","close","ListItem","_objectSpread","disablePadding","sx","minWidth","onClick","e","closableOnClick","listItemProps","children","_jsxs","ListItemButton","ListItemIcon","icon","ListItemText","primary","form","globalState","mapGlobalModalContext","context","show","renderContent","_inherits","Component","_createClass","_this2","isVisible","Wrap","IconButton","size","_this2$props$menuList","_this2$props$buttonEd","_this2$props$menuList2","open","anchorEl","currentTarget","popoverProps","anchorOrigin","vertical","horizontal","transformOrigin","content","List","renderItems","menuList","before","renderItemWithForm","buttonEditConfig","backdropActivated","after","MoreVertIcon","styled","Box","background","colors","common","white","borderRadius"],"mappings":"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"}
1
+ {"version":3,"file":"item-actions.js","sources":["../../src/table-grid/item-actions.tsx"],"sourcesContent":["import React, { Component, ComponentType, ReactNode } from 'react'\r\nimport { Box, colors, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemProps, ListItemText, styled } from '@mui/material'\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport MoreVertIcon from '@mui/icons-material/MoreVert'\r\nimport DeleteOutlineIcon from '@mui/icons-material/DeleteOutline'\r\nimport { ClosePopover, GlobalModalState, mapGlobalModalContext, PopoverGlobal } from '../api-context'\r\n\r\nexport type ITableGridItemActionType = 'Edit' | 'Delete'\r\n\r\nconst mapIcons: { [key in ITableGridItemActionType]: ReactNode } = {\r\n Edit: <EditIcon fontSize='small' color='primary' />,\r\n Delete: <DeleteOutlineIcon fontSize='small' color='error' />\r\n}\r\n\r\nexport interface ITableGridItemActionsBaseProps<T> {\r\n value: T\r\n}\r\n\r\nexport type IActionFormGetter<T> = (value: T) => React.ReactNode\r\n\r\nexport interface IActionMenuItemDef<T> {\r\n name: string\r\n icon?: ReactNode\r\n /** Whether this item should trigger a close action when clicked. @default true */\r\n closableOnClick?: boolean\r\n /** Handler called when item is clicked */\r\n onClick?: (event: React.MouseEvent<HTMLLIElement, MouseEvent>, value: T) => void\r\n listItemProps?: ListItemProps\r\n /**\r\n * Optional custom ReactNode to override the entire ListItem UI.\r\n * If provided, this will be rendered instead of the default ListItem structure\r\n * (icon + text + click behavior).\r\n */\r\n override?: ComponentType<{ onClose?: ClosePopover }>\r\n}\r\n\r\nexport interface TableGridItemActionsConfig<T> {\r\n formEdit?: IActionFormGetter<T>\r\n formDelete?: IActionFormGetter<T>\r\n buttonEditConfig?: GlobalModalState\r\n buttonDeleteConfig?: GlobalModalState\r\n menuList?: {\r\n before?: SingleOrArray<IActionMenuItemDef<T>>\r\n after?: SingleOrArray<IActionMenuItemDef<T>>\r\n }\r\n}\r\n\r\nexport interface ITableGridItemActionsProps<T> extends ITableGridItemActionsBaseProps<T>, TableGridItemActionsConfig<T> {}\r\n\r\nexport function CreateTableGridItemActions<T>() {\r\n class TableGridItemActions extends Component<ITableGridItemActionsProps<T>> {\r\n render() {\r\n if (!this.isVisible()) return <></>\r\n return (\r\n <Wrap>\r\n <IconButton\r\n size='small'\r\n onClick={(e) => {\r\n PopoverGlobal.Api.open({\r\n anchorEl: e.currentTarget,\r\n popoverProps: { anchorOrigin: { vertical: 'top', horizontal: 'right' }, transformOrigin: { vertical: 'top', horizontal: 'right' } },\r\n content: (\r\n <List>\r\n {this.renderItems(this.props.menuList?.before)}\r\n {this.renderItemWithForm('Edit', this.props.formEdit, this.props.buttonEditConfig)}\r\n {this.renderItemWithForm('Delete', this.props.formDelete, this.props.buttonEditConfig ?? { backdropActivated: true })}\r\n {this.renderItems(this.props.menuList?.after)}\r\n </List>\r\n )\r\n })\r\n }}\r\n >\r\n <MoreVertIcon fontSize='small' />\r\n </IconButton>\r\n </Wrap>\r\n )\r\n }\r\n\r\n isVisible = () => {\r\n return !!this.props.formEdit || !!this.props.formDelete\r\n }\r\n\r\n renderItems = (value?: SingleOrArray<IActionMenuItemDef<T>>) => {\r\n if (!value) return <></>\r\n const list = Array.isArray(value) ? value : [value]\r\n return list.map((item, index) => {\r\n const key = item.name + index\r\n const { override: Override } = item\r\n if (Override) return <Override key={key} onClose={PopoverGlobal.Api.close} />\r\n return (\r\n <ListItem\r\n key={key}\r\n disablePadding\r\n sx={{ minWidth: '170px' }}\r\n onClick={(e) => {\r\n if (item.closableOnClick !== false) PopoverGlobal.Api.close()\r\n item.onClick && item.onClick(e, this.props.value)\r\n }}\r\n {...item.listItemProps}\r\n >\r\n <ListItemButton>\r\n <ListItemIcon>{item.icon}</ListItemIcon>\r\n <ListItemText primary={item.name} />\r\n </ListItemButton>\r\n </ListItem>\r\n )\r\n })\r\n }\r\n\r\n renderItemWithForm = (name: ITableGridItemActionType, form?: IActionFormGetter<T>, globalState?: GlobalModalState) => {\r\n if (!form) return <></>\r\n return mapGlobalModalContext((context) => (\r\n <ListItem\r\n disablePadding\r\n sx={{ minWidth: '170px' }}\r\n onClick={() => {\r\n PopoverGlobal.Api.close()\r\n context.show({ renderContent: () => form(this.props.value), ...globalState })\r\n }}\r\n >\r\n <ListItemButton>\r\n <ListItemIcon>{mapIcons[name]}</ListItemIcon>\r\n <ListItemText primary={name} />\r\n </ListItemButton>\r\n </ListItem>\r\n ))\r\n }\r\n }\r\n return TableGridItemActions\r\n}\r\n\r\nconst Wrap = styled(Box)({\r\n background: colors.common.white,\r\n borderRadius: '6px',\r\n '& > .MuiButtonBase-root': {\r\n borderRadius: '6px'\r\n }\r\n})\r\n"],"names":["mapIcons","Edit","_jsx","EditIcon","fontSize","color","Delete","DeleteOutlineIcon","CreateTableGridItemActions","TableGridItemActions","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","props","formEdit","formDelete","value","isArray","map","item","index","key","name","Override","override","onClose","PopoverGlobal","Api","close","ListItem","_objectSpread","disablePadding","sx","minWidth","onClick","e","closableOnClick","listItemProps","children","_jsxs","ListItemButton","ListItemIcon","icon","ListItemText","primary","form","globalState","mapGlobalModalContext","context","show","renderContent","_inherits","Component","_createClass","_this2","isVisible","Wrap","IconButton","size","_this2$props$menuList","_this2$props$buttonEd","_this2$props$menuList2","open","anchorEl","currentTarget","popoverProps","anchorOrigin","vertical","horizontal","transformOrigin","content","List","renderItems","menuList","before","renderItemWithForm","buttonEditConfig","backdropActivated","after","MoreVertIcon","styled","Box","background","colors","common","white","borderRadius"],"mappings":"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"}
@@ -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\ninterface SectionSlots {\r\n before?: React.ReactNode\r\n after?: React.ReactNode\r\n}\r\n\r\nexport interface ToolbarPannelProps {\r\n /** @default true */\r\n visible?: boolean\r\n searchInclude?: string[]\r\n breadcrumbs?: IBreadcrumbConfig[]\r\n title?: React.ReactNode\r\n titleSlots?: SectionSlots\r\n formCreate?: React.ReactNode\r\n actionSlots?: SectionSlots\r\n slots?: {\r\n rootProps?: BoxProps\r\n buttonCreateProps?: ButtonProps\r\n }\r\n}\r\n\r\nclass ToolbarPannel extends Component<ToolbarPannelProps> {\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 SeachHelp = 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":"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,4 +1,4 @@
1
1
  import React from 'react';
2
- import { TableGridParams, TableGridProps } from './types';
3
- declare function CreateTableGrid<T extends object>(params: TableGridParams<T>): React.ComponentType<TableGridProps<T>>;
2
+ import { ITableGridParams, ITableGridProps } from './types';
3
+ declare function CreateTableGrid<T extends object>(params: ITableGridParams<T>): React.ComponentType<ITableGridProps<T>>;
4
4
  export default CreateTableGrid;
@@ -1,2 +1,3 @@
1
1
  export { default as DinoTableGrid } from './dino';
2
2
  export * from './types';
3
+ export * from './item-actions';
@@ -1,12 +1,12 @@
1
1
  import React, { ComponentType, ReactNode } from 'react';
2
2
  import { ListItemProps } from '@mui/material';
3
3
  import { ClosePopover, GlobalModalState } from '../api-context';
4
- export type TableGridItemActionType = 'Edit' | 'Delete';
5
- export interface TableGridItemActionsProps<T> {
4
+ export type ITableGridItemActionType = 'Edit' | 'Delete';
5
+ export interface ITableGridItemActionsBaseProps<T> {
6
6
  value: T;
7
7
  }
8
- type FormRenderFunc<T> = (value: T) => React.ReactNode;
9
- interface ListItemDef<T> {
8
+ export type IActionFormGetter<T> = (value: T) => React.ReactNode;
9
+ export interface IActionMenuItemDef<T> {
10
10
  name: string;
11
11
  icon?: ReactNode;
12
12
  /** Whether this item should trigger a close action when clicked. @default true */
@@ -24,70 +24,69 @@ interface ListItemDef<T> {
24
24
  }>;
25
25
  }
26
26
  export interface TableGridItemActionsConfig<T> {
27
- formEdit?: FormRenderFunc<T>;
28
- formDelete?: FormRenderFunc<T>;
27
+ formEdit?: IActionFormGetter<T>;
28
+ formDelete?: IActionFormGetter<T>;
29
29
  buttonEditConfig?: GlobalModalState;
30
30
  buttonDeleteConfig?: GlobalModalState;
31
31
  menuList?: {
32
- before?: SingleOrArray<ListItemDef<T>>;
33
- after?: ListItemDef<T>;
32
+ before?: SingleOrArray<IActionMenuItemDef<T>>;
33
+ after?: SingleOrArray<IActionMenuItemDef<T>>;
34
34
  };
35
35
  }
36
- interface IProps<T> extends TableGridItemActionsProps<T>, TableGridItemActionsConfig<T> {
36
+ export interface ITableGridItemActionsProps<T> extends ITableGridItemActionsBaseProps<T>, TableGridItemActionsConfig<T> {
37
37
  }
38
38
  export declare function CreateTableGridItemActions<T>(): {
39
- new (props: IProps<T>): {
39
+ new (props: ITableGridItemActionsProps<T>): {
40
40
  render(): import("react/jsx-runtime").JSX.Element;
41
41
  isVisible: () => boolean;
42
- renderItems: (value?: SingleOrArray<ListItemDef<T>>) => import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[];
43
- renderItemWithForm: (name: TableGridItemActionType, form?: FormRenderFunc<T>, globalState?: GlobalModalState) => import("react/jsx-runtime").JSX.Element;
42
+ renderItems: (value?: SingleOrArray<IActionMenuItemDef<T>>) => import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[];
43
+ renderItemWithForm: (name: ITableGridItemActionType, form?: IActionFormGetter<T>, globalState?: GlobalModalState) => import("react/jsx-runtime").JSX.Element;
44
44
  context: unknown;
45
- setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<IProps<T>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
45
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ITableGridItemActionsProps<T>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
46
46
  forceUpdate(callback?: (() => void) | undefined): void;
47
- readonly props: Readonly<IProps<T>>;
47
+ readonly props: Readonly<ITableGridItemActionsProps<T>>;
48
48
  state: Readonly<{}>;
49
49
  refs: {
50
50
  [key: string]: React.ReactInstance;
51
51
  };
52
52
  componentDidMount?(): void;
53
- shouldComponentUpdate?(nextProps: Readonly<IProps<T>>, nextState: Readonly<{}>, nextContext: any): boolean;
53
+ shouldComponentUpdate?(nextProps: Readonly<ITableGridItemActionsProps<T>>, nextState: Readonly<{}>, nextContext: any): boolean;
54
54
  componentWillUnmount?(): void;
55
55
  componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
56
- getSnapshotBeforeUpdate?(prevProps: Readonly<IProps<T>>, prevState: Readonly<{}>): any;
57
- componentDidUpdate?(prevProps: Readonly<IProps<T>>, prevState: Readonly<{}>, snapshot?: any): void;
56
+ getSnapshotBeforeUpdate?(prevProps: Readonly<ITableGridItemActionsProps<T>>, prevState: Readonly<{}>): any;
57
+ componentDidUpdate?(prevProps: Readonly<ITableGridItemActionsProps<T>>, prevState: Readonly<{}>, snapshot?: any): void;
58
58
  componentWillMount?(): void;
59
59
  UNSAFE_componentWillMount?(): void;
60
- componentWillReceiveProps?(nextProps: Readonly<IProps<T>>, nextContext: any): void;
61
- UNSAFE_componentWillReceiveProps?(nextProps: Readonly<IProps<T>>, nextContext: any): void;
62
- componentWillUpdate?(nextProps: Readonly<IProps<T>>, nextState: Readonly<{}>, nextContext: any): void;
63
- UNSAFE_componentWillUpdate?(nextProps: Readonly<IProps<T>>, nextState: Readonly<{}>, nextContext: any): void;
60
+ componentWillReceiveProps?(nextProps: Readonly<ITableGridItemActionsProps<T>>, nextContext: any): void;
61
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<ITableGridItemActionsProps<T>>, nextContext: any): void;
62
+ componentWillUpdate?(nextProps: Readonly<ITableGridItemActionsProps<T>>, nextState: Readonly<{}>, nextContext: any): void;
63
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<ITableGridItemActionsProps<T>>, nextState: Readonly<{}>, nextContext: any): void;
64
64
  };
65
- new (props: IProps<T>, context: any): {
65
+ new (props: ITableGridItemActionsProps<T>, context: any): {
66
66
  render(): import("react/jsx-runtime").JSX.Element;
67
67
  isVisible: () => boolean;
68
- renderItems: (value?: SingleOrArray<ListItemDef<T>>) => import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[];
69
- renderItemWithForm: (name: TableGridItemActionType, form?: FormRenderFunc<T>, globalState?: GlobalModalState) => import("react/jsx-runtime").JSX.Element;
68
+ renderItems: (value?: SingleOrArray<IActionMenuItemDef<T>>) => import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[];
69
+ renderItemWithForm: (name: ITableGridItemActionType, form?: IActionFormGetter<T>, globalState?: GlobalModalState) => import("react/jsx-runtime").JSX.Element;
70
70
  context: unknown;
71
- setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<IProps<T>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
71
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ITableGridItemActionsProps<T>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
72
72
  forceUpdate(callback?: (() => void) | undefined): void;
73
- readonly props: Readonly<IProps<T>>;
73
+ readonly props: Readonly<ITableGridItemActionsProps<T>>;
74
74
  state: Readonly<{}>;
75
75
  refs: {
76
76
  [key: string]: React.ReactInstance;
77
77
  };
78
78
  componentDidMount?(): void;
79
- shouldComponentUpdate?(nextProps: Readonly<IProps<T>>, nextState: Readonly<{}>, nextContext: any): boolean;
79
+ shouldComponentUpdate?(nextProps: Readonly<ITableGridItemActionsProps<T>>, nextState: Readonly<{}>, nextContext: any): boolean;
80
80
  componentWillUnmount?(): void;
81
81
  componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
82
- getSnapshotBeforeUpdate?(prevProps: Readonly<IProps<T>>, prevState: Readonly<{}>): any;
83
- componentDidUpdate?(prevProps: Readonly<IProps<T>>, prevState: Readonly<{}>, snapshot?: any): void;
82
+ getSnapshotBeforeUpdate?(prevProps: Readonly<ITableGridItemActionsProps<T>>, prevState: Readonly<{}>): any;
83
+ componentDidUpdate?(prevProps: Readonly<ITableGridItemActionsProps<T>>, prevState: Readonly<{}>, snapshot?: any): void;
84
84
  componentWillMount?(): void;
85
85
  UNSAFE_componentWillMount?(): void;
86
- componentWillReceiveProps?(nextProps: Readonly<IProps<T>>, nextContext: any): void;
87
- UNSAFE_componentWillReceiveProps?(nextProps: Readonly<IProps<T>>, nextContext: any): void;
88
- componentWillUpdate?(nextProps: Readonly<IProps<T>>, nextState: Readonly<{}>, nextContext: any): void;
89
- UNSAFE_componentWillUpdate?(nextProps: Readonly<IProps<T>>, nextState: Readonly<{}>, nextContext: any): void;
86
+ componentWillReceiveProps?(nextProps: Readonly<ITableGridItemActionsProps<T>>, nextContext: any): void;
87
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<ITableGridItemActionsProps<T>>, nextContext: any): void;
88
+ componentWillUpdate?(nextProps: Readonly<ITableGridItemActionsProps<T>>, nextState: Readonly<{}>, nextContext: any): void;
89
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<ITableGridItemActionsProps<T>>, nextState: Readonly<{}>, nextContext: any): void;
90
90
  };
91
91
  contextType?: React.Context<any> | undefined;
92
92
  };
93
- export {};
@@ -1,25 +1,25 @@
1
1
  import React, { Component } from 'react';
2
2
  import { BoxProps, ButtonProps } from '@mui/material';
3
3
  import { IBreadcrumbConfig } from '../components';
4
- interface SectionSlots {
4
+ export interface ISectionSlots {
5
5
  before?: React.ReactNode;
6
6
  after?: React.ReactNode;
7
7
  }
8
- export interface ToolbarPannelProps {
8
+ export interface IToolbarPannelProps {
9
9
  /** @default true */
10
10
  visible?: boolean;
11
11
  searchInclude?: string[];
12
12
  breadcrumbs?: IBreadcrumbConfig[];
13
13
  title?: React.ReactNode;
14
- titleSlots?: SectionSlots;
14
+ titleSlots?: ISectionSlots;
15
15
  formCreate?: React.ReactNode;
16
- actionSlots?: SectionSlots;
16
+ actionSlots?: ISectionSlots;
17
17
  slots?: {
18
18
  rootProps?: BoxProps;
19
19
  buttonCreateProps?: ButtonProps;
20
20
  };
21
21
  }
22
- declare class ToolbarPannel extends Component<ToolbarPannelProps> {
22
+ declare class ToolbarPannel extends Component<IToolbarPannelProps> {
23
23
  render(): import("react/jsx-runtime").JSX.Element | undefined;
24
24
  renderButtonCreate: () => import("react/jsx-runtime").JSX.Element;
25
25
  renderTitle: () => import("react/jsx-runtime").JSX.Element;
@@ -1,56 +1,56 @@
1
1
  import { ComponentType, ReactNode } from 'react';
2
2
  import { GridProps, RegularBreakpoints } from '@mui/material';
3
- import { ToolbarPannelProps } from './toolbar-pannel';
3
+ import { IToolbarPannelProps } from './toolbar-pannel';
4
4
  import { FilterBarParams, IFilterState } from '../filter-bar';
5
- import { TableGridItemActionsConfig, TableGridItemActionsProps } from './item-actions';
6
- export interface TableGridItemProps<T = any> {
5
+ import { TableGridItemActionsConfig, ITableGridItemActionsBaseProps } from './item-actions';
6
+ export interface ITableGridItemProps<T = any> {
7
7
  value: T;
8
8
  }
9
- export type GetSelecterIdFunc<T> = (item: T) => string;
10
- export interface PaginationModel {
9
+ export type IGetSelecterIdFunc<T> = (item: T) => string;
10
+ export interface IPaginationModel {
11
11
  page: number;
12
12
  pageSize: number;
13
13
  }
14
- export interface TableGridFilter<T> extends IFilterState<T> {
15
- pagination: PaginationModel;
14
+ export interface ITableGridFilter<T> extends IFilterState<T> {
15
+ pagination: IPaginationModel;
16
16
  loading?: boolean;
17
17
  }
18
- export interface TableGridFlexibleSlots<T> {
19
- item?: ComponentType<TableGridItemProps<T>>;
18
+ export interface ITableGridFlexibleSlots<T> {
19
+ item?: ComponentType<ITableGridItemProps<T>>;
20
20
  }
21
- export interface TableGridSlots<T> extends TableGridFlexibleSlots<T> {
21
+ export interface ITableGridSlots<T> extends ITableGridFlexibleSlots<T> {
22
22
  flex?: boolean;
23
23
  gridContainer?: GridProps;
24
24
  gridItem?: GridProps;
25
25
  toolbar?: ComponentType;
26
- toolbarProps?: ToolbarPannelProps;
27
- action?: ComponentType<TableGridItemActionsProps<T>>;
26
+ toolbarProps?: IToolbarPannelProps;
27
+ action?: ComponentType<ITableGridItemActionsBaseProps<T>>;
28
28
  actionProps?: TableGridItemActionsConfig<T>;
29
29
  }
30
- export interface TableGridInnerSlots<T> extends TableGridSlots<T> {
31
- TableGridItem: ComponentType<TableGridItemProps<T>>;
32
- ToolbarPannel: ComponentType<ToolbarPannelProps>;
30
+ export interface ITableGridInnerSlots<T> extends ITableGridSlots<T> {
31
+ TableGridItem: ComponentType<ITableGridItemProps<T>>;
32
+ ToolbarPannel: ComponentType<IToolbarPannelProps>;
33
33
  }
34
- export interface TableGridParams<T> extends TableGridFlexibleSlots<T> {
35
- getSelecterId: GetSelecterIdFunc<T>;
34
+ export interface ITableGridParams<T> extends ITableGridFlexibleSlots<T> {
35
+ getSelecterId: IGetSelecterIdFunc<T>;
36
36
  title?: ReactNode;
37
37
  filterBarConfig?: FilterBarParams<T>;
38
38
  size?: RegularBreakpoints;
39
- slots?: TableGridSlots<T>;
39
+ slots?: ITableGridSlots<T>;
40
40
  }
41
- export interface TableGridData<T> {
41
+ export interface ITableGridData<T> {
42
42
  items?: T[];
43
43
  totalItems?: number;
44
44
  }
45
- export interface TableGridProps<T> {
46
- data: TableGridData<T>;
47
- filter?: TableGridFilter<T>;
48
- onFilterChange?: (value: TableGridFilter<T>) => void;
49
- slots?: TableGridSlots<T>;
45
+ export interface ITableGridProps<T> {
46
+ data: ITableGridData<T>;
47
+ filter?: ITableGridFilter<T>;
48
+ onFilterChange?: (value: ITableGridFilter<T>) => void;
49
+ slots?: ITableGridSlots<T>;
50
50
  }
51
- export interface TableGridReduxState<T> {
52
- tableData: TableGridData<T>;
53
- tableFilter: TableGridFilter<T>;
54
- tableFilterThunk: TableGridFilter<T>;
51
+ export interface ITableGridReduxState<T> {
52
+ tableData: ITableGridData<T>;
53
+ tableFilter: ITableGridFilter<T>;
54
+ tableFilterThunk: ITableGridFilter<T>;
55
55
  }
56
- export type TableGridStateRedux<T, K extends keyof TableGridReduxState<T> = keyof TableGridReduxState<T>> = Pick<TableGridReduxState<T>, K>;
56
+ export type ITableGridStateRedux<T, K extends keyof ITableGridReduxState<T> = keyof ITableGridReduxState<T>> = Pick<ITableGridReduxState<T>, K>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dinocollab-core",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",