@lvce-editor/virtual-dom 1.17.0 → 1.19.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/README.md CHANGED
@@ -1 +1 @@
1
- # virtual dom
1
+ # virtual dom
package/dist/index.js CHANGED
@@ -385,6 +385,13 @@ var setProp = ($Element, key, value, eventMap, newEventMap) => {
385
385
  $Element.removeAttribute("aria-owns");
386
386
  }
387
387
  break;
388
+ case "ariaActivedescendant":
389
+ if (value) {
390
+ $Element.setAttribute("aria-activedescendant", value);
391
+ } else {
392
+ $Element.removeAttribute("aria-activedescendant");
393
+ }
394
+ break;
388
395
  case "ariaControls":
389
396
  $Element.setAttribute("aria-controls", value);
390
397
  break;
@@ -561,6 +568,10 @@ var getEventListenerArg = (param, event) => {
561
568
  return event.button;
562
569
  case "event.target.value":
563
570
  return event.target.value;
571
+ case "event.isTrusted":
572
+ return event.isTrusted;
573
+ case "event.target.className":
574
+ return event.target.className;
564
575
  case "event.data":
565
576
  return event.data;
566
577
  case "event.deltaMode":
@@ -587,8 +598,6 @@ var getEventListenerArg = (param, event) => {
587
598
  return event.shiftKey;
588
599
  case "event.inputType":
589
600
  return event.inputType;
590
- case "event.data":
591
- return event.data;
592
601
  default:
593
602
  return param;
594
603
  }
@@ -639,6 +648,11 @@ var getEventListenerMap = (id) => {
639
648
  return map;
640
649
  };
641
650
 
651
+ // src/parts/QueryInputs/QueryInputs.ts
652
+ var queryInputs = ($Viewlet) => {
653
+ return [...$Viewlet.querySelectorAll("input, textarea")];
654
+ };
655
+
642
656
  // src/parts/ClearNode/ClearNode.ts
643
657
  var clearNode = ($Node) => {
644
658
  $Node.textContent = "";
@@ -656,9 +670,6 @@ var render2 = (elements, eventMap = {}, newEventMap = {}) => {
656
670
  };
657
671
 
658
672
  // src/parts/RememberFocus/RememberFocus.ts
659
- var queryInputs = ($Viewlet) => {
660
- return [...$Viewlet.querySelectorAll("input, textarea")];
661
- };
662
673
  var rememberFocus = ($Viewlet, dom, eventMap, uid = 0) => {
663
674
  const oldLeft = $Viewlet.style.left;
664
675
  const oldTop = $Viewlet.style.top;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/virtual-dom",
3
- "version": "1.17.0",
3
+ "version": "1.19.0",
4
4
  "main": "dist/index.js",
5
5
  "type": "module",
6
6
  "keywords": [],
@@ -1,7 +1,7 @@
1
1
  import * as GetEventListenerOptions from '../GetEventListenerOptions/GetEventListenerOptions.ts'
2
2
  import * as GetWrappedListener from '../GetWrappedListener/GetWrappedListener.ts'
3
3
 
4
- const getOptions = (fn: any) => {
4
+ const getOptions = (fn: any): any => {
5
5
  if (fn.passive) {
6
6
  return {
7
7
  passive: true,
@@ -16,7 +16,7 @@ export const attachEvent = (
16
16
  key: string,
17
17
  value: string,
18
18
  newEventMap?: any,
19
- ) => {
19
+ ): void => {
20
20
  if (newEventMap && newEventMap[value]) {
21
21
  const fn = newEventMap[value]
22
22
  const options: any = getOptions(fn)
@@ -1,11 +1,11 @@
1
1
  import { getUidTarget } from '../GetUidTarget/GetUidTarget.ts'
2
2
  import { uidSymbol } from '../UidSymbol/UidSymbol.ts'
3
3
 
4
- export const setComponentUid = ($Element, uid) => {
4
+ export const setComponentUid = ($Element, uid): void => {
5
5
  $Element[uidSymbol] = uid
6
6
  }
7
7
 
8
- export const getComponentUid = ($Element) => {
8
+ export const getComponentUid = ($Element): number => {
9
9
  const $Target = getUidTarget($Element)
10
10
  if (!$Target) {
11
11
  return 0
@@ -13,7 +13,7 @@ export const getComponentUid = ($Element) => {
13
13
  return $Target[uidSymbol]
14
14
  }
15
15
 
16
- export const getComponentUidFromEvent = (event) => {
16
+ export const getComponentUidFromEvent = (event): number => {
17
17
  const { target, currentTarget } = event
18
18
  return getComponentUid(currentTarget || target)
19
19
  }
@@ -3,8 +3,8 @@ import * as GetEventListenerArgs from '../GetEventListenerArgs/GetEventListenerA
3
3
  import * as IpcState from '../IpcState/IpcState.ts'
4
4
  import * as NameAnonymousFunction from '../NameAnonymousFunction/NameAnonymousFunction.ts'
5
5
 
6
- export const createFn = (info) => {
7
- const fn = (event) => {
6
+ export const createFn = (info): any => {
7
+ const fn = (event): void => {
8
8
  if (info.preventDefault) {
9
9
  event.preventDefault(event)
10
10
  }
@@ -1,7 +1,7 @@
1
1
  import * as ElementTag from '../ElementTags/ElementTags.ts'
2
2
  import * as VirtualDomElements from '../VirtualDomElements/VirtualDomElements.ts'
3
3
 
4
- export const getElementTag = (type) => {
4
+ export const getElementTag = (type: number): string => {
5
5
  switch (type) {
6
6
  case VirtualDomElements.Audio:
7
7
  return ElementTag.Audio
@@ -12,6 +12,10 @@ export const getEventListenerArg = (param: string, event: any): any => {
12
12
  return event.button
13
13
  case 'event.target.value':
14
14
  return event.target.value
15
+ case 'event.isTrusted':
16
+ return event.isTrusted
17
+ case 'event.target.className':
18
+ return event.target.className
15
19
  case 'event.data':
16
20
  return event.data
17
21
  case 'event.deltaMode':
@@ -38,8 +42,6 @@ export const getEventListenerArg = (param: string, event: any): any => {
38
42
  return event.shiftKey
39
43
  case 'event.inputType':
40
44
  return event.inputType
41
- case 'event.data':
42
- return event.data
43
45
  default:
44
46
  return param
45
47
  }
@@ -1,4 +1,4 @@
1
- export const getEventListenerOptions = (eventName: string, value: any) => {
1
+ export const getEventListenerOptions = (eventName: string, value: any): any => {
2
2
  if (value.passive) {
3
3
  return {
4
4
  passive: true,
@@ -1,11 +1,13 @@
1
1
  import { uidSymbol } from '../UidSymbol/UidSymbol.ts'
2
2
 
3
- export const getUidTarget = ($Element) => {
3
+ export const getUidTarget = (
4
+ $Element: HTMLElement,
5
+ ): HTMLElement | undefined => {
4
6
  while ($Element) {
5
7
  if ($Element[uidSymbol]) {
6
8
  return $Element
7
9
  }
8
- $Element = $Element.parentNode
10
+ $Element = $Element.parentNode as HTMLElement
9
11
  }
10
12
  return undefined
11
13
  }
@@ -3,12 +3,12 @@ import * as IpcState from '../IpcState/IpcState.ts'
3
3
  import * as ListenerCache from '../ListenerCache/ListenerCache.ts'
4
4
  import * as NameAnonymousFunction from '../NameAnonymousFunction/NameAnonymousFunction.ts'
5
5
 
6
- export const getWrappedListener = (listener, returnValue) => {
6
+ export const getWrappedListener = (listener, returnValue): any => {
7
7
  if (!returnValue) {
8
8
  return listener
9
9
  }
10
10
  if (!ListenerCache.has(listener)) {
11
- const wrapped = (event) => {
11
+ const wrapped = (event): void => {
12
12
  const uid = ComponentUid.getComponentUidFromEvent(event)
13
13
  const result = listener(event)
14
14
  // TODO check for empty array by value
@@ -6,6 +6,6 @@ export const getIpc = (): any => {
6
6
  return state.ipc
7
7
  }
8
8
 
9
- export const setIpc = (value: any) => {
9
+ export const setIpc = (value: any): void => {
10
10
  state.ipc = value
11
11
  }
@@ -1,13 +1,13 @@
1
1
  const cache = new Map()
2
2
 
3
- export const has = (listener) => {
3
+ export const has = (listener): boolean => {
4
4
  return cache.has(listener)
5
5
  }
6
6
 
7
- export const set = (listener, value) => {
7
+ export const set = (listener, value): void => {
8
8
  cache.set(listener, value)
9
9
  }
10
10
 
11
- export const get = (listener) => {
11
+ export const get = (listener): any => {
12
12
  return cache.get(listener)
13
13
  }
@@ -1,4 +1,4 @@
1
- export const nameAnonymousFunction = (fn: any, name: string) => {
1
+ export const nameAnonymousFunction = (fn: any, name: string): void => {
2
2
  Object.defineProperty(fn, 'name', {
3
3
  value: name,
4
4
  })
@@ -0,0 +1,3 @@
1
+ export const queryInputs = ($Viewlet: HTMLElement): readonly any[] => {
2
+ return [...$Viewlet.querySelectorAll('input, textarea')]
3
+ }
@@ -2,7 +2,7 @@ import * as CreateEventListenerFunction from '../CreateEventListenerFunction/Cre
2
2
 
3
3
  const listeners = Object.create(null)
4
4
 
5
- export const registerEventListeners = (id, eventListeners) => {
5
+ export const registerEventListeners = (id, eventListeners): void => {
6
6
  const map = Object.create(null)
7
7
  for (const info of eventListeners) {
8
8
  const fn = CreateEventListenerFunction.createFn(info)
@@ -11,7 +11,7 @@ export const registerEventListeners = (id, eventListeners) => {
11
11
  listeners[id] = map
12
12
  }
13
13
 
14
- export const getEventListenerMap = (id) => {
14
+ export const getEventListenerMap = (id): any => {
15
15
  const map = listeners[id]
16
16
  return map
17
17
  }
@@ -1,30 +1,27 @@
1
1
  import * as ComponentUid from '../ComponentUid/ComponentUid.ts'
2
+ import * as QueryInputs from '../QueryInputs/QueryInputs.ts'
2
3
  import * as RegisterEventListeners from '../RegisterEventListeners/RegisterEventListeners.ts'
3
4
  import * as VirtualDom from '../VirtualDom/VirtualDom.ts'
4
5
 
5
- const queryInputs = ($Viewlet: HTMLElement) => {
6
- return [...$Viewlet.querySelectorAll('input, textarea')]
7
- }
8
-
9
6
  export const rememberFocus = (
10
7
  $Viewlet: HTMLElement,
11
8
  dom: any[],
12
9
  eventMap: any,
13
10
  uid = 0,
14
- ) => {
11
+ ): any => {
15
12
  const oldLeft = $Viewlet.style.left
16
13
  const oldTop = $Viewlet.style.top
17
14
  const oldWidth = $Viewlet.style.width
18
15
  const oldHeight = $Viewlet.style.height
19
16
 
20
- const {activeElement} = document
17
+ const { activeElement } = document
21
18
  const isTreeFocused = activeElement?.getAttribute('role') === 'tree'
22
19
  const isRootTree =
23
20
  $Viewlet.getAttribute('role') === 'tree' && activeElement === $Viewlet
24
21
 
25
22
  const focused = activeElement?.getAttribute('name')
26
23
 
27
- const $$Inputs = queryInputs($Viewlet)
24
+ const $$Inputs = QueryInputs.queryInputs($Viewlet)
28
25
  const inputMap = Object.create(null)
29
26
  for (const $Input of $$Inputs) {
30
27
  // @ts-ignore
@@ -43,7 +40,7 @@ export const rememberFocus = (
43
40
  VirtualDom.renderInto($Viewlet, dom, eventMap)
44
41
  }
45
42
 
46
- const $$NewInputs = queryInputs($Viewlet)
43
+ const $$NewInputs = QueryInputs.queryInputs($Viewlet)
47
44
  for (const $Input of $$NewInputs) {
48
45
  // @ts-ignore
49
46
  $Input.value = inputMap[$Input.name] || $Input.value || ''
@@ -5,7 +5,7 @@ export const renderInternal = (
5
5
  elements: readonly any[],
6
6
  eventMap: any,
7
7
  newEventMap?: any,
8
- ) => {
8
+ ): void => {
9
9
  const max = elements.length - 1
10
10
  let stack: Node[] = []
11
11
  for (let i = max; i >= 0; i--) {
@@ -1,12 +1,12 @@
1
1
  import * as ClearNode from '../ClearNode/ClearNode.ts'
2
2
  import * as RenderInternal from '../RenderInternal/RenderInternal.ts'
3
3
 
4
- export const renderInto = ($Parent, dom, eventMap = {}) => {
4
+ export const renderInto = ($Parent, dom, eventMap = {}): void => {
5
5
  ClearNode.clearNode($Parent)
6
6
  RenderInternal.renderInternal($Parent, dom, eventMap)
7
7
  }
8
8
 
9
- export const renderIncremental = ($Parent, dom) => {
9
+ export const renderIncremental = ($Parent, dom): void => {
10
10
  if ($Parent.textContent === '') {
11
11
  // @ts-expect-error
12
12
  renderInternal($Parent, dom)
@@ -16,12 +16,6 @@ export const renderIncremental = ($Parent, dom) => {
16
16
  const $Node = $Parent
17
17
  for (let i = 0; i < dom.length; i++) {
18
18
  const node = dom[i]
19
- if (!$Node) {
20
- $Parent.append
21
- }
22
- console.log({ $Node, node })
23
- console.log($Node.nodeValue, node.text)
24
-
25
19
  if ($Node.nodeValue !== node.props.text && node.props.text) {
26
20
  $Node.nodeValue = node.props.text
27
21
  }
@@ -39,7 +33,11 @@ export const renderIncremental = ($Parent, dom) => {
39
33
  * @param {any[]} elements
40
34
  * @returns
41
35
  */
42
- export const render = (elements, eventMap = {}, newEventMap = {}) => {
36
+ export const render = (
37
+ elements,
38
+ eventMap = {},
39
+ newEventMap = {},
40
+ ): HTMLElement => {
43
41
  const $Root = document.createElement('div')
44
42
  RenderInternal.renderInternal($Root, elements, eventMap, newEventMap)
45
43
  return $Root
@@ -6,7 +6,7 @@ export const setProp = (
6
6
  value: any,
7
7
  eventMap: any,
8
8
  newEventMap?: any,
9
- ) => {
9
+ ): void => {
10
10
  switch (key) {
11
11
  case 'maskImage':
12
12
  $Element.style.maskImage = `url('${value}')`
@@ -44,6 +44,13 @@ export const setProp = (
44
44
  $Element.removeAttribute('aria-owns')
45
45
  }
46
46
  break
47
+ case 'ariaActivedescendant':
48
+ if (value) {
49
+ $Element.setAttribute('aria-activedescendant', value)
50
+ } else {
51
+ $Element.removeAttribute('aria-activedescendant')
52
+ }
53
+ break
47
54
  case 'ariaControls':
48
55
  $Element.setAttribute('aria-controls', value)
49
56
  break
@@ -1,6 +1,6 @@
1
1
  import * as VirtualDomElementProp from '../VirtualDomElementProp/VirtualDomElementProp.ts'
2
2
 
3
- export const setProps = ($Element, props, eventMap, newEventMap) => {
3
+ export const setProps = ($Element, props, eventMap, newEventMap): void => {
4
4
  for (const key in props) {
5
5
  VirtualDomElementProp.setProp(
6
6
  $Element,