@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.
@@ -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
- &.lti-on .lti-chip-name {
161
- font-weight: 600;
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,6EAQA,sCAOF,8BAEE,uVAOA,6GAQE,0DASJ,4TAUA,4DAIE,wCAGA,8DAKF,6BAEE,oQAUA,+BAGA,gGAQE,uBACI,wFAUR,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 /* 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 }\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 &.lti-on .lti-chip-name {\n 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 }\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":[]}
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":[]}
@@ -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
- if (barCols.length) addControlFilters(
408
- elem(el.ownerDocument, "div", { className: "lti-chips" }, headBar),
409
- barCols, flt.cols, spec.data, state, refresh);
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
- postSwap.push(addDetail(el, spec, nAll, state, opts.detail, () => refresh(false)));
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
- return (body, rows) => [...body.rows].forEach((tr, i) => {
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
- cols.forEach((c, i) => {
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?, value?,
804
- // selected?}; it renders as a funnel + popover, under its own header when the
805
- // column is visible or as a labelled head-bar chip when it is hidden (the
806
- // column still travels in spec.data, which is what computeView filters on). The
807
- // popover holds an expression box AND a widget (a value dropdown or a range
808
- // slider); both edit the one filter term for that column (state.filters[col])
809
- // and stay in sync, so the widget is a friendly face on the same expression 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 is the "no filter" choice, so a select shows every row
841
- // until the reader picks a value (and can always return to it)
842
- if (!choices.some(o => o.value === "")) choices = [{ value: "", label: "" }, ...choices];
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 = () => {}; // paints the active state once `root` exists (below)
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 (label + value summary); a
1024
- // visible column shows the bare funnel under its own header
1025
- let root = wrap, summary;
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
- root = elem(doc, "span", { className: "lti-chip" });
1028
- elem(doc, "span", { className: "lti-chip-name", textContent: chipLabel }, root);
1029
- summary = elem(doc, "span", { className: "lti-chip-cur" }, root);
1030
- root.appendChild(wrap);
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.
@@ -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":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xiee/utils",
3
- "version": "1.14.95",
3
+ "version": "1.14.97",
4
4
  "description": "Miscellaneous tools and utilities to manipulate HTML pages",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"