UNPKG

@simoko/tw-zip

Version:

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

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