animejs 4.1.4 → 4.2.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 (188) hide show
  1. package/README.md +17 -8
  2. package/{lib → dist/bundles}/anime.esm.js +6476 -6106
  3. package/dist/bundles/anime.esm.min.js +7 -0
  4. package/dist/bundles/anime.umd.js +8809 -0
  5. package/dist/bundles/anime.umd.min.js +7 -0
  6. package/dist/modules/animatable/animatable.cjs +150 -0
  7. package/dist/modules/animatable/animatable.d.ts +28 -0
  8. package/dist/modules/animatable/animatable.js +147 -0
  9. package/dist/modules/animatable/index.cjs +15 -0
  10. package/dist/modules/animatable/index.d.ts +1 -0
  11. package/dist/modules/animatable/index.js +8 -0
  12. package/dist/modules/animation/additive.cjs +82 -0
  13. package/dist/modules/animation/additive.d.ts +15 -0
  14. package/dist/modules/animation/additive.js +79 -0
  15. package/dist/modules/animation/animation.cjs +667 -0
  16. package/dist/modules/animation/animation.d.ts +45 -0
  17. package/dist/modules/animation/animation.js +664 -0
  18. package/dist/modules/animation/composition.cjs +383 -0
  19. package/dist/modules/animation/composition.d.ts +10 -0
  20. package/dist/modules/animation/composition.js +377 -0
  21. package/dist/modules/animation/index.cjs +15 -0
  22. package/dist/modules/animation/index.d.ts +1 -0
  23. package/dist/modules/animation/index.js +8 -0
  24. package/dist/modules/core/clock.cjs +110 -0
  25. package/dist/modules/core/clock.d.ts +51 -0
  26. package/dist/modules/core/clock.js +108 -0
  27. package/dist/modules/core/colors.cjs +102 -0
  28. package/dist/modules/core/colors.d.ts +2 -0
  29. package/dist/modules/core/colors.js +100 -0
  30. package/dist/modules/core/consts.cjs +159 -0
  31. package/dist/modules/core/consts.d.ts +61 -0
  32. package/dist/modules/core/consts.js +124 -0
  33. package/dist/modules/core/globals.cjs +78 -0
  34. package/dist/modules/core/globals.d.ts +29 -0
  35. package/dist/modules/core/globals.js +73 -0
  36. package/dist/modules/core/helpers.cjs +304 -0
  37. package/dist/modules/core/helpers.d.ts +43 -0
  38. package/dist/modules/core/helpers.js +261 -0
  39. package/dist/modules/core/render.cjs +391 -0
  40. package/dist/modules/core/render.d.ts +4 -0
  41. package/dist/modules/core/render.js +388 -0
  42. package/dist/modules/core/styles.cjs +116 -0
  43. package/dist/modules/core/styles.d.ts +5 -0
  44. package/dist/modules/core/styles.js +113 -0
  45. package/dist/modules/core/targets.cjs +136 -0
  46. package/dist/modules/core/targets.d.ts +118 -0
  47. package/dist/modules/core/targets.js +132 -0
  48. package/dist/modules/core/transforms.cjs +49 -0
  49. package/dist/modules/core/transforms.d.ts +2 -0
  50. package/dist/modules/core/transforms.js +47 -0
  51. package/dist/modules/core/units.cjs +67 -0
  52. package/dist/modules/core/units.d.ts +3 -0
  53. package/dist/modules/core/units.js +65 -0
  54. package/dist/modules/core/values.cjs +226 -0
  55. package/dist/modules/core/values.d.ts +14 -0
  56. package/dist/modules/core/values.js +216 -0
  57. package/dist/modules/draggable/draggable.cjs +1226 -0
  58. package/dist/modules/draggable/draggable.d.ts +272 -0
  59. package/dist/modules/draggable/draggable.js +1223 -0
  60. package/dist/modules/draggable/index.cjs +15 -0
  61. package/dist/modules/draggable/index.d.ts +1 -0
  62. package/dist/modules/draggable/index.js +8 -0
  63. package/dist/modules/easings/cubic-bezier/index.cjs +64 -0
  64. package/dist/modules/easings/cubic-bezier/index.d.ts +2 -0
  65. package/dist/modules/easings/cubic-bezier/index.js +62 -0
  66. package/dist/modules/easings/eases/index.cjs +14 -0
  67. package/dist/modules/easings/eases/index.d.ts +1 -0
  68. package/dist/modules/easings/eases/index.js +8 -0
  69. package/dist/modules/easings/eases/parser.cjs +191 -0
  70. package/dist/modules/easings/eases/parser.d.ts +125 -0
  71. package/dist/modules/easings/eases/parser.js +185 -0
  72. package/dist/modules/easings/index.cjs +26 -0
  73. package/dist/modules/easings/index.d.ts +6 -0
  74. package/dist/modules/easings/index.js +13 -0
  75. package/dist/modules/easings/irregular/index.cjs +41 -0
  76. package/dist/modules/easings/irregular/index.d.ts +2 -0
  77. package/dist/modules/easings/irregular/index.js +39 -0
  78. package/dist/modules/easings/linear/index.cjs +59 -0
  79. package/dist/modules/easings/linear/index.d.ts +2 -0
  80. package/dist/modules/easings/linear/index.js +57 -0
  81. package/dist/modules/easings/none.cjs +19 -0
  82. package/dist/modules/easings/none.d.ts +8 -0
  83. package/dist/modules/easings/none.js +17 -0
  84. package/dist/modules/easings/spring/index.cjs +255 -0
  85. package/dist/modules/easings/spring/index.d.ts +53 -0
  86. package/dist/modules/easings/spring/index.js +251 -0
  87. package/dist/modules/easings/steps/index.cjs +30 -0
  88. package/dist/modules/easings/steps/index.d.ts +2 -0
  89. package/dist/modules/easings/steps/index.js +28 -0
  90. package/dist/modules/engine/engine.cjs +168 -0
  91. package/dist/modules/engine/engine.d.ts +21 -0
  92. package/dist/modules/engine/engine.js +166 -0
  93. package/dist/modules/engine/index.cjs +14 -0
  94. package/dist/modules/engine/index.d.ts +1 -0
  95. package/dist/modules/engine/index.js +8 -0
  96. package/dist/modules/events/index.cjs +16 -0
  97. package/dist/modules/events/index.d.ts +1 -0
  98. package/dist/modules/events/index.js +8 -0
  99. package/dist/modules/events/scroll.cjs +940 -0
  100. package/dist/modules/events/scroll.d.ts +191 -0
  101. package/dist/modules/events/scroll.js +936 -0
  102. package/dist/modules/index.cjs +102 -0
  103. package/dist/modules/index.d.ts +18 -0
  104. package/dist/modules/index.js +41 -0
  105. package/dist/modules/scope/index.cjs +15 -0
  106. package/dist/modules/scope/index.d.ts +1 -0
  107. package/dist/modules/scope/index.js +8 -0
  108. package/dist/modules/scope/scope.cjs +254 -0
  109. package/dist/modules/scope/scope.d.ts +115 -0
  110. package/dist/modules/scope/scope.js +251 -0
  111. package/dist/modules/svg/drawable.cjs +119 -0
  112. package/dist/modules/svg/drawable.d.ts +3 -0
  113. package/dist/modules/svg/drawable.js +117 -0
  114. package/dist/modules/svg/helpers.cjs +30 -0
  115. package/dist/modules/svg/helpers.d.ts +2 -0
  116. package/dist/modules/svg/helpers.js +28 -0
  117. package/dist/modules/svg/index.cjs +18 -0
  118. package/dist/modules/svg/index.d.ts +3 -0
  119. package/dist/modules/svg/index.js +10 -0
  120. package/dist/modules/svg/morphto.cjs +58 -0
  121. package/dist/modules/svg/morphto.d.ts +3 -0
  122. package/dist/modules/svg/morphto.js +56 -0
  123. package/dist/modules/svg/motionpath.cjs +79 -0
  124. package/dist/modules/svg/motionpath.d.ts +7 -0
  125. package/dist/modules/svg/motionpath.js +77 -0
  126. package/dist/modules/text/index.cjs +16 -0
  127. package/dist/modules/text/index.d.ts +1 -0
  128. package/dist/modules/text/index.js +8 -0
  129. package/dist/modules/text/split.cjs +488 -0
  130. package/dist/modules/text/split.d.ts +62 -0
  131. package/dist/modules/text/split.js +484 -0
  132. package/dist/modules/timeline/index.cjs +15 -0
  133. package/dist/modules/timeline/index.d.ts +1 -0
  134. package/dist/modules/timeline/index.js +8 -0
  135. package/dist/modules/timeline/position.cjs +72 -0
  136. package/dist/modules/timeline/position.d.ts +3 -0
  137. package/dist/modules/timeline/position.js +70 -0
  138. package/dist/modules/timeline/timeline.cjs +312 -0
  139. package/dist/modules/timeline/timeline.d.ts +163 -0
  140. package/dist/modules/timeline/timeline.js +309 -0
  141. package/dist/modules/timer/index.cjs +15 -0
  142. package/dist/modules/timer/index.d.ts +1 -0
  143. package/dist/modules/timer/index.js +8 -0
  144. package/dist/modules/timer/timer.cjs +491 -0
  145. package/dist/modules/timer/timer.d.ts +141 -0
  146. package/dist/modules/timer/timer.js +488 -0
  147. package/dist/modules/types/index.d.ts +404 -0
  148. package/dist/modules/utils/chainable.cjs +190 -0
  149. package/dist/modules/utils/chainable.d.ts +135 -0
  150. package/dist/modules/utils/chainable.js +177 -0
  151. package/dist/modules/utils/index.cjs +43 -0
  152. package/dist/modules/utils/index.d.ts +5 -0
  153. package/dist/modules/utils/index.js +14 -0
  154. package/dist/modules/utils/number.cjs +97 -0
  155. package/dist/modules/utils/number.d.ts +9 -0
  156. package/dist/modules/utils/number.js +85 -0
  157. package/dist/modules/utils/random.cjs +77 -0
  158. package/dist/modules/utils/random.d.ts +22 -0
  159. package/dist/modules/utils/random.js +72 -0
  160. package/dist/modules/utils/stagger.cjs +122 -0
  161. package/dist/modules/utils/stagger.d.ts +30 -0
  162. package/dist/modules/utils/stagger.js +120 -0
  163. package/dist/modules/utils/target.cjs +130 -0
  164. package/dist/modules/utils/target.d.ts +126 -0
  165. package/dist/modules/utils/target.js +125 -0
  166. package/dist/modules/utils/time.cjs +57 -0
  167. package/dist/modules/utils/time.d.ts +5 -0
  168. package/dist/modules/utils/time.js +54 -0
  169. package/dist/modules/waapi/composition.cjs +95 -0
  170. package/dist/modules/waapi/composition.d.ts +4 -0
  171. package/dist/modules/waapi/composition.js +92 -0
  172. package/dist/modules/waapi/index.cjs +15 -0
  173. package/dist/modules/waapi/index.d.ts +1 -0
  174. package/dist/modules/waapi/index.js +8 -0
  175. package/dist/modules/waapi/waapi.cjs +492 -0
  176. package/dist/modules/waapi/waapi.d.ts +116 -0
  177. package/dist/modules/waapi/waapi.js +489 -0
  178. package/package.json +166 -33
  179. package/lib/anime.cjs +0 -9
  180. package/lib/anime.esm.min.js +0 -9
  181. package/lib/anime.iife.js +0 -9
  182. package/lib/anime.iife.min.js +0 -9
  183. package/lib/anime.min.cjs +0 -9
  184. package/lib/anime.umd.js +0 -9
  185. package/lib/anime.umd.min.js +0 -9
  186. package/lib/gui/index.js +0 -6341
  187. package/types/index.d.ts +0 -1127
  188. package/types/index.js +0 -7395
@@ -0,0 +1,135 @@
1
+ /**
2
+ * @typedef {Object} ChainablesMap
3
+ * @property {ChainedClamp} clamp
4
+ * @property {ChainedRound} round
5
+ * @property {ChainedSnap} snap
6
+ * @property {ChainedWrap} wrap
7
+ * @property {ChainedLerp} lerp
8
+ * @property {ChainedDamp} damp
9
+ * @property {ChainedMapRange} mapRange
10
+ * @property {ChainedRoundPad} roundPad
11
+ * @property {ChainedPadStart} padStart
12
+ * @property {ChainedPadEnd} padEnd
13
+ * @property {ChainedDegToRad} degToRad
14
+ * @property {ChainedRadToDeg} radToDeg
15
+ */
16
+ /**
17
+ * @callback ChainedUtilsResult
18
+ * @param {Number} value - The value to process through the chained operations
19
+ * @return {Number} The processed result
20
+ */
21
+ /**
22
+ * @typedef {ChainablesMap & ChainedUtilsResult} ChainableUtil
23
+ */
24
+ /**
25
+ * @callback ChainedRoundPad
26
+ * @param {Number} decimalLength - Number of decimal places
27
+ * @return {ChainableUtil}
28
+ */
29
+ export const roundPad: typeof numberUtils.roundPad & ChainedRoundPad;
30
+ /**
31
+ * @callback ChainedPadStart
32
+ * @param {Number} totalLength - Target length
33
+ * @param {String} padString - String to pad with
34
+ * @return {ChainableUtil}
35
+ */
36
+ export const padStart: typeof numberUtils.padStart & ChainedPadStart;
37
+ /**
38
+ * @callback ChainedPadEnd
39
+ * @param {Number} totalLength - Target length
40
+ * @param {String} padString - String to pad with
41
+ * @return {ChainableUtil}
42
+ */
43
+ export const padEnd: typeof numberUtils.padEnd & ChainedPadEnd;
44
+ /**
45
+ * @callback ChainedWrap
46
+ * @param {Number} min - Minimum boundary
47
+ * @param {Number} max - Maximum boundary
48
+ * @return {ChainableUtil}
49
+ */
50
+ export const wrap: typeof numberUtils.wrap & ChainedWrap;
51
+ /**
52
+ * @callback ChainedMapRange
53
+ * @param {Number} inLow - Input range minimum
54
+ * @param {Number} inHigh - Input range maximum
55
+ * @param {Number} outLow - Output range minimum
56
+ * @param {Number} outHigh - Output range maximum
57
+ * @return {ChainableUtil}
58
+ */
59
+ export const mapRange: typeof numberUtils.mapRange & ChainedMapRange;
60
+ /**
61
+ * @callback ChainedDegToRad
62
+ * @return {ChainableUtil}
63
+ */
64
+ export const degToRad: typeof numberUtils.degToRad & ChainedDegToRad;
65
+ /**
66
+ * @callback ChainedRadToDeg
67
+ * @return {ChainableUtil}
68
+ */
69
+ export const radToDeg: typeof numberUtils.radToDeg & ChainedRadToDeg;
70
+ /**
71
+ * @callback ChainedSnap
72
+ * @param {Number|Array<Number>} increment - Step size or array of snap points
73
+ * @return {ChainableUtil}
74
+ */
75
+ export const snap: typeof numberUtils.snap & ChainedSnap;
76
+ /**
77
+ * @callback ChainedClamp
78
+ * @param {Number} min - Minimum boundary
79
+ * @param {Number} max - Maximum boundary
80
+ * @return {ChainableUtil}
81
+ */
82
+ export const clamp: typeof numberUtils.clamp & ChainedClamp;
83
+ /**
84
+ * @callback ChainedRound
85
+ * @param {Number} decimalLength - Number of decimal places
86
+ * @return {ChainableUtil}
87
+ */
88
+ export const round: typeof numberUtils.round & ChainedRound;
89
+ /**
90
+ * @callback ChainedLerp
91
+ * @param {Number} start - Starting value
92
+ * @param {Number} end - Ending value
93
+ * @return {ChainableUtil}
94
+ */
95
+ export const lerp: typeof numberUtils.lerp & ChainedLerp;
96
+ /**
97
+ * @callback ChainedDamp
98
+ * @param {Number} start - Starting value
99
+ * @param {Number} end - Target value
100
+ * @param {Number} deltaTime - Delta time in ms
101
+ * @return {ChainableUtil}
102
+ */
103
+ export const damp: typeof numberUtils.damp & ChainedDamp;
104
+ export type UtilityFunction = (...args: any[]) => number | string;
105
+ export type ChainablesMap = {
106
+ clamp: ChainedClamp;
107
+ round: ChainedRound;
108
+ snap: ChainedSnap;
109
+ wrap: ChainedWrap;
110
+ lerp: ChainedLerp;
111
+ damp: ChainedDamp;
112
+ mapRange: ChainedMapRange;
113
+ roundPad: ChainedRoundPad;
114
+ padStart: ChainedPadStart;
115
+ padEnd: ChainedPadEnd;
116
+ degToRad: ChainedDegToRad;
117
+ radToDeg: ChainedRadToDeg;
118
+ };
119
+ export type ChainedUtilsResult = (value: number) => number;
120
+ export type ChainableUtil = ChainablesMap & ChainedUtilsResult;
121
+ export type ChainedRoundPad = (decimalLength: number) => ChainableUtil;
122
+ export type ChainedPadStart = (totalLength: number, padString: string) => ChainableUtil;
123
+ export type ChainedPadEnd = (totalLength: number, padString: string) => ChainableUtil;
124
+ export type ChainedWrap = (min: number, max: number) => ChainableUtil;
125
+ export type ChainedMapRange = (inLow: number, inHigh: number, outLow: number, outHigh: number) => ChainableUtil;
126
+ export type ChainedDegToRad = () => ChainableUtil;
127
+ export type ChainedRadToDeg = () => ChainableUtil;
128
+ export type ChainedSnap = (increment: number | Array<number>) => ChainableUtil;
129
+ export type ChainedClamp = (min: number, max: number) => ChainableUtil;
130
+ export type ChainedRound = (decimalLength: number) => ChainableUtil;
131
+ export type ChainedLerp = (start: number, end: number) => ChainableUtil;
132
+ export type ChainedDamp = (start: number, end: number, deltaTime: number) => ChainableUtil;
133
+ declare const numberUtils: typeof numberImports;
134
+ import * as numberImports from './number.js';
135
+ export {};
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Anime.js - utils - ESM
3
+ * @version v4.2.0
4
+ * @license MIT
5
+ * @copyright 2025 - Julian Garnier
6
+ */
7
+
8
+ import { noop } from '../core/consts.js';
9
+ import * as number from './number.js';
10
+
11
+ // Chain-able utilities
12
+
13
+ const numberUtils = number; // Needed to keep the import when bundling
14
+
15
+ const chainables = {};
16
+
17
+ /**
18
+ * @callback UtilityFunction
19
+ * @param {...*} args
20
+ * @return {Number|String}
21
+ *
22
+ * @param {UtilityFunction} fn
23
+ * @param {Number} [last=0]
24
+ * @return {function(...(Number|String)): function(Number|String): (Number|String)}
25
+ */
26
+ const curry = (fn, last = 0) => (...args) => last ? v => fn(...args, v) : v => fn(v, ...args);
27
+
28
+ /**
29
+ * @param {Function} fn
30
+ * @return {function(...(Number|String))}
31
+ */
32
+ const chain = fn => {
33
+ return (...args) => {
34
+ const result = fn(...args);
35
+ return new Proxy(noop, {
36
+ apply: (_, __, [v]) => result(v),
37
+ get: (_, prop) => chain(/**@param {...Number|String} nextArgs */(...nextArgs) => {
38
+ const nextResult = chainables[prop](...nextArgs);
39
+ return (/**@type {Number|String} */v) => nextResult(result(v));
40
+ })
41
+ });
42
+ }
43
+ };
44
+
45
+ /**
46
+ * @param {UtilityFunction} fn
47
+ * @param {String} name
48
+ * @param {Number} [right]
49
+ * @return {function(...(Number|String)): UtilityFunction}
50
+ */
51
+ const makeChainable = (name, fn, right = 0) => {
52
+ const chained = (...args) => (args.length < fn.length ? chain(curry(fn, right)) : fn)(...args);
53
+ if (!chainables[name]) chainables[name] = chained;
54
+ return chained;
55
+ };
56
+
57
+ /**
58
+ * @typedef {Object} ChainablesMap
59
+ * @property {ChainedClamp} clamp
60
+ * @property {ChainedRound} round
61
+ * @property {ChainedSnap} snap
62
+ * @property {ChainedWrap} wrap
63
+ * @property {ChainedLerp} lerp
64
+ * @property {ChainedDamp} damp
65
+ * @property {ChainedMapRange} mapRange
66
+ * @property {ChainedRoundPad} roundPad
67
+ * @property {ChainedPadStart} padStart
68
+ * @property {ChainedPadEnd} padEnd
69
+ * @property {ChainedDegToRad} degToRad
70
+ * @property {ChainedRadToDeg} radToDeg
71
+ */
72
+
73
+ /**
74
+ * @callback ChainedUtilsResult
75
+ * @param {Number} value - The value to process through the chained operations
76
+ * @return {Number} The processed result
77
+ */
78
+
79
+ /**
80
+ * @typedef {ChainablesMap & ChainedUtilsResult} ChainableUtil
81
+ */
82
+
83
+ // Chainable
84
+
85
+ /**
86
+ * @callback ChainedRoundPad
87
+ * @param {Number} decimalLength - Number of decimal places
88
+ * @return {ChainableUtil}
89
+ */
90
+ const roundPad = /** @type {typeof numberUtils.roundPad & ChainedRoundPad} */(makeChainable('roundPad', numberUtils.roundPad));
91
+
92
+ /**
93
+ * @callback ChainedPadStart
94
+ * @param {Number} totalLength - Target length
95
+ * @param {String} padString - String to pad with
96
+ * @return {ChainableUtil}
97
+ */
98
+ const padStart = /** @type {typeof numberUtils.padStart & ChainedPadStart} */(makeChainable('padStart', numberUtils.padStart));
99
+
100
+ /**
101
+ * @callback ChainedPadEnd
102
+ * @param {Number} totalLength - Target length
103
+ * @param {String} padString - String to pad with
104
+ * @return {ChainableUtil}
105
+ */
106
+ const padEnd = /** @type {typeof numberUtils.padEnd & ChainedPadEnd} */(makeChainable('padEnd', numberUtils.padEnd));
107
+
108
+ /**
109
+ * @callback ChainedWrap
110
+ * @param {Number} min - Minimum boundary
111
+ * @param {Number} max - Maximum boundary
112
+ * @return {ChainableUtil}
113
+ */
114
+ const wrap = /** @type {typeof numberUtils.wrap & ChainedWrap} */(makeChainable('wrap', numberUtils.wrap));
115
+
116
+ /**
117
+ * @callback ChainedMapRange
118
+ * @param {Number} inLow - Input range minimum
119
+ * @param {Number} inHigh - Input range maximum
120
+ * @param {Number} outLow - Output range minimum
121
+ * @param {Number} outHigh - Output range maximum
122
+ * @return {ChainableUtil}
123
+ */
124
+ const mapRange = /** @type {typeof numberUtils.mapRange & ChainedMapRange} */(makeChainable('mapRange', numberUtils.mapRange));
125
+
126
+ /**
127
+ * @callback ChainedDegToRad
128
+ * @return {ChainableUtil}
129
+ */
130
+ const degToRad = /** @type {typeof numberUtils.degToRad & ChainedDegToRad} */(makeChainable('degToRad', numberUtils.degToRad));
131
+
132
+ /**
133
+ * @callback ChainedRadToDeg
134
+ * @return {ChainableUtil}
135
+ */
136
+ const radToDeg = /** @type {typeof numberUtils.radToDeg & ChainedRadToDeg} */(makeChainable('radToDeg', numberUtils.radToDeg));
137
+
138
+ /**
139
+ * @callback ChainedSnap
140
+ * @param {Number|Array<Number>} increment - Step size or array of snap points
141
+ * @return {ChainableUtil}
142
+ */
143
+ const snap = /** @type {typeof numberUtils.snap & ChainedSnap} */(makeChainable('snap', numberUtils.snap));
144
+
145
+ /**
146
+ * @callback ChainedClamp
147
+ * @param {Number} min - Minimum boundary
148
+ * @param {Number} max - Maximum boundary
149
+ * @return {ChainableUtil}
150
+ */
151
+ const clamp = /** @type {typeof numberUtils.clamp & ChainedClamp} */(makeChainable('clamp', numberUtils.clamp));
152
+
153
+ /**
154
+ * @callback ChainedRound
155
+ * @param {Number} decimalLength - Number of decimal places
156
+ * @return {ChainableUtil}
157
+ */
158
+ const round = /** @type {typeof numberUtils.round & ChainedRound} */(makeChainable('round', numberUtils.round));
159
+
160
+ /**
161
+ * @callback ChainedLerp
162
+ * @param {Number} start - Starting value
163
+ * @param {Number} end - Ending value
164
+ * @return {ChainableUtil}
165
+ */
166
+ const lerp = /** @type {typeof numberUtils.lerp & ChainedLerp} */(makeChainable('lerp', numberUtils.lerp, 1));
167
+
168
+ /**
169
+ * @callback ChainedDamp
170
+ * @param {Number} start - Starting value
171
+ * @param {Number} end - Target value
172
+ * @param {Number} deltaTime - Delta time in ms
173
+ * @return {ChainableUtil}
174
+ */
175
+ const damp = /** @type {typeof numberUtils.damp & ChainedDamp} */(makeChainable('damp', numberUtils.damp, 1));
176
+
177
+ export { clamp, damp, degToRad, lerp, mapRange, padEnd, padStart, radToDeg, round, roundPad, snap, wrap };
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Anime.js - utils - CJS
3
+ * @version v4.2.0
4
+ * @license MIT
5
+ * @copyright 2025 - Julian Garnier
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ var chainable = require('./chainable.cjs');
11
+ var random = require('./random.cjs');
12
+ var time = require('./time.cjs');
13
+ var target = require('./target.cjs');
14
+ var stagger = require('./stagger.cjs');
15
+ var styles = require('../core/styles.cjs');
16
+ var targets = require('../core/targets.cjs');
17
+
18
+
19
+
20
+ exports.clamp = chainable.clamp;
21
+ exports.damp = chainable.damp;
22
+ exports.degToRad = chainable.degToRad;
23
+ exports.lerp = chainable.lerp;
24
+ exports.mapRange = chainable.mapRange;
25
+ exports.padEnd = chainable.padEnd;
26
+ exports.padStart = chainable.padStart;
27
+ exports.radToDeg = chainable.radToDeg;
28
+ exports.round = chainable.round;
29
+ exports.roundPad = chainable.roundPad;
30
+ exports.snap = chainable.snap;
31
+ exports.wrap = chainable.wrap;
32
+ exports.createSeededRandom = random.createSeededRandom;
33
+ exports.random = random.random;
34
+ exports.randomPick = random.randomPick;
35
+ exports.shuffle = random.shuffle;
36
+ exports.keepTime = time.keepTime;
37
+ exports.sync = time.sync;
38
+ exports.get = target.get;
39
+ exports.remove = target.remove;
40
+ exports.set = target.set;
41
+ exports.stagger = stagger.stagger;
42
+ exports.cleanInlineStyles = styles.cleanInlineStyles;
43
+ exports.$ = targets.registerTargets;
@@ -0,0 +1,5 @@
1
+ export * from "./chainable.js";
2
+ export * from "./random.js";
3
+ export * from "./time.js";
4
+ export * from "./target.js";
5
+ export * from "./stagger.js";
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Anime.js - utils - ESM
3
+ * @version v4.2.0
4
+ * @license MIT
5
+ * @copyright 2025 - Julian Garnier
6
+ */
7
+
8
+ export { clamp, damp, degToRad, lerp, mapRange, padEnd, padStart, radToDeg, round, roundPad, snap, wrap } from './chainable.js';
9
+ export { createSeededRandom, random, randomPick, shuffle } from './random.js';
10
+ export { keepTime, sync } from './time.js';
11
+ export { get, remove, set } from './target.js';
12
+ export { stagger } from './stagger.js';
13
+ export { cleanInlineStyles } from '../core/styles.js';
14
+ export { registerTargets as $ } from '../core/targets.js';
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Anime.js - utils - CJS
3
+ * @version v4.2.0
4
+ * @license MIT
5
+ * @copyright 2025 - Julian Garnier
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ var helpers = require('../core/helpers.cjs');
11
+
12
+ /**
13
+ * Rounds a number to fixed decimal places
14
+ * @param {Number|String} v - Value to round
15
+ * @param {Number} decimalLength - Number of decimal places
16
+ * @return {String}
17
+ */
18
+ const roundPad = (v, decimalLength) => (+v).toFixed(decimalLength);
19
+
20
+ /**
21
+ * Pads the start of a value with a string
22
+ * @param {Number} v - Value to pad
23
+ * @param {Number} totalLength - Target length
24
+ * @param {String} padString - String to pad with
25
+ * @return {String}
26
+ */
27
+ const padStart = (v, totalLength, padString) => `${v}`.padStart(totalLength, padString);
28
+
29
+ /**
30
+ * Pads the end of a value with a string
31
+ * @param {Number} v - Value to pad
32
+ * @param {Number} totalLength - Target length
33
+ * @param {String} padString - String to pad with
34
+ * @return {String}
35
+ */
36
+ const padEnd = (v, totalLength, padString) => `${v}`.padEnd(totalLength, padString);
37
+
38
+ /**
39
+ * Wraps a value within a range
40
+ * @param {Number} v - Value to wrap
41
+ * @param {Number} min - Minimum boundary
42
+ * @param {Number} max - Maximum boundary
43
+ * @return {Number}
44
+ */
45
+ const wrap = (v, min, max) => (((v - min) % (max - min) + (max - min)) % (max - min)) + min;
46
+
47
+ /**
48
+ * Maps a value from one range to another
49
+ * @param {Number} value - Input value
50
+ * @param {Number} inLow - Input range minimum
51
+ * @param {Number} inHigh - Input range maximum
52
+ * @param {Number} outLow - Output range minimum
53
+ * @param {Number} outHigh - Output range maximum
54
+ * @return {Number}
55
+ */
56
+ const mapRange = (value, inLow, inHigh, outLow, outHigh) => outLow + ((value - inLow) / (inHigh - inLow)) * (outHigh - outLow);
57
+
58
+ /**
59
+ * Converts degrees to radians
60
+ * @param {Number} degrees - Angle in degrees
61
+ * @return {Number}
62
+ */
63
+ const degToRad = degrees => degrees * Math.PI / 180;
64
+
65
+ /**
66
+ * Converts radians to degrees
67
+ * @param {Number} radians - Angle in radians
68
+ * @return {Number}
69
+ */
70
+ const radToDeg = radians => radians * 180 / Math.PI;
71
+
72
+ /**
73
+ * Frame rate independent damped lerp
74
+ * Based on: https://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/
75
+ *
76
+ * @param {Number} start - Starting value
77
+ * @param {Number} end - Target value
78
+ * @param {Number} deltaTime - Delta time in ms
79
+ * @param {Number} factor - Interpolation factor in the range [0, 1]
80
+ * @return {Number} The interpolated value
81
+ */
82
+ const damp = (start, end, deltaTime, factor) => {
83
+ return !factor ? start : factor === 1 ? end : helpers.lerp(start, end, 1 - Math.exp(-factor * deltaTime * .1));
84
+ };
85
+
86
+ exports.clamp = helpers.clamp;
87
+ exports.lerp = helpers.lerp;
88
+ exports.round = helpers.round;
89
+ exports.snap = helpers.snap;
90
+ exports.damp = damp;
91
+ exports.degToRad = degToRad;
92
+ exports.mapRange = mapRange;
93
+ exports.padEnd = padEnd;
94
+ exports.padStart = padStart;
95
+ exports.radToDeg = radToDeg;
96
+ exports.roundPad = roundPad;
97
+ exports.wrap = wrap;
@@ -0,0 +1,9 @@
1
+ export function roundPad(v: number | string, decimalLength: number): string;
2
+ export function padStart(v: number, totalLength: number, padString: string): string;
3
+ export function padEnd(v: number, totalLength: number, padString: string): string;
4
+ export function wrap(v: number, min: number, max: number): number;
5
+ export function mapRange(value: number, inLow: number, inHigh: number, outLow: number, outHigh: number): number;
6
+ export function degToRad(degrees: number): number;
7
+ export function radToDeg(radians: number): number;
8
+ export function damp(start: number, end: number, deltaTime: number, factor: number): number;
9
+ export { snap, clamp, round, lerp } from "../core/helpers.js";
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Anime.js - utils - ESM
3
+ * @version v4.2.0
4
+ * @license MIT
5
+ * @copyright 2025 - Julian Garnier
6
+ */
7
+
8
+ import { lerp } from '../core/helpers.js';
9
+ export { clamp, round, snap } from '../core/helpers.js';
10
+
11
+ /**
12
+ * Rounds a number to fixed decimal places
13
+ * @param {Number|String} v - Value to round
14
+ * @param {Number} decimalLength - Number of decimal places
15
+ * @return {String}
16
+ */
17
+ const roundPad = (v, decimalLength) => (+v).toFixed(decimalLength);
18
+
19
+ /**
20
+ * Pads the start of a value with a string
21
+ * @param {Number} v - Value to pad
22
+ * @param {Number} totalLength - Target length
23
+ * @param {String} padString - String to pad with
24
+ * @return {String}
25
+ */
26
+ const padStart = (v, totalLength, padString) => `${v}`.padStart(totalLength, padString);
27
+
28
+ /**
29
+ * Pads the end of a value with a string
30
+ * @param {Number} v - Value to pad
31
+ * @param {Number} totalLength - Target length
32
+ * @param {String} padString - String to pad with
33
+ * @return {String}
34
+ */
35
+ const padEnd = (v, totalLength, padString) => `${v}`.padEnd(totalLength, padString);
36
+
37
+ /**
38
+ * Wraps a value within a range
39
+ * @param {Number} v - Value to wrap
40
+ * @param {Number} min - Minimum boundary
41
+ * @param {Number} max - Maximum boundary
42
+ * @return {Number}
43
+ */
44
+ const wrap = (v, min, max) => (((v - min) % (max - min) + (max - min)) % (max - min)) + min;
45
+
46
+ /**
47
+ * Maps a value from one range to another
48
+ * @param {Number} value - Input value
49
+ * @param {Number} inLow - Input range minimum
50
+ * @param {Number} inHigh - Input range maximum
51
+ * @param {Number} outLow - Output range minimum
52
+ * @param {Number} outHigh - Output range maximum
53
+ * @return {Number}
54
+ */
55
+ const mapRange = (value, inLow, inHigh, outLow, outHigh) => outLow + ((value - inLow) / (inHigh - inLow)) * (outHigh - outLow);
56
+
57
+ /**
58
+ * Converts degrees to radians
59
+ * @param {Number} degrees - Angle in degrees
60
+ * @return {Number}
61
+ */
62
+ const degToRad = degrees => degrees * Math.PI / 180;
63
+
64
+ /**
65
+ * Converts radians to degrees
66
+ * @param {Number} radians - Angle in radians
67
+ * @return {Number}
68
+ */
69
+ const radToDeg = radians => radians * 180 / Math.PI;
70
+
71
+ /**
72
+ * Frame rate independent damped lerp
73
+ * Based on: https://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/
74
+ *
75
+ * @param {Number} start - Starting value
76
+ * @param {Number} end - Target value
77
+ * @param {Number} deltaTime - Delta time in ms
78
+ * @param {Number} factor - Interpolation factor in the range [0, 1]
79
+ * @return {Number} The interpolated value
80
+ */
81
+ const damp = (start, end, deltaTime, factor) => {
82
+ return !factor ? start : factor === 1 ? end : lerp(start, end, 1 - Math.exp(-factor * deltaTime * .1));
83
+ };
84
+
85
+ export { damp, degToRad, lerp, mapRange, padEnd, padStart, radToDeg, roundPad, wrap };
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Anime.js - utils - CJS
3
+ * @version v4.2.0
4
+ * @license MIT
5
+ * @copyright 2025 - Julian Garnier
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ /**
11
+ * Generate a random number between optional min and max (inclusive) and decimal precision
12
+ *
13
+ * @callback RandomNumberGenerator
14
+ * @param {Number} [min=0] - The minimum value (inclusive)
15
+ * @param {Number} [max=1] - The maximum value (inclusive)
16
+ * @param {Number} [decimalLength=0] - Number of decimal places to round to
17
+ * @return {Number} A random number between min and max
18
+ */
19
+
20
+ /**
21
+ * Generates a random number between min and max (inclusive) with optional decimal precision
22
+ *
23
+ * @type {RandomNumberGenerator}
24
+ */
25
+ const random = (min = 0, max = 1, decimalLength = 0) => {
26
+ const m = 10 ** decimalLength;
27
+ return Math.floor((Math.random() * (max - min + (1 / m)) + min) * m) / m;
28
+ };
29
+
30
+ let _seed = 0;
31
+
32
+ /**
33
+ * Creates a seeded pseudorandom number generator function
34
+ *
35
+ * @param {Number} [seed] - The seed value for the random number generator
36
+ * @param {Number} [seededMin=0] - The minimum default value (inclusive) of the returned function
37
+ * @param {Number} [seededMax=1] - The maximum default value (inclusive) of the returned function
38
+ * @param {Number} [seededDecimalLength=0] - Default number of decimal places to round to of the returned function
39
+ * @return {RandomNumberGenerator} A function to generate a random number between optional min and max (inclusive) and decimal precision
40
+ */
41
+ const createSeededRandom = (seed, seededMin = 0, seededMax = 1, seededDecimalLength = 0) => {
42
+ let t = seed === undefined ? _seed++ : seed;
43
+ return (min = seededMin, max = seededMax, decimalLength = seededDecimalLength) => {
44
+ t += 0x6D2B79F5;
45
+ t = Math.imul(t ^ t >>> 15, t | 1);
46
+ t ^= t + Math.imul(t ^ t >>> 7, t | 61);
47
+ const m = 10 ** decimalLength;
48
+ return Math.floor(((((t ^ t >>> 14) >>> 0) / 4294967296) * (max - min + (1 / m)) + min) * m) / m;
49
+ }
50
+ };
51
+
52
+ /**
53
+ * Picks a random element from an array or a string
54
+ *
55
+ * @template T
56
+ * @param {String|Array<T>} items - The array or string to pick from
57
+ * @return {String|T} A random element from the array or character from the string
58
+ */
59
+ const randomPick = items => items[random(0, items.length - 1)];
60
+
61
+ /**
62
+ * Shuffles an array in-place using the Fisher-Yates algorithm
63
+ * Adapted from https://bost.ocks.org/mike/shuffle/
64
+ *
65
+ * @param {Array} items - The array to shuffle (will be modified in-place)
66
+ * @return {Array} The same array reference, now shuffled
67
+ */
68
+ const shuffle = items => {
69
+ let m = items.length, t, i;
70
+ while (m) { i = random(0, --m); t = items[m]; items[m] = items[i]; items[i] = t; }
71
+ return items;
72
+ };
73
+
74
+ exports.createSeededRandom = createSeededRandom;
75
+ exports.random = random;
76
+ exports.randomPick = randomPick;
77
+ exports.shuffle = shuffle;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Generate a random number between optional min and max (inclusive) and decimal precision
3
+ *
4
+ * @callback RandomNumberGenerator
5
+ * @param {Number} [min=0] - The minimum value (inclusive)
6
+ * @param {Number} [max=1] - The maximum value (inclusive)
7
+ * @param {Number} [decimalLength=0] - Number of decimal places to round to
8
+ * @return {Number} A random number between min and max
9
+ */
10
+ /**
11
+ * Generates a random number between min and max (inclusive) with optional decimal precision
12
+ *
13
+ * @type {RandomNumberGenerator}
14
+ */
15
+ export const random: RandomNumberGenerator;
16
+ export function createSeededRandom(seed?: number, seededMin?: number, seededMax?: number, seededDecimalLength?: number): RandomNumberGenerator;
17
+ export function randomPick<T>(items: string | Array<T>): string | T;
18
+ export function shuffle(items: any[]): any[];
19
+ /**
20
+ * Generate a random number between optional min and max (inclusive) and decimal precision
21
+ */
22
+ export type RandomNumberGenerator = (min?: number, max?: number, decimalLength?: number) => number;