react-graph-grid 0.1.3 → 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 -6
  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,298 @@
1
+ import { require_jsx_runtime } from "./index7.esm.js";
2
+ import { BaseComponent } from "./index8.esm.js";
3
+ import { GridGRClass } from "./index20.esm.js";
4
+ import { useEffect, useState } from "react";
5
+ var import_jsx_runtime = require_jsx_runtime();
6
+ function GridPK(props) {
7
+ let grid = null;
8
+ const [gridState, setState] = useState({
9
+ grid,
10
+ ind: 0
11
+ });
12
+ grid = gridState.grid;
13
+ let needGetRows = false;
14
+ if (!grid || grid.uid !== props.uid && props.uid != null) {
15
+ grid = null;
16
+ if (props.findGrid) grid = props.findGrid(props);
17
+ grid = grid || new GridPKClass(props);
18
+ needGetRows = !props.noAutoRefresh;
19
+ }
20
+ if (props.init) props.init(grid);
21
+ grid.refreshState = function() {
22
+ setState({
23
+ grid,
24
+ ind: grid.stateind++
25
+ });
26
+ };
27
+ grid._waitingRows = needGetRows && (grid.rows.length <= 0 || grid.columns.length <= 0);
28
+ useEffect(() => {
29
+ grid.setupEvents(grid);
30
+ if (grid._waitingRows) grid.getRows({
31
+ filters: grid.collectFilters(),
32
+ grid
33
+ }).then((rows) => {
34
+ grid.rows = rows;
35
+ grid.afterGetRows();
36
+ grid.refreshState();
37
+ }).finally(() => {
38
+ grid._waitingRows = false;
39
+ grid.refreshState();
40
+ });
41
+ else if (grid.columns.length <= 0 && grid.getColumns) grid.prepareColumns().then(() => grid.refreshState());
42
+ return () => {
43
+ grid.clearEvents();
44
+ };
45
+ }, [grid]);
46
+ return grid.render();
47
+ }
48
+ var GridPKClass = class extends GridGRClass {
49
+ constructor(props) {
50
+ super(props);
51
+ const grid = this;
52
+ grid._selectedRowsDict = {};
53
+ if (props.multi === true && props.keyField) {
54
+ grid.multi = true;
55
+ grid._allRowsOnPageSelected = false;
56
+ }
57
+ grid.opt.pocketButtonsClass = props.pocketButtonsClass || BaseComponent.theme.pocketButtonsClass || "";
58
+ }
59
+ afterGetRowsEvents() {
60
+ const grid = this;
61
+ super.afterGetRowsEvents();
62
+ grid.checkPocketState();
63
+ }
64
+ setupEvents() {
65
+ const grid = this;
66
+ grid.clearEvents = function() {};
67
+ }
68
+ renderSelectColumnHeader() {
69
+ const grid = this;
70
+ return !grid.multi || !grid.pocketOpened ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("th", {
71
+ "grid-header": `${grid.id}_select_`,
72
+ className: `${grid.opt.columnClass ? grid.opt.columnClass : ""} grid-header-th`,
73
+ style: {
74
+ position: "sticky",
75
+ top: 0,
76
+ width: "1.3em",
77
+ overflow: "hidden",
78
+ verticalAlign: "top"
79
+ },
80
+ children: !grid._allRowsOnPageSelected ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
81
+ className: "grid-pocket-button-div",
82
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
83
+ className: (grid.opt.pocketButtonsClass || "grid-pocket-button") + " grid-pocket-button-all",
84
+ onClick: (e) => grid.selectAllRows(e),
85
+ children: "+"
86
+ })
87
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {})
88
+ }, `headerCellSelect_${grid.id}_${grid.keyAdd()}_`);
89
+ }
90
+ renderSelectColumn(row, rind) {
91
+ const grid = this;
92
+ return !grid.pocketOpened ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("td", { children: grid._selectedRowsDict[row[grid.keyField]] == null ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
93
+ className: "grid-pocket-button-div",
94
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
95
+ className: grid.opt.pocketButtonsClass || "grid-pocket-button",
96
+ onClick: (e) => grid.selectRow(e, row),
97
+ children: "+"
98
+ })
99
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {}) }, `gridCellSelect_${grid.id}_${rind}_${grid.keyAdd()}_`);
100
+ }
101
+ renderPocketClearColumn(row, rind) {
102
+ const grid = this;
103
+ return !grid.pocketOpened ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("td", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
104
+ className: "grid-pocket-button-div",
105
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
106
+ className: grid.opt.pocketButtonsClass || "grid-pocket-button",
107
+ onClick: (e) => grid.unselectRow(e, row),
108
+ children: "-"
109
+ })
110
+ }) }, `gridCellClear_${grid.id}_${rind}_${grid.keyAdd()}_`);
111
+ }
112
+ renderAdditionalRows() {
113
+ const grid = this;
114
+ if (!grid.pocketOpened) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {});
115
+ const hasPocketRows = Object.keys(grid._selectedRowsDict).length > 0;
116
+ if (!grid._selectedRows) {
117
+ grid._selectedRows = [];
118
+ grid.loadPocketRows();
119
+ }
120
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("tr", {
121
+ className: "",
122
+ style: {
123
+ borderTop: "0",
124
+ borderBottom: "0"
125
+ },
126
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("td", {
127
+ className: `${grid.opt.columnClass ? grid.opt.columnClass : ""} grid-header-th`,
128
+ style: {
129
+ position: "sticky",
130
+ top: 0,
131
+ width: "1.5em",
132
+ overflow: "hidden",
133
+ verticalAlign: "top"
134
+ },
135
+ children: hasPocketRows ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
136
+ className: "grid-pocket-button-div",
137
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
138
+ className: (grid.opt.pocketButtonsClass || "grid-pocket-button") + " grid-pocket-button-all",
139
+ onClick: (e) => grid.clearPocket(e),
140
+ children: "-"
141
+ })
142
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {})
143
+ }, `gridPocketSysCol_${grid.id}_`), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("td", {
144
+ colSpan: grid.columns ? grid.columns.length : 0,
145
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
146
+ className: "grid-pocket-title",
147
+ children: `${this.translate("Pocket")} (${grid._selectedRows.length})`
148
+ })
149
+ })]
150
+ }, `gridPocketDivider_${grid.id}_`), grid._selectedRows.map((row, rind) => {
151
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("tr", { children: grid.renderPocketRow(row, rind) }, `gridPocketRow_${grid.id}_${rind}_${row[grid.keyField]}_${grid.keyAdd()}_`);
152
+ })] });
153
+ }
154
+ renderRow(row, rowInd, selected) {
155
+ const grid = this;
156
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [grid.multi && grid.pocketOpened ? grid.renderSelectColumn(row) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {}), super.renderRow(row, rowInd, selected)] });
157
+ }
158
+ loadPocketRows() {
159
+ const grid = this;
160
+ for (let id in grid._selectedRowsDict) {
161
+ let row = grid._selectedRowsDict[id];
162
+ grid._selectedRows.push(row);
163
+ }
164
+ }
165
+ renderPocketRow(row, rowInd) {
166
+ const grid = this;
167
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [grid.renderPocketClearColumn(row, rowInd), grid.columns.map((col, cind) => {
168
+ return col.visible === false ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("td", { children: grid.renderCell(grid, col, row, false) }, `gridPocketCell_${grid.id}_${rowInd}_${cind}_${grid.keyAdd()}_${row[grid.keyField]}_`);
169
+ })] });
170
+ }
171
+ getGridWidth() {
172
+ const grid = this;
173
+ let w = super.getGridWidth();
174
+ if (grid.multi) w += 20;
175
+ grid._currW = w;
176
+ return grid._currW;
177
+ }
178
+ selectedValue(delim) {
179
+ const grid = this;
180
+ const keyColumn = grid.getKeyColumn();
181
+ if (!grid.multi || !grid.pocketOpened) {
182
+ const row = grid.selectedRow();
183
+ return row != null ? row[keyColumn] : "";
184
+ } else {
185
+ delim = delim || ",";
186
+ const res = [];
187
+ for (let id in grid._selectedRowsDict) {
188
+ let row = grid._selectedRowsDict[id];
189
+ res.push(row[keyColumn]);
190
+ }
191
+ return res.join(delim);
192
+ }
193
+ }
194
+ selectedText(delim) {
195
+ const grid = this;
196
+ if (!grid.nameField) return "";
197
+ if (!grid.multi || !grid.pocketOpened) {
198
+ const row = grid.selectedRow();
199
+ return row != null ? row[grid.nameField] : "";
200
+ } else {
201
+ delim = delim || ",";
202
+ const res = [];
203
+ for (let id in grid._selectedRowsDict) {
204
+ let row = grid._selectedRowsDict[id];
205
+ res.push(row[grid.nameField]);
206
+ }
207
+ return res.join(delim);
208
+ }
209
+ }
210
+ selectedValues(texts) {
211
+ const grid = this;
212
+ texts = texts || [];
213
+ const keyColumn = grid.getKeyColumn();
214
+ if (!grid.multi || !grid.pocketOpened) {
215
+ const row = grid.selectedRow();
216
+ return row != null ? [{
217
+ value: row[keyColumn],
218
+ label: row[grid.nameField]
219
+ }] : [];
220
+ } else {
221
+ const res = [];
222
+ for (let id in grid._selectedRowsDict) {
223
+ let row = grid._selectedRowsDict[id];
224
+ let text = row[grid.nameField];
225
+ texts.push(text);
226
+ res.push({
227
+ value: row[keyColumn],
228
+ label: text
229
+ });
230
+ }
231
+ return res;
232
+ }
233
+ }
234
+ selectRow(e, row) {
235
+ const grid = this;
236
+ const keyColumn = grid.getKeyColumn();
237
+ delete grid._selectedRows;
238
+ grid._selectedRowsDict[row[keyColumn]] = row;
239
+ grid.checkPocketState();
240
+ grid.refreshState();
241
+ if (grid.graph) grid.graph.triggerWave({
242
+ nodes: [grid],
243
+ withStartNodes: false
244
+ });
245
+ }
246
+ unselectRow(e, row) {
247
+ const grid = this;
248
+ const keyColumn = grid.getKeyColumn();
249
+ delete grid._selectedRows;
250
+ delete grid._selectedRowsDict[row[keyColumn]];
251
+ grid._allRowsOnPageSelected = false;
252
+ grid.checkPocketState();
253
+ grid.refreshState();
254
+ if (grid.graph) grid.graph.triggerWave({
255
+ nodes: [grid],
256
+ withStartNodes: false
257
+ });
258
+ }
259
+ selectAllRows() {
260
+ const grid = this;
261
+ const keyColumn = grid.getKeyColumn();
262
+ delete grid._selectedRows;
263
+ grid._allRowsOnPageSelected = true;
264
+ for (let row of grid.rows) grid._selectedRowsDict[row[keyColumn]] = row;
265
+ grid.checkPocketState();
266
+ grid.refreshState();
267
+ if (grid.graph) grid.graph.triggerWave({
268
+ nodes: [grid],
269
+ withStartNodes: false
270
+ });
271
+ }
272
+ clearPocket() {
273
+ const grid = this;
274
+ grid._selectedRowsDict = {};
275
+ delete grid._selectedRows;
276
+ grid._allRowsOnPageSelected = false;
277
+ grid.checkPocketState();
278
+ grid.refreshState();
279
+ if (grid.graph) grid.graph.triggerWave({
280
+ nodes: [grid],
281
+ withStartNodes: false
282
+ });
283
+ }
284
+ checkPocketState() {
285
+ const grid = this;
286
+ const keyColumn = grid.getKeyColumn();
287
+ if (Object.keys(grid._selectedRowsDict).length <= 0) {
288
+ grid._allRowsOnPageSelected = false;
289
+ return;
290
+ }
291
+ grid._allRowsOnPageSelected = true;
292
+ for (let row of grid.rows) if (grid._selectedRowsDict[row[keyColumn]] == null) {
293
+ grid._allRowsOnPageSelected = false;
294
+ break;
295
+ }
296
+ }
297
+ };
298
+ export { GridPK, GridPKClass };
@@ -0,0 +1,299 @@
1
+ const require_jsx_runtime$1 = require("./index7.js");
2
+ const require_Base = require("./index8.js");
3
+ const require_GridGR = require("./index20.js");
4
+ let react = require("react");
5
+ var import_jsx_runtime = require_jsx_runtime$1.default;
6
+ function GridPK(props) {
7
+ let grid = null;
8
+ const [gridState, setState] = (0, react.useState)({
9
+ grid,
10
+ ind: 0
11
+ });
12
+ grid = gridState.grid;
13
+ let needGetRows = false;
14
+ if (!grid || grid.uid !== props.uid && props.uid != null) {
15
+ grid = null;
16
+ if (props.findGrid) grid = props.findGrid(props);
17
+ grid = grid || new GridPKClass(props);
18
+ needGetRows = !props.noAutoRefresh;
19
+ }
20
+ if (props.init) props.init(grid);
21
+ grid.refreshState = function() {
22
+ setState({
23
+ grid,
24
+ ind: grid.stateind++
25
+ });
26
+ };
27
+ grid._waitingRows = needGetRows && (grid.rows.length <= 0 || grid.columns.length <= 0);
28
+ (0, react.useEffect)(() => {
29
+ grid.setupEvents(grid);
30
+ if (grid._waitingRows) grid.getRows({
31
+ filters: grid.collectFilters(),
32
+ grid
33
+ }).then((rows) => {
34
+ grid.rows = rows;
35
+ grid.afterGetRows();
36
+ grid.refreshState();
37
+ }).finally(() => {
38
+ grid._waitingRows = false;
39
+ grid.refreshState();
40
+ });
41
+ else if (grid.columns.length <= 0 && grid.getColumns) grid.prepareColumns().then(() => grid.refreshState());
42
+ return () => {
43
+ grid.clearEvents();
44
+ };
45
+ }, [grid]);
46
+ return grid.render();
47
+ }
48
+ var GridPKClass = class extends require_GridGR.GridGRClass {
49
+ constructor(props) {
50
+ super(props);
51
+ const grid = this;
52
+ grid._selectedRowsDict = {};
53
+ if (props.multi === true && props.keyField) {
54
+ grid.multi = true;
55
+ grid._allRowsOnPageSelected = false;
56
+ }
57
+ grid.opt.pocketButtonsClass = props.pocketButtonsClass || require_Base.BaseComponent.theme.pocketButtonsClass || "";
58
+ }
59
+ afterGetRowsEvents() {
60
+ const grid = this;
61
+ super.afterGetRowsEvents();
62
+ grid.checkPocketState();
63
+ }
64
+ setupEvents() {
65
+ const grid = this;
66
+ grid.clearEvents = function() {};
67
+ }
68
+ renderSelectColumnHeader() {
69
+ const grid = this;
70
+ return !grid.multi || !grid.pocketOpened ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("th", {
71
+ "grid-header": `${grid.id}_select_`,
72
+ className: `${grid.opt.columnClass ? grid.opt.columnClass : ""} grid-header-th`,
73
+ style: {
74
+ position: "sticky",
75
+ top: 0,
76
+ width: "1.3em",
77
+ overflow: "hidden",
78
+ verticalAlign: "top"
79
+ },
80
+ children: !grid._allRowsOnPageSelected ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
81
+ className: "grid-pocket-button-div",
82
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
83
+ className: (grid.opt.pocketButtonsClass || "grid-pocket-button") + " grid-pocket-button-all",
84
+ onClick: (e) => grid.selectAllRows(e),
85
+ children: "+"
86
+ })
87
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {})
88
+ }, `headerCellSelect_${grid.id}_${grid.keyAdd()}_`);
89
+ }
90
+ renderSelectColumn(row, rind) {
91
+ const grid = this;
92
+ return !grid.pocketOpened ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("td", { children: grid._selectedRowsDict[row[grid.keyField]] == null ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
93
+ className: "grid-pocket-button-div",
94
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
95
+ className: grid.opt.pocketButtonsClass || "grid-pocket-button",
96
+ onClick: (e) => grid.selectRow(e, row),
97
+ children: "+"
98
+ })
99
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {}) }, `gridCellSelect_${grid.id}_${rind}_${grid.keyAdd()}_`);
100
+ }
101
+ renderPocketClearColumn(row, rind) {
102
+ const grid = this;
103
+ return !grid.pocketOpened ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("td", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
104
+ className: "grid-pocket-button-div",
105
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
106
+ className: grid.opt.pocketButtonsClass || "grid-pocket-button",
107
+ onClick: (e) => grid.unselectRow(e, row),
108
+ children: "-"
109
+ })
110
+ }) }, `gridCellClear_${grid.id}_${rind}_${grid.keyAdd()}_`);
111
+ }
112
+ renderAdditionalRows() {
113
+ const grid = this;
114
+ if (!grid.pocketOpened) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {});
115
+ const hasPocketRows = Object.keys(grid._selectedRowsDict).length > 0;
116
+ if (!grid._selectedRows) {
117
+ grid._selectedRows = [];
118
+ grid.loadPocketRows();
119
+ }
120
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("tr", {
121
+ className: "",
122
+ style: {
123
+ borderTop: "0",
124
+ borderBottom: "0"
125
+ },
126
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("td", {
127
+ className: `${grid.opt.columnClass ? grid.opt.columnClass : ""} grid-header-th`,
128
+ style: {
129
+ position: "sticky",
130
+ top: 0,
131
+ width: "1.5em",
132
+ overflow: "hidden",
133
+ verticalAlign: "top"
134
+ },
135
+ children: hasPocketRows ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
136
+ className: "grid-pocket-button-div",
137
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
138
+ className: (grid.opt.pocketButtonsClass || "grid-pocket-button") + " grid-pocket-button-all",
139
+ onClick: (e) => grid.clearPocket(e),
140
+ children: "-"
141
+ })
142
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {})
143
+ }, `gridPocketSysCol_${grid.id}_`), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("td", {
144
+ colSpan: grid.columns ? grid.columns.length : 0,
145
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
146
+ className: "grid-pocket-title",
147
+ children: `${this.translate("Pocket")} (${grid._selectedRows.length})`
148
+ })
149
+ })]
150
+ }, `gridPocketDivider_${grid.id}_`), grid._selectedRows.map((row, rind) => {
151
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("tr", { children: grid.renderPocketRow(row, rind) }, `gridPocketRow_${grid.id}_${rind}_${row[grid.keyField]}_${grid.keyAdd()}_`);
152
+ })] });
153
+ }
154
+ renderRow(row, rowInd, selected) {
155
+ const grid = this;
156
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [grid.multi && grid.pocketOpened ? grid.renderSelectColumn(row) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {}), super.renderRow(row, rowInd, selected)] });
157
+ }
158
+ loadPocketRows() {
159
+ const grid = this;
160
+ for (let id in grid._selectedRowsDict) {
161
+ let row = grid._selectedRowsDict[id];
162
+ grid._selectedRows.push(row);
163
+ }
164
+ }
165
+ renderPocketRow(row, rowInd) {
166
+ const grid = this;
167
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [grid.renderPocketClearColumn(row, rowInd), grid.columns.map((col, cind) => {
168
+ return col.visible === false ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("td", { children: grid.renderCell(grid, col, row, false) }, `gridPocketCell_${grid.id}_${rowInd}_${cind}_${grid.keyAdd()}_${row[grid.keyField]}_`);
169
+ })] });
170
+ }
171
+ getGridWidth() {
172
+ const grid = this;
173
+ let w = super.getGridWidth();
174
+ if (grid.multi) w += 20;
175
+ grid._currW = w;
176
+ return grid._currW;
177
+ }
178
+ selectedValue(delim) {
179
+ const grid = this;
180
+ const keyColumn = grid.getKeyColumn();
181
+ if (!grid.multi || !grid.pocketOpened) {
182
+ const row = grid.selectedRow();
183
+ return row != null ? row[keyColumn] : "";
184
+ } else {
185
+ delim = delim || ",";
186
+ const res = [];
187
+ for (let id in grid._selectedRowsDict) {
188
+ let row = grid._selectedRowsDict[id];
189
+ res.push(row[keyColumn]);
190
+ }
191
+ return res.join(delim);
192
+ }
193
+ }
194
+ selectedText(delim) {
195
+ const grid = this;
196
+ if (!grid.nameField) return "";
197
+ if (!grid.multi || !grid.pocketOpened) {
198
+ const row = grid.selectedRow();
199
+ return row != null ? row[grid.nameField] : "";
200
+ } else {
201
+ delim = delim || ",";
202
+ const res = [];
203
+ for (let id in grid._selectedRowsDict) {
204
+ let row = grid._selectedRowsDict[id];
205
+ res.push(row[grid.nameField]);
206
+ }
207
+ return res.join(delim);
208
+ }
209
+ }
210
+ selectedValues(texts) {
211
+ const grid = this;
212
+ texts = texts || [];
213
+ const keyColumn = grid.getKeyColumn();
214
+ if (!grid.multi || !grid.pocketOpened) {
215
+ const row = grid.selectedRow();
216
+ return row != null ? [{
217
+ value: row[keyColumn],
218
+ label: row[grid.nameField]
219
+ }] : [];
220
+ } else {
221
+ const res = [];
222
+ for (let id in grid._selectedRowsDict) {
223
+ let row = grid._selectedRowsDict[id];
224
+ let text = row[grid.nameField];
225
+ texts.push(text);
226
+ res.push({
227
+ value: row[keyColumn],
228
+ label: text
229
+ });
230
+ }
231
+ return res;
232
+ }
233
+ }
234
+ selectRow(e, row) {
235
+ const grid = this;
236
+ const keyColumn = grid.getKeyColumn();
237
+ delete grid._selectedRows;
238
+ grid._selectedRowsDict[row[keyColumn]] = row;
239
+ grid.checkPocketState();
240
+ grid.refreshState();
241
+ if (grid.graph) grid.graph.triggerWave({
242
+ nodes: [grid],
243
+ withStartNodes: false
244
+ });
245
+ }
246
+ unselectRow(e, row) {
247
+ const grid = this;
248
+ const keyColumn = grid.getKeyColumn();
249
+ delete grid._selectedRows;
250
+ delete grid._selectedRowsDict[row[keyColumn]];
251
+ grid._allRowsOnPageSelected = false;
252
+ grid.checkPocketState();
253
+ grid.refreshState();
254
+ if (grid.graph) grid.graph.triggerWave({
255
+ nodes: [grid],
256
+ withStartNodes: false
257
+ });
258
+ }
259
+ selectAllRows() {
260
+ const grid = this;
261
+ const keyColumn = grid.getKeyColumn();
262
+ delete grid._selectedRows;
263
+ grid._allRowsOnPageSelected = true;
264
+ for (let row of grid.rows) grid._selectedRowsDict[row[keyColumn]] = row;
265
+ grid.checkPocketState();
266
+ grid.refreshState();
267
+ if (grid.graph) grid.graph.triggerWave({
268
+ nodes: [grid],
269
+ withStartNodes: false
270
+ });
271
+ }
272
+ clearPocket() {
273
+ const grid = this;
274
+ grid._selectedRowsDict = {};
275
+ delete grid._selectedRows;
276
+ grid._allRowsOnPageSelected = false;
277
+ grid.checkPocketState();
278
+ grid.refreshState();
279
+ if (grid.graph) grid.graph.triggerWave({
280
+ nodes: [grid],
281
+ withStartNodes: false
282
+ });
283
+ }
284
+ checkPocketState() {
285
+ const grid = this;
286
+ const keyColumn = grid.getKeyColumn();
287
+ if (Object.keys(grid._selectedRowsDict).length <= 0) {
288
+ grid._allRowsOnPageSelected = false;
289
+ return;
290
+ }
291
+ grid._allRowsOnPageSelected = true;
292
+ for (let row of grid.rows) if (grid._selectedRowsDict[row[keyColumn]] == null) {
293
+ grid._allRowsOnPageSelected = false;
294
+ break;
295
+ }
296
+ }
297
+ };
298
+ exports.GridPK = GridPK;
299
+ exports.GridPKClass = GridPKClass;