react-graph-grid 0.1.4 → 0.1.5

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 (88) hide show
  1. package/README.md +4 -0
  2. package/dist/index.esm.js +21 -0
  3. package/dist/index.js +56 -0
  4. package/dist/index10.esm.js +3844 -0
  5. package/dist/index10.js +3848 -0
  6. package/dist/index11.esm.js +4121 -0
  7. package/dist/index11.js +4125 -0
  8. package/dist/index12.esm.js +5238 -0
  9. package/dist/index12.js +5242 -0
  10. package/dist/index13.esm.js +5466 -0
  11. package/dist/index13.js +5470 -0
  12. package/dist/index14.esm.js +22 -0
  13. package/dist/index14.js +26 -0
  14. package/dist/index15.esm.js +402 -0
  15. package/dist/index15.js +403 -0
  16. package/dist/index16.esm.js +507 -0
  17. package/dist/index16.js +507 -0
  18. package/dist/index17.esm.js +256 -0
  19. package/dist/index17.js +257 -0
  20. package/dist/index18.esm.js +261 -0
  21. package/dist/index18.js +263 -0
  22. package/dist/index19.esm.js +623 -0
  23. package/dist/index19.js +624 -0
  24. package/dist/index2.esm.js +6 -0
  25. package/dist/index2.js +2 -0
  26. package/dist/index20.esm.js +219 -0
  27. package/dist/index20.js +220 -0
  28. package/dist/index21.esm.js +298 -0
  29. package/dist/index21.js +299 -0
  30. package/dist/index22.esm.js +662 -0
  31. package/dist/index22.js +663 -0
  32. package/dist/index23.esm.js +340 -0
  33. package/dist/index23.js +341 -0
  34. package/dist/index24.esm.js +269 -0
  35. package/dist/index24.js +270 -0
  36. package/dist/index25.esm.js +600 -0
  37. package/dist/index25.js +601 -0
  38. package/dist/index26.esm.js +245 -0
  39. package/dist/index26.js +246 -0
  40. package/dist/index27.esm.js +136 -0
  41. package/dist/index27.js +137 -0
  42. package/dist/index28.esm.js +70 -0
  43. package/dist/index28.js +70 -0
  44. package/dist/index29.esm.js +748 -0
  45. package/dist/index29.js +748 -0
  46. package/dist/index30.esm.js +363 -0
  47. package/dist/index30.js +363 -0
  48. package/dist/index4.esm.js +27 -0
  49. package/dist/index4.js +27 -0
  50. package/dist/index5.esm.js +35 -0
  51. package/dist/index5.js +39 -0
  52. package/dist/index6.esm.js +200 -0
  53. package/dist/index6.js +204 -0
  54. package/dist/index7.esm.js +9 -0
  55. package/dist/index7.js +13 -0
  56. package/dist/index8.esm.js +65 -0
  57. package/dist/index8.js +68 -0
  58. package/dist/index9.esm.js +102 -0
  59. package/dist/index9.js +103 -0
  60. package/{src/css/default.css → dist/react-graph-grid.css} +2 -1
  61. package/package.json +6 -3
  62. package/eslint.config.js +0 -29
  63. package/index.html +0 -13
  64. package/index.js +0 -19
  65. package/npm.aps +0 -0
  66. package/src/Base.jsx +0 -81
  67. package/src/Card.jsx +0 -333
  68. package/src/Dropdown.jsx +0 -339
  69. package/src/FieldEdit.jsx +0 -376
  70. package/src/Graph.jsx +0 -482
  71. package/src/Grid.jsx +0 -887
  72. package/src/GridCD.jsx +0 -180
  73. package/src/GridDB.jsx +0 -897
  74. package/src/GridFE.jsx +0 -753
  75. package/src/GridFL.jsx +0 -468
  76. package/src/GridGR.jsx +0 -311
  77. package/src/GridPK.jsx +0 -414
  78. package/src/Modal.jsx +0 -511
  79. package/src/Overlay.jsx +0 -140
  80. package/src/Tests/DebugApp.jsx +0 -334
  81. package/src/Tests/TestData.jsx +0 -251
  82. package/src/Themes/DefaultGridTheme.jsx +0 -36
  83. package/src/Themes/Images.jsx +0 -438
  84. package/src/Themes/Translate.jsx +0 -76
  85. package/src/css/default_.css +0 -945
  86. package/src/main.jsx +0 -10
  87. package/vite.config.js +0 -14
  88. /package/{public → dist}/IM.svg +0 -0
@@ -0,0 +1,600 @@
1
+ import { require_jsx_runtime } from "./index7.esm.js";
2
+ import { Modal } from "./index15.esm.js";
3
+ import { Images } from "./index16.esm.js";
4
+ import { GridFLClass } from "./index23.esm.js";
5
+ import { FieldEdit } from "./index24.esm.js";
6
+ import { useEffect, useState } from "react";
7
+ var import_jsx_runtime = require_jsx_runtime();
8
+ function GridFE(props) {
9
+ let grid = null;
10
+ const [gridState, setState] = useState({
11
+ grid,
12
+ ind: 0
13
+ });
14
+ grid = gridState.grid;
15
+ let needGetRows = false;
16
+ if (!grid || grid.uid !== props.uid && props.uid != null) {
17
+ grid = null;
18
+ if (props.findGrid) grid = props.findGrid(props);
19
+ grid = grid || new GridFEClass(props);
20
+ needGetRows = !props.noAutoRefresh && !grid.hasVisibleParentGrids();
21
+ }
22
+ if (props.init) props.init(grid);
23
+ grid.refreshState = function() {
24
+ setState({
25
+ grid,
26
+ ind: grid.stateind++
27
+ });
28
+ };
29
+ useEffect(() => {
30
+ grid.setupEvents();
31
+ if (needGetRows && (grid.rows.length <= 0 || grid.columns.length <= 0) || grid._forceRefresh) {
32
+ grid._forceRefresh = false;
33
+ grid._waitingRows = true;
34
+ grid.getRows({
35
+ filters: grid.collectFilters(),
36
+ grid
37
+ }).then((rows) => {
38
+ grid.rows = rows;
39
+ grid.afterGetRows();
40
+ grid.refreshState();
41
+ }).finally(() => {
42
+ grid._waitingRows = false;
43
+ grid.refreshState();
44
+ });
45
+ } else if (grid.columns.length <= 0 && grid.getColumns) grid.prepareColumns().then(() => grid.refreshState());
46
+ return () => {
47
+ grid.clearEvents();
48
+ };
49
+ }, [grid, needGetRows]);
50
+ return grid.render();
51
+ }
52
+ var GridFEClass = class extends GridFLClass {
53
+ constructor(props) {
54
+ super(props);
55
+ const grid = this;
56
+ grid.allowEdit = props.allowEdit;
57
+ grid.allowView = false;
58
+ grid.allowAdd = true;
59
+ grid.allowCopy = true;
60
+ grid.allowDelete = true;
61
+ grid.closeSelfWnd = grid.closeSelfWnd || (() => {});
62
+ grid.onSelectValue = props.onSelectValue || (() => {});
63
+ const shift = (grid.level + 1) * 20;
64
+ grid.popupPos = {
65
+ x: 100 + shift,
66
+ y: 100 + shift,
67
+ w: 800,
68
+ h: 600
69
+ };
70
+ grid.addToolbarButtons();
71
+ }
72
+ render() {
73
+ const grid = this;
74
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [super.render(), grid.renderPopup()] });
75
+ }
76
+ isVisible() {
77
+ return this.visible;
78
+ }
79
+ renderPopup() {
80
+ const grid = this;
81
+ return grid.popupIsShowing ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Modal, {
82
+ title: grid.popupTitle,
83
+ level: grid.level + 1,
84
+ renderContent: (wnd) => {
85
+ return grid.renderPopupContent(wnd);
86
+ },
87
+ dimensionsByContent: grid.popupDimensionsByContent,
88
+ pos: grid.popupPos,
89
+ closeWhenEscape: grid.popupCloseWhenEscape,
90
+ onClose: (e) => {
91
+ grid.onClosePopup(e);
92
+ grid.refreshState();
93
+ },
94
+ footerButtons: grid._popupButtons ? grid._popupButtons : null
95
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {});
96
+ }
97
+ onClosePopup() {
98
+ const grid = this;
99
+ grid.popupIsShowing = false;
100
+ grid.popupCloseWhenEscape = false;
101
+ grid.popupTitle = "";
102
+ delete grid._popupButtons;
103
+ }
104
+ renderPopupContent(wnd) {
105
+ const grid = this;
106
+ return grid.columnsSettingsIsShowing ? grid.renderColumnsSettings(wnd) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {});
107
+ }
108
+ renderCell(grid, col, row, selected) {
109
+ if (!grid.allowEdit && !col.allowVerticalResize || !selected || grid.isDisabled()) return super.renderCell(grid, col, row);
110
+ row = !grid.isEditing() || !grid.changedRow ? row : grid.changedRow;
111
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FieldEdit, {
112
+ keyPref: grid.id + "_" + row[grid.keyField],
113
+ column: col,
114
+ value: col.type === "lookup" ? row[col.keyField] : row[col.name],
115
+ text: row[col.name],
116
+ findFieldEdit: () => {
117
+ return col._fieldEditObj;
118
+ },
119
+ selectH: "1.4em",
120
+ level: grid.level,
121
+ init: (fe) => {
122
+ if (grid.isEditing() && !grid.changedRow) {
123
+ grid.changedRow = {};
124
+ Object.assign(grid.changedRow, grid.selectedRow());
125
+ }
126
+ fe.ownerGrid = grid;
127
+ const lrow = !grid.isEditing() ? grid.selectedRow() : grid.changedRow;
128
+ col._fieldEditObj = fe;
129
+ fe.value = col.type === "lookup" ? lrow[col.keyField] : lrow[col.name];
130
+ fe.text = lrow[col.name];
131
+ },
132
+ onChange: (e) => {
133
+ if (!grid.changedRow) {
134
+ grid.changedRow = {};
135
+ Object.assign(grid.changedRow, grid.selectedRow());
136
+ }
137
+ if (col.type === "lookup") {
138
+ grid.changedRow[col.keyField] = e.value;
139
+ grid.changedRow[col.name] = e.text;
140
+ if (!grid.isEditing()) {
141
+ grid.setEditing(true);
142
+ grid.refreshState();
143
+ }
144
+ e.fe.refreshState();
145
+ } else {
146
+ grid.changedRow[col.name] = e.value;
147
+ if (!grid.isEditing()) {
148
+ grid.setEditing(true);
149
+ grid.refreshState();
150
+ } else e.fe.refreshState();
151
+ }
152
+ }
153
+ });
154
+ }
155
+ addToolbarButtons() {
156
+ const grid = this;
157
+ grid.buttons.push({
158
+ id: grid.buttons.length,
159
+ name: "commit",
160
+ title: grid.translate("Commit changes"),
161
+ label: grid.translate("Commit"),
162
+ img: Images.images.commit,
163
+ click: (e) => grid.commitChanges(e),
164
+ getDisabled: (e) => grid.commitChangesDisabled(e)
165
+ });
166
+ grid.buttons.push({
167
+ id: grid.buttons.length,
168
+ name: "rollback",
169
+ title: grid.translate("Rollback changes"),
170
+ label: grid.translate("Rollback"),
171
+ img: Images.images.rollback,
172
+ click: (e) => grid.rollbackChanges(e),
173
+ getDisabled: (e) => grid.rollbackChangesDisabled(e)
174
+ });
175
+ grid.buttons.push({
176
+ id: grid.buttons.length,
177
+ name: "add",
178
+ title: grid.translate("Add new record"),
179
+ label: grid.translate("Add"),
180
+ img: Images.images.addRecord,
181
+ click: (e) => grid.addRecord(e),
182
+ getDisabled: (e) => grid.addRecordDisabled(e)
183
+ });
184
+ grid.buttons.push({
185
+ id: grid.buttons.length,
186
+ name: "copy",
187
+ title: grid.translate("Copy record"),
188
+ label: grid.translate("Copy"),
189
+ img: Images.images.copyRecord,
190
+ click: (e) => grid.copyRecord(e),
191
+ getDisabled: (e) => grid.copyRecordDisabled(e)
192
+ });
193
+ grid.buttons.push({
194
+ id: grid.buttons.length,
195
+ name: "delete",
196
+ title: grid.translate("Delete record"),
197
+ label: grid.translate("Delete"),
198
+ img: Images.images.deleteRecord,
199
+ click: (e) => grid.deleteRecord(e),
200
+ getDisabled: (e) => grid.deleteRecordDisabled(e)
201
+ });
202
+ grid.buttons.push({
203
+ id: grid.buttons.length,
204
+ name: "view",
205
+ title: grid.translate("View record"),
206
+ label: grid.translate("View"),
207
+ img: Images.images.viewRecord,
208
+ click: (e) => grid.viewRecord(e),
209
+ getDisabled: (e) => grid.viewRecordDisabled(e),
210
+ getVisible: () => {
211
+ return false;
212
+ }
213
+ });
214
+ grid.buttons.push({
215
+ id: grid.buttons.length,
216
+ name: "selectValue",
217
+ title: grid.translate("Select value"),
218
+ label: grid.translate("Select"),
219
+ click: (e) => grid.selectRecord(e),
220
+ img: Images.images.selectFilterValue,
221
+ getDisabled: (e) => grid.selectRecordDisabled(e),
222
+ getVisible: () => {
223
+ return grid.isSelecting;
224
+ }
225
+ });
226
+ grid.buttons.push({
227
+ id: grid.buttons.length,
228
+ name: "exit",
229
+ title: grid.translate("Exit"),
230
+ label: grid.translate("Exit"),
231
+ click: (e) => grid.closeSelfWnd(e),
232
+ img: Images.images.exit,
233
+ getDisabled: (e) => grid.exitDisabled(e),
234
+ getVisible: () => {
235
+ return grid.isSelecting;
236
+ }
237
+ });
238
+ grid._buttonsDict = {};
239
+ for (let btn of grid.buttons) grid._buttonsDict[btn.name] = btn;
240
+ }
241
+ selectRecord(e) {
242
+ const grid = this;
243
+ const row = grid.selectedRow();
244
+ delete grid._selectedRows;
245
+ if (!grid.multi || !grid.pocketOpened) {
246
+ e.value = row[grid.keyField];
247
+ e.text = row[grid.nameField];
248
+ e.values = [{
249
+ value: e.value,
250
+ label: e.text
251
+ }];
252
+ } else {
253
+ e.multi = true;
254
+ if (Object.keys(grid._selectedRowsDict).length === 0) grid._selectedRowsDict[row[grid.keyField]] = row;
255
+ const texts = [];
256
+ e.value = grid.selectedValue();
257
+ e.values = grid.selectedValues(texts);
258
+ e.text = texts.join(", ");
259
+ }
260
+ grid.onSelectValue(e);
261
+ }
262
+ onRowDblClick(e, row) {
263
+ const grid = this;
264
+ super.onRowDblClick(e, row);
265
+ if (grid.isSelecting && !grid.multi && grid.onSelectValue) {
266
+ const row$1 = grid.selectedRow();
267
+ e.value = row$1[grid.keyField];
268
+ e.text = row$1[grid.nameField];
269
+ grid.onSelectValue(e);
270
+ }
271
+ }
272
+ commitChanges(e) {
273
+ const grid = this;
274
+ const row = grid.selectedRow();
275
+ grid.saveRow({
276
+ row,
277
+ changedRow: grid.changedRow
278
+ }).then(() => {
279
+ grid.setEditing(false);
280
+ Object.assign(row, grid.changedRow);
281
+ delete grid.changedRow;
282
+ grid.refreshState();
283
+ }).catch((message) => {
284
+ Object.assign(grid.changedRow, row);
285
+ grid.refreshState();
286
+ alert(message || "Error!");
287
+ });
288
+ }
289
+ commitChangesDisabled(e) {
290
+ const grid = this;
291
+ return grid._waitingRows || !grid.isEditing() || grid.isDisabled();
292
+ }
293
+ rollbackChanges(e) {
294
+ const grid = this;
295
+ delete grid.changedRow;
296
+ grid.setEditing(false);
297
+ grid.refreshState();
298
+ }
299
+ rollbackChangesDisabled(e) {
300
+ const grid = this;
301
+ return grid._waitingRows || !grid.isEditing() || grid.isDisabled();
302
+ }
303
+ addRecord(e) {
304
+ const grid = this;
305
+ grid.getNewRow().then((newRow) => {
306
+ grid.rows.unshift(newRow);
307
+ grid.selectedRowIndex = 0;
308
+ grid.refreshState();
309
+ });
310
+ }
311
+ addRecordDisabled(e) {
312
+ const grid = this;
313
+ return grid._waitingRows || !grid.allowAdd || grid.isEditing() || grid.isDisabled();
314
+ }
315
+ copyRecord(e) {
316
+ const grid = this;
317
+ const newRow = {};
318
+ Object.assign(newRow, grid.selectedRow());
319
+ grid.rows.unshift(newRow);
320
+ grid.selectedRowIndex = 0;
321
+ grid.refreshState();
322
+ }
323
+ copyRecordDisabled(e) {
324
+ const grid = this;
325
+ return grid._waitingRows || !grid.allowCopy || grid.isEditing() || grid.isDisabled() || grid.selectedRowIndex == null || grid.selectedRowIndex < 0 || !grid.rows || grid.rows.length <= 0;
326
+ }
327
+ deleteRecord(e) {
328
+ const grid = this;
329
+ if (window.confirm(grid.translate("Delete record") + "?")) grid.deleteRow(e).then(() => grid.refreshState());
330
+ }
331
+ deleteRecordDisabled(e) {
332
+ const grid = this;
333
+ return grid._waitingRows || !grid.allowDelete || grid.isEditing() || grid.isDisabled() || grid.selectedRowIndex == null || grid.selectedRowIndex < 0 || !grid.rows || grid.rows.length <= 0;
334
+ }
335
+ viewRecord(e) {}
336
+ viewRecordDisabled(e) {
337
+ const grid = this;
338
+ return grid._waitingRows || !grid.allowView || grid.isEditing() || grid.isDisabled() || grid.selectedRowIndex == null || grid.selectedRowIndex < 0 || !grid.rows || grid.rows.length <= 0;
339
+ }
340
+ selectRecordDisabled(e) {
341
+ const grid = this;
342
+ return grid._waitingRows || !grid.isSelecting || grid.isEditing() || grid.isDisabled() || grid.selectedRowIndex == null || grid.selectedRowIndex < 0 || !grid.rows || grid.rows.length <= 0;
343
+ }
344
+ exitDisabled(e) {
345
+ const grid = this;
346
+ return grid._waitingRows || !grid.isSelecting || grid.isEditing() || grid.isDisabled();
347
+ }
348
+ onSelectedRowChanged(e) {
349
+ const grid = this;
350
+ super.onSelectedRowChanged(e);
351
+ if (grid.allowEdit && grid.refreshState) grid.refreshState();
352
+ }
353
+ getSelectedRowIndex() {
354
+ const grid = this;
355
+ if (grid.value == null || grid.value === "") return;
356
+ let i = 0;
357
+ for (let row of grid.rows) {
358
+ if (row[grid.keyField] === grid.value) {
359
+ grid.selectedRowIndex = i;
360
+ break;
361
+ }
362
+ i++;
363
+ }
364
+ }
365
+ getGridMaxHeight() {
366
+ const grid = this;
367
+ return grid.frozenHeader ? grid.children && grid.children.length > 0 || grid.parents && grid.parents.length > 0 ? "40vh" : "80vh" : "";
368
+ }
369
+ async canLeaveRow(rowIndex) {
370
+ const grid = this;
371
+ return (!grid.allowEdit || !grid.isEditing()) && !grid.isDisabled();
372
+ }
373
+ keyCellAdd(selected) {
374
+ return selected ? "1" : this.stateind;
375
+ }
376
+ isRowChanged(row, secondRow) {
377
+ const grid = this;
378
+ secondRow = secondRow || grid.changedRow;
379
+ if (!secondRow) return false;
380
+ let res = false;
381
+ for (let col of grid.columns) if (secondRow[col.name] !== row[col.name]) return true;
382
+ return res;
383
+ }
384
+ getNewRow() {
385
+ const grid = this;
386
+ return new Promise(function(resolve, reject) {
387
+ const newRow = {};
388
+ for (let col of grid.columns) newRow[col.name] = "";
389
+ newRow[grid.keyField] = -1;
390
+ resolve(newRow);
391
+ });
392
+ }
393
+ saveRow(e) {
394
+ if (!this.isRowChanged(e.row)) return new Promise(function(resolve) {
395
+ resolve(true);
396
+ });
397
+ return new Promise(function(resolve, reject) {
398
+ e.row = e.changedRow;
399
+ resolve(true);
400
+ });
401
+ }
402
+ deleteRow(e) {
403
+ const grid = this;
404
+ e.row = e.row || grid.selectedRow();
405
+ return new Promise(function(resolve, reject) {
406
+ grid.rows = grid.rows.filter((item) => item != e.row);
407
+ resolve(true);
408
+ });
409
+ }
410
+ getGridSettingsList() {
411
+ const res = super.getGridSettingsList();
412
+ const grid = this;
413
+ res.push({
414
+ id: 4,
415
+ text: grid.translate("Adjust column visibility", "grid-menu")
416
+ });
417
+ if (!grid.exportDisabled) res.push({
418
+ id: 5,
419
+ text: grid.translate("Export to CSV", "grid-menu")
420
+ });
421
+ return res;
422
+ }
423
+ onSettingsItemClick(itemId) {
424
+ super.onSettingsItemClick(itemId);
425
+ const grid = this;
426
+ switch (String(itemId)) {
427
+ case "4":
428
+ grid.showColumnsSettings();
429
+ grid.refreshState();
430
+ break;
431
+ case "5":
432
+ grid.exportToCSV();
433
+ grid.refreshState();
434
+ break;
435
+ default:
436
+ }
437
+ }
438
+ applyColumnsVisibility() {
439
+ const grid = this;
440
+ for (let col of grid.columns) col.visible = col._newVisible;
441
+ }
442
+ showColumnsSettings() {
443
+ const grid = this;
444
+ grid.popupIsShowing = true;
445
+ grid.columnsSettingsIsShowing = true;
446
+ grid.popupTitle = grid.translate("Adjust column visibility");
447
+ grid._visibleColumnsCount = 0;
448
+ for (let col of grid.columns) {
449
+ col._newVisible = col.visible;
450
+ if (col._newVisible != false) grid._visibleColumnsCount++;
451
+ }
452
+ grid._popupButtons = [{
453
+ title: grid.translate("OK"),
454
+ onClick: (e) => {
455
+ grid.applyColumnsVisibility();
456
+ grid.columnsSettingsIsShowing = false;
457
+ grid.onClosePopup(e);
458
+ grid.refreshState();
459
+ }
460
+ }, {
461
+ title: grid.translate("Cancel"),
462
+ onClick: (e) => {
463
+ grid.columnsSettingsIsShowing = false;
464
+ grid.onClosePopup(e);
465
+ grid.refreshState();
466
+ }
467
+ }];
468
+ }
469
+ hideAllColumns(preview) {
470
+ const grid = this;
471
+ let first = true;
472
+ for (let col of grid.columns) {
473
+ if (col._newVisible == false || !preview && col.visible == false) continue;
474
+ if (first) {
475
+ first = false;
476
+ continue;
477
+ }
478
+ if (preview) {
479
+ col._newVisible = false;
480
+ grid._visibleColumnsCount--;
481
+ } else col.visible = false;
482
+ }
483
+ }
484
+ showAllColumns(preview) {
485
+ const grid = this;
486
+ for (let col of grid.columns) {
487
+ if (col._newVisible != false || !preview && col.visible != false) continue;
488
+ if (preview) {
489
+ col._newVisible = true;
490
+ grid._visibleColumnsCount++;
491
+ } else col.visible = true;
492
+ }
493
+ }
494
+ renderColumnsSettings() {
495
+ const grid = this;
496
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
497
+ className: "grid-columns-settings-div",
498
+ children: [
499
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("ul", {
500
+ className: "dropdown-ul grid-columns-settings-div-ul",
501
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", {
502
+ className: "dropdown-item",
503
+ onClick: (e) => {
504
+ grid.hideAllColumns(true);
505
+ grid.refreshState();
506
+ },
507
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
508
+ className: "dropdown-item-div",
509
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
510
+ className: "grid-columns-settings-label",
511
+ children: grid.translate("Visible columns")
512
+ }), Images.images.last()]
513
+ })
514
+ }), grid.columns.map((column) => {
515
+ if (column._newVisible == false) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {});
516
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", {
517
+ className: "dropdown-item",
518
+ onClick: (e) => {
519
+ if (grid._visibleColumnsCount > 1) {
520
+ column._newVisible = false;
521
+ grid._visibleColumnsCount--;
522
+ grid.refreshState();
523
+ }
524
+ },
525
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
526
+ className: "dropdown-item-div",
527
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: column.title }), Images.images.next()]
528
+ })
529
+ });
530
+ })]
531
+ }) }),
532
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {}),
533
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("ul", {
534
+ className: "dropdown-ul grid-columns-settings-div-ul",
535
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", {
536
+ className: "dropdown-item",
537
+ onClick: (e) => {
538
+ grid.showAllColumns(true);
539
+ grid.refreshState();
540
+ },
541
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
542
+ className: "dropdown-item-div",
543
+ children: [Images.images.first(), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
544
+ className: "grid-columns-settings-label",
545
+ children: grid.translate("Invisible columns")
546
+ })]
547
+ })
548
+ }), grid.columns.map((column) => {
549
+ if (column._newVisible != false) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {});
550
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", {
551
+ className: "dropdown-item",
552
+ onClick: (e) => {
553
+ column._newVisible = true;
554
+ grid._visibleColumnsCount++;
555
+ grid.refreshState();
556
+ },
557
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
558
+ className: "dropdown-item-div",
559
+ children: [Images.images.prev(), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: column.title })]
560
+ })
561
+ });
562
+ })]
563
+ }) })
564
+ ]
565
+ });
566
+ }
567
+ exportToCSV(filename, delimeter) {
568
+ const grid = this;
569
+ if (filename == null || filename == "") {
570
+ const date = /* @__PURE__ */ new Date();
571
+ filename = `exportCSV_${date.getDate()}_${date.getMonth()}_${date.getFullYear()}_${date.getTime()}_`;
572
+ }
573
+ delimeter = delimeter || ";";
574
+ let titles = [];
575
+ for (let col of grid.columns) {
576
+ if (col.visible == false) continue;
577
+ titles.push(col.title || col.name);
578
+ }
579
+ const csvContent = "" + [titles.join(delimeter), ...grid.rows.map((item) => {
580
+ let values = [];
581
+ for (let col of grid.columns) {
582
+ if (col.visible == false) continue;
583
+ values.push(item[col.name]);
584
+ }
585
+ return values.join(delimeter);
586
+ })].join("\n");
587
+ const blob = new Blob([csvContent], { type: "text/csv;charset=utf-8;" });
588
+ const link = document.createElement("a");
589
+ if (link.download !== void 0) {
590
+ const url = URL.createObjectURL(blob);
591
+ link.setAttribute("href", url);
592
+ link.setAttribute("download", filename);
593
+ link.style.visibility = "hidden";
594
+ document.body.appendChild(link);
595
+ link.click();
596
+ document.body.removeChild(link);
597
+ }
598
+ }
599
+ };
600
+ export { GridFE, GridFEClass };