@smwb/ui-solid 0.1.1 → 0.2.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/dist/assets/styles/less/components/carousel/carousel.entry.css +1 -1
- package/dist/components/dataDisplay/carousel/carousel.d.ts +10 -0
- package/dist/components/dataDisplay/carousel/carousel.js +223 -106
- package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
- package/dist/components/dataDisplay/carousel/utils.d.ts +5 -0
- package/dist/components/dataDisplay/carousel/utils.js +26 -12
- package/dist/components/dataDisplay/carousel/utils.js.map +1 -1
- package/dist/headless/components/dataDisplay/carousel/carousel.js +223 -106
- package/dist/headless/components/dataDisplay/carousel/carousel.js.map +1 -1
- package/dist/headless/components/dataDisplay/carousel/utils.js +26 -12
- package/dist/headless/components/dataDisplay/carousel/utils.js.map +1 -1
- package/package.json +2 -2
|
@@ -3,50 +3,64 @@ function c(t, n) {
|
|
|
3
3
|
return t % n === 0 ? r - 1 : r;
|
|
4
4
|
}
|
|
5
5
|
function o(t, n, r, f) {
|
|
6
|
-
const
|
|
7
|
-
return t === r + n ? 0 : f || t < n && t !== 0 ?
|
|
6
|
+
const u = c(r, n);
|
|
7
|
+
return t === r + n ? 0 : f || t < n && t !== 0 ? u : t === 0 ? r % n === 0 ? u : u - 1 : n > 0 ? Math.floor(t / n) - 1 : 0;
|
|
8
8
|
}
|
|
9
9
|
function g(t) {
|
|
10
10
|
return t instanceof MouseEvent;
|
|
11
11
|
}
|
|
12
|
-
function
|
|
12
|
+
function e(t) {
|
|
13
13
|
return typeof TouchEvent < "u" && t instanceof TouchEvent;
|
|
14
14
|
}
|
|
15
15
|
function a(t) {
|
|
16
|
-
return
|
|
16
|
+
return e(t) ? t.changedTouches[0]?.clientX ?? 0 : t.clientX;
|
|
17
17
|
}
|
|
18
18
|
function h(t) {
|
|
19
|
-
return
|
|
19
|
+
return e(t) ? t.changedTouches[0]?.clientY ?? 0 : t.clientY;
|
|
20
20
|
}
|
|
21
|
-
function
|
|
21
|
+
function m(t) {
|
|
22
22
|
const n = t.target;
|
|
23
23
|
(n.tagName === "A" || n.tagName === "IMG") && t.preventDefault();
|
|
24
24
|
}
|
|
25
25
|
function i(t) {
|
|
26
26
|
return 100 / t;
|
|
27
27
|
}
|
|
28
|
-
function
|
|
28
|
+
function M(t) {
|
|
29
29
|
return { width: `${i(t)}%` };
|
|
30
30
|
}
|
|
31
31
|
function p(t, n) {
|
|
32
32
|
return t <= 0 || n === 0 ? 1 : t > n ? n : t;
|
|
33
33
|
}
|
|
34
|
-
function
|
|
34
|
+
function E(t, n) {
|
|
35
35
|
if (t <= 0 || n === 0) return 0;
|
|
36
36
|
const r = n - 1;
|
|
37
37
|
return t > r ? r : t;
|
|
38
38
|
}
|
|
39
|
+
function d(t, n, r) {
|
|
40
|
+
return Math.min(Math.max(t, n), r);
|
|
41
|
+
}
|
|
42
|
+
function y(t) {
|
|
43
|
+
if (t != null)
|
|
44
|
+
return typeof t == "number" ? `${t}px` : t;
|
|
45
|
+
}
|
|
46
|
+
function L(t) {
|
|
47
|
+
if (t != null)
|
|
48
|
+
return String(t);
|
|
49
|
+
}
|
|
39
50
|
export {
|
|
51
|
+
d as clamp,
|
|
40
52
|
a as coordX,
|
|
41
53
|
h as coordY,
|
|
42
|
-
|
|
54
|
+
m as dragPrevent,
|
|
43
55
|
c as getActiveSlideDotsLength,
|
|
44
56
|
o as getSlideIndexForMultipleParts,
|
|
45
|
-
|
|
57
|
+
M as getSlideStyle,
|
|
46
58
|
i as getSlideWidth,
|
|
47
59
|
p as getSlidesToShow,
|
|
48
|
-
|
|
60
|
+
E as getStartSlide,
|
|
49
61
|
g as isMouseEvent,
|
|
50
|
-
|
|
62
|
+
e as isTouchEvent,
|
|
63
|
+
y as toCssLength,
|
|
64
|
+
L as toCssNumber
|
|
51
65
|
};
|
|
52
66
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/components/dataDisplay/carousel/utils.ts"],"sourcesContent":["import type { JSX } from \"solid-js\";\n\nexport function getActiveSlideDotsLength(slidesCount: number, slidesToShow: number): number {\n const dots = Math.floor(slidesCount / slidesToShow);\n return slidesCount % slidesToShow === 0 ? dots - 1 : dots;\n}\n\nexport function getSlideIndexForMultipleParts(\n activeIndex: number,\n slidesToShow: number,\n slidesCount: number,\n isNextSlideDisabled: boolean\n): number {\n const dotsLength = getActiveSlideDotsLength(slidesCount, slidesToShow);\n if (activeIndex === slidesCount + slidesToShow) return 0;\n if (isNextSlideDisabled || (activeIndex < slidesToShow && activeIndex !== 0)) return dotsLength;\n if (activeIndex === 0) return slidesCount % slidesToShow === 0 ? dotsLength : dotsLength - 1;\n return slidesToShow > 0 ? Math.floor(activeIndex / slidesToShow) - 1 : 0;\n}\n\nexport function isMouseEvent(event: Event): event is MouseEvent {\n return event instanceof MouseEvent;\n}\n\nexport function isTouchEvent(event: Event): event is TouchEvent {\n return typeof TouchEvent !== \"undefined\" && event instanceof TouchEvent;\n}\n\nexport function coordX(event: MouseEvent | TouchEvent): number {\n if (isTouchEvent(event)) return event.changedTouches[0]?.clientX ?? 0;\n return event.clientX;\n}\n\nexport function coordY(event: MouseEvent | TouchEvent): number {\n if (isTouchEvent(event)) return event.changedTouches[0]?.clientY ?? 0;\n return event.clientY;\n}\n\nexport function dragPrevent(event: Event): void {\n const target = event.target as HTMLElement;\n if (target.tagName === \"A\" || target.tagName === \"IMG\") {\n event.preventDefault();\n }\n}\n\nexport function getSlideWidth(slidesToShow: number): number {\n return 100 / slidesToShow;\n}\n\nexport function getSlideStyle(slidesToShow: number): JSX.CSSProperties {\n return { width: `${getSlideWidth(slidesToShow)}%` };\n}\n\nexport function getSlidesToShow(slidesToShow: number, slidesCount: number): number {\n if (slidesToShow <= 0 || slidesCount === 0) return 1;\n if (slidesToShow > slidesCount) return slidesCount;\n return slidesToShow;\n}\n\nexport function getStartSlide(startSlide: number, slidesCount: number): number {\n if (startSlide <= 0 || slidesCount === 0) return 0;\n const maxIndex = slidesCount - 1;\n if (startSlide > maxIndex) return maxIndex;\n return startSlide;\n}\n"],"names":["getActiveSlideDotsLength","slidesCount","slidesToShow","dots","getSlideIndexForMultipleParts","activeIndex","isNextSlideDisabled","dotsLength","isMouseEvent","event","isTouchEvent","coordX","coordY","dragPrevent","target","getSlideWidth","getSlideStyle","getSlidesToShow","getStartSlide","startSlide","maxIndex"],"mappings":"AAEO,SAASA,EAAyBC,GAAqBC,GAA8B;AAC1F,QAAMC,IAAO,KAAK,MAAMF,IAAcC,CAAY;AAClD,SAAOD,IAAcC,MAAiB,IAAIC,IAAO,IAAIA;AACvD;AAEO,SAASC,EACdC,GACAH,GACAD,GACAK,GACQ;AACR,QAAMC,IAAaP,EAAyBC,GAAaC,CAAY;AACrE,SAAIG,MAAgBJ,IAAcC,IAAqB,IACnDI,KAAwBD,IAAcH,KAAgBG,MAAgB,IAAWE,IACjFF,MAAgB,IAAUJ,IAAcC,MAAiB,IAAIK,IAAaA,IAAa,IACpFL,IAAe,IAAI,KAAK,MAAMG,IAAcH,CAAY,IAAI,IAAI;AACzE;AAEO,SAASM,EAAaC,GAAmC;AAC9D,SAAOA,aAAiB;AAC1B;AAEO,SAASC,EAAaD,GAAmC;AAC9D,SAAO,OAAO,aAAe,OAAeA,aAAiB;AAC/D;AAEO,SAASE,EAAOF,GAAwC;AAC7D,SAAIC,EAAaD,CAAK,IAAUA,EAAM,eAAe,CAAC,GAAG,WAAW,IAC7DA,EAAM;AACf;AAEO,SAASG,EAAOH,GAAwC;AAC7D,SAAIC,EAAaD,CAAK,IAAUA,EAAM,eAAe,CAAC,GAAG,WAAW,IAC7DA,EAAM;AACf;AAEO,SAASI,EAAYJ,GAAoB;AAC9C,QAAMK,IAASL,EAAM;AACrB,GAAIK,EAAO,YAAY,OAAOA,EAAO,YAAY,UAC/CL,EAAM,eAAA;AAEV;AAEO,SAASM,EAAcb,GAA8B;AAC1D,SAAO,MAAMA;AACf;AAEO,SAASc,EAAcd,GAAyC;AACrE,SAAO,EAAE,OAAO,GAAGa,EAAcb,CAAY,CAAC,IAAA;AAChD;AAEO,SAASe,EAAgBf,GAAsBD,GAA6B;AACjF,SAAIC,KAAgB,KAAKD,MAAgB,IAAU,IAC/CC,IAAeD,IAAoBA,IAChCC;AACT;AAEO,SAASgB,EAAcC,GAAoBlB,GAA6B;AAC7E,MAAIkB,KAAc,KAAKlB,MAAgB,EAAG,QAAO;AACjD,QAAMmB,IAAWnB,IAAc;AAC/B,SAAIkB,IAAaC,IAAiBA,IAC3BD;AACT;"}
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/components/dataDisplay/carousel/utils.ts"],"sourcesContent":["import type { JSX } from \"solid-js\";\n\nexport function getActiveSlideDotsLength(slidesCount: number, slidesToShow: number): number {\n const dots = Math.floor(slidesCount / slidesToShow);\n return slidesCount % slidesToShow === 0 ? dots - 1 : dots;\n}\n\nexport function getSlideIndexForMultipleParts(\n activeIndex: number,\n slidesToShow: number,\n slidesCount: number,\n isNextSlideDisabled: boolean\n): number {\n const dotsLength = getActiveSlideDotsLength(slidesCount, slidesToShow);\n if (activeIndex === slidesCount + slidesToShow) return 0;\n if (isNextSlideDisabled || (activeIndex < slidesToShow && activeIndex !== 0)) return dotsLength;\n if (activeIndex === 0) return slidesCount % slidesToShow === 0 ? dotsLength : dotsLength - 1;\n return slidesToShow > 0 ? Math.floor(activeIndex / slidesToShow) - 1 : 0;\n}\n\nexport function isMouseEvent(event: Event): event is MouseEvent {\n return event instanceof MouseEvent;\n}\n\nexport function isTouchEvent(event: Event): event is TouchEvent {\n return typeof TouchEvent !== \"undefined\" && event instanceof TouchEvent;\n}\n\nexport function coordX(event: MouseEvent | TouchEvent): number {\n if (isTouchEvent(event)) return event.changedTouches[0]?.clientX ?? 0;\n return event.clientX;\n}\n\nexport function coordY(event: MouseEvent | TouchEvent): number {\n if (isTouchEvent(event)) return event.changedTouches[0]?.clientY ?? 0;\n return event.clientY;\n}\n\nexport function dragPrevent(event: Event): void {\n const target = event.target as HTMLElement;\n if (target.tagName === \"A\" || target.tagName === \"IMG\") {\n event.preventDefault();\n }\n}\n\nexport function getSlideWidth(slidesToShow: number): number {\n return 100 / slidesToShow;\n}\n\nexport function getSlideStyle(slidesToShow: number): JSX.CSSProperties {\n return { width: `${getSlideWidth(slidesToShow)}%` };\n}\n\nexport function getSlidesToShow(slidesToShow: number, slidesCount: number): number {\n if (slidesToShow <= 0 || slidesCount === 0) return 1;\n if (slidesToShow > slidesCount) return slidesCount;\n return slidesToShow;\n}\n\nexport function getStartSlide(startSlide: number, slidesCount: number): number {\n if (startSlide <= 0 || slidesCount === 0) return 0;\n const maxIndex = slidesCount - 1;\n if (startSlide > maxIndex) return maxIndex;\n return startSlide;\n}\n\nexport function clamp(value: number, min: number, max: number): number {\n return Math.min(Math.max(value, min), max);\n}\n\n/** Number -> \"<n>px\", string -> as-is, nullish -> undefined. */\nexport function toCssLength(value?: number | string): string | undefined {\n if (value === undefined || value === null) return undefined;\n return typeof value === \"number\" ? `${value}px` : value;\n}\n\n/** Number/string -> string, nullish -> undefined (for unit-less CSS values like aspect-ratio). */\nexport function toCssNumber(value?: number | string): string | undefined {\n if (value === undefined || value === null) return undefined;\n return String(value);\n}\n"],"names":["getActiveSlideDotsLength","slidesCount","slidesToShow","dots","getSlideIndexForMultipleParts","activeIndex","isNextSlideDisabled","dotsLength","isMouseEvent","event","isTouchEvent","coordX","coordY","dragPrevent","target","getSlideWidth","getSlideStyle","getSlidesToShow","getStartSlide","startSlide","maxIndex","clamp","value","min","max","toCssLength","toCssNumber"],"mappings":"AAEO,SAASA,EAAyBC,GAAqBC,GAA8B;AAC1F,QAAMC,IAAO,KAAK,MAAMF,IAAcC,CAAY;AAClD,SAAOD,IAAcC,MAAiB,IAAIC,IAAO,IAAIA;AACvD;AAEO,SAASC,EACdC,GACAH,GACAD,GACAK,GACQ;AACR,QAAMC,IAAaP,EAAyBC,GAAaC,CAAY;AACrE,SAAIG,MAAgBJ,IAAcC,IAAqB,IACnDI,KAAwBD,IAAcH,KAAgBG,MAAgB,IAAWE,IACjFF,MAAgB,IAAUJ,IAAcC,MAAiB,IAAIK,IAAaA,IAAa,IACpFL,IAAe,IAAI,KAAK,MAAMG,IAAcH,CAAY,IAAI,IAAI;AACzE;AAEO,SAASM,EAAaC,GAAmC;AAC9D,SAAOA,aAAiB;AAC1B;AAEO,SAASC,EAAaD,GAAmC;AAC9D,SAAO,OAAO,aAAe,OAAeA,aAAiB;AAC/D;AAEO,SAASE,EAAOF,GAAwC;AAC7D,SAAIC,EAAaD,CAAK,IAAUA,EAAM,eAAe,CAAC,GAAG,WAAW,IAC7DA,EAAM;AACf;AAEO,SAASG,EAAOH,GAAwC;AAC7D,SAAIC,EAAaD,CAAK,IAAUA,EAAM,eAAe,CAAC,GAAG,WAAW,IAC7DA,EAAM;AACf;AAEO,SAASI,EAAYJ,GAAoB;AAC9C,QAAMK,IAASL,EAAM;AACrB,GAAIK,EAAO,YAAY,OAAOA,EAAO,YAAY,UAC/CL,EAAM,eAAA;AAEV;AAEO,SAASM,EAAcb,GAA8B;AAC1D,SAAO,MAAMA;AACf;AAEO,SAASc,EAAcd,GAAyC;AACrE,SAAO,EAAE,OAAO,GAAGa,EAAcb,CAAY,CAAC,IAAA;AAChD;AAEO,SAASe,EAAgBf,GAAsBD,GAA6B;AACjF,SAAIC,KAAgB,KAAKD,MAAgB,IAAU,IAC/CC,IAAeD,IAAoBA,IAChCC;AACT;AAEO,SAASgB,EAAcC,GAAoBlB,GAA6B;AAC7E,MAAIkB,KAAc,KAAKlB,MAAgB,EAAG,QAAO;AACjD,QAAMmB,IAAWnB,IAAc;AAC/B,SAAIkB,IAAaC,IAAiBA,IAC3BD;AACT;AAEO,SAASE,EAAMC,GAAeC,GAAaC,GAAqB;AACrE,SAAO,KAAK,IAAI,KAAK,IAAIF,GAAOC,CAAG,GAAGC,CAAG;AAC3C;AAGO,SAASC,EAAYH,GAA6C;AACvE,MAA2BA,KAAU;AACrC,WAAO,OAAOA,KAAU,WAAW,GAAGA,CAAK,OAAOA;AACpD;AAGO,SAASI,EAAYJ,GAA6C;AACvE,MAA2BA,KAAU;AACrC,WAAO,OAAOA,CAAK;AACrB;"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { addEventListener as
|
|
2
|
-
import { mergeProps as
|
|
3
|
-
import
|
|
4
|
-
import { dragPrevent as
|
|
5
|
-
import { mergeRefs as
|
|
6
|
-
import { Icon as
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { addEventListener as k, use as O, insert as m, createComponent as f, effect as P, setAttribute as ee, style as te, className as z, setStyleProperty as re, template as F, delegateEvents as Ee } from "solid-js/web";
|
|
2
|
+
import { mergeProps as ke, splitProps as Te, children as Xe, createSignal as S, createUniqueId as Le, createEffect as A, createMemo as se, onCleanup as ne, Show as I, For as oe } from "solid-js";
|
|
3
|
+
import b from "clsx";
|
|
4
|
+
import { toCssLength as Y, toCssNumber as Me, dragPrevent as le, getSlideStyle as Pe, getStartSlide as ze, getSlidesToShow as Ae, clamp as Fe, getSlideIndexForMultipleParts as ae, coordX as V, coordY as ie, getSlideWidth as Ne, isMouseEvent as ce, isTouchEvent as De } from "./utils.js";
|
|
5
|
+
import { mergeRefs as He } from "../../../primitives/mergeRefs.js";
|
|
6
|
+
import { Icon as T } from "../../base/icon/icon.js";
|
|
7
|
+
import { Modal as Re } from "../../feedBack/modal/modal.js";
|
|
8
|
+
var ue = /* @__PURE__ */ F("<div>"), Oe = /* @__PURE__ */ F("<div class=smwb-carousel__fullscreen-content><div class=smwb-carousel__fullscreen-stage>"), Ye = /* @__PURE__ */ F("<div data-testid=carousel role=region aria-roledescription=carousel><div class=smwb-carousel__inner><div class=smwb-carousel__track><div class=smwb-carousel__layer>"), Ve = /* @__PURE__ */ F("<div class=smwb-carousel__slide><div>");
|
|
9
|
+
const de = 8, We = 0.4, W = () => typeof performance < "u" ? performance.now() : Date.now();
|
|
10
|
+
function Qe(fe) {
|
|
11
|
+
const he = ke({
|
|
10
12
|
slidesToShow: 3,
|
|
11
13
|
startSlide: 0,
|
|
12
14
|
showNavigation: !0,
|
|
@@ -14,162 +16,277 @@ function ye(Q) {
|
|
|
14
16
|
"aria-label": "Carousel",
|
|
15
17
|
autoplay: !1,
|
|
16
18
|
autoplayInterval: 4e3,
|
|
17
|
-
pauseOnHover: !0
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
pauseOnHover: !0,
|
|
20
|
+
enableFullscreen: !1
|
|
21
|
+
}, fe), [s] = Te(he, ["slidesToShow", "startSlide", "children", "class", "showNavigation", "showArrows", "arrowsSize", "navigationClassName", "onSlideChange", "navigationDotRenderer", "aria-label", "autoplay", "autoplayInterval", "pauseOnHover", "cellHeight", "aspectRatio", "gap", "maxWidth", "enableFullscreen", "ref"]), me = Xe(() => s.children), N = () => me.toArray(), o = () => N().length, d = () => Ae(s.slidesToShow, o()), K = () => ze(s.startSlide, o()), q = () => !!s.showArrows && o() > 1, X = () => Math.max(0, o() - d()), [g, B] = S(K()), [D, H] = S(void 0), [ge, G] = S(!1), [ve, U] = S(0), [we, j] = S(!1), [y, L] = S(null);
|
|
22
|
+
let M, v;
|
|
23
|
+
const l = {
|
|
21
24
|
isPressed: !1,
|
|
22
25
|
startX: 0,
|
|
23
|
-
startY: 0
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
startY: 0,
|
|
27
|
+
lastX: 0,
|
|
28
|
+
lastT: 0,
|
|
29
|
+
axis: null,
|
|
30
|
+
dragged: !1
|
|
31
|
+
};
|
|
32
|
+
let C = null;
|
|
33
|
+
const _e = Le();
|
|
34
|
+
A(() => {
|
|
35
|
+
d(), H(!1);
|
|
36
|
+
}), A(() => {
|
|
37
|
+
const e = K();
|
|
38
|
+
B(e), s.onSlideChange?.(e), D() !== void 0 && H(!0);
|
|
30
39
|
});
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
const p = (e) => {
|
|
41
|
+
const t = Fe(e, 0, X());
|
|
42
|
+
B(t), H(!0), s.onSlideChange?.(t);
|
|
43
|
+
}, be = (e) => {
|
|
44
|
+
v && (v.removeEventListener(e ? "mousemove" : "touchmove", J), v.removeEventListener(e ? "mouseup" : "touchend", x), e && v.removeEventListener("mouseleave", x));
|
|
45
|
+
}, J = (e) => {
|
|
46
|
+
if (!M || !l.isPressed) return;
|
|
47
|
+
if (De(e) && e.touches.length > 1) {
|
|
48
|
+
x(e);
|
|
35
49
|
return;
|
|
36
50
|
}
|
|
37
|
-
const
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
51
|
+
const t = V(e), a = ie(e), i = t - l.startX, c = a - l.startY;
|
|
52
|
+
if (l.axis === null) {
|
|
53
|
+
if (Math.abs(i) < de && Math.abs(c) < de) return;
|
|
54
|
+
if (l.axis = Math.abs(i) >= Math.abs(c) ? "x" : "y", l.dragged = !0, l.axis === "y") {
|
|
55
|
+
x(e);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
o() > 1 && j(!0);
|
|
44
59
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
h.removeEventListener(r ? "mousemove" : "touchmove", R), h.removeEventListener(r ? "mouseup" : "touchend", p), r && h.removeEventListener("mouseleave", p);
|
|
50
|
-
}, W = (e) => {
|
|
51
|
-
if (a() <= 1 || !h) return;
|
|
52
|
-
const r = B(e);
|
|
53
|
-
r && e.button !== 0 || (e.stopPropagation(), u.isPressed = !0, u.startX = L(e), u.startY = X(e), h.addEventListener(r ? "mousemove" : "touchmove", R), h.addEventListener(r ? "mouseup" : "touchend", p), r && h.addEventListener("mouseleave", p));
|
|
54
|
-
}, _ = (e) => {
|
|
55
|
-
C(e), b(!0), t.onSlideChange?.(e);
|
|
56
|
-
}, E = (e) => {
|
|
57
|
-
const r = o() === 1, l = r ? a() : Math.ceil(a() / o()), d = m() + o(), c = a() - o() <= m(), n = (j(d, o(), a(), c) + e + l) % l;
|
|
58
|
-
return r ? n : n * o();
|
|
59
|
-
}, re = () => {
|
|
60
|
-
const e = a() - o() <= m(), r = o() === 1, l = r ? a() : Math.ceil(a() / o()), d = [];
|
|
61
|
-
for (let c = 0; c < l; c++) {
|
|
62
|
-
let s = c, n = m();
|
|
63
|
-
if (!r) {
|
|
64
|
-
const i = c === l - 1, f = m() + o();
|
|
65
|
-
s = i ? a() - o() : c * o(), n = j(f, o(), a(), e);
|
|
60
|
+
if (l.axis === "x") {
|
|
61
|
+
if (e.preventDefault(), e.stopPropagation(), o() > 1) {
|
|
62
|
+
const r = g() <= 0, n = g() >= X(), u = r && i > 0 || n && i < 0 ? i * 0.35 : i;
|
|
63
|
+
U(u);
|
|
66
64
|
}
|
|
67
|
-
|
|
65
|
+
l.lastX = t, l.lastT = W();
|
|
66
|
+
}
|
|
67
|
+
}, x = (e) => {
|
|
68
|
+
if (!l.isPressed) return;
|
|
69
|
+
const t = ce(e);
|
|
70
|
+
be(t);
|
|
71
|
+
const {
|
|
72
|
+
axis: a,
|
|
73
|
+
dragged: i,
|
|
74
|
+
startX: c,
|
|
75
|
+
lastX: r,
|
|
76
|
+
lastT: n
|
|
77
|
+
} = l;
|
|
78
|
+
if (l.isPressed = !1, j(!1), a === "x" && i && o() > 1 && M) {
|
|
79
|
+
const u = V(e), w = u - c, h = M.offsetWidth / d(), _ = n ? (u - r) / Math.max(1, W() - n) : 0;
|
|
80
|
+
let E = h > 0 ? Math.round(-w / h) : 0;
|
|
81
|
+
E === 0 && Math.abs(_) > We && (E = _ < 0 ? 1 : -1), p(g() + E);
|
|
82
|
+
}
|
|
83
|
+
U(0);
|
|
84
|
+
}, Q = (e) => {
|
|
85
|
+
if (!v) return;
|
|
86
|
+
const t = ce(e);
|
|
87
|
+
t && e.button !== 0 || (e.stopPropagation(), l.isPressed = !0, l.startX = V(e), l.startY = ie(e), l.lastX = l.startX, l.lastT = W(), l.axis = null, l.dragged = !1, v.addEventListener(t ? "mousemove" : "touchmove", J, {
|
|
88
|
+
passive: !1
|
|
89
|
+
}), v.addEventListener(t ? "mouseup" : "touchend", x), t && v.addEventListener("mouseleave", x));
|
|
90
|
+
}, pe = (e) => {
|
|
91
|
+
l.dragged || s.enableFullscreen && L(e);
|
|
92
|
+
}, R = (e) => {
|
|
93
|
+
const t = d() === 1, a = t ? o() : Math.ceil(o() / d()), i = g() + d(), c = o() - d() <= g(), n = (ae(i, d(), o(), c) + e + a) % a;
|
|
94
|
+
return t ? n : n * d();
|
|
95
|
+
}, xe = () => {
|
|
96
|
+
const e = o() - d() <= g(), t = d() === 1, a = t ? o() : Math.ceil(o() / d()), i = [];
|
|
97
|
+
for (let c = 0; c < a; c++) {
|
|
98
|
+
let r = c, n = g();
|
|
99
|
+
if (!t) {
|
|
100
|
+
const u = c === a - 1, w = g() + d();
|
|
101
|
+
r = u ? o() - d() : c * d(), n = ae(w, d(), o(), e);
|
|
102
|
+
}
|
|
103
|
+
i.push({
|
|
68
104
|
index: c,
|
|
69
|
-
nextIndex:
|
|
105
|
+
nextIndex: r,
|
|
70
106
|
isActive: n === c
|
|
71
107
|
});
|
|
72
108
|
}
|
|
73
|
-
return
|
|
74
|
-
},
|
|
75
|
-
const e =
|
|
76
|
-
return
|
|
109
|
+
return i;
|
|
110
|
+
}, Se = () => {
|
|
111
|
+
const e = g() > X() ? X() : g();
|
|
112
|
+
return Ne(d()) * e;
|
|
113
|
+
}, Ie = se(() => {
|
|
114
|
+
const e = {}, t = Y(s.cellHeight), a = Me(s.aspectRatio), i = Y(s.gap), c = Y(s.maxWidth);
|
|
115
|
+
return t && (e["--smwb-carousel-cell-height"] = t), a && (e["--smwb-carousel-aspect-ratio"] = a), i && (e["--smwb-carousel-gap"] = i), c && (e["--smwb-carousel-max-width"] = c), e;
|
|
116
|
+
}), $ = (e) => {
|
|
117
|
+
const t = y();
|
|
118
|
+
t !== null && L((t + e + o()) % o());
|
|
119
|
+
}, ye = se(() => {
|
|
120
|
+
const e = y();
|
|
121
|
+
if (e === null) return null;
|
|
122
|
+
const t = N()[e];
|
|
123
|
+
return t instanceof Node ? t.cloneNode(!0) : t == null ? "" : String(t);
|
|
124
|
+
});
|
|
125
|
+
A(() => {
|
|
126
|
+
if (!s.autoplay || o() <= 1 || s.pauseOnHover && ge() || y() !== null)
|
|
127
|
+
return;
|
|
128
|
+
const e = window.setInterval(() => p(R(1)), s.autoplayInterval);
|
|
129
|
+
ne(() => window.clearInterval(e));
|
|
130
|
+
}), A(() => {
|
|
131
|
+
if (y() === null || o() <= 1) return;
|
|
132
|
+
const e = (t) => {
|
|
133
|
+
t.key === "ArrowLeft" ? $(-1) : t.key === "ArrowRight" && $(1);
|
|
134
|
+
};
|
|
135
|
+
document.addEventListener("keydown", e), ne(() => document.removeEventListener("keydown", e));
|
|
136
|
+
});
|
|
137
|
+
const Ce = (e) => {
|
|
138
|
+
C = e.touches[0]?.clientX ?? null;
|
|
139
|
+
}, $e = (e) => {
|
|
140
|
+
if (C === null || o() <= 1) return;
|
|
141
|
+
const t = (e.changedTouches[0]?.clientX ?? C) - C;
|
|
142
|
+
C = null, Math.abs(t) > 40 && $(t < 0 ? 1 : -1);
|
|
77
143
|
};
|
|
78
|
-
return
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
var e = Se(), r = e.firstChild, l = r.firstChild, d = l.firstChild;
|
|
84
|
-
I(e, "mouseleave", t.pauseOnHover ? () => O(!1) : void 0), I(e, "mouseenter", t.pauseOnHover ? () => O(!0) : void 0);
|
|
85
|
-
var c = we(t.ref);
|
|
86
|
-
return typeof c == "function" && P(c, e), P((s) => y = s, r), S(r, w(N, {
|
|
144
|
+
return (() => {
|
|
145
|
+
var e = Ye(), t = e.firstChild, a = t.firstChild, i = a.firstChild;
|
|
146
|
+
k(e, "mouseleave", s.pauseOnHover ? () => G(!1) : void 0), k(e, "mouseenter", s.pauseOnHover ? () => G(!0) : void 0);
|
|
147
|
+
var c = He(s.ref);
|
|
148
|
+
return typeof c == "function" && O(c, e), O((r) => M = r, t), m(t, f(I, {
|
|
87
149
|
get when() {
|
|
88
|
-
return
|
|
150
|
+
return q();
|
|
89
151
|
},
|
|
90
152
|
get children() {
|
|
91
|
-
return
|
|
153
|
+
return f(T, {
|
|
92
154
|
name: "chevron_left",
|
|
93
155
|
get size() {
|
|
94
|
-
return
|
|
156
|
+
return s.arrowsSize;
|
|
95
157
|
},
|
|
96
158
|
get class() {
|
|
97
|
-
return
|
|
159
|
+
return b("smwb-carousel__arrow", "smwb-carousel__arrow_prev");
|
|
98
160
|
},
|
|
99
161
|
get style() {
|
|
100
162
|
return {
|
|
101
|
-
top: `calc(50% - ${
|
|
102
|
-
left: `${-
|
|
163
|
+
top: `calc(50% - ${s.arrowsSize / 2}px)`,
|
|
164
|
+
left: `${-s.arrowsSize / 2}px`
|
|
103
165
|
};
|
|
104
166
|
},
|
|
105
|
-
onClick: () =>
|
|
167
|
+
onClick: () => p(R(-1))
|
|
106
168
|
});
|
|
107
169
|
}
|
|
108
|
-
}),
|
|
170
|
+
}), a), k(a, "dragend", le), k(a, "dragstart", le), a.$$touchstart = Q, a.$$mousedown = Q, O((r) => v = r, a), m(i, f(oe, {
|
|
109
171
|
get each() {
|
|
110
|
-
return
|
|
172
|
+
return N();
|
|
111
173
|
},
|
|
112
|
-
children: (
|
|
113
|
-
var
|
|
114
|
-
return
|
|
115
|
-
var
|
|
116
|
-
return
|
|
174
|
+
children: (r, n) => (() => {
|
|
175
|
+
var u = Ve(), w = u.firstChild;
|
|
176
|
+
return k(w, "click", s.enableFullscreen ? () => pe(n()) : void 0, !0), m(w, r), P((h) => {
|
|
177
|
+
var _ = `${_e}${n()}`, E = Pe(d()), Z = b("smwb-carousel__slide-inner", s.enableFullscreen && "smwb-carousel__slide-inner_clickable");
|
|
178
|
+
return _ !== h.e && ee(u, "id", h.e = _), h.t = te(u, E, h.t), Z !== h.a && z(w, h.a = Z), h;
|
|
117
179
|
}, {
|
|
118
180
|
e: void 0,
|
|
119
|
-
t: void 0
|
|
120
|
-
|
|
181
|
+
t: void 0,
|
|
182
|
+
a: void 0
|
|
183
|
+
}), u;
|
|
121
184
|
})()
|
|
122
|
-
})),
|
|
185
|
+
})), m(t, f(I, {
|
|
123
186
|
get when() {
|
|
124
|
-
return
|
|
187
|
+
return q();
|
|
125
188
|
},
|
|
126
189
|
get children() {
|
|
127
|
-
return
|
|
190
|
+
return f(T, {
|
|
128
191
|
name: "chevron_right",
|
|
129
192
|
get size() {
|
|
130
|
-
return
|
|
193
|
+
return s.arrowsSize;
|
|
131
194
|
},
|
|
132
195
|
get class() {
|
|
133
|
-
return
|
|
196
|
+
return b("smwb-carousel__arrow", "smwb-carousel__arrow_next");
|
|
134
197
|
},
|
|
135
198
|
get style() {
|
|
136
199
|
return {
|
|
137
|
-
top: `calc(50% - ${
|
|
138
|
-
right: `${-
|
|
200
|
+
top: `calc(50% - ${s.arrowsSize / 2}px)`,
|
|
201
|
+
right: `${-s.arrowsSize / 2}px`
|
|
139
202
|
};
|
|
140
203
|
},
|
|
141
|
-
onClick: () =>
|
|
204
|
+
onClick: () => p(R(1))
|
|
142
205
|
});
|
|
143
206
|
}
|
|
144
|
-
}), null),
|
|
207
|
+
}), null), m(e, f(I, {
|
|
145
208
|
get when() {
|
|
146
|
-
return
|
|
209
|
+
return s.showNavigation;
|
|
147
210
|
},
|
|
148
211
|
get children() {
|
|
149
|
-
var
|
|
150
|
-
return
|
|
212
|
+
var r = ue();
|
|
213
|
+
return m(r, f(oe, {
|
|
151
214
|
get each() {
|
|
152
|
-
return
|
|
215
|
+
return xe();
|
|
153
216
|
},
|
|
154
|
-
children: (n) =>
|
|
155
|
-
var
|
|
156
|
-
return
|
|
217
|
+
children: (n) => s.navigationDotRenderer ? s.navigationDotRenderer(n.index, n.isActive, (u) => p(u)) : (() => {
|
|
218
|
+
var u = ue();
|
|
219
|
+
return u.$$click = () => p(n.nextIndex), P(() => z(u, b("smwb-carousel__navigation__dot", n.isActive && "current"))), u;
|
|
157
220
|
})()
|
|
158
|
-
})),
|
|
221
|
+
})), P(() => z(r, b("smwb-carousel__navigation", s.navigationClassName))), r;
|
|
222
|
+
}
|
|
223
|
+
}), null), m(e, f(I, {
|
|
224
|
+
get when() {
|
|
225
|
+
return s.enableFullscreen;
|
|
226
|
+
},
|
|
227
|
+
get children() {
|
|
228
|
+
return f(Re, {
|
|
229
|
+
get open() {
|
|
230
|
+
return y() !== null;
|
|
231
|
+
},
|
|
232
|
+
size: "fullscreen",
|
|
233
|
+
backdrop: "darkBlured",
|
|
234
|
+
class: "smwb-carousel__fullscreen",
|
|
235
|
+
onClose: () => L(null),
|
|
236
|
+
"aria-label": "Image viewer",
|
|
237
|
+
get children() {
|
|
238
|
+
var r = Oe(), n = r.firstChild;
|
|
239
|
+
return m(r, f(I, {
|
|
240
|
+
get when() {
|
|
241
|
+
return o() > 1;
|
|
242
|
+
},
|
|
243
|
+
get children() {
|
|
244
|
+
return f(T, {
|
|
245
|
+
name: "chevron_left",
|
|
246
|
+
size: 40,
|
|
247
|
+
get class() {
|
|
248
|
+
return b("smwb-carousel__fullscreen-arrow", "smwb-carousel__fullscreen-arrow_prev");
|
|
249
|
+
},
|
|
250
|
+
onClick: () => $(-1)
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
}), n), n.$$touchend = $e, n.$$touchstart = Ce, m(n, () => ye()), m(r, f(I, {
|
|
254
|
+
get when() {
|
|
255
|
+
return o() > 1;
|
|
256
|
+
},
|
|
257
|
+
get children() {
|
|
258
|
+
return f(T, {
|
|
259
|
+
name: "chevron_right",
|
|
260
|
+
size: 40,
|
|
261
|
+
get class() {
|
|
262
|
+
return b("smwb-carousel__fullscreen-arrow", "smwb-carousel__fullscreen-arrow_next");
|
|
263
|
+
},
|
|
264
|
+
onClick: () => $(1)
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
}), null), m(r, f(T, {
|
|
268
|
+
name: "close",
|
|
269
|
+
size: 32,
|
|
270
|
+
class: "smwb-carousel__fullscreen-close",
|
|
271
|
+
onClick: () => L(null)
|
|
272
|
+
}), null), r;
|
|
273
|
+
}
|
|
274
|
+
});
|
|
159
275
|
}
|
|
160
|
-
}), null),
|
|
161
|
-
var n =
|
|
162
|
-
return n !==
|
|
276
|
+
}), null), P((r) => {
|
|
277
|
+
var n = b("smwb-carousel", s.class), u = s["aria-label"], w = Ie(), h = `translateX(calc(-${Se()}% + ${ve()}px))`, _ = we() || D() === void 0 ? "none" : D() ? "transform 500ms cubic-bezier(.1, 0, .25, 1)" : "none";
|
|
278
|
+
return n !== r.e && z(e, r.e = n), u !== r.t && ee(e, "aria-label", r.t = u), r.a = te(e, w, r.a), h !== r.o && re(i, "transform", r.o = h), _ !== r.i && re(i, "transition", r.i = _), r;
|
|
163
279
|
}, {
|
|
164
280
|
e: void 0,
|
|
165
281
|
t: void 0,
|
|
166
282
|
a: void 0,
|
|
167
|
-
o: void 0
|
|
283
|
+
o: void 0,
|
|
284
|
+
i: void 0
|
|
168
285
|
}), e;
|
|
169
286
|
})();
|
|
170
287
|
}
|
|
171
|
-
|
|
288
|
+
Ee(["mousedown", "touchstart", "touchend", "click"]);
|
|
172
289
|
export {
|
|
173
|
-
|
|
290
|
+
Qe as Carousel
|
|
174
291
|
};
|
|
175
292
|
//# sourceMappingURL=carousel.js.map
|