@design.estate/dees-wcctools 3.1.2 → 3.3.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 +293 -101
- package/dist_bundle/bundle.js.map +3 -3
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/wcc-dashboard.d.ts +19 -8
- package/dist_ts_web/elements/wcc-dashboard.js +110 -43
- package/dist_ts_web/elements/wcc-sidebar.d.ts +18 -2
- package/dist_ts_web/elements/wcc-sidebar.js +188 -69
- package/dist_ts_web/index.d.ts +21 -1
- package/dist_ts_web/index.js +55 -3
- package/dist_ts_web/wcctools.interfaces.d.ts +29 -0
- package/dist_ts_web/wcctools.interfaces.js +2 -0
- package/dist_watch/bundle.js +1368 -162
- package/dist_watch/bundle.js.map +4 -4
- package/package.json +1 -1
- package/readme.hints.md +62 -0
- package/readme.md +158 -73
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/wcc-dashboard.ts +107 -35
- package/ts_web/elements/wcc-sidebar.ts +219 -85
- package/ts_web/index.ts +67 -2
- package/ts_web/readme.md +55 -5
- package/ts_web/wcctools.interfaces.ts +31 -0
|
@@ -34,7 +34,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
|
|
|
34
34
|
};
|
|
35
35
|
import * as plugins from '../wcctools.plugins.js';
|
|
36
36
|
import { DeesElement, property, html, customElement, state } from '@design.estate/dees-element';
|
|
37
|
-
import { WccDashboard } from './wcc-dashboard.js';
|
|
37
|
+
import { WccDashboard, getSectionItems } from './wcc-dashboard.js';
|
|
38
38
|
import { getDemoCount, hasMultipleDemos } from './wcctools.helpers.js';
|
|
39
39
|
let WccSidebar = (() => {
|
|
40
40
|
let _classDecorators = [customElement('wcc-sidebar')];
|
|
@@ -57,6 +57,9 @@ let WccSidebar = (() => {
|
|
|
57
57
|
let _expandedElements_decorators;
|
|
58
58
|
let _expandedElements_initializers = [];
|
|
59
59
|
let _expandedElements_extraInitializers = [];
|
|
60
|
+
let _collapsedSections_decorators;
|
|
61
|
+
let _collapsedSections_initializers = [];
|
|
62
|
+
let _collapsedSections_extraInitializers = [];
|
|
60
63
|
var WccSidebar = class extends _classSuper {
|
|
61
64
|
static { _classThis = this; }
|
|
62
65
|
static {
|
|
@@ -66,11 +69,13 @@ let WccSidebar = (() => {
|
|
|
66
69
|
_dashboardRef_decorators = [property()];
|
|
67
70
|
_isNative_decorators = [property()];
|
|
68
71
|
_expandedElements_decorators = [state()];
|
|
72
|
+
_collapsedSections_decorators = [state()];
|
|
69
73
|
__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);
|
|
70
74
|
__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);
|
|
71
75
|
__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);
|
|
72
76
|
__esDecorate(this, null, _isNative_decorators, { kind: "accessor", name: "isNative", static: false, private: false, access: { has: obj => "isNative" in obj, get: obj => obj.isNative, set: (obj, value) => { obj.isNative = value; } }, metadata: _metadata }, _isNative_initializers, _isNative_extraInitializers);
|
|
73
77
|
__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);
|
|
78
|
+
__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);
|
|
74
79
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
75
80
|
WccSidebar = _classThis = _classDescriptor.value;
|
|
76
81
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
@@ -92,6 +97,11 @@ let WccSidebar = (() => {
|
|
|
92
97
|
// Track which elements are expanded (for multi-demo elements)
|
|
93
98
|
get expandedElements() { return this.#expandedElements_accessor_storage; }
|
|
94
99
|
set expandedElements(value) { this.#expandedElements_accessor_storage = value; }
|
|
100
|
+
#collapsedSections_accessor_storage = (__runInitializers(this, _expandedElements_extraInitializers), __runInitializers(this, _collapsedSections_initializers, new Set()));
|
|
101
|
+
// Track which sections are collapsed
|
|
102
|
+
get collapsedSections() { return this.#collapsedSections_accessor_storage; }
|
|
103
|
+
set collapsedSections(value) { this.#collapsedSections_accessor_storage = value; }
|
|
104
|
+
sectionsInitialized = (__runInitializers(this, _collapsedSections_extraInitializers), false);
|
|
95
105
|
render() {
|
|
96
106
|
return html `
|
|
97
107
|
<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" />
|
|
@@ -133,7 +143,7 @@ let WccSidebar = (() => {
|
|
|
133
143
|
padding: 0.5rem 0;
|
|
134
144
|
}
|
|
135
145
|
|
|
136
|
-
|
|
146
|
+
.section-header {
|
|
137
147
|
padding: 0.3rem 0.75rem;
|
|
138
148
|
font-size: 0.65rem;
|
|
139
149
|
font-weight: 500;
|
|
@@ -145,12 +155,45 @@ let WccSidebar = (() => {
|
|
|
145
155
|
background: rgba(59, 130, 246, 0.03);
|
|
146
156
|
border-bottom: 1px solid var(--border);
|
|
147
157
|
border-top: 1px solid var(--border);
|
|
158
|
+
display: flex;
|
|
159
|
+
align-items: center;
|
|
160
|
+
gap: 0.5rem;
|
|
161
|
+
cursor: pointer;
|
|
162
|
+
user-select: none;
|
|
163
|
+
transition: all 0.15s ease;
|
|
148
164
|
}
|
|
149
165
|
|
|
150
|
-
|
|
166
|
+
.section-header:first-child {
|
|
151
167
|
margin-top: 0;
|
|
152
168
|
}
|
|
153
169
|
|
|
170
|
+
.section-header:hover {
|
|
171
|
+
background: rgba(59, 130, 246, 0.08);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.section-header .expand-icon {
|
|
175
|
+
font-size: 14px;
|
|
176
|
+
opacity: 0.5;
|
|
177
|
+
transition: transform 0.2s ease;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.section-header.collapsed .expand-icon {
|
|
181
|
+
transform: rotate(-90deg);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.section-header .section-icon {
|
|
185
|
+
font-size: 14px;
|
|
186
|
+
opacity: 0.6;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.section-content {
|
|
190
|
+
overflow: hidden;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.section-content.collapsed {
|
|
194
|
+
display: none;
|
|
195
|
+
}
|
|
196
|
+
|
|
154
197
|
.material-symbols-outlined {
|
|
155
198
|
font-family: 'Material Symbols Outlined';
|
|
156
199
|
font-weight: normal;
|
|
@@ -284,86 +327,137 @@ let WccSidebar = (() => {
|
|
|
284
327
|
}
|
|
285
328
|
</style>
|
|
286
329
|
<div class="menu">
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
330
|
+
${this.renderSections()}
|
|
331
|
+
</div>
|
|
332
|
+
`;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Initialize collapsed sections from section config
|
|
336
|
+
*/
|
|
337
|
+
initCollapsedSections() {
|
|
338
|
+
if (this.sectionsInitialized)
|
|
339
|
+
return;
|
|
340
|
+
const collapsed = new Set();
|
|
341
|
+
for (const section of this.dashboardRef.sections) {
|
|
342
|
+
if (section.collapsed) {
|
|
343
|
+
collapsed.add(section.name);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
this.collapsedSections = collapsed;
|
|
347
|
+
this.sectionsInitialized = true;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Render all sections
|
|
351
|
+
*/
|
|
352
|
+
renderSections() {
|
|
353
|
+
this.initCollapsedSections();
|
|
354
|
+
return this.dashboardRef.sections.map((section, index) => {
|
|
355
|
+
const isCollapsed = this.collapsedSections.has(section.name);
|
|
356
|
+
const sectionIcon = section.icon || (section.type === 'pages' ? 'insert_drive_file' : 'widgets');
|
|
357
|
+
return html `
|
|
358
|
+
<div
|
|
359
|
+
class="section-header ${isCollapsed ? 'collapsed' : ''}"
|
|
360
|
+
@click=${() => this.toggleSectionCollapsed(section.name)}
|
|
361
|
+
>
|
|
362
|
+
<i class="material-symbols-outlined expand-icon">expand_more</i>
|
|
363
|
+
${section.icon ? html `<i class="material-symbols-outlined section-icon">${section.icon}</i>` : null}
|
|
364
|
+
<span>${section.name}</span>
|
|
365
|
+
</div>
|
|
366
|
+
<div class="section-content ${isCollapsed ? 'collapsed' : ''}">
|
|
367
|
+
${this.renderSectionItems(section)}
|
|
368
|
+
</div>
|
|
369
|
+
`;
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Render items for a section
|
|
374
|
+
*/
|
|
375
|
+
renderSectionItems(section) {
|
|
376
|
+
const entries = getSectionItems(section);
|
|
377
|
+
if (section.type === 'pages') {
|
|
378
|
+
return entries.map(([pageName, item]) => {
|
|
292
379
|
return html `
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
this.selectItem('page', pageName, item, 0);
|
|
380
|
+
<div
|
|
381
|
+
class="selectOption ${this.selectedItem === item ? 'selected' : ''}"
|
|
382
|
+
@click=${async () => {
|
|
383
|
+
await plugins.deesDomtools.DomTools.setupDomTools();
|
|
384
|
+
this.selectItem('page', pageName, item, 0, section);
|
|
298
385
|
}}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
386
|
+
>
|
|
387
|
+
<i class="material-symbols-outlined">insert_drive_file</i>
|
|
388
|
+
<div class="text">${pageName}</div>
|
|
389
|
+
</div>
|
|
390
|
+
`;
|
|
304
391
|
});
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
const
|
|
311
|
-
const
|
|
312
|
-
const isMultiDemo = item.demo && hasMultipleDemos(item.demo);
|
|
392
|
+
}
|
|
393
|
+
else {
|
|
394
|
+
// type === 'elements'
|
|
395
|
+
return entries.map(([elementName, item]) => {
|
|
396
|
+
const anonItem = item;
|
|
397
|
+
const demoCount = anonItem.demo ? getDemoCount(anonItem.demo) : 0;
|
|
398
|
+
const isMultiDemo = anonItem.demo && hasMultipleDemos(anonItem.demo);
|
|
313
399
|
const isExpanded = this.expandedElements.has(elementName);
|
|
314
400
|
const isSelected = this.selectedItem === item;
|
|
315
401
|
if (isMultiDemo) {
|
|
316
402
|
// Multi-demo element - render as expandable folder
|
|
317
403
|
return html `
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
404
|
+
<div
|
|
405
|
+
class="selectOption folder ${isExpanded ? 'expanded' : ''} ${isSelected ? 'selected' : ''}"
|
|
406
|
+
@click=${() => this.toggleExpanded(elementName)}
|
|
407
|
+
>
|
|
408
|
+
<i class="material-symbols-outlined expand-icon">chevron_right</i>
|
|
409
|
+
<i class="material-symbols-outlined">folder</i>
|
|
410
|
+
<div class="text">${elementName}</div>
|
|
411
|
+
</div>
|
|
412
|
+
${isExpanded ? html `
|
|
413
|
+
<div class="demo-children">
|
|
414
|
+
${Array.from({ length: demoCount }, (_, i) => {
|
|
329
415
|
const demoIndex = i;
|
|
330
416
|
const isThisDemoSelected = isSelected && this.dashboardRef.selectedDemoIndex === demoIndex;
|
|
331
417
|
return html `
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
418
|
+
<div
|
|
419
|
+
class="demo-child ${isThisDemoSelected ? 'selected' : ''}"
|
|
420
|
+
@click=${async () => {
|
|
335
421
|
await plugins.deesDomtools.DomTools.setupDomTools();
|
|
336
|
-
this.selectItem('element', elementName, item, demoIndex);
|
|
422
|
+
this.selectItem('element', elementName, item, demoIndex, section);
|
|
337
423
|
}}
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
424
|
+
>
|
|
425
|
+
<i class="material-symbols-outlined">play_circle</i>
|
|
426
|
+
<div class="text">demo${demoIndex + 1}</div>
|
|
427
|
+
</div>
|
|
428
|
+
`;
|
|
343
429
|
})}
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
430
|
+
</div>
|
|
431
|
+
` : null}
|
|
432
|
+
`;
|
|
347
433
|
}
|
|
348
434
|
else {
|
|
349
|
-
// Single demo element
|
|
435
|
+
// Single demo element
|
|
350
436
|
return html `
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
437
|
+
<div
|
|
438
|
+
class="selectOption ${isSelected ? 'selected' : ''}"
|
|
439
|
+
@click=${async () => {
|
|
354
440
|
await plugins.deesDomtools.DomTools.setupDomTools();
|
|
355
|
-
this.selectItem('element', elementName, item, 0);
|
|
441
|
+
this.selectItem('element', elementName, item, 0, section);
|
|
356
442
|
}}
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
443
|
+
>
|
|
444
|
+
<i class="material-symbols-outlined">featured_video</i>
|
|
445
|
+
<div class="text">${elementName}</div>
|
|
446
|
+
</div>
|
|
447
|
+
`;
|
|
362
448
|
}
|
|
363
449
|
});
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
toggleSectionCollapsed(sectionName) {
|
|
453
|
+
const newSet = new Set(this.collapsedSections);
|
|
454
|
+
if (newSet.has(sectionName)) {
|
|
455
|
+
newSet.delete(sectionName);
|
|
456
|
+
}
|
|
457
|
+
else {
|
|
458
|
+
newSet.add(sectionName);
|
|
459
|
+
}
|
|
460
|
+
this.collapsedSections = newSet;
|
|
367
461
|
}
|
|
368
462
|
toggleExpanded(elementName) {
|
|
369
463
|
const newSet = new Set(this.expandedElements);
|
|
@@ -375,14 +469,44 @@ let WccSidebar = (() => {
|
|
|
375
469
|
}
|
|
376
470
|
this.expandedElements = newSet;
|
|
377
471
|
}
|
|
378
|
-
|
|
472
|
+
updated(changedProperties) {
|
|
473
|
+
super.updated(changedProperties);
|
|
474
|
+
// Auto-expand folder when a multi-demo element is selected
|
|
475
|
+
if (changedProperties.has('selectedItem') && this.selectedItem) {
|
|
476
|
+
// Find the element in any section
|
|
477
|
+
for (const section of this.dashboardRef.sections) {
|
|
478
|
+
if (section.type !== 'elements')
|
|
479
|
+
continue;
|
|
480
|
+
const entries = getSectionItems(section);
|
|
481
|
+
const found = entries.find(([_, item]) => item === this.selectedItem);
|
|
482
|
+
if (found) {
|
|
483
|
+
const [elementName, item] = found;
|
|
484
|
+
const anonItem = item;
|
|
485
|
+
if (anonItem.demo && hasMultipleDemos(anonItem.demo)) {
|
|
486
|
+
if (!this.expandedElements.has(elementName)) {
|
|
487
|
+
const newSet = new Set(this.expandedElements);
|
|
488
|
+
newSet.add(elementName);
|
|
489
|
+
this.expandedElements = newSet;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
break;
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
selectItem(typeArg, itemNameArg, itemArg, demoIndex = 0, section) {
|
|
379
498
|
console.log('selected item');
|
|
380
499
|
console.log(itemNameArg);
|
|
381
500
|
console.log(itemArg);
|
|
382
501
|
console.log('demo index:', demoIndex);
|
|
502
|
+
console.log('section:', section?.name);
|
|
383
503
|
this.selectedItem = itemArg;
|
|
384
504
|
this.selectedType = typeArg;
|
|
385
505
|
this.dashboardRef.selectedDemoIndex = demoIndex;
|
|
506
|
+
// Set the selected section on dashboard
|
|
507
|
+
if (section) {
|
|
508
|
+
this.dashboardRef.selectedSection = section;
|
|
509
|
+
}
|
|
386
510
|
this.dispatchEvent(new CustomEvent('selectedType', {
|
|
387
511
|
detail: typeArg
|
|
388
512
|
}));
|
|
@@ -394,15 +518,10 @@ let WccSidebar = (() => {
|
|
|
394
518
|
}));
|
|
395
519
|
this.dashboardRef.buildUrl();
|
|
396
520
|
// Force re-render to update demo child selection indicator
|
|
397
|
-
// (needed when switching between demos of the same element)
|
|
398
521
|
this.requestUpdate();
|
|
399
522
|
}
|
|
400
|
-
constructor() {
|
|
401
|
-
super(...arguments);
|
|
402
|
-
__runInitializers(this, _expandedElements_extraInitializers);
|
|
403
|
-
}
|
|
404
523
|
};
|
|
405
524
|
return WccSidebar = _classThis;
|
|
406
525
|
})();
|
|
407
526
|
export { WccSidebar };
|
|
408
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
527
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2NjLXNpZGViYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvd2NjLXNpZGViYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBdUIsS0FBSyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckgsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7SUFJMUQsVUFBVTs0QkFEdEIsYUFBYSxDQUFDLGFBQWEsQ0FBQzs7OztzQkFDRyxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQUFuQixTQUFRLFdBQVc7Ozs7d0NBQ3hDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQzt3Q0FHOUIsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO3dDQUc5QixRQUFRLEVBQUU7b0NBR1YsUUFBUSxFQUFFOzRDQUlWLEtBQUssRUFBRTs2Q0FJUCxLQUFLLEVBQUU7WUFoQlIseUxBQVMsWUFBWSw2QkFBWixZQUFZLG1HQUFpQztZQUd0RCx5TEFBUyxZQUFZLDZCQUFaLFlBQVksbUdBQWU7WUFHcEMseUxBQVMsWUFBWSw2QkFBWixZQUFZLG1HQUFlO1lBR3BDLDZLQUFTLFFBQVEsNkJBQVIsUUFBUSwyRkFBa0I7WUFJbkMscU1BQVMsZ0JBQWdCLDZCQUFoQixnQkFBZ0IsMkdBQTBCO1lBSW5ELHdNQUFTLGlCQUFpQiw2QkFBakIsaUJBQWlCLDZHQUEwQjtZQW5CdEQsNktBa2RDOzs7WUFsZFksdURBQVU7O1FBRXJCLDZGQUFzRDtR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
|
package/dist_ts_web/index.d.ts
CHANGED
|
@@ -1,9 +1,29 @@
|
|
|
1
1
|
import { LitElement } from 'lit';
|
|
2
2
|
import type { TTemplateFactory } from './elements/wcctools.helpers.js';
|
|
3
|
+
import type { IWccConfig } from './wcctools.interfaces.js';
|
|
3
4
|
export { RecorderService, type IRecorderEvents, type IRecordingOptions } from './services/recorder.service.js';
|
|
4
5
|
export { WccRecordButton } from './elements/wcc-record-button.js';
|
|
5
6
|
export { WccRecordingPanel } from './elements/wcc-recording-panel.js';
|
|
6
|
-
|
|
7
|
+
export type { IWccConfig, IWccSection } from './wcctools.interfaces.js';
|
|
8
|
+
/**
|
|
9
|
+
* Setup WCC Tools dashboard
|
|
10
|
+
*
|
|
11
|
+
* New format (recommended):
|
|
12
|
+
* ```typescript
|
|
13
|
+
* setupWccTools({
|
|
14
|
+
* sections: [
|
|
15
|
+
* { name: 'Elements', type: 'elements', items: elements },
|
|
16
|
+
* { name: 'Pages', type: 'pages', items: pages },
|
|
17
|
+
* ]
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* Legacy format (still supported):
|
|
22
|
+
* ```typescript
|
|
23
|
+
* setupWccTools(elements, pages);
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
declare const setupWccTools: (configOrElements?: IWccConfig | {
|
|
7
27
|
[key: string]: LitElement;
|
|
8
28
|
}, pagesArg?: Record<string, TTemplateFactory>) => void;
|
|
9
29
|
export { setupWccTools };
|
package/dist_ts_web/index.js
CHANGED
|
@@ -4,12 +4,64 @@ import { LitElement } from 'lit';
|
|
|
4
4
|
export { RecorderService } from './services/recorder.service.js';
|
|
5
5
|
export { WccRecordButton } from './elements/wcc-record-button.js';
|
|
6
6
|
export { WccRecordingPanel } from './elements/wcc-recording-panel.js';
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Converts legacy (elements, pages) format to new sections config
|
|
9
|
+
*/
|
|
10
|
+
const convertLegacyToConfig = (elementsArg, pagesArg) => {
|
|
11
|
+
const sections = [];
|
|
12
|
+
if (pagesArg && Object.keys(pagesArg).length > 0) {
|
|
13
|
+
sections.push({
|
|
14
|
+
name: 'Pages',
|
|
15
|
+
type: 'pages',
|
|
16
|
+
items: pagesArg,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
if (elementsArg && Object.keys(elementsArg).length > 0) {
|
|
20
|
+
sections.push({
|
|
21
|
+
name: 'Elements',
|
|
22
|
+
type: 'elements',
|
|
23
|
+
items: elementsArg,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
return { sections };
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Check if the argument is the new config format
|
|
30
|
+
*/
|
|
31
|
+
const isWccConfig = (arg) => {
|
|
32
|
+
return arg && typeof arg === 'object' && 'sections' in arg && Array.isArray(arg.sections);
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Setup WCC Tools dashboard
|
|
36
|
+
*
|
|
37
|
+
* New format (recommended):
|
|
38
|
+
* ```typescript
|
|
39
|
+
* setupWccTools({
|
|
40
|
+
* sections: [
|
|
41
|
+
* { name: 'Elements', type: 'elements', items: elements },
|
|
42
|
+
* { name: 'Pages', type: 'pages', items: pages },
|
|
43
|
+
* ]
|
|
44
|
+
* });
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* Legacy format (still supported):
|
|
48
|
+
* ```typescript
|
|
49
|
+
* setupWccTools(elements, pages);
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
const setupWccTools = (configOrElements, pagesArg) => {
|
|
53
|
+
let config;
|
|
54
|
+
if (isWccConfig(configOrElements)) {
|
|
55
|
+
config = configOrElements;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
config = convertLegacyToConfig(configOrElements, pagesArg);
|
|
59
|
+
}
|
|
8
60
|
let hasRun = false;
|
|
9
61
|
const runWccToolsSetup = async () => {
|
|
10
62
|
if (document.readyState === 'complete' && !hasRun) {
|
|
11
63
|
hasRun = true;
|
|
12
|
-
const wccTools = new WccDashboard(
|
|
64
|
+
const wccTools = new WccDashboard(config);
|
|
13
65
|
document.querySelector('body').append(wccTools);
|
|
14
66
|
}
|
|
15
67
|
};
|
|
@@ -17,4 +69,4 @@ const setupWccTools = (elementsArg, pagesArg) => {
|
|
|
17
69
|
runWccToolsSetup();
|
|
18
70
|
};
|
|
19
71
|
export { setupWccTools };
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c193ZWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFJakMsMENBQTBDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQWdELE1BQU0sZ0NBQWdDLENBQUM7QUFDL0csT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBS3RFOztHQUVHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixXQUEyQyxFQUMzQyxRQUEyQyxFQUMvQixFQUFFO0lBQ2QsTUFBTSxRQUFRLEdBQWtCLEVBQUUsQ0FBQztJQUVuQyxJQUFJLFFBQVEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqRCxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ1osSUFBSSxFQUFFLE9BQU87WUFDYixJQUFJLEVBQUUsT0FBTztZQUNiLEtBQUssRUFBRSxRQUFRO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLFdBQVcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ1osSUFBSSxFQUFFLFVBQVU7WUFDaEIsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLFdBQVc7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBUSxFQUFxQixFQUFFO0lBQ2xELE9BQU8sR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxVQUFVLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzVGLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sYUFBYSxHQUFHLENBQ3BCLGdCQUE2RCxFQUM3RCxRQUEyQyxFQUMzQyxFQUFFO0lBQ0YsSUFBSSxNQUFrQixDQUFDO0lBRXZCLElBQUksV0FBVyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUNsQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLEdBQUcscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNuQixNQUFNLGdCQUFnQixHQUFHLEtBQUssSUFBSSxFQUFFO1FBQ2xDLElBQUksUUFBUSxDQUFDLFVBQVUsS0FBSyxVQUFVLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsRCxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ2QsTUFBTSxRQUFRLEdBQUcsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUMsQ0FBQztJQUNGLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2hFLGdCQUFnQixFQUFFLENBQUM7QUFDckIsQ0FBQyxDQUFDO0FBRUYsT0FBTyxFQUNMLGFBQWEsRUFDZCxDQUFDIn0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration for a section in the WCC Tools sidebar
|
|
3
|
+
*/
|
|
4
|
+
export interface IWccSection {
|
|
5
|
+
/** Display name for the section header */
|
|
6
|
+
name: string;
|
|
7
|
+
/** How items in this section are rendered - 'elements' show demos, 'pages' render directly */
|
|
8
|
+
type: 'elements' | 'pages';
|
|
9
|
+
/** The items in this section - either element classes or page factory functions */
|
|
10
|
+
items: Record<string, any>;
|
|
11
|
+
/** Optional filter function to include/exclude items */
|
|
12
|
+
filter?: (name: string, item: any) => boolean;
|
|
13
|
+
/** Optional sort function for ordering items */
|
|
14
|
+
sort?: (a: [string, any], b: [string, any]) => number;
|
|
15
|
+
/** Optional Material icon name for the section header */
|
|
16
|
+
icon?: string;
|
|
17
|
+
/** Whether this section should start collapsed (default: false) */
|
|
18
|
+
collapsed?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Configuration object for setupWccTools
|
|
22
|
+
*/
|
|
23
|
+
export interface IWccConfig {
|
|
24
|
+
sections: IWccSection[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Type for element selection types - now section-based
|
|
28
|
+
*/
|
|
29
|
+
export type TElementType = 'element' | 'page';
|