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.
- package/.prettierignore +4 -0
- package/.prettierrc +6 -0
- package/.vscode/settings.json +4 -0
- package/auto-docs/easing.js.html +342 -0
- package/auto-docs/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/auto-docs/fonts/OpenSans-Bold-webfont.svg +1830 -0
- package/auto-docs/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/auto-docs/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/auto-docs/fonts/OpenSans-BoldItalic-webfont.svg +1830 -0
- package/auto-docs/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/auto-docs/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/auto-docs/fonts/OpenSans-Italic-webfont.svg +1830 -0
- package/auto-docs/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/auto-docs/fonts/OpenSans-Light-webfont.eot +0 -0
- package/auto-docs/fonts/OpenSans-Light-webfont.svg +1831 -0
- package/auto-docs/fonts/OpenSans-Light-webfont.woff +0 -0
- package/auto-docs/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/auto-docs/fonts/OpenSans-LightItalic-webfont.svg +1835 -0
- package/auto-docs/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/auto-docs/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/auto-docs/fonts/OpenSans-Regular-webfont.svg +1831 -0
- package/auto-docs/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/auto-docs/global.html +4810 -0
- package/auto-docs/index.html +65 -0
- package/auto-docs/scripts/linenumber.js +25 -0
- package/auto-docs/scripts/prettify/Apache-License-2.0.txt +202 -0
- package/auto-docs/scripts/prettify/lang-css.js +2 -0
- package/auto-docs/scripts/prettify/prettify.js +28 -0
- package/auto-docs/styles/jsdoc-default.css +358 -0
- package/auto-docs/styles/prettify-jsdoc.css +111 -0
- package/auto-docs/styles/prettify-tomorrow.css +132 -0
- package/dist/animation/Animation.d.ts +36 -0
- package/dist/animation/Animation.d.ts.map +1 -0
- package/dist/animation/Animation.js +230 -0
- package/dist/animation/Animation.js.map +1 -0
- package/dist/animation/animation.d.ts +36 -0
- package/dist/animation/animation.d.ts.map +1 -0
- package/dist/animation/animation.js +230 -0
- package/dist/animation/animation.js.map +1 -0
- package/dist/animation/public.d.ts +55 -0
- package/dist/animation/public.d.ts.map +1 -0
- package/dist/animation/public.js +104 -0
- package/dist/animation/public.js.map +1 -0
- package/dist/chnobli.d.ts +15 -0
- package/dist/chnobli.d.ts.map +1 -0
- package/dist/chnobli.js +63 -0
- package/dist/chnobli.js.map +1 -0
- package/dist/property/BasicProperty.d.ts +38 -0
- package/dist/property/BasicProperty.d.ts.map +1 -0
- package/dist/property/BasicProperty.js +72 -0
- package/dist/property/BasicProperty.js.map +1 -0
- package/dist/property/ClassProperty.d.ts +32 -0
- package/dist/property/ClassProperty.d.ts.map +1 -0
- package/dist/property/ClassProperty.js +108 -0
- package/dist/property/ClassProperty.js.map +1 -0
- package/dist/property/Property.d.ts +13 -0
- package/dist/property/Property.d.ts.map +1 -0
- package/dist/property/Property.js +20 -0
- package/dist/property/Property.js.map +1 -0
- package/dist/property/StyleProperty.d.ts +25 -0
- package/dist/property/StyleProperty.d.ts.map +1 -0
- package/dist/property/StyleProperty.js +221 -0
- package/dist/property/StyleProperty.js.map +1 -0
- package/dist/property/TransformProperty.d.ts +15 -0
- package/dist/property/TransformProperty.d.ts.map +1 -0
- package/dist/property/TransformProperty.js +43 -0
- package/dist/property/TransformProperty.js.map +1 -0
- package/dist/property/TransformXYProperty.d.ts +28 -0
- package/dist/property/TransformXYProperty.d.ts.map +1 -0
- package/dist/property/TransformXYProperty.js +65 -0
- package/dist/property/TransformXYProperty.js.map +1 -0
- package/dist/responsive/ResponsiveEvent.d.ts +17 -0
- package/dist/responsive/ResponsiveEvent.d.ts.map +1 -0
- package/dist/responsive/ResponsiveEvent.js +45 -0
- package/dist/responsive/ResponsiveEvent.js.map +1 -0
- package/dist/responsive/TestEvent.d.ts +11 -0
- package/dist/responsive/TestEvent.d.ts.map +1 -0
- package/dist/responsive/TestEvent.js +26 -0
- package/dist/responsive/TestEvent.js.map +1 -0
- package/dist/responsive/event.d.ts +10 -0
- package/dist/responsive/event.d.ts.map +1 -0
- package/dist/responsive/event.js +39 -0
- package/dist/responsive/event.js.map +1 -0
- package/dist/scroll/Scroll.d.ts +27 -0
- package/dist/scroll/Scroll.d.ts.map +1 -0
- package/dist/scroll/Scroll.js +132 -0
- package/dist/scroll/Scroll.js.map +1 -0
- package/dist/scroll/ScrollEvent.d.ts +17 -0
- package/dist/scroll/ScrollEvent.d.ts.map +1 -0
- package/dist/scroll/ScrollEvent.js +39 -0
- package/dist/scroll/ScrollEvent.js.map +1 -0
- package/dist/scroll/public.d.ts +7 -0
- package/dist/scroll/public.d.ts.map +1 -0
- package/dist/scroll/public.js +17 -0
- package/dist/scroll/public.js.map +1 -0
- package/dist/stagger/stagger.d.ts +13 -0
- package/dist/stagger/stagger.d.ts.map +1 -0
- package/dist/stagger/stagger.js +35 -0
- package/dist/stagger/stagger.js.map +1 -0
- package/dist/target/BaseTarget.old.d.ts +33 -0
- package/dist/target/BaseTarget.old.d.ts.map +1 -0
- package/dist/target/BaseTarget.old.js +73 -0
- package/dist/target/BaseTarget.old.js.map +1 -0
- package/dist/target/DomTarget.d.ts +41 -0
- package/dist/target/DomTarget.d.ts.map +1 -0
- package/dist/target/DomTarget.js +230 -0
- package/dist/target/DomTarget.js.map +1 -0
- package/dist/target/Target.d.ts +22 -0
- package/dist/target/Target.d.ts.map +1 -0
- package/dist/target/Target.js +21 -0
- package/dist/target/Target.js.map +1 -0
- package/dist/target/TestDomNode.d.ts +14 -0
- package/dist/target/TestDomNode.d.ts.map +1 -0
- package/dist/target/TestDomNode.js +55 -0
- package/dist/target/TestDomNode.js.map +1 -0
- package/dist/timeline/Nested.d.ts +30 -0
- package/dist/timeline/Nested.d.ts.map +1 -0
- package/dist/timeline/Nested.js +51 -0
- package/dist/timeline/Nested.js.map +1 -0
- package/dist/timeline/TimeLine.d.ts +32 -0
- package/dist/timeline/TimeLine.d.ts.map +1 -0
- package/dist/timeline/TimeLine.js +288 -0
- package/dist/timeline/TimeLine.js.map +1 -0
- package/dist/timeline/public.d.ts +120 -0
- package/dist/timeline/public.d.ts.map +1 -0
- package/dist/timeline/public.js +301 -0
- package/dist/timeline/public.js.map +1 -0
- package/dist/timing/AnimationFrameTicker.d.ts +32 -0
- package/dist/timing/AnimationFrameTicker.d.ts.map +1 -0
- package/dist/timing/AnimationFrameTicker.js +134 -0
- package/dist/timing/AnimationFrameTicker.js.map +1 -0
- package/dist/timing/Ease.d.ts +6 -0
- package/dist/timing/Ease.d.ts.map +1 -0
- package/dist/timing/Ease.js +15 -0
- package/dist/timing/Ease.js.map +1 -0
- package/dist/timing/TestTicker.d.ts +19 -0
- package/dist/timing/TestTicker.d.ts.map +1 -0
- package/dist/timing/TestTicker.js +81 -0
- package/dist/timing/TestTicker.js.map +1 -0
- package/dist/timing/Ticker.d.ts +14 -0
- package/dist/timing/Ticker.d.ts.map +1 -0
- package/dist/timing/Ticker.js +2 -0
- package/dist/timing/Ticker.js.map +1 -0
- package/dist/timing/Timing.d.ts +62 -0
- package/dist/timing/Timing.d.ts.map +1 -0
- package/dist/timing/Timing.js +257 -0
- package/dist/timing/Timing.js.map +1 -0
- package/dist/timing/easing.d.ts +158 -0
- package/dist/timing/easing.d.ts.map +1 -0
- package/dist/timing/easing.js +273 -0
- package/dist/timing/easing.js.map +1 -0
- package/dist/utils/Events.d.ts +9 -0
- package/dist/utils/Events.d.ts.map +1 -0
- package/dist/utils/Events.js +35 -0
- package/dist/utils/Events.js.map +1 -0
- package/dist/utils/internal.d.ts +2 -0
- package/dist/utils/internal.d.ts.map +1 -0
- package/dist/utils/internal.js +6 -0
- package/dist/utils/internal.js.map +1 -0
- package/dist/utils/motionpath.d.ts +16 -0
- package/dist/utils/motionpath.d.ts.map +1 -0
- package/dist/utils/motionpath.js +41 -0
- package/dist/utils/motionpath.js.map +1 -0
- package/dist/utils/utils.d.ts +43 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +93 -0
- package/dist/utils/utils.js.map +1 -0
- package/dist/values/ColorValue.d.ts +12 -0
- package/dist/values/ColorValue.d.ts.map +1 -0
- package/dist/values/ColorValue.js +133 -0
- package/dist/values/ColorValue.js.map +1 -0
- package/dist/values/StyleValue.d.ts +40 -0
- package/dist/values/StyleValue.d.ts.map +1 -0
- package/dist/values/StyleValue.js +149 -0
- package/dist/values/StyleValue.js.map +1 -0
- package/dist/values/Value.d.ts +13 -0
- package/dist/values/Value.d.ts.map +1 -0
- package/dist/values/Value.js +38 -0
- package/dist/values/Value.js.map +1 -0
- package/dist/values/defaultcolors.d.ts +2 -0
- package/dist/values/defaultcolors.d.ts.map +1 -0
- package/dist/values/defaultcolors.js +149 -0
- package/dist/values/defaultcolors.js.map +1 -0
- package/package.json +11 -7
- package/src/animation/{animation.js → Animation.ts} +56 -54
- package/src/animation/{public.js → public.ts} +23 -18
- package/src/{chnobli.js → chnobli.ts} +11 -12
- package/src/property/BasicProperty.ts +91 -0
- package/src/property/ClassProperty.ts +132 -0
- package/src/property/Property.ts +33 -0
- package/src/property/StyleProperty.ts +273 -0
- package/src/property/TransformProperty.ts +56 -0
- package/src/property/TransformXYProperty.ts +88 -0
- package/src/responsive/ResponsiveEvent.ts +60 -0
- package/src/responsive/{testevent.js → TestEvent.ts} +12 -10
- package/src/scroll/{scroll.js → Scroll.ts} +53 -35
- package/src/scroll/ScrollEvent.ts +53 -0
- package/src/scroll/public.ts +20 -0
- package/src/stagger/stagger.ts +45 -0
- package/src/target/{basetarget.js → BaseTarget.old.ts} +25 -26
- package/src/target/DomTarget.ts +281 -0
- package/src/target/Target.ts +48 -0
- package/src/target/{testdomnode.js → TestDomNode.ts} +18 -15
- package/src/tests/{properties.test.js → properties.test.ts} +54 -49
- package/src/tests/timeline.test.ts +290 -0
- package/src/tests/{timing.test.js → timing.test.ts} +25 -22
- package/src/tests/{usecases.test.js → usecases.test.ts} +13 -10
- package/src/tests/{values.test.js → values.test.ts} +21 -21
- package/src/timeline/Nested.ts +67 -0
- package/src/timeline/{timeline.js → TimeLine.ts} +126 -56
- package/src/timeline/{public.js → public.ts} +112 -73
- package/src/timing/{ticker.js → AnimationFrameTicker.ts} +36 -21
- package/src/timing/{ease.js → Ease.ts} +6 -5
- package/src/timing/{testticker.js → TestTicker.ts} +27 -24
- package/src/timing/Ticker.ts +11 -0
- package/src/timing/{timing.js → Timing.ts} +72 -63
- package/src/timing/{easing.js → easing.ts} +52 -43
- package/src/utils/{events.js → Events.ts} +12 -11
- package/src/utils/internal.ts +10 -0
- package/src/utils/{motionpath.js → motionpath.ts} +36 -13
- package/src/utils/utils.ts +110 -0
- package/src/values/{colorvalue.js → ColorValue.ts} +46 -47
- package/src/values/StyleValue.ts +186 -0
- package/src/values/{value.js → Value.ts} +14 -12
- package/src/values/{defaultcolors.js → defaultcolors.ts} +2 -2
- package/tsconfig.build.json +19 -0
- package/tsconfig.json +17 -108
- package/src/animation/property.js +0 -556
- package/src/responsive/event.js +0 -46
- package/src/scroll/event.js +0 -41
- package/src/scroll/public.js +0 -17
- package/src/stagger/stagger.js +0 -42
- package/src/target/domtarget.js +0 -266
- package/src/target/target.js +0 -22
- package/src/tests/timeline.test.js +0 -234
- package/src/utils/internal.js +0 -7
- package/src/utils/utils.js +0 -75
- 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"}
|