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,435 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.flatColumns = flatColumns;
8
+ exports.renderFilter = exports.renderContent = exports.getValueCell = void 0;
9
+ var _utils = require("../utils");
10
+ var _reactNumericComponent = require("react-numeric-component");
11
+ var _dayjs = _interopRequireDefault(require("dayjs"));
12
+ var _moment = _interopRequireDefault(require("moment/moment"));
13
+ var _react = _interopRequireWildcard(require("react"));
14
+ var _rcMasterUi = require("rc-master-ui");
15
+ var _CheckboxFilter = _interopRequireDefault(require("../../CheckboxFilter"));
16
+ 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); }
17
+ 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; }
18
+ // import * as React from 'react'
19
+
20
+ const {
21
+ RangePicker
22
+ } = _rcMasterUi.DatePicker;
23
+ function flatColumns(columns, parentKey = 'key') {
24
+ // @ts-ignore
25
+ return columns.filter(column => column && typeof column === 'object').reduce((list, column, index) => {
26
+ const {
27
+ fixed
28
+ } = column;
29
+ // Convert `fixed='true'` to `fixed='left'` instead
30
+ const parsedFixed = fixed === true ? 'left' : fixed;
31
+ const mergedKey = `${parentKey}-${index}`;
32
+ const subColumns = column.children;
33
+ if (subColumns && subColumns.length > 0) {
34
+ return [...list, ...flatColumns(subColumns, mergedKey).map(subColum => ({
35
+ fixed: parsedFixed,
36
+ ...subColum
37
+ }))];
38
+ }
39
+ return [...list, {
40
+ key: mergedKey,
41
+ ...column,
42
+ fixed: parsedFixed
43
+ }];
44
+ }, []);
45
+ }
46
+ const getValueCell = (column, value, format) => {
47
+ switch (column?.type) {
48
+ case 'number':
49
+ const thousandSeparator = column?.format?.thousandSeparator ? column?.format?.thousandSeparator : format?.thousandSeparator;
50
+ const decimalSeparator = column?.format?.decimalSeparator ? column?.format?.decimalSeparator : format?.decimalSeparator;
51
+ const dec = column?.format?.decimalScale || column?.format?.decimalScale === 0 ? column?.format?.decimalScale : format?.decimalScale;
52
+ const content = !(0, _utils.isEmpty)(value) ? dec || dec === 0 ? parseFloat(Number(value).toFixed(dec)).toString() : value.toString() : '0';
53
+ const numericFormatProps = {
54
+ thousandSeparator: (0, _utils.checkThousandSeparator)(thousandSeparator, decimalSeparator),
55
+ decimalSeparator: (0, _utils.checkDecimalSeparator)(thousandSeparator, decimalSeparator),
56
+ allowNegative: (column?.format?.allowNegative ? column?.format?.allowNegative : format?.allowNegative) ?? true,
57
+ prefix: column?.format?.prefix ? column?.format?.prefix : format?.prefix,
58
+ suffix: column?.format?.suffix ? column?.format?.suffix : format?.suffix,
59
+ decimalScale: column?.format?.decimalScale || column?.format?.decimalScale === 0 ? column?.format?.decimalScale : format?.decimalScale,
60
+ fixedDecimalScale: (column?.format?.fixedDecimalScale ? column?.format?.fixedDecimalScale : format?.fixedDecimalScale) ?? false
61
+ };
62
+ return !(0, _utils.isEmpty)(content) ? (0, _reactNumericComponent.numericFormatter)(content, numericFormatProps) : '';
63
+ case 'date':
64
+ return value ? (0, _dayjs.default)(value).format(column?.format?.dateFormat ?? format?.dateFormat ?? 'DD/MM/YYYY') : '';
65
+ case 'time':
66
+ return value ? value : '';
67
+ case 'year':
68
+ const year = value ? (0, _moment.default)(value).format('yyyy') : '';
69
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, year);
70
+ case 'datetime':
71
+ return value ? (0, _moment.default)(value).format(column?.format?.datetimeFormat ?? format?.datetimeFormat ?? 'DD/MM/YYYY HH:mm') : '';
72
+ case 'boolean':
73
+ return value ? 'true' : 'false';
74
+ case 'color':
75
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, (0, _utils.isColor)(value) ? /*#__PURE__*/_react.default.createElement("div", {
76
+ className: 'w-100 h-100',
77
+ style: {
78
+ backgroundColor: value,
79
+ border: '1px solid #f0f0f0'
80
+ }
81
+ }) : '');
82
+ case 'checkbox':
83
+ return /*#__PURE__*/_react.default.createElement(_rcMasterUi.Input, {
84
+ checked: !!content,
85
+ readOnly: true,
86
+ type: "checkbox"
87
+ });
88
+ case 'file':
89
+ const nameFile = typeof value === 'object' && !Array.isArray(value) ? value.name : Array.isArray(value) ? value.map(it => typeof it === 'object' ? it.name : it).filter(Boolean).join(", ") : '';
90
+ return value ? nameFile : '';
91
+ default:
92
+ if (Array.isArray(value)) {
93
+ return value.join(', ');
94
+ }
95
+ return value;
96
+ }
97
+ };
98
+ exports.getValueCell = getValueCell;
99
+ const renderContent = (column, value, record, index, format) => {
100
+ const cellValue = value instanceof Date ? (0, _utils.getDateString)(column, value) : value;
101
+ const content = getValueCell(column, cellValue, format);
102
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, column?.template ? typeof column.template === "function" ? column.template(value, record, index) : column.template : content);
103
+ };
104
+ exports.renderContent = renderContent;
105
+ const renderFilter = (column, selectedKeys, setSelectedKeys, confirm, visible, searchValue, setSearchValue, dataSourceFilter, buddhistLocale) => {
106
+ const type = (0, _utils.getTypeFilter)(column);
107
+ const dateFormat = (0, _utils.getDatepickerFormat)(column?.typeFilter ?? column?.type, column) ?? 'DD/MM/YYYY';
108
+ const dateRangeFormat = (0, _utils.getDatepickerFormat)(column?.type, column) ?? 'DD/MM/YYYY';
109
+ const find = dataSourceFilter?.find(it => it.key === column?.key);
110
+ const options = find ? find.data : [];
111
+ switch (type) {
112
+ case 'Number':
113
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
114
+ className: 'mb-1'
115
+ }, /*#__PURE__*/_react.default.createElement(_reactNumericComponent.NumericFormat, {
116
+ value: selectedKeys[0]
117
+ // thousandSeparator={checkThousandSeparator(thousandSeparator, decimalSeparator)}
118
+ // decimalSeparator={checkDecimalSeparator(thousandSeparator, decimalSeparator)}
119
+ // allowNegative={col.format && col.format.allowNegative === true}
120
+ ,
121
+ allowNegative: true,
122
+ customInput: _rcMasterUi.Input,
123
+ className: ' rounded-0 input-element form-control',
124
+ onValueChange: values => {
125
+ // onChangeValueFilter(type, values.floatValue)
126
+ setSelectedKeys(values.floatValue || values.floatValue === 0 ? [values.floatValue] : []);
127
+ }
128
+ }))));
129
+ case 'NumberRange':
130
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
131
+ className: 'mb-1 d-flex flex-column gap-1'
132
+ }, /*#__PURE__*/_react.default.createElement("div", {
133
+ style: {
134
+ marginBottom: 8
135
+ }
136
+ }, /*#__PURE__*/_react.default.createElement(_reactNumericComponent.NumericFormat, {
137
+ value: selectedKeys[0]
138
+ // thousandSeparator={checkThousandSeparator(thousandSeparator, decimalSeparator)}
139
+ // decimalSeparator={checkDecimalSeparator(thousandSeparator, decimalSeparator)}
140
+ ,
141
+ allowNegative: true,
142
+ customInput: _rcMasterUi.Input,
143
+ className: ' rounded-0 input-element form-control'
144
+ // onValueChange={(values: any) => {
145
+ // onChangeValueFilter(type, values.floatValue, 'min')
146
+ // }}
147
+ ,
148
+ placeholder: 'Min',
149
+ autoFocus: true
150
+ })), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactNumericComponent.NumericFormat, {
151
+ value: selectedKeys[1]
152
+ // thousandSeparator={checkThousandSeparator(thousandSeparator, decimalSeparator)}
153
+ // decimalSeparator={checkDecimalSeparator(thousandSeparator, decimalSeparator)}
154
+ ,
155
+ allowNegative: true,
156
+ customInput: _rcMasterUi.Input,
157
+ className: ' rounded-0 input-element form-control',
158
+ onValueChange: () => {
159
+ // onChangeValueFilter(type, values.floatValue, 'max')
160
+ },
161
+ placeholder: 'Max'
162
+ })))));
163
+ case 'Date':
164
+ const dateValue = selectedKeys[0] ? (0, _utils.convertDateToDayjs)(new Date(selectedKeys[0]), dateFormat) : null;
165
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
166
+ className: 'mb-1'
167
+ }, /*#__PURE__*/_react.default.createElement(_rcMasterUi.DatePicker, {
168
+ format: {
169
+ format: dateFormat,
170
+ type: 'mask'
171
+ },
172
+ locale: buddhistLocale,
173
+ style: {
174
+ width: '100%',
175
+ height: '100%'
176
+ },
177
+ value: dateValue,
178
+ defaultValue: dateValue,
179
+ placeholder: column?.placeholder,
180
+ onChange: (date, dateString) => {
181
+ const newDateValue = dateString ? (0, _moment.default)((0, _utils.convertDayjsToDate)(dateString, dateFormat)).format() : null;
182
+ setSelectedKeys(newDateValue ? [newDateValue] : []);
183
+ }
184
+ }))));
185
+ case 'DateRange':
186
+ const dateRangeValue = [selectedKeys[0] ? (0, _utils.convertDateToDayjs)(new Date(selectedKeys[0]), dateRangeFormat) : '', selectedKeys[1] ? (0, _utils.convertDateToDayjs)(new Date(selectedKeys[1]), dateRangeFormat) : ''];
187
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
188
+ className: 'mb-1'
189
+ }, /*#__PURE__*/_react.default.createElement(RangePicker, {
190
+ format: {
191
+ format: dateRangeFormat,
192
+ type: 'mask'
193
+ }
194
+ // defaultValue={dateRangeValue}
195
+ ,
196
+ value: dateRangeValue,
197
+ placeholder: ['Ngày bắt đầu', 'Ngày kết thúc'],
198
+ popupStyle: {
199
+ zIndex: 9999
200
+ },
201
+ onChange: (value, dateString) => {
202
+ const newDateRangeValue = dateString[0] ? [dateString[0] ? (0, _moment.default)((0, _utils.convertDayjsToDate)(dateString[0], dateRangeFormat)).format() : '', dateString[1] ? (0, _moment.default)((0, _utils.convertDayjsToDate)(dateString[1], dateRangeFormat)).format() : ''] : '';
203
+
204
+ // setSelectedKeys(newDateValue ? [newDateValue] : [])
205
+ setSelectedKeys(newDateRangeValue);
206
+ },
207
+ style: {
208
+ width: '100%'
209
+ }
210
+ // popupClassName={'adv-popup-container'}
211
+ // getPopupContainer={() => menuRef.current}
212
+ }))));
213
+ case 'Week':
214
+ const weekValue = !(0, _utils.isEmpty)(selectedKeys[0]) ? (0, _dayjs.default)(selectedKeys[0], dateFormat) : null;
215
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
216
+ className: 'mb-1'
217
+ }, /*#__PURE__*/_react.default.createElement(_rcMasterUi.DatePicker, {
218
+ format: {
219
+ format: dateFormat,
220
+ type: 'mask'
221
+ },
222
+ picker: 'week',
223
+ locale: buddhistLocale,
224
+ style: {
225
+ width: '100%',
226
+ height: '100%'
227
+ },
228
+ value: weekValue,
229
+ defaultValue: weekValue,
230
+ placeholder: column?.placeholder,
231
+ onChange: (date, dateString) => {
232
+ const newDateValue = dateString ?? null;
233
+ setSelectedKeys(newDateValue ? [newDateValue] : []);
234
+ }
235
+ }))));
236
+ case 'Month':
237
+ const monthValue = !(0, _utils.isEmpty)(selectedKeys[0]) ? (0, _dayjs.default)(selectedKeys[0], dateFormat) : null;
238
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
239
+ className: 'mb-1'
240
+ }, /*#__PURE__*/_react.default.createElement(_rcMasterUi.DatePicker, {
241
+ format: {
242
+ format: dateFormat,
243
+ type: 'mask'
244
+ },
245
+ picker: 'month',
246
+ locale: buddhistLocale,
247
+ style: {
248
+ width: '100%',
249
+ height: '100%'
250
+ },
251
+ value: monthValue,
252
+ defaultValue: monthValue,
253
+ placeholder: column?.placeholder,
254
+ onChange: (date, dateString) => {
255
+ const newDateValue = dateString ?? null;
256
+ setSelectedKeys(newDateValue ? [newDateValue] : []);
257
+ }
258
+ })));
259
+
260
+ // case 'Quarter':
261
+ //
262
+ // // const monthValue = selectedKeys[0] ? convertDateToDayjs(new Date(selectedKeys[0]), dateFormat) : null
263
+ //
264
+ // const pickerFormat = getDatepickerFormat(getEditType(col) as IEditType, col)
265
+ // const pickerValue = !isEmpty(selectedKeys[0]) ? dayjs(selectedKeys[0], pickerFormat) : null
266
+ //
267
+ // return (
268
+ // <Fragment>
269
+ // <div>
270
+ //
271
+ //
272
+ // <div className={'mb-1'}>
273
+ //
274
+ // <DatePicker
275
+ // format={{
276
+ // format: dateFormat,
277
+ // type: 'mask'
278
+ // }}
279
+ // locale={buddhistLocale}
280
+ // style={{width: '100%', height: '100%'}}
281
+ // value={pickerValue}
282
+ // defaultValue={pickerValue}
283
+ // placeholder={column.placeholder}
284
+ // onChange={(date, dateString) => {
285
+ // const newDateValue = dateString ? moment(convertDayjsToDate(dateString as string, dateFormat)).format() : null
286
+ // setSelectedKeys(newDateValue ? [newDateValue] : [])
287
+ //
288
+ // }}
289
+ //
290
+ // />
291
+ // </div>
292
+ //
293
+ //
294
+ // </div>
295
+ // </Fragment>
296
+ // )
297
+ //
298
+ // case 'Year':
299
+ //
300
+ // // const monthValue = selectedKeys[0] ? convertDateToDayjs(new Date(selectedKeys[0]), dateFormat) : null
301
+ //
302
+ // const pickerFormat = getDatepickerFormat(getEditType(col) as IEditType, col)
303
+ // const pickerValue = !isEmpty(selectedKeys[0]) ? dayjs(selectedKeys[0], pickerFormat) : null
304
+ //
305
+ // return (
306
+ // <Fragment>
307
+ // <div>
308
+ //
309
+ //
310
+ // <div className={'mb-1'}>
311
+ //
312
+ // <DatePicker
313
+ // format={{
314
+ // format: dateFormat,
315
+ // type: 'mask'
316
+ // }}
317
+ // locale={buddhistLocale}
318
+ // style={{width: '100%', height: '100%'}}
319
+ // value={pickerValue}
320
+ // defaultValue={pickerValue}
321
+ // placeholder={column.placeholder}
322
+ // onChange={(date, dateString) => {
323
+ // const newDateValue = dateString ? moment(convertDayjsToDate(dateString as string, dateFormat)).format() : null
324
+ // setSelectedKeys(newDateValue ? [newDateValue] : [])
325
+ //
326
+ // }}
327
+ //
328
+ // />
329
+ // </div>
330
+ //
331
+ //
332
+ // </div>
333
+ // </Fragment>
334
+ // )
335
+
336
+ case 'Dropdown':
337
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
338
+ className: 'mb-1'
339
+ }, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Select
340
+ // options={translateOption(numberOperator, t)}
341
+ , {
342
+ options: options,
343
+ style: {
344
+ width: '100%',
345
+ marginBottom: 8
346
+ },
347
+ value: selectedKeys[0],
348
+ onChange: val => {
349
+ // setOperatorKey(val)
350
+ setSelectedKeys(val ? [val] : []);
351
+ },
352
+ showSearch: true,
353
+ allowClear: true
354
+ }))));
355
+
356
+ // case 'DropTree':
357
+ // return (
358
+ // <Fragment>
359
+ // <div>
360
+ // {col.filterOption && col.filterOption.showOperator === false ? (
361
+ // ''
362
+ // ) : (
363
+ // <div className={'mb-1'}>
364
+ // <Select
365
+ // options={translateOption(numberOperator, t)}
366
+ // // options={t ? numberOperator.map((it: any) => ({...it, label: t(it.label)})) : numberOperator}
367
+ //
368
+ // classNamePrefix='select'
369
+ // className={`react-select`}
370
+ // value={translateOption(numberOperator, t).find(
371
+ // ope => ope.value === (operator ? operator : getDefaultOperator(col))
372
+ // )}
373
+ // onChange={(val: any) => {
374
+ // setCurrentFilter((prevState: any) => ({ ...prevState, operator: val.value }))
375
+ // }}
376
+ // />
377
+ // </div>
378
+ // )}
379
+ //
380
+ // <div className={'mb-1'}>
381
+ // <Input
382
+ // placeholder={'Nhập giá trị'}
383
+ // value={value}
384
+ // onChange={(val: any) => {
385
+ // onChangeValueFilter(type, val.value)
386
+ // }}
387
+ // />
388
+ // </div>
389
+ //
390
+ // <div className={'d-flex justify-content-end'}>
391
+ // <Button color='flat-primary' className={'me-1 be-button'} onClick={(e: any) => handleOnFilter(e)}>
392
+ // {t ? t('Filter') : 'Filter'}
393
+ // </Button>
394
+ // <Button color='flat-secondary' className={'be-button'} onClick={(e: any) => handleClearFilter(e)}>
395
+ // {t ? t('Delete') : 'Delete'}
396
+ // </Button>
397
+ // </div>
398
+ // </div>
399
+ // </Fragment>
400
+ // )
401
+ //
402
+ case 'Checkbox':
403
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
404
+ className: 'mb-1'
405
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_CheckboxFilter.default
406
+ // column={column}
407
+ , {
408
+ locale: {
409
+ filterTitle: 'Chọn tất cả',
410
+ filterCheckall: 'Chọn tất cả'
411
+ },
412
+ selectedKeys: selectedKeys,
413
+ onSelect: setSelectedKeys,
414
+ options: options,
415
+ filterMultiple: true,
416
+ open: visible,
417
+ searchValue: searchValue,
418
+ setSearchValue: setSearchValue
419
+ })))));
420
+ case 'Text':
421
+ default:
422
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
423
+ className: 'mb-1'
424
+ }, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Input, {
425
+ placeholder: `Search ${column?.dataIndex}`,
426
+ value: selectedKeys[0],
427
+ onChange: e => setSelectedKeys(e.target.value ? [e.target.value] : [])
428
+ // onPressEnter={() => handleSearch(selectedKeys as string[], confirm)}
429
+ ,
430
+ onPressEnter: () => confirm(),
431
+ allowClear: true
432
+ }))));
433
+ }
434
+ };
435
+ exports.renderFilter = renderFilter;
@@ -0,0 +1,35 @@
1
+ import type * as React from "react";
2
+ import dayjs from "dayjs";
3
+ import type { EditType, IColumnType, TypeFilter } from "rc-master-ui";
4
+ import type { ColumnEditType, ColumnsType, ColumnTable } from "../type";
5
+ import type { SelectionSettings } from "../type";
6
+ import type { AnyObject } from "../type";
7
+ export declare const newGuid: () => any;
8
+ export declare const sumDataByField: (data: any[], field: string) => any;
9
+ export declare const checkThousandSeparator: (thousandSeparator: string | undefined, decimalSeparator: string | undefined) => string;
10
+ export declare const checkDecimalSeparator: (thousandSeparator: string | undefined, decimalSeparator: string | undefined) => string;
11
+ export declare const isEmpty: (d: any) => boolean;
12
+ export declare const isNullOrUndefined: (d: any) => boolean;
13
+ export declare const convertDayjsToDate: (dateString: string, format?: string) => Date;
14
+ export declare const convertDateToDayjs: (date: Date | undefined, format?: string) => dayjs.Dayjs;
15
+ export declare const isNameColor: (strColor: string) => boolean;
16
+ export declare const isColor: (value: string) => boolean;
17
+ export declare const getAllVisibleKeys: (columns: any[]) => any[];
18
+ export declare const getVisibleColumnKeys: (columns: any[]) => string[];
19
+ export declare function getHiddenParentKeys(columns: any[], parentKeys?: string[]): string[];
20
+ export declare const updateColumns: (columns: any[], includes: string[]) => any[];
21
+ export declare const getDatepickerFormat: (type: EditType | TypeFilter | IColumnType, col: ColumnTable<any>) => string;
22
+ export declare const customWeekStartEndFormat: (value: any, weekFormat: string) => string;
23
+ export declare const getTypeFilter: (col: ColumnTable<any>) => TypeFilter;
24
+ export declare const updateArrayByKey: (arr: any[], element: any, key: string) => any[];
25
+ export declare const getDateString: <T>(column: ColumnTable<T>, value: any) => string;
26
+ export declare const getEditType: <T>(column: ColumnEditType<T>, rowData?: any) => EditType | ((rowData?: any) => EditType);
27
+ export declare const isDisable: <T>(column: ColumnEditType<T>, rowData?: any) => boolean;
28
+ export declare const checkFieldKey: (key: string | undefined) => string;
29
+ export declare const convertLabelToTitle: (data: any[]) => any[];
30
+ export declare const convertArrayWithIndent: (inputArray: any[], parentIndent?: number) => any[];
31
+ export declare const getTemplate: (template: any) => React.ReactNode | React.ReactElement;
32
+ export declare const totalFixedWidth: <T>(columns: ColumnsType<T>, type: 'left' | 'right', selectionSettings?: SelectionSettings) => number;
33
+ export declare const isObjEmpty: (obj: any) => boolean;
34
+ export declare const getColumnsVisible: <T>(columns: ColumnsType<T>, index: number) => import("../type").ColumnType<T>[];
35
+ export declare const updateData: <Record_1 = AnyObject>(initData: Record_1[], rows: Record_1[], key: keyof Record_1) => Record_1[];