1import{r as E}from"./react-vendor-BDHNqS4B.js";const w=45*60*1e3,h=new Map,g=new Map;function d(l,e){return`${l}::${e}`}function m(l,e){const a=d(l,e),u=h.get(a);return u?u.expiresAt<=Date.now()?(h.delete(a),null):u.url:null}function C(l,e,a){h.set(d(l,e),{url:a,expiresAt:Date.now()+w})}async function y(l,e,a=1e4){if(!e)throw new Error("bucket and path are required");const u=m(l,e);if(u)return{status:200,ok:!0,data:{url:u}};const b=d(l,e),s=g.get(b);if(s)return s;const r="https://lfvsh5wskvkgo5mepbh5ahokua0nkceb.lambda-url.ap-southeast-1.on.aws/",t=new AbortController,T=setTimeout(()=>t.abort(),a),i=(async()=>{try{const n=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},signal:t.signal,body:JSON.stringify({bucket:l,filePath:e})}),v=await n.text();let o;try{o=v?JSON.parse(v):void 0}catch{o=v}if(!n.ok)return{status:n.status,ok:!1,error:typeof o=="string"?o:JSON.stringify(o)};const c=typeof o=="object"&&o&&typeof o.url=="string"?o.url:null;return c?(C(l,e,c),{status:n.status,ok:!0,data:{url:c}}):{status:n.status,ok:!1,error:"Signed URL response missing url"}}catch(n){return(n==null?void 0:n.name)==="AbortError"?{status:0,ok:!1,error:`request timed out after ${a}ms`}:{status:0,ok:!1,error:(n==null?void 0:n.message)??String(n)}}finally{clearTimeout(T),g.delete(b)}})();return g.set(b,i),i}const k="petwell-prod-store";function f(l){return l.startsWith("http://")||l.startsWith("https://")}function L(l){const[e,a]=E.useState(()=>l&&f(l)?l:null),[u,b]=E.useState(()=>l?!f(l):!1),[s,r]=E.useState(null);return E.useEffect(()=>{let t=!1;if(!l){a(null),b(!1),r(null);return}if(f(l)){a(l),b(!1),r(null);return}return(async()=>{var i;b(!0),r(null);try{const n=await y(k,l);if(t)return;n.ok&&((i=n.data)!=null&&i.url)?a(n.data.url):(r(n.error||"Failed to load image"),a(null))}catch(n){if(t)return;r(n.message),a(null)}finally{t||b(!1)}})(),()=>{t=!0}},[l]),{imageUrl:e,isLoading:u,error:s}}const S={馿¸¯:{label:"馿¸¯å³¶",labelEn:"Hong Kong Island",icon:"map-pin",districts:[{value:"å
¨é¦æ¸¯å³¶",label:"å
¨é¦æ¸¯å³¶",labelEn:"All Hong Kong Island"},{value:"ç£ä»å",label:"ç£ä»å",labelEn:"Wan Chai"},{value:"åå",label:"åå",labelEn:"Southern"},{value:"é
é¼ç£",label:"é
é¼ç£",labelEn:"Causeway Bay"},{value:"天å",label:"天å",labelEn:"Tin Hau"},{value:"大å",label:"大å",labelEn:"Tai Hang"},{value:"è·é¦¬å°",label:"è·é¦¬å°",labelEn:"Happy Valley"},{value:"ä¸ç°",label:"ä¸ç°",labelEn:"Central"},{value:"éé",label:"éé",labelEn:"Admiralty"},{value:"ä¸ç°",label:"ä¸ç°",labelEn:"Sheung Wan"},{value:"西çç¤",label:"西çç¤",labelEn:"Sai Ying Pun"},{value:"ç³å¡å",label:"ç³å¡å",labelEn:"Shek Tong Tsui"},{value:"å
å°¼å°å",label:"å
å°¼å°å",labelEn:"Kennedy Town"},{value:"西ç°",label:"西ç°",labelEn:"Sai Wan"},{value:"åå±±",label:"åå±±",labelEn:"Mid-Levels"},{value:"å±±é ",label:"å±±é ",labelEn:"The Peak"},{value:"åè§",label:"åè§",labelEn:"North Point"},{value:"é°éæ¶",label:"é°éæ¶",labelEn:"Quarry Bay"},{value:"太å¤å",label:"太å¤å",labelEn:"Taikoo Shing"},{value:"è¥¿ç£æ²³",label:"è¥¿ç£æ²³",labelEn:"Sai Wan Ho"},{value:"ç²ç®ç£",label:"ç²ç®ç£",labelEn:"Shau Kei Wan"},{value:"æè±é¨",label:"æè±é¨",labelEn:"Heng Fa Chuen"},{value:"æ´ç£",label:"æ´ç£",labelEn:"Chai Wan"},{value:"馿¸¯ä»",label:"馿¸¯ä»",labelEn:"Aberdeen"},{value:"é»ç«¹å",label:"é»ç«¹å",labelEn:"Wong Chuk Hang"},{value:"é´¨è·æ´²",label:"é´¨è·æ´²",labelEn:"Ap Lei Chau"},{value:"èæ¶æ",label:"èæ¶æ",labelEn:"Pok Fu Lam"},{value:"淺水ç£",label:"淺水ç£",labelEn:"Repulse Bay"},{value:"赤æ±",label:"赤æ±",labelEn:"Stanley"},{value:"ç³æ¾³",label:"ç³æ¾³",labelEn:"Shek O"},{value:"ä¸è¥¿å",label:"ä¸è¥¿å",labelEn:"Central & Western"},{value:"æ±å",label:"æ±å",labelEn:"Eastern"}]},ä¹é¾:{label:"ä¹é¾",labelEn:"Kowloon",icon:"shopping-bag",districts:[{value:"å
¨ä¹é¾",label:"å
¨ä¹é¾",labelEn:"All Kowloon"},{value:"å°æ²å",label:"å°æ²å",labelEn:"Tsim Sha Tsui"},{value:"使¦",label:"使¦",labelEn:"Jordan"},{value:"油麻å°",label:"油麻å°",labelEn:"Yau Ma Tei"},{value:"æºè§",label:"æºè§",labelEn:"Mong Kok"},{value:"太å",label:"太å",labelEn:"Prince Edward"},{value:"大è§å",label:"大è§å",labelEn:"Tai Kok Tsui"},{value:"深水å",label:"深水å",labelEn:"Sham Shui Po"},{value:"é·æ²ç£",label:"é·æ²ç£",labelEn:"Cheung Sha Wan"},{value:"èæè§",label:"èæè§",labelEn:"Lai Chi Kok"},{value:"ç¾å",label:"ç¾å",labelEn:"Mei Foo"},{value:"ä¹é¾å¡",label:"ä¹é¾å¡",labelEn:"Kowloon Tong"},{value:"ä¹é¾å",label:"ä¹é¾å",labelEn:"Kowloon City"},{value:"åçç£",label:"åçç£",labelEn:"To Kwa Wan"},{value:"ç´
磡",label:"ç´
磡",labelEn:"Hung Hom"},{value:"使ç°",label:"使ç°",labelEn:"Ho Man Tin"},{value:"é»å¤§ä»",label:"é»å¤§ä»",labelEn:"Wong Tai Sin"},{value:"é½ç³å±±",label:"é½ç³å±±",labelEn:"Diamond Hill"},{value:"æ¨å¯",label:"æ¨å¯",labelEn:"Lok Fu"},{value:"èç°",label:"èç°",labelEn:"Lam Tin"},{value:"æ²¹å¡",label:"æ²¹å¡",labelEn:"Yau Tong"},{value:"ä¹é¾ç£",label:"ä¹é¾ç£",labelEn:"Kowloon Bay"},{value:"çé è§",label:"çé è§",labelEn:"Ngau Tau Kok"},{value:"è§å¡",label:"è§å¡",labelEn:"Kwun Tong"},{value:"æ°è²å´",label:"æ°è²å´",labelEn:"San Po Kong"},{value:"åå¾·",label:"åå¾·",labelEn:"Kai Tak"},{value:"諾士ä½èº",label:"諾士ä½èº",labelEn:"Knutsford Terrace"},{value:"æ²¹å°æºå",label:"æ²¹å°æºå",labelEn:"Yau Tsim Mong"},{value:"ä¹é¾åå",label:"ä¹é¾åå",labelEn:"Kowloon City"},{value:"è§å¡å",label:"è§å¡å",labelEn:"Kwun Tong"},{value:"深水åå",label:"深水åå",labelEn:"Sham Shui Po"},{value:"é»å¤§ä»å",label:"é»å¤§ä»å",labelEn:"Wong Tai Sin"}]},æ°ç:{label:"æ°ç",labelEn:"New Territories",icon:"building",districts:[{value:"å
¨æ°ç",label:"å
¨æ°ç",labelEn:"All New Territories"},{value:"èµæ¶",label:"èµæ¶",labelEn:"Kwai Chung"},{value:"éè¡£",label:"éè¡£",labelEn:"Tsing Yi"},{value:"èç£",label:"èç£",labelEn:"Tsuen Wan"},{value:"æ·±äº",label:"æ·±äº",labelEn:"Sham Tseng"},{value:"屯é",label:"屯é",labelEn:"Tuen Mun"},{value:"å
æ",label:"å
æ",labelEn:"Yuen Long"},{value:"天水å",label:"天水å",labelEn:"Tin Shui Wai"},{value:"䏿°´",label:"䏿°´",labelEn:"Sheung Shui"},{value:"ç²å¶º",label:"ç²å¶º",labelEn:"Fanling"},{value:"è½é¦¬æ´²",label:"è½é¦¬æ´²",labelEn:"Lok Ma Chau"},{value:"大å",label:"大å",labelEn:"Tai Po"},{value:"太å",label:"太å",labelEn:"Tai Wo"},{value:"ç½ç³è§",label:"ç½ç³è§",labelEn:"Pak Shek Kok"},{value:"大å",label:"大å",labelEn:"Tai Wai"},{value:"æ²ç°",label:"æ²ç°",labelEn:"Sha Tin"},{value:"馬éå±±",label:"馬éå±±",labelEn:"Ma On Shan"},{value:"西貢",label:"西貢",labelEn:"Sai Kung"},{value:"å°è»æ¾³",label:"å°è»æ¾³",labelEn:"Tseung Kwan O"},{value:"æ¸
æ°´ç£",label:"æ¸
æ°´ç£",labelEn:"Clear Water Bay"},{value:"èµéå",label:"èµéå",labelEn:"Kwai Tsing"},{value:"èç£å",label:"èç£å",labelEn:"Tsuen Wan"},{value:"屯éå",label:"屯éå",labelEn:"Tuen Mun"},{value:"å
æå",label:"å
æå",labelEn:"Yuen Long"},{value:"åå",label:"åå",labelEn:"North"},{value:"大åå",label:"大åå",labelEn:"Tai Po"},{value:"æ²ç°å",label:"æ²ç°å",labelEn:"Sha Tin"},{value:"西貢å",label:"西貢å",labelEn:"Sai Kung"}]},é¢å³¶:{label:"é¢å³¶",labelEn:"Outlying Islands",icon:"list",districts:[{value:"å
¨é¢å³¶",label:"å
¨é¢å³¶",labelEn:"All Outlying Islands"},{value:"大嶼山",label:"大嶼山",labelEn:"Lantau Island"},{value:"æ±æ¶",label:"æ±æ¶",labelEn:"Tung Chung"},{value:"赤鱲è§",label:"赤鱲è§",labelEn:"Chek Lap Kok"},{value:"ææ¯ç£",label:"ææ¯ç£",labelEn:"Discovery Bay"},{value:"æ¢
窩",label:"æ¢
窩",labelEn:"Mui Wo"},{value:"大澳",label:"大澳",labelEn:"Tai O"},{value:"馬ç£",label:"馬ç£",labelEn:"Ma Wan"},{value:"é·æ´²",label:"é·æ´²",labelEn:"Cheung Chau"},{value:"å丫島",label:"å丫島",labelEn:"Lamma Island"},{value:"åªæ´²",label:"åªæ´²",labelEn:"Peng Chau"},{value:"é¢å³¶å",label:"é¢å³¶å",labelEn:"Islands"}]}};function p(l,e){if(!l||!e)return!1;const a=l.trim().toLowerCase(),u=(e.value||"").trim().toLowerCase(),b=(e.label||"").trim().toLowerCase(),s=(e.labelEn||"").trim().toLowerCase();if(!a||!u)return!1;
1const r=[u,b,s].filter(Boolean);for(const t of r)if(a===t||t.length>=2&&a.includes(t)||a.length>=2&&t.includes(a))return!0;return!1}function W(l){if(!l)return"Others";const e=l.trim();if(!e)return"Others";for(const[a,u]of Object.entries(S))if(u.districts.some(s=>p(e,s)))return a;return"Others"}function O(l,e){if(!l)return!1;const a=S[e];return a?a.districts.some(u=>p(l,u)):!1}function M(l){return{"Hong Kong":"馿¸¯",Kowloon:"ä¹é¾","New Territories":"æ°ç",Islands:"é¢å³¶",Others:"Others"}[l]||null}export{O as d,W as g,M as m,L 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.