apprun 3.35.0 → 3.36.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/CHANGELOG.md +28 -0
- package/README.md +134 -16
- package/WHATSNEW.md +28 -12
- package/apprun-book.jpg +0 -0
- package/apprun.d.ts +9 -6
- package/cli/app.js +29 -0
- package/cli/index.html +13 -0
- package/{apprun-cli.js → cli/index.js} +8 -14
- package/dist/apprun-dev-tools.js +1 -2
- package/dist/apprun-dev-tools.js.map +1 -1
- package/dist/apprun-html.esm.js +7 -7
- package/dist/apprun-html.esm.js.map +1 -1
- package/dist/apprun-html.js +1 -1
- package/dist/apprun-html.js.map +1 -1
- package/dist/apprun-play-html.esm.js +7 -7
- package/dist/apprun-play-html.esm.js.map +1 -1
- package/dist/apprun-play.js +1 -1
- package/dist/apprun-play.js.map +1 -1
- package/dist/apprun.esm.js +1 -1
- package/dist/apprun.esm.js.map +1 -1
- package/dist/apprun.js +1 -1
- package/dist/apprun.js.map +1 -1
- package/esm/app.js +60 -12
- package/esm/app.js.map +1 -1
- package/esm/apprun-dev-tools.js +1 -7
- package/esm/apprun-dev-tools.js.map +1 -1
- package/esm/apprun-html.js +8 -4
- package/esm/apprun-html.js.map +1 -1
- package/esm/apprun.js +81 -17
- package/esm/apprun.js.map +1 -1
- package/esm/component.js +60 -19
- package/esm/component.js.map +1 -1
- package/esm/decorator.js +22 -5
- package/esm/decorator.js.map +1 -1
- package/esm/directive.js +64 -13
- package/esm/directive.js.map +1 -1
- package/esm/router.js +263 -22
- package/esm/router.js.map +1 -1
- package/esm/type-utils.js +91 -0
- package/esm/type-utils.js.map +1 -0
- package/esm/types.js +32 -11
- package/esm/types.js.map +1 -1
- package/esm/vdom-my-new.js +329 -0
- package/esm/vdom-my-new.js.map +1 -0
- package/esm/vdom-my-prop-attr.js +227 -0
- package/esm/vdom-my-prop-attr.js.map +1 -0
- package/esm/vdom-my.js +77 -88
- package/esm/vdom-my.js.map +1 -1
- package/esm/version.js +15 -0
- package/esm/version.js.map +1 -0
- package/esm/web-component.js +30 -10
- package/esm/web-component.js.map +1 -1
- package/index.html +1 -1
- package/jest.config.js +3 -8
- package/jest.setup.js +29 -3
- package/jsx-runtime.js +1 -1
- package/jsx-runtime.js.map +1 -1
- package/package.json +7 -7
- package/src/app.ts +58 -12
- package/src/apprun-dev-tools.tsx +1 -7
- package/src/apprun-html.ts +8 -4
- package/src/apprun.ts +97 -20
- package/src/component.ts +62 -20
- package/src/decorator.ts +23 -6
- package/src/directive.ts +64 -13
- package/src/router.ts +282 -20
- package/src/type-utils.ts +130 -0
- package/src/types.ts +33 -12
- package/src/vdom-my-new.ts +311 -0
- package/src/vdom-my-prop-attr.ts +241 -0
- package/src/vdom-my.ts +82 -71
- package/src/version.ts +16 -0
- package/src/web-component.ts +31 -11
- package/cli/export.js +0 -92
- package/cli/import.js +0 -68
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VDOM Property and Attribute Handler
|
|
3
|
+
* Standards-compliant property/attribute handling with caching and special element support
|
|
4
|
+
* Features: Skip logic for preserving user interactions during VDOM reconciliation
|
|
5
|
+
* Exports: updateProps - Main function for DOM element property updates
|
|
6
|
+
* Updated: 2025-01-14 - Added skip logic for focus-sensitive, scroll, and media properties
|
|
7
|
+
*/
|
|
8
|
+
import { find, html, svg } from 'property-information';
|
|
9
|
+
const ATTR_PROPS = '_props';
|
|
10
|
+
const propertyInfoCache = new Map();
|
|
11
|
+
// Merge old and new props, handling className -> class conversion and null cleanup
|
|
12
|
+
function mergeProps(oldProps, newProps) {
|
|
13
|
+
if (newProps) {
|
|
14
|
+
newProps['class'] = newProps['class'] || newProps['className'];
|
|
15
|
+
delete newProps['className'];
|
|
16
|
+
}
|
|
17
|
+
if (!oldProps || Object.keys(oldProps).length === 0)
|
|
18
|
+
return newProps || {};
|
|
19
|
+
if (!newProps || Object.keys(newProps).length === 0) {
|
|
20
|
+
const props = {};
|
|
21
|
+
Object.keys(oldProps).forEach(p => props[p] = null);
|
|
22
|
+
return props;
|
|
23
|
+
}
|
|
24
|
+
const props = {};
|
|
25
|
+
Object.keys(oldProps).forEach(p => {
|
|
26
|
+
if (!(p in newProps))
|
|
27
|
+
props[p] = null;
|
|
28
|
+
});
|
|
29
|
+
Object.keys(newProps).forEach(p => props[p] = newProps[p]);
|
|
30
|
+
return props;
|
|
31
|
+
}
|
|
32
|
+
// Convert kebab-case to camelCase for dataset keys
|
|
33
|
+
function convertKebabToCamelCase(str) {
|
|
34
|
+
if (str.length <= 1)
|
|
35
|
+
return str.toLowerCase();
|
|
36
|
+
return str.split('-').map((word, index) => index === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join('');
|
|
37
|
+
}
|
|
38
|
+
// Cached property information lookup
|
|
39
|
+
function getPropertyInfo(name, isSvg) {
|
|
40
|
+
const cacheKey = `${name}:${isSvg}`;
|
|
41
|
+
let info = propertyInfoCache.get(cacheKey);
|
|
42
|
+
if (info === undefined) {
|
|
43
|
+
info = find(isSvg ? svg : html, name) || null;
|
|
44
|
+
propertyInfoCache.set(cacheKey, info);
|
|
45
|
+
}
|
|
46
|
+
return info;
|
|
47
|
+
}
|
|
48
|
+
// Specialized handlers for different attribute types
|
|
49
|
+
function setDatasetAttribute(element, attributeName, value) {
|
|
50
|
+
const camelKey = convertKebabToCamelCase(attributeName.slice(5));
|
|
51
|
+
if (value == null) {
|
|
52
|
+
delete element.dataset[camelKey];
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
element.dataset[camelKey] = String(value);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function setEventHandler(element, name, value) {
|
|
59
|
+
if (!name.startsWith('on'))
|
|
60
|
+
return;
|
|
61
|
+
if (!value || typeof value === 'function') {
|
|
62
|
+
element[name] = value;
|
|
63
|
+
}
|
|
64
|
+
else if (typeof value === 'string') {
|
|
65
|
+
if (value)
|
|
66
|
+
element.setAttribute(name, value);
|
|
67
|
+
else
|
|
68
|
+
element.removeAttribute(name);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function setBooleanAttribute(element, attributeName, value) {
|
|
72
|
+
if (shouldSetBooleanAttribute(value)) {
|
|
73
|
+
element.setAttribute(attributeName, attributeName);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
element.removeAttribute(attributeName);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function setElementProperty(element, propertyName, value) {
|
|
80
|
+
try {
|
|
81
|
+
element[propertyName] = value;
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
setElementAttribute(element, propertyName, value, false);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function setElementAttribute(element, attributeName, value, isSvg) {
|
|
88
|
+
if (value == null) {
|
|
89
|
+
element.removeAttribute(attributeName);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const stringValue = String(value);
|
|
93
|
+
if (isSvg && attributeName.includes(':')) {
|
|
94
|
+
const [prefix] = attributeName.split(':');
|
|
95
|
+
if (prefix === 'xlink') {
|
|
96
|
+
element.setAttributeNS('http://www.w3.org/1999/xlink', attributeName, stringValue);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
element.setAttribute(attributeName, stringValue);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
element.setAttribute(attributeName, stringValue);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function shouldSetBooleanAttribute(value) {
|
|
107
|
+
if (value == null || value === false || value === '')
|
|
108
|
+
return false;
|
|
109
|
+
if (value === true)
|
|
110
|
+
return true;
|
|
111
|
+
if (typeof value === 'string') {
|
|
112
|
+
const lowerValue = value.toLowerCase();
|
|
113
|
+
return lowerValue !== 'false' && value !== '0';
|
|
114
|
+
}
|
|
115
|
+
return Boolean(value);
|
|
116
|
+
}
|
|
117
|
+
// Core property/attribute setting function - handles all property types with skip logic
|
|
118
|
+
function setAttributeOrProperty(element, name, value, isSvg) {
|
|
119
|
+
// Check if we should skip this property update to preserve user interaction
|
|
120
|
+
if (shouldSkipPatch(element, name)) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
// Special cases with dedicated handling
|
|
124
|
+
if (name === 'style') {
|
|
125
|
+
if (element.style.cssText)
|
|
126
|
+
element.style.cssText = '';
|
|
127
|
+
if (typeof value === 'string')
|
|
128
|
+
element.style.cssText = value;
|
|
129
|
+
else if (value && typeof value === 'object') {
|
|
130
|
+
for (const s in value) {
|
|
131
|
+
if (element.style[s] !== value[s])
|
|
132
|
+
element.style[s] = value[s];
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
if (name === 'key') {
|
|
138
|
+
if (value !== undefined && value !== null)
|
|
139
|
+
element.key = value;
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
if (name.startsWith('data-')) {
|
|
143
|
+
setDatasetAttribute(element, name, value);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
if (name.startsWith('on')) {
|
|
147
|
+
setEventHandler(element, name, value);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
// Form elements with special property requirements
|
|
151
|
+
if ((element.tagName === 'INPUT' || element.tagName === 'TEXTAREA' || element.tagName === 'SELECT') &&
|
|
152
|
+
(name === 'value' || name === 'selected' || name === 'selectedIndex')) {
|
|
153
|
+
setElementProperty(element, name, value);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
// Input checked needs both property and attribute
|
|
157
|
+
if (element.tagName === 'INPUT' && name === 'checked') {
|
|
158
|
+
setElementProperty(element, name, value);
|
|
159
|
+
setBooleanAttribute(element, name, value);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
// Use property information for standard attributes
|
|
163
|
+
const info = getPropertyInfo(name, isSvg);
|
|
164
|
+
if (info) {
|
|
165
|
+
if (info.boolean || info.overloadedBoolean) {
|
|
166
|
+
setBooleanAttribute(element, info.attribute, value);
|
|
167
|
+
}
|
|
168
|
+
else if (info.mustUseProperty && !isSvg) {
|
|
169
|
+
setElementProperty(element, info.property, value);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
setElementAttribute(element, info.attribute, value, isSvg);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
// Fallback handling for unknown attributes
|
|
177
|
+
if (name.startsWith('aria-') || name === 'role') {
|
|
178
|
+
setElementAttribute(element, name, value, isSvg);
|
|
179
|
+
}
|
|
180
|
+
else if (name in element || element[name] !== undefined) {
|
|
181
|
+
setElementProperty(element, name, value);
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
setElementAttribute(element, name, value, isSvg);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
// Skip logic for preventing user interaction disruption during VDOM reconciliation
|
|
189
|
+
function shouldSkipPatch(dom, prop) {
|
|
190
|
+
if (document.activeElement === dom) {
|
|
191
|
+
return ['value', 'selectionStart', 'selectionEnd', 'selectionDirection']
|
|
192
|
+
.includes(prop);
|
|
193
|
+
}
|
|
194
|
+
if (prop === 'scrollTop' || prop === 'scrollLeft') {
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
if (dom instanceof HTMLMediaElement &&
|
|
198
|
+
['currentTime', 'paused', 'playbackRate', 'volume'].includes(prop)) {
|
|
199
|
+
return true;
|
|
200
|
+
}
|
|
201
|
+
return false; // default: allow normal diff logic
|
|
202
|
+
}
|
|
203
|
+
function isValidAttributeName(name) {
|
|
204
|
+
return /^[a-zA-Z_:][\w\-:.]*$/.test(name) &&
|
|
205
|
+
!name.includes('<') && !name.includes('>') && !name.includes('"') && !name.includes("'");
|
|
206
|
+
}
|
|
207
|
+
// Main exported function for updating element properties
|
|
208
|
+
export function updateProps(element, props, isSvg) {
|
|
209
|
+
// console.assert(!!element);
|
|
210
|
+
const cached = element[ATTR_PROPS] || {};
|
|
211
|
+
const merged = mergeProps(cached, props);
|
|
212
|
+
element[ATTR_PROPS] = props || {};
|
|
213
|
+
applyPropertiesToElement(element, merged, props, isSvg);
|
|
214
|
+
}
|
|
215
|
+
// Apply merged properties to element with ref handling
|
|
216
|
+
function applyPropertiesToElement(element, mergedProps, originalProps, isSvg) {
|
|
217
|
+
for (const name in mergedProps) {
|
|
218
|
+
if (isValidAttributeName(name)) {
|
|
219
|
+
setAttributeOrProperty(element, name, mergedProps[name], isSvg);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
// Handle ref callback
|
|
223
|
+
if (mergedProps && typeof mergedProps['ref'] === 'function') {
|
|
224
|
+
window.requestAnimationFrame(() => mergedProps['ref'](element));
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=vdom-my-prop-attr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vdom-my-prop-attr.js","sourceRoot":"","sources":["../src/vdom-my-prop-attr.ts"],"names":[],"mappings":"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"}
|
package/esm/vdom-my.js
CHANGED
|
@@ -1,8 +1,51 @@
|
|
|
1
|
+
/** * VDOM Implementation for AppRun
|
|
2
|
+
*
|
|
3
|
+
* Notes for AppRun’s key prop
|
|
4
|
+
* Use the key prop only if you need to preserve browser-side DOM state (such as cursor
|
|
5
|
+
* position in an <input>, focus, or maintaining state in inline components).
|
|
6
|
+
*
|
|
7
|
+
* For most use cases, especially with stateless or purely data-driven UIs, key is not
|
|
8
|
+
* needed and may decrease performance by forcing DOM moves.
|
|
9
|
+
*
|
|
10
|
+
* AppRun aggressively updates DOM to match your vdom, so DOM node preservation is
|
|
11
|
+
* only valuable when you intentionally depend on browser-managed state.
|
|
12
|
+
*
|
|
13
|
+
* | Use Case | Should I use `key`? | Why |
|
|
14
|
+
* | ----------------------------- | ------------------- | --------------------- |
|
|
15
|
+
* | Preserve input cursor/focus | ✅ Yes | Keeps browser state |
|
|
16
|
+
* | Inline stateful component | ✅ Yes | Preserves component |
|
|
17
|
+
* | Regular data list (stateless) | 🚫 No | Unnecessary DOM moves |
|
|
18
|
+
* | Purely visual updates | 🚫 No | No state to preserve |
|
|
19
|
+
*
|
|
20
|
+
* Features:
|
|
21
|
+
* - Virtual DOM rendering and diffing for efficient DOM updates
|
|
22
|
+
* - JSX Fragment support for both Babel and TypeScript
|
|
23
|
+
* - Element creation with props, children, and event handling
|
|
24
|
+
* - SVG element support with proper namespace handling
|
|
25
|
+
* - Component lifecycle management and caching
|
|
26
|
+
* - Keyed element optimization with automatic cleanup for memory management
|
|
27
|
+
* - Safe HTML insertion and text node creation
|
|
28
|
+
* - Directive processing integration
|
|
29
|
+
*
|
|
30
|
+
* Implementation:
|
|
31
|
+
* - Uses plain JavaScript object for keyCache instead of Map for better performance
|
|
32
|
+
* - Implements automatic cleanup of disconnected elements from keyCache
|
|
33
|
+
* - Supports both string and function-based tags
|
|
34
|
+
* - Handles component mounting and state management
|
|
35
|
+
* - Optimized children updating with minimal DOM operations
|
|
36
|
+
* - Memory-efficient caching with configurable thresholds (500 ops, 1000 max size)
|
|
37
|
+
*
|
|
38
|
+
* Recent Changes:
|
|
39
|
+
* - 2025-07-15: Converted keyCache from Map to plain object ({}) for improved performance
|
|
40
|
+
* - Updated cleanup functions to use object property deletion instead of Map methods
|
|
41
|
+
* - Enhanced memory management with automatic cleanup of disconnected elements
|
|
42
|
+
* - Added comprehensive key prop usage documentation and guidelines
|
|
43
|
+
*/
|
|
1
44
|
import directive from './directive';
|
|
45
|
+
import { updateProps } from './vdom-my-prop-attr';
|
|
2
46
|
export function Fragment(props, ...children) {
|
|
3
47
|
return collect(children);
|
|
4
48
|
}
|
|
5
|
-
const ATTR_PROPS = '_props';
|
|
6
49
|
function collect(children) {
|
|
7
50
|
const ch = [];
|
|
8
51
|
const push = (c) => {
|
|
@@ -20,6 +63,27 @@ function collect(children) {
|
|
|
20
63
|
});
|
|
21
64
|
return ch;
|
|
22
65
|
}
|
|
66
|
+
const keyCache = {};
|
|
67
|
+
let cleanupCounter = 0;
|
|
68
|
+
const CLEANUP_THRESHOLD = 500; // Cleanup every 500 operations
|
|
69
|
+
const MAX_CACHE_SIZE = 1000;
|
|
70
|
+
// Lightweight cleanup function - only runs when needed
|
|
71
|
+
function cleanupKeyCache() {
|
|
72
|
+
if (Object.keys(keyCache).length <= MAX_CACHE_SIZE)
|
|
73
|
+
return; // Skip if under limit
|
|
74
|
+
for (const [key, element] of Object.entries(keyCache)) {
|
|
75
|
+
if (!element.isConnected) {
|
|
76
|
+
delete keyCache[key];
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Export cleanup function for manual cleanup if needed
|
|
81
|
+
export function clearKeyCache() {
|
|
82
|
+
for (const key in keyCache) {
|
|
83
|
+
delete keyCache[key];
|
|
84
|
+
}
|
|
85
|
+
cleanupCounter = 0;
|
|
86
|
+
}
|
|
23
87
|
export function createElement(tag, props, ...children) {
|
|
24
88
|
const ch = collect(children);
|
|
25
89
|
if (typeof tag === 'string')
|
|
@@ -36,7 +100,6 @@ export function createElement(tag, props, ...children) {
|
|
|
36
100
|
throw new Error(`Unknown tag in vdom ${tag}`);
|
|
37
101
|
}
|
|
38
102
|
;
|
|
39
|
-
const keyCache = new WeakMap();
|
|
40
103
|
export const updateElement = (element, nodes, component = {}) => {
|
|
41
104
|
// tslint:disable-next-line
|
|
42
105
|
if (nodes == null || nodes === false)
|
|
@@ -68,16 +131,14 @@ function same(el, node) {
|
|
|
68
131
|
return key1.toUpperCase() === key2.toUpperCase();
|
|
69
132
|
}
|
|
70
133
|
function update(element, node, isSvg) {
|
|
71
|
-
if (node['_op'] === 3)
|
|
72
|
-
return;
|
|
73
134
|
// console.assert(!!element);
|
|
74
135
|
isSvg = isSvg || node.tag === "svg";
|
|
75
136
|
if (!same(element, node)) {
|
|
76
137
|
element.parentNode.replaceChild(create(node, isSvg), element);
|
|
77
138
|
return;
|
|
78
139
|
}
|
|
79
|
-
|
|
80
|
-
|
|
140
|
+
updateChildren(element, node.children, isSvg);
|
|
141
|
+
updateProps(element, node.props, isSvg);
|
|
81
142
|
}
|
|
82
143
|
function updateChildren(element, children, isSvg) {
|
|
83
144
|
var _a, _b;
|
|
@@ -86,8 +147,6 @@ function updateChildren(element, children, isSvg) {
|
|
|
86
147
|
const len = Math.min(old_len, new_len);
|
|
87
148
|
for (let i = 0; i < len; i++) {
|
|
88
149
|
const child = children[i];
|
|
89
|
-
if (child['_op'] === 3)
|
|
90
|
-
continue;
|
|
91
150
|
const el = element.childNodes[i];
|
|
92
151
|
if (typeof child === 'string') {
|
|
93
152
|
if (el.textContent !== child) {
|
|
@@ -112,9 +171,9 @@ function updateChildren(element, children, isSvg) {
|
|
|
112
171
|
// console.log(el.key, key);
|
|
113
172
|
const old = keyCache[key];
|
|
114
173
|
if (old) {
|
|
115
|
-
const temp = old.nextSibling;
|
|
174
|
+
// const temp = old.nextSibling;
|
|
116
175
|
element.insertBefore(old, el);
|
|
117
|
-
temp ? element.insertBefore(el, temp) : element.appendChild(el);
|
|
176
|
+
// temp ? element.insertBefore(el, temp) : element.appendChild(el);
|
|
118
177
|
update(element.childNodes[i], child, isSvg);
|
|
119
178
|
}
|
|
120
179
|
else {
|
|
@@ -170,86 +229,16 @@ function create(node, isSvg) {
|
|
|
170
229
|
updateProps(element, node.props, isSvg);
|
|
171
230
|
if (node.children)
|
|
172
231
|
node.children.forEach(child => element.appendChild(create(child, isSvg)));
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
Object.keys(oldProps).forEach(p => props[p] = null);
|
|
181
|
-
if (newProps)
|
|
182
|
-
Object.keys(newProps).forEach(p => props[p] = newProps[p]);
|
|
183
|
-
return props;
|
|
184
|
-
}
|
|
185
|
-
export function updateProps(element, props, isSvg) {
|
|
186
|
-
// console.assert(!!element);
|
|
187
|
-
const cached = element[ATTR_PROPS] || {};
|
|
188
|
-
props = mergeProps(cached, props || {});
|
|
189
|
-
element[ATTR_PROPS] = props;
|
|
190
|
-
for (const name in props) {
|
|
191
|
-
const value = props[name];
|
|
192
|
-
// if (cached[name] === value) continue;
|
|
193
|
-
// console.log('updateProps', name, value);
|
|
194
|
-
if (name.startsWith('data-')) {
|
|
195
|
-
const dname = name.substring(5);
|
|
196
|
-
const cname = dname.replace(/-(\w)/g, (match) => match[1].toUpperCase());
|
|
197
|
-
if (element.dataset[cname] !== value) {
|
|
198
|
-
if (value || value === "")
|
|
199
|
-
element.dataset[cname] = value;
|
|
200
|
-
else
|
|
201
|
-
delete element.dataset[cname];
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
else if (name === 'style') {
|
|
205
|
-
if (element.style.cssText)
|
|
206
|
-
element.style.cssText = '';
|
|
207
|
-
if (typeof value === 'string')
|
|
208
|
-
element.style.cssText = value;
|
|
209
|
-
else {
|
|
210
|
-
for (const s in value) {
|
|
211
|
-
if (element.style[s] !== value[s])
|
|
212
|
-
element.style[s] = value[s];
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
else if (name.startsWith('xlink')) {
|
|
217
|
-
const xname = name.replace('xlink', '').toLowerCase();
|
|
218
|
-
if (value == null || value === false) {
|
|
219
|
-
element.removeAttributeNS('http://www.w3.org/1999/xlink', xname);
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
element.setAttributeNS('http://www.w3.org/1999/xlink', xname, value);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
else if (name.startsWith('on')) {
|
|
226
|
-
if (!value || typeof value === 'function') {
|
|
227
|
-
element[name] = value;
|
|
228
|
-
}
|
|
229
|
-
else if (typeof value === 'string') {
|
|
230
|
-
if (value)
|
|
231
|
-
element.setAttribute(name, value);
|
|
232
|
-
else
|
|
233
|
-
element.removeAttribute(name);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
else if (/^id$|^class$|^list$|^readonly$|^contenteditable$|^role|-|^for$/g.test(name) || isSvg) {
|
|
237
|
-
if (element.getAttribute(name) !== value) {
|
|
238
|
-
if (value)
|
|
239
|
-
element.setAttribute(name, value);
|
|
240
|
-
else
|
|
241
|
-
element.removeAttribute(name);
|
|
242
|
-
}
|
|
232
|
+
if (node.props && node.props.key !== undefined) {
|
|
233
|
+
element.key = node.props.key;
|
|
234
|
+
keyCache[node.props.key] = element;
|
|
235
|
+
// Lightweight cleanup - only when counter reaches threshold
|
|
236
|
+
if (++cleanupCounter >= CLEANUP_THRESHOLD) {
|
|
237
|
+
cleanupKeyCache();
|
|
238
|
+
cleanupCounter = 0;
|
|
243
239
|
}
|
|
244
|
-
else if (element[name] !== value) {
|
|
245
|
-
element[name] = value;
|
|
246
|
-
}
|
|
247
|
-
if (name === 'key' && value)
|
|
248
|
-
keyCache[value] = element;
|
|
249
|
-
}
|
|
250
|
-
if (props && typeof props['ref'] === 'function') {
|
|
251
|
-
window.requestAnimationFrame(() => props['ref'](element));
|
|
252
240
|
}
|
|
241
|
+
return element;
|
|
253
242
|
}
|
|
254
243
|
function render_component(node, parent, idx) {
|
|
255
244
|
const { tag, props, children } = node;
|
package/esm/vdom-my.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vdom-my.js","sourceRoot":"","sources":["../src/vdom-my.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vdom-my.js","sourceRoot":"","sources":["../src/vdom-my.ts"],"names":[],"mappings":"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"}
|
package/esm/version.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version Management Utility
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for AppRun version information.
|
|
5
|
+
* This file ensures version consistency across all modules.
|
|
6
|
+
*
|
|
7
|
+
* The version is derived from package.json and should be updated
|
|
8
|
+
* only when the package version changes.
|
|
9
|
+
*/
|
|
10
|
+
// Import version from package.json to maintain single source of truth
|
|
11
|
+
// This version string is used across the framework
|
|
12
|
+
export const APPRUN_VERSION = '3.36.1';
|
|
13
|
+
// Version string with prefix for global tracking
|
|
14
|
+
export const APPRUN_VERSION_GLOBAL = `AppRun-${APPRUN_VERSION}`;
|
|
15
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,sEAAsE;AACtE,mDAAmD;AACnD,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;AAEvC,iDAAiD;AACjD,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,cAAc,EAAE,CAAC"}
|
package/esm/web-component.js
CHANGED
|
@@ -4,30 +4,50 @@
|
|
|
4
4
|
* This file enables using AppRun components as Web Components:
|
|
5
5
|
* 1. Custom Element Creation
|
|
6
6
|
* - Converts AppRun components to custom elements
|
|
7
|
-
* - Handles lifecycle (connected, disconnected,
|
|
8
|
-
* - Manages shadow DOM and light DOM rendering
|
|
7
|
+
* - Handles lifecycle (connected, disconnected, attributeChanged)
|
|
8
|
+
* - Manages shadow DOM and light DOM rendering options
|
|
9
|
+
* - Automatic element registration with customElements.define()
|
|
9
10
|
*
|
|
10
11
|
* 2. Property/Attribute Sync
|
|
11
|
-
* - Observes attribute changes
|
|
12
|
-
* - Updates component state automatically
|
|
13
|
-
* - Handles camelCase/kebab-case conversion
|
|
14
|
-
* - Supports complex property types
|
|
12
|
+
* - Observes attribute changes with attributeChangedCallback
|
|
13
|
+
* - Updates component state automatically on changes
|
|
14
|
+
* - Handles camelCase/kebab-case conversion automatically
|
|
15
|
+
* - Supports complex property types and JSON parsing
|
|
16
|
+
* - Two-way data binding between attributes and state
|
|
15
17
|
*
|
|
16
18
|
* 3. Event Handling
|
|
17
19
|
* - Proxies events between component and element
|
|
18
|
-
* - Supports both global and local
|
|
19
|
-
* - Maintains proper event bubbling
|
|
20
|
+
* - Supports both global and local event systems
|
|
21
|
+
* - Maintains proper event bubbling and capturing
|
|
22
|
+
* - Custom event dispatching for component communication
|
|
23
|
+
*
|
|
24
|
+
* Features:
|
|
25
|
+
* - Shadow DOM encapsulation support
|
|
26
|
+
* - Attribute observation and change detection
|
|
27
|
+
* - Lifecycle management and cleanup
|
|
28
|
+
* - Property reflection to attributes
|
|
29
|
+
* - Event proxy system
|
|
30
|
+
* - Flexible rendering options
|
|
31
|
+
*
|
|
32
|
+
* Type Safety Improvements (v3.35.1):
|
|
33
|
+
* - Enhanced custom element options typing
|
|
34
|
+
* - Better lifecycle method signatures
|
|
35
|
+
* - Improved attribute/property type safety
|
|
36
|
+
* - Safer DOM manipulation with null checks
|
|
20
37
|
*
|
|
21
38
|
* Usage:
|
|
22
39
|
* ```ts
|
|
23
40
|
* // Register web component
|
|
24
|
-
* @customElement('my-element'
|
|
41
|
+
* @customElement('my-element', {
|
|
42
|
+
* shadow: true,
|
|
43
|
+
* observedAttributes: ['name', 'value']
|
|
44
|
+
* })
|
|
25
45
|
* class MyComponent extends Component {
|
|
26
46
|
* // Regular AppRun component code
|
|
27
47
|
* }
|
|
28
48
|
*
|
|
29
49
|
* // Use in HTML
|
|
30
|
-
* <my-element name="value"></my-element>
|
|
50
|
+
* <my-element name="value" data-prop="complex"></my-element>
|
|
31
51
|
* ```
|
|
32
52
|
*/
|
|
33
53
|
export const customElement = (componentClass, options = {}) => class CustomElement extends HTMLElement {
|
package/esm/web-component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-component.js","sourceRoot":"","sources":["../src/web-component.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"web-component.js","sourceRoot":"","sources":["../src/web-component.ts"],"names":[],"mappings":"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"}
|
package/index.html
CHANGED
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
|
9
9
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.0/animate.min.css">
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="demo/styles.css">
|
|
11
|
-
<script src="docs/assets/apprun-code.js"></script>
|
|
12
11
|
</head>
|
|
13
12
|
<body>
|
|
14
13
|
<!-- navbar -->
|
|
@@ -79,6 +78,7 @@
|
|
|
79
78
|
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
|
|
80
79
|
|
|
81
80
|
<script src="demo/app.js"></script>
|
|
81
|
+
<script src="docs/assets/apprun-code.js"></script>
|
|
82
82
|
|
|
83
83
|
</body>
|
|
84
84
|
</html>
|