PageSourceSearch

https://www.ftu.org.hk/_nuxt/BvJO-9OF.js

js ftu.org.hk collected 2026-10-02 17:35:36 UTC 3,386 bytes, 1 lines download raw bytes

1import{d as q,i as u,c as M,S as W,k as Q,Q as _,U as j,l as c,o as v,m as C,y as G,n as H,e as X,F as b,x as R,al as z,t as J,s as K,_ as Y}from"./rNMPrltl.js";const Z={class:"default-content"},ee={key:0,class:"dots-container"},te=["onClick"],ae=q({__name:"ScrollCard",props:{items:{type:Array,required:!0},showDots:{type:Boolean,default:!0},initialIndex:{type:Number,default:0},initialOffset:{type:Number,default:0}},emits:["change","dot-click","slide-start","slide-move","slide-cancel"],setup(d,{expose:N,emit:O}){const l=d,n=O,p=u(null),f=u([]),x=u(0),t=u(l.initialIndex),r=u(0),D=u(0),h=u(0),a=u(0),g=u(0),i=u(!1),w=u(!1),B=M(()=>l.items.map((e,o)=>({isActive:o===t.value}))),$=M(()=>{if(l.items.length<=0||!r.value||!h.value)return 0;if(l.items.length===1)return(h.value-r.value)/2+x.value;const e=r.value+D.value,s=h.value/2-r.value/2;return t.value>0&&t.value<l.items.length-1?-t.value*e+s:t.value===0?s+x.value:t.value===l.items.length-1?-t.value*e+s:0}),k=()=>{const o=window.innerWidth/750;D.value=38*o,x.value=l.initialOffset*o,p.value&&(h.value=p.value.offsetWidth),f.value&&f.value.length>0&&f.value[0]&&(r.value=f.value[0].offsetWidth)},A=e=>{t.value=e,n("change",t.value),n("dot-click",e)},E=e=>{g.value=e.touches[0].clientX,i.value=!0,n("slide-start",{event:e,index:t.value})},L=e=>{if(!i.value)return;const s=e.touches[0].clientX-g.value;Math.abs(s)>10&&e.cancelable&&e.preventDefault(),a.value=s,(t.value===0&&a.value>0||t.value===l.items.length-1&&a.value<0)&&(a.value*=.3),n("slide-move",{event:e,index:t.value,offset:a.value})},F=()=>{i.value&&(Math.abs(a.value)>r.value/4?a.value>0?S():y():n("slide-cancel",{index:t.value}),a.value=0,i.value=!1)},P=e=>{e.preventDefault(),g.value=e.clientX,i.value=!0,w.value=!0,n("slide-start",{event:e,index:t.value})},U=e=>{if(!i.value||!w.value)return;const o=e.clientX;a.value=o-g.value,(t.value===0&&a.value>0||t.value===l.items.length-1&&a.value<0)&&(a.value*=.3),n("slide-move",{event:e,index:t.value,offset:a.value})},I=()=>{i.value&&(Math.abs(a.value)>r.value/4?a.value>0?S():y():n("slide-cancel",{index:t.value}),a.value=0,i.value=!1,w.value=!1)},y=()=>{t.value<l.items.length-1&&(t.value++,n("change",t.value))},S=()=>{t.value>0&&(t.value--,n("change",t.value))},V=e=>{e>=0&&e<l.items.length&&(t.value=e,n("change",t.value))};W(()=>l.initialIndex,e=>{t.value=e}),W(()=>l.items,()=>{_(()=>{k()})});const T=()=>{_(()=>{k()})};return Q(()=>{_(()=>{k()}),window.addEventListener("resize",T)}),j(()=>{window.removeEventListener("resize",T)}),N({goToNext:y,goToPrev:S,goToIndex:V,currentIndex:M(()=>t.value)}),(e,o)=>(v(),c("div",{class:"carousel",ref_key:"carouselRef",ref:p,onTouchstart:E,onTouchmove:L,onTouchend:F},[C("div",{class:"carousel-container",style:H({transform:`translateX(${X($)}px)`}),onMousedown:P,onMousemove:U,onMouseup:I,onMouseleave:I},[(v(!0),c(b,null,R(d.items,(s,m)=>(v(),c("div",{class:"carousel-card",key:m,ref_for:!0,ref_key:"cardRefs",ref:f},[z(e.$slots,"content",{item:s,index:m},()=>[C("div",Z,[C("span",null,J(s.title||"请提供自定义内容"),1)])],!0)]))),128))],36),d.showDots&&d.items.length>1?(v(),c("div",ee,[z(e.$slots,"dots",{currentIndex:X(t),items:d.items},()=>[(v(!0),c(b,null,R(X(B),(s,m)=>(v(),c("div",{key:"dot"+m,class:K(["dot",{active:s.isActive}]),onClick:le=>A(m)},null,10,te))),128))],!0)])):G("",!0)],544))}}),se=Y(ae,[["__scopeId","data-v-ba552257"]]);export{se as S};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.