es-grid-template 0.0.8 → 0.1.0

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/CHANGELOG.md +6 -6
  2. package/LICENSE +21 -19
  3. package/README.md +1 -1
  4. package/es/{CheckboxFilter.js → grid-component/CheckboxFilter.js} +0 -1
  5. package/es/{ColumnsChoose.js → grid-component/ColumnsChoose.js} +1 -1
  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} +1 -1
  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.js +284 -0
  12. package/es/{LoadingSpinner.js → grid-component/LoadingSpinner.js} +1 -1
  13. package/es/grid-component/Message/Message.d.ts +2 -0
  14. package/es/grid-component/Message/Message.js +16 -0
  15. package/es/grid-component/Message/index.d.ts +1 -0
  16. package/es/grid-component/Message/index.js +1 -0
  17. package/{lib → es/grid-component}/TableGrid.d.ts +2 -2
  18. package/es/grid-component/TableGrid.js +375 -0
  19. package/es/grid-component/async-table-select/index.d.ts +9 -0
  20. package/es/grid-component/async-table-select/index.js +37 -0
  21. package/{lib → es/grid-component}/hooks/constant.d.ts +14 -0
  22. package/es/{hooks → grid-component/hooks}/constant.js +16 -1
  23. package/es/grid-component/hooks/useColumns/index.d.ts +6 -0
  24. package/es/grid-component/hooks/useColumns/index.js +422 -0
  25. package/es/grid-component/hooks/utils.d.ts +35 -0
  26. package/es/{hooks → grid-component/hooks}/utils.js +124 -16
  27. package/es/grid-component/index.d.ts +2 -0
  28. package/es/grid-component/index.js +2 -0
  29. package/es/grid-component/styles.scss +551 -0
  30. package/es/grid-component/table/Grid.d.ts +8 -0
  31. package/es/grid-component/table/Grid.js +99 -0
  32. package/es/grid-component/table/GridEdit.d.ts +9 -0
  33. package/es/grid-component/table/GridEdit.js +706 -0
  34. package/es/grid-component/type.d.ts +225 -0
  35. package/es/grid-component/useContext.d.ts +27 -0
  36. package/es/grid-component/useContext.js +4 -0
  37. package/es/index.d.ts +1 -2
  38. package/es/index.js +1 -2
  39. package/lib/{CheckboxFilter.js → grid-component/CheckboxFilter.js} +0 -1
  40. package/lib/{ColumnsChoose.js → grid-component/ColumnsChoose.js} +1 -1
  41. package/lib/grid-component/EditableCell.d.ts +19 -0
  42. package/lib/grid-component/EditableCell.js +844 -0
  43. package/lib/{FilterSearch.js → grid-component/FilterSearch.js} +1 -1
  44. package/lib/grid-component/GridStyle.d.ts +4 -0
  45. package/lib/grid-component/GridStyle.js +12 -0
  46. package/lib/grid-component/InternalTable.js +293 -0
  47. package/lib/{LoadingSpinner.js → grid-component/LoadingSpinner.js} +1 -1
  48. package/lib/grid-component/Message/Message.d.ts +2 -0
  49. package/lib/grid-component/Message/Message.js +25 -0
  50. package/lib/grid-component/Message/index.d.ts +1 -0
  51. package/lib/grid-component/Message/index.js +16 -0
  52. package/{es → lib/grid-component}/TableGrid.d.ts +2 -2
  53. package/lib/grid-component/TableGrid.js +382 -0
  54. package/lib/grid-component/async-table-select/index.d.ts +9 -0
  55. package/lib/grid-component/async-table-select/index.js +46 -0
  56. package/{es → lib/grid-component}/hooks/constant.d.ts +14 -0
  57. package/lib/{hooks → grid-component/hooks}/constant.js +17 -2
  58. package/lib/grid-component/hooks/useColumns/index.d.ts +6 -0
  59. package/lib/grid-component/hooks/useColumns/index.js +435 -0
  60. package/lib/grid-component/hooks/utils.d.ts +35 -0
  61. package/lib/{hooks → grid-component/hooks}/utils.js +140 -19
  62. package/lib/grid-component/index.d.ts +2 -0
  63. package/lib/grid-component/index.js +9 -0
  64. package/lib/grid-component/styles.scss +551 -0
  65. package/lib/grid-component/table/Grid.d.ts +8 -0
  66. package/lib/grid-component/table/Grid.js +108 -0
  67. package/lib/grid-component/table/GridEdit.d.ts +9 -0
  68. package/lib/grid-component/table/GridEdit.js +715 -0
  69. package/lib/grid-component/type.d.ts +225 -0
  70. package/lib/grid-component/useContext.d.ts +27 -0
  71. package/lib/grid-component/useContext.js +10 -0
  72. package/lib/index.d.ts +1 -2
  73. package/lib/index.js +7 -3
  74. package/package.json +112 -77
  75. package/es/InternalTable.js +0 -185
  76. package/es/TableGrid.js +0 -1055
  77. package/es/hooks/useColumns/index.d.ts +0 -2
  78. package/es/hooks/useColumns/index.js +0 -25
  79. package/es/hooks/utils.d.ts +0 -19
  80. package/es/styles.scss +0 -296
  81. package/es/type.d.ts +0 -100
  82. package/lib/InternalTable.js +0 -194
  83. package/lib/TableGrid.js +0 -1063
  84. package/lib/hooks/useColumns/index.d.ts +0 -2
  85. package/lib/hooks/useColumns/index.js +0 -31
  86. package/lib/hooks/utils.d.ts +0 -19
  87. package/lib/styles.scss +0 -296
  88. package/lib/type.d.ts +0 -100
  89. package/es/{CheckboxFilter.d.ts → grid-component/CheckboxFilter.d.ts} +0 -0
  90. package/es/{ColumnsChoose.d.ts → grid-component/ColumnsChoose.d.ts} +0 -0
  91. package/es/{ContextMenu.d.ts → grid-component/ContextMenu.d.ts} +0 -0
  92. package/es/{ContextMenu.js → grid-component/ContextMenu.js} +0 -0
  93. package/es/{FilterSearch.d.ts → grid-component/FilterSearch.d.ts} +0 -0
  94. package/es/{InternalTable.d.ts → grid-component/InternalTable.d.ts} +1 -1
  95. package/es/{LoadingSpinner.d.ts → grid-component/LoadingSpinner.d.ts} +0 -0
  96. package/es/{hooks → grid-component/hooks}/index.d.ts +0 -0
  97. package/es/{hooks → grid-component/hooks}/index.js +0 -0
  98. package/es/{hooks → grid-component/hooks}/useIsOverflow.d.ts +0 -0
  99. package/es/{hooks → grid-component/hooks}/useIsOverflow.js +0 -0
  100. package/es/{hooks → grid-component/hooks}/useOnClickOutside.d.ts +0 -0
  101. package/es/{hooks → grid-component/hooks}/useOnClickOutside.js +0 -0
  102. package/es/{type.js → grid-component/type.js} +0 -0
  103. package/lib/{CheckboxFilter.d.ts → grid-component/CheckboxFilter.d.ts} +0 -0
  104. package/lib/{ColumnsChoose.d.ts → grid-component/ColumnsChoose.d.ts} +0 -0
  105. package/lib/{ContextMenu.d.ts → grid-component/ContextMenu.d.ts} +0 -0
  106. package/lib/{ContextMenu.js → grid-component/ContextMenu.js} +0 -0
  107. package/lib/{FilterSearch.d.ts → grid-component/FilterSearch.d.ts} +0 -0
  108. package/lib/{InternalTable.d.ts → grid-component/InternalTable.d.ts} +1 -1
  109. /package/lib/{LoadingSpinner.d.ts → grid-component/LoadingSpinner.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,382 @@
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 _antdStyle = require("antd-style");
11
+ var _reactNumericComponent = require("react-numeric-component");
12
+ var _rcMasterUi = require("rc-master-ui");
13
+ require("dayjs/locale/es");
14
+ require("dayjs/locale/vi");
15
+ var _ContextMenu = _interopRequireDefault(require("./ContextMenu"));
16
+ var _classnames = _interopRequireDefault(require("classnames"));
17
+ var _hooks = require("./hooks");
18
+ var _antd = require("antd");
19
+ var _useColumns = require("./hooks/useColumns");
20
+ var _pagination = _interopRequireDefault(require("rc-master-ui/es/pagination"));
21
+ var _LoadingSpinner = _interopRequireDefault(require("./LoadingSpinner"));
22
+ var _ColumnsChoose = require("./ColumnsChoose");
23
+ 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); }
24
+ 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; }
25
+ const convertFilters = filters => {
26
+ const result = [];
27
+ filters.forEach(({
28
+ key,
29
+ column,
30
+ filteredKeys,
31
+ operator
32
+ }) => {
33
+ if (!filteredKeys || filteredKeys.length === 0) return;
34
+ if (column?.typeFilter === "DateRange" && filteredKeys.length === 2) {
35
+ result.push({
36
+ key,
37
+ field: column?.dataIndex,
38
+ value: filteredKeys[0],
39
+ predicate: "and",
40
+ operator: "greaterthanorequal"
41
+ }, {
42
+ key,
43
+ field: column?.dataIndex,
44
+ value: filteredKeys[1],
45
+ predicate: "and",
46
+ operator: "lessthanorequal"
47
+ });
48
+ } else if (column?.typeFilter === 'Checkbox') {
49
+ filteredKeys.forEach(value => {
50
+ result.push({
51
+ key,
52
+ field: column?.dataIndex,
53
+ value,
54
+ predicate: "or",
55
+ operator
56
+ });
57
+ });
58
+ } else {
59
+ result.push({
60
+ key,
61
+ field: column?.dataIndex,
62
+ value: filteredKeys[0],
63
+ predicate: 'and',
64
+ operator
65
+ });
66
+ }
67
+ });
68
+ return result;
69
+ };
70
+ const useStyle = (0, _antdStyle.createStyles)(({
71
+ css
72
+ }) => {
73
+ // const { antCls } = token
74
+ const antCls = 'ui-rc';
75
+ return {
76
+ customTable: css`
77
+ ${antCls}-table {
78
+ ${antCls}-table-container {
79
+ ${antCls}-table-body,
80
+ ${antCls}-table-content {
81
+ scrollbar-width: thin;
82
+ scrollbar-color: #eaeaea transparent;
83
+ scrollbar-gutter: stable;
84
+ }
85
+ }
86
+ }
87
+ `
88
+ };
89
+ });
90
+ // type OnChange = NonNullable<TableProps<any>['onChange']>;
91
+
92
+ const TableGrid = props => {
93
+ const {
94
+ columns,
95
+ tableRef,
96
+ dataSource,
97
+ title,
98
+ format,
99
+ virtual = true,
100
+ t,
101
+ lang,
102
+ contextMenuOpen,
103
+ contextMenuItems: propContextMenuItems,
104
+ contextMenuHidden,
105
+ contextMenuClick,
106
+ recordDoubleClick,
107
+ toolbarItems,
108
+ showColumnChoose,
109
+ onFilter,
110
+ selectionSettings,
111
+ rowSelection,
112
+ rowSelected,
113
+ rowKey = 'id',
114
+ pagination,
115
+ scroll,
116
+ onFilterClick,
117
+ dataSourceFilter: propDataSourceFilter,
118
+ loading,
119
+ setColumns,
120
+ // dataSourceFilter,
121
+ ...rest
122
+ } = props;
123
+ const {
124
+ styles
125
+ } = useStyle();
126
+ const clickRef = (0, _react.useRef)(null);
127
+ const menuRef = (0, _react.useRef)(null);
128
+ const viewportWidth = window.innerWidth;
129
+ const viewportHeight = window.innerHeight;
130
+ const defaultSelected = (0, _react.useMemo)(() => {
131
+ return selectionSettings?.defaultSelectedRowKeys ?? [];
132
+ }, [selectionSettings?.defaultSelectedRowKeys]);
133
+ const [menuVisible, setMenuVisible] = _react.default.useState(false);
134
+ const [selectedRowData, setSelectedRowData] = _react.default.useState(null);
135
+ const [position, setPosition] = _react.default.useState({
136
+ x: 0,
137
+ y: 0,
138
+ viewportWidth,
139
+ viewportHeight
140
+ });
141
+ const [selectedRowKeys, setSelectedRowKeys] = (0, _react.useState)(defaultSelected);
142
+ const contextMenuItems = _react.default.useMemo(() => {
143
+ if (typeof contextMenuHidden === "function" && propContextMenuItems && selectedRowData) {
144
+ const hiddenItems = contextMenuHidden({
145
+ rowInfo: {
146
+ rowData: selectedRowData
147
+ }
148
+ });
149
+ return propContextMenuItems.filter(item => !hiddenItems.includes(item?.key));
150
+ }
151
+ if (contextMenuHidden && typeof contextMenuHidden !== 'function' && propContextMenuItems) {
152
+ return propContextMenuItems.filter(item => !contextMenuHidden.includes(item?.key));
153
+ }
154
+ return propContextMenuItems;
155
+ }, [propContextMenuItems, contextMenuHidden, selectedRowData]);
156
+ (0, _react.useLayoutEffect)(() => {
157
+ setMenuVisible(false);
158
+ }, []);
159
+ const onContextMenu = data => event => {
160
+ event.preventDefault(); // Ngăn chặn menu mặc định của trình duyệt
161
+
162
+ setSelectedRowData(data);
163
+ contextMenuOpen?.({
164
+ rowInfo: {
165
+ rowData: data
166
+ },
167
+ event
168
+ });
169
+ setMenuVisible(true);
170
+
171
+ // Đợi DOM cập nhật và lấy kích thước menu
172
+ setTimeout(() => {
173
+ const menuElement = menuRef.current; // Lấy menu từ DOM
174
+ const menuWidth = menuElement?.offsetWidth || 200; // Mặc định 200px nếu chưa render
175
+ const menuHeight = menuElement?.offsetHeight; // Mặc định 450px nếu chưa render
176
+
177
+ // Điều chỉnh vị trí menu
178
+ let x = event.clientX;
179
+ let y = event.clientY;
180
+ if (x + menuWidth > viewportWidth) {
181
+ x = x - menuWidth - 10; // Cách cạnh phải 10px
182
+ }
183
+ if (y + menuHeight > viewportHeight) {
184
+ if (y < menuHeight) {
185
+ y = 10;
186
+ } else {
187
+ y = y - 10 - menuHeight; // Cách cạnh dưới 10px
188
+ }
189
+ }
190
+ setPosition(prevState => ({
191
+ ...prevState,
192
+ x,
193
+ y
194
+ }));
195
+ }, 100);
196
+ if (!menuVisible) {
197
+ document.addEventListener(`click`, function onClickOutside(e) {
198
+ const element = e.target;
199
+ const menuContainer = document.querySelector(".popup-context-menu");
200
+ const isInsideContainer = element.closest(".popup-context-menu") && menuContainer;
201
+ if (isInsideContainer) {
202
+ return;
203
+ }
204
+ setMenuVisible(false);
205
+ document.removeEventListener(`click`, onClickOutside);
206
+ });
207
+ }
208
+ };
209
+ const handleRowClick = () => {
210
+ if (clickRef.current) return;
211
+
212
+ // @ts-ignore
213
+ clickRef.current = setTimeout(() => {
214
+ // console.log("Single Click:", record);
215
+ clickRef.current = null;
216
+ }, 250);
217
+ };
218
+ const handleRowDoubleClick = (record, index) => e => {
219
+ if (clickRef.current) {
220
+ clearTimeout(clickRef.current);
221
+ clickRef.current = null;
222
+ }
223
+ recordDoubleClick?.({
224
+ e,
225
+ rowIndex: index,
226
+ rowData: record
227
+ });
228
+ };
229
+ const onSelectChange = (keys, selectedRows, info, selectedRow) => {
230
+ if (info.type === 'all') {
231
+ // setSelectedRowKeys(keys)
232
+ rowSelected?.({
233
+ selected: selectedRows,
234
+ type: 'rowSelected',
235
+ rowData: {}
236
+ });
237
+ } else {
238
+ if (selectionSettings?.type === 'multiple') {
239
+ // setSelectedRowKeys(keys)
240
+ rowSelected?.({
241
+ selected: selectedRows,
242
+ type: 'rowSelected',
243
+ rowData: selectedRow
244
+ });
245
+ } else {
246
+ // @ts-ignore
247
+ setSelectedRowKeys([selectedRow[rowKey]]);
248
+ rowSelected?.({
249
+ selected: [selectedRow],
250
+ type: 'rowSelected',
251
+ rowData: selectedRow
252
+ });
253
+ }
254
+ }
255
+ };
256
+ const handleChange = sorter => {
257
+ console.log('Various parameters', sorter);
258
+ // setFilteredInfo(filters);
259
+ // setSortedInfo(sorter as Sorts);
260
+ };
261
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_antd.ConfigProvider, {
262
+ theme: {
263
+ components: {
264
+ Table: {
265
+ rowHoverBg: '#eb461912',
266
+ rowSelectedBg: '#eb4619',
267
+ rowSelectedHoverBg: '#eb4619'
268
+ }
269
+ }
270
+ }
271
+ }, /*#__PURE__*/_react.default.createElement(_ContextMenu.default, {
272
+ open: menuVisible,
273
+ pos: position,
274
+ setOpen: setMenuVisible,
275
+ menuRef: menuRef,
276
+ contextMenuItems: contextMenuItems,
277
+ contextMenuClick: contextMenuClick,
278
+ rowData: selectedRowData
279
+ }), /*#__PURE__*/_react.default.createElement(_rcMasterUi.Table, (0, _extends2.default)({
280
+ ref: tableRef,
281
+ loading: {
282
+ spinning: columns && columns.length === 0 || loading === true,
283
+ indicator: /*#__PURE__*/_react.default.createElement(_LoadingSpinner.default, null)
284
+ },
285
+ dataSource: dataSource
286
+ // className={styles.customTable}
287
+ ,
288
+ className: (0, _classnames.default)('', {
289
+ 'table-none-column-select': selectionSettings?.mode === undefined && selectionSettings?.type !== 'multiple'
290
+ }, styles.customTable),
291
+ bordered: true,
292
+ virtual: virtual,
293
+ columns: columns,
294
+ rowKey: rowKey,
295
+ rowHoverable: true,
296
+ size: "small",
297
+ scroll: scroll ? scroll : {
298
+ y: 500
299
+ },
300
+ onRow: (data, index) => {
301
+ return {
302
+ onDoubleClick: handleRowDoubleClick(data, index),
303
+ onClick: handleRowClick,
304
+ onContextMenu: onContextMenu(data)
305
+ };
306
+ },
307
+ rowSelection: {
308
+ type: selectionSettings?.mode === 'checkbox' || selectionSettings?.type === 'multiple' ? 'checkbox' : "radio",
309
+ columnWidth: !selectionSettings?.mode ? 0.0000001 : selectionSettings?.columnWidth ?? 50,
310
+ onChange: onSelectChange,
311
+ selectedRowKeys: selectionSettings?.mode === 'checkbox' && selectionSettings?.type === 'single' ? selectedRowKeys : undefined,
312
+ defaultSelectedRowKeys: selectionSettings?.defaultSelectedRowKeys,
313
+ preserveSelectedRowKeys: true,
314
+ ...rowSelection,
315
+ hideSelectAll: !selectionSettings?.type || selectionSettings?.type === 'single' || selectionSettings?.mode === 'radio' ? true : selectionSettings?.hideSelectAll ?? selectionSettings?.type !== 'multiple'
316
+ },
317
+ onScroll: () => {
318
+ setMenuVisible(false);
319
+ },
320
+ summary: () => /*#__PURE__*/_react.default.createElement(_rcMasterUi.Table.Summary, {
321
+ fixed: true
322
+ }, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Table.Summary.Row, null, (0, _useColumns.flatColumns)(columns).filter(col => col.hidden !== true).map((col, index) => {
323
+ const thousandSeparator = col.format?.thousandSeparator ? col.format?.thousandSeparator : format?.thousandSeparator;
324
+ const decimalSeparator = col.format?.decimalSeparator ? col.format?.decimalSeparator : format?.decimalSeparator;
325
+ const dec = col.format?.decimalScale || col.format?.decimalScale === 0 ? col.format?.decimalScale : format?.decimalScale;
326
+ const sumValue = col.type === 'number' ? (0, _hooks.sumDataByField)(dataSource, col?.key) : 0;
327
+ const value = !(0, _hooks.isEmpty)(sumValue) ? dec || dec === 0 ? parseFloat(Number(sumValue).toFixed(dec)).toString() : sumValue.toString() : '0';
328
+ const cellValue = col.type === 'number' && col.isSummary !== false ? value : '';
329
+ const numericFormatProps = {
330
+ thousandSeparator: (0, _hooks.checkThousandSeparator)(thousandSeparator, decimalSeparator),
331
+ decimalSeparator: (0, _hooks.checkDecimalSeparator)(thousandSeparator, decimalSeparator),
332
+ allowNegative: (col.format?.allowNegative ? col.format?.allowNegative : format?.allowNegative) ?? false,
333
+ prefix: col.format?.prefix ? col.format?.prefix : format?.prefix,
334
+ suffix: col.format?.suffix ? col.format?.suffix : format?.suffix,
335
+ decimalScale: dec,
336
+ fixedDecimalScale: (col.format?.fixedDecimalScale ? col.format?.fixedDecimalScale : format?.fixedDecimalScale) ?? false
337
+ };
338
+ return /*#__PURE__*/_react.default.createElement(_rcMasterUi.Table.Summary.Cell, {
339
+ key: col.key,
340
+ index: index
341
+ }, col.summaryTemplate ? col.summaryTemplate(cellValue, col.key) : (0, _reactNumericComponent.numericFormatter)(cellValue, numericFormatProps));
342
+ }))),
343
+ pagination: pagination && pagination.onChange ? false : {
344
+ showTotal: (total, range) => `${range[0]}-${range[1]} / ${total} items`,
345
+ ...pagination
346
+ },
347
+ onFilter: val => {
348
+ onFilter?.(convertFilters(val));
349
+ },
350
+ onChange: (paging, filters, sorter) => handleChange(sorter),
351
+ title: () => {
352
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, title?.(dataSource)), (toolbarItems || showColumnChoose !== false) && /*#__PURE__*/_react.default.createElement("div", {
353
+ style: {
354
+ display: 'flex',
355
+ justifyContent: 'space-between'
356
+ }
357
+ }, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Toolbar, {
358
+ style: {
359
+ width: '100%'
360
+ },
361
+ items: toolbarItems ?? [],
362
+ mode: 'responsive'
363
+ // mode={'scroll'}
364
+ ,
365
+ onClick: val => {
366
+ console.log(val);
367
+ }
368
+ }), showColumnChoose && /*#__PURE__*/_react.default.createElement(_ColumnsChoose.ColumnsChoose, {
369
+ columns: columns,
370
+ setColumns: setColumns
371
+ }), /*#__PURE__*/_react.default.createElement("div", null)));
372
+ }
373
+ }, rest)), pagination && pagination.onChange && /*#__PURE__*/_react.default.createElement(_pagination.default
374
+ // style={{padding: '0.75rem 1rem'}}
375
+ , (0, _extends2.default)({
376
+ showSizeChanger: true,
377
+ responsive: true,
378
+ size: 'small',
379
+ showTotal: (total, range) => `${range[0]}-${range[1]} / ${total} items`
380
+ }, pagination))));
381
+ };
382
+ var _default = exports.default = TableGrid;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { BaseOptionType, DefaultOptionType } from "rc-select/lib/Select";
3
+ import type { TableSelectProps } from "rc-master-ui/es/table-select";
4
+ export interface DebounceSelectProps<OptionType extends BaseOptionType = DefaultOptionType> extends TableSelectProps {
5
+ loadOptions?: (search: string, callback: (newOptions: OptionType[]) => void) => void;
6
+ debounceTimeout?: number;
7
+ defaultOptions?: OptionType[];
8
+ }
9
+ export declare function AsyncTableSelect<OptionType extends BaseOptionType>({ loadOptions, debounceTimeout, defaultOptions, columns, ...props }: DebounceSelectProps<OptionType>): React.JSX.Element;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.AsyncTableSelect = AsyncTableSelect;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _debounce = _interopRequireDefault(require("lodash/debounce"));
11
+ var _rcMasterUi = require("rc-master-ui");
12
+ 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); }
13
+ 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; }
14
+ function AsyncTableSelect({
15
+ loadOptions,
16
+ debounceTimeout = 500,
17
+ defaultOptions,
18
+ columns,
19
+ ...props
20
+ }) {
21
+ const [options, setOptions] = (0, _react.useState)(defaultOptions ?? []);
22
+ const debounceFetcher = (0, _react.useMemo)(() => {
23
+ const fetchOptions = value => {
24
+ if (value.trim().length === 0) {
25
+ setOptions(defaultOptions ?? []);
26
+ return;
27
+ }
28
+ if (loadOptions) {
29
+ loadOptions(value, newOptions => {
30
+ setOptions(newOptions);
31
+ });
32
+ }
33
+ };
34
+ return (0, _debounce.default)(fetchOptions, debounceTimeout);
35
+ }, [loadOptions, debounceTimeout]);
36
+ (0, _react.useEffect)(() => {
37
+ setOptions(defaultOptions ?? []);
38
+ }, [defaultOptions]);
39
+ return /*#__PURE__*/_react.default.createElement(_rcMasterUi.TableSelect, (0, _extends2.default)({}, props, {
40
+ filterOption: loadOptions ? false : props?.filterOption,
41
+ onSearch: debounceFetcher,
42
+ onSelect: () => setOptions(defaultOptions ?? []),
43
+ options: options,
44
+ columns: columns
45
+ }));
46
+ }
@@ -46,3 +46,17 @@ export declare const optionFontSize: {
46
46
  value: number;
47
47
  label: string;
48
48
  }[];
49
+ /**
50
+ * Sort order for BaseTable
51
+ */
52
+ declare const SortOrder: {
53
+ /**
54
+ * Sort data in ascending order
55
+ */
56
+ ascend: string;
57
+ /**
58
+ * Sort data in descending order
59
+ */
60
+ descend: string;
61
+ };
62
+ export default SortOrder;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.translateOption = exports.transferFontSize = exports.stringOperator = exports.paperSize = exports.optionsSize = exports.optionsPaperOrientation = exports.optionFontSize = exports.optionFont = exports.numberOperator = exports.defaultWidth = exports.defaultTimeFormat = exports.defaultRowHeight = exports.defaultPageSizes = exports.defaultDateTimeFormat = exports.defaultDateFormat = exports.dateTimeOperator = exports.dateOperator = exports.booleanOperator = exports.alignToFlex = void 0;
6
+ exports.translateOption = exports.transferFontSize = exports.stringOperator = exports.paperSize = exports.optionsSize = exports.optionsPaperOrientation = exports.optionFontSize = exports.optionFont = exports.numberOperator = exports.defaultWidth = exports.defaultTimeFormat = exports.defaultRowHeight = exports.defaultPageSizes = exports.defaultDateTimeFormat = exports.defaultDateFormat = exports.default = exports.dateTimeOperator = exports.dateOperator = exports.booleanOperator = exports.alignToFlex = void 0;
7
7
  const defaultWidth = exports.defaultWidth = 100;
8
8
  const defaultRowHeight = exports.defaultRowHeight = 35;
9
9
  const numberOperator = exports.numberOperator = [{
@@ -218,4 +218,19 @@ const optionFontSize = exports.optionFontSize = [{
218
218
  }, {
219
219
  value: 48,
220
220
  label: '48'
221
- }];
221
+ }];
222
+
223
+ /**
224
+ * Sort order for BaseTable
225
+ */
226
+ const SortOrder = {
227
+ /**
228
+ * Sort data in ascending order
229
+ */
230
+ ascend: 'Ascending',
231
+ /**
232
+ * Sort data in descending order
233
+ */
234
+ descend: 'Descending'
235
+ };
236
+ var _default = exports.default = SortOrder;
@@ -0,0 +1,6 @@
1
+ import type { ColumnsType, ColumnType, IFormat } from "../../type";
2
+ import React from "react";
3
+ export declare function flatColumns<RecordType>(columns: ColumnsType<RecordType>, parentKey?: string): ColumnType<RecordType>[];
4
+ export declare const getValueCell: <T>(column: ColumnType<T>, value: any, format?: IFormat) => any;
5
+ export declare const renderContent: <RecordType>(column: ColumnType<RecordType>, value: any, record: RecordType, index: number, format?: IFormat) => React.JSX.Element;
6
+ export declare const renderFilter: <RecordType>(column: ColumnType<RecordType>, selectedKeys: string[], setSelectedKeys: any, confirm: any, visible: boolean, searchValue: string, setSearchValue: any, dataSourceFilter: any[], buddhistLocale: any) => React.JSX.Element;