dinocollab-core 2.2.11 → 2.2.14

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 (113) hide show
  1. package/dist/data-surface/index.js +1 -1
  2. package/dist/form/index.js +1 -1
  3. package/dist/src/data-surface/button-switch.js +1 -1
  4. package/dist/src/data-surface/button-switch.js.map +1 -1
  5. package/dist/src/data-surface/index.create.js +1 -1
  6. package/dist/src/data-surface/index.create.js.map +1 -1
  7. package/dist/src/data-surface/ui.units.js +1 -1
  8. package/dist/src/data-surface/ui.units.js.map +1 -1
  9. package/dist/src/data-surface/view-grid/hooks.js +1 -1
  10. package/dist/src/data-surface/view-grid/hooks.js.map +1 -1
  11. package/dist/src/data-surface/view-grid/index.js +1 -1
  12. package/dist/src/data-surface/view-grid/index.js.map +1 -1
  13. package/dist/src/data-surface/view-grid/styleds.js +1 -1
  14. package/dist/src/data-surface/view-grid/styleds.js.map +1 -1
  15. package/dist/src/data-surface/view-list/hooks.js +1 -1
  16. package/dist/src/data-surface/view-list/hooks.js.map +1 -1
  17. package/dist/src/data-surface/view-list/index.js +1 -1
  18. package/dist/src/data-surface/view-list/index.js.map +1 -1
  19. package/dist/src/data-surface/view-list/styled.js +1 -1
  20. package/dist/src/data-surface/view-list/styled.js.map +1 -1
  21. package/dist/src/data-surface/view-list/types.js.map +1 -1
  22. package/dist/src/filter-bar/components/chip-viewer.js +1 -1
  23. package/dist/src/filter-bar/components/chip-viewer.js.map +1 -1
  24. package/dist/src/filter-bar/components/filter-sort.js +1 -1
  25. package/dist/src/filter-bar/components/filter-sort.js.map +1 -1
  26. package/dist/src/filter-bar/components/filter-summary.js +1 -1
  27. package/dist/src/filter-bar/components/filter-summary.js.map +1 -1
  28. package/dist/src/filter-bar/components/{units.js → icons.js} +1 -1
  29. package/dist/src/filter-bar/components/{units.js.map → icons.js.map} +1 -1
  30. package/dist/src/filter-bar/components/popper-custom.js +1 -1
  31. package/dist/src/filter-bar/components/popper-custom.js.map +1 -1
  32. package/dist/src/filter-bar/components/ui.units.js +2 -0
  33. package/dist/src/filter-bar/components/ui.units.js.map +1 -0
  34. package/dist/src/filter-bar/index.create.js +1 -1
  35. package/dist/src/filter-bar/index.create.js.map +1 -1
  36. package/dist/src/filter-bar/index.dino.js +1 -1
  37. package/dist/src/filter-bar/index.dino.js.map +1 -1
  38. package/dist/src/filter-bar/menu/create-form-field-select-multiple.js +2 -0
  39. package/dist/src/filter-bar/menu/create-form-field-select-multiple.js.map +1 -0
  40. package/dist/src/filter-bar/menu/create-form-field-select.js +2 -0
  41. package/dist/src/filter-bar/menu/create-form-field-select.js.map +1 -0
  42. package/dist/src/filter-bar/menu/create-form-field-string.js +2 -0
  43. package/dist/src/filter-bar/menu/create-form-field-string.js.map +1 -0
  44. package/dist/src/filter-bar/menu/create.js +2 -0
  45. package/dist/src/filter-bar/menu/create.js.map +1 -0
  46. package/dist/src/form/create.date-expired.js +1 -1
  47. package/dist/src/form/create.date-expired.js.map +1 -1
  48. package/dist/src/form/create.form-base.js +1 -1
  49. package/dist/src/form/create.form-base.js.map +1 -1
  50. package/dist/src/form/create.form-grid-layout.js +1 -1
  51. package/dist/src/form/create.form-grid-layout.js.map +1 -1
  52. package/dist/src/form/create.form-grid-layout.units.js +1 -1
  53. package/dist/src/form/create.form-grid-layout.units.js.map +1 -1
  54. package/dist/src/form/create.select-simple.js +1 -1
  55. package/dist/src/form/create.select-simple.js.map +1 -1
  56. package/dist/src/form/create.select-with-api.js +1 -1
  57. package/dist/src/form/create.select-with-api.js.map +1 -1
  58. package/dist/src/form/create.text-editor.js +1 -1
  59. package/dist/src/form/dino-form.js.map +1 -1
  60. package/dist/src/form/helpers.js +1 -1
  61. package/dist/src/table/create.table.js +1 -1
  62. package/dist/src/table/create.table.js.map +1 -1
  63. package/dist/src/table/csv-export-helper.js +2 -0
  64. package/dist/src/table/csv-export-helper.js.map +1 -0
  65. package/dist/src/table/custom.export-button.js +2 -0
  66. package/dist/src/table/custom.export-button.js.map +1 -0
  67. package/dist/src/table/dino.js +1 -1
  68. package/dist/src/table/dino.js.map +1 -1
  69. package/dist/src/table/toolbar-pannel.js +1 -1
  70. package/dist/src/table/toolbar-pannel.js.map +1 -1
  71. package/dist/src/utils/helpers.js +1 -1
  72. package/dist/src/utils/helpers.js.map +1 -1
  73. package/dist/types/data-surface/button-switch.d.ts +1 -0
  74. package/dist/types/data-surface/index.create.d.ts +10 -2
  75. package/dist/types/data-surface/ui.units.d.ts +4 -2
  76. package/dist/types/data-surface/view-grid/hooks.d.ts +6 -0
  77. package/dist/types/data-surface/view-grid/styleds.d.ts +2 -0
  78. package/dist/types/data-surface/view-grid/types.d.ts +15 -3
  79. package/dist/types/data-surface/view-list/hooks.d.ts +6 -0
  80. package/dist/types/data-surface/view-list/styled.d.ts +2 -0
  81. package/dist/types/data-surface/view-list/types.d.ts +15 -3
  82. package/dist/types/data-view/dino.d.ts +1 -1
  83. package/dist/types/data-view/query-param-url.d.ts +1 -1
  84. package/dist/types/filter-bar/components/chip-viewer.d.ts +1 -3
  85. package/dist/types/filter-bar/components/popper-custom.d.ts +2 -2
  86. package/dist/types/filter-bar/components/ui.units.d.ts +22 -0
  87. package/dist/types/filter-bar/index.create.d.ts +1 -1
  88. package/dist/types/filter-bar/index.dino.d.ts +6 -0
  89. package/dist/types/filter-bar/menu/create-form-field-select-multiple.d.ts +13 -0
  90. package/dist/types/filter-bar/menu/create-form-field-select.d.ts +17 -0
  91. package/dist/types/filter-bar/menu/create-form-field-string.d.ts +10 -0
  92. package/dist/types/filter-bar/{components/filter-menu.d.ts → menu/create.d.ts} +2 -2
  93. package/dist/types/filter-bar/{components/filter-menu.types.d.ts → menu/types.d.ts} +6 -1
  94. package/dist/types/form/create.date-expired.d.ts +10 -5
  95. package/dist/types/form/create.form-base.d.ts +1 -0
  96. package/dist/types/form/create.form-grid-layout.d.ts +6 -4
  97. package/dist/types/form/create.form-grid-layout.units.d.ts +12 -6
  98. package/dist/types/form/create.select-simple.d.ts +13 -3
  99. package/dist/types/form/create.select-with-api.d.ts +56 -4
  100. package/dist/types/form/dino-form.d.ts +4 -3
  101. package/dist/types/form/index.d.ts +2 -1
  102. package/dist/types/table/csv-export-helper.d.ts +20 -0
  103. package/dist/types/table/custom.export-button.d.ts +8 -0
  104. package/dist/types/table/dino.d.ts +1 -0
  105. package/dist/types/table/index.d.ts +1 -0
  106. package/dist/types/table/toolbar-pannel.d.ts +2 -0
  107. package/package.json +1 -1
  108. package/dist/src/filter-bar/components/filter-menu.js +0 -2
  109. package/dist/src/filter-bar/components/filter-menu.js.map +0 -1
  110. package/dist/src/filter-bar/components/filter-menu.units.js +0 -2
  111. package/dist/src/filter-bar/components/filter-menu.units.js.map +0 -1
  112. package/dist/types/filter-bar/components/filter-menu.units.d.ts +0 -18
  113. /package/dist/types/filter-bar/components/{units.d.ts → icons.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"create.select-with-api.js","sources":["../../../src/form/create.select-with-api.tsx"],"sourcesContent":["import { Component } from 'react'\r\nimport { Autocomplete, Box, styled, TextField } from '@mui/material'\r\nimport type { ComponentType } from 'react'\r\nimport type { FilterOptionsState, TextFieldProps, AutocompleteRenderOptionState } from '@mui/material'\r\nimport { IFormInputBase } from './types'\r\nimport { getErrorMessage } from './helpers'\r\nimport { ApiAlertContext } from '../api-context'\r\nimport { RichTooltip, HelpOutlinePulseIcon } from '../components/rich-tooltip'\r\nimport type { IRichTooltipPanelConfig } from '../components/rich-tooltip'\r\n\r\nexport interface ISelectWithApiOption<TOther = any> {\r\n Id: string\r\n Name?: string\r\n Other?: TOther\r\n}\r\n\r\nexport interface ISelectWithApiPropsSlots<O extends ISelectWithApiOption = ISelectWithApiOption> {\r\n textFieldProps: TextFieldProps\r\n renderOption?: (props: React.HTMLAttributes<HTMLElement>, option: O, state: AutocompleteRenderOptionState) => React.ReactNode\r\n}\r\n\r\nexport type ISelectWithApiFetchData<O extends ISelectWithApiOption> = (value?: string, signal?: AbortSignal) => Promise<O[]>\r\n\r\nexport interface ISelectWithApiProps<T, O extends ISelectWithApiOption> extends IFormInputBase<T>, ISelectWithApiParams<O> {\r\n tooltip?: IRichTooltipPanelConfig\r\n onChange?: (value: O | null) => void\r\n existedIds?: string[]\r\n slots?: ISelectWithApiPropsSlots<O>\r\n}\r\n\r\nexport interface ISelectWithApiState<O extends ISelectWithApiOption> {\r\n options: O[]\r\n statusText?: string\r\n optionSelected: O | null\r\n inputValue: string\r\n loading?: boolean\r\n}\r\n\r\nexport interface ISelectWithApiParams<O extends ISelectWithApiOption> {\r\n fetchData?: ISelectWithApiFetchData<O>\r\n tooltip?: IRichTooltipPanelConfig\r\n renderOption?: (props: React.HTMLAttributes<HTMLElement>, option: O, state: AutocompleteRenderOptionState) => React.ReactNode\r\n}\r\n\r\nconst CreateSelectWithApi = function <T, O extends ISelectWithApiOption = ISelectWithApiOption>(\r\n params?: ISelectWithApiParams<O>\r\n): ComponentType<ISelectWithApiProps<T, O>> {\r\n class SelectWithApi extends Component<ISelectWithApiProps<T, O>, ISelectWithApiState<O>> {\r\n abortController = { signalController: new AbortController() }\r\n refInput: HTMLInputElement | null = null\r\n existedIds: string[] = []\r\n constructor(props: ISelectWithApiProps<T, O>) {\r\n super(props)\r\n this.state = {\r\n options: [],\r\n statusText: 'no items',\r\n optionSelected: null,\r\n inputValue: '',\r\n loading: true\r\n }\r\n this.existedIds = props.existedIds ?? []\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchData()\r\n }\r\n\r\n componentWillUnmount(): void {\r\n this.timer.clear()\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<ISelectWithApiProps<T, O>>): void {\r\n if (JSON.stringify(prevProps.existedIds) !== JSON.stringify(this.props.existedIds)) {\r\n this.existedIds = this.props.existedIds ?? []\r\n }\r\n }\r\n\r\n render() {\r\n const defaultValue = this.getDefaultValue()\r\n const eMessage = getErrorMessage(this.props.messageErrors, this.props.name)\r\n const renderOption = this.getWrappedRenderOption()\r\n return (\r\n <SelectWithApiStyled className={this.getRootClasses()}>\r\n <Autocomplete\r\n disabled={this.state.loading || this.props.disabled}\r\n fullWidth\r\n noOptionsText={this.state.statusText}\r\n options={this.state.options}\r\n getOptionLabel={(x) => x.Name ?? x.Id}\r\n getOptionKey={(x) => JSON.stringify(x)}\r\n isOptionEqualToValue={(o, v) => o.Id.toString() === v.Id.toString() && o.Name === v.Name}\r\n filterOptions={this.fillterOptions}\r\n renderOption={renderOption}\r\n // select\r\n value={this.state.optionSelected}\r\n onChange={this.handleChange}\r\n // input\r\n inputValue={this.state.inputValue}\r\n onInputChange={this.handleInputChange}\r\n renderInput={(params) => (\r\n <TextField\r\n {...params}\r\n label={this.getLabel()}\r\n error={eMessage.error}\r\n helperText={eMessage.message}\r\n onBlur={() => {\r\n if (!this.props.name) return\r\n this.props.onBlur && this.props.onBlur(this.props.name)\r\n }}\r\n {...this.props.slots?.textFieldProps}\r\n />\r\n )}\r\n />\r\n <input ref={(ref) => (this.refInput = ref)} hidden name={this.props.name?.toString()} defaultValue={defaultValue} />\r\n {this.state.optionSelected?.Other && (\r\n <input\r\n hidden\r\n name={`${this.props.name?.toString()}Other`}\r\n key={this.state.optionSelected.Id ?? 'key'}\r\n defaultValue={JSON.stringify(this.state.optionSelected.Other)}\r\n />\r\n )}\r\n {this.renderTooltip()}\r\n </SelectWithApiStyled>\r\n )\r\n }\r\n\r\n renderTooltip = () => {\r\n const tooltip = this.props.tooltip || params?.tooltip\r\n if (!tooltip) return null\r\n return (\r\n <div className={selectWithApiClasses.tooltipWrap}>\r\n <RichTooltip panel={tooltip}>\r\n <HelpOutlinePulseIcon fontSize='small' />\r\n </RichTooltip>\r\n </div>\r\n )\r\n }\r\n\r\n getRootClasses = () => {\r\n const classes = [selectWithApiClasses.root]\r\n const tooltip = this.props.tooltip || params?.tooltip\r\n if (tooltip) classes.push(selectWithApiClasses.tooltip)\r\n return classes.join(' ')\r\n }\r\n\r\n getFetchDataFunc = (): ISelectWithApiFetchData<O> => {\r\n return this.props.fetchData ?? params?.fetchData ?? (() => Promise.resolve([]))\r\n }\r\n\r\n getWrappedRenderOption = () => {\r\n const userRenderOption = this.props.slots?.renderOption ?? params?.renderOption\r\n if (!userRenderOption) return undefined\r\n\r\n return (props: any, option: O, state: AutocompleteRenderOptionState) => {\r\n const { key, ...propsWithoutKey } = props\r\n return (\r\n <li key={key} {...(propsWithoutKey as any)} style={{ width: '100%', boxSizing: 'border-box', ...propsWithoutKey.style }}>\r\n {userRenderOption(propsWithoutKey as React.HTMLAttributes<HTMLElement>, option, state)}\r\n </li>\r\n )\r\n }\r\n }\r\n\r\n timer = {\r\n _timer: 0,\r\n _second: 500,\r\n callback: async (value: string) => {\r\n try {\r\n this.abortController.signalController = new AbortController()\r\n const res = await this.getFetchDataFunc()(value, this.abortController.signalController.signal)\r\n const options = this.getOptionsFilter(res, this.existedIds)\r\n this.setState({ options })\r\n } catch (error) {\r\n // console.log(error)\r\n ApiAlertContext.ApiAlert?.PushError('Error from server!')\r\n } finally {\r\n this.setState({ statusText: 'no items' })\r\n }\r\n },\r\n start: (text: string) => {\r\n this.timer.clear()\r\n this.timer._timer = window.setTimeout(() => this.timer.callback(text), this.timer._second)\r\n },\r\n clear: () => {\r\n this.abortController.signalController.abort()\r\n clearTimeout(this.timer._timer)\r\n }\r\n }\r\n\r\n fetchData = async () => {\r\n try {\r\n const defaultValue = this.getDefaultValue()\r\n const res = await this.getFetchDataFunc()(defaultValue, this.abortController.signalController.signal)\r\n if (!Array.isArray(res)) return\r\n const options = this.getOptionsFilter(res, this.existedIds)\r\n const optionSelected = options.find((x) => x.Id === defaultValue) ?? null\r\n this.setState({ options, optionSelected, loading: false })\r\n return\r\n } catch (error) {\r\n // console.log(error)\r\n ApiAlertContext.ApiAlert?.PushError('Error from server!')\r\n } finally {\r\n this.setState({ statusText: 'no items', loading: false })\r\n }\r\n }\r\n\r\n handleChange = (_: React.SyntheticEvent, value: O | null) => {\r\n this.setState({ optionSelected: value })\r\n if (this.refInput) this.refInput.value = value?.Id ?? ''\r\n this.props.onChange && this.props.onChange(value)\r\n }\r\n\r\n handleInputChange = (_: React.SyntheticEvent, value: string) => {\r\n const state: Pick<ISelectWithApiState<O>, 'inputValue' | 'statusText' | 'loading'> = { inputValue: value }\r\n if (value === this.state.optionSelected?.Name) {\r\n this.setState(state)\r\n return\r\n }\r\n const valueFormated = value.trim().toLowerCase()\r\n const selectedIndex = this.state.options.findIndex((x) => {\r\n return x.Name?.trim().toLowerCase().includes(valueFormated)\r\n })\r\n if (selectedIndex < 0 || valueFormated === '') state.statusText = 'loading...'\r\n this.setState(state, () => {\r\n if (selectedIndex < 0 || valueFormated === '') this.timer.start(valueFormated)\r\n })\r\n }\r\n\r\n fillterOptions = (options: O[], state: FilterOptionsState<O>) => {\r\n return options.filter((x) => {\r\n const value = state.inputValue.toLowerCase()\r\n return x.Id.toLowerCase().includes(value) || x.Name?.toLowerCase().includes(value)\r\n })\r\n }\r\n\r\n getLabel = () => {\r\n return this.props.label ?? this.props.name?.toString()\r\n }\r\n\r\n getDefaultValue = () => {\r\n if (!this.props.name) return\r\n return (this.props.defaultValue ?? this.props.data?.[this.props.name])?.toString()\r\n }\r\n\r\n getOptionsFilter<O extends ISelectWithApiOption = ISelectWithApiOption>(options: O[], existedId: string[] = []): O[] {\r\n const ids = new Set<string | number>(existedId)\r\n return options.reduce<O[]>((a, b) => {\r\n if (!ids.has(b.Id)) {\r\n a.push(b)\r\n ids.add(b.Id)\r\n }\r\n return a\r\n }, [])\r\n }\r\n }\r\n return SelectWithApi\r\n}\r\nexport default CreateSelectWithApi\r\n\r\nconst selectWithApiClasses = {\r\n root: 'SelectWithApi-root',\r\n tooltip: 'SelectWithApi-tooltip',\r\n tooltipWrap: 'SelectWithApi-tooltipWrap'\r\n}\r\n\r\nconst getSelectWithApiClass = (key: keyof typeof selectWithApiClasses, options?: { prefix?: string; suffix?: string }) => {\r\n return `${options?.prefix || ''}.${selectWithApiClasses[key]}${options?.suffix || ''}`\r\n}\r\n\r\nconst SelectWithApiStyled = styled(Box)(({ theme }) => ({\r\n [getSelectWithApiClass('root', { suffix: '&' })]: {\r\n width: '100%',\r\n position: 'relative'\r\n },\r\n [getSelectWithApiClass('tooltipWrap')]: {\r\n position: 'absolute',\r\n top: theme.spacing(2.25),\r\n right: theme.spacing(1.5),\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing(0.5)\r\n },\r\n [getSelectWithApiClass('tooltip', { suffix: '&' })]: {\r\n '.MuiInputBase-root .MuiAutocomplete-endAdornment': {\r\n right: theme.spacing(4.5)\r\n }\r\n }\r\n}))\r\n"],"names":["CreateSelectWithApi","params","SelectWithApi","props","_props$existedIds","_this","_callback","_classCallCheck","_callSuper","_defineProperty","signalController","AbortController","tooltip","_jsx","className","selectWithApiClasses","tooltipWrap","children","RichTooltip","panel","HelpOutlinePulseIcon","fontSize","classes","root","push","join","_ref","_this$props$fetchData","fetchData","Promise","resolve","_this$props$slots$ren","_this$props$slots","userRenderOption","slots","renderOption","option","state","key","propsWithoutKey","_objectWithoutProperties","_excluded","_objectSpread","style","width","boxSizing","_timer","_second","callback","_asyncToGenerator","_regenerator","m","_callee","value","res","options","_ApiAlertContext$ApiA","w","_context","p","n","abortController","getFetchDataFunc","signal","v","getOptionsFilter","existedIds","setState","ApiAlertContext","ApiAlert","PushError","statusText","f","a","_x","apply","this","arguments","start","text","timer","clear","window","setTimeout","abort","clearTimeout","_callee2","_options$find","defaultValue","optionSelected","_ApiAlertContext$ApiA2","_context2","getDefaultValue","Array","isArray","find","x","Id","loading","_","_value$Id","refInput","onChange","_this$state$optionSel","inputValue","Name","valueFormated","trim","toLowerCase","selectedIndex","findIndex","_x$Name","includes","filter","_x$Name2","_this$props$label","_this$props$name","label","name","toString","_ref3","_this$props$defaultVa","_this$props$data","data","_inherits","Component","_createClass","prevProps","_this$props$existedId","JSON","stringify","_this$props$name2","_this$state$optionSel2","_this$props$name3","_this$state$optionSel3","_this2","eMessage","getErrorMessage","messageErrors","getWrappedRenderOption","_jsxs","SelectWithApiStyled","getRootClasses","Autocomplete","disabled","fullWidth","noOptionsText","getOptionLabel","_x$Name3","getOptionKey","isOptionEqualToValue","o","filterOptions","fillterOptions","handleChange","onInputChange","handleInputChange","renderInput","_this2$props$slots","TextField","getLabel","error","helperText","message","onBlur","textFieldProps","ref","hidden","Other","concat","renderTooltip","ids","Set","length","undefined","reduce","b","has","add","getSelectWithApiClass","prefix","suffix","styled","Box","_ref5","theme","position","top","spacing","right","display","alignItems","gap"],"mappings":"+lBA4CMA,EAAsB,SAC1BC,GAAgC,IAE1BC,aAIJ,SAAAA,EAAYC,GAAgC,IAAAC,EAAAC,EAoHlCC,EA3GgC,OATEC,OAAAL,GAC1CG,EAAAG,EAAAN,KAAAA,GAAMC,IAAMM,EAAAJ,EAJI,kBAAA,CAAEK,iBAAkB,IAAIC,kBAAmBF,EAAAJ,EAAA,WACzB,MAAII,EAAAJ,EAAA,aACjB,IAAEI,EAAAJ,EAAA,gBA6ET,WACd,IAAMO,EAAUP,EAAKF,MAAMS,UAAWX,aAAAA,EAAAA,EAAQW,SAC9C,OAAKA,EAEHC,EAAK,MAAA,CAAAC,UAAWC,EAAqBC,YAAWC,SAC9CJ,EAACK,EAAY,CAAAC,MAAOP,EAAOK,SACzBJ,EAACO,EAAqB,CAAAC,SAAS,cAJhB,OAQtBZ,EAAAJ,EAAA,iBAEgB,WACf,IAAMiB,EAAU,CAACP,EAAqBQ,MAGtC,OAFgBlB,EAAKF,MAAMS,UAAWX,aAAAA,EAAAA,EAAQW,WACjCU,EAAQE,KAAKT,EAAqBH,SACxCU,EAAQG,KAAK,OACrBhB,EAAAJ,EAAA,mBAEkB,WAAiC,IAAAqB,EAAAC,EAClD,OAAgDD,QAAhDA,EAA2B,QAA3BC,EAAOtB,EAAKF,MAAMyB,iBAAS,IAAAD,EAAAA,EAAI1B,aAAAA,EAAAA,EAAQ2B,iBAASF,IAAAA,EAAAA,EAAK,WAAA,OAAMG,QAAQC,QAAQ,GAAG,IAC/ErB,EAAAJ,EAAA,yBAEwB,WAAK,IAAA0B,EAAAC,EACtBC,EAAiD,QAAjCF,EAAmB,QAAnBC,EAAG3B,EAAKF,MAAM+B,aAAK,IAAAF,OAAA,EAAhBA,EAAkBG,oBAAY,IAAAJ,EAAAA,EAAI9B,aAAM,EAANA,EAAQkC,aACnE,GAAKF,EAEL,OAAO,SAAC9B,EAAYiC,EAAWC,GAC7B,IAAQC,EAA4BnC,EAA5BmC,IAAQC,EAAeC,EAAKrC,EAAKsC,GACzC,OACE5B,EAAA,KAAA6B,EAAAA,KAAmBH,GAAuB,GAAA,CAAEI,MAAKD,EAAA,CAAIE,MAAO,OAAQC,UAAW,cAAiBN,EAAgBI,OAC7G1B,SAAAgB,EAAiBM,EAAsDH,EAAQC,KADzEC,EAIZ,IACF7B,EAAAJ,EAEO,QAAA,CACNyC,OAAQ,EACRC,QAAS,IACTC,UAAQ1C,EAAA2C,EAAAC,IAAAC,EAAE,SAAAC,EAAOC,GAAa,IAAAC,EAAAC,EAAAC,EAAA,OAAAN,IAAAO,EAAA,SAAAC,GAAA,cAAAA,EAAAC,EAAAD,EAAAE,GAAA,KAAA,EAEmC,OAFnCF,EAAAC,EAAA,EAE1BtD,EAAKwD,gBAAgBnD,iBAAmB,IAAIC,gBAAiB+C,EAAAE,EAAA,EAC3CvD,EAAKyD,kBAALzD,CAAwBgD,EAAOhD,EAAKwD,gBAAgBnD,iBAAiBqD,QAAO,KAAA,EAAxFT,EAAGI,EAAAM,EACHT,EAAUlD,EAAK4D,iBAAiBX,EAAKjD,EAAK6D,YAChD7D,EAAK8D,SAAS,CAAEZ,QAAAA,IAAUG,EAAAE,EAAA,EAAA,MAAA,KAAA,EAAAF,EAAAC,EAAA,EAAAD,EAAAM,EAGF,QAAxBR,EAAAY,EAAgBC,gBAAQ,IAAAb,GAAxBA,EAA0Bc,UAAU,sBAAqB,KAAA,EAEhB,OAFgBZ,EAAAC,EAAA,EAEzDtD,EAAK8D,SAAS,CAAEI,WAAY,aAAab,EAAAc,EAAA,GAAA,KAAA,EAAA,OAAAd,EAAAe,EAAA,GAAA,EAAArB,EAAA,KAAA,CAAA,CAAA,EAAA,EAAA,EAAA,QAE5C,SAZOsB,GAAA,OAAApE,EAAAqE,MAAAC,KAAAC,UAAA,GAaRC,MAAO,SAACC,GACN1E,EAAK2E,MAAMC,QACX5E,EAAK2E,MAAMlC,OAASoC,OAAOC,WAAW,WAAA,OAAM9E,EAAK2E,MAAMhC,SAAS+B,EAAK,EAAE1E,EAAK2E,MAAMjC,QACnF,EACDkC,MAAO,WACL5E,EAAKwD,gBAAgBnD,iBAAiB0E,QACtCC,aAAahF,EAAK2E,MAAMlC,OAC1B,IACDrC,EAAAJ,EAAA,YAAA4C,EAAAC,IAAAC,EAEW,SAAAmC,IAAA,IAAAC,EAAAC,EAAAlC,EAAAC,EAAAkC,EAAAC,EAAA,OAAAxC,IAAAO,EAAA,SAAAkC,GAAA,cAAAA,EAAAhC,EAAAgC,EAAA/B,GAAA,KAAA,EAEmC,OAFnC+B,EAAAhC,EAAA,EAEF6B,EAAenF,EAAKuF,kBAAiBD,EAAA/B,EAAA,EACzBvD,EAAKyD,kBAALzD,CAAwBmF,EAAcnF,EAAKwD,gBAAgBnD,iBAAiBqD,QAAO,KAAA,EAA5F,GAAHT,EAAGqC,EAAA3B,EACJ6B,MAAMC,QAAQxC,GAAI,CAAAqC,EAAA/B,EAAA,EAAA,KAAA,CAAA,OAAA+B,EAAAlB,EAAA,GAAA,KAAA,EAGmC,OAFpDlB,EAAUlD,EAAK4D,iBAAiBX,EAAKjD,EAAK6D,YAC1CuB,EAA2DF,QAA7CA,EAAGhC,EAAQwC,KAAK,SAACC,GAAC,OAAKA,EAAEC,KAAOT,CAAY,UAACD,IAAAA,EAAAA,EAAI,KACrElF,EAAK8D,SAAS,CAAEZ,QAAAA,EAASkC,eAAAA,EAAgBS,SAAS,IAAQP,EAAAlB,EAAA,GAAA,KAAA,EAAAkB,EAAAhC,EAAA,EAAAgC,EAAA3B,EAIlC,QAAxB0B,EAAAtB,EAAgBC,gBAAQ,IAAAqB,GAAxBA,EAA0BpB,UAAU,sBAAqB,KAAA,EAEA,OAFAqB,EAAAhC,EAAA,EAEzDtD,EAAK8D,SAAS,CAAEI,WAAY,WAAY2B,SAAS,IAAQP,EAAAnB,EAAA,GAAA,KAAA,EAAA,OAAAmB,EAAAlB,EAAA,GAAA,EAAAa,EAAA,KAAA,CAAA,CAAA,EAAA,EAAA,EAAA,IAE5D,KAAA7E,EAAAJ,EAAA,eAEc,SAAC8F,EAAyB9C,GAAmB,IAAA+C,EAC1D/F,EAAK8D,SAAS,CAAEsB,eAAgBpC,IAC5BhD,EAAKgG,WAAUhG,EAAKgG,SAAShD,cAAK+C,EAAG/C,aAAAA,EAAAA,EAAO4C,UAAE,IAAAG,EAAAA,EAAI,IACtD/F,EAAKF,MAAMmG,UAAYjG,EAAKF,MAAMmG,SAASjD,KAC5C5C,EAAAJ,EAAA,oBAEmB,SAAC8F,EAAyB9C,GAAiB,IAAAkD,EACvDlE,EAA+E,CAAEmE,WAAYnD,GACnG,GAAIA,aAAKkD,EAAKlG,EAAKgC,MAAMoD,sBAAc,IAAAc,OAAA,EAAzBA,EAA2BE,MAAzC,CAIA,IAAMC,EAAgBrD,EAAMsD,OAAOC,cAC7BC,EAAgBxG,EAAKgC,MAAMkB,QAAQuD,UAAU,SAACd,GAAK,IAAAe,EACvD,OAAaA,QAAbA,EAAOf,EAAES,gBAAIM,SAANA,EAAQJ,OAAOC,cAAcI,SAASN,EAC/C,IACIG,EAAgB,GAAuB,KAAlBH,KAAsBrE,EAAMkC,WAAa,cAClElE,EAAK8D,SAAS9B,EAAO,YACfwE,EAAgB,GAAuB,KAAlBH,IAAsBrG,EAAK2E,MAAMF,MAAM4B,EAClE,EARC,MAFCrG,EAAK8D,SAAS9B,KAWjB5B,EAAAJ,EAAA,iBAEgB,SAACkD,EAAclB,GAC9B,OAAOkB,EAAQ0D,OAAO,SAACjB,GAAK,IAAAkB,EACpB7D,EAAQhB,EAAMmE,WAAWI,cAC/B,OAAOZ,EAAEC,GAAGW,cAAcI,SAAS3D,KAAgB,QAAV6D,EAAIlB,EAAES,YAAI,IAAAS,OAAA,EAANA,EAAQN,cAAcI,SAAS3D,GAC9E,KACD5C,EAAAJ,EAAA,WAEU,WAAK,IAAA8G,EAAAC,EACd,OAAuBD,QAAvBA,EAAO9G,EAAKF,MAAMkH,aAAKF,IAAAA,EAAAA,EAAmB,QAAnBC,EAAI/G,EAAKF,MAAMmH,YAAI,IAAAF,OAAA,EAAfA,EAAiBG,aAC7C9G,EAAAJ,EAAA,kBAEiB,WAAK,IAAAmH,EAAAC,EAAAC,EACrB,GAAKrH,EAAKF,MAAMmH,KAChB,eAAAE,EAA+B,QAA/BC,EAAQpH,EAAKF,MAAMqF,oBAAYiC,IAAAA,EAAAA,UAAAC,EAAIrH,EAAKF,MAAMwH,YAAI,IAAAD,OAAA,EAAfA,EAAkBrH,EAAKF,MAAMmH,aAAK,IAAAE,OAAA,EAA9DA,EAAiED,aA7LxElH,EAAKgC,MAAQ,CACXkB,QAAS,GACTgB,WAAY,WACZkB,eAAgB,KAChBe,WAAY,GACZN,SAAS,GAEX7F,EAAK6D,WAA6B9D,QAAnBA,EAAGD,EAAM+D,kBAAU9D,IAAAA,EAAAA,EAAI,GAAEC,CAC1C,CAAC,OAAAuH,EAAA1H,EAdyB2H,GAczBC,EAAA5H,EAAA,CAAA,CAAAoC,IAAA,oBAAAe,MAED,WACEuB,KAAKhD,WACP,GAAC,CAAAU,IAAA,uBAAAe,MAED,WACEuB,KAAKI,MAAMC,OACb,GAAC,CAAA3C,IAAA,qBAAAe,MAED,SAAmB0E,GACmE,IAAAC,EAAhFC,KAAKC,UAAUH,EAAU7D,cAAgB+D,KAAKC,UAAUtD,KAAKzE,MAAM+D,cACrEU,KAAKV,WAAkC8D,QAAxBA,EAAGpD,KAAKzE,MAAM+D,kBAAU8D,IAAAA,EAAAA,EAAI,GAE/C,GAAC,CAAA1F,IAAA,SAAAe,MAED,WAAM,IAAA8E,EAAAC,EAAAC,EAAAC,EAAAC,EAAA3D,KACEY,EAAeZ,KAAKgB,kBACpB4C,EAAWC,EAAgB7D,KAAKzE,MAAMuI,cAAe9D,KAAKzE,MAAMmH,MAChEnF,EAAeyC,KAAK+D,yBAC1B,OACEC,EAACC,EAAoB,CAAA/H,UAAW8D,KAAKkE,iBACnC7H,SAAA,CAAAJ,EAACkI,EACC,CAAAC,SAAUpE,KAAKvC,MAAM6D,SAAWtB,KAAKzE,MAAM6I,SAC3CC,WAAS,EACTC,cAAetE,KAAKvC,MAAMkC,WAC1BhB,QAASqB,KAAKvC,MAAMkB,QACpB4F,eAAgB,SAACnD,GAAC,IAAAoD,EAAA,OAAW,QAAXA,EAAKpD,EAAES,YAAI,IAAA2C,EAAAA,EAAIpD,EAAEC,EAAE,EACrCoD,aAAc,SAACrD,GAAC,OAAKiC,KAAKC,UAAUlC,EAAE,EACtCsD,qBAAsB,SAACC,EAAGvF,GAAC,OAAKuF,EAAEtD,GAAGsB,aAAevD,EAAEiC,GAAGsB,YAAcgC,EAAE9C,OAASzC,EAAEyC,IAAI,EACxF+C,cAAe5E,KAAK6E,eACpBtH,aAAcA,EAEdkB,MAAOuB,KAAKvC,MAAMoD,eAClBa,SAAU1B,KAAK8E,aAEflD,WAAY5B,KAAKvC,MAAMmE,WACvBmD,cAAe/E,KAAKgF,kBACpBC,YAAa,SAAC5J,GAAM,IAAA6J,EAAA,OAClBjJ,EAACkJ,EAASrH,EAAAA,KACJzC,GAAM,GAAA,CACVoH,MAAOkB,EAAKyB,WACZC,MAAOzB,EAASyB,MAChBC,WAAY1B,EAAS2B,QACrBC,OAAQ,WACD7B,EAAKpI,MAAMmH,MAChBiB,EAAKpI,MAAMiK,QAAU7B,EAAKpI,MAAMiK,OAAO7B,EAAKpI,MAAMmH,KACpD,GACoBwC,QADnBA,EACGvB,EAAKpI,MAAM+B,aAAX4H,IAAgBA,OAAhBA,EAAAA,EAAkBO,gBACtB,IAGNxJ,EAAO,QAAA,CAAAyJ,IAAK,SAACA,GAAG,OAAM/B,EAAKlC,SAAWiE,CAAI,EAAEC,QAAO,EAAAjD,KAAqB,QAAjBa,EAAEvD,KAAKzE,MAAMmH,YAAXa,IAAeA,OAAfA,EAAAA,EAAiBZ,WAAY/B,aAAcA,aACnG4C,EAAIxD,KAACvC,MAAMoD,sBAAc,IAAA2C,OAAA,EAAzBA,EAA2BoC,QAC1B3J,WACE0J,QAAM,EACNjD,QAAImD,OAAoB,QAApBpC,EAAKzD,KAAKzE,MAAMmH,YAAXe,IAAeA,OAAfA,EAAAA,EAAiBd,WAAiB,SAE3C/B,aAAcyC,KAAKC,UAAUtD,KAAKvC,MAAMoD,eAAe+E,QADtB,UAA5B5F,KAAKvC,MAAMoD,eAAeQ,UAAEqC,IAAAA,EAAAA,EAAI,OAIxC1D,KAAK8F,kBAGZ,GAAC,CAAApI,IAAA,mBAAAe,MAwHD,SAAwEE,GAAsC,IACtGoH,EAAM,IAAIC,IADoE/F,UAAAgG,OAAA,QAAAC,IAAAjG,UAAA,GAAAA,UAAA,GAAsB,IAE1G,OAAOtB,EAAQwH,OAAY,SAACtG,EAAGuG,GAK7B,OAJKL,EAAIM,IAAID,EAAE/E,MACbxB,EAAEjD,KAAKwJ,GACPL,EAAIO,IAAIF,EAAE/E,KAELxB,CACR,EAAE,GACL,IAAC,IAEH,OAAOvE,CACT,EAGMa,EAAuB,CAC3BQ,KAAM,qBACNX,QAAS,wBACTI,YAAa,6BAGTmK,EAAwB,SAAC7I,EAAwCiB,GACrE,MAAA,GAAAkH,QAAUlH,aAAAA,EAAAA,EAAS6H,SAAU,QAAEX,OAAI1J,EAAqBuB,IAAImI,QAAGlH,aAAAA,EAAAA,EAAS8H,SAAU,GACpF,EAEMxC,EAAsByC,EAAOC,EAAPD,CAAY,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,OAAAhL,EAAAA,EAAAA,EAC7C0K,CAAAA,EAAAA,EAAsB,OAAQ,CAAEE,OAAQ,MAAS,CAChDzI,MAAO,OACP8I,SAAU,aAEXP,EAAsB,eAAiB,CACtCO,SAAU,WACVC,IAAKF,EAAMG,QAAQ,MACnBC,MAAOJ,EAAMG,QAAQ,KACrBE,QAAS,OACTC,WAAY,SACZC,IAAKP,EAAMG,QAAQ,MAEpBT,EAAsB,UAAW,CAAEE,OAAQ,MAAS,CACnD,mDAAoD,CAClDQ,MAAOJ,EAAMG,QAAQ,OAExB"}
1
+ {"version":3,"file":"create.select-with-api.js","sources":["../../../src/form/create.select-with-api.tsx"],"sourcesContent":["// imports\r\nimport { Component } from 'react'\r\nimport { Autocomplete, Box, styled, TextField } from '@mui/material'\r\nimport { IFormInputBase } from './types'\r\nimport { getErrorMessage } from './helpers'\r\nimport { ApiAlertContext } from '../api-context'\r\nimport { RichTooltip, HelpOutlinePulseIcon } from '../components/rich-tooltip'\r\n// types\r\nimport type { ComponentClass } from 'react'\r\nimport type { FilterOptionsState, TextFieldProps, AutocompleteRenderOptionState } from '@mui/material'\r\nimport type { IRichTooltipPanelConfig } from '../components/rich-tooltip'\r\n\r\nexport interface ISelectWithApiOption<TOther = any> {\r\n Id: string\r\n Name?: string\r\n Other?: TOther\r\n}\r\n\r\nexport interface ISelectWithApiPropsSlots<O extends ISelectWithApiOption = ISelectWithApiOption> {\r\n textFieldProps: TextFieldProps\r\n renderOption?: (props: React.HTMLAttributes<HTMLElement>, option: O, state: AutocompleteRenderOptionState) => React.ReactNode\r\n}\r\n\r\nexport type ISelectWithApiFetchData<O extends ISelectWithApiOption> = (value?: string, signal?: AbortSignal) => Promise<O[]>\r\n\r\nexport interface ISelectWithApiProps<T, O extends ISelectWithApiOption> extends IFormInputBase<T>, ISelectWithApiParams<O> {\r\n tooltip?: IRichTooltipPanelConfig\r\n onChange?: (value: O | null) => void\r\n existedIds?: string[]\r\n slots?: ISelectWithApiPropsSlots<O>\r\n}\r\n\r\nexport interface ISelectWithApiState<O extends ISelectWithApiOption> {\r\n options: O[]\r\n statusText?: string\r\n optionSelected: O | null\r\n inputValue: string\r\n loading?: boolean\r\n}\r\n\r\nexport interface ISelectWithApiParams<O extends ISelectWithApiOption> {\r\n fetchData?: ISelectWithApiFetchData<O>\r\n tooltip?: IRichTooltipPanelConfig\r\n renderOption?: (props: React.HTMLAttributes<HTMLElement>, option: O, state: AutocompleteRenderOptionState) => React.ReactNode\r\n}\r\n\r\nexport interface ISelectWithApiHandle {\r\n clear: () => void\r\n}\r\n\r\nfunction createSelectWithApi<T, O extends ISelectWithApiOption = ISelectWithApiOption>(params?: ISelectWithApiParams<O>) {\r\n class SelectWithApi extends Component<ISelectWithApiProps<T, O>, ISelectWithApiState<O>> implements ISelectWithApiHandle {\r\n abortController = { signalController: new AbortController() }\r\n refInput: HTMLInputElement | null = null\r\n existedIds: string[] = []\r\n constructor(props: ISelectWithApiProps<T, O>) {\r\n super(props)\r\n this.state = {\r\n options: [],\r\n statusText: 'no items',\r\n optionSelected: null,\r\n inputValue: '',\r\n loading: true\r\n }\r\n this.existedIds = props.existedIds ?? []\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchData()\r\n }\r\n\r\n componentWillUnmount(): void {\r\n this.timer.clear()\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<ISelectWithApiProps<T, O>>): void {\r\n if (JSON.stringify(prevProps.existedIds) !== JSON.stringify(this.props.existedIds)) {\r\n this.existedIds = this.props.existedIds ?? []\r\n }\r\n }\r\n\r\n render() {\r\n const defaultValue = this.getDefaultValue()\r\n const eMessage = getErrorMessage(this.props.messageErrors, this.props.name)\r\n const renderOption = this.getWrappedRenderOption()\r\n return (\r\n <SelectWithApiStyled className={this.getRootClasses()}>\r\n <Autocomplete\r\n disabled={this.state.loading || this.props.disabled}\r\n fullWidth\r\n noOptionsText={this.state.statusText}\r\n options={this.state.options}\r\n getOptionLabel={(x) => x.Name ?? x.Id}\r\n getOptionKey={(x) => JSON.stringify(x)}\r\n isOptionEqualToValue={(o, v) => o.Id.toString() === v.Id.toString() && o.Name === v.Name}\r\n filterOptions={this.fillterOptions}\r\n renderOption={renderOption}\r\n // select\r\n value={this.state.optionSelected}\r\n onChange={this.handleChange}\r\n // input\r\n inputValue={this.state.inputValue}\r\n onInputChange={this.handleInputChange}\r\n renderInput={(params) => (\r\n <TextField\r\n {...params}\r\n label={this.getLabel()}\r\n error={eMessage.error}\r\n helperText={eMessage.message}\r\n onBlur={() => {\r\n if (!this.props.name) return\r\n this.props.onBlur && this.props.onBlur(this.props.name)\r\n }}\r\n {...this.props.slots?.textFieldProps}\r\n />\r\n )}\r\n />\r\n <input ref={(ref) => (this.refInput = ref)} hidden name={this.props.name?.toString()} defaultValue={defaultValue} />\r\n {this.state.optionSelected?.Other && (\r\n <input\r\n hidden\r\n name={`${this.props.name?.toString()}Other`}\r\n key={this.state.optionSelected.Id ?? 'key'}\r\n defaultValue={JSON.stringify(this.state.optionSelected.Other)}\r\n />\r\n )}\r\n {this.renderTooltip()}\r\n </SelectWithApiStyled>\r\n )\r\n }\r\n\r\n renderTooltip = () => {\r\n const tooltip = this.props.tooltip || params?.tooltip\r\n if (!tooltip) return null\r\n return (\r\n <div className={selectWithApiClasses.tooltipWrap}>\r\n <RichTooltip panel={tooltip}>\r\n <HelpOutlinePulseIcon fontSize='small' />\r\n </RichTooltip>\r\n </div>\r\n )\r\n }\r\n\r\n getRootClasses = () => {\r\n const classes = [selectWithApiClasses.root]\r\n const tooltip = this.props.tooltip || params?.tooltip\r\n if (tooltip) classes.push(selectWithApiClasses.tooltip)\r\n return classes.join(' ')\r\n }\r\n\r\n getFetchDataFunc = (): ISelectWithApiFetchData<O> => {\r\n return this.props.fetchData ?? params?.fetchData ?? (() => Promise.resolve([]))\r\n }\r\n\r\n getWrappedRenderOption = () => {\r\n const userRenderOption = this.props.slots?.renderOption ?? params?.renderOption\r\n if (!userRenderOption) return undefined\r\n\r\n return (props: any, option: O, state: AutocompleteRenderOptionState) => {\r\n const { key, ...propsWithoutKey } = props\r\n return (\r\n <li key={key} {...(propsWithoutKey as any)} style={{ width: '100%', boxSizing: 'border-box', ...propsWithoutKey.style }}>\r\n {userRenderOption(propsWithoutKey as React.HTMLAttributes<HTMLElement>, option, state)}\r\n </li>\r\n )\r\n }\r\n }\r\n\r\n timer = {\r\n _timer: 0,\r\n _second: 500,\r\n callback: async (value: string) => {\r\n try {\r\n this.abortController.signalController = new AbortController()\r\n const res = await this.getFetchDataFunc()(value, this.abortController.signalController.signal)\r\n const options = this.getOptionsFilter(res, this.existedIds)\r\n this.setState({ options })\r\n } catch (error) {\r\n // console.log(error)\r\n ApiAlertContext.ApiAlert?.PushError('Error from server!')\r\n } finally {\r\n this.setState({ statusText: 'no items' })\r\n }\r\n },\r\n start: (text: string) => {\r\n this.timer.clear()\r\n this.timer._timer = window.setTimeout(() => this.timer.callback(text), this.timer._second)\r\n },\r\n clear: () => {\r\n this.abortController.signalController.abort()\r\n clearTimeout(this.timer._timer)\r\n }\r\n }\r\n\r\n fetchData = async () => {\r\n try {\r\n const defaultValue = this.getDefaultValue()\r\n const res = await this.getFetchDataFunc()(defaultValue, this.abortController.signalController.signal)\r\n if (!Array.isArray(res)) return\r\n const options = this.getOptionsFilter(res, this.existedIds)\r\n const optionSelected = options.find((x) => x.Id === defaultValue) ?? null\r\n this.setState({ options, optionSelected, loading: false })\r\n return\r\n } catch (error) {\r\n // console.log(error)\r\n ApiAlertContext.ApiAlert?.PushError('Error from server!')\r\n } finally {\r\n this.setState({ statusText: 'no items', loading: false })\r\n }\r\n }\r\n\r\n handleChange = (_: React.SyntheticEvent, value: O | null) => {\r\n this.setState({ optionSelected: value })\r\n if (this.refInput) this.refInput.value = value?.Id ?? ''\r\n this.props.onChange && this.props.onChange(value)\r\n }\r\n\r\n handleInputChange = (_: React.SyntheticEvent, value: string) => {\r\n const state: Pick<ISelectWithApiState<O>, 'inputValue' | 'statusText' | 'loading'> = { inputValue: value }\r\n if (value === this.state.optionSelected?.Name) {\r\n this.setState(state)\r\n return\r\n }\r\n const valueFormated = value.trim().toLowerCase()\r\n const selectedIndex = this.state.options.findIndex((x) => {\r\n return x.Name?.trim().toLowerCase().includes(valueFormated)\r\n })\r\n if (selectedIndex < 0 || valueFormated === '') state.statusText = 'loading...'\r\n this.setState(state, () => {\r\n if (selectedIndex < 0 || valueFormated === '') this.timer.start(valueFormated)\r\n })\r\n }\r\n\r\n fillterOptions = (options: O[], state: FilterOptionsState<O>) => {\r\n return options.filter((x) => {\r\n const value = state.inputValue.toLowerCase()\r\n return x.Id.toLowerCase().includes(value) || x.Name?.toLowerCase().includes(value)\r\n })\r\n }\r\n\r\n getLabel = () => {\r\n return this.props.label ?? this.props.name?.toString()\r\n }\r\n\r\n getDefaultValue = () => {\r\n if (!this.props.name) return\r\n return (this.props.defaultValue ?? this.props.data?.[this.props.name])?.toString()\r\n }\r\n\r\n getOptionsFilter<O extends ISelectWithApiOption = ISelectWithApiOption>(options: O[], existedId: string[] = []): O[] {\r\n const ids = new Set<string | number>(existedId)\r\n return options.reduce<O[]>((a, b) => {\r\n if (!ids.has(b.Id)) {\r\n a.push(b)\r\n ids.add(b.Id)\r\n }\r\n return a\r\n }, [])\r\n }\r\n\r\n clear = () => {\r\n this.setState({ optionSelected: null, inputValue: '' })\r\n if (this.refInput) this.refInput.value = ''\r\n }\r\n }\r\n return SelectWithApi\r\n}\r\nexport default createSelectWithApi\r\n\r\nconst selectWithApiClasses = {\r\n root: 'SelectWithApi-root',\r\n tooltip: 'SelectWithApi-tooltip',\r\n tooltipWrap: 'SelectWithApi-tooltipWrap'\r\n}\r\n\r\nconst getSelectWithApiClass = (key: keyof typeof selectWithApiClasses, options?: { prefix?: string; suffix?: string }) => {\r\n return `${options?.prefix || ''}.${selectWithApiClasses[key]}${options?.suffix || ''}`\r\n}\r\n\r\nconst SelectWithApiStyled = styled(Box)(({ theme }) => ({\r\n [getSelectWithApiClass('root', { suffix: '&' })]: {\r\n width: '100%',\r\n position: 'relative'\r\n },\r\n [getSelectWithApiClass('tooltipWrap')]: {\r\n position: 'absolute',\r\n top: theme.spacing(2.25),\r\n right: theme.spacing(1.5),\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing(0.5)\r\n },\r\n [getSelectWithApiClass('tooltip', { suffix: '&' })]: {\r\n '.MuiInputBase-root .MuiAutocomplete-endAdornment': {\r\n right: theme.spacing(4.5)\r\n }\r\n }\r\n}))\r\n"],"names":["createSelectWithApi","params","SelectWithApi","props","_props$existedIds","_this","_callback","_classCallCheck","_callSuper","_defineProperty","signalController","AbortController","tooltip","_jsx","className","selectWithApiClasses","tooltipWrap","children","RichTooltip","panel","HelpOutlinePulseIcon","fontSize","classes","root","push","join","_ref","_this$props$fetchData","fetchData","Promise","resolve","_this$props$slots$ren","_this$props$slots","userRenderOption","slots","renderOption","option","state","key","propsWithoutKey","_objectWithoutProperties","_excluded","_objectSpread","style","width","boxSizing","_timer","_second","callback","_asyncToGenerator","_regenerator","m","_callee","value","res","options","_ApiAlertContext$ApiA","w","_context","p","n","abortController","getFetchDataFunc","signal","v","getOptionsFilter","existedIds","setState","ApiAlertContext","ApiAlert","PushError","statusText","f","a","_x","apply","this","arguments","start","text","timer","clear","window","setTimeout","abort","clearTimeout","_callee2","_options$find","defaultValue","optionSelected","_ApiAlertContext$ApiA2","_context2","getDefaultValue","Array","isArray","find","x","Id","loading","_","_value$Id","refInput","onChange","_this$state$optionSel","inputValue","Name","valueFormated","trim","toLowerCase","selectedIndex","findIndex","_x$Name","includes","filter","_x$Name2","_this$props$label","_this$props$name","label","name","toString","_ref3","_this$props$defaultVa","_this$props$data","data","_inherits","Component","_createClass","prevProps","_this$props$existedId","JSON","stringify","_this$props$name2","_this$state$optionSel2","_this$props$name3","_this$state$optionSel3","_this2","eMessage","getErrorMessage","messageErrors","getWrappedRenderOption","_jsxs","SelectWithApiStyled","getRootClasses","Autocomplete","disabled","fullWidth","noOptionsText","getOptionLabel","_x$Name3","getOptionKey","isOptionEqualToValue","o","filterOptions","fillterOptions","handleChange","onInputChange","handleInputChange","renderInput","_this2$props$slots","TextField","getLabel","error","helperText","message","onBlur","textFieldProps","ref","hidden","Other","concat","renderTooltip","ids","Set","length","undefined","reduce","b","has","add","getSelectWithApiClass","prefix","suffix","styled","Box","_ref5","theme","position","top","spacing","right","display","alignItems","gap"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as e,objectWithoutProperties as t,objectSpread2 as n,inherits as r,createClass as l,classCallCheck as o,callSuper as i}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as s,jsxs as c}from"react/jsx-runtime";import{Component as a,createRef as u}from"react";import{styled as h,Box as p,IconButton as d,Typography as f,Tooltip as m}from"@mui/material";import g from"@mui/icons-material/Fullscreen";import v from"@mui/icons-material/FullscreenExit";import{getErrorMessage as x}from"./helpers.js";import F,{textEditorClasses as C}from"../components/text-editor.js";var y=["children"];function b(t){return function(){function n(t){var r;return o(this,n),r=i(this,n,[t]),e(r,"handleFullscreenChange",function(){r.setState({isFullscreen:!!document.fullscreenElement})}),e(r,"handleFullscreenToggle",function(){r.contentRef.current&&(document.fullscreenElement?document.exitFullscreen():r.contentRef.current.requestFullscreen().catch(function(e){console.error("Error attempting to enable full-screen mode: ".concat(e.message))}))}),e(r,"getWrapClasses",function(){var e=[];return r.state.isFullscreen&&e.push(C.fullscreen),e.join(" ")}),r.state={isFullscreen:!1},r.contentRef=u(),r}return r(n,a),l(n,[{key:"componentDidMount",value:function(){document.addEventListener("fullscreenchange",this.handleFullscreenChange)}},{key:"componentWillUnmount",value:function(){document.removeEventListener("fullscreenchange",this.handleFullscreenChange)}},{key:"render",value:function(){var e,n,r,l,o,i=this,a=x(this.props.messageErrors,this.props.name),u=null!==(e=null===(n=this.props.name?null===(r=this.props.data)||void 0===r?void 0:r[this.props.name]:"")||void 0===n?void 0:n.toString())&&void 0!==e?e:"";return c(p,{id:t.id,ref:this.contentRef,sx:{backgroundColor:"#fff"},children:[this.state.isFullscreen&&s(j,{children:s(f,{variant:"h4",sx:{fontWeight:600,flex:1,textAlign:"center"},children:t.title})}),c(k,{className:this.getWrapClasses(),children:[s(E,{children:s(m,{title:this.state.isFullscreen?"Exit Fullscreen":"Fullscreen",arrow:!0,children:s(S,{sx:{color:"#06c"},onClick:this.handleFullscreenToggle,children:this.state.isFullscreen?s(v,{}):s(g,{})})})}),s(W,{children:s(F,{defautValue:u,name:null!==(l=null===(o=this.props.name)||void 0===o?void 0:o.toString())&&void 0!==l?l:"",readOnly:this.props.disabled,error:a.error,onBlur:function(){var e,t;i.props.name&&(null===(e=(t=i.props).onBlur)||void 0===e||e.call(t,i.props.name))}})})]})]})}}])}()}var k=h(p)(function(t){var n=t.theme;return e(e({maxWidth:n.breakpoints.values.xl,margin:"0 auto",position:"relative"},"&.".concat(C.fullscreen," .").concat(C.root),{height:"calc(100vh - ".concat(74,"px)")}),"&.".concat(C.fullscreen),{width:"871px"})}),j=h(p)({height:"".concat(64,"px"),display:"flex",justifyContent:"center",alignItems:"center"}),E=h(function(e){var r=e.children,l=t(e,y);return s(p,n(n({},l),{},{children:s(p,{children:r})}))})({position:"sticky",top:"-1px",zIndex:2,"& > div":{height:0,display:"flex",justifyContent:"right",padding:"0 6px"}}),S=h(d)({flex:"0 0 auto",marginTop:"1px",width:"40px",height:"40px"}),W=h(p)({backgroundColor:"#fff",width:"100%","& .ql-container":{fontFamily:'"Roboto", serif',fontSize:"14px"},"& .ql-toolbar":{position:"sticky",top:"-1px",backgroundColor:"#fff",zIndex:1}});export{b as default};
1
+ import{defineProperty as e,objectWithoutProperties as t,objectSpread2 as n,inherits as r,createClass as l,classCallCheck as o,callSuper as i}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as s,jsxs as c}from"react/jsx-runtime";import{createRef as a,Component as u}from"react";import{styled as h,Box as p,IconButton as d,Typography as f,Tooltip as m}from"@mui/material";import g from"@mui/icons-material/Fullscreen";import v from"@mui/icons-material/FullscreenExit";import{getErrorMessage as x}from"./helpers.js";import F,{textEditorClasses as C}from"../components/text-editor.js";var y=["children"];function b(t){return function(){function n(t){var r;return o(this,n),r=i(this,n,[t]),e(r,"handleFullscreenChange",function(){r.setState({isFullscreen:!!document.fullscreenElement})}),e(r,"handleFullscreenToggle",function(){r.contentRef.current&&(document.fullscreenElement?document.exitFullscreen():r.contentRef.current.requestFullscreen().catch(function(e){console.error("Error attempting to enable full-screen mode: ".concat(e.message))}))}),e(r,"getWrapClasses",function(){var e=[];return r.state.isFullscreen&&e.push(C.fullscreen),e.join(" ")}),r.state={isFullscreen:!1},r.contentRef=a(),r}return r(n,u),l(n,[{key:"componentDidMount",value:function(){document.addEventListener("fullscreenchange",this.handleFullscreenChange)}},{key:"componentWillUnmount",value:function(){document.removeEventListener("fullscreenchange",this.handleFullscreenChange)}},{key:"render",value:function(){var e,n,r,l,o,i=this,a=x(this.props.messageErrors,this.props.name),u=null!==(e=null===(n=this.props.name?null===(r=this.props.data)||void 0===r?void 0:r[this.props.name]:"")||void 0===n?void 0:n.toString())&&void 0!==e?e:"";return c(p,{id:t.id,ref:this.contentRef,sx:{backgroundColor:"#fff"},children:[this.state.isFullscreen&&s(j,{children:s(f,{variant:"h4",sx:{fontWeight:600,flex:1,textAlign:"center"},children:t.title})}),c(k,{className:this.getWrapClasses(),children:[s(E,{children:s(m,{title:this.state.isFullscreen?"Exit Fullscreen":"Fullscreen",arrow:!0,children:s(S,{sx:{color:"#06c"},onClick:this.handleFullscreenToggle,children:this.state.isFullscreen?s(v,{}):s(g,{})})})}),s(W,{children:s(F,{defautValue:u,name:null!==(l=null===(o=this.props.name)||void 0===o?void 0:o.toString())&&void 0!==l?l:"",readOnly:this.props.disabled,error:a.error,onBlur:function(){var e,t;i.props.name&&(null===(e=(t=i.props).onBlur)||void 0===e||e.call(t,i.props.name))}})})]})]})}}])}()}var k=h(p)(function(t){var n=t.theme;return e(e({maxWidth:n.breakpoints.values.xl,margin:"0 auto",position:"relative"},"&.".concat(C.fullscreen," .").concat(C.root),{height:"calc(100vh - ".concat(74,"px)")}),"&.".concat(C.fullscreen),{width:"871px"})}),j=h(p)({height:"".concat(64,"px"),display:"flex",justifyContent:"center",alignItems:"center"}),E=h(function(e){var r=e.children,l=t(e,y);return s(p,n(n({},l),{},{children:s(p,{children:r})}))})({position:"sticky",top:"-1px",zIndex:2,"& > div":{height:0,display:"flex",justifyContent:"right",padding:"0 6px"}}),S=h(d)({flex:"0 0 auto",marginTop:"1px",width:"40px",height:"40px"}),W=h(p)({backgroundColor:"#fff",width:"100%","& .ql-container":{fontFamily:'"Roboto", serif',fontSize:"14px"},"& .ql-toolbar":{position:"sticky",top:"-1px",backgroundColor:"#fff",zIndex:1}});export{b as default};
2
2
  //# sourceMappingURL=create.text-editor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dino-form.js","sources":["../../../src/form/dino-form.tsx"],"sourcesContent":["import { FormBottomBarWrap } from './create.form-grid-layout.units'\r\nimport { createInputFileCsvLocalParser } from './create.input-file.csv-local-parser'\r\nimport DecoratorForm, { createDecoratorForm } from './decorator.form'\r\nimport FormValidator from './validator'\r\nimport createInput from './create.input'\r\nimport FormModalWrapper from './modal-wrapper'\r\nimport createFormBase from './create.form-base'\r\nimport CreateInputFile from './create.input.file'\r\nimport CreateDatePicker from './create.date-picker'\r\nimport CreateTextEditor from './create.text-editor'\r\nimport createColorPicker from './create.color-picker'\r\nimport CreateDateExpired from './create.date-expired'\r\nimport CreateFormComfirm from './create.form-comfirm'\r\nimport CreateSelectSimple from './create.select-simple'\r\nimport CreateSelectWithApi from './create.select-with-api'\r\nimport CreateFormGridLayout from './create.form-grid-layout'\r\nimport createInputImageFile from './create.input.image-file'\r\nimport CreateAutocompleteChip from './create.autocomplete.chips'\r\n\r\nclass DinoFormBase {\r\n //#region Base\r\n ModalWrap = FormModalWrapper\r\n BottomBarWrap = FormBottomBarWrap\r\n FormValidator = FormValidator\r\n validator = FormValidator.initial\r\n createFormBase = createFormBase\r\n createFormComfirm = CreateFormComfirm\r\n createFormGridLayout = CreateFormGridLayout\r\n DecoratorForm = DecoratorForm\r\n createDecoratorForm = createDecoratorForm\r\n //#endregion\r\n\r\n //#region Inputs\r\n createColorPicker = createColorPicker\r\n createDateExpired = CreateDateExpired\r\n createDatePicker = CreateDatePicker\r\n createAutocompleteChip = CreateAutocompleteChip\r\n createInputFileCsvLocalParser = createInputFileCsvLocalParser\r\n createInputFile = CreateInputFile\r\n createInputImageFile = createInputImageFile\r\n createInput = createInput\r\n createSelectSimple = CreateSelectSimple\r\n createSelectWithApi = CreateSelectWithApi\r\n createTextEditor = CreateTextEditor\r\n //#endregion\r\n}\r\n\r\nconst DinoForm = new DinoFormBase()\r\nexport default DinoForm\r\n"],"names":["DinoForm","_createClass","DinoFormBase","_classCallCheck","_defineProperty","FormModalWrapper","FormBottomBarWrap","FormValidator","this","initial","createFormBase","CreateFormComfirm","CreateFormGridLayout","DecoratorForm","createDecoratorForm","createColorPicker","CreateDateExpired","CreateDatePicker","CreateAutocompleteChip","createInputFileCsvLocalParser","CreateInputFile","createInputImageFile","createInput","CreateSelectSimple","CreateSelectWithApi","CreateTextEditor"],"mappings":"g9BAiBgE,IA8B1DA,EAAW,IA5BCC,EAAA,SAAAC,IAAAC,OAAAD,GAChBE,mBACYC,GAAgBD,uBACZE,GAAiBF,uBACjBG,GAAaH,EAAAI,KAAA,YACjBD,EAAcE,SAAOL,wBAChBM,GAAcN,2BACXO,GAAiBP,8BACdQ,GAAoBR,uBAC3BS,GAAaT,6BACPU,GAGtBV,2BACoBW,GAAiBX,2BACjBY,GAAiBZ,0BAClBa,GAAgBb,gCACVc,GAAsBd,uCACfe,GAA6Bf,yBAC3CgB,GAAehB,8BACViB,GAAoBjB,qBAC7BkB,GAAWlB,4BACJmB,GAAkBnB,6BACjBoB,GAAmBpB,0BACtBqB,EAAgB"}
1
+ {"version":3,"file":"dino-form.js","sources":["../../../src/form/dino-form.tsx"],"sourcesContent":["import { FormBottomBarWrap } from './create.form-grid-layout.units'\r\nimport { createInputFileCsvLocalParser } from './create.input-file.csv-local-parser'\r\nimport DecoratorForm, { createDecoratorForm } from './decorator.form'\r\nimport FormValidator from './validator'\r\nimport createInput from './create.input'\r\nimport FormModalWrapper from './modal-wrapper'\r\nimport createFormBase from './create.form-base'\r\nimport CreateInputFile from './create.input.file'\r\nimport CreateDatePicker from './create.date-picker'\r\nimport CreateTextEditor from './create.text-editor'\r\nimport createColorPicker from './create.color-picker'\r\nimport CreateDateExpired from './create.date-expired'\r\nimport CreateFormComfirm from './create.form-comfirm'\r\nimport createSelectSimple from './create.select-simple'\r\nimport createSelectWithApi from './create.select-with-api'\r\nimport CreateFormGridLayout from './create.form-grid-layout'\r\nimport createInputImageFile from './create.input.image-file'\r\nimport CreateAutocompleteChip from './create.autocomplete.chips'\r\n\r\nclass DinoFormBase {\r\n //#region Base\r\n ModalWrap = FormModalWrapper\r\n BottomBarWrap = FormBottomBarWrap\r\n FormValidator = FormValidator\r\n validator = FormValidator.initial\r\n createFormBase = createFormBase\r\n createFormComfirm = CreateFormComfirm\r\n createFormGridLayout = CreateFormGridLayout\r\n DecoratorForm = DecoratorForm\r\n createDecoratorForm = createDecoratorForm\r\n //#endregion\r\n\r\n //#region Inputs\r\n createColorPicker = createColorPicker\r\n createDateExpired = CreateDateExpired\r\n createDatePicker = CreateDatePicker\r\n createAutocompleteChip = CreateAutocompleteChip\r\n createInputFileCsvLocalParser = createInputFileCsvLocalParser\r\n createInputFile = CreateInputFile\r\n createInputImageFile = createInputImageFile\r\n createInput = createInput\r\n createSelectSimple = createSelectSimple\r\n createSelectWithApi = createSelectWithApi\r\n createTextEditor = CreateTextEditor\r\n //#endregion\r\n}\r\n\r\nconst DinoForm = new DinoFormBase()\r\nexport default DinoForm\r\n"],"names":["DinoForm","_createClass","DinoFormBase","_classCallCheck","_defineProperty","FormModalWrapper","FormBottomBarWrap","FormValidator","this","initial","createFormBase","CreateFormComfirm","CreateFormGridLayout","DecoratorForm","createDecoratorForm","createColorPicker","CreateDateExpired","CreateDatePicker","CreateAutocompleteChip","createInputFileCsvLocalParser","CreateInputFile","createInputImageFile","createInput","createSelectSimple","createSelectWithApi","CreateTextEditor"],"mappings":"g9BAiBgE,IA8B1DA,EAAW,IA5BCC,EAAA,SAAAC,IAAAC,OAAAD,GAChBE,mBACYC,GAAgBD,uBACZE,GAAiBF,uBACjBG,GAAaH,EAAAI,KAAA,YACjBD,EAAcE,SAAOL,wBAChBM,GAAcN,2BACXO,GAAiBP,8BACdQ,GAAoBR,uBAC3BS,GAAaT,6BACPU,GAGtBV,2BACoBW,GAAiBX,2BACjBY,GAAiBZ,0BAClBa,GAAgBb,gCACVc,GAAsBd,uCACfe,GAA6Bf,yBAC3CgB,GAAehB,8BACViB,GAAoBjB,qBAC7BkB,GAAWlB,4BACJmB,GAAkBnB,6BACjBoB,GAAmBpB,0BACtBqB,EAAgB"}
@@ -1,2 +1,2 @@
1
- import{objectSpread2 as r,toConsumableArray as n,typeof as e,createForOfIteratorHelper as t}from"../../_virtual/_rollupPluginBabelHelpers.js";import{FormValidator as i}from"./validator.js";var o=function(r){for(var n=arguments.length,e=new Array(n>1?n-1:0),t=1;t<n;t++)e[t-1]=arguments[t];return e.length<1?r:e.filter(function(r){return r}).reduce(function(r,n){return r=Object.assign(r,n)},r)},a=function(r){for(var t=arguments.length,i=new Array(t>1?t-1:0),u=1;u<t;u++)i[u-1]=arguments[u];if((i=i.filter(function(r){return!!r})).length<1)return r;for(var f=[r].concat(n(i)).filter(function(r){return r}),c=f.reduce(function(r,t){if(!t)return r;var i=Object.keys(t).filter(function(r){return"object"===e(t[r])&&!Array.isArray(t[r])});return r.push.apply(r,n(i)),r},[]),l=o.apply(void 0,[r].concat(n(f.slice(1)))),s=l,v=f.slice(1).filter(function(r){return!!r}),p=function(){var r=c[y];s[r]=a.apply(void 0,[{},s[r]].concat(n(v.map(function(n){return n[r]}))))},y=0;y<c.length;y++)p();return l},u=function(n,e){return n&&n[e]?r(r({},n[e][0]),{},{error:!0}):{error:!1,message:""}},f=function(r){var n=Array.from(r).reduce(function(r,n){return r[n[0]]?Array.isArray(r[n[0]])?r[n[0]].push(n[1]):r[n[0]]=[r[n[0]],n[1]]:r[n[0]]=n[1],r},{});return Object.keys(n).forEach(function(r){var e=n[r];"string"!=typeof e||"true"!==e.toString().toLocaleLowerCase()&&"false"!==e.toString().toLocaleLowerCase()||(n[r]="true"===e.toString().toLocaleLowerCase())}),n},c=function(r){if("string"==typeof r)return r.startsWith("#")&&/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(r)?r:r.trim();if(Array.isArray(r))return r.map(function(r){return c(r)});if(r instanceof File)return r;if(r instanceof FileList)return r;if(r instanceof Date)return r;if("number"==typeof r||"boolean"==typeof r||null==r)return r;if(r instanceof HTMLElement)return r;if("function"==typeof r)return r;if(r&&"object"===e(r)){var n={};return Object.keys(r).forEach(function(e){n[e]=c(r[e])}),n}return r},l=function(r,n,e,t){var i=t.run(n);if(i){var o=e||{},a=Object.keys(n).filter(function(r){return!!n[r]}).filter(function(r){return n[r]instanceof File&&!!n[r].size});return a.push(r),a.forEach(function(r){i[r]?o[r]=i[r]:delete o[r]}),o}return null},s=function(r,n){var e,t=null===(e=r.response)||void 0===e?void 0:e.data,i=(null==t?void 0:t.errors)||t;if(i){var o=Object.keys(n),a={};return o.forEach(function(r){var n=i[r];Array.isArray(n)&&n.length>0&&(a[r]=[{message:n[0]}])}),a}},v=function(r){var n,e=null===(n=r.response)||void 0===n?void 0:n.data,t=(null==e?void 0:e.errors)||e;if(t&&t[""]){var i=t[""];if(Array.isArray(i))return i.filter(function(r){return r&&"string"==typeof r&&""!==r.trim()})}return[]},p=function(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];for(var o=e.map(function(r){return null==r?void 0:r.configs}).filter(function(r){return!!r}),u=Object.assign.apply(Object,[{}].concat(n(o))),f=function(){var r=Object.keys(u)[c];u[r]=a.apply(void 0,[{}].concat(n(o.map(function(n){return n?n[r]:{Rules:[]}})))),u[r].Rules=o.map(function(n){return n?n[r]:{Rules:[]}}).reduce(function(r,e){var t;return r.push.apply(r,n(null!==(t=null==e?void 0:e.Rules)&&void 0!==t?t:[])),r},[])},c=0;c<Object.keys(u).length;c++)f();return new i(u)},y=function(r,n){if(0===r.length)return{valid:!1,message:"File is empty or cannot be parsed"};var e=Object.keys(r[0]),i=n.filter(function(r){return!e.includes(r)});if(i.length>0)return{valid:!1,message:"Missing required columns: ".concat(i.join(", "))};for(var o=0;o<r.length;o++){var a,u=r[o],f=t(n);try{for(f.s();!(a=f.n()).done;){var c=a.value,l=u[c];if("string"!=typeof l||""===l.trim())return{valid:!1,message:'Invalid or missing value for "'.concat(c.toString(),'" at row ').concat(o+2)}}}catch(r){f.e(r)}finally{f.f()}}return{valid:!0}};export{f as convertFormDataToJson,v as getErrorCommonFromResponse,s as getErrorFromResponse,u as getErrorMessage,l as singleValidate,c as trimAllStrings,y as validateCsvModel,p as validateMerge};
1
+ import{toConsumableArray as r,typeof as n,objectSpread2 as e,createForOfIteratorHelper as t}from"../../_virtual/_rollupPluginBabelHelpers.js";import{FormValidator as i}from"./validator.js";var o=function(r){for(var n=arguments.length,e=new Array(n>1?n-1:0),t=1;t<n;t++)e[t-1]=arguments[t];return e.length<1?r:e.filter(function(r){return r}).reduce(function(r,n){return r=Object.assign(r,n)},r)},a=function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),u=1;u<t;u++)i[u-1]=arguments[u];if((i=i.filter(function(r){return!!r})).length<1)return e;for(var f=[e].concat(r(i)).filter(function(r){return r}),c=f.reduce(function(e,t){if(!t)return e;var i=Object.keys(t).filter(function(r){return"object"===n(t[r])&&!Array.isArray(t[r])});return e.push.apply(e,r(i)),e},[]),l=o.apply(void 0,[e].concat(r(f.slice(1)))),s=l,v=f.slice(1).filter(function(r){return!!r}),p=function(){var n=c[y];s[n]=a.apply(void 0,[{},s[n]].concat(r(v.map(function(r){return r[n]}))))},y=0;y<c.length;y++)p();return l},u=function(r,n){return r&&r[n]?e(e({},r[n][0]),{},{error:!0}):{error:!1,message:""}},f=function(r){var n=Array.from(r).reduce(function(r,n){return r[n[0]]?Array.isArray(r[n[0]])?r[n[0]].push(n[1]):r[n[0]]=[r[n[0]],n[1]]:r[n[0]]=n[1],r},{});return Object.keys(n).forEach(function(r){var e=n[r];"string"!=typeof e||"true"!==e.toString().toLocaleLowerCase()&&"false"!==e.toString().toLocaleLowerCase()||(n[r]="true"===e.toString().toLocaleLowerCase())}),n},c=function(r){if("string"==typeof r)return r.startsWith("#")&&/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(r)?r:r.trim();if(Array.isArray(r))return r.map(function(r){return c(r)});if(r instanceof File)return r;if(r instanceof FileList)return r;if(r instanceof Date)return r;if("number"==typeof r||"boolean"==typeof r||null==r)return r;if(r instanceof HTMLElement)return r;if("function"==typeof r)return r;if(r&&"object"===n(r)){var e={};return Object.keys(r).forEach(function(n){e[n]=c(r[n])}),e}return r},l=function(r,n,e,t){var i=t.run(n);if(i){var o=e||{},a=Object.keys(n).filter(function(r){return!!n[r]}).filter(function(r){return n[r]instanceof File&&!!n[r].size});return a.push(r),a.forEach(function(r){i[r]?o[r]=i[r]:delete o[r]}),o}return null},s=function(r,n){var e,t=null===(e=r.response)||void 0===e?void 0:e.data,i=(null==t?void 0:t.errors)||t;if(i){var o=Object.keys(n),a={};return o.forEach(function(r){var n=i[r];Array.isArray(n)&&n.length>0&&(a[r]=[{message:n[0]}])}),a}},v=function(r){var n,e=null===(n=r.response)||void 0===n?void 0:n.data,t=(null==e?void 0:e.errors)||e;if(t&&t[""]){var i=t[""];if(Array.isArray(i))return i.filter(function(r){return r&&"string"==typeof r&&""!==r.trim()})}return[]},p=function(){for(var n=arguments.length,e=new Array(n),t=0;t<n;t++)e[t]=arguments[t];for(var o=e.map(function(r){return null==r?void 0:r.configs}).filter(function(r){return!!r}),u=Object.assign.apply(Object,[{}].concat(r(o))),f=function(){var n=Object.keys(u)[c];u[n]=a.apply(void 0,[{}].concat(r(o.map(function(r){return r?r[n]:{Rules:[]}})))),u[n].Rules=o.map(function(r){return r?r[n]:{Rules:[]}}).reduce(function(n,e){var t;return n.push.apply(n,r(null!==(t=null==e?void 0:e.Rules)&&void 0!==t?t:[])),n},[])},c=0;c<Object.keys(u).length;c++)f();return new i(u)},y=function(r,n){if(0===r.length)return{valid:!1,message:"File is empty or cannot be parsed"};var e=Object.keys(r[0]),i=n.filter(function(r){return!e.includes(r)});if(i.length>0)return{valid:!1,message:"Missing required columns: ".concat(i.join(", "))};for(var o=0;o<r.length;o++){var a,u=r[o],f=t(n);try{for(f.s();!(a=f.n()).done;){var c=a.value,l=u[c];if("string"!=typeof l||""===l.trim())return{valid:!1,message:'Invalid or missing value for "'.concat(c.toString(),'" at row ').concat(o+2)}}}catch(r){f.e(r)}finally{f.f()}}return{valid:!0}};export{f as convertFormDataToJson,v as getErrorCommonFromResponse,s as getErrorFromResponse,u as getErrorMessage,l as singleValidate,c as trimAllStrings,y as validateCsvModel,p as validateMerge};
2
2
  //# sourceMappingURL=helpers.js.map
@@ -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{Fragment as d,Component 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?d: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=v.mapInitialState(a.props.query,{columns:{columnVisibilityModel:e.columnVisibilityModel}}),n={getRowId:e.getRowId,initialState:l,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",filterDebounceMs:800,sx:{border:0},slots:{toolbar:a.mergeConfig.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,u),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};
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=v.mapInitialState(a.props.query,{columns:{columnVisibilityModel:e.columnVisibilityModel}}),n={getRowId:e.getRowId,initialState:l,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",filterDebounceMs:800,sx:{border:0},slots:{toolbar:a.mergeConfig.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,disableExport:!0,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 } 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 initialState = TableHelper.mapInitialState(this.props.query, {\r\n columns: { columnVisibilityModel: params.columnVisibilityModel as GridColumnVisibilityModel }\r\n })\r\n const obj: DataGridProps<T> = {\r\n getRowId: params.getRowId,\r\n initialState,\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 filterDebounceMs: 800,\r\n sx: { border: 0 },\r\n slots: { toolbar: this.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","initialState","TableHelper","mapInitialState","query","columns","columnVisibilityModel","obj","getRowId","rows","data","items","checkboxSelection","pagination","density","slots","filterDebounceMs","sx","border","toolbar","mergeConfig","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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"}
1
+ {"version":3,"file":"create.table.js","sources":["../../../src/table/create.table.tsx"],"sourcesContent":["import { Component, Fragment } from 'react'\r\nimport { Box, BoxProps, styled } from '@mui/material'\r\nimport { DataGrid, DataGridProps, GridColDef, GridFeatureMode, GridFilterOperator } from '@mui/x-data-grid'\r\nimport { GridSortModel, GridValidRowModel, GridRowIdGetter, GridRowSelectionModel } from '@mui/x-data-grid'\r\nimport { GridCallbackDetails, GridColumnVisibilityModel, GridDensity, GridFilterModel, GridPaginationModel } from '@mui/x-data-grid'\r\nimport type { ComponentType, ReactNode } from 'react'\r\nimport { mergeObjects } from '../utils'\r\nimport { TableBaseContext } from './context'\r\nimport { IActionRowProps } from './create.action-row'\r\nimport { customFilterOperators } from './custom.filter-operators'\r\nimport { GlobalModal, mapGlobalModalContext } from '../api-context'\r\nimport { ICustomGridColDef, ICustomGridFilterModel, ICustomGridSortModel, ITableData, ITableQueryParams } from './types'\r\nimport TableHelper, { dinoTableClasses } from './helpers'\r\nimport ToolbarPannel, { IToolbarPannelProps } from './toolbar-pannel'\r\n\r\nexport interface ITableSlots<T> {\r\n maxSelection?: number\r\n density?: GridDensity\r\n toolbar?: ComponentType<IToolbarPannelProps>\r\n actionRow?: ComponentType<IActionRowProps<T>>\r\n toolbarProps?: IToolbarPannelProps\r\n dataGridProps?: DataGridProps\r\n 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 initialState = TableHelper.mapInitialState(this.props.query, {\r\n columns: { columnVisibilityModel: params.columnVisibilityModel as GridColumnVisibilityModel }\r\n })\r\n const obj: DataGridProps<T> = {\r\n getRowId: params.getRowId,\r\n initialState,\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 filterDebounceMs: 800,\r\n sx: { border: 0 },\r\n slots: { toolbar: this.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 disableExport: true,\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","initialState","TableHelper","mapInitialState","query","columns","columnVisibilityModel","obj","getRowId","rows","data","items","checkboxSelection","pagination","density","slots","filterDebounceMs","sx","border","toolbar","mergeConfig","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","disableExport","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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"}
@@ -0,0 +1,2 @@
1
+ import{createClass as e,classCallCheck as t,toConsumableArray as r,typeof as n}from"../../_virtual/_rollupPluginBabelHelpers.js";var a=function(e){return e},i=function(){return e(function e(){t(this,e)},null,[{key:"exportToCsv",value:function(e,t){var n=this;try{var a,i=t.fields.map(function(e){return String(e)}),o=e.map(function(e){return t.fields.map(function(t){var r=e[t];return n.formatFieldValue(r)})}),l=[i].concat(r(o)).map(function(e){return e.join(",")}).join("\n");if(t.utf8WithBom){a=new Blob(["\ufeff"+l],{type:"text/csv;charset=utf-8;"})}else a=new Blob([l],{type:"text/csv;charset=utf-8;"});var u=document.createElement("a"),c=URL.createObjectURL(a);u.setAttribute("href",c),u.setAttribute("download","".concat(t.fileName,".csv")),u.style.visibility="hidden",document.body.appendChild(u),u.click(),document.body.removeChild(u),URL.revokeObjectURL(c)}catch(e){throw console.error("Error exporting CSV:",e),new Error("Failed to export CSV file")}}},{key:"formatFieldValue",value:function(e){return null==e?"":e instanceof Date?this.escapeCSVValue(e.toISOString()):Array.isArray(e)?this.escapeCSVValue(e.join("; ")):"object"===n(e)?this.escapeCSVValue(JSON.stringify(e)):this.escapeCSVValue(String(e))}},{key:"escapeCSVValue",value:function(e){return e.includes(",")||e.includes("\n")||e.includes("\r")||e.includes('"')?'"'+e.replace(/"/g,'""')+'"':e}}])}();export{i as CsvExportHelper,a as generateExportCsvOptions};
2
+ //# sourceMappingURL=csv-export-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-export-helper.js","sources":["../../../src/table/csv-export-helper.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\nexport interface IExportCsvOptionsModel<T = any> {\r\n fileName: string\r\n fields: (keyof T)[]\r\n utf8WithBom?: boolean\r\n}\r\n\r\nexport const generateExportCsvOptions = <T>(options: IExportCsvOptionsModel<T>): IExportCsvOptionsModel<T> => {\r\n return options\r\n}\r\n\r\nexport class CsvExportHelper {\r\n /**\r\n * Export data to CSV with UTF-8 BOM encoding support\r\n */\r\n static exportToCsv<T = any>(data: T[], options: IExportCsvOptionsModel<T>): void {\r\n try {\r\n // Extract headers\r\n const headers = options.fields.map((field) => String(field))\r\n\r\n // Extract rows data\r\n const rows = data.map((item) =>\r\n options.fields.map((field) => {\r\n const value = item[field]\r\n return this.formatFieldValue(value)\r\n })\r\n )\r\n\r\n // Combine headers and rows\r\n const csvContent = [headers, ...rows].map((row) => row.join(',')).join('\\n')\r\n\r\n // Create blob with UTF-8 BOM\r\n let blob: Blob\r\n if (options.utf8WithBom) {\r\n // UTF-8 BOM (Byte Order Mark) - helps Excel and other apps recognize UTF-8 encoding\r\n const BOM = '\\uFEFF'\r\n blob = new Blob([BOM + csvContent], { type: 'text/csv;charset=utf-8;' })\r\n } else {\r\n blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' })\r\n }\r\n\r\n // Create download link\r\n const link = document.createElement('a')\r\n const url = URL.createObjectURL(blob)\r\n link.setAttribute('href', url)\r\n link.setAttribute('download', `${options.fileName}.csv`)\r\n link.style.visibility = 'hidden'\r\n\r\n // Trigger download\r\n document.body.appendChild(link)\r\n link.click()\r\n document.body.removeChild(link)\r\n\r\n // Clean up\r\n URL.revokeObjectURL(url)\r\n } catch (error) {\r\n console.error('Error exporting CSV:', error)\r\n throw new Error('Failed to export CSV file')\r\n }\r\n }\r\n\r\n /**\r\n * Format field value for CSV export\r\n */\r\n private static formatFieldValue(value: any): string {\r\n if (value === null || value === undefined) return ''\r\n\r\n // Handle dates\r\n if (value instanceof Date) {\r\n return this.escapeCSVValue(value.toISOString())\r\n }\r\n\r\n // Handle arrays\r\n if (Array.isArray(value)) {\r\n return this.escapeCSVValue(value.join('; '))\r\n }\r\n\r\n // Handle objects\r\n if (typeof value === 'object') {\r\n return this.escapeCSVValue(JSON.stringify(value))\r\n }\r\n\r\n return this.escapeCSVValue(String(value))\r\n }\r\n\r\n /**\r\n * Escape CSV value by wrapping in quotes if needed\r\n */\r\n private static escapeCSVValue(value: string): string {\r\n // If value contains comma, newline, or quote, wrap in quotes and escape internal quotes\r\n if (value.includes(',') || value.includes('\\n') || value.includes('\\r') || value.includes('\"')) {\r\n return '\"' + value.replace(/\"/g, '\"\"') + '\"'\r\n }\r\n return value\r\n }\r\n}\r\n"],"names":["generateExportCsvOptions","options","CsvExportHelper","_createClass","_classCallCheck","key","value","data","_this","this","blob","headers","fields","map","field","String","rows","item","formatFieldValue","csvContent","concat","_toConsumableArray","row","join","utf8WithBom","Blob","type","link","document","createElement","url","URL","createObjectURL","setAttribute","fileName","style","visibility","body","appendChild","click","removeChild","revokeObjectURL","error","console","Error","Date","escapeCSVValue","toISOString","Array","isArray","_typeof","JSON","stringify","includes","replace"],"mappings":"qIAQaA,EAA2B,SAAIC,GAC1C,OAAOA,CACT,EAEaC,EAAe,WAAA,OAAAC,EAAA,SAAAD,IAAAE,OAAAF,EAAA,EAAA,KAAA,CAAA,CAAAG,IAAA,cAAAC,MAI1B,SAA4BC,EAAWN,GAAkC,IAAAO,EAAAC,KACvE,IAEE,IAcIC,EAdEC,EAAUV,EAAQW,OAAOC,IAAI,SAACC,GAAK,OAAKC,OAAOD,KAG/CE,EAAOT,EAAKM,IAAI,SAACI,GAAI,OACzBhB,EAAQW,OAAOC,IAAI,SAACC,GAClB,IAAMR,EAAQW,EAAKH,GACnB,OAAON,EAAKU,iBAAiBZ,EAC/B,KAIIa,EAAa,CAACR,GAAOS,OAAAC,EAAKL,IAAMH,IAAI,SAACS,GAAG,OAAKA,EAAIC,KAAK,IAAI,GAAEA,KAAK,MAIvE,GAAItB,EAAQuB,YAAa,CAGvBd,EAAO,IAAIe,KAAK,CADJ,SACWN,GAAa,CAAEO,KAAM,2BAC7C,MACChB,EAAO,IAAIe,KAAK,CAACN,GAAa,CAAEO,KAAM,4BAIxC,IAAMC,EAAOC,SAASC,cAAc,KAC9BC,EAAMC,IAAIC,gBAAgBtB,GAChCiB,EAAKM,aAAa,OAAQH,GAC1BH,EAAKM,aAAa,WAAU,GAAAb,OAAKnB,EAAQiC,SAAQ,SACjDP,EAAKQ,MAAMC,WAAa,SAGxBR,SAASS,KAAKC,YAAYX,GAC1BA,EAAKY,QACLX,SAASS,KAAKG,YAAYb,GAG1BI,IAAIU,gBAAgBX,EACrB,CAAC,MAAOY,GAEP,MADAC,QAAQD,MAAM,uBAAwBA,GAChC,IAAIE,MAAM,4BACjB,CACH,GAEA,CAAAvC,IAAA,mBAAAC,MAGQ,SAAwBA,GAC9B,OAAIA,QAA8C,GAG9CA,aAAiBuC,KACZpC,KAAKqC,eAAexC,EAAMyC,eAI/BC,MAAMC,QAAQ3C,GACTG,KAAKqC,eAAexC,EAAMiB,KAAK,OAInB,WAAjB2B,EAAO5C,GACFG,KAAKqC,eAAeK,KAAKC,UAAU9C,IAGrCG,KAAKqC,eAAe/B,OAAOT,GACpC,GAEA,CAAAD,IAAA,iBAAAC,MAGQ,SAAsBA,GAE5B,OAAIA,EAAM+C,SAAS,MAAQ/C,EAAM+C,SAAS,OAAS/C,EAAM+C,SAAS,OAAS/C,EAAM+C,SAAS,KACjF,IAAM/C,EAAMgD,QAAQ,KAAM,MAAQ,IAEpChD,CACT,IAAC,CAnFyB"}
@@ -0,0 +1,2 @@
1
+ import{objectWithoutProperties as r,objectSpread2 as o}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as t}from"react/jsx-runtime";import{Tooltip as e,Button as i}from"@mui/material";import{Download as a}from"@mui/icons-material";import{useGridApiContext as n,useGridSelector as l,gridRowsLookupSelector as p,GridToolbarExport as s}from"@mui/x-data-grid";import{CsvExportHelper as c}from"./csv-export-helper.js";var m=["csvOptions","tooltip","children"],v=function(v){var u=v.csvOptions,d=v.tooltip,f=void 0===d?"Export CSV with UTF-8 encoding":d,x=v.children,h=r(v,m),j=n(),b=l(j,p);return u?t(e,{title:f,arrow:!0,children:t(i,o(o({size:"small",variant:"text",startIcon:t(a,{}),onClick:function(){try{if(!u)return void console.warn("No CSV export options provided");var r=Object.values(b);if(0===r.length)return void console.warn("No data available for export");var o=j.current.getSelectedRows();return 0===o.size?c.exportToCsv(r,u):c.exportToCsv(Array.from(o.values()),u)}catch(r){console.error("Export failed:",r)}}},h),{},{children:x||"Export"}))}):t(s,{})};export{v as CustomExportButton};
2
+ //# sourceMappingURL=custom.export-button.js.map
@@ -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 i}from"../../_virtual/_rollupPluginBabelHelpers.js";import c from"dayjs";var u=function(r){return new Promise(function(t){return setTimeout(t,r)})},f=function(){var n=t(e().m(function t(n,o){var a,i,c;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,i=r(a,1),c=i[0],t.a(2,c)}},t)}));return function(r,t){return n.apply(this,arguments)}}(),s=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},{})},m=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{}}},g=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],i=o[1];if(null==i||"string"==typeof i&&""===i.trim()||"number"==typeof i&&isNaN(i)||Array.isArray(i)&&0===i.length||"object"===n(i)&&!Array.isArray(i)&&0===Object.keys(g(i)).length);else if("object"!==n(i)||Array.isArray(i))e[a]=i;else{var c=g(i);Object.keys(c).length>0&&(e[a]=c)}}),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),""}},w=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)}},j=function(r,t){try{return r?JSON.parse(r):t}catch(r){return 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),i=e%60,c=String(o).padStart(2,"0"),u=String(a).padStart(2,"0"),f=String(i).padStart(2,"0");return"".concat(c,":").concat(u,":").concat(f)},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("."),i=r(a,2),c=i[0],u=i[1],f=c.replace(/\B(?=(\d{3})+(?!\d))/g," "),s=f;return"00"!==u&&(s="".concat(f,".").concat(u)),"".concat(e).concat(s).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=i(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 c(r).format(e)}catch(r){return"unknown"}};export{m as cleanObject,w as decodeBase64,g as deepRemoveEmptyFields,b as encodeBase64,f as fetchDelay,N as formatCapitalizeFirstText,T as formatCurrency,D as formatDatetime,O as formatDatetimeStyles,E as formatDuration,Y as formatFileSize,x as formatNumberWithCommas,s 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,j as tryParseObject,v as windowScrollToTop};
2
2
  //# sourceMappingURL=helpers.js.map