@lvce-editor/virtual-dom 2.9.0 → 2.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
@@ -614,6 +614,9 @@ const applyDragInfoMaybe = event => {
614
614
  }
615
615
  };
616
616
 
617
+ const PointerMove = 'pointermove';
618
+ const PointerUp = 'pointerup';
619
+
617
620
  let ignore = false;
618
621
  const startIgnore = () => {
619
622
  ignore = true;
@@ -661,6 +664,8 @@ const getEventListenerArg = (param, event) => {
661
664
  return event.deltaX;
662
665
  case 'event.deltaY':
663
666
  return event.deltaY;
667
+ case 'event.target.scrollTop':
668
+ return event.target.scrollTop;
664
669
  case 'event.detail':
665
670
  return event.detail;
666
671
  case 'event.target.name':
@@ -715,7 +720,24 @@ const preventEventsMaybe = (info, event) => {
715
720
  }
716
721
  };
717
722
 
718
- const createFn = info => {
723
+ const applyPointerTrackMaybe = (info, map, event) => {
724
+ const {
725
+ trackPointerEvents
726
+ } = info;
727
+ if (!trackPointerEvents) {
728
+ return;
729
+ }
730
+ const {
731
+ target,
732
+ pointerId
733
+ } = event;
734
+ target.setPointerCapture(pointerId);
735
+ const [pointerMoveKey, pointerUpKey] = trackPointerEvents;
736
+ target.addEventListener(PointerMove, map[pointerMoveKey]);
737
+ // TODO use pointerlost event instead
738
+ target.addEventListener(PointerUp, map[pointerUpKey]);
739
+ };
740
+ const createFn = (info, map) => {
719
741
  const fn = event => {
720
742
  if (enabled()) {
721
743
  return;
@@ -724,6 +746,7 @@ const createFn = info => {
724
746
  const args = getEventListenerArgs(info.params, event);
725
747
  preventEventsMaybe(info, event);
726
748
  applyDragInfoMaybe(event);
749
+ applyPointerTrackMaybe(info, map, event);
727
750
  if (args.length === 0) {
728
751
  return;
729
752
  }
@@ -742,7 +765,7 @@ const listeners = Object.create(null);
742
765
  const registerEventListeners = (id, eventListeners) => {
743
766
  const map = Object.create(null);
744
767
  for (const info of eventListeners) {
745
- const fn = createFn(info);
768
+ const fn = createFn(info, map);
746
769
  map[info.name] = fn;
747
770
  }
748
771
  listeners[id] = map;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/virtual-dom",
3
- "version": "2.9.0",
3
+ "version": "2.11.0",
4
4
  "main": "dist/index.js",
5
5
  "type": "module",
6
6
  "keywords": [],
@@ -1,12 +1,26 @@
1
1
  import { applyDragInfoMaybe } from '../ApplyDragInfoMaybe/ApplyDragInfoMaybe.ts'
2
2
  import * as ComponentUid from '../ComponentUid/ComponentUid.ts'
3
+ import * as DomEventType from '../DomEventType/DomEventType.ts'
3
4
  import * as EventState from '../EventState/EventState.ts'
4
5
  import * as GetEventListenerArgs from '../GetEventListenerArgs/GetEventListenerArgs.ts'
5
6
  import * as IpcState from '../IpcState/IpcState.ts'
6
7
  import * as NameAnonymousFunction from '../NameAnonymousFunction/NameAnonymousFunction.ts'
7
8
  import { preventEventsMaybe } from '../PreventEventsMaybe/PreventEventsMaybe.ts'
8
9
 
9
- export const createFn = (info): any => {
10
+ const applyPointerTrackMaybe = (info, map, event): void => {
11
+ const { trackPointerEvents } = info
12
+ if (!trackPointerEvents) {
13
+ return
14
+ }
15
+ const { target, pointerId } = event
16
+ target.setPointerCapture(pointerId)
17
+ const [pointerMoveKey, pointerUpKey] = trackPointerEvents
18
+ target.addEventListener(DomEventType.PointerMove, map[pointerMoveKey])
19
+ // TODO use pointerlost event instead
20
+ target.addEventListener(DomEventType.PointerUp, map[pointerUpKey])
21
+ }
22
+
23
+ export const createFn = (info, map): any => {
10
24
  const fn = (event): void => {
11
25
  if (EventState.enabled()) {
12
26
  return
@@ -15,6 +29,7 @@ export const createFn = (info): any => {
15
29
  const args = GetEventListenerArgs.getEventListenerArgs(info.params, event)
16
30
  preventEventsMaybe(info, event)
17
31
  applyDragInfoMaybe(event)
32
+ applyPointerTrackMaybe(info, map, event)
18
33
  if (args.length === 0) {
19
34
  return
20
35
  }
@@ -0,0 +1,2 @@
1
+ export const PointerMove = 'pointermove'
2
+ export const PointerUp = 'pointerup'
@@ -37,6 +37,8 @@ export const getEventListenerArg = (param: string, event: any): any => {
37
37
  return event.deltaX
38
38
  case 'event.deltaY':
39
39
  return event.deltaY
40
+ case 'event.target.scrollTop':
41
+ return event.target.scrollTop
40
42
  case 'event.detail':
41
43
  return event.detail
42
44
  case 'event.target.name':
@@ -5,7 +5,7 @@ const listeners = Object.create(null)
5
5
  export const registerEventListeners = (id, eventListeners): void => {
6
6
  const map = Object.create(null)
7
7
  for (const info of eventListeners) {
8
- const fn = CreateEventListenerFunction.createFn(info)
8
+ const fn = CreateEventListenerFunction.createFn(info, map)
9
9
  map[info.name] = fn
10
10
  }
11
11
  listeners[id] = map