chnobli 0.1.9 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +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/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 +40 -0
- package/dist/scroll/Scroll.d.ts.map +1 -0
- package/dist/scroll/Scroll.js +168 -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/index.d.ts +6 -0
- package/dist/scroll/index.d.ts.map +1 -0
- package/dist/scroll/index.js +8 -0
- package/dist/scroll/index.js.map +1 -0
- package/dist/scroll/public.d.ts +17 -0
- package/dist/scroll/public.d.ts.map +1 -0
- package/dist/scroll/public.js +25 -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 +30 -0
- package/dist/target/ObjectTarget.d.ts.map +1 -0
- package/dist/target/ObjectTarget.js +101 -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 +41 -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 +160 -0
- package/dist/timeline/public.d.ts.map +1 -0
- package/dist/timeline/public.js +388 -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 +71 -0
- package/dist/timing/Timing.d.ts.map +1 -0
- package/dist/timing/Timing.js +276 -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 +96 -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 +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/package.json +1 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import Timing from '../timing/Timing.js';
|
|
2
|
+
import Property from '../property/Property.js';
|
|
3
|
+
import Ticker from '../timing/Ticker.js';
|
|
4
|
+
import { Target } from '../target/Target.js';
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Animation.d.ts","sourceRoot":"","sources":["../../src/animation/Animation.ts"],"names":[],"mappings":"AAAA,OAAO,MAIN,MAAM,qBAAqB,CAAC;AAE7B,OAAO,QAAyC,MAAM,yBAAyB,CAAC;AAChF,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,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;IAE3B,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;IAiDnB,aAAa,CAAC,MAAM,EAAE,MAAM;IAK5B,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAQlC"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { newTiming, STATE_BEFORE, STATE_AFTER, } from '../timing/Timing.js';
|
|
2
|
+
import { newProperty } from '../property/Property.js';
|
|
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
|
+
// todo i don't think the types match here?
|
|
90
|
+
iniFrom;
|
|
91
|
+
iniTo;
|
|
92
|
+
constructor(prop, value, animation) {
|
|
93
|
+
this.prop = newProperty(prop, animation.target.type());
|
|
94
|
+
// we will get the from the targets
|
|
95
|
+
this.staticValueFn = false;
|
|
96
|
+
this.valueFn = null;
|
|
97
|
+
this.iniResponsive = null;
|
|
98
|
+
this.iniFrom = null;
|
|
99
|
+
this.iniTo = null;
|
|
100
|
+
if (typeof value === 'object') {
|
|
101
|
+
if ('from' in value)
|
|
102
|
+
this.iniFrom = maybeResponsiveValue(this.prop, value.from);
|
|
103
|
+
if ('to' in value)
|
|
104
|
+
this.iniTo = maybeResponsiveValue(this.prop, value.to);
|
|
105
|
+
if ('responsive' in value)
|
|
106
|
+
this.iniResponsive = value.responsive;
|
|
107
|
+
if (!this.iniFrom && !this.iniTo && !this.iniResponsive)
|
|
108
|
+
throw new Error('from or to expected');
|
|
109
|
+
}
|
|
110
|
+
else if (typeof value === 'function') {
|
|
111
|
+
if (!this.prop.allowsValueFn()) {
|
|
112
|
+
throw new Error('prop ' + prop + ' does not allow value functions');
|
|
113
|
+
}
|
|
114
|
+
this.staticValueFn = true;
|
|
115
|
+
this.valueFn = value;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
this.iniTo = this.prop.parseValue(value);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// calculate from and to position
|
|
122
|
+
init(target) {
|
|
123
|
+
// there is nothing to initialize since on every render we call the
|
|
124
|
+
// value Fn
|
|
125
|
+
if (this.staticValueFn)
|
|
126
|
+
return;
|
|
127
|
+
this.valueFn = null;
|
|
128
|
+
let from = null;
|
|
129
|
+
let to = null;
|
|
130
|
+
// init via responsive fn
|
|
131
|
+
if (this.iniResponsive) {
|
|
132
|
+
const value = this.iniResponsive(target.inner());
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Animation.js","sourceRoot":"","sources":["../../src/animation/Animation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import Stagger from '../stagger/stagger.js';
|
|
2
|
+
import { Targets } from '../chnobli.js';
|
|
3
|
+
export type AnimationProps = {
|
|
4
|
+
autoplay?: boolean;
|
|
5
|
+
delay?: number | string | Stagger<number | string>;
|
|
6
|
+
ease?: (t: number) => number;
|
|
7
|
+
onStart?: () => void;
|
|
8
|
+
onEnd?: () => void;
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* The animation consist of a timeline with just one animation
|
|
13
|
+
* This allows to reuse a lot of code
|
|
14
|
+
*
|
|
15
|
+
* ## Props
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
18
|
+
export default class PublicAnimation {
|
|
19
|
+
private _tl;
|
|
20
|
+
constructor(targets: Targets, props?: AnimationProps);
|
|
21
|
+
play(): void;
|
|
22
|
+
pause(): void;
|
|
23
|
+
/**
|
|
24
|
+
* Seeks to a position in the timeline
|
|
25
|
+
*/
|
|
26
|
+
seekMs(ms: number): void;
|
|
27
|
+
/**
|
|
28
|
+
* Seeks to a normalized position in the timeline
|
|
29
|
+
*
|
|
30
|
+
* @param pos = number between 0 and 1
|
|
31
|
+
*/
|
|
32
|
+
seek(pos: number): void;
|
|
33
|
+
/**
|
|
34
|
+
* Resets the current timeline to the start
|
|
35
|
+
* without changing anything
|
|
36
|
+
*/
|
|
37
|
+
reset(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Resets every used prop to it's previous value
|
|
40
|
+
*/
|
|
41
|
+
resetProps(): void;
|
|
42
|
+
/**
|
|
43
|
+
* Recalculates all values this should be called for example after a resize
|
|
44
|
+
*/
|
|
45
|
+
update(): void;
|
|
46
|
+
/**
|
|
47
|
+
* Returns wether the timeline is set to reversed
|
|
48
|
+
*/
|
|
49
|
+
isReversed(): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Set's the timeline to a specific direction
|
|
52
|
+
*/
|
|
53
|
+
setReversed(reversed: boolean): void;
|
|
54
|
+
/**
|
|
55
|
+
* Reverses the order of the current timeline
|
|
56
|
+
*/
|
|
57
|
+
reverse(): void;
|
|
58
|
+
/**
|
|
59
|
+
* @returns a function to call to unregister the event
|
|
60
|
+
*/
|
|
61
|
+
on(event: string, fn: (...args: any[]) => void): () => void;
|
|
62
|
+
onPromise(event: string): Promise<unknown>;
|
|
63
|
+
/**
|
|
64
|
+
* Destroys this timeline and resets all props
|
|
65
|
+
*/
|
|
66
|
+
destroy(): void;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=public.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/animation/public.ts"],"names":[],"mappings":"AAEA,OAAO,OAAuB,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,MAAM,cAAc,GAAG;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAEnD,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAE7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAGnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IACnC,OAAO,CAAC,GAAG,CAAW;gBAEV,OAAO,EAAE,OAAO,EAAE,KAAK,GAAE,cAAmB;IA0CxD,IAAI;IAIJ,KAAK;IAIL;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM;IAIjB;;;;OAIG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM;IAIhB;;;OAGG;IACH,KAAK;IAIL;;OAEG;IACH,UAAU;IAIV;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,OAAO;IAI7B;;OAEG;IACH,OAAO;IAIP;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAK3D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1C;;OAEG;IACH,OAAO;CAKP"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { takeProp } from '../utils/internal.js';
|
|
2
|
+
import Timeline from '../timeline/public.js';
|
|
3
|
+
import { staggerMap } from '../stagger/stagger.js';
|
|
4
|
+
/**
|
|
5
|
+
* The animation consist of a timeline with just one animation
|
|
6
|
+
* This allows to reuse a lot of code
|
|
7
|
+
*
|
|
8
|
+
* ## Props
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
export default class PublicAnimation {
|
|
12
|
+
_tl;
|
|
13
|
+
constructor(targets, props = {}) {
|
|
14
|
+
const autoplay = parseAutoplay(takeProp(props, 'autoplay', true));
|
|
15
|
+
const delay = takeProp(props, 'delay', 0);
|
|
16
|
+
// we don't wan't the ease and duration on the timeline
|
|
17
|
+
const ease = takeProp(props, 'ease', undefined);
|
|
18
|
+
const duration = takeProp(props, 'duration', undefined);
|
|
19
|
+
this._tl = new Timeline(props);
|
|
20
|
+
// events
|
|
21
|
+
const onStart = takeProp(props, 'onStart', undefined);
|
|
22
|
+
if (onStart)
|
|
23
|
+
this._tl.on('start', onStart);
|
|
24
|
+
// events
|
|
25
|
+
const onEnd = takeProp(props, 'onEnd', undefined);
|
|
26
|
+
if (onEnd)
|
|
27
|
+
this._tl.on('end', onEnd);
|
|
28
|
+
props.ease = ease;
|
|
29
|
+
props.duration = duration;
|
|
30
|
+
this._tl.add(targets, props, staggerMap(delay, v => '+=' + v));
|
|
31
|
+
if (autoplay)
|
|
32
|
+
this._tl.play();
|
|
33
|
+
}
|
|
34
|
+
play() {
|
|
35
|
+
this._tl.play();
|
|
36
|
+
}
|
|
37
|
+
pause() {
|
|
38
|
+
this._tl.pause();
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Seeks to a position in the timeline
|
|
42
|
+
*/
|
|
43
|
+
seekMs(ms) {
|
|
44
|
+
this._tl.seekMs(ms);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Seeks to a normalized position in the timeline
|
|
48
|
+
*
|
|
49
|
+
* @param pos = number between 0 and 1
|
|
50
|
+
*/
|
|
51
|
+
seek(pos) {
|
|
52
|
+
this._tl.seek(pos);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Resets the current timeline to the start
|
|
56
|
+
* without changing anything
|
|
57
|
+
*/
|
|
58
|
+
reset() {
|
|
59
|
+
this._tl.reset();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Resets every used prop to it's previous value
|
|
63
|
+
*/
|
|
64
|
+
resetProps() {
|
|
65
|
+
this._tl.resetProps();
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Recalculates all values this should be called for example after a resize
|
|
69
|
+
*/
|
|
70
|
+
update() {
|
|
71
|
+
this._tl.update();
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Returns wether the timeline is set to reversed
|
|
75
|
+
*/
|
|
76
|
+
isReversed() {
|
|
77
|
+
return this._tl.isReversed();
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Set's the timeline to a specific direction
|
|
81
|
+
*/
|
|
82
|
+
setReversed(reversed) {
|
|
83
|
+
this._tl.setReversed(reversed);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Reverses the order of the current timeline
|
|
87
|
+
*/
|
|
88
|
+
reverse() {
|
|
89
|
+
this._tl.reverse();
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* @returns a function to call to unregister the event
|
|
93
|
+
*/
|
|
94
|
+
on(event, fn) {
|
|
95
|
+
return this._tl.on(event, fn);
|
|
96
|
+
}
|
|
97
|
+
// not wroking
|
|
98
|
+
onPromise(event) {
|
|
99
|
+
return this._tl.onPromise(event);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Destroys this timeline and resets all props
|
|
103
|
+
*/
|
|
104
|
+
destroy() {
|
|
105
|
+
this._tl.destroy();
|
|
106
|
+
// @ts-ignore
|
|
107
|
+
this._tl = null;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
function parseAutoplay(autoplay) {
|
|
111
|
+
if (autoplay !== true && autoplay !== false)
|
|
112
|
+
throw new Error('autoplay needs to be true|false');
|
|
113
|
+
return autoplay;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=public.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/animation/public.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import Animation, { AnimationProps } from './animation/public.js';
|
|
2
|
+
import Timeline 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, 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?: Record<string, any>): 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,MAAM,sBAAsB,CAAC;AAC5C,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,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,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,QAAQ,CAElE;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,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,OAA8B,MAAM,sBAAsB,CAAC;AAalE,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,QAA6B,EAAE;IACvD,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"}
|