@lvce-editor/virtual-dom 1.0.3 → 1.2.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/index.d.ts +2 -0
- package/dist/index.js +88 -27
- package/package.json +1 -1
- package/src/parts/AttachEvent/AttachEvent.ts +6 -0
- package/src/parts/ClearNode/ClearNode.ts +1 -1
- package/src/parts/ComponentUid/ComponentUid.ts +2 -11
- package/src/parts/GetUidTarget/GetUidTarget.ts +11 -0
- package/src/parts/GetWrappedListener/GetWrappedListener.ts +5 -6
- package/src/parts/ListenerCache/ListenerCache.ts +13 -0
- package/src/parts/Main/Main.ts +1 -0
- package/src/parts/RegisterEventListeners/RegisterEventListeners.ts +40 -0
- package/src/parts/RememberFocus/RememberFocus.ts +3 -1
- package/src/parts/RenderInternal/RenderInternal.ts +2 -1
- package/src/parts/UidSymbol/UidSymbol.ts +1 -0
- package/src/parts/VirtualDom/VirtualDom.ts +2 -2
- package/src/parts/VirtualDomElement/VirtualDomElement.ts +4 -4
- package/src/parts/VirtualDomElementProp/VirtualDomElementProp.ts +8 -2
- package/src/parts/VirtualDomElementProps/VirtualDomElementProps.ts +8 -2
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
// src/parts/
|
|
1
|
+
// src/parts/UidSymbol/UidSymbol.ts
|
|
2
2
|
var uidSymbol = Symbol("uid");
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
3
|
+
|
|
4
|
+
// src/parts/GetUidTarget/GetUidTarget.ts
|
|
6
5
|
var getUidTarget = ($Element) => {
|
|
7
6
|
while ($Element) {
|
|
8
7
|
if ($Element[uidSymbol]) {
|
|
@@ -12,6 +11,11 @@ var getUidTarget = ($Element) => {
|
|
|
12
11
|
}
|
|
13
12
|
return void 0;
|
|
14
13
|
};
|
|
14
|
+
|
|
15
|
+
// src/parts/ComponentUid/ComponentUid.ts
|
|
16
|
+
var setComponentUid = ($Element, uid) => {
|
|
17
|
+
$Element[uidSymbol] = uid;
|
|
18
|
+
};
|
|
15
19
|
var getComponentUid = ($Element) => {
|
|
16
20
|
const $Target = getUidTarget($Element);
|
|
17
21
|
if (!$Target) {
|
|
@@ -35,6 +39,47 @@ var setIpc = (value) => {
|
|
|
35
39
|
state.ipc = value;
|
|
36
40
|
};
|
|
37
41
|
|
|
42
|
+
// src/parts/NameAnonymousFunction/NameAnonymousFunction.ts
|
|
43
|
+
var nameAnonymousFunction = (fn, name) => {
|
|
44
|
+
Object.defineProperty(fn, "name", {
|
|
45
|
+
value: name
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// src/parts/RegisterEventListeners/RegisterEventListeners.ts
|
|
50
|
+
var listeners = /* @__PURE__ */ Object.create(null);
|
|
51
|
+
var getArgs = (params, event) => {
|
|
52
|
+
return [...params];
|
|
53
|
+
};
|
|
54
|
+
var createFn = (info) => {
|
|
55
|
+
const fn = (event) => {
|
|
56
|
+
if (info.preventDefault) {
|
|
57
|
+
event.preventDefault(event);
|
|
58
|
+
}
|
|
59
|
+
const uid = getComponentUidFromEvent(event);
|
|
60
|
+
const args = getArgs(info.params, event);
|
|
61
|
+
if (args.length === 0) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const ipc = getIpc();
|
|
65
|
+
ipc.send("Viewlet.executeViewletCommand", uid, ...args);
|
|
66
|
+
};
|
|
67
|
+
nameAnonymousFunction(fn, info.name);
|
|
68
|
+
return fn;
|
|
69
|
+
};
|
|
70
|
+
var registerEventListeners = (id, eventListeners) => {
|
|
71
|
+
const map = /* @__PURE__ */ Object.create(null);
|
|
72
|
+
for (const info of eventListeners) {
|
|
73
|
+
const fn = createFn(info);
|
|
74
|
+
map[info.name] = fn;
|
|
75
|
+
}
|
|
76
|
+
listeners[id] = map;
|
|
77
|
+
};
|
|
78
|
+
var getEventListenerMap = (id) => {
|
|
79
|
+
const map = listeners[id];
|
|
80
|
+
return map;
|
|
81
|
+
};
|
|
82
|
+
|
|
38
83
|
// src/parts/ClearNode/ClearNode.ts
|
|
39
84
|
var clearNode = ($Node) => {
|
|
40
85
|
$Node.textContent = "";
|
|
@@ -269,20 +314,24 @@ var getEventListenerOptions = (eventName) => {
|
|
|
269
314
|
}
|
|
270
315
|
};
|
|
271
316
|
|
|
272
|
-
// src/parts/
|
|
273
|
-
var
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
317
|
+
// src/parts/ListenerCache/ListenerCache.ts
|
|
318
|
+
var cache = /* @__PURE__ */ new Map();
|
|
319
|
+
var has = (listener) => {
|
|
320
|
+
return cache.has(listener);
|
|
321
|
+
};
|
|
322
|
+
var set = (listener, value) => {
|
|
323
|
+
cache.set(listener, value);
|
|
324
|
+
};
|
|
325
|
+
var get = (listener) => {
|
|
326
|
+
return cache.get(listener);
|
|
277
327
|
};
|
|
278
328
|
|
|
279
329
|
// src/parts/GetWrappedListener/GetWrappedListener.ts
|
|
280
|
-
var cache = /* @__PURE__ */ new Map();
|
|
281
330
|
var getWrappedListener = (listener, returnValue) => {
|
|
282
331
|
if (!returnValue) {
|
|
283
332
|
return listener;
|
|
284
333
|
}
|
|
285
|
-
if (!
|
|
334
|
+
if (!has(listener)) {
|
|
286
335
|
const wrapped = (event) => {
|
|
287
336
|
const uid = getComponentUidFromEvent(event);
|
|
288
337
|
const result = listener(event);
|
|
@@ -293,13 +342,17 @@ var getWrappedListener = (listener, returnValue) => {
|
|
|
293
342
|
ipc.send("Viewlet.executeViewletCommand", uid, ...result);
|
|
294
343
|
};
|
|
295
344
|
nameAnonymousFunction(wrapped, listener.name);
|
|
296
|
-
|
|
345
|
+
set(listener, wrapped);
|
|
297
346
|
}
|
|
298
|
-
return
|
|
347
|
+
return get(listener);
|
|
299
348
|
};
|
|
300
349
|
|
|
301
350
|
// src/parts/AttachEvent/AttachEvent.ts
|
|
302
|
-
var attachEvent = ($Node, eventMap, key, value) => {
|
|
351
|
+
var attachEvent = ($Node, eventMap, key, value, newEventMap) => {
|
|
352
|
+
if (newEventMap && newEventMap[value]) {
|
|
353
|
+
$Node.addEventListener(key, newEventMap[value]);
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
303
356
|
const listener = eventMap[value];
|
|
304
357
|
if (!listener) {
|
|
305
358
|
console.warn("listener not found", value);
|
|
@@ -314,7 +367,7 @@ var attachEvent = ($Node, eventMap, key, value) => {
|
|
|
314
367
|
};
|
|
315
368
|
|
|
316
369
|
// src/parts/VirtualDomElementProp/VirtualDomElementProp.ts
|
|
317
|
-
var setProp = ($Element, key, value, eventMap) => {
|
|
370
|
+
var setProp = ($Element, key, value, eventMap, newEventMap) => {
|
|
318
371
|
switch (key) {
|
|
319
372
|
case "maskImage":
|
|
320
373
|
$Element.style.maskImage = `url('${value}')`;
|
|
@@ -378,7 +431,7 @@ var setProp = ($Element, key, value, eventMap) => {
|
|
|
378
431
|
if (!eventMap || !value) {
|
|
379
432
|
return;
|
|
380
433
|
}
|
|
381
|
-
attachEvent($Element, eventMap, eventName, value);
|
|
434
|
+
attachEvent($Element, eventMap, eventName, value, newEventMap);
|
|
382
435
|
break;
|
|
383
436
|
default:
|
|
384
437
|
if (key.startsWith("data-")) {
|
|
@@ -390,9 +443,15 @@ var setProp = ($Element, key, value, eventMap) => {
|
|
|
390
443
|
};
|
|
391
444
|
|
|
392
445
|
// src/parts/VirtualDomElementProps/VirtualDomElementProps.ts
|
|
393
|
-
var setProps = ($Element, props, eventMap) => {
|
|
446
|
+
var setProps = ($Element, props, eventMap, newEventMap) => {
|
|
394
447
|
for (const key in props) {
|
|
395
|
-
setProp(
|
|
448
|
+
setProp(
|
|
449
|
+
$Element,
|
|
450
|
+
key,
|
|
451
|
+
props[key],
|
|
452
|
+
eventMap,
|
|
453
|
+
newEventMap
|
|
454
|
+
);
|
|
396
455
|
}
|
|
397
456
|
};
|
|
398
457
|
|
|
@@ -400,28 +459,28 @@ var setProps = ($Element, props, eventMap) => {
|
|
|
400
459
|
var renderDomTextNode = (element) => {
|
|
401
460
|
return document.createTextNode(element.text);
|
|
402
461
|
};
|
|
403
|
-
var renderDomElement = (element, eventMap) => {
|
|
462
|
+
var renderDomElement = (element, eventMap, newEventMap) => {
|
|
404
463
|
const tag = getElementTag(element.type);
|
|
405
464
|
const $Element = document.createElement(tag);
|
|
406
|
-
setProps($Element, element, eventMap);
|
|
465
|
+
setProps($Element, element, eventMap, newEventMap);
|
|
407
466
|
return $Element;
|
|
408
467
|
};
|
|
409
|
-
var render = (element, eventMap) => {
|
|
468
|
+
var render = (element, eventMap, newEventMap) => {
|
|
410
469
|
switch (element.type) {
|
|
411
470
|
case Text:
|
|
412
471
|
return renderDomTextNode(element);
|
|
413
472
|
default:
|
|
414
|
-
return renderDomElement(element, eventMap);
|
|
473
|
+
return renderDomElement(element, eventMap, newEventMap);
|
|
415
474
|
}
|
|
416
475
|
};
|
|
417
476
|
|
|
418
477
|
// src/parts/RenderInternal/RenderInternal.ts
|
|
419
|
-
var renderInternal2 = ($Parent, elements, eventMap) => {
|
|
478
|
+
var renderInternal2 = ($Parent, elements, eventMap, newEventMap) => {
|
|
420
479
|
const max = elements.length - 1;
|
|
421
480
|
let stack = [];
|
|
422
481
|
for (let i = max; i >= 0; i--) {
|
|
423
482
|
const element = elements[i];
|
|
424
|
-
const $Element = render(element, eventMap);
|
|
483
|
+
const $Element = render(element, eventMap, newEventMap);
|
|
425
484
|
if (element.childCount > 0) {
|
|
426
485
|
$Element.append(...stack.slice(0, element.childCount));
|
|
427
486
|
stack = stack.slice(element.childCount);
|
|
@@ -436,9 +495,9 @@ var renderInto = ($Parent, dom, eventMap = {}) => {
|
|
|
436
495
|
clearNode($Parent);
|
|
437
496
|
renderInternal2($Parent, dom, eventMap);
|
|
438
497
|
};
|
|
439
|
-
var render2 = (elements, eventMap = {}) => {
|
|
498
|
+
var render2 = (elements, eventMap = {}, newEventMap = {}) => {
|
|
440
499
|
const $Root = document.createElement("div");
|
|
441
|
-
renderInternal2($Root, elements, eventMap);
|
|
500
|
+
renderInternal2($Root, elements, eventMap, newEventMap);
|
|
442
501
|
return $Root;
|
|
443
502
|
};
|
|
444
503
|
|
|
@@ -458,7 +517,8 @@ var rememberFocus = ($Viewlet, dom, eventMap, uid = 0) => {
|
|
|
458
517
|
inputMap[$Input.name] = $Input.value;
|
|
459
518
|
}
|
|
460
519
|
if (uid) {
|
|
461
|
-
const
|
|
520
|
+
const newEventMap = getEventListenerMap(uid);
|
|
521
|
+
const $New = render2(dom, eventMap, newEventMap).firstChild;
|
|
462
522
|
setComponentUid($New, uid);
|
|
463
523
|
$Viewlet.replaceWith($New);
|
|
464
524
|
$Viewlet = $New;
|
|
@@ -484,6 +544,7 @@ var rememberFocus = ($Viewlet, dom, eventMap, uid = 0) => {
|
|
|
484
544
|
export {
|
|
485
545
|
getComponentUid,
|
|
486
546
|
getComponentUidFromEvent,
|
|
547
|
+
registerEventListeners,
|
|
487
548
|
rememberFocus,
|
|
488
549
|
render2 as render,
|
|
489
550
|
renderInto,
|
package/package.json
CHANGED
|
@@ -6,7 +6,13 @@ export const attachEvent = (
|
|
|
6
6
|
eventMap: any,
|
|
7
7
|
key: string,
|
|
8
8
|
value: string,
|
|
9
|
+
newEventMap?: any,
|
|
9
10
|
) => {
|
|
11
|
+
if (newEventMap && newEventMap[value]) {
|
|
12
|
+
// TODO support event listener options
|
|
13
|
+
$Node.addEventListener(key, newEventMap[value])
|
|
14
|
+
return
|
|
15
|
+
}
|
|
10
16
|
const listener = eventMap[value]
|
|
11
17
|
if (!listener) {
|
|
12
18
|
console.warn('listener not found', value)
|
|
@@ -1,19 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
import { getUidTarget } from '../GetUidTarget/GetUidTarget.ts'
|
|
2
|
+
import { uidSymbol } from '../UidSymbol/UidSymbol.ts'
|
|
2
3
|
|
|
3
4
|
export const setComponentUid = ($Element, uid) => {
|
|
4
5
|
$Element[uidSymbol] = uid
|
|
5
6
|
}
|
|
6
7
|
|
|
7
|
-
const getUidTarget = ($Element) => {
|
|
8
|
-
while ($Element) {
|
|
9
|
-
if ($Element[uidSymbol]) {
|
|
10
|
-
return $Element
|
|
11
|
-
}
|
|
12
|
-
$Element = $Element.parentNode
|
|
13
|
-
}
|
|
14
|
-
return undefined
|
|
15
|
-
}
|
|
16
|
-
|
|
17
8
|
export const getComponentUid = ($Element) => {
|
|
18
9
|
const $Target = getUidTarget($Element)
|
|
19
10
|
if (!$Target) {
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import * as ComponentUid from '../ComponentUid/ComponentUid.ts'
|
|
2
|
-
import * as NameAnonymousFunction from '../NameAnonymousFunction/NameAnonymousFunction.ts'
|
|
3
2
|
import * as IpcState from '../IpcState/IpcState.ts'
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import * as ListenerCache from '../ListenerCache/ListenerCache.ts'
|
|
4
|
+
import * as NameAnonymousFunction from '../NameAnonymousFunction/NameAnonymousFunction.ts'
|
|
6
5
|
|
|
7
6
|
export const getWrappedListener = (listener, returnValue) => {
|
|
8
7
|
if (!returnValue) {
|
|
9
8
|
return listener
|
|
10
9
|
}
|
|
11
|
-
if (!
|
|
10
|
+
if (!ListenerCache.has(listener)) {
|
|
12
11
|
const wrapped = (event) => {
|
|
13
12
|
const uid = ComponentUid.getComponentUidFromEvent(event)
|
|
14
13
|
const result = listener(event)
|
|
@@ -20,7 +19,7 @@ export const getWrappedListener = (listener, returnValue) => {
|
|
|
20
19
|
ipc.send('Viewlet.executeViewletCommand', uid, ...result)
|
|
21
20
|
}
|
|
22
21
|
NameAnonymousFunction.nameAnonymousFunction(wrapped, listener.name)
|
|
23
|
-
|
|
22
|
+
ListenerCache.set(listener, wrapped)
|
|
24
23
|
}
|
|
25
|
-
return
|
|
24
|
+
return ListenerCache.get(listener)
|
|
26
25
|
}
|
package/src/parts/Main/Main.ts
CHANGED
|
@@ -4,5 +4,6 @@ export {
|
|
|
4
4
|
setComponentUid,
|
|
5
5
|
} from '../ComponentUid/ComponentUid.ts'
|
|
6
6
|
export { setIpc } from '../IpcState/IpcState.ts'
|
|
7
|
+
export { registerEventListeners } from '../RegisterEventListeners/RegisterEventListeners.ts'
|
|
7
8
|
export { rememberFocus } from '../RememberFocus/RememberFocus.ts'
|
|
8
9
|
export { render, renderInto } from '../VirtualDom/VirtualDom.ts'
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as ComponentUid from '../ComponentUid/ComponentUid.ts'
|
|
2
|
+
import * as IpcState from '../IpcState/IpcState.ts'
|
|
3
|
+
import * as NameAnonymousFunction from '../NameAnonymousFunction/NameAnonymousFunction.ts'
|
|
4
|
+
|
|
5
|
+
const listeners = Object.create(null)
|
|
6
|
+
|
|
7
|
+
const getArgs = (params, event) => {
|
|
8
|
+
return [...params]
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const createFn = (info) => {
|
|
12
|
+
const fn = (event) => {
|
|
13
|
+
if (info.preventDefault) {
|
|
14
|
+
event.preventDefault(event)
|
|
15
|
+
}
|
|
16
|
+
const uid = ComponentUid.getComponentUidFromEvent(event)
|
|
17
|
+
const args = getArgs(info.params, event)
|
|
18
|
+
if (args.length === 0) {
|
|
19
|
+
return
|
|
20
|
+
}
|
|
21
|
+
const ipc = IpcState.getIpc()
|
|
22
|
+
ipc.send('Viewlet.executeViewletCommand', uid, ...args)
|
|
23
|
+
}
|
|
24
|
+
NameAnonymousFunction.nameAnonymousFunction(fn, info.name)
|
|
25
|
+
return fn
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export const registerEventListeners = (id, eventListeners) => {
|
|
29
|
+
const map = Object.create(null)
|
|
30
|
+
for (const info of eventListeners) {
|
|
31
|
+
const fn = createFn(info)
|
|
32
|
+
map[info.name] = fn
|
|
33
|
+
}
|
|
34
|
+
listeners[id] = map
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export const getEventListenerMap = (id) => {
|
|
38
|
+
const map = listeners[id]
|
|
39
|
+
return map
|
|
40
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as ComponentUid from '../ComponentUid/ComponentUid.ts'
|
|
2
2
|
import * as VirtualDom from '../VirtualDom/VirtualDom.ts'
|
|
3
|
+
import * as RegisterEventListeners from '../RegisterEventListeners/RegisterEventListeners.ts'
|
|
3
4
|
|
|
4
5
|
const queryInputs = ($Viewlet: HTMLElement) => {
|
|
5
6
|
return [...$Viewlet.querySelectorAll('input, textarea')]
|
|
@@ -26,7 +27,8 @@ export const rememberFocus = (
|
|
|
26
27
|
inputMap[$Input.name] = $Input.value
|
|
27
28
|
}
|
|
28
29
|
if (uid) {
|
|
29
|
-
const
|
|
30
|
+
const newEventMap = RegisterEventListeners.getEventListenerMap(uid)
|
|
31
|
+
const $New = VirtualDom.render(dom, eventMap, newEventMap).firstChild
|
|
30
32
|
ComponentUid.setComponentUid($New, uid)
|
|
31
33
|
// @ts-ignore
|
|
32
34
|
$Viewlet.replaceWith($New)
|
|
@@ -4,12 +4,13 @@ export const renderInternal = (
|
|
|
4
4
|
$Parent: HTMLElement,
|
|
5
5
|
elements: any[],
|
|
6
6
|
eventMap: any,
|
|
7
|
+
newEventMap?: any,
|
|
7
8
|
) => {
|
|
8
9
|
const max = elements.length - 1
|
|
9
10
|
let stack = []
|
|
10
11
|
for (let i = max; i >= 0; i--) {
|
|
11
12
|
const element = elements[i]
|
|
12
|
-
const $Element = VirtualDomElement.render(element, eventMap)
|
|
13
|
+
const $Element = VirtualDomElement.render(element, eventMap, newEventMap)
|
|
13
14
|
if (element.childCount > 0) {
|
|
14
15
|
// @ts-expect-error
|
|
15
16
|
$Element.append(...stack.slice(0, element.childCount))
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const uidSymbol = Symbol('uid')
|
|
@@ -39,8 +39,8 @@ export const renderIncremental = ($Parent, dom) => {
|
|
|
39
39
|
* @param {any[]} elements
|
|
40
40
|
* @returns
|
|
41
41
|
*/
|
|
42
|
-
export const render = (elements, eventMap = {}) => {
|
|
42
|
+
export const render = (elements, eventMap = {}, newEventMap = {}) => {
|
|
43
43
|
const $Root = document.createElement('div')
|
|
44
|
-
RenderInternal.renderInternal($Root, elements, eventMap)
|
|
44
|
+
RenderInternal.renderInternal($Root, elements, eventMap, newEventMap)
|
|
45
45
|
return $Root
|
|
46
46
|
}
|
|
@@ -6,18 +6,18 @@ const renderDomTextNode = (element) => {
|
|
|
6
6
|
return document.createTextNode(element.text)
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
const renderDomElement = (element, eventMap) => {
|
|
9
|
+
const renderDomElement = (element, eventMap, newEventMap) => {
|
|
10
10
|
const tag = ElementTagMap.getElementTag(element.type)
|
|
11
11
|
const $Element = document.createElement(tag)
|
|
12
|
-
VirtualDomElementProps.setProps($Element, element, eventMap)
|
|
12
|
+
VirtualDomElementProps.setProps($Element, element, eventMap, newEventMap)
|
|
13
13
|
return $Element
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
export const render = (element, eventMap) => {
|
|
16
|
+
export const render = (element, eventMap, newEventMap?: any) => {
|
|
17
17
|
switch (element.type) {
|
|
18
18
|
case VirtualDomElements.Text:
|
|
19
19
|
return renderDomTextNode(element)
|
|
20
20
|
default:
|
|
21
|
-
return renderDomElement(element, eventMap)
|
|
21
|
+
return renderDomElement(element, eventMap, newEventMap)
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import * as AttachEvent from '../AttachEvent/AttachEvent.ts'
|
|
2
2
|
|
|
3
|
-
export const setProp = (
|
|
3
|
+
export const setProp = (
|
|
4
|
+
$Element: HTMLElement,
|
|
5
|
+
key: string,
|
|
6
|
+
value: any,
|
|
7
|
+
eventMap: any,
|
|
8
|
+
newEventMap?: any,
|
|
9
|
+
) => {
|
|
4
10
|
switch (key) {
|
|
5
11
|
case 'maskImage':
|
|
6
12
|
$Element.style.maskImage = `url('${value}')`
|
|
@@ -65,7 +71,7 @@ export const setProp = ($Element: HTMLElement, key: string, value: any, eventMap
|
|
|
65
71
|
if (!eventMap || !value) {
|
|
66
72
|
return
|
|
67
73
|
}
|
|
68
|
-
AttachEvent.attachEvent($Element, eventMap, eventName, value)
|
|
74
|
+
AttachEvent.attachEvent($Element, eventMap, eventName, value, newEventMap)
|
|
69
75
|
break
|
|
70
76
|
default:
|
|
71
77
|
if (key.startsWith('data-')) {
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import * as VirtualDomElementProp from '../VirtualDomElementProp/VirtualDomElementProp.ts'
|
|
2
2
|
|
|
3
|
-
export const setProps = ($Element, props, eventMap) => {
|
|
3
|
+
export const setProps = ($Element, props, eventMap, newEventMap) => {
|
|
4
4
|
for (const key in props) {
|
|
5
|
-
VirtualDomElementProp.setProp(
|
|
5
|
+
VirtualDomElementProp.setProp(
|
|
6
|
+
$Element,
|
|
7
|
+
key,
|
|
8
|
+
props[key],
|
|
9
|
+
eventMap,
|
|
10
|
+
newEventMap,
|
|
11
|
+
)
|
|
6
12
|
}
|
|
7
13
|
}
|