(function(a,N){if(typeof module=="object"&&module.exports){module.exports=N(a);return}a.MemoPages=N(a),a.document&&a.document.addEventListener("DOMContentLoaded",function(){a.MemoPages.init()})})(typeof globalThis!="undefined"?globalThis:window,function(a){"use strict";function N(e){return a.ProfileUI&&typeof a.ProfileUI.confirmAction=="function"?a.ProfileUI.confirmAction(e):Promise.resolve(!a.confirm||a.confirm(e))}var E=a.MediaDisplay||(typeof require=="function"?require("./media-display.js"):null),I=a.document,O=Object.create(null),h=!1,C=!1;function P(){return a.GenealogyApi&&a.GenealogyApi.defaultClient}function d(e,t){return I?(t||I).querySelector(e):null}function D(e,t){return I?Array.prototype.slice.call((t||I).querySelectorAll(e)):[]}function b(e){var t=String(e==null?"":e).trim();return t||void 0}function q(e,t){return new URLSearchParams(String(e||"").replace(/^\?/,"")).get(t)||""}function p(e){return e==null||e===""||typeof e=="number"&&!Number.isSafeInteger(e)?"":/^[1-9][0-9]*$/.test(String(e))?String(e):""}function V(e){var t=e===void 0&&a.location?a.location.search:e,r;return e===void 0&&a.ProfileUI&&a.ProfileUI.getGenealogyId&&(r=a.ProfileUI.getGenealogyId(),r)?p(r):p(q(t,"genealogyId"))}function L(e){var t=e===void 0&&a.location?a.location.search:e;return p(q(t,"memoId"))}function ae(e){var t=b(e);if(t)return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}$/.test(t)?t.replace("T"," ")+":00":/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(t)?t.replace("T"," "):t}function ie(e){var t=String(e||"");return/^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}/.test(t)?t.slice(0,16).replace(" ","T"):""}function de(e){var t=b(e),r;if(t)return r=Number(t),Number.isSafeInteger(r)?r:void 0}function j(e){var t=e||{},r={memoTitle:String(t.memoTitle||"").trim()},i=b(t.memoContent),n=ae(t.remindTime),o=b(t.completed),c=b(t.mediaOssIds),g=b(t.sortOrder),l=b(t.status);return i!==void 0&&(r.memoContent=i),n!==void 0&&(r.remindTime=n),o!==void 0&&(r.completed=o),c!==void 0&&(r.mediaOssIds=c),g!==void 0&&(r.sortOrder=de(g),r.sortOrder===void 0&&(r.invalidSortOrder=!0)),l!==void 0&&(r.status=l),r}function z(e){var t=String(e||"").match(/^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/),r,i,n,o;return!t||(r=Number(t[1]),i=Number(t[2]),n=Number(t[3]),i<1||i>12||Number(t[4])>23||Number(t[5])>59||Number(t[6])>59)?!1:(o=[31,r%4===0&&(r%100!==0||r%400===0)?29:28,31,30,31,30,31,31,30,31,30,31],n>=1&&n<=o[i-1])}function H(e){return!e||!e.memoTitle?"请填写备忘录标题":e.remindTime!==void 0&&!z(e.remindTime)?"提醒时间格式无效":e.completed!==void 0&&e.completed!=="0"&&e.completed!=="1"?"完成状态只能是未完成或已完成":e.mediaOssIds!==void 0&&!/^[1-9][0-9]*(,[1-9][0-9]*)*$/.test(e.mediaOssIds)?"附件上传结果无效":e.invalidSortOrder||Object.prototype.hasOwnProperty.call(e,"sortOrder")&&!Number.isSafeInteger(e.sortOrder)?"排序值必须是安全整数":e.status==="1"?"当前 PC 无法重新读取停用备忘录,暂不开放停用":e.status!==void 0&&e.status!=="0"?"备忘录状态只能是 0":""}function u(e){return e==null?"":String(e)}function oe(e){var t;if(!(e==null||e===""))return t=Number(e),Number.isSafeInteger(t)?t:void 0}function S(e){var t=p(e&&e.memoId),r=p(e&&e.genealogyId),i=p(e&&e.appUserId),n=String(e&&e.memoTitle||"").trim(),o=u(e&&e.completed),c=E?E.normalizeFileList(e&&e.mediaFiles):[],g=u(e&&e.status),l=oe(e&&e.sortOrder),y;return!t||!r||!n||o!=="0"&&o!=="1"||g!=="0"&&g!=="1"||e.appUserId!==void 0&&e.appUserId!==null&&e.appUserId!==""&&!i||e.sortOrder!==void 0&&e.sortOrder!==null&&e.sortOrder!==""&&l===void 0||e.remindTime&&!z(String(e.remindTime))?null:(y={memoId:t,genealogyId:r,genealogyNo:u(e.genealogyNo),genealogyName:u(e.genealogyName),surname:u(e.surname),appUserNickName:u(e.appUserNickName),appUserPhone:u(e.appUserPhone),memoTitle:n,memoContent:u(e.memoContent),remindTime:u(e.remindTime),completed:o,status:g,remark:u(e.remark)},c.length&&(y.mediaFiles=c),i&&(y.appUserId=i),l!==void 0&&(y.sortOrder=l),y)}function $(e,t){var r=S(e);return!!(r&&r.memoId===p(t))}function W(e){return!!(e&&e.status==="0")}function f(e){return u(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function J(e){return Array.isArray(e)?e.length:0}function K(e,t){var r="profile-memo.html?genealogyId="+encodeURIComponent(e);return t?r+"&memoId="+encodeURIComponent(t):r}function Q(e,t){var r="profile-memo-edit.html?genealogyId="+encodeURIComponent(e);return t?r+"&memoId="+encodeURIComponent(t):r}function X(e){return!!(e&&(e.canEditContent===!0||e.canManage===!0))}function le(e){var t=[],r='';return t.push(e.completed==="1"?"已完成":"未完成"),e.remindTime&&t.push("提醒:"+e.remindTime),e.memoContent&&t.push(e.memoContent),h&&(r+='编辑'),'

'+f(e.memoTitle)+"

"+f(t.join(" · "))+'

'+r+"
"}function T(e,t){return"

"+f(e)+""+f(t||"未提供")+"

"}function Y(e){var t,r="";return e?(t=J(e.mediaFiles),h&&(r='
编辑备忘录
'),(E?E.renderGallery(e.mediaFiles,{label:"备忘录附件"}):"")+'
'+T("备忘标题",e.memoTitle)+T("备忘内容",e.memoContent)+T("提醒时间",e.remindTime)+T("完成状态",e.completed==="1"?"已完成":"未完成")+T("附件",t?t+" 个附件":"未上传")+T("记录人",e.appUserNickName)+T("备注",e.remark)+"
"+r):_("empty","请选择一条备忘录查看详情")}function k(e){a.layui&&a.layui.layer?a.layui.layer.msg(e):a.alert&&a.alert(e)}function Z(e,t){var r=t&&(t.status||t.code);return!e||!e.getToken||!e.getToken()||Number(r)===401}function m(e){return Number(e&&(e.status||e.code))===403}function A(e){return m(e)?"forbidden":"error"}function s(e,t){return Z(e,t)?(e&&e.clearToken&&e.clearToken(),a.NavigationUtil.open("login.html"),!0):!1}function _(e,t){return a.ProfileUI&&a.ProfileUI.renderApiState?a.ProfileUI.renderApiState(e,t):'
'+f(t)+"
"}function v(e,t,r){if(e){if(a.ProfileUI&&a.ProfileUI.setApiState){a.ProfileUI.setApiState(e,t,r);return}e.innerHTML=_(t,r)}}function U(e,t){var r=d("[data-memo-form-status]");if(r){if(!e){r.innerHTML="";return}if(t&&a.ProfileUI&&a.ProfileUI.setApiState){a.ProfileUI.setApiState(r,t,e);return}r.textContent=e}}function x(e,t,r){var i=d("[data-memo-editor-placeholder]");D("[data-memo-editor], [data-memo-editor-action]").forEach(function(n){n.hidden=!e}),i&&(i.hidden=!!e,!e&&t&&(r?v(i,r,t):i.textContent=t))}function B(e){h=!!e,D("[data-memo-create-link]").forEach(function(t){t.hidden=!h})}async function ee(e,t){var r=await e.genealogyDetail(t);return B(X(r)),r}function F(e,t){var r=d('[data-memo-form] [type="submit"]');C=!!e,D("[data-memo-form] button, [data-memo-form] input, [data-memo-form] textarea, [data-memo-form] select, [data-memo-delete-id]").forEach(function(i){i.disabled=C}),r&&(r.dataset.defaultLabel||(r.dataset.defaultLabel=r.textContent),r.textContent=C&&t?t:r.dataset.defaultLabel,r.setAttribute("aria-busy",C?"true":"false"))}function te(){a.ProfileUI&&a.ProfileUI.syncGenealogyContextLinks&&a.ProfileUI.syncGenealogyContextLinks()}function ue(){var e=d("[data-memo-list]"),t=d("[data-memo-detail]"),r="请先选择家谱,再查看或维护备忘录。";v(e,"empty",r),v(t,"empty","当前没有家谱上下文。"),B(!1),x(!1,r,"empty"),U(r,"empty")}function w(){var e=V();return e||ue(),e}function fe(e){var t=d("[data-memo-list]"),r=Array.isArray(e)?e.map(S):[],i=r.filter(function(o){return!o}).length,n=r.filter(Boolean);return O=Object.create(null),n.forEach(function(o){O[o.memoId]=o}),t?!Array.isArray(e)||i?(v(t,"error","备忘录响应缺少稳定 MemoVo 字段,请联系后端核对。"),[]):n.length?(t.innerHTML=n.map(le).join(""),n):(v(t,"empty","暂无备忘录"),[]):n}function re(e){var t=d("[data-memo-detail]");t&&(t.innerHTML=Y(e))}async function R(e){var t=P(),r=w(),i;if(!r||!p(e)||s(t))return null;v(d("[data-memo-detail]"),"loading","正在加载备忘录详情…");try{if(i=S(await t.memoDetail(r,e)),!i)throw new Error("备忘录详情响应缺少稳定 MemoVo 字段");return O[i.memoId]=i,re(i),i}catch(n){return s(t,n)||(v(d("[data-memo-detail]"),A(n),m(n)?"当前账号无权查看该备忘录。":"备忘录详情加载失败,请稍后重试。"),k(m(n)?"当前账号无权查看该备忘录。":n.message||"备忘录详情加载失败")),null}}async function ne(){var e=P(),t,r,i;if(!s(e)&&(t=w(),!!t)){te(),v(d("[data-memo-list]"),"loading","正在加载备忘录…");try{await ee(e,t),r=fe(await e.memos(t)),i=L(),i&&O[i]?await R(i):r.length?await R(r[0].memoId):re(null)}catch(n){if(s(e,n))return;B(!1),v(d("[data-memo-list]"),A(n),m(n)?"当前账号无权查看该家谱的备忘录。":"备忘录加载失败,请稍后重试。"),k(m(n)?"当前账号无权查看该家谱的备忘录。":n.message||"备忘录加载失败")}}}function me(e){var t={};return D("[name]",e).forEach(function(r){t[r.name]=r.value}),t}function M(e,t){var r=d('[data-memo-form] [name="'+e+'"]');r&&(r.value=t==null?"":String(t))}function se(e){if(!W(e))throw new Error("停用备忘录无法通过当前 PC 接口重新读取或编辑");M("memoTitle",e.memoTitle),M("memoContent",e.memoContent),M("remindTime",ie(e.remindTime)),M("completed",e.completed),M("mediaOssIds",e.mediaOssIds),M("sortOrder",e.sortOrder),M("status","0"),d("[data-memo-media-status]")&&(d("[data-memo-media-status]").textContent=e.mediaOssIds?"已保留 "+J(e.mediaOssIds)+" 个附件,可继续选择追加":"未选择文件")}async function ce(){var e=P(),t,r,i;if(!s(e)&&(t=w(),!!t)){r=L(),te(),x(!1,"正在加载备忘录编辑信息…","loading"),U("正在读取家谱权限…","loading");try{if(await ee(e,t),!h)throw{status:403,message:"当前账号无权维护该家谱的备忘录。"};if(r){if(i=S(await e.memoDetail(t,r)),!i)throw new Error("备忘录详情响应缺少稳定 MemoVo 字段");se(i),d("[data-memo-editor-title]")&&(d("[data-memo-editor-title]").textContent="编辑备忘录")}x(!0),U("")}catch(n){if(s(e,n))return;B(!1),x(!1,m(n)?"当前账号无权维护该家谱的备忘录。":n.message||"备忘录编辑信息加载失败",A(n)),U(m(n)?"当前账号无权维护该家谱的备忘录。":n.message||"备忘录编辑信息加载失败",A(n))}}}async function ge(e){var t=P(),r=w(),i=L(),n,o,c,g,l,y;if(!(C||!h||!r||s(t))){if(n=j(me(e)),o=H(n),o){U(o,"error");return}delete n.invalidSortOrder,F(!0,"正在保存…"),U("正在保存备忘录…","loading");try{if(c=i?await t.updateMemo(r,i,n):await t.createMemo(r,n),g=S(c),l=i||g&&g.memoId,!l)throw new Error("保存响应缺少 memoId");if(y=await t.memoDetail(r,l),!$(y,l))throw new Error("保存后重读未返回同一条备忘录");a.NavigationUtil.open(K(r,l))}catch(G){if(s(t,G))return;U(m(G)?"当前账号无权保存该备忘录。":G.message||"备忘录保存失败",A(G))}finally{F(!1)}}}async function pe(e){var t=P(),r=w(),i=O[e];if(!(C||!h||!r||!p(e)||s(t))&&await N("确认删除“"+(i?i.memoTitle:"该备忘录")+"”吗?删除后不可恢复,并会释放附件引用。")){F(!0);try{await t.deleteMemo(r,e),await ne(),k("备忘录已删除")}catch(n){if(s(t,n))return;k(m(n)?"当前账号无权删除该备忘录。":n.message||"备忘录删除失败")}finally{F(!1)}}}function ve(){var e=d('[data-memo-form] [name="mediaOssIds"]'),t=d("[data-memo-media-status]"),r=d("[data-memo-media-input]");e&&(e.value=""),r&&(r.value=""),t&&(t.textContent="未选择文件")}function Ie(){I&&(I.addEventListener("click",function(e){var t=e.target.closest("[data-memo-detail-id]"),r=e.target.closest("[data-memo-delete-id]"),i=e.target.closest("[data-memo-clear-media]"),n,o;if(t){e.preventDefault(),n=t.getAttribute("data-memo-detail-id"),o=w(),a.history&&o&&a.history.replaceState(null,"",K(o,n)),R(n).then(function(c){c&&a.ProfileUI&&a.ProfileUI.revealDetail&&a.ProfileUI.revealDetail(d("[data-memo-detail-heading]"))});return}if(r){e.preventDefault(),pe(r.getAttribute("data-memo-delete-id"));return}i&&(e.preventDefault(),ve())}),I.addEventListener("submit",function(e){var t=e.target.closest("[data-memo-form]");t&&(e.preventDefault(),ge(t))}))}function ye(){I&&(Ie(),d("[data-memo-page]")&&ne(),d("[data-memo-edit-page]")&&ce())}return{getCurrentGenealogyId:V,getCurrentMemoId:L,buildMemoBody:j,validateMemoBody:H,normalizeMemo:S,matchesSavedMemo:$,canEditRecords:X,isEditableMemo:W,renderMemoDetail:Y,shouldRedirectToLogin:Z,isForbidden:m,init:ye}});