@lvce-editor/virtual-dom 1.9.0 → 1.11.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.js +44 -10
- package/package.json +1 -1
- package/src/parts/ApplyPatch/ApplyPatch.ts +1 -1
- package/src/parts/CreateEventListenerFunction/CreateEventListenerFunction.ts +21 -0
- package/src/parts/ElementTagMap/ElementTagMap.ts +2 -0
- package/src/parts/ElementTags/ElementTags.ts +1 -0
- package/src/parts/GetEventListenerArg/GetEventListenerArg.ts +24 -0
- package/src/parts/GetEventListenerArgs/GetEventListenerArgs.ts +12 -0
- package/src/parts/PatchFunctions/PatchFunctions.ts +1 -4
- package/src/parts/RegisterEventListeners/RegisterEventListeners.ts +2 -25
- package/src/parts/RememberFocus/RememberFocus.ts +1 -1
- package/src/parts/RemoveAttributePatch/RemoveAttributePatch.ts +0 -1
- package/src/parts/VirtualDomElementProp/VirtualDomElementProp.ts +0 -1
- package/src/parts/VirtualDomElements/VirtualDomElements.ts +1 -0
package/dist/index.js
CHANGED
|
@@ -50,6 +50,7 @@ var Video = "video";
|
|
|
50
50
|
var TextArea = "textarea";
|
|
51
51
|
var Select = "select";
|
|
52
52
|
var Option = "option";
|
|
53
|
+
var Code = "code";
|
|
53
54
|
|
|
54
55
|
// src/parts/VirtualDomElements/VirtualDomElements.ts
|
|
55
56
|
var Audio2 = 0;
|
|
@@ -104,6 +105,7 @@ var Video2 = 61;
|
|
|
104
105
|
var TextArea2 = 62;
|
|
105
106
|
var Select2 = 63;
|
|
106
107
|
var Option2 = 64;
|
|
108
|
+
var Code2 = 65;
|
|
107
109
|
|
|
108
110
|
// src/parts/ElementTagMap/ElementTagMap.ts
|
|
109
111
|
var getElementTag = (type) => {
|
|
@@ -210,6 +212,8 @@ var getElementTag = (type) => {
|
|
|
210
212
|
return Select;
|
|
211
213
|
case Option2:
|
|
212
214
|
return Option;
|
|
215
|
+
case Code2:
|
|
216
|
+
return Code;
|
|
213
217
|
default:
|
|
214
218
|
throw new Error(`element tag not found ${type}`);
|
|
215
219
|
}
|
|
@@ -382,7 +386,6 @@ var setProp = ($Element, key, value, eventMap, newEventMap) => {
|
|
|
382
386
|
case "onDblClick":
|
|
383
387
|
case "onFocus":
|
|
384
388
|
case "onFocusIn":
|
|
385
|
-
case "onFocusIn":
|
|
386
389
|
case "onFocusOut":
|
|
387
390
|
case "onInput":
|
|
388
391
|
case "onKeyDown":
|
|
@@ -472,9 +475,6 @@ var setText = ($Element, value) => {
|
|
|
472
475
|
$Element.nodeValue = value;
|
|
473
476
|
};
|
|
474
477
|
var removeChild = ($Element, index) => {
|
|
475
|
-
console.log("el", $Element.className);
|
|
476
|
-
console.log("index", index);
|
|
477
|
-
console.log("ch", $Element.children.length);
|
|
478
478
|
const $Child = $Element.children[index];
|
|
479
479
|
$Child.remove();
|
|
480
480
|
};
|
|
@@ -531,18 +531,49 @@ var applyPatch = ($Element, patches) => {
|
|
|
531
531
|
}
|
|
532
532
|
};
|
|
533
533
|
|
|
534
|
-
// src/parts/
|
|
535
|
-
var
|
|
536
|
-
|
|
537
|
-
|
|
534
|
+
// src/parts/GetEventListenerArg/GetEventListenerArg.ts
|
|
535
|
+
var getEventListenerArg = (param, event) => {
|
|
536
|
+
switch (param) {
|
|
537
|
+
case "event.clientX":
|
|
538
|
+
return event.clientX;
|
|
539
|
+
case "event.clientY":
|
|
540
|
+
return event.clientY;
|
|
541
|
+
case "event.button":
|
|
542
|
+
return event.button;
|
|
543
|
+
case "event.target.value":
|
|
544
|
+
return event.target.value;
|
|
545
|
+
case "event.data":
|
|
546
|
+
return event.data;
|
|
547
|
+
case "event.deltaMode":
|
|
548
|
+
return event.deltaMode;
|
|
549
|
+
case "event.deltaX":
|
|
550
|
+
return event.deltaX;
|
|
551
|
+
case "event.deltaY":
|
|
552
|
+
return event.deltaY;
|
|
553
|
+
case "event.detail":
|
|
554
|
+
return event.detail;
|
|
555
|
+
default:
|
|
556
|
+
return param;
|
|
557
|
+
}
|
|
558
|
+
};
|
|
559
|
+
|
|
560
|
+
// src/parts/GetEventListenerArgs/GetEventListenerArgs.ts
|
|
561
|
+
var getEventListenerArgs = (params, event) => {
|
|
562
|
+
const serialized = [];
|
|
563
|
+
for (const param of params) {
|
|
564
|
+
serialized.push(getEventListenerArg(param, event));
|
|
565
|
+
}
|
|
566
|
+
return serialized;
|
|
538
567
|
};
|
|
568
|
+
|
|
569
|
+
// src/parts/CreateEventListenerFunction/CreateEventListenerFunction.ts
|
|
539
570
|
var createFn = (info) => {
|
|
540
571
|
const fn = (event) => {
|
|
541
572
|
if (info.preventDefault) {
|
|
542
573
|
event.preventDefault(event);
|
|
543
574
|
}
|
|
544
575
|
const uid = getComponentUidFromEvent(event);
|
|
545
|
-
const args =
|
|
576
|
+
const args = getEventListenerArgs(info.params, event);
|
|
546
577
|
if (args.length === 0) {
|
|
547
578
|
return;
|
|
548
579
|
}
|
|
@@ -552,6 +583,9 @@ var createFn = (info) => {
|
|
|
552
583
|
nameAnonymousFunction(fn, info.name);
|
|
553
584
|
return fn;
|
|
554
585
|
};
|
|
586
|
+
|
|
587
|
+
// src/parts/RegisterEventListeners/RegisterEventListeners.ts
|
|
588
|
+
var listeners = /* @__PURE__ */ Object.create(null);
|
|
555
589
|
var registerEventListeners = (id, eventListeners) => {
|
|
556
590
|
const map = /* @__PURE__ */ Object.create(null);
|
|
557
591
|
for (const info of eventListeners) {
|
|
@@ -590,7 +624,7 @@ var rememberFocus = ($Viewlet, dom, eventMap, uid = 0) => {
|
|
|
590
624
|
const oldTop = $Viewlet.style.top;
|
|
591
625
|
const oldWidth = $Viewlet.style.width;
|
|
592
626
|
const oldHeight = $Viewlet.style.height;
|
|
593
|
-
const activeElement = document
|
|
627
|
+
const { activeElement } = document;
|
|
594
628
|
const isTreeFocused = activeElement?.getAttribute("role") === "tree";
|
|
595
629
|
const isRootTree = $Viewlet.getAttribute("role") === "tree" && activeElement === $Viewlet;
|
|
596
630
|
const focused = activeElement?.getAttribute("name");
|
package/package.json
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as ComponentUid from '../ComponentUid/ComponentUid.ts'
|
|
2
|
+
import * as GetEventListenerArgs from '../GetEventListenerArgs/GetEventListenerArgs.ts'
|
|
3
|
+
import * as IpcState from '../IpcState/IpcState.ts'
|
|
4
|
+
import * as NameAnonymousFunction from '../NameAnonymousFunction/NameAnonymousFunction.ts'
|
|
5
|
+
|
|
6
|
+
export const createFn = (info) => {
|
|
7
|
+
const fn = (event) => {
|
|
8
|
+
if (info.preventDefault) {
|
|
9
|
+
event.preventDefault(event)
|
|
10
|
+
}
|
|
11
|
+
const uid = ComponentUid.getComponentUidFromEvent(event)
|
|
12
|
+
const args = GetEventListenerArgs.getEventListenerArgs(info.params, event)
|
|
13
|
+
if (args.length === 0) {
|
|
14
|
+
return
|
|
15
|
+
}
|
|
16
|
+
const ipc = IpcState.getIpc()
|
|
17
|
+
ipc.send('Viewlet.executeViewletCommand', uid, ...args)
|
|
18
|
+
}
|
|
19
|
+
NameAnonymousFunction.nameAnonymousFunction(fn, info.name)
|
|
20
|
+
return fn
|
|
21
|
+
}
|
|
@@ -105,6 +105,8 @@ export const getElementTag = (type) => {
|
|
|
105
105
|
return ElementTag.Select
|
|
106
106
|
case VirtualDomElements.Option:
|
|
107
107
|
return ElementTag.Option
|
|
108
|
+
case VirtualDomElements.Code:
|
|
109
|
+
return ElementTag.Code
|
|
108
110
|
default:
|
|
109
111
|
throw new Error(`element tag not found ${type}`)
|
|
110
112
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const getEventListenerArg = (param: string, event: any): any => {
|
|
2
|
+
switch (param) {
|
|
3
|
+
case 'event.clientX':
|
|
4
|
+
return event.clientX
|
|
5
|
+
case 'event.clientY':
|
|
6
|
+
return event.clientY
|
|
7
|
+
case 'event.button':
|
|
8
|
+
return event.button
|
|
9
|
+
case 'event.target.value':
|
|
10
|
+
return event.target.value
|
|
11
|
+
case 'event.data':
|
|
12
|
+
return event.data
|
|
13
|
+
case 'event.deltaMode':
|
|
14
|
+
return event.deltaMode
|
|
15
|
+
case 'event.deltaX':
|
|
16
|
+
return event.deltaX
|
|
17
|
+
case 'event.deltaY':
|
|
18
|
+
return event.deltaY
|
|
19
|
+
case 'event.detail':
|
|
20
|
+
return event.detail
|
|
21
|
+
default:
|
|
22
|
+
return param
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as GetEventListenerArg from '../GetEventListenerArg/GetEventListenerArg.ts'
|
|
2
|
+
|
|
3
|
+
export const getEventListenerArgs = (
|
|
4
|
+
params: readonly string[],
|
|
5
|
+
event: any,
|
|
6
|
+
): readonly any[] => {
|
|
7
|
+
const serialized: any[] = []
|
|
8
|
+
for (const param of params) {
|
|
9
|
+
serialized.push(GetEventListenerArg.getEventListenerArg(param, event))
|
|
10
|
+
}
|
|
11
|
+
return serialized
|
|
12
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import type { VirtualDomNode } from '../VirtualDomNode/VirtualDomNode.ts'
|
|
1
2
|
import * as RenderInternal from '../RenderInternal/RenderInternal.ts'
|
|
2
|
-
import { VirtualDomNode } from '../VirtualDomNode/VirtualDomNode.ts'
|
|
3
3
|
|
|
4
4
|
export const setAttribute = (
|
|
5
5
|
$Element: HTMLElement,
|
|
@@ -18,9 +18,6 @@ export const setText = ($Element: Text, value: string): void => {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
export const removeChild = ($Element: HTMLElement, index: number): void => {
|
|
21
|
-
console.log('el', $Element.className)
|
|
22
|
-
console.log('index', index)
|
|
23
|
-
console.log('ch', $Element.children.length)
|
|
24
21
|
const $Child = $Element.children[index]
|
|
25
22
|
$Child.remove()
|
|
26
23
|
}
|
|
@@ -1,34 +1,11 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import * as IpcState from '../IpcState/IpcState.ts'
|
|
3
|
-
import * as NameAnonymousFunction from '../NameAnonymousFunction/NameAnonymousFunction.ts'
|
|
1
|
+
import * as CreateEventListenerFunction from '../CreateEventListenerFunction/CreateEventListenerFunction.ts'
|
|
4
2
|
|
|
5
3
|
const listeners = Object.create(null)
|
|
6
4
|
|
|
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
5
|
export const registerEventListeners = (id, eventListeners) => {
|
|
29
6
|
const map = Object.create(null)
|
|
30
7
|
for (const info of eventListeners) {
|
|
31
|
-
const fn = createFn(info)
|
|
8
|
+
const fn = CreateEventListenerFunction.createFn(info)
|
|
32
9
|
map[info.name] = fn
|
|
33
10
|
}
|
|
34
11
|
listeners[id] = map
|
|
@@ -17,7 +17,7 @@ export const rememberFocus = (
|
|
|
17
17
|
const oldWidth = $Viewlet.style.width
|
|
18
18
|
const oldHeight = $Viewlet.style.height
|
|
19
19
|
|
|
20
|
-
const activeElement = document
|
|
20
|
+
const {activeElement} = document
|
|
21
21
|
const isTreeFocused = activeElement?.getAttribute('role') === 'tree'
|
|
22
22
|
const isRootTree =
|
|
23
23
|
$Viewlet.getAttribute('role') === 'tree' && activeElement === $Viewlet
|