@lvce-editor/virtual-dom 1.10.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 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,49 @@ 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
+ 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;
539
567
  };
568
+
569
+ // src/parts/CreateEventListenerFunction/CreateEventListenerFunction.ts
540
570
  var createFn = (info) => {
541
571
  const fn = (event) => {
542
572
  if (info.preventDefault) {
543
573
  event.preventDefault(event);
544
574
  }
545
575
  const uid = getComponentUidFromEvent(event);
546
- const args = getArgs(info.params, event);
576
+ const args = getEventListenerArgs(info.params, event);
547
577
  if (args.length === 0) {
548
578
  return;
549
579
  }
@@ -553,6 +583,9 @@ var createFn = (info) => {
553
583
  nameAnonymousFunction(fn, info.name);
554
584
  return fn;
555
585
  };
586
+
587
+ // src/parts/RegisterEventListeners/RegisterEventListeners.ts
588
+ var listeners = /* @__PURE__ */ Object.create(null);
556
589
  var registerEventListeners = (id, eventListeners) => {
557
590
  const map = /* @__PURE__ */ Object.create(null);
558
591
  for (const info of eventListeners) {
@@ -591,7 +624,7 @@ var rememberFocus = ($Viewlet, dom, eventMap, uid = 0) => {
591
624
  const oldTop = $Viewlet.style.top;
592
625
  const oldWidth = $Viewlet.style.width;
593
626
  const oldHeight = $Viewlet.style.height;
594
- const activeElement = document.activeElement;
627
+ const { activeElement } = document;
595
628
  const isTreeFocused = activeElement?.getAttribute("role") === "tree";
596
629
  const isRootTree = $Viewlet.getAttribute("role") === "tree" && activeElement === $Viewlet;
597
630
  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.11.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,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,
@@ -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':