@smwb/ui-solid 0.1.1 → 0.2.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.
@@ -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 e = c(r, n);
7
- return t === r + n ? 0 : f || t < n && t !== 0 ? e : t === 0 ? r % n === 0 ? e : e - 1 : n > 0 ? Math.floor(t / n) - 1 : 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 u(t) {
12
+ function e(t) {
13
13
  return typeof TouchEvent < "u" && t instanceof TouchEvent;
14
14
  }
15
15
  function a(t) {
16
- return u(t) ? t.changedTouches[0]?.clientX ?? 0 : t.clientX;
16
+ return e(t) ? t.changedTouches[0]?.clientX ?? 0 : t.clientX;
17
17
  }
18
18
  function h(t) {
19
- return u(t) ? t.changedTouches[0]?.clientY ?? 0 : t.clientY;
19
+ return e(t) ? t.changedTouches[0]?.clientY ?? 0 : t.clientY;
20
20
  }
21
- function M(t) {
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 E(t) {
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 m(t, n) {
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
- M as dragPrevent,
54
+ m as dragPrevent,
43
55
  c as getActiveSlideDotsLength,
44
56
  o as getSlideIndexForMultipleParts,
45
- E as getSlideStyle,
57
+ M as getSlideStyle,
46
58
  i as getSlideWidth,
47
59
  p as getSlidesToShow,
48
- m as getStartSlide,
60
+ E as getStartSlide,
49
61
  g as isMouseEvent,
50
- u as isTouchEvent
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 I, use as P, insert as S, createComponent as w, effect as $, setAttribute as F, style as ne, className as A, setStyleProperty as q, template as H, delegateEvents as ie } from "solid-js/web";
2
- import { mergeProps as ae, splitProps as le, children as ce, createSignal as z, createUniqueId as de, createEffect as M, onCleanup as ue, Show as N, For as G } from "solid-js";
3
- import x from "clsx";
4
- import { dragPrevent as U, getSlideStyle as ve, getStartSlide as he, getSlidesToShow as me, getSlideIndexForMultipleParts as j, coordX as L, coordY as X, getSlideWidth as fe, isMouseEvent as B, isTouchEvent as ge } from "./utils.js";
5
- import { mergeRefs as we } from "../../../primitives/mergeRefs.js";
6
- import { Icon as J } from "../../base/icon/icon.js";
7
- var K = /* @__PURE__ */ H("<div>"), Se = /* @__PURE__ */ H("<div data-testid=carousel role=region aria-roledescription=carousel><div class=smwb-carousel__inner><div class=smwb-carousel__track><div class=smwb-carousel__layer>"), pe = /* @__PURE__ */ H("<div class=smwb-carousel__slide><div class=smwb-carousel__slide-inner>");
8
- function ye(Q) {
9
- const V = ae({
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
- }, Q), [t] = le(V, ["slidesToShow", "startSlide", "children", "class", "showNavigation", "showArrows", "arrowsSize", "navigationClassName", "onSlideChange", "navigationDotRenderer", "aria-label", "autoplay", "autoplayInterval", "pauseOnHover", "ref"]), Z = ce(() => t.children), T = () => Z.toArray(), a = () => T().length, o = () => me(t.slidesToShow, a()), Y = () => he(t.startSlide, a()), k = () => !!t.showArrows && a() > 1, [m, C] = z(Y()), [D, b] = z(void 0), [ee, O] = z(!1);
19
- let y, h;
20
- const u = {
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
- }, te = de();
25
- M(() => {
26
- o(), b(!1);
27
- }), M(() => {
28
- const e = Y();
29
- C(e), t.onSlideChange?.(e), D() !== void 0 && b(!0);
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 R = (e) => {
32
- if (!y || !u.isPressed) return;
33
- if (e.preventDefault(), e.stopPropagation(), ge(e) && e.touches.length > 1) {
34
- p(e);
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 r = L(e) - u.startX, l = X(e) - u.startY, d = Math.abs(r), c = Math.abs(l);
38
- if (d < c) return;
39
- const n = y.offsetWidth / o(), i = o() === 1 ? 1.95 : 1.4;
40
- if (d % n > n / i) {
41
- const f = r < 0 ? 1 : -1, v = a() - o(), g = m() + f;
42
- if (g < 0 || g > v) return;
43
- C(g), b(!0), u.startX = L(e), u.startY = X(e), t.onSlideChange?.(g);
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
- }, p = (e) => {
46
- if (!h || !u.isPressed) return;
47
- u.isPressed = !1;
48
- const r = B(e);
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
- d.push({
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: s,
105
+ nextIndex: r,
70
106
  isActive: n === c
71
107
  });
72
108
  }
73
- return d;
74
- }, se = () => {
75
- const e = a() - o(), r = m() > e ? e : m();
76
- return fe(o()) * r;
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 M(() => {
79
- if (!t.autoplay || a() <= 1 || t.pauseOnHover && ee()) return;
80
- const e = window.setInterval(() => _(E(1)), t.autoplayInterval);
81
- ue(() => window.clearInterval(e));
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 k();
150
+ return q();
89
151
  },
90
152
  get children() {
91
- return w(J, {
153
+ return f(T, {
92
154
  name: "chevron_left",
93
155
  get size() {
94
- return t.arrowsSize;
156
+ return s.arrowsSize;
95
157
  },
96
158
  get class() {
97
- return x("smwb-carousel__arrow", "smwb-carousel__arrow_prev");
159
+ return b("smwb-carousel__arrow", "smwb-carousel__arrow_prev");
98
160
  },
99
161
  get style() {
100
162
  return {
101
- top: `calc(50% - ${t.arrowsSize / 2}px)`,
102
- left: `${-t.arrowsSize / 2}px`
163
+ top: `calc(50% - ${s.arrowsSize / 2}px)`,
164
+ left: `${-s.arrowsSize / 2}px`
103
165
  };
104
166
  },
105
- onClick: () => _(E(-1))
167
+ onClick: () => p(R(-1))
106
168
  });
107
169
  }
108
- }), l), I(l, "dragend", U), I(l, "dragstart", U), l.$$touchstart = W, l.$$mousedown = W, P((s) => h = s, l), S(d, w(G, {
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 T();
172
+ return N();
111
173
  },
112
- children: (s, n) => (() => {
113
- var i = pe(), f = i.firstChild;
114
- return S(f, s), $((v) => {
115
- var g = `${te}${n()}`, oe = ve(o());
116
- return g !== v.e && F(i, "id", v.e = g), v.t = ne(i, oe, v.t), v;
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
- }), i;
181
+ t: void 0,
182
+ a: void 0
183
+ }), u;
121
184
  })()
122
- })), S(r, w(N, {
185
+ })), m(t, f(I, {
123
186
  get when() {
124
- return k();
187
+ return q();
125
188
  },
126
189
  get children() {
127
- return w(J, {
190
+ return f(T, {
128
191
  name: "chevron_right",
129
192
  get size() {
130
- return t.arrowsSize;
193
+ return s.arrowsSize;
131
194
  },
132
195
  get class() {
133
- return x("smwb-carousel__arrow", "smwb-carousel__arrow_next");
196
+ return b("smwb-carousel__arrow", "smwb-carousel__arrow_next");
134
197
  },
135
198
  get style() {
136
199
  return {
137
- top: `calc(50% - ${t.arrowsSize / 2}px)`,
138
- right: `${-t.arrowsSize / 2}px`
200
+ top: `calc(50% - ${s.arrowsSize / 2}px)`,
201
+ right: `${-s.arrowsSize / 2}px`
139
202
  };
140
203
  },
141
- onClick: () => _(E(1))
204
+ onClick: () => p(R(1))
142
205
  });
143
206
  }
144
- }), null), S(e, w(N, {
207
+ }), null), m(e, f(I, {
145
208
  get when() {
146
- return t.showNavigation;
209
+ return s.showNavigation;
147
210
  },
148
211
  get children() {
149
- var s = K();
150
- return S(s, w(G, {
212
+ var r = ue();
213
+ return m(r, f(oe, {
151
214
  get each() {
152
- return re();
215
+ return xe();
153
216
  },
154
- children: (n) => t.navigationDotRenderer ? t.navigationDotRenderer(n.index, n.isActive, (i) => _(i)) : (() => {
155
- var i = K();
156
- return i.$$click = () => _(n.nextIndex), $(() => A(i, x("smwb-carousel__navigation__dot", n.isActive && "current"))), i;
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
- })), $(() => A(s, x("smwb-carousel__navigation", t.navigationClassName))), s;
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), $((s) => {
161
- var n = x("smwb-carousel", t.class), i = t["aria-label"], f = `translateX(-${se()}%)`, v = D() ? "transform 500ms cubic-bezier(.1, 0, .25, 1)" : "none";
162
- return n !== s.e && A(e, s.e = n), i !== s.t && F(e, "aria-label", s.t = i), f !== s.a && q(d, "transform", s.a = f), v !== s.o && q(d, "transition", s.o = v), s;
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
- ie(["mousedown", "touchstart", "click"]);
288
+ Ee(["mousedown", "touchstart", "touchend", "click"]);
172
289
  export {
173
- ye as Carousel
290
+ Qe as Carousel
174
291
  };
175
292
  //# sourceMappingURL=carousel.js.map