PageSourceSearch

https://xynergy.ai/_next/static/chunks/270.d07a0031a5433700.js

js xynergy.ai collected 2026-10-05 16:01:59 UTC 3,373 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[270],{30270:(e,t,r)=>{r.r(t),r.d(t,{beneficiariesToFamilyChartData:()=>f,default:()=>a});var l=r(85047),d=r(31615),i=r(32162);r(52564);var n=r(98553),s=r(35435),o=r(99922);function f(e,t){let{list:r}=(0,n.o8)(e);r.map(e=>[e.id,e]);let l="decedent",d=new Map,i=(e,t,r,l,i)=>(d.has(e)||d.set(e,{id:e,data:{gender:l,"first name":t,role:r},rels:{}}),d.get(e)),o=(e,t)=>{let r=d.get(e),l=d.get(t);r&&l&&(r.rels.spouses=Array.from(new Set([...r.rels.spouses??[],t])),l.rels.spouses=Array.from(new Set([...l.rels.spouses??[],e])))},f=(e,t)=>{let r=d.get(e),l=d.get(t);r&&l&&(r.rels.children=Array.from(new Set([...r.rels.children??[],t])),l.rels.parents=Array.from(new Set([...l.rels.parents??[],e])))};for(let e of(i(l,t,"本人","M"),r)){var a;i(e.id,e.name,(0,s.qM)(e.type,e.relationship),(a=e,"female"===a?.pedigree?.gender?"F":"M"),e)}for(let e of r){let t=e.id;for(let r of e.pedigree?.parentIds??[]){let e="decedent"===r?l:r;d.has(e)&&f(e,t)}if(e.pedigree?.spouseId){let r="decedent"===e.pedigree.spouseId?l:e.pedigree.spouseId;d.has(r)&&o(t,r)}}let p=r.filter(e=>"grandparent"===e.type),u=r.filter(e=>"parent"===e.type),g=r.find(e=>"spouse"===e.type),h=r.filter(e=>"child"===e.type),c=r.filter(e=>"grandchild"===e.type),m=r.filter(e=>"sibling"===e.type),y=r.filter(e=>"legal"===e.type||"other"===e.type),_=e=>{let t=d.get(e);return!!(t?.rels.parents?.length||t?.rels.spouses?.length||t?.rels.children?.length)};if(p.length&&!p.some(e=>_(e.id))){let e=u.length>0?u:[];if(0===e.length)for(let e of p)f(e.id,l);else for(let t of p)for(let r of e.slice(0,2))f(t.id,r.id)}for(let e of u)_(e.id)&&(d.get(e.id).rels.children??[]).includes(l)||f(e.id,l);for(let e of(g&&!_(g.id)&&o(l,g.id),h))!(d.get(e.id).rels.parents??[]).length&&(f(l,e.id),g&&f(g.id,e.id));if(c.length){let e=h[0];for(let t of c)(d.get(t.id).rels.parents??[]).length||f(e?e.id:l,t.id)}for(let e of m){if((d.get(e.id).rels.parents??[]).length)continue;if(u.length){for(let t of u.slice(0,2))f(t.id,e.id);continue}let t="__soft_parent__";i(t,"(未建檔父母)","父母","M"),(d.get(l).rels.parents??[]).includes(t)||f(t,l),f(t,e.id)}for(let e of y)!(d.get(e.id).rels.parents??[]).length&&((d.get(e.id).rels.spouses??[]).length||f(l,e.id));let b=Array.from(d.values()),v=b.find(e=>e.id===l),w=b.filter(e=>e.id!==l);return v?[v,...w]:b}function a({beneficiaries:e,userName:t,onEdit:r}){let n=(0,d.useRef)(null),s=(0,d.useRef)(null),{resolvedTheme:p}=(0,o.D)();return((0,d.useEffect)(()=>{let l=n.current;if(!l)return;l.innerHTML="";let d=f(e,t);if(0===d.length)return;let o=i.R9(l,d);return o.updateMainId("decedent"),o.setCardHtml().setCardDisplay([["role"],["first name"]]).setOnCardClick((t,l)=>{let d=String(l.data?.id??"");if(!d||"decedent"===d||!r)return;let i=e.findIndex(e=>e.id===d);i>=0&&r(e[i],i)}),o.updateTree({initial:!0,tree_position:"main_to_middle"}),s.current=o,()=>{l.innerHTML="",s.current=null}},[e,t,r,"dark"===p]),0===e.length)?(0,l.jsx)("div",{className:"rounded-lg border border-dashed p-10 text-center text-sm text-muted-foreground",children:"尚無家族成員,點右上「新增」開始建立家族圖譜"}):(0,l.jsx)("div",{ref:n,className:"f3 w-full overflow-hidden rounded-2xl border border-border/60",style:{height:"min(70vh, 560px)",background:"hsl(var(--card))",color:"hsl(var(--foreground))"}})}}}]);

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.