@hpcc-js/dgrid 3.1.0 → 3.2.0

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,496 +1,500 @@
1
- var F=Object.defineProperty;var d=(n,t)=>F(n,"name",{value:t,configurable:!0});var E="@hpcc-js/dgrid",Y="3.1.0",L="3.2.0";import{HTMLWidget as z}from"@hpcc-js/common";globalThis["@hpcc-js/dgrid-shim"]||console.error('dgrid-shim not loaded, please add `<script src="https://cdn.jsdelivr.net/npm/@hpcc-js/dgrid-shim@2.26.0/dist/index.min.js"><\/script>` or similar to your HTML file');var u=globalThis["@hpcc-js/dgrid-shim"].Deferred,x=globalThis["@hpcc-js/dgrid-shim"].Memory,_=globalThis["@hpcc-js/dgrid-shim"].QueryResults,I=globalThis["@hpcc-js/dgrid-shim"].Grid,v=globalThis["@hpcc-js/dgrid-shim"].PagingGrid,j=globalThis["@hpcc-js/dgrid-shim"].domConstruct;function B(n){return String(n).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}d(B,"entitiesEncode");function Q(n){switch(Object.prototype.toString.call(n)){case"[object Undefined]":case"[object Boolean]":case"[object Number]":return n;case"[object String]":return B(n);default:console.warn("Unknown cell type: "+Object.prototype.toString.call(n))}return n}d(Q,"safeEncode");var M="<br><hr class='dgrid-fakeline'>",H="<br><hr class='dgrid-fakeline' style='visibility: hidden'>",c=class{constructor(t,e){this._renderHtml=e;this._columns=t,this.flattenColumns(t)}static{d(this,"RowFormatter")}_columns;_flattenedColumns=[];_columnIdx={};_formattedRow={};flattenColumns(t){for(let e of t)this.flattenColumn(e)}flattenColumn(t){if(t.children)for(let 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 r=1;for(let o of t)if(o.children&&e[o.leafID]){let i=0;for(let s of e[o.leafID])s instanceof Array,i+=this.calcDepth(o.children,s);r=Math.max(r,i)}return r}formatCell(t,e,r){if(t.children){let o=0;e instanceof Array||(e instanceof Object&&e.Row instanceof Array?e=e.Row:e=[e]);for(let i of e)o=Math.max(o,this.formatRow(t.children,i))}else if(t.isSet&&(e=JSON.stringify(e.Item)),this._formattedRow[t.field]===void 0?this._formattedRow[t.field]=""+e===void 0?"":this._renderHtml?e:Q(e):(this._formattedRow[t.field]+=M,this._formattedRow[t.field]+=""+e===void 0?"":this._renderHtml?e:Q(e)),r>1){let o=[];o.length=r;let i=o.join(H);this._formattedRow[t.field]+=i}}formatRow(t,e=[],r=0){let o=this.calcDepth(t,e);for(let i of t)this.formatCell(i,e[i.leafID],o);return o}row(){let t={};for(let e of this._flattenedColumns)t[e]=this._formattedRow[e];return t}};var f=class{static{d(this,"DBStore")}_db;Model;idProperty;constructor(t){this._db=t}_renderHtml=!0;renderHtml(t){this._renderHtml=t}db2Columns(t,e,r="",o,i){return e?e.map((s,a)=>{let p={label:s.label(),leafID:""+a,field:r+a,idx:a,className:"resultGridCell",sortable:t,isSet:!1};switch(s.type()){case"nested":p.children=this.db2Columns(!1,s.children(),r+a+"_",o),p.sortable=!1;break;default:p.formatter=o,p.renderCell=i}return p}):[]}columns(t,e,r){return this.db2Columns(t,this._db.fields(),"",e,r)}getIdentity(t){return t.__hpcc_id}get(t){return this._db.row(t+1)}_fetchRange(t){let e=new c(this.columns(!1),this._renderHtml);return this._db.data().slice(t.start,t.end).map((r,o)=>({...e.format(r),__hpcc_id:t.start+o,__origRow:r}))}fetchRange(t){let e=this._fetchRange(t),r=new u;return r.totalLength=new u,r.resolve(e),r.totalLength.resolve(this._db.length()-1),r}sort(t){return this._db.data().sort((e,r)=>{for(let o of t){let i=o.property;if(e[i]===void 0&&r[i]!==void 0||e[i]<r[i])return o.descending?1:-1;if(e[i]!==void 0&&r[i]===void 0||e[i]>r[i])return o.descending?-1:1}return 0}),this}};(function(){if(!document.getElementById("f79652bc")){var n=document.createElement("style");n.id="f79652bc",n.textContent=`\uFEFF
2
- .dijitTooltip {
3
- position: absolute;
4
- z-index: 2000;
5
- display: block;
6
-
7
- left: 0;
8
- top: -10000px;
9
- overflow: visible;
10
-
11
- font-family: Verdana, Geneva, sans-serif;
12
- font-size: 12px;
13
- }
14
- .dijitTooltipContainer {
15
- border: solid black 2px;
16
- background: #b8b5b5;
17
- color: black;
18
- font-size: small;
19
- }
20
- .dijitTooltipFocusNode {
21
- padding: 2px 2px 2px 2px;
22
- }
23
- .dijitTooltipConnector {
24
- position: absolute;
25
- }
26
- .dj_a11y .dijitTooltipConnector {
27
- display: none;
28
- }
29
- .dijitTooltipData {
30
- display:none;
31
- }
32
-
33
- .dijitTooltip {
34
- /* the outermost dom node, holding the connector and container */
35
- background: transparent; /* make the area on the sides of the arrow transparent */
36
- }
37
- .dijitTooltipContainer {
38
- background-color: #424242;
39
- opacity: 1;
40
- -ms-filter: none;
41
- filter: none;
42
- padding: 4px 8px;
43
- border-radius: 3px;
44
- }
45
- .dijitTooltip .dijitTooltipContainer {
46
- color: #fff;
47
- border: 0 none;
48
- }
49
- .dijitTooltipConnector {
50
- /* the arrow */
51
- z-index: 2;
52
- width: auto;
53
- height: auto;
54
- opacity: 1;
55
- -ms-filter: none;
56
- filter: none;
57
- }
58
- .dijitTooltipABRight .dijitTooltipConnector {
59
- /* above or below tooltip, but the arrow appears on the right,
60
- and the right edges of target and tooltip are aligned rather than the left */
61
- left: auto !important;
62
- right: 8px;
63
- }
64
- .dijitTooltipBelow {
65
- /* leave room for arrow above content */
66
- padding-top: 4px;
67
- }
68
- .dijitTooltipBelow .dijitTooltipConnector {
69
- /* the arrow piece for tooltips below an element */
70
- top: 0;
71
- left: 8px;
72
- border-bottom: 4px solid #424242;
73
- border-left: 4px solid transparent;
74
- border-right: 4px solid transparent;
75
- border-top: 0;
76
- }
77
- .dijitTooltipAbove {
78
- /* leave room for arrow below content */
79
- padding-bottom: 4px;
80
- }
81
- .dijitTooltipAbove .dijitTooltipConnector {
82
- /* the arrow piece for tooltips above an element */
83
- bottom: 0;
84
- left: 8px;
85
- border-top: 4px solid #424242;
86
- border-left: 4px solid transparent;
87
- border-right: 4px solid transparent;
88
- border-bottom: 0;
89
- }
90
- .dijitTooltipLeft {
91
- padding-right: 4px;
92
- }
93
- .dijitTooltipLeft .dijitTooltipConnector {
94
- /* the arrow piece for tooltips to the left of an element, bottom borders aligned */
95
- right: 0;
96
- border-left: 4px solid #424242;
97
- border-bottom: 4px solid transparent;
98
- border-top: 4px solid transparent;
99
- border-right: 0;
100
- }
101
- .dijitTooltipRight {
102
- padding-left: 4px;
103
- }
104
- .dijitTooltipRight .dijitTooltipConnector {
105
- /* the arrow piece for tooltips to the right of an element, bottom borders aligned */
106
- left: 0;
107
- border-bottom: 4px solid transparent;
108
- border-top: 4px solid transparent;
109
- border-right: 4px solid #424242;
110
- }
111
-
112
- .dgrid {
113
- position: relative;
114
- overflow: hidden;
115
- border: 1px solid #ddd;
116
- height: 30em;
117
- display: block;
118
- }
119
- .dgrid-header {
120
- background-color: #eee;
121
- }
122
- .dgrid-header-row {
123
- position: absolute;
124
- right: 17px;
125
- left: 0;
126
- }
127
- .dgrid-header-scroll {
128
- position: absolute;
129
- top: 0;
130
- right: 0;
131
- }
132
- .dgrid-footer {
133
- position: absolute;
134
- bottom: 0;
135
- width: 100%;
136
- }
137
- .dgrid-header-hidden {
138
- font-size: 0;
139
- height: 0 !important;
140
- border-top: none !important;
141
- border-bottom: none !important;
142
- margin-top: 0 !important;
143
- margin-bottom: 0 !important;
144
- padding-top: 0 !important;
145
- padding-bottom: 0 !important;
146
- }
147
- .dgrid-footer-hidden {
148
- display: none;
149
- }
150
- .dgrid-sortable {
151
- cursor: pointer;
152
- }
153
- .dgrid-header,
154
- .dgrid-header-row,
155
- .dgrid-footer {
156
- overflow: hidden;
157
- background-color: #eee;
158
- }
159
- .dgrid-row-table {
160
- border-collapse: collapse;
161
- border: none;
162
- table-layout: fixed;
163
- empty-cells: show;
164
- width: 100%;
165
- height: 100%;
166
- }
167
- .dgrid-cell {
168
- padding: 3px;
169
- text-align: left;
170
- overflow: hidden;
171
- vertical-align: top;
172
- border: 1px solid #ddd;
173
- border-top-style: none;
174
- -webkit-box-sizing: border-box;
175
- -moz-box-sizing: border-box;
176
- box-sizing: border-box;
177
- text-overflow: ellipsis;
178
- white-space: nowrap;
179
- }
180
- .dgrid-content {
181
- position: relative;
182
- height: 99%;
183
- }
184
- .dgrid-scroller {
185
- overflow-x: auto;
186
- overflow-y: scroll;
187
- position: absolute;
188
- top: 0px;
189
- margin-top: 25px;
190
- bottom: 0px;
191
- width: 100%;
192
- }
193
- .dgrid-preload {
194
- font-size: 0;
195
- line-height: 0;
196
- }
197
- .dgrid-loading {
198
- position: relative;
199
- height: 100%;
200
- }
201
- .dgrid-above {
202
- position: absolute;
203
- bottom: 0;
204
- }
205
- .ui-icon {
206
- width: 12px;
207
- height: 16px;
208
- background-image: url(data:image/png;base64,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);
209
- }
210
- .dgrid-sort-arrow {
211
- background-position: -64px -16px;
212
- display: block;
213
- float: right;
214
- margin: 0 4px 0 5px;
215
- height: 12px;
216
- }
217
- .dgrid-sort-up .dgrid-sort-arrow {
218
- background-position: 0px -16px;
219
- }
220
- .dgrid-selected {
221
- background-color: #bbb;
222
- }
223
- .dgrid-input {
224
- width: 99%;
225
- }
226
- html.has-mozilla .dgrid .dgrid-row:focus,
227
- html.has-mozilla .dgrid .dgrid-cell:focus {
228
- outline: 1px dotted;
229
- }
230
- html.has-mozilla .dgrid-focus {
231
- outline-offset: -1px;
232
- }
233
- .dgrid-scrollbar-measure {
234
- width: 100px;
235
- height: 100px;
236
- overflow: scroll;
237
- position: absolute;
238
- top: -9999px;
239
- }
240
- .dgrid-autoheight {
241
- height: auto;
242
- }
243
- .dgrid-autoheight .dgrid-scroller {
244
- position: relative;
245
- overflow-y: hidden;
246
- }
247
- .dgrid-autoheight .dgrid-header-scroll {
248
- display: none;
249
- }
250
- .dgrid-autoheight .dgrid-header {
251
- right: 0;
252
- }
253
- .dgrid-column-set {
254
- overflow: hidden;
255
- width: 100%;
256
- position: relative;
257
- height: 100%;
258
- -ms-touch-action: pan-y;
259
- touch-action: pan-y;
260
- }
261
- .dgrid-column-set-cell {
262
- vertical-align: top;
263
- height: 100%;
264
- }
265
- .dgrid-column-set-scroller-container {
266
- font-size: 0;
267
- position: absolute;
268
- bottom: 0;
269
- }
270
- .dgrid-autoheight .dgrid-column-set-scroller-container {
271
- position: relative;
272
- }
273
- .dgrid-column-set-scroller {
274
- display: inline-block;
275
- overflow-x: auto;
276
- overflow-y: hidden;
277
- }
278
- .dgrid-column-set-scroller-content {
279
- height: 1px;
280
- }
281
- .ui-icon-triangle-1-e {
282
- background-position: -32px -16px;
283
- }
284
- .ui-icon-triangle-1-se {
285
- background-position: -48px -16px;
286
- }
287
- .dgrid-expando-icon {
288
- width: 16px;
289
- height: 16px;
290
- }
291
- .dgrid-tree-container {
292
- -webkit-transition-duration: 0.3s;
293
- -moz-transition-duration: 0.3s;
294
- -o-transition-duration: 0.3s;
295
- -ms-transition-duration: 0.3s;
296
- transition-duration: 0.3s;
297
- overflow: hidden;
298
- }
299
- .dgrid-tree-container.dgrid-tree-resetting {
300
- -webkit-transition-duration: 0;
301
- -moz-transition-duration: 0;
302
- -o-transition-duration: 0;
303
- -ms-transition-duration: 0;
304
- transition-duration: 0;
305
- }
306
- .dgrid-hider-toggle {
307
- background-position: 0 -192px;
308
- background-color: transparent;
309
- border: none;
310
- cursor: pointer;
311
- position: absolute;
312
- right: 0;
313
- top: 0;
314
- }
315
- .dgrid-rtl-swap .dgrid-hider-toggle {
316
- right: auto;
317
- left: 0;
318
- }
319
- .dgrid-hider-menu {
320
- position: absolute;
321
- top: 0;
322
- right: 17px;
323
- width: 184px;
324
- background-color: #fff;
325
- border: 1px solid #000;
326
- z-index: 99999;
327
- padding: 4px;
328
- overflow-x: hidden;
329
- overflow-y: auto;
330
- }
331
- .dgrid-rtl-swap .dgrid-hider-menu {
332
- right: auto;
333
- left: 17px;
334
- }
335
- .dgrid-hider-menu-row {
336
- position: relative;
337
- padding: 2px;
338
- }
339
- .dgrid-hider-menu-check {
340
- position: absolute;
341
- top: 2px;
342
- left: 2px;
343
- padding: 0;
344
- }
345
- .dgrid-hider-menu-label {
346
- display: block;
347
- padding-left: 20px;
348
- }
349
- .dgrid-header .dojoDndTarget .dgrid-cell {
350
- display: table-cell;
351
- }
352
- .dgrid-header .dojoDndItemBefore {
353
- border-left: 2px dotted #000 !important;
354
- }
355
- .dgrid-header .dojoDndItemAfter {
356
- border-right: 2px dotted #000 !important;
357
- }
358
- .dgrid-column-resizer {
359
- cursor: col-resize;
360
- position: absolute;
361
- width: 2px;
362
- background-color: #666;
363
- z-index: 1000;
364
- }
365
- .dgrid-resize-handle {
366
- height: 100px;
367
- width: 0;
368
- position: absolute;
369
- right: -4px;
370
- top: -4px;
371
- cursor: col-resize;
372
- z-index: 999;
373
- border-left: 5px solid transparent;
374
- outline: none;
375
- }
376
- .dgrid-resize-header-container {
377
- height: 100%;
378
- }
379
- .dgrid-resize-guard {
380
- cursor: col-resize;
381
- position: absolute;
382
- bottom: 0;
383
- left: 0;
384
- right: 0;
385
- top: 0;
386
- }
387
- html.has-touch .dgrid-resize-handle {
388
- border-left: 20px solid transparent;
389
- }
390
- html.has-touch .dgrid-column-resizer {
391
- width: 2px;
392
- }
393
- .dgrid-resize-header-container {
394
- position: relative;
395
- }
396
- .dgrid-header .dgrid-cell {
397
- overflow: hidden;
398
- }
399
- .dgrid-spacer-row {
400
- height: 0;
401
- }
402
- .dgrid-spacer-row th {
403
- padding-top: 0;
404
- padding-bottom: 0;
405
- border-top: none;
406
- border-bottom: none;
407
- }
408
- .dgrid-status {
409
- padding: 2px;
410
- }
411
- .dgrid-pagination .dgrid-status {
412
- float: left;
413
- }
414
- .dgrid-pagination .dgrid-navigation,
415
- .dgrid-pagination .dgrid-page-size {
416
- float: right;
417
- }
418
- .dgrid-navigation .dgrid-page-link {
419
- cursor: pointer;
420
- font-weight: bold;
421
- text-decoration: none;
422
- color: inherit;
423
- padding: 0 4px;
424
- }
425
- .dgrid-first,
426
- .dgrid-last,
427
- .dgrid-next,
428
- .dgrid-previous {
429
- font-size: 130%;
430
- }
431
- .dgrid-pagination .dgrid-page-disabled {
432
- color: #aaa;
433
- cursor: default;
434
- }
435
- .dgrid-page-input {
436
- margin-top: 1px;
437
- width: 2em;
438
- text-align: center;
439
- }
440
- .dgrid-page-size {
441
- margin: 1px 4px 0 4px;
442
- }
443
- .dgrid-rtl-swap .dgrid-header-row {
444
- right: 0;
445
- left: 17px;
446
- }
447
- .dgrid-rtl-swap .dgrid-header-scroll {
448
- left: 0px;
449
- right: auto;
450
- }
451
- .dgrid-rtl .dgrid-cell {
452
- text-align: right;
453
- }
454
- .dgrid-rtl .dgrid-sort-arrow {
455
- float: left;
456
- margin: 0 5px 0 4px;
457
- }
458
- .dgrid-rtl .ui-icon-triangle-1-e {
459
- background-position: -96px -16px;
460
- }
461
- .dgrid-rtl .ui-icon-triangle-1-se {
462
- background-position: -80px -16px;
463
- }
464
- .dgrid-rtl .dgrid-pagination .dgrid-status {
465
- float: right;
466
- }
467
- .dgrid-rtl .dgrid-pagination .dgrid-page-size {
468
- float: right;
469
- }
470
- .dgrid-rtl .dgrid-pagination .dgrid-navigation {
471
- float: left;
472
- }
473
- .dgrid-rtl.dgrid-autoheight .dgrid-header {
474
- left: 0;
475
- }
476
-
477
- .dgrid_Table .placeholder {
478
- border:none;
479
- padding:0px;
480
- overflow:hidden;
481
- }
482
-
483
- .dgrid_Table .dgrid-fakeline {
484
- border: 0px;
485
- border-bottom: 1px solid rgb(221, 221, 221);
486
- margin: 0px;
487
- margin-left:-3px;
488
- margin-top:2px;
489
- margin-right:-3px;
490
- margin-bottom:2px;
491
- }
492
-
493
- .dgrid_Table .dgrid-sortable .dgrid-sort-arrow.ui-icon {
494
- margin:0px;
495
- }`,document.head.appendChild(n)}})();var l=class extends z{static{d(this,"Common")}_columns=[];_store=new f(this._db);_dgridDiv;_dgrid;_prevPaging;_prevSortBy;_prevSortByDescending;_prevMultiSelect;constructor(){super(),this._tag="div"}formatSortBy(){let t=this.columns().indexOf(this.sortBy());return t>=0?[{property:t.toString(),descending:this.sortByDescending()}]:void 0}_supressEvents;selection(t){if(!arguments.length){let r=[];for(let o in this._dgrid.selection)if(this._dgrid.selection[o]){let i=this._store.get(+o);r.push(this.rowToObj(i))}return r}this._supressEvents=!0,this._dgrid?.clearSelection();let e=!0;this.data().forEach((r,o)=>{if(t.indexOf(r)>=0){let i=this._dgrid?.row(o);i.element&&e&&(e=!1,i.element.scrollIntoView()),this._dgrid?.select(o)}}),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?v:I)({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",r=>{this._supressEvents||r.rows&&r.rows.length&&r.rows[0].data&&this.click(this.rowToObj(r.rows[0].data.__origRow),"",!0,{selection:this.selection()})}),this._dgrid.on("dgrid-deselect",r=>{this._supressEvents||r.rows&&r.rows.length&&r.rows[0].data&&this.click(this.rowToObj(r.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,r,o){}};l.prototype._class+=" dgrid_Common";l.prototype.publish("noDataMessage","...empty...","string","No Data Message");l.prototype.publish("loadingMessage","loading...","string","Loading Message");l.prototype.publish("pagination",!1,"boolean","Enable paging");l.prototype.publish("pageSize",25,"number","Page size");l.prototype.publish("sortable",!1,"boolean","Enable sorting by column");l.prototype.publish("sortBy",null,"set","Default 'sort by' Column ID",function(){return this.columns()},{optional:!0});l.prototype.publish("sortByDescending",!1,"boolean","Default 'sort by' descending",void 0,{disable:d(n=>!n.sortBy(),"disable")});l.prototype.publish("multiSelect",!1,"boolean","Multiple Selection");l.prototype.publish("renderHtml",!0,"boolean","Render HTML");var A=class{static{d(this,"DatasourceCache")}_datasource;_prevHash;_fetchCache={};constructor(t){this._datasource=t}validateCache(){let 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();let r=`${t}->${e}`,o=this._fetchCache[r];return o||(o=this._datasource.fetch(t,e),this._fetchCache[r]=o),o}},b=class{static{d(this,"DatasourceStore")}_datasource;_columnsIdx={};_columns;rowFormatter;constructor(t,e){this._datasource=new A(t),this._columnsIdx={},this._columns=this.db2Columns(this._datasource.outFields()).map((r,o)=>(this._columnsIdx[r.field]=o,r)),this.rowFormatter=new c(this._columns,e)}columns(){return this._columns}db2Columns(t,e=""){return t?t.map((r,o)=>{let i={field:e+r.id,leafID:r.id,label:r.id,idx:o,className:"resultGridCell",sortable:!0,isSet:!1};return r.type==="dataset"?i.children=this.db2Columns(r.children,e+r.id+"_"):i.formatter=(s,a)=>{switch(typeof s){case"string":return s.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;")}return s},i}):[]}getIdentity(t){return t.__hpcc_id}_request(t,e){return this._datasource?this._datasource.fetch(t,e-t).then(o=>({totalLength:this._datasource.total(),data:o.map((i,s)=>{let a=this.rowFormatter.format(i);return a.__hpcc_id=t+s,a.__origRow=i,a})})):Promise.resolve({totalLength:0,data:[]})}fetchRange(t){let e=new u;return this._request(t.start,t.end).then(r=>e.resolve(r)),new _(e.then(r=>r.data),{totalLength:e.then(r=>r.totalLength)})}};var y=class extends l{static{d(this,"DatasourceTable")}_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 x),this._dgrid.set("columns",[]),this._prevDatasource=this.datasource(),this._prevDatasource){let r=new b(this._prevDatasource,this.renderHtml());this._dgrid.set("columns",r.columns()),this._dgrid.set("collection",r),t&&t(e)}else t&&t(e);else t&&t(e)})}click(t,e,r){}};y.prototype._class+=" dgrid_DatasourceTable";y.prototype.publish("datasource",null,"object","Datasource");import{Palette as C,PropertyExt as P}from"@hpcc-js/common";import{hashSum as T}from"@hpcc-js/util";import{format as G}from"@hpcc-js/common";import{select as N}from"@hpcc-js/common";var h=class extends P{static{d(this,"ColumnFormat")}_owner;constructor(){super()}owner(t){return arguments.length?(this._owner=t,this):this._owner}valid(){return!!this.column()}formatterFunc(){let t=this._owner.formatterFunc();if(this.valid()&&this.format()){let e=G(this.format());return function(r,o){return typeof r=="number"?e(r):t.call(this,r,o)}}return t}renderCellFunc(){let t=this._owner.renderCellFunc(),e=this.formatterFunc();if(this.valid()&&this.paletteID()){let r=this._owner.columns(),o=C.rainbow(this.paletteID()),i=this.min(),s=this.max(),a=this.valueColumn()?r.indexOf(this.valueColumn()):void 0;return function(m,p,k){t&&t.call(this,m,p,k);let R=a?m.__origRow[a]:p,w=o(R,i,s),D=e.call(this,p,m);N(k).style("background",w).style("color",w&&C.textColor(w)).text(D?.html??D??p)}}return t}};h.prototype._class+=" dgrid_Table.ColumnFormat";h.prototype.publish("column",null,"set","Column",function(){return this._owner.columns()},{optional:!0});h.prototype.publish("width",null,"number","Width",null,{optional:!0});h.prototype.publish("format",null,"string","Format (d3-format)",null,{optional:!0});h.prototype.publish("paletteID",null,"set","Color palette for this widget",["",...C.rainbow("default").switch()],{optional:!0});h.prototype.publish("min",0,"number","Min Value",null,{disable:d(n=>!n.paletteID(),"disable")});h.prototype.publish("max",100,"number","Max Value",null,{disable:d(n=>!n.paletteID(),"disable")});h.prototype.publish("valueColumn",null,"set","Column",function(){return this._owner.columns()},{optional:!0,disable:d(n=>!n.paletteID(),"disable")});var g=class extends l{static{d(this,"Table")}_prevColsHash;_prevFieldsHash;_colsRefresh=!1;_dataRefresh=!1;constructor(){super()}fields(t){let e=super.fields.apply(this,arguments);if(arguments.length){let r=T({_:t});this._prevFieldsHash!==r&&(this._prevFieldsHash=r,this._colsRefresh=!0)}return e}columns(t,e){let r=super.columns.apply(this,arguments);if(arguments.length){let o=T({_:t});this._prevColsHash!==o&&(this._prevColsHash=o,this._colsRefresh=!0)}return r}data(t){let e=super.data.apply(this,arguments);return arguments.length&&(this._dataRefresh=!0),e}enter(t,e){super.enter(t,e)}guessWidth(t,e){let r=this.sortable()?12:0;for(let o of t)if(o.children){let i=[];for(let s=0;s<Math.min(3,e.length);++s)i=i.concat(e[s][o.idx]);this.guessWidth(o.children,i)}else o.width=e.reduce((i,s)=>{let a=(""+s[o.idx]).trim();return Math.max(i,this.textSize(a).width)},this.textSize(""+o.label,void 0,void 0,!0).width+r)+8}_prevHash;update(t,e){super.update(t,e);let r=this.hashSum();if(this._prevHash!==r&&(this._prevHash=r,this._colsRefresh=!0),this._colsRefresh){switch(this._columns=this._store.columns(this.sortable(),this.formatterFunc(),this.renderCellFunc()),this.columnWidth()){case"auto":let i=this.data().filter((s,a)=>a<10);this.guessWidth(this._columns,i);break}let o=this.columns();for(let i of this.columnFormats())if(i.valid()){let s=o.indexOf(i.column());this._columns[s]&&(this._columns[s].hidden=i.width()===0,this._columns[s].width=i.width()||this._columns[s].width,this._columns[s].formatter=i.formatterFunc(),this._columns[s].renderCell=i.renderCellFunc())}this._dgrid.set("columns",this._columns.filter(i=>!i.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,r){}};g.prototype._class+=" dgrid_Table";g.prototype.publish("columnWidth","auto","set","Default column width",["auto","none"]);g.prototype.publish("columnFormats",[],"propertyArray","Source Columns",null,{autoExpand:h});export{L as BUILD_VERSION,h as ColumnFormat,l as Common,f as DBStore,A as DatasourceCache,b as DatasourceStore,y as DatasourceTable,u as Deferred,I as Grid,x as Memory,E as PKG_NAME,Y as PKG_VERSION,v as PagingGrid,_ as QueryResults,c as RowFormatter,g as Table,j as domConstruct};
1
+ (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)}})();
2
+ var __defProp = Object.defineProperty;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value;
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key != "symbol" ? key + "" : key, value);
5
+ import { HTMLWidget, Palette, PropertyExt, format, select } from "@hpcc-js/common";
6
+ import { hashSum } from "@hpcc-js/util";
7
+ const PKG_NAME = "@hpcc-js/dgrid", PKG_VERSION = "3.1.0", BUILD_VERSION = "3.2.1";
8
+ globalThis["@hpcc-js/dgrid-shim"] || console.error('dgrid-shim not loaded, please add `<script src="https://cdn.jsdelivr.net/npm/@hpcc-js/dgrid-shim@2.26.0/dist/index.min.js"><\/script>` or similar to your HTML file');
9
+ const Deferred = globalThis["@hpcc-js/dgrid-shim"].Deferred, Memory = globalThis["@hpcc-js/dgrid-shim"].Memory, QueryResults = globalThis["@hpcc-js/dgrid-shim"].QueryResults, Grid = globalThis["@hpcc-js/dgrid-shim"].Grid, PagingGrid = globalThis["@hpcc-js/dgrid-shim"].PagingGrid, domConstruct = globalThis["@hpcc-js/dgrid-shim"].domConstruct;
10
+ function entitiesEncode(str) {
11
+ return String(str).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
12
+ }
13
+ function safeEncode(item) {
14
+ switch (Object.prototype.toString.call(item)) {
15
+ case "[object Undefined]":
16
+ case "[object Boolean]":
17
+ case "[object Number]":
18
+ return item;
19
+ case "[object String]":
20
+ return entitiesEncode(item);
21
+ default:
22
+ console.warn("Unknown cell type: " + Object.prototype.toString.call(item));
23
+ }
24
+ return item;
25
+ }
26
+ const LINE_SPLITTER = "<br><hr class='dgrid-fakeline'>", LINE_SPLITTER2 = "<br><hr class='dgrid-fakeline' style='visibility: hidden'>";
27
+ class RowFormatter {
28
+ constructor(columns, _renderHtml) {
29
+ __publicField(this, "_columns");
30
+ __publicField(this, "_flattenedColumns", []);
31
+ __publicField(this, "_columnIdx", {});
32
+ __publicField(this, "_formattedRow", {});
33
+ this._renderHtml = _renderHtml, this._columns = columns, this.flattenColumns(columns);
34
+ }
35
+ flattenColumns(columns) {
36
+ for (const column of columns)
37
+ this.flattenColumn(column);
38
+ }
39
+ flattenColumn(column) {
40
+ if (column.children)
41
+ for (const childColumn of column.children) this.flattenColumn(childColumn);
42
+ else
43
+ this._columnIdx[column.field] = this._flattenedColumns.length, this._flattenedColumns.push(column.field);
44
+ }
45
+ format(row) {
46
+ return this._formattedRow = {}, this.formatRow(this._columns, row), this.row();
47
+ }
48
+ calcDepth(columns, row) {
49
+ let maxChildDepth = 1;
50
+ for (const column of columns)
51
+ if (column.children && row[column.leafID]) {
52
+ let childDepth = 0;
53
+ for (const childRow of row[column.leafID])
54
+ childDepth += this.calcDepth(column.children, childRow);
55
+ maxChildDepth = Math.max(maxChildDepth, childDepth);
56
+ }
57
+ return maxChildDepth;
58
+ }
59
+ formatCell(column, cell, maxChildDepth) {
60
+ if (column.children) {
61
+ let childDepth = 0;
62
+ cell instanceof Array || (cell instanceof Object && cell.Row instanceof Array ? cell = cell.Row : cell = [cell]);
63
+ for (const row of cell)
64
+ childDepth = Math.max(childDepth, this.formatRow(column.children, row));
65
+ } else if (column.isSet && (cell = JSON.stringify(cell.Item)), this._formattedRow[column.field] === void 0 ? this._formattedRow[column.field] = "" + (cell === void 0 ? "" : this._renderHtml ? cell : safeEncode(cell)) : (this._formattedRow[column.field] += LINE_SPLITTER, this._formattedRow[column.field] += "" + (cell === void 0 ? "" : this._renderHtml ? cell : safeEncode(cell))), maxChildDepth > 1) {
66
+ const paddingArr = [];
67
+ paddingArr.length = maxChildDepth;
68
+ const padding = paddingArr.join(LINE_SPLITTER2);
69
+ this._formattedRow[column.field] += padding;
70
+ }
71
+ }
72
+ formatRow(columns, row = [], rowIdx = 0) {
73
+ const maxChildDepth = this.calcDepth(columns, row);
74
+ for (const column of columns)
75
+ this.formatCell(column, row[column.leafID], maxChildDepth);
76
+ return maxChildDepth;
77
+ }
78
+ row() {
79
+ const retVal = {};
80
+ for (const column of this._flattenedColumns)
81
+ retVal[column] = this._formattedRow[column];
82
+ return retVal;
83
+ }
84
+ }
85
+ class DBStore {
86
+ constructor(db) {
87
+ __publicField(this, "_db");
88
+ __publicField(this, "Model");
89
+ __publicField(this, "idProperty");
90
+ __publicField(this, "_renderHtml", !0);
91
+ this._db = db;
92
+ }
93
+ renderHtml(_) {
94
+ this._renderHtml = _;
95
+ }
96
+ db2Columns(sortable, fields, prefix = "", formatter, renderCell) {
97
+ return fields ? fields.map((field, idx) => {
98
+ const column = {
99
+ label: field.label(),
100
+ leafID: "" + idx,
101
+ field: prefix + idx,
102
+ idx,
103
+ className: "resultGridCell",
104
+ sortable,
105
+ isSet: !1
106
+ };
107
+ switch (field.type()) {
108
+ case "nested":
109
+ column.children = this.db2Columns(!1, field.children(), prefix + idx + "_", formatter), column.sortable = !1;
110
+ break;
111
+ default:
112
+ column.formatter = formatter, column.renderCell = renderCell;
113
+ }
114
+ return column;
115
+ }) : [];
116
+ }
117
+ columns(sortable, formatter, renderCell) {
118
+ return this.db2Columns(sortable, this._db.fields(), "", formatter, renderCell);
119
+ }
120
+ getIdentity(object) {
121
+ return object.__hpcc_id;
122
+ }
123
+ get(row) {
124
+ return this._db.row(row + 1);
125
+ }
126
+ _fetchRange(opts) {
127
+ const rowFormatter = new RowFormatter(this.columns(!1), this._renderHtml);
128
+ return this._db.data().slice(opts.start, opts.end).map((row, idx) => ({
129
+ ...rowFormatter.format(row),
130
+ __hpcc_id: opts.start + idx,
131
+ __origRow: row
132
+ }));
133
+ }
134
+ fetchRange(opts) {
135
+ const data = this._fetchRange(opts), retVal = new Deferred();
136
+ return retVal.totalLength = new Deferred(), retVal.resolve(data), retVal.totalLength.resolve(this._db.length() - 1), retVal;
137
+ }
138
+ sort(opts) {
139
+ return this._db.data().sort((l, r) => {
140
+ for (const item of opts) {
141
+ const idx = item.property;
142
+ if (l[idx] === void 0 && r[idx] !== void 0 || l[idx] < r[idx]) return item.descending ? 1 : -1;
143
+ if (l[idx] !== void 0 && r[idx] === void 0 || l[idx] > r[idx]) return item.descending ? -1 : 1;
144
+ }
145
+ return 0;
146
+ }), this;
147
+ }
148
+ }
149
+ class Common extends HTMLWidget {
150
+ constructor() {
151
+ super();
152
+ __publicField(this, "_columns", []);
153
+ __publicField(this, "_store", new DBStore(this._db));
154
+ __publicField(this, "_dgridDiv");
155
+ __publicField(this, "_dgrid");
156
+ __publicField(this, "_prevPaging");
157
+ __publicField(this, "_prevSortBy");
158
+ __publicField(this, "_prevSortByDescending");
159
+ __publicField(this, "_prevMultiSelect");
160
+ __publicField(this, "_supressEvents");
161
+ this._tag = "div";
162
+ }
163
+ formatSortBy() {
164
+ const idx = this.columns().indexOf(this.sortBy());
165
+ return idx >= 0 ? [{ property: idx.toString(), descending: this.sortByDescending() }] : void 0;
166
+ }
167
+ selection(_) {
168
+ var _a;
169
+ if (!arguments.length) {
170
+ const retVal = [];
171
+ for (const id in this._dgrid.selection)
172
+ if (this._dgrid.selection[id]) {
173
+ const storeItem = this._store.get(+id);
174
+ retVal.push(this.rowToObj(storeItem));
175
+ }
176
+ return retVal;
177
+ }
178
+ this._supressEvents = !0, (_a = this._dgrid) == null || _a.clearSelection();
179
+ let first = !0;
180
+ this.data().forEach((row, idx) => {
181
+ var _a2, _b;
182
+ if (_.indexOf(row) >= 0) {
183
+ const row2 = (_a2 = this._dgrid) == null ? void 0 : _a2.row(idx);
184
+ row2.element && first && (first = !1, row2.element.scrollIntoView()), (_b = this._dgrid) == null || _b.select(idx);
185
+ }
186
+ }), this._supressEvents = !1;
187
+ }
188
+ enter(domNode, element) {
189
+ super.enter(domNode, element), this._dgridDiv = element.append("div").attr("class", "flat");
190
+ }
191
+ update(domNode, element) {
192
+ super.update(domNode, element), this._store.renderHtml(this.renderHtml()), (!this._dgrid || this._prevPaging !== this.pagination() || this._prevSortBy !== this.sortBy() || this._prevSortByDescending !== this.sortByDescending() || this._prevMultiSelect !== this.multiSelect()) && (this._prevPaging = this.pagination(), this._prevSortBy = this.sortBy(), this._prevSortByDescending = this.sortByDescending(), this._prevMultiSelect = this.multiSelect(), this._dgrid && (this._dgrid.destroy(), this._dgridDiv = element.append("div").attr("class", "flat")), this._dgrid = new (this._prevPaging ? PagingGrid : Grid)({
193
+ columns: this._columns,
194
+ collection: this._store,
195
+ sort: this.formatSortBy(),
196
+ selectionMode: this.multiSelect() ? "extended" : "single",
197
+ deselectOnRefresh: !0,
198
+ cellNavigation: !1,
199
+ pagingLinks: 1,
200
+ pagingTextBox: !0,
201
+ previousNextArrows: !0,
202
+ firstLastArrows: !0,
203
+ rowsPerPage: this.pageSize(),
204
+ pageSizeOptions: [1, 10, 25, 50, 100, 1e3]
205
+ }, this._dgridDiv.node()), this._dgrid.on("dgrid-select", (evt) => {
206
+ this._supressEvents || evt.rows && evt.rows.length && evt.rows[0].data && this.click(this.rowToObj(evt.rows[0].data.__origRow), "", !0, { selection: this.selection() });
207
+ }), this._dgrid.on("dgrid-deselect", (evt) => {
208
+ this._supressEvents || evt.rows && evt.rows.length && evt.rows[0].data && this.click(this.rowToObj(evt.rows[0].data.__origRow), "", !1, { selection: this.selection() });
209
+ }), 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();
210
+ }
211
+ exit(domNode, element) {
212
+ delete this._prevPaging, this._dgrid && (this._dgrid.destroy(), delete this._dgrid), super.exit(domNode, element);
213
+ }
214
+ click(row, col, sel, more) {
215
+ }
216
+ }
217
+ Common.prototype._class += " dgrid_Common";
218
+ Common.prototype.publish("noDataMessage", "...empty...", "string", "No Data Message");
219
+ Common.prototype.publish("loadingMessage", "loading...", "string", "Loading Message");
220
+ Common.prototype.publish("pagination", !1, "boolean", "Enable paging");
221
+ Common.prototype.publish("pageSize", 25, "number", "Page size");
222
+ Common.prototype.publish("sortable", !1, "boolean", "Enable sorting by column");
223
+ Common.prototype.publish("sortBy", null, "set", "Default 'sort by' Column ID", function() {
224
+ return this.columns();
225
+ }, { optional: !0 });
226
+ Common.prototype.publish("sortByDescending", !1, "boolean", "Default 'sort by' descending", void 0, { disable: (self) => !self.sortBy() });
227
+ Common.prototype.publish("multiSelect", !1, "boolean", "Multiple Selection");
228
+ Common.prototype.publish("renderHtml", !0, "boolean", "Render HTML");
229
+ class DatasourceCache {
230
+ constructor(datasource) {
231
+ __publicField(this, "_datasource");
232
+ __publicField(this, "_prevHash");
233
+ __publicField(this, "_fetchCache", {});
234
+ this._datasource = datasource;
235
+ }
236
+ validateCache() {
237
+ const hash = this.hash();
238
+ this._prevHash !== hash && (this._prevHash = hash, this._fetchCache = {});
239
+ }
240
+ id() {
241
+ return this._datasource.id();
242
+ }
243
+ hash() {
244
+ return this._datasource.hash();
245
+ }
246
+ label() {
247
+ return this._datasource.label();
248
+ }
249
+ outFields() {
250
+ return this._datasource.outFields();
251
+ }
252
+ total() {
253
+ return this._datasource.total();
254
+ }
255
+ fetch(from, count) {
256
+ this.validateCache();
257
+ const cacheID = `${from}->${count}`;
258
+ let retVal = this._fetchCache[cacheID];
259
+ return retVal || (retVal = this._datasource.fetch(from, count), this._fetchCache[cacheID] = retVal), retVal;
260
+ }
261
+ }
262
+ class DatasourceStore {
263
+ constructor(datasource, renderHtml) {
264
+ __publicField(this, "_datasource");
265
+ __publicField(this, "_columnsIdx", {});
266
+ __publicField(this, "_columns");
267
+ __publicField(this, "rowFormatter");
268
+ this._datasource = new DatasourceCache(datasource), this._columnsIdx = {}, this._columns = this.db2Columns(this._datasource.outFields()).map((column, idx) => (this._columnsIdx[column.field] = idx, column)), this.rowFormatter = new RowFormatter(this._columns, renderHtml);
269
+ }
270
+ columns() {
271
+ return this._columns;
272
+ }
273
+ db2Columns(fields, prefix = "") {
274
+ return fields ? fields.map((field, idx) => {
275
+ const column = {
276
+ field: prefix + field.id,
277
+ leafID: field.id,
278
+ label: field.id,
279
+ idx,
280
+ className: "resultGridCell",
281
+ sortable: !0,
282
+ isSet: !1
283
+ };
284
+ return field.type === "dataset" ? column.children = this.db2Columns(field.children, prefix + field.id + "_") : column.formatter = (cell, row) => {
285
+ switch (typeof cell) {
286
+ case "string":
287
+ return cell.replace(/\t/g, "&nbsp;&nbsp;&nbsp;&nbsp;");
288
+ }
289
+ return cell;
290
+ }, column;
291
+ }) : [];
292
+ }
293
+ getIdentity(row) {
294
+ return row.__hpcc_id;
295
+ }
296
+ _request(start, end) {
297
+ return this._datasource ? this._datasource.fetch(start, end - start).then((response) => ({
298
+ totalLength: this._datasource.total(),
299
+ data: response.map((row, idx) => {
300
+ const formattedRow = this.rowFormatter.format(row);
301
+ return formattedRow.__hpcc_id = start + idx, formattedRow.__origRow = row, formattedRow;
302
+ })
303
+ })) : Promise.resolve({ totalLength: 0, data: [] });
304
+ }
305
+ fetchRange(options) {
306
+ const retVal = new Deferred();
307
+ return this._request(options.start, options.end).then((response) => retVal.resolve(response)), new QueryResults(retVal.then((response) => response.data), {
308
+ totalLength: retVal.then((response) => response.totalLength)
309
+ });
310
+ }
311
+ }
312
+ class DatasourceTable extends Common {
313
+ constructor() {
314
+ super();
315
+ __publicField(this, "_prevDatasource");
316
+ }
317
+ invalidate() {
318
+ return delete this._prevDatasource, this;
319
+ }
320
+ enter(domNode, element) {
321
+ super.enter(domNode, element);
322
+ }
323
+ update(domNode, element) {
324
+ super.update(domNode, element);
325
+ }
326
+ render(callback) {
327
+ return super.render((w) => {
328
+ if (this._prevDatasource !== this.datasource())
329
+ if (this._dgrid.set("collection", new Memory()), this._dgrid.set("columns", []), this._prevDatasource = this.datasource(), this._prevDatasource) {
330
+ const store = new DatasourceStore(this._prevDatasource, this.renderHtml());
331
+ this._dgrid.set("columns", store.columns()), this._dgrid.set("collection", store), callback && callback(w);
332
+ } else
333
+ callback && callback(w);
334
+ else
335
+ callback && callback(w);
336
+ });
337
+ }
338
+ click(row, col, sel) {
339
+ }
340
+ }
341
+ DatasourceTable.prototype._class += " dgrid_DatasourceTable";
342
+ DatasourceTable.prototype.publish("datasource", null, "object", "Datasource");
343
+ class ColumnFormat extends PropertyExt {
344
+ constructor() {
345
+ super();
346
+ __publicField(this, "_owner");
347
+ }
348
+ owner(_) {
349
+ return arguments.length ? (this._owner = _, this) : this._owner;
350
+ }
351
+ valid() {
352
+ return !!this.column();
353
+ }
354
+ formatterFunc() {
355
+ const defaultFormatter = this._owner.formatterFunc();
356
+ if (this.valid() && this.format()) {
357
+ const numberFormatter = format(this.format());
358
+ return function(cell, row) {
359
+ return typeof cell == "number" ? numberFormatter(cell) : defaultFormatter.call(this, cell, row);
360
+ };
361
+ }
362
+ return defaultFormatter;
363
+ }
364
+ renderCellFunc() {
365
+ const defaultRenderCell = this._owner.renderCellFunc(), defaultFormatter = this.formatterFunc();
366
+ if (this.valid() && this.paletteID()) {
367
+ const columns = this._owner.columns(), palette = Palette.rainbow(this.paletteID()), min = this.min(), max = this.max(), valueColIdx = this.valueColumn() ? columns.indexOf(this.valueColumn()) : void 0;
368
+ return function(row, cell, cellElement) {
369
+ defaultRenderCell && defaultRenderCell.call(this, row, cell, cellElement);
370
+ const value = valueColIdx ? row.__origRow[valueColIdx] : cell, background = palette(value, min, max), cellText = defaultFormatter.call(this, cell, row);
371
+ select(cellElement).style("background", background).style("color", background && Palette.textColor(background)).text((cellText == null ? void 0 : cellText.html) ?? cellText ?? cell);
372
+ };
373
+ }
374
+ return defaultRenderCell;
375
+ }
376
+ }
377
+ ColumnFormat.prototype._class += " dgrid_Table.ColumnFormat";
378
+ ColumnFormat.prototype.publish("column", null, "set", "Column", function() {
379
+ return this._owner.columns();
380
+ }, { optional: !0 });
381
+ ColumnFormat.prototype.publish("width", null, "number", "Width", null, { optional: !0 });
382
+ ColumnFormat.prototype.publish("format", null, "string", "Format (d3-format)", null, { optional: !0 });
383
+ ColumnFormat.prototype.publish("paletteID", null, "set", "Color palette for this widget", ["", ...Palette.rainbow("default").switch()], { optional: !0 });
384
+ ColumnFormat.prototype.publish("min", 0, "number", "Min Value", null, { disable: (cf) => !cf.paletteID() });
385
+ ColumnFormat.prototype.publish("max", 100, "number", "Max Value", null, { disable: (cf) => !cf.paletteID() });
386
+ ColumnFormat.prototype.publish("valueColumn", null, "set", "Column", function() {
387
+ return this._owner.columns();
388
+ }, { optional: !0, disable: (cf) => !cf.paletteID() });
389
+ class Table extends Common {
390
+ constructor() {
391
+ super();
392
+ __publicField(this, "_prevColsHash");
393
+ __publicField(this, "_prevFieldsHash");
394
+ __publicField(this, "_colsRefresh", !1);
395
+ __publicField(this, "_dataRefresh", !1);
396
+ __publicField(this, "_prevHash");
397
+ }
398
+ fields(_) {
399
+ const retVal = super.fields.apply(this, arguments);
400
+ if (arguments.length) {
401
+ const hash = hashSum({ _ });
402
+ this._prevFieldsHash !== hash && (this._prevFieldsHash = hash, this._colsRefresh = !0);
403
+ }
404
+ return retVal;
405
+ }
406
+ columns(_, asDefault) {
407
+ const retVal = super.columns.apply(this, arguments);
408
+ if (arguments.length) {
409
+ const hash = hashSum({ _ });
410
+ this._prevColsHash !== hash && (this._prevColsHash = hash, this._colsRefresh = !0);
411
+ }
412
+ return retVal;
413
+ }
414
+ data(_) {
415
+ const retVal = super.data.apply(this, arguments);
416
+ return arguments.length && (this._dataRefresh = !0), retVal;
417
+ }
418
+ enter(domNode, element) {
419
+ super.enter(domNode, element);
420
+ }
421
+ guessWidth(columns, data) {
422
+ const sortablePadding = this.sortable() ? 12 : 0;
423
+ for (const column of columns)
424
+ if (column.children) {
425
+ let sampleData = [];
426
+ for (let i = 0; i < Math.min(3, data.length); ++i)
427
+ sampleData = sampleData.concat(data[i][column.idx]);
428
+ this.guessWidth(column.children, sampleData);
429
+ } else
430
+ column.width = data.reduce((prevVal, row) => {
431
+ const cell = ("" + row[column.idx]).trim();
432
+ return Math.max(prevVal, this.textSize(cell).width);
433
+ }, this.textSize("" + column.label, void 0, void 0, !0).width + sortablePadding) + 8;
434
+ }
435
+ update(domNode, element) {
436
+ super.update(domNode, element);
437
+ const hash = this.hashSum();
438
+ if (this._prevHash !== hash && (this._prevHash = hash, this._colsRefresh = !0), this._colsRefresh) {
439
+ switch (this._columns = this._store.columns(this.sortable(), this.formatterFunc(), this.renderCellFunc()), this.columnWidth()) {
440
+ case "auto":
441
+ const tenRows = this.data().filter((row, idx) => idx < 10);
442
+ this.guessWidth(this._columns, tenRows);
443
+ break;
444
+ }
445
+ const columns = this.columns();
446
+ for (const columnFormat of this.columnFormats())
447
+ if (columnFormat.valid()) {
448
+ const colIdx = columns.indexOf(columnFormat.column());
449
+ this._columns[colIdx] && (this._columns[colIdx].hidden = columnFormat.width() === 0, this._columns[colIdx].width = columnFormat.width() || this._columns[colIdx].width, this._columns[colIdx].formatter = columnFormat.formatterFunc(), this._columns[colIdx].renderCell = columnFormat.renderCellFunc());
450
+ }
451
+ this._dgrid.set("columns", this._columns.filter((col) => !col.hidden)), this._colsRefresh = !1;
452
+ }
453
+ (this._colsRefresh || this._dataRefresh) && (this._colsRefresh ? this._dgrid.refresh({}) : this._dgrid.refresh(), this._colsRefresh = !1, this._dataRefresh = !1);
454
+ }
455
+ exit(domNode, element) {
456
+ delete this._prevColsHash, delete this._prevFieldsHash, super.exit(domNode, element);
457
+ }
458
+ // Cell ---
459
+ formatterFunc() {
460
+ return function(cell, row) {
461
+ switch (typeof cell) {
462
+ case "string":
463
+ return {
464
+ html: cell.replace(/\t/g, "&nbsp;&nbsp;&nbsp;&nbsp;").trim()
465
+ };
466
+ case "undefined":
467
+ return "";
468
+ }
469
+ return cell;
470
+ };
471
+ }
472
+ renderCellFunc() {
473
+ }
474
+ // Events ---
475
+ click(row, col, sel) {
476
+ }
477
+ }
478
+ Table.prototype._class += " dgrid_Table";
479
+ Table.prototype.publish("columnWidth", "auto", "set", "Default column width", ["auto", "none"]);
480
+ Table.prototype.publish("columnFormats", [], "propertyArray", "Source Columns", null, { autoExpand: ColumnFormat });
481
+ export {
482
+ BUILD_VERSION,
483
+ ColumnFormat,
484
+ Common,
485
+ DBStore,
486
+ DatasourceCache,
487
+ DatasourceStore,
488
+ DatasourceTable,
489
+ Deferred,
490
+ Grid,
491
+ Memory,
492
+ PKG_NAME,
493
+ PKG_VERSION,
494
+ PagingGrid,
495
+ QueryResults,
496
+ RowFormatter,
497
+ Table,
498
+ domConstruct
499
+ };
496
500
  //# sourceMappingURL=index.js.map