solid-slider 1.3.16 → 1.3.18

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.
@@ -1,15 +1,102 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var solidJs = require('solid-js');
6
4
  var utils = require('@solid-primitives/utils');
7
5
  var KeenSlider = require('keen-slider');
8
6
  var web = require('solid-js/web');
9
7
 
10
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
-
12
- var KeenSlider__default = /*#__PURE__*/_interopDefaultLegacy(KeenSlider);
8
+ function ownKeys(object, enumerableOnly) {
9
+ var keys = Object.keys(object);
10
+ if (Object.getOwnPropertySymbols) {
11
+ var symbols = Object.getOwnPropertySymbols(object);
12
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
13
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
14
+ })), keys.push.apply(keys, symbols);
15
+ }
16
+ return keys;
17
+ }
18
+ function _objectSpread2(target) {
19
+ for (var i = 1; i < arguments.length; i++) {
20
+ var source = null != arguments[i] ? arguments[i] : {};
21
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
22
+ _defineProperty(target, key, source[key]);
23
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
24
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
25
+ });
26
+ }
27
+ return target;
28
+ }
29
+ function _defineProperty(obj, key, value) {
30
+ if (key in obj) {
31
+ Object.defineProperty(obj, key, {
32
+ value: value,
33
+ enumerable: true,
34
+ configurable: true,
35
+ writable: true
36
+ });
37
+ } else {
38
+ obj[key] = value;
39
+ }
40
+ return obj;
41
+ }
42
+ function _slicedToArray(arr, i) {
43
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
44
+ }
45
+ function _toConsumableArray(arr) {
46
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
47
+ }
48
+ function _arrayWithoutHoles(arr) {
49
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
50
+ }
51
+ function _arrayWithHoles(arr) {
52
+ if (Array.isArray(arr)) return arr;
53
+ }
54
+ function _iterableToArray(iter) {
55
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
56
+ }
57
+ function _iterableToArrayLimit(arr, i) {
58
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
59
+ if (_i == null) return;
60
+ var _arr = [];
61
+ var _n = true;
62
+ var _d = false;
63
+ var _s, _e;
64
+ try {
65
+ for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
66
+ _arr.push(_s.value);
67
+ if (i && _arr.length === i) break;
68
+ }
69
+ } catch (err) {
70
+ _d = true;
71
+ _e = err;
72
+ } finally {
73
+ try {
74
+ if (!_n && _i["return"] != null) _i["return"]();
75
+ } finally {
76
+ if (_d) throw _e;
77
+ }
78
+ }
79
+ return _arr;
80
+ }
81
+ function _unsupportedIterableToArray(o, minLen) {
82
+ if (!o) return;
83
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
84
+ var n = Object.prototype.toString.call(o).slice(8, -1);
85
+ if (n === "Object" && o.constructor) n = o.constructor.name;
86
+ if (n === "Map" || n === "Set") return Array.from(o);
87
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
88
+ }
89
+ function _arrayLikeToArray(arr, len) {
90
+ if (len == null || len > arr.length) len = arr.length;
91
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
92
+ return arr2;
93
+ }
94
+ function _nonIterableSpread() {
95
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
96
+ }
97
+ function _nonIterableRest() {
98
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
99
+ }
13
100
 
14
101
  /**
15
102
  * Creates a slider powered by KeenSlider.
@@ -32,45 +119,77 @@ var KeenSlider__default = /*#__PURE__*/_interopDefaultLegacy(KeenSlider);
32
119
  * <div use:slider>...</div>
33
120
  * ```
34
121
  */
35
- const createSlider = (options, ...plugins) => {
36
- let slider;
37
- let el;
38
- const opts = () => utils.access(options);
39
- const [current, setCurrent] = solidJs.createSignal(opts()?.initial || 0);
40
- const destroy = () => slider && slider.destroy();
41
- const getOptions = (overrides = {}
42
- // @ts-ignore
43
- ) => ({
44
- selector: el.childNodes,
45
- ...opts(),
46
- ...overrides
47
- });
48
- const update = () => slider?.update(getOptions());
122
+ var createSlider = function createSlider(options) {
123
+ var _opts;
124
+ for (var _len = arguments.length, plugins = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
125
+ plugins[_key - 1] = arguments[_key];
126
+ }
127
+ var _slider3;
128
+ var el;
129
+ var opts = function opts() {
130
+ return utils.access(options);
131
+ };
132
+ var _createSignal = solidJs.createSignal(((_opts = opts()) === null || _opts === void 0 ? void 0 : _opts.initial) || 0),
133
+ _createSignal2 = _slicedToArray(_createSignal, 2),
134
+ current = _createSignal2[0],
135
+ setCurrent = _createSignal2[1];
136
+ var destroy = function destroy() {
137
+ return _slider3 && _slider3.destroy();
138
+ };
139
+ var getOptions = function getOptions() {
140
+ var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
141
+ return _objectSpread2(_objectSpread2({
142
+ selector: el.childNodes
143
+ }, opts()), overrides);
144
+ };
145
+ var update = function update() {
146
+ var _slider;
147
+ return (_slider = _slider3) === null || _slider === void 0 ? void 0 : _slider.update(getOptions());
148
+ };
49
149
  // Slider creation method and directive function
50
- const create = newEl => {
150
+ var create = function create(newEl) {
51
151
  el = newEl;
52
- el.classList.add('keen-slider');
53
- solidJs.onMount(() => {
54
- slider = new KeenSlider__default["default"](el, getOptions(), plugins);
55
- slider.on('slideChanged', () => setCurrent(slider.track.details.rel));
152
+ el.classList.add("keen-slider");
153
+ solidJs.onMount(function () {
154
+ _slider3 = new KeenSlider(el, getOptions(), plugins);
155
+ _slider3.on("slideChanged", function () {
156
+ return setCurrent(_slider3.track.details.rel);
157
+ });
56
158
  });
57
159
  solidJs.onCleanup(destroy);
58
- if (typeof options === 'function') {
59
- solidJs.createEffect(solidJs.on(() => options, update));
160
+ if (typeof options === "function") {
161
+ solidJs.createEffect(solidJs.on(function () {
162
+ return options;
163
+ }, update));
60
164
  }
61
165
  };
62
- return [create, {
63
- current,
64
- next: () => slider && slider.next(),
65
- prev: () => slider && slider.prev(),
66
- details: () => slider ? slider.track.details : {},
67
- slider: () => slider,
68
- moveTo: (id, duration = 250, absolute = false, easing) => slider?.moveToIdx(id, absolute, {
69
- duration,
166
+ var moveTo = function moveTo(id) {
167
+ var _slider2;
168
+ var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 250;
169
+ var absolute = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
170
+ var easing = arguments.length > 3 ? arguments[3] : undefined;
171
+ (_slider2 = _slider3) === null || _slider2 === void 0 ? void 0 : _slider2.moveToIdx(id, absolute, {
172
+ duration: duration,
70
173
  easing: easing
71
- }),
72
- destroy,
73
- update
174
+ });
175
+ };
176
+ return [create, {
177
+ current: current,
178
+ next: function next() {
179
+ return _slider3 && _slider3.next();
180
+ },
181
+ prev: function prev() {
182
+ return _slider3 && _slider3.prev();
183
+ },
184
+ details: function details() {
185
+ return _slider3 ? _slider3.track.details : {};
186
+ },
187
+ slider: function slider() {
188
+ return _slider3;
189
+ },
190
+ moveTo: moveTo,
191
+ destroy: destroy,
192
+ update: update
74
193
  }];
75
194
  };
76
195
 
@@ -83,7 +202,7 @@ function returnType(func) {
83
202
  return {};
84
203
  }
85
204
  // Main context for the slider
86
- const SliderContext = solidJs.createContext(solidJs.createSignal(null));
205
+ var SliderContext = solidJs.createContext(solidJs.createSignal(null));
87
206
 
88
207
  /**
89
208
  * A helpful and simple Provider to wrap your Slider if controls such as SliderButton are used.
@@ -91,14 +210,16 @@ const SliderContext = solidJs.createContext(solidJs.createSignal(null));
91
210
  * @param props {KeenSliderOptions} options - Accepts all KeenSlider options.
92
211
  * @param props {KeenSLiderPlugin} plugins - A list of Solid Slider or Keen slider plugins.
93
212
  */
94
- const SliderProvider = props => web.createComponent(SliderContext.Provider, {
95
- get value() {
96
- return solidJs.createSignal(null);
97
- },
98
- get children() {
99
- return props.children;
100
- }
101
- });
213
+ var SliderProvider = function SliderProvider(props) {
214
+ return web.createComponent(SliderContext.Provider, {
215
+ get value() {
216
+ return solidJs.createSignal(null);
217
+ },
218
+ get children() {
219
+ return props.children;
220
+ }
221
+ });
222
+ };
102
223
 
103
224
  /**
104
225
  * Main Slider component for specifying the Slider on the page.
@@ -106,24 +227,41 @@ const SliderProvider = props => web.createComponent(SliderContext.Provider, {
106
227
  * @param props {KeenSliderOptions} options - Accepts all KeenSlider options.
107
228
  * @param props {KeenSLiderPlugin} plugins - A list of Solid Slider or Keen slider plugins.
108
229
  */
109
- const Slider = props => {
110
- if (web.isServer) return (() => {
111
- const _el$ = _tmpl$.cloneNode(true);
112
- web.insert(_el$, () => props.children);
230
+ var Slider = function Slider(props) {
231
+ if (web.isServer) return function () {
232
+ var _el$ = _tmpl$.cloneNode(true);
233
+ web.insert(_el$, function () {
234
+ return props.children;
235
+ });
113
236
  return _el$;
114
- })();
115
- const [, setHelpers] = solidJs.useContext(SliderContext);
116
- const [slider, helpers] = createSlider(props.options || {}, ...(props.plugins || []));
237
+ }();
238
+ var _useContext = solidJs.useContext(SliderContext),
239
+ _useContext2 = _slicedToArray(_useContext, 2),
240
+ setHelpers = _useContext2[1];
241
+ var _createSlider = createSlider.apply(void 0, [props.options || {}].concat(_toConsumableArray(props.plugins || []))),
242
+ _createSlider2 = _slicedToArray(_createSlider, 2),
243
+ slider = _createSlider2[0],
244
+ helpers = _createSlider2[1];
117
245
  setHelpers(helpers);
118
- solidJs.createEffect(solidJs.on(() => utils.access(props.children), () => queueMicrotask(() => helpers.update()), {
246
+ solidJs.createEffect(solidJs.on(function () {
247
+ return utils.access(props.children);
248
+ }, function () {
249
+ return queueMicrotask(function () {
250
+ return helpers.update();
251
+ });
252
+ }, {
119
253
  defer: true
120
254
  }));
121
- return (() => {
122
- const _el$2 = _tmpl$.cloneNode(true);
123
- slider(_el$2, () => true);
124
- web.insert(_el$2, () => props.children);
255
+ return function () {
256
+ var _el$2 = _tmpl$.cloneNode(true);
257
+ slider(_el$2, function () {
258
+ return true;
259
+ });
260
+ web.insert(_el$2, function () {
261
+ return props.children;
262
+ });
125
263
  return _el$2;
126
- })();
264
+ }();
127
265
  };
128
266
 
129
267
  /**
@@ -134,20 +272,24 @@ const Slider = props => {
134
272
  * @param props {string} class - Class to override the button.
135
273
  * @param props {object} classList - List of classes to override the button.
136
274
  */
137
- const SliderButton = props => {
138
- const context = solidJs.useContext(SliderContext);
139
- const changeSlide = () => {
275
+ var SliderButton = function SliderButton(props) {
276
+ var context = solidJs.useContext(SliderContext);
277
+ var changeSlide = function changeSlide() {
278
+ var _helpers, _helpers2;
140
279
  if (context == null) return;
141
- const [helpers] = context;
142
- props.next ? helpers()?.next() : helpers()?.prev();
280
+ var _context = _slicedToArray(context, 1),
281
+ helpers = _context[0];
282
+ props.next ? (_helpers = helpers()) === null || _helpers === void 0 ? void 0 : _helpers.next() : (_helpers2 = helpers()) === null || _helpers2 === void 0 ? void 0 : _helpers2.prev();
143
283
  };
144
- return (() => {
145
- const _el$3 = _tmpl$2.cloneNode(true);
284
+ return function () {
285
+ var _el$3 = _tmpl$2.cloneNode(true);
146
286
  _el$3.$$click = changeSlide;
147
- web.insert(_el$3, () => props.children);
148
- web.effect(_p$ => {
149
- const _v$ = props.disabled || false,
150
- _v$2 = props.class,
287
+ web.insert(_el$3, function () {
288
+ return props.children;
289
+ });
290
+ web.effect(function (_p$) {
291
+ var _v$ = props.disabled || false,
292
+ _v$2 = props["class"],
151
293
  _v$3 = props.classList;
152
294
  _v$ !== _p$._v$ && (_el$3.disabled = _p$._v$ = _v$);
153
295
  _v$2 !== _p$._v$2 && (_el$3.className = _p$._v$2 = _v$2);
@@ -159,7 +301,7 @@ const SliderButton = props => {
159
301
  _v$3: undefined
160
302
  });
161
303
  return _el$3;
162
- })();
304
+ }();
163
305
  };
164
306
  web.delegateEvents(["click"]);
165
307
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.common.js","sources":["../../src/primitive.ts","../../src/components.tsx"],"sourcesContent":["import { on, onMount, createSignal, onCleanup, Accessor, createEffect } from 'solid-js';\nimport { access } from '@solid-primitives/utils';\nimport KeenSlider, {\n KeenSliderHooks,\n KeenSliderInstance,\n KeenSliderOptions,\n KeenSliderPlugin,\n TrackDetails\n} from 'keen-slider';\n\ndeclare module 'solid-js' {\n namespace JSX {\n interface Directives {\n slider: {};\n }\n }\n}\n\n/**\n * Creates a slider powered by KeenSlider.\n *\n * @param {Object} options Values to initialize the slider with\n * @param {Array} plugins Extensions that enhance KeenSlider options\n * @returns {[create: Function, helpers: Object]} Returns mount and helper methods\n * @returns {Function} create Mounts the slider on provided element\n * @returns {Function} helpers.current Current slide number\n * @returns {Function} helpers.current Current slide number\n * @returns {Function} helpers.next Function to trigger the next slide\n * @returns {Function} helpers.prev Function to trigger the previous slide\n * @returns {Function<Object>} helpers.details Provides details about the current slider\n * @returns {Function} helpers.slider Returns the KeenSlider instance\n * @returns {Function} helpers.destroy Manual destroy function\n *\n * @example\n * ```ts\n * const [create, { prev, next }] = createSlider();\n * <div use:slider>...</div>\n * ```\n */\nexport const createSlider = <O = {}, P = {}, H extends string = KeenSliderHooks>(\n options?: KeenSliderOptions<O, P, H> | Accessor<KeenSliderOptions<O, P, H>>,\n ...plugins: KeenSliderPlugin<O, P, H>[]\n): [\n create: (el: HTMLElement) => void,\n helpers: {\n current: Accessor<number>;\n next: Accessor<void>;\n prev: Accessor<void>;\n moveTo: (\n id: number,\n duration?: number,\n absolute?: boolean,\n easing?: (t: number) => number\n ) => void;\n details: Accessor<TrackDetails>;\n slider: Accessor<KeenSliderInstance<O, P, H> | undefined>;\n destroy: Accessor<void>;\n update: VoidFunction;\n }\n] => {\n let slider: KeenSliderInstance<O, P, H> | undefined;\n let el: HTMLElement;\n const opts = () => access(options);\n const [current, setCurrent] = createSignal(opts()?.initial || 0);\n const destroy = () => slider && slider.destroy();\n const getOptions: Accessor<KeenSliderOptions<O, P, H> | undefined> = (\n overrides = {}\n // @ts-ignore\n ) => ({\n selector: el.childNodes,\n ...opts(),\n ...overrides\n });\n const update = () => slider?.update(getOptions());\n // Slider creation method and directive function\n const create = (newEl: HTMLElement) => {\n el = newEl;\n el.classList.add('keen-slider');\n onMount(() => {\n slider = new KeenSlider<O, P, H>(el, getOptions(), plugins);\n slider.on('slideChanged', () => setCurrent(slider!.track.details.rel));\n });\n onCleanup(destroy);\n if (typeof options === 'function') {\n createEffect(on(() => options, update));\n }\n };\n return [\n create,\n {\n current,\n next: () => slider && slider.next(),\n prev: () => slider && slider.prev(),\n details: () => (slider ? slider.track.details : ({} as TrackDetails)),\n slider: () => slider,\n moveTo: (id: number, duration = 250, absolute = false, easing?: (t: number) => number) =>\n slider?.moveToIdx(id, absolute, { duration, easing: easing }),\n destroy,\n update\n }\n ];\n};\n","import {\n on,\n createContext,\n useContext,\n createSignal,\n FlowComponent,\n createEffect,\n} from \"solid-js\";\nimport { access } from \"@solid-primitives/utils\";\nimport { isServer } from \"solid-js/web\";\nimport { KeenSliderOptions, KeenSliderPlugin } from \"keen-slider\";\nimport { createSlider } from \"./primitive\";\n\n// The following is a hacky way of extracting SliderHelpers\ninterface Func<T> {\n ([...args]: any, args2?: any): T;\n}\nexport function returnType<T>(func: Func<T>) {\n return {} as T;\n}\nconst sliderValues = returnType(createSlider);\ntype SliderHelpers = typeof sliderValues[1];\n\n// Main context for the slider\nexport const SliderContext = createContext(\n createSignal<SliderHelpers | null>(null)\n);\n\n/**\n * A helpful and simple Provider to wrap your Slider if controls such as SliderButton are used.\n *\n * @param props {KeenSliderOptions} options - Accepts all KeenSlider options.\n * @param props {KeenSLiderPlugin} plugins - A list of Solid Slider or Keen slider plugins.\n */\nexport const SliderProvider: FlowComponent = (props) => (\n <SliderContext.Provider value={createSignal<SliderHelpers | null>(null)}>\n {props.children}\n </SliderContext.Provider>\n);\n\n/**\n * Main Slider component for specifying the Slider on the page.\n *\n * @param props {KeenSliderOptions} options - Accepts all KeenSlider options.\n * @param props {KeenSLiderPlugin} plugins - A list of Solid Slider or Keen slider plugins.\n */\nexport const Slider: FlowComponent<{\n options?: KeenSliderOptions;\n plugins?: KeenSliderPlugin[];\n}> = (props) => {\n if (isServer) return <div class=\"keen-slider\">{props.children}</div>;\n const [, setHelpers] = useContext(SliderContext);\n const [slider, helpers] = createSlider(\n props.options || {},\n ...(props.plugins || [])\n );\n setHelpers(helpers);\n createEffect(\n on(\n () => access(props.children),\n () => queueMicrotask(() => helpers.update()),\n { defer: true }\n )\n );\n slider;\n return (\n <div use:slider class=\"keen-slider\">\n {props.children}\n </div>\n );\n};\n\n/**\n * Provides a helpful button with next/prev to pair with your slider.\n *\n * @param props {boolean} next - Specify if this should be a next button.\n * @param props {boolean} prev - Specify if this should be a prev button.\n * @param props {string} class - Class to override the button.\n * @param props {object} classList - List of classes to override the button.\n */\nexport const SliderButton: FlowComponent<{\n next?: boolean;\n prev?: boolean;\n disabled?: boolean;\n class?: string;\n classList?: { [k: string]: boolean | undefined };\n}> = (props) => {\n const context = useContext(SliderContext);\n const changeSlide = () => {\n if (context == null) return;\n const [helpers] = context;\n props.next ? helpers()?.next() : helpers()?.prev();\n };\n return (\n <button\n disabled={props.disabled || false}\n class={props.class}\n classList={props.classList}\n onClick={changeSlide}\n >\n {props.children}\n </button>\n );\n};\n"],"names":["createSlider","options","plugins","slider","el","opts","access","current","setCurrent","createSignal","initial","destroy","getOptions","overrides","selector","childNodes","update","create","newEl","classList","add","onMount","KeenSlider","on","track","details","rel","onCleanup","createEffect","next","prev","moveTo","id","duration","absolute","easing","moveToIdx","returnType","func","SliderContext","createContext","SliderProvider","props","_$createComponent","children","Slider","isServer","_$insert","setHelpers","useContext","helpers","queueMicrotask","defer","SliderButton","context","changeSlide","_$effect","disabled","class","_$classList","_$delegateEvents"],"mappings":"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"}
1
+ {"version":3,"file":"index.common.js","sources":["../../src/primitive.ts","../../src/components.tsx"],"sourcesContent":["import {\n on,\n onMount,\n createSignal,\n onCleanup,\n Accessor,\n createEffect,\n} from \"solid-js\";\nimport { access } from \"@solid-primitives/utils\";\nimport KeenSlider, {\n KeenSliderHooks,\n KeenSliderInstance,\n KeenSliderOptions,\n KeenSliderPlugin,\n TrackDetails,\n} from \"keen-slider\";\n\ndeclare module \"solid-js\" {\n namespace JSX {\n interface Directives {\n slider: {};\n }\n }\n}\n\nexport type SliderControls<O, P, H extends string> = [\n create: (el: HTMLElement) => void,\n helpers: {\n current: Accessor<number>;\n next: VoidFunction;\n prev: VoidFunction;\n moveTo: (\n id: number,\n duration?: number,\n absolute?: boolean,\n easing?: (t: number) => number,\n ) => void;\n details: () => TrackDetails;\n slider: () => KeenSliderInstance<O, P, H> | undefined;\n destroy: VoidFunction;\n update: VoidFunction;\n },\n];\n\n/**\n * Creates a slider powered by KeenSlider.\n *\n * @param {Object} options Values to initialize the slider with\n * @param {Array} plugins Extensions that enhance KeenSlider options\n * @returns {[create: Function, helpers: Object]} Returns mount and helper methods\n * @returns {Function} create Mounts the slider on provided element\n * @returns {Function} helpers.current Current slide number\n * @returns {Function} helpers.current Current slide number\n * @returns {Function} helpers.next Function to trigger the next slide\n * @returns {Function} helpers.prev Function to trigger the previous slide\n * @returns {Function<Object>} helpers.details Provides details about the current slider\n * @returns {Function} helpers.slider Returns the KeenSlider instance\n * @returns {Function} helpers.destroy Manual destroy function\n *\n * @example\n * ```ts\n * const [create, { prev, next }] = createSlider();\n * <div use:slider>...</div>\n * ```\n */\nexport const createSlider = <\n O = {},\n P = {},\n H extends string = KeenSliderHooks,\n>(\n options?: KeenSliderOptions<O, P, H> | Accessor<KeenSliderOptions<O, P, H>>,\n ...plugins: KeenSliderPlugin<O, P, H>[]\n): SliderControls<O, P, H> => {\n let slider: KeenSliderInstance<O, P, H> | undefined;\n let el: HTMLElement;\n const opts = () => access(options);\n const [current, setCurrent] = createSignal(opts()?.initial || 0);\n const destroy = () => slider && slider.destroy();\n const getOptions: Accessor<KeenSliderOptions<O, P, H> | undefined> = (\n overrides = {},\n // @ts-ignore\n ) => ({\n selector: el.childNodes,\n ...opts(),\n ...overrides,\n });\n const update = () => slider?.update(getOptions());\n // Slider creation method and directive function\n const create = (newEl: HTMLElement) => {\n el = newEl;\n el.classList.add(\"keen-slider\");\n onMount(() => {\n slider = new KeenSlider<O, P, H>(el, getOptions(), plugins);\n slider.on(\"slideChanged\", () => setCurrent(slider!.track.details.rel));\n });\n onCleanup(destroy);\n if (typeof options === \"function\") {\n createEffect(on(() => options, update));\n }\n };\n const moveTo = (\n id: number,\n duration = 250,\n absolute = false,\n easing?: (t: number) => number,\n ) => {\n slider?.moveToIdx(id, absolute, { duration, easing: easing });\n };\n return [\n create,\n {\n current,\n next: () => slider && slider.next(),\n prev: () => slider && slider.prev(),\n details: () => (slider ? slider.track.details : ({} as TrackDetails)),\n slider: () => slider,\n moveTo,\n destroy,\n update,\n },\n ];\n};\n","import {\n on,\n createContext,\n useContext,\n createSignal,\n FlowComponent,\n createEffect,\n} from \"solid-js\";\nimport { access } from \"@solid-primitives/utils\";\nimport { isServer } from \"solid-js/web\";\nimport { KeenSliderOptions, KeenSliderPlugin } from \"keen-slider\";\nimport { createSlider } from \"./primitive\";\n\n// The following is a hacky way of extracting SliderHelpers\ninterface Func<T> {\n ([...args]: any, args2?: any): T;\n}\nexport function returnType<T>(func: Func<T>) {\n return {} as T;\n}\nconst sliderValues = returnType(createSlider);\ntype SliderHelpers = (typeof sliderValues)[1];\n\n// Main context for the slider\nexport const SliderContext = createContext(\n createSignal<SliderHelpers | null>(null),\n);\n\n/**\n * A helpful and simple Provider to wrap your Slider if controls such as SliderButton are used.\n *\n * @param props {KeenSliderOptions} options - Accepts all KeenSlider options.\n * @param props {KeenSLiderPlugin} plugins - A list of Solid Slider or Keen slider plugins.\n */\nexport const SliderProvider: FlowComponent = (props) => (\n <SliderContext.Provider value={createSignal<SliderHelpers | null>(null)}>\n {props.children}\n </SliderContext.Provider>\n);\n\n/**\n * Main Slider component for specifying the Slider on the page.\n *\n * @param props {KeenSliderOptions} options - Accepts all KeenSlider options.\n * @param props {KeenSLiderPlugin} plugins - A list of Solid Slider or Keen slider plugins.\n */\nexport const Slider: FlowComponent<{\n options?: KeenSliderOptions;\n plugins?: KeenSliderPlugin[];\n}> = (props) => {\n if (isServer) return <div class=\"keen-slider\">{props.children}</div>;\n const [, setHelpers] = useContext(SliderContext);\n const [slider, helpers] = createSlider(\n props.options || {},\n ...(props.plugins || []),\n );\n setHelpers(helpers);\n createEffect(\n on(\n () => access(props.children),\n () => queueMicrotask(() => helpers.update()),\n { defer: true },\n ),\n );\n slider;\n return (\n <div use:slider class=\"keen-slider\">\n {props.children}\n </div>\n );\n};\n\n/**\n * Provides a helpful button with next/prev to pair with your slider.\n *\n * @param props {boolean} next - Specify if this should be a next button.\n * @param props {boolean} prev - Specify if this should be a prev button.\n * @param props {string} class - Class to override the button.\n * @param props {object} classList - List of classes to override the button.\n */\nexport const SliderButton: FlowComponent<{\n next?: boolean;\n prev?: boolean;\n disabled?: boolean;\n class?: string;\n classList?: { [k: string]: boolean | undefined };\n}> = (props) => {\n const context = useContext(SliderContext);\n const changeSlide = () => {\n if (context == null) return;\n const [helpers] = context;\n props.next ? helpers()?.next() : helpers()?.prev();\n };\n return (\n <button\n disabled={props.disabled || false}\n class={props.class}\n classList={props.classList}\n onClick={changeSlide}\n >\n {props.children}\n </button>\n );\n};\n"],"names":["createSlider","options","plugins","slider","el","opts","access","createSignal","initial","current","setCurrent","destroy","getOptions","overrides","_objectSpread","selector","childNodes","update","create","newEl","classList","add","onMount","KeenSlider","on","track","details","rel","onCleanup","createEffect","moveTo","id","duration","absolute","easing","moveToIdx","next","prev","returnType","func","SliderContext","createContext","SliderProvider","props","_$createComponent","children","Slider","isServer","_$insert","useContext","setHelpers","helpers","queueMicrotask","defer","SliderButton","context","changeSlide","_$effect","disabled","_$classList","_$delegateEvents"],"mappings":"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"}