(function(a,p){if(typeof module=="object"&&module.exports){module.exports=p(a);return}a.GenealogyEntryPages=p(a),a.document&&a.document.addEventListener("DOMContentLoaded",function(){a.GenealogyEntryPages.init()})})(typeof globalThis!="undefined"?globalThis:window,function(a){"use strict";function p(n){var e=String(n||""),r=e.indexOf("#"),l=r<0?"":e.slice(r),t,u;return r>=0&&(e=e.slice(0,r)),t=e.split("?"),/^profile-[a-z-]+\.html$/.test(t[0])?(u=new URLSearchParams(t[1]||""),u.delete("genealogyId"),t[0]+(u.toString()?"?"+u.toString():"")+l):"profile-family-home.html"}function A(n){var e=new URLSearchParams(String(n===void 0&&a.location?a.location.search:n||"").replace(/^\?/,""));return p(e.get("next"))}function G(n){var e=n||{},r=[];return Number(e.createRemaining)===-1?r.push("创建不限"):Number(e.createRemaining)>=0&&r.push("还可创建 "+e.createRemaining+" 部"),Number(e.joinRemaining)===-1?r.push("加入不限"):Number(e.joinRemaining)>=0&&r.push("还可加入 "+e.joinRemaining+" 部"),r.length?"家谱额度:"+r.join(",")+"。":""}function f(n){return String(n==null?"":n).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function P(n){var e;if(n!=null)return e=String(n).trim(),e||void 0}function w(n){var e;return typeof n=="number"&&!Number.isSafeInteger(n)||n==null?"":(e=String(n).trim(),/^[1-9][0-9]*$/.test(e)?e:"")}function L(n){var e=n||{},r={genealogyName:String(e.genealogyName||"").trim(),surname:String(e.surname||"").trim(),regionCode:String(e.regionCode||"").trim()},l=["ancestralHall","originPlace","addressDetail","intro"],t=w(e.coverOssId),u=P(e.visibility),o=P(e.joinMode);return l.forEach(function(g){var d=P(e[g]);d!==void 0&&(r[g]=d)}),e.coverOssId!==void 0&&e.coverOssId!==null&&e.coverOssId!==""&&(t?r.coverOssId=t:r.invalidCoverOssId=!0),u!==void 0&&(r.visibility=u),o!==void 0&&(r.joinMode=o),r}function E(n){return!n||!n.genealogyName?"请填写谱名":n.surname?n.regionCode?n.visibility!==void 0&&["0","1","2"].indexOf(n.visibility)<0?"可见范围选项无效":n.joinMode!==void 0&&["0","1","2"].indexOf(n.joinMode)<0?"加入方式选项无效":n.invalidCoverOssId?"封面文件无效,请重新选择":"":"请选择家谱所在地区":"请填写姓氏"}function O(n){var e=Number(n&&n.createRemaining);return n&&typeof n.canCreate=="boolean"?n.canCreate:Number.isInteger(e)&&(e===-1||e>0)}function I(n){var e=w(n&&n.genealogyId),r=String(n&&n.genealogyName||"").trim(),l=String(n&&n.surname||"").trim();return!e||!r||!l?null:{genealogyId:e,genealogyName:r,surname:l,regionFullName:String(n&&n.regionFullName||"")}}function q(n){var e=I(n);return e?U(e.genealogyId,"profile-family-home.html"):""}function c(n,e){var r=e&&(e.status||e.code);return!n||!n.getToken||!n.getToken()||Number(r)===401}function S(n){n&&n.clearToken&&n.clearToken(),a.NavigationUtil.open("login.html")}function z(n){var e={};return Array.prototype.forEach.call(n.querySelectorAll("[name]"),function(r){e[r.name]=r.value}),e}function y(n){return Number(n&&(n.status||n.code))===403?"forbidden":"error"}function m(n,e){var r=a.document&&a.document.querySelector("[data-genealogy-create-status]");if(r){if(!n){r.innerHTML="";return}if(a.ProfileUI&&a.ProfileUI.setApiState){a.ProfileUI.setApiState(r,e||"error",n);return}r.textContent=n}}function v(n,e){var r=a.document&&a.document.querySelector("[data-genealogy-entry-status]");if(r){if(!n){r.innerHTML="";return}if(e&&a.ProfileUI&&a.ProfileUI.setApiState){a.ProfileUI.setApiState(r,e,n);return}r.textContent=n}}function b(n,e,r){if(n){if(a.ProfileUI&&a.ProfileUI.setApiState){a.ProfileUI.setApiState(n,e,r);return}n.textContent=r}}function M(n){var e=a.document&&a.document.querySelector("[data-genealogy-create-submit]");e&&(e.dataset.defaultLabel||(e.dataset.defaultLabel=e.textContent),e.disabled=!!n,e.textContent=n?"正在创建…":e.dataset.defaultLabel,e.setAttribute("aria-busy",n?"true":"false"))}async function j(){var n=a.document&&a.document.querySelector("[data-genealogy-create-form]"),e=a.document&&a.document.querySelector("[data-genealogy-create-quota]"),r=a.GenealogyApi&&a.GenealogyApi.defaultClient,l,t=!1;if(n){if(c(r)){S(r);return}m("正在读取创建额度…","loading");try{if(l=await r.genealogyQuota(),e&&(e.textContent=G(l)||"当前额度信息不可用"),!O(l)){m("当前没有可用的家谱创建额度","empty"),n.querySelector("[data-genealogy-create-submit]").disabled=!0;return}m("")}catch(u){if(c(r,u)){S(r);return}e&&(e.textContent="家谱额度读取失败"),m(u.message||"无法读取家谱创建额度",y(u)),n.querySelector("[data-genealogy-create-submit]").disabled=!0;return}n.__genealogyCreateBound||(n.__genealogyCreateBound=!0,n.addEventListener("submit",async function(u){var o,g,d,s;if(u.preventDefault(),!t){if(o=L(z(n)),g=E(o),g){m(g,"error");return}delete o.invalidCoverOssId,t=!0,M(!0),m("正在创建家谱…","loading");try{if(d=I(await r.createGenealogy(o)),!d)throw new Error("创建响应缺少有效家谱信息");if(s=I(await r.genealogyDetail(d.genealogyId)),!s||s.genealogyId!==d.genealogyId)throw new Error("创建后无法读取同一家谱");a.ProfileUI&&a.ProfileUI.setCurrentGenealogyContext&&a.ProfileUI.setCurrentGenealogyContext(s.genealogyId,s.genealogyName),a.NavigationUtil.open(q(s))}catch(h){if(c(r,h)){S(r);return}m(h.message||"创建家谱失败,请稍后重试",y(h))}finally{t=!1,M(!1)}}}))}}function T(n){var e=n||{},r=e.genealogyId===void 0||e.genealogyId===null?"":String(e.genealogyId);return!/^[1-9][0-9]*$/.test(r)||!e.genealogyName?null:{genealogyId:r,genealogyName:String(e.genealogyName),surname:e.surname===void 0||e.surname===null?"":String(e.surname),regionFullName:e.regionFullName===void 0||e.regionFullName===null?"":String(e.regionFullName),memberCount:e.memberCount,personCount:e.personCount,roleType:e.roleType===void 0||e.roleType===null?"":String(e.roleType),canManage:e.canManage===!0}}function U(n,e){var r=p(e),l=r.split("#"),t=l[0],u=l.length>1?"#"+l.slice(1).join("#"):"",o=t.split("?"),g=new URLSearchParams(o[1]||"");return g.set("genealogyId",String(n)),o[0]+"?"+g.toString()+u}function B(n,e,r){var l=Array.isArray(e)?e.map(T).filter(Boolean):[];return n?!Array.isArray(e)||e.length&&!l.length?(b(n,"error","家谱响应字段不完整,请联系后端核对。"),[]):l.length?(n.innerHTML=l.map(function(t){var u=[t.surname?t.surname+"氏":"",t.regionFullName,t.memberCount===void 0||t.memberCount===null?"":t.memberCount+" 位成员",t.personCount===void 0||t.personCount===null?"":t.personCount+" 位世系人物"].filter(Boolean).join(" · ");return''+f(t.genealogyName)+"
"+f(u)+'
'+(t.canManage?"管理并进入":"进入家谱")+""}).join(""),l):(b(n,"empty","当前账号还没有可进入的家谱"),[]):l}async function F(){if(a.document&&a.document.querySelector("[data-genealogy-create-page]")){await j();return}var n=a.document&&a.document.querySelector("[data-genealogy-entry-status]"),e=a.GenealogyApi&&a.GenealogyApi.defaultClient,r=A(),l=a.document&&a.document.querySelector('[data-genealogy-list="mine"]'),t=a.document&&a.document.querySelector("[data-genealogy-sort-select]"),u=a.document&&a.document.querySelector("[data-genealogy-sort-up]"),o=a.document&&a.document.querySelector("[data-genealogy-sort-down]"),g=a.document&&a.document.querySelector("[data-genealogy-sort-save]"),d,s=!1;if(!n)return;if(c(e)){S(e);return}if(!e||!e.genealogyQuota||!e.genealogiesMine||!e.saveGenealogyOrder){v("家谱入口接口初始化失败,请刷新后重试。","error"),b(l,"error","家谱列表接口初始化失败,请刷新后重试。");return}b(l,"loading","正在读取我的家谱…"),v("正在读取家谱额度…","loading");try{if(d=await e.genealogiesMine(),B(l,d,r),t){var h=Array.isArray(d)?d.map(T).filter(Boolean):[];t.innerHTML=h.map(function(i){return'"}).join(""),[t,u,o,g].forEach(function(i){i&&(i.disabled=h.length<2)})}}catch(i){if(c(e,i)){S(e);return}b(l,y(i),y(i)==="forbidden"?"当前账号无权查看我的家谱。":"无法读取我的家谱,请稍后重试。")}function R(i){var N,C,x;!t||s||(N=t.selectedIndex,C=N+i,!(N<0||C<0||C>=t.options.length)&&(x=t.options[N],i<0?t.insertBefore(x,t.options[C]):t.insertBefore(t.options[C],x),t.selectedIndex=C))}u&&u.addEventListener("click",function(){R(-1)}),o&&o.addEventListener("click",function(){R(1)}),g&&g.addEventListener("click",async function(){if(!(s||!t)){s=!0,[t,u,o,g].forEach(function(i){i&&(i.disabled=!0)}),v("正在保存家谱顺序…","loading");try{await e.saveGenealogyOrder(Array.prototype.map.call(t.options,function(i){return i.value})),v("家谱顺序已保存")}catch(i){v(i.message||"家谱顺序保存失败,请稍后重试。",y(i))}finally{s=!1,[t,u,o,g].forEach(function(i){i&&(i.disabled=t.options.length<2)})}}});try{d=await e.genealogyQuota(),v(G(d))}catch(i){if(c(e,i)){S(e);return}v(y(i)==="forbidden"?"当前账号无权读取家谱额度。":"家谱额度读取失败,请稍后重试。",y(i))}}return{normalizeTargetPage:p,getTargetPage:A,buildStatus:G,buildGenealogyCreateBody:L,validateGenealogyCreateBody:E,canCreateGenealogy:O,normalizeCreatedGenealogy:I,buildCreatedGenealogyUrl:q,shouldRedirectToLogin:c,initGenealogyCreatePage:j,normalizeGenealogy:T,buildEntryUrl:U,renderGenealogies:B,init:F}});