@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 +25 -2
- package/package.json +1 -1
- package/src/parts/CreateEventListenerFunction/CreateEventListenerFunction.ts +16 -1
- package/src/parts/DomEventType/DomEventType.ts +2 -0
- package/src/parts/GetEventListenerArg/GetEventListenerArg.ts +2 -0
- package/src/parts/RegisterEventListeners/RegisterEventListeners.ts +1 -1
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
|
|
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,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
|
-
|
|
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
|
}
|
|
@@ -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
|