@ax-design/reveal-highlight 0.3.0-alpha.9 → 0.4.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.
Files changed (75) hide show
  1. package/README.md +0 -8
  2. package/build/BaseConfig.d.ts +43 -0
  3. package/build/BaseConfig.d.ts.map +1 -0
  4. package/build/CanvasConfig.d.ts +7 -93
  5. package/build/CanvasConfig.d.ts.map +1 -1
  6. package/build/CustomElements.d.ts +18 -4
  7. package/build/CustomElements.d.ts.map +1 -1
  8. package/build/RevealBoundryStore.d.ts +50 -10
  9. package/build/RevealBoundryStore.d.ts.map +1 -1
  10. package/build/RevealStateManager.d.ts +3 -0
  11. package/build/RevealStateManager.d.ts.map +1 -1
  12. package/build/SvgConfig.d.ts +17 -0
  13. package/build/SvgConfig.d.ts.map +1 -0
  14. package/build/index.d.ts.map +1 -1
  15. package/build/main.js +169 -17
  16. package/build/utils/extractRGBValue.d.ts +2 -0
  17. package/build/utils/extractRGBValue.d.ts.map +1 -0
  18. package/build/utils/isValidateBorderDecorationType.d.ts +3 -0
  19. package/build/utils/isValidateBorderDecorationType.d.ts.map +1 -0
  20. package/build/utils/types.d.ts +103 -0
  21. package/build/utils/types.d.ts.map +1 -0
  22. package/docs/demo/index.html +70 -143
  23. package/docs/demo/ng.html +992 -0
  24. package/es/BaseConfig.d.ts +43 -0
  25. package/es/BaseConfig.d.ts.map +1 -0
  26. package/es/BaseConfig.js +220 -0
  27. package/es/BaseConfig.js.map +1 -0
  28. package/es/CanvasConfig.d.ts +7 -93
  29. package/es/CanvasConfig.d.ts.map +1 -1
  30. package/es/CanvasConfig.js +35 -239
  31. package/es/CanvasConfig.js.map +1 -1
  32. package/es/CustomElements.d.ts +18 -4
  33. package/es/CustomElements.d.ts.map +1 -1
  34. package/es/CustomElements.js +82 -7
  35. package/es/CustomElements.js.map +1 -1
  36. package/es/RevealBoundryStore.d.ts +50 -10
  37. package/es/RevealBoundryStore.d.ts.map +1 -1
  38. package/es/RevealBoundryStore.js +129 -35
  39. package/es/RevealBoundryStore.js.map +1 -1
  40. package/es/RevealStateManager.d.ts +3 -0
  41. package/es/RevealStateManager.d.ts.map +1 -1
  42. package/es/RevealStateManager.js +35 -8
  43. package/es/RevealStateManager.js.map +1 -1
  44. package/es/SvgConfig.d.ts +17 -0
  45. package/es/SvgConfig.d.ts.map +1 -0
  46. package/es/SvgConfig.js +346 -0
  47. package/es/SvgConfig.js.map +1 -0
  48. package/es/index.d.ts.map +1 -1
  49. package/es/index.js +10 -16
  50. package/es/index.js.map +1 -1
  51. package/es/utils/extractRGBValue.d.ts +2 -0
  52. package/es/utils/extractRGBValue.d.ts.map +1 -0
  53. package/es/utils/extractRGBValue.js +48 -0
  54. package/es/utils/extractRGBValue.js.map +1 -0
  55. package/es/utils/isValidateBorderDecorationType.d.ts +3 -0
  56. package/es/utils/isValidateBorderDecorationType.d.ts.map +1 -0
  57. package/es/utils/isValidateBorderDecorationType.js +10 -0
  58. package/es/utils/isValidateBorderDecorationType.js.map +1 -0
  59. package/es/utils/types.d.ts +103 -0
  60. package/es/utils/types.d.ts.map +1 -0
  61. package/es/utils/types.js +2 -0
  62. package/es/utils/types.js.map +1 -0
  63. package/package.json +30 -30
  64. package/src/BaseConfig.ts +311 -0
  65. package/src/CanvasConfig.ts +66 -387
  66. package/src/CustomElements.ts +97 -14
  67. package/src/RevealBoundryStore.ts +138 -39
  68. package/src/RevealStateManager.ts +40 -10
  69. package/src/SvgConfig.ts +422 -0
  70. package/src/index.ts +10 -16
  71. package/src/utils/extractRGBValue.ts +58 -0
  72. package/src/utils/isValidateBorderDecorationType.ts +8 -0
  73. package/src/utils/types.ts +106 -0
  74. package/.yarnrc.yml +0 -1
  75. package/docs/demo/debug.html +0 -72
@@ -1,4 +1,6 @@
1
1
  import { CanvasConfig } from './CanvasConfig.js';
2
+ import { SvgConfig } from './SvgConfig.js';
3
+ declare type Config = CanvasConfig | SvgConfig;
2
4
  export declare class RevealBoundaryStore {
3
5
  id: number;
4
6
  container: HTMLElement;
@@ -7,10 +9,9 @@ export declare class RevealBoundaryStore {
7
9
  paintedClientX: number;
8
10
  paintedClientY: number;
9
11
  mouseInBoundary: boolean;
10
- canvasList: CanvasConfig[];
11
- animationQueue: CanvasConfig[];
12
+ canvasList: Config[];
13
+ animationQueue: Config[];
12
14
  animationFrame: number | null;
13
- dirty: boolean;
14
15
  mouseUpClientX: null;
15
16
  mouseUpClientY: null;
16
17
  mouseDownAnimateStartFrame: null;
@@ -20,18 +21,57 @@ export declare class RevealBoundaryStore {
20
21
  mousePressed: boolean;
21
22
  mouseReleased: boolean;
22
23
  maxRadius: number;
24
+ requestedAnimationFrame: boolean;
23
25
  constructor(id: number, $el: HTMLElement);
24
- addReveal: ($canvas: HTMLCanvasElement, $container: HTMLElement) => void;
25
- removeReveal: ($el: HTMLCanvasElement) => void;
26
+ addReveal: ($element: HTMLCanvasElement | SVGElement, $container: HTMLElement) => void;
27
+ removeReveal: ($el: HTMLCanvasElement | SVGElement) => void;
26
28
  updateMaxRadius: (x: number) => void;
27
- onPointerMoveOnScreen: (x: number, y: number) => boolean;
29
+ requestPaintAll: (cleanup?: boolean | undefined) => void;
30
+ updatePointerPosition: (x: number, y: number) => void;
31
+ onPointerMoveOnScreen: (x: number, y: number) => true | undefined;
32
+ /**
33
+ * Repaint all canvas while user's pointer has entered the boundary.
34
+ */
28
35
  onPointerEnterBoundary: () => void;
36
+ /**
37
+ * Clear all canvas while user's pointer leave the bounary.
38
+ */
29
39
  onPointerLeaveBoundary: () => void;
30
- paintAll: (frame: number, force?: boolean | undefined) => void;
31
- resetAll: () => void;
40
+ /**
41
+ * The painting method that draw everything on your screen.
42
+ * @param frame current frame index, if this value is 0, it means all canvas
43
+ * should be cleaned.
44
+ * @param skipSamePointerPositionCheck Literally.
45
+ */
46
+ private paintAll;
47
+ /**
48
+ * Clear all canvas.
49
+ */
50
+ clearAll: (forAnimation: boolean) => void;
51
+ /**
52
+ * This is the effect while user pressed on the reveal highlight,
53
+ * the ripple start to spread slowly.
54
+ */
32
55
  initializeAnimation: () => void;
56
+ /**
57
+ * This is the effect while user released it's pointer, the spreading
58
+ * ripple animation will start to accelerate.
59
+ */
33
60
  switchAnimation: () => void;
34
- cleanUpAnimation: (config: CanvasConfig) => void;
35
- getRevealAnimationConfig: () => CanvasConfig | null;
61
+ /**
62
+ * Cleanup all animations.
63
+ * @param skipPaint Only cleanup data or also clean up the canvas
64
+ * @param forceClean Clean the canvas or not
65
+ */
66
+ cleanupAnimation: (skipPaint?: boolean | undefined, forceClean?: boolean | undefined) => void;
67
+ /**
68
+ * Clean up the config of an animation, but the canvas won't cleaned up.
69
+ * @param config The config to be cleaned up.
70
+ * @param skipPaint Skip painting.
71
+ * @param forceClean Force clear the painting.
72
+ */
73
+ cleanUpAnimationUnit: (config: Config, skipPaint?: boolean | undefined, forceClean?: boolean | undefined) => void;
74
+ getRevealAnimationConfig: () => Config | null;
36
75
  }
76
+ export {};
37
77
  //# sourceMappingURL=RevealBoundryStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RevealBoundryStore.d.ts","sourceRoot":"","sources":["../src/RevealBoundryStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,qBAAa,mBAAmB;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,WAAW,CAAC;IAGvB,OAAO,SAAS;IAChB,OAAO,SAAS;IAGhB,cAAc,SAAS;IACvB,cAAc,SAAS;IAEvB,eAAe,UAAS;IACxB,UAAU,EAAE,YAAY,EAAE,CAAM;IAEhC,cAAc,EAAE,YAAY,EAAE,CAAM;IACpC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IACrC,KAAK,UAAS;IAEd,cAAc,OAAQ;IACtB,cAAc,OAAQ;IACtB,0BAA0B,OAAQ;IAClC,4BAA4B,OAAQ;IACpC,6BAA6B,OAAQ;IACrC,0BAA0B,OAAQ;IAClC,YAAY,UAAS;IACrB,aAAa,UAAS;IAEtB,SAAS,SAAM;gBAEH,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW;IAKxC,SAAS,YAAa,iBAAiB,cAAc,WAAW,UAQ9D;IAEF,YAAY,QAAS,iBAAiB,UAIpC;IAEF,eAAe,MAAO,MAAM,UAE3B;IAED,qBAAqB,MAAO,MAAM,KAAK,MAAM,aAc5C;IAED,sBAAsB,aAMpB;IAEF,sBAAsB,aAGpB;IAEF,QAAQ,UAAW,MAAM,uCAkDvB;IAEF,QAAQ,aAKN;IAEF,mBAAmB,aAYjB;IAEF,eAAe,aASb;IAEF,gBAAgB,WAAY,YAAY,UAgBtC;IAEF,wBAAwB,4BAEtB;CACL"}
1
+ {"version":3,"file":"RevealBoundryStore.d.ts","sourceRoot":"","sources":["../src/RevealBoundryStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,aAAK,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;AAEvC,qBAAa,mBAAmB;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,WAAW,CAAC;IAGvB,OAAO,SAAS;IAChB,OAAO,SAAS;IAGhB,cAAc,SAAS;IACvB,cAAc,SAAS;IAEvB,eAAe,UAAS;IACxB,UAAU,EAAE,MAAM,EAAE,CAAM;IAE1B,cAAc,EAAE,MAAM,EAAE,CAAM;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAErC,cAAc,OAAQ;IACtB,cAAc,OAAQ;IACtB,0BAA0B,OAAQ;IAClC,4BAA4B,OAAQ;IACpC,6BAA6B,OAAQ;IACrC,0BAA0B,OAAQ;IAClC,YAAY,UAAS;IACrB,aAAa,UAAS;IAEtB,SAAS,SAAM;IAEf,uBAAuB,UAAS;gBAEpB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW;IAKxC,SAAS,aAAc,iBAAiB,GAAG,UAAU,cAAc,WAAW,UAiB5E;IAEF,YAAY,QAAS,iBAAiB,GAAG,UAAU,UAIjD;IAEF,eAAe,MAAO,MAAM,UAE1B;IAEF,eAAe,0CAQb;IAEF,qBAAqB,MAAO,MAAM,KAAK,MAAM,UAc5C;IAED,qBAAqB,MAAO,MAAM,KAAK,MAAM,sBAK3C;IAEF;;OAEG;IACH,sBAAsB,aAMpB;IAEF;;OAEG;IACH,sBAAsB,aAGpB;IAEF;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAsEd;IAEF;;OAEG;IACH,QAAQ,iBAAkB,OAAO,UAE/B;IAEF;;;OAGG;IACH,mBAAmB,aAYjB;IAEF;;;OAGG;IACH,eAAe,aAWb;IAEF;;;;OAIG;IACH,gBAAgB,8EAMf;IAED;;;;;OAKG;IACH,oBAAoB,WAAY,MAAM,6EAwBpC;IAEF,wBAAwB,sBAEtB;CACL"}
@@ -1,4 +1,5 @@
1
1
  import { CanvasConfig } from './CanvasConfig.js';
2
+ import { SvgConfig } from './SvgConfig.js';
2
3
  export class RevealBoundaryStore {
3
4
  constructor(id, $el) {
4
5
  // The current cursor position relative to window.
@@ -11,7 +12,6 @@ export class RevealBoundaryStore {
11
12
  this.canvasList = [];
12
13
  this.animationQueue = [];
13
14
  this.animationFrame = null;
14
- this.dirty = false;
15
15
  this.mouseUpClientX = null;
16
16
  this.mouseUpClientY = null;
17
17
  this.mouseDownAnimateStartFrame = null;
@@ -21,94 +21,156 @@ export class RevealBoundaryStore {
21
21
  this.mousePressed = false;
22
22
  this.mouseReleased = false;
23
23
  this.maxRadius = -1;
24
- this.addReveal = ($canvas, $container) => {
25
- const canvasConfig = new CanvasConfig(this, $canvas, $container);
26
- canvasConfig.cacheBoundingRect();
27
- canvasConfig.cacheCanvasPaintingStyle();
28
- canvasConfig.updateCachedBitmap();
29
- this.canvasList.push(canvasConfig);
24
+ this.requestedAnimationFrame = false;
25
+ this.addReveal = ($element, $container) => {
26
+ let config;
27
+ const elementType = Object.prototype.toString.call($element);
28
+ if (elementType === '[object HTMLCanvasElement]') {
29
+ config = new CanvasConfig(this, $element, $container);
30
+ }
31
+ else if (elementType === '[object SVGSVGElement]') {
32
+ config = new SvgConfig(this, $element, $container);
33
+ }
34
+ else {
35
+ throw new TypeError(`Unknown element type, got: ${elementType}, Canvas or SVG element expected.`);
36
+ }
37
+ config.cacheBoundingRect();
38
+ config.cacheCanvasPaintingStyle();
39
+ config.updateCachedBitmap();
40
+ this.canvasList.push(config);
30
41
  };
31
42
  this.removeReveal = ($el) => {
32
43
  this.canvasList = this.canvasList.filter((config) => {
33
- return config && config.canvas === $el;
44
+ return config && config.element !== $el;
34
45
  });
35
46
  };
36
47
  this.updateMaxRadius = (x) => {
37
48
  this.maxRadius = Math.max(x, this.maxRadius);
38
49
  };
39
- this.onPointerMoveOnScreen = (x, y) => {
50
+ this.requestPaintAll = (cleanup) => {
51
+ if (this.requestedAnimationFrame)
52
+ return;
53
+ this.requestedAnimationFrame = true;
54
+ this.animationFrame = window.requestAnimationFrame((frame) => {
55
+ this.requestedAnimationFrame = false;
56
+ this.paintAll(cleanup ? -1 : frame, true);
57
+ });
58
+ };
59
+ this.updatePointerPosition = (x, y) => {
60
+ this.clientX = x;
61
+ this.clientY = y;
40
62
  const boundingBox = this.container.getBoundingClientRect();
63
+ let mouseInBoundary = true;
41
64
  if (x < boundingBox.left - this.maxRadius)
42
- return false;
65
+ mouseInBoundary = false;
43
66
  if (x > boundingBox.right + this.maxRadius)
44
- return false;
67
+ mouseInBoundary = false;
45
68
  if (y < boundingBox.top - this.maxRadius)
46
- return false;
69
+ mouseInBoundary = false;
47
70
  if (y > boundingBox.bottom + this.maxRadius)
48
- return false;
49
- this.mouseInBoundary = true;
50
- this.clientX = x;
51
- this.clientY = y;
52
- this.animationFrame = window.requestAnimationFrame(this.paintAll);
71
+ mouseInBoundary = false;
72
+ this.mouseInBoundary = mouseInBoundary;
73
+ };
74
+ this.onPointerMoveOnScreen = (x, y) => {
75
+ this.updatePointerPosition(x, y);
76
+ if (!this.mouseInBoundary)
77
+ return;
78
+ this.requestPaintAll();
53
79
  return true;
54
80
  };
81
+ /**
82
+ * Repaint all canvas while user's pointer has entered the boundary.
83
+ */
55
84
  this.onPointerEnterBoundary = () => {
56
85
  this.mouseInBoundary = true;
57
86
  if (!this.animationFrame) {
58
- this.animationFrame = window.requestAnimationFrame(this.paintAll);
87
+ this.requestPaintAll();
59
88
  }
60
89
  };
90
+ /**
91
+ * Clear all canvas while user's pointer leave the bounary.
92
+ */
61
93
  this.onPointerLeaveBoundary = () => {
62
94
  this.mouseInBoundary = false;
63
- this.paintAll(0, true);
95
+ this.requestPaintAll(true);
64
96
  };
65
- this.paintAll = (frame, force) => {
66
- if (!force && !this.mouseInBoundary && this.animationQueue.length === 0) {
97
+ /**
98
+ * The painting method that draw everything on your screen.
99
+ * @param frame current frame index, if this value is 0, it means all canvas
100
+ * should be cleaned.
101
+ * @param skipSamePointerPositionCheck Literally.
102
+ */
103
+ this.paintAll = (frame, skipSamePointerPositionCheck) => {
104
+ if (!skipSamePointerPositionCheck && !this.mouseInBoundary && this.animationQueue.length === 0) {
67
105
  return;
68
106
  }
107
+ // Animation duration checkup
69
108
  for (let i = 0; i < this.animationQueue.length; i++) {
70
109
  const config = this.animationQueue[i];
71
110
  if (!frame || config.currentFrameId === frame) {
72
- return;
111
+ continue;
73
112
  }
74
113
  config.currentFrameId = frame;
114
+ // Initialize the animation parameter
75
115
  if (config.mouseDownAnimateStartFrame === null) {
76
116
  config.mouseDownAnimateStartFrame = frame;
77
117
  }
118
+ // Calculate how long the animation has been playing
78
119
  const relativeFrame = frame - config.mouseDownAnimateStartFrame;
79
120
  config.mouseDownAnimateCurrentFrame = relativeFrame;
80
121
  const speed = config.cachedStyle.pressAnimationSpeed;
81
122
  const accelerateRate = config.cachedStyle.releaseAnimationAccelerateRate;
123
+ // We assume that Ripple is a one-way linear process from
124
+ // no diffusion to fully diffused,
125
+ // and Logic Frame represents the progress of the animation
126
+ // in this process.
82
127
  let unitLogicFrame = relativeFrame;
83
128
  if (config.mouseReleased && config.mouseDownAnimateReleasedFrame) {
84
129
  unitLogicFrame += (relativeFrame - config.mouseDownAnimateReleasedFrame) * accelerateRate;
85
130
  }
86
131
  config.mouseDownAnimateLogicFrame = unitLogicFrame / speed;
87
132
  if (config.mouseDownAnimateLogicFrame > 1) {
88
- this.cleanUpAnimation(config);
133
+ // It will be cleaned later
134
+ config.cleanedUpForAnimation = true;
89
135
  }
90
136
  }
137
+ // Paint the canvas one by one
91
138
  for (let i = 0; i < this.canvasList.length; i++) {
92
139
  const config = this.canvasList[i];
93
140
  config.currentFrameId = frame;
94
- config.paint(force);
141
+ if (config.cleanedUpForAnimation) {
142
+ this.cleanUpAnimationUnit(config, false);
143
+ config.cleanedUpForAnimation = false;
144
+ }
145
+ else {
146
+ const isPlayingAnimation = this.animationQueue.indexOf(config) === -1;
147
+ if (this.mouseInBoundary || isPlayingAnimation) {
148
+ config.paint(skipSamePointerPositionCheck);
149
+ }
150
+ else {
151
+ config.clear(false);
152
+ }
153
+ }
95
154
  }
96
- this.dirty = true;
97
155
  this.paintedClientX = this.clientX;
98
156
  this.paintedClientY = this.clientY;
99
157
  if (this.mouseInBoundary || this.animationQueue.length !== 0) {
100
- this.animationFrame = window.requestAnimationFrame(this.paintAll);
158
+ this.requestPaintAll();
101
159
  }
102
160
  else {
103
161
  this.animationFrame = null;
104
162
  }
105
163
  };
106
- this.resetAll = () => {
107
- for (let i = 0; i < this.canvasList.length; i++) {
108
- const config = this.canvasList[i];
109
- config.paint();
110
- }
164
+ /**
165
+ * Clear all canvas.
166
+ */
167
+ this.clearAll = (forAnimation) => {
168
+ this.cleanupAnimation(forAnimation, true);
111
169
  };
170
+ /**
171
+ * This is the effect while user pressed on the reveal highlight,
172
+ * the ripple start to spread slowly.
173
+ */
112
174
  this.initializeAnimation = () => {
113
175
  const config = this.canvasList.find((x) => x.mouseInCanvas());
114
176
  if (!config)
@@ -120,17 +182,39 @@ export class RevealBoundaryStore {
120
182
  config.mousePressed = true;
121
183
  config.mouseReleased = false;
122
184
  };
185
+ /**
186
+ * This is the effect while user released it's pointer, the spreading
187
+ * ripple animation will start to accelerate.
188
+ */
123
189
  this.switchAnimation = () => {
124
- this.animationQueue.forEach((config) => {
190
+ for (let i = 0; i < this.animationQueue.length; i++) {
191
+ const config = this.animationQueue[i];
125
192
  if (!config.mouseReleased) {
126
193
  config.mouseReleased = true;
127
194
  config.mouseDownAnimateReleasedFrame = config.mouseDownAnimateCurrentFrame;
128
195
  config.mouseUpClientX = this.clientX;
129
196
  config.mouseUpClientY = this.clientY;
130
197
  }
131
- });
198
+ }
132
199
  };
133
- this.cleanUpAnimation = (config) => {
200
+ /**
201
+ * Cleanup all animations.
202
+ * @param skipPaint Only cleanup data or also clean up the canvas
203
+ * @param forceClean Clean the canvas or not
204
+ */
205
+ this.cleanupAnimation = (skipPaint, forceClean) => {
206
+ for (let i = 0; i < this.animationQueue.length; i++) {
207
+ const config = this.animationQueue[i];
208
+ this.cleanUpAnimationUnit(config, skipPaint, forceClean);
209
+ }
210
+ };
211
+ /**
212
+ * Clean up the config of an animation, but the canvas won't cleaned up.
213
+ * @param config The config to be cleaned up.
214
+ * @param skipPaint Skip painting.
215
+ * @param forceClean Force clear the painting.
216
+ */
217
+ this.cleanUpAnimationUnit = (config, skipPaint, forceClean) => {
134
218
  config.mouseUpClientX = null;
135
219
  config.mouseUpClientY = null;
136
220
  config.mouseDownAnimateStartFrame = null;
@@ -143,7 +227,17 @@ export class RevealBoundaryStore {
143
227
  if (configIdx > -1) {
144
228
  this.animationQueue.splice(configIdx, 1);
145
229
  }
146
- config.paint(true);
230
+ if (!skipPaint) {
231
+ if (forceClean) {
232
+ config.clear(false);
233
+ }
234
+ else if (this.mouseInBoundary) {
235
+ config.paint(true);
236
+ }
237
+ else {
238
+ config.clear(true);
239
+ }
240
+ }
147
241
  };
148
242
  this.getRevealAnimationConfig = () => {
149
243
  return this.canvasList.find((x) => x.mouseInCanvas()) || null;
@@ -1 +1 @@
1
- {"version":3,"file":"RevealBoundryStore.js","sourceRoot":"","sources":["../src/RevealBoundryStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RevealBoundryStore.js","sourceRoot":"","sources":["../src/RevealBoundryStore.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,9 @@ export declare class RevealStateManager {
6
6
  cachedMouseX: number;
7
7
  cachedMouseY: number;
8
8
  constructor();
9
+ pointerLeaveScheduled: boolean;
10
+ handlePointerLeave: () => void;
11
+ handlePointerMove: (event: PointerEvent) => void;
9
12
  traverseBoundaries: () => void;
10
13
  newBoundary: ($el: HTMLElement) => RevealBoundaryStore;
11
14
  removeBoundary: (store: RevealBoundaryStore) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"RevealStateManager.d.ts","sourceRoot":"","sources":["../src/RevealStateManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAI9D,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAA6B;IAE7C,OAAO,CAAC,2BAA2B,CAAS;IAC5C,YAAY,SAAM;IAClB,YAAY,SAAM;;IAkBlB,kBAAkB,aAKjB;IAED,WAAW,QAAS,WAAW,yBAO7B;IAEF,cAAc,UAAW,mBAAmB,UAE1C;CACL"}
1
+ {"version":3,"file":"RevealStateManager.d.ts","sourceRoot":"","sources":["../src/RevealStateManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAI9D,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAA6B;IAE7C,OAAO,CAAC,2BAA2B,CAAS;IAC5C,YAAY,SAAM;IAClB,YAAY,SAAM;;IAsBlB,qBAAqB,UAAS;IAE9B,kBAAkB,aAYjB;IAED,iBAAiB,UAAW,YAAY,UAQtC;IAEF,kBAAkB,aAKhB;IAEF,WAAW,QAAS,WAAW,yBAO7B;IAEF,cAAc,UAAW,mBAAmB,UAE1C;CACL"}
@@ -7,6 +7,26 @@ export class RevealStateManager {
7
7
  this.requestedTraverseBoundaries = false;
8
8
  this.cachedMouseX = -1;
9
9
  this.cachedMouseY = -1;
10
+ this.pointerLeaveScheduled = false;
11
+ this.handlePointerLeave = () => {
12
+ if (this.pointerLeaveScheduled)
13
+ return;
14
+ this.pointerLeaveScheduled = true;
15
+ window.requestAnimationFrame(() => {
16
+ for (let i = 0; i < this._storage.length; i++) {
17
+ this._storage[i].onPointerLeaveBoundary();
18
+ }
19
+ this.pointerLeaveScheduled = false;
20
+ });
21
+ };
22
+ this.handlePointerMove = (event) => {
23
+ this.cachedMouseX = event.clientX;
24
+ this.cachedMouseY = event.clientY;
25
+ if (!this.requestedTraverseBoundaries) {
26
+ window.requestAnimationFrame(this.traverseBoundaries);
27
+ this.requestedTraverseBoundaries = true;
28
+ }
29
+ };
10
30
  this.traverseBoundaries = () => {
11
31
  this.requestedTraverseBoundaries = false;
12
32
  for (let i = 0; i < this._storage.length; i++) {
@@ -20,18 +40,25 @@ export class RevealStateManager {
20
40
  return store;
21
41
  };
22
42
  this.removeBoundary = (store) => {
23
- this._storage = this._storage.filter(x => x !== store);
43
+ this._storage = this._storage.filter((x) => x !== store);
24
44
  };
25
45
  if (config.borderDetectionMode === 'experimentalAutoFit') {
26
46
  if (typeof Window === 'undefined')
27
47
  return;
28
- window.addEventListener('pointermove', (event) => {
29
- this.cachedMouseX = event.clientX;
30
- this.cachedMouseY = event.clientY;
31
- if (!this.requestedTraverseBoundaries) {
32
- window.requestAnimationFrame(this.traverseBoundaries);
33
- this.requestedTraverseBoundaries = true;
34
- }
48
+ window.addEventListener('pointermove', this.handlePointerMove);
49
+ // This is for touch screen
50
+ // Window.pointerleave won't be triggered if the finger
51
+ // leave the screen, so we use pointer up here.
52
+ window.addEventListener('pointerup', (ev) => {
53
+ if (ev.pointerType !== 'mouse')
54
+ this.handlePointerLeave();
55
+ });
56
+ // This is for desktop
57
+ // If the mouse leave the window, we need to terminate
58
+ // all animations and clean up the canvas.
59
+ window.addEventListener('pointerleave', (ev) => {
60
+ if (ev.pointerType === 'mouse')
61
+ this.handlePointerLeave();
35
62
  });
36
63
  }
37
64
  }
@@ -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;QAkBlB,uBAAkB,GAAG,GAAG,EAAE;YACtB,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3C,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;aAChF;QACL,CAAC,CAAA;QAED,gBAAW,GAAG,CAAC,GAAgB,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAErC,MAAM,KAAK,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE1B,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC;QAEF,mBAAc,GAAG,CAAC,KAA0B,EAAE,EAAE;YAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;QAC3D,CAAC,CAAC;QAjCE,IAAI,MAAM,CAAC,mBAAmB,KAAK,qBAAqB,EAAE;YACtD,IAAI,OAAO,MAAM,KAAK,WAAW;gBAAE,OAAO;YAE1C,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC7C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;gBAElC,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE;oBACnC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBACtD,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;iBAC3C;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;CAqBJ"}
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;QAsBlB,0BAAqB,GAAG,KAAK,CAAC;QAE9B,uBAAkB,GAAG,GAAG,EAAE;YACtB,IAAI,IAAI,CAAC,qBAAqB;gBAAE,OAAO;YAEvC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAElC,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;gBAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC;iBAC7C;gBAED,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACvC,CAAC,CAAC,CAAC;QACP,CAAC,CAAA;QAED,sBAAiB,GAAG,CAAC,KAAmB,EAAE,EAAE;YACxC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;YAClC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;YAElC,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE;gBACnC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACtD,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;aAC3C;QACL,CAAC,CAAC;QAEF,uBAAkB,GAAG,GAAG,EAAE;YACtB,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3C,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;aAChF;QACL,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,GAAgB,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAErC,MAAM,KAAK,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE1B,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC;QAEF,mBAAc,GAAG,CAAC,KAA0B,EAAE,EAAE;YAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;QAC7D,CAAC,CAAC;QA/DE,IAAI,MAAM,CAAC,mBAAmB,KAAK,qBAAqB,EAAE;YACtD,IAAI,OAAO,MAAM,KAAK,WAAW;gBAAE,OAAO;YAE1C,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC/D,2BAA2B;YAC3B,uDAAuD;YACvD,+CAA+C;YAC/C,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE;gBACxC,IAAI,EAAE,CAAC,WAAW,KAAK,OAAO;oBAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC9D,CAAC,CAAC,CAAC;YACH,sBAAsB;YACtB,sDAAsD;YACtD,0CAA0C;YAC1C,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE;gBAC3C,IAAI,EAAE,CAAC,WAAW,KAAK,OAAO;oBAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC9D,CAAC,CAAC,CAAC;SACN;IACL,CAAC;CA+CJ"}
@@ -0,0 +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
+ }
17
+ //# sourceMappingURL=SvgConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvgConfig.d.ts","sourceRoot":"","sources":["../src/SvgConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,SAAU,SAAQ,UAAU,CAAC,aAAa,CAAC;IACpD,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC;gBAE1B,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW;IAuDpF,kBAAkB,aACjB;IAED,kBAAkB,aA2BhB;IAEF,OAAO,CAAC,gBAAgB,CA0BtB;IAEF,OAAO,CAAC,sBAAsB,CAQ7B;IAED,OAAO,CAAC,SAAS,CAgJf;IAEF,iBAAiB,MAAO,aAAa,UASnC;IAEF,KAAK,iBAAkB,OAAO,UAI7B;IAED,OAAO,CAAC,aAAa,CAWpB;IAED,KAAK,0DAA6C,OAAO,CA8GvD;CACL"}