1var D=(h,n,u)=>new Promise((p,i)=>{var w=l=>{try{a(u.next(l))}catch(d){i(d)}},g=l=>{try{a(u.throw(l))}catch(d){i(d)}},a=l=>l.done?p(l.value):Promise.resolve(l.value).then(w,g);a((u=u.apply(h,n)).next())});import{r as S,p as A,b as I,e as k,j as o,f as q,t as f,g as C}from"./vue-vendor-BqEqlBN8.js";import"./parse-hlf3C9cV.js";import{_ as L,u as O,l as r}from"./index-zKxGK1P5.js";import"./vendor-CgfLlPlq.js";import"./query-mEIUYlNa.js";const $={class:"store-callback-page"},P={class:"callback-container"},j={key:0,class:"callback-loading"},X={key:1,class:"callback-content success"},G={class:"store-info"},H={class:"info-row"},U={class:"value"},V={class:"info-row"},W={class:"value"},J={key:0,class:"info-row"},z={class:"value"},F={class:"callback-message"},K={key:2,class:"callback-content failed"},Q={class:"callback-message"},Y=20,Z=100,ee=200,te=200,oe={__name:"StoreCallback",setup(h){const n=I(),{setInterval:u,clearInterval:p}=O(),i=(t,e)=>typeof t!="string"?"":t.substring(0,e).replace(/[<>"']/g,"").trim(),w=S(!0),g=S(!1),a=S({}),l=S(""),d=S("è«é鿤è¦çªä¸¦è¿åé é¢"),m=S(3);let b=null;A(()=>D(null,null,function*(){document.title="éå¸é¸æçµæ - ææé»å";try{if(n.query.error){const t=i(n.query.message||n.query.error||"éå¸é¸æå¤±æ",te);throw new Error(t)}if(r.log("StoreCallback","URL åæ¸å·²æ¥æ¶"),n.query.success==="true"){const t={storeCode:i(n.query.storeCode||"",Y),storeName:i(n.query.storeName||"",Z),storeAddr:i(n.query.storeAddr||"",ee)};r.log("StoreCallback","éå¸è³æå·²é©è"),a.value=t,g.value=!0;const s=_()==="address"?"å°å管çé é¢":"çµå¸³é é¢";d.value=`${m.value} ç§å¾å°èªåè¿å${s}...`,M(t),T(t),B()}else throw new Error("æªæ¶å°éå¸é¸æè³æ")}catch(t){r.error("StoreCallback","èç失æ:",t),l.value=t.message,g.value=!1}finally{w.value=!1}}));function _(){try{const s=sessionStorage.getItem("storeMapContext");if(s)return s}catch(s){r.warn("StoreCallback","[StoreCallback] sessionStorage ä¸å¯ç¨")}try{const s=localStorage.getItem("storeMapContext");if(s)return s}catch(s){r.warn("StoreCallback","[StoreCallback] localStorage ä¸å¯ç¨")}const t=["checkout","address"],e=n.query.context;return e&&t.includes(e)?e:"checkout"}function M(t){const e=JSON.stringify(t);r.log("StoreCallback","å²åéå¸è³æ:",t);try{sessionStorage.setItem("selectedStore",e),sessionStorage.setItem("selectedStoreExpiry",String(Date.now()+300*1e3)),r.log("StoreCallback","sessionStorage å²åæå")}catch(s){r.warn("StoreCallback","sessionStorage å²å失æ")}try{if(window.indexedDB){const s=indexedDB.open("StoreMapDB",1);s.onerror=c=>{r.warn("StoreCallback","[StoreCallback] IndexedDB éå失æ:",c.target.error)},s.onblocked=()=>{r.warn("StoreCallback","[StoreCallback] IndexedDB 被é»å¡")},s.onupgradeneeded=c=>{const v=c.target.result;v.objectStoreNames.contains("stores")||v.createObjectStore("stores",{keyPath:"id"})},s.onsuccess=c=>{const E=c.target.result.transaction(["stores"],"readwrite");E.onerror=y=>{r.warn("StoreCallback","[StoreCallback] IndexedDB 交æå¤±æ:",y.target.error)};const R=E.objectStore("stores").put({id:"selectedStore",data:t,expiry:Date.now()+300*1e3});R.onerror=y=>{r.warn("StoreCallback","[StoreCallback] IndexedDB 寫å
¥å¤±æ:",y.target.error)}}}}catch(s){r.warn("StoreCallback","[StoreCallback] IndexedDB å²å失æ")}}function N(){return`${Date.now()}-${Math.random().toString(36).substring(2,10)}`}function T(t){if(r.log("StoreCallback","notifyParentWindow éå§"),window.opener)try{window.opener.postMessage({type:"STORE_SELECTED",store:t,token:N(),origin:window.location.origin},window.location.origin),r.log("StoreCallback","postMessage ç¼éæå")}catch(e){r.error("StoreCallback","postMessage ç¼é失æ:",e)}
1try{if(window.BroadcastChannel){const e=new BroadcastChannel("store_selection_channel");e.postMessage({type:"STORE_SELECTED",store:t}),r.log("StoreCallback","BroadcastChannel è¨æ¯å·²ç¼é"),e.close()}}catch(e){r.error("StoreCallback","BroadcastChannel ç¼é失æ:",e)}}function x(){const t=_();if(window.opener)window.close();else{const e=a.value,s=new URLSearchParams({fromStoreCallback:"true",storeCode:e.storeCode||"",storeName:e.storeName||"",storeAddr:e.storeAddr||""});t==="address"?window.location.href=`/member?panel=address&${s.toString()}`:window.location.href=`/checkout?${s.toString()}`}}function B(){const t=_(),e=a.value,s=t==="address"?"å°å管çé é¢":"çµå¸³é é¢";e&&e.storeName&&(b&&p(b),b=u(()=>{if(m.value--,d.value=`${m.value} ç§å¾å°èªåè¿å${s}...`,m.value<=0){p(b),b=null;const c=new URLSearchParams({fromStoreCallback:"true",storeCode:e.storeCode||"",storeName:e.storeName||"",storeAddr:e.storeAddr||""});t==="address"?window.location.href=`/member?panel=address&${c.toString()}`:window.location.href=`/checkout?${c.toString()}`}},1e3))}return(t,e)=>(C(),k("div",$,[o("div",P,[w.value?(C(),k("div",j,[...e[0]||(e[0]=[o("div",{class:"spinner"},null,-1),o("p",null,"æ£å¨èçéå¸é¸æçµæ...",-1)])])):g.value?(C(),k("div",X,[e[4]||(e[4]=o("div",{class:"callback-icon success"},[o("i",{class:"fas fa-check-circle"})],-1)),e[5]||(e[5]=o("h1",{class:"callback-title"},"éå¸é¸ææå",-1)),o("div",G,[o("div",H,[e[1]||(e[1]=o("span",{class:"label"},"éå¸å稱",-1)),o("span",U,f(a.value.storeName),1)]),o("div",V,[e[2]||(e[2]=o("span",{class:"label"},"éå¸å°å",-1)),o("span",W,f(a.value.storeAddr),1)]),a.value.storeCode?(C(),k("div",J,[e[3]||(e[3]=o("span",{class:"label"},"éå¸ä»£ç¢¼",-1)),o("span",z,f(a.value.storeCode),1)])):q("",!0)]),o("p",F,f(d.value),1),o("button",{class:"btn-primary",onClick:x},"ééè¦çª")])):(C(),k("div",K,[e[6]||(e[6]=o("div",{class:"callback-icon failed"},[o("i",{class:"fas fa-times-circle"})],-1)),e[7]||(e[7]=o("h1",{class:"callback-title"},"éå¸é¸æå¤±æ",-1)),o("p",Q,f(l.value||"ç¡æ³åå¾éå¸è³è¨ï¼è«é試"),1),o("button",{class:"btn-primary",onClick:x},"ééè¦çª")]))])]))}},de=L(oe,[["__scopeId","data-v-91bf1d6d"]]);export{de as default};
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.