2021-08-22 23:05:22 +10:00
|
|
|
(() => {
|
2021-08-24 23:48:03 +10:00
|
|
|
var __defProp = Object.defineProperty;
|
2021-09-12 20:45:40 +10:00
|
|
|
var __export = (target, all) => {
|
|
|
|
|
for (var name in all)
|
2021-09-13 12:58:27 +08:00
|
|
|
__defProp(target, name, { get: all[name], enumerable: true });
|
2021-09-12 20:45:40 +10:00
|
|
|
};
|
2021-08-22 23:05:22 +10:00
|
|
|
|
2021-08-24 23:48:03 +10:00
|
|
|
// desktop/log.js
|
|
|
|
|
var log_exports = {};
|
|
|
|
|
__export(log_exports, {
|
|
|
|
|
LogDebug: () => LogDebug,
|
|
|
|
|
LogError: () => LogError,
|
|
|
|
|
LogFatal: () => LogFatal,
|
|
|
|
|
LogInfo: () => LogInfo,
|
|
|
|
|
LogLevel: () => LogLevel,
|
|
|
|
|
LogPrint: () => LogPrint,
|
|
|
|
|
LogTrace: () => LogTrace,
|
|
|
|
|
LogWarning: () => LogWarning,
|
|
|
|
|
SetLogLevel: () => SetLogLevel
|
|
|
|
|
});
|
|
|
|
|
function sendLogMessage(level, message) {
|
|
|
|
|
window.WailsInvoke("L" + level + message);
|
|
|
|
|
}
|
|
|
|
|
function LogTrace(message) {
|
|
|
|
|
sendLogMessage("T", message);
|
|
|
|
|
}
|
|
|
|
|
function LogPrint(message) {
|
|
|
|
|
sendLogMessage("P", message);
|
|
|
|
|
}
|
|
|
|
|
function LogDebug(message) {
|
|
|
|
|
sendLogMessage("D", message);
|
|
|
|
|
}
|
|
|
|
|
function LogInfo(message) {
|
|
|
|
|
sendLogMessage("I", message);
|
|
|
|
|
}
|
|
|
|
|
function LogWarning(message) {
|
|
|
|
|
sendLogMessage("W", message);
|
|
|
|
|
}
|
|
|
|
|
function LogError(message) {
|
|
|
|
|
sendLogMessage("E", message);
|
|
|
|
|
}
|
|
|
|
|
function LogFatal(message) {
|
|
|
|
|
sendLogMessage("F", message);
|
|
|
|
|
}
|
|
|
|
|
function SetLogLevel(loglevel) {
|
|
|
|
|
sendLogMessage("S", loglevel);
|
|
|
|
|
}
|
|
|
|
|
var LogLevel = {
|
|
|
|
|
TRACE: 1,
|
|
|
|
|
DEBUG: 2,
|
|
|
|
|
INFO: 3,
|
|
|
|
|
WARNING: 4,
|
|
|
|
|
ERROR: 5
|
|
|
|
|
};
|
2021-08-22 23:05:22 +10:00
|
|
|
|
2021-08-24 23:48:03 +10:00
|
|
|
// desktop/events.js
|
|
|
|
|
var Listener = class {
|
2022-11-09 21:22:32 +11:00
|
|
|
constructor(eventName, callback, maxCallbacks) {
|
|
|
|
|
this.eventName = eventName;
|
|
|
|
|
this.maxCallbacks = maxCallbacks || -1;
|
2021-08-24 23:48:03 +10:00
|
|
|
this.Callback = (data) => {
|
|
|
|
|
callback.apply(null, data);
|
2022-11-09 21:22:32 +11:00
|
|
|
if (this.maxCallbacks === -1) {
|
2021-08-24 23:48:03 +10:00
|
|
|
return false;
|
2021-08-22 23:05:22 +10:00
|
|
|
}
|
2022-11-09 21:22:32 +11:00
|
|
|
this.maxCallbacks -= 1;
|
|
|
|
|
return this.maxCallbacks === 0;
|
2021-08-24 23:48:03 +10:00
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
var eventListeners = {};
|
|
|
|
|
function EventsOnMultiple(eventName, callback, maxCallbacks) {
|
|
|
|
|
eventListeners[eventName] = eventListeners[eventName] || [];
|
2022-11-09 21:22:32 +11:00
|
|
|
const thisListener = new Listener(eventName, callback, maxCallbacks);
|
2021-08-24 23:48:03 +10:00
|
|
|
eventListeners[eventName].push(thisListener);
|
2022-11-09 21:22:32 +11:00
|
|
|
return () => listenerOff(thisListener);
|
2021-08-24 23:48:03 +10:00
|
|
|
}
|
|
|
|
|
function EventsOn(eventName, callback) {
|
2022-11-09 21:22:32 +11:00
|
|
|
return EventsOnMultiple(eventName, callback, -1);
|
2021-08-24 23:48:03 +10:00
|
|
|
}
|
|
|
|
|
function EventsOnce(eventName, callback) {
|
2022-11-09 21:22:32 +11:00
|
|
|
return EventsOnMultiple(eventName, callback, 1);
|
2021-08-24 23:48:03 +10:00
|
|
|
}
|
|
|
|
|
function notifyListeners(eventData) {
|
|
|
|
|
let eventName = eventData.name;
|
|
|
|
|
if (eventListeners[eventName]) {
|
|
|
|
|
const newEventListenerList = eventListeners[eventName].slice();
|
2023-03-20 08:45:21 +01:00
|
|
|
for (let count = eventListeners[eventName].length - 1; count >= 0; count -= 1) {
|
2021-08-24 23:48:03 +10:00
|
|
|
const listener = eventListeners[eventName][count];
|
|
|
|
|
let data = eventData.data;
|
|
|
|
|
const destroy = listener.Callback(data);
|
|
|
|
|
if (destroy) {
|
|
|
|
|
newEventListenerList.splice(count, 1);
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-11-09 21:22:32 +11:00
|
|
|
if (newEventListenerList.length === 0) {
|
|
|
|
|
removeListener(eventName);
|
|
|
|
|
} else {
|
|
|
|
|
eventListeners[eventName] = newEventListenerList;
|
|
|
|
|
}
|
2021-08-24 23:48:03 +10:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function EventsNotify(notifyMessage) {
|
|
|
|
|
let message;
|
|
|
|
|
try {
|
|
|
|
|
message = JSON.parse(notifyMessage);
|
|
|
|
|
} catch (e) {
|
|
|
|
|
const error = "Invalid JSON passed to Notify: " + notifyMessage;
|
|
|
|
|
throw new Error(error);
|
|
|
|
|
}
|
|
|
|
|
notifyListeners(message);
|
|
|
|
|
}
|
|
|
|
|
function EventsEmit(eventName) {
|
2022-09-13 10:05:37 +10:00
|
|
|
const payload = {
|
|
|
|
|
name: eventName,
|
|
|
|
|
data: [].slice.apply(arguments).slice(1)
|
|
|
|
|
};
|
|
|
|
|
notifyListeners(payload);
|
|
|
|
|
window.WailsInvoke("EE" + JSON.stringify(payload));
|
2022-09-01 23:34:59 +02:00
|
|
|
}
|
2022-09-13 10:05:37 +10:00
|
|
|
function removeListener(eventName) {
|
|
|
|
|
delete eventListeners[eventName];
|
|
|
|
|
window.WailsInvoke("EX" + eventName);
|
|
|
|
|
}
|
|
|
|
|
function EventsOff(eventName, ...additionalEventNames) {
|
|
|
|
|
removeListener(eventName);
|
|
|
|
|
if (additionalEventNames.length > 0) {
|
|
|
|
|
additionalEventNames.forEach((eventName2) => {
|
|
|
|
|
removeListener(eventName2);
|
|
|
|
|
});
|
2022-09-12 21:56:43 +10:00
|
|
|
}
|
2022-09-13 10:05:37 +10:00
|
|
|
}
|
2022-11-09 21:22:32 +11:00
|
|
|
function listenerOff(listener) {
|
|
|
|
|
const eventName = listener.eventName;
|
|
|
|
|
eventListeners[eventName] = eventListeners[eventName].filter((l) => l !== listener);
|
|
|
|
|
if (eventListeners[eventName].length === 0) {
|
|
|
|
|
removeListener(eventName);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-09-13 10:05:37 +10:00
|
|
|
// desktop/calls.js
|
|
|
|
|
var callbacks = {};
|
|
|
|
|
function cryptoRandom() {
|
|
|
|
|
var array = new Uint32Array(1);
|
|
|
|
|
return window.crypto.getRandomValues(array)[0];
|
|
|
|
|
}
|
|
|
|
|
function basicRandom() {
|
|
|
|
|
return Math.random() * 9007199254740991;
|
|
|
|
|
}
|
2021-08-24 23:48:03 +10:00
|
|
|
var randomFunc;
|
|
|
|
|
if (window.crypto) {
|
|
|
|
|
randomFunc = cryptoRandom;
|
|
|
|
|
} else {
|
|
|
|
|
randomFunc = basicRandom;
|
|
|
|
|
}
|
|
|
|
|
function Call(name, args, timeout) {
|
|
|
|
|
if (timeout == null) {
|
|
|
|
|
timeout = 0;
|
2021-08-22 23:05:22 +10:00
|
|
|
}
|
2021-09-13 12:58:27 +08:00
|
|
|
return new Promise(function(resolve, reject) {
|
2021-09-12 20:45:40 +10:00
|
|
|
var callbackID;
|
|
|
|
|
do {
|
|
|
|
|
callbackID = name + "-" + randomFunc();
|
|
|
|
|
} while (callbacks[callbackID]);
|
|
|
|
|
var timeoutHandle;
|
|
|
|
|
if (timeout > 0) {
|
2021-09-13 12:58:27 +08:00
|
|
|
timeoutHandle = setTimeout(function() {
|
2021-09-12 20:45:40 +10:00
|
|
|
reject(Error("Call to " + name + " timed out. Request ID: " + callbackID));
|
|
|
|
|
}, timeout);
|
|
|
|
|
}
|
2021-08-24 23:48:03 +10:00
|
|
|
callbacks[callbackID] = {
|
|
|
|
|
timeoutHandle,
|
|
|
|
|
reject,
|
|
|
|
|
resolve
|
|
|
|
|
};
|
|
|
|
|
try {
|
2021-08-22 23:05:22 +10:00
|
|
|
const payload = {
|
2021-08-24 23:48:03 +10:00
|
|
|
name,
|
|
|
|
|
args,
|
|
|
|
|
callbackID
|
2021-08-22 23:05:22 +10:00
|
|
|
};
|
2021-08-24 23:48:03 +10:00
|
|
|
window.WailsInvoke("C" + JSON.stringify(payload));
|
|
|
|
|
} catch (e) {
|
|
|
|
|
console.error(e);
|
|
|
|
|
}
|
2021-08-22 23:05:22 +10:00
|
|
|
});
|
2021-08-24 23:48:03 +10:00
|
|
|
}
|
2022-09-13 10:05:37 +10:00
|
|
|
window.ObfuscatedCall = (id, args, timeout) => {
|
|
|
|
|
if (timeout == null) {
|
|
|
|
|
timeout = 0;
|
|
|
|
|
}
|
2022-09-29 16:06:11 +02:00
|
|
|
return new Promise(function(resolve, reject) {
|
2022-09-13 10:05:37 +10:00
|
|
|
var callbackID;
|
|
|
|
|
do {
|
|
|
|
|
callbackID = id + "-" + randomFunc();
|
|
|
|
|
} while (callbacks[callbackID]);
|
|
|
|
|
var timeoutHandle;
|
|
|
|
|
if (timeout > 0) {
|
2022-09-29 16:06:11 +02:00
|
|
|
timeoutHandle = setTimeout(function() {
|
2022-09-13 10:05:37 +10:00
|
|
|
reject(Error("Call to method " + id + " timed out. Request ID: " + callbackID));
|
|
|
|
|
}, timeout);
|
|
|
|
|
}
|
|
|
|
|
callbacks[callbackID] = {
|
|
|
|
|
timeoutHandle,
|
|
|
|
|
reject,
|
|
|
|
|
resolve
|
|
|
|
|
};
|
|
|
|
|
try {
|
|
|
|
|
const payload = {
|
|
|
|
|
id,
|
|
|
|
|
args,
|
|
|
|
|
callbackID
|
|
|
|
|
};
|
|
|
|
|
window.WailsInvoke("c" + JSON.stringify(payload));
|
|
|
|
|
} catch (e) {
|
|
|
|
|
console.error(e);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
};
|
2021-08-24 23:48:03 +10:00
|
|
|
function Callback(incomingMessage) {
|
2022-02-18 20:28:16 +11:00
|
|
|
let message;
|
|
|
|
|
try {
|
|
|
|
|
message = JSON.parse(incomingMessage);
|
|
|
|
|
} catch (e) {
|
|
|
|
|
const error = `Invalid JSON passed to callback: ${e.message}. Message: ${incomingMessage}`;
|
|
|
|
|
runtime.LogDebug(error);
|
|
|
|
|
throw new Error(error);
|
|
|
|
|
}
|
|
|
|
|
let callbackID = message.callbackid;
|
|
|
|
|
let callbackData = callbacks[callbackID];
|
|
|
|
|
if (!callbackData) {
|
|
|
|
|
const error = `Callback '${callbackID}' not registered!!!`;
|
|
|
|
|
console.error(error);
|
|
|
|
|
throw new Error(error);
|
|
|
|
|
}
|
|
|
|
|
clearTimeout(callbackData.timeoutHandle);
|
|
|
|
|
delete callbacks[callbackID];
|
|
|
|
|
if (message.error) {
|
|
|
|
|
callbackData.reject(message.error);
|
|
|
|
|
} else {
|
2021-08-24 23:48:03 +10:00
|
|
|
callbackData.resolve(message.result);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// desktop/bindings.js
|
2021-09-03 19:00:07 +10:00
|
|
|
window.go = {};
|
2021-08-24 23:48:03 +10:00
|
|
|
function SetBindings(bindingsMap) {
|
|
|
|
|
try {
|
|
|
|
|
bindingsMap = JSON.parse(bindingsMap);
|
|
|
|
|
} catch (e) {
|
|
|
|
|
console.error(e);
|
|
|
|
|
}
|
2021-09-03 19:00:07 +10:00
|
|
|
window.go = window.go || {};
|
2021-08-24 23:48:03 +10:00
|
|
|
Object.keys(bindingsMap).forEach((packageName) => {
|
2021-09-03 19:00:07 +10:00
|
|
|
window.go[packageName] = window.go[packageName] || {};
|
2021-08-24 23:48:03 +10:00
|
|
|
Object.keys(bindingsMap[packageName]).forEach((structName) => {
|
2021-09-03 19:00:07 +10:00
|
|
|
window.go[packageName][structName] = window.go[packageName][structName] || {};
|
2021-08-24 23:48:03 +10:00
|
|
|
Object.keys(bindingsMap[packageName][structName]).forEach((methodName) => {
|
2021-09-13 12:58:27 +08:00
|
|
|
window.go[packageName][structName][methodName] = function() {
|
2021-09-12 20:45:40 +10:00
|
|
|
let timeout = 0;
|
|
|
|
|
function dynamic() {
|
|
|
|
|
const args = [].slice.call(arguments);
|
|
|
|
|
return Call([packageName, structName, methodName].join("."), args, timeout);
|
|
|
|
|
}
|
2021-09-13 12:58:27 +08:00
|
|
|
dynamic.setTimeout = function(newTimeout) {
|
2021-09-12 20:45:40 +10:00
|
|
|
timeout = newTimeout;
|
|
|
|
|
};
|
2021-09-13 12:58:27 +08:00
|
|
|
dynamic.getTimeout = function() {
|
2021-09-12 20:45:40 +10:00
|
|
|
return timeout;
|
|
|
|
|
};
|
2021-08-24 23:48:03 +10:00
|
|
|
return dynamic;
|
|
|
|
|
}();
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// desktop/window.js
|
2021-09-09 20:10:18 +10:00
|
|
|
var window_exports = {};
|
|
|
|
|
__export(window_exports, {
|
2022-09-13 10:05:37 +10:00
|
|
|
WindowCenter: () => WindowCenter,
|
|
|
|
|
WindowFullscreen: () => WindowFullscreen,
|
|
|
|
|
WindowGetPosition: () => WindowGetPosition,
|
|
|
|
|
WindowGetSize: () => WindowGetSize,
|
|
|
|
|
WindowHide: () => WindowHide,
|
|
|
|
|
WindowIsFullscreen: () => WindowIsFullscreen,
|
|
|
|
|
WindowIsMaximised: () => WindowIsMaximised,
|
|
|
|
|
WindowIsMinimised: () => WindowIsMinimised,
|
|
|
|
|
WindowIsNormal: () => WindowIsNormal,
|
|
|
|
|
WindowMaximise: () => WindowMaximise,
|
|
|
|
|
WindowMinimise: () => WindowMinimise,
|
|
|
|
|
WindowReload: () => WindowReload,
|
|
|
|
|
WindowReloadApp: () => WindowReloadApp,
|
|
|
|
|
WindowSetAlwaysOnTop: () => WindowSetAlwaysOnTop,
|
|
|
|
|
WindowSetBackgroundColour: () => WindowSetBackgroundColour,
|
|
|
|
|
WindowSetDarkTheme: () => WindowSetDarkTheme,
|
|
|
|
|
WindowSetLightTheme: () => WindowSetLightTheme,
|
|
|
|
|
WindowSetMaxSize: () => WindowSetMaxSize,
|
|
|
|
|
WindowSetMinSize: () => WindowSetMinSize,
|
2021-09-12 20:45:40 +10:00
|
|
|
WindowSetPosition: () => WindowSetPosition,
|
|
|
|
|
WindowSetSize: () => WindowSetSize,
|
2022-04-09 10:27:54 +10:00
|
|
|
WindowSetSystemDefaultTheme: () => WindowSetSystemDefaultTheme,
|
2021-09-12 20:45:40 +10:00
|
|
|
WindowSetTitle: () => WindowSetTitle,
|
|
|
|
|
WindowShow: () => WindowShow,
|
2022-02-18 20:28:16 +11:00
|
|
|
WindowToggleMaximise: () => WindowToggleMaximise,
|
2022-02-19 20:29:55 +11:00
|
|
|
WindowUnfullscreen: () => WindowUnfullscreen,
|
2021-09-12 20:45:40 +10:00
|
|
|
WindowUnmaximise: () => WindowUnmaximise,
|
|
|
|
|
WindowUnminimise: () => WindowUnminimise
|
2021-09-09 20:10:18 +10:00
|
|
|
});
|
2021-08-24 23:48:03 +10:00
|
|
|
function WindowReload() {
|
|
|
|
|
window.location.reload();
|
|
|
|
|
}
|
2022-04-20 20:28:41 +10:00
|
|
|
function WindowReloadApp() {
|
|
|
|
|
window.WailsInvoke("WR");
|
|
|
|
|
}
|
2022-03-31 11:04:14 +02:00
|
|
|
function WindowSetSystemDefaultTheme() {
|
2022-04-09 10:27:54 +10:00
|
|
|
window.WailsInvoke("WASDT");
|
2022-03-31 11:04:14 +02:00
|
|
|
}
|
|
|
|
|
function WindowSetLightTheme() {
|
2022-04-09 10:27:54 +10:00
|
|
|
window.WailsInvoke("WALT");
|
2022-03-31 11:04:14 +02:00
|
|
|
}
|
|
|
|
|
function WindowSetDarkTheme() {
|
2022-04-09 10:27:54 +10:00
|
|
|
window.WailsInvoke("WADT");
|
2022-03-31 11:04:14 +02:00
|
|
|
}
|
2021-09-09 20:10:18 +10:00
|
|
|
function WindowCenter() {
|
|
|
|
|
window.WailsInvoke("Wc");
|
|
|
|
|
}
|
2022-09-13 10:05:37 +10:00
|
|
|
function WindowSetTitle(title) {
|
|
|
|
|
window.WailsInvoke("WT" + title);
|
|
|
|
|
}
|
|
|
|
|
function WindowFullscreen() {
|
|
|
|
|
window.WailsInvoke("WF");
|
|
|
|
|
}
|
|
|
|
|
function WindowUnfullscreen() {
|
|
|
|
|
window.WailsInvoke("Wf");
|
|
|
|
|
}
|
|
|
|
|
function WindowIsFullscreen() {
|
|
|
|
|
return Call(":wails:WindowIsFullscreen");
|
|
|
|
|
}
|
|
|
|
|
function WindowSetSize(width, height) {
|
|
|
|
|
window.WailsInvoke("Ws:" + width + ":" + height);
|
|
|
|
|
}
|
|
|
|
|
function WindowGetSize() {
|
|
|
|
|
return Call(":wails:WindowGetSize");
|
|
|
|
|
}
|
|
|
|
|
function WindowSetMaxSize(width, height) {
|
|
|
|
|
window.WailsInvoke("WZ:" + width + ":" + height);
|
|
|
|
|
}
|
|
|
|
|
function WindowSetMinSize(width, height) {
|
2021-09-09 20:10:18 +10:00
|
|
|
window.WailsInvoke("Wz:" + width + ":" + height);
|
|
|
|
|
}
|
2022-06-22 18:55:02 +08:00
|
|
|
function WindowSetAlwaysOnTop(b) {
|
|
|
|
|
window.WailsInvoke("WATP:" + (b ? "1" : "0"));
|
|
|
|
|
}
|
2021-09-09 20:10:18 +10:00
|
|
|
function WindowSetPosition(x, y) {
|
|
|
|
|
window.WailsInvoke("Wp:" + x + ":" + y);
|
|
|
|
|
}
|
|
|
|
|
function WindowGetPosition() {
|
|
|
|
|
return Call(":wails:WindowGetPos");
|
|
|
|
|
}
|
|
|
|
|
function WindowHide() {
|
|
|
|
|
window.WailsInvoke("WH");
|
|
|
|
|
}
|
|
|
|
|
function WindowShow() {
|
|
|
|
|
window.WailsInvoke("WS");
|
|
|
|
|
}
|
2022-09-13 10:05:37 +10:00
|
|
|
function WindowMaximise() {
|
|
|
|
|
window.WailsInvoke("WM");
|
|
|
|
|
}
|
|
|
|
|
function WindowToggleMaximise() {
|
|
|
|
|
window.WailsInvoke("Wt");
|
|
|
|
|
}
|
|
|
|
|
function WindowUnmaximise() {
|
|
|
|
|
window.WailsInvoke("WU");
|
|
|
|
|
}
|
|
|
|
|
function WindowIsMaximised() {
|
|
|
|
|
return Call(":wails:WindowIsMaximised");
|
|
|
|
|
}
|
|
|
|
|
function WindowMinimise() {
|
|
|
|
|
window.WailsInvoke("Wm");
|
|
|
|
|
}
|
|
|
|
|
function WindowUnminimise() {
|
|
|
|
|
window.WailsInvoke("Wu");
|
|
|
|
|
}
|
|
|
|
|
function WindowIsMinimised() {
|
|
|
|
|
return Call(":wails:WindowIsMinimised");
|
|
|
|
|
}
|
|
|
|
|
function WindowIsNormal() {
|
|
|
|
|
return Call(":wails:WindowIsNormal");
|
|
|
|
|
}
|
|
|
|
|
function WindowSetBackgroundColour(R, G, B, A) {
|
2022-09-29 16:06:11 +02:00
|
|
|
let rgba = JSON.stringify({ r: R || 0, g: G || 0, b: B || 0, a: A || 255 });
|
2022-09-13 10:05:37 +10:00
|
|
|
window.WailsInvoke("Wr:" + rgba);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// desktop/screen.js
|
|
|
|
|
var screen_exports = {};
|
|
|
|
|
__export(screen_exports, {
|
|
|
|
|
ScreenGetAll: () => ScreenGetAll
|
|
|
|
|
});
|
2022-07-16 05:33:37 +03:00
|
|
|
function ScreenGetAll() {
|
|
|
|
|
return Call(":wails:ScreenGetAll");
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-13 12:58:27 +08:00
|
|
|
// desktop/browser.js
|
|
|
|
|
var browser_exports = {};
|
|
|
|
|
__export(browser_exports, {
|
|
|
|
|
BrowserOpenURL: () => BrowserOpenURL
|
|
|
|
|
});
|
|
|
|
|
function BrowserOpenURL(url) {
|
|
|
|
|
window.WailsInvoke("BO:" + url);
|
|
|
|
|
}
|
|
|
|
|
|
2023-01-05 06:41:07 +01:00
|
|
|
// desktop/clipboard.js
|
|
|
|
|
var clipboard_exports = {};
|
|
|
|
|
__export(clipboard_exports, {
|
|
|
|
|
ClipboardGetText: () => ClipboardGetText,
|
|
|
|
|
ClipboardSetText: () => ClipboardSetText
|
|
|
|
|
});
|
|
|
|
|
function ClipboardSetText(text) {
|
|
|
|
|
return Call(":wails:ClipboardSetText", [text]);
|
|
|
|
|
}
|
|
|
|
|
function ClipboardGetText() {
|
|
|
|
|
return Call(":wails:ClipboardGetText");
|
|
|
|
|
}
|
|
|
|
|
|
2023-06-27 23:35:02 +03:00
|
|
|
// desktop/contextmenu.js
|
|
|
|
|
function processDefaultContextMenu(event) {
|
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-12 20:45:40 +10:00
|
|
|
// desktop/main.js
|
2021-09-13 19:35:14 +10:00
|
|
|
function Quit() {
|
|
|
|
|
window.WailsInvoke("Q");
|
|
|
|
|
}
|
2022-07-20 20:59:49 +10:00
|
|
|
function Show() {
|
|
|
|
|
window.WailsInvoke("S");
|
|
|
|
|
}
|
|
|
|
|
function Hide() {
|
|
|
|
|
window.WailsInvoke("H");
|
|
|
|
|
}
|
2022-04-20 20:28:41 +10:00
|
|
|
function Environment() {
|
|
|
|
|
return Call(":wails:Environment");
|
|
|
|
|
}
|
2021-09-12 20:45:40 +10:00
|
|
|
window.runtime = {
|
|
|
|
|
...log_exports,
|
|
|
|
|
...window_exports,
|
2021-09-13 12:58:27 +08:00
|
|
|
...browser_exports,
|
2022-07-16 05:33:37 +03:00
|
|
|
...screen_exports,
|
2023-01-05 06:41:07 +01:00
|
|
|
...clipboard_exports,
|
2021-09-12 20:45:40 +10:00
|
|
|
EventsOn,
|
|
|
|
|
EventsOnce,
|
2021-08-24 23:48:03 +10:00
|
|
|
EventsOnMultiple,
|
|
|
|
|
EventsEmit,
|
2021-09-13 19:35:14 +10:00
|
|
|
EventsOff,
|
2022-04-20 20:28:41 +10:00
|
|
|
Environment,
|
2022-07-20 20:59:49 +10:00
|
|
|
Show,
|
|
|
|
|
Hide,
|
2021-09-13 19:35:14 +10:00
|
|
|
Quit
|
2021-08-24 23:48:03 +10:00
|
|
|
};
|
|
|
|
|
window.wails = {
|
2021-10-18 22:02:23 +11:00
|
|
|
Callback,
|
|
|
|
|
EventsNotify,
|
|
|
|
|
SetBindings,
|
|
|
|
|
eventListeners,
|
|
|
|
|
callbacks,
|
|
|
|
|
flags: {
|
2022-09-13 10:05:37 +10:00
|
|
|
disableScrollbarDrag: false,
|
2023-06-27 23:35:02 +03:00
|
|
|
disableDefaultContextMenu: false,
|
2022-09-13 10:05:37 +10:00
|
|
|
enableResize: false,
|
|
|
|
|
defaultCursor: null,
|
|
|
|
|
borderThickness: 6,
|
|
|
|
|
shouldDrag: false,
|
2023-03-20 08:45:21 +01:00
|
|
|
deferDragToMouseMove: true,
|
2022-09-13 10:05:37 +10:00
|
|
|
cssDragProperty: "--wails-draggable",
|
|
|
|
|
cssDragValue: "drag"
|
2022-01-12 20:34:37 +11:00
|
|
|
}
|
2021-08-24 23:48:03 +10:00
|
|
|
};
|
2022-09-13 10:05:37 +10:00
|
|
|
if (window.wailsbindings) {
|
2022-09-12 21:56:43 +10:00
|
|
|
window.wails.SetBindings(window.wailsbindings);
|
|
|
|
|
delete window.wails.SetBindings;
|
2022-09-13 10:05:37 +10:00
|
|
|
}
|
|
|
|
|
if (false) {
|
|
|
|
|
delete window.wailsbindings;
|
|
|
|
|
}
|
2022-09-29 16:06:11 +02:00
|
|
|
var dragTest = function(e) {
|
2022-10-18 10:28:59 +02:00
|
|
|
var val = window.getComputedStyle(e.target).getPropertyValue(window.wails.flags.cssDragProperty);
|
|
|
|
|
if (val) {
|
|
|
|
|
val = val.trim();
|
|
|
|
|
}
|
2023-01-16 10:56:13 +01:00
|
|
|
if (val !== window.wails.flags.cssDragValue) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (e.buttons !== 1) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (e.detail !== 1) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
2022-09-13 10:05:37 +10:00
|
|
|
};
|
2022-09-29 16:06:11 +02:00
|
|
|
window.wails.setCSSDragProperties = function(property, value) {
|
2022-09-13 10:05:37 +10:00
|
|
|
window.wails.flags.cssDragProperty = property;
|
|
|
|
|
window.wails.flags.cssDragValue = value;
|
|
|
|
|
};
|
|
|
|
|
window.addEventListener("mousedown", (e) => {
|
|
|
|
|
if (window.wails.flags.resizeEdge) {
|
|
|
|
|
window.WailsInvoke("resize:" + window.wails.flags.resizeEdge);
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
return;
|
2022-09-01 23:34:59 +02:00
|
|
|
}
|
2022-09-13 10:05:37 +10:00
|
|
|
if (dragTest(e)) {
|
|
|
|
|
if (window.wails.flags.disableScrollbarDrag) {
|
|
|
|
|
if (e.offsetX > e.target.clientWidth || e.offsetY > e.target.clientHeight) {
|
|
|
|
|
return;
|
2021-11-22 06:47:09 +11:00
|
|
|
}
|
2021-11-29 20:04:38 +11:00
|
|
|
}
|
2023-01-16 10:56:13 +01:00
|
|
|
if (window.wails.flags.deferDragToMouseMove) {
|
|
|
|
|
window.wails.flags.shouldDrag = true;
|
|
|
|
|
} else {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
window.WailsInvoke("drag");
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
} else {
|
|
|
|
|
window.wails.flags.shouldDrag = false;
|
2021-11-29 20:04:38 +11:00
|
|
|
}
|
|
|
|
|
});
|
2023-01-16 10:56:13 +01:00
|
|
|
window.addEventListener("mouseup", () => {
|
|
|
|
|
window.wails.flags.shouldDrag = false;
|
|
|
|
|
});
|
2021-11-29 20:04:38 +11:00
|
|
|
function setResize(cursor) {
|
2023-01-10 13:19:09 +01:00
|
|
|
document.documentElement.style.cursor = cursor || window.wails.flags.defaultCursor;
|
2021-11-29 20:04:38 +11:00
|
|
|
window.wails.flags.resizeEdge = cursor;
|
|
|
|
|
}
|
2022-09-29 16:06:11 +02:00
|
|
|
window.addEventListener("mousemove", function(e) {
|
2022-08-08 17:27:23 +10:00
|
|
|
if (window.wails.flags.shouldDrag) {
|
2023-03-20 08:45:21 +01:00
|
|
|
window.wails.flags.shouldDrag = false;
|
2023-01-16 10:56:13 +01:00
|
|
|
let mousePressed = e.buttons !== void 0 ? e.buttons : e.which;
|
2023-03-20 08:45:21 +01:00
|
|
|
if (mousePressed > 0) {
|
2023-01-16 10:56:13 +01:00
|
|
|
window.WailsInvoke("drag");
|
|
|
|
|
return;
|
|
|
|
|
}
|
2022-08-08 17:27:23 +10:00
|
|
|
}
|
2021-11-29 20:04:38 +11:00
|
|
|
if (!window.wails.flags.enableResize) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (window.wails.flags.defaultCursor == null) {
|
2023-01-10 13:19:09 +01:00
|
|
|
window.wails.flags.defaultCursor = document.documentElement.style.cursor;
|
2021-11-29 20:04:38 +11:00
|
|
|
}
|
2022-02-01 20:18:46 +11:00
|
|
|
if (window.outerWidth - e.clientX < window.wails.flags.borderThickness && window.outerHeight - e.clientY < window.wails.flags.borderThickness) {
|
2023-01-10 13:19:09 +01:00
|
|
|
document.documentElement.style.cursor = "se-resize";
|
2021-11-29 20:04:38 +11:00
|
|
|
}
|
2022-02-01 20:18:46 +11:00
|
|
|
let rightBorder = window.outerWidth - e.clientX < window.wails.flags.borderThickness;
|
|
|
|
|
let leftBorder = e.clientX < window.wails.flags.borderThickness;
|
|
|
|
|
let topBorder = e.clientY < window.wails.flags.borderThickness;
|
|
|
|
|
let bottomBorder = window.outerHeight - e.clientY < window.wails.flags.borderThickness;
|
2021-11-29 20:04:38 +11:00
|
|
|
if (!leftBorder && !rightBorder && !topBorder && !bottomBorder && window.wails.flags.resizeEdge !== void 0) {
|
|
|
|
|
setResize();
|
|
|
|
|
} else if (rightBorder && bottomBorder)
|
|
|
|
|
setResize("se-resize");
|
|
|
|
|
else if (leftBorder && bottomBorder)
|
|
|
|
|
setResize("sw-resize");
|
|
|
|
|
else if (leftBorder && topBorder)
|
|
|
|
|
setResize("nw-resize");
|
|
|
|
|
else if (topBorder && rightBorder)
|
2022-09-13 10:05:37 +10:00
|
|
|
setResize("ne-resize");
|
2021-11-29 20:04:38 +11:00
|
|
|
else if (leftBorder)
|
2022-09-13 10:05:37 +10:00
|
|
|
setResize("w-resize");
|
2021-11-29 20:04:38 +11:00
|
|
|
else if (topBorder)
|
2022-09-13 10:05:37 +10:00
|
|
|
setResize("n-resize");
|
2021-11-29 20:04:38 +11:00
|
|
|
else if (bottomBorder)
|
2022-09-13 10:05:37 +10:00
|
|
|
setResize("s-resize");
|
2021-11-29 20:04:38 +11:00
|
|
|
else if (rightBorder)
|
2022-09-13 10:05:37 +10:00
|
|
|
setResize("e-resize");
|
2022-01-12 20:34:37 +11:00
|
|
|
});
|
2022-09-29 16:06:11 +02:00
|
|
|
window.addEventListener("contextmenu", function(e) {
|
2023-06-27 23:35:02 +03:00
|
|
|
if (true)
|
|
|
|
|
return;
|
|
|
|
|
if (window.wails.flags.disableDefaultContextMenu) {
|
2022-09-13 10:05:37 +10:00
|
|
|
e.preventDefault();
|
2023-06-27 23:35:02 +03:00
|
|
|
} else {
|
|
|
|
|
processDefaultContextMenu(e);
|
2022-09-13 10:05:37 +10:00
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
window.WailsInvoke("runtime:ready");
|
2021-08-22 23:05:22 +10:00
|
|
|
})();
|
2023-06-27 23:35:02 +03:00
|
|
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZGVza3RvcC9sb2cuanMiLCAiZGVza3RvcC9ldmVudHMuanMiLCAiZGVza3RvcC9jYWxscy5qcyIsICJkZXNrdG9wL2JpbmRpbmdzLmpzIiwgImRlc2t0b3Avd2luZG93LmpzIiwgImRlc2t0b3Avc2NyZWVuLmpzIiwgImRlc2t0b3AvYnJvd3Nlci5qcyIsICJkZXNrdG9wL2NsaXBib2FyZC5qcyIsICJkZXNrdG9wL2NvbnRleHRtZW51LmpzIiwgImRlc2t0b3AvbWFpbi5qcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLypcbiBfICAgICAgIF9fICAgICAgXyBfX1xufCB8ICAgICAvIC9fX18gXyhfKSAvX19fX1xufCB8IC98IC8gLyBfXyBgLyAvIC8gX19fL1xufCB8LyB8LyAvIC9fLyAvIC8gKF9fICApXG58X18vfF9fL1xcX18sXy9fL18vX19fXy9cblRoZSBlbGVjdHJvbiBhbHRlcm5hdGl2ZSBmb3IgR29cbihjKSBMZWEgQW50aG9ueSAyMDE5LXByZXNlbnRcbiovXG5cbi8qIGpzaGludCBlc3ZlcnNpb246IDYgKi9cblxuLyoqXG4gKiBTZW5kcyBhIGxvZyBtZXNzYWdlIHRvIHRoZSBiYWNrZW5kIHdpdGggdGhlIGdpdmVuIGxldmVsICsgbWVzc2FnZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBsZXZlbFxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAqL1xuZnVuY3Rpb24gc2VuZExvZ01lc3NhZ2UobGV2ZWwsIG1lc3NhZ2UpIHtcblxuXHQvLyBMb2cgTWVzc2FnZSBmb3JtYXQ6XG5cdC8vIGxbdHlwZV1bbWVzc2FnZV1cblx0d2luZG93LldhaWxzSW52b2tlKCdMJyArIGxldmVsICsgbWVzc2FnZSk7XG59XG5cbi8qKlxuICogTG9nIHRoZSBnaXZlbiB0cmFjZSBtZXNzYWdlIHdpdGggdGhlIGJhY2tlbmRcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gTG9nVHJhY2UobWVzc2FnZSkge1xuXHRzZW5kTG9nTWVzc2FnZSgnVCcsIG1lc3NhZ2UpO1xufVxuXG4vKipcbiAqIExvZyB0aGUgZ2l2ZW4gbWVzc2FnZSB3aXRoIHRoZSBiYWNrZW5kXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIExvZ1ByaW50KG1lc3NhZ2UpIHtcblx0c2VuZExvZ01lc3NhZ2UoJ1AnLCBtZXNzYWdlKTtcbn1cblxuLyoqXG4gKiBMb2cgdGhlIGdpdmVuIGRlYnVnIG1lc3NhZ2Ugd2l0aCB0aGUgYmFja2VuZFxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMb2dEZWJ1ZyhtZXNzYWdlKSB7XG5cdHNlbmRMb2dNZXNzYWdlKCdEJywgbWVzc2FnZSk7XG59XG5cbi8qKlxuICogTG9nIHRoZSBnaXZlbiBpbmZvIG1lc3NhZ2Ugd2l0aCB0aGUgYmFja2VuZFxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMb2dJbmZvKG1lc3NhZ2UpIHtcblx0c2VuZExvZ01lc3NhZ2UoJ0knLCBtZXNzYWdlKTtcbn1cblxuLyoqXG4gKiBMb2cgdGhlIGdpdmVuIHdhcm5pbmcgbWVzc2FnZSB3aXRoIHRoZSBiYWNrZW5kXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIExvZ1dhcm5pbmcobWVzc2FnZSkge1xuXHRzZW5kTG9nTWVzc2FnZSgnVycsIG1lc3NhZ2UpO1xufVxuXG4vKipcbiAqIExvZyB0aGUgZ2l2ZW4gZXJyb3IgbWVzc2FnZSB3aXRoIHRoZSBiYWNrZW5kXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIExvZ0Vycm9yKG1lc3NhZ2UpIHtcblx0c2VuZExvZ01lc3NhZ2UoJ0UnLCBtZXNzYWdlKTtcbn1cblxuLyoqXG4gKiBMb2cgdGhlIGdpdmVuIGZhdGFsIG1lc3NhZ2Ugd2l0aCB0aGUgYmFja2VuZFxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMb2dGYXRhbChtZXNzYWdlKSB7XG5cdHNlbmRMb2dNZXNzYWdlKCdGJywgbWVzc2FnZSk7XG59XG5cbi8qKlxuICogU2V0cyB0aGUgTG9nIGxldmVsIHRvIHRoZSBnaXZlbiBsb2cgbGV2ZWxcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge251bWJlcn0gbG9nbGV2ZWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNldExvZ0xldmVsKGxvZ2xldmVsKSB7XG5cdHNlbmRMb2dNZXNzYWdlKCdTJywgbG9nbGV2ZWwpO1xufVxuXG4vLyBMb2cgbGV2ZWxzXG5leHBvcnQgY29uc3QgTG9nTGV2ZWwgPSB7XG5cdFRSQUNFOiAxLFxuXHRERUJVRzogMixcblx0SU5GTzogMyxcblx0V0FSTklORzogNCxcblx0RVJST1I6IDUsXG59O1xuIiwgIi8qXG4gXyAgICAgICBfXyAgICAgIF8gX19cbnwgfCAgICAgLyAvX19fIF8oXykgL19fX19cbnwgfCAvfCAvIC8gX18gYC8gLyAvIF9fXy9cbnwgfC8gfC8gLyAvXy8gLyAvIChfXyAgKVxufF9fL3xfXy9cXF9fLF8vXy9fL19fX18vXG5UaGUgZWxlY3Ryb24gYWx0ZXJuYXRpdmUgZm9yIEdvXG4oYykgTGVhIEFudGhvbnkgMjAxOS1wcmVzZW50XG4qL1xuLyoganNoaW50IGVzdmVyc2lvbjogNiAqL1xuXG4vLyBEZWZpbmVzIGEgc2luZ2xlIGxpc3RlbmVyIHdpdGggYSBtYXhpbXVtIG51bWJlciBvZiB0aW1lcyB0byBjYWxsYmFja1xuXG4vKipcbiAqIFRoZSBMaXN0ZW5lciBjbGFzcyBkZWZpbmVzIGEgbGlzdGVuZXIhIDotKVxuICpcbiAqIEBjbGFzcyBMaXN0ZW5lclxuICovXG5jbGFzcyBMaXN0ZW5lciB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBMaXN0ZW5lci5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbWF4Q2FsbGJhY2tzXG4gICAgICogQG1lbWJlcm9mIExpc3RlbmVyXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoZXZlbnROYW1lLCBjYWxsYmFjaywgbWF4Q2FsbGJhY2tzKSB7XG4gICAgICAgIHRoaXMuZXZlbnROYW1lID0gZXZlbnROYW1lO1xuICAgICAgICAvLyBEZWZhdWx0IG9mIC0xI
|