@hpcc-js/dgrid 3.2.9 → 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 +351 -149
- package/dist/index.js.map +1 -1
- package/dist/index.umd.cjs +2 -2
- package/dist/index.umd.cjs.map +1 -1
- package/package.json +5 -5
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:
|
|
3
|
-
var
|
|
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"
|
|
7
|
-
|
|
8
|
-
const
|
|
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, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
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
|
-
|
|
29
|
-
|
|
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
|
|
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
|
|
61
|
+
} else {
|
|
62
|
+
this._columnIdx[column.field] = this._flattenedColumns.length;
|
|
63
|
+
this._flattenedColumns.push(column.field);
|
|
64
|
+
}
|
|
46
65
|
}
|
|
47
66
|
format(row) {
|
|
48
|
-
|
|
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
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
66
|
-
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
|
|
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",
|
|
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
|
-
|
|
150
|
+
if (!fields) return [];
|
|
151
|
+
return fields.map((field, idx) => {
|
|
152
|
+
const label = field.label();
|
|
101
153
|
const column = {
|
|
102
|
-
label
|
|
154
|
+
label,
|
|
103
155
|
leafID: "" + idx,
|
|
104
156
|
field: prefix + idx,
|
|
105
157
|
idx,
|
|
106
158
|
className: "resultGridCell",
|
|
107
159
|
sortable,
|
|
108
|
-
isSet:
|
|
160
|
+
isSet: false
|
|
109
161
|
};
|
|
110
162
|
switch (field.type()) {
|
|
111
163
|
case "nested":
|
|
112
|
-
column.children = this.db2Columns(
|
|
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
|
|
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(
|
|
131
|
-
return this._db.data().slice(opts.start, opts.end).map((row, idx) =>
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
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)
|
|
139
|
-
|
|
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
|
-
|
|
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
|
-
})
|
|
210
|
+
});
|
|
211
|
+
return this;
|
|
150
212
|
}
|
|
151
|
-
}
|
|
152
|
-
|
|
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 =
|
|
182
|
-
|
|
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
|
|
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
|
-
})
|
|
259
|
+
});
|
|
260
|
+
this._supressEvents = false;
|
|
190
261
|
}
|
|
191
262
|
enter(domNode, element) {
|
|
192
|
-
super.enter(domNode, element)
|
|
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)
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
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
|
|
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",
|
|
327
|
+
Common.prototype.publish("pagination", false, "boolean", "Enable paging");
|
|
224
328
|
Common.prototype.publish("pageSize", 25, "number", "Page size");
|
|
225
|
-
Common.prototype.publish("sortable",
|
|
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:
|
|
229
|
-
Common.prototype.publish("sortByDescending",
|
|
230
|
-
Common.prototype.publish("multiSelect",
|
|
231
|
-
Common.prototype.publish("renderHtml",
|
|
232
|
-
class
|
|
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
|
-
|
|
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
|
-
|
|
369
|
+
if (!retVal) {
|
|
370
|
+
retVal = this._datasource.fetch(from, count);
|
|
371
|
+
this._fetchCache[cacheID] = retVal;
|
|
372
|
+
}
|
|
373
|
+
return retVal;
|
|
263
374
|
}
|
|
264
|
-
}
|
|
265
|
-
|
|
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)
|
|
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
|
-
|
|
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:
|
|
285
|
-
isSet:
|
|
404
|
+
sortable: true,
|
|
405
|
+
isSet: false
|
|
286
406
|
};
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
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, " ");
|
|
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
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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())
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
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
|
|
496
|
+
const _ColumnFormat = class _ColumnFormat extends PropertyExt {
|
|
347
497
|
constructor() {
|
|
348
498
|
super();
|
|
349
499
|
__publicField(this, "_owner");
|
|
350
500
|
}
|
|
351
501
|
owner(_) {
|
|
352
|
-
|
|
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
|
-
|
|
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()
|
|
522
|
+
const defaultRenderCell = this._owner.renderCellFunc();
|
|
523
|
+
const defaultFormatter = this.formatterFunc();
|
|
369
524
|
if (this.valid() && this.paletteID()) {
|
|
370
|
-
const columns = this._owner.columns()
|
|
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
|
-
|
|
373
|
-
|
|
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:
|
|
384
|
-
ColumnFormat.prototype.publish("width", null, "number", "Width", null, { optional:
|
|
385
|
-
ColumnFormat.prototype.publish("format", null, "string", "Format (d3-format)", null, { optional:
|
|
386
|
-
ColumnFormat.prototype.publish("paletteID", null, "set", "Color palette for this widget", ["", ...Palette.rainbow("default").switch()], { optional:
|
|
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:
|
|
392
|
-
class
|
|
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",
|
|
398
|
-
__publicField(this, "_dataRefresh",
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
|
442
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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,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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)}})();
|
|
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)}}();
|