@jctrans-materials/comps-vue3 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,7 +8,7 @@ export declare function searchByNameApi(key: string, types?: LocationType[], oth
8
8
  current: number;
9
9
  size: number;
10
10
  }>;
11
- export declare const searchByIdWithTypeApi: (id: string | number, type: LocationType) => Promise<{
11
+ export declare const searchByIdWithTypeApi: (id: string | number | Array<number | string>, type: LocationType) => Promise<{
12
12
  records: import('@jctrans-materials/shared').LocationUnifiedItem[];
13
13
  total: number;
14
14
  current: number;
@@ -46,6 +46,7 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
46
46
  collapseTags: boolean;
47
47
  searchTypeList: () => string[];
48
48
  historyKey: undefined;
49
+ placeholder: string;
49
50
  lang: string;
50
51
  showSearchIcon: boolean;
51
52
  showItemTag: boolean;
@@ -61,6 +62,7 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
61
62
  collapseTags: boolean;
62
63
  searchTypeList: () => string[];
63
64
  historyKey: undefined;
65
+ placeholder: string;
64
66
  lang: string;
65
67
  showSearchIcon: boolean;
66
68
  showItemTag: boolean;
@@ -72,6 +74,7 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
72
74
  onRemove?: ((...args: any[]) => any) | undefined;
73
75
  }>, {
74
76
  modelValue: SearchItem | SearchItem[] | null;
77
+ placeholder: string;
75
78
  multiple: boolean;
76
79
  lang: "" | "en" | "cn" | "en-US" | "zh-CN";
77
80
  historyKey: string;
package/dist/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),R=require("@jctrans-materials/shared"),B=require("element-plus");function rt(t){const n=e.ref([]),o="_search_history_cache",l=typeof window<"u"&&typeof localStorage<"u",s=e.computed(()=>(t.value||"")+o),a=e.computed(()=>!!t.value&&t.value!==""),r=u=>{if(!u||!l)return;const c=n.value.filter(m=>m.id&&m.id!==u.id||m.display!==u.display);c.unshift(u);const d=c.slice(0,4);if(a.value){n.value=d;try{localStorage.setItem(s.value,JSON.stringify(d))}catch(m){console.warn("LocalStorage save failed:",m)}}},i=()=>{n.value=[],l&&localStorage.removeItem(s.value)};return e.onMounted(()=>{if(l&&a.value){const u=localStorage.getItem(s.value);if(u)try{n.value=JSON.parse(u)}catch{n.value=[]}}}),{searchHistory:n,saveToHistory:r,clearHistory:i,HasHistory:a}}async function at(t,n=["Continent","Country","City","Seaport","Airport"],o={}){return R.locationSearchV2.searchByName({keyword:t,displayInfo:n,...o})}const it=(t,n)=>R.locationSearchV2.searchByIdWithType(t,n);function ct(t,n){const o=e.ref([]),l=e.ref(!1),s=e.ref(!1),a=e.ref(1),r=e.ref(0),i=e.ref(10),u=e.computed(()=>r.value===0?!1:o.value.length>=r.value),c=e.computed(()=>{const f=[...n.value];return f.includes("Country")&&!f.includes("Region")&&f.push("Region"),f}),d=f=>!f||!Array.isArray(f)?[]:f.filter(p=>c.value.includes(p.type));return{searchResults:o,loading:l,isFetchingMore:s,isFinished:u,currentPage:a,total:r,fetchData:async(f=1,p=!1)=>{if(!t.value.trim()&&!p){o.value=[],r.value=0;return}if(!(p&&(s.value||u.value))&&!(!p&&l.value)){p?s.value=!0:(l.value=!0,a.value=1);try{const h=await at(t.value,n.value,{current:f,size:i.value}),y=h.records||[],A=d(y);p?o.value=[...o.value,...A]:o.value=A,r.value=h.total||0,a.value=f}catch(h){console.error("Failed to fetch search results:",h)}finally{l.value=!1,s.value=!1}}},filterByTypes:d}}const te=Math.min,M=Math.max,de=Math.round,ue=Math.floor,J=t=>({x:t,y:t}),ut={left:"right",right:"left",bottom:"top",top:"bottom"},dt={start:"end",end:"start"};function De(t,n,o){return M(t,te(n,o))}function re(t,n){return typeof t=="function"?t(n):t}function z(t){return t.split("-")[0]}function ae(t){return t.split("-")[1]}function He(t){return t==="x"?"y":"x"}function Qe(t){return t==="y"?"height":"width"}const ft=new Set(["top","bottom"]);function G(t){return ft.has(z(t))?"y":"x"}function $e(t){return He(G(t))}function mt(t,n,o){o===void 0&&(o=!1);const l=ae(t),s=$e(t),a=Qe(s);let r=s==="x"?l===(o?"end":"start")?"right":"left":l==="start"?"bottom":"top";return n.reference[a]>n.floating[a]&&(r=fe(r)),[r,fe(r)]}function pt(t){const n=fe(t);return[Ae(t),n,Ae(n)]}function Ae(t){return t.replace(/start|end/g,n=>dt[n])}const _e=["left","right"],Oe=["right","left"],ht=["top","bottom"],gt=["bottom","top"];function vt(t,n,o){switch(t){case"top":case"bottom":return o?n?Oe:_e:n?_e:Oe;case"left":case"right":return n?ht:gt;default:return[]}}function yt(t,n,o,l){const s=ae(t);let a=vt(z(t),o==="start",l);return s&&(a=a.map(r=>r+"-"+s),n&&(a=a.concat(a.map(Ae)))),a}function fe(t){return t.replace(/left|right|bottom|top/g,n=>ut[n])}function At(t){return{top:0,right:0,bottom:0,left:0,...t}}function wt(t){return typeof t!="number"?At(t):{top:t,right:t,bottom:t,left:t}}function me(t){const{x:n,y:o,width:l,height:s}=t;return{width:l,height:s,top:o,left:n,right:n+l,bottom:o+s,x:n,y:o}}function Te(t,n,o){let{reference:l,floating:s}=t;const a=G(n),r=$e(n),i=Qe(r),u=z(n),c=a==="y",d=l.x+l.width/2-s.width/2,m=l.y+l.height/2-s.height/2,f=l[i]/2-s[i]/2;let p;switch(u){case"top":p={x:d,y:l.y-s.height};break;case"bottom":p={x:d,y:l.y+l.height};break;case"right":p={x:l.x+l.width,y:m};break;case"left":p={x:l.x-s.width,y:m};break;default:p={x:l.x,y:l.y}}switch(ae(n)){case"start":p[r]-=f*(o&&c?-1:1);break;case"end":p[r]+=f*(o&&c?-1:1);break}return p}const Ct=async(t,n,o)=>{const{placement:l="bottom",strategy:s="absolute",middleware:a=[],platform:r}=o,i=a.filter(Boolean),u=await(r.isRTL==null?void 0:r.isRTL(n));let c=await r.getElementRects({reference:t,floating:n,strategy:s}),{x:d,y:m}=Te(c,l,u),f=l,p={},h=0;for(let y=0;y<i.length;y++){const{name:A,fn:g}=i[y],{x:w,y:x,data:V,reset:S}=await g({x:d,y:m,initialPlacement:l,placement:f,strategy:s,middlewareData:p,rects:c,platform:r,elements:{reference:t,floating:n}});d=w??d,m=x??m,p={...p,[A]:{...p[A],...V}},S&&h<=50&&(h++,typeof S=="object"&&(S.placement&&(f=S.placement),S.rects&&(c=S.rects===!0?await r.getElementRects({reference:t,floating:n,strategy:s}):S.rects),{x:d,y:m}=Te(c,f,u)),y=-1)}return{x:d,y:m,placement:f,strategy:s,middlewareData:p}};async function xe(t,n){var o;n===void 0&&(n={});const{x:l,y:s,platform:a,rects:r,elements:i,strategy:u}=t,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:m="floating",altBoundary:f=!1,padding:p=0}=re(n,t),h=wt(p),A=i[f?m==="floating"?"reference":"floating":m],g=me(await a.getClippingRect({element:(o=await(a.isElement==null?void 0:a.isElement(A)))==null||o?A:A.contextElement||await(a.getDocumentElement==null?void 0:a.getDocumentElement(i.floating)),boundary:c,rootBoundary:d,strategy:u})),w=m==="floating"?{x:l,y:s,width:r.floating.width,height:r.floating.height}:r.reference,x=await(a.getOffsetParent==null?void 0:a.getOffsetParent(i.floating)),V=await(a.isElement==null?void 0:a.isElement(x))?await(a.getScale==null?void 0:a.getScale(x))||{x:1,y:1}:{x:1,y:1},S=me(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:i,rect:w,offsetParent:x,strategy:u}):w);return{top:(g.top-S.top+h.top)/V.y,bottom:(S.bottom-g.bottom+h.bottom)/V.y,left:(g.left-S.left+h.left)/V.x,right:(S.right-g.right+h.right)/V.x}}const xt=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(n){var o,l;const{placement:s,middlewareData:a,rects:r,initialPlacement:i,platform:u,elements:c}=n,{mainAxis:d=!0,crossAxis:m=!0,fallbackPlacements:f,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:h="none",flipAlignment:y=!0,...A}=re(t,n);if((o=a.arrow)!=null&&o.alignmentOffset)return{};const g=z(s),w=G(i),x=z(i)===i,V=await(u.isRTL==null?void 0:u.isRTL(c.floating)),S=f||(x||!y?[fe(i)]:pt(i)),F=h!=="none";!f&&F&&S.push(...yt(i,y,h,V));const _=[i,...S],L=await xe(n,A),P=[];let O=((l=a.flip)==null?void 0:l.overflows)||[];if(d&&P.push(L[g]),m){const U=mt(s,r,V);P.push(L[U[0]],L[U[1]])}if(O=[...O,{placement:s,overflows:P}],!P.every(U=>U<=0)){var K,$;const U=(((K=a.flip)==null?void 0:K.index)||0)+1,j=_[U];if(j&&(!(m==="alignment"?w!==G(j):!1)||O.every(E=>G(E.placement)===w?E.overflows[0]>0:!0)))return{data:{index:U,overflows:O},reset:{placement:j}};let C=($=O.filter(k=>k.overflows[0]<=0).sort((k,E)=>k.overflows[1]-E.overflows[1])[0])==null?void 0:$.placement;if(!C)switch(p){case"bestFit":{var D;const k=(D=O.filter(E=>{if(F){const T=G(E.placement);return T===w||T==="y"}return!0}).map(E=>[E.placement,E.overflows.filter(T=>T>0).reduce((T,le)=>T+le,0)]).sort((E,T)=>E[1]-T[1])[0])==null?void 0:D[0];k&&(C=k);break}case"initialPlacement":C=i;break}if(s!==C)return{reset:{placement:C}}}return{}}}},kt=new Set(["left","top"]);async function Et(t,n){const{placement:o,platform:l,elements:s}=t,a=await(l.isRTL==null?void 0:l.isRTL(s.floating)),r=z(o),i=ae(o),u=G(o)==="y",c=kt.has(r)?-1:1,d=a&&u?-1:1,m=re(n,t);let{mainAxis:f,crossAxis:p,alignmentAxis:h}=typeof m=="number"?{mainAxis:m,crossAxis:0,alignmentAxis:null}:{mainAxis:m.mainAxis||0,crossAxis:m.crossAxis||0,alignmentAxis:m.alignmentAxis};return i&&typeof h=="number"&&(p=i==="end"?h*-1:h),u?{x:p*d,y:f*c}:{x:f*c,y:p*d}}const Vt=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(n){var o,l;const{x:s,y:a,placement:r,middlewareData:i}=n,u=await Et(n,t);return r===((o=i.offset)==null?void 0:o.placement)&&(l=i.arrow)!=null&&l.alignmentOffset?{}:{x:s+u.x,y:a+u.y,data:{...u,placement:r}}}}},St=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(n){const{x:o,y:l,placement:s}=n,{mainAxis:a=!0,crossAxis:r=!1,limiter:i={fn:A=>{let{x:g,y:w}=A;return{x:g,y:w}}},...u}=re(t,n),c={x:o,y:l},d=await xe(n,u),m=G(z(s)),f=He(m);let p=c[f],h=c[m];if(a){const A=f==="y"?"top":"left",g=f==="y"?"bottom":"right",w=p+d[A],x=p-d[g];p=De(w,p,x)}if(r){const A=m==="y"?"top":"left",g=m==="y"?"bottom":"right",w=h+d[A],x=h-d[g];h=De(w,h,x)}const y=i.fn({...n,[f]:p,[m]:h});return{...y,data:{x:y.x-o,y:y.y-l,enabled:{[f]:a,[m]:r}}}}}},bt=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(n){var o,l;const{placement:s,rects:a,platform:r,elements:i}=n,{apply:u=()=>{},...c}=re(t,n),d=await xe(n,c),m=z(s),f=ae(s),p=G(s)==="y",{width:h,height:y}=a.floating;let A,g;m==="top"||m==="bottom"?(A=m,g=f===(await(r.isRTL==null?void 0:r.isRTL(i.floating))?"start":"end")?"left":"right"):(g=m,A=f==="end"?"top":"bottom");const w=y-d.top-d.bottom,x=h-d.left-d.right,V=te(y-d[A],w),S=te(h-d[g],x),F=!n.middlewareData.shift;let _=V,L=S;if((o=n.middlewareData.shift)!=null&&o.enabled.x&&(L=x),(l=n.middlewareData.shift)!=null&&l.enabled.y&&(_=w),F&&!f){const O=M(d.left,0),K=M(d.right,0),$=M(d.top,0),D=M(d.bottom,0);p?L=h-2*(O!==0||K!==0?O+K:M(d.left,d.right)):_=y-2*($!==0||D!==0?$+D:M(d.top,d.bottom))}await u({...n,availableWidth:L,availableHeight:_});const P=await r.getDimensions(i.floating);return h!==P.width||y!==P.height?{reset:{rects:!0}}:{}}}};function pe(){return typeof window<"u"}function oe(t){return Je(t)?(t.nodeName||"").toLowerCase():"#document"}function I(t){var n;return(t==null||(n=t.ownerDocument)==null?void 0:n.defaultView)||window}function W(t){var n;return(n=(Je(t)?t.ownerDocument:t.document)||window.document)==null?void 0:n.documentElement}function Je(t){return pe()?t instanceof Node||t instanceof I(t).Node:!1}function H(t){return pe()?t instanceof Element||t instanceof I(t).Element:!1}function q(t){return pe()?t instanceof HTMLElement||t instanceof I(t).HTMLElement:!1}function Le(t){return!pe()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof I(t).ShadowRoot}const Nt=new Set(["inline","contents"]);function ie(t){const{overflow:n,overflowX:o,overflowY:l,display:s}=Q(t);return/auto|scroll|overlay|hidden|clip/.test(n+l+o)&&!Nt.has(s)}const Bt=new Set(["table","td","th"]);function Rt(t){return Bt.has(oe(t))}const Dt=[":popover-open",":modal"];function he(t){return Dt.some(n=>{try{return t.matches(n)}catch{return!1}})}const _t=["transform","translate","scale","rotate","perspective"],Ot=["transform","translate","scale","rotate","perspective","filter"],Tt=["paint","layout","strict","content"];function ke(t){const n=Ee(),o=H(t)?Q(t):t;return _t.some(l=>o[l]?o[l]!=="none":!1)||(o.containerType?o.containerType!=="normal":!1)||!n&&(o.backdropFilter?o.backdropFilter!=="none":!1)||!n&&(o.filter?o.filter!=="none":!1)||Ot.some(l=>(o.willChange||"").includes(l))||Tt.some(l=>(o.contain||"").includes(l))}function Lt(t){let n=Y(t);for(;q(n)&&!ne(n);){if(ke(n))return n;if(he(n))return null;n=Y(n)}return null}function Ee(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const Mt=new Set(["html","body","#document"]);function ne(t){return Mt.has(oe(t))}function Q(t){return I(t).getComputedStyle(t)}function ge(t){return H(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function Y(t){if(oe(t)==="html")return t;const n=t.assignedSlot||t.parentNode||Le(t)&&t.host||W(t);return Le(n)?n.host:n}function qe(t){const n=Y(t);return ne(n)?t.ownerDocument?t.ownerDocument.body:t.body:q(n)&&ie(n)?n:qe(n)}function se(t,n,o){var l;n===void 0&&(n=[]),o===void 0&&(o=!0);const s=qe(t),a=s===((l=t.ownerDocument)==null?void 0:l.body),r=I(s);if(a){const i=we(r);return n.concat(r,r.visualViewport||[],ie(s)?s:[],i&&o?se(i):[])}return n.concat(s,se(s,[],o))}function we(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function We(t){const n=Q(t);let o=parseFloat(n.width)||0,l=parseFloat(n.height)||0;const s=q(t),a=s?t.offsetWidth:o,r=s?t.offsetHeight:l,i=de(o)!==a||de(l)!==r;return i&&(o=a,l=r),{width:o,height:l,$:i}}function Ve(t){return H(t)?t:t.contextElement}function ee(t){const n=Ve(t);if(!q(n))return J(1);const o=n.getBoundingClientRect(),{width:l,height:s,$:a}=We(n);let r=(a?de(o.width):o.width)/l,i=(a?de(o.height):o.height)/s;return(!r||!Number.isFinite(r))&&(r=1),(!i||!Number.isFinite(i))&&(i=1),{x:r,y:i}}const It=J(0);function Ke(t){const n=I(t);return!Ee()||!n.visualViewport?It:{x:n.visualViewport.offsetLeft,y:n.visualViewport.offsetTop}}function Ft(t,n,o){return n===void 0&&(n=!1),!o||n&&o!==I(t)?!1:n}function Z(t,n,o,l){n===void 0&&(n=!1),o===void 0&&(o=!1);const s=t.getBoundingClientRect(),a=Ve(t);let r=J(1);n&&(l?H(l)&&(r=ee(l)):r=ee(t));const i=Ft(a,o,l)?Ke(a):J(0);let u=(s.left+i.x)/r.x,c=(s.top+i.y)/r.y,d=s.width/r.x,m=s.height/r.y;if(a){const f=I(a),p=l&&H(l)?I(l):l;let h=f,y=we(h);for(;y&&l&&p!==h;){const A=ee(y),g=y.getBoundingClientRect(),w=Q(y),x=g.left+(y.clientLeft+parseFloat(w.paddingLeft))*A.x,V=g.top+(y.clientTop+parseFloat(w.paddingTop))*A.y;u*=A.x,c*=A.y,d*=A.x,m*=A.y,u+=x,c+=V,h=I(y),y=we(h)}}return me({width:d,height:m,x:u,y:c})}function ve(t,n){const o=ge(t).scrollLeft;return n?n.left+o:Z(W(t)).left+o}function Ge(t,n){const o=t.getBoundingClientRect(),l=o.left+n.scrollLeft-ve(t,o),s=o.top+n.scrollTop;return{x:l,y:s}}function Pt(t){let{elements:n,rect:o,offsetParent:l,strategy:s}=t;const a=s==="fixed",r=W(l),i=n?he(n.floating):!1;if(l===r||i&&a)return o;let u={scrollLeft:0,scrollTop:0},c=J(1);const d=J(0),m=q(l);if((m||!m&&!a)&&((oe(l)!=="body"||ie(r))&&(u=ge(l)),q(l))){const p=Z(l);c=ee(l),d.x=p.x+l.clientLeft,d.y=p.y+l.clientTop}const f=r&&!m&&!a?Ge(r,u):J(0);return{width:o.width*c.x,height:o.height*c.y,x:o.x*c.x-u.scrollLeft*c.x+d.x+f.x,y:o.y*c.y-u.scrollTop*c.y+d.y+f.y}}function Ut(t){return Array.from(t.getClientRects())}function Ht(t){const n=W(t),o=ge(t),l=t.ownerDocument.body,s=M(n.scrollWidth,n.clientWidth,l.scrollWidth,l.clientWidth),a=M(n.scrollHeight,n.clientHeight,l.scrollHeight,l.clientHeight);let r=-o.scrollLeft+ve(t);const i=-o.scrollTop;return Q(l).direction==="rtl"&&(r+=M(n.clientWidth,l.clientWidth)-s),{width:s,height:a,x:r,y:i}}const Me=25;function Qt(t,n){const o=I(t),l=W(t),s=o.visualViewport;let a=l.clientWidth,r=l.clientHeight,i=0,u=0;if(s){a=s.width,r=s.height;const d=Ee();(!d||d&&n==="fixed")&&(i=s.offsetLeft,u=s.offsetTop)}const c=ve(l);if(c<=0){const d=l.ownerDocument,m=d.body,f=getComputedStyle(m),p=d.compatMode==="CSS1Compat"&&parseFloat(f.marginLeft)+parseFloat(f.marginRight)||0,h=Math.abs(l.clientWidth-m.clientWidth-p);h<=Me&&(a-=h)}else c<=Me&&(a+=c);return{width:a,height:r,x:i,y:u}}const $t=new Set(["absolute","fixed"]);function Jt(t,n){const o=Z(t,!0,n==="fixed"),l=o.top+t.clientTop,s=o.left+t.clientLeft,a=q(t)?ee(t):J(1),r=t.clientWidth*a.x,i=t.clientHeight*a.y,u=s*a.x,c=l*a.y;return{width:r,height:i,x:u,y:c}}function Ie(t,n,o){let l;if(n==="viewport")l=Qt(t,o);else if(n==="document")l=Ht(W(t));else if(H(n))l=Jt(n,o);else{const s=Ke(t);l={x:n.x-s.x,y:n.y-s.y,width:n.width,height:n.height}}return me(l)}function ze(t,n){const o=Y(t);return o===n||!H(o)||ne(o)?!1:Q(o).position==="fixed"||ze(o,n)}function qt(t,n){const o=n.get(t);if(o)return o;let l=se(t,[],!1).filter(i=>H(i)&&oe(i)!=="body"),s=null;const a=Q(t).position==="fixed";let r=a?Y(t):t;for(;H(r)&&!ne(r);){const i=Q(r),u=ke(r);!u&&i.position==="fixed"&&(s=null),(a?!u&&!s:!u&&i.position==="static"&&!!s&&$t.has(s.position)||ie(r)&&!u&&ze(t,r))?l=l.filter(d=>d!==r):s=i,r=Y(r)}return n.set(t,l),l}function Wt(t){let{element:n,boundary:o,rootBoundary:l,strategy:s}=t;const r=[...o==="clippingAncestors"?he(n)?[]:qt(n,this._c):[].concat(o),l],i=r[0],u=r.reduce((c,d)=>{const m=Ie(n,d,s);return c.top=M(m.top,c.top),c.right=te(m.right,c.right),c.bottom=te(m.bottom,c.bottom),c.left=M(m.left,c.left),c},Ie(n,i,s));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}}function Kt(t){const{width:n,height:o}=We(t);return{width:n,height:o}}function Gt(t,n,o){const l=q(n),s=W(n),a=o==="fixed",r=Z(t,!0,a,n);let i={scrollLeft:0,scrollTop:0};const u=J(0);function c(){u.x=ve(s)}if(l||!l&&!a)if((oe(n)!=="body"||ie(s))&&(i=ge(n)),l){const p=Z(n,!0,a,n);u.x=p.x+n.clientLeft,u.y=p.y+n.clientTop}else s&&c();a&&!l&&s&&c();const d=s&&!l&&!a?Ge(s,i):J(0),m=r.left+i.scrollLeft-u.x-d.x,f=r.top+i.scrollTop-u.y-d.y;return{x:m,y:f,width:r.width,height:r.height}}function ye(t){return Q(t).position==="static"}function Fe(t,n){if(!q(t)||Q(t).position==="fixed")return null;if(n)return n(t);let o=t.offsetParent;return W(t)===o&&(o=o.ownerDocument.body),o}function Ye(t,n){const o=I(t);if(he(t))return o;if(!q(t)){let s=Y(t);for(;s&&!ne(s);){if(H(s)&&!ye(s))return s;s=Y(s)}return o}let l=Fe(t,n);for(;l&&Rt(l)&&ye(l);)l=Fe(l,n);return l&&ne(l)&&ye(l)&&!ke(l)?o:l||Lt(t)||o}const zt=async function(t){const n=this.getOffsetParent||Ye,o=this.getDimensions,l=await o(t.floating);return{reference:Gt(t.reference,await n(t.floating),t.strategy),floating:{x:0,y:0,width:l.width,height:l.height}}};function Yt(t){return Q(t).direction==="rtl"}const jt={convertOffsetParentRelativeRectToViewportRelativeRect:Pt,getDocumentElement:W,getClippingRect:Wt,getOffsetParent:Ye,getElementRects:zt,getClientRects:Ut,getDimensions:Kt,getScale:ee,isElement:H,isRTL:Yt};function je(t,n){return t.x===n.x&&t.y===n.y&&t.width===n.width&&t.height===n.height}function Xt(t,n){let o=null,l;const s=W(t);function a(){var i;clearTimeout(l),(i=o)==null||i.disconnect(),o=null}function r(i,u){i===void 0&&(i=!1),u===void 0&&(u=1),a();const c=t.getBoundingClientRect(),{left:d,top:m,width:f,height:p}=c;if(i||n(),!f||!p)return;const h=ue(m),y=ue(s.clientWidth-(d+f)),A=ue(s.clientHeight-(m+p)),g=ue(d),x={rootMargin:-h+"px "+-y+"px "+-A+"px "+-g+"px",threshold:M(0,te(1,u))||1};let V=!0;function S(F){const _=F[0].intersectionRatio;if(_!==u){if(!V)return r();_?r(!1,_):l=setTimeout(()=>{r(!1,1e-7)},1e3)}_===1&&!je(c,t.getBoundingClientRect())&&r(),V=!1}try{o=new IntersectionObserver(S,{...x,root:s.ownerDocument})}catch{o=new IntersectionObserver(S,x)}o.observe(t)}return r(!0),a}function Zt(t,n,o,l){l===void 0&&(l={});const{ancestorScroll:s=!0,ancestorResize:a=!0,elementResize:r=typeof ResizeObserver=="function",layoutShift:i=typeof IntersectionObserver=="function",animationFrame:u=!1}=l,c=Ve(t),d=s||a?[...c?se(c):[],...se(n)]:[];d.forEach(g=>{s&&g.addEventListener("scroll",o,{passive:!0}),a&&g.addEventListener("resize",o)});const m=c&&i?Xt(c,o):null;let f=-1,p=null;r&&(p=new ResizeObserver(g=>{let[w]=g;w&&w.target===c&&p&&(p.unobserve(n),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var x;(x=p)==null||x.observe(n)})),o()}),c&&!u&&p.observe(c),p.observe(n));let h,y=u?Z(t):null;u&&A();function A(){const g=Z(t);y&&!je(y,g)&&o(),y=g,h=requestAnimationFrame(A)}return o(),()=>{var g;d.forEach(w=>{s&&w.removeEventListener("scroll",o),a&&w.removeEventListener("resize",o)}),m?.(),(g=p)==null||g.disconnect(),p=null,u&&cancelAnimationFrame(h)}}const en=Vt,tn=St,nn=xt,on=bt,ln=(t,n,o)=>{const l=new Map,s={platform:jt,...o},a={...s.platform,_c:l};return Ct(t,n,{...s,platform:a})};function sn(t,n){const o=e.ref({position:"fixed",left:"0",top:"0",zIndex:3e3});let l=null;const s=()=>{!t.value||!n.value||ln(t.value,n.value,{placement:"bottom-start",strategy:"fixed",middleware:[en(6),nn(),tn({padding:10}),on({apply({rects:i,elements:u}){const c=`${i.reference.width}px`;Object.assign(u.floating.style,{width:c,minWidth:c,maxWidth:c})}})]}).then(({x:i,y:u})=>{Object.assign(o.value,{left:`${i}px`,top:`${u}px`})})},a=()=>{t.value&&n.value&&(l=Zt(t.value,n.value,s))},r=()=>{l&&(l(),l=null)};return e.onBeforeUnmount(r),{floatingStyles:o,startTrack:a,stopTrack:r}}const rn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACT0lEQVR4AaRSO2hTYRT+zn9v2g6CiktFJYoVHXQoOljM2EIEh0orbRKa5qUuDoIZAnXI4FBwcRDikMcNkoQMQjcVESo4OASsW2kLBi3oUKiD1OZx7/H811wJZFF6uOee85/H93/3nKtwQPkvgFKpdKRgVR+UrFrOsurX9N3/DJCvVPxMwx+lKcbgKzbstPhwAXSyWK7eLZZrc4VCNZDPPx/Tt+kCrTqvOrQqfuNrc2OcgW0CduQM9TfJyIB5mQy8UaaxKbftFq3qL9HP1KGGFDe+NDdC/jPnlwgcZEM9lRiU2VFjgngI4FGxa0IvZXecU07XPsc2pkCUIULaa2Z2MsJ7Orkw/8kFiMVCb4XWcQV14w8temL4aJNM47Fh0OHEYqieWAyXT/jPBhzmh7o5EY28Rk/cGWSz2a4GSsTCt3tgs5qmDc726sTQvsS6/c0SFDz97lO/329K4z2Amm1u3ZK11SyrOmNC/ZDYSElWiT5R2resymUZ1pIUv2Qa+iafcrrFretDNJwTf94GUnt7u9u6to3hUW09dQEcIC+BR0LxqgztPnFrotd8wWHclNykaR4dYeCngj0IQNyekOQshLas8hmzLyA3B2UTU6l4eEX8Ld8IZsTu+Mg4hj5xGcTj8f1kLPxChjgO0AdWlAOwnkotbImFrHGFGdOy6u82aJAB+kUZywQ6KaH3ou7TcbguziRApiLWOXjiMvAO2iaic3rH6wxe1Wetd+KRNQKEDV9kwisd83QAQCfkr7uUjEUq2vdUgdJQFExEw++8mLa/AQAA//9h0VsEAAAABklEQVQDAKhs6Pxd3K8TAAAAAElFTkSuQmCC",an="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACgUlEQVR4AXRST0hUYRD/zbfbrqahQpAHlQ3dSurYoaBAwWNQkIT7J/ve09DQsOigkNCha4ckl4Lct0/S3QI7REFEBB08FBHRIYLwIJEodOlUurnfNN+6mq9weMPM+818v2/mm1HYQXK5XH02mz9h1fo7pOE/gkwmU+v5+fuGot8phJdWmSLLnl+4I0RV/xIFCGxCdU3DUwaOkULX18Uve1ydrC4xdwLcwRR9bnO2kwQIoCIDEowpXjsZ4vBCSyx+w/Nnb1KElkkwG4OqGhG79QUImEkT0T2JrpZ4fV5sF0Ad6je9BrBKxLeZuVv8rS9IAG4qGf5oTPSolNxIXOyUNjqlpb0W4xI+Cd62dVqcAAGBVqSCVmPMIoPCttzm2MEBAoeLir4hRK2AWPyVIAHRHMH0Ly0tCBF3M5t+Aq6A0HPJSSyCeZAIz7BNAgQwqxNyc1NL7MCoeyH1xNWpuKsTcet7fv46QI0/zdoEtkmAwHGcHyFQj/Q57vuPzm7m+X5efB6HYj3kOCubuLVlApltfdbPX5uaetCmdeKVAqUN1mdy04XR3PTsqAHPWMztTb24myvEBBuRM+WlUnbzDEXeya2D4XC0zrJqnXwsO3pG3mCMGWMK6lQZk2A0hH2GMSxL9VlI6lVkd90RgGKkVFrrc+9REXubjLH9FxfbbVUVGG5v4i2p8LD8x9ax65C66KTfKGCSDc97fv6DJzuf9QtDtm+iqsM1ot70w9O+YDbmSQ6bkkyCJitnAUcnryqmuExgSsZYKypvgFvS+5xVsJk0MGlps97mFCVXpnNZqoBcbo2QyJz7dCLj6JTj6tRxVyf3izZUtNndwM73SU55JzaO4Q8AAAD//54At5MAAAAGSURBVAMAh2IbMAJQAZQAAAAASUVORK5CYII=",cn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACC0lEQVR4AXxRv2tTURT+zk1iIjgoOMShkIJVNwf/gQYULOjQwaGvGl8TBMEMDg4ODgF17likvL4HIYm4OLg61K2CooWKDoKCDoJDHASb9N17POf5Enwk6eN+9/z+3nfvNZjxbYS9ymbYXlQ8CbvnZrRhKoEOFMl9zFHuuaJA/E4Jp5FMJTCwZWner/veCYX6ecQVsRNrKsFE1yGJDMFW1Hm4FXX7hnIvADquvkJ9zYn/U3vw35chYOA2Ebcc26uWbVWwnKKqOak9ktmmYLwyBATkY+d2b63d2FYgps9umNtTX6G18WTqmNRmTNB+djaIOqEpmC+FIn8Lom4vaD89n2lKgwkCebYNsvEnAlXI4CIMXSagTNa9l9p6Ojc2CUEYhiW5oE3IxQH4AYNFeb5qvea9SuB7Vc1J7ReDjomidZ2RWNKysyneFHNFovGgxIiizoWR9BGRqiKw76i0qj2JAo7jtwycJDvY1eQIDNM0lu+OYrUHf/BBbEmI9sTKP2VvNGpvAP4Kc1SVSGb2OlLiVQa+12srr7UrUZA6Lx27e0HUu6PnU/kOXGbwaT1Gq9XKa80xmgTa1hlFQiBP1hNWn4AdOd8DpmLfgnakYV/yv/UF5ipn+qLyvgGp2us6I/V/R+DYPiYenpKbv0Y8mGeLS0OmhYbvLQuWiGkeFkuGBwtrvrdyMKA5nVGCvwAAAP//q4xnOgAAAAZJREFUAwCH2O8KfEWHWQAAAABJRU5ErkJggg==",un="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACmklEQVR4AXRTT0jUQRT+3uyqGxgYeCiy1JAo6JBUp4Q81EEiKKiDa+H+/ENGHgPpZtChQ4EHL+Ku+9t0V7EkQSGPBYGHBIU6RAqt2cFDBw9C+3de3yy7hobDvHm/+d4337x58xuDQ9r4+FRDLJZqG49PtrvvQ2j4TyDmJ7sm/NRqoMpsIYD3RgIL7pvY54lEqvug0J5APB4PxfzUOwFGRWReVJp7I+GjW+nvxxQo0DagOjLhJxcctyK0J6BS/UaAc1nNtXrdnc88rzPtSMPDwwXiM7R2WNwDpMVKzTTKrSRQTq0tq9mOR55XWliOY2wsVQ+RRWZQiyACjiPQ9pg/0+U4JQEoBkXMi4OLmWpdsEZXofY5yYtSzH10HHJHBPYJMZhyhS8X84U5B+y36iaBNPxMr59nPTo9z8uU4jaToL8Yj88eN2xNTG+3r+/BBncMuSLRln1/+iZgdkhEY2NjvfMVo1DarbG20GIqoPMaqL5G38Zb+GBh36roMufpzc3N3xSvi0ZfX6APEYNAg86bjMluCFDr+7OX1JoWQNJed/ipaK6Z6oOi2dbTZ85eVan+YYLBL7yBdRb9IXkha23aPPa8bQBrFoUVqo4qMMU5mOZ2JBKeo98RiwHi8xQ7Qo6vCsdb6e+//4ubgJegLzlmDOQ6i/XKCVQskZg9aaFtRrBGsYytQpQiu+SPOI5xQ2+kK6mQJRJHo8lko8MqxswGhceCzY25mMnLEmOf3Br6f2/BaLaTqhuSl6/xxPRQNDrJehBRrSWxABMaMnmsKfCN9eEfSZS9lAG9O3OmJ9J1C9ABVb1rgoF1PqA/Cokw3k7stgKDvZHwHXcUYqW+J1CacejlcXoi4SvFvD2lRdxAER0s3glirS5Gyr7+FwAA//8Pj6q2AAAABklEQVQDAJPeLlNn5TR8AAAAAElFTkSuQmCC",dn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABFUlEQVR4AaRQO07DQBCdWe8B4B5IFFyAK9ARkIVNhIQEEiVtJLgABRVRvIBCJBquwBVyDgoaSnuHeZY3MlYcNsnIb8fze6M3hra0XoKJm95N3Nv3EnyhFvb2EgjRJbOMKqmO2tDcvQ5fK+qvl4CJbOn9/CJPP9tArp5sHtP4lc652VXxPL1Z1hRFIOytF1NuTJCfnT4Ms8HjSgJctn1xIt6hxqIkdK+u8U8zT1ESmP5enUkWmqMkhG2FmxXOvR+EGD5KAhoDqsQvtiMXJQGNQJ4N8mF6PMd/wL8SxuOXPSG21pj9p+L1EOjGyAHoQQ0zWGDqx9pbPWIpwqOEkw+gGyMHoAc1ozOkVhOcZyepYndNpDpPvwAAAP//BVQJHAAAAAZJREFUAwDZWL4hub5xHQAAAABJRU5ErkJggg==",Ce="data:image/svg+xml,%3csvg%20t='1695277594902'%20fill='%23fff'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='2534'%20width='200'%20height='200'%3e%3cpath%20d='M448%2085.333333a362.666667%20362.666667%200%201%200%20224.512%20647.509334l155.818667%20155.818666a42.666667%2042.666667%200%200%200%2060.330666-60.330666l-155.818666-155.818667A362.666667%20362.666667%200%200%200%20448%2085.333333zM170.666667%20448a277.333333%20277.333333%200%201%201%20554.666666%200%20277.333333%20277.333333%200%200%201-554.666666%200z'%20p-id='2535'%3e%3c/path%3e%3c/svg%3e",fn={class:"search-container"},mn={class:"selection-wrapper"},pn={class:"tag-text"},hn=["onClick"],gn={key:0,class:"search-tag collapse"},vn=["placeholder"],yn={class:"suffix-area"},An={key:1,class:"loading-spinner"},wn={class:"search-icon"},Cn=["src"],xn={key:0,class:"history-section"},kn={class:"history-header"},En=["onMousedown"],Vn=["src"],Sn={class:"type-text"},bn={class:"result-text"},Nn={key:0,class:"status-msg"},Bn=["onMousedown"],Rn=["src"],Dn={class:"type-text"},_n={class:"result-text"},On={key:0,class:"load-more-msg"},Tn={key:1,class:"load-more-msg no-more"},Ln={key:2,class:"status-msg"},Mn=e.defineComponent({__name:"index",props:{modelValue:{default:null},multiple:{type:Boolean,default:!1},collapseTags:{type:Boolean,default:!1},searchTypeList:{default:()=>["Continent","Country","Region","City","Seaport","Airport"]},historyKey:{default:void 0},lang:{default:""},placeholder:{},showSearchIcon:{type:Boolean,default:!0},showItemTag:{type:Boolean,default:!0}},emits:["update:modelValue","select","change","submit-search","remove"],setup(t,{emit:n}){const o=t,l=n,s=e.ref(null),a=e.ref(null),r=e.ref(null),i=e.ref(""),u=e.ref(""),c=e.ref(!1),d=e.ref(!1);let m=null;const f=e.computed(()=>o.modelValue?Array.isArray(o.modelValue)?o.modelValue:[o.modelValue]:[]),p=e.computed(()=>o.multiple?o.collapseTags?f.value.slice(0,1):f.value:[]),h=e.computed(()=>i.value||f.value.length>0),y=e.computed(()=>o.multiple?i.value?`${i.value.length*10+20}px`:"10px":"100%"),{searchHistory:A,saveToHistory:g,clearHistory:w}=rt(e.toRef(o,"historyKey")),{searchResults:x,loading:V,isFetchingMore:S,isFinished:F,currentPage:_,fetchData:L,filterByTypes:P}=ct(i,e.toRef(o,"searchTypeList")),{floatingStyles:O,startTrack:K,stopTrack:$}=sn(a,r),D=e.computed(()=>{if(o.lang)return o.lang==="en"||o.lang==="en-US";try{if(typeof useCookie=="function"){const v=useCookie("jc-language")?.value;if(v)return/^en(-US)?$/.test(v)}}catch{}if(typeof document<"u"){const v=document.cookie||"";return/(^|;\s*)jc-language=en(-US)?(;|$)/.test(v)}try{if(typeof useNuxtApp=="function"){const N=useNuxtApp()?.ssrContext?.event?.node?.req?.headers?.cookie||"";return/(^|;\s*)jc-language=en(-US)?(;|$)/.test(N)}}catch{}return!1}),U=e.computed(()=>o.multiple&&f.value.length>0?"":c.value&&!o.multiple?u.value:o.placeholder||D.value?"Please enter...":"请输入..."),j=()=>s.value?.focus(),C=v=>{if(g(v),o.multiple){if(!f.value.some(b=>b.id===v.id)){const b=[...f.value,v];l("update:modelValue",b)}i.value=""}else u.value=ce(v),c.value=!0,i.value="",d.value=!1,l("update:modelValue",v);l("select",v)},k=v=>{const N=f.value.filter(b=>b.id!==v.id);l("update:modelValue",N),l("remove",v)},E=()=>{o.multiple&&!i.value&&f.value.length>0&&k(f.value[f.value.length-1])},T=()=>{i.value="",c.value=!1,u.value="",l("update:modelValue",o.multiple?[]:null)},le=async()=>{if(d.value=!0,!o.multiple&&c.value&&x.value.length===0){const v=o.modelValue;if(v?.id){V.value=!0;try{const N=await it(v.id,v.type);x.value=P(N.records)}finally{V.value=!1}}}},tt=()=>setTimeout(()=>d.value=!1,200),nt=v=>{v.target.value===""&&!o.multiple&&T()},ot=()=>{o.multiple?l("submit-search",f.value):c.value&&l("submit-search",o.modelValue),d.value=!1},lt=v=>{const{scrollTop:N,scrollHeight:b,clientHeight:X}=v.target;N+X>=b-20&&!V.value&&!S.value&&!F.value&&i.value&&L(_.value+1,!0)};e.watch(d,v=>{v?K():$()}),e.watch(i,v=>{if(!v.trim()){x.value=[];return}m&&clearTimeout(m),m=setTimeout(()=>L(1,!1),300)});const Ne=v=>({City:dn,Country:un,Airport:rn,Seaport:cn})[v]||an,ce=v=>D.value?v.displayEn||v.display||"":v.displayCn||v.display||"",Be=v=>{const N={City:{en:"City",cn:"城市"},Country:{en:"Country",cn:"国家"},Region:{en:"Region",cn:"区域"},Airport:{en:"Airport",cn:"机场"},Seaport:{en:"Seaport",cn:"港口"}};return D.value?N[v].en:N[v].cn},st=v=>f.value.some(N=>N.id===v.id);return e.onBeforeUnmount($),(v,N)=>(e.openBlock(),e.createElementBlock("div",fn,[e.createElementVNode("div",{class:e.normalizeClass(["search-input-wrapper",{"is-multiple":t.multiple}]),ref_key:"referenceRef",ref:a,onClick:j},[e.createElementVNode("div",mn,[t.multiple&&f.value.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(b,X)=>(e.openBlock(),e.createElementBlock("div",{key:b.id||X,class:"search-tag"},[e.createElementVNode("span",pn,e.toDisplayString(ce(b)),1),e.createElementVNode("span",{class:"tag-close",onClick:e.withModifiers(Re=>k(b),["stop"])},"×",8,hn)]))),128)),t.collapseTags&&f.value.length>1?(e.openBlock(),e.createElementBlock("div",gn," + "+e.toDisplayString(f.value.length-1),1)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:s,class:e.normalizeClass({"is-selected-state":c.value&&!t.multiple}),"onUpdate:modelValue":N[0]||(N[0]=b=>i.value=b),type:"text",placeholder:U.value,style:e.normalizeStyle({width:y.value}),onFocus:le,onBlur:tt,onInput:nt,onKeydown:e.withKeys(E,["delete"])},null,46,vn),[[e.vModelText,i.value]])]),e.createElementVNode("div",yn,[h.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"clear-icon",onMousedown:N[1]||(N[1]=e.withModifiers(()=>{},["prevent"])),onClick:e.withModifiers(T,["stop"])},"ⓧ",32)):e.createCommentVNode("",!0),e.unref(V)&&!e.unref(S)?(e.openBlock(),e.createElementBlock("div",An)):!e.unref(V)&&t.showSearchIcon?(e.openBlock(),e.createElementBlock("button",{key:2,class:"search-btn",onClick:e.withModifiers(ot,["stop"])},[e.createElementVNode("span",wn,[e.createElementVNode("img",{src:e.unref(Ce),alt:"search"},null,8,Cn)])])):e.createCommentVNode("",!0)])],2),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.withDirectives(e.createElementVNode("div",{ref_key:"floatingRef",ref:r,class:"dropdown-list",style:e.normalizeStyle(e.unref(O)),onScroll:lt},[e.renderSlot(v.$slots,"history",{searchHistory:e.unref(A)},()=>[e.unref(A).length>0&&!i.value?(e.openBlock(),e.createElementBlock("div",xn,[e.createElementVNode("div",kn,[e.createElementVNode("span",null,e.toDisplayString(D.value?"Recent search":"最近搜索"),1),e.createElementVNode("span",{class:"clear-btn",onMousedown:N[2]||(N[2]=e.withModifiers(()=>{},["prevent"])),onClick:N[3]||(N[3]=e.withModifiers((...b)=>e.unref(w)&&e.unref(w)(...b),["stop"]))},e.toDisplayString(D.value?"Clear":"清空"),33)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(A),(b,X)=>(e.openBlock(),e.createElementBlock("div",{key:"hist-"+X,class:"dropdown-item",onMousedown:Re=>C(b)},[e.createElementVNode("div",{class:"category-tag",style:e.normalizeStyle(t.showItemTag?{}:{display:"none"})},[e.createElementVNode("img",{class:"type-icon",src:Ne(b.type),alt:""},null,8,Vn),e.createElementVNode("span",Sn,e.toDisplayString(Be(b.type)),1)],4),e.createElementVNode("div",bn,e.toDisplayString(ce(b)),1)],40,En))),128)),N[4]||(N[4]=e.createElementVNode("hr",{class:"divider"},null,-1))])):e.createCommentVNode("",!0)],!0),e.unref(V)&&!e.unref(S)?(e.openBlock(),e.createElementBlock("div",Nn,e.toDisplayString(D.value?"Searching...":"正在搜索中..."),1)):e.unref(x).length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.renderSlot(v.$slots,"results",{searchResults:e.unref(x)},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(x),(b,X)=>(e.openBlock(),e.createElementBlock("div",{key:X,class:e.normalizeClass(["dropdown-item",{"is-active":st(b)}]),onMousedown:Re=>C(b)},[e.createElementVNode("div",{class:"category-tag",style:e.normalizeStyle(t.showItemTag?{}:{display:"none"})},[e.createElementVNode("img",{class:"type-icon",src:Ne(b.type),alt:""},null,8,Rn),e.createElementVNode("span",Dn,e.toDisplayString(Be(b.type)),1)],4),e.createElementVNode("div",_n,e.toDisplayString(ce(b)),1)],42,Bn))),128))],!0),e.unref(S)?(e.openBlock(),e.createElementBlock("div",On,e.toDisplayString(D.value?"Loading more...":"正在加载更多..."),1)):e.unref(F)&&i.value?(e.openBlock(),e.createElementBlock("div",Tn,e.toDisplayString(D.value?"All results have been loaded":"已加载全部结果"),1)):e.createCommentVNode("",!0)],64)):i.value&&!e.unref(V)?(e.openBlock(),e.createElementBlock("div",Ln,[e.renderSlot(v.$slots,"noData",{},()=>[e.createTextVNode(e.toDisplayString(D.value?`No results found related to "${i.value}".`:`未找到与 "${i.value}" 相关的结果`),1)],!0)])):e.createCommentVNode("",!0)],36),[[e.vShow,d.value&&(e.unref(x).length>0||e.unref(V)||i.value||e.unref(A).length>0)]])]))]))}}),Se=(t,n)=>{const o=t.__vccOpts||t;for(const[l,s]of n)o[l]=s;return o},be=Se(Mn,[["__scopeId","data-v-53dd1a92"]]),In={class:"modal-container"},Fn={class:"modal-header"},Pn={class:"header-title"},Un={class:"modal-body"},Hn={class:"form-item"},Qn={class:"required"},$n={class:"input-box"},Jn=["placeholder"],qn={key:0,class:"error-message"},Wn={class:"form-item"},Kn={class:"required"},Gn={class:"type-group"},zn=["onClick"],Yn={key:0,class:"check-mark"},jn={class:"form-item"},Xn={class:"required"},Zn={key:0,class:"error-message"},eo={class:"modal-footer"},to={__name:"ApplyDataDialog",props:{value:{type:Boolean,default:!1},lang:{type:String,default:"en",validator:t=>["en","en-US","zh-CN","cn"].includes(t)},placeholder:{type:String,default:""}},emits:["update:value","confirm"],setup(t,{emit:n}){const o=t,l=n,s=[{typeCn:"城市",typeEn:"City",type:"City"},{typeCn:"海运港口",typeEn:"Port",type:"Seaport"},{typeCn:"机场",typeEn:"Airport",type:"Airport"}],a=e.ref(null),r=e.reactive({name:"",country:""}),i=e.reactive({name:"",type:"City"}),u=e.computed(()=>{if(o.lang)return o.lang==="en"||o.lang==="en-US";try{if(typeof useCookie=="function"){const m=useCookie("jc-language")?.value;if(m)return/^en(-US)?$/.test(m)}}catch{}if(typeof document<"u"){const m=document.cookie||"";return/(^|;\s*)jc-language=en(-US)?(;|$)/.test(m)}try{if(typeof useNuxtApp=="function"){const f=useNuxtApp()?.ssrContext?.event?.node?.req?.headers?.cookie||"";return/(^|;\s*)jc-language=en(-US)?(;|$)/.test(f)}}catch{}return!1}),c=()=>{r.name="",r.country="",l("update:value",!1)},d=()=>{r.name="",r.country="";let m=!0;i.name.trim()||(r.name="Data name is required",m=!1),a.value||(r.country="Please select a country",m=!1),m&&l("confirm",{...i,country:a.value})};return(m,f)=>t.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"modal-mask",onClick:e.withModifiers(c,["self"])},[e.createElementVNode("div",In,[e.createElementVNode("div",Fn,[e.createElementVNode("span",Pn,e.toDisplayString(u.value?"Apply for data addition":"申请补充数据"),1),e.createElementVNode("div",{class:"close-btn",onClick:c},"×")]),e.createElementVNode("div",Un,[e.createElementVNode("div",Hn,[e.createElementVNode("label",Qn,e.toDisplayString(u.value?"Data To Add":"需补充的数据"),1),e.createElementVNode("div",$n,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":f[0]||(f[0]=p=>i.name=p),type:"text",placeholder:t.placeholder??(u.value?" Please enter":"请输入"),class:e.normalizeClass(["custom-input",{"input-error":r.name}]),onInput:f[1]||(f[1]=p=>r.name="")},null,42,Jn),[[e.vModelText,i.name]])]),r.name?(e.openBlock(),e.createElementBlock("div",qn,e.toDisplayString(r.name),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Wn,[e.createElementVNode("label",Kn,e.toDisplayString(u.value?"Type":"所属类别"),1),e.createElementVNode("div",Gn,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(s,p=>e.createElementVNode("div",{key:p.type,class:e.normalizeClass(["type-btn",{active:i.type===p.type}]),onClick:h=>i.type=p.type},[e.createTextVNode(e.toDisplayString(u.value?p.typeEn:p.typeCn)+" ",1),i.type===p.type?(e.openBlock(),e.createElementBlock("div",Yn)):e.createCommentVNode("",!0)],10,zn)),64))])]),e.createElementVNode("div",jn,[e.createElementVNode("label",Xn,e.toDisplayString(u.value?"Country":"国家"),1),e.createElementVNode("div",{class:e.normalizeClass({"search-error-wrap":r.country})},[e.createVNode(be,{"search-type-list":["Country"],"model-value":a.value,"onUpdate:modelValue":[f[2]||(f[2]=p=>a.value=p),f[3]||(f[3]=p=>r.country="")],style:{margin:"0 auto"},lang:t.lang,placeholder:t.placeholder??(u.value?" Please enter":"请输入")},null,8,["model-value","lang","placeholder"])],2),r.country?(e.openBlock(),e.createElementBlock("div",Zn,e.toDisplayString(r.country),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",eo,[e.createElementVNode("button",{class:"confirm-btn",onClick:d},e.toDisplayString(u.value?"Submit":"申请补充"),1)])])])):e.createCommentVNode("",!0)}},Xe=Se(to,[["__scopeId","data-v-9c778fb9"]]),no={class:"global-modal-header-custom"},oo={class:"global-modal-body-custom"},lo={class:"global-modal-footer-custom"},Ze=e.defineComponent({__name:"GlobalModal",setup(t){const n=e.ref(),o=e.ref(!1),l=e.ref({city:"",company:"",email:"",phone:"",name:"",agreement:!1}),s=e.reactive({city:[{required:!0,message:"请输入所在地城市",trigger:"blur"}],company:[{required:!0,message:"请输入公司名称",trigger:"blur"}],email:[{required:!0,message:"请输入邮箱",trigger:"blur"},{type:"email",message:"请输入有效的邮箱地址",trigger:"blur"}],agreement:[{validator:(u,c,d)=>{c?d():d(new Error("请同意隐私政策"))},trigger:"change"}]}),a=()=>{o.value=!1,R.emitter.emit(R.MODAL_ACTION.Close,void 0),n.value?.resetFields()},r=async()=>{n.value&&await n.value.validate(u=>{u&&(R.emitter.emit(R.MODAL_ACTION.Submit,l.value),a(),l.value={city:"",company:"",email:"",phone:"",name:"",agreement:!1})})},i=u=>{o.value=!0};return e.onMounted(()=>{R.emitter.on(R.MODAL_ACTION.Open,i)}),e.onUnmounted(()=>{R.emitter.off(R.MODAL_ACTION.Open,i)}),(u,c)=>(e.openBlock(),e.createBlock(e.unref(B.ElDialog),{modelValue:o.value,"onUpdate:modelValue":c[7]||(c[7]=d=>o.value=d),"before-close":a,"show-close":!1,"close-on-click-modal":!0,width:500,class:"global-modal-custom"},{header:e.withCtx(()=>[e.createElementVNode("div",no,[c[9]||(c[9]=e.createElementVNode("h2",null,"即刻链接全球货代",-1)),e.createVNode(e.unref(B.ElButton),{link:"",onClick:a,class:"close-button-custom","aria-label":"Close"},{default:e.withCtx(()=>[...c[8]||(c[8]=[e.createElementVNode("span",{style:{"font-size":"2rem"}},"×",-1)])]),_:1})])]),footer:e.withCtx(()=>[e.createElementVNode("div",lo,[e.createVNode(e.unref(B.ElButton),{type:"primary",class:"submit-button-custom",onClick:r},{default:e.withCtx(()=>[...c[11]||(c[11]=[e.createTextVNode(" 加入会员 ",-1)])]),_:1})])]),default:e.withCtx(()=>[e.createElementVNode("div",oo,[e.createVNode(e.unref(B.ElForm),{model:l.value,rules:s,ref_key:"formRef",ref:n,"label-position":"top",onSubmit:c[6]||(c[6]=e.withModifiers(()=>{},["prevent"]))},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElRow),{gutter:20},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElCol),{span:12},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElFormItem),{label:"所在地(城市)",prop:"city"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElInput),{modelValue:l.value.city,"onUpdate:modelValue":c[0]||(c[0]=d=>l.value.city=d),placeholder:"请输入城市"},null,8,["modelValue"])]),_:1})]),_:1}),e.createVNode(e.unref(B.ElCol),{span:12},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElFormItem),{label:"公司名称",prop:"company"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElInput),{modelValue:l.value.company,"onUpdate:modelValue":c[1]||(c[1]=d=>l.value.company=d),placeholder:"请输入公司名称"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e.createVNode(e.unref(B.ElRow),{gutter:20},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElCol),{span:12},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElFormItem),{label:"邮箱",prop:"email"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElInput),{modelValue:l.value.email,"onUpdate:modelValue":c[2]||(c[2]=d=>l.value.email=d),placeholder:"请输入邮箱"},null,8,["modelValue"])]),_:1})]),_:1}),e.createVNode(e.unref(B.ElCol),{span:12},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElFormItem),{label:"电话",prop:"phone"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElInput),{modelValue:l.value.phone,"onUpdate:modelValue":c[3]||(c[3]=d=>l.value.phone=d),placeholder:"请输入电话"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e.createVNode(e.unref(B.ElRow),null,{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElCol),{span:24},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElFormItem),{label:"姓名",prop:"name"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElInput),{modelValue:l.value.name,"onUpdate:modelValue":c[4]||(c[4]=d=>l.value.name=d),placeholder:"请输入您的全名"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e.createVNode(e.unref(B.ElFormItem),{prop:"agreement",class:"agreement-item"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElCheckbox),{modelValue:l.value.agreement,"onUpdate:modelValue":c[5]||(c[5]=d=>l.value.agreement=d),label:"我同意"},null,8,["modelValue"]),c[10]||(c[10]=e.createElementVNode("a",{href:"#",class:"privacy-link"},"隐私政策",-1))]),_:1})]),_:1},8,["model","rules"])])]),_:1},8,["modelValue"]))}});function so(t){const n=e.ref([]),o="_search_history_cache",l=typeof window<"u"&&typeof localStorage<"u",s=e.computed(()=>(t.value||"")+o),a=e.computed(()=>!!t.value&&t.value!==""),r=u=>{if(!u||!l)return;const c=n.value.filter(m=>m.id&&m.id!==u.id||m.display!==u.display);c.unshift(u);const d=c.slice(0,4);if(a.value){n.value=d;try{localStorage.setItem(s.value,JSON.stringify(d))}catch(m){console.warn("LocalStorage save failed:",m)}}},i=()=>{n.value=[],l&&localStorage.removeItem(s.value)};return e.onMounted(()=>{if(l&&a.value){const u=localStorage.getItem(s.value);if(u)try{n.value=JSON.parse(u)}catch{n.value=[]}}}),{searchHistory:n,saveToHistory:r,clearHistory:i,HasHistory:a}}async function ro(t,n=["Continent","Country","City","Seaport","Airport"],o={}){return R.locationSearchV2.searchByName({keyword:t,displayInfo:n,...o})}function ao(t,n){const o=e.ref([]),l=e.ref(!1),s=e.ref(!1),a=e.ref(!1),r=e.ref(1),i=10,u=e.ref(0),c=e.computed(()=>{const f=[...n.value];return f.includes("Country")&&!f.includes("Region")&&f.push("Region"),f}),d=f=>Array.isArray(f)?f.filter(p=>c.value.includes(p.type)):[];return{searchResults:o,loading:l,isFetchingMore:s,isFinished:a,fetchData:async(f=!1)=>{const p=t.value.trim();if(!p){o.value=[],u.value=0,a.value=!1;return}if(f){if(s.value||a.value)return;s.value=!0,r.value+=1}else{if(l.value)return;l.value=!0,r.value=1,a.value=!1}try{const h=await ro(p,n.value,{current:r.value,size:i}),y=d(h.records||[]);f?o.value.push(...y):o.value=y,u.value=h.total||0,(o.value.length>=u.value||y.length<i)&&(a.value=!0)}catch(h){console.error("Search request failed:",h),f&&(r.value-=1)}finally{l.value=!1,s.value=!1}}}}const io={class:"h5-search-container"},co={class:"trigger-content"},uo=["src"],fo={class:"placeholder-text"},mo={key:0,class:"selected-count"},po={key:1,class:"selected-val"},ho={key:2,class:"placeholder-gray"},go={key:0,class:"h5-modal-root"},vo={class:"h5-drawer-card"},yo={class:"h5-header"},Ao={class:"h5-input-wrapper"},wo=["src"],Co=["placeholder"],xo={key:0,class:"h5-spinner-box"},ko={key:1,class:"h5-section"},Eo={class:"h5-section-hd"},Vo={class:"h5-history-grid"},So=["onClick"],bo={key:2,class:"h5-result-list"},No=["onClick"],Bo={class:"item-info"},Ro={class:"item-name"},Do={key:0,class:"item-sub"},_o={class:"h5-load-status"},Oo={key:1,class:"no-more"},To={key:3,class:"h5-empty"},Lo=e.defineComponent({__name:"index",props:{modelValue:{},multiple:{type:Boolean,default:!1},lang:{default:"zh-CN"},placeholder:{},historyKey:{}},emits:["update:modelValue","select"],setup(t,{emit:n}){const o=t,l=n,s=e.ref(!1),a=e.ref(""),r=e.ref(null),i=e.ref(null);let u=null;const{searchHistory:c,saveToHistory:d,clearHistory:m}=so(e.toRef(o,"historyKey")),{searchResults:f,loading:p,isFetchingMore:h,isFinished:y,fetchData:A}=ao(a,e.ref(["City","Seaport","Airport"])),g=e.computed(()=>{if(o.lang)return o.lang==="en"||o.lang==="en-US";try{if(typeof useCookie=="function"){const C=useCookie("jc-language")?.value;if(C)return/^en(-US)?$/.test(C)}}catch{}if(typeof document<"u"){const C=document.cookie||"";return/(^|;\s*)jc-language=en(-US)?(;|$)/.test(C)}try{if(typeof useNuxtApp=="function"){const k=useNuxtApp()?.ssrContext?.event?.node?.req?.headers?.cookie||"";return/(^|;\s*)jc-language=en(-US)?(;|$)/.test(k)}}catch{}return!1}),w=e.computed(()=>Array.isArray(o.modelValue)?o.modelValue:o.modelValue?[o.modelValue]:[]),x=e.computed(()=>!o.multiple&&!!o.modelValue),V=e.computed(()=>x.value?D(o.modelValue):""),S=e.computed(()=>w.value.length>0),F=()=>{s.value=!0,e.nextTick(()=>{r.value?.focus()})},_=()=>{s.value=!1,a.value=""},L=C=>{d(C),o.multiple?w.value.some(E=>E.id===C.id)||l("update:modelValue",[...w.value,C]):(l("update:modelValue",C),_()),l("select",C)},P=()=>{l("update:modelValue",o.multiple?[]:null)},O=e.ref(!1),K=C=>{const k=C.target;if(!k)return;k.scrollTop+k.clientHeight>=k.scrollHeight-80&&a.value&&!p.value&&!h.value&&!y.value&&!O.value&&(O.value=!0,A(!0))};e.watch(h,C=>{C||(O.value=!1)});const $=()=>{u&&clearTimeout(u),u=setTimeout(()=>{O.value=!1,i.value?.scrollTo({top:0}),console.log("🍉 ~ index.vue:279 ~ onInput ~ fetchData:",A),A(!1)},300)},D=C=>g.value?C.displayEn||C.display:C.displayCn||C.display,U=C=>{const k={City:"城市",Seaport:"港口",Airport:"机场"};return g.value?C:k[C]||C},j=C=>w.value.some(k=>k.id===C.id);return(C,k)=>(e.openBlock(),e.createElementBlock("div",io,[e.createElementVNode("div",{class:"search-trigger",onClick:F},[e.createElementVNode("div",co,[e.createElementVNode("img",{src:e.unref(Ce),class:"search-icon-m"},null,8,uo),e.createElementVNode("div",fo,[t.multiple&&w.value.length>0?(e.openBlock(),e.createElementBlock("span",mo,e.toDisplayString(g.value?"Selected":"已选")+" ("+e.toDisplayString(w.value.length)+")",1)):!t.multiple&&x.value?(e.openBlock(),e.createElementBlock("span",po,e.toDisplayString(V.value),1)):(e.openBlock(),e.createElementBlock("span",ho,e.toDisplayString(t.placeholder||(g.value?"Search":"搜索")),1))])]),S.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"clear-trigger",onClick:e.withModifiers(P,["stop"])},"ⓧ")):e.createCommentVNode("",!0)]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[s.value?(e.openBlock(),e.createElementBlock("div",go,[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"h5-mask",onClick:_})]),_:1}),e.createVNode(e.Transition,{name:"slide-up"},{default:e.withCtx(()=>[e.createElementVNode("div",vo,[e.createElementVNode("div",{class:"drawer-handle",onClick:_}),e.createElementVNode("div",yo,[e.createElementVNode("div",Ao,[e.createElementVNode("img",{src:e.unref(Ce),class:"inner-icon"},null,8,wo),e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:r,"onUpdate:modelValue":k[0]||(k[0]=E=>a.value=E),placeholder:g.value?"City/Port/Airport":"搜索城市/港口/机场",onInput:$},null,40,Co),[[e.vModelText,a.value]]),a.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"h5-clear-btn",onClick:k[1]||(k[1]=E=>a.value="")}," ✕ ")):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"h5-cancel-btn",onClick:_},e.toDisplayString(g.value?"Cancel":"取消"),1)]),e.createElementVNode("div",{class:"h5-main-content",ref_key:"scrollContainer",ref:i,onScroll:K},[e.unref(p)&&!e.unref(h)?(e.openBlock(),e.createElementBlock("div",xo,[...k[3]||(k[3]=[e.createElementVNode("div",{class:"h5-spinner"},null,-1)])])):e.createCommentVNode("",!0),!a.value&&e.unref(c).length>0?(e.openBlock(),e.createElementBlock("div",ko,[e.createElementVNode("div",Eo,[e.createElementVNode("span",null,e.toDisplayString(g.value?"Recent":"最近搜索"),1),e.createElementVNode("span",{class:"h5-clear-history",onClick:k[2]||(k[2]=(...E)=>e.unref(m)&&e.unref(m)(...E))},e.toDisplayString(g.value?"Clear":"清空"),1)]),e.createElementVNode("div",Vo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c),(E,T)=>(e.openBlock(),e.createElementBlock("div",{key:T,class:"h5-history-tag",onClick:le=>L(E)},e.toDisplayString(D(E)),9,So))),128))])])):e.createCommentVNode("",!0),e.unref(f).length>0?(e.openBlock(),e.createElementBlock("div",bo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),(E,T)=>(e.openBlock(),e.createElementBlock("div",{key:T,class:e.normalizeClass(["h5-result-item",{"is-active":j(E)}]),onClick:le=>L(E)},[e.createElementVNode("div",{class:e.normalizeClass(["item-type",E.type.toLowerCase()])},e.toDisplayString(U(E.type)),3),e.createElementVNode("div",Bo,[e.createElementVNode("div",Ro,e.toDisplayString(D(E)),1),E.parentName?(e.openBlock(),e.createElementBlock("div",Do,e.toDisplayString(E.parentName),1)):e.createCommentVNode("",!0)])],10,No))),128)),e.createElementVNode("div",_o,[e.unref(h)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[k[4]||(k[4]=e.createElementVNode("div",{class:"mini-spinner"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(g.value?"Loading...":"加载中..."),1)],64)):e.unref(y)&&a.value?(e.openBlock(),e.createElementBlock("span",Oo,e.toDisplayString(g.value?"No more results":"没有更多结果了"),1)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),a.value&&!e.unref(p)&&e.unref(f).length===0?(e.openBlock(),e.createElementBlock("div",To,e.toDisplayString(g.value?"No Results Found":"未找到相关结果"),1)):e.createCommentVNode("",!0)],544)])]),_:1})])):e.createCommentVNode("",!0)]))]))}}),et=Se(Lo,[["__scopeId","data-v-c1314e9c"]]);let Mo={open(){R.emitter.emit(R.MODAL_ACTION.Open)},close(){R.emitter.emit(R.MODAL_ACTION.Close)},onSubmit(t){R.emitter.on(R.MODAL_ACTION.Submit,t)}};function Io(){let t=!1;return{install(n){if(typeof window<"u"&&!t){const o=document.createElement("div");o.setAttribute("id","global-modal-root"),document.body.appendChild(o),e.createApp(Ze).mount(o),t=!0}n.config.globalProperties.$globalModal=Mo}}}const Pe={ApplyDataDialog:Xe,JcSearch:be,JCMSearch:et};let Ue=!1;const Fo={install(t,n){if(!Ue){Ue=!0,n?.sharedConfig&&R.initSharedConfig(n.sharedConfig);for(const o in Pe)t.component(o,Pe[o])}}};Object.defineProperty(exports,"MODAL_ACTION",{enumerable:!0,get:()=>R.MODAL_ACTION});Object.defineProperty(exports,"emitter",{enumerable:!0,get:()=>R.emitter});Object.defineProperty(exports,"initSharedConfig",{enumerable:!0,get:()=>R.initSharedConfig});exports.ApplyDataDialog=Xe;exports.GlobalModal=Ze;exports.JCMSearch=et;exports.JcSearch=be;exports.createGlobalModalPlugin=Io;exports.default=Fo;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),R=require("@jctrans-materials/shared"),B=require("element-plus");function pt(t){const n=e.ref([]),o="_search_history_cache",l=typeof window<"u"&&typeof localStorage<"u",r=e.computed(()=>(t.value||"")+o),a=e.computed(()=>!!t.value&&t.value!==""),s=u=>{if(!u||!l)return;const c=n.value.filter(m=>m.id&&m.id!==u.id||m.display!==u.display);c.unshift(u);const d=c.slice(0,4);if(a.value){n.value=d;try{localStorage.setItem(r.value,JSON.stringify(d))}catch(m){console.warn("LocalStorage save failed:",m)}}},i=()=>{n.value=[],l&&localStorage.removeItem(r.value)};return e.onMounted(()=>{if(l&&a.value){const u=localStorage.getItem(r.value);if(u)try{n.value=JSON.parse(u)}catch{n.value=[]}}}),{searchHistory:n,saveToHistory:s,clearHistory:i,HasHistory:a}}async function ht(t,n=["Continent","Country","City","Seaport","Airport"],o={}){return R.locationSearchV2.searchByName({keyword:t,displayInfo:n,...o})}const ke=(t,n)=>R.locationSearchV2.searchByIdWithType(t,n);function gt(t,n){const o=e.ref([]),l=e.ref(!1),r=e.ref(!1),a=e.ref(1),s=e.ref(0),i=e.ref(10),u=e.computed(()=>s.value===0?!1:o.value.length>=s.value),c=e.computed(()=>{const f=[...n.value];return f.includes("Country")&&!f.includes("Region")&&f.push("Region"),f}),d=f=>!f||!Array.isArray(f)?[]:f.filter(p=>c.value.includes(p.type));return{searchResults:o,loading:l,isFetchingMore:r,isFinished:u,currentPage:a,total:s,fetchData:async(f=1,p=!1)=>{if(!t.value.trim()&&!p){o.value=[],s.value=0;return}if(!(p&&(r.value||u.value))&&!(!p&&l.value)){p?r.value=!0:(l.value=!0,a.value=1);try{const h=await ht(t.value,n.value,{current:f,size:i.value}),y=h.records||[],A=d(y);p?o.value=[...o.value,...A]:o.value=A,s.value=h.total||0,a.value=f}catch(h){console.error("Failed to fetch search results:",h)}finally{l.value=!1,r.value=!1}}},filterByTypes:d}}const re=Math.min,I=Math.max,he=Math.round,pe=Math.floor,W=t=>({x:t,y:t}),vt={left:"right",right:"left",bottom:"top",top:"bottom"},yt={start:"end",end:"start"};function Ie(t,n,o){return I(t,re(n,o))}function ue(t,n){return typeof t=="function"?t(n):t}function X(t){return t.split("-")[0]}function de(t){return t.split("-")[1]}function Ke(t){return t==="x"?"y":"x"}function Ge(t){return t==="y"?"height":"width"}const At=new Set(["top","bottom"]);function j(t){return At.has(X(t))?"y":"x"}function ze(t){return Ke(j(t))}function wt(t,n,o){o===void 0&&(o=!1);const l=de(t),r=ze(t),a=Ge(r);let s=r==="x"?l===(o?"end":"start")?"right":"left":l==="start"?"bottom":"top";return n.reference[a]>n.floating[a]&&(s=ge(s)),[s,ge(s)]}function Ct(t){const n=ge(t);return[Ve(t),n,Ve(n)]}function Ve(t){return t.replace(/start|end/g,n=>yt[n])}const Fe=["left","right"],Pe=["right","left"],xt=["top","bottom"],kt=["bottom","top"];function Et(t,n,o){switch(t){case"top":case"bottom":return o?n?Pe:Fe:n?Fe:Pe;case"left":case"right":return n?xt:kt;default:return[]}}function Vt(t,n,o,l){const r=de(t);let a=Et(X(t),o==="start",l);return r&&(a=a.map(s=>s+"-"+r),n&&(a=a.concat(a.map(Ve)))),a}function ge(t){return t.replace(/left|right|bottom|top/g,n=>vt[n])}function St(t){return{top:0,right:0,bottom:0,left:0,...t}}function bt(t){return typeof t!="number"?St(t):{top:t,right:t,bottom:t,left:t}}function ve(t){const{x:n,y:o,width:l,height:r}=t;return{width:l,height:r,top:o,left:n,right:n+l,bottom:o+r,x:n,y:o}}function Ue(t,n,o){let{reference:l,floating:r}=t;const a=j(n),s=ze(n),i=Ge(s),u=X(n),c=a==="y",d=l.x+l.width/2-r.width/2,m=l.y+l.height/2-r.height/2,f=l[i]/2-r[i]/2;let p;switch(u){case"top":p={x:d,y:l.y-r.height};break;case"bottom":p={x:d,y:l.y+l.height};break;case"right":p={x:l.x+l.width,y:m};break;case"left":p={x:l.x-r.width,y:m};break;default:p={x:l.x,y:l.y}}switch(de(n)){case"start":p[s]-=f*(o&&c?-1:1);break;case"end":p[s]+=f*(o&&c?-1:1);break}return p}const Nt=async(t,n,o)=>{const{placement:l="bottom",strategy:r="absolute",middleware:a=[],platform:s}=o,i=a.filter(Boolean),u=await(s.isRTL==null?void 0:s.isRTL(n));let c=await s.getElementRects({reference:t,floating:n,strategy:r}),{x:d,y:m}=Ue(c,l,u),f=l,p={},h=0;for(let y=0;y<i.length;y++){const{name:A,fn:v}=i[y],{x:w,y:k,data:S,reset:b}=await v({x:d,y:m,initialPlacement:l,placement:f,strategy:r,middlewareData:p,rects:c,platform:s,elements:{reference:t,floating:n}});d=w??d,m=k??m,p={...p,[A]:{...p[A],...S}},b&&h<=50&&(h++,typeof b=="object"&&(b.placement&&(f=b.placement),b.rects&&(c=b.rects===!0?await s.getElementRects({reference:t,floating:n,strategy:r}):b.rects),{x:d,y:m}=Ue(c,f,u)),y=-1)}return{x:d,y:m,placement:f,strategy:r,middlewareData:p}};async function Ne(t,n){var o;n===void 0&&(n={});const{x:l,y:r,platform:a,rects:s,elements:i,strategy:u}=t,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:m="floating",altBoundary:f=!1,padding:p=0}=ue(n,t),h=bt(p),A=i[f?m==="floating"?"reference":"floating":m],v=ve(await a.getClippingRect({element:(o=await(a.isElement==null?void 0:a.isElement(A)))==null||o?A:A.contextElement||await(a.getDocumentElement==null?void 0:a.getDocumentElement(i.floating)),boundary:c,rootBoundary:d,strategy:u})),w=m==="floating"?{x:l,y:r,width:s.floating.width,height:s.floating.height}:s.reference,k=await(a.getOffsetParent==null?void 0:a.getOffsetParent(i.floating)),S=await(a.isElement==null?void 0:a.isElement(k))?await(a.getScale==null?void 0:a.getScale(k))||{x:1,y:1}:{x:1,y:1},b=ve(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:i,rect:w,offsetParent:k,strategy:u}):w);return{top:(v.top-b.top+h.top)/S.y,bottom:(b.bottom-v.bottom+h.bottom)/S.y,left:(v.left-b.left+h.left)/S.x,right:(b.right-v.right+h.right)/S.x}}const Bt=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(n){var o,l;const{placement:r,middlewareData:a,rects:s,initialPlacement:i,platform:u,elements:c}=n,{mainAxis:d=!0,crossAxis:m=!0,fallbackPlacements:f,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:h="none",flipAlignment:y=!0,...A}=ue(t,n);if((o=a.arrow)!=null&&o.alignmentOffset)return{};const v=X(r),w=j(i),k=X(i)===i,S=await(u.isRTL==null?void 0:u.isRTL(c.floating)),b=f||(k||!y?[ge(i)]:Ct(i)),P=h!=="none";!f&&P&&b.push(...Vt(i,y,h,S));const _=[i,...b],L=await Ne(n,A),U=[];let O=((l=a.flip)==null?void 0:l.overflows)||[];if(d&&U.push(L[v]),m){const H=wt(r,s,S);U.push(L[H[0]],L[H[1]])}if(O=[...O,{placement:r,overflows:U}],!U.every(H=>H<=0)){var z,J;const H=(((z=a.flip)==null?void 0:z.index)||0)+1,ee=_[H];if(ee&&(!(m==="alignment"?w!==j(ee):!1)||O.every(V=>j(V.placement)===w?V.overflows[0]>0:!0)))return{data:{index:H,overflows:O},reset:{placement:ee}};let C=(J=O.filter(E=>E.overflows[0]<=0).sort((E,V)=>E.overflows[1]-V.overflows[1])[0])==null?void 0:J.placement;if(!C)switch(p){case"bestFit":{var D;const E=(D=O.filter(V=>{if(P){const T=j(V.placement);return T===w||T==="y"}return!0}).map(V=>[V.placement,V.overflows.filter(T=>T>0).reduce((T,ie)=>T+ie,0)]).sort((V,T)=>V[1]-T[1])[0])==null?void 0:D[0];E&&(C=E);break}case"initialPlacement":C=i;break}if(r!==C)return{reset:{placement:C}}}return{}}}},Rt=new Set(["left","top"]);async function Dt(t,n){const{placement:o,platform:l,elements:r}=t,a=await(l.isRTL==null?void 0:l.isRTL(r.floating)),s=X(o),i=de(o),u=j(o)==="y",c=Rt.has(s)?-1:1,d=a&&u?-1:1,m=ue(n,t);let{mainAxis:f,crossAxis:p,alignmentAxis:h}=typeof m=="number"?{mainAxis:m,crossAxis:0,alignmentAxis:null}:{mainAxis:m.mainAxis||0,crossAxis:m.crossAxis||0,alignmentAxis:m.alignmentAxis};return i&&typeof h=="number"&&(p=i==="end"?h*-1:h),u?{x:p*d,y:f*c}:{x:f*c,y:p*d}}const _t=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(n){var o,l;const{x:r,y:a,placement:s,middlewareData:i}=n,u=await Dt(n,t);return s===((o=i.offset)==null?void 0:o.placement)&&(l=i.arrow)!=null&&l.alignmentOffset?{}:{x:r+u.x,y:a+u.y,data:{...u,placement:s}}}}},Ot=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(n){const{x:o,y:l,placement:r}=n,{mainAxis:a=!0,crossAxis:s=!1,limiter:i={fn:A=>{let{x:v,y:w}=A;return{x:v,y:w}}},...u}=ue(t,n),c={x:o,y:l},d=await Ne(n,u),m=j(X(r)),f=Ke(m);let p=c[f],h=c[m];if(a){const A=f==="y"?"top":"left",v=f==="y"?"bottom":"right",w=p+d[A],k=p-d[v];p=Ie(w,p,k)}if(s){const A=m==="y"?"top":"left",v=m==="y"?"bottom":"right",w=h+d[A],k=h-d[v];h=Ie(w,h,k)}const y=i.fn({...n,[f]:p,[m]:h});return{...y,data:{x:y.x-o,y:y.y-l,enabled:{[f]:a,[m]:s}}}}}},Tt=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(n){var o,l;const{placement:r,rects:a,platform:s,elements:i}=n,{apply:u=()=>{},...c}=ue(t,n),d=await Ne(n,c),m=X(r),f=de(r),p=j(r)==="y",{width:h,height:y}=a.floating;let A,v;m==="top"||m==="bottom"?(A=m,v=f===(await(s.isRTL==null?void 0:s.isRTL(i.floating))?"start":"end")?"left":"right"):(v=m,A=f==="end"?"top":"bottom");const w=y-d.top-d.bottom,k=h-d.left-d.right,S=re(y-d[A],w),b=re(h-d[v],k),P=!n.middlewareData.shift;let _=S,L=b;if((o=n.middlewareData.shift)!=null&&o.enabled.x&&(L=k),(l=n.middlewareData.shift)!=null&&l.enabled.y&&(_=w),P&&!f){const O=I(d.left,0),z=I(d.right,0),J=I(d.top,0),D=I(d.bottom,0);p?L=h-2*(O!==0||z!==0?O+z:I(d.left,d.right)):_=y-2*(J!==0||D!==0?J+D:I(d.top,d.bottom))}await u({...n,availableWidth:L,availableHeight:_});const U=await s.getDimensions(i.floating);return h!==U.width||y!==U.height?{reset:{rects:!0}}:{}}}};function ye(){return typeof window<"u"}function ae(t){return Ye(t)?(t.nodeName||"").toLowerCase():"#document"}function F(t){var n;return(t==null||(n=t.ownerDocument)==null?void 0:n.defaultView)||window}function G(t){var n;return(n=(Ye(t)?t.ownerDocument:t.document)||window.document)==null?void 0:n.documentElement}function Ye(t){return ye()?t instanceof Node||t instanceof F(t).Node:!1}function Q(t){return ye()?t instanceof Element||t instanceof F(t).Element:!1}function K(t){return ye()?t instanceof HTMLElement||t instanceof F(t).HTMLElement:!1}function He(t){return!ye()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof F(t).ShadowRoot}const Lt=new Set(["inline","contents"]);function fe(t){const{overflow:n,overflowX:o,overflowY:l,display:r}=$(t);return/auto|scroll|overlay|hidden|clip/.test(n+l+o)&&!Lt.has(r)}const Mt=new Set(["table","td","th"]);function It(t){return Mt.has(ae(t))}const Ft=[":popover-open",":modal"];function Ae(t){return Ft.some(n=>{try{return t.matches(n)}catch{return!1}})}const Pt=["transform","translate","scale","rotate","perspective"],Ut=["transform","translate","scale","rotate","perspective","filter"],Ht=["paint","layout","strict","content"];function Be(t){const n=Re(),o=Q(t)?$(t):t;return Pt.some(l=>o[l]?o[l]!=="none":!1)||(o.containerType?o.containerType!=="normal":!1)||!n&&(o.backdropFilter?o.backdropFilter!=="none":!1)||!n&&(o.filter?o.filter!=="none":!1)||Ut.some(l=>(o.willChange||"").includes(l))||Ht.some(l=>(o.contain||"").includes(l))}function Qt(t){let n=Z(t);for(;K(n)&&!se(n);){if(Be(n))return n;if(Ae(n))return null;n=Z(n)}return null}function Re(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const $t=new Set(["html","body","#document"]);function se(t){return $t.has(ae(t))}function $(t){return F(t).getComputedStyle(t)}function we(t){return Q(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function Z(t){if(ae(t)==="html")return t;const n=t.assignedSlot||t.parentNode||He(t)&&t.host||G(t);return He(n)?n.host:n}function je(t){const n=Z(t);return se(n)?t.ownerDocument?t.ownerDocument.body:t.body:K(n)&&fe(n)?n:je(n)}function ce(t,n,o){var l;n===void 0&&(n=[]),o===void 0&&(o=!0);const r=je(t),a=r===((l=t.ownerDocument)==null?void 0:l.body),s=F(r);if(a){const i=Se(s);return n.concat(s,s.visualViewport||[],fe(r)?r:[],i&&o?ce(i):[])}return n.concat(r,ce(r,[],o))}function Se(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function Xe(t){const n=$(t);let o=parseFloat(n.width)||0,l=parseFloat(n.height)||0;const r=K(t),a=r?t.offsetWidth:o,s=r?t.offsetHeight:l,i=he(o)!==a||he(l)!==s;return i&&(o=a,l=s),{width:o,height:l,$:i}}function De(t){return Q(t)?t:t.contextElement}function le(t){const n=De(t);if(!K(n))return W(1);const o=n.getBoundingClientRect(),{width:l,height:r,$:a}=Xe(n);let s=(a?he(o.width):o.width)/l,i=(a?he(o.height):o.height)/r;return(!s||!Number.isFinite(s))&&(s=1),(!i||!Number.isFinite(i))&&(i=1),{x:s,y:i}}const Jt=W(0);function Ze(t){const n=F(t);return!Re()||!n.visualViewport?Jt:{x:n.visualViewport.offsetLeft,y:n.visualViewport.offsetTop}}function qt(t,n,o){return n===void 0&&(n=!1),!o||n&&o!==F(t)?!1:n}function ne(t,n,o,l){n===void 0&&(n=!1),o===void 0&&(o=!1);const r=t.getBoundingClientRect(),a=De(t);let s=W(1);n&&(l?Q(l)&&(s=le(l)):s=le(t));const i=qt(a,o,l)?Ze(a):W(0);let u=(r.left+i.x)/s.x,c=(r.top+i.y)/s.y,d=r.width/s.x,m=r.height/s.y;if(a){const f=F(a),p=l&&Q(l)?F(l):l;let h=f,y=Se(h);for(;y&&l&&p!==h;){const A=le(y),v=y.getBoundingClientRect(),w=$(y),k=v.left+(y.clientLeft+parseFloat(w.paddingLeft))*A.x,S=v.top+(y.clientTop+parseFloat(w.paddingTop))*A.y;u*=A.x,c*=A.y,d*=A.x,m*=A.y,u+=k,c+=S,h=F(y),y=Se(h)}}return ve({width:d,height:m,x:u,y:c})}function Ce(t,n){const o=we(t).scrollLeft;return n?n.left+o:ne(G(t)).left+o}function et(t,n){const o=t.getBoundingClientRect(),l=o.left+n.scrollLeft-Ce(t,o),r=o.top+n.scrollTop;return{x:l,y:r}}function Wt(t){let{elements:n,rect:o,offsetParent:l,strategy:r}=t;const a=r==="fixed",s=G(l),i=n?Ae(n.floating):!1;if(l===s||i&&a)return o;let u={scrollLeft:0,scrollTop:0},c=W(1);const d=W(0),m=K(l);if((m||!m&&!a)&&((ae(l)!=="body"||fe(s))&&(u=we(l)),K(l))){const p=ne(l);c=le(l),d.x=p.x+l.clientLeft,d.y=p.y+l.clientTop}const f=s&&!m&&!a?et(s,u):W(0);return{width:o.width*c.x,height:o.height*c.y,x:o.x*c.x-u.scrollLeft*c.x+d.x+f.x,y:o.y*c.y-u.scrollTop*c.y+d.y+f.y}}function Kt(t){return Array.from(t.getClientRects())}function Gt(t){const n=G(t),o=we(t),l=t.ownerDocument.body,r=I(n.scrollWidth,n.clientWidth,l.scrollWidth,l.clientWidth),a=I(n.scrollHeight,n.clientHeight,l.scrollHeight,l.clientHeight);let s=-o.scrollLeft+Ce(t);const i=-o.scrollTop;return $(l).direction==="rtl"&&(s+=I(n.clientWidth,l.clientWidth)-r),{width:r,height:a,x:s,y:i}}const Qe=25;function zt(t,n){const o=F(t),l=G(t),r=o.visualViewport;let a=l.clientWidth,s=l.clientHeight,i=0,u=0;if(r){a=r.width,s=r.height;const d=Re();(!d||d&&n==="fixed")&&(i=r.offsetLeft,u=r.offsetTop)}const c=Ce(l);if(c<=0){const d=l.ownerDocument,m=d.body,f=getComputedStyle(m),p=d.compatMode==="CSS1Compat"&&parseFloat(f.marginLeft)+parseFloat(f.marginRight)||0,h=Math.abs(l.clientWidth-m.clientWidth-p);h<=Qe&&(a-=h)}else c<=Qe&&(a+=c);return{width:a,height:s,x:i,y:u}}const Yt=new Set(["absolute","fixed"]);function jt(t,n){const o=ne(t,!0,n==="fixed"),l=o.top+t.clientTop,r=o.left+t.clientLeft,a=K(t)?le(t):W(1),s=t.clientWidth*a.x,i=t.clientHeight*a.y,u=r*a.x,c=l*a.y;return{width:s,height:i,x:u,y:c}}function $e(t,n,o){let l;if(n==="viewport")l=zt(t,o);else if(n==="document")l=Gt(G(t));else if(Q(n))l=jt(n,o);else{const r=Ze(t);l={x:n.x-r.x,y:n.y-r.y,width:n.width,height:n.height}}return ve(l)}function tt(t,n){const o=Z(t);return o===n||!Q(o)||se(o)?!1:$(o).position==="fixed"||tt(o,n)}function Xt(t,n){const o=n.get(t);if(o)return o;let l=ce(t,[],!1).filter(i=>Q(i)&&ae(i)!=="body"),r=null;const a=$(t).position==="fixed";let s=a?Z(t):t;for(;Q(s)&&!se(s);){const i=$(s),u=Be(s);!u&&i.position==="fixed"&&(r=null),(a?!u&&!r:!u&&i.position==="static"&&!!r&&Yt.has(r.position)||fe(s)&&!u&&tt(t,s))?l=l.filter(d=>d!==s):r=i,s=Z(s)}return n.set(t,l),l}function Zt(t){let{element:n,boundary:o,rootBoundary:l,strategy:r}=t;const s=[...o==="clippingAncestors"?Ae(n)?[]:Xt(n,this._c):[].concat(o),l],i=s[0],u=s.reduce((c,d)=>{const m=$e(n,d,r);return c.top=I(m.top,c.top),c.right=re(m.right,c.right),c.bottom=re(m.bottom,c.bottom),c.left=I(m.left,c.left),c},$e(n,i,r));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}}function en(t){const{width:n,height:o}=Xe(t);return{width:n,height:o}}function tn(t,n,o){const l=K(n),r=G(n),a=o==="fixed",s=ne(t,!0,a,n);let i={scrollLeft:0,scrollTop:0};const u=W(0);function c(){u.x=Ce(r)}if(l||!l&&!a)if((ae(n)!=="body"||fe(r))&&(i=we(n)),l){const p=ne(n,!0,a,n);u.x=p.x+n.clientLeft,u.y=p.y+n.clientTop}else r&&c();a&&!l&&r&&c();const d=r&&!l&&!a?et(r,i):W(0),m=s.left+i.scrollLeft-u.x-d.x,f=s.top+i.scrollTop-u.y-d.y;return{x:m,y:f,width:s.width,height:s.height}}function Ee(t){return $(t).position==="static"}function Je(t,n){if(!K(t)||$(t).position==="fixed")return null;if(n)return n(t);let o=t.offsetParent;return G(t)===o&&(o=o.ownerDocument.body),o}function nt(t,n){const o=F(t);if(Ae(t))return o;if(!K(t)){let r=Z(t);for(;r&&!se(r);){if(Q(r)&&!Ee(r))return r;r=Z(r)}return o}let l=Je(t,n);for(;l&&It(l)&&Ee(l);)l=Je(l,n);return l&&se(l)&&Ee(l)&&!Be(l)?o:l||Qt(t)||o}const nn=async function(t){const n=this.getOffsetParent||nt,o=this.getDimensions,l=await o(t.floating);return{reference:tn(t.reference,await n(t.floating),t.strategy),floating:{x:0,y:0,width:l.width,height:l.height}}};function on(t){return $(t).direction==="rtl"}const ln={convertOffsetParentRelativeRectToViewportRelativeRect:Wt,getDocumentElement:G,getClippingRect:Zt,getOffsetParent:nt,getElementRects:nn,getClientRects:Kt,getDimensions:en,getScale:le,isElement:Q,isRTL:on};function ot(t,n){return t.x===n.x&&t.y===n.y&&t.width===n.width&&t.height===n.height}function rn(t,n){let o=null,l;const r=G(t);function a(){var i;clearTimeout(l),(i=o)==null||i.disconnect(),o=null}function s(i,u){i===void 0&&(i=!1),u===void 0&&(u=1),a();const c=t.getBoundingClientRect(),{left:d,top:m,width:f,height:p}=c;if(i||n(),!f||!p)return;const h=pe(m),y=pe(r.clientWidth-(d+f)),A=pe(r.clientHeight-(m+p)),v=pe(d),k={rootMargin:-h+"px "+-y+"px "+-A+"px "+-v+"px",threshold:I(0,re(1,u))||1};let S=!0;function b(P){const _=P[0].intersectionRatio;if(_!==u){if(!S)return s();_?s(!1,_):l=setTimeout(()=>{s(!1,1e-7)},1e3)}_===1&&!ot(c,t.getBoundingClientRect())&&s(),S=!1}try{o=new IntersectionObserver(b,{...k,root:r.ownerDocument})}catch{o=new IntersectionObserver(b,k)}o.observe(t)}return s(!0),a}function sn(t,n,o,l){l===void 0&&(l={});const{ancestorScroll:r=!0,ancestorResize:a=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:i=typeof IntersectionObserver=="function",animationFrame:u=!1}=l,c=De(t),d=r||a?[...c?ce(c):[],...ce(n)]:[];d.forEach(v=>{r&&v.addEventListener("scroll",o,{passive:!0}),a&&v.addEventListener("resize",o)});const m=c&&i?rn(c,o):null;let f=-1,p=null;s&&(p=new ResizeObserver(v=>{let[w]=v;w&&w.target===c&&p&&(p.unobserve(n),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var k;(k=p)==null||k.observe(n)})),o()}),c&&!u&&p.observe(c),p.observe(n));let h,y=u?ne(t):null;u&&A();function A(){const v=ne(t);y&&!ot(y,v)&&o(),y=v,h=requestAnimationFrame(A)}return o(),()=>{var v;d.forEach(w=>{r&&w.removeEventListener("scroll",o),a&&w.removeEventListener("resize",o)}),m?.(),(v=p)==null||v.disconnect(),p=null,u&&cancelAnimationFrame(h)}}const an=_t,cn=Ot,un=Bt,dn=Tt,fn=(t,n,o)=>{const l=new Map,r={platform:ln,...o},a={...r.platform,_c:l};return Nt(t,n,{...r,platform:a})};function mn(t,n){const o=e.ref({position:"fixed",left:"0",top:"0",zIndex:3e3});let l=null;const r=()=>{!t.value||!n.value||fn(t.value,n.value,{placement:"bottom-start",strategy:"fixed",middleware:[an(6),un(),cn({padding:10}),dn({apply({rects:i,elements:u}){const c=`${i.reference.width}px`;Object.assign(u.floating.style,{width:c,minWidth:c,maxWidth:c})}})]}).then(({x:i,y:u})=>{Object.assign(o.value,{left:`${i}px`,top:`${u}px`})})},a=()=>{t.value&&n.value&&(l=sn(t.value,n.value,r))},s=()=>{l&&(l(),l=null)};return e.onBeforeUnmount(s),{floatingStyles:o,startTrack:a,stopTrack:s}}const pn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACT0lEQVR4AaRSO2hTYRT+zn9v2g6CiktFJYoVHXQoOljM2EIEh0orbRKa5qUuDoIZAnXI4FBwcRDikMcNkoQMQjcVESo4OASsW2kLBi3oUKiD1OZx7/H811wJZFF6uOee85/H93/3nKtwQPkvgFKpdKRgVR+UrFrOsurX9N3/DJCvVPxMwx+lKcbgKzbstPhwAXSyWK7eLZZrc4VCNZDPPx/Tt+kCrTqvOrQqfuNrc2OcgW0CduQM9TfJyIB5mQy8UaaxKbftFq3qL9HP1KGGFDe+NDdC/jPnlwgcZEM9lRiU2VFjgngI4FGxa0IvZXecU07XPsc2pkCUIULaa2Z2MsJ7Orkw/8kFiMVCb4XWcQV14w8temL4aJNM47Fh0OHEYqieWAyXT/jPBhzmh7o5EY28Rk/cGWSz2a4GSsTCt3tgs5qmDc726sTQvsS6/c0SFDz97lO/329K4z2Amm1u3ZK11SyrOmNC/ZDYSElWiT5R2resymUZ1pIUv2Qa+iafcrrFretDNJwTf94GUnt7u9u6to3hUW09dQEcIC+BR0LxqgztPnFrotd8wWHclNykaR4dYeCngj0IQNyekOQshLas8hmzLyA3B2UTU6l4eEX8Ld8IZsTu+Mg4hj5xGcTj8f1kLPxChjgO0AdWlAOwnkotbImFrHGFGdOy6u82aJAB+kUZywQ6KaH3ou7TcbguziRApiLWOXjiMvAO2iaic3rH6wxe1Wetd+KRNQKEDV9kwisd83QAQCfkr7uUjEUq2vdUgdJQFExEw++8mLa/AQAA//9h0VsEAAAABklEQVQDAKhs6Pxd3K8TAAAAAElFTkSuQmCC",hn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACgUlEQVR4AXRST0hUYRD/zbfbrqahQpAHlQ3dSurYoaBAwWNQkIT7J/ve09DQsOigkNCha4ckl4Lct0/S3QI7REFEBB08FBHRIYLwIJEodOlUurnfNN+6mq9weMPM+818v2/mm1HYQXK5XH02mz9h1fo7pOE/gkwmU+v5+fuGot8phJdWmSLLnl+4I0RV/xIFCGxCdU3DUwaOkULX18Uve1ydrC4xdwLcwRR9bnO2kwQIoCIDEowpXjsZ4vBCSyx+w/Nnb1KElkkwG4OqGhG79QUImEkT0T2JrpZ4fV5sF0Ad6je9BrBKxLeZuVv8rS9IAG4qGf5oTPSolNxIXOyUNjqlpb0W4xI+Cd62dVqcAAGBVqSCVmPMIoPCttzm2MEBAoeLir4hRK2AWPyVIAHRHMH0Ly0tCBF3M5t+Aq6A0HPJSSyCeZAIz7BNAgQwqxNyc1NL7MCoeyH1xNWpuKsTcet7fv46QI0/zdoEtkmAwHGcHyFQj/Q57vuPzm7m+X5efB6HYj3kOCubuLVlApltfdbPX5uaetCmdeKVAqUN1mdy04XR3PTsqAHPWMztTb24myvEBBuRM+WlUnbzDEXeya2D4XC0zrJqnXwsO3pG3mCMGWMK6lQZk2A0hH2GMSxL9VlI6lVkd90RgGKkVFrrc+9REXubjLH9FxfbbVUVGG5v4i2p8LD8x9ax65C66KTfKGCSDc97fv6DJzuf9QtDtm+iqsM1ot70w9O+YDbmSQ6bkkyCJitnAUcnryqmuExgSsZYKypvgFvS+5xVsJk0MGlps97mFCVXpnNZqoBcbo2QyJz7dCLj6JTj6tRxVyf3izZUtNndwM73SU55JzaO4Q8AAAD//54At5MAAAAGSURBVAMAh2IbMAJQAZQAAAAASUVORK5CYII=",gn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACC0lEQVR4AXxRv2tTURT+zk1iIjgoOMShkIJVNwf/gQYULOjQwaGvGl8TBMEMDg4ODgF17likvL4HIYm4OLg61K2CooWKDoKCDoJDHASb9N17POf5Enwk6eN+9/z+3nfvNZjxbYS9ymbYXlQ8CbvnZrRhKoEOFMl9zFHuuaJA/E4Jp5FMJTCwZWner/veCYX6ecQVsRNrKsFE1yGJDMFW1Hm4FXX7hnIvADquvkJ9zYn/U3vw35chYOA2Ebcc26uWbVWwnKKqOak9ktmmYLwyBATkY+d2b63d2FYgps9umNtTX6G18WTqmNRmTNB+djaIOqEpmC+FIn8Lom4vaD89n2lKgwkCebYNsvEnAlXI4CIMXSagTNa9l9p6Ojc2CUEYhiW5oE3IxQH4AYNFeb5qvea9SuB7Vc1J7ReDjomidZ2RWNKysyneFHNFovGgxIiizoWR9BGRqiKw76i0qj2JAo7jtwycJDvY1eQIDNM0lu+OYrUHf/BBbEmI9sTKP2VvNGpvAP4Kc1SVSGb2OlLiVQa+12srr7UrUZA6Lx27e0HUu6PnU/kOXGbwaT1Gq9XKa80xmgTa1hlFQiBP1hNWn4AdOd8DpmLfgnakYV/yv/UF5ipn+qLyvgGp2us6I/V/R+DYPiYenpKbv0Y8mGeLS0OmhYbvLQuWiGkeFkuGBwtrvrdyMKA5nVGCvwAAAP//q4xnOgAAAAZJREFUAwCH2O8KfEWHWQAAAABJRU5ErkJggg==",vn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACmklEQVR4AXRTT0jUQRT+3uyqGxgYeCiy1JAo6JBUp4Q81EEiKKiDa+H+/ENGHgPpZtChQ4EHL+Ku+9t0V7EkQSGPBYGHBIU6RAqt2cFDBw9C+3de3yy7hobDvHm/+d4337x58xuDQ9r4+FRDLJZqG49PtrvvQ2j4TyDmJ7sm/NRqoMpsIYD3RgIL7pvY54lEqvug0J5APB4PxfzUOwFGRWReVJp7I+GjW+nvxxQo0DagOjLhJxcctyK0J6BS/UaAc1nNtXrdnc88rzPtSMPDwwXiM7R2WNwDpMVKzTTKrSRQTq0tq9mOR55XWliOY2wsVQ+RRWZQiyACjiPQ9pg/0+U4JQEoBkXMi4OLmWpdsEZXofY5yYtSzH10HHJHBPYJMZhyhS8X84U5B+y36iaBNPxMr59nPTo9z8uU4jaToL8Yj88eN2xNTG+3r+/BBncMuSLRln1/+iZgdkhEY2NjvfMVo1DarbG20GIqoPMaqL5G38Zb+GBh36roMufpzc3N3xSvi0ZfX6APEYNAg86bjMluCFDr+7OX1JoWQNJed/ipaK6Z6oOi2dbTZ85eVan+YYLBL7yBdRb9IXkha23aPPa8bQBrFoUVqo4qMMU5mOZ2JBKeo98RiwHi8xQ7Qo6vCsdb6e+//4ubgJegLzlmDOQ6i/XKCVQskZg9aaFtRrBGsYytQpQiu+SPOI5xQ2+kK6mQJRJHo8lko8MqxswGhceCzY25mMnLEmOf3Br6f2/BaLaTqhuSl6/xxPRQNDrJehBRrSWxABMaMnmsKfCN9eEfSZS9lAG9O3OmJ9J1C9ABVb1rgoF1PqA/Cokw3k7stgKDvZHwHXcUYqW+J1CacejlcXoi4SvFvD2lRdxAER0s3glirS5Gyr7+FwAA//8Pj6q2AAAABklEQVQDAJPeLlNn5TR8AAAAAElFTkSuQmCC",yn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABFUlEQVR4AaRQO07DQBCdWe8B4B5IFFyAK9ARkIVNhIQEEiVtJLgABRVRvIBCJBquwBVyDgoaSnuHeZY3MlYcNsnIb8fze6M3hra0XoKJm95N3Nv3EnyhFvb2EgjRJbOMKqmO2tDcvQ5fK+qvl4CJbOn9/CJPP9tArp5sHtP4lc652VXxPL1Z1hRFIOytF1NuTJCfnT4Ms8HjSgJctn1xIt6hxqIkdK+u8U8zT1ESmP5enUkWmqMkhG2FmxXOvR+EGD5KAhoDqsQvtiMXJQGNQJ4N8mF6PMd/wL8SxuOXPSG21pj9p+L1EOjGyAHoQQ0zWGDqx9pbPWIpwqOEkw+gGyMHoAc1ozOkVhOcZyepYndNpDpPvwAAAP//BVQJHAAAAAZJREFUAwDZWL4hub5xHQAAAABJRU5ErkJggg==",be="data:image/svg+xml,%3csvg%20t='1695277594902'%20fill='%23fff'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='2534'%20width='200'%20height='200'%3e%3cpath%20d='M448%2085.333333a362.666667%20362.666667%200%201%200%20224.512%20647.509334l155.818667%20155.818666a42.666667%2042.666667%200%200%200%2060.330666-60.330666l-155.818666-155.818667A362.666667%20362.666667%200%200%200%20448%2085.333333zM170.666667%20448a277.333333%20277.333333%200%201%201%20554.666666%200%20277.333333%20277.333333%200%200%201-554.666666%200z'%20p-id='2535'%3e%3c/path%3e%3c/svg%3e",An={class:"search-container"},wn={class:"selection-wrapper"},Cn={class:"tag-text"},xn=["onClick"],kn={key:0,class:"search-tag collapse"},En=["placeholder"],Vn={class:"suffix-area"},Sn={key:1,class:"loading-spinner"},bn={class:"search-icon"},Nn=["src"],Bn={key:0,class:"history-section"},Rn={class:"history-header"},Dn=["onMousedown"],_n=["src"],On={class:"type-text"},Tn={class:"result-text"},Ln={key:0,class:"status-msg"},Mn=["onMousedown"],In=["src"],Fn={class:"type-text"},Pn={class:"result-text"},Un={key:0,class:"load-more-msg"},Hn={key:1,class:"load-more-msg no-more"},Qn={key:2,class:"status-msg"},$n=e.defineComponent({__name:"index",props:{modelValue:{default:null},multiple:{type:Boolean,default:!1},collapseTags:{type:Boolean,default:!1},searchTypeList:{default:()=>["Continent","Country","Region","City","Seaport","Airport"]},historyKey:{default:void 0},lang:{default:""},placeholder:{default:""},showSearchIcon:{type:Boolean,default:!0},showItemTag:{type:Boolean,default:!0}},emits:["update:modelValue","select","change","submit-search","remove"],setup(t,{emit:n}){const o=t,l=n,r=e.ref(null),a=e.ref(null),s=e.ref(null),i=e.ref(""),u=e.ref(""),c=e.ref(!1),d=e.ref(!1);let m=null;const f=e.computed(()=>o.modelValue?Array.isArray(o.modelValue)?o.modelValue:[o.modelValue]:[]),p=e.computed(()=>o.multiple?o.collapseTags?f.value.slice(0,1):f.value:[]),h=e.computed(()=>i.value||f.value.length>0),y=e.computed(()=>o.multiple?i.value?`${i.value.length*10+20}px`:"10px":"100%"),{searchHistory:A,saveToHistory:v,clearHistory:w}=pt(e.toRef(o,"historyKey")),{searchResults:k,loading:S,isFetchingMore:b,isFinished:P,currentPage:_,fetchData:L,filterByTypes:U}=gt(i,e.toRef(o,"searchTypeList")),{floatingStyles:O,startTrack:z,stopTrack:J}=mn(a,s),D=e.computed(()=>{if(o.lang)return o.lang==="en"||o.lang==="en-US";try{if(typeof useCookie=="function"){const g=useCookie("jc-language")?.value;if(g)return/^en(-US)?$/.test(g)}}catch{}if(typeof document<"u"){const g=document.cookie||"";return/(^|;\s*)jc-language=en(-US)?(;|$)/.test(g)}try{if(typeof useNuxtApp=="function"){const N=useNuxtApp()?.ssrContext?.event?.node?.req?.headers?.cookie||"";return/(^|;\s*)jc-language=en(-US)?(;|$)/.test(N)}}catch{}return!1}),H=e.computed(()=>o.multiple&&f.value.length>0?"":c.value&&!o.multiple?u.value:o.placeholder||D.value?"Please enter...":"请输入..."),ee=()=>r.value?.focus(),C=g=>{if(v(g),o.multiple){if(!f.value.some(x=>x.id===g.id)){const x=[...f.value,g];l("update:modelValue",x)}i.value=""}else u.value=oe(g),c.value=!0,i.value="",d.value=!1,l("update:modelValue",g);l("select",g)},E=g=>{const N=f.value.filter(x=>x.id!==g.id);l("update:modelValue",N),l("remove",g)},V=()=>{o.multiple&&!i.value&&f.value.length>0&&E(f.value[f.value.length-1])},T=()=>{i.value="",c.value=!1,u.value="",l("update:modelValue",o.multiple?[]:null)},ie=async()=>{if(d.value=!0,!o.multiple&&c.value&&k.value.length===0){const g=o.modelValue;if(g?.id){S.value=!0;try{const N=await ke(g.id,g.type);k.value=U(N.records)}finally{S.value=!1}}}},at=()=>setTimeout(()=>d.value=!1,200),it=g=>{g.target.value===""&&!o.multiple&&T()},ct=()=>{o.multiple?l("submit-search",f.value):c.value&&l("submit-search",o.modelValue),d.value=!1},ut=g=>{const{scrollTop:N,scrollHeight:x,clientHeight:M}=g.target;N+M>=x-20&&!S.value&&!b.value&&!P.value&&i.value&&L(_.value+1,!0)};e.watch(d,g=>{g?z():J()}),e.watch(i,g=>{if(!g.trim()){k.value=[];return}m&&clearTimeout(m),m=setTimeout(()=>L(1,!1),300)}),e.watch(()=>o.modelValue,async(g,N)=>{if(JSON.stringify(g)===JSON.stringify(N))return;if(o.multiple&&Array.isArray(g)){const M=[...g],Y=M.filter(q=>q&&q.id&&q.type&&!q.display);if(Y.length>0)try{const q=Y.map(te=>te.id).filter(te=>te!=null),xe=await ke(q,Y[0].type);if(xe&&xe.records){let te=!1;const ft=M.map(me=>{const Me=xe.records.find(mt=>mt.id===me.id);return Me&&!me.display?(te=!0,{...me,...Me}):me});te&&l("update:modelValue",ft)}}catch(q){console.error("Batch fetch detail failed:",q)}return}const x=g;if(!x){c.value=!1,u.value="";return}if(typeof x=="object")if(x.id&&x.type&&!x.display)try{const Y=(await ke(x.id,x.type)).records.find(q=>q.id===x.id);Y&&(u.value=oe(Y),c.value=!0)}catch(M){console.error("Single fetch detail failed:",M)}else u.value=oe(x),c.value=!!u.value;else u.value=String(x),c.value=!!x},{immediate:!0,deep:!0});const Te=g=>({City:yn,Country:vn,Airport:pn,Seaport:gn})[g]||hn,oe=g=>D.value?g.displayEn||g.display||"":g.displayCn||g.display||"",Le=g=>{const N={City:{en:"City",cn:"城市"},Country:{en:"Country",cn:"国家"},Region:{en:"Region",cn:"区域"},Airport:{en:"Airport",cn:"机场"},Seaport:{en:"Seaport",cn:"港口"}};return D.value?N[g].en:N[g].cn},dt=g=>f.value.some(N=>N.id===g.id);return e.onBeforeUnmount(J),(g,N)=>(e.openBlock(),e.createElementBlock("div",An,[e.createElementVNode("div",{class:e.normalizeClass(["search-input-wrapper",{"is-multiple":t.multiple}]),ref_key:"referenceRef",ref:a,onClick:ee},[e.createElementVNode("div",wn,[t.multiple&&f.value.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(x,M)=>(e.openBlock(),e.createElementBlock("div",{key:x.id||M,class:"search-tag"},[e.createElementVNode("span",Cn,e.toDisplayString(oe(x)),1),e.createElementVNode("span",{class:"tag-close",onClick:e.withModifiers(Y=>E(x),["stop"])},"×",8,xn)]))),128)),t.collapseTags&&f.value.length>1?(e.openBlock(),e.createElementBlock("div",kn," + "+e.toDisplayString(f.value.length-1),1)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:r,class:e.normalizeClass({"is-selected-state":c.value&&!t.multiple}),"onUpdate:modelValue":N[0]||(N[0]=x=>i.value=x),type:"text",placeholder:H.value,style:e.normalizeStyle({width:y.value}),onFocus:ie,onBlur:at,onInput:it,onKeydown:e.withKeys(V,["delete"])},null,46,En),[[e.vModelText,i.value]])]),e.createElementVNode("div",Vn,[h.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"clear-icon",onMousedown:N[1]||(N[1]=e.withModifiers(()=>{},["prevent"])),onClick:e.withModifiers(T,["stop"])},"ⓧ",32)):e.createCommentVNode("",!0),e.unref(S)&&!e.unref(b)?(e.openBlock(),e.createElementBlock("div",Sn)):!e.unref(S)&&t.showSearchIcon?(e.openBlock(),e.createElementBlock("button",{key:2,class:"search-btn",onClick:e.withModifiers(ct,["stop"])},[e.createElementVNode("span",bn,[e.createElementVNode("img",{src:e.unref(be),alt:"search"},null,8,Nn)])])):e.createCommentVNode("",!0)])],2),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.withDirectives(e.createElementVNode("div",{ref_key:"floatingRef",ref:s,class:"dropdown-list",style:e.normalizeStyle(e.unref(O)),onScroll:ut},[e.renderSlot(g.$slots,"history",{searchHistory:e.unref(A)},()=>[e.unref(A).length>0&&!i.value?(e.openBlock(),e.createElementBlock("div",Bn,[e.createElementVNode("div",Rn,[e.createElementVNode("span",null,e.toDisplayString(D.value?"Recent search":"最近搜索"),1),e.createElementVNode("span",{class:"clear-btn",onMousedown:N[2]||(N[2]=e.withModifiers(()=>{},["prevent"])),onClick:N[3]||(N[3]=e.withModifiers((...x)=>e.unref(w)&&e.unref(w)(...x),["stop"]))},e.toDisplayString(D.value?"Clear":"清空"),33)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(A),(x,M)=>(e.openBlock(),e.createElementBlock("div",{key:"hist-"+M,class:"dropdown-item",onMousedown:Y=>C(x)},[e.createElementVNode("div",{class:"category-tag",style:e.normalizeStyle(t.showItemTag?{}:{display:"none"})},[e.createElementVNode("img",{class:"type-icon",src:Te(x.type),alt:""},null,8,_n),e.createElementVNode("span",On,e.toDisplayString(Le(x.type)),1)],4),e.createElementVNode("div",Tn,e.toDisplayString(oe(x)),1)],40,Dn))),128)),N[4]||(N[4]=e.createElementVNode("hr",{class:"divider"},null,-1))])):e.createCommentVNode("",!0)],!0),e.unref(S)&&!e.unref(b)?(e.openBlock(),e.createElementBlock("div",Ln,e.toDisplayString(D.value?"Searching...":"正在搜索中..."),1)):e.unref(k).length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.renderSlot(g.$slots,"results",{searchResults:e.unref(k)},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(k),(x,M)=>(e.openBlock(),e.createElementBlock("div",{key:M,class:e.normalizeClass(["dropdown-item",{"is-active":dt(x)}]),onMousedown:Y=>C(x)},[e.createElementVNode("div",{class:"category-tag",style:e.normalizeStyle(t.showItemTag?{}:{display:"none"})},[e.createElementVNode("img",{class:"type-icon",src:Te(x.type),alt:""},null,8,In),e.createElementVNode("span",Fn,e.toDisplayString(Le(x.type)),1)],4),e.createElementVNode("div",Pn,e.toDisplayString(oe(x)),1)],42,Mn))),128))],!0),e.unref(b)?(e.openBlock(),e.createElementBlock("div",Un,e.toDisplayString(D.value?"Loading more...":"正在加载更多..."),1)):e.unref(P)&&i.value?(e.openBlock(),e.createElementBlock("div",Hn,e.toDisplayString(D.value?"All results have been loaded":"已加载全部结果"),1)):e.createCommentVNode("",!0)],64)):i.value&&!e.unref(S)?(e.openBlock(),e.createElementBlock("div",Qn,[e.renderSlot(g.$slots,"noData",{},()=>[e.createTextVNode(e.toDisplayString(D.value?`No results found related to "${i.value}".`:`未找到与 "${i.value}" 相关的结果`),1)],!0)])):e.createCommentVNode("",!0)],36),[[e.vShow,d.value&&(e.unref(k).length>0||e.unref(S)||i.value||e.unref(A).length>0)]])]))]))}}),_e=(t,n)=>{const o=t.__vccOpts||t;for(const[l,r]of n)o[l]=r;return o},Oe=_e($n,[["__scopeId","data-v-359bcfa2"]]),Jn={class:"modal-container"},qn={class:"modal-header"},Wn={class:"header-title"},Kn={class:"modal-body"},Gn={class:"form-item"},zn={class:"required"},Yn={class:"input-box"},jn=["placeholder"],Xn={key:0,class:"error-message"},Zn={class:"form-item"},eo={class:"required"},to={class:"type-group"},no=["onClick"],oo={key:0,class:"check-mark"},lo={class:"form-item"},ro={class:"required"},so={key:0,class:"error-message"},ao={class:"modal-footer"},io={__name:"ApplyDataDialog",props:{value:{type:Boolean,default:!1},lang:{type:String,default:"en",validator:t=>["en","en-US","zh-CN","cn"].includes(t)},placeholder:{type:String,default:""}},emits:["update:value","confirm"],setup(t,{emit:n}){const o=t,l=n,r=[{typeCn:"城市",typeEn:"City",type:"City"},{typeCn:"海运港口",typeEn:"Port",type:"Seaport"},{typeCn:"机场",typeEn:"Airport",type:"Airport"}],a=e.ref(null),s=e.reactive({name:"",country:""}),i=e.reactive({name:"",type:"City"}),u=e.computed(()=>{if(o.lang)return o.lang==="en"||o.lang==="en-US";try{if(typeof useCookie=="function"){const m=useCookie("jc-language")?.value;if(m)return/^en(-US)?$/.test(m)}}catch{}if(typeof document<"u"){const m=document.cookie||"";return/(^|;\s*)jc-language=en(-US)?(;|$)/.test(m)}try{if(typeof useNuxtApp=="function"){const f=useNuxtApp()?.ssrContext?.event?.node?.req?.headers?.cookie||"";return/(^|;\s*)jc-language=en(-US)?(;|$)/.test(f)}}catch{}return!1}),c=()=>{s.name="",s.country="",l("update:value",!1)},d=()=>{s.name="",s.country="";let m=!0;i.name.trim()||(s.name="Data name is required",m=!1),a.value||(s.country="Please select a country",m=!1),m&&l("confirm",{...i,country:a.value})};return(m,f)=>t.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"modal-mask",onClick:e.withModifiers(c,["self"])},[e.createElementVNode("div",Jn,[e.createElementVNode("div",qn,[e.createElementVNode("span",Wn,e.toDisplayString(u.value?"Apply for data addition":"申请补充数据"),1),e.createElementVNode("div",{class:"close-btn",onClick:c},"×")]),e.createElementVNode("div",Kn,[e.createElementVNode("div",Gn,[e.createElementVNode("label",zn,e.toDisplayString(u.value?"Data To Add":"需补充的数据"),1),e.createElementVNode("div",Yn,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":f[0]||(f[0]=p=>i.name=p),type:"text",placeholder:t.placeholder??(u.value?" Please enter":"请输入"),class:e.normalizeClass(["custom-input",{"input-error":s.name}]),onInput:f[1]||(f[1]=p=>s.name="")},null,42,jn),[[e.vModelText,i.name]])]),s.name?(e.openBlock(),e.createElementBlock("div",Xn,e.toDisplayString(s.name),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Zn,[e.createElementVNode("label",eo,e.toDisplayString(u.value?"Type":"所属类别"),1),e.createElementVNode("div",to,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(r,p=>e.createElementVNode("div",{key:p.type,class:e.normalizeClass(["type-btn",{active:i.type===p.type}]),onClick:h=>i.type=p.type},[e.createTextVNode(e.toDisplayString(u.value?p.typeEn:p.typeCn)+" ",1),i.type===p.type?(e.openBlock(),e.createElementBlock("div",oo)):e.createCommentVNode("",!0)],10,no)),64))])]),e.createElementVNode("div",lo,[e.createElementVNode("label",ro,e.toDisplayString(u.value?"Country":"国家"),1),e.createElementVNode("div",{class:e.normalizeClass({"search-error-wrap":s.country})},[e.createVNode(Oe,{"search-type-list":["Country"],"model-value":a.value,"onUpdate:modelValue":[f[2]||(f[2]=p=>a.value=p),f[3]||(f[3]=p=>s.country="")],style:{margin:"0 auto"},lang:t.lang,placeholder:t.placeholder??(u.value?" Please enter":"请输入")},null,8,["model-value","lang","placeholder"])],2),s.country?(e.openBlock(),e.createElementBlock("div",so,e.toDisplayString(s.country),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",ao,[e.createElementVNode("button",{class:"confirm-btn",onClick:d},e.toDisplayString(u.value?"Submit":"申请补充"),1)])])])):e.createCommentVNode("",!0)}},lt=_e(io,[["__scopeId","data-v-9c778fb9"]]),co={class:"global-modal-header-custom"},uo={class:"global-modal-body-custom"},fo={class:"global-modal-footer-custom"},rt=e.defineComponent({__name:"GlobalModal",setup(t){const n=e.ref(),o=e.ref(!1),l=e.ref({city:"",company:"",email:"",phone:"",name:"",agreement:!1}),r=e.reactive({city:[{required:!0,message:"请输入所在地城市",trigger:"blur"}],company:[{required:!0,message:"请输入公司名称",trigger:"blur"}],email:[{required:!0,message:"请输入邮箱",trigger:"blur"},{type:"email",message:"请输入有效的邮箱地址",trigger:"blur"}],agreement:[{validator:(u,c,d)=>{c?d():d(new Error("请同意隐私政策"))},trigger:"change"}]}),a=()=>{o.value=!1,R.emitter.emit(R.MODAL_ACTION.Close,void 0),n.value?.resetFields()},s=async()=>{n.value&&await n.value.validate(u=>{u&&(R.emitter.emit(R.MODAL_ACTION.Submit,l.value),a(),l.value={city:"",company:"",email:"",phone:"",name:"",agreement:!1})})},i=u=>{o.value=!0};return e.onMounted(()=>{R.emitter.on(R.MODAL_ACTION.Open,i)}),e.onUnmounted(()=>{R.emitter.off(R.MODAL_ACTION.Open,i)}),(u,c)=>(e.openBlock(),e.createBlock(e.unref(B.ElDialog),{modelValue:o.value,"onUpdate:modelValue":c[7]||(c[7]=d=>o.value=d),"before-close":a,"show-close":!1,"close-on-click-modal":!0,width:500,class:"global-modal-custom"},{header:e.withCtx(()=>[e.createElementVNode("div",co,[c[9]||(c[9]=e.createElementVNode("h2",null,"即刻链接全球货代",-1)),e.createVNode(e.unref(B.ElButton),{link:"",onClick:a,class:"close-button-custom","aria-label":"Close"},{default:e.withCtx(()=>[...c[8]||(c[8]=[e.createElementVNode("span",{style:{"font-size":"2rem"}},"×",-1)])]),_:1})])]),footer:e.withCtx(()=>[e.createElementVNode("div",fo,[e.createVNode(e.unref(B.ElButton),{type:"primary",class:"submit-button-custom",onClick:s},{default:e.withCtx(()=>[...c[11]||(c[11]=[e.createTextVNode(" 加入会员 ",-1)])]),_:1})])]),default:e.withCtx(()=>[e.createElementVNode("div",uo,[e.createVNode(e.unref(B.ElForm),{model:l.value,rules:r,ref_key:"formRef",ref:n,"label-position":"top",onSubmit:c[6]||(c[6]=e.withModifiers(()=>{},["prevent"]))},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElRow),{gutter:20},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElCol),{span:12},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElFormItem),{label:"所在地(城市)",prop:"city"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElInput),{modelValue:l.value.city,"onUpdate:modelValue":c[0]||(c[0]=d=>l.value.city=d),placeholder:"请输入城市"},null,8,["modelValue"])]),_:1})]),_:1}),e.createVNode(e.unref(B.ElCol),{span:12},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElFormItem),{label:"公司名称",prop:"company"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElInput),{modelValue:l.value.company,"onUpdate:modelValue":c[1]||(c[1]=d=>l.value.company=d),placeholder:"请输入公司名称"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e.createVNode(e.unref(B.ElRow),{gutter:20},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElCol),{span:12},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElFormItem),{label:"邮箱",prop:"email"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElInput),{modelValue:l.value.email,"onUpdate:modelValue":c[2]||(c[2]=d=>l.value.email=d),placeholder:"请输入邮箱"},null,8,["modelValue"])]),_:1})]),_:1}),e.createVNode(e.unref(B.ElCol),{span:12},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElFormItem),{label:"电话",prop:"phone"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElInput),{modelValue:l.value.phone,"onUpdate:modelValue":c[3]||(c[3]=d=>l.value.phone=d),placeholder:"请输入电话"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e.createVNode(e.unref(B.ElRow),null,{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElCol),{span:24},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElFormItem),{label:"姓名",prop:"name"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElInput),{modelValue:l.value.name,"onUpdate:modelValue":c[4]||(c[4]=d=>l.value.name=d),placeholder:"请输入您的全名"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e.createVNode(e.unref(B.ElFormItem),{prop:"agreement",class:"agreement-item"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.ElCheckbox),{modelValue:l.value.agreement,"onUpdate:modelValue":c[5]||(c[5]=d=>l.value.agreement=d),label:"我同意"},null,8,["modelValue"]),c[10]||(c[10]=e.createElementVNode("a",{href:"#",class:"privacy-link"},"隐私政策",-1))]),_:1})]),_:1},8,["model","rules"])])]),_:1},8,["modelValue"]))}});function mo(t){const n=e.ref([]),o="_search_history_cache",l=typeof window<"u"&&typeof localStorage<"u",r=e.computed(()=>(t.value||"")+o),a=e.computed(()=>!!t.value&&t.value!==""),s=u=>{if(!u||!l)return;const c=n.value.filter(m=>m.id&&m.id!==u.id||m.display!==u.display);c.unshift(u);const d=c.slice(0,4);if(a.value){n.value=d;try{localStorage.setItem(r.value,JSON.stringify(d))}catch(m){console.warn("LocalStorage save failed:",m)}}},i=()=>{n.value=[],l&&localStorage.removeItem(r.value)};return e.onMounted(()=>{if(l&&a.value){const u=localStorage.getItem(r.value);if(u)try{n.value=JSON.parse(u)}catch{n.value=[]}}}),{searchHistory:n,saveToHistory:s,clearHistory:i,HasHistory:a}}async function po(t,n=["Continent","Country","City","Seaport","Airport"],o={}){return R.locationSearchV2.searchByName({keyword:t,displayInfo:n,...o})}function ho(t,n){const o=e.ref([]),l=e.ref(!1),r=e.ref(!1),a=e.ref(!1),s=e.ref(1),i=10,u=e.ref(0),c=e.computed(()=>{const f=[...n.value];return f.includes("Country")&&!f.includes("Region")&&f.push("Region"),f}),d=f=>Array.isArray(f)?f.filter(p=>c.value.includes(p.type)):[];return{searchResults:o,loading:l,isFetchingMore:r,isFinished:a,fetchData:async(f=!1)=>{const p=t.value.trim();if(!p){o.value=[],u.value=0,a.value=!1;return}if(f){if(r.value||a.value)return;r.value=!0,s.value+=1}else{if(l.value)return;l.value=!0,s.value=1,a.value=!1}try{const h=await po(p,n.value,{current:s.value,size:i}),y=d(h.records||[]);f?o.value.push(...y):o.value=y,u.value=h.total||0,(o.value.length>=u.value||y.length<i)&&(a.value=!0)}catch(h){console.error("Search request failed:",h),f&&(s.value-=1)}finally{l.value=!1,r.value=!1}}}}const go={class:"h5-search-container"},vo={class:"trigger-content"},yo=["src"],Ao={class:"placeholder-text"},wo={key:0,class:"selected-count"},Co={key:1,class:"selected-val"},xo={key:2,class:"placeholder-gray"},ko={key:0,class:"h5-modal-root"},Eo={class:"h5-drawer-card"},Vo={class:"h5-header"},So={class:"h5-input-wrapper"},bo=["src"],No=["placeholder"],Bo={key:0,class:"h5-spinner-box"},Ro={key:1,class:"h5-section"},Do={class:"h5-section-hd"},_o={class:"h5-history-grid"},Oo=["onClick"],To={key:2,class:"h5-result-list"},Lo=["onClick"],Mo={class:"item-info"},Io={class:"item-name"},Fo={key:0,class:"item-sub"},Po={class:"h5-load-status"},Uo={key:1,class:"no-more"},Ho={key:3,class:"h5-empty"},Qo=e.defineComponent({__name:"index",props:{modelValue:{},multiple:{type:Boolean,default:!1},lang:{default:"zh-CN"},placeholder:{},historyKey:{}},emits:["update:modelValue","select"],setup(t,{emit:n}){const o=t,l=n,r=e.ref(!1),a=e.ref(""),s=e.ref(null),i=e.ref(null);let u=null;const{searchHistory:c,saveToHistory:d,clearHistory:m}=mo(e.toRef(o,"historyKey")),{searchResults:f,loading:p,isFetchingMore:h,isFinished:y,fetchData:A}=ho(a,e.ref(["City","Seaport","Airport"])),v=e.computed(()=>{if(o.lang)return o.lang==="en"||o.lang==="en-US";try{if(typeof useCookie=="function"){const C=useCookie("jc-language")?.value;if(C)return/^en(-US)?$/.test(C)}}catch{}if(typeof document<"u"){const C=document.cookie||"";return/(^|;\s*)jc-language=en(-US)?(;|$)/.test(C)}try{if(typeof useNuxtApp=="function"){const E=useNuxtApp()?.ssrContext?.event?.node?.req?.headers?.cookie||"";return/(^|;\s*)jc-language=en(-US)?(;|$)/.test(E)}}catch{}return!1}),w=e.computed(()=>Array.isArray(o.modelValue)?o.modelValue:o.modelValue?[o.modelValue]:[]),k=e.computed(()=>!o.multiple&&!!o.modelValue),S=e.computed(()=>k.value?D(o.modelValue):""),b=e.computed(()=>w.value.length>0),P=()=>{r.value=!0,e.nextTick(()=>{s.value?.focus()})},_=()=>{r.value=!1,a.value=""},L=C=>{d(C),o.multiple?w.value.some(V=>V.id===C.id)||l("update:modelValue",[...w.value,C]):(l("update:modelValue",C),_()),l("select",C)},U=()=>{l("update:modelValue",o.multiple?[]:null)},O=e.ref(!1),z=C=>{const E=C.target;if(!E)return;E.scrollTop+E.clientHeight>=E.scrollHeight-80&&a.value&&!p.value&&!h.value&&!y.value&&!O.value&&(O.value=!0,A(!0))};e.watch(h,C=>{C||(O.value=!1)});const J=()=>{u&&clearTimeout(u),u=setTimeout(()=>{O.value=!1,i.value?.scrollTo({top:0}),console.log("🍉 ~ index.vue:279 ~ onInput ~ fetchData:",A),A(!1)},300)},D=C=>v.value?C.displayEn||C.display:C.displayCn||C.display,H=C=>{const E={City:"城市",Seaport:"港口",Airport:"机场"};return v.value?C:E[C]||C},ee=C=>w.value.some(E=>E.id===C.id);return(C,E)=>(e.openBlock(),e.createElementBlock("div",go,[e.createElementVNode("div",{class:"search-trigger",onClick:P},[e.createElementVNode("div",vo,[e.createElementVNode("img",{src:e.unref(be),class:"search-icon-m"},null,8,yo),e.createElementVNode("div",Ao,[t.multiple&&w.value.length>0?(e.openBlock(),e.createElementBlock("span",wo,e.toDisplayString(v.value?"Selected":"已选")+" ("+e.toDisplayString(w.value.length)+")",1)):!t.multiple&&k.value?(e.openBlock(),e.createElementBlock("span",Co,e.toDisplayString(S.value),1)):(e.openBlock(),e.createElementBlock("span",xo,e.toDisplayString(t.placeholder||(v.value?"Search":"搜索")),1))])]),b.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"clear-trigger",onClick:e.withModifiers(U,["stop"])},"ⓧ")):e.createCommentVNode("",!0)]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[r.value?(e.openBlock(),e.createElementBlock("div",ko,[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"h5-mask",onClick:_})]),_:1}),e.createVNode(e.Transition,{name:"slide-up"},{default:e.withCtx(()=>[e.createElementVNode("div",Eo,[e.createElementVNode("div",{class:"drawer-handle",onClick:_}),e.createElementVNode("div",Vo,[e.createElementVNode("div",So,[e.createElementVNode("img",{src:e.unref(be),class:"inner-icon"},null,8,bo),e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:s,"onUpdate:modelValue":E[0]||(E[0]=V=>a.value=V),placeholder:v.value?"City/Port/Airport":"搜索城市/港口/机场",onInput:J},null,40,No),[[e.vModelText,a.value]]),a.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"h5-clear-btn",onClick:E[1]||(E[1]=V=>a.value="")}," ✕ ")):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"h5-cancel-btn",onClick:_},e.toDisplayString(v.value?"Cancel":"取消"),1)]),e.createElementVNode("div",{class:"h5-main-content",ref_key:"scrollContainer",ref:i,onScroll:z},[e.unref(p)&&!e.unref(h)?(e.openBlock(),e.createElementBlock("div",Bo,[...E[3]||(E[3]=[e.createElementVNode("div",{class:"h5-spinner"},null,-1)])])):e.createCommentVNode("",!0),!a.value&&e.unref(c).length>0?(e.openBlock(),e.createElementBlock("div",Ro,[e.createElementVNode("div",Do,[e.createElementVNode("span",null,e.toDisplayString(v.value?"Recent":"最近搜索"),1),e.createElementVNode("span",{class:"h5-clear-history",onClick:E[2]||(E[2]=(...V)=>e.unref(m)&&e.unref(m)(...V))},e.toDisplayString(v.value?"Clear":"清空"),1)]),e.createElementVNode("div",_o,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c),(V,T)=>(e.openBlock(),e.createElementBlock("div",{key:T,class:"h5-history-tag",onClick:ie=>L(V)},e.toDisplayString(D(V)),9,Oo))),128))])])):e.createCommentVNode("",!0),e.unref(f).length>0?(e.openBlock(),e.createElementBlock("div",To,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),(V,T)=>(e.openBlock(),e.createElementBlock("div",{key:T,class:e.normalizeClass(["h5-result-item",{"is-active":ee(V)}]),onClick:ie=>L(V)},[e.createElementVNode("div",{class:e.normalizeClass(["item-type",V.type.toLowerCase()])},e.toDisplayString(H(V.type)),3),e.createElementVNode("div",Mo,[e.createElementVNode("div",Io,e.toDisplayString(D(V)),1),V.parentName?(e.openBlock(),e.createElementBlock("div",Fo,e.toDisplayString(V.parentName),1)):e.createCommentVNode("",!0)])],10,Lo))),128)),e.createElementVNode("div",Po,[e.unref(h)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[E[4]||(E[4]=e.createElementVNode("div",{class:"mini-spinner"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(v.value?"Loading...":"加载中..."),1)],64)):e.unref(y)&&a.value?(e.openBlock(),e.createElementBlock("span",Uo,e.toDisplayString(v.value?"No more results":"没有更多结果了"),1)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),a.value&&!e.unref(p)&&e.unref(f).length===0?(e.openBlock(),e.createElementBlock("div",Ho,e.toDisplayString(v.value?"No Results Found":"未找到相关结果"),1)):e.createCommentVNode("",!0)],544)])]),_:1})])):e.createCommentVNode("",!0)]))]))}}),st=_e(Qo,[["__scopeId","data-v-c1314e9c"]]);let $o={open(){R.emitter.emit(R.MODAL_ACTION.Open)},close(){R.emitter.emit(R.MODAL_ACTION.Close)},onSubmit(t){R.emitter.on(R.MODAL_ACTION.Submit,t)}};function Jo(){let t=!1;return{install(n){if(typeof window<"u"&&!t){const o=document.createElement("div");o.setAttribute("id","global-modal-root"),document.body.appendChild(o),e.createApp(rt).mount(o),t=!0}n.config.globalProperties.$globalModal=$o}}}const qe={ApplyDataDialog:lt,JcSearch:Oe,JCMSearch:st};let We=!1;const qo={install(t,n){if(!We){We=!0,n?.sharedConfig&&R.initSharedConfig(n.sharedConfig);for(const o in qe)t.component(o,qe[o])}}};Object.defineProperty(exports,"MODAL_ACTION",{enumerable:!0,get:()=>R.MODAL_ACTION});Object.defineProperty(exports,"emitter",{enumerable:!0,get:()=>R.emitter});Object.defineProperty(exports,"initSharedConfig",{enumerable:!0,get:()=>R.initSharedConfig});exports.ApplyDataDialog=lt;exports.GlobalModal=rt;exports.JCMSearch=st;exports.JcSearch=Oe;exports.createGlobalModalPlugin=Jo;exports.default=qo;