solid-slider 1.0.4 → 1.1.0
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/README.md +1 -1
- package/dist/index.d.ts +23 -25
- package/dist/index.js +26 -27
- package/dist/slider.css +9 -7
- package/package.json +6 -7
package/README.md
CHANGED
|
@@ -62,7 +62,7 @@ const MyComponent = () => {
|
|
|
62
62
|
|
|
63
63
|
- 1.0.0 - Initial release
|
|
64
64
|
- 1.0.3 - Changed the exported API to be slightly more flexible.
|
|
65
|
-
- 1.0
|
|
65
|
+
- 1.1.0 - Upgraded to KeenSlider 6 and improved general reactivity.
|
|
66
66
|
|
|
67
67
|
## Keen Options API
|
|
68
68
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export declare type SliderDetails = TDetails;
|
|
1
|
+
import { Accessor } from "solid-js";
|
|
2
|
+
import { KeenSliderHooks, KeenSliderInstance, KeenSliderOptions, KeenSliderPlugin, TrackDetails } from "keen-slider";
|
|
4
3
|
declare module "solid-js" {
|
|
5
4
|
namespace JSX {
|
|
6
5
|
interface Directives {
|
|
7
|
-
|
|
6
|
+
slider: {};
|
|
8
7
|
}
|
|
9
8
|
}
|
|
10
9
|
}
|
|
@@ -12,32 +11,31 @@ declare module "solid-js" {
|
|
|
12
11
|
* Creates a slider powered by KeenSlider.
|
|
13
12
|
*
|
|
14
13
|
* @param {options} Options to initialize the slider with
|
|
15
|
-
* @
|
|
16
|
-
* @returns
|
|
17
|
-
* @returns
|
|
18
|
-
* @returns
|
|
19
|
-
* @returns
|
|
20
|
-
* @returns
|
|
21
|
-
* @returns
|
|
22
|
-
* @returns
|
|
23
|
-
* @returns
|
|
24
|
-
* @returns
|
|
14
|
+
* @param {plugins} Plugins that enhance KeenSlider options
|
|
15
|
+
* @returns {Object} An object of useful helpers
|
|
16
|
+
* @returns {create} Register and creation function to call on setup
|
|
17
|
+
* @returns {current} Current slide number
|
|
18
|
+
* @returns {next} Function to trigger the next slide
|
|
19
|
+
* @returns {prev} Function to trigger the previous slide
|
|
20
|
+
* @returns {moveTo} Allow you to change the slider to a specific slide
|
|
21
|
+
* @returns {refresh} Refresh trigger
|
|
22
|
+
* @returns {details} Retrieve a list of SliderDetails
|
|
23
|
+
* @returns {slider} Gain access to the slider itself
|
|
24
|
+
* @returns {destroy} Destroy the entire slider (this is automatically handled)
|
|
25
25
|
*
|
|
26
26
|
* @example
|
|
27
27
|
* ```ts
|
|
28
|
-
* const [create] = createSlider();
|
|
28
|
+
* const [create, { prev, next }] = createSlider();
|
|
29
29
|
* <div use:slider>...</div>
|
|
30
30
|
* ```
|
|
31
31
|
*/
|
|
32
|
-
declare const createSlider: (options?:
|
|
33
|
-
current:
|
|
34
|
-
next:
|
|
35
|
-
prev:
|
|
36
|
-
moveTo: (id: number, duration?: number | undefined) => void;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
slider: () => KeenSlider;
|
|
41
|
-
destroy: () => void;
|
|
32
|
+
declare const createSlider: <O = {}, P = {}, H extends string = KeenSliderHooks>(options?: KeenSliderOptions<O, P, H> | undefined, plugins?: KeenSliderPlugin<O, P, H>[] | undefined) => [create: (el: HTMLElement) => void, helpers: {
|
|
33
|
+
current: Accessor<number>;
|
|
34
|
+
next: Accessor<void>;
|
|
35
|
+
prev: Accessor<void>;
|
|
36
|
+
moveTo: (id: number, duration?: number | undefined, absolute?: boolean | undefined, easing?: ((t: number) => number) | undefined) => void;
|
|
37
|
+
details: Accessor<TrackDetails>;
|
|
38
|
+
slider: Accessor<KeenSliderInstance<O, P, H> | undefined>;
|
|
39
|
+
destroy: Accessor<void>;
|
|
42
40
|
}];
|
|
43
41
|
export default createSlider;
|
package/dist/index.js
CHANGED
|
@@ -1,53 +1,52 @@
|
|
|
1
|
-
import { onMount, onCleanup,
|
|
1
|
+
import { on, onMount, createSignal, onCleanup, createEffect } from "solid-js";
|
|
2
2
|
import KeenSlider from "keen-slider";
|
|
3
3
|
/**
|
|
4
4
|
* Creates a slider powered by KeenSlider.
|
|
5
5
|
*
|
|
6
6
|
* @param {options} Options to initialize the slider with
|
|
7
|
-
* @
|
|
8
|
-
* @returns
|
|
9
|
-
* @returns
|
|
10
|
-
* @returns
|
|
11
|
-
* @returns
|
|
12
|
-
* @returns
|
|
13
|
-
* @returns
|
|
14
|
-
* @returns
|
|
15
|
-
* @returns
|
|
16
|
-
* @returns
|
|
7
|
+
* @param {plugins} Plugins that enhance KeenSlider options
|
|
8
|
+
* @returns {Object} An object of useful helpers
|
|
9
|
+
* @returns {create} Register and creation function to call on setup
|
|
10
|
+
* @returns {current} Current slide number
|
|
11
|
+
* @returns {next} Function to trigger the next slide
|
|
12
|
+
* @returns {prev} Function to trigger the previous slide
|
|
13
|
+
* @returns {moveTo} Allow you to change the slider to a specific slide
|
|
14
|
+
* @returns {refresh} Refresh trigger
|
|
15
|
+
* @returns {details} Retrieve a list of SliderDetails
|
|
16
|
+
* @returns {slider} Gain access to the slider itself
|
|
17
|
+
* @returns {destroy} Destroy the entire slider (this is automatically handled)
|
|
17
18
|
*
|
|
18
19
|
* @example
|
|
19
20
|
* ```ts
|
|
20
|
-
* const [create] = createSlider();
|
|
21
|
+
* const [create, { prev, next }] = createSlider();
|
|
21
22
|
* <div use:slider>...</div>
|
|
22
23
|
* ```
|
|
23
24
|
*/
|
|
24
|
-
const createSlider = (options
|
|
25
|
+
const createSlider = (options, plugins) => {
|
|
25
26
|
let slider;
|
|
26
27
|
const [current, setCurrent] = createSignal(0);
|
|
27
28
|
const destroy = () => slider && slider.destroy();
|
|
29
|
+
// Slider creation method and directive function
|
|
28
30
|
const create = (el) => {
|
|
29
|
-
let opts = { ...options };
|
|
30
|
-
// @ts-ignore
|
|
31
|
-
opts.slides = el.childNodes;
|
|
32
|
-
opts.slideChanged = instance => {
|
|
33
|
-
options.slideChanged && options.slideChanged(instance);
|
|
34
|
-
setCurrent(instance.details().relativeSlide);
|
|
35
|
-
};
|
|
36
31
|
el.classList.add("keen-slider");
|
|
37
|
-
|
|
32
|
+
// @ts-ignore
|
|
33
|
+
const opts = () => ({ selector: el.childNodes, ...options });
|
|
34
|
+
onMount(() => {
|
|
35
|
+
slider = new KeenSlider(el, opts(), plugins);
|
|
36
|
+
slider.on('slideChanged', () => setCurrent(slider.track.details.rel));
|
|
37
|
+
});
|
|
38
38
|
onCleanup(destroy);
|
|
39
|
+
createEffect(on(() => options, () => slider && slider.update(opts())));
|
|
39
40
|
};
|
|
40
41
|
return [
|
|
41
42
|
create,
|
|
42
43
|
{
|
|
43
44
|
current,
|
|
44
|
-
next: () => slider.next(),
|
|
45
|
-
prev: () => slider.prev(),
|
|
46
|
-
|
|
47
|
-
resize: () => slider.resize(),
|
|
48
|
-
refresh: () => slider.refresh(),
|
|
49
|
-
details: () => slider.details(),
|
|
45
|
+
next: () => slider && slider.next(),
|
|
46
|
+
prev: () => slider && slider.prev(),
|
|
47
|
+
details: () => slider ? slider.track.details : {},
|
|
50
48
|
slider: () => slider,
|
|
49
|
+
moveTo: (id, duration = 250, absolute = false, easing) => slider?.moveToIdx(id, absolute, { duration, easing: easing }),
|
|
51
50
|
destroy
|
|
52
51
|
}
|
|
53
52
|
];
|
package/dist/slider.css
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
.keen-slider {
|
|
1
|
+
.keen-slider:not([data-keen-slider-disabled]) {
|
|
2
|
+
align-content: flex-start;
|
|
2
3
|
display: flex;
|
|
3
4
|
overflow: hidden;
|
|
4
5
|
position: relative;
|
|
@@ -10,19 +11,20 @@
|
|
|
10
11
|
-khtml-user-select: none;
|
|
11
12
|
touch-action: pan-y;
|
|
12
13
|
-webkit-tap-highlight-color: transparent;
|
|
14
|
+
width: 100%;
|
|
13
15
|
}
|
|
14
|
-
.keen-slider__slide {
|
|
16
|
+
.keen-slider:not([data-keen-slider-disabled]) .keen-slider__slide {
|
|
15
17
|
position: relative;
|
|
16
18
|
overflow: hidden;
|
|
17
19
|
width: 100%;
|
|
18
20
|
min-height: 100%;
|
|
19
21
|
}
|
|
20
|
-
.keen-slider[data-keen-slider-
|
|
21
|
-
flex-
|
|
22
|
+
.keen-slider:not([data-keen-slider-disabled])[data-keen-slider-reverse] {
|
|
23
|
+
flex-direction: row-reverse;
|
|
22
24
|
}
|
|
23
|
-
.keen-slider[data-keen-slider-
|
|
24
|
-
|
|
25
|
+
.keen-slider:not([data-keen-slider-disabled])[data-keen-slider-v] {
|
|
26
|
+
flex-wrap: wrap;
|
|
25
27
|
}
|
|
26
|
-
.keen-slider[data-keen-slider-moves] * {
|
|
28
|
+
.keen-slider:not([data-keen-slider-disabled])[data-keen-slider-moves] * {
|
|
27
29
|
pointer-events: none;
|
|
28
30
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "solid-slider",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "A slider/carousel component for Solid powered by KeenSlider.",
|
|
5
5
|
"author": "David Di Biase",
|
|
6
6
|
"license": "ISC",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
},
|
|
28
28
|
"keywords": [
|
|
29
29
|
"slider",
|
|
30
|
-
"
|
|
30
|
+
"carousel",
|
|
31
31
|
"solid",
|
|
32
32
|
"keen",
|
|
33
33
|
"slider",
|
|
@@ -37,12 +37,11 @@
|
|
|
37
37
|
"gallery",
|
|
38
38
|
"plugin"
|
|
39
39
|
],
|
|
40
|
-
"peerDependencies": {
|
|
41
|
-
"solid-js": "^1.0.7"
|
|
42
|
-
},
|
|
43
40
|
"dependencies": {
|
|
44
|
-
"keen-slider": "^
|
|
45
|
-
"
|
|
41
|
+
"keen-slider": "^6.6.3",
|
|
42
|
+
"rimraf": "^3.0.2",
|
|
43
|
+
"solid-js": "^1.3.5",
|
|
44
|
+
"typescript": "^4.5.5"
|
|
46
45
|
},
|
|
47
46
|
"devDependencies": {
|
|
48
47
|
"prettier": "^2.4.1"
|