@design.estate/dees-wcctools 1.0.97 → 1.0.98
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 +6 -6
- package/dist_bundle/bundle.js.map +2 -2
- package/dist_ts_web/elements/wcc-properties.js +8 -8
- package/dist_watch/bundle.js +6 -6
- package/dist_watch/bundle.js.map +2 -2
- package/package.json +1 -1
- package/readme.hints.md +5 -3
- package/readme.plan.md +13 -1
- package/ts_web/elements/wcc-properties.ts +7 -7
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@design.estate/dees-wcctools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.98",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A set of web component tools for creating element catalogues, enabling the structured development and documentation of custom elements and pages.",
|
|
6
6
|
"exports": {
|
package/readme.hints.md
CHANGED
|
@@ -25,9 +25,11 @@ The properties panel had timing issues detecting rendered elements because:
|
|
|
25
25
|
|
|
26
26
|
### Code Flow
|
|
27
27
|
1. Dashboard renders element demo into viewport using `render(anonItem.demo(), viewport)`
|
|
28
|
-
2. Properties panel waits
|
|
29
|
-
3.
|
|
30
|
-
4.
|
|
28
|
+
2. Properties panel waits 200ms for demo wrappers to run and set initial values
|
|
29
|
+
3. Searches recursively for the element instance
|
|
30
|
+
4. If not found, retries with delays to handle async rendering
|
|
31
|
+
5. Once found, extracts and displays element properties
|
|
32
|
+
6. Uses property binding (`.value=`) instead of attribute binding to prevent input events during initialization
|
|
31
33
|
|
|
32
34
|
## Demo Tools
|
|
33
35
|
|
package/readme.plan.md
CHANGED
|
@@ -85,4 +85,16 @@ These test various scenarios:
|
|
|
85
85
|
- Complex data type display and editing
|
|
86
86
|
- Element detection inside dees-demowrapper
|
|
87
87
|
- Error handling for problematic values
|
|
88
|
-
- Deep nesting and shadow DOM traversal
|
|
88
|
+
- Deep nesting and shadow DOM traversal
|
|
89
|
+
|
|
90
|
+
# Fixed Demo Value Overwriting (COMPLETED)
|
|
91
|
+
|
|
92
|
+
## Issue:
|
|
93
|
+
Properties panel was overwriting values set by demo functions
|
|
94
|
+
|
|
95
|
+
## Solution:
|
|
96
|
+
1. Changed from attribute binding (`value=`) to property binding (`.value=`)
|
|
97
|
+
2. This prevents browser from firing input events during initialization
|
|
98
|
+
3. Added proper number parsing for number inputs
|
|
99
|
+
4. Increased initial wait to 200ms for demo wrappers to complete
|
|
100
|
+
5. Simplified select element handling to use property binding
|
|
@@ -309,8 +309,8 @@ export class WccProperties extends DeesElement {
|
|
|
309
309
|
console.log(anonItem.elementProperties);
|
|
310
310
|
const wccFrame = await this.dashboardRef.wccFrame;
|
|
311
311
|
|
|
312
|
-
// Wait for render to complete
|
|
313
|
-
await new Promise(resolve => setTimeout(resolve,
|
|
312
|
+
// Wait for render to complete and any demo wrappers to run
|
|
313
|
+
await new Promise(resolve => setTimeout(resolve, 200));
|
|
314
314
|
|
|
315
315
|
// Try to find the element with recursive search
|
|
316
316
|
const viewport = await wccFrame.getViewportElement();
|
|
@@ -370,7 +370,7 @@ export class WccProperties extends DeesElement {
|
|
|
370
370
|
case 'String':
|
|
371
371
|
return html`<input
|
|
372
372
|
type="text"
|
|
373
|
-
value=${firstFoundInstantiatedElement[key]}
|
|
373
|
+
.value=${firstFoundInstantiatedElement[key] || ''}
|
|
374
374
|
@input="${(eventArg: any) => {
|
|
375
375
|
firstFoundInstantiatedElement[key] = eventArg.target.value;
|
|
376
376
|
}}"
|
|
@@ -378,14 +378,15 @@ export class WccProperties extends DeesElement {
|
|
|
378
378
|
case 'Number':
|
|
379
379
|
return html`<input
|
|
380
380
|
type="number"
|
|
381
|
-
value=${firstFoundInstantiatedElement[key]}
|
|
381
|
+
.value=${firstFoundInstantiatedElement[key] ?? ''}
|
|
382
382
|
@input="${(eventArg: any) => {
|
|
383
|
-
firstFoundInstantiatedElement[key] = eventArg.target.value;
|
|
383
|
+
firstFoundInstantiatedElement[key] = parseFloat(eventArg.target.value) || 0;
|
|
384
384
|
}}"
|
|
385
385
|
/>`;
|
|
386
386
|
case 'Enum':
|
|
387
387
|
const enumValues: any[] = getEnumValues(property);
|
|
388
388
|
return html`<select
|
|
389
|
+
.value=${firstFoundInstantiatedElement[key] || ''}
|
|
389
390
|
@change="${(eventArg: any) => {
|
|
390
391
|
firstFoundInstantiatedElement[key] = eventArg.target.value;
|
|
391
392
|
}}"
|
|
@@ -393,8 +394,7 @@ export class WccProperties extends DeesElement {
|
|
|
393
394
|
${enumValues.map((valueArg) => {
|
|
394
395
|
return html`
|
|
395
396
|
<option
|
|
396
|
-
|
|
397
|
-
name="${valueArg}"
|
|
397
|
+
value="${valueArg}"
|
|
398
398
|
>
|
|
399
399
|
${valueArg}
|
|
400
400
|
</option>
|