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 @@
|
|
|
1
|
+
{"version":3,"file":"ResponsiveEvent.d.ts","sourceRoot":"","sources":["../../src/responsive/ResponsiveEvent.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,CACtB,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACpC,CAAC,EAAE;IAAE,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,KACrB,IAAI,CAAC;AAEV,MAAM,CAAC,OAAO,OAAO,eAAe;IACnC,OAAO,CAAC,UAAU,CAAgB;;IAQlC,MAAM,CAAC,MAAM,IAAI,eAAe,GAAG,IAAI;IAkBvC,GAAG,CAAC,EAAE,EAAE,QAAQ;;;IAUhB,MAAM,CAAC,EAAE,EAAE,QAAQ;IAInB,SAAS,CAAC,EAAE,EAAE,KAAK;CAanB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export default class ResponsiveEvent {
|
|
2
|
+
_listeners;
|
|
3
|
+
constructor() {
|
|
4
|
+
this._listeners = new Set();
|
|
5
|
+
window.addEventListener('resize', e => this._onResize(e));
|
|
6
|
+
}
|
|
7
|
+
static global() {
|
|
8
|
+
// allow to define a test ticker
|
|
9
|
+
// @ts-ignore
|
|
10
|
+
if (typeof globalThis !== 'undefined' && globalThis.chnobliResponsive)
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
return globalThis.chnobliResponsive;
|
|
13
|
+
if (typeof window === 'undefined')
|
|
14
|
+
return null;
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
if (typeof window.chnobliResponsive === 'undefined')
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
window.chnobliResponsive = new ResponsiveEvent();
|
|
19
|
+
// @ts-ignore
|
|
20
|
+
return window.chnobliResponsive;
|
|
21
|
+
}
|
|
22
|
+
// fn({ width, height }, { remove() })
|
|
23
|
+
add(fn) {
|
|
24
|
+
this._listeners.add(fn);
|
|
25
|
+
return {
|
|
26
|
+
remove: () => {
|
|
27
|
+
this.remove(fn);
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
remove(fn) {
|
|
32
|
+
this._listeners.delete(fn);
|
|
33
|
+
}
|
|
34
|
+
_onResize(_e) {
|
|
35
|
+
for (const fn of this._listeners) {
|
|
36
|
+
fn({
|
|
37
|
+
width: window.innerWidth,
|
|
38
|
+
height: window.innerHeight,
|
|
39
|
+
}, {
|
|
40
|
+
remove: () => this.remove(fn),
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=ResponsiveEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResponsiveEvent.js","sourceRoot":"","sources":["../../src/responsive/ResponsiveEvent.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,OAAO,eAAe;IAC3B,UAAU,CAAgB;IAElC;QACC,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;QAE5B,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,aAAa;QACb,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,UAAU,CAAC,iBAAiB;YACpE,aAAa;YACb,OAAO,UAAU,CAAC,iBAAiB,CAAC;QAErC,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QAE/C,aAAa;QACb,IAAI,OAAO,MAAM,CAAC,iBAAiB,KAAK,WAAW;YAClD,aAAa;YACb,MAAM,CAAC,iBAAiB,GAAG,IAAI,eAAe,EAAE,CAAC;QAClD,aAAa;QACb,OAAO,MAAM,CAAC,iBAAiB,CAAC;IACjC,CAAC;IAED,sCAAsC;IACtC,GAAG,CAAC,EAAY;QACf,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,EAAY;QAClB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,SAAS,CAAC,EAAS;QAClB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,EAAE,CACD;gBACC,KAAK,EAAE,MAAM,CAAC,UAAU;gBACxB,MAAM,EAAE,MAAM,CAAC,WAAW;aAC1B,EACD;gBACC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;aAC7B,CACD,CAAC;QACH,CAAC;IACF,CAAC;CACD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Callback } from './ResponsiveEvent.js';
|
|
2
|
+
export default class TestResponsiveEvent {
|
|
3
|
+
private _listeners;
|
|
4
|
+
constructor();
|
|
5
|
+
add(fn: Callback): {
|
|
6
|
+
remove: () => void;
|
|
7
|
+
};
|
|
8
|
+
remove(fn: Callback): void;
|
|
9
|
+
resize(width: number, height: number): void;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=TestEvent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestEvent.d.ts","sourceRoot":"","sources":["../../src/responsive/TestEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACvC,OAAO,CAAC,UAAU,CAAgB;;IAUlC,GAAG,CAAC,EAAE,EAAE,QAAQ;;;IAUhB,MAAM,CAAC,EAAE,EAAE,QAAQ;IAInB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAKpC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export default class TestResponsiveEvent {
|
|
2
|
+
_listeners;
|
|
3
|
+
constructor() {
|
|
4
|
+
this._listeners = new Set();
|
|
5
|
+
// @ts-ignore
|
|
6
|
+
globalThis.chnobliResponsive = this;
|
|
7
|
+
}
|
|
8
|
+
// fn({ width, height }, { remove() })
|
|
9
|
+
add(fn) {
|
|
10
|
+
this._listeners.add(fn);
|
|
11
|
+
return {
|
|
12
|
+
remove: () => {
|
|
13
|
+
this.remove(fn);
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
remove(fn) {
|
|
18
|
+
this._listeners.delete(fn);
|
|
19
|
+
}
|
|
20
|
+
resize(width, height) {
|
|
21
|
+
for (const fn of this._listeners) {
|
|
22
|
+
fn({ width, height }, { remove: () => this.remove(fn) });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=TestEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestEvent.js","sourceRoot":"","sources":["../../src/responsive/TestEvent.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAC/B,UAAU,CAAgB;IAElC;QACC,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;QAE5B,aAAa;QACb,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC;IACrC,CAAC;IAED,sCAAsC;IACtC,GAAG,CAAC,EAAY;QACf,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,EAAY;QAClB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,MAAc;QACnC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC;CACD"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import PublicTimeline from '../timeline/public.js';
|
|
2
|
+
export type ScrollTrigger = {
|
|
3
|
+
target: HTMLElement;
|
|
4
|
+
offset?: OffsetValue;
|
|
5
|
+
view?: OffsetValue;
|
|
6
|
+
} | HTMLElement;
|
|
7
|
+
export type OffsetValue = 'top' | 'center' | 'bottom' | number;
|
|
8
|
+
export type ParsedScrollTrigger = {
|
|
9
|
+
target: HTMLElement;
|
|
10
|
+
offset: number;
|
|
11
|
+
view: number;
|
|
12
|
+
position: Position;
|
|
13
|
+
};
|
|
14
|
+
export type ScrollOffset = {
|
|
15
|
+
y: number;
|
|
16
|
+
view: number;
|
|
17
|
+
position: number;
|
|
18
|
+
};
|
|
19
|
+
export type Position = number | string;
|
|
20
|
+
export default class ScrollTimeline {
|
|
21
|
+
private _initialized;
|
|
22
|
+
private _globalEvent;
|
|
23
|
+
private _rmEvent;
|
|
24
|
+
private _triggers;
|
|
25
|
+
private timelines;
|
|
26
|
+
offsets: ScrollOffset[];
|
|
27
|
+
constructor();
|
|
28
|
+
/**
|
|
29
|
+
* Add a trigger to the timeline
|
|
30
|
+
*
|
|
31
|
+
* Providing an offset at which point the trigger should end
|
|
32
|
+
*
|
|
33
|
+
* If it is the first trigger it is not allowed to be set?
|
|
34
|
+
*/
|
|
35
|
+
add(trigger: ScrollTrigger, position?: Position): void;
|
|
36
|
+
addTimeline(timeline: PublicTimeline): void;
|
|
37
|
+
init(): void;
|
|
38
|
+
private _onScroll;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=Scroll.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Scroll.d.ts","sourceRoot":"","sources":["../../src/scroll/Scroll.ts"],"names":[],"mappings":"AAAA,OAAO,cAA0B,MAAM,uBAAuB,CAAC;AA8C/D,MAAM,MAAM,aAAa,GACtB;IACA,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;CAClB,GACD,WAAW,CAAC;AAEf,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE/D,MAAM,MAAM,mBAAmB,GAAG;IACjC,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAE1B,CAAC,EAAE,MAAM,CAAC;IAEV,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,cAAc;IAClC,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAa;IAE7B,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,EAAE,YAAY,EAAE,CAAC;;IAwBxB;;;;;;OAMG;IACH,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,QAAQ;IAM/C,WAAW,CAAC,QAAQ,EAAE,cAAc;IAIpC,IAAI;IAkDJ,OAAO,CAAC,SAAS;CA2BjB"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { pageOffset } from '../utils/utils.js';
|
|
2
|
+
import ScrollEvent from './ScrollEvent.js';
|
|
3
|
+
export default class ScrollTimeline {
|
|
4
|
+
_initialized;
|
|
5
|
+
_globalEvent;
|
|
6
|
+
_rmEvent;
|
|
7
|
+
_triggers;
|
|
8
|
+
timelines;
|
|
9
|
+
offsets;
|
|
10
|
+
constructor() {
|
|
11
|
+
this._initialized = false;
|
|
12
|
+
this._globalEvent = ScrollEvent.global();
|
|
13
|
+
this._rmEvent = this._globalEvent.add(y => this._onScroll(y)).remove;
|
|
14
|
+
this._triggers = [];
|
|
15
|
+
this.timelines = [];
|
|
16
|
+
this.offsets = [];
|
|
17
|
+
// this.timeline = timeline;
|
|
18
|
+
// this._triggers = triggers.map(parseTrigger);
|
|
19
|
+
// this.offsets = this._triggers.map(t => {
|
|
20
|
+
// return {
|
|
21
|
+
// y: 0,
|
|
22
|
+
// view: t.view,
|
|
23
|
+
// };
|
|
24
|
+
// });
|
|
25
|
+
// if (this.offsets.length < 2)
|
|
26
|
+
// throw new Error('scroll timeline needs at least two triggers');
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Add a trigger to the timeline
|
|
30
|
+
*
|
|
31
|
+
* Providing an offset at which point the trigger should end
|
|
32
|
+
*
|
|
33
|
+
* If it is the first trigger it is not allowed to be set?
|
|
34
|
+
*/
|
|
35
|
+
add(trigger, position) {
|
|
36
|
+
this._triggers.push(parseTrigger(trigger, position, this._triggers.length));
|
|
37
|
+
}
|
|
38
|
+
addTimeline(timeline) {
|
|
39
|
+
this.timelines.push(timeline);
|
|
40
|
+
}
|
|
41
|
+
init() {
|
|
42
|
+
// todo we need to calculate the position for each timeline
|
|
43
|
+
//
|
|
44
|
+
// calculate the positions and offsets
|
|
45
|
+
// if we are missing one extend them
|
|
46
|
+
let previousY = -1;
|
|
47
|
+
this.offsets = this._triggers.map(t => {
|
|
48
|
+
const offset = pageOffset(t.target);
|
|
49
|
+
const y = offset.top + offset.height * t.offset;
|
|
50
|
+
if (y < previousY)
|
|
51
|
+
throw new Error('offsets are not in order');
|
|
52
|
+
let position;
|
|
53
|
+
if (typeof t.position === 'string') {
|
|
54
|
+
if (this.timelines.length !== 1)
|
|
55
|
+
throw new Error('labels can only be used with one timeline');
|
|
56
|
+
position = this.timelines[0].labelPosition(t.position);
|
|
57
|
+
}
|
|
58
|
+
else if (t.position >= 0 || t.position <= 1) {
|
|
59
|
+
position = t.position;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
throw new Error('position should be between 0 and 1');
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
y,
|
|
66
|
+
view: t.view,
|
|
67
|
+
position,
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
if (this.offsets.length < 1)
|
|
71
|
+
throw new Error('scroll timeline needs at least one trigger');
|
|
72
|
+
if (this.offsets.length === 1) {
|
|
73
|
+
this.offsets.push({
|
|
74
|
+
y: this.offsets[0].y +
|
|
75
|
+
pageOffset(this._triggers[0].target).height,
|
|
76
|
+
view: 1,
|
|
77
|
+
position: 1,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
_onScroll({ y, height }) {
|
|
82
|
+
if (!this._initialized) {
|
|
83
|
+
this.init();
|
|
84
|
+
this._initialized = true;
|
|
85
|
+
}
|
|
86
|
+
// find the matching offset
|
|
87
|
+
// rolling window
|
|
88
|
+
for (let i = 1; i < this.offsets.length; i++) {
|
|
89
|
+
const start = this.offsets[i - 1];
|
|
90
|
+
const end = this.offsets[i];
|
|
91
|
+
const startY = start.y + height * start.view;
|
|
92
|
+
const endY = end.y + height * end.view;
|
|
93
|
+
const dif = endY - startY;
|
|
94
|
+
const x = 1 - (endY - y) / dif;
|
|
95
|
+
for (const timeline of this.timelines) {
|
|
96
|
+
// calc pos range
|
|
97
|
+
const pos = start.position + (end.position - start.position) * x;
|
|
98
|
+
timeline.seek(pos);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Parse the start property
|
|
105
|
+
*
|
|
106
|
+
* can be an HTMLElement or an object { target, offset }
|
|
107
|
+
*
|
|
108
|
+
* the default offset is top
|
|
109
|
+
* the default view is top
|
|
110
|
+
*/
|
|
111
|
+
function parseTrigger(val, position, i) {
|
|
112
|
+
// might be an object { target, offset }
|
|
113
|
+
if (!val) {
|
|
114
|
+
throw new Error('unknown property use an html element or an object');
|
|
115
|
+
}
|
|
116
|
+
let element = null;
|
|
117
|
+
let offset = 'top';
|
|
118
|
+
let view = i == 0 ? 'top' : 'bottom';
|
|
119
|
+
if (typeof val === 'object') {
|
|
120
|
+
if (val instanceof HTMLElement) {
|
|
121
|
+
element = val;
|
|
122
|
+
}
|
|
123
|
+
else if ('target' in val) {
|
|
124
|
+
element = val.target;
|
|
125
|
+
if (typeof val.offset !== 'undefined')
|
|
126
|
+
offset = val.offset;
|
|
127
|
+
if (typeof val.view !== 'undefined')
|
|
128
|
+
view = val.view;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
throw new Error('start unknown ' + val);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
throw new Error('unknown start val');
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
target: element,
|
|
139
|
+
offset: parseOffset(offset),
|
|
140
|
+
view: parseOffset(view),
|
|
141
|
+
position: position ?? (i == 0 ? 0 : 1),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Parse the offset value
|
|
146
|
+
*
|
|
147
|
+
* can be a string (top, center, bottom) or a number (0-1)
|
|
148
|
+
*
|
|
149
|
+
* 0 = top
|
|
150
|
+
* 0.5 = center
|
|
151
|
+
* 1 = bottom
|
|
152
|
+
*/
|
|
153
|
+
function parseOffset(val) {
|
|
154
|
+
if (typeof val === 'string') {
|
|
155
|
+
if (val === 'top')
|
|
156
|
+
return 0;
|
|
157
|
+
if (val === 'center')
|
|
158
|
+
return 0.5;
|
|
159
|
+
if (val === 'bottom')
|
|
160
|
+
return 1;
|
|
161
|
+
throw new Error('unknown view value ' + val);
|
|
162
|
+
}
|
|
163
|
+
if (typeof val !== 'number' || val < 0 || val > 1) {
|
|
164
|
+
throw new Error('view expecting to be a top/center/bottom or a percent value');
|
|
165
|
+
}
|
|
166
|
+
return val;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=Scroll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Scroll.js","sourceRoot":"","sources":["../../src/scroll/Scroll.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type Callback = (a: {
|
|
2
|
+
y: number;
|
|
3
|
+
height: number;
|
|
4
|
+
}, opts: {
|
|
5
|
+
remove: () => void;
|
|
6
|
+
}) => void;
|
|
7
|
+
export default class ScrollEvent {
|
|
8
|
+
_listeners: Set<Callback>;
|
|
9
|
+
constructor();
|
|
10
|
+
static global(): any;
|
|
11
|
+
add(fn: Callback): {
|
|
12
|
+
remove: () => void;
|
|
13
|
+
};
|
|
14
|
+
remove(fn: Callback): void;
|
|
15
|
+
private _onScroll;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=ScrollEvent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollEvent.d.ts","sourceRoot":"","sources":["../../src/scroll/ScrollEvent.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,CACtB,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAChC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,KACxB,IAAI,CAAC;AAEV,MAAM,CAAC,OAAO,OAAO,WAAW;IAC/B,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;;IAQ1B,MAAM,CAAC,MAAM;IAWb,GAAG,CAAC,EAAE,EAAE,QAAQ;;;IAUhB,MAAM,CAAC,EAAE,EAAE,QAAQ;IAInB,OAAO,CAAC,SAAS;CAajB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export default class ScrollEvent {
|
|
2
|
+
_listeners;
|
|
3
|
+
constructor() {
|
|
4
|
+
this._listeners = new Set();
|
|
5
|
+
window.addEventListener('scroll', e => this._onScroll(e));
|
|
6
|
+
}
|
|
7
|
+
static global() {
|
|
8
|
+
if (typeof window === 'undefined')
|
|
9
|
+
return null;
|
|
10
|
+
// @ts-ignore
|
|
11
|
+
if (typeof window.chnobliScroll === 'undefined')
|
|
12
|
+
// @ts-ignore
|
|
13
|
+
window.chnobliScroll = new ScrollEvent();
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
return window.chnobliScroll;
|
|
16
|
+
}
|
|
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
|
+
_onScroll(_e) {
|
|
29
|
+
for (const fn of this._listeners) {
|
|
30
|
+
fn({
|
|
31
|
+
y: window.scrollY,
|
|
32
|
+
height: window.innerHeight,
|
|
33
|
+
}, {
|
|
34
|
+
remove: () => this.remove(fn),
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=ScrollEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollEvent.js","sourceRoot":"","sources":["../../src/scroll/ScrollEvent.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,OAAO,WAAW;IAC/B,UAAU,CAAgB;IAE1B;QACC,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;QAE5B,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,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QAE/C,aAAa;QACb,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,WAAW;YAC9C,aAAa;YACb,MAAM,CAAC,aAAa,GAAG,IAAI,WAAW,EAAE,CAAC;QAC1C,aAAa;QACb,OAAO,MAAM,CAAC,aAAa,CAAC;IAC7B,CAAC;IAED,GAAG,CAAC,EAAY;QACf,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,EAAY;QAClB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAEO,SAAS,CAAC,EAAS;QAC1B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,EAAE,CACD;gBACC,CAAC,EAAE,MAAM,CAAC,OAAO;gBACjB,MAAM,EAAE,MAAM,CAAC,WAAW;aAC1B,EACD;gBACC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;aAC7B,CACD,CAAC;QACH,CAAC;IACF,CAAC;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scroll/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC;;GAEG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAE/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scroll/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC;;GAEG;AACH,MAAM,UAAU,MAAM;IACrB,OAAO,IAAI,MAAM,EAAE,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Timeline } from '../chnobli.js';
|
|
2
|
+
import { Position, ScrollTrigger } from './Scroll.js';
|
|
3
|
+
export default class Scroll {
|
|
4
|
+
private _inner;
|
|
5
|
+
constructor();
|
|
6
|
+
/**
|
|
7
|
+
* Add a trigger to the timeline
|
|
8
|
+
*
|
|
9
|
+
* Providing an offset at which point the trigger should end
|
|
10
|
+
*/
|
|
11
|
+
add(trigger: ScrollTrigger, position?: Position): this;
|
|
12
|
+
/**
|
|
13
|
+
* Add a timeline to the scroll
|
|
14
|
+
*/
|
|
15
|
+
addTimeline(timeline: Timeline): this;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=public.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/scroll/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAuB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,MAAM;IAC1B,OAAO,CAAC,MAAM,CAAiB;;IAM/B;;;;OAIG;IACH,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI;IAMtD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAKrC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// import Scroll from './Scroll.js';
|
|
2
|
+
import ScrollTimeline from './Scroll.js';
|
|
3
|
+
export default class Scroll {
|
|
4
|
+
_inner;
|
|
5
|
+
constructor() {
|
|
6
|
+
this._inner = new ScrollTimeline();
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Add a trigger to the timeline
|
|
10
|
+
*
|
|
11
|
+
* Providing an offset at which point the trigger should end
|
|
12
|
+
*/
|
|
13
|
+
add(trigger, position) {
|
|
14
|
+
this._inner.add(trigger, position);
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Add a timeline to the scroll
|
|
19
|
+
*/
|
|
20
|
+
addTimeline(timeline) {
|
|
21
|
+
this._inner.addTimeline(timeline);
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=public.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/scroll/public.ts"],"names":[],"mappings":"AACA,oCAAoC;AACpC,OAAO,cAA2C,MAAM,aAAa,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,MAAM;IAClB,MAAM,CAAiB;IAE/B;QACC,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,OAAsB,EAAE,QAAmB;QAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEnC,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,QAAkB;QAC7B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAElC,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Staggering allows to have a different value for every target
|
|
3
|
+
* allowing to easely offset each target by a few pixels
|
|
4
|
+
*/
|
|
5
|
+
export declare function callStagger<O>(value: O | Stagger<O>, i: number, length?: number): O;
|
|
6
|
+
export declare function staggerMap<O, NO>(value: O | Stagger<O>, fn: (val: O) => NO): NO | Stagger<NO>;
|
|
7
|
+
export type StaggerValue<O> = (i: number, length?: number) => O;
|
|
8
|
+
export default class Stagger<O> {
|
|
9
|
+
private fn;
|
|
10
|
+
/**
|
|
11
|
+
* @ignore
|
|
12
|
+
*/
|
|
13
|
+
constructor(value: StaggerValue<O>);
|
|
14
|
+
call(i: number, length?: number): O;
|
|
15
|
+
/**
|
|
16
|
+
* @ignore
|
|
17
|
+
*/
|
|
18
|
+
__isStagger__(): void;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=stagger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stagger.d.ts","sourceRoot":"","sources":["../../src/stagger/stagger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,wBAAgB,WAAW,CAAC,CAAC,EAC5B,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACrB,CAAC,EAAE,MAAM,EACT,MAAM,CAAC,EAAE,MAAM,GACb,CAAC,CAIH;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,EAAE,EAC/B,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACrB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,GAChB,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAQlB;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC;AAEhE,MAAM,CAAC,OAAO,OAAO,OAAO,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAkB;IAE5B;;OAEG;gBACS,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IAUlC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC;IAInC;;OAEG;IACH,aAAa;CACb"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Staggering allows to have a different value for every target
|
|
3
|
+
* allowing to easely offset each target by a few pixels
|
|
4
|
+
*/
|
|
5
|
+
function isStagger(value) {
|
|
6
|
+
const v = value;
|
|
7
|
+
return (typeof v === 'object' &&
|
|
8
|
+
v !== null &&
|
|
9
|
+
typeof v.__isStagger__ === 'function');
|
|
10
|
+
}
|
|
11
|
+
export function callStagger(value, i, length) {
|
|
12
|
+
if (isStagger(value))
|
|
13
|
+
return value.call(i, length);
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
export function staggerMap(value, fn) {
|
|
17
|
+
if (isStagger(value)) {
|
|
18
|
+
return new Stagger((i, length) => fn(value.call(i, length)));
|
|
19
|
+
}
|
|
20
|
+
return fn(value);
|
|
21
|
+
}
|
|
22
|
+
export default class Stagger {
|
|
23
|
+
fn;
|
|
24
|
+
/**
|
|
25
|
+
* @ignore
|
|
26
|
+
*/
|
|
27
|
+
constructor(value) {
|
|
28
|
+
if (typeof value === 'function') {
|
|
29
|
+
this.fn = value;
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
// if (value === )
|
|
33
|
+
throw new Error('unknown stagger value ' + value);
|
|
34
|
+
}
|
|
35
|
+
call(i, length) {
|
|
36
|
+
return this.fn(i, length);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @ignore
|
|
40
|
+
*/
|
|
41
|
+
__isStagger__() { }
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=stagger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stagger.js","sourceRoot":"","sources":["../../src/stagger/stagger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,SAAS,SAAS,CAAI,KAAU;IAC/B,MAAM,CAAC,GAAG,KAAY,CAAC;IAEvB,OAAO,CACN,OAAO,CAAC,KAAK,QAAQ;QACrB,CAAC,KAAK,IAAI;QACV,OAAO,CAAC,CAAC,aAAa,KAAK,UAAU,CACrC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAC1B,KAAqB,EACrB,CAAS,EACT,MAAe;IAEf,IAAI,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAEnD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,UAAU,CACzB,KAAqB,EACrB,EAAkB;IAElB,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAS,EAAE,MAAe,EAAE,EAAE,CACjD,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CACzB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;AAClB,CAAC;AAID,MAAM,CAAC,OAAO,OAAO,OAAO;IACnB,EAAE,CAAkB;IAE5B;;OAEG;IACH,YAAY,KAAsB;QACjC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC;YAChB,OAAO;QACR,CAAC;QAED,kBAAkB;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,CAAC,CAAS,EAAE,MAAe;QAC9B,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,aAAa,KAAI,CAAC;CAClB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import Value from '../values/Value.js';
|
|
2
|
+
import StyleValue from '../values/StyleValue.js';
|
|
3
|
+
export default class BaseTarget<T> {
|
|
4
|
+
target: T;
|
|
5
|
+
constructor(target: T);
|
|
6
|
+
type(): string;
|
|
7
|
+
getValue(name: string): Value | null;
|
|
8
|
+
setValue(name: string, _value: Value): void;
|
|
9
|
+
removeValue(name: string): void;
|
|
10
|
+
getTransformValue(name: string): Value | null;
|
|
11
|
+
setTransformValue(name: string, value: Value): void;
|
|
12
|
+
removeTransformValue(name: string): void;
|
|
13
|
+
/**
|
|
14
|
+
* returns nothing or a style value
|
|
15
|
+
*/
|
|
16
|
+
getStyleValue(name: string): StyleValue | null;
|
|
17
|
+
/**
|
|
18
|
+
* Expects a style value
|
|
19
|
+
*/
|
|
20
|
+
setStyleValue(name: string, value: StyleValue): void;
|
|
21
|
+
removeStyleValue(name: string): void;
|
|
22
|
+
hasClass(name: string): boolean;
|
|
23
|
+
addClass(name: string): void;
|
|
24
|
+
removeClass(name: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Tries to unify both values so their units match
|
|
27
|
+
*
|
|
28
|
+
* a and b need to be a Value
|
|
29
|
+
*/
|
|
30
|
+
unifyValues(name: string, a: Value, b: Value): [Value, Value];
|
|
31
|
+
apply(): void;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=BaseTarget.old.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseTarget.old.d.ts","sourceRoot":"","sources":["../../src/target/BaseTarget.old.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,oBAAoB,CAAC;AACvC,OAAO,UAAU,MAAM,yBAAyB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,UAAU,CAAC,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC;gBAEE,MAAM,EAAE,CAAC;IAOrB,IAAI;IAIJ,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAIpC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;IAIpC,WAAW,CAAC,IAAI,EAAE,MAAM;IAIxB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAI7C,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAI5C,oBAAoB,CAAC,IAAI,EAAE,MAAM;IAIjC;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAM9C;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAI7C,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAI7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B,QAAQ,CAAC,IAAI,EAAE,MAAM;IAIrB,WAAW,CAAC,IAAI,EAAE,MAAM;IAIxB;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;IAW7D,KAAK;CACL"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import StyleValue from '../values/StyleValue.js';
|
|
2
|
+
export default class BaseTarget {
|
|
3
|
+
target;
|
|
4
|
+
constructor(target) {
|
|
5
|
+
this.target = target;
|
|
6
|
+
// this might be an object, a dom node
|
|
7
|
+
// what about arrays?
|
|
8
|
+
}
|
|
9
|
+
type() {
|
|
10
|
+
return 'unknown';
|
|
11
|
+
}
|
|
12
|
+
getValue(name) {
|
|
13
|
+
throw new Error('cannot get value of ' + name);
|
|
14
|
+
}
|
|
15
|
+
setValue(name, _value) {
|
|
16
|
+
throw new Error('cannot set value of ' + name);
|
|
17
|
+
}
|
|
18
|
+
removeValue(name) {
|
|
19
|
+
throw new Error('cannot remove value of ' + name);
|
|
20
|
+
}
|
|
21
|
+
getTransformValue(name) {
|
|
22
|
+
return this.getValue(name);
|
|
23
|
+
}
|
|
24
|
+
setTransformValue(name, value) {
|
|
25
|
+
return this.setValue(name, value);
|
|
26
|
+
}
|
|
27
|
+
removeTransformValue(name) {
|
|
28
|
+
return this.removeValue(name);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* returns nothing or a style value
|
|
32
|
+
*/
|
|
33
|
+
getStyleValue(name) {
|
|
34
|
+
const val = this.getValue(name);
|
|
35
|
+
if (!val)
|
|
36
|
+
return val;
|
|
37
|
+
return new StyleValue([val]);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Expects a style value
|
|
41
|
+
*/
|
|
42
|
+
setStyleValue(name, value) {
|
|
43
|
+
return this.setValue(name, value.intoValue());
|
|
44
|
+
}
|
|
45
|
+
removeStyleValue(name) {
|
|
46
|
+
return this.removeValue(name);
|
|
47
|
+
}
|
|
48
|
+
hasClass(name) {
|
|
49
|
+
throw new Error('cannot know if class exists ' + name);
|
|
50
|
+
}
|
|
51
|
+
addClass(name) {
|
|
52
|
+
throw new Error('cannot add class ' + name);
|
|
53
|
+
}
|
|
54
|
+
removeClass(name) {
|
|
55
|
+
throw new Error('cannot remove class ' + name);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Tries to unify both values so their units match
|
|
59
|
+
*
|
|
60
|
+
* a and b need to be a Value
|
|
61
|
+
*/
|
|
62
|
+
unifyValues(name, a, b) {
|
|
63
|
+
if (!a.unit && b.unit)
|
|
64
|
+
a.unit = b.unit;
|
|
65
|
+
if (!b.unit && a.unit)
|
|
66
|
+
b.unit = a.unit;
|
|
67
|
+
if (a.unit !== b.unit)
|
|
68
|
+
throw new Error(`${name} cannot unify ${a.unit} and ${b.unit}`);
|
|
69
|
+
return [a, b];
|
|
70
|
+
}
|
|
71
|
+
apply() { }
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=BaseTarget.old.js.map
|