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,221 @@
1
+ import StyleValue from '../values/StyleValue.js';
2
+ import Value from '../values/Value.js';
3
+ import ColorValue from '../values/ColorValue.js';
4
+ export const STYLE_PROPS = {
5
+ position: 'static',
6
+ display: 'block',
7
+ visibility: 'visible',
8
+ minWidth: 'px',
9
+ width: 'px',
10
+ maxWidth: 'px',
11
+ minHeight: 'px',
12
+ height: 'px',
13
+ maxHeight: 'px',
14
+ top: 'px',
15
+ left: 'px',
16
+ right: 'px',
17
+ bottom: 'px',
18
+ opacity: [1, null],
19
+ padding: 'px',
20
+ margin: 'px',
21
+ color: '#000',
22
+ backgroundColor: '#fff',
23
+ };
24
+ export default class StyleProperty {
25
+ name;
26
+ from;
27
+ to;
28
+ unit;
29
+ kind;
30
+ // if the kind text is set
31
+ // from and to are text
32
+ _defaultValue;
33
+ constructor(name, useDefaults = true) {
34
+ this.name = name;
35
+ this.from = null;
36
+ this.to = null;
37
+ const def = useDefaults ? STYLE_PROPS[name] : undefined;
38
+ if (Array.isArray(def)) {
39
+ this._defaultValue = new StyleValue([new Value(def[0], def[1])]);
40
+ this.unit = def[1];
41
+ }
42
+ else if (def === 'px') {
43
+ this._defaultValue = new StyleValue([new Value(0, def)]);
44
+ this.unit = def;
45
+ }
46
+ else if (typeof def !== 'undefined') {
47
+ this._defaultValue = StyleValue.parse(def);
48
+ this.unit = null;
49
+ }
50
+ else {
51
+ this._defaultValue = null;
52
+ this.unit = null;
53
+ }
54
+ // text|color|values
55
+ this.kind = null;
56
+ }
57
+ allowsValueFn() {
58
+ return true;
59
+ }
60
+ init(target, from, to) {
61
+ // this check is probably not necessary?
62
+ if (!from && !to)
63
+ throw new Error('either from or to need to be defined');
64
+ /*
65
+ if the user inputed a text value both need to be treated as text
66
+ and interpolated as classes or in reverse if they are negative values
67
+
68
+ if the user inputed a value both need to be treated as values and need
69
+ to match in length
70
+ */
71
+ if (from?.kind === 'text' || to?.kind === 'text') {
72
+ if (from && from.kind !== 'text')
73
+ throw new Error('from is expected to be a text because to is');
74
+ if (to && to.kind !== 'text')
75
+ throw new Error('to is expected to be a text because from is');
76
+ this.kind = 'text';
77
+ this.from = from;
78
+ this.to = to;
79
+ return;
80
+ }
81
+ // get the current value
82
+ if (!from)
83
+ from = this.getValue(target);
84
+ // get the current value
85
+ if (!to)
86
+ to = this.getValue(target);
87
+ if (!from || !to)
88
+ throw new Error('from or to could not be defined, specified ' +
89
+ 'it with fromTo');
90
+ // if one is a color both need to be a color
91
+ if (from.kind === 'color' || to.kind === 'color') {
92
+ if (from.kind !== to.kind)
93
+ throw new Error('expected two colors');
94
+ this.kind = 'color';
95
+ this.from = from;
96
+ this.to = to;
97
+ return;
98
+ }
99
+ // check that both are of kind values
100
+ if (from.kind === 'text')
101
+ from = this.defaultValue();
102
+ if (to.kind === 'text')
103
+ to = this.defaultValue();
104
+ if (from.length === 0 || to.length === 0)
105
+ throw new Error('from or to has zero values');
106
+ // at this point from and to are values and both have some values
107
+ // either from or to needs to be 1 to work
108
+ if (from.length !== to.length && from.length !== 1 && to.length !== 1)
109
+ throw new Error('from or to need to match in length or be one');
110
+ const newLength = Math.max(from.length, to.length);
111
+ from.extendToLength(newLength);
112
+ to.extendToLength(newLength);
113
+ // now let's try to unify each value
114
+ const fromVals = [];
115
+ const toVals = [];
116
+ // now we need to make sure the values are the same
117
+ for (let i = 0; i < newLength; i++) {
118
+ const f = from.values[i];
119
+ const t = to.values[i];
120
+ const [nFrom, nTo] = target.unifyValues(this.name, f, t);
121
+ fromVals.push(nFrom);
122
+ toVals.push(nTo);
123
+ }
124
+ this.kind = 'values';
125
+ this.from = new StyleValue(fromVals);
126
+ this.to = new StyleValue(toVals);
127
+ }
128
+ parseValue(val) {
129
+ return StyleValue.parse(val);
130
+ }
131
+ defaultValue() {
132
+ return this._defaultValue?.clone() ?? null;
133
+ }
134
+ getValue(target) {
135
+ const val = target.getStyleValue(this.name);
136
+ if (!val)
137
+ return this.defaultValue();
138
+ return val;
139
+ }
140
+ interpolate(pos) {
141
+ switch (this.kind) {
142
+ case 'text':
143
+ return this._interpolateText(pos);
144
+ case 'color':
145
+ return this._interpolateColor(pos);
146
+ default:
147
+ return this._interpolateValues(pos);
148
+ }
149
+ }
150
+ // only call this if kind is text
151
+ _interpolateText(pos) {
152
+ /*
153
+ ## if both values are set
154
+
155
+ <=0 the from value will be set
156
+ >0 the to value will be set
157
+
158
+
159
+ ## if only one text is set
160
+
161
+ if the to value is
162
+
163
+
164
+ the text in the to value will be set >0
165
+ the text in the to value will be removed in <=0
166
+
167
+ the text in the from value will be set <1
168
+ the text in the from value will be removed in >=1
169
+ */
170
+ if (this.from && this.to) {
171
+ if (pos <= 0)
172
+ return this.from.clone();
173
+ return this.to.clone();
174
+ }
175
+ if (this.to) {
176
+ if (pos <= 0)
177
+ return null;
178
+ return this.to.clone();
179
+ }
180
+ if (this.from) {
181
+ if (pos >= 1)
182
+ return null;
183
+ return this.from.clone();
184
+ }
185
+ throw new Error('expected from or to');
186
+ }
187
+ // only call this if kind is color
188
+ _interpolateColor(pos) {
189
+ const vals = [];
190
+ for (let i = 0; i < 4; i++) {
191
+ const f = this.from.values.values[i];
192
+ const t = this.to.values.values[i];
193
+ const dif = t - f;
194
+ vals.push(f + pos * dif);
195
+ }
196
+ return new StyleValue(new ColorValue(vals));
197
+ }
198
+ // only call this if kind is values
199
+ // both values should be the same length
200
+ _interpolateValues(pos) {
201
+ const vals = [];
202
+ const from = this.from.values;
203
+ const to = this.to.values;
204
+ for (let i = 0; i < from.length; i++) {
205
+ const f = from[i];
206
+ const t = to[i];
207
+ const dif = t.num - f.num;
208
+ vals.push(f.cloneAdd(pos * dif));
209
+ }
210
+ return new StyleValue(vals);
211
+ }
212
+ setValue(target, val) {
213
+ if (!val)
214
+ return target.removeStyleValue(this.name);
215
+ return target.setStyleValue(this.name, val.withDefaultUnit(this.unit));
216
+ }
217
+ removeValue(target) {
218
+ return target.removeStyleValue(this.name);
219
+ }
220
+ }
221
+ //# sourceMappingURL=StyleProperty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StyleProperty.js","sourceRoot":"","sources":["../../src/property/StyleProperty.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import Value from '../values/Value.js';
2
+ import BasicProperty from './BasicProperty.js';
3
+ import { ParseableValue } from './Property.js';
4
+ import { Target } from '../target/Target.js';
5
+ export declare const TRANSFORM_PROPS: Record<string, [number, string | null]>;
6
+ export default class TransformProperty extends BasicProperty {
7
+ private _defaultValue;
8
+ constructor(name: string);
9
+ parseValue(val: ParseableValue): Value;
10
+ defaultValue(): Value;
11
+ getValue(target: Target): Value;
12
+ setValue(target: Target, val: Value): void;
13
+ removeValue(target: Target): void;
14
+ }
15
+ //# sourceMappingURL=TransformProperty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransformProperty.d.ts","sourceRoot":"","sources":["../../src/property/TransformProperty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,oBAAoB,CAAC;AACvC,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAenE,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAC3D,OAAO,CAAC,aAAa,CAAQ;gBAEjB,IAAI,EAAE,MAAM;IAMxB,UAAU,CAAC,GAAG,EAAE,cAAc;IAS9B,YAAY;IAIZ,QAAQ,CAAC,MAAM,EAAE,MAAM;IAIvB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;IAInC,WAAW,CAAC,MAAM,EAAE,MAAM;CAG1B"}
@@ -0,0 +1,43 @@
1
+ import Value from '../values/Value.js';
2
+ import BasicProperty from './BasicProperty.js';
3
+ export const TRANSFORM_PROPS = {
4
+ x: [0, 'px'],
5
+ y: [0, 'px'],
6
+ z: [0, 'px'],
7
+ scale: [1, null],
8
+ scaleX: [1, null],
9
+ scaleY: [1, null],
10
+ scaleZ: [1, null],
11
+ rotate: [0, 'deg'],
12
+ rotateX: [0, 'deg'],
13
+ rotateY: [0, 'deg'],
14
+ rotateZ: [0, 'deg'],
15
+ skew: [0, 'deg'],
16
+ skewX: [0, 'deg'],
17
+ skewY: [0, 'deg'],
18
+ };
19
+ export default class TransformProperty extends BasicProperty {
20
+ _defaultValue;
21
+ constructor(name) {
22
+ super(name);
23
+ this._defaultValue = new Value(...TRANSFORM_PROPS[name]);
24
+ }
25
+ parseValue(val) {
26
+ if (typeof val !== 'string' && typeof val !== 'number')
27
+ throw new Error(`Failed to parse value '${val}' for property '${this.name}'`);
28
+ return Value.parse(val);
29
+ }
30
+ defaultValue() {
31
+ return this._defaultValue.clone();
32
+ }
33
+ getValue(target) {
34
+ return target.getTransformValue(this.name) ?? this.defaultValue();
35
+ }
36
+ setValue(target, val) {
37
+ target.setTransformValue(this.name, val);
38
+ }
39
+ removeValue(target) {
40
+ target.removeTransformValue(this.name);
41
+ }
42
+ }
43
+ //# sourceMappingURL=TransformProperty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransformProperty.js","sourceRoot":"","sources":["../../src/property/TransformProperty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,oBAAoB,CAAC;AACvC,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAI/C,MAAM,CAAC,MAAM,eAAe,GAA4C;IACvE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;IACZ,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;IACZ,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;IAClB,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;IACnB,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;CACjB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IACnD,aAAa,CAAQ;IAE7B,YAAY,IAAY;QACvB,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,UAAU,CAAC,GAAmB;QAC7B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ;YACrD,MAAM,IAAI,KAAK,CACd,0BAA0B,GAAG,mBAAmB,IAAI,CAAC,IAAI,GAAG,CAC5D,CAAC;QAEH,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,YAAY;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,MAAc;QACtB,OAAO,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;IACnE,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,GAAU;QAClC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,WAAW,CAAC,MAAc;QACzB,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;CACD"}
@@ -0,0 +1,28 @@
1
+ import Value from '../values/Value.js';
2
+ import Property from './Property.js';
3
+ import { Target } from '../target/Target.js';
4
+ export type XYValue = {
5
+ x: Value;
6
+ y: Value;
7
+ };
8
+ export default class TransformXYProperty implements Property<XYValue> {
9
+ name: string;
10
+ from: XYValue;
11
+ to: XYValue;
12
+ constructor(name: string);
13
+ allowsValueFn(): boolean;
14
+ init(target: Target, from: XYValue | null, to: XYValue | null): void;
15
+ parseValue(val: any): {
16
+ x: Value;
17
+ y: Value;
18
+ };
19
+ defaultValue(): {
20
+ x: Value;
21
+ y: Value;
22
+ };
23
+ getValue(target: Target): XYValue;
24
+ interpolate(pos: number): XYValue;
25
+ setValue(target: Target, val: XYValue): void;
26
+ removeValue(target: Target): void;
27
+ }
28
+ //# sourceMappingURL=TransformXYProperty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransformXYProperty.d.ts","sourceRoot":"","sources":["../../src/property/TransformXYProperty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,oBAAoB,CAAC;AACvC,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,MAAM,OAAO,GAAG;IACrB,CAAC,EAAE,KAAK,CAAC;IACT,CAAC,EAAE,KAAK,CAAC;CACT,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,QAAQ,CAAC,OAAO,CAAC;IACpE,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAG,OAAO,CAAC;IACf,EAAE,EAAG,OAAO,CAAC;gBAED,IAAI,EAAE,MAAM;IAIxB,aAAa,IAAI,OAAO;IAIxB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI;IAe7D,UAAU,CAAC,GAAG,EAAE,GAAG;;;;IAWnB,YAAY;;;;IAOZ,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAYjC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAUjC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;IAKrC,WAAW,CAAC,MAAM,EAAE,MAAM;CAI1B"}
@@ -0,0 +1,65 @@
1
+ import Value from '../values/Value.js';
2
+ export default class TransformXYProperty {
3
+ name;
4
+ from;
5
+ to;
6
+ constructor(name) {
7
+ this.name = name;
8
+ }
9
+ allowsValueFn() {
10
+ return true;
11
+ }
12
+ init(target, from, to) {
13
+ if (!from)
14
+ from = this.getValue(target);
15
+ if (!to)
16
+ to = this.getValue(target);
17
+ if (!from || !to)
18
+ throw new Error('could not determine from or to value');
19
+ const [fromX, toX] = target.unifyValues('x', from.x, to.x);
20
+ const [fromY, toY] = target.unifyValues('y', from.y, to.y);
21
+ this.from = { x: fromX, y: fromY };
22
+ this.to = { x: toX, y: toY };
23
+ }
24
+ parseValue(val) {
25
+ if (Array.isArray(val))
26
+ val = { x: val[0], y: val[1] };
27
+ const { x, y } = val;
28
+ return {
29
+ x: Value.parse(x),
30
+ y: Value.parse(y),
31
+ };
32
+ }
33
+ defaultValue() {
34
+ return {
35
+ x: new Value(0, 'px'),
36
+ y: new Value(0, 'px'),
37
+ };
38
+ }
39
+ getValue(target) {
40
+ const x = target.getTransformValue('x');
41
+ const y = target.getTransformValue('y');
42
+ const def = this.defaultValue();
43
+ return {
44
+ x: x ? x : def.x,
45
+ y: y ? y : def.y,
46
+ };
47
+ }
48
+ interpolate(pos) {
49
+ const difX = this.to.x.num - this.from.x.num;
50
+ const difY = this.to.y.num - this.from.y.num;
51
+ return {
52
+ x: this.from.x.cloneAdd(pos * difX),
53
+ y: this.from.y.cloneAdd(pos * difY),
54
+ };
55
+ }
56
+ setValue(target, val) {
57
+ target.setTransformValue('x', val.x.withDefaultUnit('px'));
58
+ target.setTransformValue('y', val.y.withDefaultUnit('px'));
59
+ }
60
+ removeValue(target) {
61
+ target.removeTransformValue('x');
62
+ target.removeTransformValue('y');
63
+ }
64
+ }
65
+ //# sourceMappingURL=TransformXYProperty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransformXYProperty.js","sourceRoot":"","sources":["../../src/property/TransformXYProperty.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export type Callback = (a: {
2
+ width: number;
3
+ height: number;
4
+ }, b: {
5
+ remove: () => void;
6
+ }) => void;
7
+ export default class ResponsiveEvent {
8
+ private _listeners;
9
+ constructor();
10
+ static global(): ResponsiveEvent | null;
11
+ add(fn: Callback): {
12
+ remove: () => void;
13
+ };
14
+ remove(fn: Callback): void;
15
+ _onResize(_e: Event): void;
16
+ }
17
+ //# sourceMappingURL=ResponsiveEvent.d.ts.map
@@ -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,61 @@
1
+ import PublicTimeline from '../timeline/public.js';
2
+ export type DestroyOptions = {
3
+ timelines?: boolean;
4
+ };
5
+ export type ScrollTrigger = {
6
+ target: HTMLElement;
7
+ offset?: OffsetValue;
8
+ view?: OffsetValue;
9
+ } | HTMLElement;
10
+ export type OffsetValue = 'top' | 'center' | 'bottom' | number;
11
+ export type State = 'before' | 'in' | 'after';
12
+ export type ParsedScrollTrigger = {
13
+ target: HTMLElement;
14
+ offset: number;
15
+ view: number;
16
+ position: Position | undefined;
17
+ };
18
+ export type ScrollOffset = {
19
+ y: number;
20
+ view: number;
21
+ position: number;
22
+ };
23
+ export type Position = number | string;
24
+ export default class ScrollTimeline {
25
+ private _initialized;
26
+ private _globalEvent;
27
+ private _scrollEvent;
28
+ private _responsiveEvent;
29
+ private _triggers;
30
+ private _events;
31
+ private lastEvPos;
32
+ private timelines;
33
+ private state;
34
+ private lastSeek;
35
+ offsets: ScrollOffset[];
36
+ private debugMarkers;
37
+ private debugPrefix?;
38
+ constructor();
39
+ /**
40
+ * Add a trigger to the timeline
41
+ *
42
+ * Providing an offset at which point the trigger should end
43
+ *
44
+ * If it is the first trigger it is not allowed to be set?
45
+ */
46
+ add(trigger: ScrollTrigger, position?: Position): void;
47
+ addTimeline(timeline: PublicTimeline): void;
48
+ on(event: string, fn: (...args: any[]) => void): () => void;
49
+ init(): boolean;
50
+ private initY;
51
+ update(): void;
52
+ destroy(opts?: DestroyOptions): void;
53
+ debug(prefix?: string): void;
54
+ private _onScroll;
55
+ /**
56
+ * @ignore
57
+ */
58
+ private _onResponsive;
59
+ private calcPosition;
60
+ }
61
+ //# sourceMappingURL=Scroll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scroll.d.ts","sourceRoot":"","sources":["../../src/scroll/Scroll.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,uBAAuB,CAAC;AAKnD,MAAM,MAAM,cAAc,GAAG;IAE5B,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAgDF,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,KAAK,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC;AAE9C,MAAM,MAAM,mBAAmB,GAAG;IACjC,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC/B,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;AAOvC,MAAM,CAAC,OAAO,OAAO,cAAc;IAClC,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,gBAAgB,CAAM;IAE9B,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,EAAE,YAAY,EAAE,CAAC;IAExB,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,WAAW,CAAC,CAAS;;IAqB7B;;;;;;OAMG;IACH,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,QAAQ;IAM/C,WAAW,CAAC,QAAQ,EAAE,cAAc;IAIpC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAK3D,IAAI,IAAI,OAAO;IAyDf,OAAO,CAAC,KAAK;IAeb,MAAM;IAWN,OAAO,CAAC,IAAI,GAAE,cAAmB;IAmBjC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM;IA4BrB,OAAO,CAAC,SAAS;IAwBjB;;OAEG;IACH,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,YAAY;CA2BpB"}