1 line
21 KiB
JavaScript
1 line
21 KiB
JavaScript
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,74665,8204,e=>{"use strict";var t=e.i(27706);let r=(0,t.default)("CircleUser",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]]);e.s(["CircleUser",()=>r],74665);let a=(0,t.default)("CircleUserRound",[["path",{d:"M18 20a6 6 0 0 0-12 0",key:"1qehca"}],["circle",{cx:"12",cy:"10",r:"4",key:"1h16sb"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["CircleUserRound",()=>a],8204)},58051,e=>{"use strict";let t=(0,e.i(27706).default)("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);e.s(["Filter",()=>t],58051)},51389,e=>{"use strict";var t=e.i(36792),r=e.i(34346),a=e.i(82772),l=e.i(92879),s=e.i(69074),n=e.i(77627),i=e.i(9991),o=e.i(10743),d=e.i(30846),c=e.i(29300),u=e.i(58051),m=e.i(41610),h=e.i(3965),f=e.i(59786),x=e.i(76584),p=e.i(74665),g=e.i(8204);function v({imageId:e,fallbackUrl:a,fallbackText:l,gender:s,className:n}){let[i,o]=(0,r.useState)(void 0);return((0,r.useEffect)(()=>{e?x.db.images.get(e).then(e=>{if(e){let t=URL.createObjectURL(e.blob);return o(t),()=>URL.revokeObjectURL(t)}}):o(void 0)},[e]),i)?(0,t.jsxs)(f.Avatar,{className:n,children:[(0,t.jsx)(f.AvatarImage,{src:i}),(0,t.jsx)(f.AvatarFallback,{className:"text-lg font-serif bg-muted",children:l})]}):(0,t.jsx)(f.Avatar,{className:n,children:(0,t.jsx)(f.AvatarFallback,{className:"bg-muted flex items-center justify-center",children:"FEMALE"===s?(0,t.jsx)(g.CircleUserRound,{className:"h-8 w-8 text-pink-400"}):(0,t.jsx)(p.CircleUser,{className:"h-8 w-8 text-blue-400"})})})}var b=e.i(50314),j=e.i(20998),w=e.i(82502),y=e.i(6580),N=e.i(57213),S=e.i(53607),D=e.i(79096),C=e.i(38100),k=e.i(47934),R=e.i(14268),I=e.i(34811),E=["PageUp","PageDown"],P=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],A={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},M="Slider",[L,U,H]=(0,I.createCollection)(M),[z,F]=(0,N.createContextScope)(M,[H]),[_,T]=z(M),V=r.forwardRef((e,a)=>{let{name:l,min:s=0,max:n=100,step:i=1,orientation:o="horizontal",disabled:d=!1,minStepsBetweenThumbs:c=0,defaultValue:u=[s],value:m,onValueChange:h=()=>{},onValueCommit:f=()=>{},inverted:x=!1,form:p,...g}=e,v=r.useRef(new Set),b=r.useRef(0),y="horizontal"===o,[N=[],D]=(0,S.useControllableState)({prop:m,defaultProp:u,onChange:e=>{let t=[...v.current];t[b.current]?.focus(),h(e)}}),C=r.useRef(N);function k(e,t,{commit:r}={commit:!1}){let a,l=(String(i).split(".")[1]||"").length,o=Math.round((Math.round((e-s)/i)*i+s)*(a=Math.pow(10,l)))/a,d=(0,j.clamp)(o,[s,n]);D((e=[])=>{let a=function(e=[],t,r){let a=[...e];return a[r]=t,a.sort((e,t)=>e-t)}(e,d,t);if(!function(e,t){if(t>0)return Math.min(...e.slice(0,-1).map((t,r)=>e[r+1]-t))>=t;return!0}(a,c*i))return e;{b.current=a.indexOf(d);let t=String(a)!==String(e);return t&&r&&f(a),t?a:e}})}return(0,t.jsx)(_,{scope:e.__scopeSlider,name:l,disabled:d,min:s,max:n,valueIndexToChangeRef:b,thumbs:v.current,values:N,orientation:o,form:p,children:(0,t.jsx)(L.Provider,{scope:e.__scopeSlider,children:(0,t.jsx)(L.Slot,{scope:e.__scopeSlider,children:(0,t.jsx)(y?O:B,{"aria-disabled":d,"data-disabled":d?"":void 0,...g,ref:a,onPointerDown:(0,w.composeEventHandlers)(g.onPointerDown,()=>{d||(C.current=N)}),min:s,max:n,inverted:x,onSlideStart:d?void 0:function(e){let t=function(e,t){if(1===e.length)return 0;let r=e.map(e=>Math.abs(e-t)),a=Math.min(...r);return r.indexOf(a)}(N,e);k(e,t)},onSlideMove:d?void 0:function(e){k(e,b.current)},onSlideEnd:d?void 0:function(){let e=C.current[b.current];N[b.current]!==e&&f(N)},onHomeKeyDown:()=>!d&&k(s,0,{commit:!0}),onEndKeyDown:()=>!d&&k(n,N.length-1,{commit:!0}),onStepKeyDown:({event:e,direction:t})=>{if(!d){let r=E.includes(e.key)||e.shiftKey&&P.includes(e.key),a=b.current;k(N[a]+i*(r?10:1)*t,a,{commit:!0})}}})})})})});V.displayName=M;var[$,K]=z(M,{startEdge:"left",endEdge:"right",size:"width",direction:1}),O=r.forwardRef((e,a)=>{let{min:l,max:s,dir:n,inverted:i,onSlideStart:o,onSlideMove:d,onSlideEnd:c,onStepKeyDown:u,...m}=e,[h,f]=r.useState(null),x=(0,y.useComposedRefs)(a,e=>f(e)),p=r.useRef(void 0),g=(0,D.useDirection)(n),v="ltr"===g,b=v&&!i||!v&&i;function j(e){let t=p.current||h.getBoundingClientRect(),r=er([0,t.width],b?[l,s]:[s,l]);return p.current=t,r(e-t.left)}return(0,t.jsx)($,{scope:e.__scopeSlider,startEdge:b?"left":"right",endEdge:b?"right":"left",direction:b?1:-1,size:"width",children:(0,t.jsx)(Y,{dir:g,"data-orientation":"horizontal",...m,ref:x,style:{...m.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:e=>{let t=j(e.clientX);o?.(t)},onSlideMove:e=>{let t=j(e.clientX);d?.(t)},onSlideEnd:()=>{p.current=void 0,c?.()},onStepKeyDown:e=>{let t=A[b?"from-left":"from-right"].includes(e.key);u?.({event:e,direction:t?-1:1})}})})}),B=r.forwardRef((e,a)=>{let{min:l,max:s,inverted:n,onSlideStart:i,onSlideMove:o,onSlideEnd:d,onStepKeyDown:c,...u}=e,m=r.useRef(null),h=(0,y.useComposedRefs)(a,m),f=r.useRef(void 0),x=!n;function p(e){let t=f.current||m.current.getBoundingClientRect(),r=er([0,t.height],x?[s,l]:[l,s]);return f.current=t,r(e-t.top)}return(0,t.jsx)($,{scope:e.__scopeSlider,startEdge:x?"bottom":"top",endEdge:x?"top":"bottom",size:"height",direction:x?1:-1,children:(0,t.jsx)(Y,{"data-orientation":"vertical",...u,ref:h,style:{...u.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:e=>{let t=p(e.clientY);i?.(t)},onSlideMove:e=>{let t=p(e.clientY);o?.(t)},onSlideEnd:()=>{f.current=void 0,d?.()},onStepKeyDown:e=>{let t=A[x?"from-bottom":"from-top"].includes(e.key);c?.({event:e,direction:t?-1:1})}})})}),Y=r.forwardRef((e,r)=>{let{__scopeSlider:a,onSlideStart:l,onSlideMove:s,onSlideEnd:n,onHomeKeyDown:i,onEndKeyDown:o,onStepKeyDown:d,...c}=e,u=T(M,a);return(0,t.jsx)(R.Primitive.span,{...c,ref:r,onKeyDown:(0,w.composeEventHandlers)(e.onKeyDown,e=>{"Home"===e.key?(i(e),e.preventDefault()):"End"===e.key?(o(e),e.preventDefault()):E.concat(P).includes(e.key)&&(d(e),e.preventDefault())}),onPointerDown:(0,w.composeEventHandlers)(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),u.thumbs.has(t)?t.focus():l(e)}),onPointerMove:(0,w.composeEventHandlers)(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&s(e)}),onPointerUp:(0,w.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),n(e))})})}),q="SliderTrack",X=r.forwardRef((e,r)=>{let{__scopeSlider:a,...l}=e,s=T(q,a);return(0,t.jsx)(R.Primitive.span,{"data-disabled":s.disabled?"":void 0,"data-orientation":s.orientation,...l,ref:r})});X.displayName=q;var G="SliderRange",W=r.forwardRef((e,a)=>{let{__scopeSlider:l,...s}=e,n=T(G,l),i=K(G,l),o=r.useRef(null),d=(0,y.useComposedRefs)(a,o),c=n.values.length,u=n.values.map(e=>et(e,n.min,n.max)),m=c>1?Math.min(...u):0,h=100-Math.max(...u);return(0,t.jsx)(R.Primitive.span,{"data-orientation":n.orientation,"data-disabled":n.disabled?"":void 0,...s,ref:d,style:{...e.style,[i.startEdge]:m+"%",[i.endEdge]:h+"%"}})});W.displayName=G;var J="SliderThumb",Q=r.forwardRef((e,a)=>{let l=U(e.__scopeSlider),[s,n]=r.useState(null),i=(0,y.useComposedRefs)(a,e=>n(e)),o=r.useMemo(()=>s?l().findIndex(e=>e.ref.current===s):-1,[l,s]);return(0,t.jsx)(Z,{...e,ref:i,index:o})}),Z=r.forwardRef((e,a)=>{var l,s,n,i,o;let d,c,{__scopeSlider:u,index:m,name:h,...f}=e,x=T(J,u),p=K(J,u),[g,v]=r.useState(null),b=(0,y.useComposedRefs)(a,e=>v(e)),j=!g||x.form||!!g.closest("form"),N=(0,k.useSize)(g),S=x.values[m],D=void 0===S?0:et(S,x.min,x.max),C=(l=m,(s=x.values.length)>2?`Value ${l+1} of ${s}`:2===s?["Minimum","Maximum"][l]:void 0),I=N?.[p.size],E=I?(n=I,i=D,o=p.direction,c=er([0,50],[0,d=n/2]),(d-c(i)*o)*o):0;return r.useEffect(()=>{if(g)return x.thumbs.add(g),()=>{x.thumbs.delete(g)}},[g,x.thumbs]),(0,t.jsxs)("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[p.startEdge]:`calc(${D}% + ${E}px)`},children:[(0,t.jsx)(L.ItemSlot,{scope:e.__scopeSlider,children:(0,t.jsx)(R.Primitive.span,{role:"slider","aria-label":e["aria-label"]||C,"aria-valuemin":x.min,"aria-valuenow":S,"aria-valuemax":x.max,"aria-orientation":x.orientation,"data-orientation":x.orientation,"data-disabled":x.disabled?"":void 0,tabIndex:x.disabled?void 0:0,...f,ref:b,style:void 0===S?{display:"none"}:e.style,onFocus:(0,w.composeEventHandlers)(e.onFocus,()=>{x.valueIndexToChangeRef.current=m})})}),j&&(0,t.jsx)(ee,{name:h??(x.name?x.name+(x.values.length>1?"[]":""):void 0),form:x.form,value:S},m)]})});Q.displayName=J;var ee=e=>{let{value:a,...l}=e,s=r.useRef(null),n=(0,C.usePrevious)(a);return r.useEffect(()=>{let e=s.current,t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set;if(n!==a&&t){let r=new Event("input",{bubbles:!0});t.call(e,a),e.dispatchEvent(r)}},[n,a]),(0,t.jsx)("input",{style:{display:"none"},...l,ref:s,defaultValue:a})};function et(e,t,r){return(0,j.clamp)(100/(r-t)*(e-t),[0,100])}function er(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let a=(t[1]-t[0])/(e[1]-e[0]);return t[0]+a*(r-e[0])}}var ea=e.i(69744);function el({className:e,defaultValue:a,value:l,min:s=0,max:n=100,...i}){let o=r.useMemo(()=>Array.isArray(l)?l:Array.isArray(a)?a:[s,n],[l,a,s,n]);return(0,t.jsxs)(V,{"data-slot":"slider",defaultValue:a,value:l,min:s,max:n,className:(0,ea.cn)("relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",e),...i,children:[(0,t.jsx)(X,{"data-slot":"slider-track",className:"bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5",children:(0,t.jsx)(W,{"data-slot":"slider-range",className:"bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full"})}),Array.from({length:o.length},(e,r)=>(0,t.jsx)(Q,{"data-slot":"slider-thumb",className:"border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"},r))]})}var es=e.i(75985),en=e.i(59210);function ei(e){return"isPlaceholder"in e&&!0===e.isPlaceholder}let eo=(0,r.memo)(function({member:e,allMembers:r,onLocateInTree:a}){let l=e.tags?.includes("始祖"),s=!e.fatherId&&!e.motherId&&e.spouseIds&&e.spouseIds.length>0&&!l,n=s&&e.spouseIds?.[0]?r.find(t=>t.id===e.spouseIds[0]):null,c=n?n.fullName:null;return(0,t.jsxs)("div",{className:"relative group",children:[(0,t.jsx)(h.default,{href:`/members/${e.id}`,children:(0,t.jsx)(o.Card,{className:`hover:border-primary transition-colors cursor-pointer h-full ${s?"bg-pink-50/50 dark:bg-pink-950/20 border-pink-200/50 dark:border-pink-800/30":"bg-blue-50/50 dark:bg-blue-950/20 border-blue-200/50 dark:border-blue-800/30"}`,children:(0,t.jsxs)(o.CardContent,{className:"p-3 flex items-center gap-5",children:[(0,t.jsxs)("div",{className:"relative flex-shrink-0",children:[(0,t.jsx)(v,{imageId:e.avatarImageId,fallbackUrl:e.avatarUrl,fallbackText:e.surname,gender:e.gender,className:"h-20 w-20 border-2 border-border"}),e.deathDate&&(0,t.jsx)("div",{className:"absolute -bottom-1 -right-1 w-4 h-4 rounded-full bg-gray-500 border-2 border-white",title:"已故"}),!e.deathDate&&(0,t.jsx)("div",{className:"absolute -bottom-1 -right-1 w-4 h-4 rounded-full bg-green-500 border-2 border-white",title:"在世"})]}),(0,t.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col justify-center",children:[(0,t.jsx)("div",{className:"flex items-baseline justify-between gap-1.5",children:(0,t.jsxs)("h3",{className:"text-lg font-bold font-serif truncate",children:[e.fullName,e.courtesyName&&(0,t.jsxs)("span",{className:"text-xs font-normal text-muted-foreground ml-1",children:["字 ",e.courtesyName]})]})}),l?(0,t.jsx)("p",{className:"text-xs text-amber-700 font-medium mt-0.5 truncate",children:"家族始祖"}):s&&c?(0,t.jsxs)("p",{className:"text-xs text-purple-700 mt-0.5 truncate",children:[c,"的配偶"]}):(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 truncate",children:e.generationName?`字辈: ${e.generationName}`:"未录入字辈"}),(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2 mt-0.5",children:[(0,t.jsx)("p",{className:"text-xs text-muted-foreground truncate flex-1",children:e.ancestralHome||"籍贯未知"}),(e.birthDate||e.deathDate)&&(0,t.jsxs)("div",{className:"text-xs text-muted-foreground text-right space-y-0.5 flex-shrink-0",children:[(0,t.jsxs)("div",{children:[e.birthDate&&new Date(e.birthDate).getFullYear(),e.deathDate&&` - ${new Date(e.deathDate).getFullYear()}`,!e.deathDate&&e.birthDate&&" - "]}),(()=>{if(!e.birthDate)return null;let r=new Date(e.birthDate).getFullYear(),a=(e.deathDate?new Date(e.deathDate).getFullYear():new Date().getFullYear())-r;return(0,t.jsx)("div",{className:"text-[10px] text-muted-foreground",children:e.deathDate?`享年${a}岁`:`${a}岁`})})()]})]}),e.tags&&e.tags.length>0&&(0,t.jsx)("div",{className:"mt-1.5 flex flex-wrap gap-1",children:e.tags.map(e=>(0,t.jsx)("span",{className:"text-xs bg-primary/10 text-primary px-2 py-0.5 rounded border border-primary/20",children:e},e))})]})]})})}),(0,t.jsx)(i.Button,{size:"sm",variant:"ghost",className:"absolute top-2 right-2 opacity-0 group-hover:opacity-100 transition-opacity h-6 w-6 p-0",onClick:()=>a(e.id),title:"在族谱图中定位",children:(0,t.jsx)(d.Search,{className:"h-3 w-3"})})]})});function ed(){let{treeData:e,currentTree:o,searchMembers:f,setHighlightedMemberId:x}=(0,l.useFamily)(),p=(0,s.useRouter)(),[g,v]=(0,r.useState)(""),[j,w]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=new URLSearchParams(window.location.search).get("search");e&&v(e)},[]);let[y,N]=(0,r.useState)("all"),[S,D]=(0,r.useState)("all"),[C,k]=(0,r.useState)("all"),[R,I]=(0,r.useState)([1,100]),E=(0,r.useMemo)(()=>Object.values(e.members),[e]),{uniqueSurnames:P,uniqueHomes:A,minGen:M,maxGen:L}=(0,r.useMemo)(()=>{let e=new Set,t=new Set,r=1e3,a=0;return E.forEach(l=>{l.surname&&e.add(l.surname),l.ancestralHome&&t.add(l.ancestralHome),l.generation&&(l.generation<r&&(r=l.generation),l.generation>a&&(a=l.generation))}),{uniqueSurnames:Array.from(e).sort(),uniqueHomes:Array.from(t).sort(),minGen:1e3===r?1:r,maxGen:0===a?100:a}},[E]);(0,r.useEffect)(()=>{1e3!==M&&0!==L&&I([M,L])},[M,L]);let U=(0,r.useMemo)(()=>{let e=E;if(g){let t=g.toLowerCase();e=e.filter(e=>e.fullName.toLowerCase().includes(t)||e.courtesyName?.toLowerCase().includes(t)||e.artName?.toLowerCase().includes(t))}return"all"!==y&&(e=e.filter(e=>e.surname===y)),"all"!==S&&(e=e.filter(e=>e.ancestralHome===S)),"all"!==C&&("living"===C?e=e.filter(e=>!e.deathDate):"deceased"===C&&(e=e.filter(e=>!!e.deathDate))),(e=e.filter(e=>e.generation>=R[0]&&e.generation<=R[1])).sort((e,t)=>e.generation-t.generation||(e.birthDate||"").localeCompare(t.birthDate||""))},[E,g,y,S,C,R]),H=(0,r.useMemo)(()=>{let e=new Map;return U.forEach(t=>{let r=t.generation;e.has(r)||e.set(r,[]),e.get(r).push(t)}),Array.from(e.entries()).sort((e,t)=>e[0]-t[0]).map(([e,t])=>{let r=t.filter(t=>{let r=t.tags?.includes("始祖");return!!t.fatherId||!!t.motherId||!!r||1===e&&(!t.spouseIds||0===t.spouseIds.length)}).sort((e,t)=>{let r=e.tags?.includes("始祖"),a=t.tags?.includes("始祖");if(r&&!a)return -1;if(!r&&a)return 1;let l=e.birthDate||"9999-12-31",s=t.birthDate||"9999-12-31";return l.localeCompare(s)}),a=[],l=new Set;r.forEach(e=>{let r=function(e,t,r){let a=[e],l=1;e.spouseIds&&e.spouseIds.length>0&&e.spouseIds.forEach(e=>{let s=t.find(t=>t.id===e);s&&!r.has(e)&&(a.push(s),r.add(e),l++)});let s=(4-l%4)%4;for(let t=0;t<s;t++)a.push({id:`placeholder-${e.id}-${t}`,isPlaceholder:!0});return a}(e,t,l);a.push(...r)});let s=a.filter(e=>!ei(e)).length;return{generation:e,members:a,actualCount:s}})},[U]),z=+("all"!==y)+ +("all"!==S)+ +("all"!==C)+ +(R[0]>1||R[1]<100);return(0,t.jsxs)("div",{className:"min-h-screen bg-background flex flex-col font-sans",children:[(0,t.jsx)(a.SiteHeader,{}),(0,t.jsxs)("main",{className:"container mx-auto py-8 px-4 md:px-6 flex-1 flex flex-col",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-6 mb-8",children:[(0,t.jsxs)("div",{className:"flex flex-col md:flex-row justify-between items-center gap-4",children:[(0,t.jsx)("h1",{className:"text-3xl font-serif font-bold",children:"家族成员列表"}),(0,t.jsxs)("div",{className:"flex items-center gap-2 w-full md:w-auto",children:[(0,t.jsxs)("div",{className:"relative flex-1 md:w-80",children:[(0,t.jsx)(d.Search,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),(0,t.jsx)(n.Input,{type:"search",placeholder:"搜索姓名、字号...",className:"pl-9",value:g,onChange:e=>v(e.target.value)})]}),(0,t.jsxs)(i.Button,{variant:j||z>0?"secondary":"outline",size:"icon",onClick:()=>w(!j),className:"relative",children:[(0,t.jsx)(u.Filter,{className:"h-4 w-4"}),z>0&&(0,t.jsx)("span",{className:"absolute -top-1 -right-1 h-3 w-3 rounded-full bg-primary border-2 border-background"})]}),en.permissions.canCreate(o?.currentUserRole)&&(0,t.jsx)(h.default,{href:"/members/new",children:(0,t.jsxs)(i.Button,{className:"gap-2 bg-primary text-primary-foreground",children:[(0,t.jsx)(c.Plus,{className:"h-4 w-4"}),"新增成员"]})})]})]}),j&&(0,t.jsxs)("div",{className:"bg-muted/30 p-4 rounded-lg border border-border space-y-4 animate-in slide-in-from-top-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("h3",{className:"font-medium text-sm text-muted-foreground",children:"高级筛选"}),(0,t.jsxs)(i.Button,{variant:"ghost",size:"sm",onClick:()=>{N("all"),D("all"),k("all"),I([1,100]),v("")},className:"h-8 text-xs",children:[(0,t.jsx)(m.X,{className:"mr-1 h-3 w-3"})," 重置筛选"]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(es.Label,{className:"text-xs",children:"姓氏 (Surname)"}),(0,t.jsxs)(b.Select,{value:y,onValueChange:N,children:[(0,t.jsx)(b.SelectTrigger,{children:(0,t.jsx)(b.SelectValue,{placeholder:"全部"})}),(0,t.jsxs)(b.SelectContent,{children:[(0,t.jsx)(b.SelectItem,{value:"all",children:"全部 (All)"}),P.map(e=>(0,t.jsx)(b.SelectItem,{value:e,children:e},e))]})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(es.Label,{className:"text-xs",children:"籍贯 (Ancestral Home)"}),(0,t.jsxs)(b.Select,{value:S,onValueChange:D,children:[(0,t.jsx)(b.SelectTrigger,{children:(0,t.jsx)(b.SelectValue,{placeholder:"全部"})}),(0,t.jsxs)(b.SelectContent,{children:[(0,t.jsx)(b.SelectItem,{value:"all",children:"全部 (All)"}),A.map(e=>(0,t.jsx)(b.SelectItem,{value:e,children:e},e))]})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(es.Label,{className:"text-xs",children:"状态 (Status)"}),(0,t.jsxs)(b.Select,{value:C,onValueChange:k,children:[(0,t.jsx)(b.SelectTrigger,{children:(0,t.jsx)(b.SelectValue,{placeholder:"全部"})}),(0,t.jsxs)(b.SelectContent,{children:[(0,t.jsx)(b.SelectItem,{value:"all",children:"全部 (All)"}),(0,t.jsx)(b.SelectItem,{value:"living",children:"在世 (Living)"}),(0,t.jsx)(b.SelectItem,{value:"deceased",children:"已故 (Deceased)"})]})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex justify-between",children:[(0,t.jsx)(es.Label,{className:"text-xs",children:"世系范围 (Generation)"}),(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:[R[0]," - ",R[1]," 世"]})]}),(0,t.jsx)(el,{defaultValue:[1,100],value:R,min:1,max:100,step:1,onValueChange:e=>I(e),className:"py-4"})]})]})]})]}),0===U.length?(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,t.jsxs)("div",{className:"text-center space-y-4",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 text-primary/80",children:(0,t.jsx)(d.Search,{className:"h-16 w-16",strokeWidth:1})}),(0,t.jsx)("p",{className:"text-base text-foreground font-light tracking-wide",children:"未寻得"})]})}):(0,t.jsx)("div",{className:"space-y-8",children:H.map(({generation:e,members:r,actualCount:a})=>(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,t.jsxs)("h2",{className:"text-xl font-serif font-bold text-foreground",children:["第 ",e," 世"]}),(0,t.jsxs)("span",{className:"text-sm text-muted-foreground",children:["共 ",a," 人"]}),(0,t.jsx)("div",{className:"flex-1 h-px bg-border"})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:r.map(e=>ei(e)?(0,t.jsx)("div",{className:"invisible"},e.id):(0,t.jsx)(eo,{member:e,allMembers:E,onLocateInTree:e=>{x(e),p.push("/tree")}},e.id))})]},e))})]})]})}e.s(["default",()=>ed],51389)}]); |