import { __export } from "./chunk-PZ5AY32C.js"; // node_modules/nanoid/non-secure/index.js var urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"; var nanoid = (size = 21) => { let id = ""; let i = size | 0; while (i--) { id += urlAlphabet[Math.random() * 64 | 0]; } return id; }; // node_modules/@wailsio/runtime/src/runtime.js var runtimeURL = window.location.origin + "/wails/runtime"; var objectNames = { Call: 0, Clipboard: 1, Application: 2, Events: 3, ContextMenu: 4, Dialog: 5, Window: 6, Screens: 7, System: 8, Browser: 9, CancelCall: 10 }; var clientId = nanoid(); function newRuntimeCallerWithID(object, windowName) { return function(method, args = null) { return runtimeCallWithID(object, method, windowName, args); }; } function runtimeCallWithID(objectID, method, windowName, args) { let url = new URL(runtimeURL); url.searchParams.append("object", objectID); url.searchParams.append("method", method); let fetchOptions = { headers: {} }; if (windowName) { fetchOptions.headers["x-wails-window-name"] = windowName; } if (args) { url.searchParams.append("args", JSON.stringify(args)); } fetchOptions.headers["x-wails-client-id"] = clientId; return new Promise((resolve, reject) => { fetch(url, fetchOptions).then((response) => { if (response.ok) { if (response.headers.get("Content-Type") && response.headers.get("Content-Type").indexOf("application/json") !== -1) { return response.json(); } else { return response.text(); } } reject(Error(response.statusText)); }).then((data) => resolve(data)).catch((error) => reject(error)); }); } // node_modules/@wailsio/runtime/src/system.js var system_exports = {}; __export(system_exports, { Capabilities: () => Capabilities, Environment: () => Environment, IsAMD64: () => IsAMD64, IsARM: () => IsARM, IsARM64: () => IsARM64, IsDarkMode: () => IsDarkMode, IsDebug: () => IsDebug, IsLinux: () => IsLinux, IsMac: () => IsMac, IsWindows: () => IsWindows, invoke: () => invoke }); var call = newRuntimeCallerWithID(objectNames.System, ""); var systemIsDarkMode = 0; var environment = 1; var _invoke = (() => { var _a, _b, _c; try { if ((_a = window == null ? void 0 : window.chrome) == null ? void 0 : _a.webview) { return (msg) => window.chrome.webview.postMessage(msg); } if ((_c = (_b = window == null ? void 0 : window.webkit) == null ? void 0 : _b.messageHandlers) == null ? void 0 : _c.external) { return (msg) => window.webkit.messageHandlers.external.postMessage(msg); } } catch (e) { console.warn( "\n%c⚠️ Browser Environment Detected %c\n\n%cOnly UI previews are available in the browser. For full functionality, please run the application in desktop mode.\nMore information at: https://v3alpha.wails.io/learn/build/#using-a-browser-for-development\n", "background: #ffffff; color: #000000; font-weight: bold; padding: 4px 8px; border-radius: 4px; border: 2px solid #000000;", "background: transparent;", "color: #ffffff; font-style: italic; font-weight: bold;" ); } return null; })(); function invoke(msg) { if (!_invoke) return; return _invoke(msg); } function IsDarkMode() { return call(systemIsDarkMode); } function Capabilities() { let response = fetch("/wails/capabilities"); return response.json(); } function Environment() { return call(environment); } function IsWindows() { return window._wails.environment.OS === "windows"; } function IsLinux() { return window._wails.environment.OS === "linux"; } function IsMac() { return window._wails.environment.OS === "darwin"; } function IsAMD64() { return window._wails.environment.Arch === "amd64"; } function IsARM() { return window._wails.environment.Arch === "arm"; } function IsARM64() { return window._wails.environment.Arch === "arm64"; } function IsDebug() { return window._wails.environment.Debug === true; } // node_modules/@wailsio/runtime/src/contextmenu.js window.addEventListener("contextmenu", contextMenuHandler); var call2 = newRuntimeCallerWithID(objectNames.ContextMenu, ""); var ContextMenuOpen = 0; function openContextMenu(id, x, y, data) { void call2(ContextMenuOpen, { id, x, y, data }); } function contextMenuHandler(event) { let element = event.target; let customContextMenu = window.getComputedStyle(element).getPropertyValue("--custom-contextmenu"); customContextMenu = customContextMenu ? customContextMenu.trim() : ""; if (customContextMenu) { event.preventDefault(); let customContextMenuData = window.getComputedStyle(element).getPropertyValue("--custom-contextmenu-data"); openContextMenu(customContextMenu, event.clientX, event.clientY, customContextMenuData); return; } processDefaultContextMenu(event); } function processDefaultContextMenu(event) { if (IsDebug()) { return; } const element = event.target; const computedStyle = window.getComputedStyle(element); const defaultContextMenuAction = computedStyle.getPropertyValue("--default-contextmenu").trim(); switch (defaultContextMenuAction) { case "show": return; case "hide": event.preventDefault(); return; default: if (element.isContentEditable) { return; } const selection = window.getSelection(); const hasSelection = selection.toString().length > 0; if (hasSelection) { for (let i = 0; i < selection.rangeCount; i++) { const range = selection.getRangeAt(i); const rects = range.getClientRects(); for (let j = 0; j < rects.length; j++) { const rect = rects[j]; if (document.elementFromPoint(rect.left, rect.top) === element) { return; } } } } if (element.tagName === "INPUT" || element.tagName === "TEXTAREA") { if (hasSelection || !element.readOnly && !element.disabled) { return; } } event.preventDefault(); } } // node_modules/@wailsio/runtime/src/flags.js var flags_exports = {}; __export(flags_exports, { GetFlag: () => GetFlag }); function GetFlag(keyString) { try { return window._wails.flags[keyString]; } catch (e) { throw new Error("Unable to retrieve flag '" + keyString + "': " + e); } } // node_modules/@wailsio/runtime/src/drag.js var shouldDrag = false; var resizable = false; var resizeEdge = null; var defaultCursor = "auto"; window._wails = window._wails || {}; window._wails.setResizable = function(value) { resizable = value; }; window._wails.endDrag = function() { document.body.style.cursor = "default"; shouldDrag = false; }; window.addEventListener("mousedown", onMouseDown); window.addEventListener("mousemove", onMouseMove); window.addEventListener("mouseup", onMouseUp); function dragTest(e) { let val = window.getComputedStyle(e.target).getPropertyValue("--wails-draggable"); let mousePressed = e.buttons !== void 0 ? e.buttons : e.which; if (!val || val === "" || val.trim() !== "drag" || mousePressed === 0) { return false; } return e.detail === 1; } function onMouseDown(e) { if (resizeEdge) { invoke("wails:resize:" + resizeEdge); e.preventDefault(); return; } if (dragTest(e)) { if (e.offsetX > e.target.clientWidth || e.offsetY > e.target.clientHeight) { return; } shouldDrag = true; } else { shouldDrag = false; } } function onMouseUp() { shouldDrag = false; } function setResize(cursor) { document.documentElement.style.cursor = cursor || defaultCursor; resizeEdge = cursor; } function onMouseMove(e) { if (shouldDrag) { shouldDrag = false; let mousePressed = e.buttons !== void 0 ? e.buttons : e.which; if (mousePressed > 0) { invoke("wails:drag"); return; } } if (!resizable || !IsWindows()) { return; } if (defaultCursor == null) { defaultCursor = document.documentElement.style.cursor; } let resizeHandleHeight = GetFlag("system.resizeHandleHeight") || 5; let resizeHandleWidth = GetFlag("system.resizeHandleWidth") || 5; let cornerExtra = GetFlag("resizeCornerExtra") || 10; let rightBorder = window.outerWidth - e.clientX < resizeHandleWidth; let leftBorder = e.clientX < resizeHandleWidth; let topBorder = e.clientY < resizeHandleHeight; let bottomBorder = window.outerHeight - e.clientY < resizeHandleHeight; let rightCorner = window.outerWidth - e.clientX < resizeHandleWidth + cornerExtra; let leftCorner = e.clientX < resizeHandleWidth + cornerExtra; let topCorner = e.clientY < resizeHandleHeight + cornerExtra; let bottomCorner = window.outerHeight - e.clientY < resizeHandleHeight + cornerExtra; if (!leftBorder && !rightBorder && !topBorder && !bottomBorder && resizeEdge !== void 0) { setResize(); } else if (rightCorner && bottomCorner) setResize("se-resize"); else if (leftCorner && bottomCorner) setResize("sw-resize"); else if (leftCorner && topCorner) setResize("nw-resize"); else if (topCorner && rightCorner) setResize("ne-resize"); else if (leftBorder) setResize("w-resize"); else if (topBorder) setResize("n-resize"); else if (bottomBorder) setResize("s-resize"); else if (rightBorder) setResize("e-resize"); } // node_modules/@wailsio/runtime/src/application.js var application_exports = {}; __export(application_exports, { Hide: () => Hide, Quit: () => Quit, Show: () => Show }); var call3 = newRuntimeCallerWithID(objectNames.Application, ""); var HideMethod = 0; var ShowMethod = 1; var QuitMethod = 2; function Hide() { return call3(HideMethod); } function Show() { return call3(ShowMethod); } function Quit() { return call3(QuitMethod); } // node_modules/@wailsio/runtime/src/browser.js var browser_exports = {}; __export(browser_exports, { OpenURL: () => OpenURL }); var call4 = newRuntimeCallerWithID(objectNames.Browser, ""); var BrowserOpenURL = 0; function OpenURL(url) { return call4(BrowserOpenURL, { url }); } // node_modules/@wailsio/runtime/src/calls.js var calls_exports = {}; __export(calls_exports, { ByID: () => ByID, ByName: () => ByName, Call: () => Call, Plugin: () => Plugin }); window._wails = window._wails || {}; window._wails.callResultHandler = resultHandler; window._wails.callErrorHandler = errorHandler; var CallBinding = 0; var call5 = newRuntimeCallerWithID(objectNames.Call, ""); var cancelCall = newRuntimeCallerWithID(objectNames.CancelCall, ""); var callResponses = /* @__PURE__ */ new Map(); function generateID() { let result; do { result = nanoid(); } while (callResponses.has(result)); return result; } function resultHandler(id, data, isJSON) { const promiseHandler = getAndDeleteResponse(id); if (promiseHandler) { promiseHandler.resolve(isJSON ? JSON.parse(data) : data); } } function errorHandler(id, message) { const promiseHandler = getAndDeleteResponse(id); if (promiseHandler) { promiseHandler.reject(message); } } function getAndDeleteResponse(id) { const response = callResponses.get(id); callResponses.delete(id); return response; } function callBinding(type, options = {}) { const id = generateID(); const doCancel = () => { return cancelCall(type, { "call-id": id }); }; let queuedCancel = false, callRunning = false; let p = new Promise((resolve, reject) => { options["call-id"] = id; callResponses.set(id, { resolve, reject }); call5(type, options).then((_) => { callRunning = true; if (queuedCancel) { return doCancel(); } }).catch((error) => { reject(error); callResponses.delete(id); }); }); p.cancel = () => { if (callRunning) { return doCancel(); } else { queuedCancel = true; } }; return p; } function Call(options) { return callBinding(CallBinding, options); } function ByName(methodName, ...args) { return callBinding(CallBinding, { methodName, args }); } function ByID(methodID, ...args) { return callBinding(CallBinding, { methodID, args }); } function Plugin(pluginName, methodName, ...args) { return callBinding(CallBinding, { packageName: "wails-plugins", structName: pluginName, methodName, args }); } // node_modules/@wailsio/runtime/src/clipboard.js var clipboard_exports = {}; __export(clipboard_exports, { SetText: () => SetText, Text: () => Text }); var call6 = newRuntimeCallerWithID(objectNames.Clipboard, ""); var ClipboardSetText = 0; var ClipboardText = 1; function SetText(text) { return call6(ClipboardSetText, { text }); } function Text() { return call6(ClipboardText); } // node_modules/@wailsio/runtime/src/create.js var create_exports = {}; __export(create_exports, { Any: () => Any, Array: () => Array, ByteSlice: () => ByteSlice, Map: () => Map2, Nullable: () => Nullable, Struct: () => Struct }); function Any(source) { return ( /** @type {T} */ source ); } function ByteSlice(source) { return ( /** @type {any} */ source == null ? "" : source ); } function Array(element) { if (element === Any) { return (source) => source === null ? [] : source; } return (source) => { if (source === null) { return []; } for (let i = 0; i < source.length; i++) { source[i] = element(source[i]); } return source; }; } function Map2(key, value) { if (value === Any) { return (source) => source === null ? {} : source; } return (source) => { if (source === null) { return {}; } for (const key2 in source) { source[key2] = value(source[key2]); } return source; }; } function Nullable(element) { if (element === Any) { return Any; } return (source) => source === null ? null : element(source); } function Struct(createField) { let allAny = true; for (const name in createField) { if (createField[name] !== Any) { allAny = false; break; } } if (allAny) { return Any; } return (source) => { for (const name in createField) { if (name in source) { source[name] = createField[name](source[name]); } } return source; }; } // node_modules/@wailsio/runtime/src/dialogs.js var dialogs_exports = {}; __export(dialogs_exports, { Error: () => Error2, Info: () => Info, OpenFile: () => OpenFile, Question: () => Question, SaveFile: () => SaveFile, Warning: () => Warning }); window._wails = window._wails || {}; window._wails.dialogErrorCallback = dialogErrorCallback; window._wails.dialogResultCallback = dialogResultCallback; var DialogInfo = 0; var DialogWarning = 1; var DialogError = 2; var DialogQuestion = 3; var DialogOpenFile = 4; var DialogSaveFile = 5; var call7 = newRuntimeCallerWithID(objectNames.Dialog, ""); var dialogResponses = /* @__PURE__ */ new Map(); function generateID2() { let result; do { result = nanoid(); } while (dialogResponses.has(result)); return result; } function dialog(type, options = {}) { const id = generateID2(); options["dialog-id"] = id; return new Promise((resolve, reject) => { dialogResponses.set(id, { resolve, reject }); call7(type, options).catch((error) => { reject(error); dialogResponses.delete(id); }); }); } function dialogResultCallback(id, data, isJSON) { let p = dialogResponses.get(id); if (p) { if (isJSON) { p.resolve(JSON.parse(data)); } else { p.resolve(data); } dialogResponses.delete(id); } } function dialogErrorCallback(id, message) { let p = dialogResponses.get(id); if (p) { p.reject(message); dialogResponses.delete(id); } } var Info = (options) => dialog(DialogInfo, options); var Warning = (options) => dialog(DialogWarning, options); var Error2 = (options) => dialog(DialogError, options); var Question = (options) => dialog(DialogQuestion, options); var OpenFile = (options) => dialog(DialogOpenFile, options); var SaveFile = (options) => dialog(DialogSaveFile, options); // node_modules/@wailsio/runtime/src/events.js var events_exports = {}; __export(events_exports, { Emit: () => Emit, Off: () => Off, OffAll: () => OffAll, On: () => On, OnMultiple: () => OnMultiple, Once: () => Once, Types: () => Types, WailsEvent: () => WailsEvent, setup: () => setup }); // node_modules/@wailsio/runtime/src/event_types.js var EventTypes = { Windows: { SystemThemeChanged: "windows:SystemThemeChanged", APMPowerStatusChange: "windows:APMPowerStatusChange", APMSuspend: "windows:APMSuspend", APMResumeAutomatic: "windows:APMResumeAutomatic", APMResumeSuspend: "windows:APMResumeSuspend", APMPowerSettingChange: "windows:APMPowerSettingChange", ApplicationStarted: "windows:ApplicationStarted", WebViewNavigationCompleted: "windows:WebViewNavigationCompleted", WindowInactive: "windows:WindowInactive", WindowActive: "windows:WindowActive", WindowClickActive: "windows:WindowClickActive", WindowMaximise: "windows:WindowMaximise", WindowUnMaximise: "windows:WindowUnMaximise", WindowFullscreen: "windows:WindowFullscreen", WindowUnFullscreen: "windows:WindowUnFullscreen", WindowRestore: "windows:WindowRestore", WindowMinimise: "windows:WindowMinimise", WindowUnMinimise: "windows:WindowUnMinimise", WindowClosing: "windows:WindowClosing", WindowSetFocus: "windows:WindowSetFocus", WindowKillFocus: "windows:WindowKillFocus", WindowDragDrop: "windows:WindowDragDrop", WindowDragEnter: "windows:WindowDragEnter", WindowDragLeave: "windows:WindowDragLeave", WindowDragOver: "windows:WindowDragOver", WindowDidMove: "windows:WindowDidMove", WindowDidResize: "windows:WindowDidResize", WindowShow: "windows:WindowShow", WindowHide: "windows:WindowHide", WindowStartMove: "windows:WindowStartMove", WindowEndMove: "windows:WindowEndMove", WindowStartResize: "windows:WindowStartResize", WindowEndResize: "windows:WindowEndResize", WindowKeyDown: "windows:WindowKeyDown", WindowKeyUp: "windows:WindowKeyUp", WindowZOrderChanged: "windows:WindowZOrderChanged", WindowPaint: "windows:WindowPaint", WindowBackgroundErase: "windows:WindowBackgroundErase", WindowNonClientHit: "windows:WindowNonClientHit", WindowNonClientMouseDown: "windows:WindowNonClientMouseDown", WindowNonClientMouseUp: "windows:WindowNonClientMouseUp", WindowNonClientMouseMove: "windows:WindowNonClientMouseMove", WindowNonClientMouseLeave: "windows:WindowNonClientMouseLeave" }, Mac: { ApplicationDidBecomeActive: "mac:ApplicationDidBecomeActive", ApplicationDidChangeBackingProperties: "mac:ApplicationDidChangeBackingProperties", ApplicationDidChangeEffectiveAppearance: "mac:ApplicationDidChangeEffectiveAppearance", ApplicationDidChangeIcon: "mac:ApplicationDidChangeIcon", ApplicationDidChangeOcclusionState: "mac:ApplicationDidChangeOcclusionState", ApplicationDidChangeScreenParameters: "mac:ApplicationDidChangeScreenParameters", ApplicationDidChangeStatusBarFrame: "mac:ApplicationDidChangeStatusBarFrame", ApplicationDidChangeStatusBarOrientation: "mac:ApplicationDidChangeStatusBarOrientation", ApplicationDidFinishLaunching: "mac:ApplicationDidFinishLaunching", ApplicationDidHide: "mac:ApplicationDidHide", ApplicationDidResignActiveNotification: "mac:ApplicationDidResignActiveNotification", ApplicationDidUnhide: "mac:ApplicationDidUnhide", ApplicationDidUpdate: "mac:ApplicationDidUpdate", ApplicationWillBecomeActive: "mac:ApplicationWillBecomeActive", ApplicationWillFinishLaunching: "mac:ApplicationWillFinishLaunching", ApplicationWillHide: "mac:ApplicationWillHide", ApplicationWillResignActive: "mac:ApplicationWillResignActive", ApplicationWillTerminate: "mac:ApplicationWillTerminate", ApplicationWillUnhide: "mac:ApplicationWillUnhide", ApplicationWillUpdate: "mac:ApplicationWillUpdate", ApplicationDidChangeTheme: "mac:ApplicationDidChangeTheme!", ApplicationShouldHandleReopen: "mac:ApplicationShouldHandleReopen!", WindowDidBecomeKey: "mac:WindowDidBecomeKey", WindowDidBecomeMain: "mac:WindowDidBecomeMain", WindowDidBeginSheet: "mac:WindowDidBeginSheet", WindowDidChangeAlpha: "mac:WindowDidChangeAlpha", WindowDidChangeBackingLocation: "mac:WindowDidChangeBackingLocation", WindowDidChangeBackingProperties: "mac:WindowDidChangeBackingProperties", WindowDidChangeCollectionBehavior: "mac:WindowDidChangeCollectionBehavior", WindowDidChangeEffectiveAppearance: "mac:WindowDidChangeEffectiveAppearance", WindowDidChangeOcclusionState: "mac:WindowDidChangeOcclusionState", WindowDidChangeOrderingMode: "mac:WindowDidChangeOrderingMode", WindowDidChangeScreen: "mac:WindowDidChangeScreen", WindowDidChangeScreenParameters: "mac:WindowDidChangeScreenParameters", WindowDidChangeScreenProfile: "mac:WindowDidChangeScreenProfile", WindowDidChangeScreenSpace: "mac:WindowDidChangeScreenSpace", WindowDidChangeScreenSpaceProperties: "mac:WindowDidChangeScreenSpaceProperties", WindowDidChangeSharingType: "mac:WindowDidChangeSharingType", WindowDidChangeSpace: "mac:WindowDidChangeSpace", WindowDidChangeSpaceOrderingMode: "mac:WindowDidChangeSpaceOrderingMode", WindowDidChangeTitle: "mac:WindowDidChangeTitle", WindowDidChangeToolbar: "mac:WindowDidChangeToolbar", WindowDidDeminiaturize: "mac:WindowDidDeminiaturize", WindowDidEndSheet: "mac:WindowDidEndSheet", WindowDidEnterFullScreen: "mac:WindowDidEnterFullScreen", WindowMaximise: "mac:WindowMaximise", WindowUnMaximise: "mac:WindowUnMaximise", WindowDidZoom: "mac:WindowDidZoom!", WindowZoomIn: "mac:WindowZoomIn!", WindowZoomOut: "mac:WindowZoomOut!", WindowZoomReset: "mac:WindowZoomReset!", WindowDidEnterVersionBrowser: "mac:WindowDidEnterVersionBrowser", WindowDidExitFullScreen: "mac:WindowDidExitFullScreen", WindowDidExitVersionBrowser: "mac:WindowDidExitVersionBrowser", WindowDidExpose: "mac:WindowDidExpose", WindowDidFocus: "mac:WindowDidFocus", WindowDidMiniaturize: "mac:WindowDidMiniaturize", WindowDidMove: "mac:WindowDidMove", WindowDidOrderOffScreen: "mac:WindowDidOrderOffScreen", WindowDidOrderOnScreen: "mac:WindowDidOrderOnScreen", WindowDidResignKey: "mac:WindowDidResignKey", WindowDidResignMain: "mac:WindowDidResignMain", WindowDidResize: "mac:WindowDidResize", WindowDidUpdate: "mac:WindowDidUpdate", WindowDidUpdateAlpha: "mac:WindowDidUpdateAlpha", WindowDidUpdateCollectionBehavior: "mac:WindowDidUpdateCollectionBehavior", WindowDidUpdateCollectionProperties: "mac:WindowDidUpdateCollectionProperties", WindowDidUpdateShadow: "mac:WindowDidUpdateShadow", WindowDidUpdateTitle: "mac:WindowDidUpdateTitle", WindowDidUpdateToolbar: "mac:WindowDidUpdateToolbar", WindowShouldClose: "mac:WindowShouldClose!", WindowWillBecomeKey: "mac:WindowWillBecomeKey", WindowWillBecomeMain: "mac:WindowWillBecomeMain", WindowWillBeginSheet: "mac:WindowWillBeginSheet", WindowWillChangeOrderingMode: "mac:WindowWillChangeOrderingMode", WindowWillClose: "mac:WindowWillClose", WindowWillDeminiaturize: "mac:WindowWillDeminiaturize", WindowWillEnterFullScreen: "mac:WindowWillEnterFullScreen", WindowWillEnterVersionBrowser: "mac:WindowWillEnterVersionBrowser", WindowWillExitFullScreen: "mac:WindowWillExitFullScreen", WindowWillExitVersionBrowser: "mac:WindowWillExitVersionBrowser", WindowWillFocus: "mac:WindowWillFocus", WindowWillMiniaturize: "mac:WindowWillMiniaturize", WindowWillMove: "mac:WindowWillMove", WindowWillOrderOffScreen: "mac:WindowWillOrderOffScreen", WindowWillOrderOnScreen: "mac:WindowWillOrderOnScreen", WindowWillResignMain: "mac:WindowWillResignMain", WindowWillResize: "mac:WindowWillResize", WindowWillUnfocus: "mac:WindowWillUnfocus", WindowWillUpdate: "mac:WindowWillUpdate", WindowWillUpdateAlpha: "mac:WindowWillUpdateAlpha", WindowWillUpdateCollectionBehavior: "mac:WindowWillUpdateCollectionBehavior", WindowWillUpdateCollectionProperties: "mac:WindowWillUpdateCollectionProperties", WindowWillUpdateShadow: "mac:WindowWillUpdateShadow", WindowWillUpdateTitle: "mac:WindowWillUpdateTitle", WindowWillUpdateToolbar: "mac:WindowWillUpdateToolbar", WindowWillUpdateVisibility: "mac:WindowWillUpdateVisibility", WindowWillUseStandardFrame: "mac:WindowWillUseStandardFrame", MenuWillOpen: "mac:MenuWillOpen", MenuDidOpen: "mac:MenuDidOpen", MenuDidClose: "mac:MenuDidClose", MenuWillSendAction: "mac:MenuWillSendAction", MenuDidSendAction: "mac:MenuDidSendAction", MenuWillHighlightItem: "mac:MenuWillHighlightItem", MenuDidHighlightItem: "mac:MenuDidHighlightItem", MenuWillDisplayItem: "mac:MenuWillDisplayItem", MenuDidDisplayItem: "mac:MenuDidDisplayItem", MenuWillAddItem: "mac:MenuWillAddItem", MenuDidAddItem: "mac:MenuDidAddItem", MenuWillRemoveItem: "mac:MenuWillRemoveItem", MenuDidRemoveItem: "mac:MenuDidRemoveItem", MenuWillBeginTracking: "mac:MenuWillBeginTracking", MenuDidBeginTracking: "mac:MenuDidBeginTracking", MenuWillEndTracking: "mac:MenuWillEndTracking", MenuDidEndTracking: "mac:MenuDidEndTracking", MenuWillUpdate: "mac:MenuWillUpdate", MenuDidUpdate: "mac:MenuDidUpdate", MenuWillPopUp: "mac:MenuWillPopUp", MenuDidPopUp: "mac:MenuDidPopUp", MenuWillSendActionToItem: "mac:MenuWillSendActionToItem", MenuDidSendActionToItem: "mac:MenuDidSendActionToItem", WebViewDidStartProvisionalNavigation: "mac:WebViewDidStartProvisionalNavigation", WebViewDidReceiveServerRedirectForProvisionalNavigation: "mac:WebViewDidReceiveServerRedirectForProvisionalNavigation", WebViewDidFinishNavigation: "mac:WebViewDidFinishNavigation", WebViewDidCommitNavigation: "mac:WebViewDidCommitNavigation", WindowFileDraggingEntered: "mac:WindowFileDraggingEntered", WindowFileDraggingPerformed: "mac:WindowFileDraggingPerformed", WindowFileDraggingExited: "mac:WindowFileDraggingExited", WindowShow: "mac:WindowShow", WindowHide: "mac:WindowHide" }, Linux: { SystemThemeChanged: "linux:SystemThemeChanged", WindowLoadChanged: "linux:WindowLoadChanged", WindowDeleteEvent: "linux:WindowDeleteEvent", WindowDidMove: "linux:WindowDidMove", WindowDidResize: "linux:WindowDidResize", WindowFocusIn: "linux:WindowFocusIn", WindowFocusOut: "linux:WindowFocusOut", ApplicationStartup: "linux:ApplicationStartup" }, Common: { ApplicationStarted: "common:ApplicationStarted", WindowMaximise: "common:WindowMaximise", WindowUnMaximise: "common:WindowUnMaximise", WindowFullscreen: "common:WindowFullscreen", WindowUnFullscreen: "common:WindowUnFullscreen", WindowRestore: "common:WindowRestore", WindowMinimise: "common:WindowMinimise", WindowUnMinimise: "common:WindowUnMinimise", WindowClosing: "common:WindowClosing", WindowZoom: "common:WindowZoom", WindowZoomIn: "common:WindowZoomIn", WindowZoomOut: "common:WindowZoomOut", WindowZoomReset: "common:WindowZoomReset", WindowFocus: "common:WindowFocus", WindowLostFocus: "common:WindowLostFocus", WindowShow: "common:WindowShow", WindowHide: "common:WindowHide", WindowDPIChanged: "common:WindowDPIChanged", WindowFilesDropped: "common:WindowFilesDropped", WindowRuntimeReady: "common:WindowRuntimeReady", ThemeChanged: "common:ThemeChanged", WindowDidMove: "common:WindowDidMove", WindowDidResize: "common:WindowDidResize", ApplicationOpenedWithFile: "common:ApplicationOpenedWithFile" } }; // node_modules/@wailsio/runtime/src/events.js var Types = EventTypes; window._wails = window._wails || {}; window._wails.dispatchWailsEvent = dispatchWailsEvent; var call8 = newRuntimeCallerWithID(objectNames.Events, ""); var EmitMethod = 0; var eventListeners = /* @__PURE__ */ new Map(); var Listener = class { constructor(eventName, callback, maxCallbacks) { this.eventName = eventName; this.maxCallbacks = maxCallbacks || -1; this.Callback = (data) => { callback(data); if (this.maxCallbacks === -1) return false; this.maxCallbacks -= 1; return this.maxCallbacks === 0; }; } }; var WailsEvent = class { constructor(name, data = null) { this.name = name; this.data = data; } }; function setup() { } function dispatchWailsEvent(event) { let listeners = eventListeners.get(event.name); if (listeners) { let toRemove = listeners.filter((listener) => { let remove = listener.Callback(event); if (remove) return true; }); if (toRemove.length > 0) { listeners = listeners.filter((l) => !toRemove.includes(l)); if (listeners.length === 0) eventListeners.delete(event.name); else eventListeners.set(event.name, listeners); } } } function OnMultiple(eventName, callback, maxCallbacks) { let listeners = eventListeners.get(eventName) || []; const thisListener = new Listener(eventName, callback, maxCallbacks); listeners.push(thisListener); eventListeners.set(eventName, listeners); return () => listenerOff(thisListener); } function On(eventName, callback) { return OnMultiple(eventName, callback, -1); } function Once(eventName, callback) { return OnMultiple(eventName, callback, 1); } function listenerOff(listener) { const eventName = listener.eventName; let listeners = eventListeners.get(eventName).filter((l) => l !== listener); if (listeners.length === 0) eventListeners.delete(eventName); else eventListeners.set(eventName, listeners); } function Off(eventName, ...additionalEventNames) { let eventsToRemove = [eventName, ...additionalEventNames]; eventsToRemove.forEach((eventName2) => eventListeners.delete(eventName2)); } function OffAll() { eventListeners.clear(); } function Emit(event) { return call8(EmitMethod, event); } // node_modules/@wailsio/runtime/src/screens.js var screens_exports = {}; __export(screens_exports, { GetAll: () => GetAll, GetCurrent: () => GetCurrent, GetPrimary: () => GetPrimary }); var call9 = newRuntimeCallerWithID(objectNames.Screens, ""); var getAll = 0; var getPrimary = 1; var getCurrent = 2; function GetAll() { return call9(getAll); } function GetPrimary() { return call9(getPrimary); } function GetCurrent() { return call9(getCurrent); } // node_modules/@wailsio/runtime/src/window.js var PositionMethod = 0; var CenterMethod = 1; var CloseMethod = 2; var DisableSizeConstraintsMethod = 3; var EnableSizeConstraintsMethod = 4; var FocusMethod = 5; var ForceReloadMethod = 6; var FullscreenMethod = 7; var GetScreenMethod = 8; var GetZoomMethod = 9; var HeightMethod = 10; var HideMethod2 = 11; var IsFocusedMethod = 12; var IsFullscreenMethod = 13; var IsMaximisedMethod = 14; var IsMinimisedMethod = 15; var MaximiseMethod = 16; var MinimiseMethod = 17; var NameMethod = 18; var OpenDevToolsMethod = 19; var RelativePositionMethod = 20; var ReloadMethod = 21; var ResizableMethod = 22; var RestoreMethod = 23; var SetPositionMethod = 24; var SetAlwaysOnTopMethod = 25; var SetBackgroundColourMethod = 26; var SetFramelessMethod = 27; var SetFullscreenButtonEnabledMethod = 28; var SetMaxSizeMethod = 29; var SetMinSizeMethod = 30; var SetRelativePositionMethod = 31; var SetResizableMethod = 32; var SetSizeMethod = 33; var SetTitleMethod = 34; var SetZoomMethod = 35; var ShowMethod2 = 36; var SizeMethod = 37; var ToggleFullscreenMethod = 38; var ToggleMaximiseMethod = 39; var UnFullscreenMethod = 40; var UnMaximiseMethod = 41; var UnMinimiseMethod = 42; var WidthMethod = 43; var ZoomMethod = 44; var ZoomInMethod = 45; var ZoomOutMethod = 46; var ZoomResetMethod = 47; var caller = Symbol(); var Window = class _Window { /** * Initialises a window object with the specified name. * * @private * @param {string} name - The name of the target window. */ constructor(name = "") { this[caller] = newRuntimeCallerWithID(objectNames.Window, name); for (const method of Object.getOwnPropertyNames(_Window.prototype)) { if (method !== "constructor" && typeof this[method] === "function") { this[method] = this[method].bind(this); } } } /** * Gets the specified window. * * @public * @param {string} name - The name of the window to get. * @return {Window} - The corresponding window object. */ Get(name) { return new _Window(name); } /** * Returns the absolute position of the window. * * @public * @return {Promise} - The current absolute position of the window. */ Position() { return this[caller](PositionMethod); } /** * Centers the window on the screen. * * @public * @return {Promise} */ Center() { return this[caller](CenterMethod); } /** * Closes the window. * * @public * @return {Promise} */ Close() { return this[caller](CloseMethod); } /** * Disables min/max size constraints. * * @public * @return {Promise} */ DisableSizeConstraints() { return this[caller](DisableSizeConstraintsMethod); } /** * Enables min/max size constraints. * * @public * @return {Promise} */ EnableSizeConstraints() { return this[caller](EnableSizeConstraintsMethod); } /** * Focuses the window. * * @public * @return {Promise} */ Focus() { return this[caller](FocusMethod); } /** * Forces the window to reload the page assets. * * @public * @return {Promise} */ ForceReload() { return this[caller](ForceReloadMethod); } /** * Doc. * * @public * @return {Promise} */ Fullscreen() { return this[caller](FullscreenMethod); } /** * Returns the screen that the window is on. * * @public * @return {Promise} - The screen the window is currently on */ GetScreen() { return this[caller](GetScreenMethod); } /** * Returns the current zoom level of the window. * * @public * @return {Promise} - The current zoom level */ GetZoom() { return this[caller](GetZoomMethod); } /** * Returns the height of the window. * * @public * @return {Promise} - The current height of the window */ Height() { return this[caller](HeightMethod); } /** * Hides the window. * * @public * @return {Promise} */ Hide() { return this[caller](HideMethod2); } /** * Returns true if the window is focused. * * @public * @return {Promise} - Whether the window is currently focused */ IsFocused() { return this[caller](IsFocusedMethod); } /** * Returns true if the window is fullscreen. * * @public * @return {Promise} - Whether the window is currently fullscreen */ IsFullscreen() { return this[caller](IsFullscreenMethod); } /** * Returns true if the window is maximised. * * @public * @return {Promise} - Whether the window is currently maximised */ IsMaximised() { return this[caller](IsMaximisedMethod); } /** * Returns true if the window is minimised. * * @public * @return {Promise} - Whether the window is currently minimised */ IsMinimised() { return this[caller](IsMinimisedMethod); } /** * Maximises the window. * * @public * @return {Promise} */ Maximise() { return this[caller](MaximiseMethod); } /** * Minimises the window. * * @public * @return {Promise} */ Minimise() { return this[caller](MinimiseMethod); } /** * Returns the name of the window. * * @public * @return {Promise} - The name of the window */ Name() { return this[caller](NameMethod); } /** * Opens the development tools pane. * * @public * @return {Promise} */ OpenDevTools() { return this[caller](OpenDevToolsMethod); } /** * Returns the relative position of the window to the screen. * * @public * @return {Promise} - The current relative position of the window */ RelativePosition() { return this[caller](RelativePositionMethod); } /** * Reloads the page assets. * * @public * @return {Promise} */ Reload() { return this[caller](ReloadMethod); } /** * Returns true if the window is resizable. * * @public * @return {Promise} - Whether the window is currently resizable */ Resizable() { return this[caller](ResizableMethod); } /** * Restores the window to its previous state if it was previously minimised, maximised or fullscreen. * * @public * @return {Promise} */ Restore() { return this[caller](RestoreMethod); } /** * Sets the absolute position of the window. * * @public * @param {number} x - The desired horizontal absolute position of the window * @param {number} y - The desired vertical absolute position of the window * @return {Promise} */ SetPosition(x, y) { return this[caller](SetPositionMethod, { x, y }); } /** * Sets the window to be always on top. * * @public * @param {boolean} alwaysOnTop - Whether the window should stay on top * @return {Promise} */ SetAlwaysOnTop(alwaysOnTop) { return this[caller](SetAlwaysOnTopMethod, { alwaysOnTop }); } /** * Sets the background colour of the window. * * @public * @param {number} r - The desired red component of the window background * @param {number} g - The desired green component of the window background * @param {number} b - The desired blue component of the window background * @param {number} a - The desired alpha component of the window background * @return {Promise} */ SetBackgroundColour(r, g, b, a) { return this[caller](SetBackgroundColourMethod, { r, g, b, a }); } /** * Removes the window frame and title bar. * * @public * @param {boolean} frameless - Whether the window should be frameless * @return {Promise} */ SetFrameless(frameless) { return this[caller](SetFramelessMethod, { frameless }); } /** * Disables the system fullscreen button. * * @public * @param {boolean} enabled - Whether the fullscreen button should be enabled * @return {Promise} */ SetFullscreenButtonEnabled(enabled) { return this[caller](SetFullscreenButtonEnabledMethod, { enabled }); } /** * Sets the maximum size of the window. * * @public * @param {number} width - The desired maximum width of the window * @param {number} height - The desired maximum height of the window * @return {Promise} */ SetMaxSize(width, height) { return this[caller](SetMaxSizeMethod, { width, height }); } /** * Sets the minimum size of the window. * * @public * @param {number} width - The desired minimum width of the window * @param {number} height - The desired minimum height of the window * @return {Promise} */ SetMinSize(width, height) { return this[caller](SetMinSizeMethod, { width, height }); } /** * Sets the relative position of the window to the screen. * * @public * @param {number} x - The desired horizontal relative position of the window * @param {number} y - The desired vertical relative position of the window * @return {Promise} */ SetRelativePosition(x, y) { return this[caller](SetRelativePositionMethod, { x, y }); } /** * Sets whether the window is resizable. * * @public * @param {boolean} resizable - Whether the window should be resizable * @return {Promise} */ SetResizable(resizable2) { return this[caller](SetResizableMethod, { resizable: resizable2 }); } /** * Sets the size of the window. * * @public * @param {number} width - The desired width of the window * @param {number} height - The desired height of the window * @return {Promise} */ SetSize(width, height) { return this[caller](SetSizeMethod, { width, height }); } /** * Sets the title of the window. * * @public * @param {string} title - The desired title of the window * @return {Promise} */ SetTitle(title) { return this[caller](SetTitleMethod, { title }); } /** * Sets the zoom level of the window. * * @public * @param {number} zoom - The desired zoom level * @return {Promise} */ SetZoom(zoom) { return this[caller](SetZoomMethod, { zoom }); } /** * Shows the window. * * @public * @return {Promise} */ Show() { return this[caller](ShowMethod2); } /** * Returns the size of the window. * * @public * @return {Promise} - The current size of the window */ Size() { return this[caller](SizeMethod); } /** * Toggles the window between fullscreen and normal. * * @public * @return {Promise} */ ToggleFullscreen() { return this[caller](ToggleFullscreenMethod); } /** * Toggles the window between maximised and normal. * * @public * @return {Promise} */ ToggleMaximise() { return this[caller](ToggleMaximiseMethod); } /** * Un-fullscreens the window. * * @public * @return {Promise} */ UnFullscreen() { return this[caller](UnFullscreenMethod); } /** * Un-maximises the window. * * @public * @return {Promise} */ UnMaximise() { return this[caller](UnMaximiseMethod); } /** * Un-minimises the window. * * @public * @return {Promise} */ UnMinimise() { return this[caller](UnMinimiseMethod); } /** * Returns the width of the window. * * @public * @return {Promise} - The current width of the window */ Width() { return this[caller](WidthMethod); } /** * Zooms the window. * * @public * @return {Promise} */ Zoom() { return this[caller](ZoomMethod); } /** * Increases the zoom level of the webview content. * * @public * @return {Promise} */ ZoomIn() { return this[caller](ZoomInMethod); } /** * Decreases the zoom level of the webview content. * * @public * @return {Promise} */ ZoomOut() { return this[caller](ZoomOutMethod); } /** * Resets the zoom level of the webview content. * * @public * @return {Promise} */ ZoomReset() { return this[caller](ZoomResetMethod); } }; var thisWindow = new Window(""); var window_default = thisWindow; // node_modules/@wailsio/runtime/src/wml.js var wml_exports = {}; __export(wml_exports, { Enable: () => Enable, Reload: () => Reload }); // node_modules/@wailsio/runtime/src/utils.js function canAbortListeners() { if (!EventTarget || !AbortSignal || !AbortController) return false; let result = true; const target = new EventTarget(); const controller2 = new AbortController(); target.addEventListener("test", () => { result = false; }, { signal: controller2.signal }); controller2.abort(); target.dispatchEvent(new CustomEvent("test")); return result; } var isReady = false; document.addEventListener("DOMContentLoaded", () => isReady = true); function whenReady(callback) { if (isReady || document.readyState === "complete") { callback(); } else { document.addEventListener("DOMContentLoaded", callback); } } // node_modules/@wailsio/runtime/src/wml.js function sendEvent(eventName, data = null) { Emit(new WailsEvent(eventName, data)); } function callWindowMethod(windowName, methodName) { const targetWindow = window_default.Get(windowName); const method = targetWindow[methodName]; if (typeof method !== "function") { console.error(`Window method '${methodName}' not found`); return; } try { method.call(targetWindow); } catch (e) { console.error(`Error calling window method '${methodName}': `, e); } } function onWMLTriggered(ev) { const element = ev.currentTarget; function runEffect(choice = "Yes") { if (choice !== "Yes") return; const eventType = element.getAttribute("wml-event"); const targetWindow = element.getAttribute("wml-target-window") || ""; const windowMethod = element.getAttribute("wml-window"); const url = element.getAttribute("wml-openurl"); if (eventType !== null) sendEvent(eventType); if (windowMethod !== null) callWindowMethod(targetWindow, windowMethod); if (url !== null) void OpenURL(url); } const confirm = element.getAttribute("wml-confirm"); if (confirm) { Question({ Title: "Confirm", Message: confirm, Detached: false, Buttons: [ { Label: "Yes" }, { Label: "No", IsDefault: true } ] }).then(runEffect); } else { runEffect(); } } var controller = Symbol(); var AbortControllerRegistry = class { constructor() { this[controller] = new AbortController(); } /** * Returns an options object for addEventListener that ties the listener * to the AbortSignal from the current AbortController. * * @param {HTMLElement} element An HTML element * @param {string[]} triggers The list of active WML trigger events for the specified elements * @returns {AddEventListenerOptions} */ set(element, triggers) { return { signal: this[controller].signal }; } /** * Removes all registered event listeners. * * @returns {void} */ reset() { this[controller].abort(); this[controller] = new AbortController(); } }; var triggerMap = Symbol(); var elementCount = Symbol(); var WeakMapRegistry = class { constructor() { this[triggerMap] = /* @__PURE__ */ new WeakMap(); this[elementCount] = 0; } /** * Sets the active triggers for the specified element. * * @param {HTMLElement} element An HTML element * @param {string[]} triggers The list of active WML trigger events for the specified element * @returns {AddEventListenerOptions} */ set(element, triggers) { this[elementCount] += !this[triggerMap].has(element); this[triggerMap].set(element, triggers); return {}; } /** * Removes all registered event listeners. * * @returns {void} */ reset() { if (this[elementCount] <= 0) return; for (const element of document.body.querySelectorAll("*")) { if (this[elementCount] <= 0) break; const triggers = this[triggerMap].get(element); this[elementCount] -= typeof triggers !== "undefined"; for (const trigger of triggers || []) element.removeEventListener(trigger, onWMLTriggered); } this[triggerMap] = /* @__PURE__ */ new WeakMap(); this[elementCount] = 0; } }; var triggerRegistry = canAbortListeners() ? new AbortControllerRegistry() : new WeakMapRegistry(); function addWMLListeners(element) { const triggerRegExp = /\S+/g; const triggerAttr = element.getAttribute("wml-trigger") || "click"; const triggers = []; let match; while ((match = triggerRegExp.exec(triggerAttr)) !== null) triggers.push(match[0]); const options = triggerRegistry.set(element, triggers); for (const trigger of triggers) element.addEventListener(trigger, onWMLTriggered, options); } function Enable() { whenReady(Reload); } function Reload() { triggerRegistry.reset(); document.body.querySelectorAll("[wml-event], [wml-window], [wml-openurl]").forEach(addWMLListeners); } // node_modules/@wailsio/runtime/src/index.js window._wails = window._wails || {}; var initialised = false; function init() { window._wails.invoke = invoke; invoke("wails:runtime:ready"); initialised = true; } window.addEventListener("load", () => { if (!initialised) { init(); } }); export { application_exports as Application, browser_exports as Browser, calls_exports as Call, clipboard_exports as Clipboard, create_exports as Create, dialogs_exports as Dialogs, events_exports as Events, flags_exports as Flags, screens_exports as Screens, system_exports as System, wml_exports as WML, window_default as Window, init }; //# sourceMappingURL=@wailsio_runtime.js.map