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
@@ -0,0 +1,280 @@
1
+ import ResponsiveEvent from '../responsive/ResponsiveEvent.js';
2
+ import Events from '../utils/Events.js';
3
+ import { pageOffset } from '../utils/utils.js';
4
+ import ScrollEvent from './ScrollEvent.js';
5
+ const DEF_DESTROY_OPTS = {
6
+ timelines: true,
7
+ };
8
+ export default class ScrollTimeline {
9
+ _initialized;
10
+ _globalEvent;
11
+ _scrollEvent;
12
+ _responsiveEvent;
13
+ _triggers;
14
+ _events;
15
+ lastEvPos;
16
+ timelines;
17
+ state;
18
+ lastSeek;
19
+ offsets;
20
+ debugMarkers;
21
+ debugPrefix;
22
+ constructor() {
23
+ this._initialized = false;
24
+ this._globalEvent = ScrollEvent.global();
25
+ this._scrollEvent =
26
+ this._globalEvent?.add(y => this._onScroll(y)).remove ?? (() => { });
27
+ this._responsiveEvent = ResponsiveEvent.global()?.add((a, b) => {
28
+ this._onResponsive(a, b);
29
+ });
30
+ this._triggers = [];
31
+ this._events = new Events();
32
+ this.lastEvPos = NaN;
33
+ this.timelines = [];
34
+ this.state = 'in';
35
+ this.offsets = [];
36
+ this.debugMarkers = [];
37
+ }
38
+ /**
39
+ * Add a trigger to the timeline
40
+ *
41
+ * Providing an offset at which point the trigger should end
42
+ *
43
+ * If it is the first trigger it is not allowed to be set?
44
+ */
45
+ add(trigger, position) {
46
+ this._triggers.push(parseTrigger(trigger, position, this._triggers.length));
47
+ }
48
+ addTimeline(timeline) {
49
+ this.timelines.push(timeline);
50
+ }
51
+ on(event, fn) {
52
+ return this._events.add(event, fn);
53
+ }
54
+ /// Returns true if the init function was executed
55
+ init() {
56
+ if (this._initialized)
57
+ return false;
58
+ this._initialized = true;
59
+ // todo we need to calculate the position for each timeline
60
+ //
61
+ // calculate the positions and offsets
62
+ // if we are missing one extend them
63
+ if (this._triggers.length < 1)
64
+ throw new Error('scroll timeline needs at least one trigger');
65
+ if (this._triggers.length === 1) {
66
+ this._triggers.push({
67
+ target: this._triggers[0].target,
68
+ offset: 1,
69
+ view: 1,
70
+ position: 1,
71
+ });
72
+ }
73
+ const positionStep = 1 / (this._triggers.length - 1);
74
+ // first calculate position and view
75
+ let prevPos = 0;
76
+ this.offsets = this._triggers.map((t, i) => {
77
+ let position;
78
+ if (typeof t.position === 'string') {
79
+ if (this.timelines.length !== 1)
80
+ throw new Error('labels can only be used with one timeline');
81
+ position = this.timelines[0].labelPosition(t.position);
82
+ }
83
+ else if (typeof t.position === 'number') {
84
+ position = t.position;
85
+ }
86
+ else {
87
+ position = i * positionStep;
88
+ }
89
+ if (position < prevPos)
90
+ throw new Error('positions are not in order');
91
+ prevPos = position;
92
+ return {
93
+ y: 0,
94
+ view: t.view,
95
+ position,
96
+ };
97
+ });
98
+ this.initY();
99
+ return true;
100
+ }
101
+ initY() {
102
+ let previousY = -1;
103
+ this.offsets.forEach((offset, i) => {
104
+ const t = this._triggers[i];
105
+ const pOffset = pageOffset(t.target);
106
+ const y = pOffset.top + pOffset.height * t.offset;
107
+ if (y < previousY)
108
+ throw new Error('offsets are not in order');
109
+ previousY = y;
110
+ offset.y = y;
111
+ });
112
+ }
113
+ update() {
114
+ // execute initY to check if elements have moved
115
+ if (!this.init())
116
+ this.initY();
117
+ // todo this position should come from the GlobalEvent
118
+ this._onScroll({
119
+ y: window.scrollY,
120
+ height: window.innerHeight,
121
+ });
122
+ }
123
+ destroy(opts = {}) {
124
+ opts = { ...DEF_DESTROY_OPTS, ...opts };
125
+ this._scrollEvent();
126
+ this._events.destroy();
127
+ this._responsiveEvent?.remove();
128
+ if (opts.timelines) {
129
+ for (const timeline of this.timelines) {
130
+ timeline.destroy();
131
+ }
132
+ }
133
+ for (const marker of this.debugMarkers) {
134
+ marker.remove();
135
+ }
136
+ this.debugMarkers = [];
137
+ }
138
+ debug(prefix) {
139
+ this.init();
140
+ this.debugPrefix = prefix;
141
+ const height = window.innerHeight;
142
+ this.offsets.forEach((offset, i) => {
143
+ const y = offset.y - height * offset.view;
144
+ const marker = document.createElement('span');
145
+ marker.textContent =
146
+ (prefix ? prefix + ' ' : '') + i + ': ' + offset.position;
147
+ marker.style.position = 'absolute';
148
+ marker.style.display = 'block';
149
+ marker.style.right = '0';
150
+ marker.style.top = y + 'px';
151
+ marker.style.minWidth = '50px';
152
+ marker.style.height = '2px';
153
+ marker.style.paddingRight = '10px';
154
+ marker.style.backgroundColor = 'red';
155
+ marker.style.zIndex = '100000';
156
+ document.body.appendChild(marker);
157
+ this.debugMarkers.push(marker);
158
+ });
159
+ }
160
+ _onScroll({ y, height }) {
161
+ this.init();
162
+ const pos = this.calcPosition({ y, height });
163
+ const clampPos = Math.min(1, Math.max(0, pos));
164
+ const state = pos < 0 ? 'before' : pos > 1 ? 'after' : 'in';
165
+ // we need to trigger once
166
+ // if the pos is not the same and but pos can have 3 states
167
+ // under (<0), in (0-1) or over (>1)
168
+ // each state should be triggered once
169
+ if (this.lastSeek?.pos === clampPos && this.lastSeek?.state === state) {
170
+ return;
171
+ }
172
+ this.lastSeek = { pos: clampPos, state };
173
+ this._events.trigger('update', clampPos, state);
174
+ for (const timeline of this.timelines) {
175
+ timeline.seek(pos);
176
+ }
177
+ }
178
+ /**
179
+ * @ignore
180
+ */
181
+ _onResponsive(_a, _b) {
182
+ this.update();
183
+ // reposition debug Markers
184
+ if (this.debugMarkers.length) {
185
+ for (const marker of this.debugMarkers) {
186
+ marker.remove();
187
+ }
188
+ this.debug(this.debugPrefix);
189
+ }
190
+ }
191
+ calcPosition({ y, height }) {
192
+ // check if it's outside of the bounds
193
+ const first = this.offsets[0];
194
+ if (y < first.y - height * first.view)
195
+ return -1;
196
+ const last = this.offsets[this.offsets.length - 1];
197
+ if (y > last.y - height * last.view)
198
+ return 2;
199
+ // find the matching offset
200
+ // rolling window
201
+ for (let i = 1; i < this.offsets.length; i++) {
202
+ const start = this.offsets[i - 1];
203
+ const end = this.offsets[i];
204
+ const startY = start.y - height * start.view;
205
+ const endY = end.y - height * end.view;
206
+ if (y >= startY && y < endY) {
207
+ const dif = endY - startY;
208
+ const x = 1 - (endY - y) / dif;
209
+ return start.position + (end.position - start.position) * x;
210
+ }
211
+ }
212
+ return -1;
213
+ }
214
+ }
215
+ /**
216
+ * Parse the start property
217
+ *
218
+ * can be an HTMLElement or an object { target, offset }
219
+ *
220
+ * the default offset is top
221
+ * the default view is top
222
+ */
223
+ function parseTrigger(val, position, i) {
224
+ // might be an object { target, offset }
225
+ if (!val) {
226
+ throw new Error('unknown property use an html element or an object');
227
+ }
228
+ let element = null;
229
+ let offset = 'top';
230
+ let view = i == 0 ? 'top' : 'bottom';
231
+ if (typeof val === 'object') {
232
+ if (val instanceof HTMLElement) {
233
+ element = val;
234
+ }
235
+ else if ('target' in val) {
236
+ element = val.target;
237
+ if (typeof val.offset !== 'undefined')
238
+ offset = val.offset;
239
+ if (typeof val.view !== 'undefined')
240
+ view = val.view;
241
+ }
242
+ else {
243
+ throw new Error('start unknown ' + val);
244
+ }
245
+ }
246
+ else {
247
+ throw new Error('unknown start val');
248
+ }
249
+ return {
250
+ target: element,
251
+ offset: parseOffset(offset),
252
+ view: parseOffset(view),
253
+ position,
254
+ };
255
+ }
256
+ /**
257
+ * Parse the offset value
258
+ *
259
+ * can be a string (top, center, bottom) or a number (0-1)
260
+ *
261
+ * 0 = top
262
+ * 0.5 = center
263
+ * 1 = bottom
264
+ */
265
+ function parseOffset(val) {
266
+ if (typeof val === 'string') {
267
+ if (val === 'top')
268
+ return 0;
269
+ if (val === 'center')
270
+ return 0.5;
271
+ if (val === 'bottom')
272
+ return 1;
273
+ throw new Error('unknown view value ' + val);
274
+ }
275
+ if (typeof val !== 'number') {
276
+ throw new Error('view expecting to be a top/center/bottom or a percent value');
277
+ }
278
+ return val;
279
+ }
280
+ //# 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;;IAS1B,MAAM,CAAC,MAAM;IAWb,GAAG,CAAC,EAAE,EAAE,QAAQ;;;IAUhB,MAAM,CAAC,EAAE,EAAE,QAAQ;IAInB,OAAO,CAAC,SAAS;CAajB"}
@@ -0,0 +1,40 @@
1
+ export default class ScrollEvent {
2
+ _listeners;
3
+ constructor() {
4
+ this._listeners = new Set();
5
+ window.addEventListener('scroll', e => this._onScroll(e));
6
+ window.addEventListener('resize', e => this._onScroll(e));
7
+ }
8
+ static global() {
9
+ if (typeof window === 'undefined')
10
+ return null;
11
+ // @ts-ignore
12
+ if (typeof window.chnobliScroll === 'undefined')
13
+ // @ts-ignore
14
+ window.chnobliScroll = new ScrollEvent();
15
+ // @ts-ignore
16
+ return window.chnobliScroll;
17
+ }
18
+ add(fn) {
19
+ this._listeners.add(fn);
20
+ return {
21
+ remove: () => {
22
+ this.remove(fn);
23
+ },
24
+ };
25
+ }
26
+ remove(fn) {
27
+ this._listeners.delete(fn);
28
+ }
29
+ _onScroll(_e) {
30
+ for (const fn of this._listeners) {
31
+ fn({
32
+ y: window.scrollY,
33
+ height: window.innerHeight,
34
+ }, {
35
+ remove: () => this.remove(fn),
36
+ });
37
+ }
38
+ }
39
+ }
40
+ //# 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;QAC1D,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,8 @@
1
+ import type { Position, ScrollTrigger } from './Scroll.js';
2
+ import Scroll from './public.js';
3
+ export { Scroll, ScrollTrigger, Position };
4
+ /**
5
+ * Create a scroll animation
6
+ */
7
+ export declare function scroll(): Scroll;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scroll/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;AAE3C;;GAEG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAE/B"}
@@ -0,0 +1,9 @@
1
+ import Scroll from './public.js';
2
+ export { Scroll };
3
+ /**
4
+ * Create a scroll animation
5
+ */
6
+ export function scroll() {
7
+ return new Scroll();
8
+ }
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scroll/index.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,MAAM,EAA2B,CAAC;AAE3C;;GAEG;AACH,MAAM,UAAU,MAAM;IACrB,OAAO,IAAI,MAAM,EAAE,CAAC;AACrB,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { Timeline } from '../chnobli.js';
2
+ import { DestroyOptions, 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
+ * Listen on events
18
+ *
19
+ * returns a function to remove the event listener
20
+ *
21
+ * ## Events
22
+ *
23
+ * ### Update
24
+ * The scroll position has been updated passes in a number between 0 and 1
25
+ *
26
+ */
27
+ on(event: string, fn: (...args: any[]) => void): () => void;
28
+ update(): void;
29
+ /**
30
+ * Destroy the scroll
31
+ */
32
+ destroy(opts?: DestroyOptions): void;
33
+ debug(prefix?: string): void;
34
+ }
35
+ //# 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;AACzC,OAAuB,EACtB,cAAc,EACd,QAAQ,EACR,aAAa,EACb,MAAM,aAAa,CAAC;AAErB,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;IAMrC;;;;;;;;;;OAUG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAI3D,MAAM;IAIN;;OAEG;IACH,OAAO,CAAC,IAAI,GAAE,cAAmB;IAIjC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM;CAGrB"}
@@ -0,0 +1,50 @@
1
+ import ScrollTimeline from './Scroll.js';
2
+ export default class Scroll {
3
+ _inner;
4
+ constructor() {
5
+ this._inner = new ScrollTimeline();
6
+ }
7
+ /**
8
+ * Add a trigger to the timeline
9
+ *
10
+ * Providing an offset at which point the trigger should end
11
+ */
12
+ add(trigger, position) {
13
+ this._inner.add(trigger, position);
14
+ return this;
15
+ }
16
+ /**
17
+ * Add a timeline to the scroll
18
+ */
19
+ addTimeline(timeline) {
20
+ this._inner.addTimeline(timeline);
21
+ return this;
22
+ }
23
+ /**
24
+ * Listen on events
25
+ *
26
+ * returns a function to remove the event listener
27
+ *
28
+ * ## Events
29
+ *
30
+ * ### Update
31
+ * The scroll position has been updated passes in a number between 0 and 1
32
+ *
33
+ */
34
+ on(event, fn) {
35
+ return this._inner.on(event, fn);
36
+ }
37
+ update() {
38
+ this._inner.update();
39
+ }
40
+ /**
41
+ * Destroy the scroll
42
+ */
43
+ destroy(opts = {}) {
44
+ this._inner.destroy(opts);
45
+ }
46
+ debug(prefix) {
47
+ this._inner.debug(prefix);
48
+ }
49
+ }
50
+ //# sourceMappingURL=public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/scroll/public.ts"],"names":[],"mappings":"AACA,OAAO,cAIN,MAAM,aAAa,CAAC;AAErB,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;IAED;;;;;;;;;;OAUG;IACH,EAAE,CAAC,KAAa,EAAE,EAA4B;QAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,MAAM;QACL,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAuB,EAAE;QAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,MAAe;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,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