@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 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/RegisterEventListeners/RegisterEventListeners.ts
535
- var listeners = /* @__PURE__ */ Object.create(null);
536
- var getArgs = (params, event) => {
537
- 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;
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 = getArgs(info.params, event);
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.activeElement;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/virtual-dom",
3
- "version": "1.9.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
+ }
@@ -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
  }
@@ -50,3 +50,4 @@ export const Video = 'video'
50
50
  export const TextArea = 'textarea'
51
51
  export const Select = 'select'
52
52
  export const Option = 'option'
53
+ export const Code = 'code'
@@ -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 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
@@ -1,5 +1,4 @@
1
1
  export interface RemoveAttributePatch {
2
2
  readonly type: 4
3
- readonly index: number
4
3
  readonly key: string
5
4
  }
@@ -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':
@@ -52,3 +52,4 @@ export const Video = 61
52
52
  export const TextArea = 62
53
53
  export const Select = 63
54
54
  export const Option = 64
55
+ export const Code = 65