@rtc-agent/component 0.1.5-rc.0 → 0.1.5-rc.1
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.
- package/dist/assets/{shared-worker-DWdeA8LH.js → shared-worker-DCHyP9C5.js} +106 -106
- package/dist/{en-US-5X8Pusw5.js → en-US-ckomj5Hk.js} +1 -1
- package/dist/{index-CDXHF2WH.js → index-B4hb17Br.js} +1 -1
- package/dist/{index-BAvGn_mA.js → index-BhUNxh1S.js} +20 -10
- package/dist/index.js +1 -1
- package/dist/index.umd.js +2 -2
- package/package.json +5 -5
package/dist/index.umd.js
CHANGED
|
@@ -514,7 +514,7 @@
|
|
|
514
514
|
animation-duration: 0.01ms !important;
|
|
515
515
|
}
|
|
516
516
|
}
|
|
517
|
-
`,R3=Symbol("window-state-context"),P3={mode:"normal",position:{x:100,y:100},size:{width:420,height:640}},Fx=Symbol("auth-context"),D3={isLoggedIn:!1},rd=Symbol("session-context"),Ux={sessions:[],currentSessionId:null},qx=Symbol("session-tree-context"),og=Symbol("session-tab-context"),Vp=Symbol("message-context"),$x=Symbol("mode-context"),k3=[{mode:"manual",label:"手动",icon:"hand",description:"Claude 会在每次编辑前征求你的同意"},{mode:"edit",label:"编辑",icon:"code",description:"Claude 会自动编辑你选中的文本或整个文件"},{mode:"bypass",label:"绕过权限",icon:"gear",description:"Claude 不会在执行潜在危险命令前征求同意"}],M3={currentMode:"edit"},Gx=Symbol("tool-call-context"),L3={pendingCalls:[]},jx=Symbol("turn-count-context"),lg={pendingTurnCount:0,runningTurnCount:0},Vx={registry:null},Yx=Symbol("skill-context"),B3=Symbol("activity-context"),Yp={active:"chat",sidebarVisible:!1},cg=Symbol("file-explorer-context"),zx={root:null,selectedPath:null},zp=Symbol("settings-context"),nd={appearance:{theme:"system",fontSize:14},chat:{sendShortcut:"Enter",density:"comfortable"},files:{autoSave:!0,defaultViewMode:"split"},notifications:{soundEnabled:!0,toastEnabled:!0}},F3=Symbol("notification-context"),Hx={unreadCount:0,lastNotificationAt:null},U3={BASE_URL:"./",DEV:!1,MODE:"production",PROD:!0,SSR:!1};let ug=null,id=null;function q3(t){ug=t&&t.length>0?t.replace(/\/+$/,""):null}function $3(t){if(!t||t.length===0){id=null;return}t.startsWith("/")?id=`${window.location.origin}${t}`:id=t.replace(/\/+$/,"")}function Wx(){if(ug)return ug;try{const t=U3;if(t!=null&&t.VITE_SERVER_URL)return t.VITE_SERVER_URL}catch{}return"http://localhost:28080"}const ko={get serverUrl(){return Wx()},get wsEndpoint(){return Wx().replace(/^http/,"ws")+"/connection/websocket"},get redirectUri(){return id||`${window.location.origin}/auth/callback.html`},refreshBufferMs:5*60*1e3},vn={tokens:"rtc_auth_tokens",deviceId:"rtc_device_id",deviceName:"rtc_device_name",oauthState:"rtc_oauth_state",mode:"rtc_mode",windowState:"rtc_window_state",sessionTreeExpanded:"rtc_session_tree_expanded",sessionTabs:"rtc_session_tabs",activityBar:"rtc_activity_bar",editorArea:"rtc_editor_area",settings:"rtc_settings"};class G3{constructor(e,r){this._state={...P3},this._restored=!1,this._boundOnViewportResize=()=>this._handleViewportResize(),this.host=e,this._config=r??{defaultMode:"normal",initialPosition:{x:-1,y:-1},initialSize:{width:420,height:640},minWidth:350,minHeight:520,maxWidth:1/0,maxHeight:1/0,draggable:!0,resizable:!0,showMinimize:!0,showMaximize:!0,showClose:!1,embedded:!1,bubblePosition:{corner:"bottom-right",offset:{x:-20,y:20}}},this.host.addController(this),this.actions={setMode:n=>this._setMode(n),setPosition:n=>this._updateState({position:n}),setSize:n=>this._updateState({size:n}),maximize:()=>this._setMode("maximized"),minimize:()=>this._setMode("minimized"),restore:()=>this._setMode("normal")},this._restoreState()}get value(){return{state:this._state,actions:this.actions}}get restored(){return this._restored}setConfig(e){this._config=e,this._restored||(this._state={...this._state,mode:e.defaultMode},this.host.requestUpdate())}get config(){return this._config}hostConnected(){window.addEventListener("resize",this._boundOnViewportResize)}hostDisconnected(){window.removeEventListener("resize",this._boundOnViewportResize)}_handleViewportResize(){var u;const{mode:e}=this._state;if(e==="maximized")return;if(e==="minimized"){this.host.requestUpdate();return}const r=window.innerWidth,n=window.innerHeight,{position:i,size:s}=this._state,a=20;if(r<s.width+2*a||n<s.height+2*a){(u=this.onViewportTooSmall)==null||u.call(this);return}let l=i.x,c=i.y,d=!1;l+s.width>r-a&&(l=r-s.width-a,d=!0),c+s.height>n-a&&(c=n-s.height-a,d=!0),l<a&&(l=a,d=!0),c<a&&(c=a,d=!0),d&&this._updateState({position:{x:l,y:c}})}_restoreState(){var e,r,n,i;try{const s=localStorage.getItem(vn.windowState);if(!s){this._state={...this._state,mode:this._config.defaultMode};return}const a=JSON.parse(s);a.mode&&((e=a.position)==null?void 0:e.x)!=null&&((r=a.position)==null?void 0:r.y)!=null&&((n=a.size)==null?void 0:n.width)!=null&&((i=a.size)==null?void 0:i.height)!=null?(this._state={...a,lastState:void 0},this._restored=!0,this._clampToViewport()):this._state={...this._state,mode:this._config.defaultMode}}catch{this._state={...this._state,mode:this._config.defaultMode}}}_clampToViewport(){const e=window.innerWidth,r=window.innerHeight,{position:n,size:i,mode:s}=this._state;if(s==="maximized")return;const a=Math.min(i.width,e),l=Math.min(i.height,r),c=Math.max(0,Math.min(n.x,e-a)),d=Math.max(0,Math.min(n.y,r-l));this._state={...this._state,position:{x:c,y:d},size:{width:a,height:l}}}_persistState(){try{const{mode:e,position:r,size:n}=this._state,i={mode:e,position:r,size:n};localStorage.setItem(vn.windowState,JSON.stringify(i))}catch{}}_setMode(e){const r=this._state;let n=r.lastState;e==="normal"&&!n?n=this._calculateInitialWindowState():e!=="normal"&&(n={position:{...r.position},size:{...r.size}}),this._state={...r,mode:e,lastState:n},this._persistState(),this.host.requestUpdate()}_calculateInitialWindowState(){const{corner:e,offset:r}=this._config.bubblePosition,{width:n,height:i}=this._config.initialSize,s={width:window.innerWidth,height:window.innerHeight};let a,l;switch(e){case"top-left":a=r.x,l=-r.y;break;case"top-right":a=s.width+r.x-n,l=-r.y;break;case"bottom-left":a=r.x,l=s.height-r.y-i;break;case"bottom-right":a=s.width+r.x-n,l=s.height-r.y-i;break}return{position:{x:a,y:l},size:{width:n,height:i}}}_updateState(e){this._state={...this._state,...e},this._persistState(),this.host.requestUpdate()}applyGeometry(e){const{position:r,size:n,mode:i}=this._state;if(i==="normal")e.style.left=`${r.x}px`,e.style.top=`${r.y}px`,e.style.width=`${n.width}px`,e.style.height=`${n.height}px`,e.style.bottom="",e.style.right="";else if(i==="minimized"){e.style.width="",e.style.height="",e.style.minWidth="",e.style.minHeight="";const s=parseInt(getComputedStyle(e).getPropertyValue("--rtc-bubble-size"))||40,a={width:window.innerWidth,height:window.innerHeight},{corner:l,offset:c}=this._config.bubblePosition;let d,u;switch(l){case"top-left":d=c.x,u=-c.y;break;case"top-right":d=a.width+c.x-s,u=-c.y;break;case"bottom-left":d=c.x,u=a.height-c.y-s;break;case"bottom-right":d=a.width+c.x-s,u=a.height-c.y-s;break}e.style.left=`${d}px`,e.style.top=`${u}px`,e.style.bottom="",e.style.right=""}else e.style.width="",e.style.height="",e.style.left="",e.style.top="",e.style.bottom="",e.style.right=""}}class j3{constructor(e){this._state={...D3},this.host=e,this.host.addController(this),this.actions={login:()=>this._login(),logout:()=>this._logout()},this._loadTokens()}get value(){return{state:this._state,...this.actions}}get state(){return this._state}hostConnected(){this._boundVisibilityHandler=this._onVisibilityChange.bind(this),document.addEventListener("visibilitychange",this._boundVisibilityHandler)}hostDisconnected(){this._boundVisibilityHandler&&(document.removeEventListener("visibilitychange",this._boundVisibilityHandler),this._boundVisibilityHandler=void 0),this._refreshTimer&&(clearTimeout(this._refreshTimer),this._refreshTimer=void 0)}login(){this._login()}logout(){this._logout()}setTokens(e){const r=Date.now()+e.expiresIn*1e3;this._state={isLoggedIn:!0,accessToken:e.accessToken,refreshToken:e.refreshToken,userId:e.userId,expiresAt:r},this._saveTokens({accessToken:e.accessToken,refreshToken:e.refreshToken,userId:e.userId,expiresAt:r}),this._scheduleRefresh(r),this.host.requestUpdate()}getAccessToken(){return this._state.accessToken}_login(){this.host.requestUpdate(),this.host.dispatchEvent(new CustomEvent("rtc-auth-login-requested",{bubbles:!0,composed:!0}))}_logout(){this._state={isLoggedIn:!1},localStorage.removeItem(vn.tokens),this._refreshTimer&&(clearTimeout(this._refreshTimer),this._refreshTimer=void 0),this.host.dispatchEvent(new CustomEvent("rtc-auth-logout",{bubbles:!0,composed:!0})),this.host.requestUpdate()}_loadTokens(){try{const e=localStorage.getItem(vn.tokens);if(!e)return;const r=JSON.parse(e);r.expiresAt<Date.now()?this._executeRefresh(r.refreshToken).then(n=>{n.success?(this._state={isLoggedIn:!0,accessToken:n.accessToken,refreshToken:r.refreshToken,userId:r.userId,expiresAt:n.expiresAt},this._saveTokens({accessToken:n.accessToken,refreshToken:r.refreshToken,userId:r.userId,expiresAt:n.expiresAt}),this._scheduleRefresh(n.expiresAt),this.host.requestUpdate()):localStorage.removeItem(vn.tokens)}):(this._state={isLoggedIn:!0,accessToken:r.accessToken,refreshToken:r.refreshToken,userId:r.userId,expiresAt:r.expiresAt},this._scheduleRefresh(r.expiresAt))}catch{localStorage.removeItem(vn.tokens)}}_saveTokens(e){localStorage.setItem(vn.tokens,JSON.stringify(e))}_scheduleRefresh(e){this._refreshTimer&&clearTimeout(this._refreshTimer);const r=Math.max(0,e-Date.now()-ko.refreshBufferMs);this._refreshTimer=setTimeout(()=>{this.handleTokenExpired()},r)}async _executeRefresh(e){try{const r=await fetch(`${ko.serverUrl}/oauth2/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refresh_token:e})});if(!r.ok)return{success:!1};let n;try{n=await r.json()}catch{return{success:!1}}const i=typeof n.expires_in=="number"?n.expires_in:0,s=typeof n.access_token=="string"?n.access_token:void 0;if(!s||!i)return{success:!1};const a=Date.now()+i*1e3;return{success:!0,accessToken:s,expiresAt:a}}catch(r){return console.error("[AuthController] Token refresh failed:",r),{success:!1}}}async handleTokenExpired(){if(!this._state.refreshToken)return this._logout(),"relogin";if(this._refreshing)return await this._refreshing?"refresh":"relogin";this._refreshing=this._doRefresh();try{return await this._refreshing?"refresh":"relogin"}finally{this._refreshing=void 0}}async _doRefresh(){const e=await this._executeRefresh(this._state.refreshToken);if(!e.success)return this._logout(),this.host.dispatchEvent(new CustomEvent("rtc-auth-refresh-failed",{bubbles:!0,composed:!0})),!1;const r=e.accessToken,n=e.expiresAt;this._state={...this._state,accessToken:r,expiresAt:n};let i={};try{i=JSON.parse(localStorage.getItem(vn.tokens)||"{}")}catch{}return i.accessToken=r,i.expiresAt=n,localStorage.setItem(vn.tokens,JSON.stringify(i)),this._scheduleRefresh(n),this.host.requestUpdate(),!0}_onVisibilityChange(){document.visibilityState==="visible"&&this._state.isLoggedIn&&this._state.expiresAt&&Date.now()>this._state.expiresAt-ko.refreshBufferMs&&this.handleTokenExpired()}}class V3{constructor(e){this._state={...Ux},this.host=e,this.host.addController(this),this.actions={createSession:()=>this._createSession(),switchSession:r=>this._switchSession(r),renameSession:(r,n)=>this._renameSession(r,n),deleteSession:r=>this._deleteSession(r),reset:()=>this._reset(),clearCurrentSession:()=>this._clearCurrentSession(),setCurrentSession:r=>this._setCurrentSession(r),setSessions:r=>this._setSessions(r)}}get value(){return{state:this._state,actions:this.actions}}hostConnected(){}hostDisconnected(){}_createSession(){const e=`session-${crypto.randomUUID()}`,r={clientId:e,title:"New Session",createdAt:Date.now(),updatedAt:Date.now()},n=[...this._state.sessions,r];return this._state={sessions:n,currentSessionId:r.clientId},this.host.requestUpdate(),this.host.dispatchEvent(new CustomEvent("rtc-session-created",{bubbles:!0,composed:!0,detail:{session:r}})),e}_switchSession(e){var r;console.log("[SessionController._switchSession] Switching to session:",e),this._state={...this._state,currentSessionId:e},this.host.requestUpdate(),(r=this.onSessionSwitch)==null||r.call(this),this.host.dispatchEvent(new CustomEvent("rtc-session-switched",{bubbles:!0,composed:!0,detail:{id:e}}))}async _renameSession(e,r){if(this.persistence)try{await this.persistence.updateSessionTitle(e,r)}catch(i){return console.error("[SessionController._renameSession] persistence failed:",i),{ok:!1,error:"重命名失败,请稍后重试"}}const n=this._state.sessions.map(i=>i.clientId===e?{...i,title:r,updatedAt:Date.now()}:i);return this._state={...this._state,sessions:n},this.host.requestUpdate(),this.host.dispatchEvent(new CustomEvent("rtc-session-renamed",{bubbles:!0,composed:!0,detail:{id:e,title:r}})),{ok:!0}}async _deleteSession(e){var i;if(console.log("[SessionController._deleteSession] id:",e,"persistence:",!!this.persistence),this.persistence)try{console.log("[SessionController._deleteSession] calling persistence.deleteSession"),await this.persistence.deleteSession(e),console.log("[SessionController._deleteSession] persistence.deleteSession completed")}catch(s){return console.error("[SessionController._deleteSession] persistence failed:",s),{ok:!1,error:"删除失败,请稍后重试"}}else console.warn("[SessionController._deleteSession] NO persistence layer, doing in-memory only");const r=this._state.sessions.filter(s=>s.clientId!==e),n=this._state.currentSessionId===e?r.length>0?r[r.length-1].clientId:null:this._state.currentSessionId;return this._state={sessions:r,currentSessionId:n},this.host.requestUpdate(),this._state.currentSessionId!==e&&n!==this._state.currentSessionId&&((i=this.onSessionSwitch)==null||i.call(this),this.host.dispatchEvent(new CustomEvent("rtc-session-switched",{bubbles:!0,composed:!0,detail:{id:n}}))),this.host.dispatchEvent(new CustomEvent("rtc-session-deleted",{bubbles:!0,composed:!0,detail:{id:e}})),{ok:!0}}_reset(){this._state={...Ux},this.host.requestUpdate()}_clearCurrentSession(){var e;this._state={...this._state,currentSessionId:null},this.host.requestUpdate(),(e=this.onSessionSwitch)==null||e.call(this)}_setCurrentSession(e){console.log("[SessionController._setCurrentSession] Setting session:",e.clientId,"title:",`"${e.title}"`);const r=this._state.sessions.findIndex(i=>i.clientId===e.clientId);let n;r>=0?n=this._state.sessions.map((i,s)=>s===r?e:i):n=[...this._state.sessions,e],this._state={sessions:n,currentSessionId:e.clientId},this.host.requestUpdate()}_setSessions(e){this._state={...this._state,sessions:e},this.host.requestUpdate()}}class Y3{constructor(e){this._state={messages:[],hasMore:!1,isLoadingMore:!1},this.host=e,this.host.addController(this),this.actions={sendMessage:async r=>{await this._sendMessage(r)},resendMessage:async(r,n)=>{await this._resendMessage(r,n)},forkSession:async r=>{await this._forkSession(r)},appendToLastMessage:r=>this._appendToLastMessage(r),finalizeLastMessage:()=>this._finalizeLastMessage(),clearMessages:()=>this._clearMessages(),loadMore:async()=>{await this.loadMore()}}}set persistence(e){this._persistence=e}set sessionController(e){this._sessionController=e}get value(){return{state:this._state,actions:this.actions,getUserMessageHistory:(e,r)=>this.getUserMessageHistory(e,r)}}hostConnected(){}hostDisconnected(){}addDemoAssistantMessage(e){const r={clientId:`msg-${Date.now()}-assistant`,role:"assistant",content:{type:"text",data:e},timestamp:Date.now(),syncStatus:"synced"};this._state={messages:[...this._state.messages,r],hasMore:this._state.hasMore,isLoadingMore:this._state.isLoadingMore},this.host.requestUpdate()}async reload(e){var r,n;if(this._persistence)if(e){const i=await this._persistence.getMessage(e);if(i){const s=(r=this._sessionController)==null?void 0:r.value.state.currentSessionId;if(i.session_client_id!==s)return;const a=this._localMessageToUI(i),l=this._state.messages.some(d=>d.clientId===e);let c;l?c=this._state.messages.map(d=>d.clientId===e?a:d):c=[...this._state.messages,a].sort((d,u)=>d.timestamp-u.timestamp),this._state={messages:c,hasMore:this._state.hasMore,isLoadingMore:this._state.isLoadingMore},this.host.requestUpdate()}}else{const i=(n=this._sessionController)==null?void 0:n.value.state.currentSessionId;i&&await this._reloadFromDB(i)}}async _sendMessage(e){if(!this._persistence){console.error("[MessageController] persistence not set");return}const r=crypto.randomUUID();let n;if(this._sessionController){const s=this._sessionController.value.state.currentSessionId;console.log("[MessageController._sendMessage] currentSessionId before:",s),n=s??crypto.randomUUID(),console.log("[MessageController._sendMessage] sessionClientId to use:",n,s?"(existing)":"(NEW)")}else n=crypto.randomUUID(),console.log("[MessageController._sendMessage] No sessionController, created new sessionClientId:",n);const i=await this._persistence.sendMessage({content:e,messageClientId:r,sessionClientId:n});if(console.log("[MessageController._sendMessage] persistence.sendMessage returned:"),console.log(" session.client_id:",i.session.client_id),console.log(" message.session_client_id:",i.message.session_client_id),this._sessionController){const s=this._sessionController.value.state.currentSessionId;if(console.log("[MessageController._sendMessage] currentSessionId after persistence:",s,"result.session.client_id:",i.session.client_id),!s||s===i.session.client_id){const a={clientId:i.session.client_id,title:i.session.title||"",createdAt:new Date(i.session.created_at).getTime(),updatedAt:new Date(i.session.updated_at).getTime(),todoList:i.session.todo_list};console.log("[MessageController._sendMessage] setCurrentSession:",a.clientId,"title:",`"${a.title}"`),this._sessionController.actions.setCurrentSession(a),await this._reloadFromDB(i.session.client_id),console.log("[MessageController._sendMessage] _reloadFromDB completed")}}this.host.dispatchEvent(new CustomEvent("rtc-message-sent",{bubbles:!0,composed:!0,detail:{message:i.message}}))}async _resendMessage(e,r){var s;if(!this._persistence){console.error("[MessageController] persistence not set");return}const n=(s=this._sessionController)==null?void 0:s.value.state.currentSessionId;if(!n){console.error("[MessageController] cannot resend: no current session");return}const i=await this._persistence.sendMessage({content:r,messageClientId:e,sessionClientId:n});await this._reloadFromDB(n),this.host.dispatchEvent(new CustomEvent("rtc-message-sent",{bubbles:!0,composed:!0,detail:{message:i.message}}))}async _forkSession(e){if(!this._persistence){console.error("[MessageController] persistence not set");return}const r=await this._persistence.forkSession({oldSessionClientId:e.oldSessionClientId,oldMessageClientId:e.oldMessageClientId,newSessionClientId:e.newSessionClientId,newMessageClientId:e.newMessageClientId,content:e.content,limit:e.limit});if(this._sessionController){const n={clientId:r.session.client_id,title:r.session.title||"",createdAt:new Date(r.session.created_at).getTime(),updatedAt:new Date(r.session.updated_at).getTime(),todoList:r.session.todo_list};this._sessionController.actions.setCurrentSession(n)}await this._reloadFromDB(r.session.client_id),this.host.dispatchEvent(new CustomEvent("rtc-message-sent",{bubbles:!0,composed:!0,detail:{message:r.message}}))}async _reloadFromDB(e){if(!this._persistence)return;const r=50,n=await this._persistence.listMessages(e,void 0,r,"backward"),i=n.map(a=>this._localMessageToUI(a)),s=n.length>=r;this._oldestLoadedOffset=n.length>0?n[0].global_offset:void 0,this._state={messages:i,hasMore:s,isLoadingMore:!1},this.host.requestUpdate()}async loadMore(){var r;if(!this._persistence||!this._state.hasMore||this._state.isLoadingMore)return;const e=(r=this._sessionController)==null?void 0:r.value.state.currentSessionId;if(!(!e||this._oldestLoadedOffset===void 0)){this._state={...this._state,isLoadingMore:!0},this.host.requestUpdate();try{const i=await this._persistence.listMessages(e,this._oldestLoadedOffset,50,"backward"),a=[...i.map(c=>this._localMessageToUI(c)),...this._state.messages],l=i.length>=50;i.length>0&&(this._oldestLoadedOffset=i[0].global_offset),this._state={messages:a,hasMore:l,isLoadingMore:!1},this.host.requestUpdate()}catch(n){console.error("[MessageController] loadMore failed:",n),this._state={...this._state,isLoadingMore:!1},this.host.requestUpdate()}}}async getUserMessageHistory(e,r=200){if(!this._persistence)return[];try{return(await this._persistence.listMessages(e,void 0,r,"backward")).filter(i=>i.role==="user"&&i.content).reverse().map(i=>this._extractTextFromContent(i.content))}catch(n){return console.warn("[MessageController] getUserMessageHistory failed:",n),[]}}_extractTextFromContent(e){if(!e)return"";try{const r=JSON.parse(e);if(r&&typeof r=="object"&&r.type==="text")return r.data??""}catch{}return e}_localMessageToUI(e){let r={type:"text",data:""};if(e.content)try{const n=JSON.parse(e.content);n&&typeof n=="object"&&"type"in n?r=n:r={type:"text",data:e.content}}catch{r={type:"text",data:e.content}}return{clientId:e.client_id,role:e.role,content:r,timestamp:new Date(e.created_at).getTime(),streaming:e.streaming_status==="streaming",syncStatus:e.sync_status,parentClientId:e.parent_client_id}}_appendToLastMessage(e){const r=[...this._state.messages];if(r.length===0)return;const n=r[r.length-1],i=typeof n.content.data=="string"?n.content.data+e:JSON.stringify(n.content.data)+e;r[r.length-1]={...n,content:{...n.content,data:i},streaming:!0},this._state={messages:r,hasMore:this._state.hasMore,isLoadingMore:this._state.isLoadingMore},this.host.requestUpdate()}_finalizeLastMessage(){const e=[...this._state.messages];if(e.length===0)return;const r=e[e.length-1];e[e.length-1]={...r,streaming:!1},this._state={messages:e,hasMore:this._state.hasMore,isLoadingMore:this._state.isLoadingMore},this.host.requestUpdate()}_clearMessages(){this._state={messages:[],hasMore:!1,isLoadingMore:!1},this.host.requestUpdate()}}const z3=new Set(["manual","edit","plan","auto","bypass"]);function H3(t){return z3.has(t)}class W3{constructor(e){this._state={...M3},this.host=e,this.host.addController(this),this.actions={setMode:r=>this._setMode(r)},this._restoreMode()}get value(){return{state:this._state,actions:this.actions}}hostConnected(){}hostDisconnected(){}_restoreMode(){try{const e=localStorage.getItem(vn.mode);e&&H3(e)&&(this._state={currentMode:e})}catch{}}_setMode(e){this._state={currentMode:e},this.host.requestUpdate();try{localStorage.setItem(vn.mode,e)}catch{}}}class K3{constructor(e){this._state={...L3},this.host=e,this.host.addController(this),this.actions={approve:r=>this._approve(r),approveAll:r=>this._approveAll(r),deny:r=>this._deny(r)}}get value(){return{state:this._state,actions:this.actions}}hostConnected(){}hostDisconnected(){}addPendingCall(e){this._state={pendingCalls:[...this._state.pendingCalls,e]},this.host.requestUpdate()}_approve(e){const r=this._state.pendingCalls.find(i=>i.id===e),n=this._state.pendingCalls.filter(i=>i.id!==e);this._state={pendingCalls:n},this.host.requestUpdate(),this.host.dispatchEvent(new CustomEvent("rtc-tool-call-approved",{bubbles:!0,composed:!0,detail:{id:e,toolName:r==null?void 0:r.toolName}}))}_approveAll(e){const r=this._state.pendingCalls.filter(n=>n.toolName!==e);this._state={pendingCalls:r},this.host.requestUpdate(),this.host.dispatchEvent(new CustomEvent("rtc-tool-call-approve-all",{bubbles:!0,composed:!0,detail:{toolName:e}}))}_deny(e){const r=this._state.pendingCalls.filter(n=>n.id!==e);this._state={pendingCalls:r},this.host.requestUpdate(),this.host.dispatchEvent(new CustomEvent("rtc-tool-call-denied",{bubbles:!0,composed:!0,detail:{id:e}}))}}var ta=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function dg(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Hp={exports:{}};Hp.exports,function(t,e){(function(r,n){t.exports=n()})(ta,function(){function r(S,v){var P=Object.keys(S);if(Object.getOwnPropertySymbols){var z=Object.getOwnPropertySymbols(S);v&&(z=z.filter(function(se){return Object.getOwnPropertyDescriptor(S,se).enumerable})),P.push.apply(P,z)}return P}function n(S){for(var v=1;v<arguments.length;v++){var P=arguments[v]!=null?arguments[v]:{};v%2?r(Object(P),!0).forEach(function(z){c(S,z,P[z])}):Object.getOwnPropertyDescriptors?Object.defineProperties(S,Object.getOwnPropertyDescriptors(P)):r(Object(P)).forEach(function(z){Object.defineProperty(S,z,Object.getOwnPropertyDescriptor(P,z))})}return S}function i(S){return i=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(v){return typeof v}:function(v){return v&&typeof Symbol=="function"&&v.constructor===Symbol&&v!==Symbol.prototype?"symbol":typeof v},i(S)}function s(S,v){if(!(S instanceof v))throw new TypeError("Cannot call a class as a function")}function a(S,v){for(var P=0;P<v.length;P++){var z=v[P];z.enumerable=z.enumerable||!1,z.configurable=!0,"value"in z&&(z.writable=!0),Object.defineProperty(S,A(z.key),z)}}function l(S,v,P){return v&&a(S.prototype,v),Object.defineProperty(S,"prototype",{writable:!1}),S}function c(S,v,P){return(v=A(v))in S?Object.defineProperty(S,v,{value:P,enumerable:!0,configurable:!0,writable:!0}):S[v]=P,S}function d(S,v){if(typeof v!="function"&&v!==null)throw new TypeError("Super expression must either be null or a function");S.prototype=Object.create(v&&v.prototype,{constructor:{value:S,writable:!0,configurable:!0}}),Object.defineProperty(S,"prototype",{writable:!1}),v&&h(S,v)}function u(S){return u=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(v){return v.__proto__||Object.getPrototypeOf(v)},u(S)}function h(S,v){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(P,z){return P.__proto__=z,P},h(S,v)}function _(S){if(S===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return S}function y(S){var v=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var P,z=u(S);if(v){var se=u(this).constructor;P=Reflect.construct(z,arguments,se)}else P=z.apply(this,arguments);return function(me,Ie){if(Ie&&(typeof Ie=="object"||typeof Ie=="function"))return Ie;if(Ie!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _(me)}(this,P)}}function w(){return w=typeof Reflect<"u"&&Reflect.get?Reflect.get.bind():function(S,v,P){var z=function(me,Ie){for(;!Object.prototype.hasOwnProperty.call(me,Ie)&&(me=u(me))!==null;);return me}(S,v);if(z){var se=Object.getOwnPropertyDescriptor(z,v);return se.get?se.get.call(arguments.length<3?S:P):se.value}},w.apply(this,arguments)}function A(S){var v=function(P,z){if(typeof P!="object"||P===null)return P;var se=P[Symbol.toPrimitive];if(se!==void 0){var me=se.call(P,z);if(typeof me!="object")return me;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(P)}(S,"string");return typeof v=="symbol"?v:v+""}var C=function(S){return!(!S||!S.Window)&&S instanceof S.Window},R=void 0,T=void 0;function O(S){R=S;var v=S.document.createTextNode("");v.ownerDocument!==S.document&&typeof S.wrap=="function"&&S.wrap(v)===v&&(S=S.wrap(S)),T=S}function x(S){return C(S)?S:(S.ownerDocument||S).defaultView||T.window}typeof window<"u"&&window&&O(window);var F=function(S){return!!S&&i(S)==="object"},B=function(S){return typeof S=="function"},N={window:function(S){return S===T||C(S)},docFrag:function(S){return F(S)&&S.nodeType===11},object:F,func:B,number:function(S){return typeof S=="number"},bool:function(S){return typeof S=="boolean"},string:function(S){return typeof S=="string"},element:function(S){if(!S||i(S)!=="object")return!1;var v=x(S)||T;return/object|function/.test(typeof Element>"u"?"undefined":i(Element))?S instanceof Element||S instanceof v.Element:S.nodeType===1&&typeof S.nodeName=="string"},plainObject:function(S){return F(S)&&!!S.constructor&&/function Object\b/.test(S.constructor.toString())},array:function(S){return F(S)&&S.length!==void 0&&B(S.splice)}};function L(S){var v=S.interaction;if(v.prepared.name==="drag"){var P=v.prepared.axis;P==="x"?(v.coords.cur.page.y=v.coords.start.page.y,v.coords.cur.client.y=v.coords.start.client.y,v.coords.velocity.client.y=0,v.coords.velocity.page.y=0):P==="y"&&(v.coords.cur.page.x=v.coords.start.page.x,v.coords.cur.client.x=v.coords.start.client.x,v.coords.velocity.client.x=0,v.coords.velocity.page.x=0)}}function te(S){var v=S.iEvent,P=S.interaction;if(P.prepared.name==="drag"){var z=P.prepared.axis;if(z==="x"||z==="y"){var se=z==="x"?"y":"x";v.page[se]=P.coords.start.page[se],v.client[se]=P.coords.start.client[se],v.delta[se]=0}}}var Z={id:"actions/drag",install:function(S){var v=S.actions,P=S.Interactable,z=S.defaults;P.prototype.draggable=Z.draggable,v.map.drag=Z,v.methodDict.drag="draggable",z.actions.drag=Z.defaults},listeners:{"interactions:before-action-move":L,"interactions:action-resume":L,"interactions:action-move":te,"auto-start:check":function(S){var v=S.interaction,P=S.interactable,z=S.buttons,se=P.options.drag;if(se&&se.enabled&&(!v.pointerIsDown||!/mouse|pointer/.test(v.pointerType)||z&P.options.drag.mouseButtons))return S.action={name:"drag",axis:se.lockAxis==="start"?se.startAxis:se.lockAxis},!1}},draggable:function(S){return N.object(S)?(this.options.drag.enabled=S.enabled!==!1,this.setPerAction("drag",S),this.setOnEvents("drag",S),/^(xy|x|y|start)$/.test(S.lockAxis)&&(this.options.drag.lockAxis=S.lockAxis),/^(xy|x|y)$/.test(S.startAxis)&&(this.options.drag.startAxis=S.startAxis),this):N.bool(S)?(this.options.drag.enabled=S,this):this.options.drag},beforeMove:L,move:te,defaults:{startAxis:"xy",lockAxis:"xy"},getCursor:function(){return"move"},filterEventType:function(S){return S.search("drag")===0}},M=Z,Y={init:function(S){var v=S;Y.document=v.document,Y.DocumentFragment=v.DocumentFragment||fe,Y.SVGElement=v.SVGElement||fe,Y.SVGSVGElement=v.SVGSVGElement||fe,Y.SVGElementInstance=v.SVGElementInstance||fe,Y.Element=v.Element||fe,Y.HTMLElement=v.HTMLElement||Y.Element,Y.Event=v.Event,Y.Touch=v.Touch||fe,Y.PointerEvent=v.PointerEvent||v.MSPointerEvent},document:null,DocumentFragment:null,SVGElement:null,SVGSVGElement:null,SVGElementInstance:null,Element:null,HTMLElement:null,Event:null,Touch:null,PointerEvent:null};function fe(){}var Te=Y,Me={init:function(S){var v=Te.Element,P=S.navigator||{};Me.supportsTouch="ontouchstart"in S||N.func(S.DocumentTouch)&&Te.document instanceof S.DocumentTouch,Me.supportsPointerEvent=P.pointerEnabled!==!1&&!!Te.PointerEvent,Me.isIOS=/iP(hone|od|ad)/.test(P.platform),Me.isIOS7=/iP(hone|od|ad)/.test(P.platform)&&/OS 7[^\d]/.test(P.appVersion),Me.isIe9=/MSIE 9/.test(P.userAgent),Me.isOperaMobile=P.appName==="Opera"&&Me.supportsTouch&&/Presto/.test(P.userAgent),Me.prefixedMatchesSelector="matches"in v.prototype?"matches":"webkitMatchesSelector"in v.prototype?"webkitMatchesSelector":"mozMatchesSelector"in v.prototype?"mozMatchesSelector":"oMatchesSelector"in v.prototype?"oMatchesSelector":"msMatchesSelector",Me.pEventTypes=Me.supportsPointerEvent?Te.PointerEvent===S.MSPointerEvent?{up:"MSPointerUp",down:"MSPointerDown",over:"mouseover",out:"mouseout",move:"MSPointerMove",cancel:"MSPointerCancel"}:{up:"pointerup",down:"pointerdown",over:"pointerover",out:"pointerout",move:"pointermove",cancel:"pointercancel"}:null,Me.wheelEvent=Te.document&&"onmousewheel"in Te.document?"mousewheel":"wheel"},supportsTouch:null,supportsPointerEvent:null,isIOS7:null,isIOS:null,isIe9:null,isOperaMobile:null,prefixedMatchesSelector:null,pEventTypes:null,wheelEvent:null},ve=Me;function pe(S,v){if(S.contains)return S.contains(v);for(;v;){if(v===S)return!0;v=v.parentNode}return!1}function he(S,v){for(;N.element(S);){if(ne(S,v))return S;S=K(S)}return null}function K(S){var v=S.parentNode;if(N.docFrag(v)){for(;(v=v.host)&&N.docFrag(v););return v}return v}function ne(S,v){return T!==R&&(v=v.replace(/\/deep\//g," ")),S[ve.prefixedMatchesSelector](v)}var xe=function(S){return S.parentNode||S.host};function ge(S,v){for(var P,z=[],se=S;(P=xe(se))&&se!==v&&P!==se.ownerDocument;)z.unshift(se),se=P;return z}function X(S,v,P){for(;N.element(S);){if(ne(S,v))return!0;if((S=K(S))===P)return ne(S,v)}return!1}function $(S){return S.correspondingUseElement||S}function re(S){var v=S instanceof Te.SVGElement?S.getBoundingClientRect():S.getClientRects()[0];return v&&{left:v.left,right:v.right,top:v.top,bottom:v.bottom,width:v.width||v.right-v.left,height:v.height||v.bottom-v.top}}function we(S){var v,P=re(S);if(!ve.isIOS7&&P){var z={x:(v=(v=x(S))||T).scrollX||v.document.documentElement.scrollLeft,y:v.scrollY||v.document.documentElement.scrollTop};P.left+=z.x,P.right+=z.x,P.top+=z.y,P.bottom+=z.y}return P}function qe(S){for(var v=[];S;)v.push(S),S=K(S);return v}function Pe(S){return!!N.string(S)&&(Te.document.querySelector(S),!0)}function De(S,v){for(var P in v)S[P]=v[P];return S}function Ze(S,v,P){return S==="parent"?K(P):S==="self"?v.getRect(P):he(P,S)}function it(S,v,P,z){var se=S;return N.string(se)?se=Ze(se,v,P):N.func(se)&&(se=se.apply(void 0,z)),N.element(se)&&(se=we(se)),se}function ft(S){return S&&{x:"x"in S?S.x:S.left,y:"y"in S?S.y:S.top}}function wt(S){return!S||"x"in S&&"y"in S||((S=De({},S)).x=S.left||0,S.y=S.top||0,S.width=S.width||(S.right||0)-S.x,S.height=S.height||(S.bottom||0)-S.y),S}function ht(S,v,P){S.left&&(v.left+=P.x),S.right&&(v.right+=P.x),S.top&&(v.top+=P.y),S.bottom&&(v.bottom+=P.y),v.width=v.right-v.left,v.height=v.bottom-v.top}function Pt(S,v,P){var z=P&&S.options[P];return ft(it(z&&z.origin||S.options.origin,S,v,[S&&v]))||{x:0,y:0}}function Je(S,v){var P=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(We){return!0},z=arguments.length>3?arguments[3]:void 0;if(z=z||{},N.string(S)&&S.search(" ")!==-1&&(S=Ke(S)),N.array(S))return S.forEach(function(We){return Je(We,v,P,z)}),z;if(N.object(S)&&(v=S,S=""),N.func(v)&&P(S))z[S]=z[S]||[],z[S].push(v);else if(N.array(v))for(var se=0,me=v;se<me.length;se++){var Ie=me[se];Je(S,Ie,P,z)}else if(N.object(v))for(var Be in v)Je(Ke(Be).map(function(We){return"".concat(S).concat(We)}),v[Be],P,z);return z}function Ke(S){return S.trim().split(/ +/)}var Ye=function(S,v){return Math.sqrt(S*S+v*v)},rt=["webkit","moz"];function Dt(S,v){S.__set||(S.__set={});var P=function(se){if(rt.some(function(me){return se.indexOf(me)===0}))return 1;typeof S[se]!="function"&&se!=="__set"&&Object.defineProperty(S,se,{get:function(){return se in S.__set?S.__set[se]:S.__set[se]=v[se]},set:function(me){S.__set[se]=me},configurable:!0})};for(var z in v)P(z);return S}function Ct(S,v){S.page=S.page||{},S.page.x=v.page.x,S.page.y=v.page.y,S.client=S.client||{},S.client.x=v.client.x,S.client.y=v.client.y,S.timeStamp=v.timeStamp}function Ue(S){S.page.x=0,S.page.y=0,S.client.x=0,S.client.y=0}function ke(S){return S instanceof Te.Event||S instanceof Te.Touch}function _e(S,v,P){return S=S||"page",(P=P||{}).x=v[S+"X"],P.y=v[S+"Y"],P}function ce(S,v){return v=v||{x:0,y:0},ve.isOperaMobile&&ke(S)?(_e("screen",S,v),v.x+=window.scrollX,v.y+=window.scrollY):_e("page",S,v),v}function le(S){return N.number(S.pointerId)?S.pointerId:S.identifier}function H(S,v,P){var z=v.length>1?$e(v):v[0];ce(z,S.page),function(se,me){me=me||{},ve.isOperaMobile&&ke(se)?_e("screen",se,me):_e("client",se,me)}(z,S.client),S.timeStamp=P}function be(S){var v=[];return N.array(S)?(v[0]=S[0],v[1]=S[1]):S.type==="touchend"?S.touches.length===1?(v[0]=S.touches[0],v[1]=S.changedTouches[0]):S.touches.length===0&&(v[0]=S.changedTouches[0],v[1]=S.changedTouches[1]):(v[0]=S.touches[0],v[1]=S.touches[1]),v}function $e(S){for(var v={pageX:0,pageY:0,clientX:0,clientY:0,screenX:0,screenY:0},P=0;P<S.length;P++){var z=S[P];for(var se in v)v[se]+=z[se]}for(var me in v)v[me]/=S.length;return v}function Q(S){if(!S.length)return null;var v=be(S),P=Math.min(v[0].pageX,v[1].pageX),z=Math.min(v[0].pageY,v[1].pageY),se=Math.max(v[0].pageX,v[1].pageX),me=Math.max(v[0].pageY,v[1].pageY);return{x:P,y:z,left:P,top:z,right:se,bottom:me,width:se-P,height:me-z}}function k(S,v){var P=v+"X",z=v+"Y",se=be(S),me=se[0][P]-se[1][P],Ie=se[0][z]-se[1][z];return Ye(me,Ie)}function q(S,v){var P=v+"X",z=v+"Y",se=be(S),me=se[1][P]-se[0][P],Ie=se[1][z]-se[0][z];return 180*Math.atan2(Ie,me)/Math.PI}function Ne(S){return N.string(S.pointerType)?S.pointerType:N.number(S.pointerType)?[void 0,void 0,"touch","pen","mouse"][S.pointerType]:/touch/.test(S.type||"")||S instanceof Te.Touch?"touch":"mouse"}function nt(S){var v=N.func(S.composedPath)?S.composedPath():S.path;return[$(v?v[0]:S.target),$(S.currentTarget)]}var Xe=function(){function S(v){s(this,S),this.immediatePropagationStopped=!1,this.propagationStopped=!1,this._interaction=v}return l(S,[{key:"preventDefault",value:function(){}},{key:"stopPropagation",value:function(){this.propagationStopped=!0}},{key:"stopImmediatePropagation",value:function(){this.immediatePropagationStopped=this.propagationStopped=!0}}]),S}();Object.defineProperty(Xe.prototype,"interaction",{get:function(){return this._interaction._proxy},set:function(){}});var pt=function(S,v){for(var P=0;P<v.length;P++){var z=v[P];S.push(z)}return S},oe=function(S){return pt([],S)},Se=function(S,v){for(var P=0;P<S.length;P++)if(v(S[P],P,S))return P;return-1},ee=function(S,v){return S[Se(S,v)]},Ce=function(S){d(P,S);var v=y(P);function P(z,se,me){var Ie;s(this,P),(Ie=v.call(this,se._interaction)).dropzone=void 0,Ie.dragEvent=void 0,Ie.relatedTarget=void 0,Ie.draggable=void 0,Ie.propagationStopped=!1,Ie.immediatePropagationStopped=!1;var Be=me==="dragleave"?z.prev:z.cur,We=Be.element,ut=Be.dropzone;return Ie.type=me,Ie.target=We,Ie.currentTarget=We,Ie.dropzone=ut,Ie.dragEvent=se,Ie.relatedTarget=se.target,Ie.draggable=se.interactable,Ie.timeStamp=se.timeStamp,Ie}return l(P,[{key:"reject",value:function(){var z=this,se=this._interaction.dropState;if(this.type==="dropactivate"||this.dropzone&&se.cur.dropzone===this.dropzone&&se.cur.element===this.target)if(se.prev.dropzone=this.dropzone,se.prev.element=this.target,se.rejected=!0,se.events.enter=null,this.stopImmediatePropagation(),this.type==="dropactivate"){var me=se.activeDrops,Ie=Se(me,function(We){var ut=We.dropzone,tt=We.element;return ut===z.dropzone&&tt===z.target});se.activeDrops.splice(Ie,1);var Be=new P(se,this.dragEvent,"dropdeactivate");Be.dropzone=this.dropzone,Be.target=this.target,this.dropzone.fire(Be)}else this.dropzone.fire(new P(se,this.dragEvent,"dragleave"))}},{key:"preventDefault",value:function(){}},{key:"stopPropagation",value:function(){this.propagationStopped=!0}},{key:"stopImmediatePropagation",value:function(){this.immediatePropagationStopped=this.propagationStopped=!0}}]),P}(Xe);function dt(S,v){for(var P=0,z=S.slice();P<z.length;P++){var se=z[P],me=se.dropzone,Ie=se.element;v.dropzone=me,v.target=Ie,me.fire(v),v.propagationStopped=v.immediatePropagationStopped=!1}}function Re(S,v){for(var P=function(me,Ie){for(var Be=[],We=0,ut=me.interactables.list;We<ut.length;We++){var tt=ut[We];if(tt.options.drop.enabled){var b=tt.options.drop.accept;if(!(N.element(b)&&b!==Ie||N.string(b)&&!ne(Ie,b)||N.func(b)&&!b({dropzone:tt,draggableElement:Ie})))for(var I=0,U=tt.getAllElements();I<U.length;I++){var j=U[I];j!==Ie&&Be.push({dropzone:tt,element:j,rect:tt.getRect(j)})}}}return Be}(S,v),z=0;z<P.length;z++){var se=P[z];se.rect=se.dropzone.getRect(se.element)}return P}function Tt(S,v,P){for(var z=S.dropState,se=S.interactable,me=S.element,Ie=[],Be=0,We=z.activeDrops;Be<We.length;Be++){var ut=We[Be],tt=ut.dropzone,b=ut.element,I=ut.rect,U=tt.dropCheck(v,P,se,me,b,I);Ie.push(U?b:null)}var j=function(ie){for(var ye,Oe,Le,at=[],gt=0;gt<ie.length;gt++){var lt=ie[gt],ot=ie[ye];if(lt&>!==ye)if(ot){var mt=xe(lt),_t=xe(ot);if(mt!==lt.ownerDocument)if(_t!==lt.ownerDocument)if(mt!==_t){at=at.length?at:ge(ot);var yt=void 0;if(ot instanceof Te.HTMLElement&< instanceof Te.SVGElement&&!(lt instanceof Te.SVGSVGElement)){if(lt===_t)continue;yt=lt.ownerSVGElement}else yt=lt;for(var bt=ge(yt,ot.ownerDocument),vt=0;bt[vt]&&bt[vt]===at[vt];)vt++;var Nt=[bt[vt-1],bt[vt],at[vt]];if(Nt[0])for(var Ot=Nt[0].lastChild;Ot;){if(Ot===Nt[1]){ye=gt,at=bt;break}if(Ot===Nt[2])break;Ot=Ot.previousSibling}}else Le=ot,(parseInt(x(Oe=lt).getComputedStyle(Oe).zIndex,10)||0)>=(parseInt(x(Le).getComputedStyle(Le).zIndex,10)||0)&&(ye=gt);else ye=gt}else ye=gt}return ye}(Ie);return z.activeDrops[j]||null}function Mt(S,v,P){var z=S.dropState,se={enter:null,leave:null,activate:null,deactivate:null,move:null,drop:null};return P.type==="dragstart"&&(se.activate=new Ce(z,P,"dropactivate"),se.activate.target=null,se.activate.dropzone=null),P.type==="dragend"&&(se.deactivate=new Ce(z,P,"dropdeactivate"),se.deactivate.target=null,se.deactivate.dropzone=null),z.rejected||(z.cur.element!==z.prev.element&&(z.prev.dropzone&&(se.leave=new Ce(z,P,"dragleave"),P.dragLeave=se.leave.target=z.prev.element,P.prevDropzone=se.leave.dropzone=z.prev.dropzone),z.cur.dropzone&&(se.enter=new Ce(z,P,"dragenter"),P.dragEnter=z.cur.element,P.dropzone=z.cur.dropzone)),P.type==="dragend"&&z.cur.dropzone&&(se.drop=new Ce(z,P,"drop"),P.dropzone=z.cur.dropzone,P.relatedTarget=z.cur.element),P.type==="dragmove"&&z.cur.dropzone&&(se.move=new Ce(z,P,"dropmove"),P.dropzone=z.cur.dropzone)),se}function Lt(S,v){var P=S.dropState,z=P.activeDrops,se=P.cur,me=P.prev;v.leave&&me.dropzone.fire(v.leave),v.enter&&se.dropzone.fire(v.enter),v.move&&se.dropzone.fire(v.move),v.drop&&se.dropzone.fire(v.drop),v.deactivate&&dt(z,v.deactivate),P.prev.dropzone=se.dropzone,P.prev.element=se.element}function tr(S,v){var P=S.interaction,z=S.iEvent,se=S.event;if(z.type==="dragmove"||z.type==="dragend"){var me=P.dropState;v.dynamicDrop&&(me.activeDrops=Re(v,P.element));var Ie=z,Be=Tt(P,Ie,se);me.rejected=me.rejected&&!!Be&&Be.dropzone===me.cur.dropzone&&Be.element===me.cur.element,me.cur.dropzone=Be&&Be.dropzone,me.cur.element=Be&&Be.element,me.events=Mt(P,0,Ie)}}var pr={id:"actions/drop",install:function(S){var v=S.actions,P=S.interactStatic,z=S.Interactable,se=S.defaults;S.usePlugin(M),z.prototype.dropzone=function(me){return function(Ie,Be){if(N.object(Be)){if(Ie.options.drop.enabled=Be.enabled!==!1,Be.listeners){var We=Je(Be.listeners),ut=Object.keys(We).reduce(function(b,I){return b[/^(enter|leave)/.test(I)?"drag".concat(I):/^(activate|deactivate|move)/.test(I)?"drop".concat(I):I]=We[I],b},{}),tt=Ie.options.drop.listeners;tt&&Ie.off(tt),Ie.on(ut),Ie.options.drop.listeners=ut}return N.func(Be.ondrop)&&Ie.on("drop",Be.ondrop),N.func(Be.ondropactivate)&&Ie.on("dropactivate",Be.ondropactivate),N.func(Be.ondropdeactivate)&&Ie.on("dropdeactivate",Be.ondropdeactivate),N.func(Be.ondragenter)&&Ie.on("dragenter",Be.ondragenter),N.func(Be.ondragleave)&&Ie.on("dragleave",Be.ondragleave),N.func(Be.ondropmove)&&Ie.on("dropmove",Be.ondropmove),/^(pointer|center)$/.test(Be.overlap)?Ie.options.drop.overlap=Be.overlap:N.number(Be.overlap)&&(Ie.options.drop.overlap=Math.max(Math.min(1,Be.overlap),0)),"accept"in Be&&(Ie.options.drop.accept=Be.accept),"checker"in Be&&(Ie.options.drop.checker=Be.checker),Ie}return N.bool(Be)?(Ie.options.drop.enabled=Be,Ie):Ie.options.drop}(this,me)},z.prototype.dropCheck=function(me,Ie,Be,We,ut,tt){return function(b,I,U,j,ie,ye,Oe){var Le=!1;if(!(Oe=Oe||b.getRect(ye)))return!!b.options.drop.checker&&b.options.drop.checker(I,U,Le,b,ye,j,ie);var at=b.options.drop.overlap;if(at==="pointer"){var gt=Pt(j,ie,"drag"),lt=ce(I);lt.x+=gt.x,lt.y+=gt.y;var ot=lt.x>Oe.left&<.x<Oe.right,mt=lt.y>Oe.top&<.y<Oe.bottom;Le=ot&&mt}var _t=j.getRect(ie);if(_t&&at==="center"){var yt=_t.left+_t.width/2,bt=_t.top+_t.height/2;Le=yt>=Oe.left&&yt<=Oe.right&&bt>=Oe.top&&bt<=Oe.bottom}return _t&&N.number(at)&&(Le=Math.max(0,Math.min(Oe.right,_t.right)-Math.max(Oe.left,_t.left))*Math.max(0,Math.min(Oe.bottom,_t.bottom)-Math.max(Oe.top,_t.top))/(_t.width*_t.height)>=at),b.options.drop.checker&&(Le=b.options.drop.checker(I,U,Le,b,ye,j,ie)),Le}(this,me,Ie,Be,We,ut,tt)},P.dynamicDrop=function(me){return N.bool(me)?(S.dynamicDrop=me,P):S.dynamicDrop},De(v.phaselessTypes,{dragenter:!0,dragleave:!0,dropactivate:!0,dropdeactivate:!0,dropmove:!0,drop:!0}),v.methodDict.drop="dropzone",S.dynamicDrop=!1,se.actions.drop=pr.defaults},listeners:{"interactions:before-action-start":function(S){var v=S.interaction;v.prepared.name==="drag"&&(v.dropState={cur:{dropzone:null,element:null},prev:{dropzone:null,element:null},rejected:null,events:null,activeDrops:[]})},"interactions:after-action-start":function(S,v){var P=S.interaction,z=(S.event,S.iEvent);if(P.prepared.name==="drag"){var se=P.dropState;se.activeDrops=[],se.events={},se.activeDrops=Re(v,P.element),se.events=Mt(P,0,z),se.events.activate&&(dt(se.activeDrops,se.events.activate),v.fire("actions/drop:start",{interaction:P,dragEvent:z}))}},"interactions:action-move":tr,"interactions:after-action-move":function(S,v){var P=S.interaction,z=S.iEvent;if(P.prepared.name==="drag"){var se=P.dropState;Lt(P,se.events),v.fire("actions/drop:move",{interaction:P,dragEvent:z}),se.events={}}},"interactions:action-end":function(S,v){if(S.interaction.prepared.name==="drag"){var P=S.interaction,z=S.iEvent;tr(S,v),Lt(P,P.dropState.events),v.fire("actions/drop:end",{interaction:P,dragEvent:z})}},"interactions:stop":function(S){var v=S.interaction;if(v.prepared.name==="drag"){var P=v.dropState;P&&(P.activeDrops=null,P.events=null,P.cur.dropzone=null,P.cur.element=null,P.prev.dropzone=null,P.prev.element=null,P.rejected=!1)}}},getActiveDrops:Re,getDrop:Tt,getDropEvents:Mt,fireDropEvents:Lt,filterEventType:function(S){return S.search("drag")===0||S.search("drop")===0},defaults:{enabled:!1,accept:null,overlap:"pointer"}},_r=pr;function Sr(S){var v=S.interaction,P=S.iEvent,z=S.phase;if(v.prepared.name==="gesture"){var se=v.pointers.map(function(ut){return ut.pointer}),me=z==="start",Ie=z==="end",Be=v.interactable.options.deltaSource;if(P.touches=[se[0],se[1]],me)P.distance=k(se,Be),P.box=Q(se),P.scale=1,P.ds=0,P.angle=q(se,Be),P.da=0,v.gesture.startDistance=P.distance,v.gesture.startAngle=P.angle;else if(Ie||v.pointers.length<2){var We=v.prevEvent;P.distance=We.distance,P.box=We.box,P.scale=We.scale,P.ds=0,P.angle=We.angle,P.da=0}else P.distance=k(se,Be),P.box=Q(se),P.scale=P.distance/v.gesture.startDistance,P.angle=q(se,Be),P.ds=P.scale-v.gesture.scale,P.da=P.angle-v.gesture.angle;v.gesture.distance=P.distance,v.gesture.angle=P.angle,N.number(P.scale)&&P.scale!==1/0&&!isNaN(P.scale)&&(v.gesture.scale=P.scale)}}var Ir={id:"actions/gesture",before:["actions/drag","actions/resize"],install:function(S){var v=S.actions,P=S.Interactable,z=S.defaults;P.prototype.gesturable=function(se){return N.object(se)?(this.options.gesture.enabled=se.enabled!==!1,this.setPerAction("gesture",se),this.setOnEvents("gesture",se),this):N.bool(se)?(this.options.gesture.enabled=se,this):this.options.gesture},v.map.gesture=Ir,v.methodDict.gesture="gesturable",z.actions.gesture=Ir.defaults},listeners:{"interactions:action-start":Sr,"interactions:action-move":Sr,"interactions:action-end":Sr,"interactions:new":function(S){S.interaction.gesture={angle:0,distance:0,scale:1,startAngle:0,startDistance:0}},"auto-start:check":function(S){if(!(S.interaction.pointers.length<2)){var v=S.interactable.options.gesture;if(v&&v.enabled)return S.action={name:"gesture"},!1}}},defaults:{},getCursor:function(){return""},filterEventType:function(S){return S.search("gesture")===0}},cn=Ir;function Tr(S,v,P,z,se,me,Ie){if(!v)return!1;if(v===!0){var Be=N.number(me.width)?me.width:me.right-me.left,We=N.number(me.height)?me.height:me.bottom-me.top;if(Ie=Math.min(Ie,Math.abs((S==="left"||S==="right"?Be:We)/2)),Be<0&&(S==="left"?S="right":S==="right"&&(S="left")),We<0&&(S==="top"?S="bottom":S==="bottom"&&(S="top")),S==="left"){var ut=Be>=0?me.left:me.right;return P.x<ut+Ie}if(S==="top"){var tt=We>=0?me.top:me.bottom;return P.y<tt+Ie}if(S==="right")return P.x>(Be>=0?me.right:me.left)-Ie;if(S==="bottom")return P.y>(We>=0?me.bottom:me.top)-Ie}return!!N.element(z)&&(N.element(v)?v===z:X(z,v,se))}function Pr(S){var v=S.iEvent,P=S.interaction;if(P.prepared.name==="resize"&&P.resizeAxes){var z=v;P.interactable.options.resize.square?(P.resizeAxes==="y"?z.delta.x=z.delta.y:z.delta.y=z.delta.x,z.axes="xy"):(z.axes=P.resizeAxes,P.resizeAxes==="x"?z.delta.y=0:P.resizeAxes==="y"&&(z.delta.x=0))}}var xn,On,Yr={id:"actions/resize",before:["actions/drag"],install:function(S){var v=S.actions,P=S.browser,z=S.Interactable,se=S.defaults;Yr.cursors=function(me){return me.isIe9?{x:"e-resize",y:"s-resize",xy:"se-resize",top:"n-resize",left:"w-resize",bottom:"s-resize",right:"e-resize",topleft:"se-resize",bottomright:"se-resize",topright:"ne-resize",bottomleft:"ne-resize"}:{x:"ew-resize",y:"ns-resize",xy:"nwse-resize",top:"ns-resize",left:"ew-resize",bottom:"ns-resize",right:"ew-resize",topleft:"nwse-resize",bottomright:"nwse-resize",topright:"nesw-resize",bottomleft:"nesw-resize"}}(P),Yr.defaultMargin=P.supportsTouch||P.supportsPointerEvent?20:10,z.prototype.resizable=function(me){return function(Ie,Be,We){return N.object(Be)?(Ie.options.resize.enabled=Be.enabled!==!1,Ie.setPerAction("resize",Be),Ie.setOnEvents("resize",Be),N.string(Be.axis)&&/^x$|^y$|^xy$/.test(Be.axis)?Ie.options.resize.axis=Be.axis:Be.axis===null&&(Ie.options.resize.axis=We.defaults.actions.resize.axis),N.bool(Be.preserveAspectRatio)?Ie.options.resize.preserveAspectRatio=Be.preserveAspectRatio:N.bool(Be.square)&&(Ie.options.resize.square=Be.square),Ie):N.bool(Be)?(Ie.options.resize.enabled=Be,Ie):Ie.options.resize}(this,me,S)},v.map.resize=Yr,v.methodDict.resize="resizable",se.actions.resize=Yr.defaults},listeners:{"interactions:new":function(S){S.interaction.resizeAxes="xy"},"interactions:action-start":function(S){(function(v){var P=v.iEvent,z=v.interaction;if(z.prepared.name==="resize"&&z.prepared.edges){var se=P,me=z.rect;z._rects={start:De({},me),corrected:De({},me),previous:De({},me),delta:{left:0,right:0,width:0,top:0,bottom:0,height:0}},se.edges=z.prepared.edges,se.rect=z._rects.corrected,se.deltaRect=z._rects.delta}})(S),Pr(S)},"interactions:action-move":function(S){(function(v){var P=v.iEvent,z=v.interaction;if(z.prepared.name==="resize"&&z.prepared.edges){var se=P,me=z.interactable.options.resize.invert,Ie=me==="reposition"||me==="negate",Be=z.rect,We=z._rects,ut=We.start,tt=We.corrected,b=We.delta,I=We.previous;if(De(I,tt),Ie){if(De(tt,Be),me==="reposition"){if(tt.top>tt.bottom){var U=tt.top;tt.top=tt.bottom,tt.bottom=U}if(tt.left>tt.right){var j=tt.left;tt.left=tt.right,tt.right=j}}}else tt.top=Math.min(Be.top,ut.bottom),tt.bottom=Math.max(Be.bottom,ut.top),tt.left=Math.min(Be.left,ut.right),tt.right=Math.max(Be.right,ut.left);for(var ie in tt.width=tt.right-tt.left,tt.height=tt.bottom-tt.top,tt)b[ie]=tt[ie]-I[ie];se.edges=z.prepared.edges,se.rect=tt,se.deltaRect=b}})(S),Pr(S)},"interactions:action-end":function(S){var v=S.iEvent,P=S.interaction;if(P.prepared.name==="resize"&&P.prepared.edges){var z=v;z.edges=P.prepared.edges,z.rect=P._rects.corrected,z.deltaRect=P._rects.delta}},"auto-start:check":function(S){var v=S.interaction,P=S.interactable,z=S.element,se=S.rect,me=S.buttons;if(se){var Ie=De({},v.coords.cur.page),Be=P.options.resize;if(Be&&Be.enabled&&(!v.pointerIsDown||!/mouse|pointer/.test(v.pointerType)||me&Be.mouseButtons)){if(N.object(Be.edges)){var We={left:!1,right:!1,top:!1,bottom:!1};for(var ut in We)We[ut]=Tr(ut,Be.edges[ut],Ie,v._latestPointer.eventTarget,z,se,Be.margin||Yr.defaultMargin);We.left=We.left&&!We.right,We.top=We.top&&!We.bottom,(We.left||We.right||We.top||We.bottom)&&(S.action={name:"resize",edges:We})}else{var tt=Be.axis!=="y"&&Ie.x>se.right-Yr.defaultMargin,b=Be.axis!=="x"&&Ie.y>se.bottom-Yr.defaultMargin;(tt||b)&&(S.action={name:"resize",axes:(tt?"x":"")+(b?"y":"")})}return!S.action&&void 0}}}},defaults:{square:!1,preserveAspectRatio:!1,axis:"xy",margin:NaN,edges:null,invert:"none"},cursors:null,getCursor:function(S){var v=S.edges,P=S.axis,z=S.name,se=Yr.cursors,me=null;if(P)me=se[z+P];else if(v){for(var Ie="",Be=0,We=["top","bottom","left","right"];Be<We.length;Be++){var ut=We[Be];v[ut]&&(Ie+=ut)}me=se[Ie]}return me},filterEventType:function(S){return S.search("resize")===0},defaultMargin:null},rr=Yr,Si={id:"actions",install:function(S){S.usePlugin(cn),S.usePlugin(rr),S.usePlugin(M),S.usePlugin(_r)}},Bn=0,un={request:function(S){return xn(S)},cancel:function(S){return On(S)},init:function(S){if(xn=S.requestAnimationFrame,On=S.cancelAnimationFrame,!xn)for(var v=["ms","moz","webkit","o"],P=0;P<v.length;P++){var z=v[P];xn=S["".concat(z,"RequestAnimationFrame")],On=S["".concat(z,"CancelAnimationFrame")]||S["".concat(z,"CancelRequestAnimationFrame")]}xn=xn&&xn.bind(S),On=On&&On.bind(S),xn||(xn=function(se){var me=Date.now(),Ie=Math.max(0,16-(me-Bn)),Be=S.setTimeout(function(){se(me+Ie)},Ie);return Bn=me+Ie,Be},On=function(se){return clearTimeout(se)})}},cr={defaults:{enabled:!1,margin:60,container:null,speed:300},now:Date.now,interaction:null,i:0,x:0,y:0,isScrolling:!1,prevTime:0,margin:0,speed:0,start:function(S){cr.isScrolling=!0,un.cancel(cr.i),S.autoScroll=cr,cr.interaction=S,cr.prevTime=cr.now(),cr.i=un.request(cr.scroll)},stop:function(){cr.isScrolling=!1,cr.interaction&&(cr.interaction.autoScroll=null),un.cancel(cr.i)},scroll:function(){var S=cr.interaction,v=S.interactable,P=S.element,z=S.prepared.name,se=v.options[z].autoScroll,me=kn(se.container,v,P),Ie=cr.now(),Be=(Ie-cr.prevTime)/1e3,We=se.speed*Be;if(We>=1){var ut={x:cr.x*We,y:cr.y*We};if(ut.x||ut.y){var tt=zr(me);N.window(me)?me.scrollBy(ut.x,ut.y):me&&(me.scrollLeft+=ut.x,me.scrollTop+=ut.y);var b=zr(me),I={x:b.x-tt.x,y:b.y-tt.y};(I.x||I.y)&&v.fire({type:"autoscroll",target:P,interactable:v,delta:I,interaction:S,container:me})}cr.prevTime=Ie}cr.isScrolling&&(un.cancel(cr.i),cr.i=un.request(cr.scroll))},check:function(S,v){var P;return(P=S.options[v].autoScroll)==null?void 0:P.enabled},onInteractionMove:function(S){var v=S.interaction,P=S.pointer;if(v.interacting()&&cr.check(v.interactable,v.prepared.name))if(v.simulation)cr.x=cr.y=0;else{var z,se,me,Ie,Be=v.interactable,We=v.element,ut=v.prepared.name,tt=Be.options[ut].autoScroll,b=kn(tt.container,Be,We);if(N.window(b))Ie=P.clientX<cr.margin,z=P.clientY<cr.margin,se=P.clientX>b.innerWidth-cr.margin,me=P.clientY>b.innerHeight-cr.margin;else{var I=re(b);Ie=P.clientX<I.left+cr.margin,z=P.clientY<I.top+cr.margin,se=P.clientX>I.right-cr.margin,me=P.clientY>I.bottom-cr.margin}cr.x=se?1:Ie?-1:0,cr.y=me?1:z?-1:0,cr.isScrolling||(cr.margin=tt.margin,cr.speed=tt.speed,cr.start(v))}}};function kn(S,v,P){return(N.string(S)?Ze(S,v,P):S)||x(P)}function zr(S){return N.window(S)&&(S=window.document.body),{x:S.scrollLeft,y:S.scrollTop}}var An={id:"auto-scroll",install:function(S){var v=S.defaults,P=S.actions;S.autoScroll=cr,cr.now=function(){return S.now()},P.phaselessTypes.autoscroll=!0,v.perAction.autoScroll=cr.defaults},listeners:{"interactions:new":function(S){S.interaction.autoScroll=null},"interactions:destroy":function(S){S.interaction.autoScroll=null,cr.stop(),cr.interaction&&(cr.interaction=null)},"interactions:stop":cr.stop,"interactions:action-move":function(S){return cr.onInteractionMove(S)}}},Ni=An;function gn(S,v){var P=!1;return function(){return P||(T.console.warn(v),P=!0),S.apply(this,arguments)}}function qn(S,v){return S.name=v.name,S.axis=v.axis,S.edges=v.edges,S}function Ri(S){return N.bool(S)?(this.options.styleCursor=S,this):S===null?(delete this.options.styleCursor,this):this.options.styleCursor}function tn(S){return N.func(S)?(this.options.actionChecker=S,this):S===null?(delete this.options.actionChecker,this):this.options.actionChecker}var Jn={id:"auto-start/interactableMethods",install:function(S){var v=S.Interactable;v.prototype.getAction=function(P,z,se,me){var Ie=function(Be,We,ut,tt,b){var I=Be.getRect(tt),U=We.buttons||{0:1,1:4,3:8,4:16}[We.button],j={action:null,interactable:Be,interaction:ut,element:tt,rect:I,buttons:U};return b.fire("auto-start:check",j),j.action}(this,z,se,me,S);return this.options.actionChecker?this.options.actionChecker(P,z,Ie,this,me,se):Ie},v.prototype.ignoreFrom=gn(function(P){return this._backCompatOption("ignoreFrom",P)},"Interactable.ignoreFrom() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue})."),v.prototype.allowFrom=gn(function(P){return this._backCompatOption("allowFrom",P)},"Interactable.allowFrom() has been deprecated. Use Interactble.draggable({allowFrom: newValue})."),v.prototype.actionChecker=tn,v.prototype.styleCursor=Ri}};function Wn(S,v,P,z,se){return v.testIgnoreAllow(v.options[S.name],P,z)&&v.options[S.name].enabled&&fi(v,P,S,se)?S:null}function si(S,v,P,z,se,me,Ie){for(var Be=0,We=z.length;Be<We;Be++){var ut=z[Be],tt=se[Be],b=ut.getAction(v,P,S,tt);if(b){var I=Wn(b,ut,tt,me,Ie);if(I)return{action:I,interactable:ut,element:tt}}}return{action:null,interactable:null,element:null}}function Fn(S,v,P,z,se){var me=[],Ie=[],Be=z;function We(tt){me.push(tt),Ie.push(Be)}for(;N.element(Be);){me=[],Ie=[],se.interactables.forEachMatch(Be,We);var ut=si(S,v,P,me,Ie,z,se);if(ut.action&&!ut.interactable.options[ut.action.name].manualStart)return ut;Be=K(Be)}return{action:null,interactable:null,element:null}}function Cn(S,v,P){var z=v.action,se=v.interactable,me=v.element;z=z||{name:null},S.interactable=se,S.element=me,qn(S.prepared,z),S.rect=se&&z.name?se.getRect(me):null,Pi(S,P),P.fire("autoStart:prepared",{interaction:S})}function fi(S,v,P,z){var se=S.options,me=se[P.name].max,Ie=se[P.name].maxPerElement,Be=z.autoStart.maxInteractions,We=0,ut=0,tt=0;if(!(me&&Ie&&Be))return!1;for(var b=0,I=z.interactions.list;b<I.length;b++){var U=I[b],j=U.prepared.name;if(U.interacting()&&(++We>=Be||U.interactable===S&&((ut+=j===P.name?1:0)>=me||U.element===v&&(tt++,j===P.name&&tt>=Ie))))return!1}return Be>0}function $n(S,v){return N.number(S)?(v.autoStart.maxInteractions=S,this):v.autoStart.maxInteractions}function Kn(S,v,P){var z=P.autoStart.cursorElement;z&&z!==S&&(z.style.cursor=""),S.ownerDocument.documentElement.style.cursor=v,S.style.cursor=v,P.autoStart.cursorElement=v?S:null}function Pi(S,v){var P=S.interactable,z=S.element,se=S.prepared;if(S.pointerType==="mouse"&&P&&P.options.styleCursor){var me="";if(se.name){var Ie=P.options[se.name].cursorChecker;me=N.func(Ie)?Ie(se,P,z,S._interacting):v.actions.map[se.name].getCursor(se)}Kn(S.element,me||"",v)}else v.autoStart.cursorElement&&Kn(v.autoStart.cursorElement,"",v)}var ai={id:"auto-start/base",before:["actions"],install:function(S){var v=S.interactStatic,P=S.defaults;S.usePlugin(Jn),P.base.actionChecker=null,P.base.styleCursor=!0,De(P.perAction,{manualStart:!1,max:1/0,maxPerElement:1,allowFrom:null,ignoreFrom:null,mouseButtons:1}),v.maxInteractions=function(z){return $n(z,S)},S.autoStart={maxInteractions:1/0,withinInteractionLimit:fi,cursorElement:null}},listeners:{"interactions:down":function(S,v){var P=S.interaction,z=S.pointer,se=S.event,me=S.eventTarget;P.interacting()||Cn(P,Fn(P,z,se,me,v),v)},"interactions:move":function(S,v){(function(P,z){var se=P.interaction,me=P.pointer,Ie=P.event,Be=P.eventTarget;se.pointerType!=="mouse"||se.pointerIsDown||se.interacting()||Cn(se,Fn(se,me,Ie,Be,z),z)})(S,v),function(P,z){var se=P.interaction;if(se.pointerIsDown&&!se.interacting()&&se.pointerWasMoved&&se.prepared.name){z.fire("autoStart:before-start",P);var me=se.interactable,Ie=se.prepared.name;Ie&&me&&(me.options[Ie].manualStart||!fi(me,se.element,se.prepared,z)?se.stop():(se.start(se.prepared,me,se.element),Pi(se,z)))}}(S,v)},"interactions:stop":function(S,v){var P=S.interaction,z=P.interactable;z&&z.options.styleCursor&&Kn(P.element,"",v)}},maxInteractions:$n,withinInteractionLimit:fi,validateAction:Wn},xr=ai,Zi={id:"auto-start/dragAxis",listeners:{"autoStart:before-start":function(S,v){var P=S.interaction,z=S.eventTarget,se=S.dx,me=S.dy;if(P.prepared.name==="drag"){var Ie=Math.abs(se),Be=Math.abs(me),We=P.interactable.options.drag,ut=We.startAxis,tt=Ie>Be?"x":Ie<Be?"y":"xy";if(P.prepared.axis=We.lockAxis==="start"?tt[0]:We.lockAxis,tt!=="xy"&&ut!=="xy"&&ut!==tt){P.prepared.name=null;for(var b=z,I=function(j){if(j!==P.interactable){var ie=P.interactable.options.drag;if(!ie.manualStart&&j.testIgnoreAllow(ie,b,z)){var ye=j.getAction(P.downPointer,P.downEvent,P,b);if(ye&&ye.name==="drag"&&function(Oe,Le){if(!Le)return!1;var at=Le.options.drag.startAxis;return Oe==="xy"||at==="xy"||at===Oe}(tt,j)&&xr.validateAction(ye,j,b,z,v))return j}}};N.element(b);){var U=v.interactables.forEachMatch(b,I);if(U){P.prepared.name="drag",P.interactable=U,P.element=b;break}b=K(b)}}}}}};function Di(S){var v=S.prepared&&S.prepared.name;if(!v)return null;var P=S.interactable.options;return P[v].hold||P[v].delay}var Zn={id:"auto-start/hold",install:function(S){var v=S.defaults;S.usePlugin(xr),v.perAction.hold=0,v.perAction.delay=0},listeners:{"interactions:new":function(S){S.interaction.autoStartHoldTimer=null},"autoStart:prepared":function(S){var v=S.interaction,P=Di(v);P>0&&(v.autoStartHoldTimer=setTimeout(function(){v.start(v.prepared,v.interactable,v.element)},P))},"interactions:move":function(S){var v=S.interaction,P=S.duplicate;v.autoStartHoldTimer&&v.pointerWasMoved&&!P&&(clearTimeout(v.autoStartHoldTimer),v.autoStartHoldTimer=null)},"autoStart:before-start":function(S){var v=S.interaction;Di(v)>0&&(v.prepared.name=null)}},getHoldDuration:Di},yn=Zn,ji={id:"auto-start",install:function(S){S.usePlugin(xr),S.usePlugin(yn),S.usePlugin(Zi)}},hi=function(S){return/^(always|never|auto)$/.test(S)?(this.options.preventDefault=S,this):N.bool(S)?(this.options.preventDefault=S?"always":"never",this):this.options.preventDefault};function mi(S){var v=S.interaction,P=S.event;v.interactable&&v.interactable.checkAndPreventDefault(P)}var Lr={id:"core/interactablePreventDefault",install:function(S){var v=S.Interactable;v.prototype.preventDefault=hi,v.prototype.checkAndPreventDefault=function(P){return function(z,se,me){var Ie=z.options.preventDefault;if(Ie!=="never")if(Ie!=="always"){if(se.events.supportsPassive&&/^touch(start|move)$/.test(me.type)){var Be=x(me.target).document,We=se.getDocOptions(Be);if(!We||!We.events||We.events.passive!==!1)return}/^(mouse|pointer|touch)*(down|start)/i.test(me.type)||N.element(me.target)&&ne(me.target,"input,select,textarea,[contenteditable=true],[contenteditable=true] *")||me.preventDefault()}else me.preventDefault()}(this,S,P)},S.interactions.docEvents.push({type:"dragstart",listener:function(P){for(var z=0,se=S.interactions.list;z<se.length;z++){var me=se[z];if(me.element&&(me.element===P.target||pe(me.element,P.target)))return void me.interactable.checkAndPreventDefault(P)}}})},listeners:["down","move","up","cancel"].reduce(function(S,v){return S["interactions:".concat(v)]=mi,S},{})};function dn(S,v){if(v.phaselessTypes[S])return!0;for(var P in v.map)if(S.indexOf(P)===0&&S.substr(P.length)in v.phases)return!0;return!1}function Gn(S){var v={};for(var P in S){var z=S[P];N.plainObject(z)?v[P]=Gn(z):N.array(z)?v[P]=oe(z):v[P]=z}return v}var jn=function(){function S(v){s(this,S),this.states=[],this.startOffset={left:0,right:0,top:0,bottom:0},this.startDelta=void 0,this.result=void 0,this.endResult=void 0,this.startEdges=void 0,this.edges=void 0,this.interaction=void 0,this.interaction=v,this.result=Ti(),this.edges={left:!1,right:!1,top:!1,bottom:!1}}return l(S,[{key:"start",value:function(v,P){var z,se,me=v.phase,Ie=this.interaction,Be=function(ut){var tt=ut.interactable.options[ut.prepared.name],b=tt.modifiers;return b&&b.length?b:["snap","snapSize","snapEdges","restrict","restrictEdges","restrictSize"].map(function(I){var U=tt[I];return U&&U.enabled&&{options:U,methods:U._methods}}).filter(function(I){return!!I})}(Ie);this.prepareStates(Be),this.startEdges=De({},Ie.edges),this.edges=De({},this.startEdges),this.startOffset=(z=Ie.rect,se=P,z?{left:se.x-z.left,top:se.y-z.top,right:z.right-se.x,bottom:z.bottom-se.y}:{left:0,top:0,right:0,bottom:0}),this.startDelta={x:0,y:0};var We=this.fillArg({phase:me,pageCoords:P,preEnd:!1});return this.result=Ti(),this.startAll(We),this.result=this.setAll(We)}},{key:"fillArg",value:function(v){var P=this.interaction;return v.interaction=P,v.interactable=P.interactable,v.element=P.element,v.rect||(v.rect=P.rect),v.edges||(v.edges=this.startEdges),v.startOffset=this.startOffset,v}},{key:"startAll",value:function(v){for(var P=0,z=this.states;P<z.length;P++){var se=z[P];se.methods.start&&(v.state=se,se.methods.start(v))}}},{key:"setAll",value:function(v){var P=v.phase,z=v.preEnd,se=v.skipModifiers,me=v.rect,Ie=v.edges;v.coords=De({},v.pageCoords),v.rect=De({},me),v.edges=De({},Ie);for(var Be=se?this.states.slice(se):this.states,We=Ti(v.coords,v.rect),ut=0;ut<Be.length;ut++){var tt,b=Be[ut],I=b.options,U=De({},v.coords),j=null;(tt=b.methods)!=null&&tt.set&&this.shouldDo(I,z,P)&&(v.state=b,j=b.methods.set(v),ht(v.edges,v.rect,{x:v.coords.x-U.x,y:v.coords.y-U.y})),We.eventProps.push(j)}De(this.edges,v.edges),We.delta.x=v.coords.x-v.pageCoords.x,We.delta.y=v.coords.y-v.pageCoords.y,We.rectDelta.left=v.rect.left-me.left,We.rectDelta.right=v.rect.right-me.right,We.rectDelta.top=v.rect.top-me.top,We.rectDelta.bottom=v.rect.bottom-me.bottom;var ie=this.result.coords,ye=this.result.rect;if(ie&&ye){var Oe=We.rect.left!==ye.left||We.rect.right!==ye.right||We.rect.top!==ye.top||We.rect.bottom!==ye.bottom;We.changed=Oe||ie.x!==We.coords.x||ie.y!==We.coords.y}return We}},{key:"applyToInteraction",value:function(v){var P=this.interaction,z=v.phase,se=P.coords.cur,me=P.coords.start,Ie=this.result,Be=this.startDelta,We=Ie.delta;z==="start"&&De(this.startDelta,Ie.delta);for(var ut=0,tt=[[me,Be],[se,We]];ut<tt.length;ut++){var b=tt[ut],I=b[0],U=b[1];I.page.x+=U.x,I.page.y+=U.y,I.client.x+=U.x,I.client.y+=U.y}var j=this.result.rectDelta,ie=v.rect||P.rect;ie.left+=j.left,ie.right+=j.right,ie.top+=j.top,ie.bottom+=j.bottom,ie.width=ie.right-ie.left,ie.height=ie.bottom-ie.top}},{key:"setAndApply",value:function(v){var P=this.interaction,z=v.phase,se=v.preEnd,me=v.skipModifiers,Ie=this.setAll(this.fillArg({preEnd:se,phase:z,pageCoords:v.modifiedCoords||P.coords.cur.page}));if(this.result=Ie,!Ie.changed&&(!me||me<this.states.length)&&P.interacting())return!1;if(v.modifiedCoords){var Be=P.coords.cur.page,We={x:v.modifiedCoords.x-Be.x,y:v.modifiedCoords.y-Be.y};Ie.coords.x+=We.x,Ie.coords.y+=We.y,Ie.delta.x+=We.x,Ie.delta.y+=We.y}this.applyToInteraction(v)}},{key:"beforeEnd",value:function(v){var P=v.interaction,z=v.event,se=this.states;if(se&&se.length){for(var me=!1,Ie=0;Ie<se.length;Ie++){var Be=se[Ie];v.state=Be;var We=Be.options,ut=Be.methods,tt=ut.beforeEnd&&ut.beforeEnd(v);if(tt)return this.endResult=tt,!1;me=me||!me&&this.shouldDo(We,!0,v.phase,!0)}me&&P.move({event:z,preEnd:!0})}}},{key:"stop",value:function(v){var P=v.interaction;if(this.states&&this.states.length){var z=De({states:this.states,interactable:P.interactable,element:P.element,rect:null},v);this.fillArg(z);for(var se=0,me=this.states;se<me.length;se++){var Ie=me[se];z.state=Ie,Ie.methods.stop&&Ie.methods.stop(z)}this.states=null,this.endResult=null}}},{key:"prepareStates",value:function(v){this.states=[];for(var P=0;P<v.length;P++){var z=v[P],se=z.options,me=z.methods,Ie=z.name;this.states.push({options:se,methods:me,index:P,name:Ie})}return this.states}},{key:"restoreInteractionCoords",value:function(v){var P=v.interaction,z=P.coords,se=P.rect,me=P.modification;if(me.result){for(var Ie=me.startDelta,Be=me.result,We=Be.delta,ut=Be.rectDelta,tt=0,b=[[z.start,Ie],[z.cur,We]];tt<b.length;tt++){var I=b[tt],U=I[0],j=I[1];U.page.x-=j.x,U.page.y-=j.y,U.client.x-=j.x,U.client.y-=j.y}se.left-=ut.left,se.right-=ut.right,se.top-=ut.top,se.bottom-=ut.bottom}}},{key:"shouldDo",value:function(v,P,z,se){return!(!v||v.enabled===!1||se&&!v.endOnly||v.endOnly&&!P||z==="start"&&!v.setStart)}},{key:"copyFrom",value:function(v){this.startOffset=v.startOffset,this.startDelta=v.startDelta,this.startEdges=v.startEdges,this.edges=v.edges,this.states=v.states.map(function(P){return Gn(P)}),this.result=Ti(De({},v.result.coords),De({},v.result.rect))}},{key:"destroy",value:function(){for(var v in this)this[v]=null}}]),S}();function Ti(S,v){return{rect:v,coords:S,delta:{x:0,y:0},rectDelta:{left:0,right:0,top:0,bottom:0},eventProps:[],changed:!0}}function Mn(S,v){var P=S.defaults,z={start:S.start,set:S.set,beforeEnd:S.beforeEnd,stop:S.stop},se=function(me){var Ie=me||{};for(var Be in Ie.enabled=Ie.enabled!==!1,P)Be in Ie||(Ie[Be]=P[Be]);var We={options:Ie,methods:z,name:v,enable:function(){return Ie.enabled=!0,We},disable:function(){return Ie.enabled=!1,We}};return We};return v&&typeof v=="string"&&(se._defaults=P,se._methods=z),se}function Vn(S){var v=S.iEvent,P=S.interaction.modification.result;P&&(v.modifiers=P.eventProps)}var ki={id:"modifiers/base",before:["actions"],install:function(S){S.defaults.perAction.modifiers=[]},listeners:{"interactions:new":function(S){var v=S.interaction;v.modification=new jn(v)},"interactions:before-action-start":function(S){var v=S.interaction,P=S.interaction.modification;P.start(S,v.coords.start.page),v.edges=P.edges,P.applyToInteraction(S)},"interactions:before-action-move":function(S){var v=S.interaction,P=v.modification,z=P.setAndApply(S);return v.edges=P.edges,z},"interactions:before-action-end":function(S){var v=S.interaction,P=v.modification,z=P.beforeEnd(S);return v.edges=P.startEdges,z},"interactions:action-start":Vn,"interactions:action-move":Vn,"interactions:action-end":Vn,"interactions:after-action-start":function(S){return S.interaction.modification.restoreInteractionCoords(S)},"interactions:after-action-move":function(S){return S.interaction.modification.restoreInteractionCoords(S)},"interactions:stop":function(S){return S.interaction.modification.stop(S)}}},Yn=ki,Vi={base:{preventDefault:"auto",deltaSource:"page"},perAction:{enabled:!1,origin:{x:0,y:0}},actions:{}},Un=function(S){d(P,S);var v=y(P);function P(z,se,me,Ie,Be,We,ut){var tt;s(this,P),(tt=v.call(this,z)).relatedTarget=null,tt.screenX=void 0,tt.screenY=void 0,tt.button=void 0,tt.buttons=void 0,tt.ctrlKey=void 0,tt.shiftKey=void 0,tt.altKey=void 0,tt.metaKey=void 0,tt.page=void 0,tt.client=void 0,tt.delta=void 0,tt.rect=void 0,tt.x0=void 0,tt.y0=void 0,tt.t0=void 0,tt.dt=void 0,tt.duration=void 0,tt.clientX0=void 0,tt.clientY0=void 0,tt.velocity=void 0,tt.speed=void 0,tt.swipe=void 0,tt.axes=void 0,tt.preEnd=void 0,Be=Be||z.element;var b=z.interactable,I=(b&&b.options||Vi).deltaSource,U=Pt(b,Be,me),j=Ie==="start",ie=Ie==="end",ye=j?_(tt):z.prevEvent,Oe=j?z.coords.start:ie?{page:ye.page,client:ye.client,timeStamp:z.coords.cur.timeStamp}:z.coords.cur;return tt.page=De({},Oe.page),tt.client=De({},Oe.client),tt.rect=De({},z.rect),tt.timeStamp=Oe.timeStamp,ie||(tt.page.x-=U.x,tt.page.y-=U.y,tt.client.x-=U.x,tt.client.y-=U.y),tt.ctrlKey=se.ctrlKey,tt.altKey=se.altKey,tt.shiftKey=se.shiftKey,tt.metaKey=se.metaKey,tt.button=se.button,tt.buttons=se.buttons,tt.target=Be,tt.currentTarget=Be,tt.preEnd=We,tt.type=ut||me+(Ie||""),tt.interactable=b,tt.t0=j?z.pointers[z.pointers.length-1].downTime:ye.t0,tt.x0=z.coords.start.page.x-U.x,tt.y0=z.coords.start.page.y-U.y,tt.clientX0=z.coords.start.client.x-U.x,tt.clientY0=z.coords.start.client.y-U.y,tt.delta=j||ie?{x:0,y:0}:{x:tt[I].x-ye[I].x,y:tt[I].y-ye[I].y},tt.dt=z.coords.delta.timeStamp,tt.duration=tt.timeStamp-tt.t0,tt.velocity=De({},z.coords.velocity[I]),tt.speed=Ye(tt.velocity.x,tt.velocity.y),tt.swipe=ie||Ie==="inertiastart"?tt.getSwipe():null,tt}return l(P,[{key:"getSwipe",value:function(){var z=this._interaction;if(z.prevEvent.speed<600||this.timeStamp-z.prevEvent.timeStamp>150)return null;var se=180*Math.atan2(z.prevEvent.velocityY,z.prevEvent.velocityX)/Math.PI;se<0&&(se+=360);var me=112.5<=se&&se<247.5,Ie=202.5<=se&&se<337.5;return{up:Ie,down:!Ie&&22.5<=se&&se<157.5,left:me,right:!me&&(292.5<=se||se<67.5),angle:se,speed:z.prevEvent.speed,velocity:{x:z.prevEvent.velocityX,y:z.prevEvent.velocityY}}}},{key:"preventDefault",value:function(){}},{key:"stopImmediatePropagation",value:function(){this.immediatePropagationStopped=this.propagationStopped=!0}},{key:"stopPropagation",value:function(){this.propagationStopped=!0}}]),P}(Xe);Object.defineProperties(Un.prototype,{pageX:{get:function(){return this.page.x},set:function(S){this.page.x=S}},pageY:{get:function(){return this.page.y},set:function(S){this.page.y=S}},clientX:{get:function(){return this.client.x},set:function(S){this.client.x=S}},clientY:{get:function(){return this.client.y},set:function(S){this.client.y=S}},dx:{get:function(){return this.delta.x},set:function(S){this.delta.x=S}},dy:{get:function(){return this.delta.y},set:function(S){this.delta.y=S}},velocityX:{get:function(){return this.velocity.x},set:function(S){this.velocity.x=S}},velocityY:{get:function(){return this.velocity.y},set:function(S){this.velocity.y=S}}});var Dr=l(function S(v,P,z,se,me){s(this,S),this.id=void 0,this.pointer=void 0,this.event=void 0,this.downTime=void 0,this.downTarget=void 0,this.id=v,this.pointer=P,this.event=z,this.downTime=se,this.downTarget=me}),es=function(S){return S.interactable="",S.element="",S.prepared="",S.pointerIsDown="",S.pointerWasMoved="",S._proxy="",S}({}),Mi=function(S){return S.start="",S.move="",S.end="",S.stop="",S.interacting="",S}({}),ei=0,bn=function(){function S(v){var P=this,z=v.pointerType,se=v.scopeFire;s(this,S),this.interactable=null,this.element=null,this.rect=null,this._rects=void 0,this.edges=null,this._scopeFire=void 0,this.prepared={name:null,axis:null,edges:null},this.pointerType=void 0,this.pointers=[],this.downEvent=null,this.downPointer={},this._latestPointer={pointer:null,event:null,eventTarget:null},this.prevEvent=null,this.pointerIsDown=!1,this.pointerWasMoved=!1,this._interacting=!1,this._ending=!1,this._stopped=!0,this._proxy=void 0,this.simulation=null,this.doMove=gn(function(tt){this.move(tt)},"The interaction.doMove() method has been renamed to interaction.move()"),this.coords={start:{page:{x:0,y:0},client:{x:0,y:0},timeStamp:0},prev:{page:{x:0,y:0},client:{x:0,y:0},timeStamp:0},cur:{page:{x:0,y:0},client:{x:0,y:0},timeStamp:0},delta:{page:{x:0,y:0},client:{x:0,y:0},timeStamp:0},velocity:{page:{x:0,y:0},client:{x:0,y:0},timeStamp:0}},this._id=ei++,this._scopeFire=se,this.pointerType=z;var me=this;this._proxy={};var Ie=function(tt){Object.defineProperty(P._proxy,tt,{get:function(){return me[tt]}})};for(var Be in es)Ie(Be);var We=function(tt){Object.defineProperty(P._proxy,tt,{value:function(){return me[tt].apply(me,arguments)}})};for(var ut in Mi)We(ut);this._scopeFire("interactions:new",{interaction:this})}return l(S,[{key:"pointerMoveTolerance",get:function(){return 1}},{key:"pointerDown",value:function(v,P,z){var se=this.updatePointer(v,P,z,!0),me=this.pointers[se];this._scopeFire("interactions:down",{pointer:v,event:P,eventTarget:z,pointerIndex:se,pointerInfo:me,type:"down",interaction:this})}},{key:"start",value:function(v,P,z){return!(this.interacting()||!this.pointerIsDown||this.pointers.length<(v.name==="gesture"?2:1)||!P.options[v.name].enabled)&&(qn(this.prepared,v),this.interactable=P,this.element=z,this.rect=P.getRect(z),this.edges=this.prepared.edges?De({},this.prepared.edges):{left:!0,right:!0,top:!0,bottom:!0},this._stopped=!1,this._interacting=this._doPhase({interaction:this,event:this.downEvent,phase:"start"})&&!this._stopped,this._interacting)}},{key:"pointerMove",value:function(v,P,z){this.simulation||this.modification&&this.modification.endResult||this.updatePointer(v,P,z,!1);var se,me,Ie=this.coords.cur.page.x===this.coords.prev.page.x&&this.coords.cur.page.y===this.coords.prev.page.y&&this.coords.cur.client.x===this.coords.prev.client.x&&this.coords.cur.client.y===this.coords.prev.client.y;this.pointerIsDown&&!this.pointerWasMoved&&(se=this.coords.cur.client.x-this.coords.start.client.x,me=this.coords.cur.client.y-this.coords.start.client.y,this.pointerWasMoved=Ye(se,me)>this.pointerMoveTolerance);var Be,We,ut,tt=this.getPointerIndex(v),b={pointer:v,pointerIndex:tt,pointerInfo:this.pointers[tt],event:P,type:"move",eventTarget:z,dx:se,dy:me,duplicate:Ie,interaction:this};Ie||(Be=this.coords.velocity,We=this.coords.delta,ut=Math.max(We.timeStamp/1e3,.001),Be.page.x=We.page.x/ut,Be.page.y=We.page.y/ut,Be.client.x=We.client.x/ut,Be.client.y=We.client.y/ut,Be.timeStamp=ut),this._scopeFire("interactions:move",b),Ie||this.simulation||(this.interacting()&&(b.type=null,this.move(b)),this.pointerWasMoved&&Ct(this.coords.prev,this.coords.cur))}},{key:"move",value:function(v){v&&v.event||Ue(this.coords.delta),(v=De({pointer:this._latestPointer.pointer,event:this._latestPointer.event,eventTarget:this._latestPointer.eventTarget,interaction:this},v||{})).phase="move",this._doPhase(v)}},{key:"pointerUp",value:function(v,P,z,se){var me=this.getPointerIndex(v);me===-1&&(me=this.updatePointer(v,P,z,!1));var Ie=/cancel$/i.test(P.type)?"cancel":"up";this._scopeFire("interactions:".concat(Ie),{pointer:v,pointerIndex:me,pointerInfo:this.pointers[me],event:P,eventTarget:z,type:Ie,curEventTarget:se,interaction:this}),this.simulation||this.end(P),this.removePointer(v,P)}},{key:"documentBlur",value:function(v){this.end(v),this._scopeFire("interactions:blur",{event:v,type:"blur",interaction:this})}},{key:"end",value:function(v){var P;this._ending=!0,v=v||this._latestPointer.event,this.interacting()&&(P=this._doPhase({event:v,interaction:this,phase:"end"})),this._ending=!1,P===!0&&this.stop()}},{key:"currentAction",value:function(){return this._interacting?this.prepared.name:null}},{key:"interacting",value:function(){return this._interacting}},{key:"stop",value:function(){this._scopeFire("interactions:stop",{interaction:this}),this.interactable=this.element=null,this._interacting=!1,this._stopped=!0,this.prepared.name=this.prevEvent=null}},{key:"getPointerIndex",value:function(v){var P=le(v);return this.pointerType==="mouse"||this.pointerType==="pen"?this.pointers.length-1:Se(this.pointers,function(z){return z.id===P})}},{key:"getPointerInfo",value:function(v){return this.pointers[this.getPointerIndex(v)]}},{key:"updatePointer",value:function(v,P,z,se){var me,Ie,Be,We=le(v),ut=this.getPointerIndex(v),tt=this.pointers[ut];return se=se!==!1&&(se||/(down|start)$/i.test(P.type)),tt?tt.pointer=v:(tt=new Dr(We,v,P,null,null),ut=this.pointers.length,this.pointers.push(tt)),H(this.coords.cur,this.pointers.map(function(b){return b.pointer}),this._now()),me=this.coords.delta,Ie=this.coords.prev,Be=this.coords.cur,me.page.x=Be.page.x-Ie.page.x,me.page.y=Be.page.y-Ie.page.y,me.client.x=Be.client.x-Ie.client.x,me.client.y=Be.client.y-Ie.client.y,me.timeStamp=Be.timeStamp-Ie.timeStamp,se&&(this.pointerIsDown=!0,tt.downTime=this.coords.cur.timeStamp,tt.downTarget=z,Dt(this.downPointer,v),this.interacting()||(Ct(this.coords.start,this.coords.cur),Ct(this.coords.prev,this.coords.cur),this.downEvent=P,this.pointerWasMoved=!1)),this._updateLatestPointer(v,P,z),this._scopeFire("interactions:update-pointer",{pointer:v,event:P,eventTarget:z,down:se,pointerInfo:tt,pointerIndex:ut,interaction:this}),ut}},{key:"removePointer",value:function(v,P){var z=this.getPointerIndex(v);if(z!==-1){var se=this.pointers[z];this._scopeFire("interactions:remove-pointer",{pointer:v,event:P,eventTarget:null,pointerIndex:z,pointerInfo:se,interaction:this}),this.pointers.splice(z,1),this.pointerIsDown=!1}}},{key:"_updateLatestPointer",value:function(v,P,z){this._latestPointer.pointer=v,this._latestPointer.event=P,this._latestPointer.eventTarget=z}},{key:"destroy",value:function(){this._latestPointer.pointer=null,this._latestPointer.event=null,this._latestPointer.eventTarget=null}},{key:"_createPreparedEvent",value:function(v,P,z,se){return new Un(this,v,this.prepared.name,P,this.element,z,se)}},{key:"_fireEvent",value:function(v){var P;(P=this.interactable)==null||P.fire(v),(!this.prevEvent||v.timeStamp>=this.prevEvent.timeStamp)&&(this.prevEvent=v)}},{key:"_doPhase",value:function(v){var P=v.event,z=v.phase,se=v.preEnd,me=v.type,Ie=this.rect;if(Ie&&z==="move"&&(ht(this.edges,Ie,this.coords.delta[this.interactable.options.deltaSource]),Ie.width=Ie.right-Ie.left,Ie.height=Ie.bottom-Ie.top),this._scopeFire("interactions:before-action-".concat(z),v)===!1)return!1;var Be=v.iEvent=this._createPreparedEvent(P,z,se,me);return this._scopeFire("interactions:action-".concat(z),v),z==="start"&&(this.prevEvent=Be),this._fireEvent(Be),this._scopeFire("interactions:after-action-".concat(z),v),!0}},{key:"_now",value:function(){return Date.now()}}]),S}();function Ft(S){ze(S.interaction)}function ze(S){if(!function(P){return!(!P.offset.pending.x&&!P.offset.pending.y)}(S))return!1;var v=S.offset.pending;return Bt(S.coords.cur,v),Bt(S.coords.delta,v),ht(S.edges,S.rect,v),v.x=0,v.y=0,!0}function xt(S){var v=S.x,P=S.y;this.offset.pending.x+=v,this.offset.pending.y+=P,this.offset.total.x+=v,this.offset.total.y+=P}function Bt(S,v){var P=S.page,z=S.client,se=v.x,me=v.y;P.x+=se,P.y+=me,z.x+=se,z.y+=me}Mi.offsetBy="";var Jt={id:"offset",before:["modifiers","pointer-events","actions","inertia"],install:function(S){S.Interaction.prototype.offsetBy=xt},listeners:{"interactions:new":function(S){S.interaction.offset={total:{x:0,y:0},pending:{x:0,y:0}}},"interactions:update-pointer":function(S){return function(v){v.pointerIsDown&&(Bt(v.coords.cur,v.offset.total),v.offset.pending.x=0,v.offset.pending.y=0)}(S.interaction)},"interactions:before-action-start":Ft,"interactions:before-action-move":Ft,"interactions:before-action-end":function(S){var v=S.interaction;if(ze(v))return v.move({offset:!0}),v.end(),!1},"interactions:stop":function(S){var v=S.interaction;v.offset.total.x=0,v.offset.total.y=0,v.offset.pending.x=0,v.offset.pending.y=0}}},Xt=Jt,sr=function(){function S(v){s(this,S),this.active=!1,this.isModified=!1,this.smoothEnd=!1,this.allowResume=!1,this.modification=void 0,this.modifierCount=0,this.modifierArg=void 0,this.startCoords=void 0,this.t0=0,this.v0=0,this.te=0,this.targetOffset=void 0,this.modifiedOffset=void 0,this.currentOffset=void 0,this.lambda_v0=0,this.one_ve_v0=0,this.timeout=void 0,this.interaction=void 0,this.interaction=v}return l(S,[{key:"start",value:function(v){var P=this.interaction,z=Ar(P);if(!z||!z.enabled)return!1;var se=P.coords.velocity.client,me=Ye(se.x,se.y),Ie=this.modification||(this.modification=new jn(P));if(Ie.copyFrom(P.modification),this.t0=P._now(),this.allowResume=z.allowResume,this.v0=me,this.currentOffset={x:0,y:0},this.startCoords=P.coords.cur.page,this.modifierArg=Ie.fillArg({pageCoords:this.startCoords,preEnd:!0,phase:"inertiastart"}),this.t0-P.coords.cur.timeStamp<50&&me>z.minSpeed&&me>z.endSpeed)this.startInertia();else{if(Ie.result=Ie.setAll(this.modifierArg),!Ie.result.changed)return!1;this.startSmoothEnd()}return P.modification.result.rect=null,P.offsetBy(this.targetOffset),P._doPhase({interaction:P,event:v,phase:"inertiastart"}),P.offsetBy({x:-this.targetOffset.x,y:-this.targetOffset.y}),P.modification.result.rect=null,this.active=!0,P.simulation=this,!0}},{key:"startInertia",value:function(){var v=this,P=this.interaction.coords.velocity.client,z=Ar(this.interaction),se=z.resistance,me=-Math.log(z.endSpeed/this.v0)/se;this.targetOffset={x:(P.x-me)/se,y:(P.y-me)/se},this.te=me,this.lambda_v0=se/this.v0,this.one_ve_v0=1-z.endSpeed/this.v0;var Ie=this.modification,Be=this.modifierArg;Be.pageCoords={x:this.startCoords.x+this.targetOffset.x,y:this.startCoords.y+this.targetOffset.y},Ie.result=Ie.setAll(Be),Ie.result.changed&&(this.isModified=!0,this.modifiedOffset={x:this.targetOffset.x+Ie.result.delta.x,y:this.targetOffset.y+Ie.result.delta.y}),this.onNextFrame(function(){return v.inertiaTick()})}},{key:"startSmoothEnd",value:function(){var v=this;this.smoothEnd=!0,this.isModified=!0,this.targetOffset={x:this.modification.result.delta.x,y:this.modification.result.delta.y},this.onNextFrame(function(){return v.smoothEndTick()})}},{key:"onNextFrame",value:function(v){var P=this;this.timeout=un.request(function(){P.active&&v()})}},{key:"inertiaTick",value:function(){var v,P,z,se,me,Ie,Be,We=this,ut=this.interaction,tt=Ar(ut).resistance,b=(ut._now()-this.t0)/1e3;if(b<this.te){var I,U=1-(Math.exp(-tt*b)-this.lambda_v0)/this.one_ve_v0;this.isModified?(v=0,P=0,z=this.targetOffset.x,se=this.targetOffset.y,me=this.modifiedOffset.x,Ie=this.modifiedOffset.y,I={x:En(Be=U,v,z,me),y:En(Be,P,se,Ie)}):I={x:this.targetOffset.x*U,y:this.targetOffset.y*U};var j={x:I.x-this.currentOffset.x,y:I.y-this.currentOffset.y};this.currentOffset.x+=j.x,this.currentOffset.y+=j.y,ut.offsetBy(j),ut.move(),this.onNextFrame(function(){return We.inertiaTick()})}else ut.offsetBy({x:this.modifiedOffset.x-this.currentOffset.x,y:this.modifiedOffset.y-this.currentOffset.y}),this.end()}},{key:"smoothEndTick",value:function(){var v=this,P=this.interaction,z=P._now()-this.t0,se=Ar(P).smoothEndDuration;if(z<se){var me={x:nn(z,0,this.targetOffset.x,se),y:nn(z,0,this.targetOffset.y,se)},Ie={x:me.x-this.currentOffset.x,y:me.y-this.currentOffset.y};this.currentOffset.x+=Ie.x,this.currentOffset.y+=Ie.y,P.offsetBy(Ie),P.move({skipModifiers:this.modifierCount}),this.onNextFrame(function(){return v.smoothEndTick()})}else P.offsetBy({x:this.targetOffset.x-this.currentOffset.x,y:this.targetOffset.y-this.currentOffset.y}),this.end()}},{key:"resume",value:function(v){var P=v.pointer,z=v.event,se=v.eventTarget,me=this.interaction;me.offsetBy({x:-this.currentOffset.x,y:-this.currentOffset.y}),me.updatePointer(P,z,se,!0),me._doPhase({interaction:me,event:z,phase:"resume"}),Ct(me.coords.prev,me.coords.cur),this.stop()}},{key:"end",value:function(){this.interaction.move(),this.interaction.end(),this.stop()}},{key:"stop",value:function(){this.active=this.smoothEnd=!1,this.interaction.simulation=null,un.cancel(this.timeout)}}]),S}();function Ar(S){var v=S.interactable,P=S.prepared;return v&&v.options&&P.name&&v.options[P.name].inertia}var $r={id:"inertia",before:["modifiers","actions"],install:function(S){var v=S.defaults;S.usePlugin(Xt),S.usePlugin(Yn),S.actions.phases.inertiastart=!0,S.actions.phases.resume=!0,v.perAction.inertia={enabled:!1,resistance:10,minSpeed:100,endSpeed:10,allowResume:!0,smoothEndDuration:300}},listeners:{"interactions:new":function(S){var v=S.interaction;v.inertia=new sr(v)},"interactions:before-action-end":function(S){var v=S.interaction,P=S.event;return(!v._interacting||v.simulation||!v.inertia.start(P))&&null},"interactions:down":function(S){var v=S.interaction,P=S.eventTarget,z=v.inertia;if(z.active)for(var se=P;N.element(se);){if(se===v.element){z.resume(S);break}se=K(se)}},"interactions:stop":function(S){var v=S.interaction.inertia;v.active&&v.stop()},"interactions:before-action-resume":function(S){var v=S.interaction.modification;v.stop(S),v.start(S,S.interaction.coords.cur.page),v.applyToInteraction(S)},"interactions:before-action-inertiastart":function(S){return S.interaction.modification.setAndApply(S)},"interactions:action-resume":Vn,"interactions:action-inertiastart":Vn,"interactions:after-action-inertiastart":function(S){return S.interaction.modification.restoreInteractionCoords(S)},"interactions:after-action-resume":function(S){return S.interaction.modification.restoreInteractionCoords(S)}}};function En(S,v,P,z){var se=1-S;return se*se*v+2*se*S*P+S*S*z}function nn(S,v,P,z){return-P*(S/=z)*(S-2)+v}var ds=$r;function Kr(S,v){for(var P=0;P<v.length;P++){var z=v[P];if(S.immediatePropagationStopped)break;z(S)}}var Ts=function(){function S(v){s(this,S),this.options=void 0,this.types={},this.propagationStopped=!1,this.immediatePropagationStopped=!1,this.global=void 0,this.options=De({},v||{})}return l(S,[{key:"fire",value:function(v){var P,z=this.global;(P=this.types[v.type])&&Kr(v,P),!v.propagationStopped&&z&&(P=z[v.type])&&Kr(v,P)}},{key:"on",value:function(v,P){var z=Je(v,P);for(v in z)this.types[v]=pt(this.types[v]||[],z[v])}},{key:"off",value:function(v,P){var z=Je(v,P);for(v in z){var se=this.types[v];if(se&&se.length)for(var me=0,Ie=z[v];me<Ie.length;me++){var Be=Ie[me],We=se.indexOf(Be);We!==-1&&se.splice(We,1)}}}},{key:"getRect",value:function(v){return null}}]),S}(),Ys=function(){function S(v){s(this,S),this.currentTarget=void 0,this.originalEvent=void 0,this.type=void 0,this.originalEvent=v,Dt(this,v)}return l(S,[{key:"preventOriginalDefault",value:function(){this.originalEvent.preventDefault()}},{key:"stopPropagation",value:function(){this.originalEvent.stopPropagation()}},{key:"stopImmediatePropagation",value:function(){this.originalEvent.stopImmediatePropagation()}}]),S}();function Zt(S){return N.object(S)?{capture:!!S.capture,passive:!!S.passive}:{capture:!!S,passive:!1}}function Li(S,v){return S===v||(typeof S=="boolean"?!!v.capture===S&&!v.passive:!!S.capture==!!v.capture&&!!S.passive==!!v.passive)}var xs={id:"events",install:function(S){var v,P=[],z={},se=[],me={add:Ie,remove:Be,addDelegate:function(tt,b,I,U,j){var ie=Zt(j);if(!z[I]){z[I]=[];for(var ye=0;ye<se.length;ye++){var Oe=se[ye];Ie(Oe,I,We),Ie(Oe,I,ut,!0)}}var Le=z[I],at=ee(Le,function(gt){return gt.selector===tt&>.context===b});at||(at={selector:tt,context:b,listeners:[]},Le.push(at)),at.listeners.push({func:U,options:ie})},removeDelegate:function(tt,b,I,U,j){var ie,ye=Zt(j),Oe=z[I],Le=!1;if(Oe)for(ie=Oe.length-1;ie>=0;ie--){var at=Oe[ie];if(at.selector===tt&&at.context===b){for(var gt=at.listeners,lt=gt.length-1;lt>=0;lt--){var ot=gt[lt];if(ot.func===U&&Li(ot.options,ye)){gt.splice(lt,1),gt.length||(Oe.splice(ie,1),Be(b,I,We),Be(b,I,ut,!0)),Le=!0;break}}if(Le)break}}},delegateListener:We,delegateUseCapture:ut,delegatedEvents:z,documents:se,targets:P,supportsOptions:!1,supportsPassive:!1};function Ie(tt,b,I,U){if(tt.addEventListener){var j=Zt(U),ie=ee(P,function(ye){return ye.eventTarget===tt});ie||(ie={eventTarget:tt,events:{}},P.push(ie)),ie.events[b]||(ie.events[b]=[]),ee(ie.events[b],function(ye){return ye.func===I&&Li(ye.options,j)})||(tt.addEventListener(b,I,me.supportsOptions?j:j.capture),ie.events[b].push({func:I,options:j}))}}function Be(tt,b,I,U){if(tt.addEventListener&&tt.removeEventListener){var j=Se(P,function(mt){return mt.eventTarget===tt}),ie=P[j];if(ie&&ie.events)if(b!=="all"){var ye=!1,Oe=ie.events[b];if(Oe){if(I==="all"){for(var Le=Oe.length-1;Le>=0;Le--){var at=Oe[Le];Be(tt,b,at.func,at.options)}return}for(var gt=Zt(U),lt=0;lt<Oe.length;lt++){var ot=Oe[lt];if(ot.func===I&&Li(ot.options,gt)){tt.removeEventListener(b,I,me.supportsOptions?gt:gt.capture),Oe.splice(lt,1),Oe.length===0&&(delete ie.events[b],ye=!0);break}}}ye&&!Object.keys(ie.events).length&&P.splice(j,1)}else for(b in ie.events)ie.events.hasOwnProperty(b)&&Be(tt,b,"all")}}function We(tt,b){for(var I=Zt(b),U=new Ys(tt),j=z[tt.type],ie=nt(tt)[0],ye=ie;N.element(ye);){for(var Oe=0;Oe<j.length;Oe++){var Le=j[Oe],at=Le.selector,gt=Le.context;if(ne(ye,at)&&pe(gt,ie)&&pe(gt,ye)){var lt=Le.listeners;U.currentTarget=ye;for(var ot=0;ot<lt.length;ot++){var mt=lt[ot];Li(mt.options,I)&&mt.func(U)}}}ye=K(ye)}}function ut(tt){return We(tt,!0)}return(v=S.document)==null||v.createElement("div").addEventListener("test",null,{get capture(){return me.supportsOptions=!0},get passive(){return me.supportsPassive=!0}}),S.events=me,me}},As={methodOrder:["simulationResume","mouseOrPen","hasPointer","idle"],search:function(S){for(var v=0,P=As.methodOrder;v<P.length;v++){var z=P[v],se=As[z](S);if(se)return se}return null},simulationResume:function(S){var v=S.pointerType,P=S.eventType,z=S.eventTarget,se=S.scope;if(!/down|start/i.test(P))return null;for(var me=0,Ie=se.interactions.list;me<Ie.length;me++){var Be=Ie[me],We=z;if(Be.simulation&&Be.simulation.allowResume&&Be.pointerType===v)for(;We;){if(We===Be.element)return Be;We=K(We)}}return null},mouseOrPen:function(S){var v,P=S.pointerId,z=S.pointerType,se=S.eventType,me=S.scope;if(z!=="mouse"&&z!=="pen")return null;for(var Ie=0,Be=me.interactions.list;Ie<Be.length;Ie++){var We=Be[Ie];if(We.pointerType===z){if(We.simulation&&!pa(We,P))continue;if(We.interacting())return We;v||(v=We)}}if(v)return v;for(var ut=0,tt=me.interactions.list;ut<tt.length;ut++){var b=tt[ut];if(!(b.pointerType!==z||/down/i.test(se)&&b.simulation))return b}return null},hasPointer:function(S){for(var v=S.pointerId,P=0,z=S.scope.interactions.list;P<z.length;P++){var se=z[P];if(pa(se,v))return se}return null},idle:function(S){for(var v=S.pointerType,P=0,z=S.scope.interactions.list;P<z.length;P++){var se=z[P];if(se.pointers.length===1){var me=se.interactable;if(me&&(!me.options.gesture||!me.options.gesture.enabled))continue}else if(se.pointers.length>=2)continue;if(!se.interacting()&&v===se.pointerType)return se}return null}};function pa(S,v){return S.pointers.some(function(P){return P.id===v})}var ps=As,zs=["pointerDown","pointerMove","pointerUp","updatePointer","removePointer","windowBlur"];function Hs(S,v){return function(P){var z=v.interactions.list,se=Ne(P),me=nt(P),Ie=me[0],Be=me[1],We=[];if(/^touch/.test(P.type)){v.prevTouchTime=v.now();for(var ut=0,tt=P.changedTouches;ut<tt.length;ut++){var b=tt[ut],I={pointer:b,pointerId:le(b),pointerType:se,eventType:P.type,eventTarget:Ie,curEventTarget:Be,scope:v},U=fs(I);We.push([I.pointer,I.eventTarget,I.curEventTarget,U])}}else{var j=!1;if(!ve.supportsPointerEvent&&/mouse/.test(P.type)){for(var ie=0;ie<z.length&&!j;ie++)j=z[ie].pointerType!=="mouse"&&z[ie].pointerIsDown;j=j||v.now()-v.prevTouchTime<500||P.timeStamp===0}if(!j){var ye={pointer:P,pointerId:le(P),pointerType:se,eventType:P.type,curEventTarget:Be,eventTarget:Ie,scope:v},Oe=fs(ye);We.push([ye.pointer,ye.eventTarget,ye.curEventTarget,Oe])}}for(var Le=0;Le<We.length;Le++){var at=We[Le],gt=at[0],lt=at[1],ot=at[2];at[3][S](gt,P,lt,ot)}}}function fs(S){var v=S.pointerType,P=S.scope,z={interaction:ps.search(S),searchDetails:S};return P.fire("interactions:find",z),z.interaction||P.interactions.new({pointerType:v})}function Yi(S,v){var P=S.doc,z=S.scope,se=S.options,me=z.interactions.docEvents,Ie=z.events,Be=Ie[v];for(var We in z.browser.isIOS&&!se.events&&(se.events={passive:!1}),Ie.delegatedEvents)Be(P,We,Ie.delegateListener),Be(P,We,Ie.delegateUseCapture,!0);for(var ut=se&&se.events,tt=0;tt<me.length;tt++){var b=me[tt];Be(P,b.type,b.listener,ut)}}var Cs={id:"core/interactions",install:function(S){for(var v={},P=0;P<zs.length;P++){var z=zs[P];v[z]=Hs(z,S)}var se,me=ve.pEventTypes;function Ie(){for(var Be=0,We=S.interactions.list;Be<We.length;Be++){var ut=We[Be];if(ut.pointerIsDown&&ut.pointerType==="touch"&&!ut._interacting)for(var tt=function(){var U=I[b];S.documents.some(function(j){return pe(j.doc,U.downTarget)})||ut.removePointer(U.pointer,U.event)},b=0,I=ut.pointers;b<I.length;b++)tt()}}(se=Te.PointerEvent?[{type:me.down,listener:Ie},{type:me.down,listener:v.pointerDown},{type:me.move,listener:v.pointerMove},{type:me.up,listener:v.pointerUp},{type:me.cancel,listener:v.pointerUp}]:[{type:"mousedown",listener:v.pointerDown},{type:"mousemove",listener:v.pointerMove},{type:"mouseup",listener:v.pointerUp},{type:"touchstart",listener:Ie},{type:"touchstart",listener:v.pointerDown},{type:"touchmove",listener:v.pointerMove},{type:"touchend",listener:v.pointerUp},{type:"touchcancel",listener:v.pointerUp}]).push({type:"blur",listener:function(Be){for(var We=0,ut=S.interactions.list;We<ut.length;We++)ut[We].documentBlur(Be)}}),S.prevTouchTime=0,S.Interaction=function(Be){d(ut,Be);var We=y(ut);function ut(){return s(this,ut),We.apply(this,arguments)}return l(ut,[{key:"pointerMoveTolerance",get:function(){return S.interactions.pointerMoveTolerance},set:function(tt){S.interactions.pointerMoveTolerance=tt}},{key:"_now",value:function(){return S.now()}}]),ut}(bn),S.interactions={list:[],new:function(Be){Be.scopeFire=function(ut,tt){return S.fire(ut,tt)};var We=new S.Interaction(Be);return S.interactions.list.push(We),We},listeners:v,docEvents:se,pointerMoveTolerance:1},S.usePlugin(Lr)},listeners:{"scope:add-document":function(S){return Yi(S,"add")},"scope:remove-document":function(S){return Yi(S,"remove")},"interactable:unset":function(S,v){for(var P=S.interactable,z=v.interactions.list.length-1;z>=0;z--){var se=v.interactions.list[z];se.interactable===P&&(se.stop(),v.fire("interactions:destroy",{interaction:se}),se.destroy(),v.interactions.list.length>2&&v.interactions.list.splice(z,1))}}},onDocSignal:Yi,doOnInteractions:Hs,methodNames:zs},Pa=Cs,Bi=function(S){return S[S.On=0]="On",S[S.Off=1]="Off",S}(Bi||{}),fa=function(){function S(v,P,z,se){s(this,S),this.target=void 0,this.options=void 0,this._actions=void 0,this.events=new Ts,this._context=void 0,this._win=void 0,this._doc=void 0,this._scopeEvents=void 0,this._actions=P.actions,this.target=v,this._context=P.context||z,this._win=x(Pe(v)?this._context:v),this._doc=this._win.document,this._scopeEvents=se,this.set(P)}return l(S,[{key:"_defaults",get:function(){return{base:{},perAction:{},actions:{}}}},{key:"setOnEvents",value:function(v,P){return N.func(P.onstart)&&this.on("".concat(v,"start"),P.onstart),N.func(P.onmove)&&this.on("".concat(v,"move"),P.onmove),N.func(P.onend)&&this.on("".concat(v,"end"),P.onend),N.func(P.oninertiastart)&&this.on("".concat(v,"inertiastart"),P.oninertiastart),this}},{key:"updatePerActionListeners",value:function(v,P,z){var se,me=this,Ie=(se=this._actions.map[v])==null?void 0:se.filterEventType,Be=function(We){return(Ie==null||Ie(We))&&dn(We,me._actions)};(N.array(P)||N.object(P))&&this._onOff(Bi.Off,v,P,void 0,Be),(N.array(z)||N.object(z))&&this._onOff(Bi.On,v,z,void 0,Be)}},{key:"setPerAction",value:function(v,P){var z=this._defaults;for(var se in P){var me=se,Ie=this.options[v],Be=P[me];me==="listeners"&&this.updatePerActionListeners(v,Ie.listeners,Be),N.array(Be)?Ie[me]=oe(Be):N.plainObject(Be)?(Ie[me]=De(Ie[me]||{},Gn(Be)),N.object(z.perAction[me])&&"enabled"in z.perAction[me]&&(Ie[me].enabled=Be.enabled!==!1)):N.bool(Be)&&N.object(z.perAction[me])?Ie[me].enabled=Be:Ie[me]=Be}}},{key:"getRect",value:function(v){return v=v||(N.element(this.target)?this.target:null),N.string(this.target)&&(v=v||this._context.querySelector(this.target)),we(v)}},{key:"rectChecker",value:function(v){var P=this;return N.func(v)?(this.getRect=function(z){var se=De({},v.call(P,z));return"width"in se||(se.width=se.right-se.left,se.height=se.bottom-se.top),se},this):v===null?(delete this.getRect,this):this.getRect}},{key:"_backCompatOption",value:function(v,P){if(Pe(P)||N.object(P)){for(var z in this.options[v]=P,this._actions.map)this.options[z][v]=P;return this}return this.options[v]}},{key:"origin",value:function(v){return this._backCompatOption("origin",v)}},{key:"deltaSource",value:function(v){return v==="page"||v==="client"?(this.options.deltaSource=v,this):this.options.deltaSource}},{key:"getAllElements",value:function(){var v=this.target;return N.string(v)?Array.from(this._context.querySelectorAll(v)):N.func(v)&&v.getAllElements?v.getAllElements():N.element(v)?[v]:[]}},{key:"context",value:function(){return this._context}},{key:"inContext",value:function(v){return this._context===v.ownerDocument||pe(this._context,v)}},{key:"testIgnoreAllow",value:function(v,P,z){return!this.testIgnore(v.ignoreFrom,P,z)&&this.testAllow(v.allowFrom,P,z)}},{key:"testAllow",value:function(v,P,z){return!v||!!N.element(z)&&(N.string(v)?X(z,v,P):!!N.element(v)&&pe(v,z))}},{key:"testIgnore",value:function(v,P,z){return!(!v||!N.element(z))&&(N.string(v)?X(z,v,P):!!N.element(v)&&pe(v,z))}},{key:"fire",value:function(v){return this.events.fire(v),this}},{key:"_onOff",value:function(v,P,z,se,me){N.object(P)&&!N.array(P)&&(se=z,z=null);var Ie=Je(P,z,me);for(var Be in Ie){Be==="wheel"&&(Be=ve.wheelEvent);for(var We=0,ut=Ie[Be];We<ut.length;We++){var tt=ut[We];dn(Be,this._actions)?this.events[v===Bi.On?"on":"off"](Be,tt):N.string(this.target)?this._scopeEvents[v===Bi.On?"addDelegate":"removeDelegate"](this.target,this._context,Be,tt,se):this._scopeEvents[v===Bi.On?"add":"remove"](this.target,Be,tt,se)}}return this}},{key:"on",value:function(v,P,z){return this._onOff(Bi.On,v,P,z)}},{key:"off",value:function(v,P,z){return this._onOff(Bi.Off,v,P,z)}},{key:"set",value:function(v){var P=this._defaults;for(var z in N.object(v)||(v={}),this.options=Gn(P.base),this._actions.methodDict){var se=z,me=this._actions.methodDict[se];this.options[se]={},this.setPerAction(se,De(De({},P.perAction),P.actions[se])),this[me](v[se])}for(var Ie in v)Ie!=="getRect"?N.func(this[Ie])&&this[Ie](v[Ie]):this.rectChecker(v.getRect);return this}},{key:"unset",value:function(){if(N.string(this.target))for(var v in this._scopeEvents.delegatedEvents)for(var P=this._scopeEvents.delegatedEvents[v],z=P.length-1;z>=0;z--){var se=P[z],me=se.selector,Ie=se.context,Be=se.listeners;me===this.target&&Ie===this._context&&P.splice(z,1);for(var We=Be.length-1;We>=0;We--)this._scopeEvents.removeDelegate(this.target,this._context,v,Be[We][0],Be[We][1])}else this._scopeEvents.remove(this.target,"all")}}]),S}(),ws=function(){function S(v){var P=this;s(this,S),this.list=[],this.selectorMap={},this.scope=void 0,this.scope=v,v.addListeners({"interactable:unset":function(z){var se=z.interactable,me=se.target,Ie=N.string(me)?P.selectorMap[me]:me[P.scope.id],Be=Se(Ie,function(We){return We===se});Ie.splice(Be,1)}})}return l(S,[{key:"new",value:function(v,P){P=De(P||{},{actions:this.scope.actions});var z=new this.scope.Interactable(v,P,this.scope.document,this.scope.events);return this.scope.addDocument(z._doc),this.list.push(z),N.string(v)?(this.selectorMap[v]||(this.selectorMap[v]=[]),this.selectorMap[v].push(z)):(z.target[this.scope.id]||Object.defineProperty(v,this.scope.id,{value:[],configurable:!0}),v[this.scope.id].push(z)),this.scope.fire("interactable:new",{target:v,options:P,interactable:z,win:this.scope._win}),z}},{key:"getExisting",value:function(v,P){var z=P&&P.context||this.scope.document,se=N.string(v),me=se?this.selectorMap[v]:v[this.scope.id];if(me)return ee(me,function(Ie){return Ie._context===z&&(se||Ie.inContext(v))})}},{key:"forEachMatch",value:function(v,P){for(var z=0,se=this.list;z<se.length;z++){var me=se[z],Ie=void 0;if((N.string(me.target)?N.element(v)&&ne(v,me.target):v===me.target)&&me.inContext(v)&&(Ie=P(me)),Ie!==void 0)return Ie}}}]),S}(),Ws=function(){function S(){var v=this;s(this,S),this.id="__interact_scope_".concat(Math.floor(100*Math.random())),this.isInitialized=!1,this.listenerMaps=[],this.browser=ve,this.defaults=Gn(Vi),this.Eventable=Ts,this.actions={map:{},phases:{start:!0,move:!0,end:!0},methodDict:{},phaselessTypes:{}},this.interactStatic=function(z){var se=function me(Ie,Be){var We=z.interactables.getExisting(Ie,Be);return We||((We=z.interactables.new(Ie,Be)).events.global=me.globalEvents),We};return se.getPointerAverage=$e,se.getTouchBBox=Q,se.getTouchDistance=k,se.getTouchAngle=q,se.getElementRect=we,se.getElementClientRect=re,se.matchesSelector=ne,se.closest=he,se.globalEvents={},se.version="1.10.28",se.scope=z,se.use=function(me,Ie){return this.scope.usePlugin(me,Ie),this},se.isSet=function(me,Ie){return!!this.scope.interactables.get(me,Ie&&Ie.context)},se.on=gn(function(me,Ie,Be){if(N.string(me)&&me.search(" ")!==-1&&(me=me.trim().split(/ +/)),N.array(me)){for(var We=0,ut=me;We<ut.length;We++){var tt=ut[We];this.on(tt,Ie,Be)}return this}if(N.object(me)){for(var b in me)this.on(b,me[b],Ie);return this}return dn(me,this.scope.actions)?this.globalEvents[me]?this.globalEvents[me].push(Ie):this.globalEvents[me]=[Ie]:this.scope.events.add(this.scope.document,me,Ie,{options:Be}),this},"The interact.on() method is being deprecated"),se.off=gn(function(me,Ie,Be){if(N.string(me)&&me.search(" ")!==-1&&(me=me.trim().split(/ +/)),N.array(me)){for(var We=0,ut=me;We<ut.length;We++){var tt=ut[We];this.off(tt,Ie,Be)}return this}if(N.object(me)){for(var b in me)this.off(b,me[b],Ie);return this}var I;return dn(me,this.scope.actions)?me in this.globalEvents&&(I=this.globalEvents[me].indexOf(Ie))!==-1&&this.globalEvents[me].splice(I,1):this.scope.events.remove(this.scope.document,me,Ie,Be),this},"The interact.off() method is being deprecated"),se.debug=function(){return this.scope},se.supportsTouch=function(){return ve.supportsTouch},se.supportsPointerEvent=function(){return ve.supportsPointerEvent},se.stop=function(){for(var me=0,Ie=this.scope.interactions.list;me<Ie.length;me++)Ie[me].stop();return this},se.pointerMoveTolerance=function(me){return N.number(me)?(this.scope.interactions.pointerMoveTolerance=me,this):this.scope.interactions.pointerMoveTolerance},se.addDocument=function(me,Ie){this.scope.addDocument(me,Ie)},se.removeDocument=function(me){this.scope.removeDocument(me)},se}(this),this.InteractEvent=Un,this.Interactable=void 0,this.interactables=new ws(this),this._win=void 0,this.document=void 0,this.window=void 0,this.documents=[],this._plugins={list:[],map:{}},this.onWindowUnload=function(z){return v.removeDocument(z.target)};var P=this;this.Interactable=function(z){d(me,z);var se=y(me);function me(){return s(this,me),se.apply(this,arguments)}return l(me,[{key:"_defaults",get:function(){return P.defaults}},{key:"set",value:function(Ie){return w(u(me.prototype),"set",this).call(this,Ie),P.fire("interactable:set",{options:Ie,interactable:this}),this}},{key:"unset",value:function(){w(u(me.prototype),"unset",this).call(this);var Ie=P.interactables.list.indexOf(this);Ie<0||(P.interactables.list.splice(Ie,1),P.fire("interactable:unset",{interactable:this}))}}]),me}(fa)}return l(S,[{key:"addListeners",value:function(v,P){this.listenerMaps.push({id:P,map:v})}},{key:"fire",value:function(v,P){for(var z=0,se=this.listenerMaps;z<se.length;z++){var me=se[z].map[v];if(me&&me(P,this,v)===!1)return!1}}},{key:"init",value:function(v){return this.isInitialized?this:function(P,z){return P.isInitialized=!0,N.window(z)&&O(z),Te.init(z),ve.init(z),un.init(z),P.window=z,P.document=z.document,P.usePlugin(Pa),P.usePlugin(xs),P}(this,v)}},{key:"pluginIsInstalled",value:function(v){var P=v.id;return P?!!this._plugins.map[P]:this._plugins.list.indexOf(v)!==-1}},{key:"usePlugin",value:function(v,P){if(!this.isInitialized)return this;if(this.pluginIsInstalled(v))return this;if(v.id&&(this._plugins.map[v.id]=v),this._plugins.list.push(v),v.install&&v.install(this,P),v.listeners&&v.before){for(var z=0,se=this.listenerMaps.length,me=v.before.reduce(function(Be,We){return Be[We]=!0,Be[Os(We)]=!0,Be},{});z<se;z++){var Ie=this.listenerMaps[z].id;if(Ie&&(me[Ie]||me[Os(Ie)]))break}this.listenerMaps.splice(z,0,{id:v.id,map:v.listeners})}else v.listeners&&this.listenerMaps.push({id:v.id,map:v.listeners});return this}},{key:"addDocument",value:function(v,P){if(this.getDocIndex(v)!==-1)return!1;var z=x(v);P=P?De({},P):{},this.documents.push({doc:v,options:P}),this.events.documents.push(v),v!==this.document&&this.events.add(z,"unload",this.onWindowUnload),this.fire("scope:add-document",{doc:v,window:z,scope:this,options:P})}},{key:"removeDocument",value:function(v){var P=this.getDocIndex(v),z=x(v),se=this.documents[P].options;this.events.remove(z,"unload",this.onWindowUnload),this.documents.splice(P,1),this.events.documents.splice(P,1),this.fire("scope:remove-document",{doc:v,window:z,scope:this,options:se})}},{key:"getDocIndex",value:function(v){for(var P=0;P<this.documents.length;P++)if(this.documents[P].doc===v)return P;return-1}},{key:"getDocOptions",value:function(v){var P=this.getDocIndex(v);return P===-1?null:this.documents[P].options}},{key:"now",value:function(){return(this.window.Date||Date).now()}}]),S}();function Os(S){return S&&S.replace(/\/.*$/,"")}var hs=new Ws,In=hs.interactStatic,ts=typeof globalThis<"u"?globalThis:window;hs.init(ts);var ha=Object.freeze({__proto__:null,edgeTarget:function(){},elements:function(){},grid:function(S){var v=[["x","y"],["left","top"],["right","bottom"],["width","height"]].filter(function(z){var se=z[0],me=z[1];return se in S||me in S}),P=function(z,se){for(var me=S.range,Ie=S.limits,Be=Ie===void 0?{left:-1/0,right:1/0,top:-1/0,bottom:1/0}:Ie,We=S.offset,ut=We===void 0?{x:0,y:0}:We,tt={range:me,grid:S,x:null,y:null},b=0;b<v.length;b++){var I=v[b],U=I[0],j=I[1],ie=Math.round((z-ut.x)/S[U]),ye=Math.round((se-ut.y)/S[j]);tt[U]=Math.max(Be.left,Math.min(Be.right,ie*S[U]+ut.x)),tt[j]=Math.max(Be.top,Math.min(Be.bottom,ye*S[j]+ut.y))}return tt};return P.grid=S,P.coordFields=v,P}}),Da={id:"snappers",install:function(S){var v=S.interactStatic;v.snappers=De(v.snappers||{},ha),v.createSnapGrid=v.snappers.grid}},Fi=Da,ms={start:function(S){var v=S.state,P=S.rect,z=S.edges,se=S.pageCoords,me=v.options,Ie=me.ratio,Be=me.enabled,We=v.options,ut=We.equalDelta,tt=We.modifiers;Ie==="preserve"&&(Ie=P.width/P.height),v.startCoords=De({},se),v.startRect=De({},P),v.ratio=Ie,v.equalDelta=ut;var b=v.linkedEdges={top:z.top||z.left&&!z.bottom,left:z.left||z.top&&!z.right,bottom:z.bottom||z.right&&!z.top,right:z.right||z.bottom&&!z.left};if(v.xIsPrimaryAxis=!(!z.left&&!z.right),v.equalDelta){var I=(b.left?1:-1)*(b.top?1:-1);v.edgeSign={x:I,y:I}}else v.edgeSign={x:b.left?-1:1,y:b.top?-1:1};if(Be!==!1&&De(z,b),tt!=null&&tt.length){var U=new jn(S.interaction);U.copyFrom(S.interaction.modification),U.prepareStates(tt),v.subModification=U,U.startAll(n({},S))}},set:function(S){var v=S.state,P=S.rect,z=S.coords,se=v.linkedEdges,me=De({},z),Ie=v.equalDelta?Ks:Is;if(De(S.edges,se),Ie(v,v.xIsPrimaryAxis,z,P),!v.subModification)return null;var Be=De({},P);ht(se,Be,{x:z.x-me.x,y:z.y-me.y});var We=v.subModification.setAll(n(n({},S),{},{rect:Be,edges:se,pageCoords:z,prevCoords:z,prevRect:Be})),ut=We.delta;return We.changed&&(Ie(v,Math.abs(ut.x)>Math.abs(ut.y),We.coords,We.rect),De(z,We.coords)),We.eventProps},defaults:{ratio:"preserve",equalDelta:!1,modifiers:[],enabled:!1}};function Ks(S,v,P){var z=S.startCoords,se=S.edgeSign;v?P.y=z.y+(P.x-z.x)*se.y:P.x=z.x+(P.y-z.y)*se.x}function Is(S,v,P,z){var se=S.startRect,me=S.startCoords,Ie=S.ratio,Be=S.edgeSign;if(v){var We=z.width/Ie;P.y=me.y+(We-se.height)*Be.y}else{var ut=z.height*Ie;P.x=me.x+(ut-se.width)*Be.x}}var Qs=Mn(ms,"aspectRatio"),Ns=function(){};Ns._defaults={};var wn=Ns;function oi(S,v,P){return N.func(S)?it(S,v.interactable,v.element,[P.x,P.y,v]):it(S,v.interactable,v.element)}var ti={start:function(S){var v=S.rect,P=S.startOffset,z=S.state,se=S.interaction,me=S.pageCoords,Ie=z.options,Be=Ie.elementRect,We=De({left:0,top:0,right:0,bottom:0},Ie.offset||{});if(v&&Be){var ut=oi(Ie.restriction,se,me);if(ut){var tt=ut.right-ut.left-v.width,b=ut.bottom-ut.top-v.height;tt<0&&(We.left+=tt,We.right+=tt),b<0&&(We.top+=b,We.bottom+=b)}We.left+=P.left-v.width*Be.left,We.top+=P.top-v.height*Be.top,We.right+=P.right-v.width*(1-Be.right),We.bottom+=P.bottom-v.height*(1-Be.bottom)}z.offset=We},set:function(S){var v=S.coords,P=S.interaction,z=S.state,se=z.options,me=z.offset,Ie=oi(se.restriction,P,v);if(Ie){var Be=function(We){return!We||"left"in We&&"top"in We||((We=De({},We)).left=We.x||0,We.top=We.y||0,We.right=We.right||We.left+We.width,We.bottom=We.bottom||We.top+We.height),We}(Ie);v.x=Math.max(Math.min(Be.right-me.right,v.x),Be.left+me.left),v.y=Math.max(Math.min(Be.bottom-me.bottom,v.y),Be.top+me.top)}},defaults:{restriction:null,elementRect:null,offset:null,endOnly:!1,enabled:!1}},Xs=Mn(ti,"restrict"),_s={top:1/0,left:1/0,bottom:-1/0,right:-1/0},ae={top:-1/0,left:-1/0,bottom:1/0,right:1/0};function p(S,v){for(var P=0,z=["top","left","bottom","right"];P<z.length;P++){var se=z[P];se in S||(S[se]=v[se])}return S}var o={noInner:_s,noOuter:ae,start:function(S){var v,P=S.interaction,z=S.startOffset,se=S.state,me=se.options;me&&(v=ft(oi(me.offset,P,P.coords.start.page))),v=v||{x:0,y:0},se.offset={top:v.y+z.top,left:v.x+z.left,bottom:v.y-z.bottom,right:v.x-z.right}},set:function(S){var v=S.coords,P=S.edges,z=S.interaction,se=S.state,me=se.offset,Ie=se.options;if(P){var Be=De({},v),We=oi(Ie.inner,z,Be)||{},ut=oi(Ie.outer,z,Be)||{};p(We,_s),p(ut,ae),P.top?v.y=Math.min(Math.max(ut.top+me.top,Be.y),We.top+me.top):P.bottom&&(v.y=Math.max(Math.min(ut.bottom+me.bottom,Be.y),We.bottom+me.bottom)),P.left?v.x=Math.min(Math.max(ut.left+me.left,Be.x),We.left+me.left):P.right&&(v.x=Math.max(Math.min(ut.right+me.right,Be.x),We.right+me.right))}},defaults:{inner:null,outer:null,offset:null,endOnly:!1,enabled:!1}},f=Mn(o,"restrictEdges"),g=De({get elementRect(){return{top:0,left:0,bottom:1,right:1}},set elementRect(S){}},ti.defaults),D=Mn({start:ti.start,set:ti.set,defaults:g},"restrictRect"),ue={width:-1/0,height:-1/0},Ae={width:1/0,height:1/0},Ge=Mn({start:function(S){return o.start(S)},set:function(S){var v=S.interaction,P=S.state,z=S.rect,se=S.edges,me=P.options;if(se){var Ie=wt(oi(me.min,v,S.coords))||ue,Be=wt(oi(me.max,v,S.coords))||Ae;P.options={endOnly:me.endOnly,inner:De({},o.noInner),outer:De({},o.noOuter)},se.top?(P.options.inner.top=z.bottom-Ie.height,P.options.outer.top=z.bottom-Be.height):se.bottom&&(P.options.inner.bottom=z.top+Ie.height,P.options.outer.bottom=z.top+Be.height),se.left?(P.options.inner.left=z.right-Ie.width,P.options.outer.left=z.right-Be.width):se.right&&(P.options.inner.right=z.left+Ie.width,P.options.outer.right=z.left+Be.width),o.set(S),P.options=me}},defaults:{min:null,max:null,endOnly:!1,enabled:!1}},"restrictSize"),et={start:function(S){var v,P=S.interaction,z=S.interactable,se=S.element,me=S.rect,Ie=S.state,Be=S.startOffset,We=Ie.options,ut=We.offsetWithOrigin?function(I){var U=I.interaction.element,j=ft(it(I.state.options.origin,null,null,[U])),ie=j||Pt(I.interactable,U,I.interaction.prepared.name);return ie}(S):{x:0,y:0};if(We.offset==="startCoords")v={x:P.coords.start.page.x,y:P.coords.start.page.y};else{var tt=it(We.offset,z,se,[P]);(v=ft(tt)||{x:0,y:0}).x+=ut.x,v.y+=ut.y}var b=We.relativePoints;Ie.offsets=me&&b&&b.length?b.map(function(I,U){return{index:U,relativePoint:I,x:Be.left-me.width*I.x+v.x,y:Be.top-me.height*I.y+v.y}}):[{index:0,relativePoint:null,x:v.x,y:v.y}]},set:function(S){var v=S.interaction,P=S.coords,z=S.state,se=z.options,me=z.offsets,Ie=Pt(v.interactable,v.element,v.prepared.name),Be=De({},P),We=[];se.offsetWithOrigin||(Be.x-=Ie.x,Be.y-=Ie.y);for(var ut=0,tt=me;ut<tt.length;ut++)for(var b=tt[ut],I=Be.x-b.x,U=Be.y-b.y,j=0,ie=se.targets.length;j<ie;j++){var ye=se.targets[j],Oe=void 0;(Oe=N.func(ye)?ye(I,U,v._proxy,b,j):ye)&&We.push({x:(N.number(Oe.x)?Oe.x:I)+b.x,y:(N.number(Oe.y)?Oe.y:U)+b.y,range:N.number(Oe.range)?Oe.range:se.range,source:ye,index:j,offset:b})}for(var Le={target:null,inRange:!1,distance:0,range:0,delta:{x:0,y:0}},at=0;at<We.length;at++){var gt=We[at],lt=gt.range,ot=gt.x-Be.x,mt=gt.y-Be.y,_t=Ye(ot,mt),yt=_t<=lt;lt===1/0&&Le.inRange&&Le.range!==1/0&&(yt=!1),Le.target&&!(yt?Le.inRange&<!==1/0?_t/lt<Le.distance/Le.range:lt===1/0&&Le.range!==1/0||_t<Le.distance:!Le.inRange&&_t<Le.distance)||(Le.target=gt,Le.distance=_t,Le.range=lt,Le.inRange=yt,Le.delta.x=ot,Le.delta.y=mt)}return Le.inRange&&(P.x=Le.target.x,P.y=Le.target.y),z.closest=Le,Le},defaults:{range:1/0,targets:null,offset:null,offsetWithOrigin:!0,origin:null,relativePoints:null,endOnly:!1,enabled:!1}},ct=Mn(et,"snap"),Rt={start:function(S){var v=S.state,P=S.edges,z=v.options;if(!P)return null;S.state={options:{targets:null,relativePoints:[{x:P.left?0:1,y:P.top?0:1}],offset:z.offset||"self",origin:{x:0,y:0},range:z.range}},v.targetFields=v.targetFields||[["width","height"],["x","y"]],et.start(S),v.offsets=S.state.offsets,S.state=v},set:function(S){var v=S.interaction,P=S.state,z=S.coords,se=P.options,me=P.offsets,Ie={x:z.x-me[0].x,y:z.y-me[0].y};P.options=De({},se),P.options.targets=[];for(var Be=0,We=se.targets||[];Be<We.length;Be++){var ut=We[Be],tt=void 0;if(tt=N.func(ut)?ut(Ie.x,Ie.y,v):ut){for(var b=0,I=P.targetFields;b<I.length;b++){var U=I[b],j=U[0],ie=U[1];if(j in tt||ie in tt){tt.x=tt[j],tt.y=tt[ie];break}}P.options.targets.push(tt)}}var ye=et.set(S);return P.options=se,ye},defaults:{range:1/0,targets:null,offset:null,endOnly:!1,enabled:!1}},Ut=Mn(Rt,"snapSize"),Yt={aspectRatio:Qs,restrictEdges:f,restrict:Xs,restrictRect:D,restrictSize:Ge,snapEdges:Mn({start:function(S){var v=S.edges;return v?(S.state.targetFields=S.state.targetFields||[[v.left?"left":"right",v.top?"top":"bottom"]],Rt.start(S)):null},set:Rt.set,defaults:De(Gn(Rt.defaults),{targets:void 0,range:void 0,offset:{x:0,y:0}})},"snapEdges"),snap:ct,snapSize:Ut,spring:wn,avoid:wn,transform:wn,rubberband:wn},er={id:"modifiers",install:function(S){var v=S.interactStatic;for(var P in S.usePlugin(Yn),S.usePlugin(Fi),v.modifiers=Yt,Yt){var z=Yt[P],se=z._defaults,me=z._methods;se._methods=me,S.defaults.perAction[P]=se}}},kr=er,rn=function(S){d(P,S);var v=y(P);function P(z,se,me,Ie,Be,We){var ut;if(s(this,P),Dt(_(ut=v.call(this,Be)),me),me!==se&&Dt(_(ut),se),ut.timeStamp=We,ut.originalEvent=me,ut.type=z,ut.pointerId=le(se),ut.pointerType=Ne(se),ut.target=Ie,ut.currentTarget=null,z==="tap"){var tt=Be.getPointerIndex(se);ut.dt=ut.timeStamp-Be.pointers[tt].downTime;var b=ut.timeStamp-Be.tapTime;ut.double=!!Be.prevTap&&Be.prevTap.type!=="doubletap"&&Be.prevTap.target===ut.target&&b<500}else z==="doubletap"&&(ut.dt=se.timeStamp-Be.tapTime,ut.double=!0);return ut}return l(P,[{key:"_subtractOrigin",value:function(z){var se=z.x,me=z.y;return this.pageX-=se,this.pageY-=me,this.clientX-=se,this.clientY-=me,this}},{key:"_addOrigin",value:function(z){var se=z.x,me=z.y;return this.pageX+=se,this.pageY+=me,this.clientX+=se,this.clientY+=me,this}},{key:"preventDefault",value:function(){this.originalEvent.preventDefault()}}]),P}(Xe),hr={id:"pointer-events/base",before:["inertia","modifiers","auto-start","actions"],install:function(S){S.pointerEvents=hr,S.defaults.actions.pointerEvents=hr.defaults,De(S.actions.phaselessTypes,hr.types)},listeners:{"interactions:new":function(S){var v=S.interaction;v.prevTap=null,v.tapTime=0},"interactions:update-pointer":function(S){var v=S.down,P=S.pointerInfo;!v&&P.hold||(P.hold={duration:1/0,timeout:null})},"interactions:move":function(S,v){var P=S.interaction,z=S.pointer,se=S.event,me=S.eventTarget;S.duplicate||P.pointerIsDown&&!P.pointerWasMoved||(P.pointerIsDown&&li(S),Br({interaction:P,pointer:z,event:se,eventTarget:me,type:"move"},v))},"interactions:down":function(S,v){(function(P,z){for(var se=P.interaction,me=P.pointer,Ie=P.event,Be=P.eventTarget,We=P.pointerIndex,ut=se.pointers[We].hold,tt=qe(Be),b={interaction:se,pointer:me,event:Ie,eventTarget:Be,type:"hold",targets:[],path:tt,node:null},I=0;I<tt.length;I++){var U=tt[I];b.node=U,z.fire("pointerEvents:collect-targets",b)}if(b.targets.length){for(var j=1/0,ie=0,ye=b.targets;ie<ye.length;ie++){var Oe=ye[ie].eventable.options.holdDuration;Oe<j&&(j=Oe)}ut.duration=j,ut.timeout=setTimeout(function(){Br({interaction:se,eventTarget:Be,pointer:me,event:Ie,type:"hold"},z)},j)}})(S,v),Br(S,v)},"interactions:up":function(S,v){li(S),Br(S,v),function(P,z){var se=P.interaction,me=P.pointer,Ie=P.event,Be=P.eventTarget;se.pointerWasMoved||Br({interaction:se,eventTarget:Be,pointer:me,event:Ie,type:"tap"},z)}(S,v)},"interactions:cancel":function(S,v){li(S),Br(S,v)}},PointerEvent:rn,fire:Br,collectEventTargets:xi,defaults:{holdDuration:600,ignoreFrom:null,allowFrom:null,origin:{x:0,y:0}},types:{down:!0,move:!0,up:!0,cancel:!0,tap:!0,doubletap:!0,hold:!0}};function Br(S,v){var P=S.interaction,z=S.pointer,se=S.event,me=S.eventTarget,Ie=S.type,Be=S.targets,We=Be===void 0?xi(S,v):Be,ut=new rn(Ie,z,se,me,P,v.now());v.fire("pointerEvents:new",{pointerEvent:ut});for(var tt={interaction:P,pointer:z,event:se,eventTarget:me,targets:We,type:Ie,pointerEvent:ut},b=0;b<We.length;b++){var I=We[b];for(var U in I.props||{})ut[U]=I.props[U];var j=Pt(I.eventable,I.node);if(ut._subtractOrigin(j),ut.eventable=I.eventable,ut.currentTarget=I.node,I.eventable.fire(ut),ut._addOrigin(j),ut.immediatePropagationStopped||ut.propagationStopped&&b+1<We.length&&We[b+1].node!==ut.currentTarget)break}if(v.fire("pointerEvents:fired",tt),Ie==="tap"){var ie=ut.double?Br({interaction:P,pointer:z,event:se,eventTarget:me,type:"doubletap"},v):ut;P.prevTap=ie,P.tapTime=ie.timeStamp}return ut}function xi(S,v){var P=S.interaction,z=S.pointer,se=S.event,me=S.eventTarget,Ie=S.type,Be=P.getPointerIndex(z),We=P.pointers[Be];if(Ie==="tap"&&(P.pointerWasMoved||!We||We.downTarget!==me))return[];for(var ut=qe(me),tt={interaction:P,pointer:z,event:se,eventTarget:me,type:Ie,path:ut,targets:[],node:null},b=0;b<ut.length;b++){var I=ut[b];tt.node=I,v.fire("pointerEvents:collect-targets",tt)}return Ie==="hold"&&(tt.targets=tt.targets.filter(function(U){var j,ie;return U.eventable.options.holdDuration===((j=P.pointers[Be])==null||(ie=j.hold)==null?void 0:ie.duration)})),tt.targets}function li(S){var v=S.interaction,P=S.pointerIndex,z=v.pointers[P].hold;z&&z.timeout&&(clearTimeout(z.timeout),z.timeout=null)}var ma=Object.freeze({__proto__:null,default:hr});function Js(S){var v=S.interaction;v.holdIntervalHandle&&(clearInterval(v.holdIntervalHandle),v.holdIntervalHandle=null)}var Rs={id:"pointer-events/holdRepeat",install:function(S){S.usePlugin(hr);var v=S.pointerEvents;v.defaults.holdRepeatInterval=0,v.types.holdrepeat=S.actions.phaselessTypes.holdrepeat=!0},listeners:["move","up","cancel","endall"].reduce(function(S,v){return S["pointerEvents:".concat(v)]=Js,S},{"pointerEvents:new":function(S){var v=S.pointerEvent;v.type==="hold"&&(v.count=(v.count||0)+1)},"pointerEvents:fired":function(S,v){var P=S.interaction,z=S.pointerEvent,se=S.eventTarget,me=S.targets;if(z.type==="hold"&&me.length){var Ie=me[0].eventable.options.holdRepeatInterval;Ie<=0||(P.holdIntervalHandle=setTimeout(function(){v.pointerEvents.fire({interaction:P,eventTarget:se,type:"hold",pointer:z,event:z},v)},Ie))}}})},Zs=Rs,ea={id:"pointer-events/interactableTargets",install:function(S){var v=S.Interactable;v.prototype.pointerEvents=function(z){return De(this.events.options,z),this};var P=v.prototype._backCompatOption;v.prototype._backCompatOption=function(z,se){var me=P.call(this,z,se);return me===this&&(this.events.options[z]=se),me}},listeners:{"pointerEvents:collect-targets":function(S,v){var P=S.targets,z=S.node,se=S.type,me=S.eventTarget;v.interactables.forEachMatch(z,function(Ie){var Be=Ie.events,We=Be.options;Be.types[se]&&Be.types[se].length&&Ie.testIgnoreAllow(We,z,me)&&P.push({node:z,eventable:Be,props:{interactable:Ie}})})},"interactable:new":function(S){var v=S.interactable;v.events.getRect=function(P){return v.getRect(P)}},"interactable:set":function(S,v){var P=S.interactable,z=S.options;De(P.events.options,v.pointerEvents.defaults),De(P.events.options,z.pointerEvents||{})}}},_a=ea,ga={id:"pointer-events",install:function(S){S.usePlugin(ma),S.usePlugin(Zs),S.usePlugin(_a)}},ya=ga,gs={id:"reflow",install:function(S){var v=S.Interactable;S.actions.phases.reflow=!0,v.prototype.reflow=function(P){return function(z,se,me){for(var Ie=z.getAllElements(),Be=me.window.Promise,We=Be?[]:null,ut=function(){var b=Ie[tt],I=z.getRect(b);if(!I)return 1;var U,j=ee(me.interactions.list,function(Oe){return Oe.interacting()&&Oe.interactable===z&&Oe.element===b&&Oe.prepared.name===se.name});if(j)j.move(),We&&(U=j._reflowPromise||new Be(function(Oe){j._reflowResolve=Oe}));else{var ie=wt(I),ye=function(Oe){return{coords:Oe,get page(){return this.coords.page},get client(){return this.coords.client},get timeStamp(){return this.coords.timeStamp},get pageX(){return this.coords.page.x},get pageY(){return this.coords.page.y},get clientX(){return this.coords.client.x},get clientY(){return this.coords.client.y},get pointerId(){return this.coords.pointerId},get target(){return this.coords.target},get type(){return this.coords.type},get pointerType(){return this.coords.pointerType},get buttons(){return this.coords.buttons},preventDefault:function(){}}}({page:{x:ie.x,y:ie.y},client:{x:ie.x,y:ie.y},timeStamp:me.now()});U=function(Oe,Le,at,gt,lt){var ot=Oe.interactions.new({pointerType:"reflow"}),mt={interaction:ot,event:lt,pointer:lt,eventTarget:at,phase:"reflow"};ot.interactable=Le,ot.element=at,ot.prevEvent=lt,ot.updatePointer(lt,lt,at,!0),Ue(ot.coords.delta),qn(ot.prepared,gt),ot._doPhase(mt);var _t=Oe.window,yt=_t.Promise,bt=yt?new yt(function(vt){ot._reflowResolve=vt}):void 0;return ot._reflowPromise=bt,ot.start(gt,Le,at),ot._interacting?(ot.move(mt),ot.end(lt)):(ot.stop(),ot._reflowResolve()),ot.removePointer(lt,lt),bt}(me,z,b,se,ye)}We&&We.push(U)},tt=0;tt<Ie.length&&!ut();tt++);return We&&Be.all(We).then(function(){return z})}(this,P,S)}},listeners:{"interactions:stop":function(S,v){var P=S.interaction;P.pointerType==="reflow"&&(P._reflowResolve&&P._reflowResolve(),function(z,se){z.splice(z.indexOf(se),1)}(v.interactions.list,P))}}},_i=gs;if(In.use(Lr),In.use(Xt),In.use(ya),In.use(ds),In.use(kr),In.use(ji),In.use(Si),In.use(Ni),In.use(_i),In.default=In,i(t)==="object"&&t)try{t.exports=In}catch{}return In.default=In,In})}(Hp,Hp.exports);var Q3=Hp.exports;const Za=dg(Q3);class X3{constructor(e,r){this._state={isDragging:!1,isResizing:!1,interactionMode:"none"},this._isEnabled=!1,this._draggable=!0,this._resizable=!0,this._host=e,this._draggable=(r==null?void 0:r.draggable)??!0,this._resizable=(r==null?void 0:r.resizable)??!0,this._prefersReducedMotion=window.matchMedia("(prefers-reduced-motion: reduce)").matches,this._boundHandleMotionPreference=n=>{this._prefersReducedMotion=n.matches},this.value={state:this._state,actions:{enable:()=>this._enable(),disable:()=>this._disable(),enterMoveMode:()=>this._enterMoveMode(),enterResizeMode:()=>this._enterResizeMode(),exitInteractionMode:()=>this._exitInteractionMode()}},window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",this._boundHandleMotionPreference)}setConfig(e){this._draggable=e.draggable??!0,this._resizable=e.resizable??!0,this._windowElement&&Za(this._windowElement).unset(),this._titleBarElement&&Za(this._titleBarElement).unset(),this._isEnabled&&this._initInteractions()}get draggable(){return this._draggable}get resizable(){return this._resizable}bindElements(e,r){this._windowElement=e,this._titleBarElement=r,this._initInteractions()}hostConnected(){}hostDisconnected(){window.matchMedia("(prefers-reduced-motion: reduce)").removeEventListener("change",this._boundHandleMotionPreference),this.destroy()}destroy(){this._windowElement&&Za(this._windowElement).unset(),this._titleBarElement&&Za(this._titleBarElement).unset(),this._isEnabled=!1}_enable(){!this._windowElement||!this._titleBarElement||(this._isEnabled=!0,this._initInteractions())}_disable(){this._isEnabled=!1,this._windowElement&&Za(this._windowElement).unset(),this._titleBarElement&&Za(this._titleBarElement).unset()}_initInteractions(){!this._isEnabled||!this._windowElement||!this._titleBarElement||(this._initDrag(),this._initResize(),this._initKeyboard())}_initDrag(){!this._titleBarElement||!this._draggable||Za(this._titleBarElement).draggable({listeners:{start:()=>this._onDragStart(),move:e=>this._onDragMove(e),end:()=>this._onDragEnd()},inertia:!this._prefersReducedMotion})}_initResize(){if(!this._windowElement||!this._resizable)return;const e=this._getMinSize(),r=this._getMargin();Za(this._windowElement).resizable({edges:{top:!0,right:!0,bottom:!0,left:!0},listeners:{start:()=>this._onResizeStart(),move:n=>this._onResizeMove(n),end:()=>this._onResizeEnd()},modifiers:[Za.modifiers.restrictSize({min:e,max:{width:window.innerWidth-2*r,height:window.innerHeight-2*r}})],inertia:!this._prefersReducedMotion})}_initKeyboard(){this._titleBarElement&&this._titleBarElement.addEventListener("keydown",e=>{var r;if(e.key==="Enter"||e.key===" "){e.preventDefault(),this._enterMoveMode();return}if(this._state.interactionMode==="move"){const n=e.shiftKey?20:10;let i=0,s=0;switch(e.key){case"ArrowUp":s=-n;break;case"ArrowDown":s=n;break;case"ArrowLeft":i=-n;break;case"ArrowRight":i=n;break;case"Escape":e.preventDefault(),this._exitInteractionMode();return;default:return}e.preventDefault();const a=this._windowElement;if(!a)return;const l=a.getBoundingClientRect(),c=this._getMargin(),d=Math.max(c,Math.min(l.left+i,window.innerWidth-l.width-c)),u=Math.max(c,Math.min(l.top+s,window.innerHeight-l.height-c));(r=this.onPositionChange)==null||r.call(this,d,u)}})}_enterMoveMode(){var e;this._state={...this._state,interactionMode:"move"},(e=this._titleBarElement)==null||e.setAttribute("aria-grabbed","true"),this._host.requestUpdate()}_enterResizeMode(){this._state={...this._state,interactionMode:"resize"},this._host.requestUpdate()}_exitInteractionMode(){var e;this._state={...this._state,interactionMode:"none"},(e=this._titleBarElement)==null||e.setAttribute("aria-grabbed","false"),this._host.requestUpdate()}_onDragStart(){var e;this._state={...this._state,isDragging:!0},(e=this._windowElement)==null||e.classList.add("dragging"),this._host.requestUpdate()}_onDragMove(e){var l;if(!this._windowElement)return;const r=this._getMargin(),n={width:window.innerWidth,height:window.innerHeight},i=this._windowElement.getBoundingClientRect();let s=i.left+e.dx,a=i.top+e.dy;s=Math.max(r,Math.min(s,n.width-i.width-r)),a=Math.max(r,Math.min(a,n.height-i.height-r)),(l=this.onPositionChange)==null||l.call(this,s,a)}_onDragEnd(){var e;this._state={...this._state,isDragging:!1},(e=this._windowElement)==null||e.classList.remove("dragging"),this._host.requestUpdate()}_onResizeStart(){var e;this._state={...this._state,isResizing:!0},(e=this._windowElement)==null||e.classList.add("resizing"),this._host.requestUpdate()}_onResizeMove(e){var a,l;if(!this._windowElement)return;const{width:r,height:n}=e.rect,i=this._getMargin(),s=e.edges;if(s!=null&&s.left||s!=null&&s.top){const c=this._windowElement.getBoundingClientRect(),d=s.left?e.rect.left:c.left,u=s.top?e.rect.top:c.top,h=Math.max(i,Math.min(d,window.innerWidth-r-i)),_=Math.max(i,Math.min(u,window.innerHeight-n-i));this._windowElement.style.left=`${h}px`,this._windowElement.style.top=`${_}px`,(a=this.onPositionChange)==null||a.call(this,h,_)}(l=this.onSizeChange)==null||l.call(this,r,n)}_onResizeEnd(){var e;this._state={...this._state,isResizing:!1},(e=this._windowElement)==null||e.classList.remove("resizing"),this._host.requestUpdate()}_getMargin(){if(!this._windowElement)return 20;const r=getComputedStyle(this._windowElement).getPropertyValue("--rtc-window-margin");return parseInt(r)||20}_getMinSize(){if(!this._windowElement)return{width:350,height:520};const e=getComputedStyle(this._windowElement);return{width:parseInt(e.getPropertyValue("--rtc-window-min-width"))||350,height:parseInt(e.getPropertyValue("--rtc-window-min-height"))||520}}}function Kx(){let t=localStorage.getItem(vn.deviceId);return t||(t=crypto.randomUUID(),localStorage.setItem(vn.deviceId,t)),t}function J3(){const t=localStorage.getItem(vn.deviceName);return t||Z3()}function Z3(){const t=navigator.userAgent;return/Macintosh|Mac OS X/.test(t)?"Mac":/Windows/.test(t)?"Windows PC":/Linux/.test(t)?"Linux PC":/iPhone|iPad/.test(t)?"iOS Device":/Android/.test(t)?"Android Device":"Unknown Device"}/**
|
|
517
|
+
`,R3=Symbol("window-state-context"),P3={mode:"normal",position:{x:100,y:100},size:{width:420,height:640}},Fx=Symbol("auth-context"),D3={isLoggedIn:!1},rd=Symbol("session-context"),Ux={sessions:[],currentSessionId:null},qx=Symbol("session-tree-context"),og=Symbol("session-tab-context"),Vp=Symbol("message-context"),$x=Symbol("mode-context"),k3=[{mode:"manual",label:"手动",icon:"hand",description:"Claude 会在每次编辑前征求你的同意"},{mode:"edit",label:"编辑",icon:"code",description:"Claude 会自动编辑你选中的文本或整个文件"},{mode:"bypass",label:"绕过权限",icon:"gear",description:"Claude 不会在执行潜在危险命令前征求同意"}],M3={currentMode:"edit"},Gx=Symbol("tool-call-context"),L3={pendingCalls:[]},jx=Symbol("turn-count-context"),lg={pendingTurnCount:0,runningTurnCount:0},Vx={registry:null},Yx=Symbol("skill-context"),B3=Symbol("activity-context"),Yp={active:"chat",sidebarVisible:!1},cg=Symbol("file-explorer-context"),zx={root:null,selectedPath:null},zp=Symbol("settings-context"),nd={appearance:{theme:"system",fontSize:14},chat:{sendShortcut:"Enter",density:"comfortable"},files:{autoSave:!0,defaultViewMode:"split"},notifications:{soundEnabled:!0,toastEnabled:!0}},F3=Symbol("notification-context"),Hx={unreadCount:0,lastNotificationAt:null},U3={BASE_URL:"./",DEV:!1,MODE:"production",PROD:!0,SSR:!1};let ug=null,id=null;function q3(t){ug=t&&t.length>0?t.replace(/\/+$/,""):null}function $3(t){if(!t||t.length===0){id=null;return}t.startsWith("/")?id=`${window.location.origin}${t}`:id=t.replace(/\/+$/,"")}function Wx(){if(ug)return ug;try{const t=U3;if(t!=null&&t.VITE_SERVER_URL)return t.VITE_SERVER_URL}catch{}return"http://localhost:28080"}const ko={get serverUrl(){return Wx()},get wsEndpoint(){return Wx().replace(/^http/,"ws")+"/connection/websocket"},get redirectUri(){return id||`${window.location.origin}/auth/callback.html`},refreshBufferMs:5*60*1e3},vn={tokens:"rtc_auth_tokens",deviceId:"rtc_device_id",deviceName:"rtc_device_name",oauthState:"rtc_oauth_state",mode:"rtc_mode",windowState:"rtc_window_state",sessionTreeExpanded:"rtc_session_tree_expanded",sessionTabs:"rtc_session_tabs",activityBar:"rtc_activity_bar",editorArea:"rtc_editor_area",settings:"rtc_settings"};class G3{constructor(e,r){this._state={...P3},this._restored=!1,this._boundOnViewportResize=()=>this._handleViewportResize(),this.host=e,this._config=r??{defaultMode:"normal",initialPosition:{x:-1,y:-1},initialSize:{width:420,height:640},minWidth:350,minHeight:520,maxWidth:1/0,maxHeight:1/0,draggable:!0,resizable:!0,showMinimize:!0,showMaximize:!0,showClose:!1,embedded:!1,bubblePosition:{corner:"bottom-right",offset:{x:-20,y:20}}},this.host.addController(this),this.actions={setMode:n=>this._setMode(n),setPosition:n=>this._updateState({position:n}),setSize:n=>this._updateState({size:n}),maximize:()=>this._setMode("maximized"),minimize:()=>this._setMode("minimized"),restore:()=>this._setMode("normal")},this._restoreState()}get value(){return{state:this._state,actions:this.actions}}get restored(){return this._restored}setConfig(e){this._config=e,this._restored||(this._state={...this._state,mode:e.defaultMode},this.host.requestUpdate())}get config(){return this._config}hostConnected(){window.addEventListener("resize",this._boundOnViewportResize)}hostDisconnected(){window.removeEventListener("resize",this._boundOnViewportResize)}_handleViewportResize(){var u;const{mode:e}=this._state;if(e==="maximized")return;if(e==="minimized"){this.host.requestUpdate();return}const r=window.innerWidth,n=window.innerHeight,{position:i,size:s}=this._state,a=20;if(r<s.width+2*a||n<s.height+2*a){(u=this.onViewportTooSmall)==null||u.call(this);return}let l=i.x,c=i.y,d=!1;l+s.width>r-a&&(l=r-s.width-a,d=!0),c+s.height>n-a&&(c=n-s.height-a,d=!0),l<a&&(l=a,d=!0),c<a&&(c=a,d=!0),d&&this._updateState({position:{x:l,y:c}})}_restoreState(){var e,r,n,i;try{const s=localStorage.getItem(vn.windowState);if(!s){this._state={...this._state,mode:this._config.defaultMode};return}const a=JSON.parse(s);a.mode&&((e=a.position)==null?void 0:e.x)!=null&&((r=a.position)==null?void 0:r.y)!=null&&((n=a.size)==null?void 0:n.width)!=null&&((i=a.size)==null?void 0:i.height)!=null?(this._state={...a,lastState:void 0},this._restored=!0,this._clampToViewport()):this._state={...this._state,mode:this._config.defaultMode}}catch{this._state={...this._state,mode:this._config.defaultMode}}}_clampToViewport(){const e=window.innerWidth,r=window.innerHeight,{position:n,size:i,mode:s}=this._state;if(s==="maximized")return;const a=Math.min(i.width,e),l=Math.min(i.height,r),c=Math.max(0,Math.min(n.x,e-a)),d=Math.max(0,Math.min(n.y,r-l));this._state={...this._state,position:{x:c,y:d},size:{width:a,height:l}}}_persistState(){try{const{mode:e,position:r,size:n}=this._state,i={mode:e,position:r,size:n};localStorage.setItem(vn.windowState,JSON.stringify(i))}catch{}}_setMode(e){const r=this._state;let n=r.lastState;e==="normal"&&!n?n=this._calculateInitialWindowState():e!=="normal"&&(n={position:{...r.position},size:{...r.size}}),this._state={...r,mode:e,lastState:n},this._persistState(),this.host.requestUpdate()}_calculateInitialWindowState(){const{corner:e,offset:r}=this._config.bubblePosition,{width:n,height:i}=this._config.initialSize,s={width:window.innerWidth,height:window.innerHeight};let a,l;switch(e){case"top-left":a=r.x,l=-r.y;break;case"top-right":a=s.width+r.x-n,l=-r.y;break;case"bottom-left":a=r.x,l=s.height-r.y-i;break;case"bottom-right":a=s.width+r.x-n,l=s.height-r.y-i;break}return{position:{x:a,y:l},size:{width:n,height:i}}}_updateState(e){this._state={...this._state,...e},this._persistState(),this.host.requestUpdate()}applyGeometry(e){const{position:r,size:n,mode:i}=this._state;if(i==="normal")e.style.left=`${r.x}px`,e.style.top=`${r.y}px`,e.style.width=`${n.width}px`,e.style.height=`${n.height}px`,e.style.bottom="",e.style.right="";else if(i==="minimized"){e.style.width="",e.style.height="",e.style.minWidth="",e.style.minHeight="";const s=parseInt(getComputedStyle(e).getPropertyValue("--rtc-bubble-size"))||40,a={width:window.innerWidth,height:window.innerHeight},{corner:l,offset:c}=this._config.bubblePosition;let d,u;switch(l){case"top-left":d=c.x,u=-c.y;break;case"top-right":d=a.width+c.x-s,u=-c.y;break;case"bottom-left":d=c.x,u=a.height-c.y-s;break;case"bottom-right":d=a.width+c.x-s,u=a.height-c.y-s;break}e.style.left=`${d}px`,e.style.top=`${u}px`,e.style.bottom="",e.style.right=""}else e.style.width="",e.style.height="",e.style.left="",e.style.top="",e.style.bottom="",e.style.right=""}}class j3{constructor(e){this._state={...D3},this.host=e,this.host.addController(this),this.actions={login:()=>this._login(),logout:()=>this._logout()},this._loadTokens()}get value(){return{state:this._state,...this.actions}}get state(){return this._state}hostConnected(){this._boundVisibilityHandler=this._onVisibilityChange.bind(this),document.addEventListener("visibilitychange",this._boundVisibilityHandler)}hostDisconnected(){this._boundVisibilityHandler&&(document.removeEventListener("visibilitychange",this._boundVisibilityHandler),this._boundVisibilityHandler=void 0),this._refreshTimer&&(clearTimeout(this._refreshTimer),this._refreshTimer=void 0)}login(){this._login()}logout(){this._logout()}setTokens(e){const r=Date.now()+e.expiresIn*1e3;this._state={isLoggedIn:!0,accessToken:e.accessToken,refreshToken:e.refreshToken,userId:e.userId,expiresAt:r},this._saveTokens({accessToken:e.accessToken,refreshToken:e.refreshToken,userId:e.userId,expiresAt:r}),this._scheduleRefresh(r),this.host.requestUpdate()}getAccessToken(){return this._state.accessToken}_login(){this.host.requestUpdate(),this.host.dispatchEvent(new CustomEvent("rtc-auth-login-requested",{bubbles:!0,composed:!0}))}_logout(){this._state={isLoggedIn:!1},localStorage.removeItem(vn.tokens),this._refreshTimer&&(clearTimeout(this._refreshTimer),this._refreshTimer=void 0),this.host.dispatchEvent(new CustomEvent("rtc-auth-logout",{bubbles:!0,composed:!0})),this.host.requestUpdate()}_loadTokens(){try{const e=localStorage.getItem(vn.tokens);if(!e)return;const r=JSON.parse(e);r.expiresAt<Date.now()?this._executeRefresh(r.refreshToken).then(n=>{n.success?(this._state={isLoggedIn:!0,accessToken:n.accessToken,refreshToken:r.refreshToken,userId:r.userId,expiresAt:n.expiresAt},this._saveTokens({accessToken:n.accessToken,refreshToken:r.refreshToken,userId:r.userId,expiresAt:n.expiresAt}),this._scheduleRefresh(n.expiresAt),this.host.requestUpdate()):localStorage.removeItem(vn.tokens)}):(this._state={isLoggedIn:!0,accessToken:r.accessToken,refreshToken:r.refreshToken,userId:r.userId,expiresAt:r.expiresAt},this._scheduleRefresh(r.expiresAt))}catch{localStorage.removeItem(vn.tokens)}}_saveTokens(e){localStorage.setItem(vn.tokens,JSON.stringify(e))}_scheduleRefresh(e){this._refreshTimer&&clearTimeout(this._refreshTimer);const r=Math.max(0,e-Date.now()-ko.refreshBufferMs);this._refreshTimer=setTimeout(()=>{this.handleTokenExpired()},r)}async _executeRefresh(e){try{const r=await fetch(`${ko.serverUrl}/oauth2/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refresh_token:e})});if(!r.ok)return{success:!1};let n;try{n=await r.json()}catch{return{success:!1}}const i=typeof n.expires_in=="number"?n.expires_in:0,s=typeof n.access_token=="string"?n.access_token:void 0;if(!s||!i)return{success:!1};const a=Date.now()+i*1e3;return{success:!0,accessToken:s,expiresAt:a}}catch(r){return console.error("[AuthController] Token refresh failed:",r),{success:!1}}}async handleTokenExpired(){if(!this._state.refreshToken)return this._logout(),"relogin";if(this._refreshing)return await this._refreshing?"refresh":"relogin";this._refreshing=this._doRefresh();try{return await this._refreshing?"refresh":"relogin"}finally{this._refreshing=void 0}}async _doRefresh(){const e=await this._executeRefresh(this._state.refreshToken);if(!e.success)return this._logout(),this.host.dispatchEvent(new CustomEvent("rtc-auth-refresh-failed",{bubbles:!0,composed:!0})),!1;const r=e.accessToken,n=e.expiresAt;this._state={...this._state,accessToken:r,expiresAt:n};let i={};try{i=JSON.parse(localStorage.getItem(vn.tokens)||"{}")}catch{}return i.accessToken=r,i.expiresAt=n,localStorage.setItem(vn.tokens,JSON.stringify(i)),this._scheduleRefresh(n),this.host.requestUpdate(),!0}_onVisibilityChange(){document.visibilityState==="visible"&&this._state.isLoggedIn&&this._state.expiresAt&&Date.now()>this._state.expiresAt-ko.refreshBufferMs&&this.handleTokenExpired()}}class V3{constructor(e){this._state={...Ux},this.host=e,this.host.addController(this),this.actions={createSession:()=>this._createSession(),switchSession:r=>this._switchSession(r),renameSession:(r,n)=>this._renameSession(r,n),deleteSession:r=>this._deleteSession(r),reset:()=>this._reset(),clearCurrentSession:()=>this._clearCurrentSession(),setCurrentSession:r=>this._setCurrentSession(r),setSessions:r=>this._setSessions(r)}}get value(){return{state:this._state,actions:this.actions}}hostConnected(){}hostDisconnected(){}_createSession(){const e=`session-${crypto.randomUUID()}`,r={clientId:e,title:"New Session",createdAt:Date.now(),updatedAt:Date.now()},n=[...this._state.sessions,r];return this._state={sessions:n,currentSessionId:r.clientId},this.host.requestUpdate(),this.host.dispatchEvent(new CustomEvent("rtc-session-created",{bubbles:!0,composed:!0,detail:{session:r}})),e}_switchSession(e){var r;console.log("[SessionController._switchSession] Switching to session:",e),this._state={...this._state,currentSessionId:e},this.host.requestUpdate(),(r=this.onSessionSwitch)==null||r.call(this),this.host.dispatchEvent(new CustomEvent("rtc-session-switched",{bubbles:!0,composed:!0,detail:{id:e}}))}async _renameSession(e,r){if(this.persistence)try{await this.persistence.updateSessionTitle(e,r)}catch(i){return console.error("[SessionController._renameSession] persistence failed:",i),{ok:!1,error:"重命名失败,请稍后重试"}}const n=this._state.sessions.map(i=>i.clientId===e?{...i,title:r,updatedAt:Date.now()}:i);return this._state={...this._state,sessions:n},this.host.requestUpdate(),this.host.dispatchEvent(new CustomEvent("rtc-session-renamed",{bubbles:!0,composed:!0,detail:{id:e,title:r}})),{ok:!0}}async _deleteSession(e){var i;if(console.log("[SessionController._deleteSession] id:",e,"persistence:",!!this.persistence),this.persistence)try{console.log("[SessionController._deleteSession] calling persistence.deleteSession"),await this.persistence.deleteSession(e),console.log("[SessionController._deleteSession] persistence.deleteSession completed")}catch(s){return console.error("[SessionController._deleteSession] persistence failed:",s),{ok:!1,error:"删除失败,请稍后重试"}}else console.warn("[SessionController._deleteSession] NO persistence layer, doing in-memory only");const r=this._state.sessions.filter(s=>s.clientId!==e),n=this._state.currentSessionId===e?r.length>0?r[r.length-1].clientId:null:this._state.currentSessionId;return this._state={sessions:r,currentSessionId:n},this.host.requestUpdate(),this._state.currentSessionId!==e&&n!==this._state.currentSessionId&&((i=this.onSessionSwitch)==null||i.call(this),this.host.dispatchEvent(new CustomEvent("rtc-session-switched",{bubbles:!0,composed:!0,detail:{id:n}}))),this.host.dispatchEvent(new CustomEvent("rtc-session-deleted",{bubbles:!0,composed:!0,detail:{id:e}})),{ok:!0}}_reset(){this._state={...Ux},this.host.requestUpdate()}_clearCurrentSession(){var e;this._state={...this._state,currentSessionId:null},this.host.requestUpdate(),(e=this.onSessionSwitch)==null||e.call(this)}_setCurrentSession(e){console.log("[SessionController._setCurrentSession] Setting session:",e.clientId,"title:",`"${e.title}"`);const r=this._state.sessions.findIndex(i=>i.clientId===e.clientId);let n;r>=0?n=this._state.sessions.map((i,s)=>s===r?e:i):n=[...this._state.sessions,e],this._state={sessions:n,currentSessionId:e.clientId},this.host.requestUpdate()}_setSessions(e){this._state={...this._state,sessions:e},this.host.requestUpdate()}}class Y3{constructor(e){this._state={messages:[],hasMore:!1,isLoadingMore:!1},this.host=e,this.host.addController(this),this.actions={sendMessage:async r=>{await this._sendMessage(r)},resendMessage:async(r,n)=>{await this._resendMessage(r,n)},forkSession:async r=>{await this._forkSession(r)},appendToLastMessage:r=>this._appendToLastMessage(r),finalizeLastMessage:()=>this._finalizeLastMessage(),clearMessages:()=>this._clearMessages(),loadMore:async()=>{await this.loadMore()}}}set persistence(e){this._persistence=e}set sessionController(e){this._sessionController=e}get value(){return{state:this._state,actions:this.actions,getUserMessageHistory:(e,r)=>this.getUserMessageHistory(e,r)}}hostConnected(){}hostDisconnected(){}addDemoAssistantMessage(e){const r={clientId:`msg-${Date.now()}-assistant`,role:"assistant",content:{type:"text",data:e},timestamp:Date.now(),syncStatus:"synced"};this._state={messages:[...this._state.messages,r],hasMore:this._state.hasMore,isLoadingMore:this._state.isLoadingMore},this.host.requestUpdate()}async reload(e){var r,n;if(this._persistence)if(e){const i=await this._persistence.getMessage(e);if(i){const s=(r=this._sessionController)==null?void 0:r.value.state.currentSessionId;if(i.session_client_id!==s)return;const a=this._localMessageToUI(i),l=this._state.messages.some(d=>d.clientId===e);let c;l?c=this._state.messages.map(d=>d.clientId===e?a:d):c=[...this._state.messages,a].sort((d,u)=>d.timestamp-u.timestamp),this._state={messages:c,hasMore:this._state.hasMore,isLoadingMore:this._state.isLoadingMore},this.host.requestUpdate()}}else{const i=(n=this._sessionController)==null?void 0:n.value.state.currentSessionId;i&&await this._reloadFromDB(i)}}async _sendMessage(e){if(!this._persistence){console.error("[MessageController] persistence not set");return}const r=crypto.randomUUID();let n;if(this._sessionController){const s=this._sessionController.value.state.currentSessionId;console.log("[MessageController._sendMessage] currentSessionId before:",s),n=s??crypto.randomUUID(),console.log("[MessageController._sendMessage] sessionClientId to use:",n,s?"(existing)":"(NEW)")}else n=crypto.randomUUID(),console.log("[MessageController._sendMessage] No sessionController, created new sessionClientId:",n);const i=await this._persistence.sendMessage({content:e,messageClientId:r,sessionClientId:n});if(console.log("[MessageController._sendMessage] persistence.sendMessage returned:"),console.log(" session.client_id:",i.session.client_id),console.log(" message.session_client_id:",i.message.session_client_id),this._sessionController){const s=this._sessionController.value.state.currentSessionId;if(console.log("[MessageController._sendMessage] currentSessionId after persistence:",s,"result.session.client_id:",i.session.client_id),!s||s===i.session.client_id){const a={clientId:i.session.client_id,title:i.session.title||"",createdAt:new Date(i.session.created_at).getTime(),updatedAt:new Date(i.session.updated_at).getTime(),todoList:i.session.todo_list};console.log("[MessageController._sendMessage] setCurrentSession:",a.clientId,"title:",`"${a.title}"`),this._sessionController.actions.setCurrentSession(a),await this._reloadFromDB(i.session.client_id),console.log("[MessageController._sendMessage] _reloadFromDB completed")}}this.host.dispatchEvent(new CustomEvent("rtc-message-sent",{bubbles:!0,composed:!0,detail:{message:i.message}}))}async _resendMessage(e,r){var s;if(!this._persistence){console.error("[MessageController] persistence not set");return}const n=(s=this._sessionController)==null?void 0:s.value.state.currentSessionId;if(!n){console.error("[MessageController] cannot resend: no current session");return}const i=await this._persistence.sendMessage({content:r,messageClientId:e,sessionClientId:n});await this._reloadFromDB(n),this.host.dispatchEvent(new CustomEvent("rtc-message-sent",{bubbles:!0,composed:!0,detail:{message:i.message}}))}async _forkSession(e){if(!this._persistence){console.error("[MessageController] persistence not set");return}const r=await this._persistence.forkSession({oldSessionClientId:e.oldSessionClientId,oldMessageClientId:e.oldMessageClientId,newSessionClientId:e.newSessionClientId,newMessageClientId:e.newMessageClientId,content:e.content,limit:e.limit});if(this._sessionController){const n={clientId:r.session.client_id,title:r.session.title||"",createdAt:new Date(r.session.created_at).getTime(),updatedAt:new Date(r.session.updated_at).getTime(),todoList:r.session.todo_list};this._sessionController.actions.setCurrentSession(n)}await this._reloadFromDB(r.session.client_id),this.host.dispatchEvent(new CustomEvent("rtc-message-sent",{bubbles:!0,composed:!0,detail:{message:r.message}}))}async _reloadFromDB(e){if(!this._persistence)return;const r=50,n=await this._persistence.listMessages(e,void 0,r,"backward"),i=n.map(a=>this._localMessageToUI(a)),s=n.length>=r;this._oldestLoadedOffset=n.length>0?n[0].global_offset:void 0,this._state={messages:i,hasMore:s,isLoadingMore:!1},this.host.requestUpdate()}async loadMore(){var r;if(!this._persistence||!this._state.hasMore||this._state.isLoadingMore)return;const e=(r=this._sessionController)==null?void 0:r.value.state.currentSessionId;if(!(!e||this._oldestLoadedOffset===void 0)){this._state={...this._state,isLoadingMore:!0},this.host.requestUpdate();try{const i=await this._persistence.listMessages(e,this._oldestLoadedOffset,50,"backward"),a=[...i.map(c=>this._localMessageToUI(c)),...this._state.messages],l=i.length>=50;i.length>0&&(this._oldestLoadedOffset=i[0].global_offset),this._state={messages:a,hasMore:l,isLoadingMore:!1},this.host.requestUpdate()}catch(n){console.error("[MessageController] loadMore failed:",n),this._state={...this._state,isLoadingMore:!1},this.host.requestUpdate()}}}async getUserMessageHistory(e,r=200){if(!this._persistence)return[];try{return(await this._persistence.listMessages(e,void 0,r,"backward")).filter(i=>i.role==="user"&&i.content).reverse().map(i=>this._extractTextFromContent(i.content))}catch(n){return console.warn("[MessageController] getUserMessageHistory failed:",n),[]}}_extractTextFromContent(e){var r;if(!e)return"";try{const n=JSON.parse(e);if(n&&typeof n=="object"){if("type"in n){if(n.type==="text"||n.type==="markdown"||n.type==="thinking")return n.data??"";if(n.type==="user_message")return((r=n.data)==null?void 0:r.text)??""}else if("text"in n&&typeof n.text=="string")return n.text}}catch{}return e}_localMessageToUI(e){let r={type:"text",data:""};if(e.content)try{const n=JSON.parse(e.content);n&&typeof n=="object"&&"type"in n?r=n:r={type:"text",data:e.content}}catch{r={type:"text",data:e.content}}return{clientId:e.client_id,role:e.role,content:r,timestamp:new Date(e.created_at).getTime(),streaming:e.streaming_status==="streaming",syncStatus:e.sync_status,parentClientId:e.parent_client_id}}_appendToLastMessage(e){const r=[...this._state.messages];if(r.length===0)return;const n=r[r.length-1],i=typeof n.content.data=="string"?n.content.data+e:JSON.stringify(n.content.data)+e;r[r.length-1]={...n,content:{...n.content,data:i},streaming:!0},this._state={messages:r,hasMore:this._state.hasMore,isLoadingMore:this._state.isLoadingMore},this.host.requestUpdate()}_finalizeLastMessage(){const e=[...this._state.messages];if(e.length===0)return;const r=e[e.length-1];e[e.length-1]={...r,streaming:!1},this._state={messages:e,hasMore:this._state.hasMore,isLoadingMore:this._state.isLoadingMore},this.host.requestUpdate()}_clearMessages(){this._state={messages:[],hasMore:!1,isLoadingMore:!1},this.host.requestUpdate()}}const z3=new Set(["manual","edit","plan","auto","bypass"]);function H3(t){return z3.has(t)}class W3{constructor(e){this._state={...M3},this.host=e,this.host.addController(this),this.actions={setMode:r=>this._setMode(r)},this._restoreMode()}get value(){return{state:this._state,actions:this.actions}}hostConnected(){}hostDisconnected(){}_restoreMode(){try{const e=localStorage.getItem(vn.mode);e&&H3(e)&&(this._state={currentMode:e})}catch{}}_setMode(e){this._state={currentMode:e},this.host.requestUpdate();try{localStorage.setItem(vn.mode,e)}catch{}}}class K3{constructor(e){this._state={...L3},this.host=e,this.host.addController(this),this.actions={approve:r=>this._approve(r),approveAll:r=>this._approveAll(r),deny:r=>this._deny(r)}}get value(){return{state:this._state,actions:this.actions}}hostConnected(){}hostDisconnected(){}addPendingCall(e){this._state={pendingCalls:[...this._state.pendingCalls,e]},this.host.requestUpdate()}_approve(e){const r=this._state.pendingCalls.find(i=>i.id===e),n=this._state.pendingCalls.filter(i=>i.id!==e);this._state={pendingCalls:n},this.host.requestUpdate(),this.host.dispatchEvent(new CustomEvent("rtc-tool-call-approved",{bubbles:!0,composed:!0,detail:{id:e,toolName:r==null?void 0:r.toolName}}))}_approveAll(e){const r=this._state.pendingCalls.filter(n=>n.toolName!==e);this._state={pendingCalls:r},this.host.requestUpdate(),this.host.dispatchEvent(new CustomEvent("rtc-tool-call-approve-all",{bubbles:!0,composed:!0,detail:{toolName:e}}))}_deny(e){const r=this._state.pendingCalls.filter(n=>n.id!==e);this._state={pendingCalls:r},this.host.requestUpdate(),this.host.dispatchEvent(new CustomEvent("rtc-tool-call-denied",{bubbles:!0,composed:!0,detail:{id:e}}))}}var ta=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function dg(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Hp={exports:{}};Hp.exports,function(t,e){(function(r,n){t.exports=n()})(ta,function(){function r(S,v){var P=Object.keys(S);if(Object.getOwnPropertySymbols){var z=Object.getOwnPropertySymbols(S);v&&(z=z.filter(function(se){return Object.getOwnPropertyDescriptor(S,se).enumerable})),P.push.apply(P,z)}return P}function n(S){for(var v=1;v<arguments.length;v++){var P=arguments[v]!=null?arguments[v]:{};v%2?r(Object(P),!0).forEach(function(z){c(S,z,P[z])}):Object.getOwnPropertyDescriptors?Object.defineProperties(S,Object.getOwnPropertyDescriptors(P)):r(Object(P)).forEach(function(z){Object.defineProperty(S,z,Object.getOwnPropertyDescriptor(P,z))})}return S}function i(S){return i=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(v){return typeof v}:function(v){return v&&typeof Symbol=="function"&&v.constructor===Symbol&&v!==Symbol.prototype?"symbol":typeof v},i(S)}function s(S,v){if(!(S instanceof v))throw new TypeError("Cannot call a class as a function")}function a(S,v){for(var P=0;P<v.length;P++){var z=v[P];z.enumerable=z.enumerable||!1,z.configurable=!0,"value"in z&&(z.writable=!0),Object.defineProperty(S,A(z.key),z)}}function l(S,v,P){return v&&a(S.prototype,v),Object.defineProperty(S,"prototype",{writable:!1}),S}function c(S,v,P){return(v=A(v))in S?Object.defineProperty(S,v,{value:P,enumerable:!0,configurable:!0,writable:!0}):S[v]=P,S}function d(S,v){if(typeof v!="function"&&v!==null)throw new TypeError("Super expression must either be null or a function");S.prototype=Object.create(v&&v.prototype,{constructor:{value:S,writable:!0,configurable:!0}}),Object.defineProperty(S,"prototype",{writable:!1}),v&&h(S,v)}function u(S){return u=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(v){return v.__proto__||Object.getPrototypeOf(v)},u(S)}function h(S,v){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(P,z){return P.__proto__=z,P},h(S,v)}function _(S){if(S===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return S}function y(S){var v=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var P,z=u(S);if(v){var se=u(this).constructor;P=Reflect.construct(z,arguments,se)}else P=z.apply(this,arguments);return function(me,Ie){if(Ie&&(typeof Ie=="object"||typeof Ie=="function"))return Ie;if(Ie!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _(me)}(this,P)}}function w(){return w=typeof Reflect<"u"&&Reflect.get?Reflect.get.bind():function(S,v,P){var z=function(me,Ie){for(;!Object.prototype.hasOwnProperty.call(me,Ie)&&(me=u(me))!==null;);return me}(S,v);if(z){var se=Object.getOwnPropertyDescriptor(z,v);return se.get?se.get.call(arguments.length<3?S:P):se.value}},w.apply(this,arguments)}function A(S){var v=function(P,z){if(typeof P!="object"||P===null)return P;var se=P[Symbol.toPrimitive];if(se!==void 0){var me=se.call(P,z);if(typeof me!="object")return me;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(P)}(S,"string");return typeof v=="symbol"?v:v+""}var C=function(S){return!(!S||!S.Window)&&S instanceof S.Window},R=void 0,T=void 0;function O(S){R=S;var v=S.document.createTextNode("");v.ownerDocument!==S.document&&typeof S.wrap=="function"&&S.wrap(v)===v&&(S=S.wrap(S)),T=S}function x(S){return C(S)?S:(S.ownerDocument||S).defaultView||T.window}typeof window<"u"&&window&&O(window);var F=function(S){return!!S&&i(S)==="object"},B=function(S){return typeof S=="function"},N={window:function(S){return S===T||C(S)},docFrag:function(S){return F(S)&&S.nodeType===11},object:F,func:B,number:function(S){return typeof S=="number"},bool:function(S){return typeof S=="boolean"},string:function(S){return typeof S=="string"},element:function(S){if(!S||i(S)!=="object")return!1;var v=x(S)||T;return/object|function/.test(typeof Element>"u"?"undefined":i(Element))?S instanceof Element||S instanceof v.Element:S.nodeType===1&&typeof S.nodeName=="string"},plainObject:function(S){return F(S)&&!!S.constructor&&/function Object\b/.test(S.constructor.toString())},array:function(S){return F(S)&&S.length!==void 0&&B(S.splice)}};function L(S){var v=S.interaction;if(v.prepared.name==="drag"){var P=v.prepared.axis;P==="x"?(v.coords.cur.page.y=v.coords.start.page.y,v.coords.cur.client.y=v.coords.start.client.y,v.coords.velocity.client.y=0,v.coords.velocity.page.y=0):P==="y"&&(v.coords.cur.page.x=v.coords.start.page.x,v.coords.cur.client.x=v.coords.start.client.x,v.coords.velocity.client.x=0,v.coords.velocity.page.x=0)}}function te(S){var v=S.iEvent,P=S.interaction;if(P.prepared.name==="drag"){var z=P.prepared.axis;if(z==="x"||z==="y"){var se=z==="x"?"y":"x";v.page[se]=P.coords.start.page[se],v.client[se]=P.coords.start.client[se],v.delta[se]=0}}}var Z={id:"actions/drag",install:function(S){var v=S.actions,P=S.Interactable,z=S.defaults;P.prototype.draggable=Z.draggable,v.map.drag=Z,v.methodDict.drag="draggable",z.actions.drag=Z.defaults},listeners:{"interactions:before-action-move":L,"interactions:action-resume":L,"interactions:action-move":te,"auto-start:check":function(S){var v=S.interaction,P=S.interactable,z=S.buttons,se=P.options.drag;if(se&&se.enabled&&(!v.pointerIsDown||!/mouse|pointer/.test(v.pointerType)||z&P.options.drag.mouseButtons))return S.action={name:"drag",axis:se.lockAxis==="start"?se.startAxis:se.lockAxis},!1}},draggable:function(S){return N.object(S)?(this.options.drag.enabled=S.enabled!==!1,this.setPerAction("drag",S),this.setOnEvents("drag",S),/^(xy|x|y|start)$/.test(S.lockAxis)&&(this.options.drag.lockAxis=S.lockAxis),/^(xy|x|y)$/.test(S.startAxis)&&(this.options.drag.startAxis=S.startAxis),this):N.bool(S)?(this.options.drag.enabled=S,this):this.options.drag},beforeMove:L,move:te,defaults:{startAxis:"xy",lockAxis:"xy"},getCursor:function(){return"move"},filterEventType:function(S){return S.search("drag")===0}},M=Z,Y={init:function(S){var v=S;Y.document=v.document,Y.DocumentFragment=v.DocumentFragment||fe,Y.SVGElement=v.SVGElement||fe,Y.SVGSVGElement=v.SVGSVGElement||fe,Y.SVGElementInstance=v.SVGElementInstance||fe,Y.Element=v.Element||fe,Y.HTMLElement=v.HTMLElement||Y.Element,Y.Event=v.Event,Y.Touch=v.Touch||fe,Y.PointerEvent=v.PointerEvent||v.MSPointerEvent},document:null,DocumentFragment:null,SVGElement:null,SVGSVGElement:null,SVGElementInstance:null,Element:null,HTMLElement:null,Event:null,Touch:null,PointerEvent:null};function fe(){}var Te=Y,Me={init:function(S){var v=Te.Element,P=S.navigator||{};Me.supportsTouch="ontouchstart"in S||N.func(S.DocumentTouch)&&Te.document instanceof S.DocumentTouch,Me.supportsPointerEvent=P.pointerEnabled!==!1&&!!Te.PointerEvent,Me.isIOS=/iP(hone|od|ad)/.test(P.platform),Me.isIOS7=/iP(hone|od|ad)/.test(P.platform)&&/OS 7[^\d]/.test(P.appVersion),Me.isIe9=/MSIE 9/.test(P.userAgent),Me.isOperaMobile=P.appName==="Opera"&&Me.supportsTouch&&/Presto/.test(P.userAgent),Me.prefixedMatchesSelector="matches"in v.prototype?"matches":"webkitMatchesSelector"in v.prototype?"webkitMatchesSelector":"mozMatchesSelector"in v.prototype?"mozMatchesSelector":"oMatchesSelector"in v.prototype?"oMatchesSelector":"msMatchesSelector",Me.pEventTypes=Me.supportsPointerEvent?Te.PointerEvent===S.MSPointerEvent?{up:"MSPointerUp",down:"MSPointerDown",over:"mouseover",out:"mouseout",move:"MSPointerMove",cancel:"MSPointerCancel"}:{up:"pointerup",down:"pointerdown",over:"pointerover",out:"pointerout",move:"pointermove",cancel:"pointercancel"}:null,Me.wheelEvent=Te.document&&"onmousewheel"in Te.document?"mousewheel":"wheel"},supportsTouch:null,supportsPointerEvent:null,isIOS7:null,isIOS:null,isIe9:null,isOperaMobile:null,prefixedMatchesSelector:null,pEventTypes:null,wheelEvent:null},ve=Me;function pe(S,v){if(S.contains)return S.contains(v);for(;v;){if(v===S)return!0;v=v.parentNode}return!1}function he(S,v){for(;N.element(S);){if(ne(S,v))return S;S=K(S)}return null}function K(S){var v=S.parentNode;if(N.docFrag(v)){for(;(v=v.host)&&N.docFrag(v););return v}return v}function ne(S,v){return T!==R&&(v=v.replace(/\/deep\//g," ")),S[ve.prefixedMatchesSelector](v)}var xe=function(S){return S.parentNode||S.host};function ge(S,v){for(var P,z=[],se=S;(P=xe(se))&&se!==v&&P!==se.ownerDocument;)z.unshift(se),se=P;return z}function X(S,v,P){for(;N.element(S);){if(ne(S,v))return!0;if((S=K(S))===P)return ne(S,v)}return!1}function $(S){return S.correspondingUseElement||S}function re(S){var v=S instanceof Te.SVGElement?S.getBoundingClientRect():S.getClientRects()[0];return v&&{left:v.left,right:v.right,top:v.top,bottom:v.bottom,width:v.width||v.right-v.left,height:v.height||v.bottom-v.top}}function we(S){var v,P=re(S);if(!ve.isIOS7&&P){var z={x:(v=(v=x(S))||T).scrollX||v.document.documentElement.scrollLeft,y:v.scrollY||v.document.documentElement.scrollTop};P.left+=z.x,P.right+=z.x,P.top+=z.y,P.bottom+=z.y}return P}function qe(S){for(var v=[];S;)v.push(S),S=K(S);return v}function Pe(S){return!!N.string(S)&&(Te.document.querySelector(S),!0)}function De(S,v){for(var P in v)S[P]=v[P];return S}function Ze(S,v,P){return S==="parent"?K(P):S==="self"?v.getRect(P):he(P,S)}function it(S,v,P,z){var se=S;return N.string(se)?se=Ze(se,v,P):N.func(se)&&(se=se.apply(void 0,z)),N.element(se)&&(se=we(se)),se}function ft(S){return S&&{x:"x"in S?S.x:S.left,y:"y"in S?S.y:S.top}}function wt(S){return!S||"x"in S&&"y"in S||((S=De({},S)).x=S.left||0,S.y=S.top||0,S.width=S.width||(S.right||0)-S.x,S.height=S.height||(S.bottom||0)-S.y),S}function ht(S,v,P){S.left&&(v.left+=P.x),S.right&&(v.right+=P.x),S.top&&(v.top+=P.y),S.bottom&&(v.bottom+=P.y),v.width=v.right-v.left,v.height=v.bottom-v.top}function Pt(S,v,P){var z=P&&S.options[P];return ft(it(z&&z.origin||S.options.origin,S,v,[S&&v]))||{x:0,y:0}}function Je(S,v){var P=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(We){return!0},z=arguments.length>3?arguments[3]:void 0;if(z=z||{},N.string(S)&&S.search(" ")!==-1&&(S=Ke(S)),N.array(S))return S.forEach(function(We){return Je(We,v,P,z)}),z;if(N.object(S)&&(v=S,S=""),N.func(v)&&P(S))z[S]=z[S]||[],z[S].push(v);else if(N.array(v))for(var se=0,me=v;se<me.length;se++){var Ie=me[se];Je(S,Ie,P,z)}else if(N.object(v))for(var Be in v)Je(Ke(Be).map(function(We){return"".concat(S).concat(We)}),v[Be],P,z);return z}function Ke(S){return S.trim().split(/ +/)}var Ye=function(S,v){return Math.sqrt(S*S+v*v)},rt=["webkit","moz"];function Dt(S,v){S.__set||(S.__set={});var P=function(se){if(rt.some(function(me){return se.indexOf(me)===0}))return 1;typeof S[se]!="function"&&se!=="__set"&&Object.defineProperty(S,se,{get:function(){return se in S.__set?S.__set[se]:S.__set[se]=v[se]},set:function(me){S.__set[se]=me},configurable:!0})};for(var z in v)P(z);return S}function Ct(S,v){S.page=S.page||{},S.page.x=v.page.x,S.page.y=v.page.y,S.client=S.client||{},S.client.x=v.client.x,S.client.y=v.client.y,S.timeStamp=v.timeStamp}function Ue(S){S.page.x=0,S.page.y=0,S.client.x=0,S.client.y=0}function ke(S){return S instanceof Te.Event||S instanceof Te.Touch}function _e(S,v,P){return S=S||"page",(P=P||{}).x=v[S+"X"],P.y=v[S+"Y"],P}function ce(S,v){return v=v||{x:0,y:0},ve.isOperaMobile&&ke(S)?(_e("screen",S,v),v.x+=window.scrollX,v.y+=window.scrollY):_e("page",S,v),v}function le(S){return N.number(S.pointerId)?S.pointerId:S.identifier}function H(S,v,P){var z=v.length>1?$e(v):v[0];ce(z,S.page),function(se,me){me=me||{},ve.isOperaMobile&&ke(se)?_e("screen",se,me):_e("client",se,me)}(z,S.client),S.timeStamp=P}function be(S){var v=[];return N.array(S)?(v[0]=S[0],v[1]=S[1]):S.type==="touchend"?S.touches.length===1?(v[0]=S.touches[0],v[1]=S.changedTouches[0]):S.touches.length===0&&(v[0]=S.changedTouches[0],v[1]=S.changedTouches[1]):(v[0]=S.touches[0],v[1]=S.touches[1]),v}function $e(S){for(var v={pageX:0,pageY:0,clientX:0,clientY:0,screenX:0,screenY:0},P=0;P<S.length;P++){var z=S[P];for(var se in v)v[se]+=z[se]}for(var me in v)v[me]/=S.length;return v}function Q(S){if(!S.length)return null;var v=be(S),P=Math.min(v[0].pageX,v[1].pageX),z=Math.min(v[0].pageY,v[1].pageY),se=Math.max(v[0].pageX,v[1].pageX),me=Math.max(v[0].pageY,v[1].pageY);return{x:P,y:z,left:P,top:z,right:se,bottom:me,width:se-P,height:me-z}}function k(S,v){var P=v+"X",z=v+"Y",se=be(S),me=se[0][P]-se[1][P],Ie=se[0][z]-se[1][z];return Ye(me,Ie)}function q(S,v){var P=v+"X",z=v+"Y",se=be(S),me=se[1][P]-se[0][P],Ie=se[1][z]-se[0][z];return 180*Math.atan2(Ie,me)/Math.PI}function Ne(S){return N.string(S.pointerType)?S.pointerType:N.number(S.pointerType)?[void 0,void 0,"touch","pen","mouse"][S.pointerType]:/touch/.test(S.type||"")||S instanceof Te.Touch?"touch":"mouse"}function nt(S){var v=N.func(S.composedPath)?S.composedPath():S.path;return[$(v?v[0]:S.target),$(S.currentTarget)]}var Xe=function(){function S(v){s(this,S),this.immediatePropagationStopped=!1,this.propagationStopped=!1,this._interaction=v}return l(S,[{key:"preventDefault",value:function(){}},{key:"stopPropagation",value:function(){this.propagationStopped=!0}},{key:"stopImmediatePropagation",value:function(){this.immediatePropagationStopped=this.propagationStopped=!0}}]),S}();Object.defineProperty(Xe.prototype,"interaction",{get:function(){return this._interaction._proxy},set:function(){}});var pt=function(S,v){for(var P=0;P<v.length;P++){var z=v[P];S.push(z)}return S},oe=function(S){return pt([],S)},Se=function(S,v){for(var P=0;P<S.length;P++)if(v(S[P],P,S))return P;return-1},ee=function(S,v){return S[Se(S,v)]},Ce=function(S){d(P,S);var v=y(P);function P(z,se,me){var Ie;s(this,P),(Ie=v.call(this,se._interaction)).dropzone=void 0,Ie.dragEvent=void 0,Ie.relatedTarget=void 0,Ie.draggable=void 0,Ie.propagationStopped=!1,Ie.immediatePropagationStopped=!1;var Be=me==="dragleave"?z.prev:z.cur,We=Be.element,ut=Be.dropzone;return Ie.type=me,Ie.target=We,Ie.currentTarget=We,Ie.dropzone=ut,Ie.dragEvent=se,Ie.relatedTarget=se.target,Ie.draggable=se.interactable,Ie.timeStamp=se.timeStamp,Ie}return l(P,[{key:"reject",value:function(){var z=this,se=this._interaction.dropState;if(this.type==="dropactivate"||this.dropzone&&se.cur.dropzone===this.dropzone&&se.cur.element===this.target)if(se.prev.dropzone=this.dropzone,se.prev.element=this.target,se.rejected=!0,se.events.enter=null,this.stopImmediatePropagation(),this.type==="dropactivate"){var me=se.activeDrops,Ie=Se(me,function(We){var ut=We.dropzone,tt=We.element;return ut===z.dropzone&&tt===z.target});se.activeDrops.splice(Ie,1);var Be=new P(se,this.dragEvent,"dropdeactivate");Be.dropzone=this.dropzone,Be.target=this.target,this.dropzone.fire(Be)}else this.dropzone.fire(new P(se,this.dragEvent,"dragleave"))}},{key:"preventDefault",value:function(){}},{key:"stopPropagation",value:function(){this.propagationStopped=!0}},{key:"stopImmediatePropagation",value:function(){this.immediatePropagationStopped=this.propagationStopped=!0}}]),P}(Xe);function dt(S,v){for(var P=0,z=S.slice();P<z.length;P++){var se=z[P],me=se.dropzone,Ie=se.element;v.dropzone=me,v.target=Ie,me.fire(v),v.propagationStopped=v.immediatePropagationStopped=!1}}function Re(S,v){for(var P=function(me,Ie){for(var Be=[],We=0,ut=me.interactables.list;We<ut.length;We++){var tt=ut[We];if(tt.options.drop.enabled){var b=tt.options.drop.accept;if(!(N.element(b)&&b!==Ie||N.string(b)&&!ne(Ie,b)||N.func(b)&&!b({dropzone:tt,draggableElement:Ie})))for(var I=0,U=tt.getAllElements();I<U.length;I++){var j=U[I];j!==Ie&&Be.push({dropzone:tt,element:j,rect:tt.getRect(j)})}}}return Be}(S,v),z=0;z<P.length;z++){var se=P[z];se.rect=se.dropzone.getRect(se.element)}return P}function Tt(S,v,P){for(var z=S.dropState,se=S.interactable,me=S.element,Ie=[],Be=0,We=z.activeDrops;Be<We.length;Be++){var ut=We[Be],tt=ut.dropzone,b=ut.element,I=ut.rect,U=tt.dropCheck(v,P,se,me,b,I);Ie.push(U?b:null)}var j=function(ie){for(var ye,Oe,Le,at=[],gt=0;gt<ie.length;gt++){var lt=ie[gt],ot=ie[ye];if(lt&>!==ye)if(ot){var mt=xe(lt),_t=xe(ot);if(mt!==lt.ownerDocument)if(_t!==lt.ownerDocument)if(mt!==_t){at=at.length?at:ge(ot);var yt=void 0;if(ot instanceof Te.HTMLElement&< instanceof Te.SVGElement&&!(lt instanceof Te.SVGSVGElement)){if(lt===_t)continue;yt=lt.ownerSVGElement}else yt=lt;for(var bt=ge(yt,ot.ownerDocument),vt=0;bt[vt]&&bt[vt]===at[vt];)vt++;var Nt=[bt[vt-1],bt[vt],at[vt]];if(Nt[0])for(var Ot=Nt[0].lastChild;Ot;){if(Ot===Nt[1]){ye=gt,at=bt;break}if(Ot===Nt[2])break;Ot=Ot.previousSibling}}else Le=ot,(parseInt(x(Oe=lt).getComputedStyle(Oe).zIndex,10)||0)>=(parseInt(x(Le).getComputedStyle(Le).zIndex,10)||0)&&(ye=gt);else ye=gt}else ye=gt}return ye}(Ie);return z.activeDrops[j]||null}function Mt(S,v,P){var z=S.dropState,se={enter:null,leave:null,activate:null,deactivate:null,move:null,drop:null};return P.type==="dragstart"&&(se.activate=new Ce(z,P,"dropactivate"),se.activate.target=null,se.activate.dropzone=null),P.type==="dragend"&&(se.deactivate=new Ce(z,P,"dropdeactivate"),se.deactivate.target=null,se.deactivate.dropzone=null),z.rejected||(z.cur.element!==z.prev.element&&(z.prev.dropzone&&(se.leave=new Ce(z,P,"dragleave"),P.dragLeave=se.leave.target=z.prev.element,P.prevDropzone=se.leave.dropzone=z.prev.dropzone),z.cur.dropzone&&(se.enter=new Ce(z,P,"dragenter"),P.dragEnter=z.cur.element,P.dropzone=z.cur.dropzone)),P.type==="dragend"&&z.cur.dropzone&&(se.drop=new Ce(z,P,"drop"),P.dropzone=z.cur.dropzone,P.relatedTarget=z.cur.element),P.type==="dragmove"&&z.cur.dropzone&&(se.move=new Ce(z,P,"dropmove"),P.dropzone=z.cur.dropzone)),se}function Lt(S,v){var P=S.dropState,z=P.activeDrops,se=P.cur,me=P.prev;v.leave&&me.dropzone.fire(v.leave),v.enter&&se.dropzone.fire(v.enter),v.move&&se.dropzone.fire(v.move),v.drop&&se.dropzone.fire(v.drop),v.deactivate&&dt(z,v.deactivate),P.prev.dropzone=se.dropzone,P.prev.element=se.element}function tr(S,v){var P=S.interaction,z=S.iEvent,se=S.event;if(z.type==="dragmove"||z.type==="dragend"){var me=P.dropState;v.dynamicDrop&&(me.activeDrops=Re(v,P.element));var Ie=z,Be=Tt(P,Ie,se);me.rejected=me.rejected&&!!Be&&Be.dropzone===me.cur.dropzone&&Be.element===me.cur.element,me.cur.dropzone=Be&&Be.dropzone,me.cur.element=Be&&Be.element,me.events=Mt(P,0,Ie)}}var pr={id:"actions/drop",install:function(S){var v=S.actions,P=S.interactStatic,z=S.Interactable,se=S.defaults;S.usePlugin(M),z.prototype.dropzone=function(me){return function(Ie,Be){if(N.object(Be)){if(Ie.options.drop.enabled=Be.enabled!==!1,Be.listeners){var We=Je(Be.listeners),ut=Object.keys(We).reduce(function(b,I){return b[/^(enter|leave)/.test(I)?"drag".concat(I):/^(activate|deactivate|move)/.test(I)?"drop".concat(I):I]=We[I],b},{}),tt=Ie.options.drop.listeners;tt&&Ie.off(tt),Ie.on(ut),Ie.options.drop.listeners=ut}return N.func(Be.ondrop)&&Ie.on("drop",Be.ondrop),N.func(Be.ondropactivate)&&Ie.on("dropactivate",Be.ondropactivate),N.func(Be.ondropdeactivate)&&Ie.on("dropdeactivate",Be.ondropdeactivate),N.func(Be.ondragenter)&&Ie.on("dragenter",Be.ondragenter),N.func(Be.ondragleave)&&Ie.on("dragleave",Be.ondragleave),N.func(Be.ondropmove)&&Ie.on("dropmove",Be.ondropmove),/^(pointer|center)$/.test(Be.overlap)?Ie.options.drop.overlap=Be.overlap:N.number(Be.overlap)&&(Ie.options.drop.overlap=Math.max(Math.min(1,Be.overlap),0)),"accept"in Be&&(Ie.options.drop.accept=Be.accept),"checker"in Be&&(Ie.options.drop.checker=Be.checker),Ie}return N.bool(Be)?(Ie.options.drop.enabled=Be,Ie):Ie.options.drop}(this,me)},z.prototype.dropCheck=function(me,Ie,Be,We,ut,tt){return function(b,I,U,j,ie,ye,Oe){var Le=!1;if(!(Oe=Oe||b.getRect(ye)))return!!b.options.drop.checker&&b.options.drop.checker(I,U,Le,b,ye,j,ie);var at=b.options.drop.overlap;if(at==="pointer"){var gt=Pt(j,ie,"drag"),lt=ce(I);lt.x+=gt.x,lt.y+=gt.y;var ot=lt.x>Oe.left&<.x<Oe.right,mt=lt.y>Oe.top&<.y<Oe.bottom;Le=ot&&mt}var _t=j.getRect(ie);if(_t&&at==="center"){var yt=_t.left+_t.width/2,bt=_t.top+_t.height/2;Le=yt>=Oe.left&&yt<=Oe.right&&bt>=Oe.top&&bt<=Oe.bottom}return _t&&N.number(at)&&(Le=Math.max(0,Math.min(Oe.right,_t.right)-Math.max(Oe.left,_t.left))*Math.max(0,Math.min(Oe.bottom,_t.bottom)-Math.max(Oe.top,_t.top))/(_t.width*_t.height)>=at),b.options.drop.checker&&(Le=b.options.drop.checker(I,U,Le,b,ye,j,ie)),Le}(this,me,Ie,Be,We,ut,tt)},P.dynamicDrop=function(me){return N.bool(me)?(S.dynamicDrop=me,P):S.dynamicDrop},De(v.phaselessTypes,{dragenter:!0,dragleave:!0,dropactivate:!0,dropdeactivate:!0,dropmove:!0,drop:!0}),v.methodDict.drop="dropzone",S.dynamicDrop=!1,se.actions.drop=pr.defaults},listeners:{"interactions:before-action-start":function(S){var v=S.interaction;v.prepared.name==="drag"&&(v.dropState={cur:{dropzone:null,element:null},prev:{dropzone:null,element:null},rejected:null,events:null,activeDrops:[]})},"interactions:after-action-start":function(S,v){var P=S.interaction,z=(S.event,S.iEvent);if(P.prepared.name==="drag"){var se=P.dropState;se.activeDrops=[],se.events={},se.activeDrops=Re(v,P.element),se.events=Mt(P,0,z),se.events.activate&&(dt(se.activeDrops,se.events.activate),v.fire("actions/drop:start",{interaction:P,dragEvent:z}))}},"interactions:action-move":tr,"interactions:after-action-move":function(S,v){var P=S.interaction,z=S.iEvent;if(P.prepared.name==="drag"){var se=P.dropState;Lt(P,se.events),v.fire("actions/drop:move",{interaction:P,dragEvent:z}),se.events={}}},"interactions:action-end":function(S,v){if(S.interaction.prepared.name==="drag"){var P=S.interaction,z=S.iEvent;tr(S,v),Lt(P,P.dropState.events),v.fire("actions/drop:end",{interaction:P,dragEvent:z})}},"interactions:stop":function(S){var v=S.interaction;if(v.prepared.name==="drag"){var P=v.dropState;P&&(P.activeDrops=null,P.events=null,P.cur.dropzone=null,P.cur.element=null,P.prev.dropzone=null,P.prev.element=null,P.rejected=!1)}}},getActiveDrops:Re,getDrop:Tt,getDropEvents:Mt,fireDropEvents:Lt,filterEventType:function(S){return S.search("drag")===0||S.search("drop")===0},defaults:{enabled:!1,accept:null,overlap:"pointer"}},_r=pr;function Sr(S){var v=S.interaction,P=S.iEvent,z=S.phase;if(v.prepared.name==="gesture"){var se=v.pointers.map(function(ut){return ut.pointer}),me=z==="start",Ie=z==="end",Be=v.interactable.options.deltaSource;if(P.touches=[se[0],se[1]],me)P.distance=k(se,Be),P.box=Q(se),P.scale=1,P.ds=0,P.angle=q(se,Be),P.da=0,v.gesture.startDistance=P.distance,v.gesture.startAngle=P.angle;else if(Ie||v.pointers.length<2){var We=v.prevEvent;P.distance=We.distance,P.box=We.box,P.scale=We.scale,P.ds=0,P.angle=We.angle,P.da=0}else P.distance=k(se,Be),P.box=Q(se),P.scale=P.distance/v.gesture.startDistance,P.angle=q(se,Be),P.ds=P.scale-v.gesture.scale,P.da=P.angle-v.gesture.angle;v.gesture.distance=P.distance,v.gesture.angle=P.angle,N.number(P.scale)&&P.scale!==1/0&&!isNaN(P.scale)&&(v.gesture.scale=P.scale)}}var Ir={id:"actions/gesture",before:["actions/drag","actions/resize"],install:function(S){var v=S.actions,P=S.Interactable,z=S.defaults;P.prototype.gesturable=function(se){return N.object(se)?(this.options.gesture.enabled=se.enabled!==!1,this.setPerAction("gesture",se),this.setOnEvents("gesture",se),this):N.bool(se)?(this.options.gesture.enabled=se,this):this.options.gesture},v.map.gesture=Ir,v.methodDict.gesture="gesturable",z.actions.gesture=Ir.defaults},listeners:{"interactions:action-start":Sr,"interactions:action-move":Sr,"interactions:action-end":Sr,"interactions:new":function(S){S.interaction.gesture={angle:0,distance:0,scale:1,startAngle:0,startDistance:0}},"auto-start:check":function(S){if(!(S.interaction.pointers.length<2)){var v=S.interactable.options.gesture;if(v&&v.enabled)return S.action={name:"gesture"},!1}}},defaults:{},getCursor:function(){return""},filterEventType:function(S){return S.search("gesture")===0}},cn=Ir;function Tr(S,v,P,z,se,me,Ie){if(!v)return!1;if(v===!0){var Be=N.number(me.width)?me.width:me.right-me.left,We=N.number(me.height)?me.height:me.bottom-me.top;if(Ie=Math.min(Ie,Math.abs((S==="left"||S==="right"?Be:We)/2)),Be<0&&(S==="left"?S="right":S==="right"&&(S="left")),We<0&&(S==="top"?S="bottom":S==="bottom"&&(S="top")),S==="left"){var ut=Be>=0?me.left:me.right;return P.x<ut+Ie}if(S==="top"){var tt=We>=0?me.top:me.bottom;return P.y<tt+Ie}if(S==="right")return P.x>(Be>=0?me.right:me.left)-Ie;if(S==="bottom")return P.y>(We>=0?me.bottom:me.top)-Ie}return!!N.element(z)&&(N.element(v)?v===z:X(z,v,se))}function Pr(S){var v=S.iEvent,P=S.interaction;if(P.prepared.name==="resize"&&P.resizeAxes){var z=v;P.interactable.options.resize.square?(P.resizeAxes==="y"?z.delta.x=z.delta.y:z.delta.y=z.delta.x,z.axes="xy"):(z.axes=P.resizeAxes,P.resizeAxes==="x"?z.delta.y=0:P.resizeAxes==="y"&&(z.delta.x=0))}}var xn,On,Yr={id:"actions/resize",before:["actions/drag"],install:function(S){var v=S.actions,P=S.browser,z=S.Interactable,se=S.defaults;Yr.cursors=function(me){return me.isIe9?{x:"e-resize",y:"s-resize",xy:"se-resize",top:"n-resize",left:"w-resize",bottom:"s-resize",right:"e-resize",topleft:"se-resize",bottomright:"se-resize",topright:"ne-resize",bottomleft:"ne-resize"}:{x:"ew-resize",y:"ns-resize",xy:"nwse-resize",top:"ns-resize",left:"ew-resize",bottom:"ns-resize",right:"ew-resize",topleft:"nwse-resize",bottomright:"nwse-resize",topright:"nesw-resize",bottomleft:"nesw-resize"}}(P),Yr.defaultMargin=P.supportsTouch||P.supportsPointerEvent?20:10,z.prototype.resizable=function(me){return function(Ie,Be,We){return N.object(Be)?(Ie.options.resize.enabled=Be.enabled!==!1,Ie.setPerAction("resize",Be),Ie.setOnEvents("resize",Be),N.string(Be.axis)&&/^x$|^y$|^xy$/.test(Be.axis)?Ie.options.resize.axis=Be.axis:Be.axis===null&&(Ie.options.resize.axis=We.defaults.actions.resize.axis),N.bool(Be.preserveAspectRatio)?Ie.options.resize.preserveAspectRatio=Be.preserveAspectRatio:N.bool(Be.square)&&(Ie.options.resize.square=Be.square),Ie):N.bool(Be)?(Ie.options.resize.enabled=Be,Ie):Ie.options.resize}(this,me,S)},v.map.resize=Yr,v.methodDict.resize="resizable",se.actions.resize=Yr.defaults},listeners:{"interactions:new":function(S){S.interaction.resizeAxes="xy"},"interactions:action-start":function(S){(function(v){var P=v.iEvent,z=v.interaction;if(z.prepared.name==="resize"&&z.prepared.edges){var se=P,me=z.rect;z._rects={start:De({},me),corrected:De({},me),previous:De({},me),delta:{left:0,right:0,width:0,top:0,bottom:0,height:0}},se.edges=z.prepared.edges,se.rect=z._rects.corrected,se.deltaRect=z._rects.delta}})(S),Pr(S)},"interactions:action-move":function(S){(function(v){var P=v.iEvent,z=v.interaction;if(z.prepared.name==="resize"&&z.prepared.edges){var se=P,me=z.interactable.options.resize.invert,Ie=me==="reposition"||me==="negate",Be=z.rect,We=z._rects,ut=We.start,tt=We.corrected,b=We.delta,I=We.previous;if(De(I,tt),Ie){if(De(tt,Be),me==="reposition"){if(tt.top>tt.bottom){var U=tt.top;tt.top=tt.bottom,tt.bottom=U}if(tt.left>tt.right){var j=tt.left;tt.left=tt.right,tt.right=j}}}else tt.top=Math.min(Be.top,ut.bottom),tt.bottom=Math.max(Be.bottom,ut.top),tt.left=Math.min(Be.left,ut.right),tt.right=Math.max(Be.right,ut.left);for(var ie in tt.width=tt.right-tt.left,tt.height=tt.bottom-tt.top,tt)b[ie]=tt[ie]-I[ie];se.edges=z.prepared.edges,se.rect=tt,se.deltaRect=b}})(S),Pr(S)},"interactions:action-end":function(S){var v=S.iEvent,P=S.interaction;if(P.prepared.name==="resize"&&P.prepared.edges){var z=v;z.edges=P.prepared.edges,z.rect=P._rects.corrected,z.deltaRect=P._rects.delta}},"auto-start:check":function(S){var v=S.interaction,P=S.interactable,z=S.element,se=S.rect,me=S.buttons;if(se){var Ie=De({},v.coords.cur.page),Be=P.options.resize;if(Be&&Be.enabled&&(!v.pointerIsDown||!/mouse|pointer/.test(v.pointerType)||me&Be.mouseButtons)){if(N.object(Be.edges)){var We={left:!1,right:!1,top:!1,bottom:!1};for(var ut in We)We[ut]=Tr(ut,Be.edges[ut],Ie,v._latestPointer.eventTarget,z,se,Be.margin||Yr.defaultMargin);We.left=We.left&&!We.right,We.top=We.top&&!We.bottom,(We.left||We.right||We.top||We.bottom)&&(S.action={name:"resize",edges:We})}else{var tt=Be.axis!=="y"&&Ie.x>se.right-Yr.defaultMargin,b=Be.axis!=="x"&&Ie.y>se.bottom-Yr.defaultMargin;(tt||b)&&(S.action={name:"resize",axes:(tt?"x":"")+(b?"y":"")})}return!S.action&&void 0}}}},defaults:{square:!1,preserveAspectRatio:!1,axis:"xy",margin:NaN,edges:null,invert:"none"},cursors:null,getCursor:function(S){var v=S.edges,P=S.axis,z=S.name,se=Yr.cursors,me=null;if(P)me=se[z+P];else if(v){for(var Ie="",Be=0,We=["top","bottom","left","right"];Be<We.length;Be++){var ut=We[Be];v[ut]&&(Ie+=ut)}me=se[Ie]}return me},filterEventType:function(S){return S.search("resize")===0},defaultMargin:null},rr=Yr,Si={id:"actions",install:function(S){S.usePlugin(cn),S.usePlugin(rr),S.usePlugin(M),S.usePlugin(_r)}},Bn=0,un={request:function(S){return xn(S)},cancel:function(S){return On(S)},init:function(S){if(xn=S.requestAnimationFrame,On=S.cancelAnimationFrame,!xn)for(var v=["ms","moz","webkit","o"],P=0;P<v.length;P++){var z=v[P];xn=S["".concat(z,"RequestAnimationFrame")],On=S["".concat(z,"CancelAnimationFrame")]||S["".concat(z,"CancelRequestAnimationFrame")]}xn=xn&&xn.bind(S),On=On&&On.bind(S),xn||(xn=function(se){var me=Date.now(),Ie=Math.max(0,16-(me-Bn)),Be=S.setTimeout(function(){se(me+Ie)},Ie);return Bn=me+Ie,Be},On=function(se){return clearTimeout(se)})}},cr={defaults:{enabled:!1,margin:60,container:null,speed:300},now:Date.now,interaction:null,i:0,x:0,y:0,isScrolling:!1,prevTime:0,margin:0,speed:0,start:function(S){cr.isScrolling=!0,un.cancel(cr.i),S.autoScroll=cr,cr.interaction=S,cr.prevTime=cr.now(),cr.i=un.request(cr.scroll)},stop:function(){cr.isScrolling=!1,cr.interaction&&(cr.interaction.autoScroll=null),un.cancel(cr.i)},scroll:function(){var S=cr.interaction,v=S.interactable,P=S.element,z=S.prepared.name,se=v.options[z].autoScroll,me=kn(se.container,v,P),Ie=cr.now(),Be=(Ie-cr.prevTime)/1e3,We=se.speed*Be;if(We>=1){var ut={x:cr.x*We,y:cr.y*We};if(ut.x||ut.y){var tt=zr(me);N.window(me)?me.scrollBy(ut.x,ut.y):me&&(me.scrollLeft+=ut.x,me.scrollTop+=ut.y);var b=zr(me),I={x:b.x-tt.x,y:b.y-tt.y};(I.x||I.y)&&v.fire({type:"autoscroll",target:P,interactable:v,delta:I,interaction:S,container:me})}cr.prevTime=Ie}cr.isScrolling&&(un.cancel(cr.i),cr.i=un.request(cr.scroll))},check:function(S,v){var P;return(P=S.options[v].autoScroll)==null?void 0:P.enabled},onInteractionMove:function(S){var v=S.interaction,P=S.pointer;if(v.interacting()&&cr.check(v.interactable,v.prepared.name))if(v.simulation)cr.x=cr.y=0;else{var z,se,me,Ie,Be=v.interactable,We=v.element,ut=v.prepared.name,tt=Be.options[ut].autoScroll,b=kn(tt.container,Be,We);if(N.window(b))Ie=P.clientX<cr.margin,z=P.clientY<cr.margin,se=P.clientX>b.innerWidth-cr.margin,me=P.clientY>b.innerHeight-cr.margin;else{var I=re(b);Ie=P.clientX<I.left+cr.margin,z=P.clientY<I.top+cr.margin,se=P.clientX>I.right-cr.margin,me=P.clientY>I.bottom-cr.margin}cr.x=se?1:Ie?-1:0,cr.y=me?1:z?-1:0,cr.isScrolling||(cr.margin=tt.margin,cr.speed=tt.speed,cr.start(v))}}};function kn(S,v,P){return(N.string(S)?Ze(S,v,P):S)||x(P)}function zr(S){return N.window(S)&&(S=window.document.body),{x:S.scrollLeft,y:S.scrollTop}}var An={id:"auto-scroll",install:function(S){var v=S.defaults,P=S.actions;S.autoScroll=cr,cr.now=function(){return S.now()},P.phaselessTypes.autoscroll=!0,v.perAction.autoScroll=cr.defaults},listeners:{"interactions:new":function(S){S.interaction.autoScroll=null},"interactions:destroy":function(S){S.interaction.autoScroll=null,cr.stop(),cr.interaction&&(cr.interaction=null)},"interactions:stop":cr.stop,"interactions:action-move":function(S){return cr.onInteractionMove(S)}}},Ni=An;function gn(S,v){var P=!1;return function(){return P||(T.console.warn(v),P=!0),S.apply(this,arguments)}}function qn(S,v){return S.name=v.name,S.axis=v.axis,S.edges=v.edges,S}function Ri(S){return N.bool(S)?(this.options.styleCursor=S,this):S===null?(delete this.options.styleCursor,this):this.options.styleCursor}function tn(S){return N.func(S)?(this.options.actionChecker=S,this):S===null?(delete this.options.actionChecker,this):this.options.actionChecker}var Jn={id:"auto-start/interactableMethods",install:function(S){var v=S.Interactable;v.prototype.getAction=function(P,z,se,me){var Ie=function(Be,We,ut,tt,b){var I=Be.getRect(tt),U=We.buttons||{0:1,1:4,3:8,4:16}[We.button],j={action:null,interactable:Be,interaction:ut,element:tt,rect:I,buttons:U};return b.fire("auto-start:check",j),j.action}(this,z,se,me,S);return this.options.actionChecker?this.options.actionChecker(P,z,Ie,this,me,se):Ie},v.prototype.ignoreFrom=gn(function(P){return this._backCompatOption("ignoreFrom",P)},"Interactable.ignoreFrom() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue})."),v.prototype.allowFrom=gn(function(P){return this._backCompatOption("allowFrom",P)},"Interactable.allowFrom() has been deprecated. Use Interactble.draggable({allowFrom: newValue})."),v.prototype.actionChecker=tn,v.prototype.styleCursor=Ri}};function Wn(S,v,P,z,se){return v.testIgnoreAllow(v.options[S.name],P,z)&&v.options[S.name].enabled&&fi(v,P,S,se)?S:null}function si(S,v,P,z,se,me,Ie){for(var Be=0,We=z.length;Be<We;Be++){var ut=z[Be],tt=se[Be],b=ut.getAction(v,P,S,tt);if(b){var I=Wn(b,ut,tt,me,Ie);if(I)return{action:I,interactable:ut,element:tt}}}return{action:null,interactable:null,element:null}}function Fn(S,v,P,z,se){var me=[],Ie=[],Be=z;function We(tt){me.push(tt),Ie.push(Be)}for(;N.element(Be);){me=[],Ie=[],se.interactables.forEachMatch(Be,We);var ut=si(S,v,P,me,Ie,z,se);if(ut.action&&!ut.interactable.options[ut.action.name].manualStart)return ut;Be=K(Be)}return{action:null,interactable:null,element:null}}function Cn(S,v,P){var z=v.action,se=v.interactable,me=v.element;z=z||{name:null},S.interactable=se,S.element=me,qn(S.prepared,z),S.rect=se&&z.name?se.getRect(me):null,Pi(S,P),P.fire("autoStart:prepared",{interaction:S})}function fi(S,v,P,z){var se=S.options,me=se[P.name].max,Ie=se[P.name].maxPerElement,Be=z.autoStart.maxInteractions,We=0,ut=0,tt=0;if(!(me&&Ie&&Be))return!1;for(var b=0,I=z.interactions.list;b<I.length;b++){var U=I[b],j=U.prepared.name;if(U.interacting()&&(++We>=Be||U.interactable===S&&((ut+=j===P.name?1:0)>=me||U.element===v&&(tt++,j===P.name&&tt>=Ie))))return!1}return Be>0}function $n(S,v){return N.number(S)?(v.autoStart.maxInteractions=S,this):v.autoStart.maxInteractions}function Kn(S,v,P){var z=P.autoStart.cursorElement;z&&z!==S&&(z.style.cursor=""),S.ownerDocument.documentElement.style.cursor=v,S.style.cursor=v,P.autoStart.cursorElement=v?S:null}function Pi(S,v){var P=S.interactable,z=S.element,se=S.prepared;if(S.pointerType==="mouse"&&P&&P.options.styleCursor){var me="";if(se.name){var Ie=P.options[se.name].cursorChecker;me=N.func(Ie)?Ie(se,P,z,S._interacting):v.actions.map[se.name].getCursor(se)}Kn(S.element,me||"",v)}else v.autoStart.cursorElement&&Kn(v.autoStart.cursorElement,"",v)}var ai={id:"auto-start/base",before:["actions"],install:function(S){var v=S.interactStatic,P=S.defaults;S.usePlugin(Jn),P.base.actionChecker=null,P.base.styleCursor=!0,De(P.perAction,{manualStart:!1,max:1/0,maxPerElement:1,allowFrom:null,ignoreFrom:null,mouseButtons:1}),v.maxInteractions=function(z){return $n(z,S)},S.autoStart={maxInteractions:1/0,withinInteractionLimit:fi,cursorElement:null}},listeners:{"interactions:down":function(S,v){var P=S.interaction,z=S.pointer,se=S.event,me=S.eventTarget;P.interacting()||Cn(P,Fn(P,z,se,me,v),v)},"interactions:move":function(S,v){(function(P,z){var se=P.interaction,me=P.pointer,Ie=P.event,Be=P.eventTarget;se.pointerType!=="mouse"||se.pointerIsDown||se.interacting()||Cn(se,Fn(se,me,Ie,Be,z),z)})(S,v),function(P,z){var se=P.interaction;if(se.pointerIsDown&&!se.interacting()&&se.pointerWasMoved&&se.prepared.name){z.fire("autoStart:before-start",P);var me=se.interactable,Ie=se.prepared.name;Ie&&me&&(me.options[Ie].manualStart||!fi(me,se.element,se.prepared,z)?se.stop():(se.start(se.prepared,me,se.element),Pi(se,z)))}}(S,v)},"interactions:stop":function(S,v){var P=S.interaction,z=P.interactable;z&&z.options.styleCursor&&Kn(P.element,"",v)}},maxInteractions:$n,withinInteractionLimit:fi,validateAction:Wn},xr=ai,Zi={id:"auto-start/dragAxis",listeners:{"autoStart:before-start":function(S,v){var P=S.interaction,z=S.eventTarget,se=S.dx,me=S.dy;if(P.prepared.name==="drag"){var Ie=Math.abs(se),Be=Math.abs(me),We=P.interactable.options.drag,ut=We.startAxis,tt=Ie>Be?"x":Ie<Be?"y":"xy";if(P.prepared.axis=We.lockAxis==="start"?tt[0]:We.lockAxis,tt!=="xy"&&ut!=="xy"&&ut!==tt){P.prepared.name=null;for(var b=z,I=function(j){if(j!==P.interactable){var ie=P.interactable.options.drag;if(!ie.manualStart&&j.testIgnoreAllow(ie,b,z)){var ye=j.getAction(P.downPointer,P.downEvent,P,b);if(ye&&ye.name==="drag"&&function(Oe,Le){if(!Le)return!1;var at=Le.options.drag.startAxis;return Oe==="xy"||at==="xy"||at===Oe}(tt,j)&&xr.validateAction(ye,j,b,z,v))return j}}};N.element(b);){var U=v.interactables.forEachMatch(b,I);if(U){P.prepared.name="drag",P.interactable=U,P.element=b;break}b=K(b)}}}}}};function Di(S){var v=S.prepared&&S.prepared.name;if(!v)return null;var P=S.interactable.options;return P[v].hold||P[v].delay}var Zn={id:"auto-start/hold",install:function(S){var v=S.defaults;S.usePlugin(xr),v.perAction.hold=0,v.perAction.delay=0},listeners:{"interactions:new":function(S){S.interaction.autoStartHoldTimer=null},"autoStart:prepared":function(S){var v=S.interaction,P=Di(v);P>0&&(v.autoStartHoldTimer=setTimeout(function(){v.start(v.prepared,v.interactable,v.element)},P))},"interactions:move":function(S){var v=S.interaction,P=S.duplicate;v.autoStartHoldTimer&&v.pointerWasMoved&&!P&&(clearTimeout(v.autoStartHoldTimer),v.autoStartHoldTimer=null)},"autoStart:before-start":function(S){var v=S.interaction;Di(v)>0&&(v.prepared.name=null)}},getHoldDuration:Di},yn=Zn,ji={id:"auto-start",install:function(S){S.usePlugin(xr),S.usePlugin(yn),S.usePlugin(Zi)}},hi=function(S){return/^(always|never|auto)$/.test(S)?(this.options.preventDefault=S,this):N.bool(S)?(this.options.preventDefault=S?"always":"never",this):this.options.preventDefault};function mi(S){var v=S.interaction,P=S.event;v.interactable&&v.interactable.checkAndPreventDefault(P)}var Lr={id:"core/interactablePreventDefault",install:function(S){var v=S.Interactable;v.prototype.preventDefault=hi,v.prototype.checkAndPreventDefault=function(P){return function(z,se,me){var Ie=z.options.preventDefault;if(Ie!=="never")if(Ie!=="always"){if(se.events.supportsPassive&&/^touch(start|move)$/.test(me.type)){var Be=x(me.target).document,We=se.getDocOptions(Be);if(!We||!We.events||We.events.passive!==!1)return}/^(mouse|pointer|touch)*(down|start)/i.test(me.type)||N.element(me.target)&&ne(me.target,"input,select,textarea,[contenteditable=true],[contenteditable=true] *")||me.preventDefault()}else me.preventDefault()}(this,S,P)},S.interactions.docEvents.push({type:"dragstart",listener:function(P){for(var z=0,se=S.interactions.list;z<se.length;z++){var me=se[z];if(me.element&&(me.element===P.target||pe(me.element,P.target)))return void me.interactable.checkAndPreventDefault(P)}}})},listeners:["down","move","up","cancel"].reduce(function(S,v){return S["interactions:".concat(v)]=mi,S},{})};function dn(S,v){if(v.phaselessTypes[S])return!0;for(var P in v.map)if(S.indexOf(P)===0&&S.substr(P.length)in v.phases)return!0;return!1}function Gn(S){var v={};for(var P in S){var z=S[P];N.plainObject(z)?v[P]=Gn(z):N.array(z)?v[P]=oe(z):v[P]=z}return v}var jn=function(){function S(v){s(this,S),this.states=[],this.startOffset={left:0,right:0,top:0,bottom:0},this.startDelta=void 0,this.result=void 0,this.endResult=void 0,this.startEdges=void 0,this.edges=void 0,this.interaction=void 0,this.interaction=v,this.result=Ti(),this.edges={left:!1,right:!1,top:!1,bottom:!1}}return l(S,[{key:"start",value:function(v,P){var z,se,me=v.phase,Ie=this.interaction,Be=function(ut){var tt=ut.interactable.options[ut.prepared.name],b=tt.modifiers;return b&&b.length?b:["snap","snapSize","snapEdges","restrict","restrictEdges","restrictSize"].map(function(I){var U=tt[I];return U&&U.enabled&&{options:U,methods:U._methods}}).filter(function(I){return!!I})}(Ie);this.prepareStates(Be),this.startEdges=De({},Ie.edges),this.edges=De({},this.startEdges),this.startOffset=(z=Ie.rect,se=P,z?{left:se.x-z.left,top:se.y-z.top,right:z.right-se.x,bottom:z.bottom-se.y}:{left:0,top:0,right:0,bottom:0}),this.startDelta={x:0,y:0};var We=this.fillArg({phase:me,pageCoords:P,preEnd:!1});return this.result=Ti(),this.startAll(We),this.result=this.setAll(We)}},{key:"fillArg",value:function(v){var P=this.interaction;return v.interaction=P,v.interactable=P.interactable,v.element=P.element,v.rect||(v.rect=P.rect),v.edges||(v.edges=this.startEdges),v.startOffset=this.startOffset,v}},{key:"startAll",value:function(v){for(var P=0,z=this.states;P<z.length;P++){var se=z[P];se.methods.start&&(v.state=se,se.methods.start(v))}}},{key:"setAll",value:function(v){var P=v.phase,z=v.preEnd,se=v.skipModifiers,me=v.rect,Ie=v.edges;v.coords=De({},v.pageCoords),v.rect=De({},me),v.edges=De({},Ie);for(var Be=se?this.states.slice(se):this.states,We=Ti(v.coords,v.rect),ut=0;ut<Be.length;ut++){var tt,b=Be[ut],I=b.options,U=De({},v.coords),j=null;(tt=b.methods)!=null&&tt.set&&this.shouldDo(I,z,P)&&(v.state=b,j=b.methods.set(v),ht(v.edges,v.rect,{x:v.coords.x-U.x,y:v.coords.y-U.y})),We.eventProps.push(j)}De(this.edges,v.edges),We.delta.x=v.coords.x-v.pageCoords.x,We.delta.y=v.coords.y-v.pageCoords.y,We.rectDelta.left=v.rect.left-me.left,We.rectDelta.right=v.rect.right-me.right,We.rectDelta.top=v.rect.top-me.top,We.rectDelta.bottom=v.rect.bottom-me.bottom;var ie=this.result.coords,ye=this.result.rect;if(ie&&ye){var Oe=We.rect.left!==ye.left||We.rect.right!==ye.right||We.rect.top!==ye.top||We.rect.bottom!==ye.bottom;We.changed=Oe||ie.x!==We.coords.x||ie.y!==We.coords.y}return We}},{key:"applyToInteraction",value:function(v){var P=this.interaction,z=v.phase,se=P.coords.cur,me=P.coords.start,Ie=this.result,Be=this.startDelta,We=Ie.delta;z==="start"&&De(this.startDelta,Ie.delta);for(var ut=0,tt=[[me,Be],[se,We]];ut<tt.length;ut++){var b=tt[ut],I=b[0],U=b[1];I.page.x+=U.x,I.page.y+=U.y,I.client.x+=U.x,I.client.y+=U.y}var j=this.result.rectDelta,ie=v.rect||P.rect;ie.left+=j.left,ie.right+=j.right,ie.top+=j.top,ie.bottom+=j.bottom,ie.width=ie.right-ie.left,ie.height=ie.bottom-ie.top}},{key:"setAndApply",value:function(v){var P=this.interaction,z=v.phase,se=v.preEnd,me=v.skipModifiers,Ie=this.setAll(this.fillArg({preEnd:se,phase:z,pageCoords:v.modifiedCoords||P.coords.cur.page}));if(this.result=Ie,!Ie.changed&&(!me||me<this.states.length)&&P.interacting())return!1;if(v.modifiedCoords){var Be=P.coords.cur.page,We={x:v.modifiedCoords.x-Be.x,y:v.modifiedCoords.y-Be.y};Ie.coords.x+=We.x,Ie.coords.y+=We.y,Ie.delta.x+=We.x,Ie.delta.y+=We.y}this.applyToInteraction(v)}},{key:"beforeEnd",value:function(v){var P=v.interaction,z=v.event,se=this.states;if(se&&se.length){for(var me=!1,Ie=0;Ie<se.length;Ie++){var Be=se[Ie];v.state=Be;var We=Be.options,ut=Be.methods,tt=ut.beforeEnd&&ut.beforeEnd(v);if(tt)return this.endResult=tt,!1;me=me||!me&&this.shouldDo(We,!0,v.phase,!0)}me&&P.move({event:z,preEnd:!0})}}},{key:"stop",value:function(v){var P=v.interaction;if(this.states&&this.states.length){var z=De({states:this.states,interactable:P.interactable,element:P.element,rect:null},v);this.fillArg(z);for(var se=0,me=this.states;se<me.length;se++){var Ie=me[se];z.state=Ie,Ie.methods.stop&&Ie.methods.stop(z)}this.states=null,this.endResult=null}}},{key:"prepareStates",value:function(v){this.states=[];for(var P=0;P<v.length;P++){var z=v[P],se=z.options,me=z.methods,Ie=z.name;this.states.push({options:se,methods:me,index:P,name:Ie})}return this.states}},{key:"restoreInteractionCoords",value:function(v){var P=v.interaction,z=P.coords,se=P.rect,me=P.modification;if(me.result){for(var Ie=me.startDelta,Be=me.result,We=Be.delta,ut=Be.rectDelta,tt=0,b=[[z.start,Ie],[z.cur,We]];tt<b.length;tt++){var I=b[tt],U=I[0],j=I[1];U.page.x-=j.x,U.page.y-=j.y,U.client.x-=j.x,U.client.y-=j.y}se.left-=ut.left,se.right-=ut.right,se.top-=ut.top,se.bottom-=ut.bottom}}},{key:"shouldDo",value:function(v,P,z,se){return!(!v||v.enabled===!1||se&&!v.endOnly||v.endOnly&&!P||z==="start"&&!v.setStart)}},{key:"copyFrom",value:function(v){this.startOffset=v.startOffset,this.startDelta=v.startDelta,this.startEdges=v.startEdges,this.edges=v.edges,this.states=v.states.map(function(P){return Gn(P)}),this.result=Ti(De({},v.result.coords),De({},v.result.rect))}},{key:"destroy",value:function(){for(var v in this)this[v]=null}}]),S}();function Ti(S,v){return{rect:v,coords:S,delta:{x:0,y:0},rectDelta:{left:0,right:0,top:0,bottom:0},eventProps:[],changed:!0}}function Mn(S,v){var P=S.defaults,z={start:S.start,set:S.set,beforeEnd:S.beforeEnd,stop:S.stop},se=function(me){var Ie=me||{};for(var Be in Ie.enabled=Ie.enabled!==!1,P)Be in Ie||(Ie[Be]=P[Be]);var We={options:Ie,methods:z,name:v,enable:function(){return Ie.enabled=!0,We},disable:function(){return Ie.enabled=!1,We}};return We};return v&&typeof v=="string"&&(se._defaults=P,se._methods=z),se}function Vn(S){var v=S.iEvent,P=S.interaction.modification.result;P&&(v.modifiers=P.eventProps)}var ki={id:"modifiers/base",before:["actions"],install:function(S){S.defaults.perAction.modifiers=[]},listeners:{"interactions:new":function(S){var v=S.interaction;v.modification=new jn(v)},"interactions:before-action-start":function(S){var v=S.interaction,P=S.interaction.modification;P.start(S,v.coords.start.page),v.edges=P.edges,P.applyToInteraction(S)},"interactions:before-action-move":function(S){var v=S.interaction,P=v.modification,z=P.setAndApply(S);return v.edges=P.edges,z},"interactions:before-action-end":function(S){var v=S.interaction,P=v.modification,z=P.beforeEnd(S);return v.edges=P.startEdges,z},"interactions:action-start":Vn,"interactions:action-move":Vn,"interactions:action-end":Vn,"interactions:after-action-start":function(S){return S.interaction.modification.restoreInteractionCoords(S)},"interactions:after-action-move":function(S){return S.interaction.modification.restoreInteractionCoords(S)},"interactions:stop":function(S){return S.interaction.modification.stop(S)}}},Yn=ki,Vi={base:{preventDefault:"auto",deltaSource:"page"},perAction:{enabled:!1,origin:{x:0,y:0}},actions:{}},Un=function(S){d(P,S);var v=y(P);function P(z,se,me,Ie,Be,We,ut){var tt;s(this,P),(tt=v.call(this,z)).relatedTarget=null,tt.screenX=void 0,tt.screenY=void 0,tt.button=void 0,tt.buttons=void 0,tt.ctrlKey=void 0,tt.shiftKey=void 0,tt.altKey=void 0,tt.metaKey=void 0,tt.page=void 0,tt.client=void 0,tt.delta=void 0,tt.rect=void 0,tt.x0=void 0,tt.y0=void 0,tt.t0=void 0,tt.dt=void 0,tt.duration=void 0,tt.clientX0=void 0,tt.clientY0=void 0,tt.velocity=void 0,tt.speed=void 0,tt.swipe=void 0,tt.axes=void 0,tt.preEnd=void 0,Be=Be||z.element;var b=z.interactable,I=(b&&b.options||Vi).deltaSource,U=Pt(b,Be,me),j=Ie==="start",ie=Ie==="end",ye=j?_(tt):z.prevEvent,Oe=j?z.coords.start:ie?{page:ye.page,client:ye.client,timeStamp:z.coords.cur.timeStamp}:z.coords.cur;return tt.page=De({},Oe.page),tt.client=De({},Oe.client),tt.rect=De({},z.rect),tt.timeStamp=Oe.timeStamp,ie||(tt.page.x-=U.x,tt.page.y-=U.y,tt.client.x-=U.x,tt.client.y-=U.y),tt.ctrlKey=se.ctrlKey,tt.altKey=se.altKey,tt.shiftKey=se.shiftKey,tt.metaKey=se.metaKey,tt.button=se.button,tt.buttons=se.buttons,tt.target=Be,tt.currentTarget=Be,tt.preEnd=We,tt.type=ut||me+(Ie||""),tt.interactable=b,tt.t0=j?z.pointers[z.pointers.length-1].downTime:ye.t0,tt.x0=z.coords.start.page.x-U.x,tt.y0=z.coords.start.page.y-U.y,tt.clientX0=z.coords.start.client.x-U.x,tt.clientY0=z.coords.start.client.y-U.y,tt.delta=j||ie?{x:0,y:0}:{x:tt[I].x-ye[I].x,y:tt[I].y-ye[I].y},tt.dt=z.coords.delta.timeStamp,tt.duration=tt.timeStamp-tt.t0,tt.velocity=De({},z.coords.velocity[I]),tt.speed=Ye(tt.velocity.x,tt.velocity.y),tt.swipe=ie||Ie==="inertiastart"?tt.getSwipe():null,tt}return l(P,[{key:"getSwipe",value:function(){var z=this._interaction;if(z.prevEvent.speed<600||this.timeStamp-z.prevEvent.timeStamp>150)return null;var se=180*Math.atan2(z.prevEvent.velocityY,z.prevEvent.velocityX)/Math.PI;se<0&&(se+=360);var me=112.5<=se&&se<247.5,Ie=202.5<=se&&se<337.5;return{up:Ie,down:!Ie&&22.5<=se&&se<157.5,left:me,right:!me&&(292.5<=se||se<67.5),angle:se,speed:z.prevEvent.speed,velocity:{x:z.prevEvent.velocityX,y:z.prevEvent.velocityY}}}},{key:"preventDefault",value:function(){}},{key:"stopImmediatePropagation",value:function(){this.immediatePropagationStopped=this.propagationStopped=!0}},{key:"stopPropagation",value:function(){this.propagationStopped=!0}}]),P}(Xe);Object.defineProperties(Un.prototype,{pageX:{get:function(){return this.page.x},set:function(S){this.page.x=S}},pageY:{get:function(){return this.page.y},set:function(S){this.page.y=S}},clientX:{get:function(){return this.client.x},set:function(S){this.client.x=S}},clientY:{get:function(){return this.client.y},set:function(S){this.client.y=S}},dx:{get:function(){return this.delta.x},set:function(S){this.delta.x=S}},dy:{get:function(){return this.delta.y},set:function(S){this.delta.y=S}},velocityX:{get:function(){return this.velocity.x},set:function(S){this.velocity.x=S}},velocityY:{get:function(){return this.velocity.y},set:function(S){this.velocity.y=S}}});var Dr=l(function S(v,P,z,se,me){s(this,S),this.id=void 0,this.pointer=void 0,this.event=void 0,this.downTime=void 0,this.downTarget=void 0,this.id=v,this.pointer=P,this.event=z,this.downTime=se,this.downTarget=me}),es=function(S){return S.interactable="",S.element="",S.prepared="",S.pointerIsDown="",S.pointerWasMoved="",S._proxy="",S}({}),Mi=function(S){return S.start="",S.move="",S.end="",S.stop="",S.interacting="",S}({}),ei=0,bn=function(){function S(v){var P=this,z=v.pointerType,se=v.scopeFire;s(this,S),this.interactable=null,this.element=null,this.rect=null,this._rects=void 0,this.edges=null,this._scopeFire=void 0,this.prepared={name:null,axis:null,edges:null},this.pointerType=void 0,this.pointers=[],this.downEvent=null,this.downPointer={},this._latestPointer={pointer:null,event:null,eventTarget:null},this.prevEvent=null,this.pointerIsDown=!1,this.pointerWasMoved=!1,this._interacting=!1,this._ending=!1,this._stopped=!0,this._proxy=void 0,this.simulation=null,this.doMove=gn(function(tt){this.move(tt)},"The interaction.doMove() method has been renamed to interaction.move()"),this.coords={start:{page:{x:0,y:0},client:{x:0,y:0},timeStamp:0},prev:{page:{x:0,y:0},client:{x:0,y:0},timeStamp:0},cur:{page:{x:0,y:0},client:{x:0,y:0},timeStamp:0},delta:{page:{x:0,y:0},client:{x:0,y:0},timeStamp:0},velocity:{page:{x:0,y:0},client:{x:0,y:0},timeStamp:0}},this._id=ei++,this._scopeFire=se,this.pointerType=z;var me=this;this._proxy={};var Ie=function(tt){Object.defineProperty(P._proxy,tt,{get:function(){return me[tt]}})};for(var Be in es)Ie(Be);var We=function(tt){Object.defineProperty(P._proxy,tt,{value:function(){return me[tt].apply(me,arguments)}})};for(var ut in Mi)We(ut);this._scopeFire("interactions:new",{interaction:this})}return l(S,[{key:"pointerMoveTolerance",get:function(){return 1}},{key:"pointerDown",value:function(v,P,z){var se=this.updatePointer(v,P,z,!0),me=this.pointers[se];this._scopeFire("interactions:down",{pointer:v,event:P,eventTarget:z,pointerIndex:se,pointerInfo:me,type:"down",interaction:this})}},{key:"start",value:function(v,P,z){return!(this.interacting()||!this.pointerIsDown||this.pointers.length<(v.name==="gesture"?2:1)||!P.options[v.name].enabled)&&(qn(this.prepared,v),this.interactable=P,this.element=z,this.rect=P.getRect(z),this.edges=this.prepared.edges?De({},this.prepared.edges):{left:!0,right:!0,top:!0,bottom:!0},this._stopped=!1,this._interacting=this._doPhase({interaction:this,event:this.downEvent,phase:"start"})&&!this._stopped,this._interacting)}},{key:"pointerMove",value:function(v,P,z){this.simulation||this.modification&&this.modification.endResult||this.updatePointer(v,P,z,!1);var se,me,Ie=this.coords.cur.page.x===this.coords.prev.page.x&&this.coords.cur.page.y===this.coords.prev.page.y&&this.coords.cur.client.x===this.coords.prev.client.x&&this.coords.cur.client.y===this.coords.prev.client.y;this.pointerIsDown&&!this.pointerWasMoved&&(se=this.coords.cur.client.x-this.coords.start.client.x,me=this.coords.cur.client.y-this.coords.start.client.y,this.pointerWasMoved=Ye(se,me)>this.pointerMoveTolerance);var Be,We,ut,tt=this.getPointerIndex(v),b={pointer:v,pointerIndex:tt,pointerInfo:this.pointers[tt],event:P,type:"move",eventTarget:z,dx:se,dy:me,duplicate:Ie,interaction:this};Ie||(Be=this.coords.velocity,We=this.coords.delta,ut=Math.max(We.timeStamp/1e3,.001),Be.page.x=We.page.x/ut,Be.page.y=We.page.y/ut,Be.client.x=We.client.x/ut,Be.client.y=We.client.y/ut,Be.timeStamp=ut),this._scopeFire("interactions:move",b),Ie||this.simulation||(this.interacting()&&(b.type=null,this.move(b)),this.pointerWasMoved&&Ct(this.coords.prev,this.coords.cur))}},{key:"move",value:function(v){v&&v.event||Ue(this.coords.delta),(v=De({pointer:this._latestPointer.pointer,event:this._latestPointer.event,eventTarget:this._latestPointer.eventTarget,interaction:this},v||{})).phase="move",this._doPhase(v)}},{key:"pointerUp",value:function(v,P,z,se){var me=this.getPointerIndex(v);me===-1&&(me=this.updatePointer(v,P,z,!1));var Ie=/cancel$/i.test(P.type)?"cancel":"up";this._scopeFire("interactions:".concat(Ie),{pointer:v,pointerIndex:me,pointerInfo:this.pointers[me],event:P,eventTarget:z,type:Ie,curEventTarget:se,interaction:this}),this.simulation||this.end(P),this.removePointer(v,P)}},{key:"documentBlur",value:function(v){this.end(v),this._scopeFire("interactions:blur",{event:v,type:"blur",interaction:this})}},{key:"end",value:function(v){var P;this._ending=!0,v=v||this._latestPointer.event,this.interacting()&&(P=this._doPhase({event:v,interaction:this,phase:"end"})),this._ending=!1,P===!0&&this.stop()}},{key:"currentAction",value:function(){return this._interacting?this.prepared.name:null}},{key:"interacting",value:function(){return this._interacting}},{key:"stop",value:function(){this._scopeFire("interactions:stop",{interaction:this}),this.interactable=this.element=null,this._interacting=!1,this._stopped=!0,this.prepared.name=this.prevEvent=null}},{key:"getPointerIndex",value:function(v){var P=le(v);return this.pointerType==="mouse"||this.pointerType==="pen"?this.pointers.length-1:Se(this.pointers,function(z){return z.id===P})}},{key:"getPointerInfo",value:function(v){return this.pointers[this.getPointerIndex(v)]}},{key:"updatePointer",value:function(v,P,z,se){var me,Ie,Be,We=le(v),ut=this.getPointerIndex(v),tt=this.pointers[ut];return se=se!==!1&&(se||/(down|start)$/i.test(P.type)),tt?tt.pointer=v:(tt=new Dr(We,v,P,null,null),ut=this.pointers.length,this.pointers.push(tt)),H(this.coords.cur,this.pointers.map(function(b){return b.pointer}),this._now()),me=this.coords.delta,Ie=this.coords.prev,Be=this.coords.cur,me.page.x=Be.page.x-Ie.page.x,me.page.y=Be.page.y-Ie.page.y,me.client.x=Be.client.x-Ie.client.x,me.client.y=Be.client.y-Ie.client.y,me.timeStamp=Be.timeStamp-Ie.timeStamp,se&&(this.pointerIsDown=!0,tt.downTime=this.coords.cur.timeStamp,tt.downTarget=z,Dt(this.downPointer,v),this.interacting()||(Ct(this.coords.start,this.coords.cur),Ct(this.coords.prev,this.coords.cur),this.downEvent=P,this.pointerWasMoved=!1)),this._updateLatestPointer(v,P,z),this._scopeFire("interactions:update-pointer",{pointer:v,event:P,eventTarget:z,down:se,pointerInfo:tt,pointerIndex:ut,interaction:this}),ut}},{key:"removePointer",value:function(v,P){var z=this.getPointerIndex(v);if(z!==-1){var se=this.pointers[z];this._scopeFire("interactions:remove-pointer",{pointer:v,event:P,eventTarget:null,pointerIndex:z,pointerInfo:se,interaction:this}),this.pointers.splice(z,1),this.pointerIsDown=!1}}},{key:"_updateLatestPointer",value:function(v,P,z){this._latestPointer.pointer=v,this._latestPointer.event=P,this._latestPointer.eventTarget=z}},{key:"destroy",value:function(){this._latestPointer.pointer=null,this._latestPointer.event=null,this._latestPointer.eventTarget=null}},{key:"_createPreparedEvent",value:function(v,P,z,se){return new Un(this,v,this.prepared.name,P,this.element,z,se)}},{key:"_fireEvent",value:function(v){var P;(P=this.interactable)==null||P.fire(v),(!this.prevEvent||v.timeStamp>=this.prevEvent.timeStamp)&&(this.prevEvent=v)}},{key:"_doPhase",value:function(v){var P=v.event,z=v.phase,se=v.preEnd,me=v.type,Ie=this.rect;if(Ie&&z==="move"&&(ht(this.edges,Ie,this.coords.delta[this.interactable.options.deltaSource]),Ie.width=Ie.right-Ie.left,Ie.height=Ie.bottom-Ie.top),this._scopeFire("interactions:before-action-".concat(z),v)===!1)return!1;var Be=v.iEvent=this._createPreparedEvent(P,z,se,me);return this._scopeFire("interactions:action-".concat(z),v),z==="start"&&(this.prevEvent=Be),this._fireEvent(Be),this._scopeFire("interactions:after-action-".concat(z),v),!0}},{key:"_now",value:function(){return Date.now()}}]),S}();function Ft(S){ze(S.interaction)}function ze(S){if(!function(P){return!(!P.offset.pending.x&&!P.offset.pending.y)}(S))return!1;var v=S.offset.pending;return Bt(S.coords.cur,v),Bt(S.coords.delta,v),ht(S.edges,S.rect,v),v.x=0,v.y=0,!0}function xt(S){var v=S.x,P=S.y;this.offset.pending.x+=v,this.offset.pending.y+=P,this.offset.total.x+=v,this.offset.total.y+=P}function Bt(S,v){var P=S.page,z=S.client,se=v.x,me=v.y;P.x+=se,P.y+=me,z.x+=se,z.y+=me}Mi.offsetBy="";var Jt={id:"offset",before:["modifiers","pointer-events","actions","inertia"],install:function(S){S.Interaction.prototype.offsetBy=xt},listeners:{"interactions:new":function(S){S.interaction.offset={total:{x:0,y:0},pending:{x:0,y:0}}},"interactions:update-pointer":function(S){return function(v){v.pointerIsDown&&(Bt(v.coords.cur,v.offset.total),v.offset.pending.x=0,v.offset.pending.y=0)}(S.interaction)},"interactions:before-action-start":Ft,"interactions:before-action-move":Ft,"interactions:before-action-end":function(S){var v=S.interaction;if(ze(v))return v.move({offset:!0}),v.end(),!1},"interactions:stop":function(S){var v=S.interaction;v.offset.total.x=0,v.offset.total.y=0,v.offset.pending.x=0,v.offset.pending.y=0}}},Xt=Jt,sr=function(){function S(v){s(this,S),this.active=!1,this.isModified=!1,this.smoothEnd=!1,this.allowResume=!1,this.modification=void 0,this.modifierCount=0,this.modifierArg=void 0,this.startCoords=void 0,this.t0=0,this.v0=0,this.te=0,this.targetOffset=void 0,this.modifiedOffset=void 0,this.currentOffset=void 0,this.lambda_v0=0,this.one_ve_v0=0,this.timeout=void 0,this.interaction=void 0,this.interaction=v}return l(S,[{key:"start",value:function(v){var P=this.interaction,z=Ar(P);if(!z||!z.enabled)return!1;var se=P.coords.velocity.client,me=Ye(se.x,se.y),Ie=this.modification||(this.modification=new jn(P));if(Ie.copyFrom(P.modification),this.t0=P._now(),this.allowResume=z.allowResume,this.v0=me,this.currentOffset={x:0,y:0},this.startCoords=P.coords.cur.page,this.modifierArg=Ie.fillArg({pageCoords:this.startCoords,preEnd:!0,phase:"inertiastart"}),this.t0-P.coords.cur.timeStamp<50&&me>z.minSpeed&&me>z.endSpeed)this.startInertia();else{if(Ie.result=Ie.setAll(this.modifierArg),!Ie.result.changed)return!1;this.startSmoothEnd()}return P.modification.result.rect=null,P.offsetBy(this.targetOffset),P._doPhase({interaction:P,event:v,phase:"inertiastart"}),P.offsetBy({x:-this.targetOffset.x,y:-this.targetOffset.y}),P.modification.result.rect=null,this.active=!0,P.simulation=this,!0}},{key:"startInertia",value:function(){var v=this,P=this.interaction.coords.velocity.client,z=Ar(this.interaction),se=z.resistance,me=-Math.log(z.endSpeed/this.v0)/se;this.targetOffset={x:(P.x-me)/se,y:(P.y-me)/se},this.te=me,this.lambda_v0=se/this.v0,this.one_ve_v0=1-z.endSpeed/this.v0;var Ie=this.modification,Be=this.modifierArg;Be.pageCoords={x:this.startCoords.x+this.targetOffset.x,y:this.startCoords.y+this.targetOffset.y},Ie.result=Ie.setAll(Be),Ie.result.changed&&(this.isModified=!0,this.modifiedOffset={x:this.targetOffset.x+Ie.result.delta.x,y:this.targetOffset.y+Ie.result.delta.y}),this.onNextFrame(function(){return v.inertiaTick()})}},{key:"startSmoothEnd",value:function(){var v=this;this.smoothEnd=!0,this.isModified=!0,this.targetOffset={x:this.modification.result.delta.x,y:this.modification.result.delta.y},this.onNextFrame(function(){return v.smoothEndTick()})}},{key:"onNextFrame",value:function(v){var P=this;this.timeout=un.request(function(){P.active&&v()})}},{key:"inertiaTick",value:function(){var v,P,z,se,me,Ie,Be,We=this,ut=this.interaction,tt=Ar(ut).resistance,b=(ut._now()-this.t0)/1e3;if(b<this.te){var I,U=1-(Math.exp(-tt*b)-this.lambda_v0)/this.one_ve_v0;this.isModified?(v=0,P=0,z=this.targetOffset.x,se=this.targetOffset.y,me=this.modifiedOffset.x,Ie=this.modifiedOffset.y,I={x:En(Be=U,v,z,me),y:En(Be,P,se,Ie)}):I={x:this.targetOffset.x*U,y:this.targetOffset.y*U};var j={x:I.x-this.currentOffset.x,y:I.y-this.currentOffset.y};this.currentOffset.x+=j.x,this.currentOffset.y+=j.y,ut.offsetBy(j),ut.move(),this.onNextFrame(function(){return We.inertiaTick()})}else ut.offsetBy({x:this.modifiedOffset.x-this.currentOffset.x,y:this.modifiedOffset.y-this.currentOffset.y}),this.end()}},{key:"smoothEndTick",value:function(){var v=this,P=this.interaction,z=P._now()-this.t0,se=Ar(P).smoothEndDuration;if(z<se){var me={x:nn(z,0,this.targetOffset.x,se),y:nn(z,0,this.targetOffset.y,se)},Ie={x:me.x-this.currentOffset.x,y:me.y-this.currentOffset.y};this.currentOffset.x+=Ie.x,this.currentOffset.y+=Ie.y,P.offsetBy(Ie),P.move({skipModifiers:this.modifierCount}),this.onNextFrame(function(){return v.smoothEndTick()})}else P.offsetBy({x:this.targetOffset.x-this.currentOffset.x,y:this.targetOffset.y-this.currentOffset.y}),this.end()}},{key:"resume",value:function(v){var P=v.pointer,z=v.event,se=v.eventTarget,me=this.interaction;me.offsetBy({x:-this.currentOffset.x,y:-this.currentOffset.y}),me.updatePointer(P,z,se,!0),me._doPhase({interaction:me,event:z,phase:"resume"}),Ct(me.coords.prev,me.coords.cur),this.stop()}},{key:"end",value:function(){this.interaction.move(),this.interaction.end(),this.stop()}},{key:"stop",value:function(){this.active=this.smoothEnd=!1,this.interaction.simulation=null,un.cancel(this.timeout)}}]),S}();function Ar(S){var v=S.interactable,P=S.prepared;return v&&v.options&&P.name&&v.options[P.name].inertia}var $r={id:"inertia",before:["modifiers","actions"],install:function(S){var v=S.defaults;S.usePlugin(Xt),S.usePlugin(Yn),S.actions.phases.inertiastart=!0,S.actions.phases.resume=!0,v.perAction.inertia={enabled:!1,resistance:10,minSpeed:100,endSpeed:10,allowResume:!0,smoothEndDuration:300}},listeners:{"interactions:new":function(S){var v=S.interaction;v.inertia=new sr(v)},"interactions:before-action-end":function(S){var v=S.interaction,P=S.event;return(!v._interacting||v.simulation||!v.inertia.start(P))&&null},"interactions:down":function(S){var v=S.interaction,P=S.eventTarget,z=v.inertia;if(z.active)for(var se=P;N.element(se);){if(se===v.element){z.resume(S);break}se=K(se)}},"interactions:stop":function(S){var v=S.interaction.inertia;v.active&&v.stop()},"interactions:before-action-resume":function(S){var v=S.interaction.modification;v.stop(S),v.start(S,S.interaction.coords.cur.page),v.applyToInteraction(S)},"interactions:before-action-inertiastart":function(S){return S.interaction.modification.setAndApply(S)},"interactions:action-resume":Vn,"interactions:action-inertiastart":Vn,"interactions:after-action-inertiastart":function(S){return S.interaction.modification.restoreInteractionCoords(S)},"interactions:after-action-resume":function(S){return S.interaction.modification.restoreInteractionCoords(S)}}};function En(S,v,P,z){var se=1-S;return se*se*v+2*se*S*P+S*S*z}function nn(S,v,P,z){return-P*(S/=z)*(S-2)+v}var ds=$r;function Kr(S,v){for(var P=0;P<v.length;P++){var z=v[P];if(S.immediatePropagationStopped)break;z(S)}}var Ts=function(){function S(v){s(this,S),this.options=void 0,this.types={},this.propagationStopped=!1,this.immediatePropagationStopped=!1,this.global=void 0,this.options=De({},v||{})}return l(S,[{key:"fire",value:function(v){var P,z=this.global;(P=this.types[v.type])&&Kr(v,P),!v.propagationStopped&&z&&(P=z[v.type])&&Kr(v,P)}},{key:"on",value:function(v,P){var z=Je(v,P);for(v in z)this.types[v]=pt(this.types[v]||[],z[v])}},{key:"off",value:function(v,P){var z=Je(v,P);for(v in z){var se=this.types[v];if(se&&se.length)for(var me=0,Ie=z[v];me<Ie.length;me++){var Be=Ie[me],We=se.indexOf(Be);We!==-1&&se.splice(We,1)}}}},{key:"getRect",value:function(v){return null}}]),S}(),Ys=function(){function S(v){s(this,S),this.currentTarget=void 0,this.originalEvent=void 0,this.type=void 0,this.originalEvent=v,Dt(this,v)}return l(S,[{key:"preventOriginalDefault",value:function(){this.originalEvent.preventDefault()}},{key:"stopPropagation",value:function(){this.originalEvent.stopPropagation()}},{key:"stopImmediatePropagation",value:function(){this.originalEvent.stopImmediatePropagation()}}]),S}();function Zt(S){return N.object(S)?{capture:!!S.capture,passive:!!S.passive}:{capture:!!S,passive:!1}}function Li(S,v){return S===v||(typeof S=="boolean"?!!v.capture===S&&!v.passive:!!S.capture==!!v.capture&&!!S.passive==!!v.passive)}var xs={id:"events",install:function(S){var v,P=[],z={},se=[],me={add:Ie,remove:Be,addDelegate:function(tt,b,I,U,j){var ie=Zt(j);if(!z[I]){z[I]=[];for(var ye=0;ye<se.length;ye++){var Oe=se[ye];Ie(Oe,I,We),Ie(Oe,I,ut,!0)}}var Le=z[I],at=ee(Le,function(gt){return gt.selector===tt&>.context===b});at||(at={selector:tt,context:b,listeners:[]},Le.push(at)),at.listeners.push({func:U,options:ie})},removeDelegate:function(tt,b,I,U,j){var ie,ye=Zt(j),Oe=z[I],Le=!1;if(Oe)for(ie=Oe.length-1;ie>=0;ie--){var at=Oe[ie];if(at.selector===tt&&at.context===b){for(var gt=at.listeners,lt=gt.length-1;lt>=0;lt--){var ot=gt[lt];if(ot.func===U&&Li(ot.options,ye)){gt.splice(lt,1),gt.length||(Oe.splice(ie,1),Be(b,I,We),Be(b,I,ut,!0)),Le=!0;break}}if(Le)break}}},delegateListener:We,delegateUseCapture:ut,delegatedEvents:z,documents:se,targets:P,supportsOptions:!1,supportsPassive:!1};function Ie(tt,b,I,U){if(tt.addEventListener){var j=Zt(U),ie=ee(P,function(ye){return ye.eventTarget===tt});ie||(ie={eventTarget:tt,events:{}},P.push(ie)),ie.events[b]||(ie.events[b]=[]),ee(ie.events[b],function(ye){return ye.func===I&&Li(ye.options,j)})||(tt.addEventListener(b,I,me.supportsOptions?j:j.capture),ie.events[b].push({func:I,options:j}))}}function Be(tt,b,I,U){if(tt.addEventListener&&tt.removeEventListener){var j=Se(P,function(mt){return mt.eventTarget===tt}),ie=P[j];if(ie&&ie.events)if(b!=="all"){var ye=!1,Oe=ie.events[b];if(Oe){if(I==="all"){for(var Le=Oe.length-1;Le>=0;Le--){var at=Oe[Le];Be(tt,b,at.func,at.options)}return}for(var gt=Zt(U),lt=0;lt<Oe.length;lt++){var ot=Oe[lt];if(ot.func===I&&Li(ot.options,gt)){tt.removeEventListener(b,I,me.supportsOptions?gt:gt.capture),Oe.splice(lt,1),Oe.length===0&&(delete ie.events[b],ye=!0);break}}}ye&&!Object.keys(ie.events).length&&P.splice(j,1)}else for(b in ie.events)ie.events.hasOwnProperty(b)&&Be(tt,b,"all")}}function We(tt,b){for(var I=Zt(b),U=new Ys(tt),j=z[tt.type],ie=nt(tt)[0],ye=ie;N.element(ye);){for(var Oe=0;Oe<j.length;Oe++){var Le=j[Oe],at=Le.selector,gt=Le.context;if(ne(ye,at)&&pe(gt,ie)&&pe(gt,ye)){var lt=Le.listeners;U.currentTarget=ye;for(var ot=0;ot<lt.length;ot++){var mt=lt[ot];Li(mt.options,I)&&mt.func(U)}}}ye=K(ye)}}function ut(tt){return We(tt,!0)}return(v=S.document)==null||v.createElement("div").addEventListener("test",null,{get capture(){return me.supportsOptions=!0},get passive(){return me.supportsPassive=!0}}),S.events=me,me}},As={methodOrder:["simulationResume","mouseOrPen","hasPointer","idle"],search:function(S){for(var v=0,P=As.methodOrder;v<P.length;v++){var z=P[v],se=As[z](S);if(se)return se}return null},simulationResume:function(S){var v=S.pointerType,P=S.eventType,z=S.eventTarget,se=S.scope;if(!/down|start/i.test(P))return null;for(var me=0,Ie=se.interactions.list;me<Ie.length;me++){var Be=Ie[me],We=z;if(Be.simulation&&Be.simulation.allowResume&&Be.pointerType===v)for(;We;){if(We===Be.element)return Be;We=K(We)}}return null},mouseOrPen:function(S){var v,P=S.pointerId,z=S.pointerType,se=S.eventType,me=S.scope;if(z!=="mouse"&&z!=="pen")return null;for(var Ie=0,Be=me.interactions.list;Ie<Be.length;Ie++){var We=Be[Ie];if(We.pointerType===z){if(We.simulation&&!pa(We,P))continue;if(We.interacting())return We;v||(v=We)}}if(v)return v;for(var ut=0,tt=me.interactions.list;ut<tt.length;ut++){var b=tt[ut];if(!(b.pointerType!==z||/down/i.test(se)&&b.simulation))return b}return null},hasPointer:function(S){for(var v=S.pointerId,P=0,z=S.scope.interactions.list;P<z.length;P++){var se=z[P];if(pa(se,v))return se}return null},idle:function(S){for(var v=S.pointerType,P=0,z=S.scope.interactions.list;P<z.length;P++){var se=z[P];if(se.pointers.length===1){var me=se.interactable;if(me&&(!me.options.gesture||!me.options.gesture.enabled))continue}else if(se.pointers.length>=2)continue;if(!se.interacting()&&v===se.pointerType)return se}return null}};function pa(S,v){return S.pointers.some(function(P){return P.id===v})}var ps=As,zs=["pointerDown","pointerMove","pointerUp","updatePointer","removePointer","windowBlur"];function Hs(S,v){return function(P){var z=v.interactions.list,se=Ne(P),me=nt(P),Ie=me[0],Be=me[1],We=[];if(/^touch/.test(P.type)){v.prevTouchTime=v.now();for(var ut=0,tt=P.changedTouches;ut<tt.length;ut++){var b=tt[ut],I={pointer:b,pointerId:le(b),pointerType:se,eventType:P.type,eventTarget:Ie,curEventTarget:Be,scope:v},U=fs(I);We.push([I.pointer,I.eventTarget,I.curEventTarget,U])}}else{var j=!1;if(!ve.supportsPointerEvent&&/mouse/.test(P.type)){for(var ie=0;ie<z.length&&!j;ie++)j=z[ie].pointerType!=="mouse"&&z[ie].pointerIsDown;j=j||v.now()-v.prevTouchTime<500||P.timeStamp===0}if(!j){var ye={pointer:P,pointerId:le(P),pointerType:se,eventType:P.type,curEventTarget:Be,eventTarget:Ie,scope:v},Oe=fs(ye);We.push([ye.pointer,ye.eventTarget,ye.curEventTarget,Oe])}}for(var Le=0;Le<We.length;Le++){var at=We[Le],gt=at[0],lt=at[1],ot=at[2];at[3][S](gt,P,lt,ot)}}}function fs(S){var v=S.pointerType,P=S.scope,z={interaction:ps.search(S),searchDetails:S};return P.fire("interactions:find",z),z.interaction||P.interactions.new({pointerType:v})}function Yi(S,v){var P=S.doc,z=S.scope,se=S.options,me=z.interactions.docEvents,Ie=z.events,Be=Ie[v];for(var We in z.browser.isIOS&&!se.events&&(se.events={passive:!1}),Ie.delegatedEvents)Be(P,We,Ie.delegateListener),Be(P,We,Ie.delegateUseCapture,!0);for(var ut=se&&se.events,tt=0;tt<me.length;tt++){var b=me[tt];Be(P,b.type,b.listener,ut)}}var Cs={id:"core/interactions",install:function(S){for(var v={},P=0;P<zs.length;P++){var z=zs[P];v[z]=Hs(z,S)}var se,me=ve.pEventTypes;function Ie(){for(var Be=0,We=S.interactions.list;Be<We.length;Be++){var ut=We[Be];if(ut.pointerIsDown&&ut.pointerType==="touch"&&!ut._interacting)for(var tt=function(){var U=I[b];S.documents.some(function(j){return pe(j.doc,U.downTarget)})||ut.removePointer(U.pointer,U.event)},b=0,I=ut.pointers;b<I.length;b++)tt()}}(se=Te.PointerEvent?[{type:me.down,listener:Ie},{type:me.down,listener:v.pointerDown},{type:me.move,listener:v.pointerMove},{type:me.up,listener:v.pointerUp},{type:me.cancel,listener:v.pointerUp}]:[{type:"mousedown",listener:v.pointerDown},{type:"mousemove",listener:v.pointerMove},{type:"mouseup",listener:v.pointerUp},{type:"touchstart",listener:Ie},{type:"touchstart",listener:v.pointerDown},{type:"touchmove",listener:v.pointerMove},{type:"touchend",listener:v.pointerUp},{type:"touchcancel",listener:v.pointerUp}]).push({type:"blur",listener:function(Be){for(var We=0,ut=S.interactions.list;We<ut.length;We++)ut[We].documentBlur(Be)}}),S.prevTouchTime=0,S.Interaction=function(Be){d(ut,Be);var We=y(ut);function ut(){return s(this,ut),We.apply(this,arguments)}return l(ut,[{key:"pointerMoveTolerance",get:function(){return S.interactions.pointerMoveTolerance},set:function(tt){S.interactions.pointerMoveTolerance=tt}},{key:"_now",value:function(){return S.now()}}]),ut}(bn),S.interactions={list:[],new:function(Be){Be.scopeFire=function(ut,tt){return S.fire(ut,tt)};var We=new S.Interaction(Be);return S.interactions.list.push(We),We},listeners:v,docEvents:se,pointerMoveTolerance:1},S.usePlugin(Lr)},listeners:{"scope:add-document":function(S){return Yi(S,"add")},"scope:remove-document":function(S){return Yi(S,"remove")},"interactable:unset":function(S,v){for(var P=S.interactable,z=v.interactions.list.length-1;z>=0;z--){var se=v.interactions.list[z];se.interactable===P&&(se.stop(),v.fire("interactions:destroy",{interaction:se}),se.destroy(),v.interactions.list.length>2&&v.interactions.list.splice(z,1))}}},onDocSignal:Yi,doOnInteractions:Hs,methodNames:zs},Pa=Cs,Bi=function(S){return S[S.On=0]="On",S[S.Off=1]="Off",S}(Bi||{}),fa=function(){function S(v,P,z,se){s(this,S),this.target=void 0,this.options=void 0,this._actions=void 0,this.events=new Ts,this._context=void 0,this._win=void 0,this._doc=void 0,this._scopeEvents=void 0,this._actions=P.actions,this.target=v,this._context=P.context||z,this._win=x(Pe(v)?this._context:v),this._doc=this._win.document,this._scopeEvents=se,this.set(P)}return l(S,[{key:"_defaults",get:function(){return{base:{},perAction:{},actions:{}}}},{key:"setOnEvents",value:function(v,P){return N.func(P.onstart)&&this.on("".concat(v,"start"),P.onstart),N.func(P.onmove)&&this.on("".concat(v,"move"),P.onmove),N.func(P.onend)&&this.on("".concat(v,"end"),P.onend),N.func(P.oninertiastart)&&this.on("".concat(v,"inertiastart"),P.oninertiastart),this}},{key:"updatePerActionListeners",value:function(v,P,z){var se,me=this,Ie=(se=this._actions.map[v])==null?void 0:se.filterEventType,Be=function(We){return(Ie==null||Ie(We))&&dn(We,me._actions)};(N.array(P)||N.object(P))&&this._onOff(Bi.Off,v,P,void 0,Be),(N.array(z)||N.object(z))&&this._onOff(Bi.On,v,z,void 0,Be)}},{key:"setPerAction",value:function(v,P){var z=this._defaults;for(var se in P){var me=se,Ie=this.options[v],Be=P[me];me==="listeners"&&this.updatePerActionListeners(v,Ie.listeners,Be),N.array(Be)?Ie[me]=oe(Be):N.plainObject(Be)?(Ie[me]=De(Ie[me]||{},Gn(Be)),N.object(z.perAction[me])&&"enabled"in z.perAction[me]&&(Ie[me].enabled=Be.enabled!==!1)):N.bool(Be)&&N.object(z.perAction[me])?Ie[me].enabled=Be:Ie[me]=Be}}},{key:"getRect",value:function(v){return v=v||(N.element(this.target)?this.target:null),N.string(this.target)&&(v=v||this._context.querySelector(this.target)),we(v)}},{key:"rectChecker",value:function(v){var P=this;return N.func(v)?(this.getRect=function(z){var se=De({},v.call(P,z));return"width"in se||(se.width=se.right-se.left,se.height=se.bottom-se.top),se},this):v===null?(delete this.getRect,this):this.getRect}},{key:"_backCompatOption",value:function(v,P){if(Pe(P)||N.object(P)){for(var z in this.options[v]=P,this._actions.map)this.options[z][v]=P;return this}return this.options[v]}},{key:"origin",value:function(v){return this._backCompatOption("origin",v)}},{key:"deltaSource",value:function(v){return v==="page"||v==="client"?(this.options.deltaSource=v,this):this.options.deltaSource}},{key:"getAllElements",value:function(){var v=this.target;return N.string(v)?Array.from(this._context.querySelectorAll(v)):N.func(v)&&v.getAllElements?v.getAllElements():N.element(v)?[v]:[]}},{key:"context",value:function(){return this._context}},{key:"inContext",value:function(v){return this._context===v.ownerDocument||pe(this._context,v)}},{key:"testIgnoreAllow",value:function(v,P,z){return!this.testIgnore(v.ignoreFrom,P,z)&&this.testAllow(v.allowFrom,P,z)}},{key:"testAllow",value:function(v,P,z){return!v||!!N.element(z)&&(N.string(v)?X(z,v,P):!!N.element(v)&&pe(v,z))}},{key:"testIgnore",value:function(v,P,z){return!(!v||!N.element(z))&&(N.string(v)?X(z,v,P):!!N.element(v)&&pe(v,z))}},{key:"fire",value:function(v){return this.events.fire(v),this}},{key:"_onOff",value:function(v,P,z,se,me){N.object(P)&&!N.array(P)&&(se=z,z=null);var Ie=Je(P,z,me);for(var Be in Ie){Be==="wheel"&&(Be=ve.wheelEvent);for(var We=0,ut=Ie[Be];We<ut.length;We++){var tt=ut[We];dn(Be,this._actions)?this.events[v===Bi.On?"on":"off"](Be,tt):N.string(this.target)?this._scopeEvents[v===Bi.On?"addDelegate":"removeDelegate"](this.target,this._context,Be,tt,se):this._scopeEvents[v===Bi.On?"add":"remove"](this.target,Be,tt,se)}}return this}},{key:"on",value:function(v,P,z){return this._onOff(Bi.On,v,P,z)}},{key:"off",value:function(v,P,z){return this._onOff(Bi.Off,v,P,z)}},{key:"set",value:function(v){var P=this._defaults;for(var z in N.object(v)||(v={}),this.options=Gn(P.base),this._actions.methodDict){var se=z,me=this._actions.methodDict[se];this.options[se]={},this.setPerAction(se,De(De({},P.perAction),P.actions[se])),this[me](v[se])}for(var Ie in v)Ie!=="getRect"?N.func(this[Ie])&&this[Ie](v[Ie]):this.rectChecker(v.getRect);return this}},{key:"unset",value:function(){if(N.string(this.target))for(var v in this._scopeEvents.delegatedEvents)for(var P=this._scopeEvents.delegatedEvents[v],z=P.length-1;z>=0;z--){var se=P[z],me=se.selector,Ie=se.context,Be=se.listeners;me===this.target&&Ie===this._context&&P.splice(z,1);for(var We=Be.length-1;We>=0;We--)this._scopeEvents.removeDelegate(this.target,this._context,v,Be[We][0],Be[We][1])}else this._scopeEvents.remove(this.target,"all")}}]),S}(),ws=function(){function S(v){var P=this;s(this,S),this.list=[],this.selectorMap={},this.scope=void 0,this.scope=v,v.addListeners({"interactable:unset":function(z){var se=z.interactable,me=se.target,Ie=N.string(me)?P.selectorMap[me]:me[P.scope.id],Be=Se(Ie,function(We){return We===se});Ie.splice(Be,1)}})}return l(S,[{key:"new",value:function(v,P){P=De(P||{},{actions:this.scope.actions});var z=new this.scope.Interactable(v,P,this.scope.document,this.scope.events);return this.scope.addDocument(z._doc),this.list.push(z),N.string(v)?(this.selectorMap[v]||(this.selectorMap[v]=[]),this.selectorMap[v].push(z)):(z.target[this.scope.id]||Object.defineProperty(v,this.scope.id,{value:[],configurable:!0}),v[this.scope.id].push(z)),this.scope.fire("interactable:new",{target:v,options:P,interactable:z,win:this.scope._win}),z}},{key:"getExisting",value:function(v,P){var z=P&&P.context||this.scope.document,se=N.string(v),me=se?this.selectorMap[v]:v[this.scope.id];if(me)return ee(me,function(Ie){return Ie._context===z&&(se||Ie.inContext(v))})}},{key:"forEachMatch",value:function(v,P){for(var z=0,se=this.list;z<se.length;z++){var me=se[z],Ie=void 0;if((N.string(me.target)?N.element(v)&&ne(v,me.target):v===me.target)&&me.inContext(v)&&(Ie=P(me)),Ie!==void 0)return Ie}}}]),S}(),Ws=function(){function S(){var v=this;s(this,S),this.id="__interact_scope_".concat(Math.floor(100*Math.random())),this.isInitialized=!1,this.listenerMaps=[],this.browser=ve,this.defaults=Gn(Vi),this.Eventable=Ts,this.actions={map:{},phases:{start:!0,move:!0,end:!0},methodDict:{},phaselessTypes:{}},this.interactStatic=function(z){var se=function me(Ie,Be){var We=z.interactables.getExisting(Ie,Be);return We||((We=z.interactables.new(Ie,Be)).events.global=me.globalEvents),We};return se.getPointerAverage=$e,se.getTouchBBox=Q,se.getTouchDistance=k,se.getTouchAngle=q,se.getElementRect=we,se.getElementClientRect=re,se.matchesSelector=ne,se.closest=he,se.globalEvents={},se.version="1.10.28",se.scope=z,se.use=function(me,Ie){return this.scope.usePlugin(me,Ie),this},se.isSet=function(me,Ie){return!!this.scope.interactables.get(me,Ie&&Ie.context)},se.on=gn(function(me,Ie,Be){if(N.string(me)&&me.search(" ")!==-1&&(me=me.trim().split(/ +/)),N.array(me)){for(var We=0,ut=me;We<ut.length;We++){var tt=ut[We];this.on(tt,Ie,Be)}return this}if(N.object(me)){for(var b in me)this.on(b,me[b],Ie);return this}return dn(me,this.scope.actions)?this.globalEvents[me]?this.globalEvents[me].push(Ie):this.globalEvents[me]=[Ie]:this.scope.events.add(this.scope.document,me,Ie,{options:Be}),this},"The interact.on() method is being deprecated"),se.off=gn(function(me,Ie,Be){if(N.string(me)&&me.search(" ")!==-1&&(me=me.trim().split(/ +/)),N.array(me)){for(var We=0,ut=me;We<ut.length;We++){var tt=ut[We];this.off(tt,Ie,Be)}return this}if(N.object(me)){for(var b in me)this.off(b,me[b],Ie);return this}var I;return dn(me,this.scope.actions)?me in this.globalEvents&&(I=this.globalEvents[me].indexOf(Ie))!==-1&&this.globalEvents[me].splice(I,1):this.scope.events.remove(this.scope.document,me,Ie,Be),this},"The interact.off() method is being deprecated"),se.debug=function(){return this.scope},se.supportsTouch=function(){return ve.supportsTouch},se.supportsPointerEvent=function(){return ve.supportsPointerEvent},se.stop=function(){for(var me=0,Ie=this.scope.interactions.list;me<Ie.length;me++)Ie[me].stop();return this},se.pointerMoveTolerance=function(me){return N.number(me)?(this.scope.interactions.pointerMoveTolerance=me,this):this.scope.interactions.pointerMoveTolerance},se.addDocument=function(me,Ie){this.scope.addDocument(me,Ie)},se.removeDocument=function(me){this.scope.removeDocument(me)},se}(this),this.InteractEvent=Un,this.Interactable=void 0,this.interactables=new ws(this),this._win=void 0,this.document=void 0,this.window=void 0,this.documents=[],this._plugins={list:[],map:{}},this.onWindowUnload=function(z){return v.removeDocument(z.target)};var P=this;this.Interactable=function(z){d(me,z);var se=y(me);function me(){return s(this,me),se.apply(this,arguments)}return l(me,[{key:"_defaults",get:function(){return P.defaults}},{key:"set",value:function(Ie){return w(u(me.prototype),"set",this).call(this,Ie),P.fire("interactable:set",{options:Ie,interactable:this}),this}},{key:"unset",value:function(){w(u(me.prototype),"unset",this).call(this);var Ie=P.interactables.list.indexOf(this);Ie<0||(P.interactables.list.splice(Ie,1),P.fire("interactable:unset",{interactable:this}))}}]),me}(fa)}return l(S,[{key:"addListeners",value:function(v,P){this.listenerMaps.push({id:P,map:v})}},{key:"fire",value:function(v,P){for(var z=0,se=this.listenerMaps;z<se.length;z++){var me=se[z].map[v];if(me&&me(P,this,v)===!1)return!1}}},{key:"init",value:function(v){return this.isInitialized?this:function(P,z){return P.isInitialized=!0,N.window(z)&&O(z),Te.init(z),ve.init(z),un.init(z),P.window=z,P.document=z.document,P.usePlugin(Pa),P.usePlugin(xs),P}(this,v)}},{key:"pluginIsInstalled",value:function(v){var P=v.id;return P?!!this._plugins.map[P]:this._plugins.list.indexOf(v)!==-1}},{key:"usePlugin",value:function(v,P){if(!this.isInitialized)return this;if(this.pluginIsInstalled(v))return this;if(v.id&&(this._plugins.map[v.id]=v),this._plugins.list.push(v),v.install&&v.install(this,P),v.listeners&&v.before){for(var z=0,se=this.listenerMaps.length,me=v.before.reduce(function(Be,We){return Be[We]=!0,Be[Os(We)]=!0,Be},{});z<se;z++){var Ie=this.listenerMaps[z].id;if(Ie&&(me[Ie]||me[Os(Ie)]))break}this.listenerMaps.splice(z,0,{id:v.id,map:v.listeners})}else v.listeners&&this.listenerMaps.push({id:v.id,map:v.listeners});return this}},{key:"addDocument",value:function(v,P){if(this.getDocIndex(v)!==-1)return!1;var z=x(v);P=P?De({},P):{},this.documents.push({doc:v,options:P}),this.events.documents.push(v),v!==this.document&&this.events.add(z,"unload",this.onWindowUnload),this.fire("scope:add-document",{doc:v,window:z,scope:this,options:P})}},{key:"removeDocument",value:function(v){var P=this.getDocIndex(v),z=x(v),se=this.documents[P].options;this.events.remove(z,"unload",this.onWindowUnload),this.documents.splice(P,1),this.events.documents.splice(P,1),this.fire("scope:remove-document",{doc:v,window:z,scope:this,options:se})}},{key:"getDocIndex",value:function(v){for(var P=0;P<this.documents.length;P++)if(this.documents[P].doc===v)return P;return-1}},{key:"getDocOptions",value:function(v){var P=this.getDocIndex(v);return P===-1?null:this.documents[P].options}},{key:"now",value:function(){return(this.window.Date||Date).now()}}]),S}();function Os(S){return S&&S.replace(/\/.*$/,"")}var hs=new Ws,In=hs.interactStatic,ts=typeof globalThis<"u"?globalThis:window;hs.init(ts);var ha=Object.freeze({__proto__:null,edgeTarget:function(){},elements:function(){},grid:function(S){var v=[["x","y"],["left","top"],["right","bottom"],["width","height"]].filter(function(z){var se=z[0],me=z[1];return se in S||me in S}),P=function(z,se){for(var me=S.range,Ie=S.limits,Be=Ie===void 0?{left:-1/0,right:1/0,top:-1/0,bottom:1/0}:Ie,We=S.offset,ut=We===void 0?{x:0,y:0}:We,tt={range:me,grid:S,x:null,y:null},b=0;b<v.length;b++){var I=v[b],U=I[0],j=I[1],ie=Math.round((z-ut.x)/S[U]),ye=Math.round((se-ut.y)/S[j]);tt[U]=Math.max(Be.left,Math.min(Be.right,ie*S[U]+ut.x)),tt[j]=Math.max(Be.top,Math.min(Be.bottom,ye*S[j]+ut.y))}return tt};return P.grid=S,P.coordFields=v,P}}),Da={id:"snappers",install:function(S){var v=S.interactStatic;v.snappers=De(v.snappers||{},ha),v.createSnapGrid=v.snappers.grid}},Fi=Da,ms={start:function(S){var v=S.state,P=S.rect,z=S.edges,se=S.pageCoords,me=v.options,Ie=me.ratio,Be=me.enabled,We=v.options,ut=We.equalDelta,tt=We.modifiers;Ie==="preserve"&&(Ie=P.width/P.height),v.startCoords=De({},se),v.startRect=De({},P),v.ratio=Ie,v.equalDelta=ut;var b=v.linkedEdges={top:z.top||z.left&&!z.bottom,left:z.left||z.top&&!z.right,bottom:z.bottom||z.right&&!z.top,right:z.right||z.bottom&&!z.left};if(v.xIsPrimaryAxis=!(!z.left&&!z.right),v.equalDelta){var I=(b.left?1:-1)*(b.top?1:-1);v.edgeSign={x:I,y:I}}else v.edgeSign={x:b.left?-1:1,y:b.top?-1:1};if(Be!==!1&&De(z,b),tt!=null&&tt.length){var U=new jn(S.interaction);U.copyFrom(S.interaction.modification),U.prepareStates(tt),v.subModification=U,U.startAll(n({},S))}},set:function(S){var v=S.state,P=S.rect,z=S.coords,se=v.linkedEdges,me=De({},z),Ie=v.equalDelta?Ks:Is;if(De(S.edges,se),Ie(v,v.xIsPrimaryAxis,z,P),!v.subModification)return null;var Be=De({},P);ht(se,Be,{x:z.x-me.x,y:z.y-me.y});var We=v.subModification.setAll(n(n({},S),{},{rect:Be,edges:se,pageCoords:z,prevCoords:z,prevRect:Be})),ut=We.delta;return We.changed&&(Ie(v,Math.abs(ut.x)>Math.abs(ut.y),We.coords,We.rect),De(z,We.coords)),We.eventProps},defaults:{ratio:"preserve",equalDelta:!1,modifiers:[],enabled:!1}};function Ks(S,v,P){var z=S.startCoords,se=S.edgeSign;v?P.y=z.y+(P.x-z.x)*se.y:P.x=z.x+(P.y-z.y)*se.x}function Is(S,v,P,z){var se=S.startRect,me=S.startCoords,Ie=S.ratio,Be=S.edgeSign;if(v){var We=z.width/Ie;P.y=me.y+(We-se.height)*Be.y}else{var ut=z.height*Ie;P.x=me.x+(ut-se.width)*Be.x}}var Qs=Mn(ms,"aspectRatio"),Ns=function(){};Ns._defaults={};var wn=Ns;function oi(S,v,P){return N.func(S)?it(S,v.interactable,v.element,[P.x,P.y,v]):it(S,v.interactable,v.element)}var ti={start:function(S){var v=S.rect,P=S.startOffset,z=S.state,se=S.interaction,me=S.pageCoords,Ie=z.options,Be=Ie.elementRect,We=De({left:0,top:0,right:0,bottom:0},Ie.offset||{});if(v&&Be){var ut=oi(Ie.restriction,se,me);if(ut){var tt=ut.right-ut.left-v.width,b=ut.bottom-ut.top-v.height;tt<0&&(We.left+=tt,We.right+=tt),b<0&&(We.top+=b,We.bottom+=b)}We.left+=P.left-v.width*Be.left,We.top+=P.top-v.height*Be.top,We.right+=P.right-v.width*(1-Be.right),We.bottom+=P.bottom-v.height*(1-Be.bottom)}z.offset=We},set:function(S){var v=S.coords,P=S.interaction,z=S.state,se=z.options,me=z.offset,Ie=oi(se.restriction,P,v);if(Ie){var Be=function(We){return!We||"left"in We&&"top"in We||((We=De({},We)).left=We.x||0,We.top=We.y||0,We.right=We.right||We.left+We.width,We.bottom=We.bottom||We.top+We.height),We}(Ie);v.x=Math.max(Math.min(Be.right-me.right,v.x),Be.left+me.left),v.y=Math.max(Math.min(Be.bottom-me.bottom,v.y),Be.top+me.top)}},defaults:{restriction:null,elementRect:null,offset:null,endOnly:!1,enabled:!1}},Xs=Mn(ti,"restrict"),_s={top:1/0,left:1/0,bottom:-1/0,right:-1/0},ae={top:-1/0,left:-1/0,bottom:1/0,right:1/0};function p(S,v){for(var P=0,z=["top","left","bottom","right"];P<z.length;P++){var se=z[P];se in S||(S[se]=v[se])}return S}var o={noInner:_s,noOuter:ae,start:function(S){var v,P=S.interaction,z=S.startOffset,se=S.state,me=se.options;me&&(v=ft(oi(me.offset,P,P.coords.start.page))),v=v||{x:0,y:0},se.offset={top:v.y+z.top,left:v.x+z.left,bottom:v.y-z.bottom,right:v.x-z.right}},set:function(S){var v=S.coords,P=S.edges,z=S.interaction,se=S.state,me=se.offset,Ie=se.options;if(P){var Be=De({},v),We=oi(Ie.inner,z,Be)||{},ut=oi(Ie.outer,z,Be)||{};p(We,_s),p(ut,ae),P.top?v.y=Math.min(Math.max(ut.top+me.top,Be.y),We.top+me.top):P.bottom&&(v.y=Math.max(Math.min(ut.bottom+me.bottom,Be.y),We.bottom+me.bottom)),P.left?v.x=Math.min(Math.max(ut.left+me.left,Be.x),We.left+me.left):P.right&&(v.x=Math.max(Math.min(ut.right+me.right,Be.x),We.right+me.right))}},defaults:{inner:null,outer:null,offset:null,endOnly:!1,enabled:!1}},f=Mn(o,"restrictEdges"),g=De({get elementRect(){return{top:0,left:0,bottom:1,right:1}},set elementRect(S){}},ti.defaults),D=Mn({start:ti.start,set:ti.set,defaults:g},"restrictRect"),ue={width:-1/0,height:-1/0},Ae={width:1/0,height:1/0},Ge=Mn({start:function(S){return o.start(S)},set:function(S){var v=S.interaction,P=S.state,z=S.rect,se=S.edges,me=P.options;if(se){var Ie=wt(oi(me.min,v,S.coords))||ue,Be=wt(oi(me.max,v,S.coords))||Ae;P.options={endOnly:me.endOnly,inner:De({},o.noInner),outer:De({},o.noOuter)},se.top?(P.options.inner.top=z.bottom-Ie.height,P.options.outer.top=z.bottom-Be.height):se.bottom&&(P.options.inner.bottom=z.top+Ie.height,P.options.outer.bottom=z.top+Be.height),se.left?(P.options.inner.left=z.right-Ie.width,P.options.outer.left=z.right-Be.width):se.right&&(P.options.inner.right=z.left+Ie.width,P.options.outer.right=z.left+Be.width),o.set(S),P.options=me}},defaults:{min:null,max:null,endOnly:!1,enabled:!1}},"restrictSize"),et={start:function(S){var v,P=S.interaction,z=S.interactable,se=S.element,me=S.rect,Ie=S.state,Be=S.startOffset,We=Ie.options,ut=We.offsetWithOrigin?function(I){var U=I.interaction.element,j=ft(it(I.state.options.origin,null,null,[U])),ie=j||Pt(I.interactable,U,I.interaction.prepared.name);return ie}(S):{x:0,y:0};if(We.offset==="startCoords")v={x:P.coords.start.page.x,y:P.coords.start.page.y};else{var tt=it(We.offset,z,se,[P]);(v=ft(tt)||{x:0,y:0}).x+=ut.x,v.y+=ut.y}var b=We.relativePoints;Ie.offsets=me&&b&&b.length?b.map(function(I,U){return{index:U,relativePoint:I,x:Be.left-me.width*I.x+v.x,y:Be.top-me.height*I.y+v.y}}):[{index:0,relativePoint:null,x:v.x,y:v.y}]},set:function(S){var v=S.interaction,P=S.coords,z=S.state,se=z.options,me=z.offsets,Ie=Pt(v.interactable,v.element,v.prepared.name),Be=De({},P),We=[];se.offsetWithOrigin||(Be.x-=Ie.x,Be.y-=Ie.y);for(var ut=0,tt=me;ut<tt.length;ut++)for(var b=tt[ut],I=Be.x-b.x,U=Be.y-b.y,j=0,ie=se.targets.length;j<ie;j++){var ye=se.targets[j],Oe=void 0;(Oe=N.func(ye)?ye(I,U,v._proxy,b,j):ye)&&We.push({x:(N.number(Oe.x)?Oe.x:I)+b.x,y:(N.number(Oe.y)?Oe.y:U)+b.y,range:N.number(Oe.range)?Oe.range:se.range,source:ye,index:j,offset:b})}for(var Le={target:null,inRange:!1,distance:0,range:0,delta:{x:0,y:0}},at=0;at<We.length;at++){var gt=We[at],lt=gt.range,ot=gt.x-Be.x,mt=gt.y-Be.y,_t=Ye(ot,mt),yt=_t<=lt;lt===1/0&&Le.inRange&&Le.range!==1/0&&(yt=!1),Le.target&&!(yt?Le.inRange&<!==1/0?_t/lt<Le.distance/Le.range:lt===1/0&&Le.range!==1/0||_t<Le.distance:!Le.inRange&&_t<Le.distance)||(Le.target=gt,Le.distance=_t,Le.range=lt,Le.inRange=yt,Le.delta.x=ot,Le.delta.y=mt)}return Le.inRange&&(P.x=Le.target.x,P.y=Le.target.y),z.closest=Le,Le},defaults:{range:1/0,targets:null,offset:null,offsetWithOrigin:!0,origin:null,relativePoints:null,endOnly:!1,enabled:!1}},ct=Mn(et,"snap"),Rt={start:function(S){var v=S.state,P=S.edges,z=v.options;if(!P)return null;S.state={options:{targets:null,relativePoints:[{x:P.left?0:1,y:P.top?0:1}],offset:z.offset||"self",origin:{x:0,y:0},range:z.range}},v.targetFields=v.targetFields||[["width","height"],["x","y"]],et.start(S),v.offsets=S.state.offsets,S.state=v},set:function(S){var v=S.interaction,P=S.state,z=S.coords,se=P.options,me=P.offsets,Ie={x:z.x-me[0].x,y:z.y-me[0].y};P.options=De({},se),P.options.targets=[];for(var Be=0,We=se.targets||[];Be<We.length;Be++){var ut=We[Be],tt=void 0;if(tt=N.func(ut)?ut(Ie.x,Ie.y,v):ut){for(var b=0,I=P.targetFields;b<I.length;b++){var U=I[b],j=U[0],ie=U[1];if(j in tt||ie in tt){tt.x=tt[j],tt.y=tt[ie];break}}P.options.targets.push(tt)}}var ye=et.set(S);return P.options=se,ye},defaults:{range:1/0,targets:null,offset:null,endOnly:!1,enabled:!1}},Ut=Mn(Rt,"snapSize"),Yt={aspectRatio:Qs,restrictEdges:f,restrict:Xs,restrictRect:D,restrictSize:Ge,snapEdges:Mn({start:function(S){var v=S.edges;return v?(S.state.targetFields=S.state.targetFields||[[v.left?"left":"right",v.top?"top":"bottom"]],Rt.start(S)):null},set:Rt.set,defaults:De(Gn(Rt.defaults),{targets:void 0,range:void 0,offset:{x:0,y:0}})},"snapEdges"),snap:ct,snapSize:Ut,spring:wn,avoid:wn,transform:wn,rubberband:wn},er={id:"modifiers",install:function(S){var v=S.interactStatic;for(var P in S.usePlugin(Yn),S.usePlugin(Fi),v.modifiers=Yt,Yt){var z=Yt[P],se=z._defaults,me=z._methods;se._methods=me,S.defaults.perAction[P]=se}}},kr=er,rn=function(S){d(P,S);var v=y(P);function P(z,se,me,Ie,Be,We){var ut;if(s(this,P),Dt(_(ut=v.call(this,Be)),me),me!==se&&Dt(_(ut),se),ut.timeStamp=We,ut.originalEvent=me,ut.type=z,ut.pointerId=le(se),ut.pointerType=Ne(se),ut.target=Ie,ut.currentTarget=null,z==="tap"){var tt=Be.getPointerIndex(se);ut.dt=ut.timeStamp-Be.pointers[tt].downTime;var b=ut.timeStamp-Be.tapTime;ut.double=!!Be.prevTap&&Be.prevTap.type!=="doubletap"&&Be.prevTap.target===ut.target&&b<500}else z==="doubletap"&&(ut.dt=se.timeStamp-Be.tapTime,ut.double=!0);return ut}return l(P,[{key:"_subtractOrigin",value:function(z){var se=z.x,me=z.y;return this.pageX-=se,this.pageY-=me,this.clientX-=se,this.clientY-=me,this}},{key:"_addOrigin",value:function(z){var se=z.x,me=z.y;return this.pageX+=se,this.pageY+=me,this.clientX+=se,this.clientY+=me,this}},{key:"preventDefault",value:function(){this.originalEvent.preventDefault()}}]),P}(Xe),hr={id:"pointer-events/base",before:["inertia","modifiers","auto-start","actions"],install:function(S){S.pointerEvents=hr,S.defaults.actions.pointerEvents=hr.defaults,De(S.actions.phaselessTypes,hr.types)},listeners:{"interactions:new":function(S){var v=S.interaction;v.prevTap=null,v.tapTime=0},"interactions:update-pointer":function(S){var v=S.down,P=S.pointerInfo;!v&&P.hold||(P.hold={duration:1/0,timeout:null})},"interactions:move":function(S,v){var P=S.interaction,z=S.pointer,se=S.event,me=S.eventTarget;S.duplicate||P.pointerIsDown&&!P.pointerWasMoved||(P.pointerIsDown&&li(S),Br({interaction:P,pointer:z,event:se,eventTarget:me,type:"move"},v))},"interactions:down":function(S,v){(function(P,z){for(var se=P.interaction,me=P.pointer,Ie=P.event,Be=P.eventTarget,We=P.pointerIndex,ut=se.pointers[We].hold,tt=qe(Be),b={interaction:se,pointer:me,event:Ie,eventTarget:Be,type:"hold",targets:[],path:tt,node:null},I=0;I<tt.length;I++){var U=tt[I];b.node=U,z.fire("pointerEvents:collect-targets",b)}if(b.targets.length){for(var j=1/0,ie=0,ye=b.targets;ie<ye.length;ie++){var Oe=ye[ie].eventable.options.holdDuration;Oe<j&&(j=Oe)}ut.duration=j,ut.timeout=setTimeout(function(){Br({interaction:se,eventTarget:Be,pointer:me,event:Ie,type:"hold"},z)},j)}})(S,v),Br(S,v)},"interactions:up":function(S,v){li(S),Br(S,v),function(P,z){var se=P.interaction,me=P.pointer,Ie=P.event,Be=P.eventTarget;se.pointerWasMoved||Br({interaction:se,eventTarget:Be,pointer:me,event:Ie,type:"tap"},z)}(S,v)},"interactions:cancel":function(S,v){li(S),Br(S,v)}},PointerEvent:rn,fire:Br,collectEventTargets:xi,defaults:{holdDuration:600,ignoreFrom:null,allowFrom:null,origin:{x:0,y:0}},types:{down:!0,move:!0,up:!0,cancel:!0,tap:!0,doubletap:!0,hold:!0}};function Br(S,v){var P=S.interaction,z=S.pointer,se=S.event,me=S.eventTarget,Ie=S.type,Be=S.targets,We=Be===void 0?xi(S,v):Be,ut=new rn(Ie,z,se,me,P,v.now());v.fire("pointerEvents:new",{pointerEvent:ut});for(var tt={interaction:P,pointer:z,event:se,eventTarget:me,targets:We,type:Ie,pointerEvent:ut},b=0;b<We.length;b++){var I=We[b];for(var U in I.props||{})ut[U]=I.props[U];var j=Pt(I.eventable,I.node);if(ut._subtractOrigin(j),ut.eventable=I.eventable,ut.currentTarget=I.node,I.eventable.fire(ut),ut._addOrigin(j),ut.immediatePropagationStopped||ut.propagationStopped&&b+1<We.length&&We[b+1].node!==ut.currentTarget)break}if(v.fire("pointerEvents:fired",tt),Ie==="tap"){var ie=ut.double?Br({interaction:P,pointer:z,event:se,eventTarget:me,type:"doubletap"},v):ut;P.prevTap=ie,P.tapTime=ie.timeStamp}return ut}function xi(S,v){var P=S.interaction,z=S.pointer,se=S.event,me=S.eventTarget,Ie=S.type,Be=P.getPointerIndex(z),We=P.pointers[Be];if(Ie==="tap"&&(P.pointerWasMoved||!We||We.downTarget!==me))return[];for(var ut=qe(me),tt={interaction:P,pointer:z,event:se,eventTarget:me,type:Ie,path:ut,targets:[],node:null},b=0;b<ut.length;b++){var I=ut[b];tt.node=I,v.fire("pointerEvents:collect-targets",tt)}return Ie==="hold"&&(tt.targets=tt.targets.filter(function(U){var j,ie;return U.eventable.options.holdDuration===((j=P.pointers[Be])==null||(ie=j.hold)==null?void 0:ie.duration)})),tt.targets}function li(S){var v=S.interaction,P=S.pointerIndex,z=v.pointers[P].hold;z&&z.timeout&&(clearTimeout(z.timeout),z.timeout=null)}var ma=Object.freeze({__proto__:null,default:hr});function Js(S){var v=S.interaction;v.holdIntervalHandle&&(clearInterval(v.holdIntervalHandle),v.holdIntervalHandle=null)}var Rs={id:"pointer-events/holdRepeat",install:function(S){S.usePlugin(hr);var v=S.pointerEvents;v.defaults.holdRepeatInterval=0,v.types.holdrepeat=S.actions.phaselessTypes.holdrepeat=!0},listeners:["move","up","cancel","endall"].reduce(function(S,v){return S["pointerEvents:".concat(v)]=Js,S},{"pointerEvents:new":function(S){var v=S.pointerEvent;v.type==="hold"&&(v.count=(v.count||0)+1)},"pointerEvents:fired":function(S,v){var P=S.interaction,z=S.pointerEvent,se=S.eventTarget,me=S.targets;if(z.type==="hold"&&me.length){var Ie=me[0].eventable.options.holdRepeatInterval;Ie<=0||(P.holdIntervalHandle=setTimeout(function(){v.pointerEvents.fire({interaction:P,eventTarget:se,type:"hold",pointer:z,event:z},v)},Ie))}}})},Zs=Rs,ea={id:"pointer-events/interactableTargets",install:function(S){var v=S.Interactable;v.prototype.pointerEvents=function(z){return De(this.events.options,z),this};var P=v.prototype._backCompatOption;v.prototype._backCompatOption=function(z,se){var me=P.call(this,z,se);return me===this&&(this.events.options[z]=se),me}},listeners:{"pointerEvents:collect-targets":function(S,v){var P=S.targets,z=S.node,se=S.type,me=S.eventTarget;v.interactables.forEachMatch(z,function(Ie){var Be=Ie.events,We=Be.options;Be.types[se]&&Be.types[se].length&&Ie.testIgnoreAllow(We,z,me)&&P.push({node:z,eventable:Be,props:{interactable:Ie}})})},"interactable:new":function(S){var v=S.interactable;v.events.getRect=function(P){return v.getRect(P)}},"interactable:set":function(S,v){var P=S.interactable,z=S.options;De(P.events.options,v.pointerEvents.defaults),De(P.events.options,z.pointerEvents||{})}}},_a=ea,ga={id:"pointer-events",install:function(S){S.usePlugin(ma),S.usePlugin(Zs),S.usePlugin(_a)}},ya=ga,gs={id:"reflow",install:function(S){var v=S.Interactable;S.actions.phases.reflow=!0,v.prototype.reflow=function(P){return function(z,se,me){for(var Ie=z.getAllElements(),Be=me.window.Promise,We=Be?[]:null,ut=function(){var b=Ie[tt],I=z.getRect(b);if(!I)return 1;var U,j=ee(me.interactions.list,function(Oe){return Oe.interacting()&&Oe.interactable===z&&Oe.element===b&&Oe.prepared.name===se.name});if(j)j.move(),We&&(U=j._reflowPromise||new Be(function(Oe){j._reflowResolve=Oe}));else{var ie=wt(I),ye=function(Oe){return{coords:Oe,get page(){return this.coords.page},get client(){return this.coords.client},get timeStamp(){return this.coords.timeStamp},get pageX(){return this.coords.page.x},get pageY(){return this.coords.page.y},get clientX(){return this.coords.client.x},get clientY(){return this.coords.client.y},get pointerId(){return this.coords.pointerId},get target(){return this.coords.target},get type(){return this.coords.type},get pointerType(){return this.coords.pointerType},get buttons(){return this.coords.buttons},preventDefault:function(){}}}({page:{x:ie.x,y:ie.y},client:{x:ie.x,y:ie.y},timeStamp:me.now()});U=function(Oe,Le,at,gt,lt){var ot=Oe.interactions.new({pointerType:"reflow"}),mt={interaction:ot,event:lt,pointer:lt,eventTarget:at,phase:"reflow"};ot.interactable=Le,ot.element=at,ot.prevEvent=lt,ot.updatePointer(lt,lt,at,!0),Ue(ot.coords.delta),qn(ot.prepared,gt),ot._doPhase(mt);var _t=Oe.window,yt=_t.Promise,bt=yt?new yt(function(vt){ot._reflowResolve=vt}):void 0;return ot._reflowPromise=bt,ot.start(gt,Le,at),ot._interacting?(ot.move(mt),ot.end(lt)):(ot.stop(),ot._reflowResolve()),ot.removePointer(lt,lt),bt}(me,z,b,se,ye)}We&&We.push(U)},tt=0;tt<Ie.length&&!ut();tt++);return We&&Be.all(We).then(function(){return z})}(this,P,S)}},listeners:{"interactions:stop":function(S,v){var P=S.interaction;P.pointerType==="reflow"&&(P._reflowResolve&&P._reflowResolve(),function(z,se){z.splice(z.indexOf(se),1)}(v.interactions.list,P))}}},_i=gs;if(In.use(Lr),In.use(Xt),In.use(ya),In.use(ds),In.use(kr),In.use(ji),In.use(Si),In.use(Ni),In.use(_i),In.default=In,i(t)==="object"&&t)try{t.exports=In}catch{}return In.default=In,In})}(Hp,Hp.exports);var Q3=Hp.exports;const Za=dg(Q3);class X3{constructor(e,r){this._state={isDragging:!1,isResizing:!1,interactionMode:"none"},this._isEnabled=!1,this._draggable=!0,this._resizable=!0,this._host=e,this._draggable=(r==null?void 0:r.draggable)??!0,this._resizable=(r==null?void 0:r.resizable)??!0,this._prefersReducedMotion=window.matchMedia("(prefers-reduced-motion: reduce)").matches,this._boundHandleMotionPreference=n=>{this._prefersReducedMotion=n.matches},this.value={state:this._state,actions:{enable:()=>this._enable(),disable:()=>this._disable(),enterMoveMode:()=>this._enterMoveMode(),enterResizeMode:()=>this._enterResizeMode(),exitInteractionMode:()=>this._exitInteractionMode()}},window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",this._boundHandleMotionPreference)}setConfig(e){this._draggable=e.draggable??!0,this._resizable=e.resizable??!0,this._windowElement&&Za(this._windowElement).unset(),this._titleBarElement&&Za(this._titleBarElement).unset(),this._isEnabled&&this._initInteractions()}get draggable(){return this._draggable}get resizable(){return this._resizable}bindElements(e,r){this._windowElement=e,this._titleBarElement=r,this._initInteractions()}hostConnected(){}hostDisconnected(){window.matchMedia("(prefers-reduced-motion: reduce)").removeEventListener("change",this._boundHandleMotionPreference),this.destroy()}destroy(){this._windowElement&&Za(this._windowElement).unset(),this._titleBarElement&&Za(this._titleBarElement).unset(),this._isEnabled=!1}_enable(){!this._windowElement||!this._titleBarElement||(this._isEnabled=!0,this._initInteractions())}_disable(){this._isEnabled=!1,this._windowElement&&Za(this._windowElement).unset(),this._titleBarElement&&Za(this._titleBarElement).unset()}_initInteractions(){!this._isEnabled||!this._windowElement||!this._titleBarElement||(this._initDrag(),this._initResize(),this._initKeyboard())}_initDrag(){!this._titleBarElement||!this._draggable||Za(this._titleBarElement).draggable({listeners:{start:()=>this._onDragStart(),move:e=>this._onDragMove(e),end:()=>this._onDragEnd()},inertia:!this._prefersReducedMotion})}_initResize(){if(!this._windowElement||!this._resizable)return;const e=this._getMinSize(),r=this._getMargin();Za(this._windowElement).resizable({edges:{top:!0,right:!0,bottom:!0,left:!0},listeners:{start:()=>this._onResizeStart(),move:n=>this._onResizeMove(n),end:()=>this._onResizeEnd()},modifiers:[Za.modifiers.restrictSize({min:e,max:{width:window.innerWidth-2*r,height:window.innerHeight-2*r}})],inertia:!this._prefersReducedMotion})}_initKeyboard(){this._titleBarElement&&this._titleBarElement.addEventListener("keydown",e=>{var r;if(e.key==="Enter"||e.key===" "){e.preventDefault(),this._enterMoveMode();return}if(this._state.interactionMode==="move"){const n=e.shiftKey?20:10;let i=0,s=0;switch(e.key){case"ArrowUp":s=-n;break;case"ArrowDown":s=n;break;case"ArrowLeft":i=-n;break;case"ArrowRight":i=n;break;case"Escape":e.preventDefault(),this._exitInteractionMode();return;default:return}e.preventDefault();const a=this._windowElement;if(!a)return;const l=a.getBoundingClientRect(),c=this._getMargin(),d=Math.max(c,Math.min(l.left+i,window.innerWidth-l.width-c)),u=Math.max(c,Math.min(l.top+s,window.innerHeight-l.height-c));(r=this.onPositionChange)==null||r.call(this,d,u)}})}_enterMoveMode(){var e;this._state={...this._state,interactionMode:"move"},(e=this._titleBarElement)==null||e.setAttribute("aria-grabbed","true"),this._host.requestUpdate()}_enterResizeMode(){this._state={...this._state,interactionMode:"resize"},this._host.requestUpdate()}_exitInteractionMode(){var e;this._state={...this._state,interactionMode:"none"},(e=this._titleBarElement)==null||e.setAttribute("aria-grabbed","false"),this._host.requestUpdate()}_onDragStart(){var e;this._state={...this._state,isDragging:!0},(e=this._windowElement)==null||e.classList.add("dragging"),this._host.requestUpdate()}_onDragMove(e){var l;if(!this._windowElement)return;const r=this._getMargin(),n={width:window.innerWidth,height:window.innerHeight},i=this._windowElement.getBoundingClientRect();let s=i.left+e.dx,a=i.top+e.dy;s=Math.max(r,Math.min(s,n.width-i.width-r)),a=Math.max(r,Math.min(a,n.height-i.height-r)),(l=this.onPositionChange)==null||l.call(this,s,a)}_onDragEnd(){var e;this._state={...this._state,isDragging:!1},(e=this._windowElement)==null||e.classList.remove("dragging"),this._host.requestUpdate()}_onResizeStart(){var e;this._state={...this._state,isResizing:!0},(e=this._windowElement)==null||e.classList.add("resizing"),this._host.requestUpdate()}_onResizeMove(e){var a,l;if(!this._windowElement)return;const{width:r,height:n}=e.rect,i=this._getMargin(),s=e.edges;if(s!=null&&s.left||s!=null&&s.top){const c=this._windowElement.getBoundingClientRect(),d=s.left?e.rect.left:c.left,u=s.top?e.rect.top:c.top,h=Math.max(i,Math.min(d,window.innerWidth-r-i)),_=Math.max(i,Math.min(u,window.innerHeight-n-i));this._windowElement.style.left=`${h}px`,this._windowElement.style.top=`${_}px`,(a=this.onPositionChange)==null||a.call(this,h,_)}(l=this.onSizeChange)==null||l.call(this,r,n)}_onResizeEnd(){var e;this._state={...this._state,isResizing:!1},(e=this._windowElement)==null||e.classList.remove("resizing"),this._host.requestUpdate()}_getMargin(){if(!this._windowElement)return 20;const r=getComputedStyle(this._windowElement).getPropertyValue("--rtc-window-margin");return parseInt(r)||20}_getMinSize(){if(!this._windowElement)return{width:350,height:520};const e=getComputedStyle(this._windowElement);return{width:parseInt(e.getPropertyValue("--rtc-window-min-width"))||350,height:parseInt(e.getPropertyValue("--rtc-window-min-height"))||520}}}function Kx(){let t=localStorage.getItem(vn.deviceId);return t||(t=crypto.randomUUID(),localStorage.setItem(vn.deviceId,t)),t}function J3(){const t=localStorage.getItem(vn.deviceName);return t||Z3()}function Z3(){const t=navigator.userAgent;return/Macintosh|Mac OS X/.test(t)?"Mac":/Windows/.test(t)?"Windows PC":/Linux/.test(t)?"Linux PC":/iPhone|iPad/.test(t)?"iOS Device":/Android/.test(t)?"Android Device":"Unknown Device"}/**
|
|
518
518
|
* @license
|
|
519
519
|
* Copyright 2019 Google LLC
|
|
520
520
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -3129,7 +3129,7 @@ Please consider using \`${n}\`${i}, or add @babel/plugin-transform-modules-commo
|
|
|
3129
3129
|
return (async () => {
|
|
3130
3130
|
${i}
|
|
3131
3131
|
})();
|
|
3132
|
-
`,c=new Function(...s,l);let d;const u=new Promise((h,_)=>{d=setTimeout(()=>{_(new CV(r))},r)});try{const h=c.call(void 0,...a);return await Promise.race([h,u])}finally{d!==void 0&&clearTimeout(d)}}async function MV(t,e,r){const n=DV(t,e,r),i=`/scripts/${t}.ts`;return await jr.write(i,n,"overwrite"),i}async function rp(t){try{return{success:!0,data:await t()}}catch(e){return e instanceof ld?{success:!1,error:e.message}:e instanceof SyntaxError?{success:!1,error:e.message}:{success:!1,error:e instanceof Error?e.message:String(e)}}}function qs(t,e){const r=t[e];if(r==null)return null;if(typeof r!="string")throw new TypeError(`Parameter '${e}' must be a string, got ${typeof r}`);return r}function np(t,e){const r=t[e];if(r==null)return null;if(typeof r=="number"&&!isNaN(r))return r;if(typeof r=="string"){const n=Number(r);if(!isNaN(n))return n}throw new TypeError(`Parameter '${e}' must be a number, got ${typeof r}`)}const W2=["overwrite","append","create-new"];function LV(t){return typeof t=="string"&&W2.includes(t)}class BV{constructor(){gr(this,"name","ls");gr(this,"description","List directory contents")}async execute(e){const r=qs(e,"path")||"/";return rp(()=>jr.ls(r))}}class FV{constructor(){gr(this,"name","read");gr(this,"description","Read file contents")}async execute(e){const r=qs(e,"path");if(!r)return{success:!1,error:"path is required"};const n=np(e,"offset")??void 0,i=np(e,"limit")??void 0;return rp(()=>jr.read(r,n,i))}}class UV{constructor(){gr(this,"name","write");gr(this,"description","Write to file")}async execute(e){const r=qs(e,"path");if(!r)return{success:!1,error:"path is required"};const n=e.content||"",i=e.mode??"overwrite";return LV(i)?rp(async()=>({totalChars:await jr.write(r,n,i),path:r})):{success:!1,error:`Invalid mode '${i}'. Must be one of: ${W2.join(", ")}`}}}class qV{constructor(){gr(this,"name","find");gr(this,"description","Find files by pattern")}async execute(e){const r=qs(e,"pattern");if(!r)return{success:!1,error:"pattern is required"};const n=qs(e,"path")||"/";return rp(()=>jr.find(r,n))}}class $V{constructor(){gr(this,"name","grep");gr(this,"description","Search file contents")}async execute(e){const r=qs(e,"pattern");if(!r)return{success:!1,error:"pattern is required"};const n=qs(e,"path")||"/",i=e.case_sensitive||!1,s=np(e,"max_results")??100;return rp(()=>jr.grep(r,n,i,s))}}class K2{constructor(e){gr(this,"name","script");gr(this,"description","Save or execute scripts. Actions: save (save script to /scripts/), run (execute saved script), eval (execute inline code)");gr(this,"rtcAgent");this.rtcAgent=e??null}async execute(e){let r=qs(e,"action");return r||(r="eval"),r==="save"?this._saveScript(e):r==="run"?this._runScript(e):r==="eval"?this._evalScript(e):{success:!1,error:`Unknown action: ${r}. Use save, run, or eval.`}}async _saveScript(e){const r=qs(e,"name");if(!r)return{success:!1,error:"name is required for save action"};const n=qs(e,"code");if(!n)return{success:!1,error:"code is required for save action"};const i=qs(e,"description")||void 0;try{H2(n,r)}catch(s){return s instanceof Error&&"isScriptCompileError"in s?{success:!1,error:`Script syntax check failed: ${s.message}`}:{success:!1,error:`Script syntax check failed: ${s instanceof Error?s.message:String(s)}`}}try{return{success:!0,data:{path:await MV(r,n,i),name:r}}}catch(s){return{success:!1,error:`Failed to save script: ${s instanceof Error?s.message:String(s)}`}}}async _runScript(e){const r=qs(e,"name");if(!r)return{success:!1,error:"name is required for run action"};const n=e.params||{},i=np(e,"timeout")??3e4;return this._executeCode(r,n,i)}async _evalScript(e){const r=qs(e,"code");if(!r)return{success:!1,error:"code is required for eval action"};const n=e.params||{},i=np(e,"timeout")??3e4;return this._executeCode(void 0,n,i,r)}async _executeCode(e,r,n,i){if(!this.rtcAgent)return{success:!1,error:"rtcAgent not initialized. Pass rtcAgent to ScriptTool constructor."};try{let s;if(i!==void 0)s=i;else{const u=`/scripts/${e}.ts`,h=await jr.read(u);s=PV(h).code}const a={logs:[],warns:[],errors:[]},l=wV(this.rtcAgent,r,a),c=await kV(s,l,n,e),d={};return e&&(d.name=e),c!==void 0&&(d.result=c),a.logs.length>0&&(d.logs=a.logs),a.warns.length>0&&(d.warnings=a.warns),a.errors.length>0&&(d.errors=a.errors),{success:!0,data:d}}catch(s){return s instanceof Error&&"isScriptTimeout"in s?{success:!1,error:s.message}:s instanceof Error&&"isScriptCompileError"in s?{success:!1,error:`Script compile error: ${s.message}`}:{success:!1,error:`Script execution failed: ${s instanceof Error?s.message:String(s)}`}}}}function GV(t){return[new BV,new FV,new UV,new qV,new $V,new K2(t)]}class jV{constructor(e){gr(this,"tools",new Map);const r=GV(e);for(const n of r)this.register(n)}setRtcAgent(e){this.register(new K2(e))}register(e){this.tools.set(e.name,e)}get(e){return this.tools.get(e)}has(e){return this.tools.has(e)}getToolNames(){return Array.from(this.tools.keys())}async execute(e,r){const n=this.tools.get(e);if(!n)throw new Error(`Tool not found: ${e}`);return n.execute(r)}}const Q2=new jV;class VV{constructor(e){gr(this,"persistence");gr(this,"processing",!1);gr(this,"pendingCheck",!1);gr(this,"retryCountMap",new Map);gr(this,"mode","edit");gr(this,"confirmDialog");gr(this,"askUserDialog");gr(this,"master");this.persistence=e}setMode(e){this.mode=e}getMode(){return this.mode}setConfirmDialog(e){this.confirmDialog=e}setAskUserDialog(e){this.askUserDialog=e}setMaster(e){this.master=e}_isMasterAllowed(){return this.master===void 0||this.master.isMaster}async onRtcUpdate(){if(console.log("[RtcProcessor] onRtcUpdate called, processing:",this.processing),this.processing){this.pendingCheck=!0;return}await this.processLoop()}async processLoop(){if(!this._isMasterAllowed()){console.log("[RtcProcessor] processLoop: not master, skipping");return}this.processing=!0,console.log("[RtcProcessor] processLoop started");try{for(;;){this.pendingCheck=!1;const e=await this.persistence.getNextRtcToProcess();if(!e){if(console.log("[RtcProcessor] processLoop: no more RTC to process, exiting"),this.pendingCheck)continue;break}console.log("[RtcProcessor] processing RTC:",e.client_id,"tool:",e.tool_name,"sync_status:",e.sync_status);try{await this.processOne(e),console.log("[RtcProcessor] processOne completed successfully")}catch(r){console.error("[RtcProcessor] processOne failed:",r);const n=r instanceof Error?r.message:String(r);if(n.includes("connection")||n.includes("disconnected")){console.warn("[RtcProcessor] connection error detected, exiting processLoop");break}await this.sleep(1e3)}}}finally{this.processing=!1,console.log("[RtcProcessor] processLoop finished")}}async processOne(e){if(e.sync_status==="failed"){const r=this.retryCountMap.get(e.client_id)||0,n=this.calculateBackoff(r);await this.sleep(n);try{await this.persistence.submitRtcResult({rtcClientId:e.client_id,success:e.status==="completed",result:e.result,error:e.error_message}),this.retryCountMap.delete(e.client_id)}catch(i){throw this.retryCountMap.set(e.client_id,r+1),i}}else{const r=e.tool_name;if(r==="ask_user"){await this.processAskUser(e);return}const n=F4.needsConfirm(r,this.mode);let i=!0;if(n&&(i=await this.showConfirmDialog(e)),!i){try{await this.persistence.submitRtcResult({rtcClientId:e.client_id,success:!1,error:"User denied"})}catch(c){console.error("[RtcProcessor] submitRtcResult (denied) failed:",c)}return}let s,a=!0,l;try{const c=e.parameters||{},d=await Q2.execute(r,c);s=d.data,d.success||(a=!1,l=d.error)}catch(c){a=!1,l=c instanceof Error?c.message:String(c)}try{await this.persistence.submitRtcResult({rtcClientId:e.client_id,success:a,result:s,error:l})}catch(c){console.error("[RtcProcessor] submitRtcResult failed:",c)}}}async processAskUser(e){if(!this.askUserDialog){console.warn("[RtcProcessor] askUserDialog not set, defaulting to reject");try{await this.persistence.submitRtcResult({rtcClientId:e.client_id,success:!1,error:"User declined to answer questions"})}catch(n){console.error("[RtcProcessor] submitRtcResult (ask_user no dialog) failed:",n)}return}let r;try{r=await this.askUserDialog(e)}catch(n){console.error("[RtcProcessor] askUserDialog threw:",n);try{await this.persistence.submitRtcResult({rtcClientId:e.client_id,success:!1,error:n instanceof Error?n.message:String(n)})}catch(i){console.error("[RtcProcessor] submitRtcResult (ask_user error) failed:",i)}return}try{r===null?await this.persistence.submitRtcResult({rtcClientId:e.client_id,success:!1,error:"User declined to answer questions"}):await this.persistence.submitRtcResult({rtcClientId:e.client_id,success:!0,result:r})}catch(n){console.error("[RtcProcessor] submitRtcResult (ask_user) failed:",n)}}calculateBackoff(e){return Math.min(1e3*Math.pow(2,e),3e4)}sleep(e){return new Promise(r=>setTimeout(r,e))}async showConfirmDialog(e){return this.confirmDialog?this.confirmDialog(e):(console.warn("[RtcProcessor] confirmDialog not set, defaulting to reject"),!1)}}function X2(t){return new SharedWorker(""+(typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__dirname+"/assets/shared-worker-DWdeA8LH.js").href:new URL("assets/shared-worker-DWdeA8LH.js",typeof document>"u"?location.href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&document.currentScript.src||document.baseURI).href),{name:t==null?void 0:t.name})}function YV(t){const e=t.toString(),r=e.match(/new URL\(\s*(["'`])([^"'`]+)\1/);if(r)return r[2];const n=e.match(/new SharedWorker\(\s*(["'`])([^"'`]+)\1/);if(n)return n[2];throw new Error("[WorkerBridge] Cannot extract worker URL from factory. Source: "+e.slice(0,300))}const hl=class hl{constructor(e){this._auth=e,this._worker=null,this._core=null,this._initialized=!1,this._tokenPromise=null,this._connectionListeners=new Set,this._callbacks={onUIUpdate:r=>{tf().publish(r)},requestToken:()=>this._tokenPromise?this._tokenPromise:(this._tokenPromise=(async()=>{try{const r=this._auth.getAccessToken();if(!r)throw new Error("[WorkerBridge] no access token available");return r}finally{this._tokenPromise=null}})(),this._tokenPromise),requestTokenRefresh:()=>this._auth.handleTokenExpired(),onConnectionStateChange:r=>{for(const n of this._connectionListeners)try{n(r)}catch(i){console.error("[WorkerBridge] connection listener error:",i)}}},this._proxiedCallbacks=sA(this._callbacks)}async initWorker(){let e=null;for(let r=0;r<=hl.MAX_INIT_RETRIES;r++)try{r>0&&(console.warn(`[WorkerBridge] Retrying worker initialization (attempt ${r+1}/${hl.MAX_INIT_RETRIES+1})...`),await this._delay(hl.INIT_RETRY_DELAY_MS*r)),await this._initWorkerOnce(),await this._verifyWorkerAlive();return}catch(n){e=n instanceof Error?n:new Error(String(n)),console.error(`[WorkerBridge] Worker initialization attempt ${r+1} failed:`,e.message),this._cleanupFailedWorker()}throw new Error(`[WorkerBridge] Failed to initialize SharedWorker after ${hl.MAX_INIT_RETRIES+1} attempts: ${e==null?void 0:e.message}`)}async _initWorkerOnce(){const e=YV(X2),r=typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:rs&&rs.tagName.toUpperCase()==="SCRIPT"&&rs.src||new URL("index.umd.js",document.baseURI).href,n=new URL(e,r).href,i=window.location.origin;let s;try{s=new URL(n).origin}catch{s=i}const a=s!==i;if(console.info("[WorkerBridge] worker init:",{workerUrl:n,pageOrigin:i,workerOrigin:s,isCrossOrigin:a}),!a)this._worker=new X2;else{let l;try{const u=await fetch(n,{cache:"no-store"});if(!u.ok)throw new Error(`HTTP ${u.status} ${u.statusText}`);l=await u.text()}catch(u){throw new Error(`[WorkerBridge] failed to fetch worker script from ${n}: ${u instanceof Error?u.message:u}`)}const c=new Blob([l],{type:"application/javascript"}),d=URL.createObjectURL(c);try{this._worker=new SharedWorker(d,{name:"rtc-agent-worker",type:"module"})}finally{URL.revokeObjectURL(d)}}this._core=tA(this._worker.port),this._worker.onerror=l=>{console.error("[WorkerBridge] SharedWorker error:",{message:l.message,filename:l.filename,lineno:l.lineno,colno:l.colno,error:l.error})},this._worker.port.onmessageerror=l=>{console.error("[WorkerBridge] port message error:",l)}}async _verifyWorkerAlive(){if(!this._core)throw new Error("[WorkerBridge] No core available for verification");const e=new Promise((r,n)=>{setTimeout(()=>n(new Error("Worker verification timed out")),5e3)});try{const r=await Promise.race([this._core.ping(),e]);if(r!=="pong")throw new Error(`Unexpected ping response: ${r}`);console.info("[WorkerBridge] Worker verification successful")}catch(r){throw new Error(`[WorkerBridge] Worker verification failed: ${r instanceof Error?r.message:"unknown error"}`)}}_cleanupFailedWorker(){if(this._worker){try{this._worker.port.close()}catch{}this._worker=null}this._core=null}_delay(e){return new Promise(r=>setTimeout(r,e))}get core(){return this._core}async init(e){if(this._initialized){console.warn("[WorkerBridge] already initialized");return}if(!this._worker||!this._core)throw new Error("[WorkerBridge] init() called before initWorker()");this._worker.port.start(),await this._core.init(e),await this._core.registerCallback(this._proxiedCallbacks),this._initialized=!0}async destroy(){if(this._initialized&&!(!this._worker||!this._core)){try{await this._core.unregisterCallback(this._proxiedCallbacks)}catch(e){console.warn("[WorkerBridge] unregisterCallback failed:",e)}this._connectionListeners.clear(),this._worker.port.close(),this._initialized=!1}}async getConnectionState(){return this._core.getConnectionState()}onConnectionStateChange(e){return this._connectionListeners.add(e),()=>{this._connectionListeners.delete(e)}}installVirtualFSProxy(){const e=this._core;jr.read=(r,n,i)=>e.virtualFSRead(r,n,i),jr.write=(r,n,i="overwrite",s)=>e.virtualFSWrite(r,n,i,s),jr.ls=r=>e.virtualFSLs(r),jr.find=(r,n)=>e.virtualFSFind(r,n),jr.grep=(r,n,i,s)=>e.virtualFSGrep(r,n,i,s),jr.queryByType=r=>e.virtualFSQueryByType(r),jr.exists=r=>e.virtualFSExists(r),jr.remove=r=>e.virtualFSRemove(r)}};hl.MAX_INIT_RETRIES=3,hl.INIT_RETRY_DELAY_MS=1e3;let kE=hl;class zV{constructor(e){this._isMaster=!1,this._controlled=!1,this._lockName=`rtc-agent-master-${e}`}get isMaster(){return this._isMaster}get isControlled(){return this._controlled}async acquire(){var e;if(this._controlled){console.warn("[MasterLock] already acquiring/acquired, ignoring");return}if(!this._isWebLocksAvailable()){console.warn("[MasterLock] Web Locks API not available, acting as always-master"),this._isMaster=!0,this._controlled=!0,(e=this.onAcquire)==null||e.call(this);return}this._controlled=!0,this._abortController=new AbortController,navigator.locks.request(this._lockName,{signal:this._abortController.signal},async()=>{var r,n;this._isMaster=!0,console.info("[MasterLock] acquired lock → became Master"),(r=this.onAcquire)==null||r.call(this),await new Promise(i=>{this._releaseResolve=i}),this._isMaster=!1,console.info("[MasterLock] released lock → lost Master"),(n=this.onRelease)==null||n.call(this)}).catch(r=>{r instanceof DOMException&&r.name==="AbortError"||console.error("[MasterLock] lock request error:",r)})}release(){this._controlled&&(this._releaseResolve&&(this._releaseResolve(),this._releaseResolve=void 0),!this._isMaster&&this._abortController&&this._abortController.abort(),this._controlled=!1)}_isWebLocksAvailable(){return typeof navigator<"u"&&"locks"in navigator}}function Wne(t){return t}class HV{constructor(e){this._core=e}async connect(){console.log("[PersistenceController] connect() called"),await this._core.connect(),console.log("[PersistenceController] connect() completed, worker state:",await this._core.getConnectionState())}disconnect(){this._core.disconnect()}async reconnect(){await this._core.reconnect()}async listSessions(e,r){return this._core.listSessions(e,r)}async getSession(e){return this._core.getSession(e)}async getSessionByClientId(e){return this._core.getSession(e)}async listMessages(e,r,n,i){return this._core.listMessages(e,r,n,i)}async getMessage(e){return this._core.getMessage(e)}async listRtc(e,r,n){return this._core.listRtc(e,r,n)}async getNextRtcToProcess(e){return this._core.getNextRtcToProcess(e)}async sendMessage(e){return this._core.sendMessage(e)}async insertLocalMessage(e){return this._core.insertLocalMessage(e)}async stopTurn(e){return this._core.stopTurn(e)}async compactSession(e,r){return this._core.compactSession(e,r)}async submitRtcResult(e){return this._core.submitRtcResult(e)}async forkSession(e){return this._core.forkSession(e)}async deleteSession(e){return this._core.deleteSession(e)}async updateSessionTitle(e,r){return this._core.updateSessionTitle(e,r)}async close(){await this._core.close()}async flushAll(){return this._core.flushAll()}async initializeVirtualFS(e){await this._core.initializeVirtualFS(e??{})}getClient(){throw new Error("[WorkerPersistenceAdapter] getClient() is not available. Use PersistenceController.onConnectionStateChange() instead.")}getOffsetManager(){return{reset:()=>this._core.resetOffset()}}getEntityRepository(){throw new Error("[WorkerPersistenceAdapter] getEntityRepository() is not available.")}}const ml=class ml{constructor(e,r){this._auth=r,e.addController(this)}get layer(){return this._layer}get isConnected(){return this._layer!==void 0}get workerBridge(){return this._workerBridge}get masterLock(){return this._masterLock}hostConnected(){}hostDisconnected(){this.disconnect()}async connect(){if(this._layer)return;const e=Kx(),r=this._auth.state.userId;if(!r)throw new Error("[PersistenceController] connect() called without userId; refusing to open a shared database");const n={databaseName:`rtc-agent-${r}`,client:{endpoint:ko.wsEndpoint,getToken:()=>{const i=this._auth.getAccessToken();if(!i)throw console.warn("[PersistenceController] getToken → no access token available"),new Error("No access token available");return i},onTokenExpired:()=>this._auth.handleTokenExpired(),deviceId:e,userId:r}};await this._connectWorker(n)}async _connectWorker(e){let r=null;for(let n=0;n<=ml.MAX_CONNECT_RETRIES;n++)try{n>0&&(console.warn(`[PersistenceController] Retrying connection (attempt ${n+1}/${ml.MAX_CONNECT_RETRIES+1})...`),await this._delay(ml.CONNECT_RETRY_DELAY_MS*n)),await this._connectWorkerOnce(e);return}catch(i){r=i instanceof Error?i:new Error(String(i)),console.error(`[PersistenceController] Connection attempt ${n+1} failed:`,r.message),await this._cleanupFailedConnection()}throw new Error(`[PersistenceController] Failed to connect after ${ml.MAX_CONNECT_RETRIES+1} attempts: ${r==null?void 0:r.message}`)}async _connectWorkerOnce(e){this._workerBridge=new kE(this._auth),await this._workerBridge.initWorker();const{getToken:r,onTokenExpired:n,...i}=e.client,s={...e,client:i};await this._workerBridge.init(s),this._workerBridge.installVirtualFSProxy(),this._layer=new HV(this._workerBridge.core),await this._workerBridge.core.connect();const a=this._auth.state.userId;a&&(this._masterLock=new zV(a),this._masterLock.onAcquire=()=>{console.info("[PersistenceController] this Tab became Master")},this._masterLock.onRelease=()=>{console.info("[PersistenceController] this Tab lost Master")},this._masterLock.acquire())}async _cleanupFailedConnection(){if(this._workerBridge){try{await this._workerBridge.destroy()}catch{}this._workerBridge=void 0}this._layer=void 0}_delay(e){return new Promise(r=>setTimeout(r,e))}async disconnect(){var e;if(this._layer){try{await this._layer.getOffsetManager().reset(),await this._layer.close()}catch(r){console.error("[PersistenceController] disconnect error:",r)}this._layer=void 0}if(this._workerBridge){(e=this._masterLock)==null||e.release(),this._masterLock=void 0;try{await this._workerBridge.destroy()}catch(r){console.error("[PersistenceController] WorkerBridge disconnect error:",r)}this._workerBridge=void 0}}async getConnectionState(){return this._workerBridge?this._workerBridge.getConnectionState():"disconnected"}onConnectionStateChange(e){return this._workerBridge?this._workerBridge.onConnectionStateChange(e):()=>{}}};ml.MAX_CONNECT_RETRIES=2,ml.CONNECT_RETRY_DELAY_MS=2e3;let ME=ml;class J2{constructor(){this.handlers=new Map}on(e,r){return this.handlers.has(e)||this.handlers.set(e,new Set),this.handlers.get(e).add(r),()=>{var n;(n=this.handlers.get(e))==null||n.delete(r)}}once(e,r){const n=i=>(this.off(e,n),r(i));return this.on(e,n)}off(e,r){var n;(n=this.handlers.get(e))==null||n.delete(r)}emit(e,r){const n=this.handlers.get(e);if(!n)return;const i=Array.from(n);for(const s of i)try{s(r)}catch(a){console.error(`[EventBus] Handler error for event '${e}':`,a)}}async emitAsync(e,r){const n=this.handlers.get(e);if(!n)return;const i=Array.from(n),s=[];for(const a of i)s.push(Promise.resolve(a(r)).catch(l=>{console.error(`[EventBus] Async handler error for event '${e}':`,l)}));await Promise.all(s)}async emitAsyncStrict(e,r){const n=this.handlers.get(e);if(!n)return;const i=Array.from(n),s=[];for(const a of i)s.push(Promise.resolve(a(r)));await Promise.all(s)}clearAll(){this.handlers.clear()}clearEvent(e){this.handlers.delete(e)}}function WV(){return new J2}const Yo=WV();class Z2{constructor(e,r){this._registry=null,this._config={},this._unsubscribes=[],this._host=e,this._config=r||{},e.addController(this)}get value(){return{registry:this._registry}}get actions(){return{getRegistry:()=>this._registry,setRegistry:e=>{this._registry=e,this._host.requestUpdate(),this._bridgeToolRegistry(e)}}}_bridgeToolRegistry(e){const r=new Proxy({callFunction:(n,i)=>e.execute(n,i),readFile:n=>jr.read(n),writeFile:(n,i)=>jr.write(n,i).then(()=>{}),listDir:n=>jr.ls(n)},{get(n,i){return i in n?n[i]:e[i]}});Q2.setRtcAgent(r),console.log("[SkillController] rtcAgent API bridged to ToolRegistry")}setConfig(e){this._config=e}hostConnected(){this._subscribeEvents()}hostDisconnected(){for(const e of this._unsubscribes)e();this._unsubscribes=[]}_subscribeEvents(){const e=Yo.on("ui:toast",n=>{this._config.onToast&&this._config.onToast(n.message,n.type)});this._unsubscribes.push(e);const r=Yo.on("ui:confirm-request",n=>{this._config.onConfirmRequest&&this._config.onConfirmRequest(n.requestId,n.path,n.message)});this._unsubscribes.push(r)}respondToConfirm(e,r){Yo.emit("ui:confirm-response",{requestId:e,confirmed:r})}}class KV{constructor(e){this._toasts=[],this._timers=new Map,this._host=e,this._host.addController(this),this.actions={show:(r,n="info",i)=>this._show(r,n,i),remove:r=>this._remove(r)}}get toasts(){return this._toasts}hostConnected(){}hostDisconnected(){for(const e of this._timers.values())clearTimeout(e);this._timers.clear()}_show(e,r,n){const i=Date.now()+Math.random();this._toasts=[...this._toasts,{id:i,message:e,type:r,action:n}],this._host.requestUpdate();const s=r==="error"?0:r==="success"?2e3:2500;if(s>0){const a=setTimeout(()=>this._remove(i),s);this._timers.set(i,a)}}_remove(e){const r=this._timers.get(e);r!==void 0&&(clearTimeout(r),this._timers.delete(e)),this._toasts=this._toasts.filter(n=>n.id!==e),this._host.requestUpdate()}}/**
|
|
3132
|
+
`,c=new Function(...s,l);let d;const u=new Promise((h,_)=>{d=setTimeout(()=>{_(new CV(r))},r)});try{const h=c.call(void 0,...a);return await Promise.race([h,u])}finally{d!==void 0&&clearTimeout(d)}}async function MV(t,e,r){const n=DV(t,e,r),i=`/scripts/${t}.ts`;return await jr.write(i,n,"overwrite"),i}async function rp(t){try{return{success:!0,data:await t()}}catch(e){return e instanceof ld?{success:!1,error:e.message}:e instanceof SyntaxError?{success:!1,error:e.message}:{success:!1,error:e instanceof Error?e.message:String(e)}}}function qs(t,e){const r=t[e];if(r==null)return null;if(typeof r!="string")throw new TypeError(`Parameter '${e}' must be a string, got ${typeof r}`);return r}function np(t,e){const r=t[e];if(r==null)return null;if(typeof r=="number"&&!isNaN(r))return r;if(typeof r=="string"){const n=Number(r);if(!isNaN(n))return n}throw new TypeError(`Parameter '${e}' must be a number, got ${typeof r}`)}const W2=["overwrite","append","create-new"];function LV(t){return typeof t=="string"&&W2.includes(t)}class BV{constructor(){gr(this,"name","ls");gr(this,"description","List directory contents")}async execute(e){const r=qs(e,"path")||"/";return rp(()=>jr.ls(r))}}class FV{constructor(){gr(this,"name","read");gr(this,"description","Read file contents")}async execute(e){const r=qs(e,"path");if(!r)return{success:!1,error:"path is required"};const n=np(e,"offset")??void 0,i=np(e,"limit")??void 0;return rp(()=>jr.read(r,n,i))}}class UV{constructor(){gr(this,"name","write");gr(this,"description","Write to file")}async execute(e){const r=qs(e,"path");if(!r)return{success:!1,error:"path is required"};const n=e.content||"",i=e.mode??"overwrite";return LV(i)?rp(async()=>({totalChars:await jr.write(r,n,i),path:r})):{success:!1,error:`Invalid mode '${i}'. Must be one of: ${W2.join(", ")}`}}}class qV{constructor(){gr(this,"name","find");gr(this,"description","Find files by pattern")}async execute(e){const r=qs(e,"pattern");if(!r)return{success:!1,error:"pattern is required"};const n=qs(e,"path")||"/";return rp(()=>jr.find(r,n))}}class $V{constructor(){gr(this,"name","grep");gr(this,"description","Search file contents")}async execute(e){const r=qs(e,"pattern");if(!r)return{success:!1,error:"pattern is required"};const n=qs(e,"path")||"/",i=e.case_sensitive||!1,s=np(e,"max_results")??100;return rp(()=>jr.grep(r,n,i,s))}}class K2{constructor(e){gr(this,"name","script");gr(this,"description","Save or execute scripts. Actions: save (save script to /scripts/), run (execute saved script), eval (execute inline code)");gr(this,"rtcAgent");this.rtcAgent=e??null}async execute(e){let r=qs(e,"action");return r||(r="eval"),r==="save"?this._saveScript(e):r==="run"?this._runScript(e):r==="eval"?this._evalScript(e):{success:!1,error:`Unknown action: ${r}. Use save, run, or eval.`}}async _saveScript(e){const r=qs(e,"name");if(!r)return{success:!1,error:"name is required for save action"};const n=qs(e,"code");if(!n)return{success:!1,error:"code is required for save action"};const i=qs(e,"description")||void 0;try{H2(n,r)}catch(s){return s instanceof Error&&"isScriptCompileError"in s?{success:!1,error:`Script syntax check failed: ${s.message}`}:{success:!1,error:`Script syntax check failed: ${s instanceof Error?s.message:String(s)}`}}try{return{success:!0,data:{path:await MV(r,n,i),name:r}}}catch(s){return{success:!1,error:`Failed to save script: ${s instanceof Error?s.message:String(s)}`}}}async _runScript(e){const r=qs(e,"name");if(!r)return{success:!1,error:"name is required for run action"};const n=e.params||{},i=np(e,"timeout")??3e4;return this._executeCode(r,n,i)}async _evalScript(e){const r=qs(e,"code");if(!r)return{success:!1,error:"code is required for eval action"};const n=e.params||{},i=np(e,"timeout")??3e4;return this._executeCode(void 0,n,i,r)}async _executeCode(e,r,n,i){if(!this.rtcAgent)return{success:!1,error:"rtcAgent not initialized. Pass rtcAgent to ScriptTool constructor."};try{let s;if(i!==void 0)s=i;else{const u=`/scripts/${e}.ts`,h=await jr.read(u);s=PV(h).code}const a={logs:[],warns:[],errors:[]},l=wV(this.rtcAgent,r,a),c=await kV(s,l,n,e),d={};return e&&(d.name=e),c!==void 0&&(d.result=c),a.logs.length>0&&(d.logs=a.logs),a.warns.length>0&&(d.warnings=a.warns),a.errors.length>0&&(d.errors=a.errors),{success:!0,data:d}}catch(s){return s instanceof Error&&"isScriptTimeout"in s?{success:!1,error:s.message}:s instanceof Error&&"isScriptCompileError"in s?{success:!1,error:`Script compile error: ${s.message}`}:{success:!1,error:`Script execution failed: ${s instanceof Error?s.message:String(s)}`}}}}function GV(t){return[new BV,new FV,new UV,new qV,new $V,new K2(t)]}class jV{constructor(e){gr(this,"tools",new Map);const r=GV(e);for(const n of r)this.register(n)}setRtcAgent(e){this.register(new K2(e))}register(e){this.tools.set(e.name,e)}get(e){return this.tools.get(e)}has(e){return this.tools.has(e)}getToolNames(){return Array.from(this.tools.keys())}async execute(e,r){const n=this.tools.get(e);if(!n)throw new Error(`Tool not found: ${e}`);return n.execute(r)}}const Q2=new jV;class VV{constructor(e){gr(this,"persistence");gr(this,"processing",!1);gr(this,"pendingCheck",!1);gr(this,"retryCountMap",new Map);gr(this,"mode","edit");gr(this,"confirmDialog");gr(this,"askUserDialog");gr(this,"master");this.persistence=e}setMode(e){this.mode=e}getMode(){return this.mode}setConfirmDialog(e){this.confirmDialog=e}setAskUserDialog(e){this.askUserDialog=e}setMaster(e){this.master=e}_isMasterAllowed(){return this.master===void 0||this.master.isMaster}async onRtcUpdate(){if(console.log("[RtcProcessor] onRtcUpdate called, processing:",this.processing),this.processing){this.pendingCheck=!0;return}await this.processLoop()}async processLoop(){if(!this._isMasterAllowed()){console.log("[RtcProcessor] processLoop: not master, skipping");return}this.processing=!0,console.log("[RtcProcessor] processLoop started");try{for(;;){this.pendingCheck=!1;const e=await this.persistence.getNextRtcToProcess(void 0);if(!e){if(console.log("[RtcProcessor] processLoop: no more RTC to process, exiting"),this.pendingCheck)continue;break}console.log("[RtcProcessor] processing RTC:",e.client_id,"tool:",e.tool_name,"sync_status:",e.sync_status);try{await this.processOne(e),console.log("[RtcProcessor] processOne completed successfully")}catch(r){console.error("[RtcProcessor] processOne failed:",r);const n=r instanceof Error?r.message:String(r);if(n.includes("connection")||n.includes("disconnected")){console.warn("[RtcProcessor] connection error detected, exiting processLoop");break}await this.sleep(1e3)}}}finally{this.processing=!1,console.log("[RtcProcessor] processLoop finished")}}async processOne(e){if(e.sync_status==="failed"){const r=this.retryCountMap.get(e.client_id)||0,n=this.calculateBackoff(r);await this.sleep(n);try{await this.persistence.submitRtcResult({rtcClientId:e.client_id,success:e.status==="completed",result:e.result,error:e.error_message}),this.retryCountMap.delete(e.client_id)}catch(i){throw this.retryCountMap.set(e.client_id,r+1),i}}else{const r=e.tool_name;if(r==="ask_user"){await this.processAskUser(e);return}const n=F4.needsConfirm(r,this.mode);let i=!0;if(n&&(i=await this.showConfirmDialog(e)),!i){try{await this.persistence.submitRtcResult({rtcClientId:e.client_id,success:!1,error:"User denied"})}catch(c){console.error("[RtcProcessor] submitRtcResult (denied) failed:",c)}return}let s,a=!0,l;try{const c=e.parameters||{},d=await Q2.execute(r,c);s=d.data,d.success||(a=!1,l=d.error)}catch(c){a=!1,l=c instanceof Error?c.message:String(c)}try{await this.persistence.submitRtcResult({rtcClientId:e.client_id,success:a,result:s,error:l})}catch(c){console.error("[RtcProcessor] submitRtcResult failed:",c)}}}async processAskUser(e){if(!this.askUserDialog){console.warn("[RtcProcessor] askUserDialog not set, defaulting to reject");try{await this.persistence.submitRtcResult({rtcClientId:e.client_id,success:!1,error:"User declined to answer questions"})}catch(n){console.error("[RtcProcessor] submitRtcResult (ask_user no dialog) failed:",n)}return}let r;try{r=await this.askUserDialog(e)}catch(n){console.error("[RtcProcessor] askUserDialog threw:",n);try{await this.persistence.submitRtcResult({rtcClientId:e.client_id,success:!1,error:n instanceof Error?n.message:String(n)})}catch(i){console.error("[RtcProcessor] submitRtcResult (ask_user error) failed:",i)}return}try{r===null?await this.persistence.submitRtcResult({rtcClientId:e.client_id,success:!1,error:"User declined to answer questions"}):await this.persistence.submitRtcResult({rtcClientId:e.client_id,success:!0,result:r})}catch(n){console.error("[RtcProcessor] submitRtcResult (ask_user) failed:",n)}}calculateBackoff(e){return Math.min(1e3*Math.pow(2,e),3e4)}sleep(e){return new Promise(r=>setTimeout(r,e))}async showConfirmDialog(e){return this.confirmDialog?this.confirmDialog(e):(console.warn("[RtcProcessor] confirmDialog not set, defaulting to reject"),!1)}}function X2(t){return new SharedWorker(""+(typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__dirname+"/assets/shared-worker-DCHyP9C5.js").href:new URL("assets/shared-worker-DCHyP9C5.js",typeof document>"u"?location.href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&document.currentScript.src||document.baseURI).href),{name:t==null?void 0:t.name})}function YV(t){const e=t.toString(),r=e.match(/new URL\(\s*(["'`])([^"'`]+)\1/);if(r)return r[2];const n=e.match(/new SharedWorker\(\s*(["'`])([^"'`]+)\1/);if(n)return n[2];throw new Error("[WorkerBridge] Cannot extract worker URL from factory. Source: "+e.slice(0,300))}const hl=class hl{constructor(e){this._auth=e,this._worker=null,this._core=null,this._initialized=!1,this._tokenPromise=null,this._connectionListeners=new Set,this._callbacks={onUIUpdate:r=>{tf().publish(r)},requestToken:()=>this._tokenPromise?this._tokenPromise:(this._tokenPromise=(async()=>{try{const r=this._auth.getAccessToken();if(!r)throw new Error("[WorkerBridge] no access token available");return r}finally{this._tokenPromise=null}})(),this._tokenPromise),requestTokenRefresh:()=>this._auth.handleTokenExpired(),onConnectionStateChange:r=>{for(const n of this._connectionListeners)try{n(r)}catch(i){console.error("[WorkerBridge] connection listener error:",i)}}},this._proxiedCallbacks=sA(this._callbacks)}async initWorker(){let e=null;for(let r=0;r<=hl.MAX_INIT_RETRIES;r++)try{r>0&&(console.warn(`[WorkerBridge] Retrying worker initialization (attempt ${r+1}/${hl.MAX_INIT_RETRIES+1})...`),await this._delay(hl.INIT_RETRY_DELAY_MS*r)),await this._initWorkerOnce(),await this._verifyWorkerAlive();return}catch(n){e=n instanceof Error?n:new Error(String(n)),console.error(`[WorkerBridge] Worker initialization attempt ${r+1} failed:`,e.message),this._cleanupFailedWorker()}throw new Error(`[WorkerBridge] Failed to initialize SharedWorker after ${hl.MAX_INIT_RETRIES+1} attempts: ${e==null?void 0:e.message}`)}async _initWorkerOnce(){const e=YV(X2),r=typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:rs&&rs.tagName.toUpperCase()==="SCRIPT"&&rs.src||new URL("index.umd.js",document.baseURI).href,n=new URL(e,r).href,i=window.location.origin;let s;try{s=new URL(n).origin}catch{s=i}const a=s!==i;if(console.info("[WorkerBridge] worker init:",{workerUrl:n,pageOrigin:i,workerOrigin:s,isCrossOrigin:a}),!a)this._worker=new X2;else{let l;try{const u=await fetch(n,{cache:"no-store"});if(!u.ok)throw new Error(`HTTP ${u.status} ${u.statusText}`);l=await u.text()}catch(u){throw new Error(`[WorkerBridge] failed to fetch worker script from ${n}: ${u instanceof Error?u.message:u}`)}const c=new Blob([l],{type:"application/javascript"}),d=URL.createObjectURL(c);try{this._worker=new SharedWorker(d,{name:"rtc-agent-worker",type:"module"})}finally{URL.revokeObjectURL(d)}}this._core=tA(this._worker.port),this._worker.onerror=l=>{console.error("[WorkerBridge] SharedWorker error:",{message:l.message,filename:l.filename,lineno:l.lineno,colno:l.colno,error:l.error})},this._worker.port.onmessageerror=l=>{console.error("[WorkerBridge] port message error:",l)}}async _verifyWorkerAlive(){if(!this._core)throw new Error("[WorkerBridge] No core available for verification");const e=new Promise((r,n)=>{setTimeout(()=>n(new Error("Worker verification timed out")),5e3)});try{const r=await Promise.race([this._core.ping(),e]);if(r!=="pong")throw new Error(`Unexpected ping response: ${r}`);console.info("[WorkerBridge] Worker verification successful")}catch(r){throw new Error(`[WorkerBridge] Worker verification failed: ${r instanceof Error?r.message:"unknown error"}`)}}_cleanupFailedWorker(){if(this._worker){try{this._worker.port.close()}catch{}this._worker=null}this._core=null}_delay(e){return new Promise(r=>setTimeout(r,e))}get core(){return this._core}async init(e){if(this._initialized){console.warn("[WorkerBridge] already initialized");return}if(!this._worker||!this._core)throw new Error("[WorkerBridge] init() called before initWorker()");this._worker.port.start(),await this._core.init(e),await this._core.registerCallback(this._proxiedCallbacks),this._initialized=!0}async destroy(){if(this._initialized&&!(!this._worker||!this._core)){try{await this._core.unregisterCallback(this._proxiedCallbacks)}catch(e){console.warn("[WorkerBridge] unregisterCallback failed:",e)}this._connectionListeners.clear(),this._worker.port.close(),this._initialized=!1}}async getConnectionState(){return this._core.getConnectionState()}onConnectionStateChange(e){return this._connectionListeners.add(e),()=>{this._connectionListeners.delete(e)}}installVirtualFSProxy(){const e=this._core;jr.read=(r,n,i)=>e.virtualFSRead(r,n,i),jr.write=(r,n,i="overwrite",s)=>e.virtualFSWrite(r,n,i,s),jr.ls=r=>e.virtualFSLs(r),jr.find=(r,n)=>e.virtualFSFind(r,n),jr.grep=(r,n,i,s)=>e.virtualFSGrep(r,n,i,s),jr.queryByType=r=>e.virtualFSQueryByType(r),jr.exists=r=>e.virtualFSExists(r),jr.remove=r=>e.virtualFSRemove(r)}};hl.MAX_INIT_RETRIES=3,hl.INIT_RETRY_DELAY_MS=1e3;let kE=hl;class zV{constructor(e){this._isMaster=!1,this._controlled=!1,this._lockName=`rtc-agent-master-${e}`}get isMaster(){return this._isMaster}get isControlled(){return this._controlled}async acquire(){var e;if(this._controlled){console.warn("[MasterLock] already acquiring/acquired, ignoring");return}if(!this._isWebLocksAvailable()){console.warn("[MasterLock] Web Locks API not available, acting as always-master"),this._isMaster=!0,this._controlled=!0,(e=this.onAcquire)==null||e.call(this);return}this._controlled=!0,this._abortController=new AbortController,navigator.locks.request(this._lockName,{signal:this._abortController.signal},async()=>{var r,n;this._isMaster=!0,console.info("[MasterLock] acquired lock → became Master"),(r=this.onAcquire)==null||r.call(this),await new Promise(i=>{this._releaseResolve=i}),this._isMaster=!1,console.info("[MasterLock] released lock → lost Master"),(n=this.onRelease)==null||n.call(this)}).catch(r=>{r instanceof DOMException&&r.name==="AbortError"||console.error("[MasterLock] lock request error:",r)})}release(){this._controlled&&(this._releaseResolve&&(this._releaseResolve(),this._releaseResolve=void 0),!this._isMaster&&this._abortController&&this._abortController.abort(),this._controlled=!1)}_isWebLocksAvailable(){return typeof navigator<"u"&&"locks"in navigator}}function Wne(t){return t}class HV{constructor(e){this._core=e}async connect(){console.log("[PersistenceController] connect() called"),await this._core.connect(),console.log("[PersistenceController] connect() completed, worker state:",await this._core.getConnectionState())}disconnect(){this._core.disconnect()}async reconnect(){await this._core.reconnect()}async listSessions(e,r){return this._core.listSessions(e,r)}async getSession(e){return this._core.getSession(e)}async getSessionByClientId(e){return this._core.getSession(e)}async listMessages(e,r,n,i){return this._core.listMessages(e,r,n,i)}async getMessage(e){return this._core.getMessage(e)}async listRtc(e,r,n){return this._core.listRtc(e,r,n)}async getNextRtcToProcess(e){return this._core.getNextRtcToProcess(e)}async sendMessage(e){return this._core.sendMessage(e)}async insertLocalMessage(e){return this._core.insertLocalMessage(e)}async stopTurn(e){return this._core.stopTurn(e)}async compactSession(e,r){return this._core.compactSession(e,r)}async submitRtcResult(e){return this._core.submitRtcResult(e)}async forkSession(e){return this._core.forkSession(e)}async deleteSession(e){return this._core.deleteSession(e)}async updateSessionTitle(e,r){return this._core.updateSessionTitle(e,r)}async close(){await this._core.close()}async flushAll(){return this._core.flushAll()}async initializeVirtualFS(e){await this._core.initializeVirtualFS(e??{})}getClient(){throw new Error("[WorkerPersistenceAdapter] getClient() is not available. Use PersistenceController.onConnectionStateChange() instead.")}getOffsetManager(){return{reset:()=>this._core.resetOffset()}}getEntityRepository(){throw new Error("[WorkerPersistenceAdapter] getEntityRepository() is not available.")}}const ml=class ml{constructor(e,r){this._auth=r,e.addController(this)}get layer(){return this._layer}get isConnected(){return this._layer!==void 0}get workerBridge(){return this._workerBridge}get masterLock(){return this._masterLock}hostConnected(){}hostDisconnected(){this.disconnect()}async connect(){if(this._layer)return;const e=Kx(),r=this._auth.state.userId;if(!r)throw new Error("[PersistenceController] connect() called without userId; refusing to open a shared database");const n={databaseName:`rtc-agent-${r}`,deviceId:e,client:{endpoint:ko.wsEndpoint,getToken:()=>{const i=this._auth.getAccessToken();if(!i)throw console.warn("[PersistenceController] getToken → no access token available"),new Error("No access token available");return i},onTokenExpired:()=>this._auth.handleTokenExpired(),deviceId:e,userId:r}};await this._connectWorker(n)}async _connectWorker(e){let r=null;for(let n=0;n<=ml.MAX_CONNECT_RETRIES;n++)try{n>0&&(console.warn(`[PersistenceController] Retrying connection (attempt ${n+1}/${ml.MAX_CONNECT_RETRIES+1})...`),await this._delay(ml.CONNECT_RETRY_DELAY_MS*n)),await this._connectWorkerOnce(e);return}catch(i){r=i instanceof Error?i:new Error(String(i)),console.error(`[PersistenceController] Connection attempt ${n+1} failed:`,r.message),await this._cleanupFailedConnection()}throw new Error(`[PersistenceController] Failed to connect after ${ml.MAX_CONNECT_RETRIES+1} attempts: ${r==null?void 0:r.message}`)}async _connectWorkerOnce(e){this._workerBridge=new kE(this._auth),await this._workerBridge.initWorker();const{getToken:r,onTokenExpired:n,...i}=e.client,s={...e,client:i};await this._workerBridge.init(s),this._workerBridge.installVirtualFSProxy(),this._layer=new HV(this._workerBridge.core),await this._workerBridge.core.connect();const a=this._auth.state.userId;a&&(this._masterLock=new zV(a),this._masterLock.onAcquire=()=>{console.info("[PersistenceController] this Tab became Master")},this._masterLock.onRelease=()=>{console.info("[PersistenceController] this Tab lost Master")},this._masterLock.acquire())}async _cleanupFailedConnection(){if(this._workerBridge){try{await this._workerBridge.destroy()}catch{}this._workerBridge=void 0}this._layer=void 0}_delay(e){return new Promise(r=>setTimeout(r,e))}async disconnect(){var e;if(this._layer){try{await this._layer.getOffsetManager().reset(),await this._layer.close()}catch(r){console.error("[PersistenceController] disconnect error:",r)}this._layer=void 0}if(this._workerBridge){(e=this._masterLock)==null||e.release(),this._masterLock=void 0;try{await this._workerBridge.destroy()}catch(r){console.error("[PersistenceController] WorkerBridge disconnect error:",r)}this._workerBridge=void 0}}async getConnectionState(){return this._workerBridge?this._workerBridge.getConnectionState():"disconnected"}onConnectionStateChange(e){return this._workerBridge?this._workerBridge.onConnectionStateChange(e):()=>{}}};ml.MAX_CONNECT_RETRIES=2,ml.CONNECT_RETRY_DELAY_MS=2e3;let ME=ml;class J2{constructor(){this.handlers=new Map}on(e,r){return this.handlers.has(e)||this.handlers.set(e,new Set),this.handlers.get(e).add(r),()=>{var n;(n=this.handlers.get(e))==null||n.delete(r)}}once(e,r){const n=i=>(this.off(e,n),r(i));return this.on(e,n)}off(e,r){var n;(n=this.handlers.get(e))==null||n.delete(r)}emit(e,r){const n=this.handlers.get(e);if(!n)return;const i=Array.from(n);for(const s of i)try{s(r)}catch(a){console.error(`[EventBus] Handler error for event '${e}':`,a)}}async emitAsync(e,r){const n=this.handlers.get(e);if(!n)return;const i=Array.from(n),s=[];for(const a of i)s.push(Promise.resolve(a(r)).catch(l=>{console.error(`[EventBus] Async handler error for event '${e}':`,l)}));await Promise.all(s)}async emitAsyncStrict(e,r){const n=this.handlers.get(e);if(!n)return;const i=Array.from(n),s=[];for(const a of i)s.push(Promise.resolve(a(r)));await Promise.all(s)}clearAll(){this.handlers.clear()}clearEvent(e){this.handlers.delete(e)}}function WV(){return new J2}const Yo=WV();class Z2{constructor(e,r){this._registry=null,this._config={},this._unsubscribes=[],this._host=e,this._config=r||{},e.addController(this)}get value(){return{registry:this._registry}}get actions(){return{getRegistry:()=>this._registry,setRegistry:e=>{this._registry=e,this._host.requestUpdate(),this._bridgeToolRegistry(e)}}}_bridgeToolRegistry(e){const r=new Proxy({callFunction:(n,i)=>e.execute(n,i),readFile:n=>jr.read(n),writeFile:(n,i)=>jr.write(n,i).then(()=>{}),listDir:n=>jr.ls(n)},{get(n,i){return i in n?n[i]:e[i]}});Q2.setRtcAgent(r),console.log("[SkillController] rtcAgent API bridged to ToolRegistry")}setConfig(e){this._config=e}hostConnected(){this._subscribeEvents()}hostDisconnected(){for(const e of this._unsubscribes)e();this._unsubscribes=[]}_subscribeEvents(){const e=Yo.on("ui:toast",n=>{this._config.onToast&&this._config.onToast(n.message,n.type)});this._unsubscribes.push(e);const r=Yo.on("ui:confirm-request",n=>{this._config.onConfirmRequest&&this._config.onConfirmRequest(n.requestId,n.path,n.message)});this._unsubscribes.push(r)}respondToConfirm(e,r){Yo.emit("ui:confirm-response",{requestId:e,confirmed:r})}}class KV{constructor(e){this._toasts=[],this._timers=new Map,this._host=e,this._host.addController(this),this.actions={show:(r,n="info",i)=>this._show(r,n,i),remove:r=>this._remove(r)}}get toasts(){return this._toasts}hostConnected(){}hostDisconnected(){for(const e of this._timers.values())clearTimeout(e);this._timers.clear()}_show(e,r,n){const i=Date.now()+Math.random();this._toasts=[...this._toasts,{id:i,message:e,type:r,action:n}],this._host.requestUpdate();const s=r==="error"?0:r==="success"?2e3:2500;if(s>0){const a=setTimeout(()=>this._remove(i),s);this._timers.set(i,a)}}_remove(e){const r=this._timers.get(e);r!==void 0&&(clearTimeout(r),this._timers.delete(e)),this._toasts=this._toasts.filter(n=>n.id!==e),this._host.requestUpdate()}}/**
|
|
3133
3133
|
* @license
|
|
3134
3134
|
* Copyright 2021 Google LLC
|
|
3135
3135
|
* SPDX-License-Identifier: BSD-3-Clause
|