@design.estate/dees-catalog 3.65.0 → 3.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -135,6 +135,12 @@ let DeesTable = (() => {
135
135
  let _showSelectionCheckbox_decorators;
136
136
  let _showSelectionCheckbox_initializers = [];
137
137
  let _showSelectionCheckbox_extraInitializers = [];
138
+ let _virtualized_decorators;
139
+ let _virtualized_initializers = [];
140
+ let _virtualized_extraInitializers = [];
141
+ let _virtualOverscan_decorators;
142
+ let _virtualOverscan_initializers = [];
143
+ let _virtualOverscan_extraInitializers = [];
138
144
  let _fixedHeight_decorators;
139
145
  let _fixedHeight_initializers = [];
140
146
  let _fixedHeight_extraInitializers = [];
@@ -153,6 +159,12 @@ let DeesTable = (() => {
153
159
  let ___editingCell_decorators;
154
160
  let ___editingCell_initializers = [];
155
161
  let ___editingCell_extraInitializers = [];
162
+ let ___floatingActive_decorators;
163
+ let ___floatingActive_initializers = [];
164
+ let ___floatingActive_extraInitializers = [];
165
+ let ___virtualRange_decorators;
166
+ let ___virtualRange_initializers = [];
167
+ let ___virtualRange_extraInitializers = [];
156
168
  var DeesTable = class extends _classSuper {
157
169
  static { _classThis = this; }
158
170
  static {
@@ -220,12 +232,16 @@ let DeesTable = (() => {
220
232
  _columnFilters_decorators = [property({ attribute: false })];
221
233
  _showColumnFilters_decorators = [property({ type: Boolean, attribute: 'show-column-filters' })];
222
234
  _showSelectionCheckbox_decorators = [property({ type: Boolean, reflect: true, attribute: 'show-selection-checkbox' })];
235
+ _virtualized_decorators = [property({ type: Boolean, reflect: true, attribute: 'virtualized' })];
236
+ _virtualOverscan_decorators = [property({ type: Number, attribute: 'virtual-overscan' })];
223
237
  _fixedHeight_decorators = [property({ type: Boolean, reflect: true, attribute: 'fixed-height' })];
224
238
  _searchMode_decorators = [property({ type: String })];
225
239
  _selectionMode_decorators = [property({ type: String })];
226
240
  _selectedIds_decorators = [property({ attribute: false })];
227
241
  ___focusedCell_decorators = [state()];
228
242
  ___editingCell_decorators = [state()];
243
+ ___floatingActive_decorators = [state()];
244
+ ___virtualRange_decorators = [state()];
229
245
  __esDecorate(this, null, _heading1_decorators, { kind: "accessor", name: "heading1", static: false, private: false, access: { has: obj => "heading1" in obj, get: obj => obj.heading1, set: (obj, value) => { obj.heading1 = value; } }, metadata: _metadata }, _heading1_initializers, _heading1_extraInitializers);
230
246
  __esDecorate(this, null, _heading2_decorators, { kind: "accessor", name: "heading2", static: false, private: false, access: { has: obj => "heading2" in obj, get: obj => obj.heading2, set: (obj, value) => { obj.heading2 = value; } }, metadata: _metadata }, _heading2_initializers, _heading2_extraInitializers);
231
247
  __esDecorate(this, null, _data_decorators, { kind: "accessor", name: "data", static: false, private: false, access: { has: obj => "data" in obj, get: obj => obj.data, set: (obj, value) => { obj.data = value; } }, metadata: _metadata }, _data_initializers, _data_extraInitializers);
@@ -250,12 +266,16 @@ let DeesTable = (() => {
250
266
  __esDecorate(this, null, _columnFilters_decorators, { kind: "accessor", name: "columnFilters", static: false, private: false, access: { has: obj => "columnFilters" in obj, get: obj => obj.columnFilters, set: (obj, value) => { obj.columnFilters = value; } }, metadata: _metadata }, _columnFilters_initializers, _columnFilters_extraInitializers);
251
267
  __esDecorate(this, null, _showColumnFilters_decorators, { kind: "accessor", name: "showColumnFilters", static: false, private: false, access: { has: obj => "showColumnFilters" in obj, get: obj => obj.showColumnFilters, set: (obj, value) => { obj.showColumnFilters = value; } }, metadata: _metadata }, _showColumnFilters_initializers, _showColumnFilters_extraInitializers);
252
268
  __esDecorate(this, null, _showSelectionCheckbox_decorators, { kind: "accessor", name: "showSelectionCheckbox", static: false, private: false, access: { has: obj => "showSelectionCheckbox" in obj, get: obj => obj.showSelectionCheckbox, set: (obj, value) => { obj.showSelectionCheckbox = value; } }, metadata: _metadata }, _showSelectionCheckbox_initializers, _showSelectionCheckbox_extraInitializers);
269
+ __esDecorate(this, null, _virtualized_decorators, { kind: "accessor", name: "virtualized", static: false, private: false, access: { has: obj => "virtualized" in obj, get: obj => obj.virtualized, set: (obj, value) => { obj.virtualized = value; } }, metadata: _metadata }, _virtualized_initializers, _virtualized_extraInitializers);
270
+ __esDecorate(this, null, _virtualOverscan_decorators, { kind: "accessor", name: "virtualOverscan", static: false, private: false, access: { has: obj => "virtualOverscan" in obj, get: obj => obj.virtualOverscan, set: (obj, value) => { obj.virtualOverscan = value; } }, metadata: _metadata }, _virtualOverscan_initializers, _virtualOverscan_extraInitializers);
253
271
  __esDecorate(this, null, _fixedHeight_decorators, { kind: "accessor", name: "fixedHeight", static: false, private: false, access: { has: obj => "fixedHeight" in obj, get: obj => obj.fixedHeight, set: (obj, value) => { obj.fixedHeight = value; } }, metadata: _metadata }, _fixedHeight_initializers, _fixedHeight_extraInitializers);
254
272
  __esDecorate(this, null, _searchMode_decorators, { kind: "accessor", name: "searchMode", static: false, private: false, access: { has: obj => "searchMode" in obj, get: obj => obj.searchMode, set: (obj, value) => { obj.searchMode = value; } }, metadata: _metadata }, _searchMode_initializers, _searchMode_extraInitializers);
255
273
  __esDecorate(this, null, _selectionMode_decorators, { kind: "accessor", name: "selectionMode", static: false, private: false, access: { has: obj => "selectionMode" in obj, get: obj => obj.selectionMode, set: (obj, value) => { obj.selectionMode = value; } }, metadata: _metadata }, _selectionMode_initializers, _selectionMode_extraInitializers);
256
274
  __esDecorate(this, null, _selectedIds_decorators, { kind: "accessor", name: "selectedIds", static: false, private: false, access: { has: obj => "selectedIds" in obj, get: obj => obj.selectedIds, set: (obj, value) => { obj.selectedIds = value; } }, metadata: _metadata }, _selectedIds_initializers, _selectedIds_extraInitializers);
257
275
  __esDecorate(this, null, ___focusedCell_decorators, { kind: "accessor", name: "__focusedCell", static: false, private: false, access: { has: obj => "__focusedCell" in obj, get: obj => obj.__focusedCell, set: (obj, value) => { obj.__focusedCell = value; } }, metadata: _metadata }, ___focusedCell_initializers, ___focusedCell_extraInitializers);
258
276
  __esDecorate(this, null, ___editingCell_decorators, { kind: "accessor", name: "__editingCell", static: false, private: false, access: { has: obj => "__editingCell" in obj, get: obj => obj.__editingCell, set: (obj, value) => { obj.__editingCell = value; } }, metadata: _metadata }, ___editingCell_initializers, ___editingCell_extraInitializers);
277
+ __esDecorate(this, null, ___floatingActive_decorators, { kind: "accessor", name: "__floatingActive", static: false, private: false, access: { has: obj => "__floatingActive" in obj, get: obj => obj.__floatingActive, set: (obj, value) => { obj.__floatingActive = value; } }, metadata: _metadata }, ___floatingActive_initializers, ___floatingActive_extraInitializers);
278
+ __esDecorate(this, null, ___virtualRange_decorators, { kind: "accessor", name: "__virtualRange", static: false, private: false, access: { has: obj => "__virtualRange" in obj, get: obj => obj.__virtualRange, set: (obj, value) => { obj.__virtualRange = value; } }, metadata: _metadata }, ___virtualRange_initializers, ___virtualRange_extraInitializers);
259
279
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
260
280
  DeesTable = _classThis = _classDescriptor.value;
261
281
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -368,7 +388,22 @@ let DeesTable = (() => {
368
388
  */
369
389
  get showSelectionCheckbox() { return this.#showSelectionCheckbox_accessor_storage; }
370
390
  set showSelectionCheckbox(value) { this.#showSelectionCheckbox_accessor_storage = value; }
371
- #fixedHeight_accessor_storage = (__runInitializers(this, _showSelectionCheckbox_extraInitializers), __runInitializers(this, _fixedHeight_initializers, false));
391
+ #virtualized_accessor_storage = (__runInitializers(this, _showSelectionCheckbox_extraInitializers), __runInitializers(this, _virtualized_initializers, false));
392
+ /**
393
+ * Enables row virtualization. Only rows visible in the nearest scroll
394
+ * ancestor (or the viewport) plus a small overscan are rendered. Top and
395
+ * bottom spacer rows preserve the scrollbar geometry.
396
+ *
397
+ * Assumes uniform row height (measured once from the first rendered row).
398
+ * Recommended for tables with > a few hundred rows.
399
+ */
400
+ get virtualized() { return this.#virtualized_accessor_storage; }
401
+ set virtualized(value) { this.#virtualized_accessor_storage = value; }
402
+ #virtualOverscan_accessor_storage = (__runInitializers(this, _virtualized_extraInitializers), __runInitializers(this, _virtualOverscan_initializers, 8));
403
+ /** Number of extra rows rendered above and below the visible window. */
404
+ get virtualOverscan() { return this.#virtualOverscan_accessor_storage; }
405
+ set virtualOverscan(value) { this.#virtualOverscan_accessor_storage = value; }
406
+ #fixedHeight_accessor_storage = (__runInitializers(this, _virtualOverscan_extraInitializers), __runInitializers(this, _fixedHeight_initializers, false));
372
407
  /**
373
408
  * When set, the table renders inside a fixed-height scroll container
374
409
  * (`max-height: var(--table-max-height, 360px)`) and the header sticks
@@ -415,6 +450,31 @@ let DeesTable = (() => {
415
450
  */
416
451
  get __editingCell() { return this.#__editingCell_accessor_storage; }
417
452
  set __editingCell(value) { this.#__editingCell_accessor_storage = value; }
453
+ #__floatingActive_accessor_storage = (__runInitializers(this, ___editingCell_extraInitializers), __runInitializers(this, ___floatingActive_initializers, false));
454
+ /**
455
+ * True while the page-sticky floating header overlay is visible. Lifted
456
+ * to @state so the floating-header clone subtree is rendered only when
457
+ * needed (saves a full thead worth of cells per render when inactive).
458
+ */
459
+ get __floatingActive() { return this.#__floatingActive_accessor_storage; }
460
+ set __floatingActive(value) { this.#__floatingActive_accessor_storage = value; }
461
+ // ─── Render memoization ──────────────────────────────────────────────
462
+ // These caches let render() short-circuit when the relevant inputs
463
+ // (by reference) haven't changed. They are NOT @state — mutating them
464
+ // must never trigger a re-render.
465
+ __memoEffectiveCols = __runInitializers(this, ___floatingActive_extraInitializers);
466
+ __memoViewData;
467
+ /** Tracks the (data, columns) pair that `determineColumnWidths()` last sized for. */
468
+ __columnsSizedFor;
469
+ // ─── Virtualization state ────────────────────────────────────────────
470
+ /** Estimated row height (px). Measured once from the first rendered row. */
471
+ __rowHeight = 36;
472
+ /** True once we've measured `__rowHeight` from a real DOM row. */
473
+ __rowHeightMeasured = false;
474
+ #__virtualRange_accessor_storage = __runInitializers(this, ___virtualRange_initializers, { start: 0, end: 0 });
475
+ /** Currently rendered range [start, end). Triggers re-render when changed. */
476
+ get __virtualRange() { return this.#__virtualRange_accessor_storage; }
477
+ set __virtualRange(value) { this.#__virtualRange_accessor_storage = value; }
418
478
  constructor() {
419
479
  super();
420
480
  // Make the host focusable so it can receive Ctrl/Cmd+C for copy.
@@ -428,7 +488,7 @@ let DeesTable = (() => {
428
488
  * selection exists. No-op if a focused input/textarea would normally
429
489
  * receive the copy.
430
490
  */
431
- __handleHostKeydown = (__runInitializers(this, ___editingCell_extraInitializers), (eventArg) => {
491
+ __handleHostKeydown = (__runInitializers(this, ___virtualRange_extraInitializers), (eventArg) => {
432
492
  // Detect whether the keydown originated inside an editor (input/textarea
433
493
  // or contenteditable). Used to skip both copy hijacking and grid nav.
434
494
  const path = (eventArg.composedPath?.() || []);
@@ -540,14 +600,86 @@ let DeesTable = (() => {
540
600
  }
541
601
  }
542
602
  static styles = tableStyles;
543
- render() {
603
+ /**
604
+ * Returns the effective column schema, memoized by reference of the inputs
605
+ * that affect it. Avoids re-running `computeEffectiveColumnsFn` /
606
+ * `computeColumnsFromDisplayFunctionFn` on every Lit update.
607
+ */
608
+ __getEffectiveColumns() {
544
609
  const usingColumns = Array.isArray(this.columns) && this.columns.length > 0;
545
- const effectiveColumns = usingColumns
610
+ const cache = this.__memoEffectiveCols;
611
+ if (cache &&
612
+ cache.columns === this.columns &&
613
+ cache.augment === this.augmentFromDisplayFunction &&
614
+ cache.displayFunction === this.displayFunction &&
615
+ cache.data === this.data) {
616
+ return cache.out;
617
+ }
618
+ const out = usingColumns
546
619
  ? computeEffectiveColumnsFn(this.columns, this.augmentFromDisplayFunction, this.displayFunction, this.data)
547
620
  : computeColumnsFromDisplayFunctionFn(this.displayFunction, this.data);
548
- const lucenePred = compileLucenePredicate(this.filterText, this.searchMode === 'data' ? 'data' : 'table', effectiveColumns);
549
- const viewData = getViewDataFn(this.data, effectiveColumns, this.sortBy, this.filterText, this.columnFilters, this.searchMode === 'data' ? 'data' : 'table', lucenePred || undefined);
621
+ this.__memoEffectiveCols = {
622
+ columns: this.columns,
623
+ augment: this.augmentFromDisplayFunction,
624
+ displayFunction: this.displayFunction,
625
+ data: this.data,
626
+ out,
627
+ };
628
+ return out;
629
+ }
630
+ /**
631
+ * Returns the sorted/filtered view of the data, memoized by reference of
632
+ * everything that affects it. Avoids re-running the lucene compiler and
633
+ * the sort/filter pipeline on every render.
634
+ */
635
+ __getViewData(effectiveColumns) {
636
+ const searchMode = this.searchMode === 'data' ? 'data' : 'table';
637
+ const cache = this.__memoViewData;
638
+ if (cache &&
639
+ cache.data === this.data &&
640
+ cache.sortBy === this.sortBy &&
641
+ cache.filterText === this.filterText &&
642
+ cache.columnFilters === this.columnFilters &&
643
+ cache.searchMode === searchMode &&
644
+ cache.effectiveColumns === effectiveColumns) {
645
+ return cache.out;
646
+ }
647
+ const lucenePred = compileLucenePredicate(this.filterText, searchMode, effectiveColumns);
648
+ const out = getViewDataFn(this.data, effectiveColumns, this.sortBy, this.filterText, this.columnFilters, searchMode, lucenePred || undefined);
649
+ this.__memoViewData = {
650
+ data: this.data,
651
+ sortBy: this.sortBy,
652
+ filterText: this.filterText,
653
+ columnFilters: this.columnFilters,
654
+ searchMode,
655
+ effectiveColumns,
656
+ out,
657
+ };
658
+ return out;
659
+ }
660
+ render() {
661
+ const effectiveColumns = this.__getEffectiveColumns();
662
+ const viewData = this.__getViewData(effectiveColumns);
550
663
  this._lastViewData = viewData;
664
+ // Virtualization slice — only the rows in `__virtualRange` actually
665
+ // render. Top/bottom spacer rows preserve scroll geometry.
666
+ const useVirtual = this.virtualized && viewData.length > 0;
667
+ let renderRows = viewData;
668
+ let renderStart = 0;
669
+ let topSpacerHeight = 0;
670
+ let bottomSpacerHeight = 0;
671
+ if (useVirtual) {
672
+ const range = this.__virtualRange;
673
+ const start = Math.max(0, range.start);
674
+ const end = Math.min(viewData.length, range.end || 0);
675
+ // On the very first render the range is {0,0} — render a small first
676
+ // window so we can measure row height and compute the real range.
677
+ const initialEnd = end > 0 ? end : Math.min(viewData.length, this.virtualOverscan * 2 + 16);
678
+ renderStart = start;
679
+ renderRows = viewData.slice(start, initialEnd);
680
+ topSpacerHeight = start * this.__rowHeight;
681
+ bottomSpacerHeight = Math.max(0, viewData.length - initialEnd) * this.__rowHeight;
682
+ }
551
683
  return html `
552
684
  <dees-tile>
553
685
  <div slot="header" class="header">
@@ -617,99 +749,25 @@ let DeesTable = (() => {
617
749
  <thead>
618
750
  ${this.renderHeaderRows(effectiveColumns)}
619
751
  </thead>
620
- <tbody>
621
- ${viewData.map((itemArg, rowIndex) => {
622
- const getTr = (elementArg) => {
623
- if (elementArg.tagName === 'TR') {
624
- return elementArg;
625
- }
626
- else {
627
- return getTr(elementArg.parentElement);
628
- }
629
- };
752
+ <tbody
753
+ @click=${this.__onTbodyClick}
754
+ @dblclick=${this.__onTbodyDblclick}
755
+ @mousedown=${this.__onTbodyMousedown}
756
+ @contextmenu=${this.__onTbodyContextmenu}
757
+ @dragenter=${this.__onTbodyDragenter}
758
+ @dragleave=${this.__onTbodyDragleave}
759
+ @dragover=${this.__onTbodyDragover}
760
+ @drop=${this.__onTbodyDrop}
761
+ >
762
+ ${useVirtual && topSpacerHeight > 0
763
+ ? html `<tr aria-hidden="true" style="height:${topSpacerHeight}px"><td></td></tr>`
764
+ : html ``}
765
+ ${renderRows.map((itemArg, sliceIdx) => {
766
+ const rowIndex = renderStart + sliceIdx;
767
+ const rowId = this.getRowId(itemArg);
630
768
  return html `
631
769
  <tr
632
- @click=${(e) => this.handleRowClick(e, itemArg, rowIndex, viewData)}
633
- @mousedown=${(e) => {
634
- // Prevent the browser's native shift-click text
635
- // selection so range-select doesn't highlight text.
636
- if (e.shiftKey && this.selectionMode !== 'single')
637
- e.preventDefault();
638
- }}
639
- @dragenter=${async (eventArg) => {
640
- eventArg.preventDefault();
641
- eventArg.stopPropagation();
642
- const realTarget = getTr(eventArg.target);
643
- setTimeout(() => {
644
- realTarget.classList.add('hasAttachment');
645
- }, 0);
646
- }}
647
- @dragleave=${async (eventArg) => {
648
- eventArg.preventDefault();
649
- eventArg.stopPropagation();
650
- const realTarget = getTr(eventArg.target);
651
- realTarget.classList.remove('hasAttachment');
652
- }}
653
- @dragover=${async (eventArg) => {
654
- eventArg.preventDefault();
655
- }}
656
- @drop=${async (eventArg) => {
657
- eventArg.preventDefault();
658
- const newFiles = [];
659
- for (const file of Array.from(eventArg.dataTransfer.files)) {
660
- this.files.push(file);
661
- newFiles.push(file);
662
- this.requestUpdate();
663
- }
664
- const result = this.fileWeakMap.get(itemArg);
665
- if (!result) {
666
- this.fileWeakMap.set(itemArg, newFiles);
667
- }
668
- else {
669
- result.push(...newFiles);
670
- }
671
- }}
672
- @contextmenu=${async (eventArg) => {
673
- // If the right-clicked row isn't part of the
674
- // current selection, treat it like a plain click
675
- // first so the context menu acts on a sensible
676
- // selection (matches file-manager behavior).
677
- if (!this.isRowSelected(itemArg)) {
678
- this.selectedDataRow = itemArg;
679
- this.selectedIds.clear();
680
- this.selectedIds.add(this.getRowId(itemArg));
681
- this.__selectionAnchorId = this.getRowId(itemArg);
682
- this.emitSelectionChange();
683
- this.requestUpdate();
684
- }
685
- const userItems = this.getActionsForType('contextmenu').map((action) => ({
686
- name: action.name,
687
- iconName: action.iconName,
688
- action: async () => {
689
- await action.actionFunc({
690
- item: itemArg,
691
- table: this,
692
- });
693
- return null;
694
- },
695
- }));
696
- const defaultItems = [
697
- {
698
- name: this.selectedIds.size > 1
699
- ? `Copy ${this.selectedIds.size} rows as JSON`
700
- : 'Copy row as JSON',
701
- iconName: 'lucide:Copy',
702
- action: async () => {
703
- this.copySelectionAsJson(itemArg);
704
- return null;
705
- },
706
- },
707
- ];
708
- DeesContextmenu.openContextMenuWithOptions(eventArg, [
709
- ...userItems,
710
- ...defaultItems,
711
- ]);
712
- }}
770
+ data-row-idx=${rowIndex}
713
771
  class="${itemArg === this.selectedDataRow || this.isRowSelected(itemArg) ? 'selected' : ''}"
714
772
  >
715
773
  ${this.showSelectionCheckbox
@@ -732,7 +790,6 @@ let DeesTable = (() => {
732
790
  : value;
733
791
  const editKey = String(col.key);
734
792
  const isEditable = !!(col.editable || col.editor);
735
- const rowId = this.getRowId(itemArg);
736
793
  const isFocused = this.__focusedCell?.rowId === rowId &&
737
794
  this.__focusedCell?.colKey === editKey;
738
795
  const isEditing = this.__editingCell?.rowId === rowId &&
@@ -747,25 +804,7 @@ let DeesTable = (() => {
747
804
  return html `
748
805
  <td
749
806
  class=${cellClasses}
750
- @click=${(e) => {
751
- if (isEditing) {
752
- e.stopPropagation();
753
- return;
754
- }
755
- if (isEditable) {
756
- this.__focusedCell = { rowId, colKey: editKey };
757
- }
758
- }}
759
- @dblclick=${(e) => {
760
- const dblAction = this.dataActions.find((actionArg) => actionArg.type?.includes('doubleClick'));
761
- if (isEditable) {
762
- e.stopPropagation();
763
- this.startEditing(itemArg, col);
764
- }
765
- else if (dblAction) {
766
- dblAction.actionFunc({ item: itemArg, table: this });
767
- }
768
- }}
807
+ data-col-key=${editKey}
769
808
  >
770
809
  <div class="innerCellContainer">
771
810
  ${isEditing ? this.renderCellEditor(itemArg, col) : content}
@@ -798,15 +837,20 @@ let DeesTable = (() => {
798
837
  })()}
799
838
  </tr>`;
800
839
  })}
840
+ ${useVirtual && bottomSpacerHeight > 0
841
+ ? html `<tr aria-hidden="true" style="height:${bottomSpacerHeight}px"><td></td></tr>`
842
+ : html ``}
801
843
  </tbody>
802
844
  </table>
803
845
  </div>
804
846
  <div class="floatingHeader" aria-hidden="true">
805
- <table>
806
- <thead>
807
- ${this.renderHeaderRows(effectiveColumns)}
808
- </thead>
809
- </table>
847
+ ${this.__floatingActive
848
+ ? html `<table>
849
+ <thead>
850
+ ${this.renderHeaderRows(effectiveColumns)}
851
+ </thead>
852
+ </table>`
853
+ : html ``}
810
854
  </div>
811
855
  `
812
856
  : html ` <div class="noDataSet">No data set!</div> `}
@@ -919,7 +963,8 @@ let DeesTable = (() => {
919
963
  // ─── Floating header (page-sticky) lifecycle ─────────────────────────
920
964
  __floatingResizeObserver;
921
965
  __floatingScrollHandler;
922
- __floatingActive = false;
966
+ // __floatingActive is declared as a @state field above so its toggle
967
+ // triggers re-rendering of the floating-header clone subtree.
923
968
  __scrollAncestors = [];
924
969
  get __floatingHeaderEl() {
925
970
  return this.shadowRoot?.querySelector('.floatingHeader') ?? null;
@@ -1001,30 +1046,49 @@ let DeesTable = (() => {
1001
1046
  }
1002
1047
  setupFloatingHeader() {
1003
1048
  this.teardownFloatingHeader();
1004
- if (this.fixedHeight)
1049
+ // Skip entirely only when neither feature needs scroll watchers.
1050
+ if (this.fixedHeight && !this.virtualized)
1005
1051
  return;
1006
1052
  const realTable = this.__realTableEl;
1007
1053
  if (!realTable)
1008
1054
  return;
1009
1055
  this.__scrollAncestors = this.__collectScrollAncestors();
1010
1056
  // .tableScroll is a descendant (inside our shadow root), not an ancestor,
1011
- // so the upward walk above misses it. Add it explicitly so horizontal
1012
- // scrolling inside the table re-syncs the floating header.
1057
+ // so the upward walk above misses it. Add it explicitly. In Mode A
1058
+ // (`fixedHeight`) it is the only vertical scroll source — mark it as
1059
+ // scrollsY in that case so virtualization picks it up.
1013
1060
  const tableScrollEl = this.shadowRoot?.querySelector('.tableScroll');
1014
1061
  if (tableScrollEl) {
1015
- this.__scrollAncestors.unshift({ target: tableScrollEl, scrollsY: false, scrollsX: true });
1062
+ this.__scrollAncestors.unshift({
1063
+ target: tableScrollEl,
1064
+ scrollsY: this.fixedHeight,
1065
+ scrollsX: true,
1066
+ });
1016
1067
  }
1017
1068
  // Track resize of the real table so we can mirror its width and column widths.
1018
1069
  this.__floatingResizeObserver = new ResizeObserver(() => {
1019
- this.__syncFloatingHeader();
1070
+ if (!this.fixedHeight)
1071
+ this.__syncFloatingHeader();
1072
+ if (this.virtualized)
1073
+ this.__computeVirtualRange();
1020
1074
  });
1021
1075
  this.__floatingResizeObserver.observe(realTable);
1022
- this.__floatingScrollHandler = () => this.__syncFloatingHeader();
1076
+ this.__floatingScrollHandler = () => {
1077
+ if (!this.fixedHeight)
1078
+ this.__syncFloatingHeader();
1079
+ // Recompute virtual range on every scroll — cheap (one rect read +
1080
+ // some math) and necessary so rows materialize before they're seen.
1081
+ if (this.virtualized)
1082
+ this.__computeVirtualRange();
1083
+ };
1023
1084
  for (const a of this.__scrollAncestors) {
1024
1085
  a.target.addEventListener('scroll', this.__floatingScrollHandler, { passive: true });
1025
1086
  }
1026
1087
  window.addEventListener('resize', this.__floatingScrollHandler, { passive: true });
1027
- this.__syncFloatingHeader();
1088
+ if (!this.fixedHeight)
1089
+ this.__syncFloatingHeader();
1090
+ if (this.virtualized)
1091
+ this.__computeVirtualRange();
1028
1092
  }
1029
1093
  teardownFloatingHeader() {
1030
1094
  this.__floatingResizeObserver?.disconnect();
@@ -1042,34 +1106,98 @@ let DeesTable = (() => {
1042
1106
  if (fh)
1043
1107
  fh.classList.remove('active');
1044
1108
  }
1109
+ // ─── Virtualization ─────────────────────────────────────────────────
1110
+ /**
1111
+ * Computes the visible row range based on the table's position in its
1112
+ * nearest vertical scroll ancestor (or the viewport). Updates
1113
+ * `__virtualRange` if it changed; that triggers a Lit re-render.
1114
+ */
1115
+ __computeVirtualRange() {
1116
+ if (!this.virtualized)
1117
+ return;
1118
+ const view = this._lastViewData ?? [];
1119
+ const total = view.length;
1120
+ if (total === 0) {
1121
+ if (this.__virtualRange.start !== 0 || this.__virtualRange.end !== 0) {
1122
+ this.__virtualRange = { start: 0, end: 0 };
1123
+ }
1124
+ return;
1125
+ }
1126
+ const realTable = this.__realTableEl;
1127
+ if (!realTable)
1128
+ return;
1129
+ const tableRect = realTable.getBoundingClientRect();
1130
+ // Find the innermost vertical scroll ancestor (rect + content height).
1131
+ let viewportTop = 0;
1132
+ let viewportBottom = window.innerHeight;
1133
+ for (const a of this.__scrollAncestors) {
1134
+ if (a.target === window || !a.scrollsY)
1135
+ continue;
1136
+ const r = a.target.getBoundingClientRect();
1137
+ const cs = getComputedStyle(a.target);
1138
+ const bt = parseFloat(cs.borderTopWidth) || 0;
1139
+ const bb = parseFloat(cs.borderBottomWidth) || 0;
1140
+ viewportTop = Math.max(viewportTop, r.top + bt);
1141
+ viewportBottom = Math.min(viewportBottom, r.bottom - bb);
1142
+ }
1143
+ const rowH = Math.max(1, this.__rowHeight);
1144
+ // Distance from the table top to the visible window top, in px of body
1145
+ // content (so any header offset above the rows is excluded).
1146
+ const headerHeight = realTable.tHead?.getBoundingClientRect().height ?? 0;
1147
+ const bodyTop = tableRect.top + headerHeight;
1148
+ const offsetIntoBody = Math.max(0, viewportTop - bodyTop);
1149
+ const visiblePx = Math.max(0, viewportBottom - Math.max(viewportTop, bodyTop));
1150
+ const startRaw = Math.floor(offsetIntoBody / rowH);
1151
+ const visibleCount = Math.ceil(visiblePx / rowH) + 1;
1152
+ const start = Math.max(0, startRaw - this.virtualOverscan);
1153
+ const end = Math.min(total, startRaw + visibleCount + this.virtualOverscan);
1154
+ if (start !== this.__virtualRange.start || end !== this.__virtualRange.end) {
1155
+ this.__virtualRange = { start, end };
1156
+ }
1157
+ }
1158
+ /**
1159
+ * Measures the height of the first rendered body row and stores it for
1160
+ * subsequent virtualization math. Idempotent — only measures once per
1161
+ * `data`/`columns` pair (cleared in `updated()` when those change).
1162
+ */
1163
+ __measureRowHeight() {
1164
+ if (!this.virtualized || this.__rowHeightMeasured)
1165
+ return;
1166
+ const tbody = this.shadowRoot?.querySelector('tbody');
1167
+ if (!tbody)
1168
+ return;
1169
+ const firstRow = Array.from(tbody.rows).find((r) => r.hasAttribute('data-row-idx'));
1170
+ if (!firstRow)
1171
+ return;
1172
+ const h = firstRow.getBoundingClientRect().height;
1173
+ if (h > 0) {
1174
+ this.__rowHeight = h;
1175
+ this.__rowHeightMeasured = true;
1176
+ }
1177
+ }
1045
1178
  /**
1046
1179
  * Single function that drives both activation and geometry of the floating
1047
- * header. Called on scroll, resize, table-resize, and after each render.
1180
+ * header. Called on scroll, resize, table-resize, and after relevant
1181
+ * renders.
1182
+ *
1183
+ * Activation is decided from the *real* header geometry, so this function
1184
+ * works even when the clone subtree hasn't been rendered yet (it's only
1185
+ * rendered when `__floatingActive` is true). The first activation flips
1186
+ * `__floatingActive`; the next render materializes the clone; the next
1187
+ * call here mirrors widths and positions.
1048
1188
  */
1049
1189
  __syncFloatingHeader() {
1050
1190
  const fh = this.__floatingHeaderEl;
1051
1191
  const realTable = this.__realTableEl;
1052
- const floatTable = this.__floatingTableEl;
1053
- if (!fh || !realTable || !floatTable)
1192
+ if (!fh || !realTable)
1054
1193
  return;
1055
1194
  const tableRect = realTable.getBoundingClientRect();
1056
1195
  const stick = this.__getStickContext();
1057
- // Mirror table layout + per-cell widths so columns line up.
1058
- floatTable.style.tableLayout = realTable.style.tableLayout || 'auto';
1059
1196
  const realHeadRows = realTable.tHead?.rows;
1060
- const floatHeadRows = floatTable.tHead?.rows;
1061
1197
  let headerHeight = 0;
1062
- if (realHeadRows && floatHeadRows) {
1063
- for (let r = 0; r < realHeadRows.length && r < floatHeadRows.length; r++) {
1198
+ if (realHeadRows) {
1199
+ for (let r = 0; r < realHeadRows.length; r++) {
1064
1200
  headerHeight += realHeadRows[r].getBoundingClientRect().height;
1065
- const realCells = realHeadRows[r].cells;
1066
- const floatCells = floatHeadRows[r].cells;
1067
- for (let c = 0; c < realCells.length && c < floatCells.length; c++) {
1068
- const w = realCells[c].getBoundingClientRect().width;
1069
- floatCells[c].style.width = `${w}px`;
1070
- floatCells[c].style.minWidth = `${w}px`;
1071
- floatCells[c].style.maxWidth = `${w}px`;
1072
- }
1073
1201
  }
1074
1202
  }
1075
1203
  // Active when the table top is above the stick line and the table bottom
@@ -1078,9 +1206,34 @@ let DeesTable = (() => {
1078
1206
  if (shouldBeActive !== this.__floatingActive) {
1079
1207
  this.__floatingActive = shouldBeActive;
1080
1208
  fh.classList.toggle('active', shouldBeActive);
1209
+ if (shouldBeActive) {
1210
+ // Clone subtree doesn't exist yet — wait for the next render to
1211
+ // materialize it, then complete geometry sync.
1212
+ this.updateComplete.then(() => this.__syncFloatingHeader());
1213
+ return;
1214
+ }
1081
1215
  }
1082
1216
  if (!shouldBeActive)
1083
1217
  return;
1218
+ // Mirror table layout + per-cell widths so columns line up. The clone
1219
+ // exists at this point because __floatingActive === true.
1220
+ const floatTable = this.__floatingTableEl;
1221
+ if (!floatTable)
1222
+ return;
1223
+ floatTable.style.tableLayout = realTable.style.tableLayout || 'auto';
1224
+ const floatHeadRows = floatTable.tHead?.rows;
1225
+ if (realHeadRows && floatHeadRows) {
1226
+ for (let r = 0; r < realHeadRows.length && r < floatHeadRows.length; r++) {
1227
+ const realCells = realHeadRows[r].cells;
1228
+ const floatCells = floatHeadRows[r].cells;
1229
+ for (let c = 0; c < realCells.length && c < floatCells.length; c++) {
1230
+ const w = realCells[c].getBoundingClientRect().width;
1231
+ floatCells[c].style.width = `${w}px`;
1232
+ floatCells[c].style.minWidth = `${w}px`;
1233
+ floatCells[c].style.maxWidth = `${w}px`;
1234
+ }
1235
+ }
1236
+ }
1084
1237
  // Position the floating header. Clip horizontally to the scroll context
1085
1238
  // so a horizontally-scrolled inner container's header doesn't bleed
1086
1239
  // outside the container's border.
@@ -1105,23 +1258,48 @@ let DeesTable = (() => {
1105
1258
  }
1106
1259
  async updated(changedProperties) {
1107
1260
  super.updated(changedProperties);
1108
- this.determineColumnWidths();
1109
- // (Re)wire the floating header whenever the relevant props change or
1110
- // the table markup may have appeared/disappeared.
1261
+ // Only re-measure column widths when the data or schema actually changed
1262
+ // (or on first paint). `determineColumnWidths` is the single biggest
1263
+ // first-paint cost it forces multiple layout flushes per row.
1264
+ const dataOrColsChanged = !this.__columnsSizedFor ||
1265
+ this.__columnsSizedFor.data !== this.data ||
1266
+ this.__columnsSizedFor.columns !== this.columns;
1267
+ if (dataOrColsChanged) {
1268
+ this.__columnsSizedFor = { data: this.data, columns: this.columns };
1269
+ this.determineColumnWidths();
1270
+ // Force re-measure of row height; structure may have changed.
1271
+ this.__rowHeightMeasured = false;
1272
+ }
1273
+ // Virtualization: measure row height after the first paint with rows,
1274
+ // then compute the visible range. Both ops only run when `virtualized`
1275
+ // is true, so the cost is zero for normal tables.
1276
+ if (this.virtualized) {
1277
+ this.__measureRowHeight();
1278
+ this.__computeVirtualRange();
1279
+ }
1280
+ // (Re)wire the scroll watchers (used by both the floating header in
1281
+ // Mode B and by virtualization). Skip entirely only when neither
1282
+ // feature needs them.
1111
1283
  if (changedProperties.has('fixedHeight') ||
1284
+ changedProperties.has('virtualized') ||
1112
1285
  changedProperties.has('data') ||
1113
1286
  changedProperties.has('columns') ||
1114
1287
  !this.__floatingScrollHandler) {
1115
- if (!this.fixedHeight && this.data.length > 0) {
1288
+ const needsScrollWatchers = (!this.fixedHeight || this.virtualized) && this.data.length > 0;
1289
+ if (needsScrollWatchers) {
1116
1290
  this.setupFloatingHeader();
1117
1291
  }
1118
1292
  else {
1119
1293
  this.teardownFloatingHeader();
1120
1294
  }
1121
1295
  }
1122
- // Keep the floating header in sync after any re-render
1123
- // (column widths may have changed).
1124
- if (!this.fixedHeight && this.data.length > 0) {
1296
+ // Only sync the floating header geometry when it's actually showing or
1297
+ // the table layout-affecting state changed. Avoids per-render layout
1298
+ // reads (getBoundingClientRect on every header cell) for typical updates
1299
+ // like sort changes or selection toggles.
1300
+ if (!this.fixedHeight &&
1301
+ this.data.length > 0 &&
1302
+ (this.__floatingActive || dataOrColsChanged)) {
1125
1303
  this.__syncFloatingHeader();
1126
1304
  }
1127
1305
  if (this.searchable) {
@@ -1597,6 +1775,189 @@ let DeesTable = (() => {
1597
1775
  this.emitSelectionChange();
1598
1776
  this.requestUpdate();
1599
1777
  }
1778
+ // ─── Delegated tbody event handlers ─────────────────────────────────
1779
+ // Hoisted from per-<tr> closures to a single set of handlers on <tbody>.
1780
+ // Cuts ~7 closure allocations per row per render. Each handler resolves
1781
+ // the source row via `data-row-idx` (and `data-col-key` for cell-level
1782
+ // events) using the latest `_lastViewData`.
1783
+ __resolveRow(eventArg) {
1784
+ const path = (eventArg.composedPath?.() || []);
1785
+ let tr = null;
1786
+ for (const t of path) {
1787
+ const el = t;
1788
+ if (el?.tagName === 'TR' && el.hasAttribute('data-row-idx')) {
1789
+ tr = el;
1790
+ break;
1791
+ }
1792
+ }
1793
+ if (!tr)
1794
+ return null;
1795
+ const rowIdx = Number(tr.getAttribute('data-row-idx'));
1796
+ const view = this._lastViewData ?? [];
1797
+ const item = view[rowIdx];
1798
+ if (!item)
1799
+ return null;
1800
+ return { item, rowIdx };
1801
+ }
1802
+ __resolveCell(eventArg) {
1803
+ const row = this.__resolveRow(eventArg);
1804
+ if (!row)
1805
+ return null;
1806
+ const path = (eventArg.composedPath?.() || []);
1807
+ let td = null;
1808
+ for (const t of path) {
1809
+ const el = t;
1810
+ if (el?.tagName === 'TD' && el.hasAttribute('data-col-key')) {
1811
+ td = el;
1812
+ break;
1813
+ }
1814
+ }
1815
+ if (!td)
1816
+ return null;
1817
+ const colKey = td.getAttribute('data-col-key');
1818
+ const cols = this.__getEffectiveColumns();
1819
+ const col = cols.find((c) => String(c.key) === colKey);
1820
+ if (!col)
1821
+ return null;
1822
+ return { item: row.item, rowIdx: row.rowIdx, col };
1823
+ }
1824
+ __isInActionsCol(eventArg) {
1825
+ const path = (eventArg.composedPath?.() || []);
1826
+ for (const t of path) {
1827
+ const el = t;
1828
+ if (el?.classList?.contains('actionsCol'))
1829
+ return true;
1830
+ }
1831
+ return false;
1832
+ }
1833
+ __isInEditor(eventArg) {
1834
+ const path = (eventArg.composedPath?.() || []);
1835
+ for (const t of path) {
1836
+ const el = t;
1837
+ const tag = el?.tagName;
1838
+ if (tag === 'INPUT' || tag === 'TEXTAREA' || el?.isContentEditable)
1839
+ return true;
1840
+ if (tag && tag.startsWith('DEES-INPUT-'))
1841
+ return true;
1842
+ }
1843
+ return false;
1844
+ }
1845
+ __onTbodyClick = (eventArg) => {
1846
+ if (this.__isInEditor(eventArg) || this.__isInActionsCol(eventArg))
1847
+ return;
1848
+ const cell = this.__resolveCell(eventArg);
1849
+ if (!cell)
1850
+ return;
1851
+ const view = this._lastViewData ?? [];
1852
+ // Cell focus (when editable)
1853
+ if (cell.col.editable || cell.col.editor) {
1854
+ this.__focusedCell = {
1855
+ rowId: this.getRowId(cell.item),
1856
+ colKey: String(cell.col.key),
1857
+ };
1858
+ }
1859
+ // Row selection (file-manager style)
1860
+ this.handleRowClick(eventArg, cell.item, cell.rowIdx, view);
1861
+ };
1862
+ __onTbodyDblclick = (eventArg) => {
1863
+ if (this.__isInEditor(eventArg) || this.__isInActionsCol(eventArg))
1864
+ return;
1865
+ const cell = this.__resolveCell(eventArg);
1866
+ if (!cell)
1867
+ return;
1868
+ const isEditable = !!(cell.col.editable || cell.col.editor);
1869
+ if (isEditable) {
1870
+ eventArg.stopPropagation();
1871
+ this.startEditing(cell.item, cell.col);
1872
+ return;
1873
+ }
1874
+ const dblAction = this.dataActions.find((a) => a.type?.includes('doubleClick'));
1875
+ if (dblAction)
1876
+ dblAction.actionFunc({ item: cell.item, table: this });
1877
+ };
1878
+ __onTbodyMousedown = (eventArg) => {
1879
+ // Suppress browser's native shift-click text selection so range-select
1880
+ // doesn't highlight text mid-table.
1881
+ if (eventArg.shiftKey && this.selectionMode !== 'single')
1882
+ eventArg.preventDefault();
1883
+ };
1884
+ __onTbodyContextmenu = (eventArg) => {
1885
+ if (this.__isInActionsCol(eventArg))
1886
+ return;
1887
+ const row = this.__resolveRow(eventArg);
1888
+ if (!row)
1889
+ return;
1890
+ const item = row.item;
1891
+ // Match file-manager behavior: right-clicking a non-selected row makes
1892
+ // it the selection first.
1893
+ if (!this.isRowSelected(item)) {
1894
+ this.selectedDataRow = item;
1895
+ this.selectedIds.clear();
1896
+ this.selectedIds.add(this.getRowId(item));
1897
+ this.__selectionAnchorId = this.getRowId(item);
1898
+ this.emitSelectionChange();
1899
+ this.requestUpdate();
1900
+ }
1901
+ const userItems = this.getActionsForType('contextmenu').map((action) => ({
1902
+ name: action.name,
1903
+ iconName: action.iconName,
1904
+ action: async () => {
1905
+ await action.actionFunc({ item, table: this });
1906
+ return null;
1907
+ },
1908
+ }));
1909
+ const defaultItems = [
1910
+ {
1911
+ name: this.selectedIds.size > 1
1912
+ ? `Copy ${this.selectedIds.size} rows as JSON`
1913
+ : 'Copy row as JSON',
1914
+ iconName: 'lucide:Copy',
1915
+ action: async () => {
1916
+ this.copySelectionAsJson(item);
1917
+ return null;
1918
+ },
1919
+ },
1920
+ ];
1921
+ DeesContextmenu.openContextMenuWithOptions(eventArg, [...userItems, ...defaultItems]);
1922
+ };
1923
+ __onTbodyDragenter = (eventArg) => {
1924
+ eventArg.preventDefault();
1925
+ eventArg.stopPropagation();
1926
+ const row = this.__resolveRow(eventArg);
1927
+ if (!row)
1928
+ return;
1929
+ const tr = (eventArg.composedPath?.() || []).find((t) => t?.tagName === 'TR');
1930
+ if (tr)
1931
+ setTimeout(() => tr.classList.add('hasAttachment'), 0);
1932
+ };
1933
+ __onTbodyDragleave = (eventArg) => {
1934
+ eventArg.preventDefault();
1935
+ eventArg.stopPropagation();
1936
+ const tr = (eventArg.composedPath?.() || []).find((t) => t?.tagName === 'TR');
1937
+ if (tr)
1938
+ tr.classList.remove('hasAttachment');
1939
+ };
1940
+ __onTbodyDragover = (eventArg) => {
1941
+ eventArg.preventDefault();
1942
+ };
1943
+ __onTbodyDrop = async (eventArg) => {
1944
+ eventArg.preventDefault();
1945
+ const row = this.__resolveRow(eventArg);
1946
+ if (!row)
1947
+ return;
1948
+ const item = row.item;
1949
+ const newFiles = [];
1950
+ for (const file of Array.from(eventArg.dataTransfer.files)) {
1951
+ this.files.push(file);
1952
+ newFiles.push(file);
1953
+ this.requestUpdate();
1954
+ }
1955
+ const existing = this.fileWeakMap.get(item);
1956
+ if (!existing)
1957
+ this.fileWeakMap.set(item, newFiles);
1958
+ else
1959
+ existing.push(...newFiles);
1960
+ };
1600
1961
  /**
1601
1962
  * Handles row clicks with file-manager style selection semantics:
1602
1963
  * - plain click: select only this row, set anchor
@@ -1758,6 +2119,10 @@ let DeesTable = (() => {
1758
2119
  '.editingCell dees-input-dropdown, .editingCell dees-input-datepicker, ' +
1759
2120
  '.editingCell dees-input-tags');
1760
2121
  el?.focus?.();
2122
+ // Dropdown editors should auto-open so the user can pick immediately.
2123
+ if (el?.tagName === 'DEES-INPUT-DROPDOWN') {
2124
+ el.updateComplete?.then(() => el.toggleSelectionBox?.());
2125
+ }
1761
2126
  });
1762
2127
  }
1763
2128
  /** Closes the editor without committing. */
@@ -1815,8 +2180,15 @@ let DeesTable = (() => {
1815
2180
  ></dees-input-checkbox>`;
1816
2181
  case 'dropdown': {
1817
2182
  const options = col.editorOptions?.options ?? [];
1818
- const selected = options.find((o) => (o?.option ?? o?.key ?? o) === value) ?? null;
2183
+ const selected = options.find((o) => {
2184
+ if (o == null)
2185
+ return false;
2186
+ if (typeof o === 'string')
2187
+ return o === raw;
2188
+ return o.key === raw || o.option === raw;
2189
+ }) ?? null;
1819
2190
  return html `<dees-input-dropdown
2191
+ .vintegrated=${true}
1820
2192
  .options=${options}
1821
2193
  .selectedOption=${selected}
1822
2194
  @selectedOption=${(e) => {
@@ -1843,6 +2215,7 @@ let DeesTable = (() => {
1843
2215
  case 'text':
1844
2216
  default:
1845
2217
  return html `<dees-input-text
2218
+ .vintegrated=${true}
1846
2219
  .value=${value == null ? '' : String(value)}
1847
2220
  @focusout=${(e) => onTextCommit(e.target)}
1848
2221
  @keydown=${(e) => this.__handleEditorKey(e, item, col)}
@@ -1937,4 +2310,4 @@ let DeesTable = (() => {
1937
2310
  return DeesTable = _classThis;
1938
2311
  })();
1939
2312
  export { DeesTable };
1940
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWRhdGF2aWV3L2RlZXMtdGFibGUvZGVlcy10YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQXVCLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWpJLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDM0UsT0FBTyxLQUFLLFFBQVEsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQWlCLE1BQU0sOENBQThDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQVMxQyxPQUFPLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sa0RBQWtELENBQUM7QUFDMUQsT0FBTyxrREFBa0QsQ0FBQztBQUMxRCxPQUFPLG9EQUFvRCxDQUFDO0FBQzVELE9BQU8sOENBQThDLENBQUM7QUFDdEQsT0FBTyxFQUNMLGlDQUFpQyxJQUFJLG1DQUFtQyxFQUN4RSx1QkFBdUIsSUFBSSx5QkFBeUIsRUFDcEQsWUFBWSxJQUFJLGNBQWMsRUFDOUIsV0FBVyxJQUFJLGFBQWEsR0FDN0IsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9B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
2313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWRhdGF2aWV3L2RlZXMtdGFibGUvZGVlcy10YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQXVCLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWpJLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDM0UsT0FBTyxLQUFLLFFBQVEsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQWlCLE1BQU0sOENBQThDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQVMxQyxPQUFPLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sa0RBQWtELENBQUM7QUFDMUQsT0FBTyxrREFBa0QsQ0FBQztBQUMxRCxPQUFPLG9EQUFvRCxDQUFDO0FBQzVELE9BQU8sOENBQThDLENBQUM7QUFDdEQsT0FBTyxFQUNMLGlDQUFpQyxJQUFJLG1DQUFtQyxFQUN4RSx1QkFBdUIsSUFBSSx5QkFBeUIsRUFDcEQsWUFBWSxJQUFJLGNBQWMsRUFDOUIsV0FBVyxJQUFJLGFBQWEsR0FDN0IsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9B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