@hpcc-js/dgrid 3.2.10 → 3.2.11

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.
package/dist/index.js CHANGED
@@ -1,14 +1,25 @@
1
1
  var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key != "symbol" ? key + "" : key, value);
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
5
  import { HTMLWidget, Palette, PropertyExt, format, select } from "@hpcc-js/common";
5
6
  import { hashSum } from "@hpcc-js/util";
6
- const PKG_NAME = "@hpcc-js/dgrid", PKG_VERSION = "3.1.0", BUILD_VERSION = "3.2.1";
7
- globalThis["@hpcc-js/dgrid-shim"] || console.error('dgrid-shim not loaded, please add `<script src="https://cdn.jsdelivr.net/npm/@hpcc-js/dgrid-shim/dist/index.min.js"><\/script>` or similar to your HTML file');
8
- const Deferred = globalThis["@hpcc-js/dgrid-shim"].Deferred, Memory = globalThis["@hpcc-js/dgrid-shim"].Memory, QueryResults = globalThis["@hpcc-js/dgrid-shim"].QueryResults, Grid = globalThis["@hpcc-js/dgrid-shim"].Grid, PagingGrid = globalThis["@hpcc-js/dgrid-shim"].PagingGrid, domConstruct = globalThis["@hpcc-js/dgrid-shim"].domConstruct;
7
+ const PKG_NAME = "@hpcc-js/dgrid";
8
+ const PKG_VERSION = "3.1.0";
9
+ const BUILD_VERSION = "3.2.1";
10
+ if (!globalThis["@hpcc-js/dgrid-shim"]) {
11
+ console.error('dgrid-shim not loaded, please add `<script src="https://cdn.jsdelivr.net/npm/@hpcc-js/dgrid-shim/dist/index.min.js"><\/script>` or similar to your HTML file');
12
+ }
13
+ const Deferred = globalThis["@hpcc-js/dgrid-shim"].Deferred;
14
+ const Memory = globalThis["@hpcc-js/dgrid-shim"].Memory;
15
+ const QueryResults = globalThis["@hpcc-js/dgrid-shim"].QueryResults;
16
+ const Grid = globalThis["@hpcc-js/dgrid-shim"].Grid;
17
+ const PagingGrid = globalThis["@hpcc-js/dgrid-shim"].PagingGrid;
18
+ const domConstruct = globalThis["@hpcc-js/dgrid-shim"].domConstruct;
9
19
  function entitiesEncode(str) {
10
20
  return String(str).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
11
21
  }
22
+ __name(entitiesEncode, "entitiesEncode");
12
23
  function safeEncode(item) {
13
24
  switch (Object.prototype.toString.call(item)) {
14
25
  case "[object Undefined]":
@@ -22,100 +33,143 @@ function safeEncode(item) {
22
33
  }
23
34
  return item;
24
35
  }
36
+ __name(safeEncode, "safeEncode");
25
37
  function isArray(obj) {
26
38
  return obj instanceof Array;
27
39
  }
28
- const LINE_SPLITTER = "<br><hr class='dgrid-fakeline'>", LINE_SPLITTER2 = "<br><hr class='dgrid-fakeline' style='visibility: hidden'>";
29
- class RowFormatter {
40
+ __name(isArray, "isArray");
41
+ const LINE_SPLITTER = "<br><hr class='dgrid-fakeline'>";
42
+ const LINE_SPLITTER2 = "<br><hr class='dgrid-fakeline' style='visibility: hidden'>";
43
+ const _RowFormatter = class _RowFormatter {
30
44
  constructor(columns, _renderHtml) {
31
45
  __publicField(this, "_columns");
32
46
  __publicField(this, "_flattenedColumns", []);
33
47
  __publicField(this, "_columnIdx", {});
34
48
  __publicField(this, "_formattedRow", {});
35
- this._renderHtml = _renderHtml, this._columns = columns, this.flattenColumns(columns);
49
+ this._renderHtml = _renderHtml;
50
+ this._columns = columns;
51
+ this.flattenColumns(columns);
36
52
  }
37
53
  flattenColumns(columns) {
38
- for (const column of columns)
54
+ for (const column of columns) {
39
55
  this.flattenColumn(column);
56
+ }
40
57
  }
41
58
  flattenColumn(column) {
42
- if (column.children)
59
+ if (column.children) {
43
60
  for (const childColumn of column.children) this.flattenColumn(childColumn);
44
- else
45
- this._columnIdx[column.field] = this._flattenedColumns.length, this._flattenedColumns.push(column.field);
61
+ } else {
62
+ this._columnIdx[column.field] = this._flattenedColumns.length;
63
+ this._flattenedColumns.push(column.field);
64
+ }
46
65
  }
47
66
  format(row) {
48
- return this._formattedRow = {}, this.formatRow(this._columns, row), this.row();
67
+ this._formattedRow = {};
68
+ this.formatRow(this._columns, row);
69
+ return this.row();
49
70
  }
50
71
  calcDepth(columns, row) {
51
72
  let maxChildDepth = 1;
52
- for (const column of columns)
73
+ for (const column of columns) {
53
74
  if (column.children && row[column.leafID]) {
54
- let childDepth = 0, childRows = [];
55
- isArray(row[column.leafID]) ? childRows = row[column.leafID] : isArray(row[column.leafID].Row) && (childRows = row[column.leafID].Row);
56
- for (const childRow of childRows)
75
+ let childDepth = 0;
76
+ let childRows = [];
77
+ if (isArray(row[column.leafID])) {
78
+ childRows = row[column.leafID];
79
+ } else if (isArray(row[column.leafID].Row)) {
80
+ childRows = row[column.leafID].Row;
81
+ }
82
+ for (const childRow of childRows) {
57
83
  childDepth += this.calcDepth(column.children, childRow);
84
+ }
58
85
  maxChildDepth = Math.max(maxChildDepth, childDepth);
59
86
  }
87
+ }
60
88
  return maxChildDepth;
61
89
  }
62
90
  formatCell(column, cell, maxChildDepth) {
63
91
  if (column.children) {
64
92
  let childDepth = 0;
65
- isArray(cell) || (isArray(cell.Row) ? cell = cell.Row : cell = [cell]);
66
- for (const row of cell)
93
+ if (!isArray(cell)) {
94
+ if (isArray(cell.Row)) {
95
+ cell = cell.Row;
96
+ } else {
97
+ cell = [cell];
98
+ }
99
+ }
100
+ for (const row of cell) {
67
101
  childDepth = Math.max(childDepth, this.formatRow(column.children, row));
68
- } else if (column.isSet && (cell = JSON.stringify(cell.Item)), this._formattedRow[column.field] === void 0 ? this._formattedRow[column.field] = "" + (cell === void 0 ? "" : this._renderHtml ? cell : safeEncode(cell)) : (this._formattedRow[column.field] += LINE_SPLITTER, this._formattedRow[column.field] += "" + (cell === void 0 ? "" : this._renderHtml ? cell : safeEncode(cell))), maxChildDepth > 1) {
69
- const paddingArr = [];
70
- paddingArr.length = maxChildDepth;
71
- const padding = paddingArr.join(LINE_SPLITTER2);
72
- this._formattedRow[column.field] += padding;
102
+ }
103
+ } else {
104
+ if (column.isSet) {
105
+ cell = JSON.stringify(cell.Item);
106
+ }
107
+ if (this._formattedRow[column.field] === void 0) {
108
+ this._formattedRow[column.field] = "" + (cell === void 0 ? "" : this._renderHtml ? cell : safeEncode(cell));
109
+ } else {
110
+ this._formattedRow[column.field] += LINE_SPLITTER;
111
+ this._formattedRow[column.field] += "" + (cell === void 0 ? "" : this._renderHtml ? cell : safeEncode(cell));
112
+ }
113
+ if (maxChildDepth > 1) {
114
+ const paddingArr = [];
115
+ paddingArr.length = maxChildDepth;
116
+ const padding = paddingArr.join(LINE_SPLITTER2);
117
+ this._formattedRow[column.field] += padding;
118
+ }
73
119
  }
74
120
  }
75
121
  formatRow(columns, row = [], rowIdx = 0) {
76
122
  const maxChildDepth = this.calcDepth(columns, row);
77
- for (const column of columns)
123
+ for (const column of columns) {
78
124
  this.formatCell(column, row[column.leafID], maxChildDepth);
125
+ }
79
126
  return maxChildDepth;
80
127
  }
81
128
  row() {
82
129
  const retVal = {};
83
- for (const column of this._flattenedColumns)
130
+ for (const column of this._flattenedColumns) {
84
131
  retVal[column] = this._formattedRow[column];
132
+ }
85
133
  return retVal;
86
134
  }
87
- }
88
- class DBStore {
135
+ };
136
+ __name(_RowFormatter, "RowFormatter");
137
+ let RowFormatter = _RowFormatter;
138
+ const _DBStore = class _DBStore {
89
139
  constructor(db) {
90
140
  __publicField(this, "_db");
91
141
  __publicField(this, "Model");
92
142
  __publicField(this, "idProperty");
93
- __publicField(this, "_renderHtml", !0);
143
+ __publicField(this, "_renderHtml", true);
94
144
  this._db = db;
95
145
  }
96
146
  renderHtml(_) {
97
147
  this._renderHtml = _;
98
148
  }
99
149
  db2Columns(sortable, fields, prefix = "", formatter, renderCell) {
100
- return fields ? fields.map((field, idx) => {
150
+ if (!fields) return [];
151
+ return fields.map((field, idx) => {
152
+ const label = field.label();
101
153
  const column = {
102
- label: field.label(),
154
+ label,
103
155
  leafID: "" + idx,
104
156
  field: prefix + idx,
105
157
  idx,
106
158
  className: "resultGridCell",
107
159
  sortable,
108
- isSet: !1
160
+ isSet: false
109
161
  };
110
162
  switch (field.type()) {
111
163
  case "nested":
112
- column.children = this.db2Columns(!1, field.children(), prefix + idx + "_", formatter), column.sortable = !1;
164
+ column.children = this.db2Columns(false, field.children(), prefix + idx + "_", formatter);
165
+ column.sortable = false;
113
166
  break;
114
167
  default:
115
- column.formatter = formatter, column.renderCell = renderCell;
168
+ column.formatter = formatter;
169
+ column.renderCell = renderCell;
116
170
  }
117
171
  return column;
118
- }) : [];
172
+ });
119
173
  }
120
174
  columns(sortable, formatter, renderCell) {
121
175
  return this.db2Columns(sortable, this._db.fields(), "", formatter, renderCell);
@@ -127,29 +181,39 @@ class DBStore {
127
181
  return this._db.row(row + 1);
128
182
  }
129
183
  _fetchRange(opts) {
130
- const rowFormatter = new RowFormatter(this.columns(!1), this._renderHtml);
131
- return this._db.data().slice(opts.start, opts.end).map((row, idx) => ({
132
- ...rowFormatter.format(row),
133
- __hpcc_id: opts.start + idx,
134
- __origRow: row
135
- }));
184
+ const rowFormatter = new RowFormatter(this.columns(false), this._renderHtml);
185
+ return this._db.data().slice(opts.start, opts.end).map((row, idx) => {
186
+ const formattedRow = rowFormatter.format(row);
187
+ return {
188
+ ...formattedRow,
189
+ __hpcc_id: opts.start + idx,
190
+ __origRow: row
191
+ };
192
+ });
136
193
  }
137
194
  fetchRange(opts) {
138
- const data = this._fetchRange(opts), retVal = new Deferred();
139
- return retVal.totalLength = new Deferred(), retVal.resolve(data), retVal.totalLength.resolve(this._db.length() - 1), retVal;
195
+ const data = this._fetchRange(opts);
196
+ const retVal = new Deferred();
197
+ retVal.totalLength = new Deferred();
198
+ retVal.resolve(data);
199
+ retVal.totalLength.resolve(this._db.length() - 1);
200
+ return retVal;
140
201
  }
141
202
  sort(opts) {
142
- return this._db.data().sort((l, r) => {
203
+ this._db.data().sort((l, r) => {
143
204
  for (const item of opts) {
144
205
  const idx = item.property;
145
206
  if (l[idx] === void 0 && r[idx] !== void 0 || l[idx] < r[idx]) return item.descending ? 1 : -1;
146
207
  if (l[idx] !== void 0 && r[idx] === void 0 || l[idx] > r[idx]) return item.descending ? -1 : 1;
147
208
  }
148
209
  return 0;
149
- }), this;
210
+ });
211
+ return this;
150
212
  }
151
- }
152
- class Common extends HTMLWidget {
213
+ };
214
+ __name(_DBStore, "DBStore");
215
+ let DBStore = _DBStore;
216
+ const _Common = class _Common extends HTMLWidget {
153
217
  constructor() {
154
218
  super();
155
219
  __publicField(this, "_columns", []);
@@ -171,65 +235,105 @@ class Common extends HTMLWidget {
171
235
  var _a;
172
236
  if (!arguments.length) {
173
237
  const retVal = [];
174
- for (const id in this._dgrid.selection)
238
+ for (const id in this._dgrid.selection) {
175
239
  if (this._dgrid.selection[id]) {
176
240
  const storeItem = this._store.get(+id);
177
241
  retVal.push(this.rowToObj(storeItem));
178
242
  }
243
+ }
179
244
  return retVal;
180
245
  }
181
- this._supressEvents = !0, (_a = this._dgrid) == null || _a.clearSelection();
182
- let first = !0;
246
+ this._supressEvents = true;
247
+ (_a = this._dgrid) == null ? void 0 : _a.clearSelection();
248
+ let first = true;
183
249
  this.data().forEach((row, idx) => {
184
250
  var _a2, _b;
185
251
  if (_.indexOf(row) >= 0) {
186
252
  const row2 = (_a2 = this._dgrid) == null ? void 0 : _a2.row(idx);
187
- row2.element && first && (first = !1, row2.element.scrollIntoView()), (_b = this._dgrid) == null || _b.select(idx);
253
+ if (row2.element && first) {
254
+ first = false;
255
+ row2.element.scrollIntoView();
256
+ }
257
+ (_b = this._dgrid) == null ? void 0 : _b.select(idx);
188
258
  }
189
- }), this._supressEvents = !1;
259
+ });
260
+ this._supressEvents = false;
190
261
  }
191
262
  enter(domNode, element) {
192
- super.enter(domNode, element), this._dgridDiv = element.append("div").attr("class", "flat");
263
+ super.enter(domNode, element);
264
+ this._dgridDiv = element.append("div").attr("class", "flat");
193
265
  }
194
266
  update(domNode, element) {
195
- super.update(domNode, element), this._store.renderHtml(this.renderHtml()), (!this._dgrid || this._prevPaging !== this.pagination() || this._prevSortBy !== this.sortBy() || this._prevSortByDescending !== this.sortByDescending() || this._prevMultiSelect !== this.multiSelect()) && (this._prevPaging = this.pagination(), this._prevSortBy = this.sortBy(), this._prevSortByDescending = this.sortByDescending(), this._prevMultiSelect = this.multiSelect(), this._dgrid && (this._dgrid.destroy(), this._dgridDiv = element.append("div").attr("class", "flat")), this._dgrid = new (this._prevPaging ? PagingGrid : Grid)({
196
- columns: this._columns,
197
- collection: this._store,
198
- sort: this.formatSortBy(),
199
- selectionMode: this.multiSelect() ? "extended" : "single",
200
- deselectOnRefresh: !0,
201
- cellNavigation: !1,
202
- pagingLinks: 1,
203
- pagingTextBox: !0,
204
- previousNextArrows: !0,
205
- firstLastArrows: !0,
206
- rowsPerPage: this.pageSize(),
207
- pageSizeOptions: [1, 10, 25, 50, 100, 1e3]
208
- }, this._dgridDiv.node()), this._dgrid.on("dgrid-select", (evt) => {
209
- this._supressEvents || evt.rows && evt.rows.length && evt.rows[0].data && this.click(this.rowToObj(evt.rows[0].data.__origRow), "", !0, { selection: this.selection() });
210
- }), this._dgrid.on("dgrid-deselect", (evt) => {
211
- this._supressEvents || evt.rows && evt.rows.length && evt.rows[0].data && this.click(this.rowToObj(evt.rows[0].data.__origRow), "", !1, { selection: this.selection() });
212
- }), this._dgrid.refresh({})), this._dgrid.noDataMessage = `<span class='dojoxGridNoData'>${this.noDataMessage()}</span>`, this._dgrid.loadingMessage = `<span class='dojoxGridNoData'>${this.loadingMessage()}</span>`, this._dgridDiv.style("width", this.width() + "px").style("height", this.height() - 2 + "px"), this._dgrid.resize();
267
+ super.update(domNode, element);
268
+ this._store.renderHtml(this.renderHtml());
269
+ if (!this._dgrid || this._prevPaging !== this.pagination() || this._prevSortBy !== this.sortBy() || this._prevSortByDescending !== this.sortByDescending() || this._prevMultiSelect !== this.multiSelect()) {
270
+ this._prevPaging = this.pagination();
271
+ this._prevSortBy = this.sortBy();
272
+ this._prevSortByDescending = this.sortByDescending();
273
+ this._prevMultiSelect = this.multiSelect();
274
+ if (this._dgrid) {
275
+ this._dgrid.destroy();
276
+ this._dgridDiv = element.append("div").attr("class", "flat");
277
+ }
278
+ this._dgrid = new (this._prevPaging ? PagingGrid : Grid)({
279
+ columns: this._columns,
280
+ collection: this._store,
281
+ sort: this.formatSortBy(),
282
+ selectionMode: this.multiSelect() ? "extended" : "single",
283
+ deselectOnRefresh: true,
284
+ cellNavigation: false,
285
+ pagingLinks: 1,
286
+ pagingTextBox: true,
287
+ previousNextArrows: true,
288
+ firstLastArrows: true,
289
+ rowsPerPage: this.pageSize(),
290
+ pageSizeOptions: [1, 10, 25, 50, 100, 1e3]
291
+ }, this._dgridDiv.node());
292
+ this._dgrid.on("dgrid-select", (evt) => {
293
+ if (this._supressEvents) return;
294
+ if (evt.rows && evt.rows.length && evt.rows[0].data) {
295
+ this.click(this.rowToObj(evt.rows[0].data.__origRow), "", true, { selection: this.selection() });
296
+ }
297
+ });
298
+ this._dgrid.on("dgrid-deselect", (evt) => {
299
+ if (this._supressEvents) return;
300
+ if (evt.rows && evt.rows.length && evt.rows[0].data) {
301
+ this.click(this.rowToObj(evt.rows[0].data.__origRow), "", false, { selection: this.selection() });
302
+ }
303
+ });
304
+ this._dgrid.refresh({});
305
+ }
306
+ this._dgrid.noDataMessage = `<span class='dojoxGridNoData'>${this.noDataMessage()}</span>`;
307
+ this._dgrid.loadingMessage = `<span class='dojoxGridNoData'>${this.loadingMessage()}</span>`;
308
+ this._dgridDiv.style("width", this.width() + "px").style("height", this.height() - 2 + "px");
309
+ this._dgrid.resize();
213
310
  }
214
311
  exit(domNode, element) {
215
- delete this._prevPaging, this._dgrid && (this._dgrid.destroy(), delete this._dgrid), super.exit(domNode, element);
312
+ delete this._prevPaging;
313
+ if (this._dgrid) {
314
+ this._dgrid.destroy();
315
+ delete this._dgrid;
316
+ }
317
+ super.exit(domNode, element);
216
318
  }
217
319
  click(row, col, sel, more) {
218
320
  }
219
- }
321
+ };
322
+ __name(_Common, "Common");
323
+ let Common = _Common;
220
324
  Common.prototype._class += " dgrid_Common";
221
325
  Common.prototype.publish("noDataMessage", "...empty...", "string", "No Data Message");
222
326
  Common.prototype.publish("loadingMessage", "loading...", "string", "Loading Message");
223
- Common.prototype.publish("pagination", !1, "boolean", "Enable paging");
327
+ Common.prototype.publish("pagination", false, "boolean", "Enable paging");
224
328
  Common.prototype.publish("pageSize", 25, "number", "Page size");
225
- Common.prototype.publish("sortable", !1, "boolean", "Enable sorting by column");
329
+ Common.prototype.publish("sortable", false, "boolean", "Enable sorting by column");
226
330
  Common.prototype.publish("sortBy", null, "set", "Default 'sort by' Column ID", function() {
227
331
  return this.columns();
228
- }, { optional: !0 });
229
- Common.prototype.publish("sortByDescending", !1, "boolean", "Default 'sort by' descending", void 0, { disable: (self) => !self.sortBy() });
230
- Common.prototype.publish("multiSelect", !1, "boolean", "Multiple Selection");
231
- Common.prototype.publish("renderHtml", !0, "boolean", "Render HTML");
232
- class DatasourceCache {
332
+ }, { optional: true });
333
+ Common.prototype.publish("sortByDescending", false, "boolean", "Default 'sort by' descending", void 0, { disable: /* @__PURE__ */ __name((self) => !self.sortBy(), "disable") });
334
+ Common.prototype.publish("multiSelect", false, "boolean", "Multiple Selection");
335
+ Common.prototype.publish("renderHtml", true, "boolean", "Render HTML");
336
+ const _DatasourceCache = class _DatasourceCache {
233
337
  constructor(datasource) {
234
338
  __publicField(this, "_datasource");
235
339
  __publicField(this, "_prevHash");
@@ -238,7 +342,10 @@ class DatasourceCache {
238
342
  }
239
343
  validateCache() {
240
344
  const hash = this.hash();
241
- this._prevHash !== hash && (this._prevHash = hash, this._fetchCache = {});
345
+ if (this._prevHash !== hash) {
346
+ this._prevHash = hash;
347
+ this._fetchCache = {};
348
+ }
242
349
  }
243
350
  id() {
244
351
  return this._datasource.id();
@@ -259,66 +366,94 @@ class DatasourceCache {
259
366
  this.validateCache();
260
367
  const cacheID = `${from}->${count}`;
261
368
  let retVal = this._fetchCache[cacheID];
262
- return retVal || (retVal = this._datasource.fetch(from, count), this._fetchCache[cacheID] = retVal), retVal;
369
+ if (!retVal) {
370
+ retVal = this._datasource.fetch(from, count);
371
+ this._fetchCache[cacheID] = retVal;
372
+ }
373
+ return retVal;
263
374
  }
264
- }
265
- class DatasourceStore {
375
+ };
376
+ __name(_DatasourceCache, "DatasourceCache");
377
+ let DatasourceCache = _DatasourceCache;
378
+ const _DatasourceStore = class _DatasourceStore {
266
379
  constructor(datasource, renderHtml) {
267
380
  __publicField(this, "_datasource");
268
381
  __publicField(this, "_columnsIdx", {});
269
382
  __publicField(this, "_columns");
270
383
  __publicField(this, "rowFormatter");
271
- this._datasource = new DatasourceCache(datasource), this._columnsIdx = {}, this._columns = this.db2Columns(this._datasource.outFields()).map((column, idx) => (this._columnsIdx[column.field] = idx, column)), this.rowFormatter = new RowFormatter(this._columns, renderHtml);
384
+ this._datasource = new DatasourceCache(datasource);
385
+ this._columnsIdx = {};
386
+ this._columns = this.db2Columns(this._datasource.outFields()).map((column, idx) => {
387
+ this._columnsIdx[column.field] = idx;
388
+ return column;
389
+ });
390
+ this.rowFormatter = new RowFormatter(this._columns, renderHtml);
272
391
  }
273
392
  columns() {
274
393
  return this._columns;
275
394
  }
276
395
  db2Columns(fields, prefix = "") {
277
- return fields ? fields.map((field, idx) => {
396
+ if (!fields) return [];
397
+ return fields.map((field, idx) => {
278
398
  const column = {
279
399
  field: prefix + field.id,
280
400
  leafID: field.id,
281
401
  label: field.id,
282
402
  idx,
283
403
  className: "resultGridCell",
284
- sortable: !0,
285
- isSet: !1
404
+ sortable: true,
405
+ isSet: false
286
406
  };
287
- return field.type === "dataset" ? column.children = this.db2Columns(field.children, prefix + field.id + "_") : column.formatter = (cell, row) => {
288
- switch (typeof cell) {
289
- case "string":
290
- return cell.replace(/\t/g, "&nbsp;&nbsp;&nbsp;&nbsp;");
291
- }
292
- return cell;
293
- }, column;
294
- }) : [];
407
+ if (field.type === "dataset") {
408
+ column.children = this.db2Columns(field.children, prefix + field.id + "_");
409
+ } else {
410
+ column.formatter = (cell, row) => {
411
+ switch (typeof cell) {
412
+ case "string":
413
+ return cell.replace(/\t/g, "&nbsp;&nbsp;&nbsp;&nbsp;");
414
+ }
415
+ return cell;
416
+ };
417
+ }
418
+ return column;
419
+ });
295
420
  }
296
421
  getIdentity(row) {
297
422
  return row.__hpcc_id;
298
423
  }
299
424
  _request(start, end) {
300
- return this._datasource ? this._datasource.fetch(start, end - start).then((response) => ({
301
- totalLength: this._datasource.total(),
302
- data: response.map((row, idx) => {
303
- const formattedRow = this.rowFormatter.format(row);
304
- return formattedRow.__hpcc_id = start + idx, formattedRow.__origRow = row, formattedRow;
305
- })
306
- })) : Promise.resolve({ totalLength: 0, data: [] });
425
+ if (!this._datasource) return Promise.resolve({ totalLength: 0, data: [] });
426
+ const retVal = this._datasource.fetch(start, end - start).then((response) => {
427
+ return {
428
+ totalLength: this._datasource.total(),
429
+ data: response.map((row, idx) => {
430
+ const formattedRow = this.rowFormatter.format(row);
431
+ formattedRow.__hpcc_id = start + idx;
432
+ formattedRow.__origRow = row;
433
+ return formattedRow;
434
+ })
435
+ };
436
+ });
437
+ return retVal;
307
438
  }
308
439
  fetchRange(options) {
309
440
  const retVal = new Deferred();
310
- return this._request(options.start, options.end).then((response) => retVal.resolve(response)), new QueryResults(retVal.then((response) => response.data), {
441
+ this._request(options.start, options.end).then((response) => retVal.resolve(response));
442
+ return new QueryResults(retVal.then((response) => response.data), {
311
443
  totalLength: retVal.then((response) => response.totalLength)
312
444
  });
313
445
  }
314
- }
315
- class DatasourceTable extends Common {
446
+ };
447
+ __name(_DatasourceStore, "DatasourceStore");
448
+ let DatasourceStore = _DatasourceStore;
449
+ const _DatasourceTable = class _DatasourceTable extends Common {
316
450
  constructor() {
317
451
  super();
318
452
  __publicField(this, "_prevDatasource");
319
453
  }
320
454
  invalidate() {
321
- return delete this._prevDatasource, this;
455
+ delete this._prevDatasource;
456
+ return this;
322
457
  }
323
458
  enter(domNode, element) {
324
459
  super.enter(domNode, element);
@@ -328,28 +463,45 @@ class DatasourceTable extends Common {
328
463
  }
329
464
  render(callback) {
330
465
  return super.render((w) => {
331
- if (this._prevDatasource !== this.datasource())
332
- if (this._dgrid.set("collection", new Memory()), this._dgrid.set("columns", []), this._prevDatasource = this.datasource(), this._prevDatasource) {
466
+ if (this._prevDatasource !== this.datasource()) {
467
+ this._dgrid.set("collection", new Memory());
468
+ this._dgrid.set("columns", []);
469
+ this._prevDatasource = this.datasource();
470
+ if (this._prevDatasource) {
333
471
  const store = new DatasourceStore(this._prevDatasource, this.renderHtml());
334
- this._dgrid.set("columns", store.columns()), this._dgrid.set("collection", store), callback && callback(w);
335
- } else
336
- callback && callback(w);
337
- else
338
- callback && callback(w);
472
+ this._dgrid.set("columns", store.columns());
473
+ this._dgrid.set("collection", store);
474
+ if (callback) {
475
+ callback(w);
476
+ }
477
+ } else {
478
+ if (callback) {
479
+ callback(w);
480
+ }
481
+ }
482
+ } else {
483
+ if (callback) {
484
+ callback(w);
485
+ }
486
+ }
339
487
  });
340
488
  }
341
489
  click(row, col, sel) {
342
490
  }
343
- }
491
+ };
492
+ __name(_DatasourceTable, "DatasourceTable");
493
+ let DatasourceTable = _DatasourceTable;
344
494
  DatasourceTable.prototype._class += " dgrid_DatasourceTable";
345
495
  DatasourceTable.prototype.publish("datasource", null, "object", "Datasource");
346
- class ColumnFormat extends PropertyExt {
496
+ const _ColumnFormat = class _ColumnFormat extends PropertyExt {
347
497
  constructor() {
348
498
  super();
349
499
  __publicField(this, "_owner");
350
500
  }
351
501
  owner(_) {
352
- return arguments.length ? (this._owner = _, this) : this._owner;
502
+ if (!arguments.length) return this._owner;
503
+ this._owner = _;
504
+ return this;
353
505
  }
354
506
  valid() {
355
507
  return !!this.column();
@@ -359,50 +511,66 @@ class ColumnFormat extends PropertyExt {
359
511
  if (this.valid() && this.format()) {
360
512
  const numberFormatter = format(this.format());
361
513
  return function(cell, row) {
362
- return typeof cell == "number" ? numberFormatter(cell) : defaultFormatter.call(this, cell, row);
514
+ if (typeof cell === "number")
515
+ return numberFormatter(cell);
516
+ return defaultFormatter.call(this, cell, row);
363
517
  };
364
518
  }
365
519
  return defaultFormatter;
366
520
  }
367
521
  renderCellFunc() {
368
- const defaultRenderCell = this._owner.renderCellFunc(), defaultFormatter = this.formatterFunc();
522
+ const defaultRenderCell = this._owner.renderCellFunc();
523
+ const defaultFormatter = this.formatterFunc();
369
524
  if (this.valid() && this.paletteID()) {
370
- const columns = this._owner.columns(), palette = Palette.rainbow(this.paletteID()), min = this.min(), max = this.max(), valueColIdx = this.valueColumn() ? columns.indexOf(this.valueColumn()) : void 0;
525
+ const columns = this._owner.columns();
526
+ const palette = Palette.rainbow(this.paletteID());
527
+ const min = this.min();
528
+ const max = this.max();
529
+ const valueColIdx = this.valueColumn() ? columns.indexOf(this.valueColumn()) : void 0;
371
530
  return function(row, cell, cellElement) {
372
- defaultRenderCell && defaultRenderCell.call(this, row, cell, cellElement);
373
- const value = valueColIdx ? row.__origRow[valueColIdx] : cell, background = palette(value, min, max), cellText = defaultFormatter.call(this, cell, row);
531
+ if (defaultRenderCell) {
532
+ defaultRenderCell.call(this, row, cell, cellElement);
533
+ }
534
+ const value = valueColIdx ? row.__origRow[valueColIdx] : cell;
535
+ const background = palette(value, min, max);
536
+ const cellText = defaultFormatter.call(this, cell, row);
374
537
  select(cellElement).style("background", background).style("color", background && Palette.textColor(background)).text((cellText == null ? void 0 : cellText.html) ?? cellText ?? cell);
375
538
  };
376
539
  }
377
540
  return defaultRenderCell;
378
541
  }
379
- }
542
+ };
543
+ __name(_ColumnFormat, "ColumnFormat");
544
+ let ColumnFormat = _ColumnFormat;
380
545
  ColumnFormat.prototype._class += " dgrid_Table.ColumnFormat";
381
546
  ColumnFormat.prototype.publish("column", null, "set", "Column", function() {
382
547
  return this._owner.columns();
383
- }, { optional: !0 });
384
- ColumnFormat.prototype.publish("width", null, "number", "Width", null, { optional: !0 });
385
- ColumnFormat.prototype.publish("format", null, "string", "Format (d3-format)", null, { optional: !0 });
386
- ColumnFormat.prototype.publish("paletteID", null, "set", "Color palette for this widget", ["", ...Palette.rainbow("default").switch()], { optional: !0 });
387
- ColumnFormat.prototype.publish("min", 0, "number", "Min Value", null, { disable: (cf) => !cf.paletteID() });
388
- ColumnFormat.prototype.publish("max", 100, "number", "Max Value", null, { disable: (cf) => !cf.paletteID() });
548
+ }, { optional: true });
549
+ ColumnFormat.prototype.publish("width", null, "number", "Width", null, { optional: true });
550
+ ColumnFormat.prototype.publish("format", null, "string", "Format (d3-format)", null, { optional: true });
551
+ ColumnFormat.prototype.publish("paletteID", null, "set", "Color palette for this widget", ["", ...Palette.rainbow("default").switch()], { optional: true });
552
+ ColumnFormat.prototype.publish("min", 0, "number", "Min Value", null, { disable: /* @__PURE__ */ __name((cf) => !cf.paletteID(), "disable") });
553
+ ColumnFormat.prototype.publish("max", 100, "number", "Max Value", null, { disable: /* @__PURE__ */ __name((cf) => !cf.paletteID(), "disable") });
389
554
  ColumnFormat.prototype.publish("valueColumn", null, "set", "Column", function() {
390
555
  return this._owner.columns();
391
- }, { optional: !0, disable: (cf) => !cf.paletteID() });
392
- class Table extends Common {
556
+ }, { optional: true, disable: /* @__PURE__ */ __name((cf) => !cf.paletteID(), "disable") });
557
+ const _Table = class _Table extends Common {
393
558
  constructor() {
394
559
  super();
395
560
  __publicField(this, "_prevColsHash");
396
561
  __publicField(this, "_prevFieldsHash");
397
- __publicField(this, "_colsRefresh", !1);
398
- __publicField(this, "_dataRefresh", !1);
562
+ __publicField(this, "_colsRefresh", false);
563
+ __publicField(this, "_dataRefresh", false);
399
564
  __publicField(this, "_prevHash");
400
565
  }
401
566
  fields(_) {
402
567
  const retVal = super.fields.apply(this, arguments);
403
568
  if (arguments.length) {
404
569
  const hash = hashSum({ _ });
405
- this._prevFieldsHash !== hash && (this._prevFieldsHash = hash, this._colsRefresh = !0);
570
+ if (this._prevFieldsHash !== hash) {
571
+ this._prevFieldsHash = hash;
572
+ this._colsRefresh = true;
573
+ }
406
574
  }
407
575
  return retVal;
408
576
  }
@@ -410,53 +578,84 @@ class Table extends Common {
410
578
  const retVal = super.columns.apply(this, arguments);
411
579
  if (arguments.length) {
412
580
  const hash = hashSum({ _ });
413
- this._prevColsHash !== hash && (this._prevColsHash = hash, this._colsRefresh = !0);
581
+ if (this._prevColsHash !== hash) {
582
+ this._prevColsHash = hash;
583
+ this._colsRefresh = true;
584
+ }
414
585
  }
415
586
  return retVal;
416
587
  }
417
588
  data(_) {
418
589
  const retVal = super.data.apply(this, arguments);
419
- return arguments.length && (this._dataRefresh = !0), retVal;
590
+ if (arguments.length) {
591
+ this._dataRefresh = true;
592
+ }
593
+ return retVal;
420
594
  }
421
595
  enter(domNode, element) {
422
596
  super.enter(domNode, element);
423
597
  }
424
598
  guessWidth(columns, data) {
425
599
  const sortablePadding = this.sortable() ? 12 : 0;
426
- for (const column of columns)
600
+ for (const column of columns) {
427
601
  if (column.children) {
428
602
  let sampleData = [];
429
- for (let i = 0; i < Math.min(3, data.length); ++i)
603
+ for (let i = 0; i < Math.min(3, data.length); ++i) {
430
604
  sampleData = sampleData.concat(data[i][column.idx]);
605
+ }
431
606
  this.guessWidth(column.children, sampleData);
432
- } else
607
+ } else {
433
608
  column.width = data.reduce((prevVal, row) => {
434
609
  const cell = ("" + row[column.idx]).trim();
435
610
  return Math.max(prevVal, this.textSize(cell).width);
436
- }, this.textSize("" + column.label, void 0, void 0, !0).width + sortablePadding) + 8;
611
+ }, this.textSize("" + column.label, void 0, void 0, true).width + sortablePadding) + 8;
612
+ }
613
+ }
437
614
  }
438
615
  update(domNode, element) {
439
616
  super.update(domNode, element);
440
617
  const hash = this.hashSum();
441
- if (this._prevHash !== hash && (this._prevHash = hash, this._colsRefresh = !0), this._colsRefresh) {
442
- switch (this._columns = this._store.columns(this.sortable(), this.formatterFunc(), this.renderCellFunc()), this.columnWidth()) {
618
+ if (this._prevHash !== hash) {
619
+ this._prevHash = hash;
620
+ this._colsRefresh = true;
621
+ }
622
+ if (this._colsRefresh) {
623
+ this._columns = this._store.columns(this.sortable(), this.formatterFunc(), this.renderCellFunc());
624
+ switch (this.columnWidth()) {
443
625
  case "auto":
444
626
  const tenRows = this.data().filter((row, idx) => idx < 10);
445
627
  this.guessWidth(this._columns, tenRows);
446
628
  break;
447
629
  }
448
630
  const columns = this.columns();
449
- for (const columnFormat of this.columnFormats())
631
+ for (const columnFormat of this.columnFormats()) {
450
632
  if (columnFormat.valid()) {
451
633
  const colIdx = columns.indexOf(columnFormat.column());
452
- this._columns[colIdx] && (this._columns[colIdx].hidden = columnFormat.width() === 0, this._columns[colIdx].width = columnFormat.width() || this._columns[colIdx].width, this._columns[colIdx].formatter = columnFormat.formatterFunc(), this._columns[colIdx].renderCell = columnFormat.renderCellFunc());
634
+ if (this._columns[colIdx]) {
635
+ this._columns[colIdx].hidden = columnFormat.width() === 0;
636
+ this._columns[colIdx].width = columnFormat.width() || this._columns[colIdx].width;
637
+ this._columns[colIdx].formatter = columnFormat.formatterFunc();
638
+ this._columns[colIdx].renderCell = columnFormat.renderCellFunc();
639
+ }
453
640
  }
454
- this._dgrid.set("columns", this._columns.filter((col) => !col.hidden)), this._colsRefresh = !1;
641
+ }
642
+ this._dgrid.set("columns", this._columns.filter((col) => !col.hidden));
643
+ this._colsRefresh = false;
644
+ }
645
+ if (this._colsRefresh || this._dataRefresh) {
646
+ if (this._colsRefresh) {
647
+ this._dgrid.refresh({});
648
+ } else {
649
+ this._dgrid.refresh();
650
+ }
651
+ this._colsRefresh = false;
652
+ this._dataRefresh = false;
455
653
  }
456
- (this._colsRefresh || this._dataRefresh) && (this._colsRefresh ? this._dgrid.refresh({}) : this._dgrid.refresh(), this._colsRefresh = !1, this._dataRefresh = !1);
457
654
  }
458
655
  exit(domNode, element) {
459
- delete this._prevColsHash, delete this._prevFieldsHash, super.exit(domNode, element);
656
+ delete this._prevColsHash;
657
+ delete this._prevFieldsHash;
658
+ super.exit(domNode, element);
460
659
  }
461
660
  // Cell ---
462
661
  formatterFunc() {
@@ -473,11 +672,14 @@ class Table extends Common {
473
672
  };
474
673
  }
475
674
  renderCellFunc() {
675
+ return void 0;
476
676
  }
477
677
  // Events ---
478
678
  click(row, col, sel) {
479
679
  }
480
- }
680
+ };
681
+ __name(_Table, "Table");
682
+ let Table = _Table;
481
683
  Table.prototype._class += " dgrid_Table";
482
684
  Table.prototype.publish("columnWidth", "auto", "set", "Default column width", ["auto", "none"]);
483
685
  Table.prototype.publish("columnFormats", [], "propertyArray", "Source Columns", null, { autoExpand: ColumnFormat });
@@ -501,4 +703,4 @@ export {
501
703
  domConstruct
502
704
  };
503
705
  //# sourceMappingURL=index.js.map
504
- (function(){"use strict";try{if(typeof document<"u"){var i=document.createElement("style");i.appendChild(document.createTextNode(".dijitTooltip{position:absolute;z-index:2000;display:block;left:0;top:-10000px;overflow:visible;font-family:Verdana,Geneva,sans-serif;font-size:12px}.dijitTooltipContainer{border:solid black 2px;background:#b8b5b5;color:#000;font-size:small}.dijitTooltipFocusNode{padding:2px}.dijitTooltipConnector{position:absolute}.dj_a11y .dijitTooltipConnector,.dijitTooltipData{display:none}.dijitTooltip{background:transparent}.dijitTooltipContainer{background-color:#424242;opacity:1;-ms-filter:none;filter:none;padding:4px 8px;border-radius:3px}.dijitTooltip .dijitTooltipContainer{color:#fff;border:0 none}.dijitTooltipConnector{z-index:2;width:auto;height:auto;opacity:1;-ms-filter:none;filter:none}.dijitTooltipABRight .dijitTooltipConnector{left:auto!important;right:8px}.dijitTooltipBelow{padding-top:4px}.dijitTooltipBelow .dijitTooltipConnector{top:0;left:8px;border-bottom:4px solid #424242;border-left:4px solid transparent;border-right:4px solid transparent;border-top:0}.dijitTooltipAbove{padding-bottom:4px}.dijitTooltipAbove .dijitTooltipConnector{bottom:0;left:8px;border-top:4px solid #424242;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:0}.dijitTooltipLeft{padding-right:4px}.dijitTooltipLeft .dijitTooltipConnector{right:0;border-left:4px solid #424242;border-bottom:4px solid transparent;border-top:4px solid transparent;border-right:0}.dijitTooltipRight{padding-left:4px}.dijitTooltipRight .dijitTooltipConnector{left:0;border-bottom:4px solid transparent;border-top:4px solid transparent;border-right:4px solid #424242}.dgrid{position:relative;overflow:hidden;border:1px solid #ddd;height:30em;display:block}.dgrid-header{background-color:#eee}.dgrid-header-row{position:absolute;right:17px;left:0}.dgrid-header-scroll{position:absolute;top:0;right:0}.dgrid-footer{position:absolute;bottom:0;width:100%}.dgrid-header-hidden{font-size:0;height:0!important;border-top:none!important;border-bottom:none!important;margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important}.dgrid-footer-hidden{display:none}.dgrid-sortable{cursor:pointer}.dgrid-header,.dgrid-header-row,.dgrid-footer{overflow:hidden;background-color:#eee}.dgrid-row-table{border-collapse:collapse;border:none;table-layout:fixed;empty-cells:show;width:100%;height:100%}.dgrid-cell{padding:3px;text-align:left;overflow:hidden;vertical-align:top;border:1px solid #ddd;border-top-style:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap}.dgrid-content{position:relative;height:99%}.dgrid-scroller{overflow-x:auto;overflow-y:scroll;position:absolute;top:0;margin-top:25px;bottom:0;width:100%}.dgrid-preload{font-size:0;line-height:0}.dgrid-loading{position:relative;height:100%}.dgrid-above{position:absolute;bottom:0}.ui-icon{width:12px;height:16px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAAA7VBMVEUkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiQkIiTww4gUAAAATnRSTlMAGBAyBAhQv4OZLiJUcEBmYBoSzQwgPBZCSEoeWiYwUiyFNIeBw2rJz8c4RBy9uXyrtaWNqa2zKP2fJO8KBgKPo2KVoa9s351GPm5+kWho0kj9AAAPhUlEQVR4nO1djWLbthEGyUiq5YSSLXtp7FpLOmfzkmxr126tmi2p03RJ1/Xe/3EGgARxPyAgRbIk2/hkSz4CJO4+HsE7AJSVysjI2AMUUOxahZ2iANhzBtZWr4BoIRSYAVN5u4QwDwQDRbcwfUi5KS3wFuDmFnQLa4Dtb//cqktwD5QEFFwfUs7PoCCA7y4bEJVFizcIob8KmhAplwwqVjt+9FBl3uINQniwEiryEyw9JHqGpQdEFNi+B4QQ7QOiHhysIPoAxUqxvdvvA9K42bsAv4S2fxfYOe57IJSRkZGRkZGxx7jxSHDHcRBXQMTyIjInBgHwBJ/bEx8PEANC+uhbpSSggCBAVODVabpI1S/k4WLZpTn6NpMhoX9Y40hxYERFpMcqUs4AloCtDQdID1YhnyXZ2hLjAYWiO9Dy1PDB7tPhIqLx+uMB8grZaR+Qxl2/C2RkZGRkZGRk7A7rBf7J0DR5/LUTjzUPIPSPGvQJiVJiB7kcQCiUOJrcFNtDZIf2xarQ3aGvLNxAVIFAabz90BFiBIlycTBhgWwOWCH0FLYHlPqwHaCvcIn2ZbosCevfPTRiFFcgvHukCjWwrc3GrGh1fsAof8EaUReKXkCB4/MzFNo97qLpFiKFYv/kNR5YQxQbQEofkZ2OuEOHqqT6gFTpru8CN7x/+jaZkZGRkZGRcV+x/rLUNcMMqUAscgnFocmpqkTzqymwVAPxfJ5PnIUUQOUKT04tEdWZyv3JCQSn96WS4pD97QfyW25A7NhSAbyhmVj0FEltA4vdiygBibXhoUYgykCUP7HwPTDeEqAIcHVMkZg7Zx4k0uFANs63hPQXCoRLAwdgGsr9Az7Qv7sgQGgg1aPl/BJLExBWgG4RFRLFImGmIquPC/klEGyCG0AuAXaJJC+B8FVe9NYQDEcXB8g6AQcjYJ1goJIggHWCrFR0S6kRHN5+4BzFi8NaoN35NRxUvL+JJdZr7PV4wK6fj8nIyMjIyNhr3OxdXAYq7FHZwB6bDSzSh4sF0utChqo0NAvaT1hLzXwFinmCzmeDucEQK18TTaQoFgP7bNC+RZ4OT4T6gQogDFYk+1QxQlj19QGSAWKiLYp8P0Ag1Gbz1ULfWHLg9iUnQNK5QQJcukm04blKLH2GgEJCY+HzXAZWCvHKco3Bp6MIaCjSXXRJyOxeqhnzEaF93MfFGW/O16ZvDL5TM4MJIjujz/cHypkQuuzRwWJ93BKdIt+wCRAPl9kpe2Ikkb2mFgGlxh/i40d3EHfdvoyMjIyMu43ylt/IAmGHnN5iIt7wKfbv01RAcJqFRl9lcjYQSnbQqKgC4fYOwSJt6N6trE0twZ9kN/PqNpTQeICvr4TLsDYC06U7BMjshS+v1/aT7IwQYD5LcgRQXMT2FrBfBLjZ6151jDElk9tPFfpUgk2yregusX25BJbwAFEfM+YI6vGAti4bTtizB+TjfQCrERyhKb2X8D6A9wX75P4t4neBYJeP6pdhg/gQl8MWvytzeSTjgOQBynQdh/iXKdxOrGJ/RkZGRsb9QmXihGr5+g8GGg9uTh+KoVZuNIzV+CwRucFBEyr1mVjx4irOxwM1BhirB6Q+2eNQi4eqR+aF6mELtoMzCR7V9RAFe/ZvQogNiyY8FPSUTFsLp8TeTmMui5mtw7bcaT0Yw2AA4wFRQIlkgq+1DQrNhkmoxS5Jq+u6bMAIGRECEANgXHTgWzwgBOhDH2l0oTQ4D8D5NMktBgNywAEMjo8rwATMZrPY7JGxBoJCkIBDQiAY09EGTUiBCWkUpISfGPR5AAwBfZiG2z7Ayc1yeKTxid39xBNwfHr4O0LA48ePFTvhYrF1r4tyAoz9n2MCqEuBtp/6GDR0oAYfG/R6wJExHYZHfhygsv7fEWCOj4bYmsP5A+pL4MkTfAnMlD4F+r3bobKvTyTA2P/w7PN+Agq2QW8piqMCpTBwenoKvX0AHGkGtP2YAPvTEWA7QUTAudn7/NxtOG46wWNmDtpBEkBzN7rBEvAFHp+YTB/q97qPAN4gHFqgBi8uLsC7qPCA6mg41G/+ErByPwEXDdoNxRhOx+M5jPEzQugS0ht+b1/Y3gEnYMAIAOIBE29/hIDucE8tmMsNOgK4B1RHFu4UCRlMHzv0xzcajcfdXWDs2h8TArBCkoDUJYDLmz6w7ip3BFS0ve5wTRwAn6keMA9I3QYbfSZ0DKbyt+7OXjGI1idPcfNyAyfAMlCrzaGqphYrxHocLHRJVycnfGUcbtT+jIyMjIw9x7Nn8fJSzG0TmFtO8rZT+XT3S3ub+tKJbbLd5diTVp50+zahyeHSslJ/YPrU0fuazrZO2CZ92/ZCCVXlGRiZKPJyPPRxyIFWeXLQBXJBKiq/3divEAN6ZwM200Qjm7EJBZeWm/PRWVCbYK7s7u2l4XaCz+lzgOfMfhMonXr7TWzeZb98dbgIzBT8Ub8eYYUqfZ4rVJ/MDbIDgPqTulJ/xvntWAtjIisqnwxOkGz0n077FARoY79GdA6HPE4rOy196NiMWHTZlSSApcOgXpy/fHV2joaNKu3ffsAnRcBf4K/6NcIG6tIxk3HyoXPjASqfUgXbYN5PzpL2njkR9QMjeDTVHDTCgRuxOegjoO0FvKzP/t/gmVdI24+G7NIe8JX6Wv3dDyldMA+4YB5wwTygtd+dwRqaTqrLb1l73zTSN52CNpnHuQOYPsDblybgxfkXh/oVtr+N1DEBJdhRJyd/Bd/q1z+cbNrD17iVKyajcnv9arhOkRPgsruuD6DmNPwpDNrLw2CoTgHni4yALr0L29+tiKAEIPn868ejx//8rpWP3OEOl5On9OwpcQm0MhafP/ey8f1uvDNIgGLQG8z4YO99ENgg95etwv4uYJYY8fUGHYH6j6fscHFZMftlAl9i+9XL73X3N/n+ZStOzfVfRvYXhrbdKOpEgVQTg/wsDuDD3kwOfQNMTJ5y+/ltUDWLunyxnRF46IqlBzGMY4X7inggREFioIyMjIyMHWCIB6ZNKAcXseo3vLTQTkVE7348dlwJJSz0+wLfmi8BhZqfw3D4ww/wHVLnEd5/fgYvXsDZ3MlsvYUbbnDjDZ3MN3TJG4+bxjAaDl8TBri9qxEw1ccao2wTNAMLHo2f+sjrXwb/9qHoYqgPMBXJTVfOpmrZH23y6uvo0LHSyY6fHGwKfHJlAuMFvObjDYrIqxBgQi20h7Hd/nYVLmno+eaNUm/eeH2GCuopntnhBJAlI2AHo9CCh1I1QxUdAbqqGY9BBLwyc3W4wYVhvY8A4BoIc1l5M7vnPWphZW9/Ses3n37y9a0uGqFwFQZsQQbd386DogpgEk+dzynsAZMJXq8+ns9NeukJ0PYrNATGGefJQlhkLo7DTXr+y3bNiOsDvrXTz/C2q1DXZH84iRNwrP88Nj+u2DjYEE6RBxD9Knj16ujVHC67A7422o02RwD3gB+t7EblWvu9geOFxSnd3ROmT+nJyQkhoPlsxVONc/3TEdBos+jtA+ZzcwHgTvD1cDjaYCcItA8w9i88A8b+mqSjc6Pvqd998QguEQPmQMeo23ODN86+p0/bn1buBkT6+oBhNZ/PYY4ZAHYb3PRd4LkZmPX68NRtMZn4ASvdA+qf0jMA5MP9eeg28Nug9QiLnj5A33U1MAES6xHAUNpz/9zFAYE1gqQDMT3G6xI9pwdw/aIgKoHCS1YGlRnSq9yCjdXjgN3j+N27YyROHxmuNAeNKPpYuXIyIyMjYy0M8eros59MF/PT2c602T7eA7zvhJ9dr/vzDjXaLp4Yc5+0wllzxzHv3gdmMMM7/CcQzKgVBqYTmFn+Z+mKm8J7k0A5F/jgCfjQ1WBhQyiOqD0lYuqBb+AyzMw9Ha2G3m6c8qQx+AlqnIceQp+Sb6i9UyQWbhr54+AjnZ0VzW2TAN0DmBT6PWmc6jDBE2PK2u+nF43dyP7Q0t1pOcX2fdRvH0mF2Q4JqN35rnHjVIeaXfIAVyUuw/aHCCiJy9iF5l1621zweI8KZrPZ9iJdb7DXJ3US0OSrtZ10imt7wHY7QesAzUMz1oZ3noB3qFJ/H18j97FYuw8QDN4oeKf30osvcSW2ExLo+VcbuAuo/sUIm8fMG9xocO3Ea19J9gFYivnHJ2KnyfovZlgW3v6ySx32abQiIyMjIyPjhlFDTLxpwIgFMnTp6A3g4IDKNY+stkwAMAoIAbasxBXqUWneSAWTMjt50lTqT29rFjvXohjsDNm2YPXDFlICmrJOZ3t6tHm8AiEAl0sCeLIIorIRt+cFbew/QRsoAXb4o1XSfoywzm0FTMAoYBNvLyFu8v8HpLBtD1iKgC17wHb7AI6d9wFbvguAIGTHd4E9wG7jgIyMjIyM+434c2R3HeV/Ffx6jtZu6ijl8h59T655jhR+rdHzDOP6beABCheb8O8/WFXeOyzgf5oAhVYnKxP7CwaAf1afJu8bSrhS6tdaXeGnrRenOqOlz9d6QwYnA/3TLd+GE7qe3chA5YF5DfY0vK3adfOX/gyNp2BW25MHdxAB9qvRiiP3/XpQQFGYDU4+Mi///XumXG8pjvaUAOsBGlf4jJt+YYEzeEzAdw06F19R3juM7D1wita86GR0CKfDHgLuXCc4Bri6vMLdfjMc4VNSUNsdodo2xu/1+Xl/K5+az8jIyMhYG/z5gJTMF1GtKq/a3rpyCvz5gJTMl9GtKq/a3rpyCmfQ4WwZmS+kXFVetb115ST48wEf/AGcfG1iw+tWbpbS2vJ3nQxcVr3lH3z5h972FUTLzYpOVk7l5hD+eYcYwDcAnewOotrZ4OtrPDucqi/LRX0/RR4qx7Nn4U8g+qjffvuN6Gf+nC85vwauHjaYyubqvWYKY4VEfSUMitdnBCT1Ue63R5439m+OgCn6DroAAaHPVQxKth/wkJgHmG8bmQMsT0D6EjDfvhVRKO3ywOQUgRA7nmL1uawZmHf1k+DPBwQ6NdcJ+k6Md1LA5f5ONdhJ8vZ5J0vLHT99srkGOjmJbd/G1r2Nriqnse1AZt1AalU5jW2HsuuG0qvKGRkZGRkZGRG0gcONyXsP9v8D0/IdJADiBNiXl3327WRGgOL/9HC/0XwlIURkRhC4tz6Z/fu7fUf2gHvfB9z3u0BGRkZGRkbGplHcnkgguQoSqtUXuhbs/wPtMwqV0HUJAvj5vk32b8IDuL23yn7qAXZ5u32hbRX7d3o82Df1FZXvbh9QOfhyxldr/+3xgXU9oKmvsHyr7F/XA269/eveBXrsv7N9QALe/tvjA0kPWAXGbvebkbHn+D/J5nMcHzx1UAAAAABJRU5ErkJggg==)}.dgrid-sort-arrow{background-position:-64px -16px;display:block;float:right;margin:0 4px 0 5px;height:12px}.dgrid-sort-up .dgrid-sort-arrow{background-position:0px -16px}.dgrid-selected{background-color:#bbb}.dgrid-input{width:99%}html.has-mozilla .dgrid .dgrid-row:focus,html.has-mozilla .dgrid .dgrid-cell:focus{outline:1px dotted}html.has-mozilla .dgrid-focus{outline-offset:-1px}.dgrid-scrollbar-measure{width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px}.dgrid-autoheight{height:auto}.dgrid-autoheight .dgrid-scroller{position:relative;overflow-y:hidden}.dgrid-autoheight .dgrid-header-scroll{display:none}.dgrid-autoheight .dgrid-header{right:0}.dgrid-column-set{overflow:hidden;width:100%;position:relative;height:100%;-ms-touch-action:pan-y;touch-action:pan-y}.dgrid-column-set-cell{vertical-align:top;height:100%}.dgrid-column-set-scroller-container{font-size:0;position:absolute;bottom:0}.dgrid-autoheight .dgrid-column-set-scroller-container{position:relative}.dgrid-column-set-scroller{display:inline-block;overflow-x:auto;overflow-y:hidden}.dgrid-column-set-scroller-content{height:1px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.dgrid-expando-icon{width:16px;height:16px}.dgrid-tree-container{-webkit-transition-duration:.3s;-moz-transition-duration:.3s;-o-transition-duration:.3s;-ms-transition-duration:.3s;transition-duration:.3s;overflow:hidden}.dgrid-tree-container.dgrid-tree-resetting{-webkit-transition-duration:0;-moz-transition-duration:0;-o-transition-duration:0;-ms-transition-duration:0;transition-duration:0}.dgrid-hider-toggle{background-position:0 -192px;background-color:transparent;border:none;cursor:pointer;position:absolute;right:0;top:0}.dgrid-rtl-swap .dgrid-hider-toggle{right:auto;left:0}.dgrid-hider-menu{position:absolute;top:0;right:17px;width:184px;background-color:#fff;border:1px solid #000;z-index:99999;padding:4px;overflow-x:hidden;overflow-y:auto}.dgrid-rtl-swap .dgrid-hider-menu{right:auto;left:17px}.dgrid-hider-menu-row{position:relative;padding:2px}.dgrid-hider-menu-check{position:absolute;top:2px;left:2px;padding:0}.dgrid-hider-menu-label{display:block;padding-left:20px}.dgrid-header .dojoDndTarget .dgrid-cell{display:table-cell}.dgrid-header .dojoDndItemBefore{border-left:2px dotted #000!important}.dgrid-header .dojoDndItemAfter{border-right:2px dotted #000!important}.dgrid-column-resizer{cursor:col-resize;position:absolute;width:2px;background-color:#666;z-index:1000}.dgrid-resize-handle{height:100px;width:0;position:absolute;right:-4px;top:-4px;cursor:col-resize;z-index:999;border-left:5px solid transparent;outline:none}.dgrid-resize-header-container{height:100%}.dgrid-resize-guard{cursor:col-resize;position:absolute;bottom:0;left:0;right:0;top:0}html.has-touch .dgrid-resize-handle{border-left:20px solid transparent}html.has-touch .dgrid-column-resizer{width:2px}.dgrid-resize-header-container{position:relative}.dgrid-header .dgrid-cell{overflow:hidden}.dgrid-spacer-row{height:0}.dgrid-spacer-row th{padding-top:0;padding-bottom:0;border-top:none;border-bottom:none}.dgrid-status{padding:2px}.dgrid-pagination .dgrid-status{float:left}.dgrid-pagination .dgrid-navigation,.dgrid-pagination .dgrid-page-size{float:right}.dgrid-navigation .dgrid-page-link{cursor:pointer;font-weight:700;text-decoration:none;color:inherit;padding:0 4px}.dgrid-first,.dgrid-last,.dgrid-next,.dgrid-previous{font-size:130%}.dgrid-pagination .dgrid-page-disabled{color:#aaa;cursor:default}.dgrid-page-input{margin-top:1px;width:2em;text-align:center}.dgrid-page-size{margin:1px 4px 0}.dgrid-rtl-swap .dgrid-header-row{right:0;left:17px}.dgrid-rtl-swap .dgrid-header-scroll{left:0;right:auto}.dgrid-rtl .dgrid-cell{text-align:right}.dgrid-rtl .dgrid-sort-arrow{float:left;margin:0 5px 0 4px}.dgrid-rtl .ui-icon-triangle-1-e{background-position:-96px -16px}.dgrid-rtl .ui-icon-triangle-1-se{background-position:-80px -16px}.dgrid-rtl .dgrid-pagination .dgrid-status,.dgrid-rtl .dgrid-pagination .dgrid-page-size{float:right}.dgrid-rtl .dgrid-pagination .dgrid-navigation{float:left}.dgrid-rtl.dgrid-autoheight .dgrid-header{left:0}.dgrid_Table .placeholder{border:none;padding:0;overflow:hidden}.dgrid_Table .dgrid-fakeline{border:0px;border-bottom:1px solid rgb(221,221,221);margin:2px -3px}.dgrid_Table .dgrid-sortable .dgrid-sort-arrow.ui-icon{margin:0}")),document.head.appendChild(i)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
706
+ !function(){"use strict";try{if("undefined"!=typeof document){var i=document.createElement("style");i.appendChild(document.createTextNode(".dijitTooltip{position:absolute;z-index:2000;display:block;left:0;top:-10000px;overflow:visible;font-family:Verdana,Geneva,sans-serif;font-size:12px}.dijitTooltipContainer{border:solid black 2px;background:#b8b5b5;color:#000;font-size:small}.dijitTooltipFocusNode{padding:2px}.dijitTooltipConnector{position:absolute}.dj_a11y .dijitTooltipConnector,.dijitTooltipData{display:none}.dijitTooltip{background:transparent}.dijitTooltipContainer{background-color:#424242;opacity:1;-ms-filter:none;filter:none;padding:4px 8px;border-radius:3px}.dijitTooltip .dijitTooltipContainer{color:#fff;border:0 none}.dijitTooltipConnector{z-index:2;width:auto;height:auto;opacity:1;-ms-filter:none;filter:none}.dijitTooltipABRight .dijitTooltipConnector{left:auto!important;right:8px}.dijitTooltipBelow{padding-top:4px}.dijitTooltipBelow .dijitTooltipConnector{top:0;left:8px;border-bottom:4px solid #424242;border-left:4px solid transparent;border-right:4px solid transparent;border-top:0}.dijitTooltipAbove{padding-bottom:4px}.dijitTooltipAbove .dijitTooltipConnector{bottom:0;left:8px;border-top:4px solid #424242;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:0}.dijitTooltipLeft{padding-right:4px}.dijitTooltipLeft .dijitTooltipConnector{right:0;border-left:4px solid #424242;border-bottom:4px solid transparent;border-top:4px solid transparent;border-right:0}.dijitTooltipRight{padding-left:4px}.dijitTooltipRight .dijitTooltipConnector{left:0;border-bottom:4px solid transparent;border-top:4px solid transparent;border-right:4px solid #424242}.dgrid{position:relative;overflow:hidden;border:1px solid #ddd;height:30em;display:block}.dgrid-header{background-color:#eee}.dgrid-header-row{position:absolute;right:17px;left:0}.dgrid-header-scroll{position:absolute;top:0;right:0}.dgrid-footer{position:absolute;bottom:0;width:100%}.dgrid-header-hidden{font-size:0;height:0!important;border-top:none!important;border-bottom:none!important;margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important}.dgrid-footer-hidden{display:none}.dgrid-sortable{cursor:pointer}.dgrid-header,.dgrid-header-row,.dgrid-footer{overflow:hidden;background-color:#eee}.dgrid-row-table{border-collapse:collapse;border:none;table-layout:fixed;empty-cells:show;width:100%;height:100%}.dgrid-cell{padding:3px;text-align:left;overflow:hidden;vertical-align:top;border:1px solid #ddd;border-top-style:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap}.dgrid-content{position:relative;height:99%}.dgrid-scroller{overflow-x:auto;overflow-y:scroll;position:absolute;top:0;margin-top:25px;bottom:0;width:100%}.dgrid-preload{font-size:0;line-height:0}.dgrid-loading{position:relative;height:100%}.dgrid-above{position:absolute;bottom:0}.ui-icon{width:12px;height:16px;background-image:url(data:image/png;base64,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)}.dgrid-sort-arrow{background-position:-64px -16px;display:block;float:right;margin:0 4px 0 5px;height:12px}.dgrid-sort-up .dgrid-sort-arrow{background-position:0px -16px}.dgrid-selected{background-color:#bbb}.dgrid-input{width:99%}html.has-mozilla .dgrid .dgrid-row:focus,html.has-mozilla .dgrid .dgrid-cell:focus{outline:1px dotted}html.has-mozilla .dgrid-focus{outline-offset:-1px}.dgrid-scrollbar-measure{width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px}.dgrid-autoheight{height:auto}.dgrid-autoheight .dgrid-scroller{position:relative;overflow-y:hidden}.dgrid-autoheight .dgrid-header-scroll{display:none}.dgrid-autoheight .dgrid-header{right:0}.dgrid-column-set{overflow:hidden;width:100%;position:relative;height:100%;-ms-touch-action:pan-y;touch-action:pan-y}.dgrid-column-set-cell{vertical-align:top;height:100%}.dgrid-column-set-scroller-container{font-size:0;position:absolute;bottom:0}.dgrid-autoheight .dgrid-column-set-scroller-container{position:relative}.dgrid-column-set-scroller{display:inline-block;overflow-x:auto;overflow-y:hidden}.dgrid-column-set-scroller-content{height:1px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.dgrid-expando-icon{width:16px;height:16px}.dgrid-tree-container{-webkit-transition-duration:.3s;-moz-transition-duration:.3s;-o-transition-duration:.3s;-ms-transition-duration:.3s;transition-duration:.3s;overflow:hidden}.dgrid-tree-container.dgrid-tree-resetting{-webkit-transition-duration:0;-moz-transition-duration:0;-o-transition-duration:0;-ms-transition-duration:0;transition-duration:0}.dgrid-hider-toggle{background-position:0 -192px;background-color:transparent;border:none;cursor:pointer;position:absolute;right:0;top:0}.dgrid-rtl-swap .dgrid-hider-toggle{right:auto;left:0}.dgrid-hider-menu{position:absolute;top:0;right:17px;width:184px;background-color:#fff;border:1px solid #000;z-index:99999;padding:4px;overflow-x:hidden;overflow-y:auto}.dgrid-rtl-swap .dgrid-hider-menu{right:auto;left:17px}.dgrid-hider-menu-row{position:relative;padding:2px}.dgrid-hider-menu-check{position:absolute;top:2px;left:2px;padding:0}.dgrid-hider-menu-label{display:block;padding-left:20px}.dgrid-header .dojoDndTarget .dgrid-cell{display:table-cell}.dgrid-header .dojoDndItemBefore{border-left:2px dotted #000!important}.dgrid-header .dojoDndItemAfter{border-right:2px dotted #000!important}.dgrid-column-resizer{cursor:col-resize;position:absolute;width:2px;background-color:#666;z-index:1000}.dgrid-resize-handle{height:100px;width:0;position:absolute;right:-4px;top:-4px;cursor:col-resize;z-index:999;border-left:5px solid transparent;outline:none}.dgrid-resize-header-container{height:100%}.dgrid-resize-guard{cursor:col-resize;position:absolute;bottom:0;left:0;right:0;top:0}html.has-touch .dgrid-resize-handle{border-left:20px solid transparent}html.has-touch .dgrid-column-resizer{width:2px}.dgrid-resize-header-container{position:relative}.dgrid-header .dgrid-cell{overflow:hidden}.dgrid-spacer-row{height:0}.dgrid-spacer-row th{padding-top:0;padding-bottom:0;border-top:none;border-bottom:none}.dgrid-status{padding:2px}.dgrid-pagination .dgrid-status{float:left}.dgrid-pagination .dgrid-navigation,.dgrid-pagination .dgrid-page-size{float:right}.dgrid-navigation .dgrid-page-link{cursor:pointer;font-weight:700;text-decoration:none;color:inherit;padding:0 4px}.dgrid-first,.dgrid-last,.dgrid-next,.dgrid-previous{font-size:130%}.dgrid-pagination .dgrid-page-disabled{color:#aaa;cursor:default}.dgrid-page-input{margin-top:1px;width:2em;text-align:center}.dgrid-page-size{margin:1px 4px 0}.dgrid-rtl-swap .dgrid-header-row{right:0;left:17px}.dgrid-rtl-swap .dgrid-header-scroll{left:0;right:auto}.dgrid-rtl .dgrid-cell{text-align:right}.dgrid-rtl .dgrid-sort-arrow{float:left;margin:0 5px 0 4px}.dgrid-rtl .ui-icon-triangle-1-e{background-position:-96px -16px}.dgrid-rtl .ui-icon-triangle-1-se{background-position:-80px -16px}.dgrid-rtl .dgrid-pagination .dgrid-status,.dgrid-rtl .dgrid-pagination .dgrid-page-size{float:right}.dgrid-rtl .dgrid-pagination .dgrid-navigation{float:left}.dgrid-rtl.dgrid-autoheight .dgrid-header{left:0}.dgrid_Table .placeholder{border:none;padding:0;overflow:hidden}.dgrid_Table .dgrid-fakeline{border:0px;border-bottom:1px solid rgb(221,221,221);margin:2px -3px}.dgrid_Table .dgrid-sortable .dgrid-sort-arrow.ui-icon{margin:0}")),document.head.appendChild(i)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}}();