@rdlabo/ionic-theme-ios26 1.2.1 → 1.2.3
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sheets-of-glass/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAUjF,eAAO,MAAM,cAAc,GACzB,eAAe,WAAW,EAC1B,eAAe,MAAM,EACrB,mBAAmB,MAAM,EACzB,QAAQ,YAAY,KACnB,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sheets-of-glass/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAUjF,eAAO,MAAM,cAAc,GACzB,eAAe,WAAW,EAC1B,eAAe,MAAM,EACrB,mBAAmB,MAAM,EACzB,QAAQ,YAAY,KACnB,gBAAgB,GAAG,SAmMrB,CAAC"}
|
|
@@ -15,15 +15,18 @@ export const registerEffect = (targetElement, effectTagName, selectedClassName,
|
|
|
15
15
|
let scaleAnimationPromise;
|
|
16
16
|
let startAnimationPromise;
|
|
17
17
|
let maxVelocity = 0;
|
|
18
|
-
let
|
|
18
|
+
let isUseMove = false;
|
|
19
|
+
let isRealUserClick = false;
|
|
19
20
|
const effectElement = cloneElement(effectTagName);
|
|
20
|
-
const onPointerDown = () => {
|
|
21
|
+
const onPointerDown = (event) => {
|
|
22
|
+
targetElement.setPointerCapture(event.pointerId);
|
|
21
23
|
clearActivated();
|
|
22
24
|
gesture.destroy();
|
|
23
25
|
createAnimationGesture();
|
|
24
26
|
};
|
|
25
27
|
const onPointerUp = (event) => {
|
|
26
|
-
|
|
28
|
+
targetElement.releasePointerCapture(event.pointerId);
|
|
29
|
+
isRealUserClick = true;
|
|
27
30
|
clearActivatedTimer = setTimeout(async () => {
|
|
28
31
|
await onEndGesture();
|
|
29
32
|
gesture.destroy();
|
|
@@ -51,7 +54,7 @@ export const registerEffect = (targetElement, effectTagName, selectedClassName,
|
|
|
51
54
|
if (!currentTouchedElement) {
|
|
52
55
|
return;
|
|
53
56
|
}
|
|
54
|
-
if (!
|
|
57
|
+
if (!isRealUserClick || isUseMove) {
|
|
55
58
|
currentTouchedElement.click();
|
|
56
59
|
}
|
|
57
60
|
currentTouchedElement?.classList.remove('ion-activated');
|
|
@@ -59,7 +62,7 @@ export const registerEffect = (targetElement, effectTagName, selectedClassName,
|
|
|
59
62
|
effectElement.style.display = 'none';
|
|
60
63
|
maxVelocity = 0;
|
|
61
64
|
targetElement.classList.remove(ANIMATED_NAME);
|
|
62
|
-
|
|
65
|
+
isRealUserClick = false;
|
|
63
66
|
};
|
|
64
67
|
const onStartGesture = (detail) => {
|
|
65
68
|
currentTouchedElement = detail.event.target.closest(effectTagName) || undefined;
|
|
@@ -67,6 +70,7 @@ export const registerEffect = (targetElement, effectTagName, selectedClassName,
|
|
|
67
70
|
if (currentTouchedElement === undefined || tabSelectedElement === null) {
|
|
68
71
|
return false;
|
|
69
72
|
}
|
|
73
|
+
isUseMove = false;
|
|
70
74
|
animationPosition = {
|
|
71
75
|
minPositionX: targetElement.getBoundingClientRect().left,
|
|
72
76
|
maxPositionX: targetElement.getBoundingClientRect().right - tabSelectedElement.clientWidth,
|
|
@@ -92,6 +96,7 @@ export const registerEffect = (targetElement, effectTagName, selectedClassName,
|
|
|
92
96
|
return true;
|
|
93
97
|
};
|
|
94
98
|
const onMoveGesture = (detail) => {
|
|
99
|
+
isUseMove = true;
|
|
95
100
|
if (currentTouchedElement === undefined || !moveAnimation) {
|
|
96
101
|
return false;
|
|
97
102
|
}
|
package/package.json
CHANGED
|
@@ -26,20 +26,23 @@ export const registerEffect = (
|
|
|
26
26
|
let scaleAnimationPromise: Promise<void> | undefined;
|
|
27
27
|
let startAnimationPromise: Promise<void> | undefined;
|
|
28
28
|
let maxVelocity = 0;
|
|
29
|
-
let
|
|
29
|
+
let isUseMove = false;
|
|
30
|
+
let isRealUserClick = false;
|
|
30
31
|
const effectElement = cloneElement(effectTagName);
|
|
31
32
|
|
|
32
33
|
/**
|
|
33
34
|
* These event listeners fix a bug where gestures don't complete properly.
|
|
34
35
|
* They terminate the gesture using native events as a fallback.
|
|
35
36
|
*/
|
|
36
|
-
const onPointerDown = () => {
|
|
37
|
+
const onPointerDown = (event: PointerEvent) => {
|
|
38
|
+
targetElement.setPointerCapture(event.pointerId);
|
|
37
39
|
clearActivated();
|
|
38
40
|
gesture.destroy();
|
|
39
41
|
createAnimationGesture();
|
|
40
42
|
};
|
|
41
43
|
const onPointerUp = (event: PointerEvent) => {
|
|
42
|
-
|
|
44
|
+
targetElement.releasePointerCapture(event.pointerId);
|
|
45
|
+
isRealUserClick = true;
|
|
43
46
|
clearActivatedTimer = setTimeout(async () => {
|
|
44
47
|
await onEndGesture();
|
|
45
48
|
gesture.destroy();
|
|
@@ -70,7 +73,7 @@ export const registerEffect = (
|
|
|
70
73
|
if (!currentTouchedElement) {
|
|
71
74
|
return;
|
|
72
75
|
}
|
|
73
|
-
if (!
|
|
76
|
+
if (!isRealUserClick || isUseMove) {
|
|
74
77
|
currentTouchedElement!.click();
|
|
75
78
|
}
|
|
76
79
|
currentTouchedElement?.classList.remove('ion-activated');
|
|
@@ -78,7 +81,7 @@ export const registerEffect = (
|
|
|
78
81
|
effectElement.style.display = 'none';
|
|
79
82
|
maxVelocity = 0;
|
|
80
83
|
targetElement.classList.remove(ANIMATED_NAME);
|
|
81
|
-
|
|
84
|
+
isRealUserClick = false;
|
|
82
85
|
};
|
|
83
86
|
|
|
84
87
|
const onStartGesture = (detail: GestureDetail): boolean | undefined => {
|
|
@@ -87,6 +90,7 @@ export const registerEffect = (
|
|
|
87
90
|
if (currentTouchedElement === undefined || tabSelectedElement === null) {
|
|
88
91
|
return false;
|
|
89
92
|
}
|
|
93
|
+
isUseMove = false;
|
|
90
94
|
animationPosition = {
|
|
91
95
|
minPositionX: targetElement.getBoundingClientRect().left,
|
|
92
96
|
maxPositionX: targetElement.getBoundingClientRect().right - tabSelectedElement.clientWidth,
|
|
@@ -116,6 +120,7 @@ export const registerEffect = (
|
|
|
116
120
|
};
|
|
117
121
|
|
|
118
122
|
const onMoveGesture = (detail: GestureDetail): boolean | undefined => {
|
|
123
|
+
isUseMove = true;
|
|
119
124
|
if (currentTouchedElement === undefined || !moveAnimation) {
|
|
120
125
|
return false; // Skip Animation
|
|
121
126
|
}
|