chnobli 0.1.5 → 0.1.7

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/.editorconfig +11 -0
  2. package/.prettierignore +4 -0
  3. package/.prettierrc +6 -0
  4. package/.vscode/settings.json +4 -0
  5. package/auto-docs/easing.js.html +342 -0
  6. package/auto-docs/fonts/OpenSans-Bold-webfont.eot +0 -0
  7. package/auto-docs/fonts/OpenSans-Bold-webfont.svg +1830 -0
  8. package/auto-docs/fonts/OpenSans-Bold-webfont.woff +0 -0
  9. package/auto-docs/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  10. package/auto-docs/fonts/OpenSans-BoldItalic-webfont.svg +1830 -0
  11. package/auto-docs/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  12. package/auto-docs/fonts/OpenSans-Italic-webfont.eot +0 -0
  13. package/auto-docs/fonts/OpenSans-Italic-webfont.svg +1830 -0
  14. package/auto-docs/fonts/OpenSans-Italic-webfont.woff +0 -0
  15. package/auto-docs/fonts/OpenSans-Light-webfont.eot +0 -0
  16. package/auto-docs/fonts/OpenSans-Light-webfont.svg +1831 -0
  17. package/auto-docs/fonts/OpenSans-Light-webfont.woff +0 -0
  18. package/auto-docs/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  19. package/auto-docs/fonts/OpenSans-LightItalic-webfont.svg +1835 -0
  20. package/auto-docs/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  21. package/auto-docs/fonts/OpenSans-Regular-webfont.eot +0 -0
  22. package/auto-docs/fonts/OpenSans-Regular-webfont.svg +1831 -0
  23. package/auto-docs/fonts/OpenSans-Regular-webfont.woff +0 -0
  24. package/auto-docs/global.html +4810 -0
  25. package/auto-docs/index.html +65 -0
  26. package/auto-docs/scripts/linenumber.js +25 -0
  27. package/auto-docs/scripts/prettify/Apache-License-2.0.txt +202 -0
  28. package/auto-docs/scripts/prettify/lang-css.js +2 -0
  29. package/auto-docs/scripts/prettify/prettify.js +28 -0
  30. package/auto-docs/styles/jsdoc-default.css +358 -0
  31. package/auto-docs/styles/prettify-jsdoc.css +111 -0
  32. package/auto-docs/styles/prettify-tomorrow.css +132 -0
  33. package/dist/animation/Animation.d.ts +36 -0
  34. package/dist/animation/Animation.d.ts.map +1 -0
  35. package/dist/animation/Animation.js +230 -0
  36. package/dist/animation/Animation.js.map +1 -0
  37. package/dist/animation/animation.d.ts +36 -0
  38. package/dist/animation/animation.d.ts.map +1 -0
  39. package/dist/animation/animation.js +230 -0
  40. package/dist/animation/animation.js.map +1 -0
  41. package/dist/animation/public.d.ts +55 -0
  42. package/dist/animation/public.d.ts.map +1 -0
  43. package/dist/animation/public.js +104 -0
  44. package/dist/animation/public.js.map +1 -0
  45. package/dist/chnobli.d.ts +15 -0
  46. package/dist/chnobli.d.ts.map +1 -0
  47. package/dist/chnobli.js +63 -0
  48. package/dist/chnobli.js.map +1 -0
  49. package/dist/property/BasicProperty.d.ts +38 -0
  50. package/dist/property/BasicProperty.d.ts.map +1 -0
  51. package/dist/property/BasicProperty.js +72 -0
  52. package/dist/property/BasicProperty.js.map +1 -0
  53. package/dist/property/ClassProperty.d.ts +32 -0
  54. package/dist/property/ClassProperty.d.ts.map +1 -0
  55. package/dist/property/ClassProperty.js +108 -0
  56. package/dist/property/ClassProperty.js.map +1 -0
  57. package/dist/property/Property.d.ts +13 -0
  58. package/dist/property/Property.d.ts.map +1 -0
  59. package/dist/property/Property.js +20 -0
  60. package/dist/property/Property.js.map +1 -0
  61. package/dist/property/StyleProperty.d.ts +25 -0
  62. package/dist/property/StyleProperty.d.ts.map +1 -0
  63. package/dist/property/StyleProperty.js +221 -0
  64. package/dist/property/StyleProperty.js.map +1 -0
  65. package/dist/property/TransformProperty.d.ts +15 -0
  66. package/dist/property/TransformProperty.d.ts.map +1 -0
  67. package/dist/property/TransformProperty.js +43 -0
  68. package/dist/property/TransformProperty.js.map +1 -0
  69. package/dist/property/TransformXYProperty.d.ts +28 -0
  70. package/dist/property/TransformXYProperty.d.ts.map +1 -0
  71. package/dist/property/TransformXYProperty.js +65 -0
  72. package/dist/property/TransformXYProperty.js.map +1 -0
  73. package/dist/responsive/ResponsiveEvent.d.ts +17 -0
  74. package/dist/responsive/ResponsiveEvent.d.ts.map +1 -0
  75. package/dist/responsive/ResponsiveEvent.js +45 -0
  76. package/dist/responsive/ResponsiveEvent.js.map +1 -0
  77. package/dist/responsive/TestEvent.d.ts +11 -0
  78. package/dist/responsive/TestEvent.d.ts.map +1 -0
  79. package/dist/responsive/TestEvent.js +26 -0
  80. package/dist/responsive/TestEvent.js.map +1 -0
  81. package/dist/responsive/event.d.ts +10 -0
  82. package/dist/responsive/event.d.ts.map +1 -0
  83. package/dist/responsive/event.js +39 -0
  84. package/dist/responsive/event.js.map +1 -0
  85. package/dist/scroll/Scroll.d.ts +27 -0
  86. package/dist/scroll/Scroll.d.ts.map +1 -0
  87. package/dist/scroll/Scroll.js +132 -0
  88. package/dist/scroll/Scroll.js.map +1 -0
  89. package/dist/scroll/ScrollEvent.d.ts +17 -0
  90. package/dist/scroll/ScrollEvent.d.ts.map +1 -0
  91. package/dist/scroll/ScrollEvent.js +39 -0
  92. package/dist/scroll/ScrollEvent.js.map +1 -0
  93. package/dist/scroll/public.d.ts +7 -0
  94. package/dist/scroll/public.d.ts.map +1 -0
  95. package/dist/scroll/public.js +17 -0
  96. package/dist/scroll/public.js.map +1 -0
  97. package/dist/stagger/stagger.d.ts +13 -0
  98. package/dist/stagger/stagger.d.ts.map +1 -0
  99. package/dist/stagger/stagger.js +35 -0
  100. package/dist/stagger/stagger.js.map +1 -0
  101. package/dist/target/BaseTarget.old.d.ts +33 -0
  102. package/dist/target/BaseTarget.old.d.ts.map +1 -0
  103. package/dist/target/BaseTarget.old.js +73 -0
  104. package/dist/target/BaseTarget.old.js.map +1 -0
  105. package/dist/target/DomTarget.d.ts +41 -0
  106. package/dist/target/DomTarget.d.ts.map +1 -0
  107. package/dist/target/DomTarget.js +230 -0
  108. package/dist/target/DomTarget.js.map +1 -0
  109. package/dist/target/Target.d.ts +22 -0
  110. package/dist/target/Target.d.ts.map +1 -0
  111. package/dist/target/Target.js +21 -0
  112. package/dist/target/Target.js.map +1 -0
  113. package/dist/target/TestDomNode.d.ts +14 -0
  114. package/dist/target/TestDomNode.d.ts.map +1 -0
  115. package/dist/target/TestDomNode.js +55 -0
  116. package/dist/target/TestDomNode.js.map +1 -0
  117. package/dist/timeline/Nested.d.ts +30 -0
  118. package/dist/timeline/Nested.d.ts.map +1 -0
  119. package/dist/timeline/Nested.js +51 -0
  120. package/dist/timeline/Nested.js.map +1 -0
  121. package/dist/timeline/TimeLine.d.ts +32 -0
  122. package/dist/timeline/TimeLine.d.ts.map +1 -0
  123. package/dist/timeline/TimeLine.js +288 -0
  124. package/dist/timeline/TimeLine.js.map +1 -0
  125. package/dist/timeline/public.d.ts +120 -0
  126. package/dist/timeline/public.d.ts.map +1 -0
  127. package/dist/timeline/public.js +301 -0
  128. package/dist/timeline/public.js.map +1 -0
  129. package/dist/timing/AnimationFrameTicker.d.ts +32 -0
  130. package/dist/timing/AnimationFrameTicker.d.ts.map +1 -0
  131. package/dist/timing/AnimationFrameTicker.js +134 -0
  132. package/dist/timing/AnimationFrameTicker.js.map +1 -0
  133. package/dist/timing/Ease.d.ts +6 -0
  134. package/dist/timing/Ease.d.ts.map +1 -0
  135. package/dist/timing/Ease.js +15 -0
  136. package/dist/timing/Ease.js.map +1 -0
  137. package/dist/timing/TestTicker.d.ts +19 -0
  138. package/dist/timing/TestTicker.d.ts.map +1 -0
  139. package/dist/timing/TestTicker.js +81 -0
  140. package/dist/timing/TestTicker.js.map +1 -0
  141. package/dist/timing/Ticker.d.ts +14 -0
  142. package/dist/timing/Ticker.d.ts.map +1 -0
  143. package/dist/timing/Ticker.js +2 -0
  144. package/dist/timing/Ticker.js.map +1 -0
  145. package/dist/timing/Timing.d.ts +62 -0
  146. package/dist/timing/Timing.d.ts.map +1 -0
  147. package/dist/timing/Timing.js +257 -0
  148. package/dist/timing/Timing.js.map +1 -0
  149. package/dist/timing/easing.d.ts +158 -0
  150. package/dist/timing/easing.d.ts.map +1 -0
  151. package/dist/timing/easing.js +273 -0
  152. package/dist/timing/easing.js.map +1 -0
  153. package/dist/utils/Events.d.ts +9 -0
  154. package/dist/utils/Events.d.ts.map +1 -0
  155. package/dist/utils/Events.js +35 -0
  156. package/dist/utils/Events.js.map +1 -0
  157. package/dist/utils/internal.d.ts +2 -0
  158. package/dist/utils/internal.d.ts.map +1 -0
  159. package/dist/utils/internal.js +6 -0
  160. package/dist/utils/internal.js.map +1 -0
  161. package/dist/utils/motionpath.d.ts +16 -0
  162. package/dist/utils/motionpath.d.ts.map +1 -0
  163. package/dist/utils/motionpath.js +41 -0
  164. package/dist/utils/motionpath.js.map +1 -0
  165. package/dist/utils/utils.d.ts +43 -0
  166. package/dist/utils/utils.d.ts.map +1 -0
  167. package/dist/utils/utils.js +93 -0
  168. package/dist/utils/utils.js.map +1 -0
  169. package/dist/values/ColorValue.d.ts +12 -0
  170. package/dist/values/ColorValue.d.ts.map +1 -0
  171. package/dist/values/ColorValue.js +133 -0
  172. package/dist/values/ColorValue.js.map +1 -0
  173. package/dist/values/StyleValue.d.ts +40 -0
  174. package/dist/values/StyleValue.d.ts.map +1 -0
  175. package/dist/values/StyleValue.js +149 -0
  176. package/dist/values/StyleValue.js.map +1 -0
  177. package/dist/values/Value.d.ts +13 -0
  178. package/dist/values/Value.d.ts.map +1 -0
  179. package/dist/values/Value.js +38 -0
  180. package/dist/values/Value.js.map +1 -0
  181. package/dist/values/defaultcolors.d.ts +2 -0
  182. package/dist/values/defaultcolors.d.ts.map +1 -0
  183. package/dist/values/defaultcolors.js +149 -0
  184. package/dist/values/defaultcolors.js.map +1 -0
  185. package/package.json +11 -7
  186. package/src/animation/{animation.js → Animation.ts} +56 -54
  187. package/src/animation/{public.js → public.ts} +23 -18
  188. package/src/{chnobli.js → chnobli.ts} +11 -12
  189. package/src/property/BasicProperty.ts +91 -0
  190. package/src/property/ClassProperty.ts +132 -0
  191. package/src/property/Property.ts +33 -0
  192. package/src/property/StyleProperty.ts +273 -0
  193. package/src/property/TransformProperty.ts +56 -0
  194. package/src/property/TransformXYProperty.ts +88 -0
  195. package/src/responsive/ResponsiveEvent.ts +60 -0
  196. package/src/responsive/{testevent.js → TestEvent.ts} +12 -10
  197. package/src/scroll/{scroll.js → Scroll.ts} +53 -35
  198. package/src/scroll/ScrollEvent.ts +53 -0
  199. package/src/scroll/public.ts +20 -0
  200. package/src/stagger/stagger.ts +45 -0
  201. package/src/target/{basetarget.js → BaseTarget.old.ts} +25 -26
  202. package/src/target/DomTarget.ts +281 -0
  203. package/src/target/Target.ts +48 -0
  204. package/src/target/{testdomnode.js → TestDomNode.ts} +18 -15
  205. package/src/tests/{properties.test.js → properties.test.ts} +54 -49
  206. package/src/tests/{timeline.test.js → timeline.test.ts} +92 -75
  207. package/src/tests/{timing.test.js → timing.test.ts} +25 -22
  208. package/src/tests/{usecases.test.js → usecases.test.ts} +13 -10
  209. package/src/tests/{values.test.js → values.test.ts} +21 -21
  210. package/src/timeline/{nested.js → Nested.ts} +18 -12
  211. package/src/timeline/{timeline.js → TimeLine.ts} +100 -60
  212. package/src/timeline/{public.js → public.ts} +75 -60
  213. package/src/timing/{ticker.js → AnimationFrameTicker.ts} +36 -21
  214. package/src/timing/{ease.js → Ease.ts} +6 -5
  215. package/src/timing/{testticker.js → TestTicker.ts} +27 -24
  216. package/src/timing/Ticker.ts +11 -0
  217. package/src/timing/{timing.js → Timing.ts} +72 -63
  218. package/src/timing/{easing.js → easing.ts} +52 -43
  219. package/src/utils/{events.js → Events.ts} +12 -11
  220. package/src/utils/internal.ts +10 -0
  221. package/src/utils/{motionpath.js → motionpath.ts} +36 -13
  222. package/src/utils/utils.ts +110 -0
  223. package/src/values/{colorvalue.js → ColorValue.ts} +46 -47
  224. package/src/values/StyleValue.ts +186 -0
  225. package/src/values/{value.js → Value.ts} +14 -12
  226. package/src/values/{defaultcolors.js → defaultcolors.ts} +2 -2
  227. package/tsconfig.build.json +19 -0
  228. package/tsconfig.json +17 -108
  229. package/src/animation/property.js +0 -556
  230. package/src/responsive/event.js +0 -46
  231. package/src/scroll/event.js +0 -41
  232. package/src/scroll/public.js +0 -17
  233. package/src/stagger/stagger.js +0 -42
  234. package/src/target/domtarget.js +0 -266
  235. package/src/target/target.js +0 -22
  236. package/src/utils/internal.js +0 -7
  237. package/src/utils/utils.js +0 -107
  238. package/src/values/stylevalue.js +0 -148
@@ -0,0 +1,51 @@
1
+ import { takeProp } from '../utils/internal';
2
+ import Timeline from './TimeLine';
3
+ import { timelineAdd } from './public';
4
+ export default class NestedTimeline {
5
+ _defaults;
6
+ _inner;
7
+ constructor(props = {}) {
8
+ this._defaults = takeProp(props, 'defaults', {});
9
+ if ('duration' in props)
10
+ throw new Error('a timeline does not accept a duration');
11
+ this._inner = new Timeline(props);
12
+ }
13
+ /**
14
+ * Set's properties
15
+ * offset can be staggered, a number, a label or a string `+=10`
16
+ */
17
+ set(targets, props, offset = null) {
18
+ // for the moment let's just add as usual but set the duration to 0
19
+ return this.add(targets, { ...props, duration: 0 }, offset);
20
+ }
21
+ /**
22
+ * Add an animation to the timeline
23
+ *
24
+ * offset can be staggered, a number, a label or a string `+=10`
25
+ */
26
+ add(targets, props, offset = null) {
27
+ timelineAdd(this, targets, props, offset);
28
+ return this;
29
+ }
30
+ /**
31
+ * Adds a label at to the current nOffse
32
+ *
33
+ * This label can then be used in offsets
34
+ */
35
+ label(label, offset = null) {
36
+ this._inner.label(label, offset);
37
+ return this;
38
+ }
39
+ /**
40
+ * Allows to nest timelines
41
+ *
42
+ * fn: (timeline)
43
+ */
44
+ nest(fn, opts = {}, offset = null) {
45
+ const tl = new NestedTimeline(opts);
46
+ fn(tl);
47
+ this._inner.addTimeline(tl._inner, offset);
48
+ return this;
49
+ }
50
+ }
51
+ //# sourceMappingURL=Nested.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Nested.js","sourceRoot":"","sources":["../../src/timeline/Nested.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,cAAc;IAClC,SAAS,CAAsB;IAC/B,MAAM,CAAW;IAEjB,YAAY,QAA6B,EAAE;QAC1C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QAEjD,IAAI,UAAU,IAAI,KAAK;YACtB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAE1D,IAAI,CAAC,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,OAAY,EAAE,KAA0B,EAAE,SAAc,IAAI;QAC/D,mEAAmE;QACnE,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,OAAY,EAAE,KAA0B,EAAE,SAAc,IAAI;QAC/D,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAa,EAAE,SAAc,IAAI;QACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEjC,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,IAAI,CACH,EAAgC,EAChC,OAA4B,EAAE,EAC9B,SAAc,IAAI;QAElB,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QAEpC,EAAE,CAAC,EAAE,CAAC,CAAC;QAEP,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE3C,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
@@ -0,0 +1,32 @@
1
+ import Timing from '../timing/Timing';
2
+ import Ticker from '../timing/Ticker';
3
+ /**
4
+ * Timeline is the most versatile class
5
+ *
6
+ * A timeline can contain multiple animation, ordered one after the other or
7
+ * offset.
8
+ */
9
+ export default class Timeline {
10
+ timing: Timing;
11
+ ticker: Ticker;
12
+ private entries;
13
+ private _beforeResponsiveFn;
14
+ private _initialized;
15
+ private _renderQueue;
16
+ constructor(props?: Record<string, any>);
17
+ isFinite(): boolean;
18
+ add(target: any, props: Record<string, any>, offset?: any, relative?: number): this;
19
+ addTimeline(tl: Timeline, offset?: any): void;
20
+ label(label: string, offset?: any): this;
21
+ setBeforeResponsiveFn(fn: () => void): void;
22
+ advance(change: number): void;
23
+ seekMs(ms: number): void;
24
+ seek(pos: number): void;
25
+ init(): void;
26
+ _initAnimations(reset?: boolean): void;
27
+ render(): void;
28
+ _updateTimings(): void;
29
+ update(): void;
30
+ destroy(): void;
31
+ }
32
+ //# sourceMappingURL=TimeLine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeLine.d.ts","sourceRoot":"","sources":["../../src/timeline/TimeLine.ts"],"names":[],"mappings":"AACA,OAAO,MAON,MAAM,kBAAkB,CAAC;AAC1B,OAAO,MAAM,MAAM,kBAAkB,CAAC;AAatC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,YAAY,CAIlB;gBASU,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAwB3C,QAAQ;IAQR,GAAG,CACF,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,MAAM,GAAE,GAAU,EAClB,QAAQ,SAAI;IAiBb,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAE,GAAU;IAW5C,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,GAAU;IAYvC,qBAAqB,CAAC,EAAE,EAAE,MAAM,IAAI;IAIpC,OAAO,CAAC,MAAM,EAAE,MAAM;IAMtB,MAAM,CAAC,EAAE,EAAE,MAAM;IAMjB,IAAI,CAAC,GAAG,EAAE,MAAM;IAMhB,IAAI;IAiDJ,eAAe,CAAC,KAAK,UAAQ;IAyC7B,MAAM;IAmBN,cAAc;IA0Bd,MAAM;IAyBN,OAAO;CAiBP"}
@@ -0,0 +1,288 @@
1
+ import { takeProp } from '../utils/internal';
2
+ import Timing, { parseEase, parseRepeat, parseAlternate, parseReversed, STATE_BEFORE, STATE_ENDED, } from '../timing/Timing';
3
+ import Animation from '../animation/Animation';
4
+ import AnimationFrameTicker from '../timing/AnimationFrameTicker';
5
+ /**
6
+ * Timeline is the most versatile class
7
+ *
8
+ * A timeline can contain multiple animation, ordered one after the other or
9
+ * offset.
10
+ */
11
+ export default class Timeline {
12
+ timing;
13
+ ticker;
14
+ entries;
15
+ _beforeResponsiveFn;
16
+ _initialized;
17
+ _renderQueue;
18
+ /*
19
+ {
20
+ ease,
21
+ repeat: -1 - x,
22
+ alternate
23
+ }
24
+ */
25
+ constructor(props = {}) {
26
+ const nProps = {
27
+ duration: 1000,
28
+ ease: parseEase(takeProp(props, 'ease', null)),
29
+ repeat: parseRepeat(takeProp(props, 'repeat', false)),
30
+ alternate: parseAlternate(takeProp(props, 'alternate', true)),
31
+ reversed: parseReversed(takeProp(props, 'reversed', false)),
32
+ };
33
+ this.timing = new Timing(nProps);
34
+ this.ticker = AnimationFrameTicker.global();
35
+ // { type: label|animation, value: {}, offset, start: x, end: y, render }
36
+ this.entries = [];
37
+ this._beforeResponsiveFn = () => { };
38
+ this._initialized = false;
39
+ this._renderQueue = {
40
+ upcoming: [],
41
+ passed: [],
42
+ active: [],
43
+ };
44
+ }
45
+ isFinite() {
46
+ return !this.entries.some(e => {
47
+ return e.type === 'animation' && !e.value.isFinite();
48
+ });
49
+ }
50
+ // relative represents the point which the offset should be taken
51
+ // if relative 1 is done the offset will be taken from the previous - 1
52
+ add(target, props, offset = null, relative = 0) {
53
+ const animation = new Animation(target, this.ticker, props);
54
+ if (!animation.isFinite())
55
+ throw new Error('the animation needs to be finite');
56
+ this.entries.push({
57
+ type: 'animation',
58
+ value: animation,
59
+ offset: new Offset(offset),
60
+ relativeOffset: relative,
61
+ });
62
+ return this;
63
+ }
64
+ addTimeline(tl, offset = null) {
65
+ if (!tl.isFinite())
66
+ throw new Error('the animation needs to be finite');
67
+ this.entries.push({
68
+ type: 'timeline',
69
+ value: tl,
70
+ offset: new Offset(offset),
71
+ relativeOffset: 0,
72
+ });
73
+ }
74
+ label(label, offset = null) {
75
+ this.entries.push({
76
+ type: 'label',
77
+ value: label,
78
+ offset: new Offset(offset),
79
+ relativeOffset: 0,
80
+ });
81
+ return this;
82
+ }
83
+ // set's a function which get's called before any responsive call
84
+ setBeforeResponsiveFn(fn) {
85
+ this._beforeResponsiveFn = fn;
86
+ }
87
+ advance(change) {
88
+ this.timing.advance(change);
89
+ this._updateTimings();
90
+ }
91
+ seekMs(ms) {
92
+ this.timing.seekMs(ms);
93
+ this._updateTimings();
94
+ }
95
+ seek(pos) {
96
+ this.timing.seek(pos);
97
+ this._updateTimings();
98
+ }
99
+ init() {
100
+ if (this._initialized)
101
+ return;
102
+ this._initialized = true;
103
+ let duration = 0;
104
+ const labels = {};
105
+ let i = -1;
106
+ for (const entry of this.entries) {
107
+ i++;
108
+ let offset = entry.offset;
109
+ const label = offset.label();
110
+ if (label) {
111
+ if (!(label in labels))
112
+ throw new Error('could not find label ' + label);
113
+ offset = new Offset(labels[label]);
114
+ }
115
+ const pos = this.entries[i - 1 - entry.relativeOffset]?.end ?? 0;
116
+ let start = offset.calculate(pos);
117
+ if (start < 0)
118
+ throw new Error('cannot go in the past start < 0');
119
+ let end = start;
120
+ if (entry.type === 'animation')
121
+ end += entry.value.duration;
122
+ if (entry.type === 'timeline') {
123
+ entry.value.init();
124
+ end += entry.value.timing.duration;
125
+ }
126
+ if (entry.type === 'label')
127
+ labels[entry.value] = start;
128
+ entry.start = start;
129
+ entry.end = end;
130
+ duration = Math.max(end, duration);
131
+ }
132
+ this.timing.setDuration(duration);
133
+ this._beforeResponsiveFn();
134
+ this._initAnimations();
135
+ }
136
+ _initAnimations(reset = false) {
137
+ // we don't wan't to have a reversed timing
138
+ const reversed = this.timing.reversed;
139
+ this.timing.reversed = false;
140
+ // now initialize all animations
141
+ // initialization means
142
+ // we need to define which value should be used as the from and the to
143
+ // value
144
+ const startOrdered = this.entries.filter(e => {
145
+ return e.type === 'animation' || e.type === 'timeline';
146
+ });
147
+ startOrdered.sort((a, b) => a.start - b.start);
148
+ for (let i = 0; i < startOrdered.length; i++) {
149
+ const entry = startOrdered[i];
150
+ this.timing.seekMs(entry.start);
151
+ const pos = this.timing.positionMs();
152
+ // seek all previous and render
153
+ for (let y = 0; y < i; y++) {
154
+ const prevEntry = startOrdered[y];
155
+ const prevAnimation = prevEntry.value;
156
+ prevAnimation.seekMs(pos - prevEntry.start);
157
+ prevAnimation.render();
158
+ }
159
+ entry.value.init(reset);
160
+ }
161
+ this.timing.reversed = reversed;
162
+ this.timing.seek(-1);
163
+ startOrdered.forEach(e => {
164
+ e.value.seek(-1);
165
+ e.value.render();
166
+ });
167
+ }
168
+ render() {
169
+ // the rendering order needs to be as follows
170
+ // upcoming
171
+ // passed
172
+ // active
173
+ for (const animation of this._renderQueue.upcoming) {
174
+ animation.render();
175
+ }
176
+ for (const animation of this._renderQueue.passed) {
177
+ animation.render();
178
+ }
179
+ for (const animation of this._renderQueue.active) {
180
+ animation.render();
181
+ }
182
+ }
183
+ _updateTimings() {
184
+ this._renderQueue = {
185
+ upcoming: [],
186
+ passed: [],
187
+ active: [],
188
+ };
189
+ const pos = this.timing.positionMsUnbounded();
190
+ for (const entry of this.entries) {
191
+ if (entry.type !== 'animation' && entry.type !== 'timeline')
192
+ continue;
193
+ const animation = entry.value;
194
+ animation.seekMs(pos - entry.start);
195
+ if (animation.timing.state >= STATE_ENDED) {
196
+ this._renderQueue.passed.push(animation);
197
+ }
198
+ else if (animation.timing.state <= STATE_BEFORE) {
199
+ this._renderQueue.upcoming.push(animation);
200
+ }
201
+ else {
202
+ this._renderQueue.active.push(animation);
203
+ }
204
+ }
205
+ }
206
+ update() {
207
+ if (!this._initialized)
208
+ return;
209
+ const pos = this.timing.savePosition();
210
+ const reversed = this.timing.reversed;
211
+ this.timing.reversed = false;
212
+ this.timing.seek(-1);
213
+ this._updateTimings();
214
+ this.render();
215
+ this.ticker.applyTargets();
216
+ this._beforeResponsiveFn();
217
+ // we now have removed every style we set
218
+ // we should be able to recalculate everything now
219
+ this._initAnimations(true);
220
+ this.timing.reversed = reversed;
221
+ this.timing.restorePosition(pos);
222
+ this._updateTimings();
223
+ this.render();
224
+ this.ticker.applyTargets();
225
+ }
226
+ destroy() {
227
+ for (const entry of this.entries) {
228
+ if (entry.type === 'timeline') {
229
+ entry.value.destroy();
230
+ continue;
231
+ }
232
+ if (entry.type !== 'animation')
233
+ continue;
234
+ const animation = entry.value;
235
+ animation.destroy();
236
+ }
237
+ this.entries = [];
238
+ this._beforeResponsiveFn = () => { };
239
+ this.ticker.applyTargets();
240
+ }
241
+ }
242
+ class Offset {
243
+ type;
244
+ value;
245
+ constructor(offset = null) {
246
+ this.type = 'none';
247
+ this.value = null;
248
+ if (typeof offset === 'number') {
249
+ this.type = 'absolute';
250
+ this.value = offset;
251
+ }
252
+ else if (typeof offset === 'string') {
253
+ if (offset.startsWith('-=')) {
254
+ this.type = 'sub';
255
+ this.value = parseFloat(offset.substring(2));
256
+ }
257
+ else if (offset.startsWith('+=')) {
258
+ this.type = 'add';
259
+ this.value = parseFloat(offset.substring(2));
260
+ }
261
+ else {
262
+ this.type = 'label';
263
+ this.value = offset;
264
+ }
265
+ }
266
+ }
267
+ label() {
268
+ if (this.type !== 'label')
269
+ return null;
270
+ return this.value;
271
+ }
272
+ // this is bullshit
273
+ /* isAbsolute(this: Offset): this is { type: 'absolute'; value: number } {
274
+ return this.type === 'absolute';
275
+ } */
276
+ calculate(pos) {
277
+ if (this.type === 'none')
278
+ return pos;
279
+ if (this.type === 'absolute')
280
+ return this.value;
281
+ if (this.type === 'sub')
282
+ return pos - this.value;
283
+ if (this.type === 'add')
284
+ return pos + this.value;
285
+ throw new Error('cannot calculate for type ' + this.type);
286
+ }
287
+ }
288
+ //# sourceMappingURL=TimeLine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeLine.js","sourceRoot":"","sources":["../../src/timeline/TimeLine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import Timeline from './TimeLine';
2
+ import NestedTimeline from './Nested';
3
+ export type Responsive = {
4
+ responsive: () => void;
5
+ };
6
+ export default class PublicTimeline {
7
+ _defaults: Record<string, any>;
8
+ private _responsive;
9
+ _inner: Timeline;
10
+ private _events;
11
+ private _state;
12
+ private _renderedOnce;
13
+ private _runningTicker;
14
+ private _responsiveBlocks;
15
+ private _responsiveEvent;
16
+ constructor(props?: Record<string, any>);
17
+ /**
18
+ * Set's properties
19
+ * offset can be staggered, a number, a label or a string `+=10`
20
+ */
21
+ set(targets: any, props: Record<string, any>, offset?: null): this;
22
+ /**
23
+ * Add an animation to the timeline
24
+ *
25
+ * offset can be staggered, a number, a label or a string `+=10`
26
+ */
27
+ add(targets: any, props: Record<string, any>, offset?: null): this;
28
+ /**
29
+ * Adds a label at to the current nOffse
30
+ *
31
+ * This label can then be used in offsets
32
+ */
33
+ label(label: string, offset?: any): this;
34
+ /**
35
+ * Allows to nest timelines
36
+ *
37
+ * fn: (timeline)
38
+ */
39
+ nest(fn: (tl: NestedTimeline) => void, opts?: {}, offset?: any): this;
40
+ /**
41
+ * Adds a responsive function call which get's called before the responsive
42
+ * functions in properties
43
+ */
44
+ addResponsive(responsive: Responsive | Responsive[]): this;
45
+ /**
46
+ * Starts to play the timeline if it hasn't started
47
+ */
48
+ play(): this;
49
+ /**
50
+ * Pause the timeline at the current position
51
+ */
52
+ pause(): void;
53
+ /**
54
+ * Seeks to a position in the timeline
55
+ */
56
+ seekMs(ms: number): void;
57
+ /**
58
+ * Seeks to a normalized position in the timeline
59
+ *
60
+ * @param pos = number between 0 and 1
61
+ */
62
+ seek(pos: number): void;
63
+ /**
64
+ * Resets the current timeline to the start
65
+ * without changing anything
66
+ */
67
+ reset(): void;
68
+ /**
69
+ * Resets every used prop to it's previous value
70
+ */
71
+ resetProps(): void;
72
+ /**
73
+ * Recalculates all values this should be called for example after a resize
74
+ */
75
+ update(): void;
76
+ /**
77
+ * Returns wether the timeline is set to reversed
78
+ */
79
+ isReversed(): boolean;
80
+ /**
81
+ * Set's the timeline to a specific direction
82
+ */
83
+ setReversed(reversed: boolean): void;
84
+ /**
85
+ * Reverses the order of the current timeline
86
+ */
87
+ reverse(): void;
88
+ /**
89
+ * Listen on events
90
+ *
91
+ * returns a function to remove the event listener
92
+ *
93
+ * ## Events
94
+ *
95
+ * ### end
96
+ * Get's executed once the timeline comes to the end
97
+ * Does not get executed during seeking
98
+ *
99
+ */
100
+ on(event: string, fn: (...args: any[]) => void): () => void;
101
+ onPromise(event: string): any;
102
+ /**
103
+ * Destroys this timeline and resets all props
104
+ */
105
+ destroy(): void;
106
+ _startTicker(): void;
107
+ _stopTicker(): void;
108
+ _onResponsive(a: {
109
+ width: number;
110
+ height: number;
111
+ }, b: {
112
+ remove: () => void;
113
+ }): void;
114
+ }
115
+ /**
116
+ * Add an animation to the timeline
117
+ * tl needs to have _defaults, and _inner
118
+ */
119
+ export declare function timelineAdd(tl: PublicTimeline | NestedTimeline, targets: any, props: Record<string, any>, offset?: any): void;
120
+ //# sourceMappingURL=public.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/timeline/public.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAKlC,OAAO,cAAc,MAAM,UAAU,CAAC;AAMtC,MAAM,MAAM,UAAU,GAAG;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,cAAc;IAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,OAAO,CAAC,WAAW,CAAU;IAE7B,MAAM,EAAE,QAAQ,CAAC;IAEjB,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,gBAAgB,CAAM;gBAElB,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAkC3C;;;OAGG;IACH,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,OAAO;IAK3D;;;;OAIG;IACH,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,OAAO;IAM3D;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,GAAU;IAMvC;;;;OAIG;IAEH,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,IAAI,EAAE,IAAI,KAAK,EAAE,MAAM,GAAE,GAAU;IAUpE;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,EAAE;IAiBnD;;OAEG;IACH,IAAI;IAUJ;;OAEG;IACH,KAAK;IAQL;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM;IAUjB;;;;OAIG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM;IAahB;;;OAGG;IACH,KAAK;IAIL;;OAEG;IACH,UAAU;IAWV;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,UAAU;IAIV;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,OAAO;IAK7B;;OAEG;IACH,OAAO;IAIP;;;;;;;;;;;OAWG;IACH,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;IAUP,YAAY;IAmDZ,WAAW;IAOX,aAAa,CACZ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EACpC,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,IAAI,CAAA;KAAE;CAO1B;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAC1B,EAAE,EAAE,cAAc,GAAG,cAAc,EACnC,OAAO,EAAE,GAAG,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,MAAM,GAAE,GAAU,QAsBlB"}