chnobli 0.1.4 → 0.1.6

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 (238) hide show
  1. package/.prettierignore +4 -0
  2. package/.prettierrc +6 -0
  3. package/.vscode/settings.json +4 -0
  4. package/auto-docs/easing.js.html +342 -0
  5. package/auto-docs/fonts/OpenSans-Bold-webfont.eot +0 -0
  6. package/auto-docs/fonts/OpenSans-Bold-webfont.svg +1830 -0
  7. package/auto-docs/fonts/OpenSans-Bold-webfont.woff +0 -0
  8. package/auto-docs/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  9. package/auto-docs/fonts/OpenSans-BoldItalic-webfont.svg +1830 -0
  10. package/auto-docs/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  11. package/auto-docs/fonts/OpenSans-Italic-webfont.eot +0 -0
  12. package/auto-docs/fonts/OpenSans-Italic-webfont.svg +1830 -0
  13. package/auto-docs/fonts/OpenSans-Italic-webfont.woff +0 -0
  14. package/auto-docs/fonts/OpenSans-Light-webfont.eot +0 -0
  15. package/auto-docs/fonts/OpenSans-Light-webfont.svg +1831 -0
  16. package/auto-docs/fonts/OpenSans-Light-webfont.woff +0 -0
  17. package/auto-docs/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  18. package/auto-docs/fonts/OpenSans-LightItalic-webfont.svg +1835 -0
  19. package/auto-docs/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  20. package/auto-docs/fonts/OpenSans-Regular-webfont.eot +0 -0
  21. package/auto-docs/fonts/OpenSans-Regular-webfont.svg +1831 -0
  22. package/auto-docs/fonts/OpenSans-Regular-webfont.woff +0 -0
  23. package/auto-docs/global.html +4810 -0
  24. package/auto-docs/index.html +65 -0
  25. package/auto-docs/scripts/linenumber.js +25 -0
  26. package/auto-docs/scripts/prettify/Apache-License-2.0.txt +202 -0
  27. package/auto-docs/scripts/prettify/lang-css.js +2 -0
  28. package/auto-docs/scripts/prettify/prettify.js +28 -0
  29. package/auto-docs/styles/jsdoc-default.css +358 -0
  30. package/auto-docs/styles/prettify-jsdoc.css +111 -0
  31. package/auto-docs/styles/prettify-tomorrow.css +132 -0
  32. package/dist/animation/Animation.d.ts +36 -0
  33. package/dist/animation/Animation.d.ts.map +1 -0
  34. package/dist/animation/Animation.js +230 -0
  35. package/dist/animation/Animation.js.map +1 -0
  36. package/dist/animation/animation.d.ts +36 -0
  37. package/dist/animation/animation.d.ts.map +1 -0
  38. package/dist/animation/animation.js +230 -0
  39. package/dist/animation/animation.js.map +1 -0
  40. package/dist/animation/public.d.ts +55 -0
  41. package/dist/animation/public.d.ts.map +1 -0
  42. package/dist/animation/public.js +104 -0
  43. package/dist/animation/public.js.map +1 -0
  44. package/dist/chnobli.d.ts +15 -0
  45. package/dist/chnobli.d.ts.map +1 -0
  46. package/dist/chnobli.js +63 -0
  47. package/dist/chnobli.js.map +1 -0
  48. package/dist/property/BasicProperty.d.ts +38 -0
  49. package/dist/property/BasicProperty.d.ts.map +1 -0
  50. package/dist/property/BasicProperty.js +72 -0
  51. package/dist/property/BasicProperty.js.map +1 -0
  52. package/dist/property/ClassProperty.d.ts +32 -0
  53. package/dist/property/ClassProperty.d.ts.map +1 -0
  54. package/dist/property/ClassProperty.js +108 -0
  55. package/dist/property/ClassProperty.js.map +1 -0
  56. package/dist/property/Property.d.ts +13 -0
  57. package/dist/property/Property.d.ts.map +1 -0
  58. package/dist/property/Property.js +20 -0
  59. package/dist/property/Property.js.map +1 -0
  60. package/dist/property/StyleProperty.d.ts +25 -0
  61. package/dist/property/StyleProperty.d.ts.map +1 -0
  62. package/dist/property/StyleProperty.js +221 -0
  63. package/dist/property/StyleProperty.js.map +1 -0
  64. package/dist/property/TransformProperty.d.ts +15 -0
  65. package/dist/property/TransformProperty.d.ts.map +1 -0
  66. package/dist/property/TransformProperty.js +43 -0
  67. package/dist/property/TransformProperty.js.map +1 -0
  68. package/dist/property/TransformXYProperty.d.ts +28 -0
  69. package/dist/property/TransformXYProperty.d.ts.map +1 -0
  70. package/dist/property/TransformXYProperty.js +65 -0
  71. package/dist/property/TransformXYProperty.js.map +1 -0
  72. package/dist/responsive/ResponsiveEvent.d.ts +17 -0
  73. package/dist/responsive/ResponsiveEvent.d.ts.map +1 -0
  74. package/dist/responsive/ResponsiveEvent.js +45 -0
  75. package/dist/responsive/ResponsiveEvent.js.map +1 -0
  76. package/dist/responsive/TestEvent.d.ts +11 -0
  77. package/dist/responsive/TestEvent.d.ts.map +1 -0
  78. package/dist/responsive/TestEvent.js +26 -0
  79. package/dist/responsive/TestEvent.js.map +1 -0
  80. package/dist/responsive/event.d.ts +10 -0
  81. package/dist/responsive/event.d.ts.map +1 -0
  82. package/dist/responsive/event.js +39 -0
  83. package/dist/responsive/event.js.map +1 -0
  84. package/dist/scroll/Scroll.d.ts +27 -0
  85. package/dist/scroll/Scroll.d.ts.map +1 -0
  86. package/dist/scroll/Scroll.js +132 -0
  87. package/dist/scroll/Scroll.js.map +1 -0
  88. package/dist/scroll/ScrollEvent.d.ts +17 -0
  89. package/dist/scroll/ScrollEvent.d.ts.map +1 -0
  90. package/dist/scroll/ScrollEvent.js +39 -0
  91. package/dist/scroll/ScrollEvent.js.map +1 -0
  92. package/dist/scroll/public.d.ts +7 -0
  93. package/dist/scroll/public.d.ts.map +1 -0
  94. package/dist/scroll/public.js +17 -0
  95. package/dist/scroll/public.js.map +1 -0
  96. package/dist/stagger/stagger.d.ts +13 -0
  97. package/dist/stagger/stagger.d.ts.map +1 -0
  98. package/dist/stagger/stagger.js +35 -0
  99. package/dist/stagger/stagger.js.map +1 -0
  100. package/dist/target/BaseTarget.old.d.ts +33 -0
  101. package/dist/target/BaseTarget.old.d.ts.map +1 -0
  102. package/dist/target/BaseTarget.old.js +73 -0
  103. package/dist/target/BaseTarget.old.js.map +1 -0
  104. package/dist/target/DomTarget.d.ts +41 -0
  105. package/dist/target/DomTarget.d.ts.map +1 -0
  106. package/dist/target/DomTarget.js +230 -0
  107. package/dist/target/DomTarget.js.map +1 -0
  108. package/dist/target/Target.d.ts +22 -0
  109. package/dist/target/Target.d.ts.map +1 -0
  110. package/dist/target/Target.js +21 -0
  111. package/dist/target/Target.js.map +1 -0
  112. package/dist/target/TestDomNode.d.ts +14 -0
  113. package/dist/target/TestDomNode.d.ts.map +1 -0
  114. package/dist/target/TestDomNode.js +55 -0
  115. package/dist/target/TestDomNode.js.map +1 -0
  116. package/dist/timeline/Nested.d.ts +30 -0
  117. package/dist/timeline/Nested.d.ts.map +1 -0
  118. package/dist/timeline/Nested.js +51 -0
  119. package/dist/timeline/Nested.js.map +1 -0
  120. package/dist/timeline/TimeLine.d.ts +32 -0
  121. package/dist/timeline/TimeLine.d.ts.map +1 -0
  122. package/dist/timeline/TimeLine.js +288 -0
  123. package/dist/timeline/TimeLine.js.map +1 -0
  124. package/dist/timeline/public.d.ts +120 -0
  125. package/dist/timeline/public.d.ts.map +1 -0
  126. package/dist/timeline/public.js +301 -0
  127. package/dist/timeline/public.js.map +1 -0
  128. package/dist/timing/AnimationFrameTicker.d.ts +32 -0
  129. package/dist/timing/AnimationFrameTicker.d.ts.map +1 -0
  130. package/dist/timing/AnimationFrameTicker.js +134 -0
  131. package/dist/timing/AnimationFrameTicker.js.map +1 -0
  132. package/dist/timing/Ease.d.ts +6 -0
  133. package/dist/timing/Ease.d.ts.map +1 -0
  134. package/dist/timing/Ease.js +15 -0
  135. package/dist/timing/Ease.js.map +1 -0
  136. package/dist/timing/TestTicker.d.ts +19 -0
  137. package/dist/timing/TestTicker.d.ts.map +1 -0
  138. package/dist/timing/TestTicker.js +81 -0
  139. package/dist/timing/TestTicker.js.map +1 -0
  140. package/dist/timing/Ticker.d.ts +14 -0
  141. package/dist/timing/Ticker.d.ts.map +1 -0
  142. package/dist/timing/Ticker.js +2 -0
  143. package/dist/timing/Ticker.js.map +1 -0
  144. package/dist/timing/Timing.d.ts +62 -0
  145. package/dist/timing/Timing.d.ts.map +1 -0
  146. package/dist/timing/Timing.js +257 -0
  147. package/dist/timing/Timing.js.map +1 -0
  148. package/dist/timing/easing.d.ts +158 -0
  149. package/dist/timing/easing.d.ts.map +1 -0
  150. package/dist/timing/easing.js +273 -0
  151. package/dist/timing/easing.js.map +1 -0
  152. package/dist/utils/Events.d.ts +9 -0
  153. package/dist/utils/Events.d.ts.map +1 -0
  154. package/dist/utils/Events.js +35 -0
  155. package/dist/utils/Events.js.map +1 -0
  156. package/dist/utils/internal.d.ts +2 -0
  157. package/dist/utils/internal.d.ts.map +1 -0
  158. package/dist/utils/internal.js +6 -0
  159. package/dist/utils/internal.js.map +1 -0
  160. package/dist/utils/motionpath.d.ts +16 -0
  161. package/dist/utils/motionpath.d.ts.map +1 -0
  162. package/dist/utils/motionpath.js +41 -0
  163. package/dist/utils/motionpath.js.map +1 -0
  164. package/dist/utils/utils.d.ts +43 -0
  165. package/dist/utils/utils.d.ts.map +1 -0
  166. package/dist/utils/utils.js +93 -0
  167. package/dist/utils/utils.js.map +1 -0
  168. package/dist/values/ColorValue.d.ts +12 -0
  169. package/dist/values/ColorValue.d.ts.map +1 -0
  170. package/dist/values/ColorValue.js +133 -0
  171. package/dist/values/ColorValue.js.map +1 -0
  172. package/dist/values/StyleValue.d.ts +40 -0
  173. package/dist/values/StyleValue.d.ts.map +1 -0
  174. package/dist/values/StyleValue.js +149 -0
  175. package/dist/values/StyleValue.js.map +1 -0
  176. package/dist/values/Value.d.ts +13 -0
  177. package/dist/values/Value.d.ts.map +1 -0
  178. package/dist/values/Value.js +38 -0
  179. package/dist/values/Value.js.map +1 -0
  180. package/dist/values/defaultcolors.d.ts +2 -0
  181. package/dist/values/defaultcolors.d.ts.map +1 -0
  182. package/dist/values/defaultcolors.js +149 -0
  183. package/dist/values/defaultcolors.js.map +1 -0
  184. package/package.json +11 -7
  185. package/src/animation/{animation.js → Animation.ts} +56 -54
  186. package/src/animation/{public.js → public.ts} +23 -18
  187. package/src/{chnobli.js → chnobli.ts} +11 -12
  188. package/src/property/BasicProperty.ts +91 -0
  189. package/src/property/ClassProperty.ts +132 -0
  190. package/src/property/Property.ts +33 -0
  191. package/src/property/StyleProperty.ts +273 -0
  192. package/src/property/TransformProperty.ts +56 -0
  193. package/src/property/TransformXYProperty.ts +88 -0
  194. package/src/responsive/ResponsiveEvent.ts +60 -0
  195. package/src/responsive/{testevent.js → TestEvent.ts} +12 -10
  196. package/src/scroll/{scroll.js → Scroll.ts} +53 -35
  197. package/src/scroll/ScrollEvent.ts +53 -0
  198. package/src/scroll/public.ts +20 -0
  199. package/src/stagger/stagger.ts +45 -0
  200. package/src/target/{basetarget.js → BaseTarget.old.ts} +25 -26
  201. package/src/target/DomTarget.ts +281 -0
  202. package/src/target/Target.ts +48 -0
  203. package/src/target/{testdomnode.js → TestDomNode.ts} +18 -15
  204. package/src/tests/{properties.test.js → properties.test.ts} +54 -49
  205. package/src/tests/timeline.test.ts +290 -0
  206. package/src/tests/{timing.test.js → timing.test.ts} +25 -22
  207. package/src/tests/{usecases.test.js → usecases.test.ts} +13 -10
  208. package/src/tests/{values.test.js → values.test.ts} +21 -21
  209. package/src/timeline/Nested.ts +67 -0
  210. package/src/timeline/{timeline.js → TimeLine.ts} +126 -56
  211. package/src/timeline/{public.js → public.ts} +112 -73
  212. package/src/timing/{ticker.js → AnimationFrameTicker.ts} +36 -21
  213. package/src/timing/{ease.js → Ease.ts} +6 -5
  214. package/src/timing/{testticker.js → TestTicker.ts} +27 -24
  215. package/src/timing/Ticker.ts +11 -0
  216. package/src/timing/{timing.js → Timing.ts} +72 -63
  217. package/src/timing/{easing.js → easing.ts} +52 -43
  218. package/src/utils/{events.js → Events.ts} +12 -11
  219. package/src/utils/internal.ts +10 -0
  220. package/src/utils/{motionpath.js → motionpath.ts} +36 -13
  221. package/src/utils/utils.ts +110 -0
  222. package/src/values/{colorvalue.js → ColorValue.ts} +46 -47
  223. package/src/values/StyleValue.ts +186 -0
  224. package/src/values/{value.js → Value.ts} +14 -12
  225. package/src/values/{defaultcolors.js → defaultcolors.ts} +2 -2
  226. package/tsconfig.build.json +19 -0
  227. package/tsconfig.json +17 -108
  228. package/src/animation/property.js +0 -556
  229. package/src/responsive/event.js +0 -46
  230. package/src/scroll/event.js +0 -41
  231. package/src/scroll/public.js +0 -17
  232. package/src/stagger/stagger.js +0 -42
  233. package/src/target/domtarget.js +0 -266
  234. package/src/target/target.js +0 -22
  235. package/src/tests/timeline.test.js +0 -234
  236. package/src/utils/internal.js +0 -7
  237. package/src/utils/utils.js +0 -75
  238. package/src/values/stylevalue.js +0 -148
@@ -0,0 +1,230 @@
1
+ import { newTiming, STATE_BEFORE, STATE_AFTER } from '../timing/Timing';
2
+ import { newProperty } from '../property/Property';
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() {
73
+ for (const prop of this._props) {
74
+ prop.restoreBefore(this.target);
75
+ }
76
+ this._ticker.unregisterTarget(this.target.inner());
77
+ }
78
+ }
79
+ function maybeResponsiveValue(prop, val) {
80
+ if (typeof val === 'object' && 'responsive' in val)
81
+ return val.responsive;
82
+ return prop.parseValue(val);
83
+ }
84
+ class PropertyAnimation {
85
+ prop;
86
+ staticValueFn;
87
+ valueFn;
88
+ iniResponsive;
89
+ iniFrom;
90
+ iniTo;
91
+ constructor(prop, value, animation) {
92
+ this.prop = newProperty(prop, animation.target.type());
93
+ // we will get the from the targets
94
+ this.staticValueFn = false;
95
+ this.valueFn = null;
96
+ this.iniResponsive = null;
97
+ this.iniFrom = null;
98
+ this.iniTo = null;
99
+ if (typeof value === 'object') {
100
+ if ('from' in value)
101
+ this.iniFrom = maybeResponsiveValue(this.prop, value.from);
102
+ if ('to' in value)
103
+ this.iniTo = maybeResponsiveValue(this.prop, value.to);
104
+ if ('responsive' in value)
105
+ this.iniResponsive = value.responsive;
106
+ if (!this.iniFrom && !this.iniTo && !this.iniResponsive)
107
+ throw new Error('from or to expected');
108
+ }
109
+ else if (typeof value === 'function') {
110
+ if (!this.prop.allowsValueFn()) {
111
+ throw new Error('prop ' + prop + ' does not allow value functions');
112
+ }
113
+ this.staticValueFn = true;
114
+ this.valueFn = value;
115
+ }
116
+ else {
117
+ this.iniTo = this.prop.parseValue(value);
118
+ }
119
+ }
120
+ // calculate from and to position
121
+ init(target) {
122
+ // there is nothing to initialize since on every render we call the
123
+ // value Fn
124
+ if (this.staticValueFn)
125
+ return;
126
+ this.valueFn = null;
127
+ let from = null;
128
+ let to = null;
129
+ // init via responsive fn
130
+ if (this.iniResponsive) {
131
+ // todo this access to target can't be
132
+ const value = this.iniResponsive(target.target);
133
+ if (typeof value === 'object') {
134
+ if ('from' in value)
135
+ from = this.prop.parseValue(value.from);
136
+ if ('to' in value)
137
+ to = this.prop.parseValue(value.to);
138
+ if (!from && !to)
139
+ throw new Error('from or to expected');
140
+ }
141
+ else if (typeof value === 'function') {
142
+ if (!this.prop.allowsValueFn()) {
143
+ throw new Error(`prop ${this.prop.name} does not allow value functions`);
144
+ }
145
+ this.valueFn = value;
146
+ return;
147
+ }
148
+ else {
149
+ to = this.prop.parseValue(value);
150
+ }
151
+ }
152
+ // init from
153
+ if (!from) {
154
+ if (typeof this.iniFrom === 'function')
155
+ from = this.prop.parseValue(this.iniFrom(target.inner()));
156
+ else
157
+ from = this.iniFrom;
158
+ }
159
+ // init to
160
+ if (!to) {
161
+ if (typeof this.iniTo === 'function')
162
+ to = this.prop.parseValue(this.iniTo(target.inner()));
163
+ else
164
+ to = this.iniTo;
165
+ }
166
+ this.prop.init(target, from, to);
167
+ }
168
+ restoreBefore(target) {
169
+ // todo this might not be enough
170
+ this.prop.removeValue(target);
171
+ }
172
+ render(pos, target) {
173
+ if (this.valueFn) {
174
+ this.prop.setValue(target, this.prop.parseValue(this.valueFn(pos)));
175
+ return;
176
+ }
177
+ this.prop.setValue(target, this.prop.interpolate(pos));
178
+ }
179
+ }
180
+ /*
181
+
182
+ animate(target, {
183
+
184
+ // special
185
+ // translate
186
+ x
187
+ y
188
+ scale
189
+ scaleX
190
+ scaleY
191
+ rotation
192
+ skew
193
+ skewX
194
+ skewY
195
+
196
+
197
+
198
+ // stagger
199
+ repeatDelay
200
+ stagger: {
201
+ // wrap advanced options in an object
202
+ each: 0.1,
203
+ from: "center",
204
+ grid: "auto",
205
+ ease: "power2.inOut",
206
+ repeat: -1, // Repeats immediately, not waiting for the other staggered animations to finish
207
+ },
208
+
209
+
210
+ ease,
211
+ duration,
212
+ repeat, true|false|0-x
213
+ repeatDelay?
214
+ delay,
215
+ alternate
216
+ })
217
+
218
+
219
+ const tl new Timeline;
220
+
221
+ tl.add([
222
+ animation()
223
+ ], 100)
224
+
225
+ tl.addGroup()
226
+
227
+ tl.add()
228
+
229
+ */
230
+ //# 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,36 @@
1
+ import Timing from '../timing/Timing';
2
+ import Property from '../property/Property';
3
+ import Ticker from '@/timing/Ticker';
4
+ import { Target } from '@/target/Target';
5
+ export default class Animation {
6
+ timing: Timing;
7
+ target: Target;
8
+ props: Record<string, PropertyAnimation<any>>;
9
+ private _ticker;
10
+ private _prevTimingState;
11
+ private _props;
12
+ private _initialized;
13
+ constructor(target: any, ticker: Ticker, props?: Record<string, any>);
14
+ advance(change: number): void;
15
+ seekMs(ms: number): void;
16
+ seek(pos: number): void;
17
+ isFinite(): boolean;
18
+ get duration(): number;
19
+ init(reset?: boolean): void;
20
+ render(): void;
21
+ destroy(): void;
22
+ }
23
+ declare class PropertyAnimation<V> {
24
+ prop: Property<V>;
25
+ private staticValueFn;
26
+ private valueFn;
27
+ private iniResponsive;
28
+ private iniFrom;
29
+ private iniTo;
30
+ constructor(prop: string, value: any, animation: Animation);
31
+ init(target: Target): void;
32
+ restoreBefore(target: Target): void;
33
+ render(pos: number, target: Target): void;
34
+ }
35
+ export {};
36
+ //# 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,MAAgD,MAAM,kBAAkB,CAAC;AAEhF,OAAO,QAAyC,MAAM,sBAAsB,CAAC;AAC7E,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,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;CAOP;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;IAC3B,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;IAkDnB,aAAa,CAAC,MAAM,EAAE,MAAM;IAK5B,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAQlC"}
@@ -0,0 +1,230 @@
1
+ import { newTiming, STATE_BEFORE, STATE_AFTER } from '../timing/Timing';
2
+ import { newProperty } from '../property/Property';
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() {
73
+ for (const prop of this._props) {
74
+ prop.restoreBefore(this.target);
75
+ }
76
+ this._ticker.unregisterTarget(this.target.inner());
77
+ }
78
+ }
79
+ function maybeResponsiveValue(prop, val) {
80
+ if (typeof val === 'object' && 'responsive' in val)
81
+ return val.responsive;
82
+ return prop.parseValue(val);
83
+ }
84
+ class PropertyAnimation {
85
+ prop;
86
+ staticValueFn;
87
+ valueFn;
88
+ iniResponsive;
89
+ iniFrom;
90
+ iniTo;
91
+ constructor(prop, value, animation) {
92
+ this.prop = newProperty(prop, animation.target.type());
93
+ // we will get the from the targets
94
+ this.staticValueFn = false;
95
+ this.valueFn = null;
96
+ this.iniResponsive = null;
97
+ this.iniFrom = null;
98
+ this.iniTo = null;
99
+ if (typeof value === 'object') {
100
+ if ('from' in value)
101
+ this.iniFrom = maybeResponsiveValue(this.prop, value.from);
102
+ if ('to' in value)
103
+ this.iniTo = maybeResponsiveValue(this.prop, value.to);
104
+ if ('responsive' in value)
105
+ this.iniResponsive = value.responsive;
106
+ if (!this.iniFrom && !this.iniTo && !this.iniResponsive)
107
+ throw new Error('from or to expected');
108
+ }
109
+ else if (typeof value === 'function') {
110
+ if (!this.prop.allowsValueFn()) {
111
+ throw new Error('prop ' + prop + ' does not allow value functions');
112
+ }
113
+ this.staticValueFn = true;
114
+ this.valueFn = value;
115
+ }
116
+ else {
117
+ this.iniTo = this.prop.parseValue(value);
118
+ }
119
+ }
120
+ // calculate from and to position
121
+ init(target) {
122
+ // there is nothing to initialize since on every render we call the
123
+ // value Fn
124
+ if (this.staticValueFn)
125
+ return;
126
+ this.valueFn = null;
127
+ let from = null;
128
+ let to = null;
129
+ // init via responsive fn
130
+ if (this.iniResponsive) {
131
+ // todo this access to target can't be
132
+ const value = this.iniResponsive(target.target);
133
+ if (typeof value === 'object') {
134
+ if ('from' in value)
135
+ from = this.prop.parseValue(value.from);
136
+ if ('to' in value)
137
+ to = this.prop.parseValue(value.to);
138
+ if (!from && !to)
139
+ throw new Error('from or to expected');
140
+ }
141
+ else if (typeof value === 'function') {
142
+ if (!this.prop.allowsValueFn()) {
143
+ throw new Error(`prop ${this.prop.name} does not allow value functions`);
144
+ }
145
+ this.valueFn = value;
146
+ return;
147
+ }
148
+ else {
149
+ to = this.prop.parseValue(value);
150
+ }
151
+ }
152
+ // init from
153
+ if (!from) {
154
+ if (typeof this.iniFrom === 'function')
155
+ from = this.prop.parseValue(this.iniFrom(target.inner()));
156
+ else
157
+ from = this.iniFrom;
158
+ }
159
+ // init to
160
+ if (!to) {
161
+ if (typeof this.iniTo === 'function')
162
+ to = this.prop.parseValue(this.iniTo(target.inner()));
163
+ else
164
+ to = this.iniTo;
165
+ }
166
+ this.prop.init(target, from, to);
167
+ }
168
+ restoreBefore(target) {
169
+ // todo this might not be enough
170
+ this.prop.removeValue(target);
171
+ }
172
+ render(pos, target) {
173
+ if (this.valueFn) {
174
+ this.prop.setValue(target, this.prop.parseValue(this.valueFn(pos)));
175
+ return;
176
+ }
177
+ this.prop.setValue(target, this.prop.interpolate(pos));
178
+ }
179
+ }
180
+ /*
181
+
182
+ animate(target, {
183
+
184
+ // special
185
+ // translate
186
+ x
187
+ y
188
+ scale
189
+ scaleX
190
+ scaleY
191
+ rotation
192
+ skew
193
+ skewX
194
+ skewY
195
+
196
+
197
+
198
+ // stagger
199
+ repeatDelay
200
+ stagger: {
201
+ // wrap advanced options in an object
202
+ each: 0.1,
203
+ from: "center",
204
+ grid: "auto",
205
+ ease: "power2.inOut",
206
+ repeat: -1, // Repeats immediately, not waiting for the other staggered animations to finish
207
+ },
208
+
209
+
210
+ ease,
211
+ duration,
212
+ repeat, true|false|0-x
213
+ repeatDelay?
214
+ delay,
215
+ alternate
216
+ })
217
+
218
+
219
+ const tl new Timeline;
220
+
221
+ tl.add([
222
+ animation()
223
+ ], 100)
224
+
225
+ tl.addGroup()
226
+
227
+ tl.add()
228
+
229
+ */
230
+ //# 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,55 @@
1
+ /**
2
+ * The animation consist of a timeline with just one animation
3
+ * This allows to reuse a lot of code
4
+ *
5
+ * ## Props
6
+ *
7
+ */
8
+ export default class PublicAnimation {
9
+ private _tl;
10
+ constructor(targets: any, props?: Record<string, any>);
11
+ play(): void;
12
+ pause(): void;
13
+ /**
14
+ * Seeks to a position in the timeline
15
+ */
16
+ seekMs(ms: number): void;
17
+ /**
18
+ * Seeks to a normalized position in the timeline
19
+ *
20
+ * @param pos = number between 0 and 1
21
+ */
22
+ seek(pos: number): void;
23
+ /**
24
+ * Resets the current timeline to the start
25
+ * without changing anything
26
+ */
27
+ reset(): void;
28
+ /**
29
+ * Resets every used prop to it's previous value
30
+ */
31
+ resetProps(): void;
32
+ /**
33
+ * Recalculates all values this should be called for example after a resize
34
+ */
35
+ update(): void;
36
+ /**
37
+ * Returns wether the timeline is set to reversed
38
+ */
39
+ isReversed(): boolean;
40
+ /**
41
+ * Set's the timeline to a specific direction
42
+ */
43
+ setReversed(reversed: boolean): void;
44
+ /**
45
+ * Reverses the order of the current timeline
46
+ */
47
+ reverse(): void;
48
+ on(event: string, fn: (...args: any[]) => void): () => void;
49
+ onPromise(event: string): any;
50
+ /**
51
+ * Destroys this timeline and resets all props
52
+ */
53
+ destroy(): void;
54
+ }
55
+ //# sourceMappingURL=public.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/animation/public.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IACnC,OAAO,CAAC,GAAG,CAAW;gBAEV,OAAO,EAAE,GAAG,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAsBzD,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;IAIV;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,OAAO;IAI7B;;OAEG;IACH,OAAO;IAIP,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAK9C,SAAS,CAAC,KAAK,EAAE,MAAM;IAIvB;;OAEG;IACH,OAAO;CAKP"}
@@ -0,0 +1,104 @@
1
+ import { takeProp } from '../utils/internal';
2
+ import Timeline from '../timeline/public';
3
+ import { staggerMap } from '../stagger/stagger';
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', null);
18
+ const duration = takeProp(props, 'duration', null);
19
+ this._tl = new Timeline(props);
20
+ props.ease = ease;
21
+ props.duration = duration;
22
+ this._tl.add(targets, props, staggerMap(delay, v => '+=' + v));
23
+ if (autoplay)
24
+ this._tl.play();
25
+ }
26
+ play() {
27
+ this._tl.play();
28
+ }
29
+ pause() {
30
+ this._tl.pause();
31
+ }
32
+ /**
33
+ * Seeks to a position in the timeline
34
+ */
35
+ seekMs(ms) {
36
+ this._tl.seekMs(ms);
37
+ }
38
+ /**
39
+ * Seeks to a normalized position in the timeline
40
+ *
41
+ * @param pos = number between 0 and 1
42
+ */
43
+ seek(pos) {
44
+ this._tl.seek(pos);
45
+ }
46
+ /**
47
+ * Resets the current timeline to the start
48
+ * without changing anything
49
+ */
50
+ reset() {
51
+ this._tl.reset();
52
+ }
53
+ /**
54
+ * Resets every used prop to it's previous value
55
+ */
56
+ resetProps() {
57
+ this._tl.resetProps();
58
+ }
59
+ /**
60
+ * Recalculates all values this should be called for example after a resize
61
+ */
62
+ update() {
63
+ this._tl.update();
64
+ }
65
+ /**
66
+ * Returns wether the timeline is set to reversed
67
+ */
68
+ isReversed() {
69
+ return this._tl.isReversed();
70
+ }
71
+ /**
72
+ * Set's the timeline to a specific direction
73
+ */
74
+ setReversed(reversed) {
75
+ this._tl.setReversed(reversed);
76
+ }
77
+ /**
78
+ * Reverses the order of the current timeline
79
+ */
80
+ reverse() {
81
+ this._tl.reverse();
82
+ }
83
+ on(event, fn) {
84
+ return this._tl.on(event, fn);
85
+ }
86
+ // not wroking
87
+ onPromise(event) {
88
+ return this._tl.onPromise(event);
89
+ }
90
+ /**
91
+ * Destroys this timeline and resets all props
92
+ */
93
+ destroy() {
94
+ this._tl.destroy();
95
+ // @ts-ignore
96
+ this._tl = null;
97
+ }
98
+ }
99
+ function parseAutoplay(autoplay) {
100
+ if (autoplay !== true && autoplay !== false)
101
+ throw new Error('autoplay needs to be true|false');
102
+ return autoplay;
103
+ }
104
+ //# sourceMappingURL=public.js.map