UNPKG

@anoki/fse-ui

Version:

FSE UI components library

3 lines (2 loc) • 5.52 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),G=require("./index.cjs495.js"),I=require("./index.cjs496.js"),d=require("./index.cjs497.js");function T(){return T=Object.assign?Object.assign.bind():function(s){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(s[n]=a[n])}return s},T.apply(this,arguments)}function A(s){return s.type&&s.type.displayName&&s.type.displayName.includes("SwiperSlide")}function V(s){const t=[];return e.Children.toArray(s).forEach(a=>{A(a)?t.push(a):a.props&&a.props.children&&V(a.props.children).forEach(n=>t.push(n))}),t}function J(s){const t=[],a={"container-start":[],"container-end":[],"wrapper-start":[],"wrapper-end":[]};return e.Children.toArray(s).forEach(n=>{if(A(n))t.push(n);else if(n.props&&n.props.slot&&a[n.props.slot])a[n.props.slot].push(n);else if(n.props&&n.props.children){const c=V(n.props.children);c.length>0?c.forEach(l=>t.push(l)):a["container-end"].push(n)}else a["container-end"].push(n)}),{slides:t,slots:a}}function K(s,t,a){if(!a)return null;const n=o=>{let i=o;return o<0?i=t.length+o:i>=t.length&&(i=i-t.length),i},c=s.isHorizontal()?{[s.rtlTranslate?"right":"left"]:`${a.offset}px`}:{top:`${a.offset}px`},{from:l,to:p}=a,y=s.params.loop?-t.length:0,h=s.params.loop?t.length*2:t.length,v=[];for(let o=y;o<h;o+=1)o>=l&&o<=p&&v.push(t[n(o)]);return v.map((o,i)=>e.cloneElement(o,{swiper:s,style:c,key:o.props.virtualIndex||o.key||`slide-${i}`}))}function N(s,t){return typeof window>"u"?e.useEffect(s,t):e.useLayoutEffect(s,t)}const q=e.createContext(null),Q=e.createContext(null),F=e.forwardRef(function(s,t){let{className:a,tag:n="div",wrapperTag:c="div",children:l,onSwiper:p,...y}=s===void 0?{}:s,h=!1;const[v,o]=e.useState("swiper"),[i,m]=e.useState(null),[C,O]=e.useState(!1),P=e.useRef(!1),w=e.useRef(null),r=e.useRef(null),x=e.useRef(null),z=e.useRef(null),$=e.useRef(null),b=e.useRef(null),R=e.useRef(null),k=e.useRef(null),{params:f,passedParams:L,rest:D,events:g}=I.g(y),{slides:S,slots:j}=J(l),B=()=>{O(!C)};Object.assign(f.on,{_containerClasses(u,E){o(E)}});const _=()=>{Object.assign(f.on,g),h=!0;const u={...f};if(delete u.wrapperClass,r.current=new G.S(u),r.current.virtual&&r.current.params.virtual.enabled){r.current.virtual.slides=S;const E={cache:!1,slides:S,renderExternal:m,renderExternalUpdate:!1};d.e(r.current.params.virtual,E),d.e(r.current.originalParams.virtual,E)}};w.current||_(),r.current&&r.current.on("_beforeBreakpoint",B);const H=()=>{h||!g||!r.current||Object.keys(g).forEach(u=>{r.current.on(u,g[u])})},M=()=>{!g||!r.current||Object.keys(g).forEach(u=>{r.current.off(u,g[u])})};e.useEffect(()=>()=>{r.current&&r.current.off("_beforeBreakpoint",B)}),e.useEffect(()=>{!P.current&&r.current&&(r.current.emitSlidesClasses(),P.current=!0)}),N(()=>{if(t&&(t.current=w.current),!!w.current)return r.current.destroyed&&_(),I.m({el:w.current,nextEl:$.current,prevEl:b.current,paginationEl:R.current,scrollbarEl:k.current,swiper:r.current},f),p&&!r.current.destroyed&&p(r.current),()=>{r.current&&!r.current.destroyed&&r.current.destroy(!0,!1)}},[]),N(()=>{H();const u=I.a(L,x.current,S,z.current,E=>E.key);return x.current=L,z.current=S,u.length&&r.current&&!r.current.destroyed&&d.u({swiper:r.current,slides:S,passedParams:L,changedParams:u,nextEl:$.current,prevEl:b.current,scrollbarEl:k.current,paginationEl:R.current}),()=>{M()}}),N(()=>{I.u(r.current)},[i]);function U(){return f.virtual?K(r.current,S,i):S.map((u,E)=>e.cloneElement(u,{swiper:r.current,swiperSlideIndex:E}))}return e.createElement(n,T({ref:w,className:d.d(`${v}${a?` ${a}`:""}`)},D),e.createElement(Q.Provider,{value:r.current},j["container-start"],e.createElement(c,{className:d.w(f.wrapperClass)},j["wrapper-start"],U(),j["wrapper-end"]),d.n(f)&&e.createElement(e.Fragment,null,e.createElement("div",{ref:b,className:"swiper-button-prev"}),e.createElement("div",{ref:$,className:"swiper-button-next"})),d.b(f)&&e.createElement("div",{ref:k,className:"swiper-scrollbar"}),d.a(f)&&e.createElement("div",{ref:R,className:"swiper-pagination"}),j["container-end"]))});F.displayName="Swiper";const W=e.forwardRef(function(s,t){let{tag:a="div",children:n,className:c="",swiper:l,zoom:p,lazy:y,virtualIndex:h,swiperSlideIndex:v,...o}=s===void 0?{}:s;const i=e.useRef(null),[m,C]=e.useState("swiper-slide"),[O,P]=e.useState(!1);function w($,b,R){b===i.current&&C(R)}N(()=>{if(typeof v<"u"&&(i.current.swiperSlideIndex=v),t&&(t.current=i.current),!(!i.current||!l)){if(l.destroyed){m!=="swiper-slide"&&C("swiper-slide");return}return l.on("_slideClass",w),()=>{l&&l.off("_slideClass",w)}}}),N(()=>{l&&i.current&&!l.destroyed&&C(l.getSlideClasses(i.current))},[l]);const r={isActive:m.indexOf("swiper-slide-active")>=0,isVisible:m.indexOf("swiper-slide-visible")>=0,isPrev:m.indexOf("swiper-slide-prev")>=0,isNext:m.indexOf("swiper-slide-next")>=0},x=()=>typeof n=="function"?n(r):n,z=()=>{P(!0)};return e.createElement(a,T({ref:i,className:d.d(`${m}${c?` ${c}`:""}`),"data-swiper-slide-index":h,onLoad:z},o),p&&e.createElement(q.Provider,{value:r},e.createElement("div",{className:"swiper-zoom-container","data-swiper-zoom":typeof p=="number"?p:void 0},x(),y&&!O&&e.createElement("div",{className:"swiper-lazy-preloader"}))),!p&&e.createElement(q.Provider,{value:r},x(),y&&!O&&e.createElement("div",{className:"swiper-lazy-preloader"})))});W.displayName="SwiperSlide";exports.Swiper=F;exports.SwiperSlide=W; //# sourceMappingURL=index.cjs263.js.map