@v-c/slick 0.0.1

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.
@@ -0,0 +1,912 @@
1
+ import default_props_default from "./default-props.js";
2
+ import { canGoNext, changeSlide, extractObject, getHeight, getOnDemandLazySlides, getPostClones, getPreClones, getTrackCSS, getTrackLeft, initializedState, keyHandler, slideHandler, swipeEnd, swipeMove, swipeStart } from "./utils/innerSliderUtils.js";
3
+ import { NextArrow, PrevArrow } from "./Arrows.js";
4
+ import Dots_default from "./Dots.js";
5
+ import initial_state_default from "./initial-state.js";
6
+ import Track_default from "./Track.js";
7
+ import { computed, createVNode, defineComponent, mergeDefaults, mergeProps, nextTick, onBeforeUnmount, onMounted, onUpdated, reactive, shallowRef, watch } from "vue";
8
+ import { clsx } from "@v-c/util";
9
+ import { filterEmpty, getStylePxValue } from "@v-c/util/dist/props-util";
10
+ import { toArray } from "@v-c/util/dist/Children/toArray";
11
+ import { debounce } from "es-toolkit";
12
+ var InnerSlider_default = /* @__PURE__ */ defineComponent((props, { slots, expose }) => {
13
+ const mergedProps = computed(() => ({ ...props }));
14
+ const listRef = shallowRef(null);
15
+ const trackRef = shallowRef(null);
16
+ const callbackTimers = [];
17
+ let autoplayTimer = null;
18
+ let lazyLoadTimer = null;
19
+ let animationEndCallback = null;
20
+ let debouncedResize = null;
21
+ let ro = null;
22
+ let asNavForIndex = null;
23
+ let clickable = true;
24
+ let latestChildren = [];
25
+ let latestChildrenCount = 0;
26
+ let lastChildrenCount = 0;
27
+ const resolveChildren = () => {
28
+ return filterEmpty(toArray(slots?.default?.() || [])).filter((child) => child !== false);
29
+ };
30
+ const state = reactive({
31
+ ...initial_state_default,
32
+ currentSlide: mergedProps.value.initialSlide ?? 0,
33
+ targetSlide: mergedProps.value.initialSlide ?? 0,
34
+ slideCount: 0
35
+ });
36
+ const setState = (nextState, callback) => {
37
+ Object.assign(state, nextState);
38
+ if (callback) nextTick(callback);
39
+ };
40
+ const getSpec = (extra) => ({
41
+ ...mergedProps.value,
42
+ ...state,
43
+ listRef: listRef.value,
44
+ trackRef: trackRef.value,
45
+ slideCount: latestChildrenCount,
46
+ children: latestChildren,
47
+ ...extra
48
+ });
49
+ const adaptHeight = () => {
50
+ if (!mergedProps.value.adaptiveHeight || !listRef.value) return;
51
+ const elem = listRef.value.querySelector(`[data-index="${state.currentSlide}"]`);
52
+ if (elem) listRef.value.style.height = `${getHeight(elem)}px`;
53
+ };
54
+ const updateState = (spec, setTrackStyle, callback) => {
55
+ const updatedState = initializedState(spec);
56
+ const mergedSpec = {
57
+ ...spec,
58
+ ...updatedState,
59
+ slideIndex: updatedState.currentSlide
60
+ };
61
+ const targetLeft = getTrackLeft(mergedSpec);
62
+ const trackStyle = getTrackCSS({
63
+ ...mergedSpec,
64
+ left: targetLeft
65
+ });
66
+ if (setTrackStyle) updatedState.trackStyle = trackStyle;
67
+ setState(updatedState, callback);
68
+ };
69
+ const ssrInit = () => {
70
+ if (latestChildrenCount === 0) return {};
71
+ if (mergedProps.value.variableWidth) {
72
+ let trackWidth$1 = 0;
73
+ let trackLeft$1 = 0;
74
+ const childrenWidths = [];
75
+ const slideCount$1 = latestChildrenCount;
76
+ const preClones = getPreClones({
77
+ ...mergedProps.value,
78
+ ...state,
79
+ slideCount: slideCount$1
80
+ });
81
+ const postClones = getPostClones({
82
+ ...mergedProps.value,
83
+ ...state,
84
+ slideCount: slideCount$1
85
+ });
86
+ latestChildren.forEach((child) => {
87
+ const width = child?.props?.style?.width;
88
+ const widthValue = typeof width === "number" ? width : Number.parseFloat(String(width)) || 0;
89
+ childrenWidths.push(widthValue);
90
+ trackWidth$1 += widthValue;
91
+ });
92
+ for (let i = 0; i < preClones; i += 1) {
93
+ trackLeft$1 += childrenWidths[childrenWidths.length - 1 - i];
94
+ trackWidth$1 += childrenWidths[childrenWidths.length - 1 - i];
95
+ }
96
+ for (let i = 0; i < postClones; i += 1) trackWidth$1 += childrenWidths[i];
97
+ for (let i = 0; i < state.currentSlide; i += 1) trackLeft$1 += childrenWidths[i];
98
+ const trackStyle$1 = {
99
+ width: `${trackWidth$1}px`,
100
+ left: `${-trackLeft$1}px`
101
+ };
102
+ if (mergedProps.value.centerMode) {
103
+ const currentWidth = `${childrenWidths[state.currentSlide]}px`;
104
+ trackStyle$1.left = `calc(${trackStyle$1.left} + (100% - ${currentWidth}) / 2 )`;
105
+ }
106
+ return { trackStyle: trackStyle$1 };
107
+ }
108
+ const slideCount = latestChildrenCount;
109
+ const spec = {
110
+ ...mergedProps.value,
111
+ ...state,
112
+ slideCount
113
+ };
114
+ const totalSlideCount = getPreClones(spec) + getPostClones(spec) + slideCount;
115
+ const trackWidth = 100 / mergedProps.value.slidesToShow * totalSlideCount;
116
+ const slideWidth = 100 / totalSlideCount;
117
+ let trackLeft = -slideWidth * (getPreClones(spec) + state.currentSlide) * trackWidth / 100;
118
+ if (mergedProps.value.centerMode) trackLeft += (100 - slideWidth * trackWidth / 100) / 2;
119
+ const trackStyle = {
120
+ width: `${trackWidth}%`,
121
+ left: `${trackLeft}%`
122
+ };
123
+ return {
124
+ slideWidth: `${slideWidth}%`,
125
+ trackStyle
126
+ };
127
+ };
128
+ Object.assign(state, ssrInit());
129
+ const checkImagesLoad = () => {
130
+ const listNode = listRef.value;
131
+ if (!listNode || typeof document === "undefined") return;
132
+ const images = listNode.querySelectorAll(".slick-slide img") || [];
133
+ const imagesCount = images.length;
134
+ let loadedCount = 0;
135
+ Array.prototype.forEach.call(images, (image) => {
136
+ const handler = () => {
137
+ loadedCount += 1;
138
+ if (loadedCount >= imagesCount) onWindowResized();
139
+ };
140
+ if (!image.onclick) image.onclick = () => image.parentElement?.focus();
141
+ else {
142
+ const prevClickHandler = image.onclick;
143
+ image.onclick = (e) => {
144
+ prevClickHandler(e);
145
+ image.parentElement?.focus();
146
+ };
147
+ }
148
+ if (!image.onload) if (mergedProps.value.lazyLoad) image.onload = () => {
149
+ adaptHeight();
150
+ callbackTimers.push(setTimeout(onWindowResized, mergedProps.value.speed));
151
+ };
152
+ else {
153
+ image.onload = handler;
154
+ image.onerror = () => {
155
+ handler();
156
+ mergedProps.value.onLazyLoadError?.();
157
+ };
158
+ }
159
+ });
160
+ };
161
+ const progressiveLazyLoad = () => {
162
+ const slidesToLoad = [];
163
+ const spec = getSpec();
164
+ for (let index = state.currentSlide; index < state.slideCount + getPostClones(spec); index += 1) if (!state.lazyLoadedList.includes(index)) {
165
+ slidesToLoad.push(index);
166
+ break;
167
+ }
168
+ for (let index = state.currentSlide - 1; index >= -getPreClones(spec); index -= 1) if (!state.lazyLoadedList.includes(index)) {
169
+ slidesToLoad.push(index);
170
+ break;
171
+ }
172
+ if (slidesToLoad.length > 0) {
173
+ setState({ lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad) });
174
+ mergedProps.value.onLazyLoad?.(slidesToLoad);
175
+ } else if (lazyLoadTimer) {
176
+ clearInterval(lazyLoadTimer);
177
+ lazyLoadTimer = null;
178
+ }
179
+ };
180
+ const resolveInnerSlider = (nav) => {
181
+ if (!nav) return null;
182
+ if (typeof nav.slideHandler === "function") return nav;
183
+ if (nav.innerSlider) {
184
+ const inner = nav.innerSlider;
185
+ if (inner && typeof inner === "object" && "value" in inner) return inner.value ?? null;
186
+ return inner;
187
+ }
188
+ return null;
189
+ };
190
+ const slideHandler$1 = (index, dontAnimate = false) => {
191
+ const { asNavFor, beforeChange, onLazyLoad, speed, afterChange } = mergedProps.value;
192
+ const currentSlide = state.currentSlide;
193
+ const { state: newState, nextState } = slideHandler({
194
+ index,
195
+ ...mergedProps.value,
196
+ ...state,
197
+ trackRef: trackRef.value,
198
+ useCSS: mergedProps.value.useCSS && !dontAnimate
199
+ });
200
+ if (!newState) return;
201
+ beforeChange?.(currentSlide, newState.currentSlide);
202
+ const slidesToLoad = newState.lazyLoadedList?.filter((value) => !state.lazyLoadedList.includes(value)) ?? [];
203
+ if (onLazyLoad && slidesToLoad.length > 0) onLazyLoad(slidesToLoad);
204
+ if (!mergedProps.value.waitForAnimate && animationEndCallback) {
205
+ clearTimeout(animationEndCallback);
206
+ animationEndCallback = null;
207
+ afterChange?.(currentSlide);
208
+ }
209
+ setState(newState, () => {
210
+ const navTarget = resolveInnerSlider(asNavFor);
211
+ if (navTarget && asNavForIndex !== index) {
212
+ asNavForIndex = index;
213
+ navTarget.slideHandler(index);
214
+ }
215
+ if (!nextState) return;
216
+ animationEndCallback = setTimeout(() => {
217
+ const { animating, ...firstBatch } = nextState;
218
+ setState(firstBatch, () => {
219
+ callbackTimers.push(setTimeout(() => setState({ animating }), 10));
220
+ afterChange?.(newState.currentSlide);
221
+ animationEndCallback = null;
222
+ });
223
+ }, speed);
224
+ });
225
+ };
226
+ const changeSlide$1 = (options, dontAnimate = false) => {
227
+ const targetSlide = changeSlide(getSpec(), options);
228
+ if (targetSlide !== 0 && !targetSlide) return;
229
+ if (dontAnimate === true) slideHandler$1(targetSlide, dontAnimate);
230
+ else slideHandler$1(targetSlide);
231
+ if (mergedProps.value.autoplay) autoPlay("update");
232
+ if (mergedProps.value.focusOnSelect && listRef.value) (listRef.value.querySelectorAll(".slick-current")?.[0])?.focus();
233
+ };
234
+ const clickHandler = (e) => {
235
+ if (clickable === false) {
236
+ e.stopPropagation();
237
+ e.preventDefault();
238
+ }
239
+ clickable = true;
240
+ };
241
+ const keyHandler$1 = (e) => {
242
+ const dir = keyHandler(e, mergedProps.value.accessibility, mergedProps.value.rtl);
243
+ if (dir !== "") changeSlide$1({ message: dir });
244
+ };
245
+ const selectHandler = (options) => {
246
+ changeSlide$1(options);
247
+ };
248
+ const disableBodyScroll = () => {
249
+ if (typeof window === "undefined") return;
250
+ const preventDefault = (event) => {
251
+ event.preventDefault();
252
+ };
253
+ window.ontouchmove = preventDefault;
254
+ };
255
+ const enableBodyScroll = () => {
256
+ if (typeof window === "undefined") return;
257
+ window.ontouchmove = null;
258
+ };
259
+ const swipeStart$1 = (e) => {
260
+ if (mergedProps.value.verticalSwiping) disableBodyScroll();
261
+ const swipeState = swipeStart(e, mergedProps.value.swipe, mergedProps.value.draggable);
262
+ if (swipeState !== "") setState(swipeState);
263
+ };
264
+ const swipeMove$1 = (e) => {
265
+ const swipeState = swipeMove(e, {
266
+ ...mergedProps.value,
267
+ ...state,
268
+ trackRef: trackRef.value,
269
+ listRef: listRef.value,
270
+ slideIndex: state.currentSlide
271
+ });
272
+ if (!swipeState) return;
273
+ if (swipeState.swiping) clickable = false;
274
+ setState(swipeState);
275
+ };
276
+ const swipeEnd$1 = (e) => {
277
+ const swipeState = swipeEnd(e, {
278
+ ...mergedProps.value,
279
+ ...state,
280
+ trackRef: trackRef.value,
281
+ listRef: listRef.value,
282
+ slideIndex: state.currentSlide
283
+ });
284
+ if (!swipeState) return;
285
+ const triggerSlideHandler = swipeState.triggerSlideHandler;
286
+ delete swipeState.triggerSlideHandler;
287
+ setState(swipeState);
288
+ if (triggerSlideHandler === void 0) return;
289
+ slideHandler$1(triggerSlideHandler);
290
+ if (mergedProps.value.verticalSwiping) enableBodyScroll();
291
+ };
292
+ const touchEnd = (e) => {
293
+ swipeEnd$1(e);
294
+ clickable = true;
295
+ };
296
+ const slickPrev = () => {
297
+ callbackTimers.push(setTimeout(() => changeSlide$1({ message: "previous" }), 0));
298
+ };
299
+ const slickNext = () => {
300
+ callbackTimers.push(setTimeout(() => changeSlide$1({ message: "next" }), 0));
301
+ };
302
+ const slickGoTo = (slide, dontAnimate = false) => {
303
+ const target = Number(slide);
304
+ if (Number.isNaN(target)) return;
305
+ callbackTimers.push(setTimeout(() => changeSlide$1({
306
+ message: "index",
307
+ index: target,
308
+ currentSlide: state.currentSlide
309
+ }, dontAnimate), 0));
310
+ };
311
+ const play = () => {
312
+ let nextIndex = 0;
313
+ if (mergedProps.value.rtl) nextIndex = state.currentSlide - mergedProps.value.slidesToScroll;
314
+ else if (canGoNext({
315
+ ...mergedProps.value,
316
+ ...state
317
+ })) nextIndex = state.currentSlide + mergedProps.value.slidesToScroll;
318
+ else return false;
319
+ slideHandler$1(nextIndex);
320
+ return true;
321
+ };
322
+ function autoPlay(playType) {
323
+ if (autoplayTimer) clearInterval(autoplayTimer);
324
+ const autoplaying = state.autoplaying;
325
+ if (playType === "update") {
326
+ if (autoplaying === "hovered" || autoplaying === "focused" || autoplaying === "paused") return;
327
+ } else if (playType === "leave") {
328
+ if (autoplaying === "paused" || autoplaying === "focused") return;
329
+ } else if (playType === "blur") {
330
+ if (autoplaying === "paused" || autoplaying === "hovered") return;
331
+ }
332
+ autoplayTimer = setInterval(play, mergedProps.value.autoplaySpeed + 50);
333
+ setState({ autoplaying: "playing" });
334
+ }
335
+ const pause = (pauseType) => {
336
+ if (autoplayTimer) {
337
+ clearInterval(autoplayTimer);
338
+ autoplayTimer = null;
339
+ }
340
+ const autoplaying = state.autoplaying;
341
+ if (pauseType === "paused") setState({ autoplaying: "paused" });
342
+ else if (pauseType === "focused") {
343
+ if (autoplaying === "hovered" || autoplaying === "playing") setState({ autoplaying: "focused" });
344
+ } else if (autoplaying === "playing") setState({ autoplaying: "hovered" });
345
+ };
346
+ const onDotsOver = () => mergedProps.value.autoplay && pause("hovered");
347
+ const onDotsLeave = () => mergedProps.value.autoplay && state.autoplaying === "hovered" && autoPlay("leave");
348
+ const onTrackOver = () => mergedProps.value.autoplay && pause("hovered");
349
+ const onTrackLeave = () => mergedProps.value.autoplay && state.autoplaying === "hovered" && autoPlay("leave");
350
+ const onSlideFocus = () => mergedProps.value.autoplay && pause("focused");
351
+ const onSlideBlur = () => mergedProps.value.autoplay && state.autoplaying === "focused" && autoPlay("blur");
352
+ function onWindowResized(setTrackStyle) {
353
+ if (debouncedResize?.cancel) debouncedResize.cancel();
354
+ debouncedResize = debounce(() => resizeWindow(setTrackStyle), 50);
355
+ debouncedResize();
356
+ }
357
+ function resizeWindow(setTrackStyle = true) {
358
+ if (!Boolean(trackRef.value)) return;
359
+ updateState(getSpec(), setTrackStyle, () => {
360
+ if (mergedProps.value.autoplay) autoPlay("update");
361
+ else pause("paused");
362
+ });
363
+ setState({ animating: false });
364
+ if (animationEndCallback) {
365
+ clearTimeout(animationEndCallback);
366
+ animationEndCallback = null;
367
+ }
368
+ }
369
+ const didPropsChange = (prevProps, nextProps, prevChildren, nextChildren) => {
370
+ let setTrackStyle = false;
371
+ for (const key of Object.keys(nextProps)) {
372
+ if (!Object.prototype.hasOwnProperty.call(prevProps, key)) {
373
+ setTrackStyle = true;
374
+ break;
375
+ }
376
+ const prevValue = prevProps[key];
377
+ if (typeof prevValue === "object" || typeof prevValue === "function" || Number.isNaN(prevValue)) continue;
378
+ if (prevValue !== nextProps[key]) {
379
+ setTrackStyle = true;
380
+ break;
381
+ }
382
+ }
383
+ return setTrackStyle || prevChildren !== nextChildren;
384
+ };
385
+ onMounted(() => {
386
+ lastChildrenCount = latestChildrenCount;
387
+ mergedProps.value.onInit?.();
388
+ if (mergedProps.value.lazyLoad) {
389
+ const slidesToLoad = getOnDemandLazySlides(getSpec());
390
+ if (slidesToLoad.length > 0) {
391
+ setState({ lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad) });
392
+ mergedProps.value.onLazyLoad?.(slidesToLoad);
393
+ }
394
+ }
395
+ updateState(getSpec(), true, () => {
396
+ adaptHeight();
397
+ if (mergedProps.value.autoplay) autoPlay("playing");
398
+ });
399
+ if (mergedProps.value.lazyLoad === "progressive") lazyLoadTimer = setInterval(progressiveLazyLoad, 1e3);
400
+ if (typeof ResizeObserver !== "undefined" && listRef.value) {
401
+ ro = new ResizeObserver(() => {
402
+ if (state.animating) {
403
+ onWindowResized(false);
404
+ callbackTimers.push(setTimeout(() => onWindowResized(), mergedProps.value.speed));
405
+ } else onWindowResized();
406
+ });
407
+ ro.observe(listRef.value);
408
+ }
409
+ if (typeof document !== "undefined") {
410
+ const slides = document.querySelectorAll(".slick-slide");
411
+ Array.prototype.forEach.call(slides, (slide) => {
412
+ slide.onfocus = mergedProps.value.pauseOnFocus ? onSlideFocus : null;
413
+ slide.onblur = mergedProps.value.pauseOnFocus ? onSlideBlur : null;
414
+ });
415
+ }
416
+ if (typeof window !== "undefined") {
417
+ if (window.addEventListener) window.addEventListener("resize", onWindowResized);
418
+ else if (window.attachEvent) window.attachEvent("onresize", onWindowResized);
419
+ }
420
+ });
421
+ const handlePropsOrChildrenChange = (prevProps, nextProps, prevCount, nextCount) => {
422
+ if (!prevProps) return;
423
+ checkImagesLoad();
424
+ mergedProps.value.onReInit?.();
425
+ if (mergedProps.value.lazyLoad) {
426
+ const slidesToLoad = getOnDemandLazySlides(getSpec());
427
+ if (slidesToLoad.length > 0) {
428
+ setState({ lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad) });
429
+ mergedProps.value.onLazyLoad?.(slidesToLoad);
430
+ }
431
+ }
432
+ adaptHeight();
433
+ const setTrackStyle = didPropsChange(prevProps, nextProps, prevCount, nextCount);
434
+ if (setTrackStyle) updateState(getSpec(), setTrackStyle, () => {
435
+ if (state.currentSlide >= latestChildrenCount) changeSlide$1({
436
+ message: "index",
437
+ index: latestChildrenCount - mergedProps.value.slidesToShow,
438
+ currentSlide: state.currentSlide
439
+ });
440
+ if (prevProps.autoplay !== mergedProps.value.autoplay || prevProps.autoplaySpeed !== mergedProps.value.autoplaySpeed) if (!prevProps.autoplay && mergedProps.value.autoplay) autoPlay("playing");
441
+ else if (mergedProps.value.autoplay) autoPlay("update");
442
+ else pause("paused");
443
+ });
444
+ };
445
+ watch(mergedProps, (nextProps, prevProps) => {
446
+ if (prevProps) {
447
+ handlePropsOrChildrenChange(prevProps, nextProps, lastChildrenCount, latestChildrenCount);
448
+ lastChildrenCount = latestChildrenCount;
449
+ }
450
+ }, { flush: "post" });
451
+ onUpdated(() => {
452
+ if (latestChildrenCount !== lastChildrenCount) {
453
+ handlePropsOrChildrenChange(mergedProps.value, mergedProps.value, lastChildrenCount, latestChildrenCount);
454
+ lastChildrenCount = latestChildrenCount;
455
+ }
456
+ });
457
+ onBeforeUnmount(() => {
458
+ if (animationEndCallback) clearTimeout(animationEndCallback);
459
+ if (lazyLoadTimer) clearInterval(lazyLoadTimer);
460
+ if (callbackTimers.length) {
461
+ callbackTimers.forEach((timer) => clearTimeout(timer));
462
+ callbackTimers.length = 0;
463
+ }
464
+ if (typeof window !== "undefined") {
465
+ if (window.removeEventListener) window.removeEventListener("resize", onWindowResized);
466
+ else if (window.detachEvent) window.detachEvent("onresize", onWindowResized);
467
+ }
468
+ if (autoplayTimer) clearInterval(autoplayTimer);
469
+ ro?.disconnect();
470
+ });
471
+ expose({
472
+ slickPrev,
473
+ slickNext,
474
+ slickGoTo,
475
+ autoPlay,
476
+ pause,
477
+ play,
478
+ slideHandler: slideHandler$1,
479
+ changeSlide: changeSlide$1
480
+ });
481
+ return () => {
482
+ const renderChildren = resolveChildren();
483
+ latestChildren = renderChildren;
484
+ latestChildrenCount = renderChildren.length;
485
+ const className = clsx("slick-slider", mergedProps.value.className, {
486
+ "slick-vertical": mergedProps.value.vertical,
487
+ "slick-initialized": true
488
+ });
489
+ const spec = {
490
+ ...mergedProps.value,
491
+ ...state,
492
+ slideCount: latestChildrenCount,
493
+ children: renderChildren
494
+ };
495
+ let trackProps = extractObject(spec, [
496
+ "fade",
497
+ "cssEase",
498
+ "speed",
499
+ "infinite",
500
+ "centerMode",
501
+ "focusOnSelect",
502
+ "currentSlide",
503
+ "lazyLoad",
504
+ "lazyLoadedList",
505
+ "rtl",
506
+ "slideWidth",
507
+ "slideHeight",
508
+ "listHeight",
509
+ "vertical",
510
+ "slidesToShow",
511
+ "slidesToScroll",
512
+ "slideCount",
513
+ "trackStyle",
514
+ "variableWidth",
515
+ "unslick",
516
+ "centerPadding",
517
+ "targetSlide",
518
+ "useCSS"
519
+ ]);
520
+ const { pauseOnHover } = mergedProps.value;
521
+ trackProps = {
522
+ ...trackProps,
523
+ onMouseEnter: pauseOnHover ? onTrackOver : void 0,
524
+ onMouseLeave: pauseOnHover ? onTrackLeave : void 0,
525
+ onMouseOver: pauseOnHover ? onTrackOver : void 0,
526
+ focusOnSelect: mergedProps.value.focusOnSelect && clickable ? selectHandler : void 0,
527
+ children: renderChildren,
528
+ nodeRef: trackRef
529
+ };
530
+ let dots;
531
+ if (mergedProps.value.dots === true && latestChildrenCount >= mergedProps.value.slidesToShow) {
532
+ let dotProps = extractObject(spec, [
533
+ "dotsClass",
534
+ "slideCount",
535
+ "slidesToShow",
536
+ "currentSlide",
537
+ "slidesToScroll",
538
+ "customPaging",
539
+ "infinite",
540
+ "appendDots"
541
+ ]);
542
+ const { pauseOnDotsHover } = mergedProps.value;
543
+ dotProps = {
544
+ ...dotProps,
545
+ clickHandler: changeSlide$1,
546
+ onMouseEnter: pauseOnDotsHover ? onDotsLeave : void 0,
547
+ onMouseOver: pauseOnDotsHover ? onDotsOver : void 0,
548
+ onMouseLeave: pauseOnDotsHover ? onDotsLeave : void 0
549
+ };
550
+ dots = createVNode(Dots_default, dotProps, null);
551
+ }
552
+ let prevArrow;
553
+ let nextArrow;
554
+ const arrowProps = extractObject(spec, [
555
+ "infinite",
556
+ "centerMode",
557
+ "currentSlide",
558
+ "slideCount",
559
+ "slidesToShow",
560
+ "prevArrow",
561
+ "nextArrow"
562
+ ]);
563
+ arrowProps.clickHandler = changeSlide$1;
564
+ if (mergedProps.value.arrows) {
565
+ prevArrow = createVNode(PrevArrow, arrowProps, null);
566
+ nextArrow = createVNode(NextArrow, arrowProps, null);
567
+ }
568
+ let verticalHeightStyle = null;
569
+ if (mergedProps.value.vertical) verticalHeightStyle = { height: getStylePxValue(state.listHeight) };
570
+ let centerPaddingStyle = null;
571
+ if (mergedProps.value.vertical === false) {
572
+ if (mergedProps.value.centerMode === true) centerPaddingStyle = { padding: `0px ${mergedProps.value.centerPadding}` };
573
+ } else if (mergedProps.value.centerMode === true) centerPaddingStyle = { padding: `${mergedProps.value.centerPadding} 0px` };
574
+ const listStyle = {
575
+ ...verticalHeightStyle,
576
+ ...centerPaddingStyle
577
+ };
578
+ const touchMove = mergedProps.value.touchMove;
579
+ let listProps = {
580
+ class: "slick-list",
581
+ style: listStyle,
582
+ onClick: clickHandler,
583
+ onMousedown: touchMove ? swipeStart$1 : void 0,
584
+ onMousemove: state.dragging && touchMove ? swipeMove$1 : void 0,
585
+ onMouseup: touchMove ? swipeEnd$1 : void 0,
586
+ onMouseleave: state.dragging && touchMove ? swipeEnd$1 : void 0,
587
+ onTouchstart: touchMove ? swipeStart$1 : void 0,
588
+ onTouchmove: state.dragging && touchMove ? swipeMove$1 : void 0,
589
+ onTouchend: touchMove ? touchEnd : void 0,
590
+ onTouchcancel: state.dragging && touchMove ? swipeEnd$1 : void 0,
591
+ onKeydown: mergedProps.value.accessibility ? keyHandler$1 : void 0
592
+ };
593
+ let innerSliderProps = {
594
+ class: className,
595
+ dir: "ltr",
596
+ style: mergedProps.value.style
597
+ };
598
+ if (mergedProps.value.unslick) {
599
+ listProps = { class: "slick-list" };
600
+ innerSliderProps = {
601
+ class: className,
602
+ style: mergedProps.value.style
603
+ };
604
+ }
605
+ return createVNode("div", innerSliderProps, [
606
+ !mergedProps.value.unslick ? prevArrow : "",
607
+ createVNode("div", mergeProps({ "ref": listRef }, listProps), [createVNode(Track_default, trackProps, null)]),
608
+ !mergedProps.value.unslick ? nextArrow : "",
609
+ !mergedProps.value.unslick ? dots : ""
610
+ ]);
611
+ };
612
+ }, { props: /* @__PURE__ */ mergeDefaults({
613
+ accessibility: {
614
+ type: Boolean,
615
+ required: false,
616
+ default: void 0
617
+ },
618
+ adaptiveHeight: {
619
+ type: Boolean,
620
+ required: false,
621
+ default: void 0
622
+ },
623
+ afterChange: {
624
+ type: [Function, null],
625
+ required: false,
626
+ default: void 0
627
+ },
628
+ appendDots: {
629
+ type: Function,
630
+ required: false,
631
+ default: void 0
632
+ },
633
+ arrows: {
634
+ type: Boolean,
635
+ required: false,
636
+ default: void 0
637
+ },
638
+ autoplay: {
639
+ type: Boolean,
640
+ required: false,
641
+ default: void 0
642
+ },
643
+ autoplaySpeed: {
644
+ type: Number,
645
+ required: false,
646
+ default: void 0
647
+ },
648
+ beforeChange: {
649
+ type: [Function, null],
650
+ required: false,
651
+ default: void 0
652
+ },
653
+ centerMode: {
654
+ type: Boolean,
655
+ required: false,
656
+ default: void 0
657
+ },
658
+ centerPadding: {
659
+ type: String,
660
+ required: false,
661
+ default: void 0
662
+ },
663
+ className: {
664
+ type: String,
665
+ required: false,
666
+ default: void 0
667
+ },
668
+ cssEase: {
669
+ type: String,
670
+ required: false,
671
+ default: void 0
672
+ },
673
+ customPaging: {
674
+ type: Function,
675
+ required: false,
676
+ default: void 0
677
+ },
678
+ dots: {
679
+ type: Boolean,
680
+ required: false,
681
+ default: void 0
682
+ },
683
+ dotsClass: {
684
+ type: String,
685
+ required: false,
686
+ default: void 0
687
+ },
688
+ draggable: {
689
+ type: Boolean,
690
+ required: false,
691
+ default: void 0
692
+ },
693
+ easing: {
694
+ type: String,
695
+ required: false,
696
+ default: void 0
697
+ },
698
+ edgeFriction: {
699
+ type: Number,
700
+ required: false,
701
+ default: void 0
702
+ },
703
+ fade: {
704
+ type: Boolean,
705
+ required: false,
706
+ default: void 0
707
+ },
708
+ focusOnSelect: {
709
+ type: Boolean,
710
+ required: false,
711
+ default: void 0
712
+ },
713
+ infinite: {
714
+ type: Boolean,
715
+ required: false,
716
+ default: void 0
717
+ },
718
+ initialSlide: {
719
+ type: Number,
720
+ required: false,
721
+ default: void 0
722
+ },
723
+ lazyLoad: {
724
+ type: [
725
+ String,
726
+ Boolean,
727
+ null
728
+ ],
729
+ required: false,
730
+ default: void 0
731
+ },
732
+ nextArrow: {
733
+ type: [
734
+ Object,
735
+ String,
736
+ Number,
737
+ Boolean,
738
+ null,
739
+ Array
740
+ ],
741
+ required: false,
742
+ default: void 0
743
+ },
744
+ onEdge: {
745
+ type: [Function, null],
746
+ required: false,
747
+ default: void 0
748
+ },
749
+ onInit: {
750
+ type: [Function, null],
751
+ required: false,
752
+ default: void 0
753
+ },
754
+ onLazyLoad: {
755
+ type: [Function, null],
756
+ required: false,
757
+ default: void 0
758
+ },
759
+ onLazyLoadError: {
760
+ type: [Function, null],
761
+ required: false,
762
+ default: void 0
763
+ },
764
+ onReInit: {
765
+ type: [Function, null],
766
+ required: false,
767
+ default: void 0
768
+ },
769
+ onSwipe: {
770
+ type: [Function, null],
771
+ required: false,
772
+ default: void 0
773
+ },
774
+ pauseOnDotsHover: {
775
+ type: Boolean,
776
+ required: false,
777
+ default: void 0
778
+ },
779
+ pauseOnFocus: {
780
+ type: Boolean,
781
+ required: false,
782
+ default: void 0
783
+ },
784
+ pauseOnHover: {
785
+ type: Boolean,
786
+ required: false,
787
+ default: void 0
788
+ },
789
+ prevArrow: {
790
+ type: [
791
+ Object,
792
+ String,
793
+ Number,
794
+ Boolean,
795
+ null,
796
+ Array
797
+ ],
798
+ required: false,
799
+ default: void 0
800
+ },
801
+ responsive: {
802
+ type: [Array, null],
803
+ required: false,
804
+ default: void 0
805
+ },
806
+ rows: {
807
+ type: Number,
808
+ required: false,
809
+ default: void 0
810
+ },
811
+ rtl: {
812
+ type: Boolean,
813
+ required: false,
814
+ default: void 0
815
+ },
816
+ slide: {
817
+ type: String,
818
+ required: false,
819
+ default: void 0
820
+ },
821
+ slidesPerRow: {
822
+ type: Number,
823
+ required: false,
824
+ default: void 0
825
+ },
826
+ slidesToScroll: {
827
+ type: Number,
828
+ required: false,
829
+ default: void 0
830
+ },
831
+ slidesToShow: {
832
+ type: Number,
833
+ required: false,
834
+ default: void 0
835
+ },
836
+ speed: {
837
+ type: Number,
838
+ required: false,
839
+ default: void 0
840
+ },
841
+ swipe: {
842
+ type: Boolean,
843
+ required: false,
844
+ default: void 0
845
+ },
846
+ swipeEvent: {
847
+ type: [Function, null],
848
+ required: false,
849
+ default: void 0
850
+ },
851
+ swipeToSlide: {
852
+ type: Boolean,
853
+ required: false,
854
+ default: void 0
855
+ },
856
+ touchMove: {
857
+ type: Boolean,
858
+ required: false,
859
+ default: void 0
860
+ },
861
+ touchThreshold: {
862
+ type: Number,
863
+ required: false,
864
+ default: void 0
865
+ },
866
+ useCSS: {
867
+ type: Boolean,
868
+ required: false,
869
+ default: void 0
870
+ },
871
+ useTransform: {
872
+ type: Boolean,
873
+ required: false,
874
+ default: void 0
875
+ },
876
+ variableWidth: {
877
+ type: Boolean,
878
+ required: false,
879
+ default: void 0
880
+ },
881
+ vertical: {
882
+ type: Boolean,
883
+ required: false,
884
+ default: void 0
885
+ },
886
+ verticalSwiping: {
887
+ type: Boolean,
888
+ required: false,
889
+ default: void 0
890
+ },
891
+ waitForAnimate: {
892
+ type: Boolean,
893
+ required: false,
894
+ default: void 0
895
+ },
896
+ asNavFor: {
897
+ type: [Object, null],
898
+ required: false,
899
+ default: void 0
900
+ },
901
+ unslick: {
902
+ type: Boolean,
903
+ required: false,
904
+ default: void 0
905
+ },
906
+ style: {
907
+ type: Object,
908
+ required: false,
909
+ default: void 0
910
+ }
911
+ }, default_props_default) });
912
+ export { InnerSlider_default as default };