chnobli 0.1.9 → 0.1.11

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 (197) hide show
  1. package/dist/animation/Animation.d.ts +37 -0
  2. package/dist/animation/Animation.d.ts.map +1 -0
  3. package/dist/animation/Animation.js +232 -0
  4. package/dist/animation/Animation.js.map +1 -0
  5. package/dist/animation/public.d.ts +68 -0
  6. package/dist/animation/public.d.ts.map +1 -0
  7. package/dist/animation/public.js +115 -0
  8. package/dist/animation/public.js.map +1 -0
  9. package/dist/animator/Animator.d.ts +30 -0
  10. package/dist/animator/Animator.d.ts.map +1 -0
  11. package/dist/animator/Animator.js +97 -0
  12. package/dist/animator/Animator.js.map +1 -0
  13. package/dist/animator/index.d.ts +5 -0
  14. package/dist/animator/index.d.ts.map +1 -0
  15. package/dist/animator/index.js +53 -0
  16. package/dist/animator/index.js.map +1 -0
  17. package/dist/animator/public.d.ts +16 -0
  18. package/dist/animator/public.d.ts.map +1 -0
  19. package/dist/animator/public.js +50 -0
  20. package/dist/animator/public.js.map +1 -0
  21. package/dist/chnobli.d.ts +15 -0
  22. package/dist/chnobli.d.ts.map +1 -0
  23. package/dist/chnobli.js +59 -0
  24. package/dist/chnobli.js.map +1 -0
  25. package/dist/property/BasicProperty.d.ts +38 -0
  26. package/dist/property/BasicProperty.d.ts.map +1 -0
  27. package/dist/property/BasicProperty.js +72 -0
  28. package/dist/property/BasicProperty.js.map +1 -0
  29. package/dist/property/ClassProperty.d.ts +32 -0
  30. package/dist/property/ClassProperty.d.ts.map +1 -0
  31. package/dist/property/ClassProperty.js +108 -0
  32. package/dist/property/ClassProperty.js.map +1 -0
  33. package/dist/property/Property.d.ts +13 -0
  34. package/dist/property/Property.d.ts.map +1 -0
  35. package/dist/property/Property.js +22 -0
  36. package/dist/property/Property.js.map +1 -0
  37. package/dist/property/StyleProperty.d.ts +25 -0
  38. package/dist/property/StyleProperty.d.ts.map +1 -0
  39. package/dist/property/StyleProperty.js +221 -0
  40. package/dist/property/StyleProperty.js.map +1 -0
  41. package/dist/property/TransformProperty.d.ts +15 -0
  42. package/dist/property/TransformProperty.d.ts.map +1 -0
  43. package/dist/property/TransformProperty.js +43 -0
  44. package/dist/property/TransformProperty.js.map +1 -0
  45. package/dist/property/TransformXYProperty.d.ts +28 -0
  46. package/dist/property/TransformXYProperty.d.ts.map +1 -0
  47. package/dist/property/TransformXYProperty.js +65 -0
  48. package/dist/property/TransformXYProperty.js.map +1 -0
  49. package/dist/responsive/ResponsiveEvent.d.ts +17 -0
  50. package/dist/responsive/ResponsiveEvent.d.ts.map +1 -0
  51. package/dist/responsive/ResponsiveEvent.js +45 -0
  52. package/dist/responsive/ResponsiveEvent.js.map +1 -0
  53. package/dist/responsive/TestEvent.d.ts +11 -0
  54. package/dist/responsive/TestEvent.d.ts.map +1 -0
  55. package/dist/responsive/TestEvent.js +26 -0
  56. package/dist/responsive/TestEvent.js.map +1 -0
  57. package/dist/scroll/Scroll.d.ts +61 -0
  58. package/dist/scroll/Scroll.d.ts.map +1 -0
  59. package/dist/scroll/Scroll.js +280 -0
  60. package/dist/scroll/Scroll.js.map +1 -0
  61. package/dist/scroll/ScrollEvent.d.ts +17 -0
  62. package/dist/scroll/ScrollEvent.d.ts.map +1 -0
  63. package/dist/scroll/ScrollEvent.js +40 -0
  64. package/dist/scroll/ScrollEvent.js.map +1 -0
  65. package/dist/scroll/index.d.ts +8 -0
  66. package/dist/scroll/index.d.ts.map +1 -0
  67. package/dist/scroll/index.js +9 -0
  68. package/dist/scroll/index.js.map +1 -0
  69. package/dist/scroll/public.d.ts +35 -0
  70. package/dist/scroll/public.d.ts.map +1 -0
  71. package/dist/scroll/public.js +50 -0
  72. package/dist/scroll/public.js.map +1 -0
  73. package/dist/stagger/stagger.d.ts +20 -0
  74. package/dist/stagger/stagger.d.ts.map +1 -0
  75. package/dist/stagger/stagger.js +43 -0
  76. package/dist/stagger/stagger.js.map +1 -0
  77. package/dist/target/BaseTarget.old.d.ts +33 -0
  78. package/dist/target/BaseTarget.old.d.ts.map +1 -0
  79. package/dist/target/BaseTarget.old.js +73 -0
  80. package/dist/target/BaseTarget.old.js.map +1 -0
  81. package/dist/target/DomTarget.d.ts +41 -0
  82. package/dist/target/DomTarget.d.ts.map +1 -0
  83. package/dist/target/DomTarget.js +230 -0
  84. package/dist/target/DomTarget.js.map +1 -0
  85. package/dist/target/ObjectTarget.d.ts +31 -0
  86. package/dist/target/ObjectTarget.d.ts.map +1 -0
  87. package/dist/target/ObjectTarget.js +108 -0
  88. package/dist/target/ObjectTarget.js.map +1 -0
  89. package/dist/target/Target.d.ts +25 -0
  90. package/dist/target/Target.d.ts.map +1 -0
  91. package/dist/target/Target.js +25 -0
  92. package/dist/target/Target.js.map +1 -0
  93. package/dist/target/TestDomNode.d.ts +14 -0
  94. package/dist/target/TestDomNode.d.ts.map +1 -0
  95. package/dist/target/TestDomNode.js +55 -0
  96. package/dist/target/TestDomNode.js.map +1 -0
  97. package/dist/timeline/Nested.d.ts +30 -0
  98. package/dist/timeline/Nested.d.ts.map +1 -0
  99. package/dist/timeline/Nested.js +51 -0
  100. package/dist/timeline/Nested.js.map +1 -0
  101. package/dist/timeline/Timeline.d.ts +42 -0
  102. package/dist/timeline/Timeline.d.ts.map +1 -0
  103. package/dist/timeline/Timeline.js +306 -0
  104. package/dist/timeline/Timeline.js.map +1 -0
  105. package/dist/timeline/public.d.ts +167 -0
  106. package/dist/timeline/public.d.ts.map +1 -0
  107. package/dist/timeline/public.js +396 -0
  108. package/dist/timeline/public.js.map +1 -0
  109. package/dist/timing/AnimationFrameTicker.d.ts +32 -0
  110. package/dist/timing/AnimationFrameTicker.d.ts.map +1 -0
  111. package/dist/timing/AnimationFrameTicker.js +138 -0
  112. package/dist/timing/AnimationFrameTicker.js.map +1 -0
  113. package/dist/timing/Ease.d.ts +6 -0
  114. package/dist/timing/Ease.d.ts.map +1 -0
  115. package/dist/timing/Ease.js +15 -0
  116. package/dist/timing/Ease.js.map +1 -0
  117. package/dist/timing/TestTicker.d.ts +19 -0
  118. package/dist/timing/TestTicker.d.ts.map +1 -0
  119. package/dist/timing/TestTicker.js +85 -0
  120. package/dist/timing/TestTicker.js.map +1 -0
  121. package/dist/timing/Ticker.d.ts +16 -0
  122. package/dist/timing/Ticker.d.ts.map +1 -0
  123. package/dist/timing/Ticker.js +2 -0
  124. package/dist/timing/Ticker.js.map +1 -0
  125. package/dist/timing/Timing.d.ts +116 -0
  126. package/dist/timing/Timing.d.ts.map +1 -0
  127. package/dist/timing/Timing.js +310 -0
  128. package/dist/timing/Timing.js.map +1 -0
  129. package/dist/timing/easing.d.ts +158 -0
  130. package/dist/timing/easing.d.ts.map +1 -0
  131. package/dist/timing/easing.js +273 -0
  132. package/dist/timing/easing.js.map +1 -0
  133. package/dist/utils/Events.d.ts +9 -0
  134. package/dist/utils/Events.d.ts.map +1 -0
  135. package/dist/utils/Events.js +35 -0
  136. package/dist/utils/Events.js.map +1 -0
  137. package/dist/utils/internal.d.ts +5 -0
  138. package/dist/utils/internal.d.ts.map +1 -0
  139. package/dist/utils/internal.js +9 -0
  140. package/dist/utils/internal.js.map +1 -0
  141. package/dist/utils/motionpath.d.ts +16 -0
  142. package/dist/utils/motionpath.d.ts.map +1 -0
  143. package/dist/utils/motionpath.js +41 -0
  144. package/dist/utils/motionpath.js.map +1 -0
  145. package/dist/utils/utils.d.ts +44 -0
  146. package/dist/utils/utils.d.ts.map +1 -0
  147. package/dist/utils/utils.js +88 -0
  148. package/dist/utils/utils.js.map +1 -0
  149. package/dist/values/ColorValue.d.ts +12 -0
  150. package/dist/values/ColorValue.d.ts.map +1 -0
  151. package/dist/values/ColorValue.js +134 -0
  152. package/dist/values/ColorValue.js.map +1 -0
  153. package/dist/values/StyleValue.d.ts +41 -0
  154. package/dist/values/StyleValue.d.ts.map +1 -0
  155. package/dist/values/StyleValue.js +159 -0
  156. package/dist/values/StyleValue.js.map +1 -0
  157. package/dist/values/Value.d.ts +13 -0
  158. package/dist/values/Value.d.ts.map +1 -0
  159. package/dist/values/Value.js +38 -0
  160. package/dist/values/Value.js.map +1 -0
  161. package/dist/values/defaultcolors.d.ts +2 -0
  162. package/dist/values/defaultcolors.d.ts.map +1 -0
  163. package/dist/values/defaultcolors.js +149 -0
  164. package/dist/values/defaultcolors.js.map +1 -0
  165. package/eslint.config.js +23 -0
  166. package/package.json +10 -3
  167. package/src/animation/Animation.ts +6 -3
  168. package/src/animator/Animator.ts +130 -0
  169. package/src/animator/index.ts +56 -0
  170. package/src/animator/public.ts +66 -0
  171. package/src/chnobli.ts +3 -2
  172. package/src/property/ClassProperty.ts +1 -1
  173. package/src/property/TransformXYProperty.ts +1 -1
  174. package/src/scroll/Scroll.ts +202 -51
  175. package/src/scroll/ScrollEvent.ts +1 -0
  176. package/src/scroll/index.ts +3 -0
  177. package/src/scroll/public.ts +35 -2
  178. package/src/target/DomTarget.ts +1 -1
  179. package/src/target/ObjectTarget.ts +19 -13
  180. package/src/tests/properties.test.ts +44 -3
  181. package/src/tests/timeline.test.ts +1 -1
  182. package/src/tests/timing.test.ts +32 -0
  183. package/src/tests/usecases.test.ts +40 -2
  184. package/src/tests/values.test.ts +9 -9
  185. package/src/timeline/Timeline.ts +5 -4
  186. package/src/timeline/public.ts +34 -12
  187. package/src/timing/AnimationFrameTicker.ts +6 -1
  188. package/src/timing/TestTicker.ts +7 -1
  189. package/src/timing/Ticker.ts +5 -1
  190. package/src/timing/Timing.ts +127 -91
  191. package/src/utils/Events.ts +1 -1
  192. package/src/utils/motionpath.ts +5 -5
  193. package/src/utils/utils.ts +0 -10
  194. package/src/values/ColorValue.ts +1 -0
  195. package/src/values/Value.ts +1 -1
  196. package/.eslintrc.cjs +0 -39
  197. package/src/animator.js +0 -187
@@ -0,0 +1,37 @@
1
+ import Timing from '../timing/Timing.js';
2
+ import Property from '../property/Property.js';
3
+ import Ticker from '../timing/Ticker.js';
4
+ import { Target } from '../target/Target.js';
5
+ import { DestroyOptions } from '../timeline/public.js';
6
+ export default class Animation {
7
+ timing: Timing;
8
+ target: Target;
9
+ props: Record<string, PropertyAnimation<any>>;
10
+ private _ticker;
11
+ private _prevTimingState;
12
+ private _props;
13
+ private _initialized;
14
+ constructor(target: any, ticker: Ticker, props?: Record<string, any>);
15
+ advance(change: number): void;
16
+ seekMs(ms: number): void;
17
+ seek(pos: number): void;
18
+ isFinite(): boolean;
19
+ get duration(): number;
20
+ init(reset?: boolean): void;
21
+ render(): void;
22
+ destroy(opts: DestroyOptions): void;
23
+ }
24
+ declare class PropertyAnimation<V> {
25
+ prop: Property<V>;
26
+ private staticValueFn;
27
+ private valueFn;
28
+ private iniResponsive;
29
+ private iniFrom;
30
+ private iniTo;
31
+ constructor(prop: string, value: any, animation: Animation);
32
+ init(target: Target): void;
33
+ restoreBefore(target: Target): void;
34
+ render(pos: number, target: Target): void;
35
+ }
36
+ export {};
37
+ //# sourceMappingURL=Animation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Animation.d.ts","sourceRoot":"","sources":["../../src/animation/Animation.ts"],"names":[],"mappings":"AAAA,OAAO,MAIN,MAAM,qBAAqB,CAAC;AAE7B,OAAO,QAAyC,MAAM,yBAAyB,CAAC;AAChF,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,SAAS;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9C,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,YAAY,CAAU;gBAKlB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAiBxE,OAAO,CAAC,MAAM,EAAE,MAAM;IAKtB,MAAM,CAAC,EAAE,EAAE,MAAM;IAKjB,IAAI,CAAC,GAAG,EAAE,MAAM;IAKhB,QAAQ,IAAI,OAAO;IAInB,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,CAAC,KAAK,UAAQ;IASlB,MAAM;IAwBN,OAAO,CAAC,IAAI,EAAE,cAAc;CAS5B;AAOD,cAAM,iBAAiB,CAAC,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAElB,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,OAAO,CAA2C;IAE1D,OAAO,CAAC,aAAa,CAAM;IAE3B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,KAAK,CAAW;gBAEZ,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS;IAoC1D,IAAI,CAAC,MAAM,EAAE,MAAM;IAiDnB,aAAa,CAAC,MAAM,EAAE,MAAM;IAK5B,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAQlC"}
@@ -0,0 +1,232 @@
1
+ import { newTiming, STATE_BEFORE, STATE_AFTER, } from '../timing/Timing.js';
2
+ import { newProperty } from '../property/Property.js';
3
+ export default class Animation {
4
+ timing;
5
+ target;
6
+ props;
7
+ _ticker;
8
+ _prevTimingState;
9
+ _props;
10
+ _initialized;
11
+ /*
12
+ props
13
+ */
14
+ constructor(target, ticker, props = {}) {
15
+ this.timing = newTiming(props);
16
+ this._ticker = ticker;
17
+ this.target = ticker.registerTarget(target);
18
+ this._prevTimingState = this.timing.state;
19
+ this._props = [];
20
+ this._initialized = false;
21
+ this.props = {};
22
+ for (const prop in props) {
23
+ this.props[prop] = new PropertyAnimation(prop, props[prop], this);
24
+ this._props.push(this.props[prop]);
25
+ }
26
+ }
27
+ advance(change) {
28
+ this._prevTimingState = this.timing.state;
29
+ this.timing.advance(change);
30
+ }
31
+ seekMs(ms) {
32
+ this._prevTimingState = this.timing.state;
33
+ this.timing.seekMs(ms);
34
+ }
35
+ seek(pos) {
36
+ this._prevTimingState = this.timing.state;
37
+ this.timing.seek(pos);
38
+ }
39
+ isFinite() {
40
+ return this.timing.isFinite();
41
+ }
42
+ get duration() {
43
+ return this.timing.duration;
44
+ }
45
+ init(reset = false) {
46
+ if (this._initialized && !reset)
47
+ return;
48
+ this._initialized = true;
49
+ for (const prop of this._props) {
50
+ prop.init(this.target);
51
+ }
52
+ }
53
+ render() {
54
+ if (this.timing.state === STATE_BEFORE) {
55
+ // console.log('render before');
56
+ for (const prop of this._props) {
57
+ prop.restoreBefore(this.target);
58
+ }
59
+ // to render before we need to remove
60
+ return;
61
+ }
62
+ else if (this.timing.state === STATE_AFTER) {
63
+ // console.log('render after');
64
+ // return;
65
+ }
66
+ const pos = this.timing.position;
67
+ // now render
68
+ for (const prop of this._props) {
69
+ prop.render(pos, this.target);
70
+ }
71
+ }
72
+ destroy(opts) {
73
+ if (!opts.keepValues) {
74
+ for (const prop of this._props) {
75
+ prop.restoreBefore(this.target);
76
+ }
77
+ }
78
+ this._ticker.unregisterTarget(this.target.inner());
79
+ }
80
+ }
81
+ function maybeResponsiveValue(prop, val) {
82
+ if (typeof val === 'object' && 'responsive' in val)
83
+ return val.responsive;
84
+ return prop.parseValue(val);
85
+ }
86
+ class PropertyAnimation {
87
+ prop;
88
+ staticValueFn;
89
+ valueFn;
90
+ iniResponsive;
91
+ // todo i don't think the types match here?
92
+ iniFrom;
93
+ iniTo;
94
+ constructor(prop, value, animation) {
95
+ this.prop = newProperty(prop, animation.target.type());
96
+ // we will get the from the targets
97
+ this.staticValueFn = false;
98
+ this.valueFn = null;
99
+ this.iniResponsive = null;
100
+ this.iniFrom = null;
101
+ this.iniTo = null;
102
+ if (typeof value === 'object') {
103
+ if ('from' in value)
104
+ this.iniFrom = maybeResponsiveValue(this.prop, value.from);
105
+ if ('to' in value)
106
+ this.iniTo = maybeResponsiveValue(this.prop, value.to);
107
+ if ('responsive' in value)
108
+ this.iniResponsive = value.responsive;
109
+ if (!this.iniFrom && !this.iniTo && !this.iniResponsive)
110
+ throw new Error('from or to expected');
111
+ }
112
+ else if (typeof value === 'function') {
113
+ if (!this.prop.allowsValueFn()) {
114
+ throw new Error('prop ' + prop + ' does not allow value functions');
115
+ }
116
+ this.staticValueFn = true;
117
+ this.valueFn = value;
118
+ }
119
+ else {
120
+ this.iniTo = this.prop.parseValue(value);
121
+ }
122
+ }
123
+ // calculate from and to position
124
+ init(target) {
125
+ // there is nothing to initialize since on every render we call the
126
+ // value Fn
127
+ if (this.staticValueFn)
128
+ return;
129
+ this.valueFn = null;
130
+ let from = null;
131
+ let to = null;
132
+ // init via responsive fn
133
+ if (this.iniResponsive) {
134
+ const value = this.iniResponsive(target.inner());
135
+ if (typeof value === 'object') {
136
+ if ('from' in value)
137
+ from = this.prop.parseValue(value.from);
138
+ if ('to' in value)
139
+ to = this.prop.parseValue(value.to);
140
+ if (!from && !to)
141
+ throw new Error('from or to expected');
142
+ }
143
+ else if (typeof value === 'function') {
144
+ if (!this.prop.allowsValueFn()) {
145
+ throw new Error(`prop ${this.prop.name} does not allow value functions`);
146
+ }
147
+ this.valueFn = value;
148
+ return;
149
+ }
150
+ else {
151
+ to = this.prop.parseValue(value);
152
+ }
153
+ }
154
+ // init from
155
+ if (!from) {
156
+ if (typeof this.iniFrom === 'function')
157
+ from = this.prop.parseValue(this.iniFrom(target.inner()));
158
+ else
159
+ from = this.iniFrom;
160
+ }
161
+ // init to
162
+ if (!to) {
163
+ if (typeof this.iniTo === 'function')
164
+ to = this.prop.parseValue(this.iniTo(target.inner()));
165
+ else
166
+ to = this.iniTo;
167
+ }
168
+ this.prop.init(target, from, to);
169
+ }
170
+ restoreBefore(target) {
171
+ // todo this might not be enough
172
+ this.prop.removeValue(target);
173
+ }
174
+ render(pos, target) {
175
+ if (this.valueFn) {
176
+ this.prop.setValue(target, this.prop.parseValue(this.valueFn(pos)));
177
+ return;
178
+ }
179
+ this.prop.setValue(target, this.prop.interpolate(pos));
180
+ }
181
+ }
182
+ /*
183
+
184
+ animate(target, {
185
+
186
+ // special
187
+ // translate
188
+ x
189
+ y
190
+ scale
191
+ scaleX
192
+ scaleY
193
+ rotation
194
+ skew
195
+ skewX
196
+ skewY
197
+
198
+
199
+
200
+ // stagger
201
+ repeatDelay
202
+ stagger: {
203
+ // wrap advanced options in an object
204
+ each: 0.1,
205
+ from: "center",
206
+ grid: "auto",
207
+ ease: "power2.inOut",
208
+ repeat: -1, // Repeats immediately, not waiting for the other staggered animations to finish
209
+ },
210
+
211
+
212
+ ease,
213
+ duration,
214
+ repeat, true|false|0-x
215
+ repeatDelay?
216
+ delay,
217
+ alternate
218
+ })
219
+
220
+
221
+ const tl new Timeline;
222
+
223
+ tl.add([
224
+ animation()
225
+ ], 100)
226
+
227
+ tl.addGroup()
228
+
229
+ tl.add()
230
+
231
+ */
232
+ //# sourceMappingURL=Animation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Animation.js","sourceRoot":"","sources":["../../src/animation/Animation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import Stagger from '../stagger/stagger.js';
2
+ import { Targets } from '../chnobli.js';
3
+ export type AnimationProps = {
4
+ autoplay?: boolean;
5
+ delay?: number | string | Stagger<number | string>;
6
+ ease?: (t: number) => number;
7
+ onStart?: () => void;
8
+ onEnd?: () => void;
9
+ [key: string]: any;
10
+ };
11
+ /**
12
+ * The animation consist of a timeline with just one animation
13
+ * This allows to reuse a lot of code
14
+ *
15
+ * ## Props
16
+ *
17
+ */
18
+ export default class PublicAnimation {
19
+ private _tl;
20
+ constructor(targets: Targets, props?: AnimationProps);
21
+ play(): void;
22
+ pause(): void;
23
+ /**
24
+ * Seeks to a position in the timeline
25
+ */
26
+ seekMs(ms: number): void;
27
+ /**
28
+ * Seeks to a normalized position in the timeline
29
+ *
30
+ * @param pos = number between 0 and 1
31
+ */
32
+ seek(pos: number): void;
33
+ /**
34
+ * Resets the current timeline to the start
35
+ * without changing anything
36
+ */
37
+ reset(): void;
38
+ /**
39
+ * Resets every used prop to it's previous value
40
+ */
41
+ resetProps(): void;
42
+ /**
43
+ * Recalculates all values this should be called for example after a resize
44
+ */
45
+ update(): void;
46
+ /**
47
+ * Returns wether the timeline is set to reversed
48
+ */
49
+ isReversed(): boolean;
50
+ /**
51
+ * Set's the timeline to a specific direction
52
+ */
53
+ setReversed(reversed: boolean): void;
54
+ /**
55
+ * Reverses the order of the current timeline
56
+ */
57
+ reverse(): void;
58
+ /**
59
+ * @returns a function to call to unregister the event
60
+ */
61
+ on(event: string, fn: (...args: any[]) => void): () => void;
62
+ onPromise(event: string): Promise<unknown>;
63
+ /**
64
+ * Destroys this timeline and resets all props
65
+ */
66
+ destroy(): void;
67
+ }
68
+ //# sourceMappingURL=public.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/animation/public.ts"],"names":[],"mappings":"AAEA,OAAO,OAAuB,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,MAAM,cAAc,GAAG;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAEnD,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAE7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAGnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IACnC,OAAO,CAAC,GAAG,CAAW;gBAEV,OAAO,EAAE,OAAO,EAAE,KAAK,GAAE,cAAmB;IA0CxD,IAAI;IAIJ,KAAK;IAIL;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM;IAIjB;;;;OAIG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM;IAIhB;;;OAGG;IACH,KAAK;IAIL;;OAEG;IACH,UAAU;IAIV;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,OAAO;IAI7B;;OAEG;IACH,OAAO;IAIP;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAK3D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1C;;OAEG;IACH,OAAO;CAKP"}
@@ -0,0 +1,115 @@
1
+ import { takeProp } from '../utils/internal.js';
2
+ import Timeline from '../timeline/public.js';
3
+ import { staggerMap } from '../stagger/stagger.js';
4
+ /**
5
+ * The animation consist of a timeline with just one animation
6
+ * This allows to reuse a lot of code
7
+ *
8
+ * ## Props
9
+ *
10
+ */
11
+ export default class PublicAnimation {
12
+ _tl;
13
+ constructor(targets, props = {}) {
14
+ const autoplay = parseAutoplay(takeProp(props, 'autoplay', true));
15
+ const delay = takeProp(props, 'delay', 0);
16
+ // we don't wan't the ease and duration on the timeline
17
+ const ease = takeProp(props, 'ease', undefined);
18
+ const duration = takeProp(props, 'duration', undefined);
19
+ this._tl = new Timeline(props);
20
+ // events
21
+ const onStart = takeProp(props, 'onStart', undefined);
22
+ if (onStart)
23
+ this._tl.on('start', onStart);
24
+ // events
25
+ const onEnd = takeProp(props, 'onEnd', undefined);
26
+ if (onEnd)
27
+ this._tl.on('end', onEnd);
28
+ props.ease = ease;
29
+ props.duration = duration;
30
+ this._tl.add(targets, props, staggerMap(delay, v => '+=' + v));
31
+ if (autoplay)
32
+ this._tl.play();
33
+ }
34
+ play() {
35
+ this._tl.play();
36
+ }
37
+ pause() {
38
+ this._tl.pause();
39
+ }
40
+ /**
41
+ * Seeks to a position in the timeline
42
+ */
43
+ seekMs(ms) {
44
+ this._tl.seekMs(ms);
45
+ }
46
+ /**
47
+ * Seeks to a normalized position in the timeline
48
+ *
49
+ * @param pos = number between 0 and 1
50
+ */
51
+ seek(pos) {
52
+ this._tl.seek(pos);
53
+ }
54
+ /**
55
+ * Resets the current timeline to the start
56
+ * without changing anything
57
+ */
58
+ reset() {
59
+ this._tl.reset();
60
+ }
61
+ /**
62
+ * Resets every used prop to it's previous value
63
+ */
64
+ resetProps() {
65
+ this._tl.resetProps();
66
+ }
67
+ /**
68
+ * Recalculates all values this should be called for example after a resize
69
+ */
70
+ update() {
71
+ this._tl.update();
72
+ }
73
+ /**
74
+ * Returns wether the timeline is set to reversed
75
+ */
76
+ isReversed() {
77
+ return this._tl.isReversed();
78
+ }
79
+ /**
80
+ * Set's the timeline to a specific direction
81
+ */
82
+ setReversed(reversed) {
83
+ this._tl.setReversed(reversed);
84
+ }
85
+ /**
86
+ * Reverses the order of the current timeline
87
+ */
88
+ reverse() {
89
+ this._tl.reverse();
90
+ }
91
+ /**
92
+ * @returns a function to call to unregister the event
93
+ */
94
+ on(event, fn) {
95
+ return this._tl.on(event, fn);
96
+ }
97
+ // not wroking
98
+ onPromise(event) {
99
+ return this._tl.onPromise(event);
100
+ }
101
+ /**
102
+ * Destroys this timeline and resets all props
103
+ */
104
+ destroy() {
105
+ this._tl.destroy();
106
+ // @ts-ignore
107
+ this._tl = null;
108
+ }
109
+ }
110
+ function parseAutoplay(autoplay) {
111
+ if (autoplay !== true && autoplay !== false)
112
+ throw new Error('autoplay needs to be true|false');
113
+ return autoplay;
114
+ }
115
+ //# sourceMappingURL=public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/animation/public.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import Property from '../property/Property.js';
2
+ import { Target } from '../target/Target.js';
3
+ import Ticker from '../timing/Ticker.js';
4
+ import Timing from '../timing/Timing.js';
5
+ export type Settings = {
6
+ duration: number;
7
+ ease?: (t: number) => number;
8
+ };
9
+ export default class Animator {
10
+ setts: Settings;
11
+ target: Target;
12
+ private props;
13
+ private ticker;
14
+ constructor(target: any, ticker: Ticker, setts: Settings);
15
+ private getProp;
16
+ set(props: Record<string, any>): void;
17
+ to(props: Record<string, any>, duration?: number): void;
18
+ _tick(change: number): boolean;
19
+ }
20
+ export declare class PropertyAnimator<V> {
21
+ prop: Property<V>;
22
+ timing: Timing;
23
+ private initialized;
24
+ constructor(prop: string, setts: Settings, target: Target);
25
+ set(target: Target, value: any): void;
26
+ to(target: Target, value: any, duration?: number): void;
27
+ advance(change: number): void;
28
+ render(target: Target): void;
29
+ }
30
+ //# sourceMappingURL=Animator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Animator.d.ts","sourceRoot":"","sources":["../../src/animator/Animator.ts"],"names":[],"mappings":"AAAA,OAAO,QAAyB,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,MAAuB,MAAM,qBAAqB,CAAC;AAE1D,MAAM,MAAM,QAAQ,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC7B,CAAC;AAeF,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,KAAK,CAAqC;IAElD,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ;IASxD,OAAO,CAAC,OAAO;IASf,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAS9B,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM;IAQhD,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CAc9B;AAED,qBAAa,gBAAgB,CAAC,CAAC;IAC9B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,WAAW,CAAU;gBAEjB,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;IAOzD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAQ9B,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM;IAiBhD,OAAO,CAAC,MAAM,EAAE,MAAM;IAKtB,MAAM,CAAC,MAAM,EAAE,MAAM;CAKrB"}
@@ -0,0 +1,97 @@
1
+ import { newProperty } from '../property/Property.js';
2
+ import Timing, { STATE_AFTER } from '../timing/Timing.js';
3
+ /*
4
+
5
+ const opacity = animator(obj, {
6
+ duration: 200,
7
+ ease: sinInOut
8
+ });
9
+
10
+ opacity.set({ opacity: 0 });
11
+
12
+ opacity.to({ opacity: 1 });
13
+ opacity.to({ opacity: 2 }, 1000);
14
+ */
15
+ export default class Animator {
16
+ setts;
17
+ target;
18
+ props;
19
+ ticker;
20
+ constructor(target, ticker, setts) {
21
+ this.setts = setts;
22
+ this.target = ticker.registerTarget(target);
23
+ this.ticker = ticker;
24
+ this.props = new Map();
25
+ }
26
+ getProp(name) {
27
+ const prop = this.props.get(name);
28
+ if (prop)
29
+ return prop;
30
+ const newProp = new PropertyAnimator(name, this.setts, this.target);
31
+ this.props.set(name, newProp);
32
+ return newProp;
33
+ }
34
+ set(props) {
35
+ for (const prop in props) {
36
+ const propAni = this.getProp(prop);
37
+ console.log('got prop ani', propAni);
38
+ propAni.set(this.target, props[prop]);
39
+ console.log('got prop ani', propAni);
40
+ }
41
+ }
42
+ to(props, duration) {
43
+ for (const prop in props) {
44
+ const propAni = this.getProp(prop);
45
+ propAni.to(this.target, props[prop], duration);
46
+ }
47
+ }
48
+ /// returns if the ticker should keep running
49
+ _tick(change) {
50
+ let shouldStop = true;
51
+ for (const prop of this.props.values()) {
52
+ prop.advance(change);
53
+ prop.render(this.target);
54
+ if (prop.timing.state < STATE_AFTER) {
55
+ shouldStop = false;
56
+ }
57
+ }
58
+ return !shouldStop;
59
+ }
60
+ }
61
+ export class PropertyAnimator {
62
+ prop;
63
+ timing;
64
+ initialized;
65
+ constructor(prop, setts, target) {
66
+ this.prop = newProperty(prop, target.type());
67
+ this.timing = new Timing(setts);
68
+ this.initialized = false;
69
+ }
70
+ set(target, value) {
71
+ const val = this.prop.parseValue(value);
72
+ this.prop.init(target, val, val);
73
+ this.timing.seek(2);
74
+ }
75
+ to(target, value, duration) {
76
+ const val = this.prop.parseValue(value);
77
+ let current = null;
78
+ if (this.initialized) {
79
+ current = this.prop.interpolate(this.timing.position);
80
+ }
81
+ this.prop.init(target, current, val);
82
+ this.initialized = true;
83
+ this.timing.seek(0);
84
+ if (typeof duration === 'number') {
85
+ this.timing.setDuration(duration);
86
+ }
87
+ }
88
+ advance(change) {
89
+ this.timing.advance(change);
90
+ }
91
+ // call advance first
92
+ render(target) {
93
+ const pos = this.timing.position;
94
+ this.prop.setValue(target, this.prop.interpolate(pos));
95
+ }
96
+ }
97
+ //# sourceMappingURL=Animator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Animator.js","sourceRoot":"","sources":["../../src/animator/Animator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import Animator, { AnimatorProps } from './public.js';
2
+ export { Animator };
3
+ export type { AnimatorProps };
4
+ export declare function animator(target: any, props?: AnimatorProps): Animator;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/animator/index.ts"],"names":[],"mappings":"AAgDA,OAAO,QAAQ,EAAE,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,wBAAgB,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,aAAa,GAAG,QAAQ,CAErE"}