@v-c/slick 0.0.1 → 1.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.
package/dist/Arrows.js CHANGED
@@ -29,7 +29,7 @@ var PrevArrow = /* @__PURE__ */ defineComponent((props) => {
29
29
  currentSlide: props.currentSlide,
30
30
  slideCount: props.slideCount
31
31
  };
32
- if (props.prevArrow && isVNode(props.prevArrow)) return createVNode(props.prevArrow, {
32
+ if (props.prevArrow && isVNode(props.prevArrow)) return cloneVNode(props.prevArrow, {
33
33
  ...prevArrowProps,
34
34
  ...customProps
35
35
  });
@@ -6,7 +6,7 @@ import initial_state_default from "./initial-state.js";
6
6
  import Track_default from "./Track.js";
7
7
  import { computed, createVNode, defineComponent, mergeDefaults, mergeProps, nextTick, onBeforeUnmount, onMounted, onUpdated, reactive, shallowRef, watch } from "vue";
8
8
  import { clsx } from "@v-c/util";
9
- import { filterEmpty, getStylePxValue } from "@v-c/util/dist/props-util";
9
+ import { filterEmpty } from "@v-c/util/dist/props-util";
10
10
  import { toArray } from "@v-c/util/dist/Children/toArray";
11
11
  import { debounce } from "es-toolkit";
12
12
  var InnerSlider_default = /* @__PURE__ */ defineComponent((props, { slots, expose }) => {
@@ -66,24 +66,23 @@ var InnerSlider_default = /* @__PURE__ */ defineComponent((props, { slots, expos
66
66
  if (setTrackStyle) updatedState.trackStyle = trackStyle;
67
67
  setState(updatedState, callback);
68
68
  };
69
- const ssrInit = () => {
70
- if (latestChildrenCount === 0) return {};
69
+ const getSsrState = (children, slideCount) => {
70
+ if (slideCount === 0) return {};
71
71
  if (mergedProps.value.variableWidth) {
72
72
  let trackWidth$1 = 0;
73
73
  let trackLeft$1 = 0;
74
74
  const childrenWidths = [];
75
- const slideCount$1 = latestChildrenCount;
76
75
  const preClones = getPreClones({
77
76
  ...mergedProps.value,
78
77
  ...state,
79
- slideCount: slideCount$1
78
+ slideCount
80
79
  });
81
80
  const postClones = getPostClones({
82
81
  ...mergedProps.value,
83
82
  ...state,
84
- slideCount: slideCount$1
83
+ slideCount
85
84
  });
86
- latestChildren.forEach((child) => {
85
+ children.forEach((child) => {
87
86
  const width = child?.props?.style?.width;
88
87
  const widthValue = typeof width === "number" ? width : Number.parseFloat(String(width)) || 0;
89
88
  childrenWidths.push(widthValue);
@@ -105,7 +104,6 @@ var InnerSlider_default = /* @__PURE__ */ defineComponent((props, { slots, expos
105
104
  }
106
105
  return { trackStyle: trackStyle$1 };
107
106
  }
108
- const slideCount = latestChildrenCount;
109
107
  const spec = {
110
108
  ...mergedProps.value,
111
109
  ...state,
@@ -125,6 +123,9 @@ var InnerSlider_default = /* @__PURE__ */ defineComponent((props, { slots, expos
125
123
  trackStyle
126
124
  };
127
125
  };
126
+ const ssrInit = () => {
127
+ return getSsrState(latestChildren, latestChildrenCount);
128
+ };
128
129
  Object.assign(state, ssrInit());
129
130
  const checkImagesLoad = () => {
130
131
  const listNode = listRef.value;
@@ -482,6 +483,7 @@ var InnerSlider_default = /* @__PURE__ */ defineComponent((props, { slots, expos
482
483
  const renderChildren = resolveChildren();
483
484
  latestChildren = renderChildren;
484
485
  latestChildrenCount = renderChildren.length;
486
+ const fallbackSsrState = state.trackStyle ? null : getSsrState(renderChildren, latestChildrenCount);
485
487
  const className = clsx("slick-slider", mergedProps.value.className, {
486
488
  "slick-vertical": mergedProps.value.vertical,
487
489
  "slick-initialized": true
@@ -489,6 +491,7 @@ var InnerSlider_default = /* @__PURE__ */ defineComponent((props, { slots, expos
489
491
  const spec = {
490
492
  ...mergedProps.value,
491
493
  ...state,
494
+ ...fallbackSsrState || {},
492
495
  slideCount: latestChildrenCount,
493
496
  children: renderChildren
494
497
  };
@@ -566,7 +569,7 @@ var InnerSlider_default = /* @__PURE__ */ defineComponent((props, { slots, expos
566
569
  nextArrow = createVNode(NextArrow, arrowProps, null);
567
570
  }
568
571
  let verticalHeightStyle = null;
569
- if (mergedProps.value.vertical) verticalHeightStyle = { height: getStylePxValue(state.listHeight) };
572
+ if (mergedProps.value.vertical) verticalHeightStyle = { height: state.listHeight };
570
573
  let centerPaddingStyle = null;
571
574
  if (mergedProps.value.vertical === false) {
572
575
  if (mergedProps.value.centerMode === true) centerPaddingStyle = { padding: `0px ${mergedProps.value.centerPadding}` };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@v-c/slick",
3
3
  "type": "module",
4
- "version": "0.0.1",
4
+ "version": "1.0.1",
5
5
  "description": "",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -10,7 +10,7 @@
10
10
  ".": {
11
11
  "types": "./dist/index.d.ts",
12
12
  "import": "./dist/index.js",
13
- "require": "./dist/index.cjs"
13
+ "default": "./dist/index.js"
14
14
  },
15
15
  "./dist/*": "./dist/*",
16
16
  "./package.json": "./package.json"
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "es-toolkit": "^1.43.0",
28
- "@v-c/util": "^1.0.4"
28
+ "@v-c/util": "^1.0.17"
29
29
  },
30
30
  "devDependencies": {},
31
31
  "scripts": {
package/dist/Arrows.cjs DELETED
@@ -1,186 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_innerSliderUtils = require("./utils/innerSliderUtils.cjs");
3
- let vue = require("vue");
4
- let _v_c_util = require("@v-c/util");
5
- var PrevArrow = /* @__PURE__ */ (0, vue.defineComponent)((props) => {
6
- const clickHandler = (options, e) => {
7
- e?.preventDefault();
8
- props.clickHandler?.(options, e);
9
- };
10
- return () => {
11
- const prevClasses = {
12
- "slick-arrow": true,
13
- "slick-prev": true
14
- };
15
- let prevHandler = (e) => {
16
- clickHandler({ message: "previous" }, e);
17
- };
18
- if (!props.infinite && (props.currentSlide === 0 || props.slideCount <= props.slidesToShow)) {
19
- prevClasses["slick-disabled"] = true;
20
- prevHandler = void 0;
21
- }
22
- const prevArrowProps = {
23
- "key": "0",
24
- "data-role": "none",
25
- "class": (0, _v_c_util.clsx)(prevClasses),
26
- "style": { display: "block" },
27
- "onClick": prevHandler
28
- };
29
- const customProps = {
30
- currentSlide: props.currentSlide,
31
- slideCount: props.slideCount
32
- };
33
- if (props.prevArrow && (0, vue.isVNode)(props.prevArrow)) return (0, vue.createVNode)(props.prevArrow, {
34
- ...prevArrowProps,
35
- ...customProps
36
- });
37
- return (0, vue.createVNode)("button", (0, vue.mergeProps)({ "type": "button" }, prevArrowProps), [(0, vue.createTextVNode)("Previous")]);
38
- };
39
- }, { props: {
40
- infinite: {
41
- type: Boolean,
42
- required: false,
43
- default: void 0
44
- },
45
- centerMode: {
46
- type: Boolean,
47
- required: false,
48
- default: void 0
49
- },
50
- currentSlide: {
51
- type: Number,
52
- required: true,
53
- default: void 0
54
- },
55
- slideCount: {
56
- type: Number,
57
- required: true,
58
- default: void 0
59
- },
60
- slidesToShow: {
61
- type: Number,
62
- required: true,
63
- default: void 0
64
- },
65
- prevArrow: {
66
- type: [
67
- Object,
68
- String,
69
- Number,
70
- Boolean,
71
- null,
72
- Array
73
- ],
74
- required: false,
75
- default: void 0
76
- },
77
- nextArrow: {
78
- type: [
79
- Object,
80
- String,
81
- Number,
82
- Boolean,
83
- null,
84
- Array
85
- ],
86
- required: false,
87
- default: void 0
88
- },
89
- clickHandler: {
90
- type: Function,
91
- required: false,
92
- default: void 0
93
- }
94
- } });
95
- var NextArrow = /* @__PURE__ */ (0, vue.defineComponent)((props) => {
96
- const clickHandler = (options, e) => {
97
- e?.preventDefault();
98
- props.clickHandler?.(options, e);
99
- };
100
- return () => {
101
- const nextClasses = {
102
- "slick-arrow": true,
103
- "slick-next": true
104
- };
105
- let nextHandler = (e) => {
106
- clickHandler({ message: "next" }, e);
107
- };
108
- if (!require_innerSliderUtils.canGoNext(props)) {
109
- nextClasses["slick-disabled"] = true;
110
- nextHandler = void 0;
111
- }
112
- const nextArrowProps = {
113
- "key": "1",
114
- "data-role": "none",
115
- "class": (0, _v_c_util.clsx)(nextClasses),
116
- "style": { display: "block" },
117
- "onClick": nextHandler
118
- };
119
- const customProps = {
120
- currentSlide: props.currentSlide,
121
- slideCount: props.slideCount
122
- };
123
- if (props.nextArrow && (0, vue.isVNode)(props.nextArrow)) return (0, vue.cloneVNode)(props.nextArrow, {
124
- ...nextArrowProps,
125
- ...customProps
126
- });
127
- return (0, vue.createVNode)("button", (0, vue.mergeProps)({ "type": "button" }, nextArrowProps), [(0, vue.createTextVNode)("Next")]);
128
- };
129
- }, { props: {
130
- infinite: {
131
- type: Boolean,
132
- required: false,
133
- default: void 0
134
- },
135
- centerMode: {
136
- type: Boolean,
137
- required: false,
138
- default: void 0
139
- },
140
- currentSlide: {
141
- type: Number,
142
- required: true,
143
- default: void 0
144
- },
145
- slideCount: {
146
- type: Number,
147
- required: true,
148
- default: void 0
149
- },
150
- slidesToShow: {
151
- type: Number,
152
- required: true,
153
- default: void 0
154
- },
155
- prevArrow: {
156
- type: [
157
- Object,
158
- String,
159
- Number,
160
- Boolean,
161
- null,
162
- Array
163
- ],
164
- required: false,
165
- default: void 0
166
- },
167
- nextArrow: {
168
- type: [
169
- Object,
170
- String,
171
- Number,
172
- Boolean,
173
- null,
174
- Array
175
- ],
176
- required: false,
177
- default: void 0
178
- },
179
- clickHandler: {
180
- type: Function,
181
- required: false,
182
- default: void 0
183
- }
184
- } });
185
- exports.NextArrow = NextArrow;
186
- exports.PrevArrow = PrevArrow;
package/dist/Dots.cjs DELETED
@@ -1,124 +0,0 @@
1
- Object.defineProperties(exports, {
2
- __esModule: { value: true },
3
- [Symbol.toStringTag]: { value: "Module" }
4
- });
5
- const require_default_props = require("./default-props.cjs");
6
- const require_innerSliderUtils = require("./utils/innerSliderUtils.cjs");
7
- let vue = require("vue");
8
- let _v_c_util = require("@v-c/util");
9
- function getDotCount(spec) {
10
- if (spec.infinite) return Math.ceil(spec.slideCount / spec.slidesToScroll);
11
- return Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;
12
- }
13
- var Dots = /* @__PURE__ */ (0, vue.defineComponent)((props) => {
14
- const getCustomPaging = props.customPaging ?? require_default_props.default.customPaging ?? ((index) => (0, vue.createVNode)("button", { "type": "button" }, [index + 1]));
15
- const appendDots = props.appendDots ?? require_default_props.default.appendDots ?? ((dots) => (0, vue.createVNode)("ul", { "style": { display: "block" } }, [dots]));
16
- const clickHandler = (options, e) => {
17
- e?.preventDefault();
18
- props.clickHandler?.(options, e);
19
- };
20
- return () => {
21
- const { onMouseEnter, onMouseOver, onMouseLeave, infinite, slidesToScroll, slidesToShow, slideCount, currentSlide } = props;
22
- const dotCount = getDotCount({
23
- slideCount,
24
- slidesToScroll,
25
- slidesToShow,
26
- infinite
27
- });
28
- const dots = [];
29
- for (let i = 0; i < dotCount; i += 1) {
30
- const _rightBound = (i + 1) * slidesToScroll - 1;
31
- const rightBound = infinite ? _rightBound : require_innerSliderUtils.clamp(_rightBound, 0, slideCount - 1);
32
- const _leftBound = rightBound - (slidesToScroll - 1);
33
- const leftBound = infinite ? _leftBound : require_innerSliderUtils.clamp(_leftBound, 0, slideCount - 1);
34
- const className = (0, _v_c_util.clsx)({ "slick-active": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound });
35
- const dotOptions = {
36
- message: "dots",
37
- index: i,
38
- slidesToScroll,
39
- currentSlide
40
- };
41
- const onClick = (e) => clickHandler(dotOptions, e);
42
- const paging = getCustomPaging(i);
43
- const content = (0, vue.isVNode)(paging) ? (0, vue.cloneVNode)(paging, { onClick }) : (0, vue.createVNode)("button", {
44
- "type": "button",
45
- "onClick": onClick
46
- }, [i + 1]);
47
- dots.push((0, vue.createVNode)("li", {
48
- "key": i,
49
- "class": className
50
- }, [content]));
51
- }
52
- const dotsNode = appendDots(dots);
53
- if ((0, vue.isVNode)(dotsNode)) return (0, vue.cloneVNode)(dotsNode, {
54
- class: props.dotsClass,
55
- onMouseenter: onMouseEnter,
56
- onMouseover: onMouseOver,
57
- onMouseleave: onMouseLeave
58
- });
59
- return dotsNode;
60
- };
61
- }, { props: {
62
- dotsClass: {
63
- type: String,
64
- required: true,
65
- default: void 0
66
- },
67
- slideCount: {
68
- type: Number,
69
- required: true,
70
- default: void 0
71
- },
72
- slidesToShow: {
73
- type: Number,
74
- required: true,
75
- default: void 0
76
- },
77
- currentSlide: {
78
- type: Number,
79
- required: true,
80
- default: void 0
81
- },
82
- slidesToScroll: {
83
- type: Number,
84
- required: true,
85
- default: void 0
86
- },
87
- clickHandler: {
88
- type: Function,
89
- required: false,
90
- default: void 0
91
- },
92
- customPaging: {
93
- type: Function,
94
- required: false,
95
- default: void 0
96
- },
97
- infinite: {
98
- type: Boolean,
99
- required: false,
100
- default: void 0
101
- },
102
- appendDots: {
103
- type: Function,
104
- required: false,
105
- default: void 0
106
- },
107
- onMouseEnter: {
108
- type: Function,
109
- required: false,
110
- default: void 0
111
- },
112
- onMouseOver: {
113
- type: Function,
114
- required: false,
115
- default: void 0
116
- },
117
- onMouseLeave: {
118
- type: Function,
119
- required: false,
120
- default: void 0
121
- }
122
- } });
123
- var Dots_default = Dots;
124
- exports.default = Dots_default;