chnobli 0.1.6 → 0.1.8
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/.editorconfig +11 -0
- package/.github/workflows/ci.yaml +1 -1
- package/dist/animation/Animation.d.ts +4 -4
- package/dist/animation/Animation.d.ts.map +1 -1
- package/dist/animation/Animation.js +2 -2
- package/dist/animation/Animation.js.map +1 -1
- package/dist/animation/public.d.ts +4 -1
- package/dist/animation/public.d.ts.map +1 -1
- package/dist/animation/public.js +6 -3
- package/dist/animation/public.js.map +1 -1
- package/dist/chnobli.d.ts +5 -4
- package/dist/chnobli.d.ts.map +1 -1
- package/dist/chnobli.js +4 -4
- package/dist/chnobli.js.map +1 -1
- package/dist/property/BasicProperty.d.ts +3 -3
- package/dist/property/BasicProperty.d.ts.map +1 -1
- package/dist/property/BasicProperty.js +1 -1
- package/dist/property/BasicProperty.js.map +1 -1
- package/dist/property/ClassProperty.d.ts +2 -2
- package/dist/property/ClassProperty.d.ts.map +1 -1
- package/dist/property/Property.d.ts +1 -1
- package/dist/property/Property.d.ts.map +1 -1
- package/dist/property/Property.js +4 -4
- package/dist/property/Property.js.map +1 -1
- package/dist/property/StyleProperty.d.ts +3 -3
- package/dist/property/StyleProperty.d.ts.map +1 -1
- package/dist/property/StyleProperty.js +3 -3
- package/dist/property/StyleProperty.js.map +1 -1
- package/dist/property/TransformProperty.d.ts +4 -4
- package/dist/property/TransformProperty.d.ts.map +1 -1
- package/dist/property/TransformProperty.js +2 -2
- package/dist/property/TransformProperty.js.map +1 -1
- package/dist/property/TransformXYProperty.d.ts +3 -3
- package/dist/property/TransformXYProperty.d.ts.map +1 -1
- package/dist/property/TransformXYProperty.js +1 -1
- package/dist/property/TransformXYProperty.js.map +1 -1
- package/dist/responsive/TestEvent.d.ts +1 -1
- package/dist/responsive/TestEvent.d.ts.map +1 -1
- package/dist/scroll/Scroll.d.ts +1 -1
- package/dist/scroll/Scroll.d.ts.map +1 -1
- package/dist/scroll/Scroll.js +3 -3
- package/dist/scroll/Scroll.js.map +1 -1
- package/dist/scroll/public.d.ts +1 -1
- package/dist/scroll/public.d.ts.map +1 -1
- package/dist/scroll/public.js +1 -1
- package/dist/scroll/public.js.map +1 -1
- package/dist/stagger/stagger.d.ts +6 -0
- package/dist/stagger/stagger.d.ts.map +1 -1
- package/dist/stagger/stagger.js +6 -0
- package/dist/stagger/stagger.js.map +1 -1
- package/dist/target/BaseTarget.old.d.ts +2 -2
- package/dist/target/BaseTarget.old.d.ts.map +1 -1
- package/dist/target/BaseTarget.old.js +1 -1
- package/dist/target/BaseTarget.old.js.map +1 -1
- package/dist/target/DomTarget.d.ts +3 -3
- package/dist/target/DomTarget.d.ts.map +1 -1
- package/dist/target/DomTarget.js +2 -2
- package/dist/target/DomTarget.js.map +1 -1
- package/dist/target/Target.d.ts +2 -2
- package/dist/target/Target.d.ts.map +1 -1
- package/dist/target/Target.js +1 -1
- package/dist/target/Target.js.map +1 -1
- package/dist/timeline/Nested.d.ts +1 -1
- package/dist/timeline/Nested.d.ts.map +1 -1
- package/dist/timeline/Nested.js +3 -3
- package/dist/timeline/Nested.js.map +1 -1
- package/dist/timeline/TimeLine.d.ts +2 -2
- package/dist/timeline/TimeLine.d.ts.map +1 -1
- package/dist/timeline/TimeLine.js +4 -4
- package/dist/timeline/TimeLine.js.map +1 -1
- package/dist/timeline/public.d.ts +18 -3
- package/dist/timeline/public.d.ts.map +1 -1
- package/dist/timeline/public.js +22 -7
- package/dist/timeline/public.js.map +1 -1
- package/dist/timing/AnimationFrameTicker.d.ts +1 -1
- package/dist/timing/AnimationFrameTicker.d.ts.map +1 -1
- package/dist/timing/AnimationFrameTicker.js +2 -2
- package/dist/timing/AnimationFrameTicker.js.map +1 -1
- package/dist/timing/TestTicker.d.ts +2 -2
- package/dist/timing/TestTicker.d.ts.map +1 -1
- package/dist/timing/TestTicker.js +1 -1
- package/dist/timing/TestTicker.js.map +1 -1
- package/dist/timing/Ticker.d.ts +1 -1
- package/dist/timing/Ticker.d.ts.map +1 -1
- package/dist/timing/Timing.js +1 -1
- package/dist/timing/Timing.js.map +1 -1
- package/dist/utils/utils.d.ts +1 -1
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +1 -1
- package/dist/utils/utils.js.map +1 -1
- package/dist/values/ColorValue.js +1 -1
- package/dist/values/ColorValue.js.map +1 -1
- package/dist/values/StyleValue.d.ts +2 -2
- package/dist/values/StyleValue.d.ts.map +1 -1
- package/dist/values/StyleValue.js +2 -2
- package/dist/values/StyleValue.js.map +1 -1
- package/jsr.json +9 -0
- package/package.json +18 -9
- package/src/animation/Animation.ts +9 -5
- package/src/animation/public.ts +9 -6
- package/src/chnobli.ts +13 -8
- package/src/property/BasicProperty.ts +3 -3
- package/src/property/ClassProperty.ts +2 -2
- package/src/property/Property.ts +5 -5
- package/src/property/StyleProperty.ts +5 -5
- package/src/property/TransformProperty.ts +4 -4
- package/src/property/TransformXYProperty.ts +3 -3
- package/src/responsive/TestEvent.ts +1 -1
- package/src/scroll/Scroll.ts +4 -4
- package/src/scroll/public.ts +2 -2
- package/src/stagger/stagger.ts +7 -1
- package/src/target/BaseTarget.old.ts +2 -2
- package/src/target/DomTarget.ts +3 -3
- package/src/target/Target.ts +3 -3
- package/src/tests/properties.test.ts +4 -4
- package/src/tests/timeline.test.ts +3 -3
- package/src/tests/timing.test.ts +1 -1
- package/src/tests/usecases.test.ts +5 -5
- package/src/tests/values.test.ts +4 -4
- package/src/timeline/Nested.ts +7 -7
- package/src/timeline/TimeLine.ts +8 -8
- package/src/timeline/public.ts +35 -16
- package/src/timing/AnimationFrameTicker.ts +3 -3
- package/src/timing/TestTicker.ts +2 -2
- package/src/timing/Ticker.ts +1 -1
- package/src/timing/Timing.ts +1 -1
- package/src/utils/utils.ts +2 -2
- package/src/values/ColorValue.ts +1 -1
- package/src/values/StyleValue.ts +2 -2
- package/tsconfig.build.json +2 -2
- package/tsconfig.json +2 -2
- package/dist/animation/animation.d.ts +0 -36
- package/dist/animation/animation.d.ts.map +0 -1
- package/dist/animation/animation.js +0 -230
- package/dist/animation/animation.js.map +0 -1
- package/dist/responsive/event.d.ts +0 -10
- package/dist/responsive/event.d.ts.map +0 -1
- package/dist/responsive/event.js +0 -39
- package/dist/responsive/event.js.map +0 -1
package/src/timeline/public.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { takeProp } from '../utils/internal';
|
|
2
|
-
import Timeline from './TimeLine';
|
|
3
|
-
import { STATE_ENDED } from '../timing/Timing';
|
|
4
|
-
import { callStagger } from '../stagger/stagger';
|
|
5
|
-
import Events from '../utils/Events';
|
|
6
|
-
import ResponsiveEvent from '../responsive/ResponsiveEvent';
|
|
7
|
-
import NestedTimeline from './Nested';
|
|
1
|
+
import { takeProp } from '../utils/internal.js';
|
|
2
|
+
import Timeline from './TimeLine.js';
|
|
3
|
+
import { STATE_ENDED } from '../timing/Timing.js';
|
|
4
|
+
import { callStagger } from '../stagger/stagger.js';
|
|
5
|
+
import Events from '../utils/Events.js';
|
|
6
|
+
import ResponsiveEvent from '../responsive/ResponsiveEvent.js';
|
|
7
|
+
import NestedTimeline from './Nested.js';
|
|
8
8
|
|
|
9
9
|
const STATE_PAUSED = 0;
|
|
10
10
|
const STATE_RENDER_ONCE = 1;
|
|
@@ -15,9 +15,15 @@ export type Responsive = {
|
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
export default class PublicTimeline {
|
|
18
|
+
/**
|
|
19
|
+
* @ignore
|
|
20
|
+
*/
|
|
18
21
|
_defaults: Record<string, any>;
|
|
19
22
|
private _responsive: boolean;
|
|
20
23
|
|
|
24
|
+
/**
|
|
25
|
+
* @ignore
|
|
26
|
+
*/
|
|
21
27
|
_inner: Timeline;
|
|
22
28
|
|
|
23
29
|
private _events: Events;
|
|
@@ -66,7 +72,7 @@ export default class PublicTimeline {
|
|
|
66
72
|
* Set's properties
|
|
67
73
|
* offset can be staggered, a number, a label or a string `+=10`
|
|
68
74
|
*/
|
|
69
|
-
set(targets: any, props: Record<string, any>, offset = null) {
|
|
75
|
+
set(targets: any, props: Record<string, any>, offset = null): this {
|
|
70
76
|
// for the moment let's just add as usual but set the duration to 0
|
|
71
77
|
return this.add(targets, { ...props, duration: 0 }, offset);
|
|
72
78
|
}
|
|
@@ -76,7 +82,7 @@ export default class PublicTimeline {
|
|
|
76
82
|
*
|
|
77
83
|
* offset can be staggered, a number, a label or a string `+=10`
|
|
78
84
|
*/
|
|
79
|
-
add(targets: any, props: Record<string, any>, offset = null) {
|
|
85
|
+
add(targets: any, props: Record<string, any>, offset = null): this {
|
|
80
86
|
timelineAdd(this, targets, props, offset);
|
|
81
87
|
|
|
82
88
|
return this;
|
|
@@ -87,7 +93,7 @@ export default class PublicTimeline {
|
|
|
87
93
|
*
|
|
88
94
|
* This label can then be used in offsets
|
|
89
95
|
*/
|
|
90
|
-
label(label: string, offset: any = null) {
|
|
96
|
+
label(label: string, offset: any = null): this {
|
|
91
97
|
this._inner.label(label, offset);
|
|
92
98
|
|
|
93
99
|
return this;
|
|
@@ -99,7 +105,11 @@ export default class PublicTimeline {
|
|
|
99
105
|
* fn: (timeline)
|
|
100
106
|
*/
|
|
101
107
|
// todo probably tl should be an interface
|
|
102
|
-
nest(
|
|
108
|
+
nest(
|
|
109
|
+
fn: (tl: NestedTimeline) => void,
|
|
110
|
+
opts = {},
|
|
111
|
+
offset: any = null,
|
|
112
|
+
): this {
|
|
103
113
|
const tl = new NestedTimeline(opts);
|
|
104
114
|
|
|
105
115
|
fn(tl);
|
|
@@ -113,7 +123,7 @@ export default class PublicTimeline {
|
|
|
113
123
|
* Adds a responsive function call which get's called before the responsive
|
|
114
124
|
* functions in properties
|
|
115
125
|
*/
|
|
116
|
-
addResponsive(responsive: Responsive | Responsive[]) {
|
|
126
|
+
addResponsive(responsive: Responsive | Responsive[]): this {
|
|
117
127
|
if (!this._responsiveEvent)
|
|
118
128
|
throw new Error('this timeline is not responsive');
|
|
119
129
|
|
|
@@ -133,7 +143,7 @@ export default class PublicTimeline {
|
|
|
133
143
|
/**
|
|
134
144
|
* Starts to play the timeline if it hasn't started
|
|
135
145
|
*/
|
|
136
|
-
play() {
|
|
146
|
+
play(): this {
|
|
137
147
|
if (this._state === STATE_PLAYING) return this;
|
|
138
148
|
|
|
139
149
|
this._state = STATE_PLAYING;
|
|
@@ -217,7 +227,7 @@ export default class PublicTimeline {
|
|
|
217
227
|
/**
|
|
218
228
|
* Returns wether the timeline is set to reversed
|
|
219
229
|
*/
|
|
220
|
-
isReversed() {
|
|
230
|
+
isReversed(): boolean {
|
|
221
231
|
return this._inner.timing.reversed;
|
|
222
232
|
}
|
|
223
233
|
|
|
@@ -248,12 +258,12 @@ export default class PublicTimeline {
|
|
|
248
258
|
* Does not get executed during seeking
|
|
249
259
|
*
|
|
250
260
|
*/
|
|
251
|
-
on(event: string, fn: (...args: any[]) => void) {
|
|
261
|
+
on(event: string, fn: (...args: any[]) => void): () => void {
|
|
252
262
|
return this._events.add(event, fn);
|
|
253
263
|
}
|
|
254
264
|
|
|
255
265
|
// not working
|
|
256
|
-
onPromise(event: string) {
|
|
266
|
+
onPromise(event: string): Promise<any> {
|
|
257
267
|
return this._events.wait(event);
|
|
258
268
|
}
|
|
259
269
|
|
|
@@ -270,6 +280,9 @@ export default class PublicTimeline {
|
|
|
270
280
|
this._inner = null;
|
|
271
281
|
}
|
|
272
282
|
|
|
283
|
+
/**
|
|
284
|
+
* @ignore
|
|
285
|
+
*/
|
|
273
286
|
_startTicker() {
|
|
274
287
|
if (this._runningTicker) return;
|
|
275
288
|
|
|
@@ -321,6 +334,9 @@ export default class PublicTimeline {
|
|
|
321
334
|
});
|
|
322
335
|
}
|
|
323
336
|
|
|
337
|
+
/**
|
|
338
|
+
* @ignore
|
|
339
|
+
*/
|
|
324
340
|
_stopTicker() {
|
|
325
341
|
if (!this._runningTicker) return;
|
|
326
342
|
|
|
@@ -328,6 +344,9 @@ export default class PublicTimeline {
|
|
|
328
344
|
this._runningTicker = null;
|
|
329
345
|
}
|
|
330
346
|
|
|
347
|
+
/**
|
|
348
|
+
* @ignore
|
|
349
|
+
*/
|
|
331
350
|
_onResponsive(
|
|
332
351
|
a: { width: number; height: number },
|
|
333
352
|
b: { remove: () => void },
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { newTarget } from '../target/Target';
|
|
2
|
-
import Ticker, { Callback } from './Ticker';
|
|
1
|
+
import { newTarget } from '../target/Target.js';
|
|
2
|
+
import Ticker, { Callback } from './Ticker.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* The ticker is the main driver for all animations
|
|
@@ -37,7 +37,7 @@ export default class AnimationFrameTicker implements Ticker {
|
|
|
37
37
|
// @ts-ignore
|
|
38
38
|
if (typeof window.chnobliTicker === 'undefined')
|
|
39
39
|
// @ts-ignore
|
|
40
|
-
window.chnobliTicker = new
|
|
40
|
+
window.chnobliTicker = new AnimationFrameTicker();
|
|
41
41
|
// @ts-ignore
|
|
42
42
|
return window.chnobliTicker;
|
|
43
43
|
}
|
package/src/timing/TestTicker.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { GlobalTargets } from './AnimationFrameTicker';
|
|
2
|
-
import Ticker, { Callback } from './Ticker';
|
|
1
|
+
import { GlobalTargets } from './AnimationFrameTicker.js';
|
|
2
|
+
import Ticker, { Callback } from './Ticker.js';
|
|
3
3
|
|
|
4
4
|
export default class TestTicker implements Ticker {
|
|
5
5
|
private _listeners: Set<Callback>;
|
package/src/timing/Ticker.ts
CHANGED
package/src/timing/Timing.ts
CHANGED
package/src/utils/utils.ts
CHANGED
package/src/values/ColorValue.ts
CHANGED
package/src/values/StyleValue.ts
CHANGED
package/tsconfig.build.json
CHANGED
package/tsconfig.json
CHANGED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import Timing from '../timing/Timing';
|
|
2
|
-
import Property from '../property/Property';
|
|
3
|
-
import Ticker from '@/timing/Ticker';
|
|
4
|
-
import { Target } from '@/target/Target';
|
|
5
|
-
export default class Animation {
|
|
6
|
-
timing: Timing;
|
|
7
|
-
target: Target;
|
|
8
|
-
props: Record<string, PropertyAnimation<any>>;
|
|
9
|
-
private _ticker;
|
|
10
|
-
private _prevTimingState;
|
|
11
|
-
private _props;
|
|
12
|
-
private _initialized;
|
|
13
|
-
constructor(target: any, ticker: Ticker, props?: Record<string, any>);
|
|
14
|
-
advance(change: number): void;
|
|
15
|
-
seekMs(ms: number): void;
|
|
16
|
-
seek(pos: number): void;
|
|
17
|
-
isFinite(): boolean;
|
|
18
|
-
get duration(): number;
|
|
19
|
-
init(reset?: boolean): void;
|
|
20
|
-
render(): void;
|
|
21
|
-
destroy(): void;
|
|
22
|
-
}
|
|
23
|
-
declare class PropertyAnimation<V> {
|
|
24
|
-
prop: Property<V>;
|
|
25
|
-
private staticValueFn;
|
|
26
|
-
private valueFn;
|
|
27
|
-
private iniResponsive;
|
|
28
|
-
private iniFrom;
|
|
29
|
-
private iniTo;
|
|
30
|
-
constructor(prop: string, value: any, animation: Animation);
|
|
31
|
-
init(target: Target): void;
|
|
32
|
-
restoreBefore(target: Target): void;
|
|
33
|
-
render(pos: number, target: Target): void;
|
|
34
|
-
}
|
|
35
|
-
export {};
|
|
36
|
-
//# sourceMappingURL=animation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../src/animation/animation.ts"],"names":[],"mappings":"AAAA,OAAO,MAAgD,MAAM,kBAAkB,CAAC;AAEhF,OAAO,QAAyC,MAAM,sBAAsB,CAAC;AAC7E,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,CAAC,OAAO,OAAO,SAAS;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9C,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,YAAY,CAAU;gBAKlB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAiBxE,OAAO,CAAC,MAAM,EAAE,MAAM;IAKtB,MAAM,CAAC,EAAE,EAAE,MAAM;IAKjB,IAAI,CAAC,GAAG,EAAE,MAAM;IAKhB,QAAQ,IAAI,OAAO;IAInB,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,CAAC,KAAK,UAAQ;IASlB,MAAM;IAwBN,OAAO;CAOP;AAOD,cAAM,iBAAiB,CAAC,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAElB,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,OAAO,CAA2C;IAE1D,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,KAAK,CAAW;gBAEZ,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS;IAoC1D,IAAI,CAAC,MAAM,EAAE,MAAM;IAkDnB,aAAa,CAAC,MAAM,EAAE,MAAM;IAK5B,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAQlC"}
|
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
import { newTiming, STATE_BEFORE, STATE_AFTER } from '../timing/Timing';
|
|
2
|
-
import { newProperty } from '../property/Property';
|
|
3
|
-
export default class Animation {
|
|
4
|
-
timing;
|
|
5
|
-
target;
|
|
6
|
-
props;
|
|
7
|
-
_ticker;
|
|
8
|
-
_prevTimingState;
|
|
9
|
-
_props;
|
|
10
|
-
_initialized;
|
|
11
|
-
/*
|
|
12
|
-
props
|
|
13
|
-
*/
|
|
14
|
-
constructor(target, ticker, props = {}) {
|
|
15
|
-
this.timing = newTiming(props);
|
|
16
|
-
this._ticker = ticker;
|
|
17
|
-
this.target = ticker.registerTarget(target);
|
|
18
|
-
this._prevTimingState = this.timing.state;
|
|
19
|
-
this._props = [];
|
|
20
|
-
this._initialized = false;
|
|
21
|
-
this.props = {};
|
|
22
|
-
for (const prop in props) {
|
|
23
|
-
this.props[prop] = new PropertyAnimation(prop, props[prop], this);
|
|
24
|
-
this._props.push(this.props[prop]);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
advance(change) {
|
|
28
|
-
this._prevTimingState = this.timing.state;
|
|
29
|
-
this.timing.advance(change);
|
|
30
|
-
}
|
|
31
|
-
seekMs(ms) {
|
|
32
|
-
this._prevTimingState = this.timing.state;
|
|
33
|
-
this.timing.seekMs(ms);
|
|
34
|
-
}
|
|
35
|
-
seek(pos) {
|
|
36
|
-
this._prevTimingState = this.timing.state;
|
|
37
|
-
this.timing.seek(pos);
|
|
38
|
-
}
|
|
39
|
-
isFinite() {
|
|
40
|
-
return this.timing.isFinite();
|
|
41
|
-
}
|
|
42
|
-
get duration() {
|
|
43
|
-
return this.timing.duration;
|
|
44
|
-
}
|
|
45
|
-
init(reset = false) {
|
|
46
|
-
if (this._initialized && !reset)
|
|
47
|
-
return;
|
|
48
|
-
this._initialized = true;
|
|
49
|
-
for (const prop of this._props) {
|
|
50
|
-
prop.init(this.target);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
render() {
|
|
54
|
-
if (this.timing.state === STATE_BEFORE) {
|
|
55
|
-
// console.log('render before');
|
|
56
|
-
for (const prop of this._props) {
|
|
57
|
-
prop.restoreBefore(this.target);
|
|
58
|
-
}
|
|
59
|
-
// to render before we need to remove
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
else if (this.timing.state === STATE_AFTER) {
|
|
63
|
-
// console.log('render after');
|
|
64
|
-
// return;
|
|
65
|
-
}
|
|
66
|
-
const pos = this.timing.position;
|
|
67
|
-
// now render
|
|
68
|
-
for (const prop of this._props) {
|
|
69
|
-
prop.render(pos, this.target);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
destroy() {
|
|
73
|
-
for (const prop of this._props) {
|
|
74
|
-
prop.restoreBefore(this.target);
|
|
75
|
-
}
|
|
76
|
-
this._ticker.unregisterTarget(this.target.inner());
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
function maybeResponsiveValue(prop, val) {
|
|
80
|
-
if (typeof val === 'object' && 'responsive' in val)
|
|
81
|
-
return val.responsive;
|
|
82
|
-
return prop.parseValue(val);
|
|
83
|
-
}
|
|
84
|
-
class PropertyAnimation {
|
|
85
|
-
prop;
|
|
86
|
-
staticValueFn;
|
|
87
|
-
valueFn;
|
|
88
|
-
iniResponsive;
|
|
89
|
-
iniFrom;
|
|
90
|
-
iniTo;
|
|
91
|
-
constructor(prop, value, animation) {
|
|
92
|
-
this.prop = newProperty(prop, animation.target.type());
|
|
93
|
-
// we will get the from the targets
|
|
94
|
-
this.staticValueFn = false;
|
|
95
|
-
this.valueFn = null;
|
|
96
|
-
this.iniResponsive = null;
|
|
97
|
-
this.iniFrom = null;
|
|
98
|
-
this.iniTo = null;
|
|
99
|
-
if (typeof value === 'object') {
|
|
100
|
-
if ('from' in value)
|
|
101
|
-
this.iniFrom = maybeResponsiveValue(this.prop, value.from);
|
|
102
|
-
if ('to' in value)
|
|
103
|
-
this.iniTo = maybeResponsiveValue(this.prop, value.to);
|
|
104
|
-
if ('responsive' in value)
|
|
105
|
-
this.iniResponsive = value.responsive;
|
|
106
|
-
if (!this.iniFrom && !this.iniTo && !this.iniResponsive)
|
|
107
|
-
throw new Error('from or to expected');
|
|
108
|
-
}
|
|
109
|
-
else if (typeof value === 'function') {
|
|
110
|
-
if (!this.prop.allowsValueFn()) {
|
|
111
|
-
throw new Error('prop ' + prop + ' does not allow value functions');
|
|
112
|
-
}
|
|
113
|
-
this.staticValueFn = true;
|
|
114
|
-
this.valueFn = value;
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
this.iniTo = this.prop.parseValue(value);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
// calculate from and to position
|
|
121
|
-
init(target) {
|
|
122
|
-
// there is nothing to initialize since on every render we call the
|
|
123
|
-
// value Fn
|
|
124
|
-
if (this.staticValueFn)
|
|
125
|
-
return;
|
|
126
|
-
this.valueFn = null;
|
|
127
|
-
let from = null;
|
|
128
|
-
let to = null;
|
|
129
|
-
// init via responsive fn
|
|
130
|
-
if (this.iniResponsive) {
|
|
131
|
-
// todo this access to target can't be
|
|
132
|
-
const value = this.iniResponsive(target.target);
|
|
133
|
-
if (typeof value === 'object') {
|
|
134
|
-
if ('from' in value)
|
|
135
|
-
from = this.prop.parseValue(value.from);
|
|
136
|
-
if ('to' in value)
|
|
137
|
-
to = this.prop.parseValue(value.to);
|
|
138
|
-
if (!from && !to)
|
|
139
|
-
throw new Error('from or to expected');
|
|
140
|
-
}
|
|
141
|
-
else if (typeof value === 'function') {
|
|
142
|
-
if (!this.prop.allowsValueFn()) {
|
|
143
|
-
throw new Error(`prop ${this.prop.name} does not allow value functions`);
|
|
144
|
-
}
|
|
145
|
-
this.valueFn = value;
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
to = this.prop.parseValue(value);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
// init from
|
|
153
|
-
if (!from) {
|
|
154
|
-
if (typeof this.iniFrom === 'function')
|
|
155
|
-
from = this.prop.parseValue(this.iniFrom(target.inner()));
|
|
156
|
-
else
|
|
157
|
-
from = this.iniFrom;
|
|
158
|
-
}
|
|
159
|
-
// init to
|
|
160
|
-
if (!to) {
|
|
161
|
-
if (typeof this.iniTo === 'function')
|
|
162
|
-
to = this.prop.parseValue(this.iniTo(target.inner()));
|
|
163
|
-
else
|
|
164
|
-
to = this.iniTo;
|
|
165
|
-
}
|
|
166
|
-
this.prop.init(target, from, to);
|
|
167
|
-
}
|
|
168
|
-
restoreBefore(target) {
|
|
169
|
-
// todo this might not be enough
|
|
170
|
-
this.prop.removeValue(target);
|
|
171
|
-
}
|
|
172
|
-
render(pos, target) {
|
|
173
|
-
if (this.valueFn) {
|
|
174
|
-
this.prop.setValue(target, this.prop.parseValue(this.valueFn(pos)));
|
|
175
|
-
return;
|
|
176
|
-
}
|
|
177
|
-
this.prop.setValue(target, this.prop.interpolate(pos));
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
/*
|
|
181
|
-
|
|
182
|
-
animate(target, {
|
|
183
|
-
|
|
184
|
-
// special
|
|
185
|
-
// translate
|
|
186
|
-
x
|
|
187
|
-
y
|
|
188
|
-
scale
|
|
189
|
-
scaleX
|
|
190
|
-
scaleY
|
|
191
|
-
rotation
|
|
192
|
-
skew
|
|
193
|
-
skewX
|
|
194
|
-
skewY
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
// stagger
|
|
199
|
-
repeatDelay
|
|
200
|
-
stagger: {
|
|
201
|
-
// wrap advanced options in an object
|
|
202
|
-
each: 0.1,
|
|
203
|
-
from: "center",
|
|
204
|
-
grid: "auto",
|
|
205
|
-
ease: "power2.inOut",
|
|
206
|
-
repeat: -1, // Repeats immediately, not waiting for the other staggered animations to finish
|
|
207
|
-
},
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
ease,
|
|
211
|
-
duration,
|
|
212
|
-
repeat, true|false|0-x
|
|
213
|
-
repeatDelay?
|
|
214
|
-
delay,
|
|
215
|
-
alternate
|
|
216
|
-
})
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
const tl new Timeline;
|
|
220
|
-
|
|
221
|
-
tl.add([
|
|
222
|
-
animation()
|
|
223
|
-
], 100)
|
|
224
|
-
|
|
225
|
-
tl.addGroup()
|
|
226
|
-
|
|
227
|
-
tl.add()
|
|
228
|
-
|
|
229
|
-
*/
|
|
230
|
-
//# sourceMappingURL=animation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"animation.js","sourceRoot":"","sources":["../../src/animation/animation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/responsive/event.js"],"names":[],"mappings":"AAAA;IAOC,qBAWC;IAhBA,qBAAyB;IAmB1B;;MAQC;IAED,sBAEC;IAED,yBASC;CACD"}
|
package/dist/responsive/event.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
export default class ResponsiveEvent {
|
|
2
|
-
constructor() {
|
|
3
|
-
this._listeners = new Set;
|
|
4
|
-
window.addEventListener('resize', e => this._onResize(e));
|
|
5
|
-
}
|
|
6
|
-
static global() {
|
|
7
|
-
// allow to define a test ticker
|
|
8
|
-
if (typeof globalThis !== 'undefined' && globalThis.chnobliResponsive)
|
|
9
|
-
return globalThis.chnobliResponsive;
|
|
10
|
-
if (typeof window === 'undefined')
|
|
11
|
-
return null;
|
|
12
|
-
if (typeof window.chnobliResponsive === 'undefined')
|
|
13
|
-
window.chnobliResponsive = new ResponsiveEvent;
|
|
14
|
-
return window.chnobliResponsive;
|
|
15
|
-
}
|
|
16
|
-
// fn({ width, height }, { remove() })
|
|
17
|
-
add(fn) {
|
|
18
|
-
this._listeners.add(fn);
|
|
19
|
-
return {
|
|
20
|
-
remove: () => {
|
|
21
|
-
this.remove(fn);
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
remove(fn) {
|
|
26
|
-
this._listeners.delete(fn);
|
|
27
|
-
}
|
|
28
|
-
_onResize(_e) {
|
|
29
|
-
for (const fn of this._listeners) {
|
|
30
|
-
fn({
|
|
31
|
-
width: window.innerWidth,
|
|
32
|
-
height: window.innerHeight
|
|
33
|
-
}, {
|
|
34
|
-
remove: () => this.remove(fn)
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=event.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/responsive/event.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,eAAe;IACnC;QACC,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC;QAE1B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,MAAM;QACZ,gCAAgC;QAChC,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,UAAU,CAAC,iBAAiB;YACpE,OAAO,UAAU,CAAC,iBAAiB,CAAC;QAErC,IAAI,OAAO,MAAM,KAAK,WAAW;YAChC,OAAO,IAAI,CAAC;QAEb,IAAI,OAAO,MAAM,CAAC,iBAAiB,KAAK,WAAW;YAClD,MAAM,CAAC,iBAAiB,GAAG,IAAI,eAAe,CAAC;QAChD,OAAO,MAAM,CAAC,iBAAiB,CAAC;IACjC,CAAC;IAED,sCAAsC;IACtC,GAAG,CAAC,EAAE;QACL,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAExB,OAAO;YACN,MAAM,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;SACD,CAAC;IACH,CAAC;IAED,MAAM,CAAC,EAAE;QACR,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,SAAS,CAAC,EAAE;QACX,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,EAAE,CAAC;gBACF,KAAK,EAAE,MAAM,CAAC,UAAU;gBACxB,MAAM,EAAE,MAAM,CAAC,WAAW;aAC1B,EAAE;gBACF,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;aAC7B,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;CACD"}
|