@xiee/utils 1.14.95 → 1.14.97
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/css/lt-interactive.css
CHANGED
|
@@ -109,6 +109,12 @@
|
|
|
109
109
|
/* ... but a tight gap between the buttons / chips within a part */
|
|
110
110
|
gap: 0.3em;
|
|
111
111
|
}
|
|
112
|
+
.lti-chips {
|
|
113
|
+
gap: 0.5em;
|
|
114
|
+
/* always present as a drop target for a caller's chip (el._lt.chips); when
|
|
115
|
+
it holds none, collapse it so it adds no gap between icons and search */
|
|
116
|
+
&:empty { display: none; }
|
|
117
|
+
}
|
|
112
118
|
/* direct child only: a chip's popover holds its own `.lti-search` box */
|
|
113
119
|
& > .lti-search {
|
|
114
120
|
flex: 1 1 8em;
|
|
@@ -139,6 +145,12 @@
|
|
|
139
145
|
white-space: nowrap;
|
|
140
146
|
cursor: pointer;
|
|
141
147
|
}
|
|
148
|
+
/* a spanner's label, above its (indented) columns */
|
|
149
|
+
.lti-group {
|
|
150
|
+
font-weight: 600;
|
|
151
|
+
white-space: nowrap;
|
|
152
|
+
}
|
|
153
|
+
.lti-sub { padding-left: 1em; }
|
|
142
154
|
}
|
|
143
155
|
}
|
|
144
156
|
|
|
@@ -157,8 +169,14 @@
|
|
|
157
169
|
display: inline-flex;
|
|
158
170
|
align-items: center;
|
|
159
171
|
gap: 0.3em;
|
|
160
|
-
|
|
161
|
-
|
|
172
|
+
/* a pill (border + faint fill) so each chip reads as a separate unit */
|
|
173
|
+
padding: 0.05em 0.5em;
|
|
174
|
+
border: 1px solid #ccc;
|
|
175
|
+
border-radius: 4px;
|
|
176
|
+
background: #f7f7f7;
|
|
177
|
+
&.lti-on {
|
|
178
|
+
border-color: #999;
|
|
179
|
+
.lti-chip-name { font-weight: 600; }
|
|
162
180
|
}
|
|
163
181
|
.lti-chip-cur {
|
|
164
182
|
color: #555;
|
|
@@ -195,6 +213,14 @@
|
|
|
195
213
|
padding: 0.6em;
|
|
196
214
|
background: Canvas;
|
|
197
215
|
border: 1px solid;
|
|
216
|
+
/* a checklist widget's rows: a checkbox beside its label */
|
|
217
|
+
.lti-check {
|
|
218
|
+
display: flex;
|
|
219
|
+
align-items: center;
|
|
220
|
+
gap: 0.4em;
|
|
221
|
+
white-space: nowrap;
|
|
222
|
+
cursor: pointer;
|
|
223
|
+
}
|
|
198
224
|
}
|
|
199
225
|
}
|
|
200
226
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
.lt-table{& :is(.lti-head,.lti-pager-row) td{padding-left:0;padding-right:0}& .lti-search{background:url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"gray\" stroke-width=\"2\"><circle cx=\"6.5\" cy=\"6.5\" r=\"4.5\"/><path d=\"M10 10l5 5\"/></svg>") .4em/1em no-repeat;width:100%;padding:.5em 0 .5em 1.6em;&:focus{background-image:none;padding-left:.5em}}& .lti-sortable .lti-label{cursor:pointer;user-select:none}& .lti-sort{margin-left:.3em;font-size:.8em}& .lti-empty td{text-align:center}& .lti-expand{cursor:pointer;background:0 0;border:none;margin-right:.4em;padding:0}& .lti-detail>td{padding-left:1.5em}& th:has(.lti-resizer){position:relative}& .lti-resizer{cursor:col-resize;user-select:none;touch-action:none;width:5px;height:100%;position:absolute;top:0;right:0;&:hover{opacity:.3;background:currentColor}}&.lti-resizing{cursor:col-resize;user-select:none}&.lti-fixed{table-layout:fixed;& thead th,& tbody tr:not(.lti-detail) td{overflow:hidden}}& .lti-bar{align-items:center;gap:1.2em;display:flex;& .lti-icons,& .lti-chips{flex:none;align-items:center;gap:.3em;display:flex}&>.lti-search{flex:8em;min-width:6em}}& .lti-cols{position:relative;& button{background:url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"gray\" stroke-width=\"1.5\"><path d=\"M1 8s2.5-4.5 7-4.5 7 4.5 7 4.5-2.5 4.5-7 4.5-7-4.5-7-4.5z\"/><circle cx=\"8\" cy=\"8\" r=\"2\"/></svg>") 50%/contain no-repeat;border:none;width:1.2em;height:1.2em;padding:0}& .lti-menu{z-index:1;background:canvas;border:1px solid;padding:.3em .6em;position:absolute;top:100%;left:0;& label{white-space:nowrap;cursor:pointer;display:block}}}& .lti-download{background:url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"gray\" stroke-width=\"1.5\"><path d=\"M8 1v9m0 0L4.5 6.5M8 10l3.5-3.5\"/><path d=\"M2 11v3h12v-3\"/></svg>") 50%/contain no-repeat;border:none;width:1.2em;height:1.2em;padding:0}& .lti-chip{align-items:center;gap:.3em;display:inline-flex;&.lti-on .lti-chip-name{font-weight:600}& .lti-chip-cur{color:#555;font-variant-numeric:tabular-nums}}& .lti-pop{position:relative;& .lti-funnel{opacity:.55;background:url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"gray\"><path d=\"M1 2h14l-5.5 6.5V14l-3 1V8.5z\"/></svg>") 50%/contain no-repeat;border:none;width:1.1em;height:1.1em;padding:0}&.lti-on .lti-funnel{opacity:1}& .lti-pop-panel{z-index:1;flex-direction:column;display:flex;position:absolute;top:100%;left:0;&[hidden]{display:none}background:canvas;border:1px solid;gap:.5em;min-width:14em;max-width:90vw;padding:.6em}}& .lti-slider{height:1.2em;margin:.4em .6em;position:relative;&:before{content:"";background:#c8c8c8;border-radius:3px;height:3px;position:absolute;inset:50% 0 auto;transform:translateY(-50%)}& .lti-slider-fill{background:#4a90d9;height:3px;position:absolute;inset:50% 0;transform:translateY(-50%)}& .lti-thumb{cursor:pointer;touch-action:none;background:#4a90d9;border:2px solid #fff;border-radius:50%;width:14px;height:14px;padding:0;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 2px #0006}}& .lti-slider-out{text-align:center;font-variant-numeric:tabular-nums}& .lti-pager{align-items:center;gap:.3em;display:flex}& button,& select{font:inherit;cursor:pointer}& .lti-pos{margin:0 auto 0 .3em}}
|
|
1
|
+
.lt-table{& :is(.lti-head,.lti-pager-row) td{padding-left:0;padding-right:0}& .lti-search{background:url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"gray\" stroke-width=\"2\"><circle cx=\"6.5\" cy=\"6.5\" r=\"4.5\"/><path d=\"M10 10l5 5\"/></svg>") .4em/1em no-repeat;width:100%;padding:.5em 0 .5em 1.6em;&:focus{background-image:none;padding-left:.5em}}& .lti-sortable .lti-label{cursor:pointer;user-select:none}& .lti-sort{margin-left:.3em;font-size:.8em}& .lti-empty td{text-align:center}& .lti-expand{cursor:pointer;background:0 0;border:none;margin-right:.4em;padding:0}& .lti-detail>td{padding-left:1.5em}& th:has(.lti-resizer){position:relative}& .lti-resizer{cursor:col-resize;user-select:none;touch-action:none;width:5px;height:100%;position:absolute;top:0;right:0;&:hover{opacity:.3;background:currentColor}}&.lti-resizing{cursor:col-resize;user-select:none}&.lti-fixed{table-layout:fixed;& thead th,& tbody tr:not(.lti-detail) td{overflow:hidden}}& .lti-bar{align-items:center;gap:1.2em;display:flex;& .lti-icons,& .lti-chips{flex:none;align-items:center;gap:.3em;display:flex}& .lti-chips{gap:.5em;&:empty{display:none}}&>.lti-search{flex:8em;min-width:6em}}& .lti-cols{position:relative;& button{background:url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"gray\" stroke-width=\"1.5\"><path d=\"M1 8s2.5-4.5 7-4.5 7 4.5 7 4.5-2.5 4.5-7 4.5-7-4.5-7-4.5z\"/><circle cx=\"8\" cy=\"8\" r=\"2\"/></svg>") 50%/contain no-repeat;border:none;width:1.2em;height:1.2em;padding:0}& .lti-menu{z-index:1;background:canvas;border:1px solid;padding:.3em .6em;position:absolute;top:100%;left:0;& label{white-space:nowrap;cursor:pointer;display:block}& .lti-group{white-space:nowrap;font-weight:600}& .lti-sub{padding-left:1em}}}& .lti-download{background:url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"gray\" stroke-width=\"1.5\"><path d=\"M8 1v9m0 0L4.5 6.5M8 10l3.5-3.5\"/><path d=\"M2 11v3h12v-3\"/></svg>") 50%/contain no-repeat;border:none;width:1.2em;height:1.2em;padding:0}& .lti-chip{background:#f7f7f7;border:1px solid #ccc;border-radius:4px;align-items:center;gap:.3em;padding:.05em .5em;display:inline-flex;&.lti-on{border-color:#999;& .lti-chip-name{font-weight:600}}& .lti-chip-cur{color:#555;font-variant-numeric:tabular-nums}}& .lti-pop{position:relative;& .lti-funnel{opacity:.55;background:url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"gray\"><path d=\"M1 2h14l-5.5 6.5V14l-3 1V8.5z\"/></svg>") 50%/contain no-repeat;border:none;width:1.1em;height:1.1em;padding:0}&.lti-on .lti-funnel{opacity:1}& .lti-pop-panel{z-index:1;flex-direction:column;display:flex;position:absolute;top:100%;left:0;&[hidden]{display:none}background:canvas;border:1px solid;gap:.5em;min-width:14em;max-width:90vw;padding:.6em;& .lti-check{white-space:nowrap;cursor:pointer;align-items:center;gap:.4em;display:flex}}}& .lti-slider{height:1.2em;margin:.4em .6em;position:relative;&:before{content:"";background:#c8c8c8;border-radius:3px;height:3px;position:absolute;inset:50% 0 auto;transform:translateY(-50%)}& .lti-slider-fill{background:#4a90d9;height:3px;position:absolute;inset:50% 0;transform:translateY(-50%)}& .lti-thumb{cursor:pointer;touch-action:none;background:#4a90d9;border:2px solid #fff;border-radius:50%;width:14px;height:14px;padding:0;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 2px #0006}}& .lti-slider-out{text-align:center;font-variant-numeric:tabular-nums}& .lti-pager{align-items:center;gap:.3em;display:flex}& button,& select{font:inherit;cursor:pointer}& .lti-pos{margin:0 auto 0 .3em}}
|
|
2
2
|
/*# sourceMappingURL=lt-interactive.min.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"mappings":"AAKA,UAGE,kEAQA,oSAME,iDAQF,2DAKA,4CAKA,kCAMA,oFASA,oCAKA,yCAGA,0HASE,4CAOF,kDAKA,+BAME,2DASF,qDAKE,
|
|
1
|
+
{"version":3,"mappings":"AAKA,UAGE,kEAQA,oSAME,iDAQF,2DAKA,4CAKA,kCAMA,oFASA,oCAKA,yCAGA,0HASE,4CAOF,kDAKA,+BAME,2DASF,qDAKE,6EAOA,sBAIE,sBAGF,sCAOF,8BAEE,uVAOA,6GAQE,wDAMA,gDAIA,8BAKJ,4TAUA,0IASE,2BAEE,kCAEF,8DAKF,6BAEE,oQAUA,+BAGA,gGAQE,uBACI,uFAOJ,0FAWJ,8DAIE,kIASA,0GAOA,6NAeF,sEAKA,sDAKA,8CAKA","sources":["lt-interactive.css"],"sourcesContent":["/* lt-interactive.css — controls for lt-interactive.js (search box, sortable\n * headers, column filters, pager). Classes are namespaced `lti-*` to avoid\n * clashing with core `lt-*`. Only properties that change a default are\n * declared. */\n\n.lt-table {\n /* the search box and the pager are full-width rows of the table, so they line\n * up with its edges rather than the cell text */\n :is(.lti-head, .lti-pager-row) td {\n padding-left: 0;\n padding-right: 0;\n }\n\n /* Each box fills its cell: the whole table for the search, one column for a\n * filter. A faded magnifier stands in for a placeholder — it says \"type here\n * to search\" in no language — and steps aside once the box has the focus. */\n .lti-search {\n width: 100%;\n padding: .5em 0 .5em 1.6em;\n background: url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"gray\" stroke-width=\"2\"><circle cx=\"6.5\" cy=\"6.5\" r=\"4.5\"/><path d=\"M10 10l5 5\"/></svg>') 0.4em center / 1em no-repeat;\n /* on focus the magnifier goes away, leaving a small left pad so the caret\n * sits just inside the edge rather than behind the icon's wider gutter */\n &:focus {\n padding-left: .5em;\n background-image: none;\n }\n }\n\n /* the click target is the label span, not the whole cell (so the resize grip\n * stays separate), so the pointer cursor belongs on the label too */\n .lti-sortable .lti-label {\n cursor: pointer;\n user-select: none;\n }\n /* the ▲/▼ indicator, set off from the column label */\n .lti-sort {\n margin-left: 0.3em;\n font-size: 0.8em;\n }\n\n .lti-empty td {\n text-align: center;\n }\n\n /* the expand caret leads the first cell of each row; it carries its own\n * glyph (▸ / ▾), so it needs no borders or background of its own */\n .lti-expand {\n border: none;\n background: none;\n padding: 0;\n margin-right: 0.4em;\n cursor: pointer;\n }\n /* a row's detail spans every column; the inset marks it as belonging to the\n * row above it */\n .lti-detail > td {\n padding-left: 1.5em;\n }\n\n /* the drag grip sits on a column's right edge, inside its header cell */\n th:has(.lti-resizer) {\n position: relative;\n }\n .lti-resizer {\n position: absolute;\n top: 0;\n right: 0;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n user-select: none;\n touch-action: none;\n &:hover {\n background: currentColor;\n opacity: 0.3;\n }\n }\n /* while dragging, the pointer keeps the resize cursor anywhere on the table,\n * and the drag selects no text */\n &.lti-resizing {\n cursor: col-resize;\n user-select: none;\n }\n /* column widths are authoritative once frozen, so a drag moves one edge only */\n &.lti-fixed {\n table-layout: fixed;\n /* a shrunk column hides its overflow rather than spilling into the next\n * column or out under the resize grip, so the grip can shrink it freely;\n * the detail row (full width, possibly tall) and the popover-bearing\n * filter/bar cells (<td>) are left to overflow */\n thead th, tbody tr:not(.lti-detail) td {\n overflow: hidden;\n }\n }\n\n /* the control bar lays its parts out left to right: an icon group, the filter\n * chips, then the search box. Only the search box grows, so all the free space\n * lands in it (pushing it to the right edge); the icons and chips keep their\n * natural width. The search still fills the bar when it is the only control. */\n .lti-bar {\n display: flex;\n align-items: center;\n /* a wide gap between the three parts (icons, chips, search) ... */\n gap: 1.2em;\n .lti-icons, .lti-chips {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n /* ... but a tight gap between the buttons / chips within a part */\n gap: 0.3em;\n }\n .lti-chips {\n gap: 0.5em;\n /* always present as a drop target for a caller's chip (el._lt.chips); when\n it holds none, collapse it so it adds no gap between icons and search */\n &:empty { display: none; }\n }\n /* direct child only: a chip's popover holds its own `.lti-search` box */\n & > .lti-search {\n flex: 1 1 8em;\n min-width: 6em;\n }\n }\n\n /* the column-visibility menu: an eye button and the checklist it pops up */\n .lti-cols {\n position: relative;\n button {\n border: none;\n padding: 0;\n width: 1.2em;\n height: 1.2em;\n background: center / contain no-repeat url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"gray\" stroke-width=\"1.5\"><path d=\"M1 8s2.5-4.5 7-4.5 7 4.5 7 4.5-2.5 4.5-7 4.5-7-4.5-7-4.5z\"/><circle cx=\"8\" cy=\"8\" r=\"2\"/></svg>');\n }\n .lti-menu {\n position: absolute;\n z-index: 1;\n top: 100%;\n left: 0;\n background: Canvas;\n border: 1px solid;\n padding: 0.3em 0.6em;\n label {\n display: block;\n white-space: nowrap;\n cursor: pointer;\n }\n /* a spanner's label, above its (indented) columns */\n .lti-group {\n font-weight: 600;\n white-space: nowrap;\n }\n .lti-sub { padding-left: 1em; }\n }\n }\n\n /* the CSV download button: an icon button, same footprint as the eye button */\n .lti-download {\n border: none;\n padding: 0;\n width: 1.2em;\n height: 1.2em;\n background: center / contain no-repeat url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"gray\" stroke-width=\"1.5\"><path d=\"M8 1v9m0 0L4.5 6.5M8 10l3.5-3.5\"/><path d=\"M2 11v3h12v-3\"/></svg>');\n }\n\n /* typed filter chips sit after the search box in the head bar; each is a label,\n * a summary of the current filter, and a funnel popping up the widget + box */\n .lti-chip {\n display: inline-flex;\n align-items: center;\n gap: 0.3em;\n /* a pill (border + faint fill) so each chip reads as a separate unit */\n padding: 0.05em 0.5em;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: #f7f7f7;\n &.lti-on {\n border-color: #999;\n .lti-chip-name { font-weight: 600; }\n }\n .lti-chip-cur {\n color: #555;\n font-variant-numeric: tabular-nums;\n }\n }\n .lti-pop {\n position: relative;\n .lti-funnel {\n border: none;\n padding: 0;\n width: 1.1em;\n height: 1.1em;\n opacity: 0.55;\n background: center / contain no-repeat url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"gray\"><path d=\"M1 2h14l-5.5 6.5V14l-3 1V8.5z\"/></svg>');\n }\n /* a funnel standing in for a header-level filter reads as active when its\n * column has a live term */\n &.lti-on .lti-funnel {\n opacity: 1;\n }\n .lti-pop-panel {\n position: absolute;\n z-index: 1;\n top: 100%;\n left: 0;\n display: flex;\n flex-direction: column;\n /* an explicit display beats the UA [hidden] rule, so re-hide it here */\n &[hidden] { display: none; }\n gap: 0.5em;\n min-width: 14em;\n max-width: 90vw;\n padding: 0.6em;\n background: Canvas;\n border: 1px solid;\n /* a checklist widget's rows: a checkbox beside its label */\n .lti-check {\n display: flex;\n align-items: center;\n gap: 0.4em;\n white-space: nowrap;\n cursor: pointer;\n }\n }\n }\n\n /* the custom range slider: a track with a fill band between two button thumbs */\n .lti-slider {\n position: relative;\n height: 1.2em;\n margin: 0.4em 0.6em;\n &::before {\n content: \"\";\n position: absolute;\n inset: 50% 0 auto;\n height: 3px;\n transform: translateY(-50%);\n background: #c8c8c8;\n border-radius: 3px;\n }\n .lti-slider-fill {\n position: absolute;\n inset: 50% 0;\n height: 3px;\n transform: translateY(-50%);\n background: #4a90d9;\n }\n .lti-thumb {\n position: absolute;\n top: 50%;\n width: 14px;\n height: 14px;\n padding: 0;\n transform: translate(-50%, -50%);\n border: 2px solid #fff;\n border-radius: 50%;\n background: #4a90d9;\n box-shadow: 0 0 2px rgba(0, 0, 0, 0.4);\n cursor: pointer;\n touch-action: none;\n }\n }\n .lti-slider-out {\n text-align: center;\n font-variant-numeric: tabular-nums;\n }\n\n .lti-pager {\n display: flex;\n align-items: center;\n gap: 0.3em;\n }\n button, select {\n font: inherit;\n cursor: pointer;\n }\n /* push the row count away from the arrows, and the page size to the far end */\n .lti-pos {\n margin: 0 auto 0 0.3em;\n }\n}\n"],"names":[]}
|
package/js/lt-interactive.js
CHANGED
|
@@ -353,6 +353,8 @@
|
|
|
353
353
|
// raw values (`{col: value}`, including hidden columns) under an id,
|
|
354
354
|
// replacing or (with a null `fn`) removing it, then re-render. `spec`/`state`
|
|
355
355
|
// are exposed for reading (a widget's choices come from `el._ltSpec.data`).
|
|
356
|
+
// `bar` (set once the control bar is built) and `resetDetail` (set when the
|
|
357
|
+
// table has row detail) are added below.
|
|
356
358
|
el._lt = {
|
|
357
359
|
spec, state,
|
|
358
360
|
refresh: () => refresh(),
|
|
@@ -403,16 +405,30 @@
|
|
|
403
405
|
addColumnToggle(icons, el, hrow, cols, labels, opts.hide, layout, postSwap);
|
|
404
406
|
if (opts.download) addDownload(icons, el, spec, cols, labels, opts.download);
|
|
405
407
|
// the chips share a group so the bar has three parts (icons, chips, search)
|
|
406
|
-
// with a wider gap between them than within each
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
408
|
+
// with a wider gap between them than within each. The group is created
|
|
409
|
+
// whenever there is a bar (even with no typed-filter chips) so a caller can
|
|
410
|
+
// drop its own chip in beside them via el._lt.chips; an empty group collapses
|
|
411
|
+
// (CSS :empty) so it adds no gap.
|
|
412
|
+
const chips = headBar ?
|
|
413
|
+
elem(el.ownerDocument, "div", { className: "lti-chips" }, headBar) : null;
|
|
414
|
+
if (barCols.length) addControlFilters(chips, barCols, flt.cols, spec.data, state, refresh);
|
|
410
415
|
if (opts.search !== false) addSearch(headBar, el, state, refresh);
|
|
416
|
+
// the assembled control bar (`.lti-bar`), or null when the table has no
|
|
417
|
+
// table-wide controls, for a caller to append its own widget to; `chips` is
|
|
418
|
+
// its chip group (null only when there is no bar), the right home for a
|
|
419
|
+
// caller's own labelled chip
|
|
420
|
+
el._lt.bar = headBar;
|
|
421
|
+
el._lt.chips = chips;
|
|
411
422
|
// row detail re-renders through the same seam: toggling a row only changes
|
|
412
423
|
// which rows carry a detail block, so a plain re-render (no new view) is
|
|
413
424
|
// enough
|
|
414
|
-
if (opts.detail)
|
|
415
|
-
|
|
425
|
+
if (opts.detail) {
|
|
426
|
+
const detail = addDetail(el, spec, nAll, state, opts.detail, () => refresh(false));
|
|
427
|
+
postSwap.push(detail);
|
|
428
|
+
// bust the per-row detail cache and re-render open details (one row, or
|
|
429
|
+
// all); for a caller whose widget changes what the detail callback returns
|
|
430
|
+
el._lt.resetDetail = detail.reset;
|
|
431
|
+
}
|
|
416
432
|
// `pager` is the page sizes to offer, the first one being the initial
|
|
417
433
|
if (opts.pager) {
|
|
418
434
|
const sizes = Array.isArray(opts.pager) ? opts.pager : [10, 25, 50, 100];
|
|
@@ -610,7 +626,7 @@
|
|
|
610
626
|
state.expanded.has(r) ? state.expanded.delete(r) : state.expanded.add(r);
|
|
611
627
|
rerender();
|
|
612
628
|
};
|
|
613
|
-
|
|
629
|
+
const decorate = (body, rows) => [...body.rows].forEach((tr, i) => {
|
|
614
630
|
const r = rows[i];
|
|
615
631
|
if (typeof r !== "number") return; // a separator group-header row
|
|
616
632
|
// the first data cell (past any leading rowspan group cell), so the caret
|
|
@@ -631,6 +647,17 @@
|
|
|
631
647
|
LT.render(elem(doc, "div", {}, cell), child);
|
|
632
648
|
}
|
|
633
649
|
});
|
|
650
|
+
// drop the memoized detail for one row (or every row, no argument) and
|
|
651
|
+
// re-render, so an already-opened detail is rebuilt from its callback — e.g.
|
|
652
|
+
// a caller's control-bar widget changed what the callback should return.
|
|
653
|
+
// Rebuilding re-runs the callback, so a detail table's own sort/filter state
|
|
654
|
+
// is reset along with its data.
|
|
655
|
+
decorate.reset = r => {
|
|
656
|
+
if (r == null) for (const k in cache) delete cache[k];
|
|
657
|
+
else delete cache[r];
|
|
658
|
+
rerender();
|
|
659
|
+
};
|
|
660
|
+
return decorate;
|
|
634
661
|
}
|
|
635
662
|
|
|
636
663
|
// The table's <colgroup>, created when core emitted none (it only does so for
|
|
@@ -778,9 +805,11 @@
|
|
|
778
805
|
"aria-label": "Show or hide columns", "aria-expanded": "false"
|
|
779
806
|
}, wrap),
|
|
780
807
|
menu = elem(doc, "div", { className: "lti-menu", hidden: true }, wrap);
|
|
781
|
-
|
|
808
|
+
// one checkbox per column; `sub` indents it under a spanner group header
|
|
809
|
+
const addBox = (i, sub) => {
|
|
810
|
+
const c = cols[i];
|
|
782
811
|
if (c == null) return;
|
|
783
|
-
const label = elem(doc, "label", {}, menu),
|
|
812
|
+
const label = elem(doc, "label", sub ? { className: "lti-sub" } : {}, menu),
|
|
784
813
|
box = elem(doc, "input", { type: "checkbox", checked: true }, label);
|
|
785
814
|
label.append(labels[i] ?? c);
|
|
786
815
|
if (start.includes(c)) { box.checked = false; hidden.add(i); }
|
|
@@ -788,7 +817,17 @@
|
|
|
788
817
|
box.checked ? hidden.delete(i) : hidden.add(i);
|
|
789
818
|
apply(i);
|
|
790
819
|
};
|
|
791
|
-
}
|
|
820
|
+
};
|
|
821
|
+
// Group the checkboxes under their spanners: the same column label can repeat
|
|
822
|
+
// across spanners (e.g. auto-span's "Sepal.Length"/"Petal.Length" both show as
|
|
823
|
+
// "Length"), so a flat list would be ambiguous. Walk the spanner row, emitting
|
|
824
|
+
// a group header before a real spanner's columns and listing a non-spanned
|
|
825
|
+
// column on its own. With no spanner row, list columns flat.
|
|
826
|
+
if (spanCells.length) for (const c of spanCells) {
|
|
827
|
+
const span = c.classList.contains("lt-spanner");
|
|
828
|
+
if (span) elem(doc, "div", { className: "lti-group", textContent: c.textContent }, menu);
|
|
829
|
+
for (let i = c._start; i < c._start + c._span; i++) addBox(i, span);
|
|
830
|
+
} else cols.forEach((_, i) => addBox(i));
|
|
792
831
|
cols.forEach((_, i) => apply(i)); // reflect any columns that start hidden
|
|
793
832
|
const open = on => {
|
|
794
833
|
menu.hidden = !on;
|
|
@@ -800,13 +839,14 @@
|
|
|
800
839
|
}
|
|
801
840
|
|
|
802
841
|
// --- Typed column filters (the `filter` named-list form). A typed spec is
|
|
803
|
-
// {type:"select"|"range", label?, choices?, min?, max?, step?,
|
|
804
|
-
// selected?}; it renders as a funnel + popover, under its own header
|
|
805
|
-
// column is visible or as a labelled head-bar chip when it is hidden
|
|
806
|
-
// column still travels in spec.data, which is what computeView filters
|
|
807
|
-
// popover holds an expression box AND a widget (a value dropdown
|
|
808
|
-
// slider); both edit the one filter term for
|
|
809
|
-
// and stay in sync, so the widget is a
|
|
842
|
+
// {type:"select"|"range"|"checklist", label?, choices?, min?, max?, step?,
|
|
843
|
+
// value?, selected?}; it renders as a funnel + popover, under its own header
|
|
844
|
+
// when the column is visible or as a labelled head-bar chip when it is hidden
|
|
845
|
+
// (the column still travels in spec.data, which is what computeView filters
|
|
846
|
+
// on). The popover holds an expression box AND a widget (a value dropdown, a
|
|
847
|
+
// range slider, or a checklist of values); both edit the one filter term for
|
|
848
|
+
// that column (state.filters[col]) and stay in sync, so the widget is a
|
|
849
|
+
// friendly face on the same expression a
|
|
810
850
|
// reader could type.
|
|
811
851
|
|
|
812
852
|
// A filter term string <-> a widget value, per type. A `null` parse means the
|
|
@@ -822,13 +862,22 @@
|
|
|
822
862
|
rngParse = s => {
|
|
823
863
|
const m = /^\s*x\s*>=\s*(-?[\d.]+)\s*&&\s*x\s*<=\s*(-?[\d.]+)\s*$/.exec(s || "");
|
|
824
864
|
return m ? [parseFloat(m[1]), parseFloat(m[2])] : null;
|
|
865
|
+
},
|
|
866
|
+
// a set filter keeps rows whose value is one of the checked ones; every
|
|
867
|
+
// choice checked -> "" (no filter), none -> "[].includes(x)" (no rows)
|
|
868
|
+
setExpr = (sel, all) =>
|
|
869
|
+
sel.length === all.length ? "" : `${JSON.stringify(sel.map(String))}.includes(x)`,
|
|
870
|
+
setParse = s => {
|
|
871
|
+
const m = /^\s*(\[[\s\S]*\])\.includes\(\s*x\s*\)\s*$/.exec(s || "");
|
|
872
|
+
if (!m) return null;
|
|
873
|
+
try { return JSON.parse(m[1]); } catch (e) { return null; }
|
|
825
874
|
};
|
|
826
875
|
|
|
827
876
|
// Fill a typed spec's choices (select) or min/max (range) from the column's
|
|
828
877
|
// data when the R side left them out, so `filter = list(x = "select")` needs no
|
|
829
878
|
// enumeration. Returns a copy with the gaps filled.
|
|
830
879
|
function resolveSpec(spec, column) {
|
|
831
|
-
if (spec.type === "select") {
|
|
880
|
+
if (spec.type === "select" || spec.type === "checklist") {
|
|
832
881
|
let choices = spec.choices;
|
|
833
882
|
if (!choices) {
|
|
834
883
|
const seen = new Set(), vals = [];
|
|
@@ -837,9 +886,11 @@
|
|
|
837
886
|
? a - b : String(a).localeCompare(String(b)));
|
|
838
887
|
choices = vals.map(v => ({ value: String(v), label: String(v) }));
|
|
839
888
|
}
|
|
840
|
-
// a leading blank
|
|
841
|
-
// until the reader picks a value
|
|
842
|
-
|
|
889
|
+
// a select offers a leading blank "no filter" choice, so it shows every
|
|
890
|
+
// row until the reader picks a value; a checklist starts with every box
|
|
891
|
+
// checked (which is itself "no filter"), so it needs no blank
|
|
892
|
+
if (spec.type === "select" && !choices.some(o => o.value === ""))
|
|
893
|
+
choices = [{ value: "", label: "" }, ...choices];
|
|
843
894
|
return { ...spec, choices };
|
|
844
895
|
}
|
|
845
896
|
let { min, max } = spec;
|
|
@@ -863,6 +914,44 @@
|
|
|
863
914
|
return { el: sel, set: v => sel.value = v };
|
|
864
915
|
}
|
|
865
916
|
|
|
917
|
+
// A list of {value, label} checkboxes (every box starts checked); `onInput`
|
|
918
|
+
// fires with the array of checked values on any change. Returns
|
|
919
|
+
// { el: [<label>...], set(values) }. Exposed on LT.ui so a caller can drop a
|
|
920
|
+
// checklist control into its own popover (e.g. forestly's treatment-group
|
|
921
|
+
// picker in the control bar) and reuse it as the checklist filter's widget.
|
|
922
|
+
function makeChecklist(doc, options, onInput) {
|
|
923
|
+
const boxes = options.map(o => {
|
|
924
|
+
const label = elem(doc, "label", { className: "lti-check" }),
|
|
925
|
+
box = elem(doc, "input", { type: "checkbox", checked: true, value: o.value }, label);
|
|
926
|
+
label.append(o.label);
|
|
927
|
+
return { o, box, label };
|
|
928
|
+
});
|
|
929
|
+
const emit = () => onInput(boxes.filter(b => b.box.checked).map(b => b.o.value));
|
|
930
|
+
boxes.forEach(b => b.box.onchange = emit);
|
|
931
|
+
return {
|
|
932
|
+
el: boxes.map(b => b.label),
|
|
933
|
+
set: vals => boxes.forEach(b => b.box.checked = vals.includes(b.o.value))
|
|
934
|
+
};
|
|
935
|
+
}
|
|
936
|
+
|
|
937
|
+
// A control-bar chip: a label, the caller's control (a funnel popover) dropped
|
|
938
|
+
// in, and a value-summary slot. `mark(on)` toggles the active highlight (color
|
|
939
|
+
// only, no reflow); `summarize(text)` sets the readout. Returns { el, mark,
|
|
940
|
+
// summarize }. The typed-filter chips use it, and it is exposed on LT.ui so a
|
|
941
|
+
// caller building its own control-bar widget (e.g. forestly's treatment-group
|
|
942
|
+
// picker) gets the same chip rather than hand-rolling the DOM.
|
|
943
|
+
function makeChip(doc, label, control) {
|
|
944
|
+
const el = elem(doc, "span", { className: "lti-chip" });
|
|
945
|
+
elem(doc, "span", { className: "lti-chip-name", textContent: label }, el);
|
|
946
|
+
const cur = elem(doc, "span", { className: "lti-chip-cur" }, el);
|
|
947
|
+
if (control) el.appendChild(control);
|
|
948
|
+
return {
|
|
949
|
+
el,
|
|
950
|
+
mark: on => el.classList.toggle("lti-on", !!on),
|
|
951
|
+
summarize: text => (cur.textContent = text)
|
|
952
|
+
};
|
|
953
|
+
}
|
|
954
|
+
|
|
866
955
|
// A two-thumb range slider from a track, a fill band, and two <button> thumbs —
|
|
867
956
|
// no native <input type=range>, so no vendor pseudo-element CSS and no stacked-
|
|
868
957
|
// input z-index hacks. Thumbs drag via the shared drag() helper and step with
|
|
@@ -986,6 +1075,24 @@
|
|
|
986
1075
|
ed = { el: [w.el, out], reflect: t => { const p = rngParse(t) || [cfg.min, cfg.max]; w.set(p); show(p); } };
|
|
987
1076
|
return ed;
|
|
988
1077
|
}
|
|
1078
|
+
},
|
|
1079
|
+
checklist: {
|
|
1080
|
+
// the chip summary: the chosen labels (few), else a count; empty when every
|
|
1081
|
+
// box is checked (term "", no filter)
|
|
1082
|
+
describe: (t, cfg) => {
|
|
1083
|
+
const sel = setParse(t);
|
|
1084
|
+
if (sel == null) return t ? "⋯" : "";
|
|
1085
|
+
const labs = cfg.choices.filter(o => sel.includes(o.value)).map(o => o.label);
|
|
1086
|
+
return labs.length <= 2 ? labs.join(", ") : `${labs.length} selected`;
|
|
1087
|
+
},
|
|
1088
|
+
// `[].concat` so a single `selected` value (a scalar from R) still seeds
|
|
1089
|
+
init: cfg => setExpr([].concat(cfg.selected ?? cfg.choices.map(o => o.value)), cfg.choices),
|
|
1090
|
+
build: (doc, cfg, setTerm) => {
|
|
1091
|
+
const all = cfg.choices.map(o => o.value),
|
|
1092
|
+
w = makeChecklist(doc, cfg.choices, sel => setTerm(setExpr(sel, cfg.choices), ed)),
|
|
1093
|
+
ed = { el: w.el, reflect: t => { const sel = setParse(t); w.set(sel == null ? all : sel); } };
|
|
1094
|
+
return ed;
|
|
1095
|
+
}
|
|
989
1096
|
}
|
|
990
1097
|
};
|
|
991
1098
|
|
|
@@ -997,7 +1104,8 @@
|
|
|
997
1104
|
const cfg = resolveSpec(spec, data[col] || []),
|
|
998
1105
|
kind = KINDS[cfg.type],
|
|
999
1106
|
editors = []; // the expression box + widget, kept in sync
|
|
1000
|
-
let mark = () => {}
|
|
1107
|
+
let mark = () => {}, // paints the active state once `root` exists (below)
|
|
1108
|
+
showSummary = () => {}; // updates the chip's value readout (chip only)
|
|
1001
1109
|
// set the one term, re-render, and reflect it into every editor but the one
|
|
1002
1110
|
// that caused the change (`from`), so the slider and box update each other
|
|
1003
1111
|
const setTerm = (expr, from) => {
|
|
@@ -1020,21 +1128,20 @@
|
|
|
1020
1128
|
panel.append(...[].concat(wEd.el));
|
|
1021
1129
|
setTerm(kind.init(cfg), null); // seed the configured default
|
|
1022
1130
|
}, () => showSummary()); // refresh the chip text on close
|
|
1023
|
-
// a hidden column wraps the funnel in a chip (
|
|
1024
|
-
// visible column shows the bare funnel under its own header
|
|
1025
|
-
|
|
1131
|
+
// a hidden column wraps the funnel in a labelled chip (via makeChip); a
|
|
1132
|
+
// visible column shows the bare funnel under its own header. The active-state
|
|
1133
|
+
// class tracks every change, but the chip's value text is variable width, so
|
|
1134
|
+
// a live update while dragging the slider would shift the funnel (and its
|
|
1135
|
+
// popover) sideways; the summary is deferred to the popover's close instead.
|
|
1136
|
+
let root = wrap;
|
|
1026
1137
|
if (chipLabel != null) {
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1138
|
+
const chip = makeChip(doc, chipLabel, wrap);
|
|
1139
|
+
root = chip.el;
|
|
1140
|
+
mark = chip.mark;
|
|
1141
|
+
showSummary = () => chip.summarize(kind.describe(state.filters[col] || "", cfg));
|
|
1142
|
+
} else {
|
|
1143
|
+
mark = cur => root.classList.toggle("lti-on", !!cur);
|
|
1031
1144
|
}
|
|
1032
|
-
// the active-state class tracks every change (color only, no reflow), but the
|
|
1033
|
-
// chip's value text is a variable width, so a live update while dragging the
|
|
1034
|
-
// slider would shift the funnel (and its popover) sideways; defer it to close
|
|
1035
|
-
mark = cur => root.classList.toggle("lti-on", !!cur);
|
|
1036
|
-
const showSummary = () =>
|
|
1037
|
-
summary && (summary.textContent = kind.describe(state.filters[col] || "", cfg));
|
|
1038
1145
|
mark(state.filters[col] || ""); // paint the seeded term
|
|
1039
1146
|
showSummary();
|
|
1040
1147
|
return root;
|
|
@@ -1101,6 +1208,9 @@
|
|
|
1101
1208
|
};
|
|
1102
1209
|
|
|
1103
1210
|
LT.plugins.interactive = { matcher, computeView, pageSlice, enhance };
|
|
1211
|
+
// reusable control bits for callers building their own control-bar widgets
|
|
1212
|
+
// (with el._lt.bar): a labelled chip, a funnel popover, and a checkbox list
|
|
1213
|
+
LT.ui = Object.assign(LT.ui || {}, { popover, checklist: makeChecklist, chip: makeChip });
|
|
1104
1214
|
LT.onMount.push(onMount);
|
|
1105
1215
|
// Core drains its render queue before this file loads, so the callback above
|
|
1106
1216
|
// only sees later renders; enhance the tables already on the page now.
|
package/js/lt-interactive.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(t=>{"use strict";const e=t.LT;if(!e?.onMount||e.plugins.interactive)return;let n;const o=t=>"number"==typeof t.find(t=>null!=t),s=t=>"string"!=typeof t?{...t}:"-"===t[0]?{col:t.slice(1),dir:"desc"}:{col:t,dir:"asc"},l=(t,e,o)=>(n||=new Intl.Collator,o?t-e:n.compare(String(t),String(e))),r=(t,e)=>t.querySelector(e),i=(t,e)=>t.querySelectorAll(e),a=(t,e,n,o)=>t.addEventListener(e,n,o),c=t=>[...t.children].filter(t=>!t.classList.contains("lt-row-group"));function u(t,e,n={},o){const s=t.createElement(e);for(const t in n)t.includes("-")?s.setAttribute(t,n[t]):s[t]=n[t];return o?o.appendChild(s):s}function d(t,e,n){t.preventDefault();const o=t.target.ownerDocument||document,s=t=>e(t);a(o,"pointermove",s),a(o,"pointerup",()=>{var t,e;t="pointermove",e=s,o.removeEventListener(t,e),n&&n()},{once:!0})}function p(t){const e=String(t??"").trim();if(""===e)return null;if(/(^|[^\w$])x([^\w$]|$)/.test(e)){let t;try{t=new Function("x",`return (${e});`)}catch(t){}if(t){const n=/^\s*!|!=/.test(e),o=e=>{if(null==e)return n;try{const n=Number(e);return!!t(String(e))||""!==e&&isFinite(n)&&!!t(n)}catch(t){return!1}};return t=>t[n?"every":"some"](t=>o(t.raw))}}const n="!"===e[0],o=(n?e.slice(1).trim():e).toLowerCase();return""===o?null:t=>n!==t.some(t=>null!=t.disp&&String(t.disp).toLowerCase().includes(o))}function f(t,e,n){const s=t._cols||[],r=t.data||{},i=(r[s[0]]||[]).length,a=(t,n)=>({raw:r[t]?.[n-1]??null,disp:e[t]?.[n-1]??""}),c=[];for(const t in n.filters||{}){const e=p(n.filters[t]);e&&c.push(n=>e([a(t,n)]))}const u=p(n.term);u&&c.push(t=>u(s.map(e=>a(e,t))));const d=Object.values(n.predicates||{});if(d.length){const t=Object.keys(r),e=e=>Object.fromEntries(t.map(t=>[t,r[t]?.[e-1]??null]));c.push(t=>{const n=e(t);return d.every(t=>t(n))})}const f=t=>c.every(e=>e(t)),h=t=>{const e=t.map(t=>{const e=r[t.col];return e&&{col:e,num:o(e),dir:"desc"===t.dir?-1:1}}).filter(Boolean);return e.length?(t,n)=>{for(const{col:o,num:s,dir:r}of e){const e=o[t-1],i=o[n-1],a=null==e,c=null==i;if(a||c){if(a!==c)return a?1:-1;continue}const u=l(e,i,s);if(u)return r*u}return 0}:null},m=t._indent,g=(t,e)=>{if(!m){const n=t.filter(f);return e?n.sort(e):n}const n=[],o=[];for(const e of t){const t={r:e,kids:[]},s=m[e-1]||0;for(;o.length&&o[o.length-1].lv>=s;)o.pop();(o.length?o[o.length-1].node.kids:n).push(t),o.push({node:t,lv:s})}const s=t=>t.map(t=>{const e=s(t.kids);return f(t.r)||e.length?{r:t.r,kids:e}:null}).filter(Boolean),l=t=>(e&&t.sort((t,n)=>e(t.r,n.r)),t.forEach(t=>l(t.kids)),t),r=[],i=t=>t.forEach(t=>{r.push(t.r),i(t.kids)});return i(l(s(n))),r},w=()=>Array.from({length:i},(t,e)=>e+1),y=t._rowspan;if(y){const t={},e=[];for(const o of n.sort||[])y.includes(o.col)?t[o.col]=o.dir:e.push(o);const s=h(e),i=(e,n)=>{if(n===y.length)return g(e,s);const a=r[y[n]],c=new Map;for(const t of e){const e=a[t-1],n=null==e?"\0":String(e);(c.get(n)||c.set(n,{v:e,rows:[]}).get(n)).rows.push(t)}let u=[...c.values()];if(t[y[n]]){const e=o(a),s="desc"===t[y[n]]?-1:1;u.sort((t,n)=>{const o=null==t.v,r=null==n.v;return o||r?o===r?0:o?1:-1:s*l(t.v,n.v,e)})}return u.flatMap(t=>i(t.rows,n+1))};return i(w(),0)}const b=h(n.sort||[]),v=t._groups;if(!v)return g(w(),b);const x=new Set,S=[];for(const t of v)t.rows.forEach(t=>x.add(t)),S.push(...g(t.rows,b));const C=[];for(let t=1;t<=i;t++)x.has(t)||C.push(t);return[...S,...g(C,b)]}function h(t,e){const n=e.pageSize;if(!n)return e.page=0,t;const o=Math.max(0,Math.ceil(t.length/n)-1);return e.page=Math.min(Math.max(e.page||0,0),o),t.slice(e.page*n,(e.page+1)*n)}function m(n,o){const l=o.interactive,p=o._cols||[],m=((o.data||{})[p[0]]||[]).length,v=o._groups,x={},S=v?[]:null;if(v){const t=new Set;v.forEach(e=>e.rows.forEach(n=>{x[n]=e,S.push(n),t.add(n)}));for(let e=1;e<=m;e++)t.has(e)||S.push(e)}const C=o._rowspan?o._rowspan.length:0,E=C?[...o._rowspan,...p]:p,N=C+p.length,k=function(t,e,n){const o={};e.forEach(t=>o[t]=[]);let s=0;return i(t,"tbody tr").forEach(t=>{if(t.classList.contains("lt-row-group"))return;const l=n?n[s]:s+1,r=c(t);e.forEach((t,e)=>o[t][l-1]=r[e]?.textContent??""),s++}),o}(n,p,S),L=[...i(n,"thead tr")].pop(),_={filters:{},predicates:{},page:0,pageSize:0,sort:Array.isArray(l.sort)?l.sort.map(s):[]};let $,D=()=>{};const A=[],F=(t=!0)=>{t&&($=f(o,k,_),_.page=0);const s=h($,_),l=(t=>{if(!v)return t;const e=[];let n;for(const o of t){const t=x[o];t!==n&&(t&&e.push({label:t.label,raw:t.raw}),n=t),e.push(o)}return e})(s),i=u(n.ownerDocument,"template",{innerHTML:e.buildHtml({...o,_viewRows:l})}),a=r(i.content,"tbody");s.length?A.forEach(t=>t(a,l)):a.innerHTML=`<tr class="lti-empty"><td colspan="${N}">—</td></tr>`,r(n,"tbody").replaceWith(a),D($.length)};n._lt={spec:o,state:_,refresh:()=>F(),view:()=>$||f(o,k,_),filter(t,e){e?_.predicates[t]=e:delete _.predicates[t],F()}};const z=l.filter,R=z?.cols?Object.keys(z.cols).filter(t=>!0!==z.cols[t]&&!p.includes(t)):[],j=!1!==l.search||l.hide||R.length||l.download?u(n.ownerDocument,"div",{className:"lti-bar"},w(n.tHead||n.createTHead(),"lti-head",N,0)):null,O=c(L).map(t=>t.textContent);!1!==l.sort&&function(t,e,n,o){const s=t.ownerDocument,l={},r=()=>{for(const t in l)l[t].th.removeAttribute("aria-sort"),l[t].ind.textContent="";const t=n.sort||[];t.forEach(({col:e,dir:n},o)=>{const s=l[e];s&&(s.th.setAttribute("aria-sort","desc"===n?"descending":"ascending"),s.ind.textContent=("desc"===n?"▼":"▲")+(t.length>1?String(o+1).replace(/\d/g,t=>"₀₁₂₃₄₅₆₇₈₉"[t]):""))})};i(t,"th").forEach((t,i)=>{const a=e[i];if(null==a)return;t.classList.add("lti-sortable");const c=u(s,"span",{className:"lti-label"},t);for(;t.firstChild!==c;)c.append(t.firstChild);l[a]={th:t,ind:u(s,"span",{className:"lti-sort"},c)},c.onclick=t=>{!function(t,e,n){const o=(t.sort||[]).slice(),s=o.findIndex(t=>t.col===e),l=s<0?"asc":"asc"===o[s].dir?"desc":null;if(!n)return void(t.sort=l?[{col:e,dir:l}]:[]);s<0?o.push({col:e,dir:l}):l?o[s]={col:e,dir:l}:o.splice(s,1);t.sort=o}(n,a,t.shiftKey),r(),o()}}),r()}(L,E,_,F),z&&(z.default||z.cols&&Object.keys(z.cols).some(t=>p.includes(t)))&&function(t,e,n,o,s,l,r=0){const i=t.ownerDocument,a=u(i,"tr",{className:"lti-filters"}),c=n.default,d=n.cols||{};for(let t=0;t<r;t++)u(i,"td",{},a);e.forEach(t=>{const e=u(i,"td",{},a),n=t in d?d[t]:c;if(n)if(!0===n){y(e.appendChild(g(i,`Filter ${t}`)),e=>{e?s.filters[t]=e:delete s.filters[t],l()})}else e.appendChild(M(i,t,n,o,s,l,null))}),t.parentNode.appendChild(a)}(L,p,z,o.data,_,F,C);const T=l.resize?function(t,e,n,o=0){const s=[...i(e,"th")],l=function(t,e,n=0){let o=r(t,"colgroup");if(!o){const s=t.ownerDocument;o=u(s,"colgroup");for(let t=0;t<n+e;t++)u(s,"col",{},o);t.caption?t.caption.after(o):t.prepend(o)}return[...o.children]}(t,n,o),a=t=>t.getBoundingClientRect().width,c=()=>{if(t.classList.contains("lti-fixed"))return;const e=s.map(a);t.style.width=a(t)+"px",l.forEach((t,n)=>t.style.width=e[n]+"px"),t.classList.add("lti-fixed")},d=e=>{const n=l.map(t=>t.style.width),o=t.style.width;l.forEach(t=>t.style.width=""),t.style.width="",t.classList.remove("lti-fixed");const r=a(s[e]);return l.forEach((t,e)=>t.style.width=n[e]),t.style.width=o,t.classList.add("lti-fixed"),r},p=(e,n,o=24)=>{const s=parseFloat(l[e].style.width);l[e].style.width=Math.max(n,o)+"px",t.style.width=parseFloat(t.style.width)+parseFloat(l[e].style.width)-s+"px"};return{ths:s,cs:l,dataCs:l.slice(o),freeze:c,natural:d,setWidth:p}}(n,L,p.length,C):null;l.resize&&function(t,e){const n=t.ownerDocument,{ths:o,cs:s,freeze:l,natural:r,setWidth:i}=e;o.forEach((e,o)=>{const a=u(n,"div",{className:"lti-resizer"},e);a.ondblclick=t=>{t.stopPropagation(),l(),i(o,r(o))},a.onpointerdown=e=>{e.stopPropagation(),l();const n=e.clientX,r=parseFloat(s[o].style.width);t.classList.add("lti-resizing"),d(e,t=>i(o,r+t.clientX-n),()=>t.classList.remove("lti-resizing"))}})}(n,T);const B=l.hide||l.download?u(n.ownerDocument,"div",{className:"lti-icons"},j):null;if(l.hide&&function(t,e,n,o,s,l,r,i){const d=e.ownerDocument,p=l&&l.hidden||[],f=new Set,h=(t,e,n)=>{const o=c(t)[e];o&&1===o.colSpan&&(o.hidden=n)};i.push(t=>f.forEach(e=>{for(const n of t.rows)h(n,e,!0)}));const m=[...n.children].length-c(n).length,g=[...e.rows].find(t=>t.classList.contains("lt-spanner-row")),w=g?c(g).slice(m):[];let y=0;w.forEach(t=>{t._span=t.colSpan,t._start=y,y+=t._span});const b=()=>{for(const t of w){let e=0;for(let n=t._start;n<t._start+t._span;n++)f.has(n)&&e++;t.colSpan=Math.max(1,t._span-e),t.hidden=e>=t._span}},v=t=>{const n=f.has(t);r?.dataCs[t]&&(r.dataCs[t].hidden=n);for(const o of e.rows)o.classList.contains("lt-spanner-row")||h(o,t,n);b()},x=u(d,"span",{className:"lti-cols"},t),S=u(d,"button",{type:"button",title:"Columns","aria-label":"Show or hide columns","aria-expanded":"false"},x),C=u(d,"div",{className:"lti-menu",hidden:!0},x);o.forEach((t,e)=>{if(null==t)return;const n=u(d,"label",{},C),o=u(d,"input",{type:"checkbox",checked:!0},n);n.append(s[e]??t),p.includes(t)&&(o.checked=!1,f.add(e)),o.onchange=()=>{o.checked?f.delete(e):f.add(e),v(e)}}),o.forEach((t,e)=>v(e));const E=t=>{C.hidden=!t,S.setAttribute("aria-expanded",String(t))};S.onclick=t=>{t.stopPropagation(),E(C.hidden)},a(d,"click",t=>{x.contains(t.target)||E(!1)}),a(d,"keydown",t=>{"Escape"===t.key&&E(!1)})}(B,n,L,p,O,l.hide,T,A),l.download&&function(t,e,n,o,s,l){const r=e.ownerDocument,i=("string"==typeof l&&l?l:"table").replace(/(\.csv)?$/i,".csv"),a=o.map((t,e)=>e).filter(t=>null!=o[t]);u(r,"button",{type:"button",className:"lti-download",title:"Download CSV","aria-label":"Download table as CSV"},t).onclick=()=>{const t=n._display||{},l=[a.map(t=>b(s[t]??o[t])).join(",")];for(const n of e._lt.view())l.push(a.map(e=>b((t[o[e]]||[])[n-1])).join(","));const c=URL.createObjectURL(new Blob([l.join("\n")],{type:"text/csv"}));u(r,"a",{href:c,download:i}).click(),URL.revokeObjectURL(c)}}(B,n,o,p,O,l.download),R.length&&function(t,e,n,o,s,l){const r=t.ownerDocument;for(const i of e)t.appendChild(M(r,i,n[i],o,s,l,n[i].label||i))}(u(n.ownerDocument,"div",{className:"lti-chips"},j),R,z.cols,o.data,_,F),!1!==l.search&&function(t,e,n,o){const s=t.appendChild(g(e.ownerDocument,"Search"));y(s,t=>{n.term=t,o()})}(j,n,_,F),l.detail&&A.push(function(n,o,s,l,r,i){const a=n.ownerDocument,d={};l.expanded=new Set;const p=(t,e)=>{const n={};for(const o in t)n[o]=t[o]?.[e-1]??null;return n},f=e=>{if(e in d)return d[e];const n=p(o._display||{},e);let s=null;if(Array.isArray(r)){const t={};for(const e of r)t[e]=[n[e]??null];s={data:t}}else{const l="function"==typeof r?r:t[r];"function"==typeof l&&(s=l(p(o.data||{},e),e,n))}return d[e]=s},h=t=>{l.expanded.has(t)?l.expanded.delete(t):l.expanded.add(t),i()};return(t,n)=>[...t.rows].forEach((t,o)=>{const r=n[o];if("number"!=typeof r)return;const i=c(t)[0],d=l.expanded.has(r);if(!i)return;const p=u(a,"button",{type:"button",className:"lti-expand",textContent:d?"▾":"▸","aria-expanded":String(d),"aria-label":"Toggle detail"});p.onclick=()=>h(r),i.prepend(p);const m=d&&f(r);if(m){const n=u(a,"tr",{className:"lti-detail"});t.after(n);const o=u(a,"td",{colSpan:s},n);e.render(u(a,"div",{},o),m)}})}(n,o,N,_,l.detail,()=>F(!1))),l.pager){const t=Array.isArray(l.pager)?l.pager:[10,25,50,100];D=function(t,e,n,o,s,l){const r=t.ownerDocument;let i=t.tFoot;i||((i=t.createTFoot()).className="lt-footer");const a=u(r,"div",{className:"lti-pager"},w(i,"lti-pager-row",e,-1)),c=u(r,"span",{className:"lti-pos"});s.pageSize=n[0];const d=[()=>0,t=>t-1,t=>t+1,()=>1e9],p=["«","‹","›","»"].map((t,e)=>{const n=u(r,"button",{type:"button",textContent:t,"aria-label":["First","Previous","Next","Last"][e]},a);return n.onclick=()=>{s.page=d[e](s.page),l()},n});if(a.appendChild(c),n.length>1&&o>Math.min(...n.filter(t=>t>0))){const t=u(r,"select",{"aria-label":"Rows per page"},a);n.forEach(e=>u(r,"option",{value:e,textContent:e||"∞"},t)),t.onchange=()=>{s.pageSize=+t.value,s.page=0,l()}}return t=>{const e=s.pageSize||t||1,n=Math.max(0,Math.ceil(t/e)-1),l=t<o?` (${o})`:"";c.textContent=(t?`${s.page*e+1}–${Math.min(t,(s.page+1)*e)} / ${t}`:"0 / 0")+l,p.forEach((t,e)=>t.disabled=e<2?!s.page:s.page===n)}}(n,N,t,m,_,()=>F(!1)),F()}else(_.sort.length||l.detail)&&F()}function g(t,e){return u(t,"input",{type:"search",className:"lti-search","aria-label":e})}function w(t,e,n,o){const s=t.insertRow(o);return s.className=e,u(t.ownerDocument,"td",{colSpan:n},s)}function y(t,e){let n;const o=()=>e(t.value);t.oninput=()=>{clearTimeout(n),n=setTimeout(o,150)},t.onchange=()=>{clearTimeout(n),o()}}function b(t){const e=null==t?"":String(t);return/[",\n]/.test(e)?'"'+e.replace(/"/g,'""')+'"':e}const v=t=>""===t?"":`x == ${JSON.stringify(String(t))}`,x=t=>{const e=/^\s*x\s*==\s*(['"])([\s\S]*)\1\s*$/.exec(t||"");return e?e[2]:null},S=(t,e,n,o)=>t<=n&&e>=o?"":`x >= ${t} && x <= ${e}`,C=t=>{const e=/^\s*x\s*>=\s*(-?[\d.]+)\s*&&\s*x\s*<=\s*(-?[\d.]+)\s*$/.exec(t||"");return e?[parseFloat(e[1]),parseFloat(e[2])]:null};function E(t,e,n){const o=e.min,s=e.max,l=s-o||1,r=e.step||l/100,i=u(t,"div",{className:"lti-slider"}),a=u(t,"div",{className:"lti-slider-fill"},i),c=e=>u(t,"button",{type:"button",className:"lti-thumb",role:"slider","aria-label":e,"aria-valuemin":o,"aria-valuemax":s},i),p=[c("Minimum"),c("Maximum")];let f=[o,s];const h=t=>(t-o)/l*100,m=()=>{p.forEach((t,e)=>{t.style.left=h(f[e])+"%",t.setAttribute("aria-valuenow",f[e])}),a.style.left=h(f[0])+"%",a.style.right=100-h(f[1])+"%"},g=(t,e)=>{f[t]=(t=>{const e=Math.round((t-o)/r)*r+o;return Math.min(s,Math.max(o,Math.round(1e6*e)/1e6))})(e),f[0]>f[1]&&(f=[Math.min(...f),Math.max(...f)]),m(),n(f.slice())};return p.forEach((t,e)=>{t.onpointerdown=n=>{t.focus(),d(n,t=>g(e,(t=>{const e=i.getBoundingClientRect();return o+l*Math.min(1,Math.max(0,(t-e.left)/e.width))})(t.clientX)))},t.onkeydown=t=>{const n={ArrowLeft:-1,ArrowDown:-1,ArrowRight:1,ArrowUp:1}[t.key];if(n)g(e,f[e]+n*r);else if("Home"===t.key)g(e,o);else{if("End"!==t.key)return;g(e,s)}t.preventDefault()}}),m(),{el:i,set:t=>{f=t.slice(),m()}}}function N(t,e,n,o){const s=u(t,"span",{className:"lti-pop"}),l=u(t,"button",{type:"button",className:"lti-funnel",title:e,"aria-label":e,"aria-expanded":"false"},s),r=u(t,"div",{className:"lti-pop-panel",hidden:!0},s);n(r);const i=e=>{const n=!r.hidden;r.hidden=!e,l.setAttribute("aria-expanded",String(e)),e?(()=>{r.style.left=r.style.right="";const e=(t.defaultView||window).innerWidth,n=s.closest(".lt-wrap"),o=Math.min(e,n?n.getBoundingClientRect().right:e);r.getBoundingClientRect().right>o-4&&(r.style.left="auto",r.style.right="0")})():n&&o&&o()};return l.onclick=t=>{t.stopPropagation(),i(r.hidden)},a(t,"click",t=>{s.contains(t.target)||i(!1)}),a(t,"keydown",t=>{"Escape"===t.key&&i(!1)}),s}const k={select:{describe:(t,e)=>{const n=x(t);if(null==n)return t?"⋯":"";const o=e.choices.find(t=>t.value===n);return o?o.label:n},init:t=>v(t.selected??""),build:(t,e,n)=>{const o=function(t,e,n){const o=u(t,"select",{className:"lti-filter-pick"});return e.forEach(e=>u(t,"option",{value:e.value,textContent:e.label},o)),o.onchange=()=>n(o.value),{el:o,set:t=>o.value=t}}(t,e.choices,t=>n(v(t),s)),s={el:o.el,reflect:t=>{const e=x(t);o.set(null==e?"":e)}};return s}},range:{describe:t=>{const e=C(t);return e?`${e[0]} – ${e[1]}`:t?"⋯":""},init:t=>t.value?S(t.value[0],t.value[1],t.min,t.max):"",build:(t,e,n)=>{const o=u(t,"span",{className:"lti-slider-out"}),s=t=>o.textContent=`${t[0]} – ${t[1]}`,l=E(t,e,t=>{s(t),n(S(t[0],t[1],e.min,e.max),r)}),r={el:[l.el,o],reflect:t=>{const n=C(t)||[e.min,e.max];l.set(n),s(n)}};return r}}};function M(t,e,n,o,s,l,r){const i=function(t,e){if("select"===t.type){let n=t.choices;if(!n){const t=new Set,o=[];for(const n of e)null==n||t.has(n)||(t.add(n),o.push(n));o.sort((t,e)=>"number"==typeof t&&"number"==typeof e?t-e:String(t).localeCompare(String(e))),n=o.map(t=>({value:String(t),label:String(t)}))}return n.some(t=>""===t.value)||(n=[{value:"",label:""},...n]),{...t,choices:n}}let{min:n,max:o}=t;if(null==n||null==o){let t=1/0,s=-1/0;for(const n of e){const e=Number(n);isFinite(e)&&(e<t&&(t=e),e>s&&(s=e))}null==n&&(n=isFinite(t)?t:0),null==o&&(o=isFinite(s)?s:1)}return{...t,min:n,max:o}}(n,o[e]||[]),a=k[i.type],c=[];let d=()=>{};const p=(t,n)=>{t?s.filters[e]=t:delete s.filters[e],l();const o=s.filters[e]||"";c.forEach(t=>t!==n&&t.reflect(o)),d(o)},f=N(t,`Filter ${i.label||e}`,n=>{const o=u(t,"input",{type:"search",className:"lti-search","aria-label":`${i.label||e} filter expression`},n),s={reflect:e=>{t.activeElement!==o&&(o.value=e)}};c.push(s),y(o,t=>p(t.trim(),s));const l=a.build(t,i,p);c.push(l),n.append(...[].concat(l.el)),p(a.init(i),null)},()=>g());let h,m=f;null!=r&&(m=u(t,"span",{className:"lti-chip"}),u(t,"span",{className:"lti-chip-name",textContent:r},m),h=u(t,"span",{className:"lti-chip-cur"},m),m.appendChild(f)),d=t=>m.classList.toggle("lti-on",!!t);const g=()=>h&&(h.textContent=a.describe(s.filters[e]||"",i));return d(s.filters[e]||""),g(),m}const L=(t,e)=>{e?.interactive&&!t.dataset.ltiOn&&(t.dataset.ltiOn="1",m(t,e))};e.plugins.interactive={matcher:p,computeView:f,pageSlice:h,enhance:m},e.onMount.push(L),"undefined"!=typeof document&&i(document,".lt-table").forEach(t=>L(t,t._ltSpec))})("undefined"!=typeof window?window:globalThis);
|
|
1
|
+
(t=>{"use strict";const e=t.LT;if(!e?.onMount||e.plugins.interactive)return;let n;const s=t=>"number"==typeof t.find(t=>null!=t),o=t=>"string"!=typeof t?{...t}:"-"===t[0]?{col:t.slice(1),dir:"desc"}:{col:t,dir:"asc"},l=(t,e,s)=>(n||=new Intl.Collator,s?t-e:n.compare(String(t),String(e))),r=(t,e)=>t.querySelector(e),i=(t,e)=>t.querySelectorAll(e),c=(t,e,n,s)=>t.addEventListener(e,n,s),a=t=>[...t.children].filter(t=>!t.classList.contains("lt-row-group"));function u(t,e,n={},s){const o=t.createElement(e);for(const t in n)t.includes("-")?o.setAttribute(t,n[t]):o[t]=n[t];return s?s.appendChild(o):o}function d(t,e,n){t.preventDefault();const s=t.target.ownerDocument||document,o=t=>e(t);c(s,"pointermove",o),c(s,"pointerup",()=>{var t,e;t="pointermove",e=o,s.removeEventListener(t,e),n&&n()},{once:!0})}function p(t){const e=String(t??"").trim();if(""===e)return null;if(/(^|[^\w$])x([^\w$]|$)/.test(e)){let t;try{t=new Function("x",`return (${e});`)}catch(t){}if(t){const n=/^\s*!|!=/.test(e),s=e=>{if(null==e)return n;try{const n=Number(e);return!!t(String(e))||""!==e&&isFinite(n)&&!!t(n)}catch(t){return!1}};return t=>t[n?"every":"some"](t=>s(t.raw))}}const n="!"===e[0],s=(n?e.slice(1).trim():e).toLowerCase();return""===s?null:t=>n!==t.some(t=>null!=t.disp&&String(t.disp).toLowerCase().includes(s))}function f(t,e,n){const o=t._cols||[],r=t.data||{},i=(r[o[0]]||[]).length,c=(t,n)=>({raw:r[t]?.[n-1]??null,disp:e[t]?.[n-1]??""}),a=[];for(const t in n.filters||{}){const e=p(n.filters[t]);e&&a.push(n=>e([c(t,n)]))}const u=p(n.term);u&&a.push(t=>u(o.map(e=>c(e,t))));const d=Object.values(n.predicates||{});if(d.length){const t=Object.keys(r),e=e=>Object.fromEntries(t.map(t=>[t,r[t]?.[e-1]??null]));a.push(t=>{const n=e(t);return d.every(t=>t(n))})}const f=t=>a.every(e=>e(t)),h=t=>{const e=t.map(t=>{const e=r[t.col];return e&&{col:e,num:s(e),dir:"desc"===t.dir?-1:1}}).filter(Boolean);return e.length?(t,n)=>{for(const{col:s,num:o,dir:r}of e){const e=s[t-1],i=s[n-1],c=null==e,a=null==i;if(c||a){if(c!==a)return c?1:-1;continue}const u=l(e,i,o);if(u)return r*u}return 0}:null},m=t._indent,g=(t,e)=>{if(!m){const n=t.filter(f);return e?n.sort(e):n}const n=[],s=[];for(const e of t){const t={r:e,kids:[]},o=m[e-1]||0;for(;s.length&&s[s.length-1].lv>=o;)s.pop();(s.length?s[s.length-1].node.kids:n).push(t),s.push({node:t,lv:o})}const o=t=>t.map(t=>{const e=o(t.kids);return f(t.r)||e.length?{r:t.r,kids:e}:null}).filter(Boolean),l=t=>(e&&t.sort((t,n)=>e(t.r,n.r)),t.forEach(t=>l(t.kids)),t),r=[],i=t=>t.forEach(t=>{r.push(t.r),i(t.kids)});return i(l(o(n))),r},w=()=>Array.from({length:i},(t,e)=>e+1),b=t._rowspan;if(b){const t={},e=[];for(const s of n.sort||[])b.includes(s.col)?t[s.col]=s.dir:e.push(s);const o=h(e),i=(e,n)=>{if(n===b.length)return g(e,o);const c=r[b[n]],a=new Map;for(const t of e){const e=c[t-1],n=null==e?"\0":String(e);(a.get(n)||a.set(n,{v:e,rows:[]}).get(n)).rows.push(t)}let u=[...a.values()];if(t[b[n]]){const e=s(c),o="desc"===t[b[n]]?-1:1;u.sort((t,n)=>{const s=null==t.v,r=null==n.v;return s||r?s===r?0:s?1:-1:o*l(t.v,n.v,e)})}return u.flatMap(t=>i(t.rows,n+1))};return i(w(),0)}const y=h(n.sort||[]),v=t._groups;if(!v)return g(w(),y);const x=new Set,S=[];for(const t of v)t.rows.forEach(t=>x.add(t)),S.push(...g(t.rows,y));const k=[];for(let t=1;t<=i;t++)x.has(t)||k.push(t);return[...S,...g(k,y)]}function h(t,e){const n=e.pageSize;if(!n)return e.page=0,t;const s=Math.max(0,Math.ceil(t.length/n)-1);return e.page=Math.min(Math.max(e.page||0,0),s),t.slice(e.page*n,(e.page+1)*n)}function m(n,s){const l=s.interactive,p=s._cols||[],m=((s.data||{})[p[0]]||[]).length,v=s._groups,x={},S=v?[]:null;if(v){const t=new Set;v.forEach(e=>e.rows.forEach(n=>{x[n]=e,S.push(n),t.add(n)}));for(let e=1;e<=m;e++)t.has(e)||S.push(e)}const k=s._rowspan?s._rowspan.length:0,N=k?[...s._rowspan,...p]:p,C=k+p.length,E=function(t,e,n){const s={};e.forEach(t=>s[t]=[]);let o=0;return i(t,"tbody tr").forEach(t=>{if(t.classList.contains("lt-row-group"))return;const l=n?n[o]:o+1,r=a(t);e.forEach((t,e)=>s[t][l-1]=r[e]?.textContent??""),o++}),s}(n,p,S),_=[...i(n,"thead tr")].pop(),L={filters:{},predicates:{},page:0,pageSize:0,sort:Array.isArray(l.sort)?l.sort.map(o):[]};let M,$=()=>{};const A=[],F=(t=!0)=>{t&&(M=f(s,E,L),L.page=0);const o=h(M,L),l=(t=>{if(!v)return t;const e=[];let n;for(const s of t){const t=x[s];t!==n&&(t&&e.push({label:t.label,raw:t.raw}),n=t),e.push(s)}return e})(o),i=u(n.ownerDocument,"template",{innerHTML:e.buildHtml({...s,_viewRows:l})}),c=r(i.content,"tbody");o.length?A.forEach(t=>t(c,l)):c.innerHTML=`<tr class="lti-empty"><td colspan="${C}">—</td></tr>`,r(n,"tbody").replaceWith(c),$(M.length)};n._lt={spec:s,state:L,refresh:()=>F(),view:()=>M||f(s,E,L),filter(t,e){e?L.predicates[t]=e:delete L.predicates[t],F()}};const z=l.filter,O=z?.cols?Object.keys(z.cols).filter(t=>!0!==z.cols[t]&&!p.includes(t)):[],j=!1!==l.search||l.hide||O.length||l.download?u(n.ownerDocument,"div",{className:"lti-bar"},w(n.tHead||n.createTHead(),"lti-head",C,0)):null,R=a(_).map(t=>t.textContent);!1!==l.sort&&function(t,e,n,s){const o=t.ownerDocument,l={},r=()=>{for(const t in l)l[t].th.removeAttribute("aria-sort"),l[t].ind.textContent="";const t=n.sort||[];t.forEach(({col:e,dir:n},s)=>{const o=l[e];o&&(o.th.setAttribute("aria-sort","desc"===n?"descending":"ascending"),o.ind.textContent=("desc"===n?"▼":"▲")+(t.length>1?String(s+1).replace(/\d/g,t=>"₀₁₂₃₄₅₆₇₈₉"[t]):""))})};i(t,"th").forEach((t,i)=>{const c=e[i];if(null==c)return;t.classList.add("lti-sortable");const a=u(o,"span",{className:"lti-label"},t);for(;t.firstChild!==a;)a.append(t.firstChild);l[c]={th:t,ind:u(o,"span",{className:"lti-sort"},a)},a.onclick=t=>{!function(t,e,n){const s=(t.sort||[]).slice(),o=s.findIndex(t=>t.col===e),l=o<0?"asc":"asc"===s[o].dir?"desc":null;if(!n)return void(t.sort=l?[{col:e,dir:l}]:[]);o<0?s.push({col:e,dir:l}):l?s[o]={col:e,dir:l}:s.splice(o,1);t.sort=s}(n,c,t.shiftKey),r(),s()}}),r()}(_,N,L,F),z&&(z.default||z.cols&&Object.keys(z.cols).some(t=>p.includes(t)))&&function(t,e,n,s,o,l,r=0){const i=t.ownerDocument,c=u(i,"tr",{className:"lti-filters"}),a=n.default,d=n.cols||{};for(let t=0;t<r;t++)u(i,"td",{},c);e.forEach(t=>{const e=u(i,"td",{},c),n=t in d?d[t]:a;if(n)if(!0===n){b(e.appendChild(g(i,`Filter ${t}`)),e=>{e?o.filters[t]=e:delete o.filters[t],l()})}else e.appendChild(D(i,t,n,s,o,l,null))}),t.parentNode.appendChild(c)}(_,p,z,s.data,L,F,k);const T=l.resize?function(t,e,n,s=0){const o=[...i(e,"th")],l=function(t,e,n=0){let s=r(t,"colgroup");if(!s){const o=t.ownerDocument;s=u(o,"colgroup");for(let t=0;t<n+e;t++)u(o,"col",{},s);t.caption?t.caption.after(s):t.prepend(s)}return[...s.children]}(t,n,s),c=t=>t.getBoundingClientRect().width,a=()=>{if(t.classList.contains("lti-fixed"))return;const e=o.map(c);t.style.width=c(t)+"px",l.forEach((t,n)=>t.style.width=e[n]+"px"),t.classList.add("lti-fixed")},d=e=>{const n=l.map(t=>t.style.width),s=t.style.width;l.forEach(t=>t.style.width=""),t.style.width="",t.classList.remove("lti-fixed");const r=c(o[e]);return l.forEach((t,e)=>t.style.width=n[e]),t.style.width=s,t.classList.add("lti-fixed"),r},p=(e,n,s=24)=>{const o=parseFloat(l[e].style.width);l[e].style.width=Math.max(n,s)+"px",t.style.width=parseFloat(t.style.width)+parseFloat(l[e].style.width)-o+"px"};return{ths:o,cs:l,dataCs:l.slice(s),freeze:a,natural:d,setWidth:p}}(n,_,p.length,k):null;l.resize&&function(t,e){const n=t.ownerDocument,{ths:s,cs:o,freeze:l,natural:r,setWidth:i}=e;s.forEach((e,s)=>{const c=u(n,"div",{className:"lti-resizer"},e);c.ondblclick=t=>{t.stopPropagation(),l(),i(s,r(s))},c.onpointerdown=e=>{e.stopPropagation(),l();const n=e.clientX,r=parseFloat(o[s].style.width);t.classList.add("lti-resizing"),d(e,t=>i(s,r+t.clientX-n),()=>t.classList.remove("lti-resizing"))}})}(n,T);const B=l.hide||l.download?u(n.ownerDocument,"div",{className:"lti-icons"},j):null;l.hide&&function(t,e,n,s,o,l,r,i){const d=e.ownerDocument,p=l&&l.hidden||[],f=new Set,h=(t,e,n)=>{const s=a(t)[e];s&&1===s.colSpan&&(s.hidden=n)};i.push(t=>f.forEach(e=>{for(const n of t.rows)h(n,e,!0)}));const m=[...n.children].length-a(n).length,g=[...e.rows].find(t=>t.classList.contains("lt-spanner-row")),w=g?a(g).slice(m):[];let b=0;w.forEach(t=>{t._span=t.colSpan,t._start=b,b+=t._span});const y=()=>{for(const t of w){let e=0;for(let n=t._start;n<t._start+t._span;n++)f.has(n)&&e++;t.colSpan=Math.max(1,t._span-e),t.hidden=e>=t._span}},v=t=>{const n=f.has(t);r?.dataCs[t]&&(r.dataCs[t].hidden=n);for(const s of e.rows)s.classList.contains("lt-spanner-row")||h(s,t,n);y()},x=u(d,"span",{className:"lti-cols"},t),S=u(d,"button",{type:"button",title:"Columns","aria-label":"Show or hide columns","aria-expanded":"false"},x),k=u(d,"div",{className:"lti-menu",hidden:!0},x),N=(t,e)=>{const n=s[t];if(null==n)return;const l=u(d,"label",e?{className:"lti-sub"}:{},k),r=u(d,"input",{type:"checkbox",checked:!0},l);l.append(o[t]??n),p.includes(n)&&(r.checked=!1,f.add(t)),r.onchange=()=>{r.checked?f.delete(t):f.add(t),v(t)}};if(w.length)for(const t of w){const e=t.classList.contains("lt-spanner");e&&u(d,"div",{className:"lti-group",textContent:t.textContent},k);for(let n=t._start;n<t._start+t._span;n++)N(n,e)}else s.forEach((t,e)=>N(e));s.forEach((t,e)=>v(e));const C=t=>{k.hidden=!t,S.setAttribute("aria-expanded",String(t))};S.onclick=t=>{t.stopPropagation(),C(k.hidden)},c(d,"click",t=>{x.contains(t.target)||C(!1)}),c(d,"keydown",t=>{"Escape"===t.key&&C(!1)})}(B,n,_,p,R,l.hide,T,A),l.download&&function(t,e,n,s,o,l){const r=e.ownerDocument,i=("string"==typeof l&&l?l:"table").replace(/(\.csv)?$/i,".csv"),c=s.map((t,e)=>e).filter(t=>null!=s[t]);u(r,"button",{type:"button",className:"lti-download",title:"Download CSV","aria-label":"Download table as CSV"},t).onclick=()=>{const t=n._display||{},l=[c.map(t=>y(o[t]??s[t])).join(",")];for(const n of e._lt.view())l.push(c.map(e=>y((t[s[e]]||[])[n-1])).join(","));const a=URL.createObjectURL(new Blob([l.join("\n")],{type:"text/csv"}));u(r,"a",{href:a,download:i}).click(),URL.revokeObjectURL(a)}}(B,n,s,p,R,l.download);const H=j?u(n.ownerDocument,"div",{className:"lti-chips"},j):null;if(O.length&&function(t,e,n,s,o,l){const r=t.ownerDocument;for(const i of e)t.appendChild(D(r,i,n[i],s,o,l,n[i].label||i))}(H,O,z.cols,s.data,L,F),!1!==l.search&&function(t,e,n,s){const o=t.appendChild(g(e.ownerDocument,"Search"));b(o,t=>{n.term=t,s()})}(j,n,L,F),n._lt.bar=j,n._lt.chips=H,l.detail){const o=function(n,s,o,l,r,i){const c=n.ownerDocument,d={};l.expanded=new Set;const p=(t,e)=>{const n={};for(const s in t)n[s]=t[s]?.[e-1]??null;return n},f=e=>{if(e in d)return d[e];const n=p(s._display||{},e);let o=null;if(Array.isArray(r)){const t={};for(const e of r)t[e]=[n[e]??null];o={data:t}}else{const l="function"==typeof r?r:t[r];"function"==typeof l&&(o=l(p(s.data||{},e),e,n))}return d[e]=o},h=t=>{l.expanded.has(t)?l.expanded.delete(t):l.expanded.add(t),i()},m=(t,n)=>[...t.rows].forEach((t,s)=>{const r=n[s];if("number"!=typeof r)return;const i=a(t)[0],d=l.expanded.has(r);if(!i)return;const p=u(c,"button",{type:"button",className:"lti-expand",textContent:d?"▾":"▸","aria-expanded":String(d),"aria-label":"Toggle detail"});p.onclick=()=>h(r),i.prepend(p);const m=d&&f(r);if(m){const n=u(c,"tr",{className:"lti-detail"});t.after(n);const s=u(c,"td",{colSpan:o},n);e.render(u(c,"div",{},s),m)}});return m.reset=t=>{if(null==t)for(const t in d)delete d[t];else delete d[t];i()},m}(n,s,C,L,l.detail,()=>F(!1));A.push(o),n._lt.resetDetail=o.reset}if(l.pager){const t=Array.isArray(l.pager)?l.pager:[10,25,50,100];$=function(t,e,n,s,o,l){const r=t.ownerDocument;let i=t.tFoot;i||((i=t.createTFoot()).className="lt-footer");const c=u(r,"div",{className:"lti-pager"},w(i,"lti-pager-row",e,-1)),a=u(r,"span",{className:"lti-pos"});o.pageSize=n[0];const d=[()=>0,t=>t-1,t=>t+1,()=>1e9],p=["«","‹","›","»"].map((t,e)=>{const n=u(r,"button",{type:"button",textContent:t,"aria-label":["First","Previous","Next","Last"][e]},c);return n.onclick=()=>{o.page=d[e](o.page),l()},n});if(c.appendChild(a),n.length>1&&s>Math.min(...n.filter(t=>t>0))){const t=u(r,"select",{"aria-label":"Rows per page"},c);n.forEach(e=>u(r,"option",{value:e,textContent:e||"∞"},t)),t.onchange=()=>{o.pageSize=+t.value,o.page=0,l()}}return t=>{const e=o.pageSize||t||1,n=Math.max(0,Math.ceil(t/e)-1),l=t<s?` (${s})`:"";a.textContent=(t?`${o.page*e+1}–${Math.min(t,(o.page+1)*e)} / ${t}`:"0 / 0")+l,p.forEach((t,e)=>t.disabled=e<2?!o.page:o.page===n)}}(n,C,t,m,L,()=>F(!1)),F()}else(L.sort.length||l.detail)&&F()}function g(t,e){return u(t,"input",{type:"search",className:"lti-search","aria-label":e})}function w(t,e,n,s){const o=t.insertRow(s);return o.className=e,u(t.ownerDocument,"td",{colSpan:n},o)}function b(t,e){let n;const s=()=>e(t.value);t.oninput=()=>{clearTimeout(n),n=setTimeout(s,150)},t.onchange=()=>{clearTimeout(n),s()}}function y(t){const e=null==t?"":String(t);return/[",\n]/.test(e)?'"'+e.replace(/"/g,'""')+'"':e}const v=t=>""===t?"":`x == ${JSON.stringify(String(t))}`,x=t=>{const e=/^\s*x\s*==\s*(['"])([\s\S]*)\1\s*$/.exec(t||"");return e?e[2]:null},S=(t,e,n,s)=>t<=n&&e>=s?"":`x >= ${t} && x <= ${e}`,k=t=>{const e=/^\s*x\s*>=\s*(-?[\d.]+)\s*&&\s*x\s*<=\s*(-?[\d.]+)\s*$/.exec(t||"");return e?[parseFloat(e[1]),parseFloat(e[2])]:null},N=(t,e)=>t.length===e.length?"":`${JSON.stringify(t.map(String))}.includes(x)`,C=t=>{const e=/^\s*(\[[\s\S]*\])\.includes\(\s*x\s*\)\s*$/.exec(t||"");if(!e)return null;try{return JSON.parse(e[1])}catch(t){return null}};function E(t,e,n){const s=e.map(e=>{const n=u(t,"label",{className:"lti-check"}),s=u(t,"input",{type:"checkbox",checked:!0,value:e.value},n);return n.append(e.label),{o:e,box:s,label:n}}),o=()=>n(s.filter(t=>t.box.checked).map(t=>t.o.value));return s.forEach(t=>t.box.onchange=o),{el:s.map(t=>t.label),set:t=>s.forEach(e=>e.box.checked=t.includes(e.o.value))}}function _(t,e,n){const s=u(t,"span",{className:"lti-chip"});u(t,"span",{className:"lti-chip-name",textContent:e},s);const o=u(t,"span",{className:"lti-chip-cur"},s);return n&&s.appendChild(n),{el:s,mark:t=>s.classList.toggle("lti-on",!!t),summarize:t=>o.textContent=t}}function L(t,e,n){const s=e.min,o=e.max,l=o-s||1,r=e.step||l/100,i=u(t,"div",{className:"lti-slider"}),c=u(t,"div",{className:"lti-slider-fill"},i),a=e=>u(t,"button",{type:"button",className:"lti-thumb",role:"slider","aria-label":e,"aria-valuemin":s,"aria-valuemax":o},i),p=[a("Minimum"),a("Maximum")];let f=[s,o];const h=t=>(t-s)/l*100,m=()=>{p.forEach((t,e)=>{t.style.left=h(f[e])+"%",t.setAttribute("aria-valuenow",f[e])}),c.style.left=h(f[0])+"%",c.style.right=100-h(f[1])+"%"},g=(t,e)=>{f[t]=(t=>{const e=Math.round((t-s)/r)*r+s;return Math.min(o,Math.max(s,Math.round(1e6*e)/1e6))})(e),f[0]>f[1]&&(f=[Math.min(...f),Math.max(...f)]),m(),n(f.slice())};return p.forEach((t,e)=>{t.onpointerdown=n=>{t.focus(),d(n,t=>g(e,(t=>{const e=i.getBoundingClientRect();return s+l*Math.min(1,Math.max(0,(t-e.left)/e.width))})(t.clientX)))},t.onkeydown=t=>{const n={ArrowLeft:-1,ArrowDown:-1,ArrowRight:1,ArrowUp:1}[t.key];if(n)g(e,f[e]+n*r);else if("Home"===t.key)g(e,s);else{if("End"!==t.key)return;g(e,o)}t.preventDefault()}}),m(),{el:i,set:t=>{f=t.slice(),m()}}}function M(t,e,n,s){const o=u(t,"span",{className:"lti-pop"}),l=u(t,"button",{type:"button",className:"lti-funnel",title:e,"aria-label":e,"aria-expanded":"false"},o),r=u(t,"div",{className:"lti-pop-panel",hidden:!0},o);n(r);const i=e=>{const n=!r.hidden;r.hidden=!e,l.setAttribute("aria-expanded",String(e)),e?(()=>{r.style.left=r.style.right="";const e=(t.defaultView||window).innerWidth,n=o.closest(".lt-wrap"),s=Math.min(e,n?n.getBoundingClientRect().right:e);r.getBoundingClientRect().right>s-4&&(r.style.left="auto",r.style.right="0")})():n&&s&&s()};return l.onclick=t=>{t.stopPropagation(),i(r.hidden)},c(t,"click",t=>{o.contains(t.target)||i(!1)}),c(t,"keydown",t=>{"Escape"===t.key&&i(!1)}),o}const $={select:{describe:(t,e)=>{const n=x(t);if(null==n)return t?"⋯":"";const s=e.choices.find(t=>t.value===n);return s?s.label:n},init:t=>v(t.selected??""),build:(t,e,n)=>{const s=function(t,e,n){const s=u(t,"select",{className:"lti-filter-pick"});return e.forEach(e=>u(t,"option",{value:e.value,textContent:e.label},s)),s.onchange=()=>n(s.value),{el:s,set:t=>s.value=t}}(t,e.choices,t=>n(v(t),o)),o={el:s.el,reflect:t=>{const e=x(t);s.set(null==e?"":e)}};return o}},range:{describe:t=>{const e=k(t);return e?`${e[0]} – ${e[1]}`:t?"⋯":""},init:t=>t.value?S(t.value[0],t.value[1],t.min,t.max):"",build:(t,e,n)=>{const s=u(t,"span",{className:"lti-slider-out"}),o=t=>s.textContent=`${t[0]} – ${t[1]}`,l=L(t,e,t=>{o(t),n(S(t[0],t[1],e.min,e.max),r)}),r={el:[l.el,s],reflect:t=>{const n=k(t)||[e.min,e.max];l.set(n),o(n)}};return r}},checklist:{describe:(t,e)=>{const n=C(t);if(null==n)return t?"⋯":"";const s=e.choices.filter(t=>n.includes(t.value)).map(t=>t.label);return s.length<=2?s.join(", "):`${s.length} selected`},init:t=>N([].concat(t.selected??t.choices.map(t=>t.value)),t.choices),build:(t,e,n)=>{const s=e.choices.map(t=>t.value),o=E(t,e.choices,t=>n(N(t,e.choices),l)),l={el:o.el,reflect:t=>{const e=C(t);o.set(null==e?s:e)}};return l}}};function D(t,e,n,s,o,l,r){const i=function(t,e){if("select"===t.type||"checklist"===t.type){let n=t.choices;if(!n){const t=new Set,s=[];for(const n of e)null==n||t.has(n)||(t.add(n),s.push(n));s.sort((t,e)=>"number"==typeof t&&"number"==typeof e?t-e:String(t).localeCompare(String(e))),n=s.map(t=>({value:String(t),label:String(t)}))}return"select"!==t.type||n.some(t=>""===t.value)||(n=[{value:"",label:""},...n]),{...t,choices:n}}let{min:n,max:s}=t;if(null==n||null==s){let t=1/0,o=-1/0;for(const n of e){const e=Number(n);isFinite(e)&&(e<t&&(t=e),e>o&&(o=e))}null==n&&(n=isFinite(t)?t:0),null==s&&(s=isFinite(o)?o:1)}return{...t,min:n,max:s}}(n,s[e]||[]),c=$[i.type],a=[];let d=()=>{},p=()=>{};const f=(t,n)=>{t?o.filters[e]=t:delete o.filters[e],l();const s=o.filters[e]||"";a.forEach(t=>t!==n&&t.reflect(s)),d(s)},h=M(t,`Filter ${i.label||e}`,n=>{const s=u(t,"input",{type:"search",className:"lti-search","aria-label":`${i.label||e} filter expression`},n),o={reflect:e=>{t.activeElement!==s&&(s.value=e)}};a.push(o),b(s,t=>f(t.trim(),o));const l=c.build(t,i,f);a.push(l),n.append(...[].concat(l.el)),f(c.init(i),null)},()=>p());let m=h;if(null!=r){const n=_(t,r,h);m=n.el,d=n.mark,p=()=>n.summarize(c.describe(o.filters[e]||"",i))}else d=t=>m.classList.toggle("lti-on",!!t);return d(o.filters[e]||""),p(),m}const A=(t,e)=>{e?.interactive&&!t.dataset.ltiOn&&(t.dataset.ltiOn="1",m(t,e))};e.plugins.interactive={matcher:p,computeView:f,pageSlice:h,enhance:m},e.ui=Object.assign(e.ui||{},{popover:M,checklist:E,chip:_}),e.onMount.push(A),"undefined"!=typeof document&&i(document,".lt-table").forEach(t=>A(t,t._ltSpec))})("undefined"!=typeof window?window:globalThis);
|
|
2
2
|
//# sourceMappingURL=lt-interactive.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["root","LT","onMount","plugins","interactive","coll","numCol","col","find","v","parseKey","k","slice","dir","cmpVals","x","y","num","Intl","Collator","compare","String","$","el","sel","querySelector","$$","querySelectorAll","on","t","type","fn","opts","addEventListener","dataCells","tr","children","filter","c","classList","contains","elem","doc","tag","props","parent","e","createElement","includes","setAttribute","appendChild","drag","onMove","onEnd","preventDefault","target","ownerDocument","document","move","ev","removeEventListener","once","matcher","term","trim","test","Function","neg","raw","Number","isFinite","cells","needle","toLowerCase","some","disp","computeView","spec","state","cols","_cols","data","nRow","length","cell","r","tests","filters","pred","push","sPred","map","fns","Object","values","predicates","all","keys","row","fromEntries","o","every","f","keep","makeCmp","sortKeys","Boolean","a","b","xn","yn","indent","_indent","reduce","rows","cmp","out","sort","roots","stack","node","kids","lv","pop","prune","ns","n","sortNodes","forEach","flat","walk","Array","from","_","i","gcols","_rowspan","leaf","leafCmp","partition","depth","blocks","Map","key","get","set","order","d","an","bn","flatMap","groups","_groups","grouped","Set","g","add","rest","has","pageSlice","view","pageSize","page","last","Math","max","ceil","min","enhance","groupOf","seen","nGroup","allCols","nAll","ci","textContent","captureDisplay","hrow","isArray","sync","postSwap","refresh","stale","vr","prev","label","withGroups","tmp","innerHTML","buildHtml","_viewRows","body","content","replaceWith","_lt","id","flt","barCols","headBar","search","hide","download","className","fullRow","tHead","createTHead","labels","th","marks","paint","removeAttribute","ind","m","replace","lab","firstChild","append","onclick","additive","findIndex","splice","cycle","shiftKey","addSort","default","def","explicit","onType","searchInput","typedFilter","parentNode","addFilter","layout","resize","nCol","ths","cs","caption","after","prepend","colGroup","wOf","getBoundingClientRect","width","freeze","w","style","natural","tw","remove","j","setWidth","old","parseFloat","dataCs","fixedLayout","grip","ondblclick","stopPropagation","onpointerdown","x0","clientX","w0","addResize","icons","opt","start","hidden","setCell","colSpan","nGrp","spanRow","spanCells","col0","_span","_start","applySpan","gone","apply","wrap","btn","title","menu","box","checked","onchange","delete","open","addColumnToggle","name","file","_display","lines","csvField","join","url","URL","createObjectURL","Blob","href","click","revokeObjectURL","addDownload","cfg","addControlFilters","input","addSearch","detail","detailOpt","rerender","cache","expanded","pick","src","build","toggle","td0","child","render","addDetail","pager","sizes","repage","foot","tFoot","createTFoot","bar","pos","steps","p","btns","glyph","value","total","disabled","addPaginate","sect","cls","insertRow","timer","go","oninput","clearTimeout","setTimeout","s","selExpr","JSON","stringify","selParse","exec","rngExpr","lo","hi","rngParse","makeSlider","onInput","span","step","track","fill","mk","role","thumbs","val","pct","left","right","setOne","round","snap","focus","at","onkeydown","ArrowLeft","ArrowDown","ArrowRight","ArrowUp","popover","onClose","panel","was","vw","defaultView","window","innerWidth","closest","limit","place","KINDS","select","describe","choices","init","selected","setTerm","options","makeSelect","ed","reflect","range","show","chipLabel","column","vals","localeCompare","Infinity","resolveSpec","kind","editors","mark","expr","cur","boxEd","activeElement","wEd","concat","showSummary","summary","dataset","ltiOn","_ltSpec","globalThis"],"sources":["lt-interactive.js"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["root","LT","onMount","plugins","interactive","coll","numCol","col","find","v","parseKey","k","slice","dir","cmpVals","x","y","num","Intl","Collator","compare","String","$","el","sel","querySelector","$$","querySelectorAll","on","t","type","fn","opts","addEventListener","dataCells","tr","children","filter","c","classList","contains","elem","doc","tag","props","parent","e","createElement","includes","setAttribute","appendChild","drag","onMove","onEnd","preventDefault","target","ownerDocument","document","move","ev","removeEventListener","once","matcher","term","trim","test","Function","neg","raw","Number","isFinite","cells","needle","toLowerCase","some","disp","computeView","spec","state","cols","_cols","data","nRow","length","cell","r","tests","filters","pred","push","sPred","map","fns","Object","values","predicates","all","keys","row","fromEntries","o","every","f","keep","makeCmp","sortKeys","Boolean","a","b","xn","yn","indent","_indent","reduce","rows","cmp","out","sort","roots","stack","node","kids","lv","pop","prune","ns","n","sortNodes","forEach","flat","walk","Array","from","_","i","gcols","_rowspan","leaf","leafCmp","partition","depth","blocks","Map","key","get","set","order","d","an","bn","flatMap","groups","_groups","grouped","Set","g","add","rest","has","pageSlice","view","pageSize","page","last","Math","max","ceil","min","enhance","groupOf","seen","nGroup","allCols","nAll","ci","textContent","captureDisplay","hrow","isArray","sync","postSwap","refresh","stale","vr","prev","label","withGroups","tmp","innerHTML","buildHtml","_viewRows","body","content","replaceWith","_lt","id","flt","barCols","headBar","search","hide","download","className","fullRow","tHead","createTHead","labels","th","marks","paint","removeAttribute","ind","m","replace","lab","firstChild","append","onclick","additive","findIndex","splice","cycle","shiftKey","addSort","default","def","explicit","onType","searchInput","typedFilter","parentNode","addFilter","layout","resize","nCol","ths","cs","caption","after","prepend","colGroup","wOf","getBoundingClientRect","width","freeze","w","style","natural","tw","remove","j","setWidth","old","parseFloat","dataCs","fixedLayout","grip","ondblclick","stopPropagation","onpointerdown","x0","clientX","w0","addResize","icons","opt","start","hidden","setCell","colSpan","nGrp","spanRow","spanCells","col0","_span","_start","applySpan","gone","apply","wrap","btn","title","menu","addBox","sub","box","checked","onchange","delete","span","open","addColumnToggle","name","file","_display","lines","csvField","join","url","URL","createObjectURL","Blob","href","click","revokeObjectURL","addDownload","chips","cfg","addControlFilters","input","addSearch","bar","detail","detailOpt","rerender","cache","expanded","pick","src","build","toggle","decorate","td0","child","render","reset","addDetail","resetDetail","pager","sizes","repage","foot","tFoot","createTFoot","pos","steps","p","btns","glyph","value","total","disabled","addPaginate","sect","cls","insertRow","timer","go","oninput","clearTimeout","setTimeout","s","selExpr","JSON","stringify","selParse","exec","rngExpr","lo","hi","rngParse","setExpr","setParse","parse","makeChecklist","options","onInput","boxes","emit","vals","makeChip","control","cur","mark","summarize","text","makeSlider","step","track","fill","mk","role","thumbs","val","pct","left","right","setOne","round","snap","focus","at","onkeydown","ArrowLeft","ArrowDown","ArrowRight","ArrowUp","popover","onClose","panel","was","vw","defaultView","window","innerWidth","closest","limit","place","KINDS","select","describe","choices","init","selected","setTerm","makeSelect","ed","reflect","range","show","checklist","labs","concat","chipLabel","column","localeCompare","Infinity","resolveSpec","kind","editors","showSummary","expr","boxEd","activeElement","wEd","chip","dataset","ltiOn","ui","assign","_ltSpec","globalThis"],"sources":["lt-interactive.js"],"mappings":"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","ignoreList":[]}
|