PageSourceSearch

https://www.tripzilla.sg/_nuxt/Bc4Z-caj.js

js tripzilla.sg collected 2026-10-04 13:27:29 UTC 15,118 bytes, 1 lines download raw bytes

1import{h as e}from"./BSvvKGqq.js";import{o as t}from"./Cnu0k-Zl.js";import{D as n,E as r,Ht as i,On as a,Yt as o,Zn as s,_ as c,b as l,bt as u,ct as d,g as f,gn as p,k as m,mt as h,o as g,qt as _,tr as v,un as y,v as b,vn as x,y as S}from"./Car86Ubo.js";import{G as C,dt as w,mt as T,ut as E}from"./QdjmqAoI.js";import{t as D}from"./CATM49-w.js";import{t as O}from"./Blf4Mq93.js";import{a as ee,i as te,n as ne,o as re,r as ie,s as k,t as ae}from"./DMeLLhef.js";import{i as A,n as j,r as M,t as N}from"./DA8DB0Ym.js";import{t as oe}from"./CvavAEXG.js";import{a as P,n as F,t as I}from"./8r0MVUiZ.js";import{n as L,t as R}from"./BIYg9aCp.js";var z={class:`flex flex-col justify-center md:flex-row`},B={class:`relative mt-1 w-0 flex-1`},V={key:0,class:`hidden items-center gap-x-2 rounded-md bg-gray-100 text-gray-500 sm:flex`},H=[`value`],U={class:`h-full bg-white`},W=[`disabled`],G={key:0,class:`flex items-center gap-x-2 rounded-md bg-white px-4 text-gray-500 md:hidden`},K=[`value`],q=Object.assign(m({__name:`BrowseSearch`,props:{searchType:{},isLoading:{type:Boolean},query:{},sort:{}},emits:[`update:query`,`update:sort`,`submit`],setup(t,{emit:r}){let i=[{label:`Relevance`,sort:`random`},{label:`Lowest Price`,sort:`price`},{label:`Highest Price`,sort:`-price`},{label:`Shortest Duration`,sort:`duration`},{label:`Longest Duration`,sort:`-duration`}],s=t,d=r,{query:f,sort:p}=e(s,d);function m(){f.value=``,d(`submit`)}return(e,r)=>{let _=O;return h(),l(`div`,z,[c(`form`,{onSubmit:r[2]||=T(e=>d(`submit`),[`prevent`]),class:`flex w-full items-center space-y-1 gap-x-2 rounded-md bg-white p-2 text-slate-900 shadow-lg`},[c(`div`,B,[o(c(`input`,{"onUpdate:modelValue":r[0]||=e=>y(f)?f.value=e:null,class:`w-full rounded-md border-0 bg-gray-100 text-base placeholder-gray-500 focus:ring-0 focus:outline-hidden sm:px-8`,type:`text`,placeholder:`Where would you like to go?`},null,512),[[w,a(f)]]),c(`button`,{type:`button`,class:`absolute inset-y-0 right-0 pr-2`,onClick:m},[a(f).length?(h(),b(_,{key:0,name:`heroicons:x-mark`,class:`w-6 text-gray-600`,"aria-hidden":`true`})):S(``,!0)])]),s.searchType===`packages`?(h(),l(`div`,V,[r[4]||=c(`label`,{class:`hidden self-center py-2 pl-4 font-semibold md:inline`,for:`sort`},`Sort:`,-1),o(c(`select`,{"onUpdate:modelValue":r[1]||=e=>y(p)?p.value=e:null,class:`rounded-md border-none bg-gray-100 text-sm outline-hidden`,id:`sort`},[(h(),l(g,null,u(i,e=>c(`option`,{value:e.sort},v(e.label),9,H)),64))],512),[[E,a(p)]])])):S(``,!0),c(`div`,U,[c(`button`,{disabled:t.isLoading,type:`submit`,class:`inline-flex h-full items-center gap-3 rounded-md bg-blue-500 p-2 text-base whitespace-nowrap text-white disabled:cursor-not-allowed disabled:opacity-50 md:px-12`},[n(_,{name:`heroicons:magnifying-glass`,class:`h-6 w-6`}),r[5]||=c(`span`,{class:`hidden md:inline`},`Search`,-1)],8,W)])],32),s.searchType===`packages`?(h(),l(`div`,G,[r[6]||=c(`label`,{class:`md:none self-center py-2 font-semibold`,for:`sort`},`Sort:`,-1),o(c(`select`,{"onUpdate:modelValue":r[3]||=e=>y(p)?p.value=e:null,class:`w-full rounded-md border-none bg-gray-100 text-sm outline-hidden`,id:`sort`},[(h(),l(g,null,u(i,e=>c(`option`,{value:e.sort},v(e.label),9,K)),64))],512),[[E,a(p)]])])):S(``,!0)])}}}),{__name:`BrowseSearch`}),se={class:`flex flex-row gap-x-2 gap-y-2 rounded-sm bg-gray-100 px-4 py-4 text-sm shadow-md sm:flex-col sm:gap-x-0`},ce={class:`hidden flex-col gap-1 sm:flex sm:flex-row sm:gap-2`},J={class:`flex gap-2 overflow-x-auto py-1 pl-1`},le=[`onClick`],ue={class:`flex h-4 shrink-0 items-center whitespace-nowrap`},de={class:`text-sm`},fe={key:0,class:`hidden flex-col gap-1 sm:flex sm:flex-row sm:gap-2`},pe={class:`relative`},me={class:`relative flex`},he={class:`cursor-pointer py-2 pr-4 pl-10`},ge={class:`sticky top-0 z-30 flex items-center gap-x-5 bg-blue-500 px-4`},_e={class:`relative flex flex-1 flex-col gap-3 px-4 sm:px-6`},ve={class:`flex flex-col gap-y-2 px-4 py-2 font-sans text-sm`},ye={class:`flex flex-col gap-4 py-1 pl-1 sm:gap-4`},be=[`onClick`],xe=[`checked`],Se={class:`cursor-pointer text-sm`},Ce={class:`relative flex flex-1 flex-col gap-3`},we={class:`flex flex-col gap-y-5 divide-y pb-3 font-sans text-sm`},Te={class:`flex items-center justify-between`},Ee={class:`flex flex-col gap-3 py-3 sm:gap-4`},De=[`onClick`],Oe={class:`flex h-4 shrink-0 items-center whitespace-nowrap`},ke={class:`text-sm`},Y=Object.assign(m({__name:`BrowseFilters`,props:{query:{},searchType:{},isFeatured:{type:Boolean},filters:{},travelAgencies:{},resultsTravelAgencies:{}},emits:[`update:isFeatured`,`update:filters`,`agencySelected`,`update:travelAgencies`],setup(o,{emit:p}){let m=t(),w=x([]),T=x([]),E=x(!1),P=x(!1),F=x([]),I=o,L=p;i(F,e=>{L(`agencySelected`,e)});let R=async()=>{let e=await D(`/api/travel-agencies/all`,{baseURL:m.public.apiUrl}),t=e.data.filter(e=>e.is_paid_client===!0).sort((e,t)=>
1e.name.localeCompare(t.name)),n=e.data.filter(e=>e.is_paid_client===!1).sort((e,t)=>e.name.localeCompare(t.name));w.value=[...t,...n]},{filters:z,travelAgencies:B,isFeatured:V}=e(I,L),H=async()=>{let e=await D(`/api/categories?for_${I.searchType}`,{baseURL:m.public.apiUrl});T.value.push(...e.data)},U=e=>{z?.value?.includes(e)?z.value.splice(z.value.indexOf(e),1):z?.value?.push(e)},W=e=>{B?.value?.includes(e)?B.value.splice(B.value.indexOf(e),1):B?.value?.push(e)},G=()=>{B?.value!=null&&(B.value=[])};d(()=>{H(),R()});let K=()=>{F.value=[]},q=()=>{E.value=!0},Y=()=>{E.value=!1},X=()=>{P.value=!0},Z=()=>{P.value=!1},Q=f(()=>!!B?.value?.length),$=f(()=>B?.value?.length===0?`Select Travel Agencies`:B?.value?.length===1?`1 Agency Selected`:`${B?.value?.length} Agencies Selected`);return(e,t)=>{let i=ne,o=O,d=re,f=ie;return h(),l(`div`,se,[c(`div`,ce,[t[5]||=c(`p`,{class:`shrink-0 pt-2 font-semibold`,for:`type`},`Types:`,-1),c(`div`,J,[c(`button`,{onClick:t[0]||=e=>V.value=!a(V),class:s([`flex cursor-pointer items-center rounded-md px-2 py-1 font-medium focus:outline-hidden`,{"bg-blue-600 text-white":a(V),"bg-gray-200":!a(V)}])},` Recommended `,2),(h(!0),l(g,null,u(a(T),e=>(h(),l(`button`,{key:e.slug,onClick:t=>U(e.slug),class:s([`flex cursor-pointer items-center rounded-md px-2 py-1 font-medium focus:outline-hidden`,{"bg-blue-600 text-white":a(z).includes(e.slug),"bg-gray-200":!a(z).includes(e.slug)}])},[c(`div`,ue,[c(`p`,de,v(e.name),1)])],10,le))),128))])]),I.searchType===`packages`&&a(B)!==void 0?(h(),l(`div`,fe,[t[6]||=c(`p`,{class:`shrink-0 pt-2 font-semibold`},`Travel Agencies:`,-1),n(a(k),{modelValue:a(F),"onUpdate:modelValue":t[1]||=e=>y(F)?F.value=e:null,multiple:``},{default:_(()=>[c(`div`,pe,[n(d,{class:`focus-visible:ring-opacity-75 relative w-full cursor-default rounded-lg border bg-white py-2 pr-10 pl-3 text-left focus:outline-hidden focus-visible:border-indigo-500 focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-offset-2 focus-visible:ring-offset-orange-300 sm:text-sm lg:w-72.5`},{default:_(()=>[n(i,{class:`block truncate text-gray-400`},{default:_(()=>[r(v(a($)),1)]),_:1}),c(`button`,{onClick:K,type:`button`,class:`absolute inset-y-0 right-0 pr-2`},[a(F).length===0?S(``,!0):(h(),b(o,{key:0,name:`heroicons:x-mark`}))])]),_:1}),n(a(ee),{class:`ring-opacity-5 absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-gray-200 focus:outline-hidden sm:text-sm`},{default:_(()=>[n(a(ae),null,{default:_(()=>[(h(!0),l(g,null,u(a(w),e=>(h(),b(a(te),{key:e.id,value:e.id,as:`template`},{default:_(()=>[c(`div`,me,[n(f,{class:`absolute left-0 flex items-center pt-2 pl-3 text-blue-500`},{default:_(()=>[n(o,{name:`heroicons:check`,class:`h-5 w-5`,"aria-hidden":`true`})]),_:1}),c(`p`,he,v(e.name),1)])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})])]),_:1},8,[`modelValue`])])):S(``,!0),I.searchType===`packages`&&a(B)!==void 0?(h(),l(`button`,{key:1,onClick:q,class:`flex w-fit items-center gap-2 rounded-md bg-gray-200 p-2 text-base leading-6 font-semibold focus:outline-hidden sm:hidden`},[n(o,{name:`heroicons:adjustments-horizontal`}),t[7]||=r(` Filter `,-1),a(Q)?(h(),b(o,{key:0,class:`h-5 w-5 text-green-500`,name:`heroicons:check`})):S(``,!0)])):S(``,!0),c(`button`,{onClick:X,class:`flex w-fit items-center gap-2 rounded-md bg-gray-200 p-2 text-base leading-6 font-semibold focus:outline-hidden sm:hidden`},[t[8]||=r(` Sort `,-1),n(o,{name:`heroicons:chevron-up-down`,class:`h-5 w-5`,"aria-hidden":`true`})]),n(a(A),{open:a(E),"onUpdate:open":t[2]||=e=>y(E)?E.value=e:null},{default:_(()=>[n(a(N),null,{default:_(()=>[n(a(j),{class:`fixed inset-0 bg-transparent`}),n(C,{"enter-active-class":`transform transition ease-in-out duration-500 sm:duration-700`,"enter-from-class":`translate-x-full`,"enter-to-class":`translate-x-0`,"leave-active-class":`transform transition ease-in-out duration-500 sm:duration-700`,"leave-from-class":`translate-x-0`,"leave-to-class":`translate-x-full`},{default:_(()=>[a(E)?(h(),b(a(M),{key:0,class:`fixed inset-0 flex h-full flex-col overflow-y-scroll bg-gray-100 shadow-xl`},{default:_(()=>[c(`div`,ge,[c(`button`,{onClick:Y},[n(o,{name:`heroicons:arrow-left`})]),n(a(oe),{class:`py-5 text-base leading-6 font-semibold text-white`},{default:_(()=>[r(v(a($)),1)]),_:1})]),c(`div`,_e,[c(`div`,ve,[c(`div`,ye,[(h(!0),l(g,null,u(a(w),e=>(h(),l(`div`,{key:e.id,class:`flex cursor-pointer gap-x-2`,onClick:t=>W(e.id)}
1,[c(`input`,{class:`cursor-pointer outline-hidden focus:outline-hidden active:outline-hidden`,type:`checkbox`,checked:a(B)?.includes(e.id)},null,8,xe),c(`label`,Se,v(e.name),1)],8,be))),128))])])]),c(`div`,{class:`sticky bottom-0 flex items-center justify-between bg-white px-4 py-3 sm:px-6`},[c(`button`,{class:`w-1/2 rounded-xs bg-blue-500 p-2 text-base leading-6 font-semibold text-white focus:outline-hidden`,onClick:Y},` Filter `),c(`button`,{onClick:G,class:`w-1/2 rounded-xs p-2 text-base leading-6 font-semibold text-blue-500 focus:outline-hidden`},` Clear `)])]),_:1})):S(``,!0)]),_:1})]),_:1})]),_:1},8,[`open`]),n(a(A),{open:a(P),"onUpdate:open":t[4]||=e=>y(P)?P.value=e:null},{default:_(()=>[n(a(N),null,{default:_(()=>[n(a(j),{class:`fixed inset-0 bg-gray-500/75`}),n(C,{"enter-active-class":`transform transition-transform ease-in-out duration-300 sm:duration-500`,"enter-from-class":`translate-y-full`,"enter-to-class":`translate-y-0`,"leave-active-class":`transform transition-transform ease-in-out duration-300 sm:duration-500`,"leave-from-class":`translate-y-0`,"leave-to-class":`translate-y-full`},{default:_(()=>[a(P)?(h(),b(a(M),{key:0,class:`fixed right-0 bottom-0 left-0 z-50 max-h-[80vh] w-full overflow-y-auto rounded-t-lg bg-white px-4 pt-4 shadow-lg`},{default:_(()=>[c(`div`,Ce,[c(`div`,we,[c(`div`,Te,[t[9]||=c(`p`,{class:`text-center font-medium`},`Types:`,-1),c(`button`,{onClick:Z},[n(o,{name:`heroicons:x-mark`})])]),c(`div`,Ee,[c(`button`,{onClick:t[3]||=e=>V.value=!a(V),class:s([`flex cursor-pointer items-end justify-between rounded-md py-1 focus:outline-hidden`,{"font-medium text-blue-500":a(V),"text-black":!a(V)}])},` Recommended `,2),(h(!0),l(g,null,u(a(T),e=>(h(),l(`button`,{key:e.slug,onClick:t=>U(e.slug),class:s([`flex cursor-pointer items-end justify-between rounded-md py-1 focus:outline-hidden`,{"font-medium text-blue-500":a(z).includes(e.slug),"text-black":!a(z).includes(e.slug)}])},[c(`div`,Oe,[c(`p`,ke,v(e.name),1)])],10,De))),128))])])])]),_:1})):S(``,!0)]),_:1})]),_:1})]),_:1},8,[`open`])])}}}),{__name:`BrowseFilters`}),X={class:`bg-gray-50 py-12`},Z={class:`mx-auto sm:px-6 md:max-w-6xl`},Q={class:`mt-5 flex flex-col gap-4 gap-y-10 lg:grid lg:grid-cols-4`},$=Object.assign(m({__name:`Browse`,props:{searchType:{default:`packages`},defaultParams:{},baseUrlKTO:{}},setup(e){let r=t(),o=e.baseUrlKTO?.slice(1),u=x(``),f=x(!1),{selectedIds:m,clearSelection:g}=P(),_=x({data:[],meta:{current_page:1,from:1,last_page:1,path:``,per_page:1,to:1,total:1,links:[]},links:{first:``,last:``,next:``,prev:``},travel_agencies:[]}),v=p({query:e.defaultParams?.search?.replace(/-/g,` `)??``,sort:`random`,isFeatured:!0,categories:e.defaultParams?.category?[e.defaultParams.category]:[],travelAgencies:[],page:null}),y=async(t={shoudUpdateTravelAgenciesOptions:!0})=>{f.value=!0;let n={"filter[title]":v.query,page:v.page,"filter[destinations]":o,"filter[travelAgencyIds]":v.travelAgencies?.join(`,`),"filter[isPaidClient]":v.isFeatured?!0:null,"filter[categorySlugs]":v.categories.join(`,`),include:`travelAgency,categories`,exclude_ids:`10313,10312,10002,10003,10004,10015,10016,10017,10018,10019,10020,10021,10027,10028,10029,10030,10049,10051,11070,11071,11072,11073,11074,11090,11089,11088,11087,11086,11084,11085,11082,11083,11091,11092,11093,11094,11095,11096,11097,11098,11099,11100,11118,11166,11167,11168,11169,11170,11171,11112,11080,11174,11076,11077,11175,11176,11177,11178,11179,11180,11181,11182,11183,11184,11185,11186,11187,11189,11188,11190,11191,11192,11193,11215,11218,11219,11225,11226,11228,11229,11230,11231,11232,11236`,sort:v.sort};u.value=v.query,e.searchType===`promotions`&&(delete n[`filter[travelAgencyIds]`],delete n[`filter[isPaidClient]`],n.include=`categories,brand`,n.sort=`-updated_at`),t.seed&&(n.seed=t.seed);try{let i=await D(`/api/${e.searchType}`,{baseURL:r.public.apiUrl,params:n});_.value.data=i.data.map(e=>({...e,isSelected:m.value.includes(e.id)}
1)),_.value.meta=i.meta,_.value.links=i.links,t?.shoudUpdateTravelAgenciesOptions&&(_.value.travel_agencies=i.travel_agencies),_.value.seed=i.seed}catch{}finally{f.value=!1}},C=async e=>{v.page=e,await y({seed:_.value.seed}),window.scrollTo({top:0})},w=()=>{g(),v.page=1,v.categories=[],v.travelAgencies=[],y()};i(()=>[v.isFeatured],()=>{y()}),i(()=>[v.sort,v.categories,v.travelAgencies],()=>{f.value||(v.page=1,y({shoudUpdateTravelAgenciesOptions:!1}))},{deep:!0}),d(()=>{y()});let T=e=>{v.travelAgencies=e};return i(()=>v.query,()=>{v.query===``&&(g(),v.page=1,y({shoudUpdateTravelAgenciesOptions:!1}))}),(t,r)=>{let i=q,o=Y,d=L,p=F,m=R,g=I;return h(),l(`section`,X,[c(`div`,Z,[n(i,{"is-loading":a(f),"search-type":e.searchType,query:a(v).query,"onUpdate:query":r[0]||=e=>a(v).query=e,sort:a(v).sort,"onUpdate:sort":r[1]||=e=>a(v).sort=e,onSubmit:w},null,8,[`is-loading`,`search-type`,`query`,`sort`]),c(`div`,Q,[c(`div`,{class:s([`col-span-3 rounded-md bg-white px-4 py-6 shadow-lg`,{"col-span-4":e.baseUrlKTO}])},[n(o,{"is-featured":a(v).isFeatured,"onUpdate:isFeatured":r[2]||=e=>a(v).isFeatured=e,"search-type":e.searchType,filters:a(v).categories,"onUpdate:filters":r[3]||=e=>a(v).categories=e,"travel-agencies":a(v).travelAgencies,"onUpdate:travelAgencies":r[4]||=e=>a(v).travelAgencies=e,"results-travel-agencies":a(_).travel_agencies,query:a(v).query,onAgencySelected:T},null,8,[`is-featured`,`search-type`,`filters`,`travel-agencies`,`results-travel-agencies`,`query`]),a(_).data?(h(),b(d,{key:0,"results-query":a(u),data:a(_).data,"is-loading":a(f),sort:a(v).sort,"onUpdate:sort":r[5]||=e=>a(v).sort=e,"base-url-k-t-o":e.baseUrlKTO},null,8,[`results-query`,`data`,`is-loading`,`sort`,`base-url-k-t-o`])):S(``,!0),n(p,{meta:a(_).meta,onPageChange:C},null,8,[`meta`])],2),e.baseUrlKTO?S(``,!0):(h(),b(m,{key:0}))]),n(g)])])}}}),{__name:`Browse`});export{$ as t};

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.