dinocollab-core 2.2.11 → 2.2.13

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 (81) hide show
  1. package/dist/src/data-surface/index.create.js +1 -1
  2. package/dist/src/data-surface/index.create.js.map +1 -1
  3. package/dist/src/data-surface/view-grid/hooks.js +1 -1
  4. package/dist/src/data-surface/view-grid/hooks.js.map +1 -1
  5. package/dist/src/data-surface/view-grid/index.js +1 -1
  6. package/dist/src/data-surface/view-grid/index.js.map +1 -1
  7. package/dist/src/data-surface/view-grid/styleds.js +1 -1
  8. package/dist/src/data-surface/view-grid/styleds.js.map +1 -1
  9. package/dist/src/data-surface/view-list/hooks.js +1 -1
  10. package/dist/src/data-surface/view-list/hooks.js.map +1 -1
  11. package/dist/src/data-surface/view-list/index.js +1 -1
  12. package/dist/src/data-surface/view-list/index.js.map +1 -1
  13. package/dist/src/data-surface/view-list/styled.js +1 -1
  14. package/dist/src/data-surface/view-list/styled.js.map +1 -1
  15. package/dist/src/data-surface/view-list/types.js.map +1 -1
  16. package/dist/src/filter-bar/components/chip-viewer.js +1 -1
  17. package/dist/src/filter-bar/components/chip-viewer.js.map +1 -1
  18. package/dist/src/filter-bar/components/filter-sort.js +1 -1
  19. package/dist/src/filter-bar/components/filter-sort.js.map +1 -1
  20. package/dist/src/filter-bar/components/filter-summary.js +1 -1
  21. package/dist/src/filter-bar/components/filter-summary.js.map +1 -1
  22. package/dist/src/filter-bar/components/{units.js → icons.js} +1 -1
  23. package/dist/src/filter-bar/components/{units.js.map → icons.js.map} +1 -1
  24. package/dist/src/filter-bar/components/popper-custom.js +1 -1
  25. package/dist/src/filter-bar/components/popper-custom.js.map +1 -1
  26. package/dist/src/filter-bar/components/ui.units.js +2 -0
  27. package/dist/src/filter-bar/components/ui.units.js.map +1 -0
  28. package/dist/src/filter-bar/index.create.js +1 -1
  29. package/dist/src/filter-bar/index.create.js.map +1 -1
  30. package/dist/src/filter-bar/index.dino.js +1 -1
  31. package/dist/src/filter-bar/index.dino.js.map +1 -1
  32. package/dist/src/filter-bar/menu/create-form-field-select-multiple.js +2 -0
  33. package/dist/src/filter-bar/menu/create-form-field-select-multiple.js.map +1 -0
  34. package/dist/src/filter-bar/menu/create-form-field-select.js +2 -0
  35. package/dist/src/filter-bar/menu/create-form-field-select.js.map +1 -0
  36. package/dist/src/filter-bar/menu/create-form-field-string.js +2 -0
  37. package/dist/src/filter-bar/menu/create-form-field-string.js.map +1 -0
  38. package/dist/src/filter-bar/menu/create.js +2 -0
  39. package/dist/src/filter-bar/menu/create.js.map +1 -0
  40. package/dist/src/form/create.form-base.js +1 -1
  41. package/dist/src/form/create.text-editor.js +1 -1
  42. package/dist/src/form/helpers.js +1 -1
  43. package/dist/src/table/create.table.js +1 -1
  44. package/dist/src/table/csv-export-helper.js +2 -0
  45. package/dist/src/table/csv-export-helper.js.map +1 -0
  46. package/dist/src/table/custom.export-button.js +2 -0
  47. package/dist/src/table/custom.export-button.js.map +1 -0
  48. package/dist/src/table/dino.js +1 -1
  49. package/dist/src/table/dino.js.map +1 -1
  50. package/dist/src/table/toolbar-pannel.js +1 -1
  51. package/dist/src/table/toolbar-pannel.js.map +1 -1
  52. package/dist/src/utils/helpers.js +1 -1
  53. package/dist/types/data-surface/index.create.d.ts +10 -2
  54. package/dist/types/data-surface/view-grid/hooks.d.ts +6 -0
  55. package/dist/types/data-surface/view-grid/styleds.d.ts +2 -0
  56. package/dist/types/data-surface/view-grid/types.d.ts +15 -3
  57. package/dist/types/data-surface/view-list/hooks.d.ts +6 -0
  58. package/dist/types/data-surface/view-list/styled.d.ts +2 -0
  59. package/dist/types/data-surface/view-list/types.d.ts +15 -3
  60. package/dist/types/filter-bar/components/chip-viewer.d.ts +1 -3
  61. package/dist/types/filter-bar/components/popper-custom.d.ts +2 -2
  62. package/dist/types/filter-bar/components/ui.units.d.ts +22 -0
  63. package/dist/types/filter-bar/index.create.d.ts +1 -1
  64. package/dist/types/filter-bar/index.dino.d.ts +6 -0
  65. package/dist/types/filter-bar/menu/create-form-field-select-multiple.d.ts +13 -0
  66. package/dist/types/filter-bar/menu/create-form-field-select.d.ts +17 -0
  67. package/dist/types/filter-bar/menu/create-form-field-string.d.ts +10 -0
  68. package/dist/types/filter-bar/{components/filter-menu.d.ts → menu/create.d.ts} +2 -2
  69. package/dist/types/filter-bar/{components/filter-menu.types.d.ts → menu/types.d.ts} +6 -1
  70. package/dist/types/table/csv-export-helper.d.ts +20 -0
  71. package/dist/types/table/custom.export-button.d.ts +8 -0
  72. package/dist/types/table/dino.d.ts +1 -0
  73. package/dist/types/table/index.d.ts +1 -0
  74. package/dist/types/table/toolbar-pannel.d.ts +2 -0
  75. package/package.json +1 -1
  76. package/dist/src/filter-bar/components/filter-menu.js +0 -2
  77. package/dist/src/filter-bar/components/filter-menu.js.map +0 -1
  78. package/dist/src/filter-bar/components/filter-menu.units.js +0 -2
  79. package/dist/src/filter-bar/components/filter-menu.units.js.map +0 -1
  80. package/dist/types/filter-bar/components/filter-menu.units.d.ts +0 -18
  81. /package/dist/types/filter-bar/components/{units.d.ts → icons.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom.export-button.js","sources":["../../../src/table/custom.export-button.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { FC } from 'react'\r\nimport { Button, ButtonProps, Tooltip } from '@mui/material'\r\nimport { Download as DownloadIcon } from '@mui/icons-material'\r\nimport { useGridApiContext, useGridSelector, gridRowsLookupSelector, GridToolbarExport } from '@mui/x-data-grid'\r\nimport { CsvExportHelper, IExportCsvOptionsModel } from './csv-export-helper'\r\n\r\nexport interface CustomExportButtonProps extends Omit<ButtonProps, 'onClick'> {\r\n csvOptions?: IExportCsvOptionsModel\r\n tooltip?: string\r\n}\r\n\r\nexport const CustomExportButton: FC<CustomExportButtonProps> = (props) => {\r\n const { csvOptions, tooltip = 'Export CSV with UTF-8 encoding', children, ...buttonProps } = props\r\n\r\n const apiRef = useGridApiContext()\r\n const rowsLookup = useGridSelector(apiRef, gridRowsLookupSelector)\r\n\r\n const handleExport = () => {\r\n try {\r\n if (!csvOptions) {\r\n console.warn('No CSV export options provided')\r\n return\r\n }\r\n\r\n // Get all rows data from the grid\r\n const data = Object.values(rowsLookup)\r\n\r\n if (data.length === 0) {\r\n console.warn('No data available for export')\r\n return\r\n }\r\n\r\n const selectedRows = apiRef.current.getSelectedRows()\r\n if (selectedRows.size === 0) {\r\n // Export to CSV with UTF-8 BOM\r\n return CsvExportHelper.exportToCsv(data, csvOptions)\r\n }\r\n return CsvExportHelper.exportToCsv(Array.from(selectedRows.values()), csvOptions)\r\n } catch (error) {\r\n console.error('Export failed:', error)\r\n }\r\n }\r\n\r\n if (!csvOptions) return <GridToolbarExport />\r\n\r\n return (\r\n <Tooltip title={tooltip} arrow>\r\n <Button size='small' variant='text' startIcon={<DownloadIcon />} onClick={handleExport} {...buttonProps}>\r\n {children || 'Export'}\r\n </Button>\r\n </Tooltip>\r\n )\r\n}\r\n"],"names":["CustomExportButton","props","csvOptions","_props$tooltip","tooltip","children","buttonProps","_objectWithoutProperties","_excluded","apiRef","useGridApiContext","rowsLookup","useGridSelector","gridRowsLookupSelector","_jsx","Tooltip","title","arrow","Button","_objectSpread","size","variant","startIcon","DownloadIcon","onClick","console","warn","data","Object","values","length","selectedRows","current","getSelectedRows","CsvExportHelper","exportToCsv","Array","from","error","GridToolbarExport"],"mappings":"odAYaA,EAAkD,SAACC,GAC9D,IAAQC,EAAqFD,EAArFC,WAAUC,EAA2EF,EAAzEG,QAAAA,OAAU,IAAHD,EAAG,iCAAgCA,EAAEE,EAA6BJ,EAA7BI,SAAaC,EAAWC,EAAKN,EAAKO,GAE5FC,EAASC,IACTC,EAAaC,EAAgBH,EAAQI,GA4B3C,OAAKX,EAGHY,EAACC,EAAQ,CAAAC,MAAOZ,EAASa,OAAK,EAAAZ,SAC5BS,EAACI,EAAMC,EAAAA,EAAA,CAACC,KAAK,QAAQC,QAAQ,OAAOC,UAAWR,EAACS,EAAe,IAAEC,QA9BhD,WACnB,IACE,IAAKtB,EAEH,YADAuB,QAAQC,KAAK,kCAKf,IAAMC,EAAOC,OAAOC,OAAOlB,GAE3B,GAAoB,IAAhBgB,EAAKG,OAEP,YADAL,QAAQC,KAAK,gCAIf,IAAMK,EAAetB,EAAOuB,QAAQC,kBACpC,OAA0B,IAAtBF,EAAaX,KAERc,EAAgBC,YAAYR,EAAMzB,GAEpCgC,EAAgBC,YAAYC,MAAMC,KAAKN,EAAaF,UAAW3B,EACvE,CAAC,MAAOoC,GACPb,QAAQa,MAAM,iBAAkBA,EACjC,CACF,GAM+FhC,GAAW,GAAA,UACpGD,GAAY,cALKS,EAACyB,EAAiB,CAAA,EAS5C"}
@@ -1,2 +1,2 @@
1
- import{createClass as r,classCallCheck as t,defineProperty as e,objectSpread2 as o,objectWithoutProperties as n}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a}from"react/jsx-runtime";import i from"dayjs";import"../utils/dayjs-config.js";import"../utils/query-param.js";import{MapTableBaseContext as u}from"./context.js";import{BtnFormDetail as l,BtnDetail as s}from"./ui.buttons.js";import{CreateStatusCell as c,CellChips as m,CellBase as f,CellImageSmall as v,CellDate as p}from"./ui.units.js";import h from"./toolbar-pannel.js";import d from"./helpers.js";import{CreateTable as g}from"./create.table.js";import y from"./create.action-row.js";import{Breadcrumbs as j}from"../components/breadcrumbs.js";var b=["imageUrl","valueFormatter","typographyProps","typographyPropsGetter"],C=["formatString"],S="MM/DD/YYYY HH:mm",w=new(r(function r(){var w=this;t(this,r),e(this,"createTable",g),e(this,"createActionRow",y),e(this,"setUrlQuery",d.setUrlQuery),e(this,"getUrlQuery",d.getUrlQuery),e(this,"mapContext",u),e(this,"ToolbarPannel",h),e(this,"createToolbar",function(r){return function(t){return a(h,o({},o(o({},t),r)))}}),e(this,"BtnFormDetail",l),e(this,"BtnDetail",s),e(this,"createBreadcrumbConfigs",function(r){return r}),e(this,"createBreadcrumbs",function(r){return function(){return a(j,{value:r})}}),e(this,"createStatusCell",c),e(this,"formatterDate",function(r,t){var e,o,n=null!==(e=null==t?void 0:t.formatString)&&void 0!==e?e:S,a=null!==(o=null==t?void 0:t.showRelative)&&void 0!==o&&o;try{if(!r)return"";var u=i(r),l=u.format(n);return a?"".concat(l," (").concat(i().to(u),")"):l}catch(r){return""}}),e(this,"valueFormatterDate",function(r){return function(t){return w.formatterDate(t.value,r)}}),e(this,"renderCellChips",function(r){return function(t){var e;return a(m,o(o({},r),{},{value:null!==(e=t.value)&&void 0!==e?e:null==r?void 0:r.value}))}}),e(this,"renderCellStatus",function(r,t){var e=c(r,o({sx:{minWidth:"90px"}},t));return function(r){return a(e,{value:r.value})}}),e(this,"renderCellBase",function(r){return function(t){var e=null!=r?r:{},i=e.imageUrl,u=e.valueFormatter,l=e.typographyProps,s=e.typographyPropsGetter,c=n(e,b),m=u?u(t.value,t.row):void 0,v=i?i(t.value,t.row):void 0,p=null!=r&&r.icon?"function"==typeof r.icon?r.icon(t.value,t.row):r.icon:void 0,h=s?s(t.value,t.row):l;return a(f,o(o({value:t.value,valueFormatted:m},c),{},{imageUrl:v,icon:p,typographyProps:h}))}}),e(this,"renderCellImage",function(r,t){return function(e){var o;return a(v,{value:e.value,imageUri:null===(o=r(e.row))||void 0===o?void 0:o.toString(),fallbackSrc:null==t?void 0:t.fallbackSrc})}}),e(this,"renderCellDate",function(r){return function(t){var e=null!=r?r:{},i=e.formatString,u=n(e,C);return a(p,o(o({},u),{},{value:t.value,formatString:null!=i?i:S}))}})}));export{w as default};
1
+ import{createClass as r,classCallCheck as t,defineProperty as e,objectSpread2 as o,objectWithoutProperties as n}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a}from"react/jsx-runtime";import i from"dayjs";import"../utils/dayjs-config.js";import"../utils/query-param.js";import{MapTableBaseContext as u}from"./context.js";import{BtnFormDetail as l,BtnDetail as s}from"./ui.buttons.js";import{CreateStatusCell as c,CellChips as m,CellBase as f,CellImageSmall as p,CellDate as v}from"./ui.units.js";import h from"./toolbar-pannel.js";import d from"./helpers.js";import{CreateTable as g}from"./create.table.js";import y from"./create.action-row.js";import{generateExportCsvOptions as j}from"./csv-export-helper.js";import{Breadcrumbs as b}from"../components/breadcrumbs.js";var C=["imageUrl","valueFormatter","typographyProps","typographyPropsGetter"],S=["formatString"],w="MM/DD/YYYY HH:mm",P=new(r(function r(){var P=this;t(this,r),e(this,"createTable",g),e(this,"createActionRow",y),e(this,"generateExportCsvOptions",j),e(this,"setUrlQuery",d.setUrlQuery),e(this,"getUrlQuery",d.getUrlQuery),e(this,"mapContext",u),e(this,"ToolbarPannel",h),e(this,"createToolbar",function(r){return function(t){return a(h,o({},o(o({},t),r)))}}),e(this,"BtnFormDetail",l),e(this,"BtnDetail",s),e(this,"createBreadcrumbConfigs",function(r){return r}),e(this,"createBreadcrumbs",function(r){return function(){return a(b,{value:r})}}),e(this,"createStatusCell",c),e(this,"formatterDate",function(r,t){var e,o,n=null!==(e=null==t?void 0:t.formatString)&&void 0!==e?e:w,a=null!==(o=null==t?void 0:t.showRelative)&&void 0!==o&&o;try{if(!r)return"";var u=i(r),l=u.format(n);return a?"".concat(l," (").concat(i().to(u),")"):l}catch(r){return""}}),e(this,"valueFormatterDate",function(r){return function(t){return P.formatterDate(t.value,r)}}),e(this,"renderCellChips",function(r){return function(t){var e;return a(m,o(o({},r),{},{value:null!==(e=t.value)&&void 0!==e?e:null==r?void 0:r.value}))}}),e(this,"renderCellStatus",function(r,t){var e=c(r,o({sx:{minWidth:"90px"}},t));return function(r){return a(e,{value:r.value})}}),e(this,"renderCellBase",function(r){return function(t){var e=null!=r?r:{},i=e.imageUrl,u=e.valueFormatter,l=e.typographyProps,s=e.typographyPropsGetter,c=n(e,C),m=u?u(t.value,t.row):void 0,p=i?i(t.value,t.row):void 0,v=null!=r&&r.icon?"function"==typeof r.icon?r.icon(t.value,t.row):r.icon:void 0,h=s?s(t.value,t.row):l;return a(f,o(o({value:t.value,valueFormatted:m},c),{},{imageUrl:p,icon:v,typographyProps:h}))}}),e(this,"renderCellImage",function(r,t){return function(e){var o;return a(p,{value:e.value,imageUri:null===(o=r(e.row))||void 0===o?void 0:o.toString(),fallbackSrc:null==t?void 0:t.fallbackSrc})}}),e(this,"renderCellDate",function(r){return function(t){var e=null!=r?r:{},i=e.formatString,u=n(e,S);return a(v,o(o({},u),{},{value:t.value,formatString:null!=i?i:w}))}})}));export{P as default};
2
2
  //# sourceMappingURL=dino.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dino.js","sources":["../../../src/table/dino.tsx"],"sourcesContent":["import { GridRenderCellParams, GridTreeNodeWithRender, GridValueFormatterParams } from '@mui/x-data-grid'\r\nimport type { FC, ReactNode } from 'react'\r\nimport { dayjsCustom } from '../utils'\r\nimport { MapTableBaseContext } from './context'\r\nimport { BtnDetail, BtnFormDetail } from './ui.buttons'\r\nimport { Breadcrumbs, IBreadcrumbConfig } from '../components'\r\nimport { CreateStatusCell, IStatusCellOptions, IStatusCellConfig } from './ui.units'\r\nimport { CellBase, CellImageSmall, CellBaseOptions, CellChips, CellChipsProps, CellDate, CellDatePropsOwner } from './ui.units'\r\nimport ToolbarPannel, { IToolbarPannelProps } from './toolbar-pannel'\r\nimport TableHelper from './helpers'\r\nimport CreateTable from './create.table'\r\nimport CreateActionRow from './create.action-row'\r\nimport { TypographyProps } from '@mui/material'\r\n\r\nconst formatDateString = 'MM/DD/YYYY HH:mm'\r\n\r\ntype RenderCellBaseParams<T> = Omit<CellBaseOptions, 'imageUrl'> & {\r\n imageUrl?: (value: any, model: T) => string\r\n valueFormatter?: (value: any, model: T) => string\r\n icon?: ReactNode | ((value: any, model: T) => ReactNode)\r\n typographyPropsGetter?: (value: any, model: T) => TypographyProps & { [key: string]: any }\r\n}\r\n\r\ninterface FormatterDateOptions {\r\n formatString?: string\r\n showRelative?: boolean\r\n}\r\n\r\nclass DinoTableBase {\r\n //#region Base\r\n\r\n createTable = CreateTable\r\n\r\n createActionRow = CreateActionRow\r\n\r\n setUrlQuery = TableHelper.setUrlQuery\r\n\r\n getUrlQuery = TableHelper.getUrlQuery\r\n\r\n mapContext = MapTableBaseContext\r\n\r\n ToolbarPannel = ToolbarPannel\r\n\r\n createToolbar = (props: IToolbarPannelProps): FC<IToolbarPannelProps> => {\r\n return (p) => <ToolbarPannel {...{ ...p, ...props }} />\r\n }\r\n\r\n BtnFormDetail = BtnFormDetail\r\n\r\n BtnDetail = BtnDetail\r\n\r\n createBreadcrumbConfigs = (value: IBreadcrumbConfig[]) => value\r\n\r\n createBreadcrumbs = (value: IBreadcrumbConfig[]): FC => {\r\n return () => <Breadcrumbs value={value} />\r\n }\r\n\r\n createStatusCell = CreateStatusCell\r\n //#endregion\r\n\r\n //#region Value Formatter\r\n formatterDate = (value: any, options?: FormatterDateOptions): string => {\r\n const f = options?.formatString ?? formatDateString\r\n const showRelative = options?.showRelative ?? false\r\n try {\r\n if (!value) return ''\r\n\r\n const date = dayjsCustom(value)\r\n const formatted = date.format(f)\r\n\r\n return showRelative ? `${formatted} (${dayjsCustom().to(date)})` : formatted\r\n } catch (error) {\r\n return ''\r\n }\r\n }\r\n\r\n valueFormatterDate = (options?: FormatterDateOptions) => {\r\n return (params: GridValueFormatterParams<any>) => this.formatterDate(params.value, options)\r\n }\r\n //#endregion\r\n\r\n //#region Render Cell\r\n renderCellChips = (params?: CellChipsProps) => {\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n return <CellChips {...params} value={tableRow.value ?? params?.value} />\r\n }\r\n }\r\n\r\n renderCellStatus = function <E extends string>(config: IStatusCellConfig<E>, options?: IStatusCellOptions) {\r\n const StatusCellInstance = CreateStatusCell(config, { sx: { minWidth: '90px' }, ...options })\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n return <StatusCellInstance value={tableRow.value} />\r\n }\r\n }\r\n\r\n renderCellBase = function <T = any>(options?: RenderCellBaseParams<T>) {\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n const { imageUrl, valueFormatter, typographyProps, typographyPropsGetter, ...p } = options ?? {}\r\n const value = valueFormatter ? valueFormatter(tableRow.value, tableRow.row) : undefined\r\n const img = imageUrl ? imageUrl(tableRow.value, tableRow.row) : undefined\r\n const icon = options?.icon ? (typeof options.icon === 'function' ? options.icon(tableRow.value, tableRow.row) : options.icon) : undefined\r\n const mergedTypographyProps = typographyPropsGetter ? typographyPropsGetter(tableRow.value, tableRow.row) : typographyProps\r\n return <CellBase value={tableRow.value} valueFormatted={value} {...p} imageUrl={img} icon={icon} typographyProps={mergedTypographyProps} />\r\n }\r\n }\r\n\r\n renderCellImage = function <T>(selectImage: (value: T) => T[keyof T], options?: { fallbackSrc?: string }) {\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n return <CellImageSmall value={tableRow.value} imageUri={selectImage(tableRow.row)?.toString()} fallbackSrc={options?.fallbackSrc} />\r\n }\r\n }\r\n\r\n renderCellDate = function (params?: CellDatePropsOwner) {\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n const { formatString, ...props } = params ?? {}\r\n return <CellDate {...props} value={tableRow.value} formatString={formatString ?? formatDateString} />\r\n }\r\n }\r\n //#endregion\r\n}\r\n\r\nconst DinoTable = new DinoTableBase()\r\n\r\nexport default DinoTable\r\n"],"names":["formatDateString","DinoTable","_createClass","DinoTableBase","_this","this","_classCallCheck","_defineProperty","CreateTable","CreateActionRow","TableHelper","setUrlQuery","getUrlQuery","MapTableBaseContext","ToolbarPannel","props","p","_jsx","_objectSpread","BtnFormDetail","BtnDetail","value","Breadcrumbs","CreateStatusCell","options","_options$formatString","_options$showRelative","f","formatString","showRelative","date","dayjsCustom","formatted","format","concat","to","error","params","formatterDate","tableRow","_tableRow$value","CellChips","config","StatusCellInstance","sx","minWidth","_ref","imageUrl","valueFormatter","typographyProps","typographyPropsGetter","_objectWithoutProperties","_excluded","row","undefined","img","icon","mergedTypographyProps","CellBase","valueFormatted","selectImage","_selectImage","CellImageSmall","imageUri","toString","fallbackSrc","_ref2","_excluded2","CellDate"],"mappings":"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"}
1
+ {"version":3,"file":"dino.js","sources":["../../../src/table/dino.tsx"],"sourcesContent":["import { GridRenderCellParams, GridTreeNodeWithRender, GridValueFormatterParams } from '@mui/x-data-grid'\r\nimport type { FC, ReactNode } from 'react'\r\nimport { dayjsCustom } from '../utils'\r\nimport { MapTableBaseContext } from './context'\r\nimport { BtnDetail, BtnFormDetail } from './ui.buttons'\r\nimport { Breadcrumbs, IBreadcrumbConfig } from '../components'\r\nimport { CreateStatusCell, IStatusCellOptions, IStatusCellConfig } from './ui.units'\r\nimport { CellBase, CellImageSmall, CellBaseOptions, CellChips, CellChipsProps, CellDate, CellDatePropsOwner } from './ui.units'\r\nimport ToolbarPannel, { IToolbarPannelProps } from './toolbar-pannel'\r\nimport TableHelper from './helpers'\r\nimport CreateTable from './create.table'\r\nimport CreateActionRow from './create.action-row'\r\nimport { TypographyProps } from '@mui/material'\r\nimport { generateExportCsvOptions } from './csv-export-helper'\r\n\r\nconst formatDateString = 'MM/DD/YYYY HH:mm'\r\n\r\ntype RenderCellBaseParams<T> = Omit<CellBaseOptions, 'imageUrl'> & {\r\n imageUrl?: (value: any, model: T) => string\r\n valueFormatter?: (value: any, model: T) => string\r\n icon?: ReactNode | ((value: any, model: T) => ReactNode)\r\n typographyPropsGetter?: (value: any, model: T) => TypographyProps & { [key: string]: any }\r\n}\r\n\r\ninterface FormatterDateOptions {\r\n formatString?: string\r\n showRelative?: boolean\r\n}\r\n\r\nclass DinoTableBase {\r\n //#region Base\r\n\r\n createTable = CreateTable\r\n\r\n createActionRow = CreateActionRow\r\n\r\n generateExportCsvOptions = generateExportCsvOptions\r\n\r\n setUrlQuery = TableHelper.setUrlQuery\r\n\r\n getUrlQuery = TableHelper.getUrlQuery\r\n\r\n mapContext = MapTableBaseContext\r\n\r\n ToolbarPannel = ToolbarPannel\r\n\r\n createToolbar = (props: IToolbarPannelProps): FC<IToolbarPannelProps> => {\r\n return (p) => <ToolbarPannel {...{ ...p, ...props }} />\r\n }\r\n\r\n BtnFormDetail = BtnFormDetail\r\n\r\n BtnDetail = BtnDetail\r\n\r\n createBreadcrumbConfigs = (value: IBreadcrumbConfig[]) => value\r\n\r\n createBreadcrumbs = (value: IBreadcrumbConfig[]): FC => {\r\n return () => <Breadcrumbs value={value} />\r\n }\r\n\r\n createStatusCell = CreateStatusCell\r\n //#endregion\r\n\r\n //#region Value Formatter\r\n formatterDate = (value: any, options?: FormatterDateOptions): string => {\r\n const f = options?.formatString ?? formatDateString\r\n const showRelative = options?.showRelative ?? false\r\n try {\r\n if (!value) return ''\r\n\r\n const date = dayjsCustom(value)\r\n const formatted = date.format(f)\r\n\r\n return showRelative ? `${formatted} (${dayjsCustom().to(date)})` : formatted\r\n } catch (error) {\r\n return ''\r\n }\r\n }\r\n\r\n valueFormatterDate = (options?: FormatterDateOptions) => {\r\n return (params: GridValueFormatterParams<any>) => this.formatterDate(params.value, options)\r\n }\r\n //#endregion\r\n\r\n //#region Render Cell\r\n renderCellChips = (params?: CellChipsProps) => {\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n return <CellChips {...params} value={tableRow.value ?? params?.value} />\r\n }\r\n }\r\n\r\n renderCellStatus = function <E extends string>(config: IStatusCellConfig<E>, options?: IStatusCellOptions) {\r\n const StatusCellInstance = CreateStatusCell(config, { sx: { minWidth: '90px' }, ...options })\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n return <StatusCellInstance value={tableRow.value} />\r\n }\r\n }\r\n\r\n renderCellBase = function <T = any>(options?: RenderCellBaseParams<T>) {\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n const { imageUrl, valueFormatter, typographyProps, typographyPropsGetter, ...p } = options ?? {}\r\n const value = valueFormatter ? valueFormatter(tableRow.value, tableRow.row) : undefined\r\n const img = imageUrl ? imageUrl(tableRow.value, tableRow.row) : undefined\r\n const icon = options?.icon ? (typeof options.icon === 'function' ? options.icon(tableRow.value, tableRow.row) : options.icon) : undefined\r\n const mergedTypographyProps = typographyPropsGetter ? typographyPropsGetter(tableRow.value, tableRow.row) : typographyProps\r\n return <CellBase value={tableRow.value} valueFormatted={value} {...p} imageUrl={img} icon={icon} typographyProps={mergedTypographyProps} />\r\n }\r\n }\r\n\r\n renderCellImage = function <T>(selectImage: (value: T) => T[keyof T], options?: { fallbackSrc?: string }) {\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n return <CellImageSmall value={tableRow.value} imageUri={selectImage(tableRow.row)?.toString()} fallbackSrc={options?.fallbackSrc} />\r\n }\r\n }\r\n\r\n renderCellDate = function (params?: CellDatePropsOwner) {\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n const { formatString, ...props } = params ?? {}\r\n return <CellDate {...props} value={tableRow.value} formatString={formatString ?? formatDateString} />\r\n }\r\n }\r\n //#endregion\r\n}\r\n\r\nconst DinoTable = new DinoTableBase()\r\n\r\nexport default DinoTable\r\n"],"names":["formatDateString","DinoTable","_createClass","DinoTableBase","_this","this","_classCallCheck","_defineProperty","CreateTable","CreateActionRow","generateExportCsvOptions","TableHelper","setUrlQuery","getUrlQuery","MapTableBaseContext","ToolbarPannel","props","p","_jsx","_objectSpread","BtnFormDetail","BtnDetail","value","Breadcrumbs","CreateStatusCell","options","_options$formatString","_options$showRelative","f","formatString","showRelative","date","dayjsCustom","formatted","format","concat","to","error","params","formatterDate","tableRow","_tableRow$value","CellChips","config","StatusCellInstance","sx","minWidth","_ref","imageUrl","valueFormatter","typographyProps","typographyPropsGetter","_objectWithoutProperties","_excluded","row","undefined","img","icon","mergedTypographyProps","CellBase","valueFormatted","selectImage","_selectImage","CellImageSmall","imageUri","toString","fallbackSrc","_ref2","_excluded2","CellDate"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as t,inherits as i,createClass as e,objectSpread2 as r,classCallCheck as o,callSuper as a}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as n,jsx as l,Fragment as s}from"react/jsx-runtime";import{Component as c}from"react";import{GridToolbarColumnsButton as p,GridToolbarFilterButton as d,GridToolbarDensitySelector as h,GridToolbarExport as m,GridToolbarQuickFilter as u}from"@mui/x-data-grid";import{styled as f,Box as b,Typography as g}from"@mui/material";import{BtnFormCreate as v}from"./ui.buttons.js";import{Breadcrumbs as T}from"../components/breadcrumbs.js";import{HelpTooltip as x}from"../components/help-tooltip.js";var y=function(){function f(){var i;o(this,f);for(var e=arguments.length,c=new Array(e),p=0;p<e;p++)c[p]=arguments[p];return i=a(this,f,[].concat(c)),t(i,"renderTitle",function(){var t,e=i.props,o=e.title,a=e.afterTitle,c=e.breadcrumbs,p=e.icon,d="".concat(P.titleWrap).concat(null!==(t=i.props.titleProps)&&void 0!==t&&t.className?" ".concat(i.props.titleProps.className):"");if(!(!!o||!!c||!!a))return l(s,{});var h=o;return"string"==typeof o&&(h=l(g,{noWrap:!0,variant:"subtitle1",className:P.titleText,children:o})),c&&(h=l(T,{value:c})),n(b,r(r({},i.props.titleProps),{},{className:d,children:[p&&l("div",{className:P.icon,children:p}),h,a]}))}),t(i,"renderEndAdornment",function(){return!i.props.searchInclude||i.props.searchInclude.length<=0?l(s,{}):l(x,{title:"The search includes",small:!0,children:l("ul",{className:P.searchHelp,children:i.props.searchInclude.map(function(t,i){return l("li",{children:l(g,{variant:"body2",children:t})},i)})})})}),i}return i(f,c),e(f,[{key:"render",value:function(){var t,i,e,o;return n(W,{className:P.root,sx:this.props.sx,children:[this.renderTitle(),this.props.aboveAction,n(b,r(r({className:P.actionsRow},this.props.actionWrapProps),{},{children:[n(b,{className:P.actionsLeft,children:[n(b,{className:P.gridToolbar,children:[!1!==(null===(t=this.props.visibilityToolbar)||void 0===t?void 0:t.columns)&&l(p,{}),!1!==(null===(i=this.props.visibilityToolbar)||void 0===i?void 0:i.filters)&&l(d,{}),!1!==(null===(e=this.props.visibilityToolbar)||void 0===e?void 0:e.density)&&l(h,{}),!1!==(null===(o=this.props.visibilityToolbar)||void 0===o?void 0:o.export)&&l(m,{})]}),this.props.formCreate&&l(v,{children:this.props.formCreate}),this.props.afterAction]}),l(b,{className:P.actionsRight,children:n(b,{className:P.quickFilterWrap,children:[l(u,{fullWidth:!0,variant:"standard",size:"small",debounceMs:800,quickFilterParser:function(t){return[t]}}),this.renderEndAdornment()]})})]})),this.props.belowAction]})}}])}(),P={root:"Dino-ToolbarPannel-root",actionsRow:"Dino-ToolbarPannel-actionsRow",actionsLeft:"Dino-ToolbarPannel-actionsLeft",actionsRight:"Dino-ToolbarPannel-actionsRight",quickFilterWrap:"Dino-ToolbarPannel-quickFilterWrap",gridToolbar:"Dino-ToolbarPannel-gridToolbar",titleWrap:"Dino-ToolbarPannel-titleWrap",titleText:"Dino-ToolbarPannel-titleText",searchHelp:"Dino-ToolbarPannel-searchHelp",icon:"Dino-ToolbarPannel-icon"},W=f(b)(function(i){var e=i.theme;return t(t(t(t(t(t(t(t(t(t({padding:e.spacing(1,2,0)},".".concat(P.actionsRow),{display:"flex",flexWrap:"wrap"}),".".concat(P.actionsLeft),{flex:1,display:"flex",alignItems:"center",flexWrap:"wrap"}),".".concat(P.actionsRight),t({display:"flex",gap:"8px",alignItems:"center",width:"auto"},e.breakpoints.down("md"),{width:"100%"})),".".concat(P.quickFilterWrap),{display:"flex",alignItems:"center"}),".".concat(P.gridToolbar),{padding:0}),".".concat(P.titleWrap),{height:"var(--height-table-topbar, 48px)",display:"flex",alignItems:"center"}),".".concat(P.titleText),{fontWeight:700,flex:1}),".".concat(P.icon),{marginRight:8,display:"flex",alignItems:"center",justifyContent:"center",flex:"0 0 auto"}),".".concat(P.searchHelp),{margin:"0 0 0 18px",padding:0,li:{position:"relative"},"li::after":{content:'"►"',display:"inline-block",top:"50%",transform:"translateY(-50%)",position:"absolute",left:"-18px"}}),e.breakpoints.down("md"),{padding:e.spacing(1,1,0)})});export{y as default};
1
+ import{defineProperty as t,inherits as i,createClass as r,objectSpread2 as e,classCallCheck as o,callSuper as a}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as n,jsx as l,Fragment as s}from"react/jsx-runtime";import{Component as c}from"react";import{GridToolbarColumnsButton as p,GridToolbarFilterButton as d,GridToolbarDensitySelector as h,GridToolbarQuickFilter as m}from"@mui/x-data-grid";import{styled as u,Box as f,Typography as b}from"@mui/material";import{BtnFormCreate as v}from"./ui.buttons.js";import{CustomExportButton as g}from"./custom.export-button.js";import{Breadcrumbs as x}from"../components/breadcrumbs.js";import{HelpTooltip as T}from"../components/help-tooltip.js";var y=function(){function u(){var i;o(this,u);for(var r=arguments.length,c=new Array(r),p=0;p<r;p++)c[p]=arguments[p];return i=a(this,u,[].concat(c)),t(i,"renderTitle",function(){var t,r=i.props,o=r.title,a=r.afterTitle,c=r.breadcrumbs,p=r.icon,d="".concat(P.titleWrap).concat(null!==(t=i.props.titleProps)&&void 0!==t&&t.className?" ".concat(i.props.titleProps.className):"");if(!(!!o||!!c||!!a))return l(s,{});var h=o;return"string"==typeof o&&(h=l(b,{noWrap:!0,variant:"subtitle1",className:P.titleText,children:o})),c&&(h=l(x,{value:c})),n(f,e(e({},i.props.titleProps),{},{className:d,children:[p&&l("div",{className:P.icon,children:p}),h,a]}))}),t(i,"renderEndAdornment",function(){return!i.props.searchInclude||i.props.searchInclude.length<=0?l(s,{}):l(T,{title:"The search includes",small:!0,children:l("ul",{className:P.searchHelp,children:i.props.searchInclude.map(function(t,i){return l("li",{children:l(b,{variant:"body2",children:t})},i)})})})}),i}return i(u,c),r(u,[{key:"render",value:function(){var t,i,r,o;return n(W,{className:P.root,sx:this.props.sx,children:[this.renderTitle(),this.props.aboveAction,n(f,e(e({className:P.actionsRow},this.props.actionWrapProps),{},{children:[n(f,{className:P.actionsLeft,children:[n(f,{className:P.gridToolbar,children:[!1!==(null===(t=this.props.visibilityToolbar)||void 0===t?void 0:t.columns)&&l(p,{}),!1!==(null===(i=this.props.visibilityToolbar)||void 0===i?void 0:i.filters)&&l(d,{}),!1!==(null===(r=this.props.visibilityToolbar)||void 0===r?void 0:r.density)&&l(h,{}),!1!==(null===(o=this.props.visibilityToolbar)||void 0===o?void 0:o.export)&&l(g,{csvOptions:this.props.exportCsvOptions})]}),this.props.formCreate&&l(v,{children:this.props.formCreate}),this.props.afterAction]}),l(f,{className:P.actionsRight,children:n(f,{className:P.quickFilterWrap,children:[l(m,{fullWidth:!0,variant:"standard",size:"small",debounceMs:800,quickFilterParser:function(t){return[t]}}),this.renderEndAdornment()]})})]})),this.props.belowAction]})}}])}(),P={root:"Dino-ToolbarPannel-root",actionsRow:"Dino-ToolbarPannel-actionsRow",actionsLeft:"Dino-ToolbarPannel-actionsLeft",actionsRight:"Dino-ToolbarPannel-actionsRight",quickFilterWrap:"Dino-ToolbarPannel-quickFilterWrap",gridToolbar:"Dino-ToolbarPannel-gridToolbar",titleWrap:"Dino-ToolbarPannel-titleWrap",titleText:"Dino-ToolbarPannel-titleText",searchHelp:"Dino-ToolbarPannel-searchHelp",icon:"Dino-ToolbarPannel-icon"},W=u(f)(function(i){var r=i.theme;return t(t(t(t(t(t(t(t(t(t({padding:r.spacing(1,2,0)},".".concat(P.actionsRow),{display:"flex",flexWrap:"wrap"}),".".concat(P.actionsLeft),{flex:1,display:"flex",alignItems:"center",flexWrap:"wrap"}),".".concat(P.actionsRight),t({display:"flex",gap:"8px",alignItems:"center",width:"auto"},r.breakpoints.down("md"),{width:"100%"})),".".concat(P.quickFilterWrap),{display:"flex",alignItems:"center"}),".".concat(P.gridToolbar),{padding:0}),".".concat(P.titleWrap),{height:"var(--height-table-topbar, 48px)",display:"flex",alignItems:"center"}),".".concat(P.titleText),{fontWeight:700,flex:1}),".".concat(P.icon),{marginRight:8,display:"flex",alignItems:"center",justifyContent:"center",flex:"0 0 auto"}),".".concat(P.searchHelp),{margin:"0 0 0 18px",padding:0,li:{position:"relative"},"li::after":{content:'"►"',display:"inline-block",top:"50%",transform:"translateY(-50%)",position:"absolute",left:"-18px"}}),r.breakpoints.down("md"),{padding:r.spacing(1,1,0)})});export{y as default};
2
2
  //# sourceMappingURL=toolbar-pannel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar-pannel.js","sources":["../../../src/table/toolbar-pannel.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { GridToolbarColumnsButton, GridToolbarDensitySelector } from '@mui/x-data-grid'\r\nimport { GridToolbarExport, GridToolbarFilterButton, GridToolbarQuickFilter } from '@mui/x-data-grid'\r\nimport { Box, BoxProps, styled, Typography } from '@mui/material'\r\nimport { BtnFormCreate } from './ui.buttons'\r\nimport { Breadcrumbs, IBreadcrumbConfig, HelpTooltip } from '../components'\r\n\r\nexport interface IToolbarPannelToolbarConfig {\r\n columns?: boolean\r\n filters?: boolean\r\n density?: boolean\r\n export?: boolean\r\n}\r\n\r\nexport interface IToolbarPannelProps {\r\n title?: React.ReactNode\r\n titleProps?: BoxProps\r\n icon?: React.ReactNode\r\n afterTitle?: React.ReactNode\r\n searchInclude?: string[]\r\n visibilityToolbar?: IToolbarPannelToolbarConfig\r\n formCreate?: React.ReactNode\r\n breadcrumbs?: IBreadcrumbConfig[]\r\n afterAction?: React.ReactNode\r\n belowAction?: React.ReactNode\r\n aboveAction?: React.ReactNode\r\n actionWrapProps?: BoxProps\r\n sx?: BoxProps['sx']\r\n}\r\n\r\nclass ToolbarPannel extends Component<React.PropsWithChildren<IToolbarPannelProps>> {\r\n render() {\r\n return (\r\n <ToolbarPannelStyled className={toolbarPannelClasses.root} sx={this.props.sx}>\r\n {this.renderTitle()}\r\n {this.props.aboveAction}\r\n <Box className={toolbarPannelClasses.actionsRow} {...this.props.actionWrapProps}>\r\n <Box className={toolbarPannelClasses.actionsLeft}>\r\n <Box className={toolbarPannelClasses.gridToolbar}>\r\n {this.props.visibilityToolbar?.columns !== false && <GridToolbarColumnsButton />}\r\n {this.props.visibilityToolbar?.filters !== false && <GridToolbarFilterButton />}\r\n {this.props.visibilityToolbar?.density !== false && <GridToolbarDensitySelector />}\r\n {this.props.visibilityToolbar?.export !== false && <GridToolbarExport />}\r\n </Box>\r\n {this.props.formCreate && <BtnFormCreate>{this.props.formCreate}</BtnFormCreate>}\r\n {this.props.afterAction}\r\n </Box>\r\n <Box className={toolbarPannelClasses.actionsRight}>\r\n <Box className={toolbarPannelClasses.quickFilterWrap}>\r\n <GridToolbarQuickFilter fullWidth variant='standard' size='small' debounceMs={800} quickFilterParser={(x: any) => [x]} />\r\n {this.renderEndAdornment()}\r\n </Box>\r\n </Box>\r\n </Box>\r\n {this.props.belowAction}\r\n </ToolbarPannelStyled>\r\n )\r\n }\r\n\r\n renderTitle = () => {\r\n const { title, afterTitle, breadcrumbs, icon } = this.props\r\n const titleClassName = `${toolbarPannelClasses.titleWrap}${this.props.titleProps?.className ? ` ${this.props.titleProps.className}` : ''}`\r\n\r\n const isVisible = !!title || !!breadcrumbs || !!afterTitle\r\n if (!isVisible) return <></>\r\n\r\n let titleElm = title\r\n if (typeof title === 'string') {\r\n titleElm = (\r\n <Typography noWrap variant='subtitle1' className={toolbarPannelClasses.titleText}>\r\n {title}\r\n </Typography>\r\n )\r\n }\r\n if (breadcrumbs) titleElm = <Breadcrumbs value={breadcrumbs} />\r\n\r\n return (\r\n <Box {...this.props.titleProps} className={titleClassName}>\r\n {icon && <div className={toolbarPannelClasses.icon}>{icon}</div>}\r\n {titleElm}\r\n {afterTitle}\r\n </Box>\r\n )\r\n }\r\n\r\n renderEndAdornment = () => {\r\n if (!this.props.searchInclude || this.props.searchInclude.length <= 0) return <></>\r\n return (\r\n <HelpTooltip title='The search includes' small>\r\n <ul className={toolbarPannelClasses.searchHelp}>\r\n {this.props.searchInclude.map((item, index) => (\r\n <li key={index}>\r\n <Typography variant='body2'>{item}</Typography>\r\n </li>\r\n ))}\r\n </ul>\r\n </HelpTooltip>\r\n )\r\n }\r\n}\r\nexport default ToolbarPannel\r\n\r\nconst toolbarPannelClasses = {\r\n root: 'Dino-ToolbarPannel-root',\r\n actionsRow: 'Dino-ToolbarPannel-actionsRow',\r\n actionsLeft: 'Dino-ToolbarPannel-actionsLeft',\r\n actionsRight: 'Dino-ToolbarPannel-actionsRight',\r\n quickFilterWrap: 'Dino-ToolbarPannel-quickFilterWrap',\r\n gridToolbar: 'Dino-ToolbarPannel-gridToolbar',\r\n titleWrap: 'Dino-ToolbarPannel-titleWrap',\r\n titleText: 'Dino-ToolbarPannel-titleText',\r\n searchHelp: 'Dino-ToolbarPannel-searchHelp',\r\n icon: 'Dino-ToolbarPannel-icon'\r\n}\r\n\r\nconst ToolbarPannelStyled = styled(Box)(({ theme }) => ({\r\n padding: theme.spacing(1, 2, 0),\r\n [`.${toolbarPannelClasses.actionsRow}`]: { display: 'flex', flexWrap: 'wrap' },\r\n [`.${toolbarPannelClasses.actionsLeft}`]: { flex: 1, display: 'flex', alignItems: 'center', flexWrap: 'wrap' },\r\n [`.${toolbarPannelClasses.actionsRight}`]: {\r\n display: 'flex',\r\n gap: '8px',\r\n alignItems: 'center',\r\n width: 'auto',\r\n [theme.breakpoints.down('md')]: { width: '100%' }\r\n },\r\n [`.${toolbarPannelClasses.quickFilterWrap}`]: { display: 'flex', alignItems: 'center' },\r\n [`.${toolbarPannelClasses.gridToolbar}`]: { padding: 0 },\r\n [`.${toolbarPannelClasses.titleWrap}`]: { height: 'var(--height-table-topbar, 48px)', display: 'flex', alignItems: 'center' },\r\n [`.${toolbarPannelClasses.titleText}`]: { fontWeight: 700, flex: 1 },\r\n [`.${toolbarPannelClasses.icon}`]: {\r\n marginRight: 8,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flex: '0 0 auto'\r\n },\r\n [`.${toolbarPannelClasses.searchHelp}`]: {\r\n margin: '0 0 0 18px',\r\n padding: 0,\r\n li: { position: 'relative' },\r\n 'li::after': {\r\n content: '\"►\"',\r\n display: 'inline-block',\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n position: 'absolute',\r\n left: '-18px'\r\n }\r\n },\r\n [theme.breakpoints.down('md')]: { padding: theme.spacing(1, 1, 0) }\r\n}))\r\n"],"names":["ToolbarPannel","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","_this$props$titleProp","_this$props","props","title","afterTitle","breadcrumbs","icon","titleClassName","toolbarPannelClasses","titleWrap","titleProps","className","_jsx","titleElm","Typography","noWrap","variant","titleText","Breadcrumbs","value","_jsxs","Box","_objectSpread","children","searchInclude","HelpTooltip","small","searchHelp","map","item","index","_inherits","Component","_createClass","key","_this$props$visibilit","_this$props$visibilit2","_this$props$visibilit3","_this$props$visibilit4","ToolbarPannelStyled","root","sx","renderTitle","aboveAction","actionsRow","actionWrapProps","actionsLeft","gridToolbar","visibilityToolbar","columns","GridToolbarColumnsButton","filters","GridToolbarFilterButton","density","GridToolbarDensitySelector","GridToolbarExport","formCreate","BtnFormCreate","afterAction","actionsRight","quickFilterWrap","GridToolbarQuickFilter","fullWidth","size","debounceMs","quickFilterParser","x","renderEndAdornment","belowAction","styled","_ref","theme","padding","spacing","display","flexWrap","flex","alignItems","gap","width","breakpoints","down","height","fontWeight","marginRight","justifyContent","margin","li","position","content","top","transform","left"],"mappings":"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"}
1
+ {"version":3,"file":"toolbar-pannel.js","sources":["../../../src/table/toolbar-pannel.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { GridToolbarColumnsButton, GridToolbarDensitySelector } from '@mui/x-data-grid'\r\nimport { GridToolbarExport, GridToolbarFilterButton, GridToolbarQuickFilter } from '@mui/x-data-grid'\r\nimport { Box, BoxProps, styled, Typography } from '@mui/material'\r\nimport { BtnFormCreate } from './ui.buttons'\r\nimport { Breadcrumbs, IBreadcrumbConfig, HelpTooltip } from '../components'\r\nimport { IExportCsvOptionsModel } from './csv-export-helper'\r\nimport { CustomExportButton } from './custom.export-button'\r\n\r\nexport interface IToolbarPannelToolbarConfig {\r\n columns?: boolean\r\n filters?: boolean\r\n density?: boolean\r\n export?: boolean\r\n}\r\n\r\nexport interface IToolbarPannelProps {\r\n title?: React.ReactNode\r\n titleProps?: BoxProps\r\n icon?: React.ReactNode\r\n afterTitle?: React.ReactNode\r\n searchInclude?: string[]\r\n visibilityToolbar?: IToolbarPannelToolbarConfig\r\n formCreate?: React.ReactNode\r\n breadcrumbs?: IBreadcrumbConfig[]\r\n afterAction?: React.ReactNode\r\n belowAction?: React.ReactNode\r\n aboveAction?: React.ReactNode\r\n actionWrapProps?: BoxProps\r\n sx?: BoxProps['sx']\r\n exportCsvOptions?: IExportCsvOptionsModel\r\n}\r\n\r\nclass ToolbarPannel extends Component<React.PropsWithChildren<IToolbarPannelProps>> {\r\n render() {\r\n return (\r\n <ToolbarPannelStyled className={toolbarPannelClasses.root} sx={this.props.sx}>\r\n {this.renderTitle()}\r\n {this.props.aboveAction}\r\n <Box className={toolbarPannelClasses.actionsRow} {...this.props.actionWrapProps}>\r\n <Box className={toolbarPannelClasses.actionsLeft}>\r\n <Box className={toolbarPannelClasses.gridToolbar}>\r\n {this.props.visibilityToolbar?.columns !== false && <GridToolbarColumnsButton />}\r\n {this.props.visibilityToolbar?.filters !== false && <GridToolbarFilterButton />}\r\n {this.props.visibilityToolbar?.density !== false && <GridToolbarDensitySelector />}\r\n {this.props.visibilityToolbar?.export !== false && <CustomExportButton csvOptions={this.props.exportCsvOptions} />}\r\n </Box>\r\n {this.props.formCreate && <BtnFormCreate>{this.props.formCreate}</BtnFormCreate>}\r\n {this.props.afterAction}\r\n </Box>\r\n <Box className={toolbarPannelClasses.actionsRight}>\r\n <Box className={toolbarPannelClasses.quickFilterWrap}>\r\n <GridToolbarQuickFilter fullWidth variant='standard' size='small' debounceMs={800} quickFilterParser={(x: any) => [x]} />\r\n {this.renderEndAdornment()}\r\n </Box>\r\n </Box>\r\n </Box>\r\n {this.props.belowAction}\r\n </ToolbarPannelStyled>\r\n )\r\n }\r\n\r\n renderTitle = () => {\r\n const { title, afterTitle, breadcrumbs, icon } = this.props\r\n const titleClassName = `${toolbarPannelClasses.titleWrap}${this.props.titleProps?.className ? ` ${this.props.titleProps.className}` : ''}`\r\n\r\n const isVisible = !!title || !!breadcrumbs || !!afterTitle\r\n if (!isVisible) return <></>\r\n\r\n let titleElm = title\r\n if (typeof title === 'string') {\r\n titleElm = (\r\n <Typography noWrap variant='subtitle1' className={toolbarPannelClasses.titleText}>\r\n {title}\r\n </Typography>\r\n )\r\n }\r\n if (breadcrumbs) titleElm = <Breadcrumbs value={breadcrumbs} />\r\n\r\n return (\r\n <Box {...this.props.titleProps} className={titleClassName}>\r\n {icon && <div className={toolbarPannelClasses.icon}>{icon}</div>}\r\n {titleElm}\r\n {afterTitle}\r\n </Box>\r\n )\r\n }\r\n\r\n renderEndAdornment = () => {\r\n if (!this.props.searchInclude || this.props.searchInclude.length <= 0) return <></>\r\n return (\r\n <HelpTooltip title='The search includes' small>\r\n <ul className={toolbarPannelClasses.searchHelp}>\r\n {this.props.searchInclude.map((item, index) => (\r\n <li key={index}>\r\n <Typography variant='body2'>{item}</Typography>\r\n </li>\r\n ))}\r\n </ul>\r\n </HelpTooltip>\r\n )\r\n }\r\n}\r\nexport default ToolbarPannel\r\n\r\nconst toolbarPannelClasses = {\r\n root: 'Dino-ToolbarPannel-root',\r\n actionsRow: 'Dino-ToolbarPannel-actionsRow',\r\n actionsLeft: 'Dino-ToolbarPannel-actionsLeft',\r\n actionsRight: 'Dino-ToolbarPannel-actionsRight',\r\n quickFilterWrap: 'Dino-ToolbarPannel-quickFilterWrap',\r\n gridToolbar: 'Dino-ToolbarPannel-gridToolbar',\r\n titleWrap: 'Dino-ToolbarPannel-titleWrap',\r\n titleText: 'Dino-ToolbarPannel-titleText',\r\n searchHelp: 'Dino-ToolbarPannel-searchHelp',\r\n icon: 'Dino-ToolbarPannel-icon'\r\n}\r\n\r\nconst ToolbarPannelStyled = styled(Box)(({ theme }) => ({\r\n padding: theme.spacing(1, 2, 0),\r\n [`.${toolbarPannelClasses.actionsRow}`]: { display: 'flex', flexWrap: 'wrap' },\r\n [`.${toolbarPannelClasses.actionsLeft}`]: { flex: 1, display: 'flex', alignItems: 'center', flexWrap: 'wrap' },\r\n [`.${toolbarPannelClasses.actionsRight}`]: {\r\n display: 'flex',\r\n gap: '8px',\r\n alignItems: 'center',\r\n width: 'auto',\r\n [theme.breakpoints.down('md')]: { width: '100%' }\r\n },\r\n [`.${toolbarPannelClasses.quickFilterWrap}`]: { display: 'flex', alignItems: 'center' },\r\n [`.${toolbarPannelClasses.gridToolbar}`]: { padding: 0 },\r\n [`.${toolbarPannelClasses.titleWrap}`]: { height: 'var(--height-table-topbar, 48px)', display: 'flex', alignItems: 'center' },\r\n [`.${toolbarPannelClasses.titleText}`]: { fontWeight: 700, flex: 1 },\r\n [`.${toolbarPannelClasses.icon}`]: {\r\n marginRight: 8,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flex: '0 0 auto'\r\n },\r\n [`.${toolbarPannelClasses.searchHelp}`]: {\r\n margin: '0 0 0 18px',\r\n padding: 0,\r\n li: { position: 'relative' },\r\n 'li::after': {\r\n content: '\"►\"',\r\n display: 'inline-block',\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n position: 'absolute',\r\n left: '-18px'\r\n }\r\n },\r\n [theme.breakpoints.down('md')]: { padding: theme.spacing(1, 1, 0) }\r\n}))\r\n"],"names":["ToolbarPannel","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","_this$props$titleProp","_this$props","props","title","afterTitle","breadcrumbs","icon","titleClassName","toolbarPannelClasses","titleWrap","titleProps","className","_jsx","titleElm","Typography","noWrap","variant","titleText","Breadcrumbs","value","_jsxs","Box","_objectSpread","children","searchInclude","HelpTooltip","small","searchHelp","map","item","index","_inherits","Component","_createClass","key","_this$props$visibilit","_this$props$visibilit2","_this$props$visibilit3","_this$props$visibilit4","ToolbarPannelStyled","root","sx","renderTitle","aboveAction","actionsRow","actionWrapProps","actionsLeft","gridToolbar","visibilityToolbar","columns","GridToolbarColumnsButton","filters","GridToolbarFilterButton","density","GridToolbarDensitySelector","CustomExportButton","csvOptions","exportCsvOptions","formCreate","BtnFormCreate","afterAction","actionsRight","quickFilterWrap","GridToolbarQuickFilter","fullWidth","size","debounceMs","quickFilterParser","x","renderEndAdornment","belowAction","styled","_ref","theme","padding","spacing","display","flexWrap","flex","alignItems","gap","width","breakpoints","down","height","fontWeight","marginRight","justifyContent","margin","li","position","content","top","transform","left"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{typeof as r,slicedToArray as t,asyncToGenerator as n,regenerator as e,objectSpread2 as o,toArray as a,arrayLikeToArray as c}from"../../_virtual/_rollupPluginBabelHelpers.js";import i from"dayjs";var u=function(r){return new Promise(function(t){return setTimeout(t,r)})},s=function(){var r=n(e().m(function r(n,o){var a,c,i;return e().w(function(r){for(;;)switch(r.n){case 0:return r.n=1,Promise.all([n(),u(o)]);case 1:return a=r.v,c=t(a,1),i=c[0],r.a(2,i)}},r)}));return function(t,n){return r.apply(this,arguments)}}(),f=function(r){return/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(r)},l=function(r){return/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(r)},d=function(r){return/^(\+?\d{1,4}[\s-]?)?((\(\d{1,4}\))|\d{1,4})[\s-]?\d{1,4}[\s-]?\d{1,9}$/.test((null!=r?r:"").trim())},y=function(r){return/^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/i.test(r)},v=function(r,t){setTimeout(function(){window.scrollTo(o({top:0,left:0,behavior:"smooth"},r))},t||50)},h=function(){for(var r=arguments.length,t=new Array(r),n=0;n<r;n++)t[n]=arguments[n];return t.join(" ")},p=function(t){return t&&"object"===r(t)&&!Array.isArray(t)},A=function(){for(var r=arguments.length,t=new Array(r),n=0;n<r;n++)t[n]=arguments[n];return t.reduce(function(r,t){return t?(Object.keys(t).forEach(function(n){p(r[n])&&p(t[n])?r[n]=A(r[n],t[n]):r[n]=t[n]}),r):r},{})},g=function(r){try{return r?Object.entries(r).reduce(function(r,n){var e=t(n,2),o=e[0],a=e[1];return void 0!==a&&(r[o]=a),r},{}):{}}catch(r){return{}}},m=function(n){if("object"!==r(n)||null===n)return n;var e=Array.isArray(n)?[]:{};return Object.entries(n).forEach(function(n){var o=t(n,2),a=o[0],c=o[1];if(null==c||"string"==typeof c&&""===c.trim()||"number"==typeof c&&isNaN(c)||Array.isArray(c)&&0===c.length||"object"===r(c)&&!Array.isArray(c)&&0===Object.keys(m(c)).length);else if("object"!==r(c)||Array.isArray(c))e[a]=c;else{var i=m(c);Object.keys(i).length>0&&(e[a]=i)}}),e},b=function(r){try{var t=(new TextEncoder).encode(r),n="";return t.forEach(function(r){n+=String.fromCharCode(r)}),btoa(n)}catch(r){return console.error("Error encoding to base64",r),""}},j=function(r){try{for(var t=atob(r),n=new Uint8Array(t.length),e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return(new TextDecoder).decode(n)}catch(r){return void console.error("Error decoding base64",r)}},w=function(r,t){try{return r?JSON.parse(r):t}catch(r){return console.log("Try Parse Object error:",r),t}},F=function(r){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];try{if(!r)return[];var n=JSON.parse(r);return Array.isArray(n)?n:[]}catch(r){return t}},M=function(r,t){try{return r?parseInt(r):t}catch(r){return t}},S=function(r){return new Promise(function(t,n){var e=new FileReader;e.onload=function(){try{var r=e.result.split(/\r?\n/).filter(Boolean);if(r.length<1)return t([]);var n=r[0].split(",").map(function(r){return r.trim()}),o=r.slice(1).map(function(r){var t=r.split(",").map(function(r){return r.trim()}),e={};return n.forEach(function(r,n){var o;e[r]=null!==(o=t[n])&&void 0!==o?o:""}),e});t(o)}catch(r){t([])}},e.onerror=function(){n(new Error("Error reading file"))},e.readAsText(r)})},Y=function(r){return r<1024?r.toFixed(2)+" Kb":r<1048576?(r/1024).toFixed(2)+" Mb":r<1073741824?(r/1048576).toFixed(2)+" Gb":(r/1073741824).toFixed(2)+" Tb"},E=function(r){var t=null==r,n="string"==typeof r&&isNaN(Number(r));if(t||n)return"00:00:00";var e=Math.round(r),o=Math.floor(e/3600),a=Math.floor(e%3600/60),c=e%60,i=String(o).padStart(2,"0"),u=String(a).padStart(2,"0"),s=String(c).padStart(2,"0");return"".concat(i,":").concat(u,":").concat(s)},T=function(r){var n,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"$ ",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";try{n=parseFloat(r),isNaN(n)&&(n=0)}catch(r){n=0}var a=n.toFixed(2).split("."),c=t(a,2),i=c[0],u=c[1],s=i.replace(/\B(?=(\d{3})+(?!\d))/g," "),f=s;return"00"!==u&&(f="".concat(s,".").concat(u)),"".concat(e).concat(f).concat(o)},x=function(r){return r.toLocaleString("en-US")},N=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(!r)return r;var t=Array.from(r),n=a(t),e=n[0],o=c(n).slice(1);return"".concat(e.toUpperCase()).concat(o.join(""))},O={style1:"DD/MM/YYYY HH:mm",style2:"MMMM D, YYYY",style3:"MM-DD-YYYY"},D=function(r){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"style1";try{var n;if(!r)throw new Error;var e=null!==(n=O[t])&&void 0!==n?n:t;return i(r).format(e)}catch(r){return"unknown"}};export{g as cleanObject,j as decodeBase64,m as deepRemoveEmptyFields,b as encodeBase64,s as fetchDelay,N as formatCapitalizeFirstText,T as formatCurrency,D as formatDatetime,O as formatDatetimeStyles,E as formatDuration,Y as formatFileSize,x as formatNumberWithCommas,f as isGuid,l as isValidEmail,d as isValidPhoneNumber,y as isValidURL,h as mergeClasses,A as mergeObjects,u as sleep,F as tryParseArray,S as tryParseCsvFileToArray,M as tryParseIntRequired,w as tryParseObject,v as windowScrollToTop};
1
+ import{slicedToArray as r,asyncToGenerator as t,typeof as n,regenerator as e,objectSpread2 as o,toArray as a,arrayLikeToArray as c}from"../../_virtual/_rollupPluginBabelHelpers.js";import i from"dayjs";var u=function(r){return new Promise(function(t){return setTimeout(t,r)})},s=function(){var n=t(e().m(function t(n,o){var a,c,i;return e().w(function(t){for(;;)switch(t.n){case 0:return t.n=1,Promise.all([n(),u(o)]);case 1:return a=t.v,c=r(a,1),i=c[0],t.a(2,i)}},t)}));return function(r,t){return n.apply(this,arguments)}}(),f=function(r){return/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(r)},l=function(r){return/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(r)},d=function(r){return/^(\+?\d{1,4}[\s-]?)?((\(\d{1,4}\))|\d{1,4})[\s-]?\d{1,4}[\s-]?\d{1,9}$/.test((null!=r?r:"").trim())},y=function(r){return/^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/i.test(r)},v=function(r,t){setTimeout(function(){window.scrollTo(o({top:0,left:0,behavior:"smooth"},r))},t||50)},h=function(){for(var r=arguments.length,t=new Array(r),n=0;n<r;n++)t[n]=arguments[n];return t.join(" ")},p=function(r){return r&&"object"===n(r)&&!Array.isArray(r)},A=function(){for(var r=arguments.length,t=new Array(r),n=0;n<r;n++)t[n]=arguments[n];return t.reduce(function(r,t){return t?(Object.keys(t).forEach(function(n){p(r[n])&&p(t[n])?r[n]=A(r[n],t[n]):r[n]=t[n]}),r):r},{})},g=function(t){try{return t?Object.entries(t).reduce(function(t,n){var e=r(n,2),o=e[0],a=e[1];return void 0!==a&&(t[o]=a),t},{}):{}}catch(r){return{}}},m=function(t){if("object"!==n(t)||null===t)return t;var e=Array.isArray(t)?[]:{};return Object.entries(t).forEach(function(t){var o=r(t,2),a=o[0],c=o[1];if(null==c||"string"==typeof c&&""===c.trim()||"number"==typeof c&&isNaN(c)||Array.isArray(c)&&0===c.length||"object"===n(c)&&!Array.isArray(c)&&0===Object.keys(m(c)).length);else if("object"!==n(c)||Array.isArray(c))e[a]=c;else{var i=m(c);Object.keys(i).length>0&&(e[a]=i)}}),e},b=function(r){try{var t=(new TextEncoder).encode(r),n="";return t.forEach(function(r){n+=String.fromCharCode(r)}),btoa(n)}catch(r){return console.error("Error encoding to base64",r),""}},j=function(r){try{for(var t=atob(r),n=new Uint8Array(t.length),e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return(new TextDecoder).decode(n)}catch(r){return void console.error("Error decoding base64",r)}},w=function(r,t){try{return r?JSON.parse(r):t}catch(r){return console.log("Try Parse Object error:",r),t}},F=function(r){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];try{if(!r)return[];var n=JSON.parse(r);return Array.isArray(n)?n:[]}catch(r){return t}},M=function(r,t){try{return r?parseInt(r):t}catch(r){return t}},S=function(r){return new Promise(function(t,n){var e=new FileReader;e.onload=function(){try{var r=e.result.split(/\r?\n/).filter(Boolean);if(r.length<1)return t([]);var n=r[0].split(",").map(function(r){return r.trim()}),o=r.slice(1).map(function(r){var t=r.split(",").map(function(r){return r.trim()}),e={};return n.forEach(function(r,n){var o;e[r]=null!==(o=t[n])&&void 0!==o?o:""}),e});t(o)}catch(r){t([])}},e.onerror=function(){n(new Error("Error reading file"))},e.readAsText(r)})},Y=function(r){return r<1024?r.toFixed(2)+" Kb":r<1048576?(r/1024).toFixed(2)+" Mb":r<1073741824?(r/1048576).toFixed(2)+" Gb":(r/1073741824).toFixed(2)+" Tb"},E=function(r){var t=null==r,n="string"==typeof r&&isNaN(Number(r));if(t||n)return"00:00:00";var e=Math.round(r),o=Math.floor(e/3600),a=Math.floor(e%3600/60),c=e%60,i=String(o).padStart(2,"0"),u=String(a).padStart(2,"0"),s=String(c).padStart(2,"0");return"".concat(i,":").concat(u,":").concat(s)},T=function(t){var n,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"$ ",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";try{n=parseFloat(t),isNaN(n)&&(n=0)}catch(r){n=0}var a=n.toFixed(2).split("."),c=r(a,2),i=c[0],u=c[1],s=i.replace(/\B(?=(\d{3})+(?!\d))/g," "),f=s;return"00"!==u&&(f="".concat(s,".").concat(u)),"".concat(e).concat(f).concat(o)},x=function(r){return r.toLocaleString("en-US")},N=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(!r)return r;var t=Array.from(r),n=a(t),e=n[0],o=c(n).slice(1);return"".concat(e.toUpperCase()).concat(o.join(""))},O={style1:"DD/MM/YYYY HH:mm",style2:"MMMM D, YYYY",style3:"MM-DD-YYYY"},D=function(r){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"style1";try{var n;if(!r)throw new Error;var e=null!==(n=O[t])&&void 0!==n?n:t;return i(r).format(e)}catch(r){return"unknown"}};export{g as cleanObject,j as decodeBase64,m as deepRemoveEmptyFields,b as encodeBase64,s as fetchDelay,N as formatCapitalizeFirstText,T as formatCurrency,D as formatDatetime,O as formatDatetimeStyles,E as formatDuration,Y as formatFileSize,x as formatNumberWithCommas,f as isGuid,l as isValidEmail,d as isValidPhoneNumber,y as isValidURL,h as mergeClasses,A as mergeObjects,u as sleep,F as tryParseArray,S as tryParseCsvFileToArray,M as tryParseIntRequired,w as tryParseObject,v as windowScrollToTop};
2
2
  //# sourceMappingURL=helpers.js.map
@@ -4,7 +4,15 @@ import type { ComponentType, FC } from 'react';
4
4
  import type { IViewGridConfig, IViewGridProps } from './view-grid/types';
5
5
  import type { TPagination, TDataSurfaceState, TRenderableNode } from './types';
6
6
  import type { IViewListConfig, IViewListProps } from './view-list';
7
- export interface IDataSurfaceSlots {
7
+ export interface IDataSurfaceSlots<T> {
8
+ listViewProps?: IViewListProps<T>;
9
+ gridViewProps?: IViewGridProps<T>;
10
+ PanelLoading?: ComponentType<{
11
+ viewMode: DataSurfaceViewMode;
12
+ }>;
13
+ PanelNoData?: ComponentType<{
14
+ viewMode: DataSurfaceViewMode;
15
+ }>;
8
16
  footer?: {
9
17
  status?: TRenderableNode;
10
18
  range?: TRenderableNode;
@@ -39,7 +47,7 @@ export interface IDataSurfaceProps<T> {
39
47
  /** Load orchestration mode. @default 'pagination' */
40
48
  loadMode?: LoadingModeRule;
41
49
  sx?: BoxProps['sx'];
42
- slots?: IDataSurfaceSlots;
50
+ slots?: IDataSurfaceSlots<T>;
43
51
  /** Enable row selection with checkboxes (List view only). */
44
52
  selectable?: boolean;
45
53
  /** Array of selected row IDs (List view only). */
@@ -6,4 +6,10 @@ export declare const useMergedConfig: <T>(props: IViewGridProps<T>, config: IVie
6
6
  scrollingThreshold: number;
7
7
  sizes: Partial<Record<import("./types").TGridSize, number>>;
8
8
  Component: import("react").FC<import("./types").IViewGridItemProps<any>> | import("react").ComponentType<import("./types").IViewGridItemProps<T>>;
9
+ normalOptions: {
10
+ autoHeight: boolean;
11
+ } & import("./types").IViewGridNormalOptions;
12
+ virtualizedOptions: {
13
+ overscan: number;
14
+ } & import("./types").IViewGridVirtualizedOptions;
9
15
  };
@@ -1,6 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  export declare const viewGridClasses: {
3
3
  root: string;
4
+ normal: string;
5
+ autoHeight: string;
4
6
  virtualized: string;
5
7
  scrollContainer: string;
6
8
  grid: string;
@@ -1,5 +1,5 @@
1
1
  import type { ComponentType } from 'react';
2
- import type { RenderStrategyRule, TGetterId } from '../types';
2
+ import type { DataSurfaceFeatureMode, RenderStrategyRule, TGetterId } from '../types';
3
3
  export type TGridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4
4
  export type TGridSizes = Partial<Record<TGridSize, number>>;
5
5
  /**
@@ -12,6 +12,14 @@ export interface IViewGridItemProps<T> {
12
12
  /** Zero-based position of this item in the data array. */
13
13
  index: number;
14
14
  }
15
+ export interface IViewGridNormalOptions {
16
+ /** When true, the grid will automatically adjust its height to fit all items. @default false */
17
+ autoHeight?: boolean;
18
+ }
19
+ export interface IViewGridVirtualizedOptions {
20
+ /** Number of extra rows rendered outside the viewport as a buffer when using virtualized rendering. @default 6 */
21
+ overscan?: number;
22
+ }
15
23
  export interface IViewGridBase<T> {
16
24
  /** Spacing between grid items in pixels. @default 8 */
17
25
  spacing?: number;
@@ -26,8 +34,10 @@ export interface IViewGridBase<T> {
26
34
  */
27
35
  renderStrategy?: RenderStrategyRule;
28
36
  Component?: ComponentType<IViewGridItemProps<T>>;
29
- /** Number of extra rows rendered outside the viewport as a buffer when using virtualized rendering. @default 4 */
30
- overscan?: number;
37
+ /** Options specific to normal rendering strategy. */
38
+ normalOptions?: IViewGridNormalOptions;
39
+ /** Options specific to virtualized rendering strategy. */
40
+ virtualizedOptions?: IViewGridVirtualizedOptions;
31
41
  }
32
42
  export interface IViewGridConfig<T> extends IViewGridBase<T> {
33
43
  getterId: TGetterId<T>;
@@ -36,6 +46,8 @@ export interface IViewGridProps<T> extends IViewGridBase<T> {
36
46
  value: T[];
37
47
  /** Called when user scrolls near the bottom of the list. Use this to trigger pagination or infinity load. */
38
48
  onNearEnd?: () => void;
49
+ /** Feature mode for the data surface. */
50
+ featureMode?: DataSurfaceFeatureMode;
39
51
  /** When this value changes, the scroll position resets to top (virtualized mode only). */
40
52
  scrollResetToken?: unknown;
41
53
  }
@@ -7,6 +7,12 @@ export declare function useMergedConfig<T>(config: IViewListConfig<T>, props: IV
7
7
  rowHeight: number;
8
8
  cellPadding: string;
9
9
  rowSpacing: number;
10
+ normalOptions: {
11
+ autoHeight: boolean;
12
+ } & import("./types").IViewListNormalOptions;
13
+ virtualizedOptions: {
14
+ overscan: number;
15
+ } & import("./types").IViewListVirtualizedOptions;
10
16
  rootStyle: CSSProperties;
11
17
  };
12
18
  /**
@@ -2,7 +2,9 @@
2
2
  export declare const VIEW_LIST_ROW_SPACING_VAR = "--DinoViewList-rowSpacing";
3
3
  export declare const viewListClasses: {
4
4
  root: string;
5
+ normal: string;
5
6
  virtualized: string;
7
+ autoHeight: string;
6
8
  scrollContainer: string;
7
9
  table: string;
8
10
  tableHeader: string;
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
- import { RenderStrategyRule, TGetterId } from '../types';
2
+ import { DataSurfaceFeatureMode, RenderStrategyRule, TGetterId } from '../types';
3
3
  /**
4
4
  * Props received by the custom render function for each row in List view.
5
5
  * @template T - The shape of a single data row object.
@@ -64,6 +64,14 @@ export declare const ListDensity: {
64
64
  readonly comfortable: "comfortable";
65
65
  };
66
66
  export type ListDensity = keyof typeof ListDensity;
67
+ export interface IViewListNormalOptions {
68
+ /** When true, the list will automatically adjust its height to fit all items. @default false */
69
+ autoHeight?: boolean;
70
+ }
71
+ export interface IViewListVirtualizedOptions {
72
+ /** Number of extra rows rendered outside the viewport as a buffer when using virtualized rendering. @default 6 */
73
+ overscan?: number;
74
+ }
67
75
  /** Base configuration for List view. */
68
76
  export interface IViewListBase<T> {
69
77
  /** Custom render function for list rows. If not provided, a default row layout will be used. */
@@ -81,8 +89,10 @@ export interface IViewListBase<T> {
81
89
  renderStrategy?: RenderStrategyRule;
82
90
  /** Enable row selection with checkboxes. */
83
91
  selectable?: boolean;
84
- /** Number of extra rows rendered outside the viewport as a buffer when using virtualized rendering. @default 6 */
85
- overscan?: number;
92
+ /** Options specific to normal rendering strategy. */
93
+ normalOptions?: IViewListNormalOptions;
94
+ /** Options specific to virtualized rendering strategy. */
95
+ virtualizedOptions?: IViewListVirtualizedOptions;
86
96
  }
87
97
  /** Configuration for List view. */
88
98
  export interface IViewListConfig<T> extends IViewListBase<T> {
@@ -99,6 +109,8 @@ export interface IViewListProps<T> extends IViewListBase<T> {
99
109
  selectedIds?: (string | number)[];
100
110
  /** Callback when selection changes. */
101
111
  onSelectionChange?: (selectedIds: (string | number)[]) => void;
112
+ /** Feature mode for the data surface. */
113
+ featureMode?: DataSurfaceFeatureMode;
102
114
  /** When this value changes, the scroll position resets to top (virtualized mode only). */
103
115
  scrollResetToken?: unknown;
104
116
  }
@@ -22,7 +22,5 @@ interface IChipViewerProps<T> {
22
22
  enableMinimalesticView?: boolean;
23
23
  sx?: SxProps<Theme>;
24
24
  }
25
- export declare function createChipViewers<T>(): {
26
- Group: FC<IChipViewerProps<T>>;
27
- };
25
+ export declare function createChipViewers<T>(): FC<IChipViewerProps<T>>;
28
26
  export {};
@@ -22,6 +22,6 @@ export interface PopperContentProps extends BoxProps {
22
22
  };
23
23
  }
24
24
  export declare const PopperContent: FC<PopperContentProps>;
25
- export declare const PopperFooter: FC<Required<PropsWithChildren>>;
26
- export declare const PopperBody: FC<Required<PropsWithChildren>>;
25
+ export declare const PopperFooter: FC<BoxProps & Required<PropsWithChildren>>;
26
+ export declare const PopperBody: FC<BoxProps & Required<PropsWithChildren>>;
27
27
  export {};
@@ -0,0 +1,22 @@
1
+ import type { FC } from 'react';
2
+ import type { ToggleButtonGroupProps } from '@mui/material';
3
+ import type { TLogic } from '../types';
4
+ interface IFilterMenuNoFieldProps {
5
+ onClose: () => void;
6
+ }
7
+ export declare const FilterMenuNoField: FC<IFilterMenuNoFieldProps>;
8
+ export declare const ButtonBack: import("@emotion/styled").StyledComponent<import("@mui/material").IconButtonOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
9
+ ref?: ((instance: HTMLButtonElement | null) => void) | import("react").RefObject<HTMLButtonElement> | null | undefined;
10
+ }, "classes" | "className" | "style" | "children" | "sx" | "tabIndex" | "color" | "action" | "disabled" | "size" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge"> & {
11
+ component?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
12
+ } & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
13
+ export declare const ChipDark: import("@emotion/styled").StyledComponent<import("@mui/material").ChipOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
14
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
15
+ }, "classes" | "className" | "style" | "children" | "sx" | "variant" | "label" | "tabIndex" | "color" | "icon" | "disabled" | "size" | "clickable" | "avatar" | "deleteIcon" | "onDelete" | "skipFocusWhenDisabled"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
16
+ export interface FilterLogicToggleProps {
17
+ value?: TLogic;
18
+ onChange?: (event: React.MouseEvent<HTMLElement>, value: TLogic) => void;
19
+ sx?: ToggleButtonGroupProps['sx'];
20
+ }
21
+ export declare const FilterLogicToggle: FC<FilterLogicToggleProps>;
22
+ export {};
@@ -1,7 +1,7 @@
1
1
  import { BoxProps } from '@mui/material';
2
2
  import type { ComponentType, FC } from 'react';
3
3
  import type { TFilterState } from './types';
4
- import type { IFilterMenuConfig, IFilterMenuProps } from './components/filter-menu.types';
4
+ import type { IFilterMenuConfig, IFilterMenuProps } from './menu/types';
5
5
  import type { IFilterSortConfig, IFilterSortProps } from './components/filter-sort.types';
6
6
  import type { IFilterInputConfig, IFilterInputProps } from './components/filter-input.types';
7
7
  import type { IFilterSummaryConfig, IFilterSummaryProps } from './components/filter-summary.types';
@@ -1,9 +1,15 @@
1
1
  import { createFilterBar } from './index.create';
2
2
  import { getFilterFromURL, isEmptyFilterState, isFilterStateEqual, removeNullValues, setFilterToURL } from './helpers';
3
+ import createFormFieldString from './menu/create-form-field-string';
4
+ import createFormFieldSelect from './menu/create-form-field-select';
5
+ import createFormFieldSelectMultiple from './menu/create-form-field-select-multiple';
3
6
  export declare class DinoFilterBar {
4
7
  createFilterBar: typeof createFilterBar;
5
8
  createConvertToGraphQL: <TSource extends Record<string, any>, TTarget extends object>(state: import("./types").TFilterState<TSource>) => import("./convert-to-graphql").TableFileterConverter<TSource, TTarget>;
6
9
  createLocalFilterBuilder: <T>(data: T[], filterState: import("./types").TFilterState<T>) => import("./local-filter-builder").LocalFilterBuilder<T>;
10
+ createFormFieldString: typeof createFormFieldString;
11
+ createFormFieldSelect: typeof createFormFieldSelect;
12
+ createFormFieldSelectMultiple: typeof createFormFieldSelectMultiple;
7
13
  mapLogic: (logic?: import("./types").TLogic | undefined) => "Or" | "And";
8
14
  mapDirection: (direction?: import("./types").TDirection | undefined) => "ASC" | "DESC";
9
15
  isEmptyFilterState: typeof isEmptyFilterState;
@@ -0,0 +1,13 @@
1
+ import type { FC } from 'react';
2
+ import type { IFieldSelectOption } from './create-form-field-select';
3
+ import type { IFieldMenuConfig, IFilterMenuFormProps } from './types';
4
+ export interface IFormFieldSelectMultipleProps<T> extends IFilterMenuFormProps<T> {
5
+ }
6
+ export interface IFormFieldSelectMultipleParam<T> {
7
+ /** Optional configuration for the form field */
8
+ config?: IFieldMenuConfig<T>;
9
+ /** List of options for the select field */
10
+ options: IFieldSelectOption[];
11
+ }
12
+ declare function createFormFieldSelectMultiple<T>(params?: IFormFieldSelectMultipleParam<T>): FC<IFormFieldSelectMultipleProps<T>>;
13
+ export default createFormFieldSelectMultiple;
@@ -0,0 +1,17 @@
1
+ import { FC } from 'react';
2
+ import type { IFieldMenuConfig, IFilterMenuFormProps } from './types';
3
+ import type { TFieldValid } from '../types';
4
+ export interface IFormFieldSelectProps<T> extends IFilterMenuFormProps<T> {
5
+ }
6
+ export interface IFieldSelectOption {
7
+ value: TFieldValid;
8
+ label?: string;
9
+ }
10
+ export interface IFormFieldSelectParams<T> {
11
+ /** Optional configuration for the form field */
12
+ config?: IFieldMenuConfig<T>;
13
+ /** List of options for the select field */
14
+ options: IFieldSelectOption[];
15
+ }
16
+ declare function createFormFieldSelect<T>(params: IFormFieldSelectParams<T>): FC<IFormFieldSelectProps<T>>;
17
+ export default createFormFieldSelect;
@@ -0,0 +1,10 @@
1
+ import type { FC } from 'react';
2
+ import type { IFieldMenuConfig, IFilterMenuFormProps } from './types';
3
+ export interface IFormFieldStringProps<T> extends IFilterMenuFormProps<T> {
4
+ }
5
+ export interface IFormFieldStringParam<T> {
6
+ /** Optional configuration for the form field */
7
+ config?: IFieldMenuConfig<T>;
8
+ }
9
+ declare function createFormFieldString<T>(params?: IFormFieldStringParam<T>): FC<IFormFieldStringProps<T>>;
10
+ export default createFormFieldString;
@@ -1,6 +1,6 @@
1
1
  import type { FC } from 'react';
2
- import type { IFilterMenuProps } from './filter-menu.types';
3
- import type { IFilterMenuConfig } from './filter-menu.types';
2
+ import type { IFilterMenuProps } from './types';
3
+ import type { IFilterMenuConfig } from './types';
4
4
  export declare function createFilterMenu<T>(config: IFilterMenuConfig<T>): FC<IFilterMenuProps<T>>;
5
5
  export declare const filterMenuClasses: {
6
6
  root: string;
@@ -7,10 +7,12 @@ export interface IFieldMenuConfig<T> {
7
7
  label?: string;
8
8
  singleValue?: boolean;
9
9
  /** Default form component for the field is `String` */
10
- form?: ComponentType<IFilterMenuFormProps<T>>;
10
+ FormComponent?: ComponentType<IFilterMenuFormProps<T>>;
11
11
  }
12
12
  export type TFieldMenuConfigs<T> = Partial<Record<TFieldType<T>, Omit<IFieldMenuConfig<T>, 'field'>>>;
13
+ export type TFieldMenuConfigsInternal<T> = Partial<Record<TFieldType<T>, IFieldMenuConfig<T>>>;
13
14
  export interface IFilterMenuFormProps<T> {
15
+ currentConfig: IFieldMenuConfig<T>;
14
16
  isLoading?: boolean;
15
17
  value?: TFieldValue;
16
18
  validator?: FormValidator<Partial<TFieldModelValid<T>>>;
@@ -32,6 +34,9 @@ export interface IFilterMenuConfig<T> extends IFilterMenuSlots {
32
34
  /** Option to enable or disable quick search @default true */
33
35
  enableQuickSearch?: boolean;
34
36
  }
37
+ export interface IFilterMenuConfigInternal<T> extends Omit<IFilterMenuConfig<T>, 'fields'> {
38
+ fields: TFieldMenuConfigsInternal<T>;
39
+ }
35
40
  export interface IFilterMenuProps<T> {
36
41
  slots?: IFilterMenuSlots;
37
42
  }
@@ -0,0 +1,20 @@
1
+ export interface IExportCsvOptionsModel<T = any> {
2
+ fileName: string;
3
+ fields: (keyof T)[];
4
+ utf8WithBom?: boolean;
5
+ }
6
+ export declare const generateExportCsvOptions: <T>(options: IExportCsvOptionsModel<T>) => IExportCsvOptionsModel<T>;
7
+ export declare class CsvExportHelper {
8
+ /**
9
+ * Export data to CSV with UTF-8 BOM encoding support
10
+ */
11
+ static exportToCsv<T = any>(data: T[], options: IExportCsvOptionsModel<T>): void;
12
+ /**
13
+ * Format field value for CSV export
14
+ */
15
+ private static formatFieldValue;
16
+ /**
17
+ * Escape CSV value by wrapping in quotes if needed
18
+ */
19
+ private static escapeCSVValue;
20
+ }
@@ -0,0 +1,8 @@
1
+ import { FC } from 'react';
2
+ import { ButtonProps } from '@mui/material';
3
+ import { IExportCsvOptionsModel } from './csv-export-helper';
4
+ export interface CustomExportButtonProps extends Omit<ButtonProps, 'onClick'> {
5
+ csvOptions?: IExportCsvOptionsModel;
6
+ tooltip?: string;
7
+ }
8
+ export declare const CustomExportButton: FC<CustomExportButtonProps>;
@@ -22,6 +22,7 @@ interface FormatterDateOptions {
22
22
  declare class DinoTableBase {
23
23
  createTable: typeof CreateTable;
24
24
  createActionRow: typeof CreateActionRow;
25
+ generateExportCsvOptions: <T>(options: import("./csv-export-helper").IExportCsvOptionsModel<T>) => import("./csv-export-helper").IExportCsvOptionsModel<T>;
25
26
  setUrlQuery: <TModel>(tableInfo: Partial<import("./types").ITableQueryParams<TModel>>, defaultValue: import("./types").ITableQueryParams<TModel>) => void;
26
27
  getUrlQuery: <TModel>(defaultValue: import("./types").ITableQueryParams<TModel>) => import("./types").ITableQueryParams<TModel>;
27
28
  mapContext: (context: (context: import("./context").ITableBaseContext) => ReactNode) => import("react/jsx-runtime").JSX.Element;
@@ -5,3 +5,4 @@ export * from './create.table';
5
5
  export { default as DinoTable } from './dino';
6
6
  export { dinoTableClasses } from './helpers';
7
7
  export type { IStatusCellConfig } from './ui.units';
8
+ export type { IExportCsvOptionsModel } from './csv-export-helper';
@@ -1,6 +1,7 @@
1
1
  import React, { Component } from 'react';
2
2
  import { BoxProps } from '@mui/material';
3
3
  import { IBreadcrumbConfig } from '../components';
4
+ import { IExportCsvOptionsModel } from './csv-export-helper';
4
5
  export interface IToolbarPannelToolbarConfig {
5
6
  columns?: boolean;
6
7
  filters?: boolean;
@@ -21,6 +22,7 @@ export interface IToolbarPannelProps {
21
22
  aboveAction?: React.ReactNode;
22
23
  actionWrapProps?: BoxProps;
23
24
  sx?: BoxProps['sx'];
25
+ exportCsvOptions?: IExportCsvOptionsModel;
24
26
  }
25
27
  declare class ToolbarPannel extends Component<React.PropsWithChildren<IToolbarPannelProps>> {
26
28
  render(): import("react/jsx-runtime").JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dinocollab-core",
3
- "version": "2.2.11",
3
+ "version": "2.2.13",
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",