chnobli 0.1.9 → 0.1.11
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/dist/animation/Animation.d.ts +37 -0
- package/dist/animation/Animation.d.ts.map +1 -0
- package/dist/animation/Animation.js +232 -0
- package/dist/animation/Animation.js.map +1 -0
- package/dist/animation/public.d.ts +68 -0
- package/dist/animation/public.d.ts.map +1 -0
- package/dist/animation/public.js +115 -0
- package/dist/animation/public.js.map +1 -0
- package/dist/animator/Animator.d.ts +30 -0
- package/dist/animator/Animator.d.ts.map +1 -0
- package/dist/animator/Animator.js +97 -0
- package/dist/animator/Animator.js.map +1 -0
- package/dist/animator/index.d.ts +5 -0
- package/dist/animator/index.d.ts.map +1 -0
- package/dist/animator/index.js +53 -0
- package/dist/animator/index.js.map +1 -0
- package/dist/animator/public.d.ts +16 -0
- package/dist/animator/public.d.ts.map +1 -0
- package/dist/animator/public.js +50 -0
- package/dist/animator/public.js.map +1 -0
- package/dist/chnobli.d.ts +15 -0
- package/dist/chnobli.d.ts.map +1 -0
- package/dist/chnobli.js +59 -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 +22 -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/scroll/Scroll.d.ts +61 -0
- package/dist/scroll/Scroll.d.ts.map +1 -0
- package/dist/scroll/Scroll.js +280 -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 +40 -0
- package/dist/scroll/ScrollEvent.js.map +1 -0
- package/dist/scroll/index.d.ts +8 -0
- package/dist/scroll/index.d.ts.map +1 -0
- package/dist/scroll/index.js +9 -0
- package/dist/scroll/index.js.map +1 -0
- package/dist/scroll/public.d.ts +35 -0
- package/dist/scroll/public.d.ts.map +1 -0
- package/dist/scroll/public.js +50 -0
- package/dist/scroll/public.js.map +1 -0
- package/dist/stagger/stagger.d.ts +20 -0
- package/dist/stagger/stagger.d.ts.map +1 -0
- package/dist/stagger/stagger.js +43 -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/ObjectTarget.d.ts +31 -0
- package/dist/target/ObjectTarget.d.ts.map +1 -0
- package/dist/target/ObjectTarget.js +108 -0
- package/dist/target/ObjectTarget.js.map +1 -0
- package/dist/target/Target.d.ts +25 -0
- package/dist/target/Target.d.ts.map +1 -0
- package/dist/target/Target.js +25 -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 +42 -0
- package/dist/timeline/Timeline.d.ts.map +1 -0
- package/dist/timeline/Timeline.js +306 -0
- package/dist/timeline/Timeline.js.map +1 -0
- package/dist/timeline/public.d.ts +167 -0
- package/dist/timeline/public.d.ts.map +1 -0
- package/dist/timeline/public.js +396 -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 +138 -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 +85 -0
- package/dist/timing/TestTicker.js.map +1 -0
- package/dist/timing/Ticker.d.ts +16 -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 +116 -0
- package/dist/timing/Timing.d.ts.map +1 -0
- package/dist/timing/Timing.js +310 -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 +5 -0
- package/dist/utils/internal.d.ts.map +1 -0
- package/dist/utils/internal.js +9 -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 +44 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +88 -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 +134 -0
- package/dist/values/ColorValue.js.map +1 -0
- package/dist/values/StyleValue.d.ts +41 -0
- package/dist/values/StyleValue.d.ts.map +1 -0
- package/dist/values/StyleValue.js +159 -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/eslint.config.js +23 -0
- package/package.json +10 -3
- package/src/animation/Animation.ts +6 -3
- package/src/animator/Animator.ts +130 -0
- package/src/animator/index.ts +56 -0
- package/src/animator/public.ts +66 -0
- package/src/chnobli.ts +3 -2
- package/src/property/ClassProperty.ts +1 -1
- package/src/property/TransformXYProperty.ts +1 -1
- package/src/scroll/Scroll.ts +202 -51
- package/src/scroll/ScrollEvent.ts +1 -0
- package/src/scroll/index.ts +3 -0
- package/src/scroll/public.ts +35 -2
- package/src/target/DomTarget.ts +1 -1
- package/src/target/ObjectTarget.ts +19 -13
- package/src/tests/properties.test.ts +44 -3
- package/src/tests/timeline.test.ts +1 -1
- package/src/tests/timing.test.ts +32 -0
- package/src/tests/usecases.test.ts +40 -2
- package/src/tests/values.test.ts +9 -9
- package/src/timeline/Timeline.ts +5 -4
- package/src/timeline/public.ts +34 -12
- package/src/timing/AnimationFrameTicker.ts +6 -1
- package/src/timing/TestTicker.ts +7 -1
- package/src/timing/Ticker.ts +5 -1
- package/src/timing/Timing.ts +127 -91
- package/src/utils/Events.ts +1 -1
- package/src/utils/motionpath.ts +5 -5
- package/src/utils/utils.ts +0 -10
- package/src/values/ColorValue.ts +1 -0
- package/src/values/Value.ts +1 -1
- package/.eslintrc.cjs +0 -39
- package/src/animator.js +0 -187
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/*
|
|
2
|
+
|
|
3
|
+
const obj = { opacity: 1 };
|
|
4
|
+
// maybe we could even have stagger?
|
|
5
|
+
const opacity = animator(obj, {
|
|
6
|
+
// initial value
|
|
7
|
+
// might also be able to be set with stagger?
|
|
8
|
+
// for example
|
|
9
|
+
opacity: 1,
|
|
10
|
+
|
|
11
|
+
duration: 200,
|
|
12
|
+
ease: sineInOut
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
// or maybe instead
|
|
16
|
+
|
|
17
|
+
const animator = animator();
|
|
18
|
+
animator.add(obj, {
|
|
19
|
+
opacity: 1,
|
|
20
|
+
duration: 200,
|
|
21
|
+
ease: sineInOut
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
// what is the reason why we would wan't one animator with
|
|
25
|
+
// multiple objects with different timings
|
|
26
|
+
// could we not just use multiple animators
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
opacity.set(obj, { opacity: 0 });
|
|
30
|
+
|
|
31
|
+
let's make the most basic animator first
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
const opacity = animator(obj, {
|
|
35
|
+
duration: 200,
|
|
36
|
+
ease: sinInOut
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
opacity.set({ opacity: 0 });
|
|
40
|
+
|
|
41
|
+
opacity.to({ opacity: 1 });
|
|
42
|
+
opacity.to({ opacity: 2 }, 1000);
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
*/
|
|
48
|
+
import Animator from './public.js';
|
|
49
|
+
export { Animator };
|
|
50
|
+
export function animator(target, props) {
|
|
51
|
+
return new Animator(target, props);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/animator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8CE;AAEF,OAAO,QAA2B,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,CAAC;AAGpB,MAAM,UAAU,QAAQ,CAAC,MAAW,EAAE,KAAqB;IAC1D,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type AnimatorProps = {
|
|
2
|
+
duration?: number;
|
|
3
|
+
ease?: (t: number) => number;
|
|
4
|
+
};
|
|
5
|
+
export default class PublicAnimator {
|
|
6
|
+
private ticker;
|
|
7
|
+
private inner;
|
|
8
|
+
private runningTicker;
|
|
9
|
+
private events;
|
|
10
|
+
constructor(target: any, props?: AnimatorProps);
|
|
11
|
+
set(props: Record<string, any>): this;
|
|
12
|
+
to(props: Record<string, any>, duration?: number): this;
|
|
13
|
+
on(ev: string, fn: (...args: any[]) => void): () => void;
|
|
14
|
+
private startTicker;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=public.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/animator/public.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,aAAa,GAAG;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,cAAc;IAClC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,GAAG,EAAE,KAAK,GAAE,aAAkB;IASlD,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAOrC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAQvD,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAIxD,OAAO,CAAC,WAAW;CAgBnB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/*
|
|
2
|
+
set,
|
|
3
|
+
to,
|
|
4
|
+
*/
|
|
5
|
+
import AnimationFrameTicker from '../timing/AnimationFrameTicker.js';
|
|
6
|
+
import Events from '../utils/Events.js';
|
|
7
|
+
import Animator from './Animator.js';
|
|
8
|
+
export default class PublicAnimator {
|
|
9
|
+
ticker;
|
|
10
|
+
inner;
|
|
11
|
+
runningTicker;
|
|
12
|
+
events;
|
|
13
|
+
constructor(target, props = {}) {
|
|
14
|
+
this.ticker = AnimationFrameTicker.global();
|
|
15
|
+
this.inner = new Animator(target, this.ticker, {
|
|
16
|
+
duration: props.duration ?? 1000,
|
|
17
|
+
ease: props.ease,
|
|
18
|
+
});
|
|
19
|
+
this.events = new Events();
|
|
20
|
+
}
|
|
21
|
+
set(props) {
|
|
22
|
+
this.inner.set(props);
|
|
23
|
+
this.startTicker();
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
to(props, duration) {
|
|
27
|
+
this.inner.to(props, duration);
|
|
28
|
+
this.startTicker();
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
// on: update
|
|
32
|
+
on(ev, fn) {
|
|
33
|
+
return this.events.add(ev, fn);
|
|
34
|
+
}
|
|
35
|
+
startTicker() {
|
|
36
|
+
if (this.runningTicker)
|
|
37
|
+
return;
|
|
38
|
+
this.runningTicker = this.ticker.add((change, opts) => {
|
|
39
|
+
const keepRunning = this.inner._tick(change);
|
|
40
|
+
opts.onApplied(() => {
|
|
41
|
+
this.events.trigger('update');
|
|
42
|
+
});
|
|
43
|
+
if (!keepRunning) {
|
|
44
|
+
opts.remove();
|
|
45
|
+
this.runningTicker = null;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=public.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/animator/public.ts"],"names":[],"mappings":"AAAA;;;EAGE;AAEF,OAAO,oBAAoB,MAAM,mCAAmC,CAAC;AAErE,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,QAAQ,MAAM,eAAe,CAAC;AAOrC,MAAM,CAAC,OAAO,OAAO,cAAc;IAC1B,MAAM,CAAS;IACf,KAAK,CAAW;IAChB,aAAa,CAAM;IACnB,MAAM,CAAS;IAEvB,YAAY,MAAW,EAAE,QAAuB,EAAE;QACjD,IAAI,CAAC,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YAC9C,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;YAChC,IAAI,EAAE,KAAK,CAAC,IAAI;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,KAA0B;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,EAAE,CAAC,KAA0B,EAAE,QAAiB;QAC/C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,aAAa;IACb,EAAE,CAAC,EAAU,EAAE,EAA4B;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IAEO,WAAW;QAClB,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAE/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YACrD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE7C,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;gBACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC3B,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import Animation, { AnimationProps } from './animation/public.js';
|
|
2
|
+
import Timeline, { TimelineProps } from './timeline/public.js';
|
|
3
|
+
import Stagger, { type StaggerValue } from './stagger/stagger.js';
|
|
4
|
+
import type { Targets, AnimationTarget } from './target/Target.js';
|
|
5
|
+
export type { Animation, Timeline, TimelineProps, Stagger, Targets, AnimationTarget, StaggerValue, AnimationProps, };
|
|
6
|
+
/**
|
|
7
|
+
* Creates a simple animation
|
|
8
|
+
*
|
|
9
|
+
* ## Properties
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
export declare function animate(targets: Targets, props?: AnimationProps): Animation;
|
|
13
|
+
export declare function timeline(props?: TimelineProps): Timeline;
|
|
14
|
+
export declare function stagger<O>(value: StaggerValue<O>): Stagger<O>;
|
|
15
|
+
//# sourceMappingURL=chnobli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chnobli.d.ts","sourceRoot":"","sources":["../src/chnobli.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,QAAQ,EAAE,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,OAAO,EAAE,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEnE,YAAY,EACX,SAAS,EACT,QAAQ,EACR,aAAa,EACb,OAAO,EACP,OAAO,EACP,eAAe,EACf,YAAY,EACZ,cAAc,GACd,CAAC;AAIF;;;;;GAKG;AACH,wBAAgB,OAAO,CACtB,OAAO,EAAE,OAAO,EAChB,KAAK,GAAE,cAAmB,GACxB,SAAS,CAEX;AAED,wBAAgB,QAAQ,CAAC,KAAK,GAAE,aAAkB,GAAG,QAAQ,CAE5D;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE7D"}
|
package/dist/chnobli.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import Animation from './animation/public.js';
|
|
2
|
+
import Timeline from './timeline/public.js';
|
|
3
|
+
import Stagger from './stagger/stagger.js';
|
|
4
|
+
// todo maybe add, to, from and fromTo to the animate function
|
|
5
|
+
/**
|
|
6
|
+
* Creates a simple animation
|
|
7
|
+
*
|
|
8
|
+
* ## Properties
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
export function animate(targets, props = {}) {
|
|
12
|
+
return new Animation(targets, props);
|
|
13
|
+
}
|
|
14
|
+
export function timeline(props = {}) {
|
|
15
|
+
return new Timeline(props);
|
|
16
|
+
}
|
|
17
|
+
export function stagger(value) {
|
|
18
|
+
return new Stagger(value);
|
|
19
|
+
}
|
|
20
|
+
/*
|
|
21
|
+
|
|
22
|
+
animate(target, {
|
|
23
|
+
|
|
24
|
+
// special
|
|
25
|
+
// translate
|
|
26
|
+
x
|
|
27
|
+
y
|
|
28
|
+
scale
|
|
29
|
+
scaleX
|
|
30
|
+
scaleY
|
|
31
|
+
rotation
|
|
32
|
+
skew
|
|
33
|
+
skewX
|
|
34
|
+
skewY
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
// stagger
|
|
39
|
+
repeatDelay
|
|
40
|
+
stagger: {
|
|
41
|
+
// wrap advanced options in an object
|
|
42
|
+
each: 0.1,
|
|
43
|
+
from: "center",
|
|
44
|
+
grid: "auto",
|
|
45
|
+
ease: "power2.inOut",
|
|
46
|
+
repeat: -1, // Repeats immediately, not waiting for the other staggered animations to finish
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
ease,
|
|
51
|
+
duration,
|
|
52
|
+
repeat, (-1?)
|
|
53
|
+
repeatDelay?
|
|
54
|
+
delay,
|
|
55
|
+
alternate
|
|
56
|
+
})
|
|
57
|
+
|
|
58
|
+
*/
|
|
59
|
+
//# sourceMappingURL=chnobli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chnobli.js","sourceRoot":"","sources":["../src/chnobli.ts"],"names":[],"mappings":"AAAA,OAAO,SAA6B,MAAM,uBAAuB,CAAC;AAClE,OAAO,QAA2B,MAAM,sBAAsB,CAAC;AAC/D,OAAO,OAA8B,MAAM,sBAAsB,CAAC;AAclE,8DAA8D;AAE9D;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CACtB,OAAgB,EAChB,QAAwB,EAAE;IAE1B,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAuB,EAAE;IACjD,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,OAAO,CAAI,KAAsB;IAChD,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsCE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import Value from '../values/Value.js';
|
|
2
|
+
import Property, { ParseableValue } from './Property.js';
|
|
3
|
+
import { Target } from '../target/Target.js';
|
|
4
|
+
export default class BasicProperty implements Property<Value> {
|
|
5
|
+
/**
|
|
6
|
+
* The name of the property
|
|
7
|
+
*/
|
|
8
|
+
name: string;
|
|
9
|
+
/**
|
|
10
|
+
* The value at the start
|
|
11
|
+
*/
|
|
12
|
+
from: Value | null;
|
|
13
|
+
/**
|
|
14
|
+
* The value at the end
|
|
15
|
+
*/
|
|
16
|
+
to: Value | null;
|
|
17
|
+
constructor(name: string);
|
|
18
|
+
allowsValueFn(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* From or to might be null
|
|
21
|
+
*/
|
|
22
|
+
init(target: Target, from: Value | null, to: Value | null): void;
|
|
23
|
+
/**
|
|
24
|
+
* Gets called with the value of a property
|
|
25
|
+
*
|
|
26
|
+
* For examply during initializiation
|
|
27
|
+
*/
|
|
28
|
+
parseValue(val: ParseableValue): Value;
|
|
29
|
+
defaultValue(): Value;
|
|
30
|
+
getValue(target: Target): Value;
|
|
31
|
+
/**
|
|
32
|
+
* Pos needs to be between 0 and 1
|
|
33
|
+
*/
|
|
34
|
+
interpolate(pos: number): Value;
|
|
35
|
+
setValue(target: Target, val: Value): void;
|
|
36
|
+
removeValue(target: Target): void;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=BasicProperty.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BasicProperty.d.ts","sourceRoot":"","sources":["../../src/property/BasicProperty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,oBAAoB,CAAC;AACvC,OAAO,QAAQ,EAAE,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,QAAQ,CAAC,KAAK,CAAC;IAC5D;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IAEnB;;OAEG;IACH,EAAE,EAAE,KAAK,GAAG,IAAI,CAAC;gBAEL,IAAI,EAAE,MAAM;IAQxB,aAAa;IAIb;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,GAAG,IAAI;IAczD;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,cAAc,GAAG,KAAK;IAOtC,YAAY,IAAI,KAAK;IAKrB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK;IAQ/B;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK;IAM/B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;IAInC,WAAW,CAAC,MAAM,EAAE,MAAM;CAG1B"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import Value from '../values/Value.js';
|
|
2
|
+
export default class BasicProperty {
|
|
3
|
+
/**
|
|
4
|
+
* The name of the property
|
|
5
|
+
*/
|
|
6
|
+
name;
|
|
7
|
+
/**
|
|
8
|
+
* The value at the start
|
|
9
|
+
*/
|
|
10
|
+
from;
|
|
11
|
+
/**
|
|
12
|
+
* The value at the end
|
|
13
|
+
*/
|
|
14
|
+
to;
|
|
15
|
+
constructor(name) {
|
|
16
|
+
// this is the property name
|
|
17
|
+
this.name = name;
|
|
18
|
+
this.from = null;
|
|
19
|
+
this.to = null;
|
|
20
|
+
}
|
|
21
|
+
allowsValueFn() {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* From or to might be null
|
|
26
|
+
*/
|
|
27
|
+
init(target, from, to) {
|
|
28
|
+
if (!from)
|
|
29
|
+
from = this.getValue(target);
|
|
30
|
+
if (!to)
|
|
31
|
+
to = this.getValue(target);
|
|
32
|
+
if (!from || !to)
|
|
33
|
+
throw new Error('could not determine from or to value');
|
|
34
|
+
const [nFrom, nTo] = target.unifyValues(this.name, from, to);
|
|
35
|
+
this.from = nFrom;
|
|
36
|
+
this.to = nTo;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Gets called with the value of a property
|
|
40
|
+
*
|
|
41
|
+
* For examply during initializiation
|
|
42
|
+
*/
|
|
43
|
+
parseValue(val) {
|
|
44
|
+
if (typeof val !== 'string')
|
|
45
|
+
throw new Error('only strings are supported');
|
|
46
|
+
return Value.parse(val);
|
|
47
|
+
}
|
|
48
|
+
defaultValue() {
|
|
49
|
+
throw new Error('default value for ' + this.name + ' not known');
|
|
50
|
+
}
|
|
51
|
+
// try to access the value from the target
|
|
52
|
+
getValue(target) {
|
|
53
|
+
const val = target.getValue(this.name);
|
|
54
|
+
if (typeof val === 'undefined' || val === null)
|
|
55
|
+
return this.defaultValue();
|
|
56
|
+
return val;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Pos needs to be between 0 and 1
|
|
60
|
+
*/
|
|
61
|
+
interpolate(pos) {
|
|
62
|
+
const dif = this.to.num - this.from.num;
|
|
63
|
+
return this.from.cloneAdd(pos * dif);
|
|
64
|
+
}
|
|
65
|
+
setValue(target, val) {
|
|
66
|
+
return target.setValue(this.name, val);
|
|
67
|
+
}
|
|
68
|
+
removeValue(target) {
|
|
69
|
+
return target.removeValue(this.name);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=BasicProperty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BasicProperty.js","sourceRoot":"","sources":["../../src/property/BasicProperty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,oBAAoB,CAAC;AAIvC,MAAM,CAAC,OAAO,OAAO,aAAa;IACjC;;OAEG;IACH,IAAI,CAAS;IAEb;;OAEG;IACH,IAAI,CAAe;IAEnB;;OAEG;IACH,EAAE,CAAe;IAEjB,YAAY,IAAY;QACvB,4BAA4B;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,MAAc,EAAE,IAAkB,EAAE,EAAgB;QACxD,IAAI,CAAC,IAAI;YAAE,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC,EAAE;YAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEpC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAEzD,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAE7D,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,GAAmB;QAC7B,IAAI,OAAO,GAAG,KAAK,QAAQ;YAC1B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAE/C,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,YAAY;QACX,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC;IAClE,CAAC;IAED,0CAA0C;IAC1C,QAAQ,CAAC,MAAc;QACtB,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI;YAC7C,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;QAE5B,OAAO,GAAG,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,GAAW;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAK,CAAC,GAAG,CAAC;QAE1C,OAAO,IAAI,CAAC,IAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,GAAU;QAClC,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,WAAW,CAAC,MAAc;QACzB,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CACD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Target } from '../target/Target.js';
|
|
2
|
+
import Property, { type ParseableValue } from './Property.js';
|
|
3
|
+
export type Interpolated = {
|
|
4
|
+
add: string[];
|
|
5
|
+
remove: string[];
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* In most cases we wan't to add the class at pos 0
|
|
9
|
+
* and in reverse remove it at pos 0
|
|
10
|
+
*
|
|
11
|
+
* so this behaviour should be in str|{ to }
|
|
12
|
+
*
|
|
13
|
+
* If we wan't to remove the class at pos 1
|
|
14
|
+
* and in reverse add it at pos 1
|
|
15
|
+
* we do it in { from }
|
|
16
|
+
*/
|
|
17
|
+
export default class ClassProperty implements Property<string[], Interpolated> {
|
|
18
|
+
name: string;
|
|
19
|
+
from: string[];
|
|
20
|
+
to: string[];
|
|
21
|
+
private preStates;
|
|
22
|
+
private states;
|
|
23
|
+
constructor(name: string);
|
|
24
|
+
allowsValueFn(): boolean;
|
|
25
|
+
init(target: Target, from: string[] | null, to: string[] | null): void;
|
|
26
|
+
parseValue(val: ParseableValue): string[];
|
|
27
|
+
getValue(_target: Target): string[] | null;
|
|
28
|
+
interpolate(pos: number): Interpolated;
|
|
29
|
+
setValue(target: Target, val: Interpolated): void;
|
|
30
|
+
removeValue(target: Target): void;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=ClassProperty.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClassProperty.d.ts","sourceRoot":"","sources":["../../src/property/ClassProperty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,QAAQ,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG;IAC1B,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,QAAQ,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC;IAC7E,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAG,MAAM,EAAE,CAAC;IAChB,EAAE,EAAG,MAAM,EAAE,CAAC;IAEd,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,MAAM,CAAwB;gBAE1B,IAAI,EAAE,MAAM;IAIxB,aAAa,IAAI,OAAO;IAIxB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI;IAc/D,UAAU,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,EAAE;IAezC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAI1C,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IA+BtC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY;IAyB1C,WAAW,CAAC,MAAM,EAAE,MAAM;CAO1B"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In most cases we wan't to add the class at pos 0
|
|
3
|
+
* and in reverse remove it at pos 0
|
|
4
|
+
*
|
|
5
|
+
* so this behaviour should be in str|{ to }
|
|
6
|
+
*
|
|
7
|
+
* If we wan't to remove the class at pos 1
|
|
8
|
+
* and in reverse add it at pos 1
|
|
9
|
+
* we do it in { from }
|
|
10
|
+
*/
|
|
11
|
+
export default class ClassProperty {
|
|
12
|
+
name;
|
|
13
|
+
from;
|
|
14
|
+
to;
|
|
15
|
+
preStates;
|
|
16
|
+
states;
|
|
17
|
+
constructor(name) {
|
|
18
|
+
this.name = name;
|
|
19
|
+
}
|
|
20
|
+
allowsValueFn() {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
init(target, from, to) {
|
|
24
|
+
this.from = from ?? [];
|
|
25
|
+
this.to = to ?? [];
|
|
26
|
+
this.preStates = new Map();
|
|
27
|
+
this.states = new Map();
|
|
28
|
+
for (const cls of [...this.from, ...this.to]) {
|
|
29
|
+
const exists = target.hasClass(cls);
|
|
30
|
+
this.preStates.set(cls, exists);
|
|
31
|
+
this.states.set(cls, exists);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
parseValue(val) {
|
|
35
|
+
if (Array.isArray(val)) {
|
|
36
|
+
return val.map(v => {
|
|
37
|
+
if (typeof v !== 'string')
|
|
38
|
+
throw new Error('cls only accepts strings[]');
|
|
39
|
+
return v;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
if (typeof val === 'string')
|
|
43
|
+
return [val];
|
|
44
|
+
throw new Error('cls only accepts strings and strings[]');
|
|
45
|
+
}
|
|
46
|
+
getValue(_target) {
|
|
47
|
+
throw new Error('unused');
|
|
48
|
+
}
|
|
49
|
+
interpolate(pos) {
|
|
50
|
+
/**
|
|
51
|
+
* ## to
|
|
52
|
+
* add the class at pos >0
|
|
53
|
+
* and in reverse remove it at pos 0
|
|
54
|
+
*
|
|
55
|
+
* ## from
|
|
56
|
+
* remove the class at pos <1
|
|
57
|
+
* and in reverse add it at pos 1
|
|
58
|
+
*/
|
|
59
|
+
const obj = {
|
|
60
|
+
add: [],
|
|
61
|
+
remove: [],
|
|
62
|
+
};
|
|
63
|
+
if (pos <= 0) {
|
|
64
|
+
obj.remove = this.to;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
obj.add = this.to;
|
|
68
|
+
}
|
|
69
|
+
if (pos >= 1) {
|
|
70
|
+
obj.remove = this.from;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
obj.add = [...obj.add, ...this.from];
|
|
74
|
+
}
|
|
75
|
+
return obj;
|
|
76
|
+
}
|
|
77
|
+
setValue(target, val) {
|
|
78
|
+
let { add, remove } = val;
|
|
79
|
+
add = add ?? [];
|
|
80
|
+
remove = remove ?? [];
|
|
81
|
+
if (!Array.isArray(add) || !Array.isArray(remove))
|
|
82
|
+
throw new Error('add or remove expected');
|
|
83
|
+
add.forEach(cls => {
|
|
84
|
+
const exists = this.states.get(cls);
|
|
85
|
+
if (!exists) {
|
|
86
|
+
target.addClass(cls);
|
|
87
|
+
this.states.set(cls, true);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
remove.forEach(cls => {
|
|
91
|
+
const exists = this.states.get(cls);
|
|
92
|
+
if (exists) {
|
|
93
|
+
target.removeClass(cls);
|
|
94
|
+
this.states.set(cls, false);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
removeValue(target) {
|
|
99
|
+
this.preStates.forEach((exists, cls) => {
|
|
100
|
+
if (exists)
|
|
101
|
+
target.addClass(cls);
|
|
102
|
+
else
|
|
103
|
+
target.removeClass(cls);
|
|
104
|
+
});
|
|
105
|
+
this.states = new Map(this.preStates);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=ClassProperty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClassProperty.js","sourceRoot":"","sources":["../../src/property/ClassProperty.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Target } from '../target/Target.js';
|
|
2
|
+
export type ParseableValue = string | number | (string | number)[];
|
|
3
|
+
export default interface Property<V, I = V> {
|
|
4
|
+
name: string;
|
|
5
|
+
allowsValueFn(): boolean;
|
|
6
|
+
init(target: Target, from: V | null, to: V | null): void;
|
|
7
|
+
parseValue(value: ParseableValue): V;
|
|
8
|
+
interpolate(pos: number): I;
|
|
9
|
+
setValue(target: Target, value: I): void;
|
|
10
|
+
removeValue(target: Target): void;
|
|
11
|
+
}
|
|
12
|
+
export declare function newProperty(prop: string, targetType?: string): Property<any>;
|
|
13
|
+
//# sourceMappingURL=Property.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Property.d.ts","sourceRoot":"","sources":["../../src/property/Property.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAM7C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;AAEnE,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IAEb,aAAa,IAAI,OAAO,CAAC;IAEzB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAEzD,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,CAAC,CAAC;IACrC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACzC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAaxE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import TransformProperty, { TRANSFORM_PROPS } from './TransformProperty.js';
|
|
2
|
+
import TransformXYProperty from './TransformXYProperty.js';
|
|
3
|
+
import StyleProperty, { STYLE_PROPS } from './StyleProperty.js';
|
|
4
|
+
import ClassProperty from './ClassProperty.js';
|
|
5
|
+
export function newProperty(prop, targetType = '') {
|
|
6
|
+
if (targetType === 'object')
|
|
7
|
+
return new StyleProperty(prop, false);
|
|
8
|
+
if (targetType !== 'dom')
|
|
9
|
+
throw new Error('only dom is supported as target');
|
|
10
|
+
if (prop in TRANSFORM_PROPS)
|
|
11
|
+
return new TransformProperty(prop);
|
|
12
|
+
if (prop === 'xy')
|
|
13
|
+
return new TransformXYProperty(prop);
|
|
14
|
+
if (prop.startsWith('--'))
|
|
15
|
+
return new StyleProperty(prop);
|
|
16
|
+
if (prop in STYLE_PROPS)
|
|
17
|
+
return new StyleProperty(prop);
|
|
18
|
+
if (prop === 'cls')
|
|
19
|
+
return new ClassProperty(prop);
|
|
20
|
+
throw new Error('unknown prop ' + prop);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=Property.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Property.js","sourceRoot":"","sources":["../../src/property/Property.ts"],"names":[],"mappings":"AACA,OAAO,iBAAiB,EAAE,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,aAAa,EAAE,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAiB/C,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,UAAU,GAAG,EAAE;IACxD,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEnE,IAAI,UAAU,KAAK,KAAK;QACvB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAEpD,IAAI,IAAI,IAAI,eAAe;QAAE,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAChE,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,IAAI,IAAI,WAAW;QAAE,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IAEnD,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import StyleValue from '../values/StyleValue.js';
|
|
2
|
+
import Property, { ParseableValue } from './Property.js';
|
|
3
|
+
import { Target } from '../target/Target.js';
|
|
4
|
+
export declare const STYLE_PROPS: Record<string, string | [number, string | null]>;
|
|
5
|
+
export default class StyleProperty implements Property<StyleValue, StyleValue | null> {
|
|
6
|
+
name: string;
|
|
7
|
+
from: StyleValue | null;
|
|
8
|
+
to: StyleValue | null;
|
|
9
|
+
unit: string | null;
|
|
10
|
+
kind: 'text' | 'color' | 'values' | null;
|
|
11
|
+
private _defaultValue;
|
|
12
|
+
constructor(name: string, useDefaults?: boolean);
|
|
13
|
+
allowsValueFn(): boolean;
|
|
14
|
+
init(target: Target, from: StyleValue | null, to: StyleValue | null): void;
|
|
15
|
+
parseValue(val: ParseableValue): StyleValue;
|
|
16
|
+
defaultValue(): StyleValue | null;
|
|
17
|
+
getValue(target: Target): StyleValue | null;
|
|
18
|
+
interpolate(pos: number): StyleValue | null;
|
|
19
|
+
private _interpolateText;
|
|
20
|
+
private _interpolateColor;
|
|
21
|
+
private _interpolateValues;
|
|
22
|
+
setValue(target: Target, val: StyleValue | null): void;
|
|
23
|
+
removeValue(target: Target): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=StyleProperty.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StyleProperty.d.ts","sourceRoot":"","sources":["../../src/property/StyleProperty.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,QAAQ,EAAE,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAmBxE,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,aACpB,YAAW,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAElD,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,EAAE,EAAE,UAAU,GAAG,IAAI,CAAC;IAEtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC;IAIzC,OAAO,CAAC,aAAa,CAAoB;gBAE7B,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,OAAc;IAyBrD,aAAa,IAAI,OAAO;IAIxB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,EAAE,EAAE,UAAU,GAAG,IAAI;IAsFnE,UAAU,CAAC,GAAG,EAAE,cAAc,GAAG,UAAU;IAI3C,YAAY,IAAI,UAAU,GAAG,IAAI;IAIjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAO3C,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAc3C,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,kBAAkB;IAkB1B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAM/C,WAAW,CAAC,MAAM,EAAE,MAAM;CAG1B"}
|