@hpcc-js/dgrid 3.5.0 → 3.5.2

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,621 +1,3 @@
1
- import { HTMLWidget, Palette, PropertyExt, format, select } from "@hpcc-js/common";
2
- import { hashSum } from "@hpcc-js/util";
3
-
4
- //#region src/__package__.ts
5
- const PKG_NAME = "@hpcc-js/dgrid";
6
- const PKG_VERSION = "3.5.0";
7
- const BUILD_VERSION = "3.15.0";
8
-
9
- //#endregion
10
- //#region src/dgrid-shim.ts
11
- if (!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");
12
- const Deferred = globalThis["@hpcc-js/dgrid-shim"].Deferred;
13
- const Memory = globalThis["@hpcc-js/dgrid-shim"].Memory;
14
- const QueryResults = globalThis["@hpcc-js/dgrid-shim"].QueryResults;
15
- const Grid = globalThis["@hpcc-js/dgrid-shim"].Grid;
16
- const PagingGrid = globalThis["@hpcc-js/dgrid-shim"].PagingGrid;
17
- const domConstruct = globalThis["@hpcc-js/dgrid-shim"].domConstruct;
18
-
19
- //#endregion
20
- //#region src/RowFormatter.ts
21
- function entitiesEncode(str) {
22
- return String(str).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
23
- }
24
- function safeEncode(item) {
25
- switch (Object.prototype.toString.call(item)) {
26
- case "[object Undefined]":
27
- case "[object Boolean]":
28
- case "[object Number]": return item;
29
- case "[object String]": return entitiesEncode(item);
30
- default: console.warn("Unknown cell type: " + Object.prototype.toString.call(item));
31
- }
32
- return item;
33
- }
34
- function isArray(obj) {
35
- return obj instanceof Array;
36
- }
37
- var LINE_SPLITTER = "<br><hr class='dgrid-fakeline'>";
38
- var LINE_SPLITTER2 = "<br><hr class='dgrid-fakeline' style='visibility: hidden'>";
39
- var RowFormatter = class {
40
- _columns;
41
- _flattenedColumns = [];
42
- _columnIdx = {};
43
- _formattedRow = {};
44
- constructor(columns, _renderHtml) {
45
- this._renderHtml = _renderHtml;
46
- this._columns = columns;
47
- this.flattenColumns(columns);
48
- }
49
- flattenColumns(columns) {
50
- for (const column of columns) this.flattenColumn(column);
51
- }
52
- flattenColumn(column) {
53
- if (column.children) for (const childColumn of column.children) this.flattenColumn(childColumn);
54
- else {
55
- this._columnIdx[column.field] = this._flattenedColumns.length;
56
- this._flattenedColumns.push(column.field);
57
- }
58
- }
59
- format(row) {
60
- this._formattedRow = {};
61
- this.formatRow(this._columns, row);
62
- return this.row();
63
- }
64
- calcDepth(columns, row) {
65
- let maxChildDepth = 1;
66
- for (const column of columns) if (column.children && row[column.leafID]) {
67
- let childDepth = 0;
68
- let childRows = [];
69
- if (isArray(row[column.leafID])) childRows = row[column.leafID];
70
- else if (isArray(row[column.leafID].Row)) childRows = row[column.leafID].Row;
71
- for (const childRow of childRows) childDepth += this.calcDepth(column.children, childRow);
72
- maxChildDepth = Math.max(maxChildDepth, childDepth);
73
- }
74
- return maxChildDepth;
75
- }
76
- formatCell(column, cell, maxChildDepth) {
77
- if (column.children) {
78
- let childDepth = 0;
79
- if (!isArray(cell)) if (isArray(cell.Row)) cell = cell.Row;
80
- else cell = [cell];
81
- for (const row of cell) childDepth = Math.max(childDepth, this.formatRow(column.children, row));
82
- } else {
83
- if (column.isSet) cell = JSON.stringify(cell.Item);
84
- if (this._formattedRow[column.field] === void 0) this._formattedRow[column.field] = "" + (cell === void 0 ? "" : this._renderHtml ? cell : safeEncode(cell));
85
- else {
86
- this._formattedRow[column.field] += LINE_SPLITTER;
87
- this._formattedRow[column.field] += "" + (cell === void 0 ? "" : this._renderHtml ? cell : safeEncode(cell));
88
- }
89
- if (maxChildDepth > 1) {
90
- const paddingArr = [];
91
- paddingArr.length = maxChildDepth;
92
- const padding = paddingArr.join(LINE_SPLITTER2);
93
- this._formattedRow[column.field] += padding;
94
- }
95
- }
96
- }
97
- formatRow(columns, row = [], rowIdx = 0) {
98
- const maxChildDepth = this.calcDepth(columns, row);
99
- for (const column of columns) this.formatCell(column, row[column.leafID], maxChildDepth);
100
- return maxChildDepth;
101
- }
102
- row() {
103
- const retVal = {};
104
- for (const column of this._flattenedColumns) retVal[column] = this._formattedRow[column];
105
- return retVal;
106
- }
107
- };
108
-
109
- //#endregion
110
- //#region src/DBStore.ts
111
- var DBStore = class {
112
- _db;
113
- Model;
114
- idProperty;
115
- constructor(db) {
116
- this._db = db;
117
- }
118
- _renderHtml = true;
119
- renderHtml(_) {
120
- this._renderHtml = _;
121
- }
122
- db2Columns(sortable, fields, prefix = "", formatter, renderCell) {
123
- if (!fields) return [];
124
- return fields.map((field, idx) => {
125
- const column = {
126
- label: field.label(),
127
- leafID: "" + idx,
128
- field: prefix + idx,
129
- idx,
130
- className: "resultGridCell",
131
- sortable,
132
- isSet: false
133
- };
134
- switch (field.type()) {
135
- case "nested":
136
- column.children = this.db2Columns(false, field.children(), prefix + idx + "_", formatter);
137
- column.sortable = false;
138
- break;
139
- default:
140
- column.formatter = formatter;
141
- column.renderCell = renderCell;
142
- }
143
- return column;
144
- });
145
- }
146
- columns(sortable, formatter, renderCell) {
147
- return this.db2Columns(sortable, this._db.fields(), "", formatter, renderCell);
148
- }
149
- getIdentity(object) {
150
- return object.__hpcc_id;
151
- }
152
- get(row) {
153
- return this._db.row(row + 1);
154
- }
155
- _fetchRange(opts) {
156
- const rowFormatter = new RowFormatter(this.columns(false), this._renderHtml);
157
- return this._db.data().slice(opts.start, opts.end).map((row, idx) => {
158
- return {
159
- ...rowFormatter.format(row),
160
- __hpcc_id: opts.start + idx,
161
- __origRow: row
162
- };
163
- });
164
- }
165
- fetchRange(opts) {
166
- const data = this._fetchRange(opts);
167
- const retVal = new Deferred();
168
- retVal.totalLength = new Deferred();
169
- retVal.resolve(data);
170
- retVal.totalLength.resolve(this._db.length() - 1);
171
- return retVal;
172
- }
173
- sort(opts) {
174
- this._db.data().sort((l, r) => {
175
- for (const item of opts) {
176
- const idx = item.property;
177
- if (l[idx] === void 0 && r[idx] !== void 0 || l[idx] < r[idx]) return item.descending ? 1 : -1;
178
- if (l[idx] !== void 0 && r[idx] === void 0 || l[idx] > r[idx]) return item.descending ? -1 : 1;
179
- }
180
- return 0;
181
- });
182
- return this;
183
- }
184
- };
185
-
186
- //#endregion
187
- //#region src/Common.ts
188
- var Common = class extends HTMLWidget {
189
- _columns = [];
190
- _store = new DBStore(this._db);
191
- _dgridDiv;
192
- _dgrid;
193
- _prevPaging;
194
- _prevSortBy;
195
- _prevSortByDescending;
196
- _prevMultiSelect;
197
- constructor() {
198
- super();
199
- this._tag = "div";
200
- }
201
- formatSortBy() {
202
- const idx = this.columns().indexOf(this.sortBy());
203
- return idx >= 0 ? [{
204
- property: idx.toString(),
205
- descending: this.sortByDescending()
206
- }] : void 0;
207
- }
208
- _supressEvents;
209
- selection(_) {
210
- if (!arguments.length) {
211
- const retVal = [];
212
- for (const id in this._dgrid.selection) if (this._dgrid.selection[id]) {
213
- const storeItem = this._store.get(+id);
214
- retVal.push(this.rowToObj(storeItem));
215
- }
216
- return retVal;
217
- }
218
- this._supressEvents = true;
219
- this._dgrid?.clearSelection();
220
- let first = true;
221
- this.data().forEach((row, idx) => {
222
- if (_.indexOf(row) >= 0) {
223
- const row$1 = this._dgrid?.row(idx);
224
- if (row$1.element && first) {
225
- first = false;
226
- row$1.element.scrollIntoView();
227
- }
228
- this._dgrid?.select(idx);
229
- }
230
- });
231
- this._supressEvents = false;
232
- }
233
- enter(domNode, element) {
234
- super.enter(domNode, element);
235
- this._dgridDiv = element.append("div").attr("class", "flat");
236
- }
237
- update(domNode, element) {
238
- super.update(domNode, element);
239
- this._store.renderHtml(this.renderHtml());
240
- if (!this._dgrid || this._prevPaging !== this.pagination() || this._prevSortBy !== this.sortBy() || this._prevSortByDescending !== this.sortByDescending() || this._prevMultiSelect !== this.multiSelect()) {
241
- this._prevPaging = this.pagination();
242
- this._prevSortBy = this.sortBy();
243
- this._prevSortByDescending = this.sortByDescending();
244
- this._prevMultiSelect = this.multiSelect();
245
- if (this._dgrid) {
246
- this._dgrid.destroy();
247
- this._dgridDiv = element.append("div").attr("class", "flat");
248
- }
249
- this._dgrid = new (this._prevPaging ? PagingGrid : Grid)({
250
- columns: this._columns,
251
- collection: this._store,
252
- sort: this.formatSortBy(),
253
- selectionMode: this.multiSelect() ? "extended" : "single",
254
- deselectOnRefresh: true,
255
- cellNavigation: false,
256
- pagingLinks: 1,
257
- pagingTextBox: true,
258
- previousNextArrows: true,
259
- firstLastArrows: true,
260
- rowsPerPage: this.pageSize(),
261
- pageSizeOptions: [
262
- 1,
263
- 10,
264
- 25,
265
- 50,
266
- 100,
267
- 1e3
268
- ]
269
- }, this._dgridDiv.node());
270
- this._dgrid.on("dgrid-select", (evt) => {
271
- if (this._supressEvents) return;
272
- if (evt.rows && evt.rows.length && evt.rows[0].data) this.click(this.rowToObj(evt.rows[0].data.__origRow), "", true, { selection: this.selection() });
273
- });
274
- this._dgrid.on("dgrid-deselect", (evt) => {
275
- if (this._supressEvents) return;
276
- if (evt.rows && evt.rows.length && evt.rows[0].data) this.click(this.rowToObj(evt.rows[0].data.__origRow), "", false, { selection: this.selection() });
277
- });
278
- this._dgrid.refresh({});
279
- }
280
- this._dgrid.noDataMessage = `<span class='dojoxGridNoData'>${this.noDataMessage()}</span>`;
281
- this._dgrid.loadingMessage = `<span class='dojoxGridNoData'>${this.loadingMessage()}</span>`;
282
- this._dgridDiv.style("width", this.width() + "px").style("height", this.height() - 2 + "px");
283
- this._dgrid.resize();
284
- }
285
- exit(domNode, element) {
286
- delete this._prevPaging;
287
- if (this._dgrid) {
288
- this._dgrid.destroy();
289
- delete this._dgrid;
290
- }
291
- super.exit(domNode, element);
292
- }
293
- click(row, col, sel, more) {}
294
- };
295
- Common.prototype._class += " dgrid_Common";
296
- Common.prototype.publish("noDataMessage", "...empty...", "string", "No Data Message");
297
- Common.prototype.publish("loadingMessage", "loading...", "string", "Loading Message");
298
- Common.prototype.publish("pagination", false, "boolean", "Enable paging");
299
- Common.prototype.publish("pageSize", 25, "number", "Page size");
300
- Common.prototype.publish("sortable", false, "boolean", "Enable sorting by column");
301
- Common.prototype.publish("sortBy", null, "set", "Default 'sort by' Column ID", function() {
302
- return this.columns();
303
- }, { optional: true });
304
- Common.prototype.publish("sortByDescending", false, "boolean", "Default 'sort by' descending", void 0, { disable: (self) => !self.sortBy() });
305
- Common.prototype.publish("multiSelect", false, "boolean", "Multiple Selection");
306
- Common.prototype.publish("renderHtml", true, "boolean", "Render HTML");
307
-
308
- //#endregion
309
- //#region src/DatasourceStore.ts
310
- var DatasourceCache = class {
311
- _datasource;
312
- _prevHash;
313
- _fetchCache = {};
314
- constructor(datasource) {
315
- this._datasource = datasource;
316
- }
317
- validateCache() {
318
- const hash = this.hash();
319
- if (this._prevHash !== hash) {
320
- this._prevHash = hash;
321
- this._fetchCache = {};
322
- }
323
- }
324
- id() {
325
- return this._datasource.id();
326
- }
327
- hash() {
328
- return this._datasource.hash();
329
- }
330
- label() {
331
- return this._datasource.label();
332
- }
333
- outFields() {
334
- return this._datasource.outFields();
335
- }
336
- total() {
337
- return this._datasource.total();
338
- }
339
- fetch(from, count) {
340
- this.validateCache();
341
- const cacheID = `${from}->${count}`;
342
- let retVal = this._fetchCache[cacheID];
343
- if (!retVal) {
344
- retVal = this._datasource.fetch(from, count);
345
- this._fetchCache[cacheID] = retVal;
346
- }
347
- return retVal;
348
- }
349
- };
350
- var DatasourceStore = class {
351
- _datasource;
352
- _columnsIdx = {};
353
- _columns;
354
- rowFormatter;
355
- constructor(datasource, renderHtml) {
356
- this._datasource = new DatasourceCache(datasource);
357
- this._columnsIdx = {};
358
- this._columns = this.db2Columns(this._datasource.outFields()).map((column, idx) => {
359
- this._columnsIdx[column.field] = idx;
360
- return column;
361
- });
362
- this.rowFormatter = new RowFormatter(this._columns, renderHtml);
363
- }
364
- columns() {
365
- return this._columns;
366
- }
367
- db2Columns(fields, prefix = "") {
368
- if (!fields) return [];
369
- return fields.map((field, idx) => {
370
- const column = {
371
- field: prefix + field.id,
372
- leafID: field.id,
373
- label: field.id,
374
- idx,
375
- className: "resultGridCell",
376
- sortable: true,
377
- isSet: false
378
- };
379
- if (field.type === "dataset") column.children = this.db2Columns(field.children, prefix + field.id + "_");
380
- else column.formatter = (cell, row) => {
381
- switch (typeof cell) {
382
- case "string": return cell.replace(/\t/g, "&nbsp;&nbsp;&nbsp;&nbsp;");
383
- }
384
- return cell;
385
- };
386
- return column;
387
- });
388
- }
389
- getIdentity(row) {
390
- return row.__hpcc_id;
391
- }
392
- _request(start, end) {
393
- if (!this._datasource) return Promise.resolve({
394
- totalLength: 0,
395
- data: []
396
- });
397
- return this._datasource.fetch(start, end - start).then((response) => {
398
- return {
399
- totalLength: this._datasource.total(),
400
- data: response.map((row, idx) => {
401
- const formattedRow = this.rowFormatter.format(row);
402
- formattedRow.__hpcc_id = start + idx;
403
- formattedRow.__origRow = row;
404
- return formattedRow;
405
- })
406
- };
407
- });
408
- }
409
- fetchRange(options) {
410
- const retVal = new Deferred();
411
- this._request(options.start, options.end).then((response) => retVal.resolve(response));
412
- return new QueryResults(retVal.then((response) => response.data), { totalLength: retVal.then((response) => response.totalLength) });
413
- }
414
- };
415
-
416
- //#endregion
417
- //#region src/DatasourceTable.ts
418
- var DatasourceTable = class extends Common {
419
- _prevDatasource;
420
- constructor() {
421
- super();
422
- }
423
- invalidate() {
424
- delete this._prevDatasource;
425
- return this;
426
- }
427
- enter(domNode, element) {
428
- super.enter(domNode, element);
429
- }
430
- update(domNode, element) {
431
- super.update(domNode, element);
432
- }
433
- render(callback) {
434
- return super.render((w) => {
435
- if (this._prevDatasource !== this.datasource()) {
436
- this._dgrid.set("collection", new Memory());
437
- this._dgrid.set("columns", []);
438
- this._prevDatasource = this.datasource();
439
- if (this._prevDatasource) {
440
- const store = new DatasourceStore(this._prevDatasource, this.renderHtml());
441
- this._dgrid.set("columns", store.columns());
442
- this._dgrid.set("collection", store);
443
- if (callback) callback(w);
444
- } else if (callback) callback(w);
445
- } else if (callback) callback(w);
446
- });
447
- }
448
- click(row, col, sel) {}
449
- };
450
- DatasourceTable.prototype._class += " dgrid_DatasourceTable";
451
- DatasourceTable.prototype.publish("datasource", null, "object", "Datasource");
452
-
453
- //#endregion
454
- //#region src/Table.ts
455
- var ColumnFormat = class extends PropertyExt {
456
- _owner;
457
- constructor() {
458
- super();
459
- }
460
- owner(_) {
461
- if (!arguments.length) return this._owner;
462
- this._owner = _;
463
- return this;
464
- }
465
- valid() {
466
- return !!this.column();
467
- }
468
- formatterFunc() {
469
- const defaultFormatter = this._owner.formatterFunc();
470
- if (this.valid() && this.format()) {
471
- const numberFormatter = format(this.format());
472
- return function(cell, row) {
473
- if (typeof cell === "number") return numberFormatter(cell);
474
- return defaultFormatter.call(this, cell, row);
475
- };
476
- }
477
- return defaultFormatter;
478
- }
479
- renderCellFunc() {
480
- const defaultRenderCell = this._owner.renderCellFunc();
481
- const defaultFormatter = this.formatterFunc();
482
- if (this.valid() && this.paletteID()) {
483
- const columns = this._owner.columns();
484
- const palette = Palette.rainbow(this.paletteID());
485
- const min = this.min();
486
- const max = this.max();
487
- const valueColIdx = this.valueColumn() ? columns.indexOf(this.valueColumn()) : void 0;
488
- return function(row, cell, cellElement) {
489
- if (defaultRenderCell) defaultRenderCell.call(this, row, cell, cellElement);
490
- const background = palette(valueColIdx ? row.__origRow[valueColIdx] : cell, min, max);
491
- const cellText = defaultFormatter.call(this, cell, row);
492
- select(cellElement).style("background", background).style("color", background && Palette.textColor(background)).text(cellText?.html ?? cellText ?? cell);
493
- };
494
- }
495
- return defaultRenderCell;
496
- }
497
- };
498
- ColumnFormat.prototype._class += " dgrid_Table.ColumnFormat";
499
- ColumnFormat.prototype.publish("column", null, "set", "Column", function() {
500
- return this._owner.columns();
501
- }, { optional: true });
502
- ColumnFormat.prototype.publish("width", null, "number", "Width", null, { optional: true });
503
- ColumnFormat.prototype.publish("format", null, "string", "Format (d3-format)", null, { optional: true });
504
- ColumnFormat.prototype.publish("paletteID", null, "set", "Color palette for this widget", ["", ...Palette.rainbow("default").switch()], { optional: true });
505
- ColumnFormat.prototype.publish("min", 0, "number", "Min Value", null, { disable: (cf) => !cf.paletteID() });
506
- ColumnFormat.prototype.publish("max", 100, "number", "Max Value", null, { disable: (cf) => !cf.paletteID() });
507
- ColumnFormat.prototype.publish("valueColumn", null, "set", "Column", function() {
508
- return this._owner.columns();
509
- }, {
510
- optional: true,
511
- disable: (cf) => !cf.paletteID()
512
- });
513
- var Table = class extends Common {
514
- _prevColsHash;
515
- _prevFieldsHash;
516
- _colsRefresh = false;
517
- _dataRefresh = false;
518
- constructor() {
519
- super();
520
- }
521
- fields(_) {
522
- const retVal = super.fields.apply(this, arguments);
523
- if (arguments.length) {
524
- const hash = hashSum({ _ });
525
- if (this._prevFieldsHash !== hash) {
526
- this._prevFieldsHash = hash;
527
- this._colsRefresh = true;
528
- }
529
- }
530
- return retVal;
531
- }
532
- columns(_, asDefault) {
533
- const retVal = super.columns.apply(this, arguments);
534
- if (arguments.length) {
535
- const hash = hashSum({ _ });
536
- if (this._prevColsHash !== hash) {
537
- this._prevColsHash = hash;
538
- this._colsRefresh = true;
539
- }
540
- }
541
- return retVal;
542
- }
543
- data(_) {
544
- const retVal = super.data.apply(this, arguments);
545
- if (arguments.length) this._dataRefresh = true;
546
- return retVal;
547
- }
548
- enter(domNode, element) {
549
- super.enter(domNode, element);
550
- }
551
- guessWidth(columns, data) {
552
- const sortablePadding = this.sortable() ? 12 : 0;
553
- for (const column of columns) if (column.children) {
554
- let sampleData = [];
555
- for (let i = 0; i < Math.min(3, data.length); ++i) sampleData = sampleData.concat(data[i][column.idx]);
556
- this.guessWidth(column.children, sampleData);
557
- } else column.width = data.reduce((prevVal, row) => {
558
- const cell = ("" + row[column.idx]).trim();
559
- return Math.max(prevVal, this.textSize(cell).width);
560
- }, this.textSize("" + column.label, void 0, void 0, true).width + sortablePadding) + 8;
561
- }
562
- _prevHash;
563
- update(domNode, element) {
564
- super.update(domNode, element);
565
- const hash = this.hashSum();
566
- if (this._prevHash !== hash) {
567
- this._prevHash = hash;
568
- this._colsRefresh = true;
569
- }
570
- if (this._colsRefresh) {
571
- this._columns = this._store.columns(this.sortable(), this.formatterFunc(), this.renderCellFunc());
572
- switch (this.columnWidth()) {
573
- case "auto":
574
- const tenRows = this.data().filter((row, idx) => idx < 10);
575
- this.guessWidth(this._columns, tenRows);
576
- break;
577
- }
578
- const columns = this.columns();
579
- for (const columnFormat of this.columnFormats()) if (columnFormat.valid()) {
580
- const colIdx = columns.indexOf(columnFormat.column());
581
- if (this._columns[colIdx]) {
582
- this._columns[colIdx].hidden = columnFormat.width() === 0;
583
- this._columns[colIdx].width = columnFormat.width() || this._columns[colIdx].width;
584
- this._columns[colIdx].formatter = columnFormat.formatterFunc();
585
- this._columns[colIdx].renderCell = columnFormat.renderCellFunc();
586
- }
587
- }
588
- this._dgrid.set("columns", this._columns.filter((col) => !col.hidden));
589
- this._colsRefresh = false;
590
- }
591
- if (this._colsRefresh || this._dataRefresh) {
592
- if (this._colsRefresh) this._dgrid.refresh({});
593
- else this._dgrid.refresh();
594
- this._colsRefresh = false;
595
- this._dataRefresh = false;
596
- }
597
- }
598
- exit(domNode, element) {
599
- delete this._prevColsHash;
600
- delete this._prevFieldsHash;
601
- super.exit(domNode, element);
602
- }
603
- formatterFunc() {
604
- return function(cell, row) {
605
- switch (typeof cell) {
606
- case "string": return { html: cell.replace(/\t/g, "&nbsp;&nbsp;&nbsp;&nbsp;").trim() };
607
- case "undefined": return "";
608
- }
609
- return cell;
610
- };
611
- }
612
- renderCellFunc() {}
613
- click(row, col, sel) {}
614
- };
615
- Table.prototype._class += " dgrid_Table";
616
- Table.prototype.publish("columnWidth", "auto", "set", "Default column width", ["auto", "none"]);
617
- Table.prototype.publish("columnFormats", [], "propertyArray", "Source Columns", null, { autoExpand: ColumnFormat });
618
-
619
- //#endregion
620
- export { BUILD_VERSION, ColumnFormat, Common, DBStore, DatasourceCache, DatasourceStore, DatasourceTable, Deferred, Grid, Memory, PKG_NAME, PKG_VERSION, PagingGrid, QueryResults, RowFormatter, Table, domConstruct };
621
- //# sourceMappingURL=index.js.map!function(){try{if("undefined"!=typeof document){var i=document.createElement("style");i.appendChild(document.createTextNode(".dijitTooltip{z-index:2000;font-family:Verdana,Geneva,sans-serif;font-size:12px;display:block;position:absolute;top:-10000px;left:0;overflow:visible}.dijitTooltipContainer{color:#000;background:#b8b5b5;border:2px solid #000;font-size:small}.dijitTooltipFocusNode{padding:2px}.dijitTooltipConnector{position:absolute}.dj_a11y .dijitTooltipConnector,.dijitTooltipData{display:none}.dijitTooltip{background:0 0}.dijitTooltipContainer{opacity:1;-ms-filter:none;filter:none;background-color:#424242;border-radius:3px;padding:4px 8px}.dijitTooltip .dijitTooltipContainer{color:#fff;border:0}.dijitTooltipConnector{z-index:2;opacity:1;-ms-filter:none;filter:none;width:auto;height:auto}.dijitTooltipABRight .dijitTooltipConnector{right:8px;left:auto!important}.dijitTooltipBelow{padding-top:4px}.dijitTooltipBelow .dijitTooltipConnector{border:4px solid #0000;border-top:0;border-bottom-color:#424242;top:0;left:8px}.dijitTooltipAbove{padding-bottom:4px}.dijitTooltipAbove .dijitTooltipConnector{border:4px solid #0000;border-top-color:#424242;border-bottom:0;bottom:0;left:8px}.dijitTooltipLeft{padding-right:4px}.dijitTooltipLeft .dijitTooltipConnector{border:4px solid #0000;border-left-color:#424242;border-right:0;right:0}.dijitTooltipRight{padding-left:4px}.dijitTooltipRight .dijitTooltipConnector{border-top:4px solid #0000;border-bottom:4px solid #0000;border-right:4px solid #424242;left:0}.dgrid{border:1px solid #ddd;height:30em;display:block;position:relative;overflow:hidden}.dgrid-header{background-color:#eee}.dgrid-header-row{position:absolute;left:0;right:17px}.dgrid-header-scroll{position:absolute;top:0;right:0}.dgrid-footer{width:100%;position:absolute;bottom:0}.dgrid-header-hidden{font-size:0;border-top:none!important;border-bottom:none!important;height:0!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{background-color:#eee;overflow:hidden}.dgrid-row-table{border-collapse:collapse;table-layout:fixed;empty-cells:show;border:none;width:100%;height:100%}.dgrid-cell{text-align:left;vertical-align:top;box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap;border:1px solid #ddd;border-top-style:none;padding:3px;overflow:hidden}.dgrid-content{height:99%;position:relative}.dgrid-scroller{width:100%;margin-top:25px;position:absolute;top:0;bottom:0;overflow:auto scroll}.dgrid-preload{font-size:0;line-height:0}.dgrid-loading{height:100%;position:relative}.dgrid-above{position:absolute;bottom:0}.ui-icon{background-image:url(data:image/png;base64,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);width:12px;height:16px}.dgrid-sort-arrow{float:right;background-position:-64px -16px;height:12px;margin:0 4px 0 5px;display:block}.dgrid-sort-up .dgrid-sort-arrow{background-position:0 -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;position:absolute;top:-9999px;overflow:scroll}.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{-ms-touch-action:pan-y;touch-action:pan-y;width:100%;height:100%;position:relative;overflow:hidden}.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:auto 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{-o-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{cursor:pointer;background-color:#0000;background-position:0 -192px;border:none;position:absolute;top:0;right:0}.dgrid-rtl-swap .dgrid-hider-toggle{left:0;right:auto}.dgrid-hider-menu{z-index:99999;background-color:#fff;border:1px solid #000;width:184px;padding:4px;position:absolute;top:0;right:17px;overflow:hidden auto}.dgrid-rtl-swap .dgrid-hider-menu{left:17px;right:auto}.dgrid-hider-menu-row{padding:2px;position:relative}.dgrid-hider-menu-check{padding:0;position:absolute;top:2px;left:2px}.dgrid-hider-menu-label{padding-left:20px;display:block}.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;z-index:1000;background-color:#666;width:2px;position:absolute}.dgrid-resize-handle{cursor:col-resize;z-index:999;border-left:5px solid #0000;outline:none;width:0;height:100px;position:absolute;top:-4px;right:-4px}.dgrid-resize-header-container{height:100%}.dgrid-resize-guard{cursor:col-resize;position:absolute;inset:0}html.has-touch .dgrid-resize-handle{border-left:20px solid #0000}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{border-top:none;border-bottom:none;padding-top:0;padding-bottom:0}.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;color:inherit;padding:0 4px;font-weight:700;text-decoration:none}.dgrid-first,.dgrid-last,.dgrid-next,.dgrid-previous{font-size:130%}.dgrid-pagination .dgrid-page-disabled{color:#aaa;cursor:default}.dgrid-page-input{text-align:center;width:2em;margin-top:1px}.dgrid-page-size{margin:1px 4px 0}.dgrid-rtl-swap .dgrid-header-row{left:17px;right:0}.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:0;border-bottom:1px solid #ddd;margin:2px -3px}.dgrid_Table .dgrid-sortable .dgrid-sort-arrow.ui-icon{margin:0}\n/*$vite$:1*/")),document.head.appendChild(i)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}}();
1
+ var t=Object.defineProperty,e=(e,s)=>t(e,"name",{value:s,configurable:!0});import{HTMLWidget as s,Palette as r,PropertyExt as i,format as o,select as n}from"@hpcc-js/common";import{hashSum as l}from"@hpcc-js/util";const a="@hpcc-js/dgrid",h="3.5.2",d="3.16.0";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');const c=globalThis["@hpcc-js/dgrid-shim"].Deferred,u=globalThis["@hpcc-js/dgrid-shim"].Memory,p=globalThis["@hpcc-js/dgrid-shim"].QueryResults,_=globalThis["@hpcc-js/dgrid-shim"].Grid,m=globalThis["@hpcc-js/dgrid-shim"].PagingGrid,f=globalThis["@hpcc-js/dgrid-shim"].domConstruct;function g(t){return String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function b(t){switch(Object.prototype.toString.call(t)){case"[object Undefined]":case"[object Boolean]":case"[object Number]":return t;case"[object String]":return g(t);default:console.warn("Unknown cell type: "+Object.prototype.toString.call(t))}return t}function w(t){return t instanceof Array}e(g,"entitiesEncode"),e(b,"safeEncode"),e(w,"isArray");const v=class _RowFormatter{constructor(t,e){this._renderHtml=e,this._columns=t,this.flattenColumns(t)}_columns;_flattenedColumns=[];_columnIdx={};_formattedRow={};flattenColumns(t){for(const e of t)this.flattenColumn(e)}flattenColumn(t){if(t.children)for(const e of t.children)this.flattenColumn(e);else this._columnIdx[t.field]=this._flattenedColumns.length,this._flattenedColumns.push(t.field)}format(t){return this._formattedRow={},this.formatRow(this._columns,t),this.row()}calcDepth(t,e){let s=1;for(const r of t)if(r.children&&e[r.leafID]){let t=0,i=[];w(e[r.leafID])?i=e[r.leafID]:w(e[r.leafID].Row)&&(i=e[r.leafID].Row);for(const e of i)t+=this.calcDepth(r.children,e);s=Math.max(s,t)}return s}formatCell(t,e,s){if(t.children){let s=0;w(e)||(e=w(e.Row)?e.Row:[e]);for(const r of e)s=Math.max(s,this.formatRow(t.children,r))}else if(t.isSet&&(e=JSON.stringify(e.Item)),void 0===this._formattedRow[t.field]?this._formattedRow[t.field]=""+(void 0===e?"":this._renderHtml?e:b(e)):(this._formattedRow[t.field]+="<br><hr class='dgrid-fakeline'>",this._formattedRow[t.field]+=""+(void 0===e?"":this._renderHtml?e:b(e))),s>1){const e=[];e.length=s;const r=e.join("<br><hr class='dgrid-fakeline' style='visibility: hidden'>");this._formattedRow[t.field]+=r}}formatRow(t,e=[],s=0){const r=this.calcDepth(t,e);for(const i of t)this.formatCell(i,e[i.leafID],r);return r}row(){const t={};for(const e of this._flattenedColumns)t[e]=this._formattedRow[e];return t}};e(v,"RowFormatter");let y=v;const D=class _DBStore{_db;Model;idProperty;constructor(t){this._db=t}_renderHtml=!0;renderHtml(t){this._renderHtml=t}db2Columns(t,e,s="",r,i){return e?e.map((e,o)=>{const n={label:e.label(),leafID:""+o,field:s+o,idx:o,className:"resultGridCell",sortable:t,isSet:!1};if("nested"===e.type())n.children=this.db2Columns(!1,e.children(),s+o+"_",r),n.sortable=!1;else n.formatter=r,n.renderCell=i;return n}):[]}columns(t,e,s){return this.db2Columns(t,this._db.fields(),"",e,s)}getIdentity(t){return t.__hpcc_id}get(t){return this._db.row(t+1)}_fetchRange(t){const e=new y(this.columns(!1),this._renderHtml);return this._db.data().slice(t.start,t.end).map((s,r)=>({...e.format(s),__hpcc_id:t.start+r,__origRow:s}))}fetchRange(t){const e=this._fetchRange(t),s=new c;return s.totalLength=new c,s.resolve(e),s.totalLength.resolve(this._db.length()-1),s}sort(t){return this._db.data().sort((e,s)=>{for(const r of t){const t=r.property;if(void 0===e[t]&&void 0!==s[t]||e[t]<s[t])return r.descending?1:-1;if(void 0!==e[t]&&void 0===s[t]||e[t]>s[t])return r.descending?-1:1}return 0}),this}};e(D,"DBStore");let C=D;const x=class _Common extends s{_columns=[];_store=new C(this._db);_dgridDiv;_dgrid;_prevPaging;_prevSortBy;_prevSortByDescending;_prevMultiSelect;constructor(){super(),this._tag="div"}formatSortBy(){const t=this.columns().indexOf(this.sortBy());return t>=0?[{property:t.toString(),descending:this.sortByDescending()}]:void 0}_supressEvents;selection(t){if(!arguments.length){const t=[];for(const e in this._dgrid.selection)if(this._dgrid.selection[e]){const s=this._store.get(+e);t.push(this.rowToObj(s))}return t}this._supressEvents=!0,this._dgrid?.clearSelection();let e=!0;this.data().forEach((s,r)=>{if(t.indexOf(s)>=0){const t=this._dgrid?.row(r);t.element&&e&&(e=!1,t.element.scrollIntoView()),this._dgrid?.select(r)}}),this._supressEvents=!1}enter(t,e){super.enter(t,e),this._dgridDiv=e.append("div").attr("class","flat")}update(t,e){super.update(t,e),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=e.append("div").attr("class","flat")),this._dgrid=new(this._prevPaging?m:_)({columns:this._columns,collection:this._store,sort:this.formatSortBy(),selectionMode:this.multiSelect()?"extended":"single",deselectOnRefresh:!0,cellNavigation:!1,pagingLinks:1,pagingTextBox:!0,previousNextArrows:!0,firstLastArrows:!0,rowsPerPage:this.pageSize(),pageSizeOptions:[1,10,25,50,100,1e3]},this._dgridDiv.node()),this._dgrid.on("dgrid-select",t=>{this._supressEvents||t.rows&&t.rows.length&&t.rows[0].data&&this.click(this.rowToObj(t.rows[0].data.__origRow),"",!0,{selection:this.selection()})}),this._dgrid.on("dgrid-deselect",t=>{this._supressEvents||t.rows&&t.rows.length&&t.rows[0].data&&this.click(this.rowToObj(t.rows[0].data.__origRow),"",!1,{selection:this.selection()})}),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()}exit(t,e){delete this._prevPaging,this._dgrid&&(this._dgrid.destroy(),delete this._dgrid),super.exit(t,e)}click(t,e,s,r){}};e(x,"Common");let R=x;R.prototype._class+=" dgrid_Common",R.prototype.publish("noDataMessage","...empty...","string","No Data Message"),R.prototype.publish("loadingMessage","loading...","string","Loading Message"),R.prototype.publish("pagination",!1,"boolean","Enable paging"),R.prototype.publish("pageSize",25,"number","Page size"),R.prototype.publish("sortable",!1,"boolean","Enable sorting by column"),R.prototype.publish("sortBy",null,"set","Default 'sort by' Column ID",function(){return this.columns()},{optional:!0}),R.prototype.publish("sortByDescending",!1,"boolean","Default 'sort by' descending",void 0,{disable:/* @__PURE__ */e(t=>!t.sortBy(),"disable")}),R.prototype.publish("multiSelect",!1,"boolean","Multiple Selection"),R.prototype.publish("renderHtml",!0,"boolean","Render HTML");const S=class _DatasourceCache{_datasource;_prevHash;_fetchCache={};constructor(t){this._datasource=t}validateCache(){const t=this.hash();this._prevHash!==t&&(this._prevHash=t,this._fetchCache={})}id(){return this._datasource.id()}hash(){return this._datasource.hash()}label(){return this._datasource.label()}outFields(){return this._datasource.outFields()}total(){return this._datasource.total()}fetch(t,e){this.validateCache();const s=`${t}->${e}`;let r=this._fetchCache[s];return r||(r=this._datasource.fetch(t,e),this._fetchCache[s]=r),r}};e(S,"DatasourceCache");let F=S;const j=class _DatasourceStore{_datasource;_columnsIdx={};_columns;rowFormatter;constructor(t,e){this._datasource=new F(t),this._columnsIdx={},this._columns=this.db2Columns(this._datasource.outFields()).map((t,e)=>(this._columnsIdx[t.field]=e,t)),this.rowFormatter=new y(this._columns,e)}columns(){return this._columns}db2Columns(t,e=""){return t?t.map((t,s)=>{const r={field:e+t.id,leafID:t.id,label:t.id,idx:s,className:"resultGridCell",sortable:!0,isSet:!1};return"dataset"===t.type?r.children=this.db2Columns(t.children,e+t.id+"_"):r.formatter=(t,e)=>"string"==typeof t?t.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;"):t,r}):[]}getIdentity(t){return t.__hpcc_id}_request(t,e){if(!this._datasource)return Promise.resolve({totalLength:0,data:[]});return this._datasource.fetch(t,e-t).then(e=>({totalLength:this._datasource.total(),data:e.map((e,s)=>{const r=this.rowFormatter.format(e);return r.__hpcc_id=t+s,r.__origRow=e,r})}))}fetchRange(t){const e=new c;return this._request(t.start,t.end).then(t=>e.resolve(t)),new p(e.then(t=>t.data),{totalLength:e.then(t=>t.totalLength)})}};e(j,"DatasourceStore");let H=j;const I=class _DatasourceTable extends R{_prevDatasource;constructor(){super()}invalidate(){return delete this._prevDatasource,this}enter(t,e){super.enter(t,e)}update(t,e){super.update(t,e)}render(t){return super.render(e=>{if(this._prevDatasource!==this.datasource())if(this._dgrid.set("collection",new u),this._dgrid.set("columns",[]),this._prevDatasource=this.datasource(),this._prevDatasource){const s=new H(this._prevDatasource,this.renderHtml());this._dgrid.set("columns",s.columns()),this._dgrid.set("collection",s),t&&t(e)}else t&&t(e);else t&&t(e)})}click(t,e,s){}};e(I,"DatasourceTable");let M=I;M.prototype._class+=" dgrid_DatasourceTable",M.prototype.publish("datasource",null,"object","Datasource");const B=class _ColumnFormat extends i{_owner;constructor(){super()}owner(t){return arguments.length?(this._owner=t,this):this._owner}valid(){return!!this.column()}formatterFunc(){const t=this._owner.formatterFunc();if(this.valid()&&this.format()){const e=o(this.format());return function(s,r){return"number"==typeof s?e(s):t.call(this,s,r)}}return t}renderCellFunc(){const t=this._owner.renderCellFunc(),e=this.formatterFunc();if(this.valid()&&this.paletteID()){const s=this._owner.columns(),i=r.rainbow(this.paletteID()),o=this.min(),l=this.max(),a=this.valueColumn()?s.indexOf(this.valueColumn()):void 0;return function(s,h,d){t&&t.call(this,s,h,d);const c=a?s.__origRow[a]:h,u=i(c,o,l),p=e.call(this,h,s);n(d).style("background",u).style("color",u&&r.textColor(u)).text(p?.html??p??h)}}return t}};e(B,"ColumnFormat");let T=B;T.prototype._class+=" dgrid_Table.ColumnFormat",T.prototype.publish("column",null,"set","Column",function(){return this._owner.columns()},{optional:!0}),T.prototype.publish("width",null,"number","Width",null,{optional:!0}),T.prototype.publish("format",null,"string","Format (d3-format)",null,{optional:!0}),T.prototype.publish("paletteID",null,"set","Color palette for this widget",["",...r.rainbow("default").switch()],{optional:!0}),T.prototype.publish("min",0,"number","Min Value",null,{disable:/* @__PURE__ */e(t=>!t.paletteID(),"disable")}),T.prototype.publish("max",100,"number","Max Value",null,{disable:/* @__PURE__ */e(t=>!t.paletteID(),"disable")}),T.prototype.publish("valueColumn",null,"set","Column",function(){return this._owner.columns()},{optional:!0,disable:/* @__PURE__ */e(t=>!t.paletteID(),"disable")});const O=class _Table extends R{_prevColsHash;_prevFieldsHash;_colsRefresh=!1;_dataRefresh=!1;constructor(){super()}fields(t){const e=super.fields.apply(this,arguments);if(arguments.length){const e=l({_:t});this._prevFieldsHash!==e&&(this._prevFieldsHash=e,this._colsRefresh=!0)}return e}columns(t,e){const s=super.columns.apply(this,arguments);if(arguments.length){const e=l({_:t});this._prevColsHash!==e&&(this._prevColsHash=e,this._colsRefresh=!0)}return s}data(t){const e=super.data.apply(this,arguments);return arguments.length&&(this._dataRefresh=!0),e}enter(t,e){super.enter(t,e)}guessWidth(t,e){const s=this.sortable()?12:0;for(const r of t)if(r.children){let t=[];for(let s=0;s<Math.min(3,e.length);++s)t=t.concat(e[s][r.idx]);this.guessWidth(r.children,t)}else r.width=e.reduce((t,e)=>{const s=(""+e[r.idx]).trim();return Math.max(t,this.textSize(s).width)},this.textSize(""+r.label,void 0,void 0,!0).width+s)+8}_prevHash;update(t,e){super.update(t,e);const s=this.hashSum();if(this._prevHash!==s&&(this._prevHash=s,this._colsRefresh=!0),this._colsRefresh){if(this._columns=this._store.columns(this.sortable(),this.formatterFunc(),this.renderCellFunc()),"auto"===this.columnWidth()){const t=this.data().filter((t,e)=>e<10);this.guessWidth(this._columns,t)}const t=this.columns();for(const e of this.columnFormats())if(e.valid()){const s=t.indexOf(e.column());this._columns[s]&&(this._columns[s].hidden=0===e.width(),this._columns[s].width=e.width()||this._columns[s].width,this._columns[s].formatter=e.formatterFunc(),this._columns[s].renderCell=e.renderCellFunc())}this._dgrid.set("columns",this._columns.filter(t=>!t.hidden)),this._colsRefresh=!1}(this._colsRefresh||this._dataRefresh)&&(this._colsRefresh?this._dgrid.refresh({}):this._dgrid.refresh(),this._colsRefresh=!1,this._dataRefresh=!1)}exit(t,e){delete this._prevColsHash,delete this._prevFieldsHash,super.exit(t,e)}formatterFunc(){return function(t,e){switch(typeof t){case"string":return{html:t.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;").trim()};case"undefined":return""}return t}}renderCellFunc(){}click(t,e,s){}};e(O,"Table");let P=O;P.prototype._class+=" dgrid_Table",P.prototype.publish("columnWidth","auto","set","Default column width",["auto","none"]),P.prototype.publish("columnFormats",[],"propertyArray","Source Columns",null,{autoExpand:T});export{d as BUILD_VERSION,T as ColumnFormat,R as Common,C as DBStore,F as DatasourceCache,H as DatasourceStore,M as DatasourceTable,c as Deferred,_ as Grid,u as Memory,a as PKG_NAME,h as PKG_VERSION,m as PagingGrid,p as QueryResults,y as RowFormatter,P as Table,f as domConstruct};
2
+ //# sourceMappingURL=index.js.map
3
+ !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;inset: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)}}();