dinocollab-core 2.1.54 → 2.1.55

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 +1 @@
1
- {"version":3,"file":"request-param.js","sources":["../../../../src/http-service/graphql/request-param.ts"],"sourcesContent":["export type IVariable<T extends object> = keyof T\r\n\r\nexport type ILogic = 'Or' | 'And'\r\n\r\nexport type ISortDirection = 'ASC' | 'DESC'\r\n\r\nexport interface ISeedModel<T> {\r\n key: string\r\n field: keyof T\r\n}\r\n\r\nexport interface IFilterOption {\r\n logic: ILogic\r\n ignoreEmpty: boolean\r\n}\r\n\r\nexport interface IRequestParamOption {\r\n ignoreEmpty: boolean\r\n}\r\n\r\nexport interface ISortOption {\r\n direction: ISortDirection\r\n}\r\n\r\nexport type ISortStore<T extends object> = { [key in keyof T]?: ISortDirection }\r\n\r\nexport type IAllOptions = IFilterOption & IRequestParamOption & ISortOption\r\n\r\nexport type IRequestParamResult<T extends object> = {\r\n sort?: ISortStore<T>[]\r\n skip: number\r\n take: number\r\n filter?: string\r\n noTotal?: boolean\r\n seedKey?: string\r\n seedField?: string\r\n}\r\n\r\nexport class RequestParam<T extends object = any> {\r\n private readonly _option?: Partial<IRequestParamOption>\r\n constructor(option?: Partial<IRequestParamOption>) {\r\n this._option = option\r\n }\r\n\r\n private mergeOptions = (...p: any[]): Partial<IAllOptions> => {\r\n return p.reduce((a, b) => {\r\n return Object.assign(a, b ?? {})\r\n }, {})\r\n }\r\n\r\n private ignoreEmpty = (field2: string, option?: Partial<IFilterOption>) => {\r\n const mOption = this.mergeOptions(this._option, option)\r\n return !field2 && mOption?.ignoreEmpty === true\r\n }\r\n\r\n private _filter: string[] = []\r\n private _filterBase = (field1: IVariable<T>, operation: string, field2: string, option?: Partial<IFilterOption>) => {\r\n const logicStr = this._filter.length ? ' ' + (option?.logic === 'And' ? '&&' : '||') + ' ' : ''\r\n this._filter.push(`${logicStr}${field1 as string}${operation}${field2 as string}`)\r\n return this\r\n }\r\n filter = (field1: IVariable<T>, field2: string | number, option?: Partial<IFilterOption>) => {\r\n if (typeof field2 === 'string' && this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '==', typeof field2 === 'string' ? `\"${field2}\"` : field2.toString(), option)\r\n }\r\n filterNotEquals = (field1: IVariable<T>, field2: string | number, option?: Partial<IFilterOption>) => {\r\n if (typeof field2 === 'string' && this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '!=', typeof field2 === 'string' ? `\"${field2}\"` : field2.toString(), option)\r\n }\r\n filterEnum = (field1: IVariable<T>, field2: string | number, option?: Partial<IFilterOption>) => {\r\n if (typeof field2 === 'string' && this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '==', typeof field2 === 'string' ? field2 : field2.toString(), option)\r\n }\r\n filterStartsWith = (field1: IVariable<T>, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '.startsWith(\"' + (field2 as string) + '\")', '', option)\r\n }\r\n filterContains = (field1: IVariable<T>, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '.Contains(\"' + (field2 as string) + '\")', '', option)\r\n }\r\n filterLast = (field1: IVariable<T>, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '.endsWith(\"' + (field2 as string) + '\")', '', option)\r\n }\r\n filterNumber = (field1: IVariable<T>, operator: string, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, ` ${operator} ` + (field2 as string), '', option)\r\n }\r\n filterGreater = (field1: IVariable<T>, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, \" > '\" + (field2 as string) + \"'\", '', option)\r\n }\r\n filterLess = (field1: IVariable<T>, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, \" < '\" + (field2 as string) + \"'\", '', option)\r\n }\r\n filterCustom = (field1: string, option?: Partial<IFilterOption>) => {\r\n const logicStr = this._filter.length ? ' ' + (option?.logic === 'And' ? '&&' : '||') + ' ' : ''\r\n this._filter.push(`${logicStr}${field1 as string}`)\r\n return this\r\n }\r\n\r\n scope = (action: (crd: RequestParam<T>) => RequestParam<T>, option?: Partial<IFilterOption>) => {\r\n const crd = action(new RequestParam(this._option))\r\n const temp = crd.buildFilter()\r\n if (temp) {\r\n const logicStr = this._filter.length ? ' ' + (option?.logic === 'And' ? '&&' : '||') + ' ' : ''\r\n this._filter.push(`${logicStr}(${crd.buildFilter()})`)\r\n }\r\n return this\r\n }\r\n\r\n private seedStore?: ISeedModel<T>\r\n seed = (field: keyof T, key: string) => {\r\n this.seedStore = { field, key }\r\n return this\r\n }\r\n\r\n private _skip?: number\r\n skip = (skip: number) => {\r\n this._skip = skip\r\n return this\r\n }\r\n\r\n private _take?: number\r\n take = (take: number) => {\r\n this._take = take\r\n return this\r\n }\r\n\r\n private sortStore: ISortStore<T>[] = []\r\n private sortBase = (field1: IVariable<T>, direction: ISortDirection, option?: Partial<ISortOption>) => {\r\n const temp = {} as ISortStore<T>\r\n temp[field1] = direction\r\n if (!this.sortStore.some((item) => Object.keys(item)[0] === Object.keys(temp)[0])) {\r\n this.sortStore.push(temp)\r\n }\r\n return this\r\n }\r\n sort = (field1: IVariable<T>, option?: Partial<ISortOption>) => {\r\n this.sortBase(field1, option?.direction ? option.direction : 'ASC')\r\n return this\r\n }\r\n\r\n private _noTotal?: boolean\r\n noTotal = (value: boolean = true) => {\r\n this._noTotal = value\r\n return this\r\n }\r\n\r\n private buildFilter = () => {\r\n return this._filter.join('')\r\n }\r\n\r\n private buildPage = () => {\r\n const temp = {} as any\r\n if (this._skip) {\r\n temp.skip = this._skip\r\n }\r\n if (this._take) {\r\n temp.take = this._take\r\n }\r\n return temp as { skip: number; take: number }\r\n }\r\n\r\n private buildRandomWithSeedKey = (): Partial<ISeedModel<T>> => {\r\n if (this.seedStore?.field && !this.seedStore?.key) {\r\n console.warn('RandomWithSeedKey missing seedKey.')\r\n }\r\n if (this.seedStore?.key && !this.seedStore?.field) {\r\n console.warn('RandomWithSeedKey missing seedField.')\r\n }\r\n if (!this.seedStore?.key && !this.seedStore?.field) {\r\n return {}\r\n }\r\n return this.seedStore\r\n }\r\n\r\n build = (): IRequestParamResult<T> => {\r\n const obj: IRequestParamResult<T> = { ...this.buildPage() }\r\n if (this.sortStore.length > 0) obj.sort = this.sortStore\r\n const filter = this.buildFilter()\r\n if (filter) obj.filter = filter\r\n if (this._noTotal) obj.noTotal = this._noTotal\r\n const seedInfo = this.buildRandomWithSeedKey()\r\n if (!!seedInfo.key && !!seedInfo.field) {\r\n obj.seedField = seedInfo.field.toString()\r\n obj.seedKey = seedInfo.key\r\n }\r\n return obj\r\n }\r\n}\r\n\r\nexport const createRequestBuilder = <T extends object>(option?: Partial<IRequestParamOption>) => {\r\n return new RequestParam<T>(option)\r\n}\r\n"],"names":["RequestParam","_createClass","option","_this","this","_classCallCheck","_defineProperty","_len","arguments","length","p","Array","_key","reduce","a","b","Object","assign","field2","mOption","mergeOptions","_option","ignoreEmpty","field1","operation","logicStr","_filter","logic","push","concat","_filterBase","toString","operator","action","crd","buildFilter","field","key","seedStore","skip","_skip","take","_take","direction","temp","sortStore","some","item","keys","sortBase","value","undefined","_noTotal","join","_this$seedStore","_this$seedStore2","_this$seedStore3","_this$seedStore4","_this$seedStore5","_this$seedStore6","console","warn","obj","_objectSpread","buildPage","sort","filter","noTotal","seedInfo","buildRandomWithSeedKey","seedField","seedKey","createRequestBuilder"],"mappings":"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"}
1
+ {"version":3,"file":"request-param.js","sources":["../../../../src/http-service/graphql/request-param.ts"],"sourcesContent":["export type IVariable<T extends object> = keyof T\r\n\r\nexport type ILogic = 'Or' | 'And'\r\n\r\nexport type ISortDirection = 'ASC' | 'DESC'\r\n\r\nexport interface ISeedModel<T> {\r\n key: string\r\n field: keyof T\r\n}\r\n\r\nexport interface IFilterOption {\r\n logic: ILogic\r\n ignoreEmpty: boolean\r\n}\r\n\r\nexport interface IRequestParamOption {\r\n ignoreEmpty: boolean\r\n}\r\n\r\nexport interface ISortOption {\r\n direction: ISortDirection\r\n}\r\n\r\nexport type ISortStore<T extends object> = { [key in keyof T]?: ISortDirection }\r\n\r\nexport type IAllOptions = IFilterOption & IRequestParamOption & ISortOption\r\n\r\nexport type IRequestParamResult<T extends object> = {\r\n sort?: ISortStore<T>[]\r\n skip?: number\r\n take?: number\r\n filter?: string\r\n noTotal?: boolean\r\n seedKey?: string\r\n seedField?: string\r\n}\r\n\r\nexport class RequestParam<T extends object = any> {\r\n private readonly _option?: Partial<IRequestParamOption>\r\n constructor(option?: Partial<IRequestParamOption>) {\r\n this._option = option\r\n }\r\n\r\n private mergeOptions = (...p: any[]): Partial<IAllOptions> => {\r\n return p.reduce((a, b) => {\r\n return Object.assign(a, b ?? {})\r\n }, {})\r\n }\r\n\r\n private ignoreEmpty = (field2: string, option?: Partial<IFilterOption>) => {\r\n const mOption = this.mergeOptions(this._option, option)\r\n return !field2 && mOption?.ignoreEmpty === true\r\n }\r\n\r\n private _filter: string[] = []\r\n private _filterBase = (field1: IVariable<T>, operation: string, field2: string, option?: Partial<IFilterOption>) => {\r\n const logicStr = this._filter.length ? ' ' + (option?.logic === 'And' ? '&&' : '||') + ' ' : ''\r\n this._filter.push(`${logicStr}${field1 as string}${operation}${field2 as string}`)\r\n return this\r\n }\r\n filter = (field1: IVariable<T>, field2: string | number, option?: Partial<IFilterOption>) => {\r\n if (typeof field2 === 'string' && this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '==', typeof field2 === 'string' ? `\"${field2}\"` : field2.toString(), option)\r\n }\r\n filterNotEquals = (field1: IVariable<T>, field2: string | number, option?: Partial<IFilterOption>) => {\r\n if (typeof field2 === 'string' && this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '!=', typeof field2 === 'string' ? `\"${field2}\"` : field2.toString(), option)\r\n }\r\n filterEnum = (field1: IVariable<T>, field2: string | number, option?: Partial<IFilterOption>) => {\r\n if (typeof field2 === 'string' && this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '==', typeof field2 === 'string' ? field2 : field2.toString(), option)\r\n }\r\n filterStartsWith = (field1: IVariable<T>, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '.startsWith(\"' + (field2 as string) + '\")', '', option)\r\n }\r\n filterContains = (field1: IVariable<T>, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '.Contains(\"' + (field2 as string) + '\")', '', option)\r\n }\r\n filterLast = (field1: IVariable<T>, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '.endsWith(\"' + (field2 as string) + '\")', '', option)\r\n }\r\n filterNumber = (field1: IVariable<T>, operator: string, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, ` ${operator} ` + (field2 as string), '', option)\r\n }\r\n filterGreater = (field1: IVariable<T>, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, \" > '\" + (field2 as string) + \"'\", '', option)\r\n }\r\n filterLess = (field1: IVariable<T>, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, \" < '\" + (field2 as string) + \"'\", '', option)\r\n }\r\n filterCustom = (field1: string, option?: Partial<IFilterOption>) => {\r\n const logicStr = this._filter.length ? ' ' + (option?.logic === 'And' ? '&&' : '||') + ' ' : ''\r\n this._filter.push(`${logicStr}${field1 as string}`)\r\n return this\r\n }\r\n\r\n scope = (action: (crd: RequestParam<T>) => RequestParam<T>, option?: Partial<IFilterOption>) => {\r\n const crd = action(new RequestParam(this._option))\r\n const temp = crd.buildFilter()\r\n if (temp) {\r\n const logicStr = this._filter.length ? ' ' + (option?.logic === 'And' ? '&&' : '||') + ' ' : ''\r\n this._filter.push(`${logicStr}(${crd.buildFilter()})`)\r\n }\r\n return this\r\n }\r\n\r\n private seedStore?: ISeedModel<T>\r\n seed = (field: keyof T, key: string) => {\r\n this.seedStore = { field, key }\r\n return this\r\n }\r\n\r\n private _skip?: number\r\n skip = (skip: number) => {\r\n this._skip = skip\r\n return this\r\n }\r\n\r\n private _take?: number\r\n take = (take: number) => {\r\n this._take = take\r\n return this\r\n }\r\n\r\n private sortStore: ISortStore<T>[] = []\r\n private sortBase = (field1: IVariable<T>, direction: ISortDirection, option?: Partial<ISortOption>) => {\r\n const temp = {} as ISortStore<T>\r\n temp[field1] = direction\r\n if (!this.sortStore.some((item) => Object.keys(item)[0] === Object.keys(temp)[0])) {\r\n this.sortStore.push(temp)\r\n }\r\n return this\r\n }\r\n sort = (field1: IVariable<T>, option?: Partial<ISortOption>) => {\r\n this.sortBase(field1, option?.direction ? option.direction : 'ASC')\r\n return this\r\n }\r\n\r\n private _noTotal?: boolean\r\n noTotal = (value: boolean = true) => {\r\n this._noTotal = value\r\n return this\r\n }\r\n\r\n private buildFilter = () => {\r\n return this._filter.join('')\r\n }\r\n\r\n private buildPage = () => {\r\n const temp = {} as any\r\n if (this._skip) {\r\n temp.skip = this._skip\r\n }\r\n if (this._take) {\r\n temp.take = this._take\r\n }\r\n return temp as { skip: number; take: number }\r\n }\r\n\r\n private buildRandomWithSeedKey = (): Partial<ISeedModel<T>> => {\r\n if (this.seedStore?.field && !this.seedStore?.key) {\r\n console.warn('RandomWithSeedKey missing seedKey.')\r\n }\r\n if (this.seedStore?.key && !this.seedStore?.field) {\r\n console.warn('RandomWithSeedKey missing seedField.')\r\n }\r\n if (!this.seedStore?.key && !this.seedStore?.field) {\r\n return {}\r\n }\r\n return this.seedStore\r\n }\r\n\r\n build = (): IRequestParamResult<T> => {\r\n const obj: IRequestParamResult<T> = { ...this.buildPage() }\r\n if (this.sortStore.length > 0) obj.sort = this.sortStore\r\n const filter = this.buildFilter()\r\n if (filter) obj.filter = filter\r\n if (this._noTotal) obj.noTotal = this._noTotal\r\n const seedInfo = this.buildRandomWithSeedKey()\r\n if (!!seedInfo.key && !!seedInfo.field) {\r\n obj.seedField = seedInfo.field.toString()\r\n obj.seedKey = seedInfo.key\r\n }\r\n return obj\r\n }\r\n}\r\n\r\nexport const createRequestBuilder = <T extends object>(option?: Partial<IRequestParamOption>) => {\r\n return new RequestParam<T>(option)\r\n}\r\n"],"names":["RequestParam","_createClass","option","_this","this","_classCallCheck","_defineProperty","_len","arguments","length","p","Array","_key","reduce","a","b","Object","assign","field2","mOption","mergeOptions","_option","ignoreEmpty","field1","operation","logicStr","_filter","logic","push","concat","_filterBase","toString","operator","action","crd","buildFilter","field","key","seedStore","skip","_skip","take","_take","direction","temp","sortStore","some","item","keys","sortBase","value","undefined","_noTotal","join","_this$seedStore","_this$seedStore2","_this$seedStore3","_this$seedStore4","_this$seedStore5","_this$seedStore6","console","warn","obj","_objectSpread","buildPage","sort","filter","noTotal","seedInfo","buildRandomWithSeedKey","seedField","seedKey","createRequestBuilder"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{objectWithoutProperties as e,objectSpread2 as o,defineProperty as i,inherits as r,createClass as a,classCallCheck as t,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 g}from"@mui/x-data-grid";import{mergeObjects as m}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 w(e){return function(){function p(r){var a;return t(this,p),a=l(this,p,[r]),i(a,"setTableQueryParams",function(e){a.tableQueryParams=m({},a.tableQueryParams,e)}),i(a,"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(a,"getDataGridProps",function(){var o,i,r,t,l=a.mergeConfig,n={getRowId:e.getRowId,columns:a.columns,rows:null!==(o=null===(i=a.props.data)||void 0===i?void 0:i.items)&&void 0!==o?o:[],checkboxSelection:!0,pagination:!0,density:null!==(r=null===(t=a.props.slots)||void 0===t?void 0:t.density)&&void 0!==r?r:"standard",initialState:v.mapInitialState(a.props.query,{columns:{columnVisibilityModel:e.columnVisibilityModel}}),filterDebounceMs:800,sx:{border:0},slots:{toolbar:l.toolbar},rowSelectionModel:a.rowSelecteds,onRowSelectionModelChange:a.handleRowSelectionChange};if("server"===e.featureMode){var s,d,u={filterMode:"server",sortingMode:"server",paginationMode:"server",onPaginationModelChange:a.onPaginationModelChange,onFilterModelChange:a.onFilterModelChange,onSortModelChange:a.onSortModelChange,rowCount:null!==(s=null===(d=a.props.data)||void 0===d?void 0:d.rowTotal)&&void 0!==s?s:0,paginationModel:a.tableQueryParams.pagination,filterModel:a.tableQueryParams.filter,sortModel:v.mapSortModel(a.tableQueryParams.sort),loading:a.mergeConfig.loading};Object.assign(n,u)}return m(n,a.mergeConfig.dataGridProps)}),i(a,"initialColumns",function(){var i,r,t=a.mergeConfig.ActionRow,l=[];return t&&l.push(o({field:"Actions",minWidth:100,headerAlign:"right",align:"right",filterable:!1,sortable:!1,renderCell:function(e){return s(t,{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(a,"onPaginationModelChange",function(e,o){a.mergeConfig.loading||(a.setTableQueryParams({pagination:e,detail:"pagination"}),a.handleChange())}),i(a,"onFilterModelChange",function(e,o){var i;if(!a.mergeConfig.loading){var r=a.tableQueryParams.pagination;a.setTableQueryParams({filter:e,pagination:{page:0,pageSize:null!==(i=null==r?void 0:r.pageSize)&&void 0!==i?i:25},detail:v.detectSearchType(e)}),a.handleChange()}}),i(a,"onSortModelChange",function(e,o){if(!a.mergeConfig.loading){var i,r,t,l,n,s=e,d=a.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=a.defaultTableQueryParams.sort)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.field))s=[{field:null===(t=d[0])||void 0===t?void 0:t.field,sort:"desc"===(null===(l=d[0])||void 0===l?void 0:l.sort)?"asc":"desc"}];else s=null!==(n=a.defaultTableQueryParams.sort)&&void 0!==n?n:[];a.setTableQueryParams({sort:s,detail:"sort"}),a.handleChange()}}),i(a,"handleChange",function(){a.changeTimeout&&clearTimeout(a.changeTimeout),a.changeTimeout=setTimeout(function(){a.props.onChange&&a.props.onChange(a.tableQueryParams)},300)}),i(a,"handleRowSelectionChange",function(e,o){a.mergeConfig.maxSelcion&&e.length>a.mergeConfig.maxSelcion?a.rowSelecteds=e.slice(0,a.mergeConfig.maxSelcion):a.rowSelecteds=e,a.props.onRowSelectionChange&&a.props.onRowSelectionChange(a.rowSelecteds,o),a.forceUpdate()}),a.columns=a.initialColumns(),a.tableQueryParams=o({},r.query),a.defaultTableQueryParams=a.tableQueryParams,a.rowSelecteds=[],a}return r(p,d),a(p,[{key:"mergeConfig",get:function(){var i,r,a,t,l,n,d,u,p,c,g=m({},null==e?void 0:e.toolbarProps,null===(i=this.props.slots)||void 0===i?void 0:i.toolbarProps);return{toolbar:null!==(r=null===(a=this.props.slots)||void 0===a?void 0:a.toolbar)&&void 0!==r?r:function(){return s(y,o({},g))},ActionRow:null===(t=this.props.slots)||void 0===t?void 0:t.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:m({},e.dataGridProps,null===(d=this.props.slots)||void 0===d?void 0:d.dataGridProps),wrapProps:m({},e.wrapProps,null===(u=this.props.slots)||void 0===u?void 0:u.wrapProps),loading:null!==(p=void 0!==this.props.loading?this.props.loading:null===(c=this.tableQueryParams)||void 0===c?void 0:c.loading)&&void 0!==p&&p}}},{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(M,o(o({},this.mergeConfig.wrapProps),{},{children:s(g,o({loading:this.props.loading},this.getDataGridProps()))})))}}])}()}var M=p(function(i){var r=i.children,a=e(i,S);return s(c,o(o({},a),{},{children:s("div",{children:r})}))})(i(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"}),".MuiTablePagination-root p",{marginBottom:0}));export{w as CreateTable,w as default};
1
+ import{objectWithoutProperties as e,objectSpread2 as o,defineProperty as i,inherits as r,createClass as a,classCallCheck as t,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 g}from"@mui/x-data-grid";import{mergeObjects as m}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 w=["children"];function S(e){return function(){function p(r){var a;return t(this,p),a=l(this,p,[r]),i(a,"setTableQueryParams",function(e){a.tableQueryParams=m({},a.tableQueryParams,e)}),i(a,"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(a,"getDataGridProps",function(){var o,i,r,t,l=a.mergeConfig,n={getRowId:e.getRowId,columns:a.columns,rows:null!==(o=null===(i=a.props.data)||void 0===i?void 0:i.items)&&void 0!==o?o:[],checkboxSelection:!0,pagination:!0,density:null!==(r=null===(t=a.props.slots)||void 0===t?void 0:t.density)&&void 0!==r?r:"standard",initialState:v.mapInitialState(a.props.query,{columns:{columnVisibilityModel:e.columnVisibilityModel}}),filterDebounceMs:800,sx:{border:0},slots:{toolbar:l.toolbar},rowSelectionModel:a.rowSelecteds,onRowSelectionModelChange:a.handleRowSelectionChange};if("server"===e.featureMode){var s,d,u={filterMode:"server",sortingMode:"server",paginationMode:"server",onPaginationModelChange:a.onPaginationModelChange,onFilterModelChange:a.onFilterModelChange,onSortModelChange:a.onSortModelChange,rowCount:null!==(s=null===(d=a.props.data)||void 0===d?void 0:d.rowTotal)&&void 0!==s?s:0,paginationModel:a.tableQueryParams.pagination,filterModel:a.tableQueryParams.filter,sortModel:v.mapSortModel(a.tableQueryParams.sort),loading:a.mergeConfig.loading};Object.assign(n,u)}return m(n,a.mergeConfig.dataGridProps)}),i(a,"initialColumns",function(){var i,r,t=a.mergeConfig,l=t.ActionRow,d=t.disableActionRow,u=[];return l&&!0!==d&&u.push(o({field:"Actions",minWidth:100,headerAlign:"right",align:"right",filterable:!1,sortable:!1,renderCell:function(e){return s(l,{value:e.row})}},e.actionRow)),i=u,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(a,"onPaginationModelChange",function(e,o){a.mergeConfig.loading||(a.setTableQueryParams({pagination:e,detail:"pagination"}),a.handleChange())}),i(a,"onFilterModelChange",function(e,o){var i;if(!a.mergeConfig.loading){var r=a.tableQueryParams.pagination;a.setTableQueryParams({filter:e,pagination:{page:0,pageSize:null!==(i=null==r?void 0:r.pageSize)&&void 0!==i?i:25},detail:v.detectSearchType(e)}),a.handleChange()}}),i(a,"onSortModelChange",function(e,o){if(!a.mergeConfig.loading){var i,r,t,l,n,s=e,d=a.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=a.defaultTableQueryParams.sort)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.field))s=[{field:null===(t=d[0])||void 0===t?void 0:t.field,sort:"desc"===(null===(l=d[0])||void 0===l?void 0:l.sort)?"asc":"desc"}];else s=null!==(n=a.defaultTableQueryParams.sort)&&void 0!==n?n:[];a.setTableQueryParams({sort:s,detail:"sort"}),a.handleChange()}}),i(a,"handleChange",function(){a.changeTimeout&&clearTimeout(a.changeTimeout),a.changeTimeout=setTimeout(function(){a.props.onChange&&a.props.onChange(a.tableQueryParams)},300)}),i(a,"handleRowSelectionChange",function(e,o){a.mergeConfig.maxSelcion&&e.length>a.mergeConfig.maxSelcion?a.rowSelecteds=e.slice(0,a.mergeConfig.maxSelcion):a.rowSelecteds=e,a.props.onRowSelectionChange&&a.props.onRowSelectionChange(a.rowSelecteds,o),a.forceUpdate()}),a.columns=a.initialColumns(),a.tableQueryParams=o({},r.query),a.defaultTableQueryParams=a.tableQueryParams,a.rowSelecteds=[],a}return r(p,d),a(p,[{key:"mergeConfig",get:function(){var i,r,a,t,l,n,d,u,p,c,g=m({},null==e?void 0:e.toolbarProps,null===(i=this.props.slots)||void 0===i?void 0:i.toolbarProps);return{toolbar:null!==(r=null===(a=this.props.slots)||void 0===a?void 0:a.toolbar)&&void 0!==r?r:function(){return s(y,o({},g))},ActionRow:null===(t=this.props.slots)||void 0===t?void 0:t.actionRow,disableActionRow:e.disableActionRow,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:m({},e.dataGridProps,null===(d=this.props.slots)||void 0===d?void 0:d.dataGridProps),wrapProps:m({},e.wrapProps,null===(u=this.props.slots)||void 0===u?void 0:u.wrapProps),loading:null!==(p=void 0!==this.props.loading?this.props.loading:null===(c=this.tableQueryParams)||void 0===c?void 0:c.loading)&&void 0!==p&&p}}},{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(M,o(o({},this.mergeConfig.wrapProps),{},{children:s(g,o({loading:this.props.loading},this.getDataGridProps()))})))}}])}()}var M=p(function(i){var r=i.children,a=e(i,w);return s(c,o(o({},a),{},{children:s("div",{children:r})}))})(i(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"}),".MuiTablePagination-root p",{marginBottom:0}));export{S as CreateTable,S 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 { Component, Fragment } from 'react'\r\nimport { Box, BoxProps, styled, tablePaginationClasses } 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 wrapProps?: BoxProps\r\n}\r\n\r\nexport type ITableParamsSlots<T> = Pick<ITableSlots<T>, 'maxSelection' | 'toolbarProps' | 'dataGridProps' | 'wrapProps'>\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 wrapProps: mergeObjects({}, params.wrapProps, this.props.slots?.wrapProps),\r\n loading: (this.props.loading !== undefined ? this.props.loading : this.tableQueryParams?.loading) ?? false\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 {...this.mergeConfig.wrapProps}>\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 [`.MuiTablePagination-root p`]: {\r\n marginBottom: 0\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","_this$props$slots7","_ref","_this$tableQueryParam","toolbarPannelProps","toolbarProps","this","ToolbarPannel","maxSelection","wrapProps","undefined","nextProps","_nextProps$query","equalTableQueryParams","JSON","stringify","renderWrapContext","Wrap","DataGrid","getDataGridProps","styled","_ref2","p","_objectWithoutProperties","_excluded","Box","flex","position","top","left","width","height","overflowY","overflow","concat","dinoTableClasses","whiteSpacePre","whiteSpace","marginBottom"],"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, tablePaginationClasses } 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 wrapProps?: BoxProps\r\n}\r\n\r\nexport type ITableParamsSlots<T> = Pick<ITableSlots<T>, 'maxSelection' | 'toolbarProps' | 'dataGridProps' | 'wrapProps'>\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 disableActionRow?: boolean\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 disableActionRow: params.disableActionRow,\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 wrapProps: mergeObjects({}, params.wrapProps, this.props.slots?.wrapProps),\r\n loading: (this.props.loading !== undefined ? this.props.loading : this.tableQueryParams?.loading) ?? false\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 {...this.mergeConfig.wrapProps}>\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, disableActionRow } = this.mergeConfig\r\n const list: GridColDef<T>[] = []\r\n if (!!ActionRow && disableActionRow !== true) {\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 [`.MuiTablePagination-root p`]: {\r\n marginBottom: 0\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","_this$mergeConfig","ActionRow","disableActionRow","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","_this$props$slots7","_ref","_this$tableQueryParam","toolbarPannelProps","toolbarProps","this","ToolbarPannel","maxSelection","wrapProps","undefined","nextProps","_nextProps$query","equalTableQueryParams","JSON","stringify","renderWrapContext","Wrap","DataGrid","getDataGridProps","styled","_ref2","p","_objectWithoutProperties","_excluded","Box","flex","position","top","left","width","height","overflowY","overflow","concat","dinoTableClasses","whiteSpacePre","whiteSpace","marginBottom"],"mappings":"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"}
@@ -21,8 +21,8 @@ export type ISortStore<T extends object> = {
21
21
  export type IAllOptions = IFilterOption & IRequestParamOption & ISortOption;
22
22
  export type IRequestParamResult<T extends object> = {
23
23
  sort?: ISortStore<T>[];
24
- skip: number;
25
- take: number;
24
+ skip?: number;
25
+ take?: number;
26
26
  filter?: string;
27
27
  noTotal?: boolean;
28
28
  seedKey?: string;
@@ -31,6 +31,7 @@ export interface ITableParams<T extends GridValidRowModel> extends ITableParamsS
31
31
  filterOperators?: (config: GridColDef) => GridFilterOperator[];
32
32
  columnVisibilityModel?: Partial<Record<keyof T, boolean>>;
33
33
  actionRow?: Omit<GridColDef, 'field'>;
34
+ disableActionRow?: boolean;
34
35
  disableGlobalModalProvider?: boolean;
35
36
  }
36
37
  export declare function CreateTable<T extends GridValidRowModel>(params: ITableParams<T>): ComponentType<ITableProps<T>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dinocollab-core",
3
- "version": "2.1.54",
3
+ "version": "2.1.55",
4
4
  "description": "Dinocollab core - libraries for building collaborative applications with React 18",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",