es-grid-template 0.0.7 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/LICENSE +21 -19
  2. package/es/{CheckboxFilter.d.ts → grid-component/CheckboxFilter.d.ts} +1 -1
  3. package/es/{CheckboxFilter.js → grid-component/CheckboxFilter.js} +7 -11
  4. package/es/grid-component/ColumnsChoose.d.ts +9 -0
  5. package/es/{ColumnsChoose.js → grid-component/ColumnsChoose.js} +66 -70
  6. package/es/grid-component/EditableCell.d.ts +19 -0
  7. package/es/grid-component/EditableCell.js +842 -0
  8. package/es/{FilterSearch.js → grid-component/FilterSearch.js} +2 -2
  9. package/es/grid-component/GridStyle.d.ts +4 -0
  10. package/es/grid-component/GridStyle.js +5 -0
  11. package/es/grid-component/InternalTable.d.ts +6 -0
  12. package/es/grid-component/InternalTable.js +283 -0
  13. package/es/grid-component/LoadingSpinner.d.ts +3 -0
  14. package/es/grid-component/LoadingSpinner.js +20 -0
  15. package/es/grid-component/Message/Message.d.ts +2 -0
  16. package/es/grid-component/Message/Message.js +16 -0
  17. package/es/grid-component/Message/index.d.ts +1 -0
  18. package/es/grid-component/Message/index.js +1 -0
  19. package/es/grid-component/TableGrid.d.ts +10 -0
  20. package/es/grid-component/TableGrid.js +375 -0
  21. package/es/grid-component/async-table-select/index.d.ts +9 -0
  22. package/es/grid-component/async-table-select/index.js +37 -0
  23. package/es/{hooks → grid-component/hooks}/constant.d.ts +14 -0
  24. package/es/{hooks → grid-component/hooks}/constant.js +17 -2
  25. package/es/grid-component/hooks/useColumns/index.d.ts +6 -0
  26. package/es/grid-component/hooks/useColumns/index.js +422 -0
  27. package/es/grid-component/hooks/utils.d.ts +35 -0
  28. package/es/{hooks → grid-component/hooks}/utils.js +147 -19
  29. package/es/grid-component/index.d.ts +2 -0
  30. package/es/grid-component/index.js +2 -0
  31. package/es/grid-component/rc-table/Grid.d.ts +8 -0
  32. package/es/grid-component/rc-table/Grid.js +99 -0
  33. package/es/grid-component/rc-table/GridEdit.d.ts +9 -0
  34. package/es/grid-component/rc-table/GridEdit.js +706 -0
  35. package/es/grid-component/type.d.ts +225 -0
  36. package/es/grid-component/useContext.d.ts +27 -0
  37. package/es/grid-component/useContext.js +4 -0
  38. package/es/index.d.ts +1 -2
  39. package/es/index.js +2 -2
  40. package/es/table-grid/styles.scss +551 -0
  41. package/lib/{CheckboxFilter.d.ts → grid-component/CheckboxFilter.d.ts} +1 -1
  42. package/lib/{CheckboxFilter.js → grid-component/CheckboxFilter.js} +11 -14
  43. package/lib/grid-component/ColumnsChoose.d.ts +9 -0
  44. package/lib/{ColumnsChoose.js → grid-component/ColumnsChoose.js} +66 -70
  45. package/lib/grid-component/EditableCell.d.ts +19 -0
  46. package/lib/grid-component/EditableCell.js +844 -0
  47. package/lib/{FilterSearch.js → grid-component/FilterSearch.js} +3 -3
  48. package/lib/grid-component/GridStyle.d.ts +4 -0
  49. package/lib/grid-component/GridStyle.js +12 -0
  50. package/lib/grid-component/InternalTable.d.ts +6 -0
  51. package/lib/grid-component/InternalTable.js +292 -0
  52. package/lib/grid-component/LoadingSpinner.d.ts +3 -0
  53. package/lib/grid-component/LoadingSpinner.js +29 -0
  54. package/lib/grid-component/Message/Message.d.ts +2 -0
  55. package/lib/grid-component/Message/Message.js +25 -0
  56. package/lib/grid-component/Message/index.d.ts +1 -0
  57. package/lib/grid-component/Message/index.js +16 -0
  58. package/lib/grid-component/TableGrid.d.ts +10 -0
  59. package/lib/grid-component/TableGrid.js +382 -0
  60. package/lib/grid-component/async-table-select/index.d.ts +9 -0
  61. package/lib/grid-component/async-table-select/index.js +46 -0
  62. package/lib/{hooks → grid-component/hooks}/constant.d.ts +14 -0
  63. package/lib/{hooks → grid-component/hooks}/constant.js +18 -3
  64. package/lib/grid-component/hooks/useColumns/index.d.ts +6 -0
  65. package/lib/grid-component/hooks/useColumns/index.js +435 -0
  66. package/lib/grid-component/hooks/utils.d.ts +35 -0
  67. package/lib/{hooks → grid-component/hooks}/utils.js +164 -22
  68. package/lib/grid-component/index.d.ts +2 -0
  69. package/lib/grid-component/index.js +9 -0
  70. package/lib/grid-component/rc-table/Grid.d.ts +8 -0
  71. package/lib/grid-component/rc-table/Grid.js +108 -0
  72. package/lib/grid-component/rc-table/GridEdit.d.ts +9 -0
  73. package/lib/grid-component/rc-table/GridEdit.js +715 -0
  74. package/lib/grid-component/type.d.ts +225 -0
  75. package/lib/grid-component/useContext.d.ts +27 -0
  76. package/lib/grid-component/useContext.js +10 -0
  77. package/lib/index.d.ts +1 -2
  78. package/lib/index.js +7 -3
  79. package/lib/table-grid/styles.scss +551 -0
  80. package/package.json +17 -6
  81. package/es/ColumnsChoose.d.ts +0 -10
  82. package/es/GridTable.d.ts +0 -7
  83. package/es/GridTable.js +0 -927
  84. package/es/hooks/useColumns/index.d.ts +0 -2
  85. package/es/hooks/useColumns/index.js +0 -25
  86. package/es/hooks/utils.d.ts +0 -18
  87. package/es/styles.scss +0 -30
  88. package/es/type.d.ts +0 -88
  89. package/lib/ColumnsChoose.d.ts +0 -10
  90. package/lib/GridTable.d.ts +0 -7
  91. package/lib/GridTable.js +0 -936
  92. package/lib/hooks/useColumns/index.d.ts +0 -2
  93. package/lib/hooks/useColumns/index.js +0 -31
  94. package/lib/hooks/utils.d.ts +0 -18
  95. package/lib/styles.scss +0 -30
  96. package/lib/type.d.ts +0 -88
  97. /package/es/{ContextMenu.d.ts → grid-component/ContextMenu.d.ts} +0 -0
  98. /package/es/{ContextMenu.js → grid-component/ContextMenu.js} +0 -0
  99. /package/es/{FilterSearch.d.ts → grid-component/FilterSearch.d.ts} +0 -0
  100. /package/es/{hooks → grid-component/hooks}/index.d.ts +0 -0
  101. /package/es/{hooks → grid-component/hooks}/index.js +0 -0
  102. /package/es/{hooks → grid-component/hooks}/useIsOverflow.d.ts +0 -0
  103. /package/es/{hooks → grid-component/hooks}/useIsOverflow.js +0 -0
  104. /package/es/{hooks → grid-component/hooks}/useOnClickOutside.d.ts +0 -0
  105. /package/es/{hooks → grid-component/hooks}/useOnClickOutside.js +0 -0
  106. /package/es/{type.js → grid-component/type.js} +0 -0
  107. /package/lib/{ContextMenu.d.ts → grid-component/ContextMenu.d.ts} +0 -0
  108. /package/lib/{ContextMenu.js → grid-component/ContextMenu.js} +0 -0
  109. /package/lib/{FilterSearch.d.ts → grid-component/FilterSearch.d.ts} +0 -0
  110. /package/lib/{hooks → grid-component/hooks}/index.d.ts +0 -0
  111. /package/lib/{hooks → grid-component/hooks}/index.js +0 -0
  112. /package/lib/{hooks → grid-component/hooks}/useIsOverflow.d.ts +0 -0
  113. /package/lib/{hooks → grid-component/hooks}/useIsOverflow.js +0 -0
  114. /package/lib/{hooks → grid-component/hooks}/useOnClickOutside.d.ts +0 -0
  115. /package/lib/{hooks → grid-component/hooks}/useOnClickOutside.js +0 -0
  116. /package/lib/{type.js → grid-component/type.js} +0 -0
@@ -0,0 +1,844 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _antd = require("antd");
11
+ var _hooks = require("./hooks");
12
+ var _asyncTableSelect = require("./async-table-select");
13
+ var _classnames = _interopRequireDefault(require("classnames"));
14
+ var _reactNumericComponent = require("react-numeric-component");
15
+ var _useContext = require("./useContext");
16
+ var _dayjs = _interopRequireDefault(require("dayjs"));
17
+ var _moment = _interopRequireDefault(require("moment"));
18
+ var _reactHookForm = require("react-hook-form");
19
+ var _rcMasterUi = require("rc-master-ui");
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
+ // import moment from "moment";
23
+ // import dayjs from "dayjs";
24
+
25
+ // import moment from "moment";
26
+
27
+ const {
28
+ SHOW_PARENT
29
+ } = _antd.TreeSelect;
30
+ const filterTreeNode = (input, treeNode) => {
31
+ const {
32
+ title,
33
+ value
34
+ } = treeNode;
35
+ return title.toLowerCase().includes(input.toLowerCase()) || value.toLowerCase().includes(input.toLowerCase());
36
+ };
37
+ const EditableCell = props => {
38
+ const {
39
+ t,
40
+ editing,
41
+ dataIndex,
42
+ title,
43
+ editType,
44
+ record,
45
+ index,
46
+ children,
47
+ column,
48
+ indexRow,
49
+ indexCol,
50
+ ...restProps
51
+ } = props;
52
+ const {
53
+ rowKey,
54
+ format,
55
+ control,
56
+ getValues,
57
+ handleCellChange
58
+ } = (0, _react.useContext)(_useContext.TableContext);
59
+ const datePickerRef = _react.default.useRef(null);
60
+ const dateTimePickerRef = _react.default.useRef(null);
61
+ // const timePickerRef = React.useRef(null);
62
+
63
+ const isInvalid = false;
64
+ const keySelect = (0, _hooks.checkFieldKey)(column?.editSelectSettings?.fieldKey);
65
+ const inputKey = column?.editSelectSettings?.inputKey;
66
+ const options = column?.editSelectSettings?.validateOption ? column?.editSelectSettings?.validateOption(record, column.dataIndex) : column?.editSelectSettings?.options ? column?.editSelectSettings?.options : [];
67
+ const optionsTree = column?.editSelectSettings?.validateOption ? (0, _hooks.convertArrayWithIndent)(column?.editSelectSettings?.validateOption(record, column.dataIndex)) : column?.editSelectSettings?.options ? (0, _hooks.convertArrayWithIndent)(column?.editSelectSettings?.options) : [];
68
+ const inputNode = (value, onChange) => {
69
+ const dateFormat = (0, _hooks.getDatepickerFormat)(editType, column);
70
+ const date = !(0, _hooks.isEmpty)(value) ? (0, _hooks.convertDateToDayjs)(new Date(value), dateFormat) : null;
71
+ const maxDate = (0, _hooks.convertDateToDayjs)(column.maxDate, dateFormat) ?? undefined;
72
+ const minDate = (0, _hooks.convertDateToDayjs)(column.minDate, dateFormat) ?? undefined;
73
+ switch (editType) {
74
+ case 'date':
75
+ return /*#__PURE__*/_react.default.createElement(_antd.DatePicker
76
+ // id={`col${indexCol}-record${indexRow}`}
77
+ , {
78
+ ref: datePickerRef,
79
+ format: {
80
+ format: dateFormat,
81
+ type: 'mask'
82
+ }
83
+
84
+ // locale={buddhistLocale}
85
+ ,
86
+ style: {
87
+ width: '100%',
88
+ height: '100%'
89
+ },
90
+ value: date
91
+ // defaultValue={date}
92
+ ,
93
+
94
+ onBlur: () => {
95
+ const formState = getValues();
96
+ const itemState = getValues(dataIndex);
97
+ // @ts-ignore
98
+ const prevState = record[dataIndex];
99
+ const newState = itemState;
100
+ if (newState !== prevState) {
101
+ // @ts-ignore
102
+ handleCellChange?.({
103
+ key: record[rowKey],
104
+ record: formState,
105
+ prevState,
106
+ newState,
107
+ type: 'blur'
108
+ });
109
+ }
110
+ },
111
+ placeholder: column.placeholder,
112
+ disabled: (0, _hooks.isDisable)(column, record) ?? false,
113
+ maxDate: maxDate,
114
+ minDate: minDate
115
+
116
+ // onOpenChange={(open) => {
117
+ // console.log(open)
118
+ // if (open) {
119
+ // handleSubmit(onSubmit)
120
+ // }
121
+ // }}
122
+ ,
123
+
124
+ onChange: (newDate, dateString) => {
125
+ const newDateValue = dateString ? (0, _moment.default)((0, _hooks.convertDayjsToDate)(dateString, dateFormat)).format() : null;
126
+ onChange(newDateValue);
127
+ setTimeout(() => {
128
+ // @ts-ignore
129
+ datePickerRef.current?.focus();
130
+ }, 0);
131
+ },
132
+ popupClassName: 'be-popup-container'
133
+ });
134
+ case 'datetime':
135
+ // const dateTimeFormat = getDatepickerFormat(editType, column)
136
+ // // @ts-ignore
137
+ // // const dateTimeValue = !isEmpty(record[column.dataIndex]) ? convertDateToDayjs(new Date(record[column.dataIndex]), dateTimeFormat) : null
138
+ // const maxDateTime = convertDateToDayjs(column.maxDate, dateTimeFormat) ?? undefined
139
+ // const minDateTime = convertDateToDayjs(column.minDate, dateTimeFormat) ?? undefined
140
+
141
+ return /*#__PURE__*/_react.default.createElement(_antd.DatePicker
142
+ // id={`col${indexCol}-record${indexRow}`}
143
+ , {
144
+ ref: dateTimePickerRef,
145
+ format: {
146
+ format: dateFormat,
147
+ type: 'mask'
148
+ }
149
+ // locale={buddhistLocale}
150
+ ,
151
+ style: {
152
+ width: '100%',
153
+ height: '100%'
154
+ },
155
+ showTime: true,
156
+ value: date,
157
+ placeholder: column.placeholder,
158
+ disabled: (0, _hooks.isDisable)(column, record) ?? false,
159
+ maxDate: maxDate,
160
+ minDate: minDate,
161
+ onChange: (newDate, dateString) => {
162
+ const newDateValue = dateString ? (0, _moment.default)((0, _hooks.convertDayjsToDate)(dateString, dateFormat)).format() : null;
163
+ onChange(newDateValue);
164
+ setTimeout(() => {
165
+ // @ts-ignore
166
+ dateTimePickerRef.current?.focus();
167
+ }, 0);
168
+ },
169
+ onBlur: () => {
170
+ const formState = getValues();
171
+ const itemState = getValues(dataIndex);
172
+ // @ts-ignore
173
+ const prevState = record[dataIndex];
174
+ const newState = itemState;
175
+ if (prevState !== newState) {
176
+ // @ts-ignore
177
+ handleCellChange?.({
178
+ key: record[rowKey],
179
+ record: formState,
180
+ prevState,
181
+ newState,
182
+ type: 'blur'
183
+ });
184
+ }
185
+ },
186
+ popupClassName: 'be-popup-container'
187
+ });
188
+ case 'month':
189
+ case 'quarter':
190
+ case 'year':
191
+ const pickerFormat = (0, _hooks.getDatepickerFormat)(editType, column);
192
+ // @ts-ignore
193
+ // const dateValue = !isEmpty(record[column.dataIndex]) ? dayjs(record[column.key], pickerFormat) : null
194
+ const maxDateValue1 = !(0, _hooks.isEmpty)(column.maxDate) ? (0, _dayjs.default)(column.maxDate, pickerFormat) : undefined;
195
+ const minDateValue1 = !(0, _hooks.isEmpty)(column.minDate) ? (0, _dayjs.default)(column.minDate, pickerFormat) : undefined;
196
+ return /*#__PURE__*/_react.default.createElement(_antd.DatePicker, {
197
+ id: `col${indexCol}-record${indexRow}`,
198
+ format: {
199
+ format: pickerFormat,
200
+ type: 'mask'
201
+ },
202
+ style: {
203
+ width: '100%',
204
+ height: '100%'
205
+ }
206
+ // defaultValue={dateValue}
207
+ ,
208
+ picker: editType,
209
+ placeholder: column.placeholder,
210
+ disabled: (0, _hooks.isDisable)(column, record) ?? false,
211
+ maxDate: maxDateValue1,
212
+ minDate: minDateValue1
213
+ // onChange={(dValue, dateString) => {
214
+ // const newDateValue = dateString ? dateString : null
215
+ //
216
+ // // record[column.dataIndex] = newDateValue
217
+ // // handleCellChange(newDateValue, newDateValue, record, col, indexRow, indexCol)
218
+ // }}
219
+ ,
220
+ popupClassName: 'be-popup-container'
221
+ });
222
+ case 'week':
223
+ const weekFormat = (0, _hooks.getDatepickerFormat)(editType, column);
224
+
225
+ // @ts-ignore
226
+ // const weekValue = !isEmpty(record[column.dataIndex]) ? dayjs(record[column.dataIndex], weekFormat) : null
227
+ const maxWeekValue = !(0, _hooks.isEmpty)(column.maxDate) ? (0, _dayjs.default)(column.maxDate, weekFormat) : undefined;
228
+ const minWeekValue = !(0, _hooks.isEmpty)(column.minDate) ? (0, _dayjs.default)(column.minDate, weekFormat) : undefined;
229
+ return /*#__PURE__*/_react.default.createElement(_antd.DatePicker, {
230
+ format: val => (0, _hooks.customWeekStartEndFormat)(val, weekFormat),
231
+ style: {
232
+ width: '100%',
233
+ height: '100%'
234
+ }
235
+ // defaultValue={weekValue}
236
+ ,
237
+ picker: editType,
238
+ placeholder: column.placeholder,
239
+ disabled: (0, _hooks.isDisable)(column, record) ?? false,
240
+ maxDate: maxWeekValue,
241
+ minDate: minWeekValue
242
+ // onChange={(dateValue, dateString) => {
243
+ // const newDateValue = dateString ? dateString : null
244
+ //
245
+ // record[column.dataIndex] = newDateValue
246
+ // handleCellChange(newDateValue, newDateValue, record, col, indexRow, indexCol)
247
+ // }}
248
+ ,
249
+ popupClassName: 'be-popup-container'
250
+ });
251
+ case 'time':
252
+ const timeFormat = (0, _hooks.getDatepickerFormat)(editType, column);
253
+ const maxTimeValue = !(0, _hooks.isEmpty)(column.maxTime) ? (0, _dayjs.default)(column.maxTime).format(timeFormat) : null;
254
+ const minTimeValue = !(0, _hooks.isEmpty)(column.minTime) ? (0, _dayjs.default)(column.minTime).format(timeFormat) : null;
255
+
256
+ // @ts-ignore
257
+ // const timeValue = !isEmpty(record[column.dataIndex]) ? dayjs(record[column.dataIndex], timeFormat) : null
258
+ const maxTime = maxTimeValue ? (0, _dayjs.default)(maxTimeValue, timeFormat) : undefined;
259
+ const minTime = minTimeValue ? (0, _dayjs.default)(minTimeValue, timeFormat) : undefined;
260
+ return /*#__PURE__*/_react.default.createElement(_antd.TimePicker, {
261
+ format: {
262
+ format: timeFormat,
263
+ type: 'mask'
264
+ }
265
+ // defaultValue={timeValue}
266
+ ,
267
+ maxDate: maxTime,
268
+ minDate: minTime,
269
+ disabled: (0, _hooks.isDisable)(column, record) ?? false
270
+ // onChange={(values: any, timeString) => {
271
+ // const newTimeValue = timeString ? timeString : null
272
+ // const newrecordData = {
273
+ // ...record,
274
+ // // [column.dataIndex]: newTimeValue
275
+ // }
276
+ //
277
+ // // handleCellChange(newTimeValue, newTimeValue, newrecordData, col, indexRow, indexCol)
278
+ // }}
279
+ ,
280
+ style: {
281
+ width: '100%',
282
+ height: '100%'
283
+ },
284
+ popupClassName: 'be-popup-container'
285
+ });
286
+ case 'selectTable':
287
+ const rr = column?.editSelectSettings && column?.editSelectSettings.columns ? column?.editSelectSettings.columns : [];
288
+ const columnsTable = rr.map(colSelect => {
289
+ return {
290
+ title: colSelect.headerTemplate ? colSelect.headerTemplate : t ? t(colSelect.headerText) : colSelect.headerText,
291
+ dataIndex: colSelect.dataIndex,
292
+ key: colSelect.dataIndex,
293
+ render: colSelect.template ? (text, recd, ind) => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, colSelect.template?.({
294
+ value: text,
295
+ rowData: recd,
296
+ column: colSelect,
297
+ field: colSelect.dataIndex,
298
+ index: ind,
299
+ [colSelect.dataIndex]: text
300
+ })) : undefined,
301
+ width: colSelect.width,
302
+ ellipsis: true,
303
+ align: colSelect.textAlign
304
+ };
305
+ });
306
+
307
+ // let valueSelectTable
308
+ //
309
+ // if (column?.editSelectSettings?.isMulti || column?.editSelectSettings?.selectMode === 'checkbox') {
310
+ // valueSelectTable = (!isNullOrUndefined(record[column.dataIndex]) && Array.isArray(record[column.dataIndex]) && record[column.dataIndex]?.length > 0) ? options.filter((val: any) => record[column.dataIndex]?.includes(val[keySelect])) : undefined
311
+ // } else {
312
+ // valueSelectTable = record[column?.editSelectSettings?.fieldValue ?? column.dataIndex] ?? ''
313
+ // }
314
+ //
315
+ // if (!valueSelectTable && column?.editSelectSettings?.defaultValue?.(record[column.dataIndex], record)) {
316
+ // valueSelectTable = column?.editSelectSettings?.defaultValue(record[column.dataIndex], record)
317
+ // }
318
+ //
319
+ //
320
+
321
+ let valueSelectTable;
322
+ if (column?.editSelectSettings?.isMulti || column?.editSelectSettings?.selectMode === 'checkbox') {
323
+ // @ts-ignore
324
+ valueSelectTable = !(0, _hooks.isNullOrUndefined)(record[column.dataIndex]) && Array.isArray(record[column.dataIndex]) && record[column.dataIndex]?.length > 0 ? options.filter(val => record[column.dataIndex]?.includes(val[keySelect])) : undefined;
325
+ } else {
326
+ // const find = (!isNullOrUndefined(record[column.dataIndex]) && record[column.dataIndex] !== '') ? options?.find((val: any) => val[keySelect] === record[column?.editSelectSettings?.fieldValue ?? column.dataIndex]) : ''
327
+ // @ts-ignore
328
+ const find = !(0, _hooks.isNullOrUndefined)(record[column.dataIndex]) && record[column.dataIndex] !== '' ? options?.find(val => val[keySelect] === record[column.dataIndex]) : '';
329
+ valueSelectTable = find ? {
330
+ label: find[column?.editSelectSettings?.inputKey ?? column.dataIndex],
331
+ // @ts-ignore
332
+ [column.dataIndex]: find[column?.editSelectSettings?.fieldValue ?? keySelect],
333
+ key: find[column?.editSelectSettings?.fieldValue ?? keySelect],
334
+ [keySelect]: find[column?.editSelectSettings?.fieldValue ?? keySelect]
335
+ } : '';
336
+ }
337
+ // @ts-ignore
338
+ if (!valueSelectTable && column?.editSelectSettings?.defaultValue?.(record[column.dataIndex], record)) {
339
+ // @ts-ignore
340
+ valueSelectTable = column?.editSelectSettings?.defaultValue(record[column.dataIndex], record);
341
+ }
342
+ return /*#__PURE__*/_react.default.createElement(_asyncTableSelect.AsyncTableSelect, {
343
+ id: `col${indexCol}-record${indexRow}`,
344
+ columns: columnsTable,
345
+ options: options,
346
+ defaultOptions: options
347
+ // onChange={(val: any, option) => {
348
+ // // const newValue = val && (column?.editSelectSettings?.isMulti || column?.editSelectSettings?.selectMode === 'checkbox') ? (val?.map((item: any) => item[keySelect]) ?? []) : (val ? val[keySelect] : null)
349
+ // const newrecordData = {
350
+ // ...record,
351
+ // [column.dataIndex]: val
352
+ // }
353
+ //
354
+ // // handleCellChange(option, val, newrecordData, col, indexRow, indexCol)
355
+ // }}
356
+ ,
357
+ showSearch: true,
358
+ mode: column?.editSelectSettings?.isMulti || column?.editSelectSettings?.selectMode === 'checkbox' ? 'multiple' : undefined,
359
+ focusToSelectAll: true,
360
+ selectMode: column?.editSelectSettings?.selectMode,
361
+ style: {
362
+ width: '100%',
363
+ height: '100%'
364
+ },
365
+ value: valueSelectTable,
366
+ placeholder: t ? t('Select') : 'Select',
367
+ allowClear: column.isClearable ?? false,
368
+ maxTagCount: 'responsive',
369
+ rowKey: keySelect,
370
+ popupMatchSelectWidth: column?.editSelectSettings?.menuWidth ? column?.editSelectSettings?.menuWidth + 10 : undefined,
371
+ optionFilterProp: "label",
372
+ popupClassName: 'be-popup-container'
373
+ // onPaste={(e: any) => handleOnCellPaste(e, indexRow, indexCol)}
374
+ ,
375
+ loadOptions: column?.editSelectSettings?.loadOptions,
376
+ status: isInvalid ? 'error' : undefined,
377
+ dropdownRender: menu => {
378
+ if (column?.editSelectSettings?.toolbarItems && column?.editSelectSettings?.toolbarItems.length > 0) {
379
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, menu, /*#__PURE__*/_react.default.createElement(_antd.Divider, {
380
+ style: {
381
+ margin: '8px 0'
382
+ }
383
+ }), /*#__PURE__*/_react.default.createElement("div", {
384
+ className: 'toolbar-control d-flex justify-content-end'
385
+ }, column?.editSelectSettings?.toolbarItems.map(it => {
386
+ return /*#__PURE__*/_react.default.createElement("div", {
387
+ key: it.key,
388
+ className: 'toolbar-item',
389
+ onClick: () => column?.editSelectSettings?.toolbarClick?.({
390
+ item: it,
391
+ column
392
+ })
393
+ }, it.template ? (0, _hooks.getTemplate)(it.template) : /*#__PURE__*/_react.default.createElement(_antd.Button, {
394
+ className: "toolbar-item-btn"
395
+ }, it.icon && (0, _hooks.getTemplate)(it.icon), it.title));
396
+ })));
397
+ } else {
398
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, " ", menu);
399
+ }
400
+ },
401
+ filterOption: column?.editSelectSettings?.filterOption,
402
+ fieldNames: column?.editSelectSettings?.fieldNames ? column?.editSelectSettings?.fieldNames : {
403
+ value: keySelect,
404
+ label: column?.editSelectSettings?.inputKey ?? 'label'
405
+ }
406
+ });
407
+ case 'select':
408
+ // let valueCustomSelect
409
+ // if (column?.editSelectSettings?.isMulti) {
410
+ // valueCustomSelect = (!isNullOrUndefined(record[column.dataIndex]) && record[column.dataIndex]?.length > 0) ? options.filter((val: any) => record[column.dataIndex]?.includes(val[keySelect])) : []
411
+ // } else {
412
+ //
413
+ // valueCustomSelect = (!isNullOrUndefined(record[column.dataIndex]) && record[column.dataIndex] !== '') ? options?.find((val: any) => val[keySelect] === record[column.dataIndex]) : ''
414
+ //
415
+ // }
416
+ //
417
+ // if (!valueCustomSelect && column?.editSelectSettings?.defaultValue) {
418
+ //
419
+ // if (column?.editSelectSettings.fieldLabel && record[column?.editSelectSettings.fieldLabel]) {
420
+ //
421
+ // // valueCustomSelect = {...column?.editSelectSettings?.defaultValue(record), label: record[column?.editSelectSettings.fieldLabel]}
422
+ // valueCustomSelect = {...column?.editSelectSettings?.defaultValue(record[column.dataIndex], record), label: record[column?.editSelectSettings.fieldLabel]}
423
+ //
424
+ // } else {
425
+ // valueCustomSelect = column?.editSelectSettings?.defaultValue(record[column.dataIndex], record)
426
+ //
427
+ // }
428
+ //
429
+ // }
430
+
431
+ return /*#__PURE__*/_react.default.createElement(_rcMasterUi.Select, {
432
+ id: `col${indexCol}-record${indexRow}`,
433
+ showSearch: true,
434
+ valueSelectAble: true
435
+
436
+ // isMulti={column?.editSelectSettings?.isMulti}
437
+ ,
438
+ style: {
439
+ width: '100%'
440
+ },
441
+ value: value
442
+ // options={options}
443
+ ,
444
+ options: [{
445
+ value: 'jack',
446
+ label: 'Jack'
447
+ }, {
448
+ value: 'lucy',
449
+ label: 'Lucy'
450
+ }, {
451
+ value: 'Yiminghe',
452
+ label: 'yiminghe'
453
+ }, {
454
+ value: 'disabled',
455
+ label: 'Disabled',
456
+ disabled: true
457
+ }],
458
+ placeholder: t ? t('Select') : 'Select',
459
+ onChange: (val, item) => {
460
+ console.log('item', item);
461
+ onChange(val);
462
+ },
463
+ onBlur: () => {
464
+ const formState = getValues();
465
+ // const itemState = getValues(dataIndex)
466
+
467
+ // @ts-ignore
468
+ const prevState = record[dataIndex];
469
+ // const newState = value
470
+
471
+ // console.log('prevState', prevState)
472
+ // console.log('newState', newState)
473
+ // console.log('itemState', itemState)
474
+ if (value !== prevState) {
475
+ // @ts-ignore
476
+ handleCellChange?.({
477
+ key: record[rowKey],
478
+ record: formState,
479
+ type: 'blur'
480
+ });
481
+ }
482
+ },
483
+ popupClassName: 'be-popup-container'
484
+ });
485
+ case 'treeSelect':
486
+ // let valueTreeSelect
487
+
488
+ const newTreeData = (0, _hooks.convertLabelToTitle)(optionsTree);
489
+ // @ts-ignore
490
+ const valueTreeSelect = column?.editSelectSettings?.isMulti ? Array.isArray(record[column.dataIndex]) ? record[column.dataIndex] : [] : record[column.dataIndex];
491
+ return /*#__PURE__*/_react.default.createElement(_antd.TreeSelect, {
492
+ id: `col${indexCol}-record${indexRow}`,
493
+ className: 'be-tree-select',
494
+ style: {
495
+ width: '100%'
496
+ },
497
+ value: valueTreeSelect,
498
+ dropdownStyle: {
499
+ maxHeight: 400,
500
+ overflow: 'auto'
501
+ },
502
+ treeData: newTreeData,
503
+ placeholder: t ? t('Select') : 'Select',
504
+ treeDefaultExpandAll: true,
505
+ virtual: true,
506
+ allowClear: true
507
+ // maxTagTextLength={column?.editSelectSettings?.showItems}
508
+ ,
509
+ maxTagCount: column?.editSelectSettings?.showItems,
510
+ maxTagPlaceholder: 2,
511
+ treeTitleRender: column?.editSelectSettings?.formatOptionLabel,
512
+ showCheckedStrategy: SHOW_PARENT,
513
+ multiple: column?.editSelectSettings?.selectMode === 'checkbox' || column?.editSelectSettings?.isMulti,
514
+ fieldNames: {
515
+ label: inputKey ? inputKey : 'title',
516
+ value: keySelect,
517
+ children: 'children'
518
+ },
519
+ treeCheckable: column?.editSelectSettings?.selectMode === 'checkbox'
520
+ // getPopupContainer={() => tableWrapperRef.current}
521
+ ,
522
+ filterTreeNode: filterTreeNode
523
+ // onChange={(val: any) => {
524
+ // record[column.dataIndex] = val
525
+ // handleCellChange(val, val, record, col, indexRow, indexCol)
526
+ //
527
+ // }}
528
+ ,
529
+
530
+ status: isInvalid ? 'error' : undefined
531
+ });
532
+ case 'checkbox':
533
+ return /*#__PURE__*/_react.default.createElement(_antd.Input
534
+ // @ts-ignore
535
+ , {
536
+ checked: record[column.dataIndex],
537
+ id: `col${indexCol}-record${indexRow}`,
538
+ type: "checkbox",
539
+ style: {
540
+ textAlign: column.align ?? 'left'
541
+ }
542
+ // onChange={(val) => {
543
+ // record[column.dataIndex] = val.currentTarget.checked
544
+ // handleCellChange(val.currentTarget.checked, val.currentTarget.checked, record, col, indexRow, indexCol)
545
+ // }}
546
+ ,
547
+ disabled: (0, _hooks.isDisable)(column, record) ?? false
548
+ });
549
+
550
+ // case 'form':
551
+ //
552
+ // const valueForm = record[column.dataIndex]
553
+ //
554
+ // return (
555
+ // <EditForm
556
+ // column={col}
557
+ // t={t}
558
+ // id={`col${indexCol}-record${indexRow}`}
559
+ // value={valueForm}
560
+ // fieldKey={'name'}
561
+ // recordData={record}
562
+ // indexRow={indexRow}
563
+ // cellFocus={cellFocus}
564
+ // onChange={(val: any) => {
565
+ // // record[column.dataIndex] = val
566
+ // const newrecordData = {
567
+ // ...record,
568
+ // [column.dataIndex]: val
569
+ // }
570
+ // handleCellChange(val, val, newrecordData, col, indexRow, indexCol)
571
+ // }}
572
+ // menuPortalTarget={tableContainerRef}
573
+ // classNamePrefix={column.classElement ?? 'select'}
574
+ // placeholder={t ? t(column.placeholder ? column.placeholder : '') : (column.placeholder ? column.placeholder : '')}
575
+ // menuWidth={column.editFromSettings?.menuWidth}
576
+ // menuHeight={column.editFromSettings?.menuHeight}
577
+ // />
578
+ // )
579
+
580
+ // case 'file':
581
+ // const valueFile = record[column.dataIndex]
582
+ // return (
583
+ //
584
+ //
585
+ // <InputFile
586
+ // value={valueFile}
587
+ // uploading={column.uploading}
588
+ // allowedExtensions={column.allowedExtensions}
589
+ // asyncUploadSettings={column.asyncUploadSettings}
590
+ // disable={isDisable(col, record)}
591
+ // onChange={(val: string) => {
592
+ //
593
+ // const newValue = Array.isArray(val) ? val.map((it: any) => it) : val
594
+ // const newrecordData = {
595
+ // ...record,
596
+ // [column.dataIndex]: newValue
597
+ // }
598
+ // handleCellChange(val, newValue, newrecordData, col, indexRow, indexCol)
599
+ // }}
600
+ //
601
+ //
602
+ // />
603
+ //
604
+ //
605
+ // )
606
+
607
+ case 'color':
608
+ // const color = record[column.dataIndex]
609
+
610
+ return /*#__PURE__*/_react.default.createElement(_antd.Input, {
611
+ type: 'color',
612
+ id: `col${indexCol}-record${indexRow}`,
613
+ style: {
614
+ textAlign: column.align
615
+ }
616
+ // @ts-ignore
617
+ ,
618
+ value: !(0, _hooks.isNullOrUndefined)(record[column.dataIndex]) ? record[column.dataIndex] : '',
619
+ disabled: (0, _hooks.isDisable)(column, record) ?? false,
620
+ className: (0, _classnames.default)('be-cell-editing rounded-0 input-element')
621
+
622
+ // onChange={(val: any) => {
623
+ // if (record[column.dataIndex] !== val.target?.value) {
624
+ // record[column.dataIndex] = val.target?.value
625
+ // }
626
+ // }}
627
+ // onBlur={(val: any) => {
628
+ // handleCellChange(val, val.target?.value, record, col, indexRow, indexCol)
629
+ // }}
630
+ });
631
+
632
+ // case 'image':
633
+ // let image = record[column.dataIndex]
634
+ // return (
635
+ // <ImageUpload
636
+ // id={`col${indexCol}-record${indexRow}`}
637
+ // defaultImage={image}
638
+ // width={column.width}
639
+ // height={38}
640
+ // onKeyDown={(val: any, path: string) => {
641
+ // const checkKey = checkKeyDown(val, col, indexRow + 1, indexCol + 1)
642
+ // if (checkKey === 'ArrecordDown' || checkKey === 'ArrecordUp' || checkKey === 'Enter') {
643
+ // let newVal = ''
644
+ // if (newVal != record[column.dataIndex]) {
645
+ // record[column.dataIndex] = path
646
+ // // handleDataChange(path, record, col, indexRow, indexCol)
647
+ // handleCellChange(path, record, col, indexRow, indexCol)
648
+ // }
649
+ // }
650
+ // }}
651
+ // />
652
+ // )
653
+
654
+ case 'numeric':
655
+ const thousandSeparator = column.format?.thousandSeparator ? column.format?.thousandSeparator : format?.thousandSeparator;
656
+ const decimalSeparator = column.format?.decimalSeparator ? column.format?.decimalSeparator : format?.decimalSeparator;
657
+
658
+ // let floatValue = value
659
+
660
+ const numericFormatProps = {
661
+ value,
662
+ thousandSeparator: (0, _hooks.checkThousandSeparator)(thousandSeparator, decimalSeparator),
663
+ decimalSeparator: (0, _hooks.checkDecimalSeparator)(thousandSeparator, decimalSeparator),
664
+ decimalScale: !(0, _hooks.isEmpty)(column.format?.decimalScale) ? column.format?.decimalScale : undefined,
665
+ fixedDecimalScale: !(0, _hooks.isEmpty)(column.format?.fixedDecimalScale) ? column.format?.fixedDecimalScale : false,
666
+ allowNegative: column.format?.allowNegative ?? true,
667
+ prefix: column.format?.prefix ?? undefined,
668
+ suffix: column.format?.suffix ?? undefined
669
+ };
670
+ return /*#__PURE__*/_react.default.createElement(_reactNumericComponent.NumericFormat, (0, _extends2.default)({
671
+ id: `col${indexCol}-record${indexRow}`
672
+ }, numericFormatProps, {
673
+ min: column.min,
674
+ max: column.max,
675
+ customInput: _antd.Input
676
+ // valueIsNumericString={true}
677
+ ,
678
+ autoComplete: 'off',
679
+ className: (0, _classnames.default)('be-cell-editing rounded-0 input-element', {
680
+ 'is-invalid': isInvalid,
681
+ 'be-cell-edit-align-center': column.align === 'center',
682
+ 'be-cell-edit-align-left': column.align === 'left',
683
+ 'be-cell-edit-align-right': !column.align || column.align === 'right'
684
+ })
685
+
686
+ // onFocus={(e) => {
687
+ // e.target.setSelectionRange(0, e.target.innerText.length - 1)
688
+ // }}
689
+ ,
690
+
691
+ onValueChange: values => {
692
+ onChange(values?.floatValue);
693
+ },
694
+ onBlur: () => {
695
+ const formState = getValues();
696
+ const itemState = getValues(dataIndex);
697
+
698
+ // @ts-ignore
699
+ const prevState = record[dataIndex];
700
+ const newState = value;
701
+
702
+ // @ts-ignore
703
+ if (itemState !== record[dataIndex]) {
704
+ // @ts-ignore
705
+ handleCellChange?.({
706
+ key: record[rowKey],
707
+ record: formState,
708
+ prevState,
709
+ newState,
710
+ type: 'blur'
711
+ });
712
+ }
713
+ }
714
+
715
+ // onBlur={() => {
716
+ // const tempValue = tempResource[indexRow][column.dataIndex]
717
+ //
718
+ // if (indexFocus !== -1 && tempValue !== valueNumeric) {
719
+ // if (column.min || column.min === 0 || column.max || column.max === 0) {
720
+ // handleCellChange(valueNumeric, valueNumeric, record, col, indexRow, indexCol)
721
+ // } else {
722
+ // handleCellChange(valueNumeric, valueNumeric, record, col, indexRow, indexCol)
723
+ // }
724
+ // }
725
+ //
726
+ // }}
727
+
728
+ // onPaste={(e: any) => handleOnCellPaste(e, indexRow, indexCol)}
729
+
730
+ // onKeyDown={(e: any) => {
731
+ // onInputKeydown(e, floatValue, floatValue, record, col, indexRow, indexCol)
732
+ //
733
+ // }}
734
+ }));
735
+ default:
736
+ return /*#__PURE__*/_react.default.createElement(_antd.Input, {
737
+ id: `col${indexCol}-record${indexRow}`,
738
+ style: {
739
+ textAlign: column.align
740
+ }
741
+ // @ts-ignore
742
+ // value={!isNullOrUndefined(record[column.dataIndex]) ? record[column.dataIndex] : ''}
743
+ ,
744
+ disabled: (0, _hooks.isDisable)(column, record) ?? false,
745
+ className: (0, _classnames.default)('be-cell-editing rounded-0 input-element'),
746
+ value: !(0, _hooks.isNullOrUndefined)(value) ? value : '',
747
+ onBlur: () => {
748
+ const formState = getValues();
749
+ const itemState = getValues(dataIndex);
750
+ // // @ts-ignore
751
+ // const prevState = record[dataIndex]
752
+ // const newState = value
753
+ //
754
+ // console.log('newState', newState)
755
+ // console.log('prevState', prevState)
756
+
757
+ // @ts-ignore
758
+ if (itemState !== record[dataIndex]) {
759
+ // @ts-ignore
760
+ handleCellChange?.({
761
+ key: record[rowKey],
762
+ record: formState,
763
+ type: 'blur'
764
+ });
765
+ }
766
+ }
767
+
768
+ // onKeyDown={(e: any) => {
769
+ // console.log('onKeyDown edit', e.key)
770
+ // }}
771
+ ,
772
+
773
+ onPressEnter: () => {
774
+ const formState = getValues();
775
+ const newState = getValues(dataIndex);
776
+ // @ts-ignore
777
+ const prevState = record[dataIndex];
778
+ // @ts-ignore
779
+ // if (itemState !== record[dataIndex]) {
780
+ // @ts-ignore
781
+ handleCellChange?.({
782
+ key: record[rowKey],
783
+ newState,
784
+ prevState,
785
+ record: formState,
786
+ type: 'enter'
787
+ });
788
+ // }
789
+ },
790
+ onChange: onChange
791
+ // onFocus={(e) => {
792
+ // e.target.setSelectionRange(0, e.target.innerText.length - 1)
793
+ // }}
794
+ // invalid={isInvalid}
795
+
796
+ // onChange={(val: any) => {
797
+ //
798
+ // handleCellUpdate('text', val.target?.value, record, col, indexRow, indexCol)
799
+ //
800
+ // }}
801
+ // onPaste={(e: any) => handleOnCellPaste(e, indexRow, indexCol)}
802
+ // onBlur={(val: any) => {
803
+ // const tempValue = tempResource[indexRow][column.dataIndex]
804
+ //
805
+ // if (indexFocus !== -1 && tempValue !== record[column.dataIndex]) {
806
+ //
807
+ // handleCellChange(val.target?.value, val.target?.value, record, col, indexRow, indexCol)
808
+ //
809
+ // }
810
+ // }}
811
+ // onKeyDown={(e: any) => {
812
+ // onInputKeydown(e, e.target?.value, e.target?.value, record, col, indexRow, indexCol)
813
+ // }}
814
+ });
815
+ }
816
+ };
817
+ return /*#__PURE__*/_react.default.createElement("div", restProps, editing ?
818
+ /*#__PURE__*/
819
+ // <Form.Item
820
+ // name={dataIndex}
821
+ //
822
+ // style={{ margin: 0 }}
823
+ // // rules={[
824
+ // // {
825
+ // // required: true,
826
+ // // message: ``,
827
+ // //
828
+ // // },
829
+ // // ]}
830
+ // >
831
+ // {inputNode()}
832
+ // </Form.Item>
833
+ _react.default.createElement(_reactHookForm.Controller, {
834
+ name: dataIndex,
835
+ control: control,
836
+ render: ({
837
+ field: {
838
+ value,
839
+ onChange
840
+ }
841
+ }) => inputNode(value, onChange)
842
+ }) : children);
843
+ };
844
+ var _default = exports.default = EditableCell;