dinocollab-core 1.0.19 → 1.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/README.md +1 -1
  2. package/dist/_virtual/_rollupPluginBabelHelpers.js +1 -1
  3. package/dist/filter-bar/base.js +1 -1
  4. package/dist/filter-bar/base.js.map +1 -1
  5. package/dist/filter-bar/create.filter-bar.js +1 -1
  6. package/dist/filter-bar/create.filter-bar.js.map +1 -1
  7. package/dist/filter-bar/create.filter-menu.js +1 -1
  8. package/dist/filter-bar/create.filter-menu.js.map +1 -1
  9. package/dist/filter-bar/create.filter-panel.js +1 -1
  10. package/dist/filter-bar/create.filter-panel.js.map +1 -1
  11. package/dist/filter-bar/create.filtered.js +1 -1
  12. package/dist/filter-bar/create.filtered.js.map +1 -1
  13. package/dist/filter-bar/types.js.map +1 -1
  14. package/dist/filter-bar/ui.units.js +1 -1
  15. package/dist/filter-bar/ui.units.js.map +1 -1
  16. package/dist/form/create.autocomplete.chips.js.map +1 -1
  17. package/dist/form/create.form-base.js +1 -1
  18. package/dist/form/create.form-base.js.map +1 -1
  19. package/dist/form/create.form-grid-layout.js +1 -1
  20. package/dist/form/create.form-grid-layout.js.map +1 -1
  21. package/dist/form/create.input-file.csv-local-parser.js.map +1 -1
  22. package/dist/form/create.input.js +1 -1
  23. package/dist/form/create.input.js.map +1 -1
  24. package/dist/index.js +1 -1
  25. package/dist/table/create.table.js +1 -1
  26. package/dist/table/create.table.js.map +1 -1
  27. package/dist/table-grid/create.table-grid.js +1 -1
  28. package/dist/table-grid/create.table-grid.js.map +1 -1
  29. package/dist/types/filter-bar/base.d.ts +10 -16
  30. package/dist/types/filter-bar/create.filter-bar.d.ts +3 -91
  31. package/dist/types/filter-bar/create.filter-menu.d.ts +6 -59
  32. package/dist/types/filter-bar/create.filter-panel.d.ts +7 -111
  33. package/dist/types/filter-bar/create.filtered.d.ts +11 -8
  34. package/dist/types/filter-bar/create.sort-menu.d.ts +1 -7
  35. package/dist/types/filter-bar/index.d.ts +0 -1
  36. package/dist/types/filter-bar/types.d.ts +42 -23
  37. package/dist/types/filter-bar/ui.units.d.ts +4 -3
  38. package/dist/types/form/create.autocomplete.chips.d.ts +3 -3
  39. package/dist/types/form/create.form-base.d.ts +15 -21
  40. package/dist/types/form/create.form-grid-layout.units.d.ts +6 -2
  41. package/dist/types/form/create.input-file.csv-local-parser.d.ts +1 -2
  42. package/dist/types/form/create.input.d.ts +1 -2
  43. package/dist/types/form/dino-form.d.ts +4 -2
  44. package/dist/types/form/types.d.ts +18 -7
  45. package/dist/types/table-grid/types.d.ts +2 -2
  46. package/dist/types/utils/helpers.d.ts +1 -0
  47. package/dist/utils/helpers.js +1 -1
  48. package/dist/utils/helpers.js.map +1 -1
  49. package/package.json +5 -2
  50. package/dist/filter-bar/create.sort-menu.js +0 -2
  51. package/dist/filter-bar/create.sort-menu.js.map +0 -1
  52. package/dist/types/filter-bar/demo.d.ts +0 -3
  53. package/dist/types/lab/create.autocomplete.simple.d.ts +0 -19
  54. package/dist/types/lab/create.dino-store.d.ts +0 -1
  55. package/dist/types/lab/grafana-dashboard/configs.d.ts +0 -4
  56. package/dist/types/lab/grafana-dashboard/date-time-range/absolute-time-rage.d.ts +0 -14
  57. package/dist/types/lab/grafana-dashboard/date-time-range/helpers.d.ts +0 -36
  58. package/dist/types/lab/grafana-dashboard/date-time-range/index.d.ts +0 -24
  59. package/dist/types/lab/grafana-dashboard/date-time-range/menu-wrap.d.ts +0 -19
  60. package/dist/types/lab/grafana-dashboard/date-time-range/quick-ranges.d.ts +0 -20
  61. package/dist/types/lab/grafana-dashboard/date-time-range/types.d.ts +0 -8
  62. package/dist/types/lab/grafana-dashboard/date-time-range/units.d.ts +0 -2
  63. package/dist/types/lab/grafana-dashboard/helper.d.ts +0 -7
  64. package/dist/types/lab/grafana-dashboard/hooks.d.ts +0 -10
  65. package/dist/types/lab/grafana-dashboard/icons.d.ts +0 -5
  66. package/dist/types/lab/grafana-dashboard/index.d.ts +0 -12
  67. package/dist/types/lab/grafana-dashboard/top-bar.d.ts +0 -19
  68. package/dist/types/lab/grafana-dashboard/top-bar.types.d.ts +0 -4
  69. package/dist/types/lab/grafana-dashboard/types.d.ts +0 -8
  70. package/dist/types/lab/media-player.core1.d.ts +0 -14
  71. package/dist/types/lab/media-player.muted.d.ts +0 -10
  72. package/dist/types/lab/media-player.units.d.ts +0 -36
  73. package/dist/types/lab/select-mul-with-api/create.select-mul-with-api.d.ts +0 -26
  74. package/dist/types/lab/select-mul-with-api/index.d.ts +0 -2
  75. package/dist/types/lab/select-mul-with-api/table-custom.d.ts +0 -43
  76. package/dist/types/lab/select-mul-with-api/types.d.ts +0 -21
  77. package/dist/types/lab/select-mul-with-api/ui.units.d.ts +0 -29
@@ -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 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}\r\n\r\nfunction 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 {...this.getDataGridProps()} />\r\n </Wrap>\r\n )\r\n }\r\n\r\n renderWrapContext = (children: React.ReactNode) => (\r\n <GlobalModal>\r\n {mapGlobalModalContext((context) => (\r\n <TableBaseContext.Provider value={{ showModal: context.show, closeModal: context.close }}>{children}</TableBaseContext.Provider>\r\n ))}\r\n </GlobalModal>\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 // const check = TableHelper.isEmpty(this.tableQueryParams)\r\n // const checkCache = TableHelper.isEmpty(this.tableQueryParamsCache)\r\n // const isChange = this.props.onChange && this.props.onChange(this.tableQueryParams)\r\n this.tableQueryParamsCache = 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 },\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","_jsx","GlobalModal","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","tableQueryParamsCache","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","concat","dinoTableClasses","whiteSpacePre","whiteSpace"],"mappings":"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"}
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 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}\r\n\r\nfunction 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 {...this.getDataGridProps()} />\r\n </Wrap>\r\n )\r\n }\r\n\r\n renderWrapContext = (children: React.ReactNode) => (\r\n <GlobalModal>\r\n {mapGlobalModalContext((context) => (\r\n <TableBaseContext.Provider value={{ showModal: context.show, closeModal: context.close }}>{children}</TableBaseContext.Provider>\r\n ))}\r\n </GlobalModal>\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 },\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","_jsx","GlobalModal","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","concat","dinoTableClasses","whiteSpacePre","whiteSpace"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as t,inherits as e,createClass as i,objectSpread2 as o,classCallCheck as n,callSuper as a}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as r,jsxs as l}from"react/jsx-runtime";import{Component as s}from"react";import{styled as c,Box as p,alpha as d,colors as g,Grid as u,Fade as m,CircularProgress as h,Typography as f,Divider as v,TablePagination as S}from"@mui/material";import{mergeObjects as P}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"react-router-dom";import"../utils/query-param.js";import{tableGridClasses as b}from"./helpers.js";import{CreateTableGridItemActions as j}from"./item-actions.js";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import C from"../api-context/global-modal.js";import x from"../api-context/popover-global.js";import y from"../filter-bar/create.filter-bar.js";import"../filter-bar/types.js";import I from"./toolbar-pannel.js";function z(c){var d,g=y(null!==(d=c.filterBarConfig)&&void 0!==d?d:{fields:{}}),z=j(),F=function(){function d(){var e;n(this,d);for(var i=arguments.length,s=new Array(i),c=0;c<i;c++)s[c]=arguments[c];return e=a(this,d,[].concat(s)),t(e,"defaultPagination",{page:0,pageSize:10}),t(e,"filterStateStore",{pagination:e.defaultPagination}),t(e,"setFilterState",(function(t){try{t.details?e.filterStateStore=o({pagination:e.filterStateStore.pagination},t):e.filterStateStore=P({},e.filterState,t),e.props.onFilterChange&&e.props.onFilterChange(e.filterStateStore),e.forceUpdate()}catch(t){console.log(t)}})),t(e,"preRender",(function(t){return l(C,{children:[r(x.Provider,{}),t]})})),t(e,"getRootClases",(function(){var t=[b.root];return e.filterState.loading&&t.push(b.loading),t.join(" ")})),t(e,"getItems",(function(){var t;return null!==(t=e.props.data.items)&&void 0!==t?t:[]})),t(e,"handleFilterChange",(function(t){e.setFilterState(t)})),t(e,"handleChangePage",(function(t,i){e.setFilterState({pagination:{page:i,pageSize:e.filterState.pagination.pageSize}})})),t(e,"handleChangeRowsPerPage",(function(t){e.setFilterState({pagination:{page:0,pageSize:parseInt(t.target.value,10)}})})),e}return e(d,s),i(d,[{key:"filterState",get:function(){var t;return null!==(t=this.props.filter)&&void 0!==t?t:this.filterStateStore}},{key:"slots",get:function(){var t,e,i,n,a,l,s,p=P(c.slots,this.props.slots);return o(o({},p),{},{TableGridItem:null!==(t=null!==(e=null===(i=this.props.slots)||void 0===i?void 0:i.item)&&void 0!==e?e:c.item)&&void 0!==t?t:function(){return r(k,{})},ToolbarPannel:null!==(n=null!==(a=null===(l=this.props.slots)||void 0===l?void 0:l.toolbar)&&void 0!==a?a:null===(s=c.slots)||void 0===s?void 0:s.toolbar)&&void 0!==n?n:I})}},{key:"mergeConfig",get:function(){var t;return{size:null!==(t=c.size)&&void 0!==t?t:{xs:12,sm:6,md:4}}}},{key:"render",value:function(){var t,e=this,i=this.slots,n=i.TableGridItem,a=i.ToolbarPannel,s=i.actionProps,d=this.getItems();return this.preRender(l(w,{className:this.getRootClases(),children:[r(a,o({title:c.title},this.slots.toolbarProps)),r(g,{value:this.filterState,onChange:this.handleFilterChange}),l("div",{className:b.content,children:[r("div",{className:[b.contentInner,b.contentPosition].join(" "),children:r(u,o(o({container:!0,spacing:2},this.slots.gridContainer),{},{children:d.map((function(t,i){return r(u,o(o(o({item:!0},e.mergeConfig.size),e.slots.gridItem),{},{children:l("div",{className:b.item,children:[r(n,{value:t}),r(p,{className:b.actions,children:r(z,o({value:t},s))})]})}),c.getSelecterId(t).toString()+i)}))}))}),r(m,{in:this.filterState.loading,unmountOnExit:!0,children:r("div",{className:[b.overlay,b.contentPosition].join(" "),children:r(h,{size:36})})}),r(m,{in:d.length<1&&!this.filterState.loading,unmountOnExit:!0,children:r("div",{className:[b.noItems,b.contentPosition].join(" "),children:r(f,{variant:"body2",children:"No items data"})})})]}),r(v,{}),r(S,{component:"div",count:null!==(t=this.props.data.totalItems)&&void 0!==t?t:0,page:this.filterState.pagination.page,onPageChange:this.handleChangePage,rowsPerPage:this.filterState.pagination.pageSize,onRowsPerPageChange:this.handleChangeRowsPerPage,slotProps:{select:{MenuProps:{disableScrollLock:!0}}}})]}))}}])}();return F}var w=c(p)(t(t(t(t(t(t(t({flex:1,height:"100%",display:"flex",flexDirection:"column"},".".concat(b.content),{position:"relative",flex:1}),".".concat(b.contentPosition),{position:"absolute",top:0,left:0,width:"100%",height:"100%"}),".".concat(b.contentInner),{overflowY:"auto",padding:"10px 5px"}),".".concat(b.overlay),{display:"flex",alignItems:"center",justifyContent:"center",background:d(g.common.white,.4),zIndex:10}),".".concat(b.noItems),{display:"flex",alignItems:"center",justifyContent:"center"}),".".concat(b.item),{position:"relative"}),".".concat(b.actions),{position:"absolute",top:"5px",right:"5px",zIndex:5,display:"inline-block"})),k=c(p)({width:"100%",paddingBottom:"100%",background:g.grey[600]});export{z as default};
1
+ import{defineProperty as t,inherits as e,createClass as i,objectSpread2 as o,classCallCheck as n,callSuper as a}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as r,jsxs as l}from"react/jsx-runtime";import{Component as s}from"react";import{styled as c,Box as p,alpha as d,colors as g,Grid as u,Fade as m,CircularProgress as h,Typography as f,Divider as v,TablePagination as S}from"@mui/material";import{mergeObjects as b}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"react-router-dom";import"../utils/query-param.js";import{tableGridClasses as P}from"./helpers.js";import{CreateTableGridItemActions as j}from"./item-actions.js";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import C from"../api-context/global-modal.js";import x from"../api-context/popover-global.js";import y from"../filter-bar/create.filter-bar.js";import"../filter-bar/types.js";import I from"./toolbar-pannel.js";function z(c){var d,g=y(null!==(d=c.filterBarConfig)&&void 0!==d?d:{fields:{}}),z=j(),F=function(){function d(){var e;n(this,d);for(var i=arguments.length,s=new Array(i),c=0;c<i;c++)s[c]=arguments[c];return e=a(this,d,[].concat(s)),t(e,"defaultPagination",{page:0,pageSize:10}),t(e,"filterStateStore",{pagination:e.defaultPagination}),t(e,"setFilterState",(function(t){try{t.details?e.filterStateStore=o({pagination:e.filterStateStore.pagination},t):e.filterStateStore=b({},e.filterState,t),e.props.onFilterChange&&e.props.onFilterChange(e.filterStateStore),e.forceUpdate()}catch(t){console.log(t)}})),t(e,"preRender",(function(t){return l(C,{children:[r(x.Provider,{}),t]})})),t(e,"getRootClases",(function(){var t=[P.root];return e.filterState.loading&&t.push(P.loading),t.join(" ")})),t(e,"getItems",(function(){var t;return null!==(t=e.props.data.items)&&void 0!==t?t:[]})),t(e,"handleFilterChange",(function(t){e.setFilterState(t)})),t(e,"handleChangePage",(function(t,i){e.setFilterState({pagination:{page:i,pageSize:e.filterState.pagination.pageSize}})})),t(e,"handleChangeRowsPerPage",(function(t){e.setFilterState({pagination:{page:0,pageSize:parseInt(t.target.value,10)}})})),e}return e(d,s),i(d,[{key:"filterState",get:function(){var t;return null!==(t=this.props.filter)&&void 0!==t?t:this.filterStateStore}},{key:"slots",get:function(){var t,e,i,n,a,l,s;return o(o({},Object.assign({},c.slots,this.props.slots)),{},{TableGridItem:null!==(t=null!==(e=null===(i=this.props.slots)||void 0===i?void 0:i.item)&&void 0!==e?e:c.item)&&void 0!==t?t:function(){return r(k,{})},ToolbarPannel:null!==(n=null!==(a=null===(l=this.props.slots)||void 0===l?void 0:l.toolbar)&&void 0!==a?a:null===(s=c.slots)||void 0===s?void 0:s.toolbar)&&void 0!==n?n:I})}},{key:"mergeConfig",get:function(){var t;return{size:null!==(t=c.size)&&void 0!==t?t:{xs:12,sm:6,md:4}}}},{key:"render",value:function(){var t,e=this,i=this.slots,n=i.TableGridItem,a=i.ToolbarPannel,s=i.actionProps,d=this.getItems();return this.preRender(l(w,{className:this.getRootClases(),children:[r(a,o({title:c.title},this.slots.toolbarProps)),r(g,{value:this.filterState,onChange:this.handleFilterChange}),l("div",{className:P.content,children:[r("div",{className:[P.contentInner,P.contentPosition].join(" "),children:r(u,o(o({container:!0,spacing:2},this.slots.gridContainer),{},{children:d.map((function(t,i){return r(u,o(o(o({item:!0},e.mergeConfig.size),e.slots.gridItem),{},{children:l("div",{className:P.item,children:[r(n,{value:t}),r(p,{className:P.actions,children:r(z,o({value:t},s))})]})}),c.getSelecterId(t).toString()+i)}))}))}),r(m,{in:this.filterState.loading,unmountOnExit:!0,children:r("div",{className:[P.overlay,P.contentPosition].join(" "),children:r(h,{size:36})})}),r(m,{in:d.length<1&&!this.filterState.loading,unmountOnExit:!0,children:r("div",{className:[P.noItems,P.contentPosition].join(" "),children:r(f,{variant:"body2",children:"No items data"})})})]}),r(v,{}),r(S,{component:"div",count:null!==(t=this.props.data.totalItems)&&void 0!==t?t:0,page:this.filterState.pagination.page,onPageChange:this.handleChangePage,rowsPerPage:this.filterState.pagination.pageSize,onRowsPerPageChange:this.handleChangeRowsPerPage,slotProps:{select:{MenuProps:{disableScrollLock:!0}}}})]}))}}])}();return F}var w=c(p)(t(t(t(t(t(t(t({flex:1,height:"100%",display:"flex",flexDirection:"column"},".".concat(P.content),{position:"relative",flex:1}),".".concat(P.contentPosition),{position:"absolute",top:0,left:0,width:"100%",height:"100%"}),".".concat(P.contentInner),{overflowY:"auto",padding:"10px 5px"}),".".concat(P.overlay),{display:"flex",alignItems:"center",justifyContent:"center",background:d(g.common.white,.4),zIndex:10}),".".concat(P.noItems),{display:"flex",alignItems:"center",justifyContent:"center"}),".".concat(P.item),{position:"relative"}),".".concat(P.actions),{position:"absolute",top:"5px",right:"5px",zIndex:5,display:"inline-block"})),k=c(p)({width:"100%",paddingBottom:"100%",background:g.grey[600]});export{z as default};
2
2
  //# sourceMappingURL=create.table-grid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.table-grid.js","sources":["../../src/table-grid/create.table-grid.tsx"],"sourcesContent":["import 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
+ {"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 return {\r\n ...Object.assign({}, params.slots, this.props.slots),\r\n TableGridItem: this.props.slots?.item ?? params.item ?? (() => <ItemDefault />),\r\n ToolbarPannel: this.props.slots?.toolbar ?? params.slots?.toolbar ?? ToolbarPannelDefault\r\n }\r\n }\r\n\r\n get mergeConfig() {\r\n return {\r\n size: params.size ?? { xs: 12, sm: 6, md: 4 }\r\n }\r\n }\r\n\r\n setFilterState = (value: Partial<ITableGridFilter<T>>) => {\r\n try {\r\n if (!!value.details) {\r\n this.filterStateStore = { pagination: this.filterStateStore.pagination, ...value }\r\n } else {\r\n this.filterStateStore = mergeObjects<any>({}, this.filterState, value)\r\n }\r\n this.props.onFilterChange && this.props.onFilterChange(this.filterStateStore)\r\n this.forceUpdate()\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n\r\n render() {\r\n const { TableGridItem, ToolbarPannel, actionProps } = this.slots\r\n const items = this.getItems()\r\n 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","Object","assign","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,26 +1,21 @@
1
1
  import { Component } from 'react';
2
- import { IFilterField, IFilterFields, IFilterItemModel, IFilterModel, IFilterState } from './types';
2
+ import { IFilterModel, IFilterState, IQuickSearchDef } from './types';
3
+ import { IFilterField, IFilterFields, IFilterItemChangeModel } from './types';
3
4
  export declare const filterPanelClasses: {
4
5
  root: string;
5
6
  list: string;
6
7
  item: string;
7
8
  };
9
+ export interface IFilterChange<T> {
10
+ isChanged: boolean;
11
+ filterState: IFilterState<T>;
12
+ }
8
13
  export default class FilterBarBase<P, S, T = any> extends Component<P, S> {
9
14
  mergeFilter: (f1?: IFilterState<T>, f2?: IFilterState<T>) => IFilterState<T>;
10
- patchFilterWithKey: (filterState: IFilterState<T>, key: keyof IFilterModel<T>, value: IFilterItemModel) => {
11
- isChanged: boolean;
12
- filterState: {
13
- filter: IFilterModel<T>;
14
- details?: "add" | "remove" | undefined;
15
- };
16
- };
17
- deleteFilterWithKey: (filterState: IFilterState<T>, key: keyof IFilterModel<T>) => {
18
- isChanged: boolean;
19
- filterState: {
20
- filter: IFilterModel<T>;
21
- details?: "add" | "remove" | undefined;
22
- };
23
- };
15
+ addQuickSearch: (filterState: IFilterState<T>, def?: IQuickSearchDef<T>, value?: string) => IFilterChange<T>;
16
+ removeQuickSearch: (filterState: IFilterState<T>) => IFilterChange<T>;
17
+ patchFilterWithKey: (filterState: IFilterState<T>, data: IFilterItemChangeModel<T>) => IFilterChange<T>;
18
+ deleteFilterWithKey: (filterState: IFilterState<T>, data: IFilterItemChangeModel<T>) => IFilterChange<T>;
24
19
  isFilterEmpty: (filterState: IFilterState<T>) => boolean;
25
20
  isYoutubeLink: (val: string) => boolean;
26
21
  isGenericLink: (val: string) => boolean;
@@ -30,5 +25,4 @@ export default class FilterBarBase<P, S, T = any> extends Component<P, S> {
30
25
  error: boolean;
31
26
  message?: string;
32
27
  };
33
- getSortFields: (fields: IFilterFields<T>) => IFilterFields<T>;
34
28
  }
@@ -1,92 +1,4 @@
1
- import React from 'react';
2
- import { IFilterHelpNotesProps } from './ui.units';
3
- import { IFilterFields, IFilterItemModel, IFilterModel, FilterReason, IFilterState } from './types';
4
- import { FilterPanelState } from './create.filter-panel';
5
- export interface IFilterBarParams<T> {
6
- fields: IFilterFields<T>;
7
- id?: string;
8
- placeholder?: string;
9
- helpNotes?: IFilterHelpNotesProps;
10
- }
11
- export interface IFilterBarProps<T> {
12
- id?: string;
13
- placeholder?: string;
14
- value?: IFilterState<T>;
15
- onChange?: (value: IFilterState<T>) => void;
16
- }
17
- export interface IFilterBarState {
18
- panelState: FilterPanelState;
19
- keyword: string;
20
- }
21
- declare function CreateFilterBar<T>(params: IFilterBarParams<T>): {
22
- new (props: IFilterBarProps<T>): {
23
- defaultState: IFilterBarState;
24
- filterStateStore: IFilterState<T>;
25
- readonly filterState: IFilterState<T>;
26
- setFilterState: (filterState: IFilterState<T>) => void;
27
- readonly configs: {
28
- id: string;
29
- placeholder: string;
30
- helpNotes: IFilterHelpNotesProps | undefined;
31
- };
32
- refFilterButton: HTMLButtonElement | null;
33
- refSortButton: HTMLButtonElement | null;
34
- render(): import("react/jsx-runtime").JSX.Element;
35
- refInput: HTMLInputElement | null;
36
- refBeforeInput: HTMLElement | null;
37
- renderTextField: () => import("react/jsx-runtime").JSX.Element;
38
- handleKeyDown: (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
39
- handleAdd: (key: keyof IFilterModel<T>, value: IFilterItemModel) => void;
40
- handleRemove: (key: keyof IFilterModel<T>) => void;
41
- handleClear: () => void;
42
- showPanel: (reason: FilterReason) => void;
43
- closePanel: () => void;
44
- mergeFilter: (f1?: IFilterState<T> | undefined, f2?: IFilterState<T> | undefined) => IFilterState<T>;
45
- patchFilterWithKey: (filterState: IFilterState<T>, key: "Search" | keyof T, value: IFilterItemModel) => {
46
- isChanged: boolean;
47
- filterState: {
48
- filter: IFilterModel<T>;
49
- details?: "add" | "remove" | undefined;
50
- };
51
- };
52
- deleteFilterWithKey: (filterState: IFilterState<T>, key: "Search" | keyof T) => {
53
- isChanged: boolean;
54
- filterState: {
55
- filter: IFilterModel<T>;
56
- details?: "add" | "remove" | undefined;
57
- };
58
- };
59
- isFilterEmpty: (filterState: IFilterState<T>) => boolean;
60
- isYoutubeLink: (val: string) => boolean;
61
- isGenericLink: (val: string) => boolean;
62
- isGuid: (val: string) => boolean;
63
- getFieldsMatches: (fields: IFilterFields<T>, keyword: string, showAll?: boolean | undefined) => IFilterFields<T>;
64
- validated: (value: string, fieldKey: "Search" | keyof T, filterField?: import("./types").IFilterField | undefined) => {
65
- error: boolean;
66
- message?: string | undefined;
67
- };
68
- getSortFields: (fields: IFilterFields<T>) => IFilterFields<T>;
69
- context: unknown;
70
- setState<K extends keyof IFilterBarState>(state: IFilterBarState | ((prevState: Readonly<IFilterBarState>, props: Readonly<IFilterBarProps<T>>) => IFilterBarState | Pick<IFilterBarState, K> | null) | Pick<IFilterBarState, K> | null, callback?: (() => void) | undefined): void;
71
- forceUpdate(callback?: (() => void) | undefined): void;
72
- readonly props: Readonly<IFilterBarProps<T>>;
73
- state: Readonly<IFilterBarState>;
74
- refs: {
75
- [key: string]: React.ReactInstance;
76
- };
77
- componentDidMount?(): void;
78
- shouldComponentUpdate?(nextProps: Readonly<IFilterBarProps<T>>, nextState: Readonly<IFilterBarState>, nextContext: any): boolean;
79
- componentWillUnmount?(): void;
80
- componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
81
- getSnapshotBeforeUpdate?(prevProps: Readonly<IFilterBarProps<T>>, prevState: Readonly<IFilterBarState>): any;
82
- componentDidUpdate?(prevProps: Readonly<IFilterBarProps<T>>, prevState: Readonly<IFilterBarState>, snapshot?: any): void;
83
- componentWillMount?(): void;
84
- UNSAFE_componentWillMount?(): void;
85
- componentWillReceiveProps?(nextProps: Readonly<IFilterBarProps<T>>, nextContext: any): void;
86
- UNSAFE_componentWillReceiveProps?(nextProps: Readonly<IFilterBarProps<T>>, nextContext: any): void;
87
- componentWillUpdate?(nextProps: Readonly<IFilterBarProps<T>>, nextState: Readonly<IFilterBarState>, nextContext: any): void;
88
- UNSAFE_componentWillUpdate?(nextProps: Readonly<IFilterBarProps<T>>, nextState: Readonly<IFilterBarState>, nextContext: any): void;
89
- };
90
- contextType?: React.Context<any> | undefined;
91
- };
1
+ import { ComponentType } from 'react';
2
+ import { IFilterBarParams, IFilterBarProps } from './types';
3
+ declare function CreateFilterBar<T>(params: IFilterBarParams<T>): ComponentType<IFilterBarProps<T>>;
92
4
  export default CreateFilterBar;
@@ -1,66 +1,13 @@
1
- import React from 'react';
1
+ import { ComponentType } from 'react';
2
2
  import { ButtonProps } from '@mui/material';
3
- import { IFilterModel, IFilterPanelParams, IFilterPannelSubmitFunc } from './types';
4
- interface IProps<T> {
5
- onSubmit?: IFilterPannelSubmitFunc<T>;
3
+ import { IFilterBarParams, IFilterModel, IFilterSubmitFunc } from './types';
4
+ export interface IFilterMenuProps<T> {
5
+ onSubmit?: IFilterSubmitFunc<T>;
6
6
  onCancel?: ButtonProps['onClick'];
7
7
  }
8
- interface IState<T> {
8
+ export interface IFilterMenuState<T> {
9
9
  fieldSelected: keyof IFilterModel<T> | null;
10
10
  messageError?: string;
11
11
  }
12
- declare function CreateFilterMenu<T>(params: IFilterPanelParams<T>): {
13
- new (props: IProps<T>): {
14
- render(): import("react/jsx-runtime").JSX.Element;
15
- renderFrom: (fieldSelected: keyof IFilterModel<T>) => import("react/jsx-runtime").JSX.Element;
16
- renderWithMode: (fieldSelected: keyof IFilterModel<T>) => import("react/jsx-runtime").JSX.Element;
17
- handleSubmit: (fieldSelected: keyof IFilterModel<T>, event: React.FormEvent<HTMLFormElement>) => void;
18
- mergeFilter: (f1?: import("./types").IFilterState<T> | undefined, f2?: import("./types").IFilterState<T> | undefined) => import("./types").IFilterState<T>;
19
- patchFilterWithKey: (filterState: import("./types").IFilterState<T>, key: "Search" | keyof T, value: import("./types").IFilterItemModel) => {
20
- isChanged: boolean;
21
- filterState: {
22
- filter: IFilterModel<T>;
23
- details?: "add" | "remove" | undefined;
24
- };
25
- };
26
- deleteFilterWithKey: (filterState: import("./types").IFilterState<T>, key: "Search" | keyof T) => {
27
- isChanged: boolean;
28
- filterState: {
29
- filter: IFilterModel<T>;
30
- details?: "add" | "remove" | undefined;
31
- };
32
- };
33
- isFilterEmpty: (filterState: import("./types").IFilterState<T>) => boolean;
34
- isYoutubeLink: (val: string) => boolean;
35
- isGenericLink: (val: string) => boolean;
36
- isGuid: (val: string) => boolean;
37
- getFieldsMatches: (fields: import("./types").IFilterFields<T>, keyword: string, showAll?: boolean | undefined) => import("./types").IFilterFields<T>;
38
- validated: (value: string, fieldKey: "Search" | keyof T, filterField?: import("./types").IFilterField | undefined) => {
39
- error: boolean;
40
- message?: string | undefined;
41
- };
42
- getSortFields: (fields: import("./types").IFilterFields<T>) => import("./types").IFilterFields<T>;
43
- context: unknown;
44
- setState<K extends keyof IState<T>>(state: IState<T> | ((prevState: Readonly<IState<T>>, props: Readonly<IProps<T>>) => IState<T> | Pick<IState<T>, K> | null) | Pick<IState<T>, K> | null, callback?: (() => void) | undefined): void;
45
- forceUpdate(callback?: (() => void) | undefined): void;
46
- readonly props: Readonly<IProps<T>>;
47
- state: Readonly<IState<T>>;
48
- refs: {
49
- [key: string]: React.ReactInstance;
50
- };
51
- componentDidMount?(): void;
52
- shouldComponentUpdate?(nextProps: Readonly<IProps<T>>, nextState: Readonly<IState<T>>, nextContext: any): boolean;
53
- componentWillUnmount?(): void;
54
- componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
55
- getSnapshotBeforeUpdate?(prevProps: Readonly<IProps<T>>, prevState: Readonly<IState<T>>): any;
56
- componentDidUpdate?(prevProps: Readonly<IProps<T>>, prevState: Readonly<IState<T>>, snapshot?: any): void;
57
- componentWillMount?(): void;
58
- UNSAFE_componentWillMount?(): void;
59
- componentWillReceiveProps?(nextProps: Readonly<IProps<T>>, nextContext: any): void;
60
- UNSAFE_componentWillReceiveProps?(nextProps: Readonly<IProps<T>>, nextContext: any): void;
61
- componentWillUpdate?(nextProps: Readonly<IProps<T>>, nextState: Readonly<IState<T>>, nextContext: any): void;
62
- UNSAFE_componentWillUpdate?(nextProps: Readonly<IProps<T>>, nextState: Readonly<IState<T>>, nextContext: any): void;
63
- };
64
- contextType?: React.Context<any> | undefined;
65
- };
12
+ declare function CreateFilterMenu<T>(params: IFilterBarParams<T>): ComponentType<IFilterMenuProps<T>>;
66
13
  export default CreateFilterMenu;
@@ -1,117 +1,13 @@
1
- import React, { PropsWithChildren } from 'react';
2
- import { IFilterModel, FilterReason, IFilterPanelParams, IFilterPannelSubmitFunc } from './types';
3
- export interface FilterPanelState {
1
+ import { ComponentType, PropsWithChildren } from 'react';
2
+ import { IFilterReason, IFilterSubmitFunc, IFilterBarParams } from './types';
3
+ export interface IFilterPanelState {
4
4
  anchorEl: HTMLElement | null;
5
- reason?: FilterReason;
5
+ reason?: IFilterReason;
6
6
  }
7
- interface IProps<T> extends FilterPanelState, PropsWithChildren {
7
+ interface IFilterPanelProps<T> extends IFilterPanelState, PropsWithChildren {
8
8
  keyword?: string;
9
- onSubmit?: IFilterPannelSubmitFunc<T>;
9
+ onSubmit?: IFilterSubmitFunc<T>;
10
10
  onClose?: () => void;
11
11
  }
12
- declare function CreateFilterPanel<T>(params: IFilterPanelParams<T>): {
13
- new (props: IProps<T>): {
14
- render(): import("react/jsx-runtime").JSX.Element;
15
- renderContent: () => import("react/jsx-runtime").JSX.Element | undefined;
16
- renderSearchInput: () => import("react/jsx-runtime").JSX.Element;
17
- handleClick: (key: keyof IFilterModel<T>) => void;
18
- mergeFilter: (f1?: import("./types").IFilterState<T> | undefined, f2?: import("./types").IFilterState<T> | undefined) => import("./types").IFilterState<T>;
19
- patchFilterWithKey: (filterState: import("./types").IFilterState<T>, key: "Search" | keyof T, value: import("./types").IFilterItemModel) => {
20
- isChanged: boolean;
21
- filterState: {
22
- filter: IFilterModel<T>;
23
- details?: "add" | "remove" | undefined;
24
- };
25
- };
26
- deleteFilterWithKey: (filterState: import("./types").IFilterState<T>, key: "Search" | keyof T) => {
27
- isChanged: boolean;
28
- filterState: {
29
- filter: IFilterModel<T>;
30
- details?: "add" | "remove" | undefined;
31
- };
32
- };
33
- isFilterEmpty: (filterState: import("./types").IFilterState<T>) => boolean;
34
- isYoutubeLink: (val: string) => boolean;
35
- isGenericLink: (val: string) => boolean;
36
- isGuid: (val: string) => boolean;
37
- getFieldsMatches: (fields: import("./types").IFilterFields<T>, keyword: string, showAll?: boolean | undefined) => import("./types").IFilterFields<T>;
38
- validated: (value: string, fieldKey: "Search" | keyof T, filterField?: import("./types").IFilterField | undefined) => {
39
- error: boolean;
40
- message?: string | undefined;
41
- };
42
- getSortFields: (fields: import("./types").IFilterFields<T>) => import("./types").IFilterFields<T>;
43
- context: unknown;
44
- setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<IProps<T>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
45
- forceUpdate(callback?: (() => void) | undefined): void;
46
- readonly props: Readonly<IProps<T>>;
47
- state: Readonly<{}>;
48
- refs: {
49
- [key: string]: React.ReactInstance;
50
- };
51
- componentDidMount?(): void;
52
- shouldComponentUpdate?(nextProps: Readonly<IProps<T>>, nextState: Readonly<{}>, nextContext: any): boolean;
53
- componentWillUnmount?(): void;
54
- componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
55
- getSnapshotBeforeUpdate?(prevProps: Readonly<IProps<T>>, prevState: Readonly<{}>): any;
56
- componentDidUpdate?(prevProps: Readonly<IProps<T>>, prevState: Readonly<{}>, snapshot?: any): void;
57
- componentWillMount?(): void;
58
- UNSAFE_componentWillMount?(): void;
59
- componentWillReceiveProps?(nextProps: Readonly<IProps<T>>, nextContext: any): void;
60
- UNSAFE_componentWillReceiveProps?(nextProps: Readonly<IProps<T>>, nextContext: any): void;
61
- componentWillUpdate?(nextProps: Readonly<IProps<T>>, nextState: Readonly<{}>, nextContext: any): void;
62
- UNSAFE_componentWillUpdate?(nextProps: Readonly<IProps<T>>, nextState: Readonly<{}>, nextContext: any): void;
63
- };
64
- new (props: IProps<T>, context: any): {
65
- render(): import("react/jsx-runtime").JSX.Element;
66
- renderContent: () => import("react/jsx-runtime").JSX.Element | undefined;
67
- renderSearchInput: () => import("react/jsx-runtime").JSX.Element;
68
- handleClick: (key: keyof IFilterModel<T>) => void;
69
- mergeFilter: (f1?: import("./types").IFilterState<T> | undefined, f2?: import("./types").IFilterState<T> | undefined) => import("./types").IFilterState<T>;
70
- patchFilterWithKey: (filterState: import("./types").IFilterState<T>, key: "Search" | keyof T, value: import("./types").IFilterItemModel) => {
71
- isChanged: boolean;
72
- filterState: {
73
- filter: IFilterModel<T>;
74
- details?: "add" | "remove" | undefined;
75
- };
76
- };
77
- deleteFilterWithKey: (filterState: import("./types").IFilterState<T>, key: "Search" | keyof T) => {
78
- isChanged: boolean;
79
- filterState: {
80
- filter: IFilterModel<T>;
81
- details?: "add" | "remove" | undefined;
82
- };
83
- };
84
- isFilterEmpty: (filterState: import("./types").IFilterState<T>) => boolean;
85
- isYoutubeLink: (val: string) => boolean;
86
- isGenericLink: (val: string) => boolean;
87
- isGuid: (val: string) => boolean;
88
- getFieldsMatches: (fields: import("./types").IFilterFields<T>, keyword: string, showAll?: boolean | undefined) => import("./types").IFilterFields<T>;
89
- validated: (value: string, fieldKey: "Search" | keyof T, filterField?: import("./types").IFilterField | undefined) => {
90
- error: boolean;
91
- message?: string | undefined;
92
- };
93
- getSortFields: (fields: import("./types").IFilterFields<T>) => import("./types").IFilterFields<T>;
94
- context: unknown;
95
- setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<IProps<T>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
96
- forceUpdate(callback?: (() => void) | undefined): void;
97
- readonly props: Readonly<IProps<T>>;
98
- state: Readonly<{}>;
99
- refs: {
100
- [key: string]: React.ReactInstance;
101
- };
102
- componentDidMount?(): void;
103
- shouldComponentUpdate?(nextProps: Readonly<IProps<T>>, nextState: Readonly<{}>, nextContext: any): boolean;
104
- componentWillUnmount?(): void;
105
- componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
106
- getSnapshotBeforeUpdate?(prevProps: Readonly<IProps<T>>, prevState: Readonly<{}>): any;
107
- componentDidUpdate?(prevProps: Readonly<IProps<T>>, prevState: Readonly<{}>, snapshot?: any): void;
108
- componentWillMount?(): void;
109
- UNSAFE_componentWillMount?(): void;
110
- componentWillReceiveProps?(nextProps: Readonly<IProps<T>>, nextContext: any): void;
111
- UNSAFE_componentWillReceiveProps?(nextProps: Readonly<IProps<T>>, nextContext: any): void;
112
- componentWillUpdate?(nextProps: Readonly<IProps<T>>, nextState: Readonly<{}>, nextContext: any): void;
113
- UNSAFE_componentWillUpdate?(nextProps: Readonly<IProps<T>>, nextState: Readonly<{}>, nextContext: any): void;
114
- };
115
- contextType?: React.Context<any> | undefined;
116
- };
12
+ declare function CreateFilterPanel<T>(params: IFilterBarParams<T>): ComponentType<IFilterPanelProps<T>>;
117
13
  export default CreateFilterPanel;
@@ -1,14 +1,15 @@
1
1
  import React from 'react';
2
- import { IFilterFields, IFilterModel, IFilterState } from './types';
2
+ import { IFilterBarParams, IFilterState, IFilterSubmitFunc } from './types';
3
3
  interface IProps<T> {
4
- fields: IFilterFields<T>;
5
4
  filterState: IFilterState<T>;
6
- onRemove?: (key: keyof IFilterModel<T>) => void;
5
+ onRemove?: IFilterSubmitFunc<T>;
7
6
  }
8
- declare function CreateFiltered<T>(): {
7
+ declare function CreateFiltered<T>(params: IFilterBarParams<T>): {
9
8
  new (props: IProps<T>): {
10
- render(): import("react/jsx-runtime").JSX.Element[];
11
- handleRemove: (key: keyof IFilterModel<T>) => void;
9
+ render(): import("react/jsx-runtime").JSX.Element;
10
+ renderQuickSearch: () => import("react/jsx-runtime").JSX.Element;
11
+ handleRemove: (field: keyof T) => void;
12
+ handleQuickSearchRemove: () => void;
12
13
  context: unknown;
13
14
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<IProps<T>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
14
15
  forceUpdate(callback?: (() => void) | undefined): void;
@@ -31,8 +32,10 @@ declare function CreateFiltered<T>(): {
31
32
  UNSAFE_componentWillUpdate?(nextProps: Readonly<IProps<T>>, nextState: Readonly<{}>, nextContext: any): void;
32
33
  };
33
34
  new (props: IProps<T>, context: any): {
34
- render(): import("react/jsx-runtime").JSX.Element[];
35
- handleRemove: (key: keyof IFilterModel<T>) => void;
35
+ render(): import("react/jsx-runtime").JSX.Element;
36
+ renderQuickSearch: () => import("react/jsx-runtime").JSX.Element;
37
+ handleRemove: (field: keyof T) => void;
38
+ handleQuickSearchRemove: () => void;
36
39
  context: unknown;
37
40
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<IProps<T>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
38
41
  forceUpdate(callback?: (() => void) | undefined): void;
@@ -1,7 +1 @@
1
- /// <reference types="react" />
2
- import { IFilterPanelParams, IFilterPannelSubmitFunc } from './types';
3
- interface IProps<T> {
4
- onSubmit?: IFilterPannelSubmitFunc<T>;
5
- }
6
- declare function CreateFilterSort<T>(params: IFilterPanelParams<T>): React.ComponentType<IProps<T>>;
7
- export default CreateFilterSort;
1
+ export {};
@@ -1,3 +1,2 @@
1
1
  export { default as CreateFilterBar } from './create.filter-bar';
2
- export type { IFilterBarParams as FilterBarParams } from './create.filter-bar';
3
2
  export * from './types';