@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.
- package/dist_bundle/bundle.js +495 -153
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/00group-dataview/dees-table/dees-table.d.ts +71 -2
- package/dist_ts_web/elements/00group-dataview/dees-table/dees-table.demo.js +3 -2
- package/dist_ts_web/elements/00group-dataview/dees-table/dees-table.js +528 -155
- package/dist_ts_web/elements/00group-dataview/dees-table/styles.js +3 -1
- package/dist_ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.d.ts +1 -0
- package/dist_ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.js +43 -2
- package/dist_ts_web/elements/00group-input/dees-input-text/dees-input-text.d.ts +1 -0
- package/dist_ts_web/elements/00group-input/dees-input-text/dees-input-text.js +43 -2
- package/dist_watch/bundle.js +493 -151
- package/dist_watch/bundle.js.map +3 -3
- package/package.json +1 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-dataview/dees-table/dees-table.demo.ts +2 -1
- package/ts_web/elements/00group-dataview/dees-table/dees-table.ts +530 -160
- package/ts_web/elements/00group-dataview/dees-table/styles.ts +5 -0
- package/ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.ts +36 -0
- package/ts_web/elements/00group-input/dees-input-text/dees-input-text.ts +36 -0
|
@@ -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
|
-
#
|
|
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,
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
549
|
-
|
|
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
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
1012
|
-
//
|
|
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({
|
|
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.
|
|
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 = () =>
|
|
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.
|
|
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
|
|
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
|
-
|
|
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
|
|
1063
|
-
for (let r = 0; r < realHeadRows.length
|
|
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
|
-
|
|
1109
|
-
// (
|
|
1110
|
-
//
|
|
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
|
-
|
|
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
|
-
//
|
|
1123
|
-
//
|
|
1124
|
-
|
|
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) =>
|
|
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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
|