1import{u as D}from"./DbttCnNs.js";import{c as F,aT as U,D as N,R as G,s as B,z as L,C as y,aS as V,c1 as g,W as Y}from"#entry";import{getPreviewIdentifierState as R,subscribePreviewIdentifierUpdates as j,publishPreviewIdentifierUpdate as x}from"./CBOphtaG.js";const S=s=>{if(s===null||typeof s>"u")return!0;if(typeof s=="number")return!1;const p=String(s).trim();return!p||/{{\s*PAGE_CATEGORY_ID\s*}}/i.test(p)?!0:Number.isNaN(Number(p))};function $(s,p){const C=F(()=>U(s)),n=N(C.value),c=D(),I=G(),{categories:h}=B(I),{pushProductCategories:_}=I,A=L(),E=!!p?.publishIdentifiers,d=N(R());let f=null;y(c,t=>{if(!t){f?.(),f=null,d.value=R();return}f||(f=j(e=>{d.value=e}))},{immediate:!0}),V(()=>{f?.(),f=null}),y(()=>[d.value.context,d.value.categoryId],([t,e])=>{if(!c.value||t!=="category"||!e)return;const r=Number(e);Number.isFinite(r)&&r>0&&(u.value=r),n.value=e});const u=N(null);let b=null;const O=F(()=>{if(!c.value)return null;const e=(A.path||"").split("#")[0]?.split("?")[0]??"",r=e.match(/\/preview-category\/([^/?#]+)/i);if(r?.[1])try{const i=decodeURIComponent(r[1]),a=Number(i);return Number.isFinite(a)&&a!==g?a:null}catch{const i=Number(r[1]);return Number.isFinite(i)&&i!==g?i:null}const l=e.split("/").filter(Boolean);if(l.length<2)return null;const o=l[l.length-1]??"";if(!o||o.toLowerCase()==="preview-category")return null;const v=l.map(i=>i.toLowerCase());if(!(v.includes("preview-category")||v.includes("category")))return null;const m=Number(o);return!Number.isFinite(m)||m===g?null:m}),P=()=>(h.value?Object.values(h.value):[]).find(r=>r&&r.category_id!==g)?.category_id??null,z=async()=>{try{const{$api:t}=Y(),e=await t("/api/product-categories"),l=(Array.isArray(e?.data)?e.data:[]).find(o=>o&&o.category_id!==g);if(l)return _([l]),l.category_id}catch(t){console.error("[useEditorPreviewCategoryResolver] Unable to fetch first category for editor preview",t)}return null};y(h,()=>{if(!c.value)return;const t=C.value;if(t===null||typeof t>"u"||!S(t)||u.value!==null)return;const e=P();e!==null&&(u.value=e,n.value=e)}),y([c,C,O],async([t,e,r],l,o)=>{if(!t){u.value=null,n.value=e;return}if(e===null||typeof e>"u"||e===""){u.value=null,n.value=e;return}if(!S(e)){u.value=null,n.value=e;return}if(r!==null){u.value=r,n.value=r;return}const v=d.value.context==="category"?d.value.categoryId:null;if(v){const a=Number(v);Number.isFinite(a)&&a>0&&(u.value=a),n.value=v;return}if(u.value!==null){n.value=u.value;return}const w=P();if(w!==null){u.value=w,n.value=w;return}b||(b=z().finally(()=>{b=null}));let m=!1;o(()=>{m=!0});const i=await b;!m&&i!==null&&(u.value=i,n.value=i)},{immediate:!0});const T=t=>{if(t===null||typeof t>"u")return null;const e=Number(t);return Number.isFinite(e)&&e>0?e:null};return E&&y([c,n],([t,e])=>{if(!t){x({context:null,categoryId:null});return}const r=T(e);x({context:"category",categoryId:r!==null?String(r):null})},{immediate:!0}),{resolvedCategoryId:n}}export{S as i,$ as u};
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.