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.
Files changed (197) hide show
  1. package/dist/animation/Animation.d.ts +37 -0
  2. package/dist/animation/Animation.d.ts.map +1 -0
  3. package/dist/animation/Animation.js +232 -0
  4. package/dist/animation/Animation.js.map +1 -0
  5. package/dist/animation/public.d.ts +68 -0
  6. package/dist/animation/public.d.ts.map +1 -0
  7. package/dist/animation/public.js +115 -0
  8. package/dist/animation/public.js.map +1 -0
  9. package/dist/animator/Animator.d.ts +30 -0
  10. package/dist/animator/Animator.d.ts.map +1 -0
  11. package/dist/animator/Animator.js +97 -0
  12. package/dist/animator/Animator.js.map +1 -0
  13. package/dist/animator/index.d.ts +5 -0
  14. package/dist/animator/index.d.ts.map +1 -0
  15. package/dist/animator/index.js +53 -0
  16. package/dist/animator/index.js.map +1 -0
  17. package/dist/animator/public.d.ts +16 -0
  18. package/dist/animator/public.d.ts.map +1 -0
  19. package/dist/animator/public.js +50 -0
  20. package/dist/animator/public.js.map +1 -0
  21. package/dist/chnobli.d.ts +15 -0
  22. package/dist/chnobli.d.ts.map +1 -0
  23. package/dist/chnobli.js +59 -0
  24. package/dist/chnobli.js.map +1 -0
  25. package/dist/property/BasicProperty.d.ts +38 -0
  26. package/dist/property/BasicProperty.d.ts.map +1 -0
  27. package/dist/property/BasicProperty.js +72 -0
  28. package/dist/property/BasicProperty.js.map +1 -0
  29. package/dist/property/ClassProperty.d.ts +32 -0
  30. package/dist/property/ClassProperty.d.ts.map +1 -0
  31. package/dist/property/ClassProperty.js +108 -0
  32. package/dist/property/ClassProperty.js.map +1 -0
  33. package/dist/property/Property.d.ts +13 -0
  34. package/dist/property/Property.d.ts.map +1 -0
  35. package/dist/property/Property.js +22 -0
  36. package/dist/property/Property.js.map +1 -0
  37. package/dist/property/StyleProperty.d.ts +25 -0
  38. package/dist/property/StyleProperty.d.ts.map +1 -0
  39. package/dist/property/StyleProperty.js +221 -0
  40. package/dist/property/StyleProperty.js.map +1 -0
  41. package/dist/property/TransformProperty.d.ts +15 -0
  42. package/dist/property/TransformProperty.d.ts.map +1 -0
  43. package/dist/property/TransformProperty.js +43 -0
  44. package/dist/property/TransformProperty.js.map +1 -0
  45. package/dist/property/TransformXYProperty.d.ts +28 -0
  46. package/dist/property/TransformXYProperty.d.ts.map +1 -0
  47. package/dist/property/TransformXYProperty.js +65 -0
  48. package/dist/property/TransformXYProperty.js.map +1 -0
  49. package/dist/responsive/ResponsiveEvent.d.ts +17 -0
  50. package/dist/responsive/ResponsiveEvent.d.ts.map +1 -0
  51. package/dist/responsive/ResponsiveEvent.js +45 -0
  52. package/dist/responsive/ResponsiveEvent.js.map +1 -0
  53. package/dist/responsive/TestEvent.d.ts +11 -0
  54. package/dist/responsive/TestEvent.d.ts.map +1 -0
  55. package/dist/responsive/TestEvent.js +26 -0
  56. package/dist/responsive/TestEvent.js.map +1 -0
  57. package/dist/scroll/Scroll.d.ts +61 -0
  58. package/dist/scroll/Scroll.d.ts.map +1 -0
  59. package/dist/scroll/Scroll.js +280 -0
  60. package/dist/scroll/Scroll.js.map +1 -0
  61. package/dist/scroll/ScrollEvent.d.ts +17 -0
  62. package/dist/scroll/ScrollEvent.d.ts.map +1 -0
  63. package/dist/scroll/ScrollEvent.js +40 -0
  64. package/dist/scroll/ScrollEvent.js.map +1 -0
  65. package/dist/scroll/index.d.ts +8 -0
  66. package/dist/scroll/index.d.ts.map +1 -0
  67. package/dist/scroll/index.js +9 -0
  68. package/dist/scroll/index.js.map +1 -0
  69. package/dist/scroll/public.d.ts +35 -0
  70. package/dist/scroll/public.d.ts.map +1 -0
  71. package/dist/scroll/public.js +50 -0
  72. package/dist/scroll/public.js.map +1 -0
  73. package/dist/stagger/stagger.d.ts +20 -0
  74. package/dist/stagger/stagger.d.ts.map +1 -0
  75. package/dist/stagger/stagger.js +43 -0
  76. package/dist/stagger/stagger.js.map +1 -0
  77. package/dist/target/BaseTarget.old.d.ts +33 -0
  78. package/dist/target/BaseTarget.old.d.ts.map +1 -0
  79. package/dist/target/BaseTarget.old.js +73 -0
  80. package/dist/target/BaseTarget.old.js.map +1 -0
  81. package/dist/target/DomTarget.d.ts +41 -0
  82. package/dist/target/DomTarget.d.ts.map +1 -0
  83. package/dist/target/DomTarget.js +230 -0
  84. package/dist/target/DomTarget.js.map +1 -0
  85. package/dist/target/ObjectTarget.d.ts +31 -0
  86. package/dist/target/ObjectTarget.d.ts.map +1 -0
  87. package/dist/target/ObjectTarget.js +108 -0
  88. package/dist/target/ObjectTarget.js.map +1 -0
  89. package/dist/target/Target.d.ts +25 -0
  90. package/dist/target/Target.d.ts.map +1 -0
  91. package/dist/target/Target.js +25 -0
  92. package/dist/target/Target.js.map +1 -0
  93. package/dist/target/TestDomNode.d.ts +14 -0
  94. package/dist/target/TestDomNode.d.ts.map +1 -0
  95. package/dist/target/TestDomNode.js +55 -0
  96. package/dist/target/TestDomNode.js.map +1 -0
  97. package/dist/timeline/Nested.d.ts +30 -0
  98. package/dist/timeline/Nested.d.ts.map +1 -0
  99. package/dist/timeline/Nested.js +51 -0
  100. package/dist/timeline/Nested.js.map +1 -0
  101. package/dist/timeline/Timeline.d.ts +42 -0
  102. package/dist/timeline/Timeline.d.ts.map +1 -0
  103. package/dist/timeline/Timeline.js +306 -0
  104. package/dist/timeline/Timeline.js.map +1 -0
  105. package/dist/timeline/public.d.ts +167 -0
  106. package/dist/timeline/public.d.ts.map +1 -0
  107. package/dist/timeline/public.js +396 -0
  108. package/dist/timeline/public.js.map +1 -0
  109. package/dist/timing/AnimationFrameTicker.d.ts +32 -0
  110. package/dist/timing/AnimationFrameTicker.d.ts.map +1 -0
  111. package/dist/timing/AnimationFrameTicker.js +138 -0
  112. package/dist/timing/AnimationFrameTicker.js.map +1 -0
  113. package/dist/timing/Ease.d.ts +6 -0
  114. package/dist/timing/Ease.d.ts.map +1 -0
  115. package/dist/timing/Ease.js +15 -0
  116. package/dist/timing/Ease.js.map +1 -0
  117. package/dist/timing/TestTicker.d.ts +19 -0
  118. package/dist/timing/TestTicker.d.ts.map +1 -0
  119. package/dist/timing/TestTicker.js +85 -0
  120. package/dist/timing/TestTicker.js.map +1 -0
  121. package/dist/timing/Ticker.d.ts +16 -0
  122. package/dist/timing/Ticker.d.ts.map +1 -0
  123. package/dist/timing/Ticker.js +2 -0
  124. package/dist/timing/Ticker.js.map +1 -0
  125. package/dist/timing/Timing.d.ts +116 -0
  126. package/dist/timing/Timing.d.ts.map +1 -0
  127. package/dist/timing/Timing.js +310 -0
  128. package/dist/timing/Timing.js.map +1 -0
  129. package/dist/timing/easing.d.ts +158 -0
  130. package/dist/timing/easing.d.ts.map +1 -0
  131. package/dist/timing/easing.js +273 -0
  132. package/dist/timing/easing.js.map +1 -0
  133. package/dist/utils/Events.d.ts +9 -0
  134. package/dist/utils/Events.d.ts.map +1 -0
  135. package/dist/utils/Events.js +35 -0
  136. package/dist/utils/Events.js.map +1 -0
  137. package/dist/utils/internal.d.ts +5 -0
  138. package/dist/utils/internal.d.ts.map +1 -0
  139. package/dist/utils/internal.js +9 -0
  140. package/dist/utils/internal.js.map +1 -0
  141. package/dist/utils/motionpath.d.ts +16 -0
  142. package/dist/utils/motionpath.d.ts.map +1 -0
  143. package/dist/utils/motionpath.js +41 -0
  144. package/dist/utils/motionpath.js.map +1 -0
  145. package/dist/utils/utils.d.ts +44 -0
  146. package/dist/utils/utils.d.ts.map +1 -0
  147. package/dist/utils/utils.js +88 -0
  148. package/dist/utils/utils.js.map +1 -0
  149. package/dist/values/ColorValue.d.ts +12 -0
  150. package/dist/values/ColorValue.d.ts.map +1 -0
  151. package/dist/values/ColorValue.js +134 -0
  152. package/dist/values/ColorValue.js.map +1 -0
  153. package/dist/values/StyleValue.d.ts +41 -0
  154. package/dist/values/StyleValue.d.ts.map +1 -0
  155. package/dist/values/StyleValue.js +159 -0
  156. package/dist/values/StyleValue.js.map +1 -0
  157. package/dist/values/Value.d.ts +13 -0
  158. package/dist/values/Value.d.ts.map +1 -0
  159. package/dist/values/Value.js +38 -0
  160. package/dist/values/Value.js.map +1 -0
  161. package/dist/values/defaultcolors.d.ts +2 -0
  162. package/dist/values/defaultcolors.d.ts.map +1 -0
  163. package/dist/values/defaultcolors.js +149 -0
  164. package/dist/values/defaultcolors.js.map +1 -0
  165. package/eslint.config.js +23 -0
  166. package/package.json +10 -3
  167. package/src/animation/Animation.ts +6 -3
  168. package/src/animator/Animator.ts +130 -0
  169. package/src/animator/index.ts +56 -0
  170. package/src/animator/public.ts +66 -0
  171. package/src/chnobli.ts +3 -2
  172. package/src/property/ClassProperty.ts +1 -1
  173. package/src/property/TransformXYProperty.ts +1 -1
  174. package/src/scroll/Scroll.ts +202 -51
  175. package/src/scroll/ScrollEvent.ts +1 -0
  176. package/src/scroll/index.ts +3 -0
  177. package/src/scroll/public.ts +35 -2
  178. package/src/target/DomTarget.ts +1 -1
  179. package/src/target/ObjectTarget.ts +19 -13
  180. package/src/tests/properties.test.ts +44 -3
  181. package/src/tests/timeline.test.ts +1 -1
  182. package/src/tests/timing.test.ts +32 -0
  183. package/src/tests/usecases.test.ts +40 -2
  184. package/src/tests/values.test.ts +9 -9
  185. package/src/timeline/Timeline.ts +5 -4
  186. package/src/timeline/public.ts +34 -12
  187. package/src/timing/AnimationFrameTicker.ts +6 -1
  188. package/src/timing/TestTicker.ts +7 -1
  189. package/src/timing/Ticker.ts +5 -1
  190. package/src/timing/Timing.ts +127 -91
  191. package/src/utils/Events.ts +1 -1
  192. package/src/utils/motionpath.ts +5 -5
  193. package/src/utils/utils.ts +0 -10
  194. package/src/values/ColorValue.ts +1 -0
  195. package/src/values/Value.ts +1 -1
  196. package/.eslintrc.cjs +0 -39
  197. package/src/animator.js +0 -187
@@ -29,7 +29,7 @@ export default class Events {
29
29
  }
30
30
 
31
31
  trigger(event: string, ...args: any[]) {
32
- let list = this.listeners.get(event);
32
+ const list = this.listeners.get(event);
33
33
  if (!list) return;
34
34
  list.trigger(...args);
35
35
  }
@@ -7,10 +7,10 @@ function catmullRom(
7
7
  p1Tension: number,
8
8
  p2Tension: number,
9
9
  ) {
10
- let v0 = (p2 - p0) * p1Tension;
11
- let v1 = (p3 - p1) * p2Tension;
12
- let t2 = t * t;
13
- let t3 = t2 * t;
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
- let startEndStraight = opts.startEndStraight ?? true;
43
+ const startEndStraight = opts.startEndStraight ?? true;
44
44
  if (startEndStraight) {
45
45
  points[0].straight = true;
46
46
  points[points.length - 1].straight = true;
@@ -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,
@@ -134,6 +134,7 @@ function parseHsl(hsl: string): RGBA {
134
134
 
135
135
  /// expects [h, s, l, a]
136
136
  function hslToRgba(hsla: HSLA): RGBA {
137
+ // eslint-disable-next-line prefer-const
137
138
  let [h, s, l, a] = hsla;
138
139
 
139
140
  // normalize
@@ -1,4 +1,4 @@
1
- const REGEX = /^(\d+\.?\d*|\.\d+)(\w*|%)$/;
1
+ const REGEX = /^(-?\d+\.?\d*|\.\d+)(\w*|%)$/;
2
2
 
3
3
  export default class Value {
4
4
  num: number;
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
- // }