@azrico/reactgrid 1.3.38 → 1.3.40

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.
@@ -1,379 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.AzGrid = AzGrid;
7
- exports.default = void 0;
8
- require("@inovua/reactdatagrid-enterprise/index.css");
9
- require("@inovua/reactdatagrid-enterprise/theme/default-dark.css");
10
- require("@inovua/reactdatagrid-enterprise/theme/amber-dark.css");
11
- require("../themes/base_styles.css");
12
- require("../themes/grid.css");
13
- var _func_grid = require("../func/func_grid");
14
- var _controls = require("@azrico/controls");
15
- var _react = _interopRequireWildcard(require("react"));
16
- var _func_child = require("../func/func_child");
17
- var _object = require("@azrico/object");
18
- var _reactdatagridEnterprise = _interopRequireDefault(require("@inovua/reactdatagrid-enterprise"));
19
- var _clsx = _interopRequireDefault(require("clsx"));
20
- var _reactUseSize = require("react-use-size");
21
- var _lodash = _interopRequireDefault(require("lodash.debounce"));
22
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
- /* -------------------------------------------------------------------------- */
26
- const defaultOptions = {
27
- //filterTypes: defaultfilterTypes,
28
- remoteFilter: false,
29
- remoteSort: false,
30
- editStartEvent: 'click',
31
- rowReorderColumn: false,
32
- resizable: true,
33
- columnUserSelect: true,
34
- rowIndexColumn: true,
35
- rowHeight: 35
36
- };
37
- const forcedOptions = {
38
- idProperty: '__table_id',
39
- nodesProperty: '__children'
40
- };
41
- const dynamic_option_names = ['selected', 'cellSelection', 'loading', 'limit', 'skip'];
42
- /* -------------------------------------------------------------------------- */
43
- function AzGrid(props) {
44
- const gridRefBackup = _react.default.useRef(null);
45
- const gridRef = props.gridRef || gridRefBackup;
46
- /* -------------------------------------------------------------------------- */
47
- /* Columns */
48
- /* -------------------------------------------------------------------------- */
49
- const cached_columns = _react.default.useMemo(() => {
50
- return (0, _func_grid.ApplyColumnData)(props);
51
- }, [props.columns, props.leftColumns, props.rightColumns, props.editableColumns, props.columnExtensions, props.customColumns]);
52
- /* -------------------------------------------------------------------------- */
53
- /* Row changes */
54
- /* -------------------------------------------------------------------------- */
55
- const cached_data = _react.default.useRef();
56
- const last_cache_info = _react.default.useRef();
57
- const dataSource = _react.default.useCallback(async dt => {
58
- return await (0, _func_grid.ApplyDataSource)(props.dataSource, {
59
- skip: dt === null || dt === void 0 ? void 0 : dt.skip,
60
- limit: dt === null || dt === void 0 ? void 0 : dt.limit,
61
- cached_data: cached_data,
62
- last_cache_info: last_cache_info
63
- });
64
- }, [props.dataSource]);
65
- const base_gridOptions = _react.default.useMemo(() => {
66
- const firstcolumn = cached_columns[0];
67
- const licenseKey = props.licenseKey || (0, _func_grid.get_default_key)();
68
- const events = {
69
- onSkipChange: props.onSkipChange,
70
- onLimitChange: props.onLimitChange,
71
- onEditComplete: props.onEditComplete
72
- };
73
- const extra_ops = {
74
- onSelectionChange: props.onSelectionChange,
75
- onCellSelectionChange: props.onCellSelectionChange,
76
- licenseKey: licenseKey,
77
- editable: props.editable,
78
- treeColumn: props.allowChildRows ? firstcolumn.name : undefined,
79
- renderRowDetails: props.RowDetail,
80
- theme: props.dark ? 'amber-dark' : 'default-light'
81
- };
82
- return {
83
- ...defaultOptions,
84
- ...events,
85
- ...extra_ops
86
- };
87
- }, [cached_columns, props.allowChildRows, props.editable, props.RowDetail, props.onEditComplete]);
88
- const static_gridOptions = _react.default.useMemo(() => {
89
- const finalres = {
90
- ...base_gridOptions,
91
- ...props.gridOptions,
92
- ...forcedOptions
93
- };
94
- //append filter types instead of replacing it
95
- if (finalres.filterTypes) finalres.filterTypes = Object.assign({}, _reactdatagridEnterprise.default.defaultProps.filterTypes, finalres.filterTypes);
96
- return finalres;
97
- }, [props.gridOptions, base_gridOptions, forcedOptions]);
98
- const dynamic_gridOptions = _react.default.useMemo(() => {
99
- const res = {};
100
- dynamic_option_names.map(r => {
101
- res[r] = props[r];
102
- });
103
- return res;
104
- }, dynamic_option_names.map(r => props[r]));
105
- return _react.default.createElement(DataGridEventsWrapper, {
106
- ...props,
107
- gridRef: gridRef,
108
- static_gridOptions: static_gridOptions,
109
- dynamic_gridOptions: dynamic_gridOptions,
110
- columns: cached_columns,
111
- dataSource: dataSource,
112
- highlightedRow: props.highlightedRow
113
- });
114
- }
115
- /* -------------------------------------------------------------------------- */
116
- /**
117
- * Wrapper for menu events
118
- * @param props
119
- * @returns
120
- */
121
- function DataGridEventsWrapper(props) {
122
- /* -------------------------------------------------------------------------- */
123
- const click_data = _react.default.useRef(null);
124
- const [menuAnchorEl, set_menuAnchorEl] = _react.default.useState(null);
125
- const [menuRow, set_menuRow] = _react.default.useState(null);
126
- /* -------------------------------------------------------------------------- */
127
- /* refresh functions */
128
- /* -------------------------------------------------------------------------- */
129
- const refreshColumn = _react.default.useCallback(col => {
130
- const dt = props.gridRef.current.ungroupedData;
131
- for (let index = 0; index < dt.length; index++) {
132
- props.gridRef.current.setItemPropertyAt(index, col, dt[index][col]);
133
- }
134
- }, [props.gridRef.current]);
135
- const refresh = _react.default.useCallback(() => {
136
- const dt = props.gridRef.current.ungroupedData;
137
- for (let index = 0; index < dt.length; index++) {
138
- props.gridRef.current.setItemAt(index, {}, {
139
- replace: false
140
- });
141
- }
142
- }, [props.gridRef.current]);
143
- _react.default.useEffect(() => {
144
- if (!props.gridRef.current) return;
145
- props.gridRef.current['refresh'] = refresh;
146
- props.gridRef.current['refreshColumn'] = refreshColumn;
147
- }, [props.gridRef.current, props.dataSource, refresh, refreshColumn]);
148
- /* -------------------------------------------------------------------------- */
149
- /* events */
150
- /* -------------------------------------------------------------------------- */
151
- const onRowClick = _react.default.useCallback((rowProps, event) => {
152
- const nowDate = Date.now();
153
- const lastclick = click_data.current[(0, _func_grid.get_row_id)(rowProps)];
154
- if (lastclick) {
155
- const diffTime = Math.abs(nowDate - lastclick);
156
- if (diffTime < 400) {
157
- click_data.current[(0, _func_grid.get_row_id)(rowProps)] = null;
158
- return props.onRowDoubleClick && props.onRowDoubleClick(rowProps.rowIndex, rowProps.data);
159
- }
160
- }
161
- click_data.current[(0, _func_grid.get_row_id)(rowProps)] = nowDate;
162
- return props.onRowClick && props.onRowClick(rowProps.rowIndex, rowProps.data);
163
- }, [props.onRowClick, props.onRowDoubleClick]);
164
- _react.default.useEffect(() => {
165
- click_data.current = {};
166
- }, [props.dataSource]);
167
- /* ------------------------------- ContextMenu ------------------------------ */
168
- const onRowContextMenu = _react.default.useCallback((rowProps, event) => {
169
- if (!rowProps || !rowProps.data || _func_child.func_selection.has_selection()) {
170
- update_menuRow(null, null);
171
- return true;
172
- }
173
- event.preventDefault();
174
- const realRow = (0, _func_grid.find_realData)(rowProps.dataSourceArray, event.target, rowProps.data);
175
- const anEl = _func_child.func_selection.getVirtualElement(event.clientX, event.clientY);
176
- update_menuRow(realRow, anEl);
177
- return false;
178
- }, []);
179
- const update_menuRow = _react.default.useCallback((r = null, el = null) => {
180
- set_menuRow(r || null);
181
- set_menuAnchorEl(el || null);
182
- }, []);
183
- /* -------------------------------------------------------------------------- */
184
- const onRenderRow = (0, _react.useCallback)(rowProps => {
185
- // save the original handlers to be called later
186
- rowProps['data-row-id'] = (0, _func_grid.get_row_id)(rowProps.data);
187
- }, []);
188
- /* -------------------------------------------------------------------------- */
189
- /**
190
- * Merge click events into grid options
191
- */
192
- const static_gridOptions = _react.default.useMemo(() => {
193
- const events = {
194
- onRowClick: onRowClick,
195
- onRowContextMenu: onRowContextMenu
196
- };
197
- const renderProps = {
198
- onRenderRow: onRenderRow
199
- };
200
- return {
201
- ...props.static_gridOptions,
202
- ...events,
203
- ...renderProps
204
- };
205
- }, [props.static_gridOptions]);
206
- /* -------------------------------------------------------------------------- */
207
- return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_controls.ContextMenu, {
208
- menuAnchorEl: menuAnchorEl,
209
- menuRow: menuRow,
210
- close: update_menuRow,
211
- dontAutoClose: false,
212
- menu_items: props.contextMenuItems
213
- }), props.details_dataSource ? _react.default.createElement(DataGridDetailsWrapper, {
214
- ...props,
215
- static_gridOptions: static_gridOptions
216
- }) : _react.default.createElement(DataGridSizeWrapper, {
217
- ...props,
218
- static_gridOptions: static_gridOptions
219
- }));
220
- }
221
- function DataGridDetailsWrapper(props) {
222
- const cached_details_columns = _react.default.useMemo(() => {
223
- return (0, _func_grid.ApplyColumnData)(props.details_columns);
224
- }, [props.details_columns]);
225
- const cached_data = _react.default.useRef();
226
- const last_cache_info = _react.default.useRef();
227
- const details_dataSource = _react.default.useCallback(async dt => {
228
- const res = await (0, _func_grid.ApplyDataSource)(props.details_dataSource, {
229
- skip: dt.skip,
230
- limit: dt.limit,
231
- cached_data: cached_data,
232
- last_cache_info: last_cache_info
233
- });
234
- return res;
235
- }, [props.details_dataSource]);
236
- const renderDetailsGrid = ({
237
- data
238
- }) => {
239
- return _react.default.createElement(_reactdatagridEnterprise.default, {
240
- defaultFilterValue: props.details_filter,
241
- dataSource: details_dataSource,
242
- columns: cached_details_columns
243
- });
244
- };
245
- /**
246
- * Merge details into grid
247
- */
248
- const static_gridOptions = _react.default.useMemo(() => {
249
- const finalresult = props.static_gridOptions || {};
250
- finalresult['renderDetailsGrid'] = renderDetailsGrid;
251
- return finalresult;
252
- }, [props.static_gridOptions]);
253
- return _react.default.createElement(DataGridSizeWrapper, {
254
- ...props,
255
- static_gridOptions: static_gridOptions
256
- });
257
- }
258
- function DataGridSizeWrapper(props) {
259
- if (props.delayedSize) {
260
- return _react.default.createElement(DataGridDelayedSizeWrapper, {
261
- ...props
262
- });
263
- } else {
264
- return _react.default.createElement(DataGridNormalSizeWrapper, {
265
- ...props
266
- });
267
- }
268
- }
269
- /* -------------------------------------------------------------------------- */
270
- function DataGridNormalSizeWrapper(props) {
271
- return props.advancedFilterFields ? _react.default.createElement(DataGridSearchWrapper, {
272
- ...props
273
- }) : _react.default.createElement(DataGridCore, {
274
- ...props
275
- });
276
- }
277
- function DataGridDelayedSizeWrapper(props) {
278
- const {
279
- ref,
280
- height,
281
- width
282
- } = (0, _reactUseSize.useComponentSize)();
283
- return _react.default.createElement("div", {
284
- ref: ref,
285
- className: 'azgrid-filler azgrid-nooverflow '
286
- }, _react.default.createElement("div", {
287
- className: 'azgrid-delayedresize azgrid-flexlayout',
288
- style: {
289
- height: height,
290
- width: width
291
- }
292
- }, props.advancedFilterFields ? _react.default.createElement(DataGridSearchWrapper, {
293
- ...props
294
- }) : _react.default.createElement(DataGridCore, {
295
- ...props
296
- })));
297
- }
298
- function DataGridSearchWrapper(props) {
299
- const [search, set_search] = _react.default.useState('');
300
- const [filteredData, set_filteredData] = _react.default.useState([]);
301
- const currentSearch = _react.default.useRef('');
302
- const currentDS = _react.default.useRef([]);
303
- const try_search = _react.default.useCallback((0, _lodash.default)(() => {
304
- if (!Array.isArray(currentDS.current)) {
305
- return;
306
- }
307
- let newData = [];
308
- if (currentSearch.current) {
309
- const visibleColumns = props.gridRef.current.visibleColumns;
310
- const columns_to_search = (0, _object.array_intersection)(props.advancedFilterFields || [], visibleColumns.map(r => r.id));
311
- const lowerSearchText = currentSearch.current.toLowerCase().trim();
312
- if (!lowerSearchText || columns_to_search.length === 0) newData = currentDS.current;else {
313
- newData = currentDS.current.filter(p => {
314
- for (let index = 0; index < columns_to_search.length; index++) {
315
- const col = columns_to_search[index];
316
- const v = (p[col] + '').toLowerCase(); //value of column
317
- if (v && v.indexOf(lowerSearchText) != -1) {
318
- //if one column is matching then the row is a match
319
- return true;
320
- }
321
- }
322
- return false;
323
- });
324
- }
325
- } else newData = currentDS.current;
326
- set_filteredData(newData);
327
- }, 1000), []);
328
- _react.default.useEffect(() => {
329
- set_search('');
330
- (0, _object.fn_eval)(props.dataSource).then(r => {
331
- currentDS.current = typeof r === 'object' ? r.data || r : r;
332
- searchIfNeeded();
333
- });
334
- }, [props.dataSource]);
335
- _react.default.useEffect(() => {
336
- currentSearch.current = search;
337
- searchIfNeeded();
338
- }, [search]);
339
- function searchIfNeeded() {
340
- if (!search) {
341
- set_filteredData(props.dataSource);
342
- } else try_search();
343
- }
344
- return _react.default.createElement("div", {
345
- className: 'azgrid-flexed azgrid-flexlayout azgrid-nooverflow'
346
- }, _react.default.createElement("form", {
347
- className: 'azgrid-searcharea'
348
- }, _react.default.createElement("label", null, "Search", _react.default.createElement("input", {
349
- type: "text",
350
- name: "name",
351
- value: search,
352
- onChange: e => set_search(e.target.value)
353
- }))), _react.default.createElement(DataGridCore, {
354
- ...props,
355
- dataSource: filteredData
356
- }));
357
- }
358
- function DataGridCore(props) {
359
- return _react.default.createElement("div", {
360
- className: (0, _clsx.default)(props.className, 'azgrid-flexed', 'azgrid-flexlayout')
361
- }, _react.default.createElement(_reactdatagridEnterprise.default, {
362
- ...props.static_gridOptions,
363
- ...props.dynamic_gridOptions,
364
- rowIndexColumn: true,
365
- handle: ref => {
366
- if (ref) props.gridRef.current = ref.current;
367
- },
368
- className: 'azgrid-flexed',
369
- columns: props.columns,
370
- dataSource: props.dataSource
371
- }), props.children);
372
- }
373
- /* -------------------------------------------------------------------------- */
374
- /* -------------------------------------------------------------------------- */
375
- /* -------------------------------------------------------------------------- */
376
- /* -------------------------------------------------------------------------- */
377
- /* -------------------------------------------------------------------------- */
378
- var _default = AzGrid;
379
- exports.default = _default;
@@ -1,3 +0,0 @@
1
- export * from './DataGrid';
2
- import AzGrid from './DataGrid';
3
- export default AzGrid;
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _exportNames = {};
7
- exports.default = void 0;
8
- var _DataGrid = _interopRequireWildcard(require("./DataGrid"));
9
- Object.keys(_DataGrid).forEach(function (key) {
10
- if (key === "default" || key === "__esModule") return;
11
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
12
- if (key in exports && exports[key] === _DataGrid[key]) return;
13
- Object.defineProperty(exports, key, {
14
- enumerable: true,
15
- get: function () {
16
- return _DataGrid[key];
17
- }
18
- });
19
- });
20
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
- var _default = _DataGrid.default;
23
- exports.default = _default;