@lvce-editor/virtual-dom 1.10.0 → 1.12.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 CHANGED
@@ -386,7 +386,6 @@ var setProp = ($Element, key, value, eventMap, newEventMap) => {
386
386
  case "onDblClick":
387
387
  case "onFocus":
388
388
  case "onFocusIn":
389
- case "onFocusIn":
390
389
  case "onFocusOut":
391
390
  case "onInput":
392
391
  case "onKeyDown":
@@ -532,18 +531,51 @@ var applyPatch = ($Element, patches) => {
532
531
  }
533
532
  };
534
533
 
535
- // src/parts/RegisterEventListeners/RegisterEventListeners.ts
536
- var listeners = /* @__PURE__ */ Object.create(null);
537
- var getArgs = (params, event) => {
538
- return [...params];
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
+ case "event.target.name":
556
+ return event.target.name;
557
+ default:
558
+ return param;
559
+ }
560
+ };
561
+
562
+ // src/parts/GetEventListenerArgs/GetEventListenerArgs.ts
563
+ var getEventListenerArgs = (params, event) => {
564
+ const serialized = [];
565
+ for (const param of params) {
566
+ serialized.push(getEventListenerArg(param, event));
567
+ }
568
+ return serialized;
539
569
  };
570
+
571
+ // src/parts/CreateEventListenerFunction/CreateEventListenerFunction.ts
540
572
  var createFn = (info) => {
541
573
  const fn = (event) => {
542
574
  if (info.preventDefault) {
543
575
  event.preventDefault(event);
544
576
  }
545
577
  const uid = getComponentUidFromEvent(event);
546
- const args = getArgs(info.params, event);
578
+ const args = getEventListenerArgs(info.params, event);
547
579
  if (args.length === 0) {
548
580
  return;
549
581
  }
@@ -553,6 +585,9 @@ var createFn = (info) => {
553
585
  nameAnonymousFunction(fn, info.name);
554
586
  return fn;
555
587
  };
588
+
589
+ // src/parts/RegisterEventListeners/RegisterEventListeners.ts
590
+ var listeners = /* @__PURE__ */ Object.create(null);
556
591
  var registerEventListeners = (id, eventListeners) => {
557
592
  const map = /* @__PURE__ */ Object.create(null);
558
593
  for (const info of eventListeners) {
@@ -591,7 +626,7 @@ var rememberFocus = ($Viewlet, dom, eventMap, uid = 0) => {
591
626
  const oldTop = $Viewlet.style.top;
592
627
  const oldWidth = $Viewlet.style.width;
593
628
  const oldHeight = $Viewlet.style.height;
594
- const activeElement = document.activeElement;
629
+ const { activeElement } = document;
595
630
  const isTreeFocused = activeElement?.getAttribute("role") === "tree";
596
631
  const isRootTree = $Viewlet.getAttribute("role") === "tree" && activeElement === $Viewlet;
597
632
  const focused = activeElement?.getAttribute("name");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/virtual-dom",
3
- "version": "1.10.0",
3
+ "version": "1.12.0",
4
4
  "main": "dist/index.js",
5
5
  "type": "module",
6
6
  "keywords": [],
@@ -1,4 +1,4 @@
1
- import { Patch } from '../Patch/Patch.ts'
1
+ import type { Patch } from '../Patch/Patch.ts'
2
2
  import * as PatchFunctions from '../PatchFunctions/PatchFunctions.ts'
3
3
  import * as PatchType from '../PatchType/PatchType.ts'
4
4
 
@@ -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
+ }
@@ -0,0 +1,26 @@
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
+ case 'event.target.name':
22
+ return event.target.name
23
+ default:
24
+ return param
25
+ }
26
+ }
@@ -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,
@@ -1,34 +1,11 @@
1
- import * as ComponentUid from '../ComponentUid/ComponentUid.ts'
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.activeElement
20
+ const {activeElement} = document
21
21
  const isTreeFocused = activeElement?.getAttribute('role') === 'tree'
22
22
  const isRootTree =
23
23
  $Viewlet.getAttribute('role') === 'tree' && activeElement === $Viewlet
@@ -61,7 +61,6 @@ export const setProp = (
61
61
  case 'onDblClick':
62
62
  case 'onFocus':
63
63
  case 'onFocusIn':
64
- case 'onFocusIn':
65
64
  case 'onFocusOut':
66
65
  case 'onInput':
67
66
  case 'onKeyDown':