@design.estate/dees-wcctools 3.4.0 → 3.5.1
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 +761 -245
- package/dist_bundle/bundle.js.map +4 -4
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/wcc-contextmenu.d.ts +25 -0
- package/dist_ts_web/elements/wcc-contextmenu.js +257 -0
- package/dist_ts_web/elements/wcc-dashboard.d.ts +2 -0
- package/dist_ts_web/elements/wcc-dashboard.js +97 -5
- package/dist_ts_web/elements/wcc-frame.d.ts +2 -0
- package/dist_ts_web/elements/wcc-frame.js +23 -8
- package/dist_ts_web/elements/wcc-properties.d.ts +1 -0
- package/dist_ts_web/elements/wcc-properties.js +11 -3
- package/dist_ts_web/elements/wcc-sidebar.d.ts +16 -0
- package/dist_ts_web/elements/wcc-sidebar.js +346 -63
- package/dist_watch/bundle.js +1170 -397
- package/dist_watch/bundle.js.map +4 -4
- package/package.json +1 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/wcc-contextmenu.ts +211 -0
- package/ts_web/elements/wcc-dashboard.ts +83 -3
- package/ts_web/elements/wcc-frame.ts +11 -6
- package/ts_web/elements/wcc-properties.ts +4 -1
- package/ts_web/elements/wcc-sidebar.ts +354 -61
|
@@ -36,6 +36,7 @@ import * as plugins from '../wcctools.plugins.js';
|
|
|
36
36
|
import { DeesElement, property, html, customElement, state } from '@design.estate/dees-element';
|
|
37
37
|
import { WccDashboard, getSectionItems } from './wcc-dashboard.js';
|
|
38
38
|
import { getDemoCount, hasMultipleDemos } from './wcctools.helpers.js';
|
|
39
|
+
import { WccContextmenu } from './wcc-contextmenu.js';
|
|
39
40
|
let WccSidebar = (() => {
|
|
40
41
|
let _classDecorators = [customElement('wcc-sidebar')];
|
|
41
42
|
let _classDescriptor;
|
|
@@ -63,6 +64,15 @@ let WccSidebar = (() => {
|
|
|
63
64
|
let _searchQuery_decorators;
|
|
64
65
|
let _searchQuery_initializers = [];
|
|
65
66
|
let _searchQuery_extraInitializers = [];
|
|
67
|
+
let _pinnedItems_decorators;
|
|
68
|
+
let _pinnedItems_initializers = [];
|
|
69
|
+
let _pinnedItems_extraInitializers = [];
|
|
70
|
+
let _sidebarWidth_decorators;
|
|
71
|
+
let _sidebarWidth_initializers = [];
|
|
72
|
+
let _sidebarWidth_extraInitializers = [];
|
|
73
|
+
let _isResizing_decorators;
|
|
74
|
+
let _isResizing_initializers = [];
|
|
75
|
+
let _isResizing_extraInitializers = [];
|
|
66
76
|
var WccSidebar = class extends _classSuper {
|
|
67
77
|
static { _classThis = this; }
|
|
68
78
|
static {
|
|
@@ -74,6 +84,9 @@ let WccSidebar = (() => {
|
|
|
74
84
|
_expandedElements_decorators = [state()];
|
|
75
85
|
_collapsedSections_decorators = [state()];
|
|
76
86
|
_searchQuery_decorators = [property()];
|
|
87
|
+
_pinnedItems_decorators = [property({ attribute: false })];
|
|
88
|
+
_sidebarWidth_decorators = [property({ type: Number })];
|
|
89
|
+
_isResizing_decorators = [state()];
|
|
77
90
|
__esDecorate(this, null, _selectedItem_decorators, { kind: "accessor", name: "selectedItem", static: false, private: false, access: { has: obj => "selectedItem" in obj, get: obj => obj.selectedItem, set: (obj, value) => { obj.selectedItem = value; } }, metadata: _metadata }, _selectedItem_initializers, _selectedItem_extraInitializers);
|
|
78
91
|
__esDecorate(this, null, _selectedType_decorators, { kind: "accessor", name: "selectedType", static: false, private: false, access: { has: obj => "selectedType" in obj, get: obj => obj.selectedType, set: (obj, value) => { obj.selectedType = value; } }, metadata: _metadata }, _selectedType_initializers, _selectedType_extraInitializers);
|
|
79
92
|
__esDecorate(this, null, _dashboardRef_decorators, { kind: "accessor", name: "dashboardRef", static: false, private: false, access: { has: obj => "dashboardRef" in obj, get: obj => obj.dashboardRef, set: (obj, value) => { obj.dashboardRef = value; } }, metadata: _metadata }, _dashboardRef_initializers, _dashboardRef_extraInitializers);
|
|
@@ -81,6 +94,9 @@ let WccSidebar = (() => {
|
|
|
81
94
|
__esDecorate(this, null, _expandedElements_decorators, { kind: "accessor", name: "expandedElements", static: false, private: false, access: { has: obj => "expandedElements" in obj, get: obj => obj.expandedElements, set: (obj, value) => { obj.expandedElements = value; } }, metadata: _metadata }, _expandedElements_initializers, _expandedElements_extraInitializers);
|
|
82
95
|
__esDecorate(this, null, _collapsedSections_decorators, { kind: "accessor", name: "collapsedSections", static: false, private: false, access: { has: obj => "collapsedSections" in obj, get: obj => obj.collapsedSections, set: (obj, value) => { obj.collapsedSections = value; } }, metadata: _metadata }, _collapsedSections_initializers, _collapsedSections_extraInitializers);
|
|
83
96
|
__esDecorate(this, null, _searchQuery_decorators, { kind: "accessor", name: "searchQuery", static: false, private: false, access: { has: obj => "searchQuery" in obj, get: obj => obj.searchQuery, set: (obj, value) => { obj.searchQuery = value; } }, metadata: _metadata }, _searchQuery_initializers, _searchQuery_extraInitializers);
|
|
97
|
+
__esDecorate(this, null, _pinnedItems_decorators, { kind: "accessor", name: "pinnedItems", static: false, private: false, access: { has: obj => "pinnedItems" in obj, get: obj => obj.pinnedItems, set: (obj, value) => { obj.pinnedItems = value; } }, metadata: _metadata }, _pinnedItems_initializers, _pinnedItems_extraInitializers);
|
|
98
|
+
__esDecorate(this, null, _sidebarWidth_decorators, { kind: "accessor", name: "sidebarWidth", static: false, private: false, access: { has: obj => "sidebarWidth" in obj, get: obj => obj.sidebarWidth, set: (obj, value) => { obj.sidebarWidth = value; } }, metadata: _metadata }, _sidebarWidth_initializers, _sidebarWidth_extraInitializers);
|
|
99
|
+
__esDecorate(this, null, _isResizing_decorators, { kind: "accessor", name: "isResizing", static: false, private: false, access: { has: obj => "isResizing" in obj, get: obj => obj.isResizing, set: (obj, value) => { obj.isResizing = value; } }, metadata: _metadata }, _isResizing_initializers, _isResizing_extraInitializers);
|
|
84
100
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
85
101
|
WccSidebar = _classThis = _classDescriptor.value;
|
|
86
102
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
@@ -110,7 +126,19 @@ let WccSidebar = (() => {
|
|
|
110
126
|
// Search query for filtering sidebar items
|
|
111
127
|
get searchQuery() { return this.#searchQuery_accessor_storage; }
|
|
112
128
|
set searchQuery(value) { this.#searchQuery_accessor_storage = value; }
|
|
113
|
-
|
|
129
|
+
#pinnedItems_accessor_storage = (__runInitializers(this, _searchQuery_extraInitializers), __runInitializers(this, _pinnedItems_initializers, new Set()));
|
|
130
|
+
// Pinned items as Set of "sectionName::itemName"
|
|
131
|
+
get pinnedItems() { return this.#pinnedItems_accessor_storage; }
|
|
132
|
+
set pinnedItems(value) { this.#pinnedItems_accessor_storage = value; }
|
|
133
|
+
#sidebarWidth_accessor_storage = (__runInitializers(this, _pinnedItems_extraInitializers), __runInitializers(this, _sidebarWidth_initializers, 200));
|
|
134
|
+
// Sidebar width (resizable)
|
|
135
|
+
get sidebarWidth() { return this.#sidebarWidth_accessor_storage; }
|
|
136
|
+
set sidebarWidth(value) { this.#sidebarWidth_accessor_storage = value; }
|
|
137
|
+
#isResizing_accessor_storage = (__runInitializers(this, _sidebarWidth_extraInitializers), __runInitializers(this, _isResizing_initializers, false));
|
|
138
|
+
// Track if currently resizing
|
|
139
|
+
get isResizing() { return this.#isResizing_accessor_storage; }
|
|
140
|
+
set isResizing(value) { this.#isResizing_accessor_storage = value; }
|
|
141
|
+
sectionsInitialized = (__runInitializers(this, _isResizing_extraInitializers), false);
|
|
114
142
|
render() {
|
|
115
143
|
return html `
|
|
116
144
|
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" rel="stylesheet" />
|
|
@@ -139,7 +167,7 @@ let WccSidebar = (() => {
|
|
|
139
167
|
box-sizing: border-box;
|
|
140
168
|
position: absolute;
|
|
141
169
|
left: 0px;
|
|
142
|
-
width:
|
|
170
|
+
width: ${this.sidebarWidth}px;
|
|
143
171
|
top: 0px;
|
|
144
172
|
bottom: 0px;
|
|
145
173
|
overflow-y: auto;
|
|
@@ -237,7 +265,11 @@ let WccSidebar = (() => {
|
|
|
237
265
|
}
|
|
238
266
|
|
|
239
267
|
.selectOption.folder {
|
|
240
|
-
grid-template-columns: 16px
|
|
268
|
+
grid-template-columns: 16px 1fr;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.selectOption.folder .text {
|
|
272
|
+
margin-left: 4px;
|
|
241
273
|
}
|
|
242
274
|
|
|
243
275
|
.selectOption .expand-icon {
|
|
@@ -366,6 +398,90 @@ let WccSidebar = (() => {
|
|
|
366
398
|
background: rgba(59, 130, 246, 0.3);
|
|
367
399
|
border-radius: 2px;
|
|
368
400
|
}
|
|
401
|
+
|
|
402
|
+
/* Pinned item highlight in original section */
|
|
403
|
+
.selectOption.pinned {
|
|
404
|
+
background: rgba(245, 158, 11, 0.08);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
.selectOption.pinned:hover {
|
|
408
|
+
background: rgba(245, 158, 11, 0.12);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
.selectOption.pinned.selected {
|
|
412
|
+
background: rgba(245, 158, 11, 0.18);
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
/* Pinned section styling */
|
|
416
|
+
.section-header.pinned-section {
|
|
417
|
+
background: rgba(245, 158, 11, 0.08);
|
|
418
|
+
color: #f59e0b;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
.section-header.pinned-section:hover {
|
|
422
|
+
background: rgba(245, 158, 11, 0.12);
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
.section-header.pinned-section .section-icon {
|
|
426
|
+
opacity: 0.8;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/* Section tag pill for pinned items */
|
|
430
|
+
.section-tag {
|
|
431
|
+
font-size: 0.5rem;
|
|
432
|
+
color: #888;
|
|
433
|
+
margin-left: auto;
|
|
434
|
+
text-transform: uppercase;
|
|
435
|
+
letter-spacing: 0.02em;
|
|
436
|
+
background: rgba(255, 255, 255, 0.06);
|
|
437
|
+
padding: 0.15rem 0.4rem;
|
|
438
|
+
border-radius: 9999px;
|
|
439
|
+
white-space: nowrap;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
/* Group container */
|
|
443
|
+
.item-group {
|
|
444
|
+
margin: 0.375rem 0.375rem;
|
|
445
|
+
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
446
|
+
border-radius: 6px;
|
|
447
|
+
padding: 0.25rem 0;
|
|
448
|
+
background: rgba(255, 255, 255, 0.01);
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
.item-group-legend {
|
|
452
|
+
font-size: 0.55rem;
|
|
453
|
+
text-transform: uppercase;
|
|
454
|
+
letter-spacing: 0.05em;
|
|
455
|
+
color: #555;
|
|
456
|
+
padding: 0.125rem 0.625rem 0.25rem;
|
|
457
|
+
display: block;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
.item-group .selectOption {
|
|
461
|
+
margin-left: 0.25rem;
|
|
462
|
+
margin-right: 0.25rem;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
/* Resize handle */
|
|
466
|
+
.resize-handle {
|
|
467
|
+
position: absolute;
|
|
468
|
+
top: 0;
|
|
469
|
+
right: 0;
|
|
470
|
+
bottom: 0;
|
|
471
|
+
width: 4px;
|
|
472
|
+
cursor: col-resize;
|
|
473
|
+
background: transparent;
|
|
474
|
+
transition: background 0.15s ease;
|
|
475
|
+
z-index: 10;
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
.resize-handle:hover {
|
|
479
|
+
background: rgba(59, 130, 246, 0.3);
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
.resize-handle.active {
|
|
483
|
+
background: var(--primary);
|
|
484
|
+
}
|
|
369
485
|
</style>
|
|
370
486
|
<div class="search-container">
|
|
371
487
|
<input
|
|
@@ -377,15 +493,20 @@ let WccSidebar = (() => {
|
|
|
377
493
|
/>
|
|
378
494
|
</div>
|
|
379
495
|
<div class="menu">
|
|
496
|
+
${this.renderPinnedSection()}
|
|
380
497
|
${this.renderSections()}
|
|
381
498
|
</div>
|
|
499
|
+
<div
|
|
500
|
+
class="resize-handle ${this.isResizing ? 'active' : ''}"
|
|
501
|
+
@mousedown=${this.startResize}
|
|
502
|
+
></div>
|
|
382
503
|
`;
|
|
383
504
|
}
|
|
384
505
|
/**
|
|
385
506
|
* Initialize collapsed sections from section config
|
|
386
507
|
*/
|
|
387
508
|
initCollapsedSections() {
|
|
388
|
-
if (this.sectionsInitialized)
|
|
509
|
+
if (this.sectionsInitialized || !this.dashboardRef?.sections)
|
|
389
510
|
return;
|
|
390
511
|
const collapsed = new Set();
|
|
391
512
|
for (const section of this.dashboardRef.sections) {
|
|
@@ -396,12 +517,101 @@ let WccSidebar = (() => {
|
|
|
396
517
|
this.collapsedSections = collapsed;
|
|
397
518
|
this.sectionsInitialized = true;
|
|
398
519
|
}
|
|
520
|
+
// ============ Pinning helpers ============
|
|
521
|
+
getPinKey(sectionName, itemName) {
|
|
522
|
+
return `${sectionName}::${itemName}`;
|
|
523
|
+
}
|
|
524
|
+
isPinned(sectionName, itemName) {
|
|
525
|
+
return this.pinnedItems.has(this.getPinKey(sectionName, itemName));
|
|
526
|
+
}
|
|
527
|
+
togglePin(sectionName, itemName) {
|
|
528
|
+
const key = this.getPinKey(sectionName, itemName);
|
|
529
|
+
const newPinned = new Set(this.pinnedItems);
|
|
530
|
+
if (newPinned.has(key)) {
|
|
531
|
+
newPinned.delete(key);
|
|
532
|
+
}
|
|
533
|
+
else {
|
|
534
|
+
newPinned.add(key);
|
|
535
|
+
}
|
|
536
|
+
this.pinnedItems = newPinned;
|
|
537
|
+
this.dispatchEvent(new CustomEvent('pinnedChanged', { detail: newPinned }));
|
|
538
|
+
}
|
|
539
|
+
showContextMenu(e, sectionName, itemName) {
|
|
540
|
+
const isPinned = this.isPinned(sectionName, itemName);
|
|
541
|
+
WccContextmenu.show(e, [
|
|
542
|
+
{
|
|
543
|
+
name: isPinned ? 'Unpin' : 'Pin',
|
|
544
|
+
iconName: isPinned ? 'push_pin' : 'push_pin',
|
|
545
|
+
action: () => this.togglePin(sectionName, itemName),
|
|
546
|
+
},
|
|
547
|
+
]);
|
|
548
|
+
}
|
|
549
|
+
/**
|
|
550
|
+
* Render the PINNED section (only if there are pinned items)
|
|
551
|
+
*/
|
|
552
|
+
renderPinnedSection() {
|
|
553
|
+
if (!this.dashboardRef?.sections || this.pinnedItems.size === 0) {
|
|
554
|
+
return null;
|
|
555
|
+
}
|
|
556
|
+
const isCollapsed = this.collapsedSections.has('__pinned__');
|
|
557
|
+
// Collect pinned items with their original section info
|
|
558
|
+
// Pinned items are NOT filtered by search - they always remain visible
|
|
559
|
+
const pinnedEntries = [];
|
|
560
|
+
for (const key of this.pinnedItems) {
|
|
561
|
+
const [sectionName, itemName] = key.split('::');
|
|
562
|
+
const section = this.dashboardRef.sections.find(s => s.name === sectionName);
|
|
563
|
+
if (section) {
|
|
564
|
+
const entries = getSectionItems(section);
|
|
565
|
+
const found = entries.find(([name]) => name === itemName);
|
|
566
|
+
if (found) {
|
|
567
|
+
pinnedEntries.push({ sectionName, itemName, item: found[1], section });
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
if (pinnedEntries.length === 0) {
|
|
572
|
+
return null;
|
|
573
|
+
}
|
|
574
|
+
return html `
|
|
575
|
+
<div
|
|
576
|
+
class="section-header pinned-section ${isCollapsed ? 'collapsed' : ''}"
|
|
577
|
+
@click=${() => this.toggleSectionCollapsed('__pinned__')}
|
|
578
|
+
>
|
|
579
|
+
<i class="material-symbols-outlined expand-icon">expand_more</i>
|
|
580
|
+
<i class="material-symbols-outlined section-icon">push_pin</i>
|
|
581
|
+
<span>Pinned</span>
|
|
582
|
+
</div>
|
|
583
|
+
<div class="section-content ${isCollapsed ? 'collapsed' : ''}">
|
|
584
|
+
${pinnedEntries.map(({ sectionName, itemName, item, section }) => {
|
|
585
|
+
const isSelected = this.selectedItem === item;
|
|
586
|
+
const type = section.type === 'elements' ? 'element' : 'page';
|
|
587
|
+
const icon = section.type === 'elements' ? 'featured_video' : 'insert_drive_file';
|
|
588
|
+
return html `
|
|
589
|
+
<div
|
|
590
|
+
class="selectOption ${isSelected ? 'selected' : ''}"
|
|
591
|
+
@click=${async () => {
|
|
592
|
+
await plugins.deesDomtools.DomTools.setupDomTools();
|
|
593
|
+
this.selectItem(type, itemName, item, 0, section);
|
|
594
|
+
}}
|
|
595
|
+
@contextmenu=${(e) => this.showContextMenu(e, sectionName, itemName)}
|
|
596
|
+
>
|
|
597
|
+
<i class="material-symbols-outlined">${icon}</i>
|
|
598
|
+
<div class="text">${this.highlightMatch(itemName)}</div>
|
|
599
|
+
<span class="section-tag">${sectionName}</span>
|
|
600
|
+
</div>
|
|
601
|
+
`;
|
|
602
|
+
})}
|
|
603
|
+
</div>
|
|
604
|
+
`;
|
|
605
|
+
}
|
|
399
606
|
/**
|
|
400
607
|
* Render all sections
|
|
401
608
|
*/
|
|
402
609
|
renderSections() {
|
|
610
|
+
if (!this.dashboardRef?.sections) {
|
|
611
|
+
return null;
|
|
612
|
+
}
|
|
403
613
|
this.initCollapsedSections();
|
|
404
|
-
return this.dashboardRef.sections.map((section
|
|
614
|
+
return this.dashboardRef.sections.map((section) => {
|
|
405
615
|
// Check if section has any matching items
|
|
406
616
|
const entries = getSectionItems(section);
|
|
407
617
|
const filteredEntries = entries.filter(([name]) => this.matchesSearch(name));
|
|
@@ -435,13 +645,15 @@ let WccSidebar = (() => {
|
|
|
435
645
|
const filteredEntries = entries.filter(([name]) => this.matchesSearch(name));
|
|
436
646
|
if (section.type === 'pages') {
|
|
437
647
|
return filteredEntries.map(([pageName, item]) => {
|
|
648
|
+
const isPinned = this.isPinned(section.name, pageName);
|
|
438
649
|
return html `
|
|
439
650
|
<div
|
|
440
|
-
class="selectOption ${this.selectedItem === item ? 'selected' : ''}"
|
|
651
|
+
class="selectOption ${this.selectedItem === item ? 'selected' : ''} ${isPinned ? 'pinned' : ''}"
|
|
441
652
|
@click=${async () => {
|
|
442
653
|
await plugins.deesDomtools.DomTools.setupDomTools();
|
|
443
654
|
this.selectItem('page', pageName, item, 0, section);
|
|
444
655
|
}}
|
|
656
|
+
@contextmenu=${(e) => this.showContextMenu(e, section.name, pageName)}
|
|
445
657
|
>
|
|
446
658
|
<i class="material-symbols-outlined">insert_drive_file</i>
|
|
447
659
|
<div class="text">${this.highlightMatch(pageName)}</div>
|
|
@@ -450,62 +662,95 @@ let WccSidebar = (() => {
|
|
|
450
662
|
});
|
|
451
663
|
}
|
|
452
664
|
else {
|
|
453
|
-
// type === 'elements'
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
const
|
|
457
|
-
const
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
if (isMultiDemo) {
|
|
461
|
-
// Multi-demo element - render as expandable folder
|
|
462
|
-
return html `
|
|
463
|
-
<div
|
|
464
|
-
class="selectOption folder ${isExpanded ? 'expanded' : ''} ${isSelected ? 'selected' : ''}"
|
|
465
|
-
@click=${() => this.toggleExpanded(elementName)}
|
|
466
|
-
>
|
|
467
|
-
<i class="material-symbols-outlined expand-icon">chevron_right</i>
|
|
468
|
-
<i class="material-symbols-outlined">folder</i>
|
|
469
|
-
<div class="text">${this.highlightMatch(elementName)}</div>
|
|
470
|
-
</div>
|
|
471
|
-
${isExpanded ? html `
|
|
472
|
-
<div class="demo-children">
|
|
473
|
-
${Array.from({ length: demoCount }, (_, i) => {
|
|
474
|
-
const demoIndex = i;
|
|
475
|
-
const isThisDemoSelected = isSelected && this.dashboardRef.selectedDemoIndex === demoIndex;
|
|
476
|
-
return html `
|
|
477
|
-
<div
|
|
478
|
-
class="demo-child ${isThisDemoSelected ? 'selected' : ''}"
|
|
479
|
-
@click=${async () => {
|
|
480
|
-
await plugins.deesDomtools.DomTools.setupDomTools();
|
|
481
|
-
this.selectItem('element', elementName, item, demoIndex, section);
|
|
482
|
-
}}
|
|
483
|
-
>
|
|
484
|
-
<i class="material-symbols-outlined">play_circle</i>
|
|
485
|
-
<div class="text">demo${demoIndex + 1}</div>
|
|
486
|
-
</div>
|
|
487
|
-
`;
|
|
488
|
-
})}
|
|
489
|
-
</div>
|
|
490
|
-
` : null}
|
|
491
|
-
`;
|
|
665
|
+
// type === 'elements' - group by demoGroup
|
|
666
|
+
const groupedItems = new Map();
|
|
667
|
+
for (const entry of filteredEntries) {
|
|
668
|
+
const [, item] = entry;
|
|
669
|
+
const group = item.demoGroup || null;
|
|
670
|
+
if (!groupedItems.has(group)) {
|
|
671
|
+
groupedItems.set(group, []);
|
|
492
672
|
}
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
673
|
+
groupedItems.get(group).push(entry);
|
|
674
|
+
}
|
|
675
|
+
const result = [];
|
|
676
|
+
// Render ungrouped items first
|
|
677
|
+
const ungrouped = groupedItems.get(null) || [];
|
|
678
|
+
for (const entry of ungrouped) {
|
|
679
|
+
result.push(this.renderElementItem(entry, section));
|
|
680
|
+
}
|
|
681
|
+
// Render grouped items
|
|
682
|
+
for (const [groupName, items] of groupedItems) {
|
|
683
|
+
if (groupName === null)
|
|
684
|
+
continue;
|
|
685
|
+
result.push(html `
|
|
686
|
+
<div class="item-group">
|
|
687
|
+
<span class="item-group-legend">${groupName}</span>
|
|
688
|
+
${items.map((entry) => this.renderElementItem(entry, section))}
|
|
689
|
+
</div>
|
|
690
|
+
`);
|
|
691
|
+
}
|
|
692
|
+
return result;
|
|
693
|
+
}
|
|
694
|
+
}
|
|
695
|
+
/**
|
|
696
|
+
* Render a single element item (used by renderSectionItems)
|
|
697
|
+
*/
|
|
698
|
+
renderElementItem(entry, section) {
|
|
699
|
+
const [elementName, item] = entry;
|
|
700
|
+
const anonItem = item;
|
|
701
|
+
const demoCount = anonItem.demo ? getDemoCount(anonItem.demo) : 0;
|
|
702
|
+
const isMultiDemo = anonItem.demo && hasMultipleDemos(anonItem.demo);
|
|
703
|
+
const isExpanded = this.expandedElements.has(elementName);
|
|
704
|
+
const isSelected = this.selectedItem === item;
|
|
705
|
+
const isPinned = this.isPinned(section.name, elementName);
|
|
706
|
+
if (isMultiDemo) {
|
|
707
|
+
// Multi-demo element - render as expandable folder
|
|
708
|
+
return html `
|
|
709
|
+
<div
|
|
710
|
+
class="selectOption folder ${isExpanded ? 'expanded' : ''} ${isSelected ? 'selected' : ''} ${isPinned ? 'pinned' : ''}"
|
|
711
|
+
@click=${() => this.toggleExpanded(elementName)}
|
|
712
|
+
@contextmenu=${(e) => this.showContextMenu(e, section.name, elementName)}
|
|
713
|
+
>
|
|
714
|
+
<i class="material-symbols-outlined expand-icon">chevron_right</i>
|
|
715
|
+
<div class="text">${this.highlightMatch(elementName)}</div>
|
|
716
|
+
</div>
|
|
717
|
+
${isExpanded ? html `
|
|
718
|
+
<div class="demo-children">
|
|
719
|
+
${Array.from({ length: demoCount }, (_, i) => {
|
|
720
|
+
const demoIndex = i;
|
|
721
|
+
const isThisDemoSelected = isSelected && this.dashboardRef.selectedDemoIndex === demoIndex;
|
|
722
|
+
return html `
|
|
723
|
+
<div
|
|
724
|
+
class="demo-child ${isThisDemoSelected ? 'selected' : ''}"
|
|
725
|
+
@click=${async () => {
|
|
726
|
+
await plugins.deesDomtools.DomTools.setupDomTools();
|
|
727
|
+
this.selectItem('element', elementName, item, demoIndex, section);
|
|
728
|
+
}}
|
|
729
|
+
>
|
|
730
|
+
<i class="material-symbols-outlined">play_circle</i>
|
|
731
|
+
<div class="text">demo${demoIndex + 1}</div>
|
|
732
|
+
</div>
|
|
733
|
+
`;
|
|
734
|
+
})}
|
|
735
|
+
</div>
|
|
736
|
+
` : null}
|
|
737
|
+
`;
|
|
738
|
+
}
|
|
739
|
+
else {
|
|
740
|
+
// Single demo element
|
|
741
|
+
return html `
|
|
742
|
+
<div
|
|
743
|
+
class="selectOption ${isSelected ? 'selected' : ''} ${isPinned ? 'pinned' : ''}"
|
|
744
|
+
@click=${async () => {
|
|
745
|
+
await plugins.deesDomtools.DomTools.setupDomTools();
|
|
746
|
+
this.selectItem('element', elementName, item, 0, section);
|
|
747
|
+
}}
|
|
748
|
+
@contextmenu=${(e) => this.showContextMenu(e, section.name, elementName)}
|
|
749
|
+
>
|
|
750
|
+
<i class="material-symbols-outlined">featured_video</i>
|
|
751
|
+
<div class="text">${this.highlightMatch(elementName)}</div>
|
|
752
|
+
</div>
|
|
753
|
+
`;
|
|
509
754
|
}
|
|
510
755
|
}
|
|
511
756
|
toggleSectionCollapsed(sectionName) {
|
|
@@ -554,7 +799,7 @@ let WccSidebar = (() => {
|
|
|
554
799
|
updated(changedProperties) {
|
|
555
800
|
super.updated(changedProperties);
|
|
556
801
|
// Auto-expand folder when a multi-demo element is selected
|
|
557
|
-
if (changedProperties.has('selectedItem') && this.selectedItem) {
|
|
802
|
+
if (changedProperties.has('selectedItem') && this.selectedItem && this.dashboardRef?.sections) {
|
|
558
803
|
// Find the element in any section
|
|
559
804
|
for (const section of this.dashboardRef.sections) {
|
|
560
805
|
if (section.type !== 'elements')
|
|
@@ -576,6 +821,44 @@ let WccSidebar = (() => {
|
|
|
576
821
|
}
|
|
577
822
|
}
|
|
578
823
|
}
|
|
824
|
+
// ============ Resize functionality ============
|
|
825
|
+
startResize = (e) => {
|
|
826
|
+
e.preventDefault();
|
|
827
|
+
this.isResizing = true;
|
|
828
|
+
const startX = e.clientX;
|
|
829
|
+
const startWidth = this.sidebarWidth;
|
|
830
|
+
// Cache references once at start
|
|
831
|
+
const frame = this.dashboardRef?.shadowRoot?.querySelector('wcc-frame');
|
|
832
|
+
const properties = this.dashboardRef?.shadowRoot?.querySelector('wcc-properties');
|
|
833
|
+
// Disable frame transition during resize
|
|
834
|
+
if (frame) {
|
|
835
|
+
frame.isResizing = true;
|
|
836
|
+
}
|
|
837
|
+
const onMouseMove = (e) => {
|
|
838
|
+
const newWidth = Math.min(400, Math.max(150, startWidth + (e.clientX - startX)));
|
|
839
|
+
this.sidebarWidth = newWidth;
|
|
840
|
+
// Update frame and properties directly
|
|
841
|
+
if (frame) {
|
|
842
|
+
frame.sidebarWidth = newWidth;
|
|
843
|
+
}
|
|
844
|
+
if (properties) {
|
|
845
|
+
properties.sidebarWidth = newWidth;
|
|
846
|
+
}
|
|
847
|
+
};
|
|
848
|
+
const onMouseUp = () => {
|
|
849
|
+
this.isResizing = false;
|
|
850
|
+
document.removeEventListener('mousemove', onMouseMove);
|
|
851
|
+
document.removeEventListener('mouseup', onMouseUp);
|
|
852
|
+
// Re-enable frame transition
|
|
853
|
+
if (frame) {
|
|
854
|
+
frame.isResizing = false;
|
|
855
|
+
}
|
|
856
|
+
// Dispatch event on release for URL persistence
|
|
857
|
+
this.dispatchEvent(new CustomEvent('widthChanged', { detail: this.sidebarWidth }));
|
|
858
|
+
};
|
|
859
|
+
document.addEventListener('mousemove', onMouseMove);
|
|
860
|
+
document.addEventListener('mouseup', onMouseUp);
|
|
861
|
+
};
|
|
579
862
|
selectItem(typeArg, itemNameArg, itemArg, demoIndex = 0, section) {
|
|
580
863
|
console.log('selected item');
|
|
581
864
|
console.log(itemNameArg);
|
|
@@ -606,4 +889,4 @@ let WccSidebar = (() => {
|
|
|
606
889
|
return WccSidebar = _classThis;
|
|
607
890
|
})();
|
|
608
891
|
export { WccSidebar };
|
|
609
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2NjLXNpZGViYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvd2NjLXNpZGViYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBdUIsS0FBSyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckgsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7SUFJMUQsVUFBVTs0QkFEdEIsYUFBYSxDQUFDLGFBQWEsQ0FBQzs7OztzQkFDRyxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQUFuQixTQUFRLFdBQVc7Ozs7d0NBQ3hDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQzt3Q0FHOUIsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO3dDQUc5QixRQUFRLEVBQUU7b0NBR1YsUUFBUSxFQUFFOzRDQUlWLEtBQUssRUFBRTs2Q0FJUCxLQUFLLEVBQUU7dUNBSVAsUUFBUSxFQUFFO1lBcEJYLHlMQUFTLFlBQVksNkJBQVosWUFBWSxtR0FBaUM7WUFHdEQseUxBQVMsWUFBWSw2QkFBWixZQUFZLG1HQUFlO1lBR3BDLHlMQUFTLFlBQVksNkJBQVosWUFBWSxtR0FBZTtZQUdwQyw2S0FBUyxRQUFRLDZCQUFSLFFBQVEsMkZBQWtCO1lBSW5DLHFNQUFTLGdCQUFnQiw2QkFBaEIsZ0JBQWdCLDJHQUEwQjtZQUluRCx3TUFBUyxpQkFBaUIsNkJBQWpCLGlCQUFpQiw2R0FBMEI7WUFJcEQsc0xBQVMsV0FBVyw2QkFBWCxX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
|
|
892
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2NjLXNpZGViYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvd2NjLXNpZGViYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBdUIsS0FBSyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckgsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0lBR3pDLFVBQVU7NEJBRHRCLGFBQWEsQ0FBQyxhQUFhLENBQUM7Ozs7c0JBQ0csV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzswQkFBbkIsU0FBUSxXQUFXOzs7O3dDQUN4QyxRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7d0NBRzlCLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQzt3Q0FHOUIsUUFBUSxFQUFFO29DQUdWLFFBQVEsRUFBRTs0Q0FJVixLQUFLLEVBQUU7NkNBSVAsS0FBSyxFQUFFO3VDQUlQLFFBQVEsRUFBRTt1Q0FJVixRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7d0NBSTlCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztzQ0FJMUIsS0FBSyxFQUFFO1lBaENSLHlMQUFTLFlBQVksNkJBQVosWUFBWSxtR0FBaUM7WUFHdEQseUxBQVMsWUFBWSw2QkFBWixZQUFZLG1HQUFlO1lBR3BDLHlMQUFT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
|