sunpeak 0.16.29 → 0.17.2

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 (140) hide show
  1. package/bin/commands/dev.mjs +169 -342
  2. package/bin/commands/inspect.mjs +763 -0
  3. package/bin/commands/new.mjs +2 -2
  4. package/bin/lib/inspect/inspect-config.d.mts +20 -0
  5. package/bin/lib/inspect/inspect-config.mjs +76 -0
  6. package/bin/lib/live/global-setup.mjs +6 -1
  7. package/bin/sunpeak.js +11 -1
  8. package/dist/chatgpt/globals.css +8 -0
  9. package/dist/chatgpt/index.cjs +3 -11
  10. package/dist/chatgpt/index.cjs.map +1 -1
  11. package/dist/chatgpt/index.d.ts +2 -2
  12. package/dist/chatgpt/index.js +4 -8
  13. package/dist/chatgpt/index.js.map +1 -1
  14. package/dist/claude/index.cjs +1 -1
  15. package/dist/claude/index.js +1 -1
  16. package/dist/discovery-Cgoegt62.js +114 -0
  17. package/dist/discovery-Cgoegt62.js.map +1 -0
  18. package/dist/discovery-Clu4uHp1.cjs +161 -0
  19. package/dist/discovery-Clu4uHp1.cjs.map +1 -0
  20. package/dist/index.cjs +1 -4
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.js +2 -3
  23. package/dist/index.js.map +1 -1
  24. package/dist/lib/discovery-cli.cjs +1 -1
  25. package/dist/lib/discovery-cli.js +1 -1
  26. package/dist/lib/discovery.d.ts +7 -67
  27. package/dist/lib/index.d.ts +0 -1
  28. package/dist/mcp/index.cjs +34 -23
  29. package/dist/mcp/index.cjs.map +1 -1
  30. package/dist/mcp/index.js +34 -23
  31. package/dist/mcp/index.js.map +1 -1
  32. package/dist/mcp/types.d.ts +5 -0
  33. package/dist/simulator/index.cjs +5 -11
  34. package/dist/simulator/index.cjs.map +1 -1
  35. package/dist/simulator/index.d.ts +4 -2
  36. package/dist/simulator/index.js +5 -8
  37. package/dist/simulator/index.js.map +1 -1
  38. package/dist/simulator/simple-sidebar.d.ts +7 -4
  39. package/dist/simulator/simulator-url.d.ts +8 -0
  40. package/dist/simulator/simulator.d.ts +15 -2
  41. package/dist/simulator/use-mcp-connection.d.ts +19 -0
  42. package/dist/{simulator-DIVvI69i.cjs → simulator-CH9hs0N6.cjs} +129 -21
  43. package/dist/simulator-CH9hs0N6.cjs.map +1 -0
  44. package/dist/{simulator-C7mkK7Sz.js → simulator-Dl8B-Ljb.js} +124 -22
  45. package/dist/simulator-Dl8B-Ljb.js.map +1 -0
  46. package/dist/{simulator-url-BDGD4vZD.cjs → simulator-url-CozKF1jf.cjs} +3 -1
  47. package/dist/simulator-url-CozKF1jf.cjs.map +1 -0
  48. package/dist/{simulator-url-Bkxj43yT.js → simulator-url-KoS_ToP6.js} +3 -1
  49. package/dist/simulator-url-KoS_ToP6.js.map +1 -0
  50. package/dist/style.css +8 -0
  51. package/package.json +11 -3
  52. package/template/dist/albums/albums.html +105 -0
  53. package/template/dist/albums/albums.json +16 -0
  54. package/template/dist/carousel/carousel.html +105 -0
  55. package/template/dist/carousel/carousel.json +16 -0
  56. package/template/dist/map/map.html +3060 -0
  57. package/template/dist/map/map.json +22 -0
  58. package/template/dist/review/review.html +105 -0
  59. package/template/dist/review/review.json +16 -0
  60. package/template/dist/server.js +15 -0
  61. package/template/dist/tools/review-diff.js +50 -0
  62. package/template/dist/tools/review-post.js +50 -0
  63. package/template/dist/tools/review-purchase.js +61 -0
  64. package/template/dist/tools/review.js +31 -0
  65. package/template/dist/tools/show-albums.js +56 -0
  66. package/template/dist/tools/show-carousel.js +41 -0
  67. package/template/dist/tools/show-map.js +47 -0
  68. package/template/node_modules/.vite/deps/_metadata.json +8 -0
  69. package/template/node_modules/.vite/deps/package.json +3 -0
  70. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps.js +500 -0
  71. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps.js.map +1 -0
  72. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_app-bridge.js +563 -0
  73. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_app-bridge.js.map +1 -0
  74. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_react.js +575 -0
  75. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_react.js.map +1 -0
  76. package/template/node_modules/.vite-mcp/deps/@testing-library_react.js +11363 -0
  77. package/template/node_modules/.vite-mcp/deps/@testing-library_react.js.map +1 -0
  78. package/template/node_modules/.vite-mcp/deps/_metadata.json +130 -0
  79. package/template/node_modules/.vite-mcp/deps/chunk-BoAXSpZd.js +33 -0
  80. package/template/node_modules/.vite-mcp/deps/client-CU1wWud4.js +14385 -0
  81. package/template/node_modules/.vite-mcp/deps/client-CU1wWud4.js.map +1 -0
  82. package/template/node_modules/.vite-mcp/deps/clsx.js +18 -0
  83. package/template/node_modules/.vite-mcp/deps/clsx.js.map +1 -0
  84. package/template/node_modules/.vite-mcp/deps/dist-uWX8WbjY.js +505 -0
  85. package/template/node_modules/.vite-mcp/deps/dist-uWX8WbjY.js.map +1 -0
  86. package/template/node_modules/.vite-mcp/deps/embla-carousel-react.js +1461 -0
  87. package/template/node_modules/.vite-mcp/deps/embla-carousel-react.js.map +1 -0
  88. package/template/node_modules/.vite-mcp/deps/embla-carousel-wheel-gestures.js +536 -0
  89. package/template/node_modules/.vite-mcp/deps/embla-carousel-wheel-gestures.js.map +1 -0
  90. package/template/node_modules/.vite-mcp/deps/magic-string.es-Cklsmr-5.js +1013 -0
  91. package/template/node_modules/.vite-mcp/deps/magic-string.es-Cklsmr-5.js.map +1 -0
  92. package/template/node_modules/.vite-mcp/deps/mapbox-gl.js +46311 -0
  93. package/template/node_modules/.vite-mcp/deps/mapbox-gl.js.map +1 -0
  94. package/template/node_modules/.vite-mcp/deps/package.json +3 -0
  95. package/template/node_modules/.vite-mcp/deps/protocol-CTflwIfG.js +2090 -0
  96. package/template/node_modules/.vite-mcp/deps/protocol-CTflwIfG.js.map +1 -0
  97. package/template/node_modules/.vite-mcp/deps/react-dom.js +186 -0
  98. package/template/node_modules/.vite-mcp/deps/react-dom.js.map +1 -0
  99. package/template/node_modules/.vite-mcp/deps/react-dom_client.js +2 -0
  100. package/template/node_modules/.vite-mcp/deps/react.js +769 -0
  101. package/template/node_modules/.vite-mcp/deps/react.js.map +1 -0
  102. package/template/node_modules/.vite-mcp/deps/react_jsx-dev-runtime.js +205 -0
  103. package/template/node_modules/.vite-mcp/deps/react_jsx-dev-runtime.js.map +1 -0
  104. package/template/node_modules/.vite-mcp/deps/react_jsx-runtime.js +209 -0
  105. package/template/node_modules/.vite-mcp/deps/react_jsx-runtime.js.map +1 -0
  106. package/template/node_modules/.vite-mcp/deps/schemas-NsgmY9QV.js +12157 -0
  107. package/template/node_modules/.vite-mcp/deps/schemas-NsgmY9QV.js.map +1 -0
  108. package/template/node_modules/.vite-mcp/deps/tailwind-merge.js +2025 -0
  109. package/template/node_modules/.vite-mcp/deps/tailwind-merge.js.map +1 -0
  110. package/template/node_modules/.vite-mcp/deps/vitest.js +14021 -0
  111. package/template/node_modules/.vite-mcp/deps/vitest.js.map +1 -0
  112. package/template/node_modules/.vite-mcp/deps/zod.js +624 -0
  113. package/template/node_modules/.vite-mcp/deps/zod.js.map +1 -0
  114. package/template/src/tools/review-diff.test.ts +5 -1
  115. package/template/src/tools/review-diff.ts +1 -1
  116. package/template/src/tools/review-post.test.ts +5 -1
  117. package/template/src/tools/review-post.ts +1 -1
  118. package/template/src/tools/review-purchase.test.ts +5 -1
  119. package/template/src/tools/review-purchase.ts +1 -1
  120. package/template/src/tools/review.test.ts +5 -1
  121. package/template/src/tools/review.ts +1 -1
  122. package/template/src/tools/show-albums.test.ts +5 -1
  123. package/template/src/tools/show-albums.ts +1 -1
  124. package/template/src/tools/show-carousel.test.ts +5 -1
  125. package/template/src/tools/show-carousel.ts +1 -1
  126. package/template/src/tools/show-map.test.ts +5 -1
  127. package/template/src/tools/show-map.ts +1 -1
  128. package/dist/discovery-BxKCIgG5.cjs +0 -332
  129. package/dist/discovery-BxKCIgG5.cjs.map +0 -1
  130. package/dist/discovery-Du4LHrih.js +0 -261
  131. package/dist/discovery-Du4LHrih.js.map +0 -1
  132. package/dist/simulator-C7mkK7Sz.js.map +0 -1
  133. package/dist/simulator-DIVvI69i.cjs.map +0 -1
  134. package/dist/simulator-url-BDGD4vZD.cjs.map +0 -1
  135. package/dist/simulator-url-Bkxj43yT.js.map +0 -1
  136. package/template/.sunpeak/dev.tsx +0 -79
  137. package/template/.sunpeak/resource-loader.html +0 -20
  138. package/template/.sunpeak/resource-loader.tsx +0 -57
  139. package/template/index.html +0 -14
  140. package/template/src/resources/index.ts +0 -17
@@ -0,0 +1,536 @@
1
+ //#region ../../../node_modules/.pnpm/wheel-gestures@2.2.48/node_modules/wheel-gestures/dist/wheel-gestures.esm.js
2
+ function _extends() {
3
+ _extends = Object.assign || function(target) {
4
+ for (var i = 1; i < arguments.length; i++) {
5
+ var source = arguments[i];
6
+ for (var key in source) if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
7
+ }
8
+ return target;
9
+ };
10
+ return _extends.apply(this, arguments);
11
+ }
12
+ var DECAY = .996;
13
+ /**
14
+ * movement projection based on velocity
15
+ * @param velocityPxMs
16
+ * @param decay
17
+ */
18
+ var projection = function projection(velocityPxMs, decay) {
19
+ if (decay === void 0) decay = DECAY;
20
+ return velocityPxMs * decay / (1 - decay);
21
+ };
22
+ function lastOf(array) {
23
+ return array[array.length - 1];
24
+ }
25
+ function average(numbers) {
26
+ return numbers.reduce(function(a, b) {
27
+ return a + b;
28
+ }) / numbers.length;
29
+ }
30
+ var clamp = function clamp(value, min, max) {
31
+ return Math.min(Math.max(min, value), max);
32
+ };
33
+ function addVectors(v1, v2) {
34
+ if (v1.length !== v2.length) throw new Error("vectors must be same length");
35
+ return v1.map(function(val, i) {
36
+ return val + v2[i];
37
+ });
38
+ }
39
+ function absMax(numbers) {
40
+ return Math.max.apply(Math, numbers.map(Math.abs));
41
+ }
42
+ function deepFreeze(o) {
43
+ Object.freeze(o);
44
+ Object.values(o).forEach(function(value) {
45
+ if (value !== null && typeof value === "object" && !Object.isFrozen(value)) deepFreeze(value);
46
+ });
47
+ return o;
48
+ }
49
+ function EventBus() {
50
+ var listeners = {};
51
+ function on(type, listener) {
52
+ listeners[type] = (listeners[type] || []).concat(listener);
53
+ return function() {
54
+ return off(type, listener);
55
+ };
56
+ }
57
+ function off(type, listener) {
58
+ listeners[type] = (listeners[type] || []).filter(function(l) {
59
+ return l !== listener;
60
+ });
61
+ }
62
+ function dispatch(type, data) {
63
+ if (!(type in listeners)) return;
64
+ listeners[type].forEach(function(l) {
65
+ return l(data);
66
+ });
67
+ }
68
+ return deepFreeze({
69
+ on,
70
+ off,
71
+ dispatch
72
+ });
73
+ }
74
+ function WheelTargetObserver(eventListener) {
75
+ var targets = [];
76
+ var observe = function observe(target) {
77
+ target.addEventListener("wheel", eventListener, { passive: false });
78
+ targets.push(target);
79
+ return function() {
80
+ return unobserve(target);
81
+ };
82
+ };
83
+ var unobserve = function unobserve(target) {
84
+ target.removeEventListener("wheel", eventListener);
85
+ targets = targets.filter(function(t) {
86
+ return t !== target;
87
+ });
88
+ };
89
+ return deepFreeze({
90
+ observe,
91
+ unobserve,
92
+ disconnect: function disconnect() {
93
+ targets.forEach(unobserve);
94
+ }
95
+ });
96
+ }
97
+ var DELTA_MODE_UNIT = [
98
+ 1,
99
+ 16 * 1.125,
100
+ typeof window !== "undefined" && window.innerHeight || 800
101
+ ];
102
+ function normalizeWheel(e) {
103
+ var deltaX = e.deltaX * DELTA_MODE_UNIT[e.deltaMode];
104
+ var deltaY = e.deltaY * DELTA_MODE_UNIT[e.deltaMode];
105
+ var deltaZ = (e.deltaZ || 0) * DELTA_MODE_UNIT[e.deltaMode];
106
+ return {
107
+ timeStamp: e.timeStamp,
108
+ axisDelta: [
109
+ deltaX,
110
+ deltaY,
111
+ deltaZ
112
+ ]
113
+ };
114
+ }
115
+ var reverseAll = [
116
+ -1,
117
+ -1,
118
+ -1
119
+ ];
120
+ function reverseAxisDeltaSign(wheel, reverseSign) {
121
+ if (!reverseSign) return wheel;
122
+ var multipliers = reverseSign === true ? reverseAll : reverseSign.map(function(shouldReverse) {
123
+ return shouldReverse ? -1 : 1;
124
+ });
125
+ return _extends({}, wheel, { axisDelta: wheel.axisDelta.map(function(delta, i) {
126
+ return delta * multipliers[i];
127
+ }) });
128
+ }
129
+ var DELTA_MAX_ABS = 700;
130
+ var clampAxisDelta = function clampAxisDelta(wheel) {
131
+ return _extends({}, wheel, { axisDelta: wheel.axisDelta.map(function(delta) {
132
+ return clamp(delta, -DELTA_MAX_ABS, DELTA_MAX_ABS);
133
+ }) });
134
+ };
135
+ var __DEV__$1 = true;
136
+ var ACC_FACTOR_MIN = .6;
137
+ var ACC_FACTOR_MAX = .96;
138
+ var WHEELEVENTS_TO_MERGE = 2;
139
+ var WHEELEVENTS_TO_ANALAZE = 5;
140
+ var configDefaults = /* @__PURE__ */ deepFreeze({
141
+ preventWheelAction: true,
142
+ reverseSign: [
143
+ true,
144
+ true,
145
+ false
146
+ ]
147
+ });
148
+ var WILL_END_TIMEOUT_DEFAULT = 400;
149
+ function createWheelGesturesState() {
150
+ return {
151
+ isStarted: false,
152
+ isStartPublished: false,
153
+ isMomentum: false,
154
+ startTime: 0,
155
+ lastAbsDelta: Infinity,
156
+ axisMovement: [
157
+ 0,
158
+ 0,
159
+ 0
160
+ ],
161
+ axisVelocity: [
162
+ 0,
163
+ 0,
164
+ 0
165
+ ],
166
+ accelerationFactors: [],
167
+ scrollPoints: [],
168
+ scrollPointsToMerge: [],
169
+ willEndTimeout: WILL_END_TIMEOUT_DEFAULT
170
+ };
171
+ }
172
+ function WheelGestures(optionsParam) {
173
+ if (optionsParam === void 0) optionsParam = {};
174
+ var _EventBus = EventBus(), on = _EventBus.on, off = _EventBus.off, dispatch = _EventBus.dispatch;
175
+ var config = configDefaults;
176
+ var state = createWheelGesturesState();
177
+ var currentEvent;
178
+ var negativeZeroFingerUpSpecialEvent = false;
179
+ var prevWheelEventState;
180
+ var feedWheel = function feedWheel(wheelEvents) {
181
+ if (Array.isArray(wheelEvents)) wheelEvents.forEach(function(wheelEvent) {
182
+ return processWheelEventData(wheelEvent);
183
+ });
184
+ else processWheelEventData(wheelEvents);
185
+ };
186
+ var updateOptions = function updateOptions(newOptions) {
187
+ if (newOptions === void 0) newOptions = {};
188
+ if (Object.values(newOptions).some(function(option) {
189
+ return option === void 0 || option === null;
190
+ })) {
191
+ __DEV__$1 && console.error("updateOptions ignored! undefined & null options not allowed");
192
+ return config;
193
+ }
194
+ return config = deepFreeze(_extends({}, configDefaults, config, newOptions));
195
+ };
196
+ var publishWheel = function publishWheel(additionalData) {
197
+ var wheelEventState = _extends({
198
+ event: currentEvent,
199
+ isStart: false,
200
+ isEnding: false,
201
+ isMomentumCancel: false,
202
+ isMomentum: state.isMomentum,
203
+ axisDelta: [
204
+ 0,
205
+ 0,
206
+ 0
207
+ ],
208
+ axisVelocity: state.axisVelocity,
209
+ axisMovement: state.axisMovement,
210
+ get axisMovementProjection() {
211
+ return addVectors(wheelEventState.axisMovement, wheelEventState.axisVelocity.map(function(velocity) {
212
+ return projection(velocity);
213
+ }));
214
+ }
215
+ }, additionalData);
216
+ dispatch("wheel", _extends({}, wheelEventState, { previous: prevWheelEventState }));
217
+ prevWheelEventState = wheelEventState;
218
+ };
219
+ var shouldPreventDefault = function shouldPreventDefault(deltaMaxAbs, axisDelta) {
220
+ var preventWheelAction = config.preventWheelAction;
221
+ var deltaX = axisDelta[0], deltaY = axisDelta[1], deltaZ = axisDelta[2];
222
+ if (typeof preventWheelAction === "boolean") return preventWheelAction;
223
+ switch (preventWheelAction) {
224
+ case "x": return Math.abs(deltaX) >= deltaMaxAbs;
225
+ case "y": return Math.abs(deltaY) >= deltaMaxAbs;
226
+ case "z": return Math.abs(deltaZ) >= deltaMaxAbs;
227
+ default:
228
+ __DEV__$1 && console.warn("unsupported preventWheelAction value: " + preventWheelAction, "warn");
229
+ return false;
230
+ }
231
+ };
232
+ var processWheelEventData = function processWheelEventData(wheelEvent) {
233
+ var _clampAxisDelta = clampAxisDelta(reverseAxisDeltaSign(normalizeWheel(wheelEvent), config.reverseSign)), axisDelta = _clampAxisDelta.axisDelta, timeStamp = _clampAxisDelta.timeStamp;
234
+ var deltaMaxAbs = absMax(axisDelta);
235
+ if (wheelEvent.preventDefault && shouldPreventDefault(deltaMaxAbs, axisDelta)) wheelEvent.preventDefault();
236
+ if (!state.isStarted) start();
237
+ else if (state.isMomentum && deltaMaxAbs > Math.max(2, state.lastAbsDelta * 2)) {
238
+ end(true);
239
+ start();
240
+ }
241
+ if (deltaMaxAbs === 0 && Object.is && Object.is(wheelEvent.deltaX, -0)) {
242
+ negativeZeroFingerUpSpecialEvent = true;
243
+ return;
244
+ }
245
+ currentEvent = wheelEvent;
246
+ state.axisMovement = addVectors(state.axisMovement, axisDelta);
247
+ state.lastAbsDelta = deltaMaxAbs;
248
+ state.scrollPointsToMerge.push({
249
+ axisDelta,
250
+ timeStamp
251
+ });
252
+ mergeScrollPointsCalcVelocity();
253
+ publishWheel({
254
+ axisDelta,
255
+ isStart: !state.isStartPublished
256
+ });
257
+ state.isStartPublished = true;
258
+ willEnd();
259
+ };
260
+ var mergeScrollPointsCalcVelocity = function mergeScrollPointsCalcVelocity() {
261
+ if (state.scrollPointsToMerge.length === WHEELEVENTS_TO_MERGE) {
262
+ state.scrollPoints.unshift({
263
+ axisDeltaSum: state.scrollPointsToMerge.map(function(b) {
264
+ return b.axisDelta;
265
+ }).reduce(addVectors),
266
+ timeStamp: average(state.scrollPointsToMerge.map(function(b) {
267
+ return b.timeStamp;
268
+ }))
269
+ });
270
+ updateVelocity();
271
+ state.scrollPointsToMerge.length = 0;
272
+ state.scrollPoints.length = 1;
273
+ if (!state.isMomentum) detectMomentum();
274
+ } else if (!state.isStartPublished) updateStartVelocity();
275
+ };
276
+ var updateStartVelocity = function updateStartVelocity() {
277
+ state.axisVelocity = lastOf(state.scrollPointsToMerge).axisDelta.map(function(d) {
278
+ return d / state.willEndTimeout;
279
+ });
280
+ };
281
+ var updateVelocity = function updateVelocity() {
282
+ var _state$scrollPoints = state.scrollPoints, latestScrollPoint = _state$scrollPoints[0], prevScrollPoint = _state$scrollPoints[1];
283
+ if (!prevScrollPoint || !latestScrollPoint) return;
284
+ var deltaTime = latestScrollPoint.timeStamp - prevScrollPoint.timeStamp;
285
+ if (deltaTime <= 0) {
286
+ __DEV__$1 && console.warn("invalid deltaTime");
287
+ return;
288
+ }
289
+ var velocity = latestScrollPoint.axisDeltaSum.map(function(d) {
290
+ return d / deltaTime;
291
+ });
292
+ var accelerationFactor = velocity.map(function(v, i) {
293
+ return v / (state.axisVelocity[i] || 1);
294
+ });
295
+ state.axisVelocity = velocity;
296
+ state.accelerationFactors.push(accelerationFactor);
297
+ updateWillEndTimeout(deltaTime);
298
+ };
299
+ var updateWillEndTimeout = function updateWillEndTimeout(deltaTime) {
300
+ var newTimeout = Math.ceil(deltaTime / 10) * 10 * 1.2;
301
+ if (!state.isMomentum) newTimeout = Math.max(100, newTimeout * 2);
302
+ state.willEndTimeout = Math.min(1e3, Math.round(newTimeout));
303
+ };
304
+ var accelerationFactorInMomentumRange = function accelerationFactorInMomentumRange(accFactor) {
305
+ if (accFactor === 0) return true;
306
+ return accFactor <= ACC_FACTOR_MAX && accFactor >= ACC_FACTOR_MIN;
307
+ };
308
+ var detectMomentum = function detectMomentum() {
309
+ if (state.accelerationFactors.length >= WHEELEVENTS_TO_ANALAZE) {
310
+ if (negativeZeroFingerUpSpecialEvent) {
311
+ negativeZeroFingerUpSpecialEvent = false;
312
+ if (absMax(state.axisVelocity) >= .2) {
313
+ recognizedMomentum();
314
+ return;
315
+ }
316
+ }
317
+ var recentAccelerationFactors = state.accelerationFactors.slice(WHEELEVENTS_TO_ANALAZE * -1);
318
+ if (recentAccelerationFactors.every(function(accFac) {
319
+ var sameAccFac = !!accFac.reduce(function(f1, f2) {
320
+ return f1 && f1 < 1 && f1 === f2 ? 1 : 0;
321
+ });
322
+ var bothAreInRangeOrZero = accFac.filter(accelerationFactorInMomentumRange).length === accFac.length;
323
+ return sameAccFac || bothAreInRangeOrZero;
324
+ })) recognizedMomentum();
325
+ state.accelerationFactors = recentAccelerationFactors;
326
+ }
327
+ };
328
+ var recognizedMomentum = function recognizedMomentum() {
329
+ state.isMomentum = true;
330
+ };
331
+ var start = function start() {
332
+ state = createWheelGesturesState();
333
+ state.isStarted = true;
334
+ state.startTime = Date.now();
335
+ prevWheelEventState = void 0;
336
+ negativeZeroFingerUpSpecialEvent = false;
337
+ };
338
+ var willEnd = function() {
339
+ var willEndId;
340
+ return function() {
341
+ clearTimeout(willEndId);
342
+ willEndId = setTimeout(end, state.willEndTimeout);
343
+ };
344
+ }();
345
+ var end = function end(isMomentumCancel) {
346
+ if (isMomentumCancel === void 0) isMomentumCancel = false;
347
+ if (!state.isStarted) return;
348
+ if (state.isMomentum && isMomentumCancel) publishWheel({
349
+ isEnding: true,
350
+ isMomentumCancel: true
351
+ });
352
+ else publishWheel({ isEnding: true });
353
+ state.isMomentum = false;
354
+ state.isStarted = false;
355
+ };
356
+ var _WheelTargetObserver = WheelTargetObserver(feedWheel), observe = _WheelTargetObserver.observe, unobserve = _WheelTargetObserver.unobserve, disconnect = _WheelTargetObserver.disconnect;
357
+ updateOptions(optionsParam);
358
+ return deepFreeze({
359
+ on,
360
+ off,
361
+ observe,
362
+ unobserve,
363
+ disconnect,
364
+ feedWheel,
365
+ updateOptions
366
+ });
367
+ }
368
+ //#endregion
369
+ //#region ../../../node_modules/.pnpm/embla-carousel-wheel-gestures@8.1.0_embla-carousel@8.6.0/node_modules/embla-carousel-wheel-gestures/dist/embla-carousel-wheel-gestures.esm.js
370
+ var defaultOptions = {
371
+ active: true,
372
+ breakpoints: {},
373
+ wheelDraggingClass: "is-wheel-dragging",
374
+ forceWheelAxis: void 0,
375
+ target: void 0
376
+ };
377
+ WheelGesturesPlugin.globalOptions = void 0;
378
+ var __DEV__ = true;
379
+ function WheelGesturesPlugin(userOptions) {
380
+ if (userOptions === void 0) userOptions = {};
381
+ var options;
382
+ var cleanup = function cleanup() {};
383
+ function init(embla, optionsHandler) {
384
+ var _options$target, _options$forceWheelAx;
385
+ var mergeOptions = optionsHandler.mergeOptions, optionsAtMedia = optionsHandler.optionsAtMedia;
386
+ options = optionsAtMedia(mergeOptions(mergeOptions(defaultOptions, WheelGesturesPlugin.globalOptions), userOptions));
387
+ var engine = embla.internalEngine();
388
+ var targetNode = (_options$target = options.target) != null ? _options$target : embla.containerNode().parentNode;
389
+ var wheelAxis = (_options$forceWheelAx = options.forceWheelAxis) != null ? _options$forceWheelAx : engine.options.axis;
390
+ var wheelGestures = WheelGestures({
391
+ preventWheelAction: wheelAxis,
392
+ reverseSign: [
393
+ true,
394
+ true,
395
+ false
396
+ ]
397
+ });
398
+ function updateSizeRelatedVariables() {
399
+ scrollBoundaryThreshold = (wheelAxis === "x" ? engine.containerRect.width : engine.containerRect.height) / 2;
400
+ }
401
+ var unobserveTargetNode = wheelGestures.observe(targetNode);
402
+ var offWheel = wheelGestures.on("wheel", handleWheel);
403
+ var isStarted = false;
404
+ var startEvent;
405
+ var overBoundaryAccumulation = 0;
406
+ var scrollBoundaryThreshold = 0;
407
+ var blockedWaitUntilGestureEnd = false;
408
+ updateSizeRelatedVariables();
409
+ embla.on("resize", updateSizeRelatedVariables);
410
+ function wheelGestureStarted(state) {
411
+ try {
412
+ startEvent = new MouseEvent("mousedown", state.event);
413
+ dispatchEvent(startEvent);
414
+ } catch (e) {
415
+ if (__DEV__) console.warn("Legacy browser requires events-polyfill (https://github.com/xiel/embla-carousel-wheel-gestures#legacy-browsers)");
416
+ return cleanup();
417
+ }
418
+ isStarted = true;
419
+ overBoundaryAccumulation = 0;
420
+ addNativeMouseEventListeners();
421
+ if (options.wheelDraggingClass) targetNode.classList.add(options.wheelDraggingClass);
422
+ }
423
+ function wheelGestureEnded(state) {
424
+ isStarted = false;
425
+ dispatchEvent(createRelativeMouseEvent("mouseup", state));
426
+ removeNativeMouseEventListeners();
427
+ if (options.wheelDraggingClass) targetNode.classList.remove(options.wheelDraggingClass);
428
+ }
429
+ function addNativeMouseEventListeners() {
430
+ document.documentElement.addEventListener("mousemove", preventNativeMouseHandler, true);
431
+ document.documentElement.addEventListener("mouseup", preventNativeMouseHandler, true);
432
+ document.documentElement.addEventListener("mousedown", preventNativeMouseHandler, true);
433
+ }
434
+ function removeNativeMouseEventListeners() {
435
+ document.documentElement.removeEventListener("mousemove", preventNativeMouseHandler, true);
436
+ document.documentElement.removeEventListener("mouseup", preventNativeMouseHandler, true);
437
+ document.documentElement.removeEventListener("mousedown", preventNativeMouseHandler, true);
438
+ }
439
+ function preventNativeMouseHandler(e) {
440
+ if (isStarted && e.isTrusted) e.stopImmediatePropagation();
441
+ }
442
+ function createRelativeMouseEvent(type, state) {
443
+ var moveX, moveY;
444
+ if (wheelAxis === engine.options.axis) {
445
+ var _state$axisMovement = state.axisMovement;
446
+ moveX = _state$axisMovement[0];
447
+ moveY = _state$axisMovement[1];
448
+ } else {
449
+ var _state$axisMovement2 = state.axisMovement;
450
+ moveY = _state$axisMovement2[0];
451
+ moveX = _state$axisMovement2[1];
452
+ }
453
+ if (checkIfAtBoundary(state).isAtBoundary) {
454
+ var dampingFactor = .25 + Math.min(overBoundaryAccumulation / scrollBoundaryThreshold, 1) * .5;
455
+ var dampingMovement = overBoundaryAccumulation * (moveX > 0 ? -1 : 1) * dampingFactor;
456
+ moveX += dampingMovement;
457
+ moveY += dampingMovement;
458
+ }
459
+ if (!engine.options.skipSnaps && !engine.options.dragFree) {
460
+ var maxX = engine.containerRect.width;
461
+ var maxY = engine.containerRect.height;
462
+ moveX = moveX < 0 ? Math.max(moveX, -maxX) : Math.min(moveX, maxX);
463
+ moveY = moveY < 0 ? Math.max(moveY, -maxY) : Math.min(moveY, maxY);
464
+ }
465
+ return new MouseEvent(type, {
466
+ clientX: startEvent.clientX + moveX,
467
+ clientY: startEvent.clientY + moveY,
468
+ screenX: startEvent.screenX + moveX,
469
+ screenY: startEvent.screenY + moveY,
470
+ movementX: moveX,
471
+ movementY: moveY,
472
+ button: 0,
473
+ bubbles: true,
474
+ cancelable: true,
475
+ composed: true
476
+ });
477
+ }
478
+ function dispatchEvent(event) {
479
+ embla.containerNode().dispatchEvent(event);
480
+ }
481
+ function checkIfAtBoundary(state) {
482
+ var _state$axisDelta = state.axisDelta, deltaX = _state$axisDelta[0], deltaY = _state$axisDelta[1];
483
+ var scrollProgress = embla.scrollProgress();
484
+ var canScrollNext = scrollProgress < 1;
485
+ var canScrollPrev = scrollProgress > 0;
486
+ var primaryAxisDelta = wheelAxis === "x" ? deltaX : deltaY;
487
+ return {
488
+ isAtBoundary: primaryAxisDelta < 0 && !canScrollNext || primaryAxisDelta > 0 && !canScrollPrev,
489
+ primaryAxisDelta
490
+ };
491
+ }
492
+ function isBoundaryThresholdReached(state) {
493
+ var _checkIfAtBoundary2 = checkIfAtBoundary(state), isAtBoundary = _checkIfAtBoundary2.isAtBoundary, primaryAxisDelta = _checkIfAtBoundary2.primaryAxisDelta;
494
+ if (isAtBoundary && !state.isMomentum) {
495
+ overBoundaryAccumulation += Math.abs(primaryAxisDelta);
496
+ if (overBoundaryAccumulation > scrollBoundaryThreshold) {
497
+ blockedWaitUntilGestureEnd = true;
498
+ wheelGestureEnded(state);
499
+ return true;
500
+ }
501
+ } else overBoundaryAccumulation = 0;
502
+ return false;
503
+ }
504
+ function handleWheel(state) {
505
+ var _state$axisDelta2 = state.axisDelta, deltaX = _state$axisDelta2[0], deltaY = _state$axisDelta2[1];
506
+ var primaryAxisDelta = wheelAxis === "x" ? deltaX : deltaY;
507
+ var crossAxisDelta = wheelAxis === "x" ? deltaY : deltaX;
508
+ var isRelease = state.isMomentum && state.previous && !state.previous.isMomentum;
509
+ var isEndingOrRelease = state.isEnding && !state.isMomentum || isRelease;
510
+ if (Math.abs(primaryAxisDelta) > Math.abs(crossAxisDelta) && !isStarted && !state.isMomentum && !blockedWaitUntilGestureEnd) wheelGestureStarted(state);
511
+ if (blockedWaitUntilGestureEnd && state.isEnding) blockedWaitUntilGestureEnd = false;
512
+ if (!isStarted) return;
513
+ if (isBoundaryThresholdReached(state)) return;
514
+ if (isEndingOrRelease) wheelGestureEnded(state);
515
+ else dispatchEvent(createRelativeMouseEvent("mousemove", state));
516
+ }
517
+ cleanup = function cleanup() {
518
+ unobserveTargetNode();
519
+ offWheel();
520
+ embla.off("resize", updateSizeRelatedVariables);
521
+ removeNativeMouseEventListeners();
522
+ };
523
+ }
524
+ return {
525
+ name: "wheelGestures",
526
+ options: userOptions,
527
+ init,
528
+ destroy: function destroy() {
529
+ return cleanup();
530
+ }
531
+ };
532
+ }
533
+ //#endregion
534
+ export { WheelGesturesPlugin, WheelGesturesPlugin as default };
535
+
536
+ //# sourceMappingURL=embla-carousel-wheel-gestures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embla-carousel-wheel-gestures.js","names":["__DEV__"],"sources":["../../../../../../node_modules/.pnpm/wheel-gestures@2.2.48/node_modules/wheel-gestures/dist/wheel-gestures.esm.js","../../../../../../node_modules/.pnpm/embla-carousel-wheel-gestures@8.1.0_embla-carousel@8.6.0/node_modules/embla-carousel-wheel-gestures/dist/embla-carousel-wheel-gestures.esm.js"],"sourcesContent":["function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar DECAY = 0.996;\n/**\n * movement projection based on velocity\n * @param velocityPxMs\n * @param decay\n */\n\nvar projection = function projection(velocityPxMs, decay) {\n if (decay === void 0) {\n decay = DECAY;\n }\n\n return velocityPxMs * decay / (1 - decay);\n};\n\nfunction lastOf(array) {\n return array[array.length - 1];\n}\nfunction average(numbers) {\n return numbers.reduce(function (a, b) {\n return a + b;\n }) / numbers.length;\n}\nvar clamp = function clamp(value, min, max) {\n return Math.min(Math.max(min, value), max);\n};\nfunction addVectors(v1, v2) {\n if (v1.length !== v2.length) {\n throw new Error('vectors must be same length');\n }\n\n return v1.map(function (val, i) {\n return val + v2[i];\n });\n}\nfunction absMax(numbers) {\n return Math.max.apply(Math, numbers.map(Math.abs));\n} // eslint-disable-next-line @typescript-eslint/ban-types\n\nfunction deepFreeze(o) {\n Object.freeze(o);\n Object.values(o).forEach(function (value) {\n if (value !== null && typeof value === 'object' && !Object.isFrozen(value)) {\n deepFreeze(value);\n }\n });\n return o;\n}\n\nfunction EventBus() {\n var listeners = {};\n\n function on(type, listener) {\n listeners[type] = (listeners[type] || []).concat(listener);\n return function () {\n return off(type, listener);\n };\n }\n\n function off(type, listener) {\n listeners[type] = (listeners[type] || []).filter(function (l) {\n return l !== listener;\n });\n }\n\n function dispatch(type, data) {\n if (!(type in listeners)) return;\n listeners[type].forEach(function (l) {\n return l(data);\n });\n }\n\n return deepFreeze({\n on: on,\n off: off,\n dispatch: dispatch\n });\n}\n\nfunction WheelTargetObserver(eventListener) {\n var targets = []; // add event listener to target element\n\n var observe = function observe(target) {\n target.addEventListener('wheel', eventListener, {\n passive: false\n });\n targets.push(target);\n return function () {\n return unobserve(target);\n };\n }; /// remove event listener from target element\n\n\n var unobserve = function unobserve(target) {\n target.removeEventListener('wheel', eventListener);\n targets = targets.filter(function (t) {\n return t !== target;\n });\n }; // stops watching all of its target elements for visibility changes.\n\n\n var disconnect = function disconnect() {\n targets.forEach(unobserve);\n };\n\n return deepFreeze({\n observe: observe,\n unobserve: unobserve,\n disconnect: disconnect\n });\n}\n\nvar LINE_HEIGHT = 16 * 1.125;\nvar PAGE_HEIGHT = typeof window !== 'undefined' && window.innerHeight || 800;\nvar DELTA_MODE_UNIT = [1, LINE_HEIGHT, PAGE_HEIGHT];\nfunction normalizeWheel(e) {\n var deltaX = e.deltaX * DELTA_MODE_UNIT[e.deltaMode];\n var deltaY = e.deltaY * DELTA_MODE_UNIT[e.deltaMode];\n var deltaZ = (e.deltaZ || 0) * DELTA_MODE_UNIT[e.deltaMode];\n return {\n timeStamp: e.timeStamp,\n axisDelta: [deltaX, deltaY, deltaZ]\n };\n}\nvar reverseAll = [-1, -1, -1];\nfunction reverseAxisDeltaSign(wheel, reverseSign) {\n if (!reverseSign) {\n return wheel;\n }\n\n var multipliers = reverseSign === true ? reverseAll : reverseSign.map(function (shouldReverse) {\n return shouldReverse ? -1 : 1;\n });\n return _extends({}, wheel, {\n axisDelta: wheel.axisDelta.map(function (delta, i) {\n return delta * multipliers[i];\n })\n });\n}\nvar DELTA_MAX_ABS = 700;\nvar clampAxisDelta = function clampAxisDelta(wheel) {\n return _extends({}, wheel, {\n axisDelta: wheel.axisDelta.map(function (delta) {\n return clamp(delta, -DELTA_MAX_ABS, DELTA_MAX_ABS);\n })\n });\n};\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nvar ACC_FACTOR_MIN = 0.6;\nvar ACC_FACTOR_MAX = 0.96;\nvar WHEELEVENTS_TO_MERGE = 2;\nvar WHEELEVENTS_TO_ANALAZE = 5;\n\nvar configDefaults = /*#__PURE__*/deepFreeze({\n preventWheelAction: true,\n reverseSign: [true, true, false]\n});\n\nvar WILL_END_TIMEOUT_DEFAULT = 400;\nfunction createWheelGesturesState() {\n return {\n isStarted: false,\n isStartPublished: false,\n isMomentum: false,\n startTime: 0,\n lastAbsDelta: Infinity,\n axisMovement: [0, 0, 0],\n axisVelocity: [0, 0, 0],\n accelerationFactors: [],\n scrollPoints: [],\n scrollPointsToMerge: [],\n willEndTimeout: WILL_END_TIMEOUT_DEFAULT\n };\n}\n\nfunction WheelGestures(optionsParam) {\n if (optionsParam === void 0) {\n optionsParam = {};\n }\n\n var _EventBus = EventBus(),\n on = _EventBus.on,\n off = _EventBus.off,\n dispatch = _EventBus.dispatch;\n\n var config = configDefaults;\n var state = createWheelGesturesState();\n var currentEvent;\n var negativeZeroFingerUpSpecialEvent = false;\n var prevWheelEventState;\n\n var feedWheel = function feedWheel(wheelEvents) {\n if (Array.isArray(wheelEvents)) {\n wheelEvents.forEach(function (wheelEvent) {\n return processWheelEventData(wheelEvent);\n });\n } else {\n processWheelEventData(wheelEvents);\n }\n };\n\n var updateOptions = function updateOptions(newOptions) {\n if (newOptions === void 0) {\n newOptions = {};\n }\n\n if (Object.values(newOptions).some(function (option) {\n return option === undefined || option === null;\n })) {\n __DEV__ && console.error('updateOptions ignored! undefined & null options not allowed');\n return config;\n }\n\n return config = deepFreeze(_extends({}, configDefaults, config, newOptions));\n };\n\n var publishWheel = function publishWheel(additionalData) {\n var wheelEventState = _extends({\n event: currentEvent,\n isStart: false,\n isEnding: false,\n isMomentumCancel: false,\n isMomentum: state.isMomentum,\n axisDelta: [0, 0, 0],\n axisVelocity: state.axisVelocity,\n axisMovement: state.axisMovement,\n\n get axisMovementProjection() {\n return addVectors(wheelEventState.axisMovement, wheelEventState.axisVelocity.map(function (velocity) {\n return projection(velocity);\n }));\n }\n\n }, additionalData);\n\n dispatch('wheel', _extends({}, wheelEventState, {\n previous: prevWheelEventState\n })); // keep reference without previous, otherwise we would create a long chain\n\n prevWheelEventState = wheelEventState;\n }; // should prevent when there is mainly movement on the desired axis\n\n\n var shouldPreventDefault = function shouldPreventDefault(deltaMaxAbs, axisDelta) {\n var _config = config,\n preventWheelAction = _config.preventWheelAction;\n var deltaX = axisDelta[0],\n deltaY = axisDelta[1],\n deltaZ = axisDelta[2];\n if (typeof preventWheelAction === 'boolean') return preventWheelAction;\n\n switch (preventWheelAction) {\n case 'x':\n return Math.abs(deltaX) >= deltaMaxAbs;\n\n case 'y':\n return Math.abs(deltaY) >= deltaMaxAbs;\n\n case 'z':\n return Math.abs(deltaZ) >= deltaMaxAbs;\n\n default:\n __DEV__ && console.warn('unsupported preventWheelAction value: ' + preventWheelAction, 'warn');\n return false;\n }\n };\n\n var processWheelEventData = function processWheelEventData(wheelEvent) {\n var _clampAxisDelta = clampAxisDelta(reverseAxisDeltaSign(normalizeWheel(wheelEvent), config.reverseSign)),\n axisDelta = _clampAxisDelta.axisDelta,\n timeStamp = _clampAxisDelta.timeStamp;\n\n var deltaMaxAbs = absMax(axisDelta);\n\n if (wheelEvent.preventDefault && shouldPreventDefault(deltaMaxAbs, axisDelta)) {\n wheelEvent.preventDefault();\n }\n\n if (!state.isStarted) {\n start();\n } // check if user started scrolling again -> cancel\n else if (state.isMomentum && deltaMaxAbs > Math.max(2, state.lastAbsDelta * 2)) {\n end(true);\n start();\n } // special finger up event on windows + blink\n\n\n if (deltaMaxAbs === 0 && Object.is && Object.is(wheelEvent.deltaX, -0)) {\n negativeZeroFingerUpSpecialEvent = true; // return -> zero delta event should not influence velocity\n\n return;\n }\n\n currentEvent = wheelEvent;\n state.axisMovement = addVectors(state.axisMovement, axisDelta);\n state.lastAbsDelta = deltaMaxAbs;\n state.scrollPointsToMerge.push({\n axisDelta: axisDelta,\n timeStamp: timeStamp\n });\n mergeScrollPointsCalcVelocity(); // only wheel event (move) and not start/end get the delta values\n\n publishWheel({\n axisDelta: axisDelta,\n isStart: !state.isStartPublished\n }); // state.isMomentum ? MOMENTUM_WHEEL : WHEEL, { axisDelta })\n // publish start after velocity etc. have been updated\n\n state.isStartPublished = true; // calc debounced end function, to recognize end of wheel event stream\n\n willEnd();\n };\n\n var mergeScrollPointsCalcVelocity = function mergeScrollPointsCalcVelocity() {\n if (state.scrollPointsToMerge.length === WHEELEVENTS_TO_MERGE) {\n state.scrollPoints.unshift({\n axisDeltaSum: state.scrollPointsToMerge.map(function (b) {\n return b.axisDelta;\n }).reduce(addVectors),\n timeStamp: average(state.scrollPointsToMerge.map(function (b) {\n return b.timeStamp;\n }))\n }); // only update velocity after a merged scrollpoint was generated\n\n updateVelocity(); // reset toMerge array\n\n state.scrollPointsToMerge.length = 0; // after calculation of velocity only keep the most recent merged scrollPoint\n\n state.scrollPoints.length = 1;\n\n if (!state.isMomentum) {\n detectMomentum();\n }\n } else if (!state.isStartPublished) {\n updateStartVelocity();\n }\n };\n\n var updateStartVelocity = function updateStartVelocity() {\n state.axisVelocity = lastOf(state.scrollPointsToMerge).axisDelta.map(function (d) {\n return d / state.willEndTimeout;\n });\n };\n\n var updateVelocity = function updateVelocity() {\n // need to have two recent points to calc velocity\n var _state$scrollPoints = state.scrollPoints,\n latestScrollPoint = _state$scrollPoints[0],\n prevScrollPoint = _state$scrollPoints[1];\n\n if (!prevScrollPoint || !latestScrollPoint) {\n return;\n } // time delta\n\n\n var deltaTime = latestScrollPoint.timeStamp - prevScrollPoint.timeStamp;\n\n if (deltaTime <= 0) {\n __DEV__ && console.warn('invalid deltaTime');\n return;\n } // calc the velocity per axes\n\n\n var velocity = latestScrollPoint.axisDeltaSum.map(function (d) {\n return d / deltaTime;\n }); // calc the acceleration factor per axis\n\n var accelerationFactor = velocity.map(function (v, i) {\n return v / (state.axisVelocity[i] || 1);\n });\n state.axisVelocity = velocity;\n state.accelerationFactors.push(accelerationFactor);\n updateWillEndTimeout(deltaTime);\n };\n\n var updateWillEndTimeout = function updateWillEndTimeout(deltaTime) {\n // use current time between events rounded up and increased by a bit as timeout\n var newTimeout = Math.ceil(deltaTime / 10) * 10 * 1.2; // double the timeout, when momentum was not detected yet\n\n if (!state.isMomentum) {\n newTimeout = Math.max(100, newTimeout * 2);\n }\n\n state.willEndTimeout = Math.min(1000, Math.round(newTimeout));\n };\n\n var accelerationFactorInMomentumRange = function accelerationFactorInMomentumRange(accFactor) {\n // when main axis is the the other one and there is no movement/change on the current one\n if (accFactor === 0) return true;\n return accFactor <= ACC_FACTOR_MAX && accFactor >= ACC_FACTOR_MIN;\n };\n\n var detectMomentum = function detectMomentum() {\n if (state.accelerationFactors.length >= WHEELEVENTS_TO_ANALAZE) {\n if (negativeZeroFingerUpSpecialEvent) {\n negativeZeroFingerUpSpecialEvent = false;\n\n if (absMax(state.axisVelocity) >= 0.2) {\n recognizedMomentum();\n return;\n }\n }\n\n var recentAccelerationFactors = state.accelerationFactors.slice(WHEELEVENTS_TO_ANALAZE * -1); // check recent acceleration / deceleration factors\n // all recent need to match, if any did not match\n\n var detectedMomentum = recentAccelerationFactors.every(function (accFac) {\n // when both axis decelerate exactly in the same rate it is very likely caused by momentum\n var sameAccFac = !!accFac.reduce(function (f1, f2) {\n return f1 && f1 < 1 && f1 === f2 ? 1 : 0;\n }); // check if acceleration factor is within momentum range\n\n var bothAreInRangeOrZero = accFac.filter(accelerationFactorInMomentumRange).length === accFac.length; // one the requirements must be fulfilled\n\n return sameAccFac || bothAreInRangeOrZero;\n });\n\n if (detectedMomentum) {\n recognizedMomentum();\n } // only keep the most recent events\n\n\n state.accelerationFactors = recentAccelerationFactors;\n }\n };\n\n var recognizedMomentum = function recognizedMomentum() {\n state.isMomentum = true;\n };\n\n var start = function start() {\n state = createWheelGesturesState();\n state.isStarted = true;\n state.startTime = Date.now();\n prevWheelEventState = undefined;\n negativeZeroFingerUpSpecialEvent = false;\n };\n\n var willEnd = function () {\n var willEndId;\n return function () {\n clearTimeout(willEndId);\n willEndId = setTimeout(end, state.willEndTimeout);\n };\n }();\n\n var end = function end(isMomentumCancel) {\n if (isMomentumCancel === void 0) {\n isMomentumCancel = false;\n }\n\n if (!state.isStarted) return;\n\n if (state.isMomentum && isMomentumCancel) {\n publishWheel({\n isEnding: true,\n isMomentumCancel: true\n });\n } else {\n publishWheel({\n isEnding: true\n });\n }\n\n state.isMomentum = false;\n state.isStarted = false;\n };\n\n var _WheelTargetObserver = WheelTargetObserver(feedWheel),\n observe = _WheelTargetObserver.observe,\n unobserve = _WheelTargetObserver.unobserve,\n disconnect = _WheelTargetObserver.disconnect;\n\n updateOptions(optionsParam);\n return deepFreeze({\n on: on,\n off: off,\n observe: observe,\n unobserve: unobserve,\n disconnect: disconnect,\n feedWheel: feedWheel,\n updateOptions: updateOptions\n });\n}\n\nexport default WheelGestures;\nexport { WheelGestures, absMax, addVectors, average, clamp, configDefaults, deepFreeze, lastOf, projection };\n//# sourceMappingURL=wheel-gestures.esm.js.map\n","import WheelGestures from 'wheel-gestures';\n\nvar defaultOptions = {\n active: true,\n breakpoints: {},\n wheelDraggingClass: 'is-wheel-dragging',\n forceWheelAxis: undefined,\n target: undefined\n};\nWheelGesturesPlugin.globalOptions = undefined;\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nfunction WheelGesturesPlugin(userOptions) {\n if (userOptions === void 0) {\n userOptions = {};\n }\n\n var options;\n\n var cleanup = function cleanup() {};\n\n function init(embla, optionsHandler) {\n var _options$target, _options$forceWheelAx;\n\n var mergeOptions = optionsHandler.mergeOptions,\n optionsAtMedia = optionsHandler.optionsAtMedia;\n var optionsBase = mergeOptions(defaultOptions, WheelGesturesPlugin.globalOptions);\n var allOptions = mergeOptions(optionsBase, userOptions);\n options = optionsAtMedia(allOptions);\n var engine = embla.internalEngine();\n var targetNode = (_options$target = options.target) != null ? _options$target : embla.containerNode().parentNode;\n var wheelAxis = (_options$forceWheelAx = options.forceWheelAxis) != null ? _options$forceWheelAx : engine.options.axis;\n var wheelGestures = WheelGestures({\n preventWheelAction: wheelAxis,\n reverseSign: [true, true, false]\n });\n\n function updateSizeRelatedVariables() {\n scrollBoundaryThreshold = (wheelAxis === 'x' ? engine.containerRect.width : engine.containerRect.height) / 2;\n }\n\n var unobserveTargetNode = wheelGestures.observe(targetNode);\n var offWheel = wheelGestures.on('wheel', handleWheel);\n var isStarted = false;\n var startEvent;\n var overBoundaryAccumulation = 0;\n var scrollBoundaryThreshold = 0;\n var blockedWaitUntilGestureEnd = false;\n updateSizeRelatedVariables();\n embla.on('resize', updateSizeRelatedVariables);\n\n function wheelGestureStarted(state) {\n try {\n startEvent = new MouseEvent('mousedown', state.event);\n dispatchEvent(startEvent);\n } catch (e) {\n // Legacy Browsers like IE 10 & 11 will throw when attempting to create the Event\n if (__DEV__) {\n console.warn('Legacy browser requires events-polyfill (https://github.com/xiel/embla-carousel-wheel-gestures#legacy-browsers)');\n }\n\n return cleanup();\n }\n\n isStarted = true;\n overBoundaryAccumulation = 0;\n addNativeMouseEventListeners();\n\n if (options.wheelDraggingClass) {\n targetNode.classList.add(options.wheelDraggingClass);\n }\n }\n\n function wheelGestureEnded(state) {\n isStarted = false;\n dispatchEvent(createRelativeMouseEvent('mouseup', state));\n removeNativeMouseEventListeners();\n\n if (options.wheelDraggingClass) {\n targetNode.classList.remove(options.wheelDraggingClass);\n }\n }\n\n function addNativeMouseEventListeners() {\n document.documentElement.addEventListener('mousemove', preventNativeMouseHandler, true);\n document.documentElement.addEventListener('mouseup', preventNativeMouseHandler, true);\n document.documentElement.addEventListener('mousedown', preventNativeMouseHandler, true);\n }\n\n function removeNativeMouseEventListeners() {\n document.documentElement.removeEventListener('mousemove', preventNativeMouseHandler, true);\n document.documentElement.removeEventListener('mouseup', preventNativeMouseHandler, true);\n document.documentElement.removeEventListener('mousedown', preventNativeMouseHandler, true);\n }\n\n function preventNativeMouseHandler(e) {\n if (isStarted && e.isTrusted) {\n e.stopImmediatePropagation();\n }\n }\n\n function createRelativeMouseEvent(type, state) {\n var moveX, moveY;\n\n if (wheelAxis === engine.options.axis) {\n var _state$axisMovement = state.axisMovement;\n moveX = _state$axisMovement[0];\n moveY = _state$axisMovement[1];\n } else {\n var _state$axisMovement2 = state.axisMovement;\n moveY = _state$axisMovement2[0];\n moveX = _state$axisMovement2[1];\n }\n\n var _checkIfAtBoundary = checkIfAtBoundary(state),\n isAtBoundary = _checkIfAtBoundary.isAtBoundary; // Apply progressive rubber band damping when at boundaries\n\n\n if (isAtBoundary) {\n // Calculate progressive damping factor based on how far over boundary we are\n var progressRatio = Math.min(overBoundaryAccumulation / scrollBoundaryThreshold, 1);\n var dampingFactor = 0.25 + progressRatio * 0.5;\n var counterMoveSign = moveX > 0 ? -1 : 1;\n var counterMovement = overBoundaryAccumulation * counterMoveSign;\n var dampingMovement = counterMovement * dampingFactor;\n moveX += dampingMovement;\n moveY += dampingMovement;\n } // prevent skipping slides\n\n\n if (!engine.options.skipSnaps && !engine.options.dragFree) {\n var maxX = engine.containerRect.width;\n var maxY = engine.containerRect.height;\n moveX = moveX < 0 ? Math.max(moveX, -maxX) : Math.min(moveX, maxX);\n moveY = moveY < 0 ? Math.max(moveY, -maxY) : Math.min(moveY, maxY);\n }\n\n return new MouseEvent(type, {\n clientX: startEvent.clientX + moveX,\n clientY: startEvent.clientY + moveY,\n screenX: startEvent.screenX + moveX,\n screenY: startEvent.screenY + moveY,\n movementX: moveX,\n movementY: moveY,\n button: 0,\n bubbles: true,\n cancelable: true,\n composed: true\n });\n }\n\n function dispatchEvent(event) {\n embla.containerNode().dispatchEvent(event);\n }\n\n function checkIfAtBoundary(state) {\n var _state$axisDelta = state.axisDelta,\n deltaX = _state$axisDelta[0],\n deltaY = _state$axisDelta[1];\n var scrollProgress = embla.scrollProgress();\n var canScrollNext = scrollProgress < 1;\n var canScrollPrev = scrollProgress > 0;\n var primaryAxisDelta = wheelAxis === 'x' ? deltaX : deltaY;\n var isScrollingNext = primaryAxisDelta < 0;\n var isScrollingPrev = primaryAxisDelta > 0;\n var isAtBoundary = isScrollingNext && !canScrollNext || isScrollingPrev && !canScrollPrev;\n return {\n isAtBoundary: isAtBoundary,\n primaryAxisDelta: primaryAxisDelta\n };\n }\n\n function isBoundaryThresholdReached(state) {\n var _checkIfAtBoundary2 = checkIfAtBoundary(state),\n isAtBoundary = _checkIfAtBoundary2.isAtBoundary,\n primaryAxisDelta = _checkIfAtBoundary2.primaryAxisDelta;\n\n if (isAtBoundary && !state.isMomentum) {\n overBoundaryAccumulation += Math.abs(primaryAxisDelta); // End gesture if we exceed the threshold\n\n if (overBoundaryAccumulation > scrollBoundaryThreshold) {\n blockedWaitUntilGestureEnd = true;\n wheelGestureEnded(state);\n return true;\n }\n } else {\n // Reset accumulation when we can scroll or when not at boundary\n overBoundaryAccumulation = 0;\n }\n\n return false;\n }\n\n function handleWheel(state) {\n var _state$axisDelta2 = state.axisDelta,\n deltaX = _state$axisDelta2[0],\n deltaY = _state$axisDelta2[1];\n var primaryAxisDelta = wheelAxis === 'x' ? deltaX : deltaY;\n var crossAxisDelta = wheelAxis === 'x' ? deltaY : deltaX;\n var isRelease = state.isMomentum && state.previous && !state.previous.isMomentum;\n var isEndingOrRelease = state.isEnding && !state.isMomentum || isRelease;\n var primaryAxisDeltaIsDominant = Math.abs(primaryAxisDelta) > Math.abs(crossAxisDelta);\n\n if (primaryAxisDeltaIsDominant && !isStarted && !state.isMomentum && !blockedWaitUntilGestureEnd) {\n wheelGestureStarted(state);\n }\n\n if (blockedWaitUntilGestureEnd && state.isEnding) {\n blockedWaitUntilGestureEnd = false;\n }\n\n if (!isStarted) return;\n if (isBoundaryThresholdReached(state)) return;\n\n if (isEndingOrRelease) {\n wheelGestureEnded(state);\n } else {\n dispatchEvent(createRelativeMouseEvent('mousemove', state));\n }\n }\n\n cleanup = function cleanup() {\n unobserveTargetNode();\n offWheel();\n embla.off('resize', updateSizeRelatedVariables);\n removeNativeMouseEventListeners();\n };\n }\n\n var self = {\n name: 'wheelGestures',\n options: userOptions,\n init: init,\n destroy: function destroy() {\n return cleanup();\n }\n };\n return self;\n}\n\nexport default WheelGesturesPlugin;\nexport { WheelGesturesPlugin };\n//# sourceMappingURL=embla-carousel-wheel-gestures.esm.js.map\n"],"x_google_ignoreList":[0,1],"mappings":"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"}