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
package/src/utils/Events.ts
CHANGED
package/src/utils/motionpath.ts
CHANGED
|
@@ -7,10 +7,10 @@ function catmullRom(
|
|
|
7
7
|
p1Tension: number,
|
|
8
8
|
p2Tension: number,
|
|
9
9
|
) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
const v0 = (p2 - p0) * p1Tension;
|
|
11
|
+
const v1 = (p3 - p1) * p2Tension;
|
|
12
|
+
const t2 = t * t;
|
|
13
|
+
const t3 = t2 * t;
|
|
14
14
|
|
|
15
15
|
return (
|
|
16
16
|
(2 * p1 - 2 * p2 + v0 + v1) * t3 +
|
|
@@ -40,7 +40,7 @@ export function curve(
|
|
|
40
40
|
): (t: number) => { x: number; y: number } {
|
|
41
41
|
if (points.length <= 1) throw new Error('curve expects at least 2 points');
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
const startEndStraight = opts.startEndStraight ?? true;
|
|
44
44
|
if (startEndStraight) {
|
|
45
45
|
points[0].straight = true;
|
|
46
46
|
points[points.length - 1].straight = true;
|
package/src/utils/utils.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Callback } from '../responsive/ResponsiveEvent.js';
|
|
2
1
|
import { curve } from './motionpath.js';
|
|
3
2
|
|
|
4
3
|
export { curve };
|
|
@@ -100,15 +99,6 @@ export function words(
|
|
|
100
99
|
* get the offset to the current page page
|
|
101
100
|
*/
|
|
102
101
|
export function pageOffset(el: HTMLElement) {
|
|
103
|
-
if ('offsetTop' in el) {
|
|
104
|
-
return {
|
|
105
|
-
top: el.offsetTop,
|
|
106
|
-
left: el.offsetLeft,
|
|
107
|
-
width: el.offsetWidth,
|
|
108
|
-
height: el.offsetHeight,
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
|
|
112
102
|
const rect = (el as HTMLElement).getBoundingClientRect();
|
|
113
103
|
return {
|
|
114
104
|
top: window.scrollY + rect.top,
|
package/src/values/ColorValue.ts
CHANGED
package/src/values/Value.ts
CHANGED
package/.eslintrc.cjs
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
"env": {
|
|
3
|
-
"browser": true,
|
|
4
|
-
"es2021": true
|
|
5
|
-
},
|
|
6
|
-
"extends": "eslint:recommended",
|
|
7
|
-
"overrides": [
|
|
8
|
-
{
|
|
9
|
-
"env": {
|
|
10
|
-
"node": true
|
|
11
|
-
},
|
|
12
|
-
"files": [
|
|
13
|
-
".eslintrc.{js,cjs}"
|
|
14
|
-
],
|
|
15
|
-
"parserOptions": {
|
|
16
|
-
"sourceType": "script"
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
],
|
|
20
|
-
"parserOptions": {
|
|
21
|
-
"ecmaVersion": "latest",
|
|
22
|
-
"sourceType": "module"
|
|
23
|
-
},
|
|
24
|
-
"rules": {
|
|
25
|
-
"no-unused-vars": [
|
|
26
|
-
"error",
|
|
27
|
-
{
|
|
28
|
-
"varsIgnorePattern": "^_",
|
|
29
|
-
"argsIgnorePattern": "^_"
|
|
30
|
-
}
|
|
31
|
-
],
|
|
32
|
-
"no-constant-condition": [
|
|
33
|
-
"error",
|
|
34
|
-
{
|
|
35
|
-
"checkLoops": false
|
|
36
|
-
}
|
|
37
|
-
]
|
|
38
|
-
}
|
|
39
|
-
}
|
package/src/animator.js
DELETED
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
/* eslint no-unused-vars: 0 */
|
|
2
|
-
|
|
3
|
-
import { quadInOut, quadOut } from './easing/index.js';
|
|
4
|
-
import { range } from 'fire/util.js';
|
|
5
|
-
|
|
6
|
-
const START = 0;
|
|
7
|
-
const RUNNING = 1;
|
|
8
|
-
const ENDING = 2;
|
|
9
|
-
const ENDED = 3;
|
|
10
|
-
|
|
11
|
-
export default class Animator {
|
|
12
|
-
constructor(el, props) {
|
|
13
|
-
this.el = el;
|
|
14
|
-
|
|
15
|
-
this.running = false;
|
|
16
|
-
|
|
17
|
-
this.props = [];
|
|
18
|
-
|
|
19
|
-
this.prevTime = null;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
for (const propName in props) {
|
|
23
|
-
const prop = new PropertyAnimator(propName, props[propName], el);
|
|
24
|
-
this.props.push(prop);
|
|
25
|
-
this[propName] = prop;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// if the animation loop has not started starts it
|
|
30
|
-
run() {
|
|
31
|
-
// if running
|
|
32
|
-
if (this.prevTime !== null)
|
|
33
|
-
return;
|
|
34
|
-
|
|
35
|
-
requestAnimationFrame(a => this._tick(a));
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
_tick(elapsed) {
|
|
39
|
-
if (this.prevTime === null)
|
|
40
|
-
this.prevTime = elapsed;
|
|
41
|
-
|
|
42
|
-
const change = elapsed - this.prevTime;
|
|
43
|
-
this.prevTime = elapsed;
|
|
44
|
-
|
|
45
|
-
const transforms = [];
|
|
46
|
-
const cssVars = [];
|
|
47
|
-
|
|
48
|
-
let stillRunning = false;
|
|
49
|
-
|
|
50
|
-
for (const prop of this.props) {
|
|
51
|
-
prop._tick(change);
|
|
52
|
-
|
|
53
|
-
if (prop.state < ENDED)
|
|
54
|
-
stillRunning = true;
|
|
55
|
-
|
|
56
|
-
if (prop.name === 'translateY' || prop.name === 'scale')
|
|
57
|
-
transforms.push(prop);
|
|
58
|
-
else if (prop.name.startsWith('--'))
|
|
59
|
-
cssVars.push(prop);
|
|
60
|
-
else
|
|
61
|
-
throw new Error('unknown prop ' + prop.name);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (!stillRunning) {
|
|
65
|
-
this.prevTime = null;
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
if (transforms.some(t => t.state < ENDED)) {
|
|
70
|
-
this.el.style.transform = transforms.map(t => {
|
|
71
|
-
const v = t._toTransformValue();
|
|
72
|
-
return v;
|
|
73
|
-
}).join(' ');
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
for (const prop of cssVars) {
|
|
77
|
-
if (prop.state < ENDED)
|
|
78
|
-
this.el.style.setProperty(prop.name, prop._toCssValue());
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
requestAnimationFrame(a => this._tick(a));
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
class PropertyAnimator {
|
|
87
|
-
constructor(name, type, el) {
|
|
88
|
-
this.name = name;
|
|
89
|
-
this.type = type;
|
|
90
|
-
|
|
91
|
-
this.fromV = null;
|
|
92
|
-
this.currentV = null;
|
|
93
|
-
this.toV = null;
|
|
94
|
-
|
|
95
|
-
this.easing = quadInOut;
|
|
96
|
-
|
|
97
|
-
this.elapsed = 0;
|
|
98
|
-
this.duration = 0;
|
|
99
|
-
this.state = ENDED;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
set(val) {
|
|
103
|
-
this.fromV = val;
|
|
104
|
-
this.currentV = val;
|
|
105
|
-
this.toV = val;
|
|
106
|
-
|
|
107
|
-
this.elapsed = 0;
|
|
108
|
-
this.duration = 0;
|
|
109
|
-
this.state = START;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
to(val, dur = null) {
|
|
113
|
-
this.fromV = this.currentV;
|
|
114
|
-
this.toV = val;
|
|
115
|
-
|
|
116
|
-
if (this.state === RUNNING)
|
|
117
|
-
this.easing = quadOut;
|
|
118
|
-
else
|
|
119
|
-
this.easing = quadInOut;
|
|
120
|
-
|
|
121
|
-
this.elapsed = 0;
|
|
122
|
-
this.duration = dur ?? 500;
|
|
123
|
-
this.state = START;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
_tick(change) {
|
|
127
|
-
if (this.state >= ENDING)
|
|
128
|
-
return this.state = ENDED;
|
|
129
|
-
|
|
130
|
-
this.elapsed += change;
|
|
131
|
-
|
|
132
|
-
const dur = Math.max(this.duration, 1);
|
|
133
|
-
const t = Math.min(this.elapsed / dur, 1);
|
|
134
|
-
if (t >= 1)
|
|
135
|
-
this.state = ENDED;
|
|
136
|
-
else
|
|
137
|
-
this.state = RUNNING;
|
|
138
|
-
|
|
139
|
-
const et = this.easing(t);
|
|
140
|
-
|
|
141
|
-
if (this.type === 'num') {
|
|
142
|
-
const dif = this.toV - this.fromV;
|
|
143
|
-
this.currentV = this.fromV + dif * et;
|
|
144
|
-
} else if (this.type === 'hex') {
|
|
145
|
-
if (!Array.isArray(this.fromV))
|
|
146
|
-
this.fromV = hexToRgb(this.fromV);
|
|
147
|
-
if (!Array.isArray(this.toV))
|
|
148
|
-
this.toV = hexToRgb(this.toV);
|
|
149
|
-
|
|
150
|
-
// now animate
|
|
151
|
-
this.currentV = this.fromV.map((from, i) => {
|
|
152
|
-
return from + (this.toV[i] - from) * et;
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
_toTransformValue() {
|
|
158
|
-
let v = this.currentV;
|
|
159
|
-
if (this.name === 'translateY')
|
|
160
|
-
v += 'px';
|
|
161
|
-
|
|
162
|
-
return `${this.name}(${v})`;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
_toCssValue() {
|
|
166
|
-
if (this.type === 'hex')
|
|
167
|
-
return `rgba(${this.currentV.map(v => Math.round(v)).join()}, 1)`;
|
|
168
|
-
throw new Error('to css value');
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
function hexToRgb(val) {
|
|
174
|
-
if (!val.startsWith('#') || val.length !== 7)
|
|
175
|
-
throw new Error('expected a hex value with 6 characters');
|
|
176
|
-
|
|
177
|
-
const hex = val.substring(1);
|
|
178
|
-
|
|
179
|
-
const values = range(0, 3)
|
|
180
|
-
.map(i => parseInt(hex.substring(i * 2, i * 2 + 2), 16));
|
|
181
|
-
|
|
182
|
-
return values;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
// function rgbToHex(rgb) {
|
|
186
|
-
// return
|
|
187
|
-
// }
|