1 line
46 KiB
JavaScript
1 line
46 KiB
JavaScript
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,90405,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},53996,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return s},searchParamsToUrlQuery:function(){return a},urlQueryToSearchParams:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function a(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function l(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,l(e));else t.set(r,l(n));return t}function s(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},55020,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return i},formatWithValidation:function(){return c},urlObjectKeys:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(88835)._(e.r(53996)),l=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",i=e.hash||"",s=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),s&&"object"==typeof s&&(s=String(a.urlQueryToSearchParams(s)));let d=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||l.test(n))&&!1!==c?(c="//"+(c||""),o&&"/"!==o[0]&&(o="/"+o)):c||(c=""),i&&"#"!==i[0]&&(i="#"+i),d&&"?"!==d[0]&&(d="?"+d),o=o.replace(/[?#]/g,encodeURIComponent),d=d.replace("#","%23"),`${n}${c}${o}${d}${i}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return i(e)}},45707,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(34346);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=a(e,n)),t&&(o.current=a(t,n))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},70715,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return g},MiddlewareNotFoundError:function(){return j},MissingStaticPage:function(){return y},NormalizeError:function(){return x},PageNotFoundError:function(){return v},SP:function(){return h},ST:function(){return b},WEB_VITALS:function(){return a},execOnce:function(){return l},getDisplayName:function(){return u},getLocationOrigin:function(){return c},getURL:function(){return d},isAbsoluteUrl:function(){return s},isResSent:function(){return f},loadGetInitialProps:function(){return m},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return w}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=["CLS","FCP","FID","INP","LCP","TTFB"];function l(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,s=e=>i.test(e);function c(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function d(){let{href:e}=window.location,t=c();return e.substring(t.length)}function u(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function m(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await m(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${u(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let h="undefined"!=typeof performance,b=h&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class g extends Error{}class x extends Error{}class v extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class y extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class j extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function w(e){return JSON.stringify({message:e.message,stack:e.stack})}},17485,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return a}});let n=e.r(70715),o=e.r(57352);function a(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},85893,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},3965,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return g},useLinkStatus:function(){return v}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(88835),l=e.r(36792),i=a._(e.r(34346)),s=e.r(55020),c=e.r(12569),d=e.r(45707),u=e.r(70715),f=e.r(19664);e.r(90405);let p=e.r(44164),m=e.r(17485),h=e.r(36283);function b(e){return"string"==typeof e?e:(0,s.formatUrl)(e)}function g(t){var r;let n,o,a,[s,g]=(0,i.useOptimistic)(p.IDLE_LINK_STATUS),v=(0,i.useRef)(null),{href:y,as:j,children:w,prefetch:N=null,passHref:C,replace:S,shallow:P,scroll:E,onClick:R,onMouseEnter:T,onTouchStart:_,legacyBehavior:k=!1,onNavigate:O,ref:L,unstable_dynamicOnHover:M,...D}=t;n=w,k&&("string"==typeof n||"number"==typeof n)&&(n=(0,l.jsx)("a",{children:n}));let I=i.default.useContext(c.AppRouterContext),A=!1!==N,z=!1!==N?null===(r=N)||"auto"===r?h.FetchStrategy.PPR:h.FetchStrategy.Full:h.FetchStrategy.PPR,{href:H,as:$}=i.default.useMemo(()=>{let e=b(y);return{href:e,as:j?b(j):e}},[y,j]);if(k){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=i.default.Children.only(n)}let U=k?o&&"object"==typeof o&&o.ref:L,F=i.default.useCallback(e=>(null!==I&&(v.current=(0,p.mountLinkInstance)(e,H,I,z,A,g)),()=>{v.current&&((0,p.unmountLinkForCurrentNavigation)(v.current),v.current=null),(0,p.unmountPrefetchableInstance)(e)}),[A,H,I,z,g]),W={ref:(0,d.useMergedRef)(F,U),onClick(t){k||"function"!=typeof R||R(t),k&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!I||t.defaultPrevented||function(t,r,n,o,a,l,s){if("undefined"!=typeof window){let c,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){a&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),s){let e=!1;if(s({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:u}=e.r(35686);i.default.startTransition(()=>{u(n||r,a?"replace":"push",l??!0,o.current)})}}(t,H,$,v,S,E,O)},onMouseEnter(e){k||"function"!=typeof T||T(e),k&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),I&&A&&(0,p.onNavigationIntent)(e.currentTarget,!0===M)},onTouchStart:function(e){k||"function"!=typeof _||_(e),k&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),I&&A&&(0,p.onNavigationIntent)(e.currentTarget,!0===M)}};return(0,u.isAbsoluteUrl)($)?W.href=$:k&&!C&&("a"!==o.type||"href"in o.props)||(W.href=(0,f.addBasePath)($)),a=k?i.default.cloneElement(o,W):(0,l.jsx)("a",{...D,...W,children:n}),(0,l.jsx)(x.Provider,{value:s,children:a})}e.r(85893);let x=(0,i.createContext)(p.IDLE_LINK_STATUS),v=()=>(0,i.useContext)(x);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},27458,e=>{"use strict";let t=(0,e.i(27706).default)("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);e.s(["BookOpen",()=>t],27458)},20998,e=>{"use strict";function t(e,[t,r]){return Math.min(r,Math.max(t,e))}e.s(["clamp",()=>t])},91258,49326,e=>{"use strict";let t=(0,e.i(27706).default)("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);e.s(["default",()=>t],49326),e.s(["Calendar",()=>t],91258)},43840,e=>{"use strict";var t=e.i(36792),r=e.i(34346),n=e.i(14268),o=e.i(19594),a=e.i(57213),l=e.i(6580),i=e.i(60515),s=e.i(79096),c=e.i(42668),d=e.i(20998),u=e.i(82502),f="ScrollArea",[p,m]=(0,a.createContextScope)(f),[h,b]=p(f),g=r.forwardRef((e,o)=>{let{__scopeScrollArea:a,type:i="hover",dir:c,scrollHideDelay:d=600,...u}=e,[f,p]=r.useState(null),[m,b]=r.useState(null),[g,x]=r.useState(null),[v,y]=r.useState(null),[j,w]=r.useState(null),[N,C]=r.useState(0),[S,P]=r.useState(0),[E,R]=r.useState(!1),[T,_]=r.useState(!1),k=(0,l.useComposedRefs)(o,e=>p(e)),O=(0,s.useDirection)(c);return(0,t.jsx)(h,{scope:a,type:i,dir:O,scrollHideDelay:d,scrollArea:f,viewport:m,onViewportChange:b,content:g,onContentChange:x,scrollbarX:v,onScrollbarXChange:y,scrollbarXEnabled:E,onScrollbarXEnabledChange:R,scrollbarY:j,onScrollbarYChange:w,scrollbarYEnabled:T,onScrollbarYEnabledChange:_,onCornerWidthChange:C,onCornerHeightChange:P,children:(0,t.jsx)(n.Primitive.div,{dir:O,...u,ref:k,style:{position:"relative","--radix-scroll-area-corner-width":N+"px","--radix-scroll-area-corner-height":S+"px",...e.style}})})});g.displayName=f;var x="ScrollAreaViewport",v=r.forwardRef((e,o)=>{let{__scopeScrollArea:a,children:i,nonce:s,...c}=e,d=b(x,a),u=r.useRef(null),f=(0,l.useComposedRefs)(o,u,d.onViewportChange);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:s}),(0,t.jsx)(n.Primitive.div,{"data-radix-scroll-area-viewport":"",...c,ref:f,style:{overflowX:d.scrollbarXEnabled?"scroll":"hidden",overflowY:d.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,t.jsx)("div",{ref:d.onContentChange,style:{minWidth:"100%",display:"table"},children:i})})]})});v.displayName=x;var y="ScrollAreaScrollbar",j=r.forwardRef((e,n)=>{let{forceMount:o,...a}=e,l=b(y,e.__scopeScrollArea),{onScrollbarXEnabledChange:i,onScrollbarYEnabledChange:s}=l,c="horizontal"===e.orientation;return r.useEffect(()=>(c?i(!0):s(!0),()=>{c?i(!1):s(!1)}),[c,i,s]),"hover"===l.type?(0,t.jsx)(w,{...a,ref:n,forceMount:o}):"scroll"===l.type?(0,t.jsx)(N,{...a,ref:n,forceMount:o}):"auto"===l.type?(0,t.jsx)(C,{...a,ref:n,forceMount:o}):"always"===l.type?(0,t.jsx)(S,{...a,ref:n}):null});j.displayName=y;var w=r.forwardRef((e,n)=>{let{forceMount:a,...l}=e,i=b(y,e.__scopeScrollArea),[s,c]=r.useState(!1);return r.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let r=()=>{window.clearTimeout(t),c(!0)},n=()=>{t=window.setTimeout(()=>c(!1),i.scrollHideDelay)};return e.addEventListener("pointerenter",r),e.addEventListener("pointerleave",n),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",r),e.removeEventListener("pointerleave",n)}}},[i.scrollArea,i.scrollHideDelay]),(0,t.jsx)(o.Presence,{present:a||s,children:(0,t.jsx)(C,{"data-state":s?"visible":"hidden",...l,ref:n})})}),N=r.forwardRef((e,n)=>{var a;let{forceMount:l,...i}=e,s=b(y,e.__scopeScrollArea),c="horizontal"===e.orientation,d=W(()=>p("SCROLL_END"),100),[f,p]=(a={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},r.useReducer((e,t)=>a[e][t]??e,"hidden"));return r.useEffect(()=>{if("idle"===f){let e=window.setTimeout(()=>p("HIDE"),s.scrollHideDelay);return()=>window.clearTimeout(e)}},[f,s.scrollHideDelay,p]),r.useEffect(()=>{let e=s.viewport,t=c?"scrollLeft":"scrollTop";if(e){let r=e[t],n=()=>{let n=e[t];r!==n&&(p("SCROLL"),d()),r=n};return e.addEventListener("scroll",n),()=>e.removeEventListener("scroll",n)}},[s.viewport,c,p,d]),(0,t.jsx)(o.Presence,{present:l||"hidden"!==f,children:(0,t.jsx)(S,{"data-state":"hidden"===f?"hidden":"visible",...i,ref:n,onPointerEnter:(0,u.composeEventHandlers)(e.onPointerEnter,()=>p("POINTER_ENTER")),onPointerLeave:(0,u.composeEventHandlers)(e.onPointerLeave,()=>p("POINTER_LEAVE"))})})}),C=r.forwardRef((e,n)=>{let a=b(y,e.__scopeScrollArea),{forceMount:l,...i}=e,[s,c]=r.useState(!1),d="horizontal"===e.orientation,u=W(()=>{if(a.viewport){let e=a.viewport.offsetWidth<a.viewport.scrollWidth,t=a.viewport.offsetHeight<a.viewport.scrollHeight;c(d?e:t)}},10);return B(a.viewport,u),B(a.content,u),(0,t.jsx)(o.Presence,{present:l||s,children:(0,t.jsx)(S,{"data-state":s?"visible":"hidden",...i,ref:n})})}),S=r.forwardRef((e,n)=>{let{orientation:o="vertical",...a}=e,l=b(y,e.__scopeScrollArea),i=r.useRef(null),s=r.useRef(0),[c,d]=r.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=z(c.viewport,c.content),f={...a,sizes:c,onSizesChange:d,hasThumb:!!(u>0&&u<1),onThumbChange:e=>i.current=e,onThumbPointerUp:()=>s.current=0,onThumbPointerDown:e=>s.current=e};function p(e,t){return function(e,t,r,n="ltr"){let o=H(r),a=t||o/2,l=r.scrollbar.paddingStart+a,i=r.scrollbar.size-r.scrollbar.paddingEnd-(o-a),s=r.content-r.viewport;return U([l,i],"ltr"===n?[0,s]:[-1*s,0])(e)}(e,s.current,c,t)}return"horizontal"===o?(0,t.jsx)(P,{...f,ref:n,onThumbPositionChange:()=>{if(l.viewport&&i.current){let e=$(l.viewport.scrollLeft,c,l.dir);i.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{l.viewport&&(l.viewport.scrollLeft=e)},onDragScroll:e=>{l.viewport&&(l.viewport.scrollLeft=p(e,l.dir))}}):"vertical"===o?(0,t.jsx)(E,{...f,ref:n,onThumbPositionChange:()=>{if(l.viewport&&i.current){let e=$(l.viewport.scrollTop,c);i.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{l.viewport&&(l.viewport.scrollTop=e)},onDragScroll:e=>{l.viewport&&(l.viewport.scrollTop=p(e))}}):null}),P=r.forwardRef((e,n)=>{let{sizes:o,onSizesChange:a,...i}=e,s=b(y,e.__scopeScrollArea),[c,d]=r.useState(),u=r.useRef(null),f=(0,l.useComposedRefs)(n,u,s.onScrollbarXChange);return r.useEffect(()=>{u.current&&d(getComputedStyle(u.current))},[u]),(0,t.jsx)(_,{"data-orientation":"horizontal",...i,ref:f,sizes:o,style:{bottom:0,left:"rtl"===s.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===s.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":H(o)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,r)=>{if(s.viewport){var n,o;let a=s.viewport.scrollLeft+t.deltaX;e.onWheelScroll(a),n=a,o=r,n>0&&n<o&&t.preventDefault()}},onResize:()=>{u.current&&s.viewport&&c&&a({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:u.current.clientWidth,paddingStart:A(c.paddingLeft),paddingEnd:A(c.paddingRight)}})}})}),E=r.forwardRef((e,n)=>{let{sizes:o,onSizesChange:a,...i}=e,s=b(y,e.__scopeScrollArea),[c,d]=r.useState(),u=r.useRef(null),f=(0,l.useComposedRefs)(n,u,s.onScrollbarYChange);return r.useEffect(()=>{u.current&&d(getComputedStyle(u.current))},[u]),(0,t.jsx)(_,{"data-orientation":"vertical",...i,ref:f,sizes:o,style:{top:0,right:"ltr"===s.dir?0:void 0,left:"rtl"===s.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":H(o)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,r)=>{if(s.viewport){var n,o;let a=s.viewport.scrollTop+t.deltaY;e.onWheelScroll(a),n=a,o=r,n>0&&n<o&&t.preventDefault()}},onResize:()=>{u.current&&s.viewport&&c&&a({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:u.current.clientHeight,paddingStart:A(c.paddingTop),paddingEnd:A(c.paddingBottom)}})}})}),[R,T]=p(y),_=r.forwardRef((e,o)=>{let{__scopeScrollArea:a,sizes:s,hasThumb:c,onThumbChange:d,onThumbPointerUp:f,onThumbPointerDown:p,onThumbPositionChange:m,onDragScroll:h,onWheelScroll:g,onResize:x,...v}=e,j=b(y,a),[w,N]=r.useState(null),C=(0,l.useComposedRefs)(o,e=>N(e)),S=r.useRef(null),P=r.useRef(""),E=j.viewport,T=s.content-s.viewport,_=(0,i.useCallbackRef)(g),k=(0,i.useCallbackRef)(m),O=W(x,10);function L(e){S.current&&h({x:e.clientX-S.current.left,y:e.clientY-S.current.top})}return r.useEffect(()=>{let e=e=>{let t=e.target;w?.contains(t)&&_(e,T)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[E,w,T,_]),r.useEffect(k,[s,k]),B(w,O),B(j.content,O),(0,t.jsx)(R,{scope:a,scrollbar:w,hasThumb:c,onThumbChange:(0,i.useCallbackRef)(d),onThumbPointerUp:(0,i.useCallbackRef)(f),onThumbPositionChange:k,onThumbPointerDown:(0,i.useCallbackRef)(p),children:(0,t.jsx)(n.Primitive.div,{...v,ref:C,style:{position:"absolute",...v.style},onPointerDown:(0,u.composeEventHandlers)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),S.current=w.getBoundingClientRect(),P.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",j.viewport&&(j.viewport.style.scrollBehavior="auto"),L(e))}),onPointerMove:(0,u.composeEventHandlers)(e.onPointerMove,L),onPointerUp:(0,u.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=P.current,j.viewport&&(j.viewport.style.scrollBehavior=""),S.current=null})})})}),k="ScrollAreaThumb",O=r.forwardRef((e,r)=>{let{forceMount:n,...a}=e,l=T(k,e.__scopeScrollArea);return(0,t.jsx)(o.Presence,{present:n||l.hasThumb,children:(0,t.jsx)(L,{ref:r,...a})})}),L=r.forwardRef((e,o)=>{let{__scopeScrollArea:a,style:i,...s}=e,c=b(k,a),d=T(k,a),{onThumbPositionChange:f}=d,p=(0,l.useComposedRefs)(o,e=>d.onThumbChange(e)),m=r.useRef(void 0),h=W(()=>{m.current&&(m.current(),m.current=void 0)},100);return r.useEffect(()=>{let e=c.viewport;if(e){let t=()=>{h(),m.current||(m.current=F(e,f),f())};return f(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}},[c.viewport,h,f]),(0,t.jsx)(n.Primitive.div,{"data-state":d.hasThumb?"visible":"hidden",...s,ref:p,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...i},onPointerDownCapture:(0,u.composeEventHandlers)(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),r=e.clientX-t.left,n=e.clientY-t.top;d.onThumbPointerDown({x:r,y:n})}),onPointerUp:(0,u.composeEventHandlers)(e.onPointerUp,d.onThumbPointerUp)})});O.displayName=k;var M="ScrollAreaCorner",D=r.forwardRef((e,r)=>{let n=b(M,e.__scopeScrollArea),o=!!(n.scrollbarX&&n.scrollbarY);return"scroll"!==n.type&&o?(0,t.jsx)(I,{...e,ref:r}):null});D.displayName=M;var I=r.forwardRef((e,o)=>{let{__scopeScrollArea:a,...l}=e,i=b(M,a),[s,c]=r.useState(0),[d,u]=r.useState(0),f=!!(s&&d);return B(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),u(e)}),B(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),c(e)}),f?(0,t.jsx)(n.Primitive.div,{...l,ref:o,style:{width:s,height:d,position:"absolute",right:"ltr"===i.dir?0:void 0,left:"rtl"===i.dir?0:void 0,bottom:0,...e.style}}):null});function A(e){return e?parseInt(e,10):0}function z(e,t){let r=e/t;return isNaN(r)?0:r}function H(e){let t=z(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-r)*t,18)}function $(e,t,r="ltr"){let n=H(t),o=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-o,l=t.content-t.viewport,i=(0,d.clamp)(e,"ltr"===r?[0,l]:[-1*l,0]);return U([0,l],[0,a-n])(i)}function U(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(r-e[0])}}var F=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return!function o(){let a={left:e.scrollLeft,top:e.scrollTop},l=r.left!==a.left,i=r.top!==a.top;(l||i)&&t(),r=a,n=window.requestAnimationFrame(o)}(),()=>window.cancelAnimationFrame(n)};function W(e,t){let n=(0,i.useCallbackRef)(e),o=r.useRef(0);return r.useEffect(()=>()=>window.clearTimeout(o.current),[]),r.useCallback(()=>{window.clearTimeout(o.current),o.current=window.setTimeout(n,t)},[n,t])}function B(e,t){let r=(0,i.useCallbackRef)(t);(0,c.useLayoutEffect)(()=>{let t=0;if(e){let n=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(r)});return n.observe(e),()=>{window.cancelAnimationFrame(t),n.unobserve(e)}}},[e,r])}var X=e.i(69744);function V({className:e,children:r,...n}){return(0,t.jsxs)(g,{"data-slot":"scroll-area",className:(0,X.cn)("relative",e),...n,children:[(0,t.jsx)(v,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:r}),(0,t.jsx)(K,{}),(0,t.jsx)(D,{})]})}function K({className:e,orientation:r="vertical",...n}){return(0,t.jsx)(j,{"data-slot":"scroll-area-scrollbar",orientation:r,className:(0,X.cn)("flex touch-none p-px transition-colors select-none","vertical"===r&&"h-full w-2.5 border-l border-l-transparent","horizontal"===r&&"h-2.5 flex-col border-t border-t-transparent",e),...n,children:(0,t.jsx)(O,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}e.s(["ScrollArea",()=>V],43840)},33483,e=>{"use strict";var t=e.i(36792),r=e.i(34346),n=e.i(82502),o=e.i(57213),a=e.i(88434),l=e.i(19594),i=e.i(14268),s=e.i(79096),c=e.i(53607),d=e.i(21471),u="Tabs",[f,p]=(0,o.createContextScope)(u,[a.createRovingFocusGroupScope]),m=(0,a.createRovingFocusGroupScope)(),[h,b]=f(u),g=r.forwardRef((e,r)=>{let{__scopeTabs:n,value:o,onValueChange:a,defaultValue:l,orientation:u="horizontal",dir:f,activationMode:p="automatic",...m}=e,b=(0,s.useDirection)(f),[g,x]=(0,c.useControllableState)({prop:o,onChange:a,defaultProp:l});return(0,t.jsx)(h,{scope:n,baseId:(0,d.useId)(),value:g,onValueChange:x,orientation:u,dir:b,activationMode:p,children:(0,t.jsx)(i.Primitive.div,{dir:b,"data-orientation":u,...m,ref:r})})});g.displayName=u;var x="TabsList",v=r.forwardRef((e,r)=>{let{__scopeTabs:n,loop:o=!0,...l}=e,s=b(x,n),c=m(n);return(0,t.jsx)(a.Root,{asChild:!0,...c,orientation:s.orientation,dir:s.dir,loop:o,children:(0,t.jsx)(i.Primitive.div,{role:"tablist","aria-orientation":s.orientation,...l,ref:r})})});v.displayName=x;var y="TabsTrigger",j=r.forwardRef((e,r)=>{let{__scopeTabs:o,value:l,disabled:s=!1,...c}=e,d=b(y,o),u=m(o),f=C(d.baseId,l),p=S(d.baseId,l),h=l===d.value;return(0,t.jsx)(a.Item,{asChild:!0,...u,focusable:!s,active:h,children:(0,t.jsx)(i.Primitive.button,{type:"button",role:"tab","aria-selected":h,"aria-controls":p,"data-state":h?"active":"inactive","data-disabled":s?"":void 0,disabled:s,id:f,...c,ref:r,onMouseDown:(0,n.composeEventHandlers)(e.onMouseDown,e=>{s||0!==e.button||!1!==e.ctrlKey?e.preventDefault():d.onValueChange(l)}),onKeyDown:(0,n.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&d.onValueChange(l)}),onFocus:(0,n.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==d.activationMode;h||s||!e||d.onValueChange(l)})})})});j.displayName=y;var w="TabsContent",N=r.forwardRef((e,n)=>{let{__scopeTabs:o,value:a,forceMount:s,children:c,...d}=e,u=b(w,o),f=C(u.baseId,a),p=S(u.baseId,a),m=a===u.value,h=r.useRef(m);return r.useEffect(()=>{let e=requestAnimationFrame(()=>h.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)(l.Presence,{present:s||m,children:({present:r})=>(0,t.jsx)(i.Primitive.div,{"data-state":m?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":f,hidden:!r,id:p,tabIndex:0,...d,ref:n,style:{...e.style,animationDuration:h.current?"0s":void 0},children:r&&c})})});function C(e,t){return`${e}-trigger-${t}`}function S(e,t){return`${e}-content-${t}`}N.displayName=w;var P=e.i(69744);function E({className:e,...r}){return(0,t.jsx)(g,{"data-slot":"tabs",className:(0,P.cn)("flex flex-col gap-2",e),...r})}function R({className:e,...r}){return(0,t.jsx)(v,{"data-slot":"tabs-list",className:(0,P.cn)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",e),...r})}function T({className:e,...r}){return(0,t.jsx)(j,{"data-slot":"tabs-trigger",className:(0,P.cn)("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...r})}function _({className:e,...r}){return(0,t.jsx)(N,{"data-slot":"tabs-content",className:(0,P.cn)("flex-1 outline-none",e),...r})}e.s(["Tabs",()=>E,"TabsContent",()=>_,"TabsList",()=>R,"TabsTrigger",()=>T],33483)},49954,e=>{"use strict";let t=(0,e.i(27706).default)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);e.s(["Clock",()=>t],49954)},90288,e=>{"use strict";let t=(0,e.i(27706).default)("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",()=>t],90288)},41385,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return o}});let n=e.r(91162);function o({reason:e,children:t}){if("undefined"==typeof window)throw Object.defineProperty(new n.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},6198,(e,t,r)=>{"use strict";function n(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return n}})},1573,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return i}});let n=e.r(36792),o=e.r(76124),a=e.r(73564),l=e.r(6198);function i({moduleIds:e}){if("undefined"!=typeof window)return null;let t=a.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let n=t.reactLoadableManifest;for(let t of e){if(!n[t])continue;let e=n[t].files;r.push(...e)}}return 0===r.length?null:(0,n.jsx)(n.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,l.encodeURIPath)(e)}`;return e.endsWith(".css")?(0,n.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,o.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},30651,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return c}});let n=e.r(36792),o=e.r(34346),a=e.r(41385),l=e.r(1573);function i(e){return{default:e&&"default"in e?e.default:e}}let s={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},c=function(e){let t={...s,...e},r=(0,o.lazy)(()=>t.loader().then(i)),c=t.loading;function d(e){let i=c?(0,n.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,s=!t.ssr||!!t.loading,d=s?o.Suspense:o.Fragment,u=t.ssr?(0,n.jsxs)(n.Fragment,{children:["undefined"==typeof window?(0,n.jsx)(l.PreloadChunks,{moduleIds:t.modules}):null,(0,n.jsx)(r,{...e})]}):(0,n.jsx)(a.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(r,{...e})});return(0,n.jsx)(d,{...s?{fallback:i}:{},children:u})}return d.displayName="LoadableComponent",d}},6500,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let n=e.r(33334)._(e.r(30651));function o(e,t){let r={};"function"==typeof e&&(r.loader=e);let o={...r,...t};return(0,n.default)({...o,modules:o.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},10960,e=>{"use strict";var t=e.i(36792),r=e.i(82772),n=e.i(92879),o=e.i(33483),a=e.i(10743),l=e.i(43840),i=e.i(49954);let s=(0,e.i(27706).default)("Map",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]);var c=e.i(90288),d=e.i(91258),u=e.i(6500),f=e.i(34346);e.i(75246);var p=e.i(12908);let m=(0,u.default)(()=>e.A(63544),{loadableGenerated:{modules:[40258]},ssr:!1}),h={type:"FeatureCollection",features:[{type:"Feature",properties:{name:"中国"},geometry:{type:"MultiPolygon",coordinates:[[[[134.5,48.5],[135,47],[134,45],[133,43],[131,42],[130,43],[129,44],[128,45],[127,46],[126,47],[125,48],[124,49],[123.5,50],[123,51],[122.5,52],[122,53],[121,53.5],[120,53.3],[119,53],[118.5,52],[119,51],[119.5,50],[120,49],[121,48],[122,47],[123,46],[124,45],[125,44],[126,43],[127,42.5],[128,42],[129,41.5],[130,41],[130,40],[129,39],[128,38.5],[127,38],[126,37.5],[125,37],[124,36.5],[123,36],[122.5,35.5],[122,35],[121.5,34.5],[121,34],[120.5,33.5],[120,33],[119.5,32.5],[119.5,32],[120,31.5],[120.5,31],[121,30.5],[121.5,30],[122,29.5],[122,29],[121.5,28.5],[121,28],[120.5,27.5],[120,27],[119.5,26.5],[119,26],[118.5,25.5],[118,25],[117.5,24.5],[117,24],[116.5,23.5],[116,23],[115.5,22.5],[115,22],[114,21.8],[113,21.5],[112,21.3],[111,21.2],[110.5,21],[110,20.5],[109.5,20],[109,20.5],[108.5,21],[108,21.5],[107.5,22],[107,22.5],[106.5,23],[106,23.5],[105.5,24],[105,24.5],[104.5,25],[104,25.5],[103.5,26],[103,26.5],[102.5,27],[102,27.5],[101.5,28],[101,28.5],[100.5,29],[100,29.5],[99.5,30],[99,30.5],[98.5,31],[98,31.5],[97.5,32],[97,32.5],[96.5,33],[96,33.5],[95.5,34],[95,34.5],[94.5,35],[94,35.5],[93.5,36],[93,36.5],[92.5,37],[92,37.5],[91.5,38],[91,38.5],[90.5,39],[90,39.5],[89.5,40],[89,40.5],[88.5,41],[88,41.5],[87.5,42],[87,42.5],[86.5,43],[86,43.5],[85.5,44],[85,44.5],[84.5,45],[84,45.5],[83.5,46],[83,46.5],[82.5,47],[82,47.5],[81.5,48],[81,48.5],[80.5,49],[80,49.5],[79.5,49.5],[79,49.3],[78.5,49],[78,48.5],[77.5,48],[77,47.5],[76.5,47],[76,46.5],[75.5,46],[75,45.5],[74.5,45],[74,44.5],[73.5,44],[73.5,43.5],[74,43],[74.5,42.5],[75,42],[75.5,41.5],[76,41],[76.5,40.5],[77,40],[77.5,39.5],[78,39],[78.5,38.5],[79,38.5],[79.5,39],[80,39.5],[80.5,40],[81,40.5],[81.5,41],[82,41.5],[82.5,42],[83,42.5],[83.5,43],[84,43.5],[84.5,44],[85,44.5],[85.5,45],[86,45.5],[86.5,46],[87,46.5],[87.5,47],[88,47.5],[88.5,48],[89,48.5],[89.5,49],[90,49.5],[90.5,50],[91,50.5],[91.5,51],[92,51.5],[92.5,52],[93,52.5],[93.5,53],[94,53],[95,52.8],[96,52.5],[97,52.2],[98,52],[99,51.8],[100,51.5],[101,51.2],[102,51],[103,50.8],[104,50.5],[105,50.2],[106,50],[107,49.8],[108,49.5],[109,49.3],[110,49.2],[111,49.1],[112,49],[113,48.9],[114,48.8],[115,48.7],[116,48.6],[117,48.5],[118,48.5],[119,48.5],[120,48.6],[121,48.7],[122,48.8],[123,48.9],[124,49],[125,49.1],[126,49.2],[127,49.3],[128,49.4],[129,49.5],[130,49.5],[131,49.4],[132,49.2],[133,49],[134,48.8],[134.5,48.5]]],[[[108.6,18.5],[109.5,18.3],[110.5,18.5],[111,19],[111,19.5],[110.5,20],[109.5,20.2],[108.6,20],[108.2,19.5],[108.6,18.5]]],[[[120,22],[120.5,21.9],[121,22],[121.5,22.5],[122,23],[122,23.5],[122,24],[121.8,24.5],[121.5,25],[121,25.2],[120.5,25.1],[120.2,24.8],[120,24.5],[120,24],[120,23.5],[120,23],[120,22.5],[120,22]]]]}}]},b={北京:[116.46,39.92],上海:[121.48,31.22],广州:[113.23,23.16],深圳:[114.07,22.62],成都:[104.06,30.67],杭州:[120.19,30.26],重庆:[106.55,29.56],西安:[108.95,34.27],苏州:[120.62,31.32],武汉:[114.31,30.52],南京:[118.78,32.04],天津:[117.2,39.13],郑州:[113.65,34.76],长沙:[112.94,28.23],东莞:[113.75,23.05],沈阳:[123.43,41.8],青岛:[120.38,36.07],合肥:[117.27,31.86],佛山:[113.12,23.02],昆明:[102.73,25.04],福州:[119.3,26.08],无锡:[120.29,31.57],厦门:[118.1,24.46],���尔滨:[126.63,45.75],长春:[125.35,43.88],南昌:[115.89,28.68],济南:[117.12,36.65],宁波:[121.55,29.87],大连:[121.62,38.91],贵阳:[106.71,26.57],温州:[120.67,28],石家庄:[114.52,38.05],泉州:[118.58,24.93],南宁:[108.33,22.84],金华:[119.65,29.08],常州:[119.95,31.79],珠海:[113.52,22.3],惠州:[114.42,23.09],嘉兴:[120.76,30.77],南通:[120.86,32.01],中山:[113.38,22.52],保定:[115.48,38.85],太原:[112.55,37.87],兰州:[103.79,36.06],台州:[121.43,28.66],乌鲁木齐:[87.68,43.77],绍兴:[120.58,30.03],廊坊:[116.7,39.54],洛阳:[112.45,34.62],威海:[122.12,37.52],盐城:[120.13,33.38],临沂:[118.35,35.05],江门:[113.08,22.61],汕头:[116.69,23.39],泰州:[119.9,32.49],漳州:[117.65,24.52],邯郸:[114.47,36.6],济宁:[116.59,35.38],芜湖:[118.38,31.33],淄博:[118.05,36.78],银川:[106.27,38.47],柳州:[109.4,24.33],绵阳:[104.73,31.48],湖州:[120.1,30.86],衡阳:[112.61,26.89],莆田:[119.01,25.43],宜昌:[111.29,30.7],桂林:[110.28,25.29],三亚:[109.51,18.25],遵义:[106.93,27.71],咸阳:[108.71,34.33],上饶:[117.97,28.45],莱芜:[117.68,36.21],赣州:[114.94,25.85],揭阳:[116.35,23.55],扬州:[119.42,32.39],菏泽:[115.47,35.23],徐州:[117.2,34.26],肇庆:[112.47,23.05],海口:[110.33,20.02],拉萨:[91.13,29.66],呼和浩特:[111.75,40.84],包头:[109.84,40.66],南阳:[112.53,33],鞍山:[122.99,41.12],九江:[115.99,29.71],大庆:[125.11,46.59],平顶山:[113.31,33.74],抚顺:[123.92,41.88],秦皇岛:[119.57,39.95],株洲:[113.15,27.83],齐齐哈尔:[123.95,47.33]};function g(){let{treeData:e,getMember:u,isLoading:g}=(0,n.useFamily)(),x=Object.values(e.members),[v,y]=(0,f.useState)(!1);(0,f.useEffect)(()=>{fetch("/china.json").then(e=>e.json()).then(e=>{p.registerMap("china",e),y(!0)}).catch(e=>{console.error("Failed to load China map:",e),p.registerMap("china",h),y(!0)})},[]);let j=(0,f.useMemo)(()=>x.flatMap(e=>{let t=[];return e.birthDate&&t.push({date:e.birthDate,year:Number.parseInt(e.birthDate.substring(0,4)),type:"birth",member:e}),e.deathDate&&t.push({date:e.deathDate,year:Number.parseInt(e.deathDate.substring(0,4)),type:"death",member:e}),t}).sort((e,t)=>t.date.localeCompare(e.date)),[x]),w=(0,f.useMemo)(()=>x.flatMap(e=>{if(!e.fatherId)return[];let t=u(e.fatherId);if(!t)return[];let r=t.birthPlace||t.ancestralHome,n=e.birthPlace||e.ancestralHome;return r&&n&&r!==n?[{year:e.birthDate?Number.parseInt(e.birthDate.substring(0,4)):null,from:r,to:n,person:e,father:t}]:[]}).sort((e,t)=>(e.year||0)-(t.year||0)),[x,u]),N=(0,f.useMemo)(()=>{let e={};Object.keys(b).forEach(t=>{e[t]=t,e[`${t}市`]=t,Object.entries({广东省:["广州","深圳","东莞","佛山","珠海","惠州","中山","江门","汕头","肇庆"],浙江省:["杭州","宁波","温州","金华","嘉兴","台州","绍兴","湖州"],江苏省:["苏州","南京","无锡","常州","南通","盐城","泰州","扬州","徐州"],山东省:["济南","青岛","威海","临沂","济宁","淄博","莱芜","菏泽"],四川省:["成都","绵阳"],河北省:["石家庄","保定","廊坊","邯郸","秦皇岛"],福建省:["福州","厦门","泉州","莆田","漳州"],湖北省:["武汉","宜昌"],湖南省:["长沙","衡阳","株洲"],陕西省:["西安","咸阳"],河南省:["郑州","洛阳","南阳","平顶山"],辽宁省:["沈阳","大连","鞍山","抚顺"],安徽省:["合肥","芜湖"],云南省:["昆明"],贵州省:["贵阳","遵义"],广西壮族自治区:["南宁","柳州","桂林"],江西省:["南昌","九江","赣州","上饶"],黑龙江省:["哈尔滨","大庆","齐齐哈尔"],吉林省:["长春"],山西省:["太原"],甘肃省:["兰州"],新疆维吾尔自治区:["乌鲁木齐"],宁夏回族自治区:["银川"],内蒙古自治区:["呼和浩特","包头"],海南省:["海口","三亚"],西藏自治区:["拉萨"],天津市:["天津"],重庆市:["重庆"],北京市:["北京"],上海市:["上海"]}).forEach(([r,n])=>{n.includes(t)&&(e[`${r}${t}市`]=t,e[`${r}${t}`]=t)})});let t=t=>{let r=e[t];if(r&&b[r])return r;let n=t.match(/(.+?省)?(.+?市)/);if(n){let r=n[1]||"",o=n[2]||"";for(let n of[t,r+o,o.replace("市",""),o]){let t=e[n];if(t&&b[t])return t}}return t},r=w.map(e=>{let r=t(e.from),n=t(e.to),o=b[r],a=b[n];return o&&a?{fromName:r,toName:n,coords:[o,a]}:(console.log("坐标未找到:",{from:e.from,to:e.to,fromCity:r,toCity:n,fromCoord:o,toCoord:a}),null)}).filter(Boolean);console.log("迁徙数据:",{migrations:w,lines:r});let n={};return w.forEach(e=>{let r=t(e.from),o=t(e.to);n[r]=(n[r]||0)+1,n[o]=(n[o]||0)+1}),{backgroundColor:"transparent",geo:{map:"china",roam:!0,label:{show:!0,color:"#666",fontSize:12},itemStyle:{areaColor:"rgba(128, 128, 128, 0.15)",borderColor:"rgba(128, 128, 128, 0.5)",borderWidth:2},emphasis:{itemStyle:{areaColor:"rgba(128, 128, 128, 0.25)"},label:{show:!0,color:"#333",fontSize:14}}},series:[{type:"lines",coordinateSystem:"geo",data:r,lineStyle:{color:"transparent",width:0,opacity:0},effect:{show:!0,period:3,trailLength:.2,symbol:"arrow",symbolSize:12,color:"#3b82f6",loop:!0},zlevel:1},{type:"scatter",coordinateSystem:"geo",data:Object.entries(n).map(([e,t])=>{let r=b[e];return r?{name:e,value:[...r,10*t]}:null}).filter(Boolean),symbolSize:10,label:{show:!0,formatter:"{b}",position:"right",fontSize:12,fontWeight:"normal",color:"#333"},itemStyle:{color:"#000",shadowBlur:0,borderWidth:0},emphasis:{scale:!0,itemStyle:{color:"#000"},label:{show:!0,fontSize:14,fontWeight:"bold"}}}]}},[w]);return g?(0,t.jsxs)("div",{className:"min-h-screen bg-background flex flex-col",children:[(0,t.jsx)(r.SiteHeader,{}),(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-primary mx-auto mb-4"}),(0,t.jsx)("p",{className:"text-muted-foreground",children:"加载中..."})]})})]}):0===x.length?(0,t.jsxs)("div",{className:"min-h-screen bg-background flex flex-col",children:[(0,t.jsx)(r.SiteHeader,{}),(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.Calendar,{className:"h-16 w-16",strokeWidth:1})}),(0,t.jsx)("p",{className:"text-base text-foreground font-light tracking-wide",children:"时光未启"})]})})]}):(0,t.jsxs)("div",{className:"min-h-screen bg-background flex flex-col font-sans",children:[(0,t.jsx)(r.SiteHeader,{}),(0,t.jsxs)("main",{className:"container mx-auto py-8 px-4 md:px-6 flex-1",children:[(0,t.jsxs)("div",{className:"mb-8",children:[(0,t.jsx)("h1",{className:"text-3xl font-serif font-bold mb-2",children:"家族历史 (History)"}),(0,t.jsx)("p",{className:"text-muted-foreground",children:"纵览家族发展的时间脉络与迁徙足迹。"})]}),(0,t.jsxs)(o.Tabs,{defaultValue:"timeline",className:"w-full",children:[(0,t.jsxs)(o.TabsList,{className:"mb-6 w-full md:w-auto",children:[(0,t.jsxs)(o.TabsTrigger,{value:"timeline",className:"flex items-center gap-2",children:[(0,t.jsx)(i.Clock,{className:"h-4 w-4"})," 时间轴 (Chronology)"]}),(0,t.jsxs)(o.TabsTrigger,{value:"migration",className:"flex items-center gap-2",children:[(0,t.jsx)(s,{className:"h-4 w-4"})," 迁徙图 (Migration)"]})]}),(0,t.jsx)(o.TabsContent,{value:"timeline",children:(0,t.jsx)(a.Card,{className:"border-none shadow-none bg-transparent",children:(0,t.jsx)(a.CardContent,{className:"p-0",children:(0,t.jsxs)("div",{className:"relative border-l-2 border-primary/20 ml-6 md:ml-12 space-y-8 py-4",children:[j.map((e,r)=>(0,t.jsxs)("div",{className:"relative pl-8 md:pl-12 group",children:[(0,t.jsx)("div",{className:`absolute -left-[9px] top-1 h-4 w-4 rounded-full border-2 border-background transition-colors group-hover:scale-110 ${"birth"===e.type?"bg-primary":"bg-neutral-400"}`}),(0,t.jsx)("div",{className:"absolute -left-16 md:-left-24 top-0 w-12 md:w-20 text-right text-sm font-mono text-muted-foreground font-bold",children:e.year}),(0,t.jsx)("div",{className:"bg-card rounded-lg px-4 py-2 transition-all hover:bg-accent/5 border border-border/50",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-wrap text-sm",children:[(0,t.jsx)("span",{className:`text-xs px-2 py-0.5 rounded-full flex-shrink-0 ${"birth"===e.type?"bg-primary/10 text-primary":"bg-neutral-100 text-neutral-500"}`,children:"birth"===e.type?"诞生":"逝世"}),(0,t.jsx)("span",{className:"font-serif font-bold",children:e.member.fullName}),(0,t.jsx)("span",{className:`text-xs px-1.5 py-0.5 rounded ${"MALE"===e.member.gender?"bg-blue-100 text-blue-700":"bg-pink-100 text-pink-700"}`,children:"MALE"===e.member.gender?"男":"女"}),(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:["第",e.member.generation,"世"]}),e.member.fatherId&&(0,t.jsxs)("span",{className:"text-xs px-1.5 py-0.5 rounded bg-orange-50 text-orange-700 border border-orange-200",children:["父:",u(e.member.fatherId)?.fullName||"未知"]}),e.member.motherId&&(0,t.jsxs)("span",{className:"text-xs px-1.5 py-0.5 rounded bg-orange-50 text-orange-700 border border-orange-200",children:["母:",u(e.member.motherId)?.fullName||"未知"]}),e.member.spouseIds&&e.member.spouseIds.length>0&&(0,t.jsxs)("span",{className:"text-xs px-1.5 py-0.5 rounded bg-purple-50 text-purple-700 border border-purple-200",children:["配偶:",u(e.member.spouseIds[0])?.fullName||"未知"]}),e.member.childrenIds&&e.member.childrenIds.length>0&&(0,t.jsxs)("span",{className:"text-xs px-1.5 py-0.5 rounded bg-green-50 text-green-700 border border-green-200",children:["子女:",e.member.childrenIds.length,"人"]}),"birth"===e.type&&(e.member.birthPlace||e.member.ancestralHome)&&(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:["📍",e.member.birthPlace||e.member.ancestralHome]}),"death"===e.type&&e.member.birthDate&&(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:["享年",e.year-Number.parseInt(e.member.birthDate.substring(0,4)),"岁"]}),"death"===e.type&&e.member.burialPlace&&(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:["⚰️",e.member.burialPlace]}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground font-mono ml-auto",children:e.date})]})})]},r)),0===j.length&&(0,t.jsx)("div",{className:"pl-8 py-8",children:(0,t.jsx)("p",{className:"text-sm text-foreground font-light tracking-wide",children:"时光留白"})})]})})})}),(0,t.jsx)(o.TabsContent,{value:"migration",children:(0,t.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-8",children:[(0,t.jsxs)(a.Card,{children:[(0,t.jsx)(a.CardHeader,{children:(0,t.jsx)(a.CardTitle,{className:"font-serif",children:"迁徙记录 (Records)"})}),(0,t.jsx)(a.CardContent,{children:(0,t.jsx)(l.ScrollArea,{className:"h-[600px] pr-4",children:(0,t.jsxs)("div",{className:"space-y-6",children:[w.map((e,r)=>(0,t.jsxs)("div",{className:"flex flex-col gap-2 p-4 rounded-lg bg-muted/30 border border-border",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground mb-1",children:[(0,t.jsx)("span",{className:"font-mono bg-background px-1 rounded",children:e.year?`${e.year}年`:"未知年代"}),(0,t.jsxs)("span",{children:["第 ",e.person.generation," 世"]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,t.jsxs)("div",{className:"flex-1 text-center p-2 bg-background rounded border border-border/50",children:[(0,t.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"迁出地"}),(0,t.jsx)("div",{className:"font-bold",children:e.from}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground mt-1",children:e.father.fullName})]}),(0,t.jsx)(c.ArrowRight,{className:"text-muted-foreground"}),(0,t.jsxs)("div",{className:"flex-1 text-center p-2 bg-background rounded border border-border/50",children:[(0,t.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"迁入地"}),(0,t.jsx)("div",{className:"font-bold text-primary",children:e.to}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground mt-1",children:e.person.fullName})]})]})]},r)),0===w.length&&(0,t.jsx)("div",{className:"text-center py-16",children:(0,t.jsx)("p",{className:"text-sm text-foreground font-light tracking-wide",children:"足迹未显"})})]})})})]}),(0,t.jsxs)(a.Card,{className:"bg-gradient-to-br from-primary/5 via-background to-secondary/5 border-primary/20",children:[(0,t.jsx)(a.CardHeader,{children:(0,t.jsx)(a.CardTitle,{className:"font-serif",children:"迁徙路径图 (Migration Flow)"})}),(0,t.jsx)(a.CardContent,{children:(0,t.jsx)("div",{className:"relative h-[600px] overflow-hidden rounded-lg bg-background/50 backdrop-blur border border-border/50",children:v?0===w.length?(0,t.jsx)("div",{className:"flex items-center justify-center h-full",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)(s,{className:"h-16 w-16",strokeWidth:1})}),(0,t.jsx)("p",{className:"text-sm text-foreground font-light tracking-wide",children:"山河未绘"})]})}):(0,t.jsx)(m,{option:N,style:{height:"100%",width:"100%"},opts:{renderer:"canvas"},notMerge:!0,lazyUpdate:!0},"migration-map"):(0,t.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground",children:(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)(s,{className:"h-16 w-16 mx-auto mb-4 opacity-20 animate-pulse"}),(0,t.jsx)("p",{children:"加载地图中..."})]})})})})]})]})})]})]})]})}e.s(["default",()=>g],10960)},63544,e=>{e.v(t=>Promise.all(["static/chunks/07b96fd9648b56fe.js"].map(t=>e.l(t))).then(()=>t(40258)))}]); |