From e974000e2068eaf9fd3e22ee9261c06d297dea06 Mon Sep 17 00:00:00 2001 From: Lucas Nogueira Date: Mon, 23 Oct 2023 18:14:05 -0300 Subject: [PATCH] basic tray example --- core/tauri/scripts/bundle.global.js | 2 +- core/tauri/src/tray/plugin.rs | 12 +++-- examples/api/src-tauri/Cargo.lock | 6 +-- examples/api/src/App.svelte | 7 ++- examples/api/src/views/Tray.svelte | 65 ++++++++++++++++++++++++++++ examples/api/src/views/Window.svelte | 1 - tooling/api/src/tray.ts | 4 +- 7 files changed, 82 insertions(+), 15 deletions(-) create mode 100644 examples/api/src/views/Tray.svelte diff --git a/core/tauri/scripts/bundle.global.js b/core/tauri/scripts/bundle.global.js index 36102d077832..7317f15ae515 100644 --- a/core/tauri/scripts/bundle.global.js +++ b/core/tauri/scripts/bundle.global.js @@ -1,2 +1,2 @@ -"use strict";var __TAURI_IIFE__=(()=>{var G=Object.defineProperty;var ye=Object.getOwnPropertyDescriptor;var we=Object.getOwnPropertyNames;var Pe=Object.prototype.hasOwnProperty;var d=(t,e)=>{for(var n in e)G(t,n,{get:e[n],enumerable:!0})},_e=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let l of we(e))!Pe.call(t,l)&&l!==n&&G(t,l,{get:()=>e[l],enumerable:!(r=ye(e,l))||r.enumerable});return t};var ve=t=>_e(G({},"__esModule",{value:!0}),t);var re=(t,e,n)=>{if(!e.has(t))throw TypeError("Cannot "+n)};var m=(t,e,n)=>(re(t,e,"read from private field"),n?n.call(t):e.get(t)),b=(t,e,n)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,n)},y=(t,e,n,r)=>(re(t,e,"write to private field"),r?r.call(t,n):e.set(t,n),n);var mn={};d(mn,{app:()=>K,dpi:()=>B,event:()=>$,menu:()=>te,path:()=>Y,primitives:()=>N,tray:()=>ee,window:()=>J});var K={};d(K,{getName:()=>Se,getTauriVersion:()=>Ie,getVersion:()=>Me,hide:()=>Ce,show:()=>Ae});var N={};d(N,{Channel:()=>p,PluginListener:()=>O,addPluginListener:()=>fe,convertFileSrc:()=>ke,invoke:()=>i,transformCallback:()=>T});function T(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}var w,p=class{constructor(){this.__TAURI_CHANNEL_MARKER__=!0;b(this,w,()=>{});this.id=T(e=>{m(this,w).call(this,e)})}set onmessage(e){y(this,w,e)}get onmessage(){return m(this,w)}toJSON(){return`__CHANNEL__:${this.id}`}};w=new WeakMap;var O=class{constructor(e,n,r){this.plugin=e,this.event=n,this.channelId=r}async unregister(){return i(`plugin:${this.plugin}|remove_listener`,{event:this.event,channelId:this.channelId})}};async function fe(t,e,n){let r=new p;return r.onmessage=n,i(`plugin:${t}|register_listener`,{event:e,handler:r}).then(()=>new O(t,e,r.id))}async function i(t,e={},n){return window.__TAURI_INTERNALS__.invoke(t,e,n)}function ke(t,e="asset"){return window.__TAURI_INTERNALS__.convertFileSrc(t,e)}async function Me(){return i("plugin:app|version")}async function Se(){return i("plugin:app|name")}async function Ie(){return i("plugin:app|tauri_version")}async function Ae(){return i("plugin:app|app_show")}async function Ce(){return i("plugin:app|app_hide")}var $={};d($,{TauriEvent:()=>j,emit:()=>q,listen:()=>x,once:()=>Q});var j=(c=>(c.WINDOW_RESIZED="tauri://resize",c.WINDOW_MOVED="tauri://move",c.WINDOW_CLOSE_REQUESTED="tauri://close-requested",c.WINDOW_CREATED="tauri://window-created",c.WINDOW_DESTROYED="tauri://destroyed",c.WINDOW_FOCUS="tauri://focus",c.WINDOW_BLUR="tauri://blur",c.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",c.WINDOW_THEME_CHANGED="tauri://theme-changed",c.WINDOW_FILE_DROP="tauri://file-drop",c.WINDOW_FILE_DROP_HOVER="tauri://file-drop-hover",c.WINDOW_FILE_DROP_CANCELLED="tauri://file-drop-cancelled",c))(j||{});async function se(t,e){await i("plugin:event|unlisten",{event:t,eventId:e})}async function x(t,e,n){return i("plugin:event|listen",{event:t,windowLabel:n?.target,handler:T(e)}).then(r=>async()=>se(t,r))}async function Q(t,e,n){return x(t,r=>{e(r),se(t,r.id).catch(()=>{})},n)}async function q(t,e,n){await i("plugin:event|emit",{event:t,windowLabel:n?.target,payload:e})}var J={};d(J,{CloseRequestedEvent:()=>D,Effect:()=>ce,EffectState:()=>de,LogicalPosition:()=>_,LogicalSize:()=>P,PhysicalPosition:()=>g,PhysicalSize:()=>h,ProgressBarStatus:()=>le,UserAttentionType:()=>ae,Window:()=>k,availableMonitors:()=>xe,currentMonitor:()=>Oe,getAll:()=>L,getCurrent:()=>ue,primaryMonitor:()=>Te});var B={};d(B,{LogicalPosition:()=>_,LogicalSize:()=>P,PhysicalPosition:()=>g,PhysicalSize:()=>h});var P=class{constructor(e,n){this.type="Logical";this.width=e,this.height=n}},h=class{constructor(e,n){this.type="Physical";this.width=e,this.height=n}toLogical(e){return new P(this.width/e,this.height/e)}},_=class{constructor(e,n){this.type="Logical";this.x=e,this.y=n}},g=class{constructor(e,n){this.type="Physical";this.x=e,this.y=n}toLogical(e){return new _(this.x/e,this.y/e)}};var ae=(n=>(n[n.Critical=1]="Critical",n[n.Informational=2]="Informational",n))(ae||{}),D=class{constructor(e){this._preventDefault=!1;this.event=e.event,this.windowLabel=e.windowLabel,this.id=e.id}preventDefault(){this._preventDefault=!0}isPreventDefault(){return this._preventDefault}},le=(u=>(u.None="none",u.Normal="normal",u.Indeterminate="indeterminate",u.Paused="paused",u.Error="error",u))(le||{});function ue(){return new k(window.__TAURI_INTERNALS__.metadata.currentWindow.label,{skip:!0})}function L(){return window.__TAURI_INTERNALS__.metadata.windows.map(t=>new k(t.label,{skip:!0}))}var oe=["tauri://created","tauri://error"],k=class t{constructor(e,n={}){this.label=e,this.listeners=Object.create(null),n?.skip||i("plugin:window|create",{options:{...n,label:e}}).then(async()=>this.emit("tauri://created")).catch(async r=>this.emit("tauri://error",r))}static getByLabel(e){return L().some(n=>n.label===e)?new t(e,{skip:!0}):null}static getCurrent(){return ue()}static getAll(){return L()}static async getFocusedWindow(){for(let e of L())if(await e.isFocused())return e;return null}async listen(e,n){return this._handleTauriEvent(e,n)?Promise.resolve(()=>{let r=this.listeners[e];r.splice(r.indexOf(n),1)}):x(e,n,{target:this.label})}async once(e,n){return this._handleTauriEvent(e,n)?Promise.resolve(()=>{let r=this.listeners[e];r.splice(r.indexOf(n),1)}):Q(e,n,{target:this.label})}async emit(e,n){if(oe.includes(e)){for(let r of this.listeners[e]||[])r({event:e,id:-1,windowLabel:this.label,payload:n});return Promise.resolve()}return q(e,n,{target:this.label})}_handleTauriEvent(e,n){return oe.includes(e)?(e in this.listeners?this.listeners[e].push(n):this.listeners[e]=[n],!0):!1}async scaleFactor(){return i("plugin:window|scale_factor",{label:this.label})}async innerPosition(){return i("plugin:window|inner_position",{label:this.label}).then(({x:e,y:n})=>new g(e,n))}async outerPosition(){return i("plugin:window|outer_position",{label:this.label}).then(({x:e,y:n})=>new g(e,n))}async innerSize(){return i("plugin:window|inner_size",{label:this.label}).then(({width:e,height:n})=>new h(e,n))}async outerSize(){return i("plugin:window|outer_size",{label:this.label}).then(({width:e,height:n})=>new h(e,n))}async isFullscreen(){return i("plugin:window|is_fullscreen",{label:this.label})}async isMinimized(){return i("plugin:window|is_minimized",{label:this.label})}async isMaximized(){return i("plugin:window|is_maximized",{label:this.label})}async isFocused(){return i("plugin:window|is_focused",{label:this.label})}async isDecorated(){return i("plugin:window|is_decorated",{label:this.label})}async isResizable(){return i("plugin:window|is_resizable",{label:this.label})}async isMaximizable(){return i("plugin:window|is_maximizable",{label:this.label})}async isMinimizable(){return i("plugin:window|is_minimizable",{label:this.label})}async isClosable(){return i("plugin:window|is_closable",{label:this.label})}async isVisible(){return i("plugin:window|is_visible",{label:this.label})}async title(){return i("plugin:window|title",{label:this.label})}async theme(){return i("plugin:window|theme",{label:this.label})}async center(){return i("plugin:window|center",{label:this.label})}async requestUserAttention(e){let n=null;return e&&(e===1?n={type:"Critical"}:n={type:"Informational"}),i("plugin:window|request_user_attention",{label:this.label,value:n})}async setResizable(e){return i("plugin:window|set_resizable",{label:this.label,value:e})}async setMaximizable(e){return i("plugin:window|set_maximizable",{label:this.label,value:e})}async setMinimizable(e){return i("plugin:window|set_minimizable",{label:this.label,value:e})}async setClosable(e){return i("plugin:window|set_closable",{label:this.label,value:e})}async setTitle(e){return i("plugin:window|set_title",{label:this.label,value:e})}async maximize(){return i("plugin:window|maximize",{label:this.label})}async unmaximize(){return i("plugin:window|unmaximize",{label:this.label})}async toggleMaximize(){return i("plugin:window|toggle_maximize",{label:this.label})}async minimize(){return i("plugin:window|minimize",{label:this.label})}async unminimize(){return i("plugin:window|unminimize",{label:this.label})}async show(){return i("plugin:window|show",{label:this.label})}async hide(){return i("plugin:window|hide",{label:this.label})}async close(){return i("plugin:window|close",{label:this.label})}async setDecorations(e){return i("plugin:window|set_decorations",{label:this.label,value:e})}async setShadow(e){return i("plugin:window|set_shadow",{label:this.label,value:e})}async setEffects(e){return i("plugin:window|set_effects",{label:this.label,value:e})}async clearEffects(){return i("plugin:window|set_effects",{label:this.label,value:null})}async setAlwaysOnTop(e){return i("plugin:window|set_always_on_top",{label:this.label,value:e})}async setAlwaysOnBottom(e){return i("plugin:window|set_always_on_bottom",{label:this.label,value:e})}async setContentProtected(e){return i("plugin:window|set_content_protected",{label:this.label,value:e})}async setSize(e){if(!e||e.type!=="Logical"&&e.type!=="Physical")throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return i("plugin:window|set_size",{label:this.label,value:{type:e.type,data:{width:e.width,height:e.height}}})}async setMinSize(e){if(e&&e.type!=="Logical"&&e.type!=="Physical")throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return i("plugin:window|set_min_size",{label:this.label,value:e?{type:e.type,data:{width:e.width,height:e.height}}:null})}async setMaxSize(e){if(e&&e.type!=="Logical"&&e.type!=="Physical")throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return i("plugin:window|set_max_size",{label:this.label,value:e?{type:e.type,data:{width:e.width,height:e.height}}:null})}async setPosition(e){if(!e||e.type!=="Logical"&&e.type!=="Physical")throw new Error("the `position` argument must be either a LogicalPosition or a PhysicalPosition instance");return i("plugin:window|set_position",{label:this.label,value:{type:e.type,data:{x:e.x,y:e.y}}})}async setFullscreen(e){return i("plugin:window|set_fullscreen",{label:this.label,value:e})}async setFocus(){return i("plugin:window|set_focus",{label:this.label})}async setIcon(e){return i("plugin:window|set_icon",{label:this.label,value:typeof e=="string"?e:Array.from(e)})}async setSkipTaskbar(e){return i("plugin:window|set_skip_taskbar",{label:this.label,value:e})}async setCursorGrab(e){return i("plugin:window|set_cursor_grab",{label:this.label,value:e})}async setCursorVisible(e){return i("plugin:window|set_cursor_visible",{label:this.label,value:e})}async setCursorIcon(e){return i("plugin:window|set_cursor_icon",{label:this.label,value:e})}async setCursorPosition(e){if(!e||e.type!=="Logical"&&e.type!=="Physical")throw new Error("the `position` argument must be either a LogicalPosition or a PhysicalPosition instance");return i("plugin:window|set_cursor_position",{label:this.label,value:{type:e.type,data:{x:e.x,y:e.y}}})}async setIgnoreCursorEvents(e){return i("plugin:window|set_ignore_cursor_events",{label:this.label,value:e})}async startDragging(){return i("plugin:window|start_dragging",{label:this.label})}async setProgressBar(e){return i("plugin:window|set_progress_bar",{label:this.label,value:e})}async onResized(e){return this.listen("tauri://resize",n=>{n.payload=pe(n.payload),e(n)})}async onMoved(e){return this.listen("tauri://move",n=>{n.payload=me(n.payload),e(n)})}async onCloseRequested(e){return this.listen("tauri://close-requested",n=>{let r=new D(n);Promise.resolve(e(r)).then(()=>{if(!r.isPreventDefault())return this.close()})})}async onFocusChanged(e){let n=await this.listen("tauri://focus",l=>{e({...l,payload:!0})}),r=await this.listen("tauri://blur",l=>{e({...l,payload:!1})});return()=>{n(),r()}}async onScaleChanged(e){return this.listen("tauri://scale-change",e)}async onFileDropEvent(e){let n=await this.listen("tauri://file-drop",u=>{e({...u,payload:{type:"drop",paths:u.payload}})}),r=await this.listen("tauri://file-drop-hover",u=>{e({...u,payload:{type:"hover",paths:u.payload}})}),l=await this.listen("tauri://file-drop-cancelled",u=>{e({...u,payload:{type:"cancel"}})});return()=>{n(),r(),l()}}async onThemeChanged(e){return this.listen("tauri://theme-changed",e)}},ce=(a=>(a.AppearanceBased="appearanceBased",a.Light="light",a.Dark="dark",a.MediumLight="mediumLight",a.UltraDark="ultraDark",a.Titlebar="titlebar",a.Selection="selection",a.Menu="menu",a.Popover="popover",a.Sidebar="sidebar",a.HeaderView="headerView",a.Sheet="sheet",a.WindowBackground="windowBackground",a.HudWindow="hudWindow",a.FullScreenUI="fullScreenUI",a.Tooltip="tooltip",a.ContentBackground="contentBackground",a.UnderWindowBackground="underWindowBackground",a.UnderPageBackground="underPageBackground",a.Mica="mica",a.Blur="blur",a.Acrylic="acrylic",a.Tabbed="tabbed",a.TabbedDark="tabbedDark",a.TabbedLight="tabbedLight",a))(ce||{}),de=(r=>(r.FollowsWindowActiveState="followsWindowActiveState",r.Active="active",r.Inactive="inactive",r))(de||{});function Z(t){return t===null?null:{name:t.name,scaleFactor:t.scaleFactor,position:me(t.position),size:pe(t.size)}}function me(t){return new g(t.x,t.y)}function pe(t){return new h(t.width,t.height)}async function Oe(){return i("plugin:window|current_monitor").then(Z)}async function Te(){return i("plugin:window|primary_monitor").then(Z)}async function xe(){return i("plugin:window|available_monitors").then(t=>t.map(Z))}var Y={};d(Y,{BaseDirectory:()=>he,appCacheDir:()=>Ee,appConfigDir:()=>Le,appDataDir:()=>De,appLocalDataDir:()=>Fe,appLogDir:()=>en,audioDir:()=>Re,basename:()=>cn,cacheDir:()=>ze,configDir:()=>We,dataDir:()=>Ue,delimiter:()=>rn,desktopDir:()=>He,dirname:()=>ln,documentDir:()=>Ve,downloadDir:()=>Ge,executableDir:()=>Ne,extname:()=>un,fontDir:()=>Ke,homeDir:()=>je,isAbsolute:()=>dn,join:()=>an,localDataDir:()=>Qe,normalize:()=>on,pictureDir:()=>qe,publicDir:()=>$e,resolve:()=>sn,resolveResource:()=>Ze,resourceDir:()=>Be,runtimeDir:()=>Je,sep:()=>tn,tempDir:()=>nn,templateDir:()=>Ye,videoDir:()=>Xe});var he=(o=>(o[o.Audio=1]="Audio",o[o.Cache=2]="Cache",o[o.Config=3]="Config",o[o.Data=4]="Data",o[o.LocalData=5]="LocalData",o[o.Document=6]="Document",o[o.Download=7]="Download",o[o.Picture=8]="Picture",o[o.Public=9]="Public",o[o.Video=10]="Video",o[o.Resource=11]="Resource",o[o.Temp=12]="Temp",o[o.AppConfig=13]="AppConfig",o[o.AppData=14]="AppData",o[o.AppLocalData=15]="AppLocalData",o[o.AppCache=16]="AppCache",o[o.AppLog=17]="AppLog",o[o.Desktop=18]="Desktop",o[o.Executable=19]="Executable",o[o.Font=20]="Font",o[o.Home=21]="Home",o[o.Runtime=22]="Runtime",o[o.Template=23]="Template",o))(he||{});async function Le(){return i("plugin:path|resolve_directory",{directory:13})}async function De(){return i("plugin:path|resolve_directory",{directory:14})}async function Fe(){return i("plugin:path|resolve_directory",{directory:15})}async function Ee(){return i("plugin:path|resolve_directory",{directory:16})}async function Re(){return i("plugin:path|resolve_directory",{directory:1})}async function ze(){return i("plugin:path|resolve_directory",{directory:2})}async function We(){return i("plugin:path|resolve_directory",{directory:3})}async function Ue(){return i("plugin:path|resolve_directory",{directory:4})}async function He(){return i("plugin:path|resolve_directory",{directory:18})}async function Ve(){return i("plugin:path|resolve_directory",{directory:6})}async function Ge(){return i("plugin:path|resolve_directory",{directory:7})}async function Ne(){return i("plugin:path|resolve_directory",{directory:19})}async function Ke(){return i("plugin:path|resolve_directory",{directory:20})}async function je(){return i("plugin:path|resolve_directory",{directory:21})}async function Qe(){return i("plugin:path|resolve_directory",{directory:5})}async function qe(){return i("plugin:path|resolve_directory",{directory:8})}async function $e(){return i("plugin:path|resolve_directory",{directory:9})}async function Be(){return i("plugin:path|resolve_directory",{directory:11})}async function Ze(t){return i("plugin:path|resolve_directory",{directory:11,path:t})}async function Je(){return i("plugin:path|resolve_directory",{directory:22})}async function Ye(){return i("plugin:path|resolve_directory",{directory:23})}async function Xe(){return i("plugin:path|resolve_directory",{directory:10})}async function en(){return i("plugin:path|resolve_directory",{directory:17})}async function nn(t){return i("plugin:path|resolve_directory",{directory:12})}function tn(){return window.__TAURI_INTERNALS__.plugins.path.sep}function rn(){return window.__TAURI_INTERNALS__.plugins.path.delimiter}async function sn(...t){return i("plugin:path|resolve",{paths:t})}async function on(t){return i("plugin:path|normalize",{path:t})}async function an(...t){return i("plugin:path|join",{paths:t})}async function ln(t){return i("plugin:path|dirname",{path:t})}async function un(t){return i("plugin:path|extname",{path:t})}async function cn(t,e){return i("plugin:path|basename",{path:t,ext:e})}async function dn(t){return i("plugin:path|isAbsolute",{path:t})}var ee={};d(ee,{TrayIcon:()=>X});var M,v=class{constructor(e){b(this,M,void 0);y(this,M,e)}get rid(){return m(this,M)}async close(){return i("plugin:resources|close",{rid:this.rid})}};M=new WeakMap;function ge(t,e){(Array.isArray(e)?e:[e]).forEach(n=>{Object.getOwnPropertyNames(n.prototype).forEach(r=>{Object.defineProperty(t.prototype,r,Object.getOwnPropertyDescriptor(n.prototype,r)??Object.create(null))})})}var X=class t extends v{constructor(n,r){super(n);this.id=r}static async new(n){n?.menu&&(n.menu=[n.menu.rid,n.menu.kind]);let r=new p;return n?.action&&(r.onmessage=n.action,delete n.action),i("plugin:tray|new",{options:n??{},handler:r}).then(([l,u])=>new t(l,u))}async setIcon(n){return i("plugin:tray|set_icon",{rid:this.rid,icon:n})}async setMenu(n){return n&&(n=[n.rid,n.kind]),i("plugin:tray|set_menu",{rid:this.rid,menu:n})}async setTooltip(n){return i("plugin:tray|set_tooltip",{rid:this.rid,tooltip:n})}async setTitle(n){return i("plugin:tray|set_title",{rid:this.rid,title:n})}async setVisible(n){return i("plugin:tray|set_visible",{rid:this.rid,visible:n})}async setTempDirPath(n){return i("plugin:tray|set_temp_dir_path",{rid:this.rid,path:n})}async setIconAsTemplate(n){return i("plugin:tray|set_icon_as_template",{rid:this.rid,asTemplate:n})}async setMenuOnLeftClick(n){return i("plugin:tray|set_show_menu_on_left_click",{rid:this.rid,onLeft:n})}};var te={};d(te,{CheckMenuItem:()=>H,IconMenuItem:()=>V,Menu:()=>ie,MenuItem:()=>W,NativeIcon:()=>be,PredefinedMenuItem:()=>U,Submenu:()=>I});var be=(s=>(s.Add="Add",s.Advanced="Advanced",s.Bluetooth="Bluetooth",s.Bookmarks="Bookmarks",s.Caution="Caution",s.ColorPanel="ColorPanel",s.ColumnView="ColumnView",s.Computer="Computer",s.EnterFullScreen="EnterFullScreen",s.Everyone="Everyone",s.ExitFullScreen="ExitFullScreen",s.FlowView="FlowView",s.Folder="Folder",s.FolderBurnable="FolderBurnable",s.FolderSmart="FolderSmart",s.FollowLinkFreestanding="FollowLinkFreestanding",s.FontPanel="FontPanel",s.GoLeft="GoLeft",s.GoRight="GoRight",s.Home="Home",s.IChatTheater="IChatTheater",s.IconView="IconView",s.Info="Info",s.InvalidDataFreestanding="InvalidDataFreestanding",s.LeftFacingTriangle="LeftFacingTriangle",s.ListView="ListView",s.LockLocked="LockLocked",s.LockUnlocked="LockUnlocked",s.MenuMixedState="MenuMixedState",s.MenuOnState="MenuOnState",s.MobileMe="MobileMe",s.MultipleDocuments="MultipleDocuments",s.Network="Network",s.Path="Path",s.PreferencesGeneral="PreferencesGeneral",s.QuickLook="QuickLook",s.RefreshFreestanding="RefreshFreestanding",s.Refresh="Refresh",s.Remove="Remove",s.RevealFreestanding="RevealFreestanding",s.RightFacingTriangle="RightFacingTriangle",s.Share="Share",s.Slideshow="Slideshow",s.SmartBadge="SmartBadge",s.StatusAvailable="StatusAvailable",s.StatusNone="StatusNone",s.StatusPartiallyAvailable="StatusPartiallyAvailable",s.StatusUnavailable="StatusUnavailable",s.StopProgressFreestanding="StopProgressFreestanding",s.StopProgress="StopProgress",s.TrashEmpty="TrashEmpty",s.TrashFull="TrashFull",s.User="User",s.UserAccounts="UserAccounts",s.UserGroup="UserGroup",s.UserGuest="UserGuest",s))(be||{});function ne([t,e,n]){switch(n){case"Submenu":return new I(t,e);case"Predefined":return new U(t,e);case"Check":return new H(t,e);case"Icon":return new V(t,e);case"MenuItem":default:return new W(t,e)}}async function f(t,e){let n=new p,r=null;return e&&("action"in e&&e.action&&(n.onmessage=e.action,delete e.action),"items"in e&&(r=e.items.map(l=>[l.rid,l.kind]))),i("plugin:menu|new",{kind:t,options:e?{...e,items:r}:void 0,handler:n})}var A,C,F=class extends v{constructor(n,r,l){super(n);b(this,A,void 0);b(this,C,void 0);y(this,A,r),y(this,C,l)}get id(){return m(this,A)}get kind(){return m(this,C)}};A=new WeakMap,C=new WeakMap;var E=class extends F{async append(e){return i("plugin:menu|append",{rid:this.rid,kind:this.kind,items:(Array.isArray(e)?e:[e]).map(n=>[n.rid,n.kind])})}async prepend(e){return i("plugin:menu|prepend",{rid:this.rid,kind:this.kind,items:(Array.isArray(e)?e:[e]).map(n=>[n.rid,n.kind])})}async insert(e,n){return i("plugin:menu|insert",{rid:this.rid,kind:this.kind,items:(Array.isArray(e)?e:[e]).map(r=>[r.rid,r.kind]),position:n})}async remove(e){return i("plugin:menu|remove",{rid:this.rid,kind:this.kind,item:[e.rid,e.kind]})}async removeAt(e){return i("plugin:menu|remove_at",{rid:this.rid,kind:this.kind,position:e}).then(ne)}async items(){return i("plugin:menu|append",{rid:this.rid,kind:this.kind}).then(e=>e.map(ne))}async get(e){return i("plugin:menu|append",{rid:this.rid,kind:this.kind,id:e}).then(n=>n?ne(n):null)}async popup(e,n){return i("plugin:menu|popup",{rid:this.rid,kind:this.kind,window:e,position:n})}},ie=class t extends E{constructor(e,n){super(e,n,"Menu")}static async new(e){return f("Menu",e).then(([n,r])=>new t(n,r))}static async default(){return i("plugin:menu|default").then(([e,n])=>new t(e,n))}async setAsAppMenu(){return i("plugin:menu|set_as_app_menu",{rid:this.rid}).then(e=>e?new t(e[0],e[1]):null)}async setAsWindowMenu(e){return i("plugin:menu|set_as_window_menu",{rid:this.rid,window:e}).then(n=>n?new t(n[0],n[1]):null)}},R=class extends F{async text(){return i("plugin:menu|text",{rid:this.rid,kind:this.kind})}async setText(e){return i("plugin:menu|set_text",{rid:this.rid,kind:this.kind,text:e})}},z=class extends R{async isEnabled(){return i("plugin:menu|is_enabled",{rid:this.rid,kind:this.kind})}async setEnabled(e){return i("plugin:menu|set_enabled",{rid:this.rid,kind:this.kind,enabled:e})}},S=class extends z{async setAccelerator(e){return i("plugin:menu|set_accelerator",{rid:this.rid,kind:this.kind,accelerator:e})}},W=class t extends S{constructor(e,n){super(e,n,"MenuItem")}static async new(e){return f("MenuItem",e).then(([n,r])=>new t(n,r))}},I=class t extends E{constructor(e,n){super(e,n,"Submenu")}static async new(e){return f("Submenu",e).then(([n,r])=>new t(n,r))}async setAsWindowsMenuForNSApp(){return i("plugin:menu|set_as_windows_menu_for_nsapp",{rid:this.rid})}async setAsHelpMenuForNSApp(){return i("plugin:menu|set_as_help_menu_for_nsapp",{rid:this.rid})}};ge(I,z);var U=class t extends R{constructor(e,n){super(e,n,"MenuItem")}static async new(e){return f("MenuItem",e).then(([n,r])=>new t(n,r))}},H=class t extends S{constructor(e,n){super(e,n,"Check")}static async new(e){return f("Check",e).then(([n,r])=>new t(n,r))}async isChecked(){return i("plugin:menu|is_checked",{rid:this.rid})}async setChecked(e){return i("plugin:menu|set_checked",{rid:this.rid,checked:e})}},V=class t extends S{constructor(e,n){super(e,n,"Icon")}static async new(e){return f("Icon",e).then(([n,r])=>new t(n,r))}async setIcon(e){return i("plugin:menu|set_icon",{rid:this.rid,icon:e})}async setNativeIcon(e){return i("plugin:menu|set_native_icon",{rid:this.rid,icon:e})}};return ve(mn);})(); +"use strict";var __TAURI_IIFE__=(()=>{var G=Object.defineProperty;var ye=Object.getOwnPropertyDescriptor;var we=Object.getOwnPropertyNames;var Pe=Object.prototype.hasOwnProperty;var d=(t,e)=>{for(var n in e)G(t,n,{get:e[n],enumerable:!0})},_e=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let l of we(e))!Pe.call(t,l)&&l!==n&&G(t,l,{get:()=>e[l],enumerable:!(r=ye(e,l))||r.enumerable});return t};var ve=t=>_e(G({},"__esModule",{value:!0}),t);var re=(t,e,n)=>{if(!e.has(t))throw TypeError("Cannot "+n)};var m=(t,e,n)=>(re(t,e,"read from private field"),n?n.call(t):e.get(t)),b=(t,e,n)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,n)},y=(t,e,n,r)=>(re(t,e,"write to private field"),r?r.call(t,n):e.set(t,n),n);var mn={};d(mn,{app:()=>K,dpi:()=>B,event:()=>$,menu:()=>te,path:()=>Y,primitives:()=>N,tray:()=>ee,window:()=>J});var K={};d(K,{getName:()=>Se,getTauriVersion:()=>Ie,getVersion:()=>Me,hide:()=>Ce,show:()=>Ae});var N={};d(N,{Channel:()=>p,PluginListener:()=>O,addPluginListener:()=>fe,convertFileSrc:()=>ke,invoke:()=>i,transformCallback:()=>T});function T(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}var w,p=class{constructor(){this.__TAURI_CHANNEL_MARKER__=!0;b(this,w,()=>{});this.id=T(e=>{m(this,w).call(this,e)})}set onmessage(e){y(this,w,e)}get onmessage(){return m(this,w)}toJSON(){return`__CHANNEL__:${this.id}`}};w=new WeakMap;var O=class{constructor(e,n,r){this.plugin=e,this.event=n,this.channelId=r}async unregister(){return i(`plugin:${this.plugin}|remove_listener`,{event:this.event,channelId:this.channelId})}};async function fe(t,e,n){let r=new p;return r.onmessage=n,i(`plugin:${t}|register_listener`,{event:e,handler:r}).then(()=>new O(t,e,r.id))}async function i(t,e={},n){return window.__TAURI_INTERNALS__.invoke(t,e,n)}function ke(t,e="asset"){return window.__TAURI_INTERNALS__.convertFileSrc(t,e)}async function Me(){return i("plugin:app|version")}async function Se(){return i("plugin:app|name")}async function Ie(){return i("plugin:app|tauri_version")}async function Ae(){return i("plugin:app|app_show")}async function Ce(){return i("plugin:app|app_hide")}var $={};d($,{TauriEvent:()=>j,emit:()=>q,listen:()=>x,once:()=>Q});var j=(c=>(c.WINDOW_RESIZED="tauri://resize",c.WINDOW_MOVED="tauri://move",c.WINDOW_CLOSE_REQUESTED="tauri://close-requested",c.WINDOW_CREATED="tauri://window-created",c.WINDOW_DESTROYED="tauri://destroyed",c.WINDOW_FOCUS="tauri://focus",c.WINDOW_BLUR="tauri://blur",c.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",c.WINDOW_THEME_CHANGED="tauri://theme-changed",c.WINDOW_FILE_DROP="tauri://file-drop",c.WINDOW_FILE_DROP_HOVER="tauri://file-drop-hover",c.WINDOW_FILE_DROP_CANCELLED="tauri://file-drop-cancelled",c))(j||{});async function se(t,e){await i("plugin:event|unlisten",{event:t,eventId:e})}async function x(t,e,n){return i("plugin:event|listen",{event:t,windowLabel:n?.target,handler:T(e)}).then(r=>async()=>se(t,r))}async function Q(t,e,n){return x(t,r=>{e(r),se(t,r.id).catch(()=>{})},n)}async function q(t,e,n){await i("plugin:event|emit",{event:t,windowLabel:n?.target,payload:e})}var J={};d(J,{CloseRequestedEvent:()=>D,Effect:()=>ce,EffectState:()=>de,LogicalPosition:()=>_,LogicalSize:()=>P,PhysicalPosition:()=>g,PhysicalSize:()=>h,ProgressBarStatus:()=>le,UserAttentionType:()=>ae,Window:()=>k,availableMonitors:()=>xe,currentMonitor:()=>Oe,getAll:()=>L,getCurrent:()=>ue,primaryMonitor:()=>Te});var B={};d(B,{LogicalPosition:()=>_,LogicalSize:()=>P,PhysicalPosition:()=>g,PhysicalSize:()=>h});var P=class{constructor(e,n){this.type="Logical";this.width=e,this.height=n}},h=class{constructor(e,n){this.type="Physical";this.width=e,this.height=n}toLogical(e){return new P(this.width/e,this.height/e)}},_=class{constructor(e,n){this.type="Logical";this.x=e,this.y=n}},g=class{constructor(e,n){this.type="Physical";this.x=e,this.y=n}toLogical(e){return new _(this.x/e,this.y/e)}};var ae=(n=>(n[n.Critical=1]="Critical",n[n.Informational=2]="Informational",n))(ae||{}),D=class{constructor(e){this._preventDefault=!1;this.event=e.event,this.windowLabel=e.windowLabel,this.id=e.id}preventDefault(){this._preventDefault=!0}isPreventDefault(){return this._preventDefault}},le=(u=>(u.None="none",u.Normal="normal",u.Indeterminate="indeterminate",u.Paused="paused",u.Error="error",u))(le||{});function ue(){return new k(window.__TAURI_INTERNALS__.metadata.currentWindow.label,{skip:!0})}function L(){return window.__TAURI_INTERNALS__.metadata.windows.map(t=>new k(t.label,{skip:!0}))}var oe=["tauri://created","tauri://error"],k=class t{constructor(e,n={}){this.label=e,this.listeners=Object.create(null),n?.skip||i("plugin:window|create",{options:{...n,label:e}}).then(async()=>this.emit("tauri://created")).catch(async r=>this.emit("tauri://error",r))}static getByLabel(e){return L().some(n=>n.label===e)?new t(e,{skip:!0}):null}static getCurrent(){return ue()}static getAll(){return L()}static async getFocusedWindow(){for(let e of L())if(await e.isFocused())return e;return null}async listen(e,n){return this._handleTauriEvent(e,n)?Promise.resolve(()=>{let r=this.listeners[e];r.splice(r.indexOf(n),1)}):x(e,n,{target:this.label})}async once(e,n){return this._handleTauriEvent(e,n)?Promise.resolve(()=>{let r=this.listeners[e];r.splice(r.indexOf(n),1)}):Q(e,n,{target:this.label})}async emit(e,n){if(oe.includes(e)){for(let r of this.listeners[e]||[])r({event:e,id:-1,windowLabel:this.label,payload:n});return Promise.resolve()}return q(e,n,{target:this.label})}_handleTauriEvent(e,n){return oe.includes(e)?(e in this.listeners?this.listeners[e].push(n):this.listeners[e]=[n],!0):!1}async scaleFactor(){return i("plugin:window|scale_factor",{label:this.label})}async innerPosition(){return i("plugin:window|inner_position",{label:this.label}).then(({x:e,y:n})=>new g(e,n))}async outerPosition(){return i("plugin:window|outer_position",{label:this.label}).then(({x:e,y:n})=>new g(e,n))}async innerSize(){return i("plugin:window|inner_size",{label:this.label}).then(({width:e,height:n})=>new h(e,n))}async outerSize(){return i("plugin:window|outer_size",{label:this.label}).then(({width:e,height:n})=>new h(e,n))}async isFullscreen(){return i("plugin:window|is_fullscreen",{label:this.label})}async isMinimized(){return i("plugin:window|is_minimized",{label:this.label})}async isMaximized(){return i("plugin:window|is_maximized",{label:this.label})}async isFocused(){return i("plugin:window|is_focused",{label:this.label})}async isDecorated(){return i("plugin:window|is_decorated",{label:this.label})}async isResizable(){return i("plugin:window|is_resizable",{label:this.label})}async isMaximizable(){return i("plugin:window|is_maximizable",{label:this.label})}async isMinimizable(){return i("plugin:window|is_minimizable",{label:this.label})}async isClosable(){return i("plugin:window|is_closable",{label:this.label})}async isVisible(){return i("plugin:window|is_visible",{label:this.label})}async title(){return i("plugin:window|title",{label:this.label})}async theme(){return i("plugin:window|theme",{label:this.label})}async center(){return i("plugin:window|center",{label:this.label})}async requestUserAttention(e){let n=null;return e&&(e===1?n={type:"Critical"}:n={type:"Informational"}),i("plugin:window|request_user_attention",{label:this.label,value:n})}async setResizable(e){return i("plugin:window|set_resizable",{label:this.label,value:e})}async setMaximizable(e){return i("plugin:window|set_maximizable",{label:this.label,value:e})}async setMinimizable(e){return i("plugin:window|set_minimizable",{label:this.label,value:e})}async setClosable(e){return i("plugin:window|set_closable",{label:this.label,value:e})}async setTitle(e){return i("plugin:window|set_title",{label:this.label,value:e})}async maximize(){return i("plugin:window|maximize",{label:this.label})}async unmaximize(){return i("plugin:window|unmaximize",{label:this.label})}async toggleMaximize(){return i("plugin:window|toggle_maximize",{label:this.label})}async minimize(){return i("plugin:window|minimize",{label:this.label})}async unminimize(){return i("plugin:window|unminimize",{label:this.label})}async show(){return i("plugin:window|show",{label:this.label})}async hide(){return i("plugin:window|hide",{label:this.label})}async close(){return i("plugin:window|close",{label:this.label})}async setDecorations(e){return i("plugin:window|set_decorations",{label:this.label,value:e})}async setShadow(e){return i("plugin:window|set_shadow",{label:this.label,value:e})}async setEffects(e){return i("plugin:window|set_effects",{label:this.label,value:e})}async clearEffects(){return i("plugin:window|set_effects",{label:this.label,value:null})}async setAlwaysOnTop(e){return i("plugin:window|set_always_on_top",{label:this.label,value:e})}async setAlwaysOnBottom(e){return i("plugin:window|set_always_on_bottom",{label:this.label,value:e})}async setContentProtected(e){return i("plugin:window|set_content_protected",{label:this.label,value:e})}async setSize(e){if(!e||e.type!=="Logical"&&e.type!=="Physical")throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return i("plugin:window|set_size",{label:this.label,value:{type:e.type,data:{width:e.width,height:e.height}}})}async setMinSize(e){if(e&&e.type!=="Logical"&&e.type!=="Physical")throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return i("plugin:window|set_min_size",{label:this.label,value:e?{type:e.type,data:{width:e.width,height:e.height}}:null})}async setMaxSize(e){if(e&&e.type!=="Logical"&&e.type!=="Physical")throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return i("plugin:window|set_max_size",{label:this.label,value:e?{type:e.type,data:{width:e.width,height:e.height}}:null})}async setPosition(e){if(!e||e.type!=="Logical"&&e.type!=="Physical")throw new Error("the `position` argument must be either a LogicalPosition or a PhysicalPosition instance");return i("plugin:window|set_position",{label:this.label,value:{type:e.type,data:{x:e.x,y:e.y}}})}async setFullscreen(e){return i("plugin:window|set_fullscreen",{label:this.label,value:e})}async setFocus(){return i("plugin:window|set_focus",{label:this.label})}async setIcon(e){return i("plugin:window|set_icon",{label:this.label,value:typeof e=="string"?e:Array.from(e)})}async setSkipTaskbar(e){return i("plugin:window|set_skip_taskbar",{label:this.label,value:e})}async setCursorGrab(e){return i("plugin:window|set_cursor_grab",{label:this.label,value:e})}async setCursorVisible(e){return i("plugin:window|set_cursor_visible",{label:this.label,value:e})}async setCursorIcon(e){return i("plugin:window|set_cursor_icon",{label:this.label,value:e})}async setCursorPosition(e){if(!e||e.type!=="Logical"&&e.type!=="Physical")throw new Error("the `position` argument must be either a LogicalPosition or a PhysicalPosition instance");return i("plugin:window|set_cursor_position",{label:this.label,value:{type:e.type,data:{x:e.x,y:e.y}}})}async setIgnoreCursorEvents(e){return i("plugin:window|set_ignore_cursor_events",{label:this.label,value:e})}async startDragging(){return i("plugin:window|start_dragging",{label:this.label})}async setProgressBar(e){return i("plugin:window|set_progress_bar",{label:this.label,value:e})}async onResized(e){return this.listen("tauri://resize",n=>{n.payload=pe(n.payload),e(n)})}async onMoved(e){return this.listen("tauri://move",n=>{n.payload=me(n.payload),e(n)})}async onCloseRequested(e){return this.listen("tauri://close-requested",n=>{let r=new D(n);Promise.resolve(e(r)).then(()=>{if(!r.isPreventDefault())return this.close()})})}async onFocusChanged(e){let n=await this.listen("tauri://focus",l=>{e({...l,payload:!0})}),r=await this.listen("tauri://blur",l=>{e({...l,payload:!1})});return()=>{n(),r()}}async onScaleChanged(e){return this.listen("tauri://scale-change",e)}async onFileDropEvent(e){let n=await this.listen("tauri://file-drop",u=>{e({...u,payload:{type:"drop",paths:u.payload}})}),r=await this.listen("tauri://file-drop-hover",u=>{e({...u,payload:{type:"hover",paths:u.payload}})}),l=await this.listen("tauri://file-drop-cancelled",u=>{e({...u,payload:{type:"cancel"}})});return()=>{n(),r(),l()}}async onThemeChanged(e){return this.listen("tauri://theme-changed",e)}},ce=(a=>(a.AppearanceBased="appearanceBased",a.Light="light",a.Dark="dark",a.MediumLight="mediumLight",a.UltraDark="ultraDark",a.Titlebar="titlebar",a.Selection="selection",a.Menu="menu",a.Popover="popover",a.Sidebar="sidebar",a.HeaderView="headerView",a.Sheet="sheet",a.WindowBackground="windowBackground",a.HudWindow="hudWindow",a.FullScreenUI="fullScreenUI",a.Tooltip="tooltip",a.ContentBackground="contentBackground",a.UnderWindowBackground="underWindowBackground",a.UnderPageBackground="underPageBackground",a.Mica="mica",a.Blur="blur",a.Acrylic="acrylic",a.Tabbed="tabbed",a.TabbedDark="tabbedDark",a.TabbedLight="tabbedLight",a))(ce||{}),de=(r=>(r.FollowsWindowActiveState="followsWindowActiveState",r.Active="active",r.Inactive="inactive",r))(de||{});function Z(t){return t===null?null:{name:t.name,scaleFactor:t.scaleFactor,position:me(t.position),size:pe(t.size)}}function me(t){return new g(t.x,t.y)}function pe(t){return new h(t.width,t.height)}async function Oe(){return i("plugin:window|current_monitor").then(Z)}async function Te(){return i("plugin:window|primary_monitor").then(Z)}async function xe(){return i("plugin:window|available_monitors").then(t=>t.map(Z))}var Y={};d(Y,{BaseDirectory:()=>he,appCacheDir:()=>Ee,appConfigDir:()=>Le,appDataDir:()=>De,appLocalDataDir:()=>Fe,appLogDir:()=>en,audioDir:()=>Re,basename:()=>cn,cacheDir:()=>ze,configDir:()=>We,dataDir:()=>Ue,delimiter:()=>rn,desktopDir:()=>He,dirname:()=>ln,documentDir:()=>Ve,downloadDir:()=>Ge,executableDir:()=>Ne,extname:()=>un,fontDir:()=>Ke,homeDir:()=>je,isAbsolute:()=>dn,join:()=>an,localDataDir:()=>Qe,normalize:()=>on,pictureDir:()=>qe,publicDir:()=>$e,resolve:()=>sn,resolveResource:()=>Ze,resourceDir:()=>Be,runtimeDir:()=>Je,sep:()=>tn,tempDir:()=>nn,templateDir:()=>Ye,videoDir:()=>Xe});var he=(o=>(o[o.Audio=1]="Audio",o[o.Cache=2]="Cache",o[o.Config=3]="Config",o[o.Data=4]="Data",o[o.LocalData=5]="LocalData",o[o.Document=6]="Document",o[o.Download=7]="Download",o[o.Picture=8]="Picture",o[o.Public=9]="Public",o[o.Video=10]="Video",o[o.Resource=11]="Resource",o[o.Temp=12]="Temp",o[o.AppConfig=13]="AppConfig",o[o.AppData=14]="AppData",o[o.AppLocalData=15]="AppLocalData",o[o.AppCache=16]="AppCache",o[o.AppLog=17]="AppLog",o[o.Desktop=18]="Desktop",o[o.Executable=19]="Executable",o[o.Font=20]="Font",o[o.Home=21]="Home",o[o.Runtime=22]="Runtime",o[o.Template=23]="Template",o))(he||{});async function Le(){return i("plugin:path|resolve_directory",{directory:13})}async function De(){return i("plugin:path|resolve_directory",{directory:14})}async function Fe(){return i("plugin:path|resolve_directory",{directory:15})}async function Ee(){return i("plugin:path|resolve_directory",{directory:16})}async function Re(){return i("plugin:path|resolve_directory",{directory:1})}async function ze(){return i("plugin:path|resolve_directory",{directory:2})}async function We(){return i("plugin:path|resolve_directory",{directory:3})}async function Ue(){return i("plugin:path|resolve_directory",{directory:4})}async function He(){return i("plugin:path|resolve_directory",{directory:18})}async function Ve(){return i("plugin:path|resolve_directory",{directory:6})}async function Ge(){return i("plugin:path|resolve_directory",{directory:7})}async function Ne(){return i("plugin:path|resolve_directory",{directory:19})}async function Ke(){return i("plugin:path|resolve_directory",{directory:20})}async function je(){return i("plugin:path|resolve_directory",{directory:21})}async function Qe(){return i("plugin:path|resolve_directory",{directory:5})}async function qe(){return i("plugin:path|resolve_directory",{directory:8})}async function $e(){return i("plugin:path|resolve_directory",{directory:9})}async function Be(){return i("plugin:path|resolve_directory",{directory:11})}async function Ze(t){return i("plugin:path|resolve_directory",{directory:11,path:t})}async function Je(){return i("plugin:path|resolve_directory",{directory:22})}async function Ye(){return i("plugin:path|resolve_directory",{directory:23})}async function Xe(){return i("plugin:path|resolve_directory",{directory:10})}async function en(){return i("plugin:path|resolve_directory",{directory:17})}async function nn(t){return i("plugin:path|resolve_directory",{directory:12})}function tn(){return window.__TAURI_INTERNALS__.plugins.path.sep}function rn(){return window.__TAURI_INTERNALS__.plugins.path.delimiter}async function sn(...t){return i("plugin:path|resolve",{paths:t})}async function on(t){return i("plugin:path|normalize",{path:t})}async function an(...t){return i("plugin:path|join",{paths:t})}async function ln(t){return i("plugin:path|dirname",{path:t})}async function un(t){return i("plugin:path|extname",{path:t})}async function cn(t,e){return i("plugin:path|basename",{path:t,ext:e})}async function dn(t){return i("plugin:path|isAbsolute",{path:t})}var ee={};d(ee,{TrayIcon:()=>X});var M,v=class{constructor(e){b(this,M,void 0);y(this,M,e)}get rid(){return m(this,M)}async close(){return i("plugin:resources|close",{rid:this.rid})}};M=new WeakMap;function ge(t,e){(Array.isArray(e)?e:[e]).forEach(n=>{Object.getOwnPropertyNames(n.prototype).forEach(r=>{Object.defineProperty(t.prototype,r,Object.getOwnPropertyDescriptor(n.prototype,r)??Object.create(null))})})}var X=class t extends v{constructor(n,r){super(n);this.id=r}static async new(n){n?.menu&&(n.menu=[n.menu.rid,n.menu.kind]);let r=new p;return n?.action&&(r.onmessage=n.action,delete n.action),i("plugin:tray|new",{options:n??{},handler:r}).then(([l,u])=>new t(l,u))}async setIcon(n){return i("plugin:tray|set_icon",{rid:this.rid,icon:n})}async setMenu(n){return n&&(n=[n.rid,n.kind]),i("plugin:tray|set_menu",{rid:this.rid,menu:n})}async setTooltip(n){return i("plugin:tray|set_tooltip",{rid:this.rid,tooltip:n})}async setTitle(n){return i("plugin:tray|set_title",{rid:this.rid,title:n})}async setVisible(n){return i("plugin:tray|set_visible",{rid:this.rid,visible:n})}async setTempDirPath(n){return i("plugin:tray|set_temp_dir_path",{rid:this.rid,path:n})}async setIconAsTemplate(n){return i("plugin:tray|set_icon_as_template",{rid:this.rid,asTemplate:n})}async setMenuOnLeftClick(n){return i("plugin:tray|set_show_menu_on_left_click",{rid:this.rid,onLeft:n})}};var te={};d(te,{CheckMenuItem:()=>H,IconMenuItem:()=>V,Menu:()=>ie,MenuItem:()=>W,NativeIcon:()=>be,PredefinedMenuItem:()=>U,Submenu:()=>I});var be=(s=>(s.Add="Add",s.Advanced="Advanced",s.Bluetooth="Bluetooth",s.Bookmarks="Bookmarks",s.Caution="Caution",s.ColorPanel="ColorPanel",s.ColumnView="ColumnView",s.Computer="Computer",s.EnterFullScreen="EnterFullScreen",s.Everyone="Everyone",s.ExitFullScreen="ExitFullScreen",s.FlowView="FlowView",s.Folder="Folder",s.FolderBurnable="FolderBurnable",s.FolderSmart="FolderSmart",s.FollowLinkFreestanding="FollowLinkFreestanding",s.FontPanel="FontPanel",s.GoLeft="GoLeft",s.GoRight="GoRight",s.Home="Home",s.IChatTheater="IChatTheater",s.IconView="IconView",s.Info="Info",s.InvalidDataFreestanding="InvalidDataFreestanding",s.LeftFacingTriangle="LeftFacingTriangle",s.ListView="ListView",s.LockLocked="LockLocked",s.LockUnlocked="LockUnlocked",s.MenuMixedState="MenuMixedState",s.MenuOnState="MenuOnState",s.MobileMe="MobileMe",s.MultipleDocuments="MultipleDocuments",s.Network="Network",s.Path="Path",s.PreferencesGeneral="PreferencesGeneral",s.QuickLook="QuickLook",s.RefreshFreestanding="RefreshFreestanding",s.Refresh="Refresh",s.Remove="Remove",s.RevealFreestanding="RevealFreestanding",s.RightFacingTriangle="RightFacingTriangle",s.Share="Share",s.Slideshow="Slideshow",s.SmartBadge="SmartBadge",s.StatusAvailable="StatusAvailable",s.StatusNone="StatusNone",s.StatusPartiallyAvailable="StatusPartiallyAvailable",s.StatusUnavailable="StatusUnavailable",s.StopProgressFreestanding="StopProgressFreestanding",s.StopProgress="StopProgress",s.TrashEmpty="TrashEmpty",s.TrashFull="TrashFull",s.User="User",s.UserAccounts="UserAccounts",s.UserGroup="UserGroup",s.UserGuest="UserGuest",s))(be||{});function ne([t,e,n]){switch(n){case"Submenu":return new I(t,e);case"Predefined":return new U(t,e);case"Check":return new H(t,e);case"Icon":return new V(t,e);case"MenuItem":default:return new W(t,e)}}async function f(t,e){let n=new p,r=null;return e&&("action"in e&&e.action&&(n.onmessage=e.action,delete e.action),"items"in e&&e.items&&(r=e.items.map(l=>[l.rid,l.kind]))),i("plugin:menu|new",{kind:t,options:e?{...e,items:r}:void 0,handler:n})}var A,C,F=class extends v{constructor(n,r,l){super(n);b(this,A,void 0);b(this,C,void 0);y(this,A,r),y(this,C,l)}get id(){return m(this,A)}get kind(){return m(this,C)}};A=new WeakMap,C=new WeakMap;var E=class extends F{async append(e){return i("plugin:menu|append",{rid:this.rid,kind:this.kind,items:(Array.isArray(e)?e:[e]).map(n=>[n.rid,n.kind])})}async prepend(e){return i("plugin:menu|prepend",{rid:this.rid,kind:this.kind,items:(Array.isArray(e)?e:[e]).map(n=>[n.rid,n.kind])})}async insert(e,n){return i("plugin:menu|insert",{rid:this.rid,kind:this.kind,items:(Array.isArray(e)?e:[e]).map(r=>[r.rid,r.kind]),position:n})}async remove(e){return i("plugin:menu|remove",{rid:this.rid,kind:this.kind,item:[e.rid,e.kind]})}async removeAt(e){return i("plugin:menu|remove_at",{rid:this.rid,kind:this.kind,position:e}).then(ne)}async items(){return i("plugin:menu|append",{rid:this.rid,kind:this.kind}).then(e=>e.map(ne))}async get(e){return i("plugin:menu|append",{rid:this.rid,kind:this.kind,id:e}).then(n=>n?ne(n):null)}async popup(e,n){return i("plugin:menu|popup",{rid:this.rid,kind:this.kind,window:e,position:n})}},ie=class t extends E{constructor(e,n){super(e,n,"Menu")}static async new(e){return f("Menu",e).then(([n,r])=>new t(n,r))}static async default(){return i("plugin:menu|default").then(([e,n])=>new t(e,n))}async setAsAppMenu(){return i("plugin:menu|set_as_app_menu",{rid:this.rid}).then(e=>e?new t(e[0],e[1]):null)}async setAsWindowMenu(e){return i("plugin:menu|set_as_window_menu",{rid:this.rid,window:e}).then(n=>n?new t(n[0],n[1]):null)}},R=class extends F{async text(){return i("plugin:menu|text",{rid:this.rid,kind:this.kind})}async setText(e){return i("plugin:menu|set_text",{rid:this.rid,kind:this.kind,text:e})}},z=class extends R{async isEnabled(){return i("plugin:menu|is_enabled",{rid:this.rid,kind:this.kind})}async setEnabled(e){return i("plugin:menu|set_enabled",{rid:this.rid,kind:this.kind,enabled:e})}},S=class extends z{async setAccelerator(e){return i("plugin:menu|set_accelerator",{rid:this.rid,kind:this.kind,accelerator:e})}},W=class t extends S{constructor(e,n){super(e,n,"MenuItem")}static async new(e){return f("MenuItem",e).then(([n,r])=>new t(n,r))}},I=class t extends E{constructor(e,n){super(e,n,"Submenu")}static async new(e){return f("Submenu",e).then(([n,r])=>new t(n,r))}async setAsWindowsMenuForNSApp(){return i("plugin:menu|set_as_windows_menu_for_nsapp",{rid:this.rid})}async setAsHelpMenuForNSApp(){return i("plugin:menu|set_as_help_menu_for_nsapp",{rid:this.rid})}};ge(I,z);var U=class t extends R{constructor(e,n){super(e,n,"MenuItem")}static async new(e){return f("MenuItem",e).then(([n,r])=>new t(n,r))}},H=class t extends S{constructor(e,n){super(e,n,"Check")}static async new(e){return f("Check",e).then(([n,r])=>new t(n,r))}async isChecked(){return i("plugin:menu|is_checked",{rid:this.rid})}async setChecked(e){return i("plugin:menu|set_checked",{rid:this.rid,checked:e})}},V=class t extends S{constructor(e,n){super(e,n,"Icon")}static async new(e){return f("Icon",e).then(([n,r])=>new t(n,r))}async setIcon(e){return i("plugin:menu|set_icon",{rid:this.rid,icon:e})}async setNativeIcon(e){return i("plugin:menu|set_native_icon",{rid:this.rid,icon:e})}};return ve(mn);})(); window.__TAURI__ = __TAURI_IIFE__ diff --git a/core/tauri/src/tray/plugin.rs b/core/tauri/src/tray/plugin.rs index ef620ce2c899..308eb0402540 100644 --- a/core/tauri/src/tray/plugin.rs +++ b/core/tauri/src/tray/plugin.rs @@ -13,7 +13,7 @@ use crate::{ plugin::{Builder, TauriPlugin}, resources::ResourceId, tray::TrayIconBuilder, - AppHandle, IconDto, Manager, Runtime, + AppHandle, IconDto, Runtime, }; use super::TrayIcon; @@ -35,7 +35,7 @@ struct TrayIconOptions { fn new( app: AppHandle, options: TrayIconOptions, - handler: Option, + handler: Channel, ) -> crate::Result<(ResourceId, String)> { let mut builder = if let Some(id) = options.id { TrayIconBuilder::::with_id(id) @@ -43,11 +43,9 @@ fn new( TrayIconBuilder::::new() }; - if let Some(handler) = handler { - builder = builder.on_tray_event(|tray, e| { - let _ = handler.send(e); - }); - } + builder = builder.on_tray_icon_event(move |_tray, e| { + let _ = handler.send(e); + }); let mut resources_table = app.manager.resources_table(); diff --git a/examples/api/src-tauri/Cargo.lock b/examples/api/src-tauri/Cargo.lock index 4062cbc39f1e..0aa2590b0fc8 100644 --- a/examples/api/src-tauri/Cargo.lock +++ b/examples/api/src-tauri/Cargo.lock @@ -480,12 +480,12 @@ dependencies = [ [[package]] name = "cargo_toml" -version = "0.15.3" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "599aa35200ffff8f04c1925aa1acc92fa2e08874379ef42e210a80e527e60838" +checksum = "e3f9629bc6c4388ea699781dc988c2b99766d7679b151c81990b4fa1208fafd3" dependencies = [ "serde", - "toml 0.7.8", + "toml 0.8.2", ] [[package]] diff --git a/examples/api/src/App.svelte b/examples/api/src/App.svelte index e5e14bc64119..bf548b44ee36 100644 --- a/examples/api/src/App.svelte +++ b/examples/api/src/App.svelte @@ -8,7 +8,7 @@ import Window from './views/Window.svelte' import WebRTC from './views/WebRTC.svelte' import App from './views/App.svelte' - + import Tray from './views/Tray.svelte' document.addEventListener('keydown', (event) => { if (event.ctrlKey && event.key === 'b') { @@ -40,6 +40,11 @@ component: Window, icon: 'i-codicon-window' }, + { + label: 'Tray', + component: Tray, + icon: 'i-ph-broadcast' + }, { label: 'WebRTC', component: WebRTC, diff --git a/examples/api/src/views/Tray.svelte b/examples/api/src/views/Tray.svelte new file mode 100644 index 000000000000..bf10fc3e383e --- /dev/null +++ b/examples/api/src/views/Tray.svelte @@ -0,0 +1,65 @@ + + +
+
+ + + + + +
+ +
+ + + +
+ +
+ +
+
diff --git a/examples/api/src/views/Window.svelte b/examples/api/src/views/Window.svelte index e07954149718..d1b0a5359ca0 100644 --- a/examples/api/src/views/Window.svelte +++ b/examples/api/src/views/Window.svelte @@ -10,7 +10,6 @@ ProgressBarStatus, Window } from '@tauri-apps/api/window' - import { invoke } from '@tauri-apps/api/primitives' const appWindow = getCurrent() diff --git a/tooling/api/src/tray.ts b/tooling/api/src/tray.ts index 2c93b5fccf7f..4858fdcef48a 100644 --- a/tooling/api/src/tray.ts +++ b/tooling/api/src/tray.ts @@ -63,7 +63,7 @@ export interface TrayIconOptions { /** The tray icon tooltip */ tooltip?: string /** - * The tooltip text + * The tray title * * #### Platform-specific * @@ -87,7 +87,7 @@ export interface TrayIconOptions { */ iconAsTemplate?: boolean /** Whether to show the tray menu on left click or not, default is `true`. **macOS only**. */ - menuOnLeftClieck?: boolean + menuOnLeftClick?: boolean /** A handler for an event on the tray icon. */ action?: (event: TrayIconEvent) => void }