@ax-design/reveal-highlight 0.4.2 → 0.5.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.
- package/LICENSE +21 -21
- package/README.md +75 -75
- package/build/BaseConfig.d.ts +5 -1
- package/build/BaseConfig.d.ts.map +1 -1
- package/build/CanvasConfig.d.ts +7 -1
- package/build/CanvasConfig.d.ts.map +1 -1
- package/build/ComputedStyleStorage.d.ts.map +1 -1
- package/build/CustomElements.d.ts +20 -4
- package/build/CustomElements.d.ts.map +1 -1
- package/build/RevealBoundryStore.d.ts +4 -0
- package/build/RevealBoundryStore.d.ts.map +1 -1
- package/build/RevealStateManager.d.ts +5 -1
- package/build/RevealStateManager.d.ts.map +1 -1
- package/build/main.js +113 -82
- package/build/utils/types.d.ts +2 -10
- package/build/utils/types.d.ts.map +1 -1
- package/es/BaseConfig.d.ts +46 -42
- package/es/BaseConfig.d.ts.map +1 -1
- package/es/BaseConfig.js +241 -219
- package/es/BaseConfig.js.map +1 -1
- package/es/CanvasConfig.d.ts +21 -15
- package/es/CanvasConfig.d.ts.map +1 -1
- package/es/CanvasConfig.js +332 -320
- package/es/CanvasConfig.js.map +1 -1
- package/es/ComputedStyleStorage.d.ts +8 -8
- package/es/ComputedStyleStorage.d.ts.map +1 -1
- package/es/ComputedStyleStorage.js +68 -58
- package/es/ComputedStyleStorage.js.map +1 -1
- package/es/CustomElements.d.ts +75 -59
- package/es/CustomElements.d.ts.map +1 -1
- package/es/CustomElements.js +296 -233
- package/es/CustomElements.js.map +1 -1
- package/es/Profiler.d.ts +12 -12
- package/es/Profiler.js +31 -31
- package/es/RevealBoundryStore.d.ts +80 -76
- package/es/RevealBoundryStore.d.ts.map +1 -1
- package/es/RevealBoundryStore.js +269 -248
- package/es/RevealBoundryStore.js.map +1 -1
- package/es/RevealStateManager.d.ts +19 -15
- package/es/RevealStateManager.d.ts.map +1 -1
- package/es/RevealStateManager.js +99 -73
- package/es/RevealStateManager.js.map +1 -1
- package/es/SvgConfig.d.ts +16 -16
- package/es/SvgConfig.js +345 -345
- package/es/config.d.ts +4 -4
- package/es/config.js +21 -21
- package/es/index.d.ts +5 -5
- package/es/index.js +205 -205
- package/es/tsconfig.tsbuildinfo +1 -1
- package/es/utils/extractRGBValue.d.ts +1 -1
- package/es/utils/extractRGBValue.js +47 -47
- package/es/utils/isValidateBorderDecorationType.d.ts +2 -2
- package/es/utils/isValidateBorderDecorationType.js +9 -9
- package/es/utils/types.d.ts +94 -102
- package/es/utils/types.d.ts.map +1 -1
- package/es/utils/types.js +1 -1
- package/es/variables.d.ts +1 -1
- package/es/variables.js +1 -1
- package/package.json +35 -34
- package/src/BaseConfig.ts +332 -310
- package/src/CanvasConfig.ts +420 -415
- package/src/ComputedStyleStorage.ts +102 -89
- package/src/CustomElements.ts +344 -272
- package/src/Profiler.ts +44 -44
- package/src/RevealBoundryStore.ts +315 -291
- package/src/RevealStateManager.ts +109 -86
- package/src/SvgConfig.ts +422 -422
- package/src/config.ts +26 -26
- package/src/cssTypedOM.d.ts +52 -52
- package/src/index.ts +219 -219
- package/src/utils/extractRGBValue.ts +58 -58
- package/src/utils/isValidateBorderDecorationType.ts +8 -8
- package/src/utils/types.ts +97 -105
- package/src/variables.ts +1 -1
package/es/RevealStateManager.js
CHANGED
|
@@ -1,74 +1,100 @@
|
|
|
1
|
-
import { RevealBoundaryStore } from './RevealBoundryStore.js';
|
|
2
|
-
import { config } from './config.js';
|
|
3
|
-
export class RevealStateManager {
|
|
4
|
-
constructor() {
|
|
5
|
-
this._currentHashId = 0;
|
|
6
|
-
this._storage = [];
|
|
7
|
-
this.requestedTraverseBoundaries = false;
|
|
8
|
-
this.cachedMouseX = -1;
|
|
9
|
-
this.cachedMouseY = -1;
|
|
10
|
-
this.
|
|
11
|
-
this.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
this.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
//
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
//
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
1
|
+
import { RevealBoundaryStore } from './RevealBoundryStore.js';
|
|
2
|
+
import { config } from './config.js';
|
|
3
|
+
export class RevealStateManager {
|
|
4
|
+
constructor() {
|
|
5
|
+
this._currentHashId = 0;
|
|
6
|
+
this._storage = [];
|
|
7
|
+
this.requestedTraverseBoundaries = false;
|
|
8
|
+
this.cachedMouseX = -1;
|
|
9
|
+
this.cachedMouseY = -1;
|
|
10
|
+
this.touchScrolling = false;
|
|
11
|
+
this.pointerLeaveScheduled = false;
|
|
12
|
+
this.handlePointerLeave = () => {
|
|
13
|
+
if (this.pointerLeaveScheduled)
|
|
14
|
+
return;
|
|
15
|
+
this.pointerLeaveScheduled = true;
|
|
16
|
+
window.requestAnimationFrame(() => {
|
|
17
|
+
for (let i = 0; i < this._storage.length; i++) {
|
|
18
|
+
this._storage[i].onPointerLeaveBoundary();
|
|
19
|
+
}
|
|
20
|
+
this.pointerLeaveScheduled = false;
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
this.handlePointerMove = (event) => {
|
|
24
|
+
this.cachedMouseX = event.clientX;
|
|
25
|
+
this.cachedMouseY = event.clientY;
|
|
26
|
+
if (!this.requestedTraverseBoundaries) {
|
|
27
|
+
window.requestAnimationFrame(this.traverseBoundaries);
|
|
28
|
+
this.requestedTraverseBoundaries = true;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
this.traverseBoundaries = () => {
|
|
32
|
+
this.requestedTraverseBoundaries = false;
|
|
33
|
+
for (let i = 0; i < this._storage.length; i++) {
|
|
34
|
+
this._storage[i].onPointerMoveOnScreen(this.cachedMouseX, this.cachedMouseY);
|
|
35
|
+
if (this.touchScrolling)
|
|
36
|
+
this._storage[i].anchorPointer();
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
this.newBoundary = ($el) => {
|
|
40
|
+
const hashId = this._currentHashId++;
|
|
41
|
+
const store = new RevealBoundaryStore(hashId, $el);
|
|
42
|
+
this._storage.push(store);
|
|
43
|
+
return store;
|
|
44
|
+
};
|
|
45
|
+
this.removeBoundary = (store) => {
|
|
46
|
+
this._storage = this._storage.filter((x) => x !== store);
|
|
47
|
+
};
|
|
48
|
+
if (config.borderDetectionMode === 'experimentalAutoFit') {
|
|
49
|
+
if (typeof Window === 'undefined')
|
|
50
|
+
return;
|
|
51
|
+
window.addEventListener('pointermove', this.handlePointerMove);
|
|
52
|
+
// A finger landing on the screen without moving fires no `pointermove`.
|
|
53
|
+
window.addEventListener('pointerdown', this.handlePointerMove);
|
|
54
|
+
// This is for touch screen
|
|
55
|
+
// Window.pointerleave won't be triggered if the finger
|
|
56
|
+
// leave the screen, so we use pointer up here.
|
|
57
|
+
window.addEventListener('pointerup', (ev) => {
|
|
58
|
+
if (ev.pointerType !== 'mouse')
|
|
59
|
+
this.handlePointerLeave();
|
|
60
|
+
});
|
|
61
|
+
// This is for desktop
|
|
62
|
+
// If the mouse leave the window, we need to terminate
|
|
63
|
+
// all animations and clean up the canvas.
|
|
64
|
+
window.addEventListener('pointerleave', (ev) => {
|
|
65
|
+
if (ev.pointerType === 'mouse')
|
|
66
|
+
this.handlePointerLeave();
|
|
67
|
+
});
|
|
68
|
+
// Handles boundary conditions such as the user scrolling
|
|
69
|
+
// the page, dragging the image, which can cause mouse events
|
|
70
|
+
// to fail, when Reveal should disappear to prevent the
|
|
71
|
+
// image from getting stuck.
|
|
72
|
+
window.addEventListener('pointercancel', (ev) => {
|
|
73
|
+
// The browser took over the touch for scrolling, keep following
|
|
74
|
+
// the finger with touch events until it leaves the screen.
|
|
75
|
+
if (ev.pointerType === 'touch') {
|
|
76
|
+
this.touchScrolling = true;
|
|
77
|
+
for (let i = 0; i < this._storage.length; i++) {
|
|
78
|
+
this._storage[i].anchorPointer();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
this.handlePointerLeave();
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
window.addEventListener('touchmove', (ev) => {
|
|
86
|
+
if (this.touchScrolling && ev.touches.length)
|
|
87
|
+
this.handlePointerMove(ev.touches[0]);
|
|
88
|
+
}, { passive: true });
|
|
89
|
+
const handleTouchEnd = (ev) => {
|
|
90
|
+
if (!this.touchScrolling || ev.touches.length)
|
|
91
|
+
return;
|
|
92
|
+
this.touchScrolling = false;
|
|
93
|
+
this.handlePointerLeave();
|
|
94
|
+
};
|
|
95
|
+
window.addEventListener('touchend', handleTouchEnd, { passive: true });
|
|
96
|
+
window.addEventListener('touchcancel', handleTouchEnd, { passive: true });
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
74
100
|
//# sourceMappingURL=RevealStateManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RevealStateManager.js","sourceRoot":"","sources":["../src/RevealStateManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,OAAO,kBAAkB;IAQ3B;QAPQ,mBAAc,GAAG,CAAC,CAAC;QACnB,aAAQ,GAA0B,EAAE,CAAC;QAErC,gCAA2B,GAAG,KAAK,CAAC;QAC5C,iBAAY,GAAG,CAAC,CAAC,CAAC;QAClB,iBAAY,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"RevealStateManager.js","sourceRoot":"","sources":["../src/RevealStateManager.ts"],"names":[],"mappings":"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"}
|
package/es/SvgConfig.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { RevealBoundaryStore } from './RevealBoundryStore.js';
|
|
2
|
-
import type { CachedRevealPath } from './utils/types.js';
|
|
3
|
-
import { BaseConfig } from './BaseConfig.js';
|
|
4
|
-
export declare class SvgConfig extends BaseConfig<SVGSVGElement> {
|
|
5
|
-
protected cachedImg: CachedRevealPath;
|
|
6
|
-
constructor(store: RevealBoundaryStore, $svg: SVGSVGElement, $container: HTMLElement);
|
|
7
|
-
updateCachedBitmap: () => void;
|
|
8
|
-
updateCachedReveal: () => void;
|
|
9
|
-
private updateAnimateGrd;
|
|
10
|
-
private updateGradientPosition;
|
|
11
|
-
private drawShape;
|
|
12
|
-
syncSizeToElement: (x: SVGSVGElement) => void;
|
|
13
|
-
clear: (forAnimation: boolean) => void;
|
|
14
|
-
private internalClear;
|
|
15
|
-
paint: (skipSamePointerPositionCheck?: boolean | undefined) => boolean;
|
|
16
|
-
}
|
|
1
|
+
import { RevealBoundaryStore } from './RevealBoundryStore.js';
|
|
2
|
+
import type { CachedRevealPath } from './utils/types.js';
|
|
3
|
+
import { BaseConfig } from './BaseConfig.js';
|
|
4
|
+
export declare class SvgConfig extends BaseConfig<SVGSVGElement> {
|
|
5
|
+
protected cachedImg: CachedRevealPath;
|
|
6
|
+
constructor(store: RevealBoundaryStore, $svg: SVGSVGElement, $container: HTMLElement);
|
|
7
|
+
updateCachedBitmap: () => void;
|
|
8
|
+
updateCachedReveal: () => void;
|
|
9
|
+
private updateAnimateGrd;
|
|
10
|
+
private updateGradientPosition;
|
|
11
|
+
private drawShape;
|
|
12
|
+
syncSizeToElement: (x: SVGSVGElement) => void;
|
|
13
|
+
clear: (forAnimation: boolean) => void;
|
|
14
|
+
private internalClear;
|
|
15
|
+
paint: (skipSamePointerPositionCheck?: boolean | undefined) => boolean;
|
|
16
|
+
}
|
|
17
17
|
//# sourceMappingURL=SvgConfig.d.ts.map
|