UNPKG

@simoko/tw-zip

Version:

台灣縣市、行政區、郵遞區號(3碼/6碼)查詢工具,支援 React/Vue/Svelte/SolidJS/Angular

2 lines 3.54 kB
import {f,e,c,a,b}from'../chunk-JL77HVOV.js';export{f as clearCache,e as isCityCached}from'../chunk-JL77HVOV.js';import'../chunk-VAKBHZJJ.js';import {writable,derived}from'svelte/store';var V=new Map;function Y(d){if(!d)return [];let r=V.get(d);if(r)return r;let b=d.split("|").map(s=>{let a=s.split(",");return [a[0],...a.slice(1).map(Number)]});return V.set(d,b),b}function G(d,r,b,s,a,D,h,z){if(!h)return;let f=h[r];if(!f)return;let g=f[b];if(!g)return;let u=z[d]?.[r];if(!u)return;let p=Y(g);for(let I of p){let[R,y=0,o=0,O=0,m=0,j=0,A=0,F=0,w=0]=I;if(o>0||O>0){if(!a)continue;if(o>0&&O>0){if(a<o||a>O)continue}else if(o>0){if(w===9999||w===9998){if(a<o)continue}else if(a!==o)continue}}if(m>0||j>0){if(!D)continue;if(m>0&&j>0){if(D<m||D>j)continue}else if(m>0&&D!==m)continue}if(s!==void 0&&(A>0||w>0)){if(y===1&&s%2===0||y===2&&s%2===1)continue;let T=w===9999||w===9998?Number.POSITIVE_INFINITY:w;if(A>0&&s<A||T!==Number.POSITIVE_INFINITY&&s>T)continue}else if(y!==0&&s!==void 0&&(y===1&&s%2===0||y===2&&s%2===1))continue;return {zipcode:u+R,zip3:u,city:d,area:r,road:b}}if(p.length>0){let[I]=p[0];return {zipcode:u+I,zip3:u,city:d,area:r,road:b}}}function H(d={}){let{baseUrl:r,preload:b$1}=d,s=writable(true),a$1=writable([]),D=writable({}),h=writable(""),z=writable(""),f$1=writable(""),g=writable(void 0),u=writable(void 0),p=writable(void 0),I=writable([]),R=writable([]),y=writable([]),o=writable(void 0),O=0;function m(e){let t;return e.subscribe(n=>t=n)(),t}async function j(){s.set(true);let e=await a({baseUrl:r});a$1.set(e.cities),D.set(e.zip3);let t=e.cities[0]??"";if(h.set(t),b$1&&b$1.length>0&&await c(b$1,{baseUrl:r}),t){let n=await b(t,{baseUrl:r});o.set(n);let i=Object.keys(n);if(I.set(i),z.set(i[0]??""),i[0]){let l=n[i[0]];if(l){let C=Object.keys(l);R.set(C),f$1.set(C[0]??"");}}}s.set(false);}j();async function A(e){let t=++O;h.set(e),s.set(true);try{let n=await b(e,{baseUrl:r});if(O!==t)return;o.set(n);let i=Object.keys(n);if(I.set(i),z.set(i[0]??""),R.set([]),f$1.set(""),g.set(void 0),u.set(void 0),p.set(void 0),i[0]){let l=n[i[0]];if(l){let C=Object.keys(l);R.set(C),f$1.set(C[0]??"");}}}catch(n){O===t&&console.error(`Failed to load city data for ${e}:`,n);}finally{O===t&&s.set(false);}}function F(e){z.set(e);let t=m(o);if(t){let n=t[e];if(n){let i=Object.keys(n);R.set(i),f$1.set(i[0]??"");}else R.set([]),f$1.set("");}g.set(void 0),u.set(void 0),p.set(void 0);}function w(e){f$1.set(e),g.set(void 0),u.set(void 0),p.set(void 0);}function T(e){g.set(e);}function _(e){u.set(e);}function q(e){p.set(e);}function B(e){if(!e.trim()){y.set([]);return}let t=[],n=e.trim(),i=m(h),l=m(o);if(l)for(let[C,Z]of Object.entries(l))for(let x of Object.keys(Z))x.includes(n)&&t.push({city:i,area:C,road:x});y.set(t);}let N=derived([h,z,f$1,g,u,p,o,D],([e,t,n,i,l,C,Z,x])=>{if(!(!e||!t||!n||!Z))return G(e,t,n,i,l,C,Z,x)}),P=derived(N,e=>e?.zipcode??""),U=derived(N,e=>e?.zip3??"");return {loading:{subscribe:s.subscribe},cities:{subscribe:a$1.subscribe},areas:{subscribe:I.subscribe},roads:{subscribe:R.subscribe},city:{subscribe:h.subscribe},area:{subscribe:z.subscribe},road:{subscribe:f$1.subscribe},number:{subscribe:g.subscribe},lane:{subscribe:u.subscribe},alley:{subscribe:p.subscribe},setCity:A,setArea:F,setRoad:w,setNumber:T,setLane:_,setAlley:q,searchRoads:B,searchResults:{subscribe:y.subscribe},zipCode:P,zip3:U,result:N,preloadCities:e=>c(e,{baseUrl:r}),isCityCached:e,clearCache:f}}var Q=H;export{H as createTwZip6,Q as default};//# sourceMappingURL=lazy.js.map //# sourceMappingURL=lazy.js.map