dinocollab-core 2.1.41 → 2.1.42
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.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{objectWithoutProperties as e,objectSpread2 as o,defineProperty as
|
|
1
|
+
import{objectWithoutProperties as e,objectSpread2 as o,defineProperty as i,inherits as r,createClass as t,classCallCheck as a,callSuper as l,toConsumableArray as n}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as s}from"react/jsx-runtime";import{Component as d,Fragment as u}from"react";import{styled as p,Box as c}from"@mui/material";import{DataGrid as m}from"@mui/x-data-grid";import{mergeObjects as g}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"../utils/query-param.js";import{TableBaseContext as h}from"./context.js";import{customFilterOperators as f}from"./custom.filter-operators.js";import v,{dinoTableClasses as b}from"./helpers.js";import y from"./toolbar-pannel.js";import{GlobalModal as C,mapGlobalModalContext as P}from"../api-context/global-modal.js";var S=["children"];function M(e){return function(){function p(r){var t;return a(this,p),t=l(this,p,[r]),i(t,"setTableQueryParams",function(e){t.tableQueryParams=g({},t.tableQueryParams,e)}),i(t,"renderWrapContext",function(o){var i=e.disableGlobalModalProvider?u:C;return s(i,{children:P(function(e){return s(h.Provider,{value:{showModal:e.show,closeModal:e.close},children:o})})})}),i(t,"getDataGridProps",function(){var o,i,r,a,l=t.mergeConfig,n={getRowId:e.getRowId,columns:t.columns,rows:null!==(o=null===(i=t.props.data)||void 0===i?void 0:i.items)&&void 0!==o?o:[],checkboxSelection:!0,pagination:!0,density:null!==(r=null===(a=t.props.slots)||void 0===a?void 0:a.density)&&void 0!==r?r:"standard",initialState:v.mapInitialState(t.props.query,{columns:{columnVisibilityModel:e.columnVisibilityModel}}),filterDebounceMs:800,sx:{border:0},slots:{toolbar:l.toolbar},rowSelectionModel:t.rowSelecteds,onRowSelectionModelChange:t.handleRowSelectionChange};if("server"===e.featureMode){var s,d,u={filterMode:"server",sortingMode:"server",paginationMode:"server",onPaginationModelChange:t.onPaginationModelChange,onFilterModelChange:t.onFilterModelChange,onSortModelChange:t.onSortModelChange,rowCount:null!==(s=null===(d=t.props.data)||void 0===d?void 0:d.rowTotal)&&void 0!==s?s:0,paginationModel:t.tableQueryParams.pagination,filterModel:t.tableQueryParams.filter,sortModel:v.mapSortModel(t.tableQueryParams.sort),loading:t.mergeConfig.loading};Object.assign(n,u)}return g(n,t.mergeConfig.dataGridProps)}),i(t,"initialColumns",function(){var i,r,a=t.mergeConfig.ActionRow,l=[];return a&&l.push(o({field:"Actions",minWidth:100,headerAlign:"right",align:"right",filterable:!1,sortable:!1,renderCell:function(e){return s(a,{value:e.row})}},e.actionRow)),i=l,r=Object.keys(e.columns).map(function(i){var r=o({field:i},e.columns[i]);return r.filterOperators=e.filterOperators?e.filterOperators(r):f(r),r}),i&&i.length>0&&r.push.apply(r,n(i)),r}),i(t,"onPaginationModelChange",function(e,o){t.mergeConfig.loading||(t.setTableQueryParams({pagination:e,detail:"pagination"}),t.handleChange())}),i(t,"onFilterModelChange",function(e,o){var i;if(!t.mergeConfig.loading){var r=t.tableQueryParams.pagination;t.setTableQueryParams({filter:e,pagination:{page:0,pageSize:null!==(i=null==r?void 0:r.pageSize)&&void 0!==i?i:25},detail:v.detectSearchType(e)}),t.handleChange()}}),i(t,"onSortModelChange",function(e,o){if(!t.mergeConfig.loading){var i,r,a,l,n,s=e,d=t.tableQueryParams.sort;if(null!=d&&d.length&&!s.length)if((null==d||null===(i=d[0])||void 0===i?void 0:i.field)===(null===(r=t.defaultTableQueryParams.sort)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.field))s=[{field:null===(a=d[0])||void 0===a?void 0:a.field,sort:"desc"===(null===(l=d[0])||void 0===l?void 0:l.sort)?"asc":"desc"}];else s=null!==(n=t.defaultTableQueryParams.sort)&&void 0!==n?n:[];t.setTableQueryParams({sort:s,detail:"sort"}),t.handleChange()}}),i(t,"handleChange",function(){t.changeTimeout&&clearTimeout(t.changeTimeout),t.changeTimeout=setTimeout(function(){t.props.onChange&&t.props.onChange(t.tableQueryParams)},300)}),i(t,"handleRowSelectionChange",function(e,o){t.mergeConfig.maxSelcion&&e.length>t.mergeConfig.maxSelcion?t.rowSelecteds=e.slice(0,t.mergeConfig.maxSelcion):t.rowSelecteds=e,t.props.onRowSelectionChange&&t.props.onRowSelectionChange(t.rowSelecteds,o),t.forceUpdate()}),t.columns=t.initialColumns(),t.tableQueryParams=o({},r.query),t.defaultTableQueryParams=t.tableQueryParams,t.rowSelecteds=[],t}return r(p,d),t(p,[{key:"mergeConfig",get:function(){var i,r,t,a,l,n,d,u=g({},null==e?void 0:e.toolbarProps,null===(i=this.props.slots)||void 0===i?void 0:i.toolbarProps);return{toolbar:null!==(r=null===(t=this.props.slots)||void 0===t?void 0:t.toolbar)&&void 0!==r?r:function(){return s(y,o({},u))},ActionRow:null===(a=this.props.slots)||void 0===a?void 0:a.actionRow,columnVisibilityModel:e.columnVisibilityModel,maxSelcion:null!==(l=null===(n=this.props.slots)||void 0===n?void 0:n.maxSelection)&&void 0!==l?l:e.maxSelection,dataGridProps:g({},e.dataGridProps,null===(d=this.props.slots)||void 0===d?void 0:d.dataGridProps),loading:void 0!==this.props.loading?this.props.loading:this.tableQueryParams.loading}}},{key:"componentWillUnmount",value:function(){this.changeTimeout&&clearTimeout(this.changeTimeout)}},{key:"shouldComponentUpdate",value:function(o){var i;return"server"!==e.featureMode||(v.equalTableQueryParams(o.query,this.props.query)?JSON.stringify(o.data)!==JSON.stringify(this.props.data)||o.loading!==this.props.loading:(this.setTableQueryParams(null!==(i=o.query)&&void 0!==i?i:{}),!0))}},{key:"render",value:function(){return this.renderWrapContext(s(w,{children:s(m,o({loading:this.props.loading},this.getDataGridProps()))}))}}])}()}var w=p(function(i){var r=i.children,t=e(i,S);return s(c,o(o({},t),{},{children:s("div",{children:r})}))})(i({flex:1,position:"relative","& > div":{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflowY:"auto"},"& .MuiDataGrid-root":{"--unstable_DataGrid-radius":0,overflow:"hidden"}},"& .MuiDataGrid-cell.".concat(b.whiteSpacePre," .MuiDataGrid-cellContent"),{whiteSpace:"pre"}));export{M as CreateTable,M as default};
|
|
2
2
|
//# sourceMappingURL=create.table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.table.js","sources":["../../../src/table/create.table.tsx"],"sourcesContent":["import React, { Component, ComponentType } from 'react'\r\nimport { Box, BoxProps, styled } from '@mui/material'\r\nimport { DataGrid, DataGridProps, GridColDef, GridFeatureMode, GridFilterOperator } from '@mui/x-data-grid'\r\nimport { GridSortModel, GridValidRowModel, GridRowIdGetter, GridRowSelectionModel } from '@mui/x-data-grid'\r\nimport { GridCallbackDetails, GridColumnVisibilityModel, GridDensity, GridFilterModel, GridPaginationModel } from '@mui/x-data-grid'\r\nimport { mergeObjects } from '../utils'\r\nimport { TableBaseContext } from './context'\r\nimport { IActionRowProps } from './create.action-row'\r\nimport { customFilterOperators } from './custom.filter-operators'\r\nimport { GlobalModal, mapGlobalModalContext } from '../api-context'\r\nimport { ICustomGridColDef, ICustomGridFilterModel, ICustomGridSortModel, ITableData, ITableQueryParams } from './types'\r\nimport TableHelper, { dinoTableClasses } from './helpers'\r\nimport ToolbarPannel, { IToolbarPannelProps } from './toolbar-pannel'\r\n\r\nexport interface ITableSlots<T> {\r\n maxSelection?: number\r\n density?: GridDensity\r\n toolbar?: React.ComponentType<IToolbarPannelProps>\r\n actionRow?: React.ComponentType<IActionRowProps<T>>\r\n toolbarProps?: IToolbarPannelProps\r\n dataGridProps?: DataGridProps\r\n}\r\n\r\nexport type ITableParamsSlots<T> = Pick<ITableSlots<T>, 'maxSelection' | 'toolbarProps' | 'dataGridProps'>\r\n\r\nexport interface ITableProps<T> {\r\n data?: ITableData<T>\r\n query?: ITableQueryParams<T>\r\n loading?: boolean\r\n onChange?: (query: ITableQueryParams<T>) => void\r\n onRowSelectionChange?: DataGridProps['onRowSelectionModelChange']\r\n slots?: ITableSlots<T>\r\n}\r\n\r\nexport interface ITableParams<T extends GridValidRowModel> extends ITableParamsSlots<T> {\r\n featureMode?: GridFeatureMode\r\n getRowId: GridRowIdGetter<T>\r\n columns: ICustomGridColDef<T>\r\n filterOperators?: (config: GridColDef) => GridFilterOperator[]\r\n columnVisibilityModel?: Partial<Record<keyof T, boolean>>\r\n actionRow?: Omit<GridColDef, 'field'>\r\n disableGlobalModalProvider?: boolean\r\n}\r\n\r\nexport function CreateTable<T extends GridValidRowModel>(params: ITableParams<T>): ComponentType<ITableProps<T>> {\r\n const generateColumns = (extendColDefs?: GridColDef[]) => {\r\n const columns = Object.keys(params.columns).map<GridColDef>((key) => {\r\n const obj = { field: key, ...params.columns[key] }\r\n obj.filterOperators = params.filterOperators ? params.filterOperators(obj) : customFilterOperators(obj)\r\n return obj\r\n })\r\n\r\n if (!!extendColDefs && extendColDefs.length > 0) columns.push(...extendColDefs)\r\n return columns\r\n }\r\n\r\n class Table extends Component<ITableProps<T>> {\r\n private tableQueryParams: ITableQueryParams<T>\r\n // private tableQueryParamsCache: ITableQueryParams<T> = {}\r\n private defaultTableQueryParams: ITableQueryParams<T>\r\n private columns: GridColDef<T>[]\r\n private rowSelecteds: GridRowSelectionModel\r\n constructor(props: ITableProps<T>) {\r\n super(props)\r\n this.columns = this.initialColumns()\r\n this.tableQueryParams = { ...props.query }\r\n this.defaultTableQueryParams = this.tableQueryParams\r\n this.rowSelecteds = []\r\n }\r\n\r\n get mergeConfig() {\r\n const toolbarPannelProps = mergeObjects({}, params?.toolbarProps, this.props.slots?.toolbarProps)\r\n return {\r\n toolbar: this.props.slots?.toolbar ?? (() => <ToolbarPannel {...toolbarPannelProps} />),\r\n ActionRow: this.props.slots?.actionRow,\r\n columnVisibilityModel: params.columnVisibilityModel,\r\n maxSelcion: this.props.slots?.maxSelection ?? params.maxSelection,\r\n dataGridProps: mergeObjects({}, params.dataGridProps, this.props.slots?.dataGridProps)\r\n }\r\n }\r\n\r\n setTableQueryParams = (value: Partial<ITableQueryParams<T>>) => {\r\n this.tableQueryParams = mergeObjects({}, this.tableQueryParams, value)\r\n }\r\n\r\n shouldComponentUpdate(nextProps: Readonly<ITableProps<T>>): boolean {\r\n if (params.featureMode === 'server' && !TableHelper.equalTableQueryParams(nextProps.query, this.props.query)) {\r\n this.setTableQueryParams(nextProps.query ?? {})\r\n return true\r\n } else if (params.featureMode !== 'server') {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n render() {\r\n return this.renderWrapContext(\r\n <Wrap>\r\n <DataGrid loading={this.props.loading} {...this.getDataGridProps()} />\r\n </Wrap>\r\n )\r\n }\r\n\r\n renderWrapContext = (children: React.ReactNode) => {\r\n const WrapComponent = params.disableGlobalModalProvider ? React.Fragment : GlobalModal\r\n return (\r\n <WrapComponent>\r\n {mapGlobalModalContext((context) => (\r\n <TableBaseContext.Provider value={{ showModal: context.show, closeModal: context.close }}>{children}</TableBaseContext.Provider>\r\n ))}\r\n </WrapComponent>\r\n )\r\n }\r\n\r\n getDataGridProps = (): DataGridProps<T> => {\r\n const mergeConfig = this.mergeConfig\r\n const obj: DataGridProps<T> = {\r\n getRowId: params.getRowId,\r\n columns: this.columns,\r\n rows: this.props.data?.items ?? [],\r\n checkboxSelection: true,\r\n pagination: true,\r\n density: this.props.slots?.density ?? 'standard',\r\n initialState: TableHelper.mapInitialState(this.props.query, {\r\n columns: { columnVisibilityModel: params.columnVisibilityModel as GridColumnVisibilityModel }\r\n }),\r\n filterDebounceMs: 800,\r\n sx: { border: 0 },\r\n slots: { toolbar: mergeConfig.toolbar },\r\n rowSelectionModel: this.rowSelecteds,\r\n onRowSelectionModelChange: this.handleRowSelectionChange\r\n }\r\n if (params.featureMode === 'server') {\r\n const objServer: Partial<DataGridProps<T>> = {\r\n filterMode: 'server',\r\n sortingMode: 'server',\r\n paginationMode: 'server',\r\n onPaginationModelChange: this.onPaginationModelChange,\r\n onFilterModelChange: this.onFilterModelChange,\r\n onSortModelChange: this.onSortModelChange,\r\n rowCount: this.props.data?.rowTotal ?? 0,\r\n paginationModel: this.tableQueryParams.pagination,\r\n filterModel: this.tableQueryParams.filter as GridFilterModel,\r\n sortModel: TableHelper.mapSortModel(this.tableQueryParams.sort),\r\n loading: this.tableQueryParams.loading\r\n }\r\n Object.assign(obj, objServer)\r\n }\r\n return mergeObjects(obj, this.mergeConfig.dataGridProps)\r\n }\r\n\r\n initialColumns = (): GridColDef<T>[] => {\r\n const { ActionRow } = this.mergeConfig\r\n const list: GridColDef<T>[] = []\r\n if (!!ActionRow) {\r\n list.push({\r\n field: 'Actions',\r\n minWidth: 100,\r\n headerAlign: 'right',\r\n align: 'right',\r\n filterable: false,\r\n sortable: false,\r\n renderCell: (value) => <ActionRow value={value.row} />,\r\n ...params.actionRow\r\n })\r\n }\r\n return generateColumns(list)\r\n }\r\n\r\n onPaginationModelChange = (model: GridPaginationModel, details: GridCallbackDetails<'pagination'>) => {\r\n this.setTableQueryParams({ pagination: model, detail: 'pagination' })\r\n this.handleChange()\r\n }\r\n\r\n onFilterModelChange = (model: GridFilterModel, details: GridCallbackDetails<'filter'>) => {\r\n const { pagination } = this.tableQueryParams\r\n this.setTableQueryParams({\r\n filter: model as ICustomGridFilterModel<T>,\r\n pagination: { page: 0, pageSize: pagination?.pageSize ?? 25 },\r\n detail: TableHelper.detectSearchType(model)\r\n })\r\n this.handleChange()\r\n }\r\n\r\n onSortModelChange = (model: GridSortModel, details: GridCallbackDetails<any>) => {\r\n let sortValue = model as ICustomGridSortModel<T>\r\n const { sort } = this.tableQueryParams\r\n if (!!sort?.length && !sortValue.length) {\r\n if (sort?.[0]?.field === this.defaultTableQueryParams.sort?.[0]?.field) {\r\n sortValue = [{ field: sort[0]?.field, sort: sort[0]?.sort === 'desc' ? 'asc' : 'desc' }]\r\n } else {\r\n sortValue = this.defaultTableQueryParams.sort ?? []\r\n }\r\n }\r\n this.setTableQueryParams({ sort: sortValue, detail: 'sort' })\r\n this.handleChange()\r\n }\r\n\r\n handleChange = () => {\r\n this.props.onChange && this.props.onChange(this.tableQueryParams)\r\n }\r\n\r\n handleRowSelectionChange = (value: GridRowSelectionModel, details: GridCallbackDetails) => {\r\n if (this.mergeConfig.maxSelcion && value.length > this.mergeConfig.maxSelcion) {\r\n this.rowSelecteds = value.slice(0, this.mergeConfig.maxSelcion)\r\n } else {\r\n this.rowSelecteds = value\r\n }\r\n this.props.onRowSelectionChange && this.props.onRowSelectionChange(this.rowSelecteds, details)\r\n this.forceUpdate()\r\n }\r\n }\r\n\r\n return Table\r\n}\r\n\r\nexport default CreateTable\r\n\r\nconst Wrap = styled(({ children, ...p }: BoxProps) => (\r\n <Box {...p}>\r\n <div>{children}</div>\r\n </Box>\r\n))({\r\n flex: 1,\r\n position: 'relative',\r\n '& > div': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n overflowY: 'auto'\r\n },\r\n '& .MuiDataGrid-root': {\r\n '--unstable_DataGrid-radius': 0,\r\n overflow: 'hidden'\r\n },\r\n [`& .MuiDataGrid-cell.${dinoTableClasses.whiteSpacePre} .MuiDataGrid-cellContent`]: {\r\n whiteSpace: 'pre'\r\n }\r\n})\r\n"],"names":["CreateTable","params","Table","props","_this","_classCallCheck","_callSuper","_defineProperty","value","tableQueryParams","mergeObjects","children","WrapComponent","disableGlobalModalProvider","React","Fragment","GlobalModal","_jsx","mapGlobalModalContext","context","TableBaseContext","Provider","showModal","show","closeModal","close","_this$props$data$item","_this$props$data","_this$props$slots$den","_this$props$slots","mergeConfig","obj","getRowId","columns","rows","data","items","checkboxSelection","pagination","density","slots","initialState","TableHelper","mapInitialState","query","columnVisibilityModel","filterDebounceMs","sx","border","toolbar","rowSelectionModel","rowSelecteds","onRowSelectionModelChange","handleRowSelectionChange","featureMode","_this$props$data$rowT","_this$props$data2","objServer","filterMode","sortingMode","paginationMode","onPaginationModelChange","onFilterModelChange","onSortModelChange","rowCount","rowTotal","paginationModel","filterModel","filter","sortModel","mapSortModel","sort","loading","Object","assign","dataGridProps","extendColDefs","ActionRow","list","push","_objectSpread","field","minWidth","headerAlign","align","filterable","sortable","renderCell","row","actionRow","keys","map","key","filterOperators","customFilterOperators","length","apply","_toConsumableArray","model","details","setTableQueryParams","detail","handleChange","_pagination$pageSize","page","pageSize","detectSearchType","_sort$","_this$defaultTableQue","_sort$2","_sort$3","_this$defaultTableQue2","sortValue","defaultTableQueryParams","onChange","maxSelcion","slice","onRowSelectionChange","forceUpdate","initialColumns","_inherits","Component","_createClass","get","_this$props$slots2","_this$props$slots$too","_this$props$slots3","_this$props$slots4","_this$props$slots$max","_this$props$slots5","_this$props$slots6","toolbarPannelProps","toolbarProps","this","ToolbarPannel","maxSelection","nextProps","equalTableQueryParams","_nextProps$query","renderWrapContext","Wrap","DataGrid","getDataGridProps","styled","_ref","p","_objectWithoutProperties","_excluded","Box","flex","position","top","left","width","height","overflowY","overflow","concat","dinoTableClasses","whiteSpacePre","whiteSpace"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create.table.js","sources":["../../../src/table/create.table.tsx"],"sourcesContent":["import { Component, Fragment } from 'react'\r\nimport { Box, BoxProps, styled } from '@mui/material'\r\nimport { DataGrid, DataGridProps, GridColDef, GridFeatureMode, GridFilterOperator } from '@mui/x-data-grid'\r\nimport { GridSortModel, GridValidRowModel, GridRowIdGetter, GridRowSelectionModel } from '@mui/x-data-grid'\r\nimport { GridCallbackDetails, GridColumnVisibilityModel, GridDensity, GridFilterModel, GridPaginationModel } from '@mui/x-data-grid'\r\nimport type { ComponentType, ReactNode } from 'react'\r\nimport { mergeObjects } from '../utils'\r\nimport { TableBaseContext } from './context'\r\nimport { IActionRowProps } from './create.action-row'\r\nimport { customFilterOperators } from './custom.filter-operators'\r\nimport { GlobalModal, mapGlobalModalContext } from '../api-context'\r\nimport { ICustomGridColDef, ICustomGridFilterModel, ICustomGridSortModel, ITableData, ITableQueryParams } from './types'\r\nimport TableHelper, { dinoTableClasses } from './helpers'\r\nimport ToolbarPannel, { IToolbarPannelProps } from './toolbar-pannel'\r\n\r\nexport interface ITableSlots<T> {\r\n maxSelection?: number\r\n density?: GridDensity\r\n toolbar?: ComponentType<IToolbarPannelProps>\r\n actionRow?: ComponentType<IActionRowProps<T>>\r\n toolbarProps?: IToolbarPannelProps\r\n dataGridProps?: DataGridProps\r\n}\r\n\r\nexport type ITableParamsSlots<T> = Pick<ITableSlots<T>, 'maxSelection' | 'toolbarProps' | 'dataGridProps'>\r\n\r\nexport interface ITableProps<T> {\r\n data?: ITableData<T>\r\n query?: ITableQueryParams<T>\r\n loading?: boolean\r\n onChange?: (query: ITableQueryParams<T>) => void\r\n onRowSelectionChange?: DataGridProps['onRowSelectionModelChange']\r\n slots?: ITableSlots<T>\r\n}\r\n\r\nexport interface ITableParams<T extends GridValidRowModel> extends ITableParamsSlots<T> {\r\n featureMode?: GridFeatureMode\r\n getRowId: GridRowIdGetter<T>\r\n columns: ICustomGridColDef<T>\r\n filterOperators?: (config: GridColDef) => GridFilterOperator[]\r\n columnVisibilityModel?: Partial<Record<keyof T, boolean>>\r\n actionRow?: Omit<GridColDef, 'field'>\r\n disableGlobalModalProvider?: boolean\r\n}\r\n\r\nexport function CreateTable<T extends GridValidRowModel>(params: ITableParams<T>): ComponentType<ITableProps<T>> {\r\n const generateColumns = (extendColDefs?: GridColDef[]) => {\r\n const columns = Object.keys(params.columns).map<GridColDef>((key) => {\r\n const obj = { field: key, ...params.columns[key] }\r\n obj.filterOperators = params.filterOperators ? params.filterOperators(obj) : customFilterOperators(obj)\r\n return obj\r\n })\r\n\r\n if (!!extendColDefs && extendColDefs.length > 0) columns.push(...extendColDefs)\r\n return columns\r\n }\r\n\r\n class Table extends Component<ITableProps<T>> {\r\n private tableQueryParams: ITableQueryParams<T>\r\n // private tableQueryParamsCache: ITableQueryParams<T> = {}\r\n private defaultTableQueryParams: ITableQueryParams<T>\r\n private columns: GridColDef<T>[]\r\n private rowSelecteds: GridRowSelectionModel\r\n private changeTimeout?: ReturnType<typeof setTimeout>\r\n constructor(props: ITableProps<T>) {\r\n super(props)\r\n this.columns = this.initialColumns()\r\n this.tableQueryParams = { ...props.query }\r\n this.defaultTableQueryParams = this.tableQueryParams\r\n this.rowSelecteds = []\r\n }\r\n\r\n get mergeConfig() {\r\n const toolbarPannelProps = mergeObjects({}, params?.toolbarProps, this.props.slots?.toolbarProps)\r\n return {\r\n toolbar: this.props.slots?.toolbar ?? (() => <ToolbarPannel {...toolbarPannelProps} />),\r\n ActionRow: this.props.slots?.actionRow,\r\n columnVisibilityModel: params.columnVisibilityModel,\r\n maxSelcion: this.props.slots?.maxSelection ?? params.maxSelection,\r\n dataGridProps: mergeObjects({}, params.dataGridProps, this.props.slots?.dataGridProps),\r\n loading: this.props.loading !== undefined ? this.props.loading : this.tableQueryParams.loading\r\n }\r\n }\r\n\r\n setTableQueryParams = (value: Partial<ITableQueryParams<T>>) => {\r\n this.tableQueryParams = mergeObjects({}, this.tableQueryParams, value)\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.changeTimeout) {\r\n clearTimeout(this.changeTimeout)\r\n }\r\n }\r\n\r\n shouldComponentUpdate(nextProps: Readonly<ITableProps<T>>): boolean {\r\n if (params.featureMode === 'server') {\r\n // Check if query changed\r\n if (!TableHelper.equalTableQueryParams(nextProps.query, this.props.query)) {\r\n this.setTableQueryParams(nextProps.query ?? {})\r\n return true\r\n }\r\n // Check if data or loading changed\r\n if (JSON.stringify(nextProps.data) !== JSON.stringify(this.props.data) || nextProps.loading !== this.props.loading) {\r\n return true\r\n }\r\n return false\r\n } else {\r\n return true\r\n }\r\n }\r\n\r\n render() {\r\n return this.renderWrapContext(\r\n <Wrap>\r\n <DataGrid loading={this.props.loading} {...this.getDataGridProps()} />\r\n </Wrap>\r\n )\r\n }\r\n\r\n renderWrapContext = (children: ReactNode) => {\r\n const WrapComponent = params.disableGlobalModalProvider ? Fragment : GlobalModal\r\n return (\r\n <WrapComponent>\r\n {mapGlobalModalContext((context) => (\r\n <TableBaseContext.Provider value={{ showModal: context.show, closeModal: context.close }}>{children}</TableBaseContext.Provider>\r\n ))}\r\n </WrapComponent>\r\n )\r\n }\r\n\r\n getDataGridProps = (): DataGridProps<T> => {\r\n const mergeConfig = this.mergeConfig\r\n const obj: DataGridProps<T> = {\r\n getRowId: params.getRowId,\r\n columns: this.columns,\r\n rows: this.props.data?.items ?? [],\r\n checkboxSelection: true,\r\n pagination: true,\r\n density: this.props.slots?.density ?? 'standard',\r\n initialState: TableHelper.mapInitialState(this.props.query, {\r\n columns: { columnVisibilityModel: params.columnVisibilityModel as GridColumnVisibilityModel }\r\n }),\r\n filterDebounceMs: 800,\r\n sx: { border: 0 },\r\n slots: { toolbar: mergeConfig.toolbar },\r\n rowSelectionModel: this.rowSelecteds,\r\n onRowSelectionModelChange: this.handleRowSelectionChange\r\n }\r\n if (params.featureMode === 'server') {\r\n const objServer: Partial<DataGridProps<T>> = {\r\n filterMode: 'server',\r\n sortingMode: 'server',\r\n paginationMode: 'server',\r\n onPaginationModelChange: this.onPaginationModelChange,\r\n onFilterModelChange: this.onFilterModelChange,\r\n onSortModelChange: this.onSortModelChange,\r\n rowCount: this.props.data?.rowTotal ?? 0,\r\n paginationModel: this.tableQueryParams.pagination,\r\n filterModel: this.tableQueryParams.filter as GridFilterModel,\r\n sortModel: TableHelper.mapSortModel(this.tableQueryParams.sort),\r\n loading: this.mergeConfig.loading\r\n }\r\n Object.assign(obj, objServer)\r\n }\r\n return mergeObjects(obj, this.mergeConfig.dataGridProps)\r\n }\r\n\r\n initialColumns = (): GridColDef<T>[] => {\r\n const { ActionRow } = this.mergeConfig\r\n const list: GridColDef<T>[] = []\r\n if (!!ActionRow) {\r\n list.push({\r\n field: 'Actions',\r\n minWidth: 100,\r\n headerAlign: 'right',\r\n align: 'right',\r\n filterable: false,\r\n sortable: false,\r\n renderCell: (value) => <ActionRow value={value.row} />,\r\n ...params.actionRow\r\n })\r\n }\r\n return generateColumns(list)\r\n }\r\n\r\n onPaginationModelChange = (model: GridPaginationModel, details: GridCallbackDetails<'pagination'>) => {\r\n if (this.mergeConfig.loading) return\r\n this.setTableQueryParams({ pagination: model, detail: 'pagination' })\r\n this.handleChange()\r\n }\r\n\r\n onFilterModelChange = (model: GridFilterModel, details: GridCallbackDetails<'filter'>) => {\r\n if (this.mergeConfig.loading) return\r\n const { pagination } = this.tableQueryParams\r\n this.setTableQueryParams({\r\n filter: model as ICustomGridFilterModel<T>,\r\n pagination: { page: 0, pageSize: pagination?.pageSize ?? 25 },\r\n detail: TableHelper.detectSearchType(model)\r\n })\r\n this.handleChange()\r\n }\r\n\r\n onSortModelChange = (model: GridSortModel, details: GridCallbackDetails<any>) => {\r\n if (this.mergeConfig.loading) return\r\n let sortValue = model as ICustomGridSortModel<T>\r\n const { sort } = this.tableQueryParams\r\n if (!!sort?.length && !sortValue.length) {\r\n if (sort?.[0]?.field === this.defaultTableQueryParams.sort?.[0]?.field) {\r\n sortValue = [{ field: sort[0]?.field, sort: sort[0]?.sort === 'desc' ? 'asc' : 'desc' }]\r\n } else {\r\n sortValue = this.defaultTableQueryParams.sort ?? []\r\n }\r\n }\r\n this.setTableQueryParams({ sort: sortValue, detail: 'sort' })\r\n this.handleChange()\r\n }\r\n\r\n handleChange = () => {\r\n if (this.changeTimeout) clearTimeout(this.changeTimeout)\r\n this.changeTimeout = setTimeout(() => {\r\n this.props.onChange && this.props.onChange(this.tableQueryParams)\r\n }, 300)\r\n }\r\n\r\n handleRowSelectionChange = (value: GridRowSelectionModel, details: GridCallbackDetails) => {\r\n if (this.mergeConfig.maxSelcion && value.length > this.mergeConfig.maxSelcion) {\r\n this.rowSelecteds = value.slice(0, this.mergeConfig.maxSelcion)\r\n } else {\r\n this.rowSelecteds = value\r\n }\r\n this.props.onRowSelectionChange && this.props.onRowSelectionChange(this.rowSelecteds, details)\r\n this.forceUpdate()\r\n }\r\n }\r\n\r\n return Table\r\n}\r\n\r\nexport default CreateTable\r\n\r\nconst Wrap = styled(({ children, ...p }: BoxProps) => (\r\n <Box {...p}>\r\n <div>{children}</div>\r\n </Box>\r\n))({\r\n flex: 1,\r\n position: 'relative',\r\n '& > div': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n overflowY: 'auto'\r\n },\r\n '& .MuiDataGrid-root': {\r\n '--unstable_DataGrid-radius': 0,\r\n overflow: 'hidden'\r\n },\r\n [`& .MuiDataGrid-cell.${dinoTableClasses.whiteSpacePre} .MuiDataGrid-cellContent`]: {\r\n whiteSpace: 'pre'\r\n }\r\n})\r\n"],"names":["CreateTable","params","Table","props","_this","_classCallCheck","_callSuper","_defineProperty","value","tableQueryParams","mergeObjects","children","WrapComponent","disableGlobalModalProvider","Fragment","GlobalModal","_jsx","mapGlobalModalContext","context","TableBaseContext","Provider","showModal","show","closeModal","close","_this$props$data$item","_this$props$data","_this$props$slots$den","_this$props$slots","mergeConfig","obj","getRowId","columns","rows","data","items","checkboxSelection","pagination","density","slots","initialState","TableHelper","mapInitialState","query","columnVisibilityModel","filterDebounceMs","sx","border","toolbar","rowSelectionModel","rowSelecteds","onRowSelectionModelChange","handleRowSelectionChange","featureMode","_this$props$data$rowT","_this$props$data2","objServer","filterMode","sortingMode","paginationMode","onPaginationModelChange","onFilterModelChange","onSortModelChange","rowCount","rowTotal","paginationModel","filterModel","filter","sortModel","mapSortModel","sort","loading","Object","assign","dataGridProps","extendColDefs","ActionRow","list","push","_objectSpread","field","minWidth","headerAlign","align","filterable","sortable","renderCell","row","actionRow","keys","map","key","filterOperators","customFilterOperators","length","apply","_toConsumableArray","model","details","setTableQueryParams","detail","handleChange","_pagination$pageSize","page","pageSize","detectSearchType","_sort$","_this$defaultTableQue","_sort$2","_sort$3","_this$defaultTableQue2","sortValue","defaultTableQueryParams","changeTimeout","clearTimeout","setTimeout","onChange","maxSelcion","slice","onRowSelectionChange","forceUpdate","initialColumns","_inherits","Component","_createClass","get","_this$props$slots2","_this$props$slots$too","_this$props$slots3","_this$props$slots4","_this$props$slots$max","_this$props$slots5","_this$props$slots6","toolbarPannelProps","toolbarProps","this","ToolbarPannel","maxSelection","undefined","nextProps","_nextProps$query","equalTableQueryParams","JSON","stringify","renderWrapContext","Wrap","DataGrid","getDataGridProps","styled","_ref","p","_objectWithoutProperties","_excluded","Box","flex","position","top","left","width","height","overflowY","overflow","concat","dinoTableClasses","whiteSpacePre","whiteSpace"],"mappings":"ozBA6CM,SAAUA,EAAyCC,GA8LvD,kBA3KE,SAAAC,EAAYC,GAAqB,IAAAC,EAKT,OALSC,OAAAH,GAC/BE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EAmBQ,sBAAA,SAACI,GACrBJ,EAAKK,iBAAmBC,EAAa,CAAE,EAAEN,EAAKK,iBAAkBD,KACjED,EAAAH,EAiCmB,oBAAA,SAACO,GACnB,IAAMC,EAAgBX,EAAOY,2BAA6BC,EAAWC,EACrE,OACEC,EAACJ,EACE,CAAAD,SAAAM,EAAsB,SAACC,GAAO,OAC7BF,EAACG,EAAiBC,UAASZ,MAAO,CAAEa,UAAWH,EAAQI,KAAMC,WAAYL,EAAQM,gBAAUb,GAC5F,OAGNJ,EAAAH,EAAA,mBAEkB,WAAuB,IAAAqB,EAAAC,EAAAC,EAAAC,EAClCC,EAAczB,EAAKyB,YACnBC,EAAwB,CAC5BC,SAAU9B,EAAO8B,SACjBC,QAAS5B,EAAK4B,QACdC,aAAIR,UAAAC,EAAEtB,EAAKD,MAAM+B,YAAI,IAAAR,OAAA,EAAfA,EAAiBS,aAAK,IAAAV,EAAAA,EAAI,GAChCW,mBAAmB,EACnBC,YAAY,EACZC,gBAAOX,UAAAC,EAAExB,EAAKD,MAAMoC,aAAK,IAAAX,OAAA,EAAhBA,EAAkBU,eAAO,IAAAX,EAAAA,EAAI,WACtCa,aAAcC,EAAYC,gBAAgBtC,EAAKD,MAAMwC,MAAO,CAC1DX,QAAS,CAAEY,sBAAuB3C,EAAO2C,yBAE3CC,iBAAkB,IAClBC,GAAI,CAAEC,OAAQ,GACdR,MAAO,CAAES,QAASnB,EAAYmB,SAC9BC,kBAAmB7C,EAAK8C,aACxBC,0BAA2B/C,EAAKgD,0BAElC,GAA2B,WAAvBnD,EAAOoD,YAA0B,CAAA,IAAAC,EAAAC,EAC7BC,EAAuC,CAC3CC,WAAY,SACZC,YAAa,SACbC,eAAgB,SAChBC,wBAAyBxD,EAAKwD,wBAC9BC,oBAAqBzD,EAAKyD,oBAC1BC,kBAAmB1D,EAAK0D,kBACxBC,iBAAQT,UAAAC,EAAEnD,EAAKD,MAAM+B,YAAI,IAAAqB,OAAA,EAAfA,EAAiBS,gBAAQ,IAAAV,EAAAA,EAAI,EACvCW,gBAAiB7D,EAAKK,iBAAiB4B,WACvC6B,YAAa9D,EAAKK,iBAAiB0D,OACnCC,UAAW3B,EAAY4B,aAAajE,EAAKK,iBAAiB6D,MAC1DC,QAASnE,EAAKyB,YAAY0C,SAE5BC,OAAOC,OAAO3C,EAAK0B,EACpB,CACD,OAAO9C,EAAaoB,EAAK1B,EAAKyB,YAAY6C,iBAC3CnE,EAAAH,EAAA,iBAEgB,WACf,IA1HqBuE,EACjB3C,EAyHI4C,EAAcxE,EAAKyB,YAAnB+C,UACFC,EAAwB,GAa9B,OAZMD,GACJC,EAAKC,KAAIC,EAAA,CACPC,MAAO,UACPC,SAAU,IACVC,YAAa,QACbC,MAAO,QACPC,YAAY,EACZC,UAAU,EACVC,WAAY,SAAC9E,GAAK,OAAKQ,EAAC4D,EAAS,CAACpE,MAAOA,EAAM+E,KAAO,GACnDtF,EAAOuF,YArIOb,EAwIEE,EAvInB7C,EAAUwC,OAAOiB,KAAKxF,EAAO+B,SAAS0D,IAAgB,SAACC,GAC3D,IAAM7D,EAAGiD,EAAA,CAAKC,MAAOW,GAAQ1F,EAAO+B,QAAQ2D,IAE5C,OADA7D,EAAI8D,gBAAkB3F,EAAO2F,gBAAkB3F,EAAO2F,gBAAgB9D,GAAO+D,EAAsB/D,GAC5FA,CACT,GAEM6C,GAAiBA,EAAcmB,OAAS,GAAG9D,EAAQ8C,KAAIiB,MAAZ/D,EAAOgE,EAASrB,IAC1D3C,IAiINzB,EAAAH,EAAA,0BAEyB,SAAC6F,EAA4BC,GACjD9F,EAAKyB,YAAY0C,UACrBnE,EAAK+F,oBAAoB,CAAE9D,WAAY4D,EAAOG,OAAQ,eACtDhG,EAAKiG,kBACN9F,EAAAH,EAAA,sBAEqB,SAAC6F,EAAwBC,GAA0C,IAAAI,EACvF,IAAIlG,EAAKyB,YAAY0C,QAArB,CACA,IAAQlC,EAAejC,EAAKK,iBAApB4B,WACRjC,EAAK+F,oBAAoB,CACvBhC,OAAQ8B,EACR5D,WAAY,CAAEkE,KAAM,EAAGC,SAA8B,QAAtBF,EAAEjE,aAAU,EAAVA,EAAYmE,gBAAQ,IAAAF,EAAAA,EAAI,IACzDF,OAAQ3D,EAAYgE,iBAAiBR,KAEvC7F,EAAKiG,cAPyB,IAQ/B9F,EAAAH,EAAA,oBAEmB,SAAC6F,EAAsBC,GACzC,IAAI9F,EAAKyB,YAAY0C,QAArB,CACA,IAEyCmC,EAAAC,EACiCC,EAAAC,EAEjEC,EALLC,EAAYd,EACR3B,EAASlE,EAAKK,iBAAd6D,KACR,GAAMA,SAAAA,EAAMwB,SAAWiB,EAAUjB,OAC/B,IAAIxB,iBAAIoC,EAAJpC,EAAO,UAAE,IAAAoC,OAAA,EAATA,EAAW1B,kBAAK2B,EAAKvG,EAAK4G,wBAAwB1C,YAAI,IAAAqC,GAAKA,QAALA,EAAjCA,EAAoC,cAAEA,SAAtCA,EAAwC3B,OAC/D+B,EAAY,CAAC,CAAE/B,MAAc,QAAT4B,EAAEtC,EAAK,UAAE,IAAAsC,OAAA,EAAPA,EAAS5B,MAAOV,KAAwB,UAAX,QAAPuC,EAAAvC,EAAK,UAAE,IAAAuC,OAAA,EAAPA,EAASvC,MAAkB,MAAQ,cAE/EyC,EAA6CD,QAApCA,EAAG1G,EAAK4G,wBAAwB1C,YAAIwC,IAAAA,EAAAA,EAAI,GAGrD1G,EAAK+F,oBAAoB,CAAE7B,KAAMyC,EAAWX,OAAQ,SACpDhG,EAAKiG,cAXyB,IAY/B9F,EAAAH,EAAA,eAEc,WACTA,EAAK6G,eAAeC,aAAa9G,EAAK6G,eAC1C7G,EAAK6G,cAAgBE,WAAW,WAC9B/G,EAAKD,MAAMiH,UAAYhH,EAAKD,MAAMiH,SAAShH,EAAKK,iBACjD,EAAE,OACJF,EAAAH,EAAA,2BAE0B,SAACI,EAA8B0F,GACpD9F,EAAKyB,YAAYwF,YAAc7G,EAAMsF,OAAS1F,EAAKyB,YAAYwF,WACjEjH,EAAK8C,aAAe1C,EAAM8G,MAAM,EAAGlH,EAAKyB,YAAYwF,YAEpDjH,EAAK8C,aAAe1C,EAEtBJ,EAAKD,MAAMoH,sBAAwBnH,EAAKD,MAAMoH,qBAAqBnH,EAAK8C,aAAcgD,GACtF9F,EAAKoH,gBArKLpH,EAAK4B,QAAU5B,EAAKqH,iBACpBrH,EAAKK,iBAAgBsE,KAAQ5E,EAAMwC,OACnCvC,EAAK4G,wBAA0B5G,EAAKK,iBACpCL,EAAK8C,aAAe,GAAE9C,CACxB,CAAC,OAAAsH,EAAAxH,EAbiByH,GAajBC,EAAA1H,EAAA,CAAA,CAAAyF,IAAA,cAAAkC,IAED,WAAe,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACPC,EAAqB3H,EAAa,CAAA,EAAIT,aAAAA,EAAAA,EAAQqI,aAA8BR,QAAlBA,EAAES,KAAKpI,MAAMoC,aAAXuF,IAAgBA,OAAhBA,EAAAA,EAAkBQ,cACpF,MAAO,CACLtF,gBAAO+E,UAAAC,EAAEO,KAAKpI,MAAMoC,aAAK,IAAAyF,OAAA,EAAhBA,EAAkBhF,eAAO,IAAA+E,EAAAA,EAAK,WAAA,OAAM/G,EAACwH,EAAazD,EAAKsD,CAAAA,EAAAA,GAAuB,EACvFzD,UAA2BqD,QAAlBA,EAAEM,KAAKpI,MAAMoC,aAAX0F,IAAgBA,OAAhBA,EAAAA,EAAkBzC,UAC7B5C,sBAAuB3C,EAAO2C,sBAC9ByE,WAA0Ca,QAAhCA,EAAkB,QAAlBC,EAAEI,KAAKpI,MAAMoC,aAAX4F,IAAgBA,OAAhBA,EAAAA,EAAkBM,wBAAYP,EAAAA,EAAIjI,EAAOwI,aACrD/D,cAAehE,EAAa,CAAE,EAAET,EAAOyE,cAA+B,QAAlB0D,EAAEG,KAAKpI,MAAMoC,aAAX6F,IAAgBA,OAAhBA,EAAAA,EAAkB1D,eACxEH,aAAgCmE,IAAvBH,KAAKpI,MAAMoE,QAAwBgE,KAAKpI,MAAMoE,QAAUgE,KAAK9H,iBAAiB8D,QAE3F,GAAC,CAAAoB,IAAA,uBAAAnF,MAMD,WACM+H,KAAKtB,eACPC,aAAaqB,KAAKtB,cAEtB,GAAC,CAAAtB,IAAA,wBAAAnF,MAED,SAAsBmI,GAGyD,IAAAC,EAF7E,MAA2B,WAAvB3I,EAAOoD,cAEJZ,EAAYoG,sBAAsBF,EAAUhG,MAAO4F,KAAKpI,MAAMwC,OAK/DmG,KAAKC,UAAUJ,EAAUzG,QAAU4G,KAAKC,UAAUR,KAAKpI,MAAM+B,OAASyG,EAAUpE,UAAYgE,KAAKpI,MAAMoE,SAJzGgE,KAAKpC,oBAAmC,QAAhByC,EAACD,EAAUhG,aAAKiG,IAAAA,EAAAA,EAAI,KACrC,GAUb,GAAC,CAAAjD,IAAA,SAAAnF,MAED,WACE,OAAO+H,KAAKS,kBACVhI,EAACiI,EACC,CAAAtI,SAAAK,EAACkI,EAAQnE,EAAA,CAACR,QAASgE,KAAKpI,MAAMoE,SAAagE,KAAKY,uBAGtD,IAAC,GAuHL,CAIA,IAAMF,EAAOG,EAAO,SAAAC,GAAA,IAAG1I,EAAQ0I,EAAR1I,SAAa2I,EAACC,EAAAF,EAAAG,GAAA,OACnCxI,EAACyI,EAAG1E,EAAAA,KAAKuE,GAAC,GAAA,CAAA3I,SACRK,EAAM,MAAA,CAAAL,SAAAA,MACF,EAHKyI,CAIX7I,EAAA,CACAmJ,KAAM,EACNC,SAAU,WACV,UAAW,CACTA,SAAU,WACVC,IAAK,EACLC,KAAM,EACNC,MAAO,OACPC,OAAQ,OACRC,UAAW,QAEb,sBAAuB,CACrB,6BAA8B,EAC9BC,SAAU,WACX,uBAAAC,OACuBC,EAAiBC,cAA2C,6BAAA,CAClFC,WAAY"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import React, { ComponentType } from 'react';
|
|
2
1
|
import { DataGridProps, GridColDef, GridFeatureMode, GridFilterOperator } from '@mui/x-data-grid';
|
|
3
2
|
import { GridValidRowModel, GridRowIdGetter } from '@mui/x-data-grid';
|
|
4
3
|
import { GridDensity } from '@mui/x-data-grid';
|
|
4
|
+
import type { ComponentType } from 'react';
|
|
5
5
|
import { IActionRowProps } from './create.action-row';
|
|
6
6
|
import { ICustomGridColDef, ITableData, ITableQueryParams } from './types';
|
|
7
7
|
import { IToolbarPannelProps } from './toolbar-pannel';
|
|
8
8
|
export interface ITableSlots<T> {
|
|
9
9
|
maxSelection?: number;
|
|
10
10
|
density?: GridDensity;
|
|
11
|
-
toolbar?:
|
|
12
|
-
actionRow?:
|
|
11
|
+
toolbar?: ComponentType<IToolbarPannelProps>;
|
|
12
|
+
actionRow?: ComponentType<IActionRowProps<T>>;
|
|
13
13
|
toolbarProps?: IToolbarPannelProps;
|
|
14
14
|
dataGridProps?: DataGridProps;
|
|
15
15
|
}
|