chnobli 0.1.9 → 0.1.10

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 (153) hide show
  1. package/dist/animation/Animation.d.ts +36 -0
  2. package/dist/animation/Animation.d.ts.map +1 -0
  3. package/dist/animation/Animation.js +230 -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/chnobli.d.ts +15 -0
  10. package/dist/chnobli.d.ts.map +1 -0
  11. package/dist/chnobli.js +59 -0
  12. package/dist/chnobli.js.map +1 -0
  13. package/dist/property/BasicProperty.d.ts +38 -0
  14. package/dist/property/BasicProperty.d.ts.map +1 -0
  15. package/dist/property/BasicProperty.js +72 -0
  16. package/dist/property/BasicProperty.js.map +1 -0
  17. package/dist/property/ClassProperty.d.ts +32 -0
  18. package/dist/property/ClassProperty.d.ts.map +1 -0
  19. package/dist/property/ClassProperty.js +108 -0
  20. package/dist/property/ClassProperty.js.map +1 -0
  21. package/dist/property/Property.d.ts +13 -0
  22. package/dist/property/Property.d.ts.map +1 -0
  23. package/dist/property/Property.js +22 -0
  24. package/dist/property/Property.js.map +1 -0
  25. package/dist/property/StyleProperty.d.ts +25 -0
  26. package/dist/property/StyleProperty.d.ts.map +1 -0
  27. package/dist/property/StyleProperty.js +221 -0
  28. package/dist/property/StyleProperty.js.map +1 -0
  29. package/dist/property/TransformProperty.d.ts +15 -0
  30. package/dist/property/TransformProperty.d.ts.map +1 -0
  31. package/dist/property/TransformProperty.js +43 -0
  32. package/dist/property/TransformProperty.js.map +1 -0
  33. package/dist/property/TransformXYProperty.d.ts +28 -0
  34. package/dist/property/TransformXYProperty.d.ts.map +1 -0
  35. package/dist/property/TransformXYProperty.js +65 -0
  36. package/dist/property/TransformXYProperty.js.map +1 -0
  37. package/dist/responsive/ResponsiveEvent.d.ts +17 -0
  38. package/dist/responsive/ResponsiveEvent.d.ts.map +1 -0
  39. package/dist/responsive/ResponsiveEvent.js +45 -0
  40. package/dist/responsive/ResponsiveEvent.js.map +1 -0
  41. package/dist/responsive/TestEvent.d.ts +11 -0
  42. package/dist/responsive/TestEvent.d.ts.map +1 -0
  43. package/dist/responsive/TestEvent.js +26 -0
  44. package/dist/responsive/TestEvent.js.map +1 -0
  45. package/dist/scroll/Scroll.d.ts +40 -0
  46. package/dist/scroll/Scroll.d.ts.map +1 -0
  47. package/dist/scroll/Scroll.js +168 -0
  48. package/dist/scroll/Scroll.js.map +1 -0
  49. package/dist/scroll/ScrollEvent.d.ts +17 -0
  50. package/dist/scroll/ScrollEvent.d.ts.map +1 -0
  51. package/dist/scroll/ScrollEvent.js +39 -0
  52. package/dist/scroll/ScrollEvent.js.map +1 -0
  53. package/dist/scroll/index.d.ts +6 -0
  54. package/dist/scroll/index.d.ts.map +1 -0
  55. package/dist/scroll/index.js +8 -0
  56. package/dist/scroll/index.js.map +1 -0
  57. package/dist/scroll/public.d.ts +17 -0
  58. package/dist/scroll/public.d.ts.map +1 -0
  59. package/dist/scroll/public.js +25 -0
  60. package/dist/scroll/public.js.map +1 -0
  61. package/dist/stagger/stagger.d.ts +20 -0
  62. package/dist/stagger/stagger.d.ts.map +1 -0
  63. package/dist/stagger/stagger.js +43 -0
  64. package/dist/stagger/stagger.js.map +1 -0
  65. package/dist/target/BaseTarget.old.d.ts +33 -0
  66. package/dist/target/BaseTarget.old.d.ts.map +1 -0
  67. package/dist/target/BaseTarget.old.js +73 -0
  68. package/dist/target/BaseTarget.old.js.map +1 -0
  69. package/dist/target/DomTarget.d.ts +41 -0
  70. package/dist/target/DomTarget.d.ts.map +1 -0
  71. package/dist/target/DomTarget.js +230 -0
  72. package/dist/target/DomTarget.js.map +1 -0
  73. package/dist/target/ObjectTarget.d.ts +30 -0
  74. package/dist/target/ObjectTarget.d.ts.map +1 -0
  75. package/dist/target/ObjectTarget.js +101 -0
  76. package/dist/target/ObjectTarget.js.map +1 -0
  77. package/dist/target/Target.d.ts +25 -0
  78. package/dist/target/Target.d.ts.map +1 -0
  79. package/dist/target/Target.js +25 -0
  80. package/dist/target/Target.js.map +1 -0
  81. package/dist/target/TestDomNode.d.ts +14 -0
  82. package/dist/target/TestDomNode.d.ts.map +1 -0
  83. package/dist/target/TestDomNode.js +55 -0
  84. package/dist/target/TestDomNode.js.map +1 -0
  85. package/dist/timeline/Nested.d.ts +30 -0
  86. package/dist/timeline/Nested.d.ts.map +1 -0
  87. package/dist/timeline/Nested.js +51 -0
  88. package/dist/timeline/Nested.js.map +1 -0
  89. package/dist/timeline/Timeline.d.ts +41 -0
  90. package/dist/timeline/Timeline.d.ts.map +1 -0
  91. package/dist/timeline/Timeline.js +306 -0
  92. package/dist/timeline/Timeline.js.map +1 -0
  93. package/dist/timeline/public.d.ts +160 -0
  94. package/dist/timeline/public.d.ts.map +1 -0
  95. package/dist/timeline/public.js +388 -0
  96. package/dist/timeline/public.js.map +1 -0
  97. package/dist/timing/AnimationFrameTicker.d.ts +32 -0
  98. package/dist/timing/AnimationFrameTicker.d.ts.map +1 -0
  99. package/dist/timing/AnimationFrameTicker.js +134 -0
  100. package/dist/timing/AnimationFrameTicker.js.map +1 -0
  101. package/dist/timing/Ease.d.ts +6 -0
  102. package/dist/timing/Ease.d.ts.map +1 -0
  103. package/dist/timing/Ease.js +15 -0
  104. package/dist/timing/Ease.js.map +1 -0
  105. package/dist/timing/TestTicker.d.ts +19 -0
  106. package/dist/timing/TestTicker.d.ts.map +1 -0
  107. package/dist/timing/TestTicker.js +81 -0
  108. package/dist/timing/TestTicker.js.map +1 -0
  109. package/dist/timing/Ticker.d.ts +14 -0
  110. package/dist/timing/Ticker.d.ts.map +1 -0
  111. package/dist/timing/Ticker.js +2 -0
  112. package/dist/timing/Ticker.js.map +1 -0
  113. package/dist/timing/Timing.d.ts +71 -0
  114. package/dist/timing/Timing.d.ts.map +1 -0
  115. package/dist/timing/Timing.js +276 -0
  116. package/dist/timing/Timing.js.map +1 -0
  117. package/dist/timing/easing.d.ts +158 -0
  118. package/dist/timing/easing.d.ts.map +1 -0
  119. package/dist/timing/easing.js +273 -0
  120. package/dist/timing/easing.js.map +1 -0
  121. package/dist/utils/Events.d.ts +9 -0
  122. package/dist/utils/Events.d.ts.map +1 -0
  123. package/dist/utils/Events.js +35 -0
  124. package/dist/utils/Events.js.map +1 -0
  125. package/dist/utils/internal.d.ts +5 -0
  126. package/dist/utils/internal.d.ts.map +1 -0
  127. package/dist/utils/internal.js +9 -0
  128. package/dist/utils/internal.js.map +1 -0
  129. package/dist/utils/motionpath.d.ts +16 -0
  130. package/dist/utils/motionpath.d.ts.map +1 -0
  131. package/dist/utils/motionpath.js +41 -0
  132. package/dist/utils/motionpath.js.map +1 -0
  133. package/dist/utils/utils.d.ts +44 -0
  134. package/dist/utils/utils.d.ts.map +1 -0
  135. package/dist/utils/utils.js +96 -0
  136. package/dist/utils/utils.js.map +1 -0
  137. package/dist/values/ColorValue.d.ts +12 -0
  138. package/dist/values/ColorValue.d.ts.map +1 -0
  139. package/dist/values/ColorValue.js +133 -0
  140. package/dist/values/ColorValue.js.map +1 -0
  141. package/dist/values/StyleValue.d.ts +41 -0
  142. package/dist/values/StyleValue.d.ts.map +1 -0
  143. package/dist/values/StyleValue.js +159 -0
  144. package/dist/values/StyleValue.js.map +1 -0
  145. package/dist/values/Value.d.ts +13 -0
  146. package/dist/values/Value.d.ts.map +1 -0
  147. package/dist/values/Value.js +38 -0
  148. package/dist/values/Value.js.map +1 -0
  149. package/dist/values/defaultcolors.d.ts +2 -0
  150. package/dist/values/defaultcolors.d.ts.map +1 -0
  151. package/dist/values/defaultcolors.js +149 -0
  152. package/dist/values/defaultcolors.js.map +1 -0
  153. package/package.json +1 -1
@@ -0,0 +1,81 @@
1
+ import { GlobalTargets } from './AnimationFrameTicker.js';
2
+ export default class TestTicker {
3
+ _listeners;
4
+ targets;
5
+ running;
6
+ _previousTick;
7
+ constructor() {
8
+ this._listeners = new Set();
9
+ this.targets = new GlobalTargets();
10
+ this.running = false;
11
+ this._previousTick = null;
12
+ // @ts-ignore
13
+ globalThis.chnobliTicker = this;
14
+ }
15
+ registerTarget(target) {
16
+ return this.targets.register(target);
17
+ }
18
+ unregisterTarget(target) {
19
+ return this.targets.unregister(target);
20
+ }
21
+ applyTargets() {
22
+ return this.targets.apply();
23
+ }
24
+ add(fn) {
25
+ this._listeners.add(fn);
26
+ if (!this.running)
27
+ this.running = true;
28
+ return {
29
+ remove: () => {
30
+ this.remove(fn);
31
+ },
32
+ };
33
+ }
34
+ remove(fn) {
35
+ this._listeners.delete(fn);
36
+ }
37
+ /// max expects a number for how many ms the ticker should run
38
+ ///
39
+ /// runs until the ticker ends this allows to run
40
+ run(max = 3000, step = 1) {
41
+ if (!this.running)
42
+ return true;
43
+ if (this._previousTick === null)
44
+ this.tick(0);
45
+ let i = 0;
46
+ const start = this._previousTick ?? 0;
47
+ for (i = 1; i <= max; i += step) {
48
+ if (!this.tick(start + i))
49
+ return true;
50
+ }
51
+ return false;
52
+ }
53
+ // elapsed in ms
54
+ tick(elapsed) {
55
+ if (!this.running)
56
+ return false;
57
+ if (this._previousTick === null)
58
+ this._previousTick = elapsed;
59
+ let change = elapsed - this._previousTick;
60
+ // lagSmoothing
61
+ if (change > 500) {
62
+ console.log('ticker lagged');
63
+ change = 33;
64
+ }
65
+ this._previousTick = elapsed;
66
+ for (const fn of this._listeners) {
67
+ fn(change, {
68
+ // changes,
69
+ remove: () => this.remove(fn),
70
+ });
71
+ }
72
+ this.targets.apply();
73
+ if (this._listeners.size === 0) {
74
+ this.running = false;
75
+ this._previousTick = null;
76
+ return false;
77
+ }
78
+ return true;
79
+ }
80
+ }
81
+ //# sourceMappingURL=TestTicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestTicker.js","sourceRoot":"","sources":["../../src/timing/TestTicker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Target } from '../target/Target.js';
2
+ export type Callback = (change: number, api: {
3
+ remove: () => void;
4
+ }) => void;
5
+ export default interface Ticker {
6
+ registerTarget(target: any): Target;
7
+ unregisterTarget(target: any): void;
8
+ applyTargets(): void;
9
+ add(fn: Callback): {
10
+ remove: () => void;
11
+ };
12
+ remove(fn: Callback): void;
13
+ }
14
+ //# sourceMappingURL=Ticker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ticker.d.ts","sourceRoot":"","sources":["../../src/timing/Ticker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;IAAE,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,KAAK,IAAI,CAAC;AAE7E,MAAM,CAAC,OAAO,WAAW,MAAM;IAC9B,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC;IACpC,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IACpC,YAAY,IAAI,IAAI,CAAC;IACrB,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG;QAAE,MAAM,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAC1C,MAAM,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Ticker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ticker.js","sourceRoot":"","sources":["../../src/timing/Ticker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,71 @@
1
+ export declare const STATE_BEFORE = 0;
2
+ export declare const STATE_START = 1;
3
+ export declare const STATE_RUNNING = 2;
4
+ export declare const STATE_ENDED = 3;
5
+ export declare const STATE_AFTER = 4;
6
+ export type Position = {
7
+ progress: number;
8
+ };
9
+ export type TimingProps = {
10
+ duration: number;
11
+ ease?: (t: number) => number;
12
+ repeat?: number;
13
+ alternate?: boolean;
14
+ reversed?: boolean;
15
+ };
16
+ /**
17
+ * This class handles everything timing related
18
+ *
19
+ * It manages easing, keeps track of where we are at the moment
20
+ *
21
+ * The most important property is position which gives the calculated position
22
+ *
23
+ *
24
+ * Timing works the same as in after effects
25
+ * if the duration is not at least 1ms the position is always 1 and either
26
+ * STATE_BEFORE or STATE_AFTER
27
+ *
28
+ * if the duration is 1ms seek 0 or 1 will always result in position 1
29
+ * because it is like one frame, so it's an image
30
+ */
31
+ export default class Timing {
32
+ iterDuration: number;
33
+ duration: number;
34
+ ease: (t: number) => number;
35
+ repeat: number;
36
+ alternate: boolean;
37
+ reversed: boolean;
38
+ position: number;
39
+ state: number;
40
+ private _progress;
41
+ constructor(props: TimingProps);
42
+ setDuration(iterDuration: number): void;
43
+ positionMs(): number;
44
+ /**
45
+ * Returns the position in milliseconds
46
+ *
47
+ * If the state is before or after the position might be more/less than
48
+ * required
49
+ */
50
+ positionMsUnbounded(): number;
51
+ isFinite(): boolean;
52
+ advance(change: number): void;
53
+ seekMs(ms: number): void;
54
+ normalizeMs(ms: number): number;
55
+ positionLinear(): number;
56
+ seek(pos: number): void;
57
+ savePosition(): Position;
58
+ restorePosition(pos: Position): void;
59
+ setAlternate(alternate: boolean): void;
60
+ reverse(): void;
61
+ _shouldInvert(): boolean;
62
+ _updateProgress(newProgress: number): void;
63
+ }
64
+ export declare function newTiming(props: Record<string, any>): Timing;
65
+ export declare function parseDuration(dur: any): number;
66
+ export declare function parseEase(ease: any): (t: number) => number;
67
+ export declare function parseRepeat(repeat: any): number;
68
+ export declare function parseDelay(delay: any): number;
69
+ export declare function parseAlternate(alternate: any): boolean;
70
+ export declare function parseReversed(reversed: any): boolean;
71
+ //# sourceMappingURL=Timing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Timing.d.ts","sourceRoot":"","sources":["../../src/timing/Timing.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B,MAAM,MAAM,QAAQ,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IAG1B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IAEjB,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAElB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,OAAO,CAAC,SAAS,CAAS;gBAiBd,KAAK,EAAE,WAAW;IAsB9B,WAAW,CAAC,YAAY,EAAE,MAAM;IAShC,UAAU;IAMV;;;;;OAKG;IACH,mBAAmB;IAUnB,QAAQ;IAIR,OAAO,CAAC,MAAM,EAAE,MAAM;IAWtB,MAAM,CAAC,EAAE,EAAE,MAAM;IAWjB,WAAW,CAAC,EAAE,EAAE,MAAM;IAetB,cAAc,IAAI,MAAM;IASxB,IAAI,CAAC,GAAG,EAAE,MAAM;IAShB,YAAY,IAAI,QAAQ;IAMxB,eAAe,CAAC,GAAG,EAAE,QAAQ;IAI7B,YAAY,CAAC,SAAS,EAAE,OAAO;IAQ/B,OAAO;IAwBP,aAAa;IAIb,eAAe,CAAC,WAAW,EAAE,MAAM;CAiDnC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAU5D;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAM9C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAK1D;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAY/C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAK7C;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAKtD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAKpD"}
@@ -0,0 +1,276 @@
1
+ import { takeProp } from '../utils/internal.js';
2
+ export const STATE_BEFORE = 0;
3
+ /// start only occurs if the current position is exactly 0 or 1 if reversed
4
+ export const STATE_START = 1;
5
+ export const STATE_RUNNING = 2;
6
+ /// ended only occurs if the current position is exactly 1 or 0 if reversed
7
+ export const STATE_ENDED = 3;
8
+ export const STATE_AFTER = 4;
9
+ /**
10
+ * This class handles everything timing related
11
+ *
12
+ * It manages easing, keeps track of where we are at the moment
13
+ *
14
+ * The most important property is position which gives the calculated position
15
+ *
16
+ *
17
+ * Timing works the same as in after effects
18
+ * if the duration is not at least 1ms the position is always 1 and either
19
+ * STATE_BEFORE or STATE_AFTER
20
+ *
21
+ * if the duration is 1ms seek 0 or 1 will always result in position 1
22
+ * because it is like one frame, so it's an image
23
+ */
24
+ export default class Timing {
25
+ // removes the relevant properties from the props
26
+ iterDuration;
27
+ duration;
28
+ ease;
29
+ repeat;
30
+ alternate;
31
+ reversed;
32
+ position;
33
+ state;
34
+ _progress;
35
+ /*
36
+ seeking
37
+ if repeat is infinite
38
+ seek will only control the current iteration
39
+ if repeat is finite
40
+ seek will control the entire time
41
+
42
+
43
+ {
44
+ duration: in ms
45
+ ease: easeFunction
46
+ repeat: -1 - x,
47
+ alternate
48
+ }
49
+ */
50
+ constructor(props) {
51
+ // these vars are only readonly
52
+ // use functions to update them
53
+ this.iterDuration = props.duration;
54
+ this.duration = props.duration;
55
+ this.ease = props.ease ?? (t => t);
56
+ this.repeat = props.repeat ?? 0;
57
+ this.alternate = props.alternate ?? true;
58
+ this.reversed = props.reversed ?? false;
59
+ this.position = this.duration > 0 ? 0 : 1;
60
+ this.state = STATE_BEFORE;
61
+ // progress does not take alternation into account and has no easing
62
+ // this always increments up
63
+ this._progress = 0;
64
+ // scrub
65
+ }
66
+ setDuration(iterDuration) {
67
+ this.iterDuration = iterDuration;
68
+ this.duration = this.iterDuration;
69
+ if (this.repeat > -1) {
70
+ this.duration = (this.repeat + 1) * this.iterDuration;
71
+ }
72
+ }
73
+ positionMs() {
74
+ // todo should this not return pos * duration?
75
+ return this.position * this.iterDuration;
76
+ }
77
+ // todo find a better name
78
+ /**
79
+ * Returns the position in milliseconds
80
+ *
81
+ * If the state is before or after the position might be more/less than
82
+ * required
83
+ */
84
+ positionMsUnbounded() {
85
+ const outOfBounds = this.state <= STATE_BEFORE || this.state >= STATE_AFTER;
86
+ if (!outOfBounds)
87
+ return this.position * this.iterDuration;
88
+ if (this.position === 0)
89
+ return -1;
90
+ return this.position * this.iterDuration + 1;
91
+ }
92
+ isFinite() {
93
+ return this.repeat > -1;
94
+ }
95
+ advance(change) {
96
+ if (this.state >= STATE_AFTER)
97
+ return;
98
+ if (this.iterDuration <= 0) {
99
+ this._updateProgress(1);
100
+ return;
101
+ }
102
+ this._updateProgress(this._progress + change / this.iterDuration);
103
+ }
104
+ seekMs(ms) {
105
+ if (this.iterDuration <= 0) {
106
+ this._updateProgress(Math.sign(ms));
107
+ return;
108
+ }
109
+ this._updateProgress(ms / this.iterDuration);
110
+ // return this.seek(this.normalizeMs(ms));
111
+ }
112
+ normalizeMs(ms) {
113
+ if (this.iterDuration <= 0) {
114
+ return Math.sign(ms);
115
+ }
116
+ const pos = ms / this.iterDuration;
117
+ if (this.isFinite()) {
118
+ return pos / (this.repeat + 1);
119
+ }
120
+ return pos;
121
+ }
122
+ // todo how to call this
123
+ positionLinear() {
124
+ if (this.isFinite()) {
125
+ return this._progress / (this.repeat + 1);
126
+ }
127
+ return this._progress;
128
+ }
129
+ // should be between 0-1 if outside might change the state
130
+ seek(pos) {
131
+ if (this.repeat <= 0) {
132
+ this._updateProgress(pos);
133
+ }
134
+ else {
135
+ // finite
136
+ this._updateProgress(pos * (this.repeat + 1));
137
+ }
138
+ }
139
+ savePosition() {
140
+ return {
141
+ progress: this._progress,
142
+ };
143
+ }
144
+ restorePosition(pos) {
145
+ this._updateProgress(pos.progress);
146
+ }
147
+ setAlternate(alternate) {
148
+ if (this.alternate == alternate)
149
+ return;
150
+ // make sure the reversed is updated according to the current inversion
151
+ this.reversed = alternate == this._shouldInvert();
152
+ this.alternate = alternate;
153
+ }
154
+ reverse() {
155
+ this.reversed = !this.reversed;
156
+ const wrapAround = (p) => {
157
+ if (this.repeat > -1)
158
+ return p % (this.repeat + 1);
159
+ return p;
160
+ };
161
+ let p;
162
+ if (this.state <= STATE_BEFORE) {
163
+ p = 2;
164
+ }
165
+ else if (this.state >= STATE_AFTER) {
166
+ p = -1;
167
+ // check if the values should be reversed
168
+ }
169
+ else if (this.reversed != this._shouldInvert()) {
170
+ let decimal = 1 - (this._progress % 1);
171
+ p = wrapAround(Math.floor(this._progress) + decimal);
172
+ }
173
+ else {
174
+ p = wrapAround(this._progress);
175
+ }
176
+ this._updateProgress(p);
177
+ }
178
+ _shouldInvert() {
179
+ return this.alternate && Math.floor(this._progress) % 2 === 1;
180
+ }
181
+ _updateProgress(newProgress) {
182
+ // if duration is zero the position is always 1
183
+ // and the state is either BEFORE or AFTER
184
+ if (this.iterDuration <= 0) {
185
+ newProgress = Math.sign(newProgress);
186
+ this._progress = newProgress;
187
+ this.position = 1;
188
+ if (newProgress < 0)
189
+ this.state = STATE_BEFORE;
190
+ else
191
+ this.state = STATE_AFTER;
192
+ return;
193
+ }
194
+ this._progress = newProgress;
195
+ // since infinite repeat can never end let's ignore it
196
+ if (this.repeat > -1) {
197
+ const end = this.repeat + 1;
198
+ if (this._progress > end) {
199
+ this._progress = end;
200
+ this.state = STATE_AFTER;
201
+ }
202
+ else if (this._progress === end) {
203
+ this.state = STATE_ENDED;
204
+ }
205
+ else {
206
+ this.state = STATE_RUNNING;
207
+ }
208
+ }
209
+ else {
210
+ this.state = STATE_RUNNING;
211
+ }
212
+ // override state if not running
213
+ if (this._progress < 0) {
214
+ this._progress = 0;
215
+ this.state = STATE_BEFORE;
216
+ }
217
+ else if (this._progress === 0) {
218
+ this.state = STATE_START;
219
+ }
220
+ // now calculate the position
221
+ this.position = this._progress % 1;
222
+ // calc if we are in a reversed iteration or not
223
+ // and we are we should invert the position
224
+ if (this.reversed != this._shouldInvert())
225
+ this.position = 1 - this.position;
226
+ this.position = this.ease(this.position);
227
+ }
228
+ }
229
+ export function newTiming(props) {
230
+ const nProps = {
231
+ duration: parseDuration(takeProp(props, 'duration', 1000)),
232
+ ease: parseEase(takeProp(props, 'ease', null)),
233
+ repeat: parseRepeat(takeProp(props, 'repeat', false)),
234
+ alternate: parseAlternate(takeProp(props, 'alternate', true)),
235
+ };
236
+ // this._delay = parseDelay(takeProp(props, 'delay', 0));
237
+ return new Timing(nProps);
238
+ }
239
+ export function parseDuration(dur) {
240
+ if (typeof dur !== 'number')
241
+ throw new Error('duration is not a number');
242
+ dur = Math.round(dur);
243
+ return Math.max(dur, 0);
244
+ }
245
+ export function parseEase(ease) {
246
+ if (ease !== null && typeof ease !== 'function')
247
+ throw new Error('ease needs to be null or a function');
248
+ return ease;
249
+ }
250
+ export function parseRepeat(repeat) {
251
+ if (repeat !== true &&
252
+ repeat !== false &&
253
+ (typeof repeat !== 'number' || repeat < 0))
254
+ throw new Error('repeat needs to be true|false|0+');
255
+ if (repeat === true)
256
+ repeat = -1;
257
+ else if (repeat === false)
258
+ repeat = 0;
259
+ return repeat;
260
+ }
261
+ export function parseDelay(delay) {
262
+ if (typeof delay !== 'number' || delay < 0)
263
+ throw new Error('delay needs to be 0+');
264
+ return delay;
265
+ }
266
+ export function parseAlternate(alternate) {
267
+ if (alternate !== true && alternate !== false)
268
+ throw new Error('alternate needs to be true|false');
269
+ return alternate;
270
+ }
271
+ export function parseReversed(reversed) {
272
+ if (reversed !== true && reversed !== false)
273
+ throw new Error('reversed needs to be true|false');
274
+ return reversed;
275
+ }
276
+ //# sourceMappingURL=Timing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Timing.js","sourceRoot":"","sources":["../../src/timing/Timing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,158 @@
1
+ import bezierEasing from 'bezier-easing';
2
+ /**
3
+ * @param {number} t
4
+ * @returns {number}
5
+ */
6
+ export declare function linear(t: number): number;
7
+ /**
8
+ * @param {number} t
9
+ * @returns {number}
10
+ */
11
+ export declare function backInOut(t: number): number;
12
+ /**
13
+ * @param {number} t
14
+ * @returns {number}
15
+ */
16
+ export declare function backIn(t: number): number;
17
+ /**
18
+ * @param {number} t
19
+ * @returns {number}
20
+ */
21
+ export declare function backOut(t: number): number;
22
+ /**
23
+ * @param {number} t
24
+ * @returns {number}
25
+ */
26
+ export declare function bounceOut(t: number): number;
27
+ /**
28
+ * @param {number} t
29
+ * @returns {number}
30
+ */
31
+ export declare function bounceInOut(t: number): number;
32
+ /**
33
+ * @param {number} t
34
+ * @returns {number}
35
+ */
36
+ export declare function bounceIn(t: number): number;
37
+ /**
38
+ * @param {number} t
39
+ * @returns {number}
40
+ */
41
+ export declare function circInOut(t: number): number;
42
+ /**
43
+ * @param {number} t
44
+ * @returns {number}
45
+ */
46
+ export declare function circIn(t: number): number;
47
+ /**
48
+ * @param {number} t
49
+ * @returns {number}
50
+ */
51
+ export declare function circOut(t: number): number;
52
+ /**
53
+ * @param {number} t
54
+ * @returns {number}
55
+ */
56
+ export declare function cubicInOut(t: number): number;
57
+ /**
58
+ * @param {number} t
59
+ * @returns {number}
60
+ */
61
+ export declare function cubicIn(t: number): number;
62
+ /**
63
+ * @param {number} t
64
+ * @returns {number}
65
+ */
66
+ export declare function cubicOut(t: number): number;
67
+ /**
68
+ * @param {number} t
69
+ * @returns {number}
70
+ */
71
+ export declare function elasticInOut(t: number): number;
72
+ /**
73
+ * @param {number} t
74
+ * @returns {number}
75
+ */
76
+ export declare function elasticIn(t: number): number;
77
+ /**
78
+ * @param {number} t
79
+ * @returns {number}
80
+ */
81
+ export declare function elasticOut(t: number): number;
82
+ /**
83
+ * @param {number} t
84
+ * @returns {number}
85
+ */
86
+ export declare function expoInOut(t: number): number;
87
+ /**
88
+ * @param {number} t
89
+ * @returns {number}
90
+ */
91
+ export declare function expoIn(t: number): number;
92
+ /**
93
+ * @param {number} t
94
+ * @returns {number}
95
+ */
96
+ export declare function expoOut(t: number): number;
97
+ /**
98
+ * @param {number} t
99
+ * @returns {number}
100
+ */
101
+ export declare function quadInOut(t: number): number;
102
+ /**
103
+ * @param {number} t
104
+ * @returns {number}
105
+ */
106
+ export declare function quadIn(t: number): number;
107
+ /**
108
+ * @param {number} t
109
+ * @returns {number}
110
+ */
111
+ export declare function quadOut(t: number): number;
112
+ /**
113
+ * @param {number} t
114
+ * @returns {number}
115
+ */
116
+ export declare function quartInOut(t: number): number;
117
+ /**
118
+ * @param {number} t
119
+ * @returns {number}
120
+ */
121
+ export declare function quartIn(t: number): number;
122
+ /**
123
+ * @param {number} t
124
+ * @returns {number}
125
+ */
126
+ export declare function quartOut(t: number): number;
127
+ /**
128
+ * @param {number} t
129
+ * @returns {number}
130
+ */
131
+ export declare function quintInOut(t: number): number;
132
+ /**
133
+ * @param {number} t
134
+ * @returns {number}
135
+ */
136
+ export declare function quintIn(t: number): number;
137
+ /**
138
+ * @param {number} t
139
+ * @returns {number}
140
+ */
141
+ export declare function quintOut(t: number): number;
142
+ /**
143
+ * @param {number} t
144
+ * @returns {number}
145
+ */
146
+ export declare function sineInOut(t: number): number;
147
+ /**
148
+ * @param {number} t
149
+ * @returns {number}
150
+ */
151
+ export declare function sineIn(t: number): number;
152
+ /**
153
+ * @param {number} t
154
+ * @returns {number}
155
+ */
156
+ export declare function sineOut(t: number): number;
157
+ export declare function cubicBezier(x1: number, y1: number, x2: number, y2: number): bezierEasing.EasingFunction;
158
+ //# sourceMappingURL=easing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"easing.d.ts","sourceRoot":"","sources":["../../src/timing/easing.ts"],"names":[],"mappings":"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"}