From 81645190f0c2c3f58e041d4816f9b0093726d7b5 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Wed, 18 Jan 2023 21:42:49 +1100 Subject: [PATCH] merge exp branch --- .gitignore | 3 + v2/examples/systray/main.go | 3 +- v3/.gitignore | 8 + v3/Taskfile.yaml | 136 ++ v3/cmd/wails/README.md | 79 + v3/cmd/wails/main.go | 28 + v3/examples/binding/main.go | 31 + v3/examples/binding/models/person.go | 5 + v3/examples/binding/services/GreetService.go | 23 + v3/examples/build/README.md | 15 + v3/examples/build/Taskfile.yml | 42 + v3/examples/build/build/Info.dev.plist | 35 + v3/examples/build/build/Info.plist | 27 + v3/examples/build/build/appicon.png | Bin 0 -> 132625 bytes v3/examples/build/build/icons.icns | Bin 0 -> 356592 bytes v3/examples/build/build/icons.ico | Bin 0 -> 21677 bytes v3/examples/build/build/info.json | 15 + v3/examples/build/build/wails.exe.manifest | 15 + .../build/buildtest.app/Contents/Info.plist | 27 + .../Contents/Resources/icons.icns | Bin 0 -> 356592 bytes v3/examples/build/main.go | 275 +++ v3/examples/clipboard/main.go | 71 + v3/examples/dialogs/main.go | 335 ++++ v3/examples/kitchensink/main.go | 225 +++ v3/examples/menu/main.go | 97 ++ v3/examples/plain/main.go | 45 + v3/examples/systray/main.go | 47 + v3/examples/window/main.go | 277 +++ v3/go.mod | 56 + v3/go.sum | 179 ++ v3/internal/commands/bindings.go | 42 + v3/internal/commands/defaults.go | 61 + v3/internal/commands/defaults/Info.dev.plist | 32 + v3/internal/commands/defaults/Info.plist | 27 + v3/internal/commands/defaults/appicon.png | Bin 0 -> 132625 bytes v3/internal/commands/defaults/icons.icns | Bin 0 -> 356592 bytes v3/internal/commands/defaults/icons.ico | Bin 0 -> 21017 bytes v3/internal/commands/defaults/info.json | 15 + .../commands/defaults/wails.exe.manifest | 15 + v3/internal/commands/icons.go | 135 ++ v3/internal/commands/icons_test.go | 285 +++ v3/internal/commands/init.go | 8 + v3/internal/commands/syso.go | 123 ++ v3/internal/commands/syso_test.go | 189 ++ v3/internal/commands/task.go | 66 + v3/internal/commands/task_test.go | 38 + v3/internal/parser/README.md | 24 + v3/internal/parser/models.go | 95 + v3/internal/parser/parser.go | 531 ++++++ v3/internal/parser/parser_test.go | 144 ++ .../testdata/struct_literal_multiple/main.go | 40 + .../struct_literal_multiple_files/greet.go | 14 + .../struct_literal_multiple_files/main.go | 27 + .../struct_literal_multiple_files/other.go | 5 + .../testdata/struct_literal_single/main.go | 35 + v3/internal/runtime/assets.go | 26 + v3/internal/runtime/assets_dev.go | 27 + v3/internal/runtime/desktop/bindings.js | 67 + v3/internal/runtime/desktop/browser.js | 8 + v3/internal/runtime/desktop/calls.js | 189 ++ v3/internal/runtime/desktop/events.js | 212 +++ v3/internal/runtime/desktop/events.test.js | 132 ++ v3/internal/runtime/desktop/ipc.js | 23 + v3/internal/runtime/desktop/log.js | 113 ++ v3/internal/runtime/desktop/main.js | 80 + v3/internal/runtime/desktop/screen.js | 25 + v3/internal/runtime/desktop/window.js | 269 +++ v3/internal/runtime/dev/Overlay.svelte | 54 + v3/internal/runtime/dev/build.js | 15 + v3/internal/runtime/dev/log.js | 8 + v3/internal/runtime/dev/main.js | 125 ++ v3/internal/runtime/dev/package-lock.json | 1536 +++++++++++++++++ v3/internal/runtime/dev/package.json | 18 + v3/internal/runtime/dev/store.js | 12 + v3/internal/runtime/ipc.go | 9 + v3/internal/runtime/ipc.js | 1 + v3/internal/runtime/ipc_websocket.js | 22 + v3/internal/runtime/package-lock.json | 1503 ++++++++++++++++ v3/internal/runtime/package.json | 14 + v3/internal/runtime/runtime_debug_darwin.go | 8 + .../runtime/runtime_debug_desktop_darwin.js | 420 +++++ .../runtime/runtime_debug_desktop_linux.js | 420 +++++ .../runtime/runtime_debug_desktop_windows.js | 420 +++++ v3/internal/runtime/runtime_debug_linux.go | 8 + v3/internal/runtime/runtime_debug_windows.go | 8 + .../runtime/runtime_production_darwin.go | 8 + .../runtime_production_desktop_darwin.js | 1 + .../runtime_production_desktop_linux.js | 1 + .../runtime_production_desktop_windows.js | 1 + .../runtime/runtime_production_linux.go | 8 + .../runtime/runtime_production_windows.go | 8 + v3/internal/runtime/vite.config.ts | 7 + v3/pkg/application/TODO.md | 10 + v3/pkg/application/app_delegate.h | 12 + v3/pkg/application/app_delegate.m | 142 ++ v3/pkg/application/application.go | 384 +++++ v3/pkg/application/application.h | 11 + v3/pkg/application/application_darwin.go | 225 +++ v3/pkg/application/clipboard.go | 26 + v3/pkg/application/clipboard_darwin.go | 56 + v3/pkg/application/context.go | 42 + v3/pkg/application/dialogs.go | 367 ++++ v3/pkg/application/dialogs_darwin.go | 520 ++++++ v3/pkg/application/dialogs_delegate.h | 14 + v3/pkg/application/dialogs_delegate.m | 36 + v3/pkg/application/errors.go | 16 + v3/pkg/application/events.go | 12 + v3/pkg/application/icons.go | 8 + v3/pkg/application/keys.go | 172 ++ v3/pkg/application/keys_darwin.go | 28 + v3/pkg/application/mainthread.go | 21 + v3/pkg/application/mainthread_darwin.go | 37 + v3/pkg/application/menu.go | 103 ++ v3/pkg/application/menu_darwin.go | 105 ++ v3/pkg/application/menuitem.go | 274 +++ v3/pkg/application/menuitem.h | 18 + v3/pkg/application/menuitem.m | 13 + v3/pkg/application/menuitem_darwin.go | 620 +++++++ v3/pkg/application/roles.go | 148 ++ v3/pkg/application/screen.go | 26 + v3/pkg/application/screen_darwin.go | 151 ++ v3/pkg/application/systemtray.go | 106 ++ v3/pkg/application/systemtray_darwin.go | 161 ++ v3/pkg/application/webview_window.go | 587 +++++++ v3/pkg/application/webview_window.h | 36 + v3/pkg/application/webview_window.m | 565 ++++++ v3/pkg/application/webview_window_darwin.go | 1113 ++++++++++++ v3/pkg/application/webview_window_devtools.go | 38 + v3/pkg/events/events.go | 254 +++ v3/pkg/events/events.h | 133 ++ v3/pkg/events/events.txt | 121 ++ v3/pkg/events/events_darwin.go | 26 + v3/pkg/options/application.go | 9 + v3/pkg/options/mac.go | 130 ++ v3/pkg/options/window.go | 64 + v3/tasks/Taskfile.yml | 7 + v3/tasks/events/generate.go | 215 +++ v3/tasks/png2bytes/png2bytes.go | 38 + 138 files changed, 17055 insertions(+), 1 deletion(-) create mode 100644 v3/.gitignore create mode 100644 v3/Taskfile.yaml create mode 100644 v3/cmd/wails/README.md create mode 100644 v3/cmd/wails/main.go create mode 100644 v3/examples/binding/main.go create mode 100644 v3/examples/binding/models/person.go create mode 100644 v3/examples/binding/services/GreetService.go create mode 100644 v3/examples/build/README.md create mode 100644 v3/examples/build/Taskfile.yml create mode 100644 v3/examples/build/build/Info.dev.plist create mode 100644 v3/examples/build/build/Info.plist create mode 100644 v3/examples/build/build/appicon.png create mode 100644 v3/examples/build/build/icons.icns create mode 100644 v3/examples/build/build/icons.ico create mode 100644 v3/examples/build/build/info.json create mode 100644 v3/examples/build/build/wails.exe.manifest create mode 100644 v3/examples/build/buildtest.app/Contents/Info.plist create mode 100644 v3/examples/build/buildtest.app/Contents/Resources/icons.icns create mode 100755 v3/examples/build/main.go create mode 100644 v3/examples/clipboard/main.go create mode 100644 v3/examples/dialogs/main.go create mode 100644 v3/examples/kitchensink/main.go create mode 100644 v3/examples/menu/main.go create mode 100644 v3/examples/plain/main.go create mode 100644 v3/examples/systray/main.go create mode 100644 v3/examples/window/main.go create mode 100644 v3/go.mod create mode 100644 v3/go.sum create mode 100644 v3/internal/commands/bindings.go create mode 100644 v3/internal/commands/defaults.go create mode 100644 v3/internal/commands/defaults/Info.dev.plist create mode 100644 v3/internal/commands/defaults/Info.plist create mode 100644 v3/internal/commands/defaults/appicon.png create mode 100644 v3/internal/commands/defaults/icons.icns create mode 100644 v3/internal/commands/defaults/icons.ico create mode 100644 v3/internal/commands/defaults/info.json create mode 100644 v3/internal/commands/defaults/wails.exe.manifest create mode 100644 v3/internal/commands/icons.go create mode 100644 v3/internal/commands/icons_test.go create mode 100644 v3/internal/commands/init.go create mode 100644 v3/internal/commands/syso.go create mode 100644 v3/internal/commands/syso_test.go create mode 100644 v3/internal/commands/task.go create mode 100644 v3/internal/commands/task_test.go create mode 100644 v3/internal/parser/README.md create mode 100644 v3/internal/parser/models.go create mode 100644 v3/internal/parser/parser.go create mode 100644 v3/internal/parser/parser_test.go create mode 100644 v3/internal/parser/testdata/struct_literal_multiple/main.go create mode 100644 v3/internal/parser/testdata/struct_literal_multiple_files/greet.go create mode 100644 v3/internal/parser/testdata/struct_literal_multiple_files/main.go create mode 100644 v3/internal/parser/testdata/struct_literal_multiple_files/other.go create mode 100644 v3/internal/parser/testdata/struct_literal_single/main.go create mode 100644 v3/internal/runtime/assets.go create mode 100644 v3/internal/runtime/assets_dev.go create mode 100644 v3/internal/runtime/desktop/bindings.js create mode 100644 v3/internal/runtime/desktop/browser.js create mode 100644 v3/internal/runtime/desktop/calls.js create mode 100644 v3/internal/runtime/desktop/events.js create mode 100644 v3/internal/runtime/desktop/events.test.js create mode 100644 v3/internal/runtime/desktop/ipc.js create mode 100644 v3/internal/runtime/desktop/log.js create mode 100644 v3/internal/runtime/desktop/main.js create mode 100644 v3/internal/runtime/desktop/screen.js create mode 100644 v3/internal/runtime/desktop/window.js create mode 100644 v3/internal/runtime/dev/Overlay.svelte create mode 100644 v3/internal/runtime/dev/build.js create mode 100644 v3/internal/runtime/dev/log.js create mode 100644 v3/internal/runtime/dev/main.js create mode 100644 v3/internal/runtime/dev/package-lock.json create mode 100644 v3/internal/runtime/dev/package.json create mode 100644 v3/internal/runtime/dev/store.js create mode 100644 v3/internal/runtime/ipc.go create mode 100644 v3/internal/runtime/ipc.js create mode 100644 v3/internal/runtime/ipc_websocket.js create mode 100644 v3/internal/runtime/package-lock.json create mode 100644 v3/internal/runtime/package.json create mode 100644 v3/internal/runtime/runtime_debug_darwin.go create mode 100644 v3/internal/runtime/runtime_debug_desktop_darwin.js create mode 100644 v3/internal/runtime/runtime_debug_desktop_linux.js create mode 100644 v3/internal/runtime/runtime_debug_desktop_windows.js create mode 100644 v3/internal/runtime/runtime_debug_linux.go create mode 100644 v3/internal/runtime/runtime_debug_windows.go create mode 100644 v3/internal/runtime/runtime_production_darwin.go create mode 100644 v3/internal/runtime/runtime_production_desktop_darwin.js create mode 100644 v3/internal/runtime/runtime_production_desktop_linux.js create mode 100644 v3/internal/runtime/runtime_production_desktop_windows.js create mode 100644 v3/internal/runtime/runtime_production_linux.go create mode 100644 v3/internal/runtime/runtime_production_windows.go create mode 100644 v3/internal/runtime/vite.config.ts create mode 100644 v3/pkg/application/TODO.md create mode 100644 v3/pkg/application/app_delegate.h create mode 100644 v3/pkg/application/app_delegate.m create mode 100644 v3/pkg/application/application.go create mode 100644 v3/pkg/application/application.h create mode 100644 v3/pkg/application/application_darwin.go create mode 100644 v3/pkg/application/clipboard.go create mode 100644 v3/pkg/application/clipboard_darwin.go create mode 100644 v3/pkg/application/context.go create mode 100644 v3/pkg/application/dialogs.go create mode 100644 v3/pkg/application/dialogs_darwin.go create mode 100644 v3/pkg/application/dialogs_delegate.h create mode 100644 v3/pkg/application/dialogs_delegate.m create mode 100644 v3/pkg/application/errors.go create mode 100644 v3/pkg/application/events.go create mode 100644 v3/pkg/application/icons.go create mode 100644 v3/pkg/application/keys.go create mode 100644 v3/pkg/application/keys_darwin.go create mode 100644 v3/pkg/application/mainthread.go create mode 100644 v3/pkg/application/mainthread_darwin.go create mode 100644 v3/pkg/application/menu.go create mode 100644 v3/pkg/application/menu_darwin.go create mode 100644 v3/pkg/application/menuitem.go create mode 100644 v3/pkg/application/menuitem.h create mode 100644 v3/pkg/application/menuitem.m create mode 100644 v3/pkg/application/menuitem_darwin.go create mode 100644 v3/pkg/application/roles.go create mode 100644 v3/pkg/application/screen.go create mode 100644 v3/pkg/application/screen_darwin.go create mode 100644 v3/pkg/application/systemtray.go create mode 100644 v3/pkg/application/systemtray_darwin.go create mode 100644 v3/pkg/application/webview_window.go create mode 100644 v3/pkg/application/webview_window.h create mode 100644 v3/pkg/application/webview_window.m create mode 100644 v3/pkg/application/webview_window_darwin.go create mode 100644 v3/pkg/application/webview_window_devtools.go create mode 100644 v3/pkg/events/events.go create mode 100644 v3/pkg/events/events.h create mode 100644 v3/pkg/events/events.txt create mode 100644 v3/pkg/events/events_darwin.go create mode 100644 v3/pkg/options/application.go create mode 100644 v3/pkg/options/mac.go create mode 100644 v3/pkg/options/window.go create mode 100644 v3/tasks/Taskfile.yml create mode 100644 v3/tasks/events/generate.go create mode 100644 v3/tasks/png2bytes/png2bytes.go diff --git a/.gitignore b/.gitignore index 7da68564..9e173452 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,6 @@ v2/test/kitchensink/frontend/package.json.md5 v2/cmd/wails/internal/commands/initialise/templates/testtemplates/ .env /website/static/img/.cache.json + +/v3/.task +/v3/examples/build/bin/testapp diff --git a/v2/examples/systray/main.go b/v2/examples/systray/main.go index d675ec4d..1c73d0b6 100644 --- a/v2/examples/systray/main.go +++ b/v2/examples/systray/main.go @@ -4,12 +4,13 @@ import ( "context" "embed" "fmt" + "time" + "github.com/wailsapp/wails/v2/pkg/application" "github.com/wailsapp/wails/v2/pkg/menu" "github.com/wailsapp/wails/v2/pkg/options" "github.com/wailsapp/wails/v2/pkg/options/windows" "github.com/wailsapp/wails/v2/pkg/runtime" - "time" ) //go:embed all:frontend/dist diff --git a/v3/.gitignore b/v3/.gitignore new file mode 100644 index 00000000..cc164c02 --- /dev/null +++ b/v3/.gitignore @@ -0,0 +1,8 @@ +examples/kitchensink/kitchensink +cmd/wails/wails +/examples/systray/systray +/examples/window/window +/examples/dialogs/dialogs +/examples/menu/menu +/examples/clipboard/clipboard +/examples/plain/plain diff --git a/v3/Taskfile.yaml b/v3/Taskfile.yaml new file mode 100644 index 00000000..fc145cf6 --- /dev/null +++ b/v3/Taskfile.yaml @@ -0,0 +1,136 @@ +# https://taskfile.dev + +version: '3' + +tasks: + + build-runtime-debug: + dir: internal/runtime + internal: true + cmds: + - npx esbuild desktop/main.js --bundle --sourcemap=inline --outfile=runtime_debug_desktop_{{.PLATFORM}}.js --define:DEBUG=true --define:WINDOWS={{.WINDOWS}} --define:DARWIN={{.DARWIN}} --define:LINUX={{.LINUX}} --define:PLATFORM={{.PLATFORM}} + + build-runtime-debug-windows: + cmds: + - task: build-runtime-debug + vars: + WINDOWS: true + DARWIN: false + LINUX: false + PLATFORM: windows + + build-runtime-debug-linux: + cmds: + - task: build-runtime-debug + vars: + WINDOWS: false + DARWIN: false + LINUX: true + PLATFORM: linux + + build-runtime-debug-darwin: + cmds: + - task: build-runtime-debug + vars: + WINDOWS: false + DARWIN: true + LINUX: false + PLATFORM: darwin + + build-runtime-production: + dir: internal/runtime + internal: true + cmds: + - npx esbuild desktop/main.js --bundle --minify --outfile=runtime_production_desktop_{{.PLATFORM}}.js --define:DEBUG=true --define:WINDOWS={{.WINDOWS}} --define:DARWIN={{.DARWIN}} --define:LINUX={{.LINUX}} --define:PLATFORM={{.PLATFORM}} + + build-runtime-production-windows: + cmds: + - task: build-runtime-production + vars: + WINDOWS: true + DARWIN: false + LINUX: false + PLATFORM: windows + + build-runtime-production-linux: + cmds: + - task: build-runtime-production + vars: + WINDOWS: false + DARWIN: false + LINUX: true + PLATFORM: linux + + build-runtime-production-darwin: + cmds: + - task: build-runtime-production + vars: + WINDOWS: false + DARWIN: true + LINUX: false + PLATFORM: darwin + + install-runtime-dev-deps: + dir: internal/runtime/dev + internal: true + sources: + - package.json + cmds: + - npm install + + + install-runtime-deps: + dir: internal/runtime + internal: true + sources: + - package.json + cmds: + - npm install + + build-runtime-dev: + dir: internal/runtime/dev + deps: + - install-runtime-dev-deps + sources: + - ./*.js + generates: + - ../ipc_websocket.js + cmds: + - node build.js + + build-runtime-ipc: + dir: internal/runtime + deps: + - install-runtime-dev-deps + sources: + - ./desktop/ipc.js + generates: + - ipc.js + cmds: + - npx esbuild desktop/ipc.js --bundle --minify --outfile=ipc.js + + test-runtime: + dir: internal/runtime + cmds: + - npx vitest + + build-runtime-all: + dir: internal/runtime + deps: + - build-runtime-production-darwin + - build-runtime-production-windows + - build-runtime-production-linux + - build-runtime-debug-darwin + - build-runtime-debug-windows + - build-runtime-debug-linux + - build-runtime-dev + - build-runtime-ipc + cmds: + - task: test-runtime + + build-runtime: + dir: internal/runtime + deps: + - install-runtime-deps + cmds: + - task: build-runtime-all diff --git a/v3/cmd/wails/README.md b/v3/cmd/wails/README.md new file mode 100644 index 00000000..6d005d02 --- /dev/null +++ b/v3/cmd/wails/README.md @@ -0,0 +1,79 @@ +# The Wails CLI + +The Wails CLI is a command line tool that allows you to create, build and run Wails applications. +There are a number of commands related to tooling, such as icon generation and asset bundling. + +## Commands + +### run + +The run command is for running tasks defined in `Taskfile.yml`. + +| Flag | Type | Description | Default | +|--------------------|--------|------------------------------------------------------|-----------------------| +| `-t` | string | The name of the task to run | | + +### generate + +The `generate` command is used to generate resources and assets for your Wails project. +It can be used to generate many things including: + - application icons, + - resource files for Windows applications + - Info.plist files for macOS deployments + +#### icon + +The `icon` command generates icons for your project. + +| Flag | Type | Description | Default | +|--------------------|--------|------------------------------------------------------|-----------------------| +| `-example` | bool | Generates example icon file (appicon.png) | | +| `-input` | string | The input image file | | +| `-sizes` | string | The sizes to generate in .ico file (comma separated) | "256,128,64,48,32,16" | +| `-windowsFilename` | string | The output filename for the Windows icon | icons.ico | +| `-macFilename` | string | The output filename for the Mac icon bundle | icons.icns | + +```bash +wails generate icon -input myicon.png -sizes "32,64,128" -windowsFilename myicon.ico -macFilename myicon.icns +``` + +This will generate icons for mac and windows and save them in the current directory as `myicon.ico` +and `myicons.icns`. + +#### syso + +The `syso` command generates a Windows resource file (aka `.syso`). + +```bash +wails generate syso +``` + +| Flag | Type | Description | Default | +|-------------|--------|--------------------------------------------|------------------| +| `-example` | bool | Generates example manifest & info files | | +| `-manifest` | string | The manifest file | | +| `-info` | string | The info.json file | | +| `-icon` | string | The icon file | | +| `-out` | string | The output filename for the syso file | `wails.exe.syso` | +| `-arch` | string | The target architecture (amd64,arm64,386) | `runtime.GOOS` | + +If `-example` is provided, the command will generate example manifest and info files +in the current directory and exit. + +If `-manifest` is provided, the command will use the provided manifest file to generate +the syso file. + +If `-info` is provided, the command will use the provided info.json file to set the version +information in the syso file. + +NOTE: We use [winres](https://github.com/tc-hib/winres) to generate the syso file. Please +refer to the winres documentation for more information. + +NOTE: Whilst the tool will work for 32-bit Windows, it is not supported. Please use 64-bit. + +#### defaults + +```bash +wails icon -input myicon.png -sizes "32,64,128" -windowsFilename myicon.ico -macFilename myicon.icns +``` +This will generate all the default assets and resources in the current directory. I \ No newline at end of file diff --git a/v3/cmd/wails/main.go b/v3/cmd/wails/main.go new file mode 100644 index 00000000..63531685 --- /dev/null +++ b/v3/cmd/wails/main.go @@ -0,0 +1,28 @@ +package main + +import ( + "os" + + "github.com/pterm/pterm" + + "github.com/leaanthony/clir" + "github.com/wailsapp/wails/v3/internal/commands" +) + +func main() { + app := clir.NewCli("wails", "The Wails CLI", "v3") + app.NewSubCommandFunction("init", "Initialise a new project", commands.Init) + task := app.NewSubCommand("task", "Run and list tasks") + task.NewSubCommandFunction("run", "Run a task", commands.RunTask) + task.NewSubCommandFunction("list", "List tasks", commands.ListTasks) + generate := app.NewSubCommand("generate", "Generation tools") + generate.NewSubCommandFunction("defaults", "Generate default build assets", commands.Defaults) + generate.NewSubCommandFunction("icons", "Generate icons", commands.GenerateIcons) + generate.NewSubCommandFunction("syso", "Generate Windows .syso file", commands.GenerateSyso) + generate.NewSubCommandFunction("bindings", "Generate bindings + models", commands.GenerateBindings) + err := app.Run() + if err != nil { + pterm.Error.Println(err) + os.Exit(1) + } +} diff --git a/v3/examples/binding/main.go b/v3/examples/binding/main.go new file mode 100644 index 00000000..f6669c27 --- /dev/null +++ b/v3/examples/binding/main.go @@ -0,0 +1,31 @@ +package main + +import ( + _ "embed" + "log" + + "github.com/wailsapp/wails/v3/examples/binding/services" + + "github.com/wailsapp/wails/v3/pkg/application" + "github.com/wailsapp/wails/v3/pkg/options" +) + +type localStruct struct{} + +func main() { + app := application.New(options.Application{ + Bind: []interface{}{ + &localStruct{}, + &services.GreetService{}, + }, + }) + + app.NewWebviewWindow() + + err := app.Run() + + if err != nil { + log.Fatal(err) + } + +} diff --git a/v3/examples/binding/models/person.go b/v3/examples/binding/models/person.go new file mode 100644 index 00000000..0d0ab94d --- /dev/null +++ b/v3/examples/binding/models/person.go @@ -0,0 +1,5 @@ +package models + +type Person struct { + Name string +} diff --git a/v3/examples/binding/services/GreetService.go b/v3/examples/binding/services/GreetService.go new file mode 100644 index 00000000..13a6f457 --- /dev/null +++ b/v3/examples/binding/services/GreetService.go @@ -0,0 +1,23 @@ +package services + +import ( + "github.com/wailsapp/wails/v3/examples/binding/models" +) + +type GreetService struct { + SomeVariable int + lowercase string + Parent *models.Person +} + +func (*GreetService) Greet(name string) string { + return "Hello " + name +} + +func (g *GreetService) GetPerson() *models.Person { + return g.Parent +} + +func (g *GreetService) SetPerson(person *models.Person) { + g.Parent = person +} diff --git a/v3/examples/build/README.md b/v3/examples/build/README.md new file mode 100644 index 00000000..bb2b1761 --- /dev/null +++ b/v3/examples/build/README.md @@ -0,0 +1,15 @@ +# Build + +Wails has adopted [Taskfile](https://taskfile.dev) as its build tool. This is optional +and any build tool can be used. However, Taskfile is a great tool, and we recommend it. + +The Wails CLI has built-in integration with Taskfile so the standalone version is not a +requirement. + +## Building + +To build the example, run: + +```bash +wails run -t build +``` diff --git a/v3/examples/build/Taskfile.yml b/v3/examples/build/Taskfile.yml new file mode 100644 index 00000000..ed71e373 --- /dev/null +++ b/v3/examples/build/Taskfile.yml @@ -0,0 +1,42 @@ +version: '3' + +tasks: + + pre-build: + summary: Pre-build hooks + + post-build: + summary: Post-build hooks + + build: + summary: Builds the application + cmds: + - task: pre-build + - go build -gcflags=all="-N -l" -o bin/testapp main.go + - task: post-build + env: + CGO_CFLAGS: "-mmacosx-version-min=10.13" + CGO_LDFLAGS: "-mmacosx-version-min=10.13" + + generate-icons: + summary: Generates Windows `.ico` and Mac `.icns` files from an image + dir: build + cmds: + # Generates both .ico and .icns files + - wails generate icon -input appicon.png + + build-prod: + summary: Creates a production build of the application + cmds: + - go build -tags production -ldflags="-w -s" -o bin/testapp + + package-darwin: + summary: Packages a production build of the application into a `.app` bundle + deps: + - build-prod + - generate-icons + cmds: + - mkdir -p buildtest.app/Contents/{MacOS,Resources} + - cp build/icons.icns buildtest.app/Contents/Resources + - cp bin/testapp buildtest.app/Contents/MacOS + - cp build/Info.plist buildtest.app/Contents \ No newline at end of file diff --git a/v3/examples/build/build/Info.dev.plist b/v3/examples/build/build/Info.dev.plist new file mode 100644 index 00000000..d6d28b17 --- /dev/null +++ b/v3/examples/build/build/Info.dev.plist @@ -0,0 +1,35 @@ + + + + CFBundlePackageType + APPL + CFBundleName + My App + CFBundleExecutable + app + CFBundleIdentifier + com.wails.app + CFBundleVersion + v1.0.0 + CFBundleGetInfoString + The ultimate thing + CFBundleShortVersionString + v1 + CFBundleIconFile + icons + LSMinimumSystemVersion + 10.13.0 + NSHighResolutionCapable + true + NSHumanReadableCopyright + (c) Me + NSAppTransportSecurity + + NSAllowsLocalNetworking + + + + + + + \ No newline at end of file diff --git a/v3/examples/build/build/Info.plist b/v3/examples/build/build/Info.plist new file mode 100644 index 00000000..7f03f54e --- /dev/null +++ b/v3/examples/build/build/Info.plist @@ -0,0 +1,27 @@ + + + + CFBundlePackageType + APPL + CFBundleName + My App + CFBundleExecutable + app + CFBundleIdentifier + com.wails.app + CFBundleVersion + v1.0.0 + CFBundleGetInfoString + The ultimate thing + CFBundleShortVersionString + v1 + CFBundleIconFile + icons + LSMinimumSystemVersion + 10.13.0 + NSHighResolutionCapable + true + NSHumanReadableCopyright + (c) Me + + \ No newline at end of file diff --git a/v3/examples/build/build/appicon.png b/v3/examples/build/build/appicon.png new file mode 100644 index 0000000000000000000000000000000000000000..63617fe4f746b8a878bd5f44725f4f317b9d9850 GIT binary patch literal 132625 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 -`D^0*p}lTwGQ~7 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 z˵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 literal 0 HcmV?d00001 diff --git a/v3/examples/build/build/icons.ico b/v3/examples/build/build/icons.ico new file mode 100644 index 0000000000000000000000000000000000000000..bfa0690b7f8aea8d793026b51f9fc4eed2e00af7 GIT binary patch literal 21677 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 + + + + + + + + + + true/pm + permonitorv2,permonitor + + + \ No newline at end of file diff --git a/v3/examples/build/buildtest.app/Contents/Info.plist b/v3/examples/build/buildtest.app/Contents/Info.plist new file mode 100644 index 00000000..7f03f54e --- /dev/null +++ b/v3/examples/build/buildtest.app/Contents/Info.plist @@ -0,0 +1,27 @@ + + + + CFBundlePackageType + APPL + CFBundleName + My App + CFBundleExecutable + app + CFBundleIdentifier + com.wails.app + CFBundleVersion + v1.0.0 + CFBundleGetInfoString + The ultimate thing + CFBundleShortVersionString + v1 + CFBundleIconFile + icons + LSMinimumSystemVersion + 10.13.0 + NSHighResolutionCapable + true + NSHumanReadableCopyright + (c) Me + + \ No newline at end of file diff --git a/v3/examples/build/buildtest.app/Contents/Resources/icons.icns b/v3/examples/build/buildtest.app/Contents/Resources/icons.icns new file mode 100644 index 0000000000000000000000000000000000000000..1b5bd4c86c4533471d6044c5edc0c8c86b87e612 GIT binary patch literal 356592 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 z˵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 -`D^0*p}lTwGQ~7 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 literal 0 HcmV?d00001 diff --git a/v3/examples/build/main.go b/v3/examples/build/main.go new file mode 100755 index 00000000..b8092bcf --- /dev/null +++ b/v3/examples/build/main.go @@ -0,0 +1,275 @@ +package main + +import ( + _ "embed" + "fmt" + "log" + "math/rand" + "runtime" + "strconv" + "time" + + "github.com/wailsapp/wails/v3/pkg/options" + + "github.com/wailsapp/wails/v3/pkg/events" + + "github.com/wailsapp/wails/v3/pkg/application" +) + +func main() { + app := application.New(options.Application{ + Name: "WebviewWindow Demo", + Description: "A demo of the WebviewWindow API", + Mac: options.Mac{ + ApplicationShouldTerminateAfterLastWindowClosed: true, + }, + }) + app.On(events.Mac.ApplicationDidFinishLaunching, func() { + log.Println("ApplicationDidFinishLaunching") + }) + + currentWindow := func(fn func(window *application.WebviewWindow)) { + if app.CurrentWindow() != nil { + fn(app.CurrentWindow()) + } else { + println("Current WebviewWindow is nil") + } + } + + // Create a custom menu + menu := app.NewMenu() + menu.AddRole(application.AppMenu) + + windowCounter := 1 + + // Let's make a "Demo" menu + myMenu := menu.AddSubmenu("New") + + myMenu.Add("New WebviewWindow"). + SetAccelerator("CmdOrCtrl+N"). + OnClick(func(ctx *application.Context) { + app.NewWebviewWindow(). + SetTitle("WebviewWindow "+strconv.Itoa(windowCounter)). + SetPosition(rand.Intn(1000), rand.Intn(800)). + SetURL("https://wails.io"). + Show() + windowCounter++ + }) + myMenu.Add("New Frameless WebviewWindow"). + SetAccelerator("CmdOrCtrl+F"). + OnClick(func(ctx *application.Context) { + app.NewWebviewWindow(). + SetTitle("WebviewWindow "+strconv.Itoa(windowCounter)). + SetPosition(rand.Intn(1000), rand.Intn(800)). + SetURL("https://wails.io"). + SetFrameless(true). + Show() + windowCounter++ + }) + if runtime.GOOS == "darwin" { + myMenu.Add("New WebviewWindow (TitleBarHiddenInset)"). + OnClick(func(ctx *application.Context) { + app.NewWebviewWindowWithOptions(&options.WebviewWindow{ + Mac: options.MacWindow{ + TitleBar: options.TitleBarHiddenInset, + InvisibleTitleBarHeight: 25, + }, + }). + SetTitle("WebviewWindow "+strconv.Itoa(windowCounter)). + SetPosition(rand.Intn(1000), rand.Intn(800)). + SetHTML("

A TitleBarHiddenInset WebviewWindow example

"). + Show() + windowCounter++ + }) + myMenu.Add("New WebviewWindow (TitleBarHiddenInsetUnified)"). + OnClick(func(ctx *application.Context) { + app.NewWebviewWindowWithOptions(&options.WebviewWindow{ + Mac: options.MacWindow{ + TitleBar: options.TitleBarHiddenInsetUnified, + InvisibleTitleBarHeight: 50, + }, + }). + SetTitle("WebviewWindow "+strconv.Itoa(windowCounter)). + SetPosition(rand.Intn(1000), rand.Intn(800)). + SetHTML("

A TitleBarHiddenInsetUnified WebviewWindow example

"). + Show() + windowCounter++ + }) + myMenu.Add("New WebviewWindow (TitleBarHidden)"). + OnClick(func(ctx *application.Context) { + app.NewWebviewWindowWithOptions(&options.WebviewWindow{ + Mac: options.MacWindow{ + TitleBar: options.TitleBarHidden, + InvisibleTitleBarHeight: 25, + }, + }). + SetTitle("WebviewWindow "+strconv.Itoa(windowCounter)). + SetPosition(rand.Intn(1000), rand.Intn(800)). + SetHTML("

A TitleBarHidden WebviewWindow example

"). + Show() + windowCounter++ + }) + } + + sizeMenu := menu.AddSubmenu("Size") + sizeMenu.Add("Set Size (800,600)").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetSize(800, 600) + }) + }) + + sizeMenu.Add("Set Size (Random)").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetSize(rand.Intn(800)+200, rand.Intn(600)+200) + }) + }) + sizeMenu.Add("Set Min Size (200,200)").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetMinSize(200, 200) + }) + }) + sizeMenu.Add("Set Max Size (600,600)").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetFullscreenButtonEnabled(false) + w.SetMaxSize(600, 600) + }) + }) + sizeMenu.Add("Get Current WebviewWindow Size").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + width, height := w.Size() + app.InfoDialog().SetTitle("Current WebviewWindow Size").SetMessage("Width: " + strconv.Itoa(width) + " Height: " + strconv.Itoa(height)).Show() + }) + }) + + sizeMenu.Add("Reset Min Size").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetMinSize(0, 0) + }) + }) + + sizeMenu.Add("Reset Max Size").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetMaxSize(0, 0) + w.SetFullscreenButtonEnabled(true) + }) + }) + positionMenu := menu.AddSubmenu("Position") + positionMenu.Add("Set Position (0,0)").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetPosition(0, 0) + }) + }) + positionMenu.Add("Set Position (Random)").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetPosition(rand.Intn(1000), rand.Intn(800)) + }) + }) + + positionMenu.Add("Get Position").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + x, y := w.Position() + app.InfoDialog().SetTitle("Current WebviewWindow Position").SetMessage("X: " + strconv.Itoa(x) + " Y: " + strconv.Itoa(y)).Show() + }) + }) + + positionMenu.Add("Center").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.Center() + }) + }) + stateMenu := menu.AddSubmenu("State") + stateMenu.Add("Minimise (for 2 secs)").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.Minimise() + time.Sleep(2 * time.Second) + w.Restore() + }) + }) + stateMenu.Add("Maximise").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.Maximise() + }) + }) + stateMenu.Add("Fullscreen").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.Fullscreen() + }) + }) + stateMenu.Add("UnFullscreen").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.UnFullscreen() + }) + }) + stateMenu.Add("Restore").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.Restore() + }) + }) + stateMenu.Add("Hide (for 2 seconds)").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.Hide() + time.Sleep(2 * time.Second) + w.Show() + }) + }) + stateMenu.Add("Always on Top").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetAlwaysOnTop(true) + }) + }) + stateMenu.Add("Not always on Top").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetAlwaysOnTop(false) + }) + }) + stateMenu.Add("Google.com").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetURL("https://google.com") + }) + }) + stateMenu.Add("wails.io").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetURL("https://wails.io") + }) + }) + stateMenu.Add("Get Primary Screen").OnClick(func(ctx *application.Context) { + screen, err := app.GetPrimaryScreen() + if err != nil { + app.ErrorDialog().SetTitle("Error").SetMessage(err.Error()).Show() + return + } + msg := fmt.Sprintf("Screen: %+v", screen) + app.InfoDialog().SetTitle("Primary Screen").SetMessage(msg).Show() + }) + stateMenu.Add("Get Screens").OnClick(func(ctx *application.Context) { + screens, err := app.GetScreens() + if err != nil { + app.ErrorDialog().SetTitle("Error").SetMessage(err.Error()).Show() + return + } + for _, screen := range screens { + msg := fmt.Sprintf("Screen: %+v", screen) + app.InfoDialog().SetTitle(fmt.Sprintf("Screen %s", screen.ID)).SetMessage(msg).Show() + } + }) + stateMenu.Add("Get Screen for WebviewWindow").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + screen, err := w.GetScreen() + if err != nil { + app.ErrorDialog().SetTitle("Error").SetMessage(err.Error()).Show() + return + } + msg := fmt.Sprintf("Screen: %+v", screen) + app.InfoDialog().SetTitle(fmt.Sprintf("Screen %s", screen.ID)).SetMessage(msg).Show() + }) + }) + app.NewWebviewWindow() + + app.SetMenu(menu) + err := app.Run() + + if err != nil { + log.Fatal(err) + } + +} diff --git a/v3/examples/clipboard/main.go b/v3/examples/clipboard/main.go new file mode 100644 index 00000000..bb2740ca --- /dev/null +++ b/v3/examples/clipboard/main.go @@ -0,0 +1,71 @@ +package main + +import ( + _ "embed" + "log" + "time" + + "github.com/wailsapp/wails/v3/pkg/options" + + "github.com/wailsapp/wails/v3/pkg/application" +) + +func main() { + + app := application.New(options.Application{ + Name: "Clipboard Demo", + Description: "A demo of the clipboard API", + Mac: options.Mac{ + ApplicationShouldTerminateAfterLastWindowClosed: true, + }, + }) + + // Create a custom menu + menu := app.NewMenu() + menu.AddRole(application.AppMenu) + + setClipboardMenu := menu.AddSubmenu("Set Clipboard") + setClipboardMenu.Add("Set Text 'Hello'").OnClick(func(ctx *application.Context) { + success := app.Clipboard().SetText("Hello") + if !success { + app.InfoDialog().SetMessage("Failed to set clipboard text").Show() + } + }) + setClipboardMenu.Add("Set Text 'World'").OnClick(func(ctx *application.Context) { + success := app.Clipboard().SetText("World") + if !success { + app.InfoDialog().SetMessage("Failed to set clipboard text").Show() + } + }) + setClipboardMenu.Add("Set Text (current time)").OnClick(func(ctx *application.Context) { + success := app.Clipboard().SetText(time.Now().String()) + if !success { + app.InfoDialog().SetMessage("Failed to set clipboard text").Show() + } + }) + getClipboardMenu := menu.AddSubmenu("Get Clipboard") + getClipboardMenu.Add("Get Text").OnClick(func(ctx *application.Context) { + result := app.Clipboard().Text() + app.InfoDialog().SetMessage("Got:\n\n" + result).Show() + }) + + clearClipboardMenu := menu.AddSubmenu("Clear Clipboard") + clearClipboardMenu.Add("Clear Text").OnClick(func(ctx *application.Context) { + success := app.Clipboard().SetText("") + if success { + app.InfoDialog().SetMessage("Clipboard text cleared").Show() + } else { + app.InfoDialog().SetMessage("Clipboard text not cleared").Show() + } + }) + + app.SetMenu(menu) + + app.NewWebviewWindow() + + err := app.Run() + + if err != nil { + log.Fatal(err.Error()) + } +} diff --git a/v3/examples/dialogs/main.go b/v3/examples/dialogs/main.go new file mode 100644 index 00000000..4ae46a23 --- /dev/null +++ b/v3/examples/dialogs/main.go @@ -0,0 +1,335 @@ +package main + +import ( + _ "embed" + "log" + "os" + "runtime" + "strings" + + "github.com/wailsapp/wails/v3/pkg/options" + + "github.com/wailsapp/wails/v3/pkg/application" +) + +func main() { + + app := application.New(options.Application{ + Name: "Dialogs Demo", + Description: "A demo of the dialogs API", + Mac: options.Mac{ + ApplicationShouldTerminateAfterLastWindowClosed: true, + }, + }) + // Create a custom menu + menu := app.NewMenu() + menu.AddRole(application.AppMenu) + + // Let's make a "Demo" menu + infoMenu := menu.AddSubmenu("Info") + infoMenu.Add("Info").OnClick(func(ctx *application.Context) { + dialog := app.InfoDialog() + dialog.SetTitle("Custom Title") + dialog.SetMessage("This is a custom message") + dialog.Show() + }) + infoMenu.Add("Info (Title only)").OnClick(func(ctx *application.Context) { + dialog := app.InfoDialog() + dialog.SetTitle("Custom Title") + dialog.Show() + }) + infoMenu.Add("Info (Message only)").OnClick(func(ctx *application.Context) { + dialog := app.InfoDialog() + dialog.SetMessage("This is a custom message") + dialog.Show() + }) + infoMenu.Add("Info (Custom Icon)").OnClick(func(ctx *application.Context) { + dialog := app.InfoDialog() + dialog.SetTitle("Custom Icon Example") + dialog.SetMessage("Using a custom icon") + dialog.SetIcon(application.DefaultApplicationIcon) + dialog.Show() + }) + + questionMenu := menu.AddSubmenu("Question") + questionMenu.Add("Question (No default)").OnClick(func(ctx *application.Context) { + dialog := app.QuestionDialog() + dialog.SetMessage("No default button") + dialog.AddButton("Yes") + dialog.AddButton("No") + dialog.Show() + }) + questionMenu.Add("Question (With Default)").OnClick(func(ctx *application.Context) { + dialog := app.QuestionDialog() + dialog.SetTitle("Quit") + dialog.SetMessage("You have unsaved work. Are you sure you want to quit?") + dialog.AddButton("Yes").OnClick(func() { + app.Quit() + }) + no := dialog.AddButton("No") + dialog.SetDefaultButton(no) + dialog.Show() + }) + questionMenu.Add("Question (With Cancel)").OnClick(func(ctx *application.Context) { + dialog := app.QuestionDialog(). + SetTitle("Update"). + SetMessage("The cancel button is selected when pressing escape") + download := dialog.AddButton("📥 Download") + download.OnClick(func() { + app.InfoDialog().SetMessage("Downloading...").Show() + }) + no := dialog.AddButton("Cancel") + dialog.SetDefaultButton(download) + dialog.SetCancelButton(no) + dialog.Show() + }) + questionMenu.Add("Question (Custom Icon)").OnClick(func(ctx *application.Context) { + dialog := app.QuestionDialog() + dialog.SetTitle("Custom Icon Example") + dialog.SetMessage("Using a custom icon") + dialog.SetIcon(application.WailsLogoWhiteTransparent) + dialog.SetDefaultButton(dialog.AddButton("I like it!")) + dialog.AddButton("Not so keen...") + dialog.Show() + }) + + warningMenu := menu.AddSubmenu("Warning") + warningMenu.Add("Warning").OnClick(func(ctx *application.Context) { + dialog := app.WarningDialog() + dialog.SetTitle("Custom Title") + dialog.SetMessage("This is a custom message") + dialog.Show() + }) + warningMenu.Add("Warning (Title only)").OnClick(func(ctx *application.Context) { + dialog := app.WarningDialog() + dialog.SetTitle("Custom Title") + dialog.Show() + }) + warningMenu.Add("Warning (Message only)").OnClick(func(ctx *application.Context) { + dialog := app.WarningDialog() + dialog.SetMessage("This is a custom message") + dialog.Show() + }) + warningMenu.Add("Warning (Custom Icon)").OnClick(func(ctx *application.Context) { + dialog := app.WarningDialog() + dialog.SetTitle("Custom Icon Example") + dialog.SetMessage("Using a custom icon") + dialog.SetIcon(application.DefaultApplicationIcon) + dialog.Show() + }) + + errorMenu := menu.AddSubmenu("Error") + errorMenu.Add("Error").OnClick(func(ctx *application.Context) { + dialog := app.ErrorDialog() + dialog.SetTitle("Ooops") + dialog.SetMessage("I accidentally the whole of Twitter") + dialog.Show() + }) + errorMenu.Add("Error (Title Only)").OnClick(func(ctx *application.Context) { + dialog := app.ErrorDialog() + dialog.SetTitle("Custom Title") + dialog.Show() + }) + errorMenu.Add("Error (Custom Message)").OnClick(func(ctx *application.Context) { + dialog := app.ErrorDialog() + dialog.SetMessage("This is a custom message") + dialog.Show() + }) + errorMenu.Add("Error (Custom Icon)").OnClick(func(ctx *application.Context) { + dialog := app.ErrorDialog() + dialog.SetTitle("Custom Icon Example") + dialog.SetMessage("Using a custom icon") + dialog.SetIcon(application.WailsLogoWhite) + dialog.Show() + }) + + openMenu := menu.AddSubmenu("Open") + openMenu.Add("Open File").OnClick(func(ctx *application.Context) { + result, _ := app.OpenFileDialog(). + CanChooseFiles(true). + PromptForSingleSelection() + if result != "" { + app.InfoDialog().SetMessage(result).Show() + } else { + app.InfoDialog().SetMessage("No file selected").Show() + } + }) + openMenu.Add("Open File (Show Hidden Files)").OnClick(func(ctx *application.Context) { + result, _ := app.OpenFileDialog(). + CanChooseFiles(true). + CanCreateDirectories(true). + ShowHiddenFiles(true). + PromptForSingleSelection() + if result != "" { + app.InfoDialog().SetMessage(result).Show() + } else { + app.InfoDialog().SetMessage("No file selected").Show() + } + }) + openMenu.Add("Open File (Attach to window)").OnClick(func(ctx *application.Context) { + result, _ := app.OpenFileDialog(). + CanChooseFiles(true). + CanCreateDirectories(true). + ShowHiddenFiles(true). + AttachToWindow(app.CurrentWindow()). + PromptForSingleSelection() + if result != "" { + app.InfoDialog().SetMessage(result).Show() + } else { + app.InfoDialog().SetMessage("No file selected").Show() + } + }) + openMenu.Add("Open Multiple Files (Show Hidden Files)").OnClick(func(ctx *application.Context) { + result, _ := app.OpenFileDialog(). + CanChooseFiles(true). + CanCreateDirectories(true). + ShowHiddenFiles(true). + PromptForMultipleSelection() + if len(result) > 0 { + app.InfoDialog().SetMessage(strings.Join(result, ",")).Show() + } else { + app.InfoDialog().SetMessage("No file selected").Show() + } + }) + openMenu.Add("Open Directory").OnClick(func(ctx *application.Context) { + result, _ := app.OpenFileDialog(). + CanChooseDirectories(true). + PromptForSingleSelection() + if result != "" { + app.InfoDialog().SetMessage(result).Show() + } else { + app.InfoDialog().SetMessage("No directory selected").Show() + } + }) + openMenu.Add("Open Directory (Create Directories)").OnClick(func(ctx *application.Context) { + result, _ := app.OpenFileDialog(). + CanChooseDirectories(true). + CanCreateDirectories(true). + PromptForSingleSelection() + if result != "" { + app.InfoDialog().SetMessage(result).Show() + } else { + app.InfoDialog().SetMessage("No directory selected").Show() + } + }) + openMenu.Add("Open Directory (Resolves Aliases)").OnClick(func(ctx *application.Context) { + result, _ := app.OpenFileDialog(). + CanChooseDirectories(true). + CanCreateDirectories(true). + ResolvesAliases(true). + PromptForSingleSelection() + if result != "" { + app.InfoDialog().SetMessage(result).Show() + } else { + app.InfoDialog().SetMessage("No directory selected").Show() + } + }) + openMenu.Add("Open File/Directory (Set Title)").OnClick(func(ctx *application.Context) { + dialog := app.OpenFileDialog(). + CanChooseDirectories(true). + CanCreateDirectories(true). + ResolvesAliases(true) + if runtime.GOOS == "darwin" { + dialog.SetMessage("Select a file/directory") + } else { + dialog.SetTitle("Select a file/directory") + } + + result, _ := dialog.PromptForSingleSelection() + if result != "" { + app.InfoDialog().SetMessage(result).Show() + } else { + app.InfoDialog().SetMessage("No file/directory selected").Show() + } + }) + openMenu.Add("Open (Full Example)").OnClick(func(ctx *application.Context) { + cwd, _ := os.Getwd() + dialog := app.OpenFileDialog(). + SetTitle("Select a file"). + SetMessage("Select a file to open"). + SetButtonText("Let's do this!"). + SetDirectory(cwd). + CanCreateDirectories(true). + ResolvesAliases(true). + AllowsOtherFileTypes(true). + TreatsFilePackagesAsDirectories(true). + ShowHiddenFiles(true). + CanSelectHiddenExtension(true). + AddFilter("Text Files", "*.txt; *.md"). + AddFilter("Video Files", "*.mov; *.mp4; *.avi") + + if runtime.GOOS == "darwin" { + dialog.SetMessage("Select a file") + } else { + dialog.SetTitle("Select a file") + } + + result, _ := dialog.PromptForSingleSelection() + if result != "" { + app.InfoDialog().SetMessage(result).Show() + } else { + app.InfoDialog().SetMessage("No file selected").Show() + } + }) + + saveMenu := menu.AddSubmenu("Save") + saveMenu.Add("Select File (Defaults)").OnClick(func(ctx *application.Context) { + result, _ := app.SaveFileDialog(). + PromptForSingleSelection() + if result != "" { + app.InfoDialog().SetMessage(result).Show() + } + }) + saveMenu.Add("Select File (Attach To WebviewWindow)").OnClick(func(ctx *application.Context) { + result, _ := app.SaveFileDialog(). + AttachToWindow(app.CurrentWindow()). + PromptForSingleSelection() + if result != "" { + app.InfoDialog().SetMessage(result).Show() + } + }) + saveMenu.Add("Select File (Show Hidden Files)").OnClick(func(ctx *application.Context) { + result, _ := app.SaveFileDialog(). + ShowHiddenFiles(true). + PromptForSingleSelection() + if result != "" { + app.InfoDialog().SetMessage(result).Show() + } + }) + saveMenu.Add("Select File (Cannot Create Directories)").OnClick(func(ctx *application.Context) { + result, _ := app.SaveFileDialog(). + CanCreateDirectories(false). + PromptForSingleSelection() + if result != "" { + app.InfoDialog().SetMessage(result).Show() + } + }) + saveMenu.Add("Select File (Full Example)").OnClick(func(ctx *application.Context) { + result, _ := app.SaveFileDialog(). + CanCreateDirectories(false). + ShowHiddenFiles(true). + SetMessage("Select a file"). + SetDirectory("/Applications"). + SetButtonText("Let's do this!"). + SetFilename("README.md"). + HideExtension(true). + AllowsOtherFileTypes(true). + TreatsFilePackagesAsDirectories(true). + ShowHiddenFiles(true). + PromptForSingleSelection() + if result != "" { + app.InfoDialog().SetMessage(result).Show() + } + }) + + app.SetMenu(menu) + + app.NewWebviewWindow() + app.NewWebviewWindow() + + err := app.Run() + + if err != nil { + log.Fatal(err.Error()) + } +} diff --git a/v3/examples/kitchensink/main.go b/v3/examples/kitchensink/main.go new file mode 100644 index 00000000..851e4b78 --- /dev/null +++ b/v3/examples/kitchensink/main.go @@ -0,0 +1,225 @@ +package main + +import ( + _ "embed" + "log" + "runtime" + "sync" + "time" + + "github.com/wailsapp/wails/v3/pkg/application" + "github.com/wailsapp/wails/v3/pkg/options" +) + +func main() { + app := application.New(options.Application{ + Name: "Menu Demo", + Description: "A demo of the menu system", + Mac: options.Mac{ + ApplicationShouldTerminateAfterLastWindowClosed: true, + }, + }) + /* + app.On(events.Mac.ApplicationDidFinishLaunching, func() { + println("ApplicationDidFinishLaunching") + }) + app.On(events.Mac.ApplicationWillTerminate, func() { + println("ApplicationWillTerminate") + }) + app.On(events.Mac.ApplicationDidBecomeActive, func() { + println("ApplicationDidBecomeActive") + }) + app.On(events.Mac.ApplicationDidChangeBackingProperties, func() { + println("ApplicationDidChangeBackingProperties") + }) + + app.On(events.Mac.ApplicationDidChangeEffectiveAppearance, func() { + println("ApplicationDidChangeEffectiveAppearance") + }) + app.On(events.Mac.ApplicationDidHide, func() { + println("ApplicationDidHide") + }) + + */ + + menuCallback := func(ctx *application.Context) { + menuItem := ctx.ClickedMenuItem() + menuItem.SetLabel("Clicked!") + } + + radioCallback := func(ctx *application.Context) { + menuItem := ctx.ClickedMenuItem() + menuItem.SetLabel(menuItem.Label() + "!") + } + + myMenu := app.NewMenu() + file1 := myMenu.Add("File") + file1.SetTooltip("Create New Tray Menu") + file1.OnClick(menuCallback) + myMenu.Add("Create New Tray Menu"). + SetAccelerator("CmdOrCtrl+N"). + SetTooltip("ROFLCOPTER!!!!"). + OnClick(func(ctx *application.Context) { + mySystray := app.NewSystemTray() + mySystray.SetLabel("Wails") + if runtime.GOOS == "darwin" { + mySystray.SetTemplateIcon(application.DefaultMacTemplateIcon) + } else { + mySystray.SetIcon(application.DefaultApplicationIcon) + } + myMenu := app.NewMenu() + myMenu.Add("Item 1") + myMenu.AddSeparator() + myMenu.Add("Kill this menu").OnClick(func(ctx *application.Context) { + mySystray.Destroy() + }) + mySystray.SetMenu(myMenu) + + }) + myMenu.Add("Not Enabled").SetEnabled(false) + myMenu.AddSeparator() + myMenu.AddCheckbox("My checkbox", true).OnClick(menuCallback) + myMenu.AddSeparator() + myMenu.AddRadio("Radio 1", true).OnClick(radioCallback) + myMenu.AddRadio("Radio 2", false).OnClick(radioCallback) + myMenu.AddRadio("Radio 3", false).OnClick(radioCallback) + + submenu := myMenu.AddSubmenu("Submenu") + submenu.Add("Submenu item 1").OnClick(menuCallback) + submenu.Add("Submenu item 2").OnClick(menuCallback) + submenu.Add("Submenu item 3").OnClick(menuCallback) + myMenu.AddSeparator() + file4 := myMenu.Add("File 4").OnClick(func(*application.Context) { + println("File 4 clicked") + }) + + myMenu.Add("Click to toggle").OnClick(func(*application.Context) { + enabled := file4.Enabled() + println("Enabled: ", enabled) + file4.SetEnabled(!enabled) + }) + myMenu.Add("File 5").OnClick(menuCallback) + + mySystray := app.NewSystemTray() + mySystray.SetLabel("Wails is awesome") + if runtime.GOOS == "darwin" { + mySystray.SetTemplateIcon(application.DefaultMacTemplateIcon) + } else { + mySystray.SetIcon(application.DefaultApplicationIcon) + } + mySystray.SetMenu(myMenu) + mySystray.SetIconPosition(application.NSImageLeading) + + myWindow := app.NewWebviewWindowWithOptions(&options.WebviewWindow{ + Title: "Kitchen Sink", + Width: 600, + Height: 400, + AlwaysOnTop: true, + DisableResize: false, + BackgroundColour: &options.RGBA{ + Red: 255, + Green: 255, + Blue: 255, + Alpha: 30, + }, + StartState: options.WindowStateMaximised, + Mac: options.MacWindow{ + Backdrop: options.MacBackdropTranslucent, + Appearance: options.NSAppearanceNameDarkAqua, + }, + }) + /* + myWindow.On(events.Mac.WindowWillClose, func() { + println(myWindow.ID(), "WindowWillClose") + }) + myWindow.On(events.Mac.WindowDidResize, func() { + //w, h := myWindow.Size() + //println(myWindow.ID(), "WindowDidResize", w, h) + }) + myWindow.On(events.Mac.WindowDidMove, func() { + //x, y := myWindow.Position() + //println(myWindow.ID(), "WindowDidMove", x, y) + }) + myWindow.On(events.Mac.WindowDidMiniaturize, func() { + println(myWindow.ID(), "WindowDidMiniaturize") + }) + myWindow.On(events.Mac.WindowDidDeminiaturize, func() { + println(myWindow.ID(), "WindowDidDeminiaturize") + }) + myWindow.On(events.Mac.WindowDidBecomeKey, func() { + println(myWindow.ID(), "WindowDidBecomeKey") + }) + myWindow.On(events.Mac.WindowDidResignKey, func() { + println(myWindow.ID(), "WindowDidResignKey") + }) + myWindow.On(events.Mac.WindowDidBecomeMain, func() { + println(myWindow.ID(), "WindowDidBecomeMain") + }) + myWindow.On(events.Mac.WindowDidResignMain, func() { + println(myWindow.ID(), "WindowDidResignMain") + }) + myWindow.On(events.Mac.WindowWillEnterFullScreen, func() { + println(myWindow.ID(), "WindowWillEnterFullScreen") + }) + myWindow.On(events.Mac.WindowDidEnterFullScreen, func() { + println(myWindow.ID(), "WindowDidEnterFullScreen") + }) + myWindow.On(events.Mac.WindowWillExitFullScreen, func() { + println(myWindow.ID(), "WindowWillExitFullScreen") + }) + myWindow.On(events.Mac.WindowDidExitFullScreen, func() { + println(myWindow.ID(), "WindowDidExitFullScreen") + }) + myWindow.On(events.Mac.WindowWillEnterVersionBrowser, func() { + println(myWindow.ID(), "WindowWillEnterVersionBrowser") + }) + myWindow.On(events.Mac.WindowDidEnterVersionBrowser, func() { + println(myWindow.ID(), "WindowDidEnterVersionBrowser") + }) + myWindow.On(events.Mac.WindowWillExitVersionBrowser, func() { + println(myWindow.ID(), "WindowWillExitVersionBrowser") + }) + myWindow.On(events.Mac.WindowDidExitVersionBrowser, func() { + println(myWindow.ID(), "WindowDidExitVersionBrowser") + }) + */ + var myWindow2 *application.WebviewWindow + var myWindow2Lock sync.RWMutex + myWindow2 = app.NewWebviewWindowWithOptions(&options.WebviewWindow{ + Title: "#2", + Width: 1024, + Height: 768, + AlwaysOnTop: false, + URL: "https://google.com", + Mac: options.MacWindow{ + Backdrop: options.MacBackdropTranslucent, + }, + }) + //myWindow2.On(events.Mac.WindowDidMove, func() { + // myWindow2Lock.RLock() + // x, y := myWindow2.Position() + // println(myWindow2.ID(), "WindowDidMove: ", x, y) + // myWindow2Lock.RUnlock() + //}) + // + + go func() { + time.Sleep(5 * time.Second) + myWindow2Lock.RLock() + myWindow.SetTitle("Wooooo") + myWindow.SetAlwaysOnTop(true) + myWindow2.SetTitle("OMG") + myWindow2.SetURL("https://wails.io") + myWindow.SetMinSize(600, 600) + myWindow.SetMaxSize(650, 650) + myWindow.Center() + myWindow2Lock.RUnlock() + + }() + + err := app.Run() + + if err != nil { + log.Fatal(err) + } +} diff --git a/v3/examples/menu/main.go b/v3/examples/menu/main.go new file mode 100644 index 00000000..0310f4fe --- /dev/null +++ b/v3/examples/menu/main.go @@ -0,0 +1,97 @@ +package main + +import ( + _ "embed" + "log" + + "github.com/wailsapp/wails/v3/pkg/options" + + "github.com/wailsapp/wails/v3/pkg/application" +) + +func main() { + + app := application.New(options.Application{ + Name: "Menu Demo", + Description: "A demo of the menu system", + Mac: options.Mac{ + ApplicationShouldTerminateAfterLastWindowClosed: true, + }, + }) + + // Create a custom menu + menu := app.NewMenu() + menu.AddRole(application.AppMenu) + + // Let's make a "Demo" menu + myMenu := menu.AddSubmenu("Demo") + + // Disabled menu item + myMenu.Add("Not Enabled").SetEnabled(false) + + // Click callbacks + myMenu.Add("Click Me!").OnClick(func(ctx *application.Context) { + ctx.ClickedMenuItem().SetLabel("Thanks mate!") + }) + + // You can control the current window from the menu + myMenu.Add("Lock WebviewWindow Resize").OnClick(func(ctx *application.Context) { + if app.CurrentWindow().Resizable() { + app.CurrentWindow().SetResizable(false) + ctx.ClickedMenuItem().SetLabel("Unlock WebviewWindow Resize") + } else { + app.CurrentWindow().SetResizable(true) + ctx.ClickedMenuItem().SetLabel("Lock WebviewWindow Resize") + } + }) + + myMenu.AddSeparator() + + // Checkboxes will tell you their new state so you don't need to track it + myMenu.AddCheckbox("My checkbox", true).OnClick(func(context *application.Context) { + println("Clicked checkbox. Checked:", context.ClickedMenuItem().Checked()) + }) + myMenu.AddSeparator() + + // Callbacks can be shared. This is useful for radio groups + radioCallback := func(ctx *application.Context) { + menuItem := ctx.ClickedMenuItem() + menuItem.SetLabel(menuItem.Label() + "!") + } + + // Radio groups are created implicitly by placing radio items next to each other in a menu + myMenu.AddRadio("Radio 1", true).OnClick(radioCallback) + myMenu.AddRadio("Radio 2", false).OnClick(radioCallback) + myMenu.AddRadio("Radio 3", false).OnClick(radioCallback) + + // Submenus are also supported + submenu := myMenu.AddSubmenu("Submenu") + submenu.Add("Submenu item 1") + submenu.Add("Submenu item 2") + submenu.Add("Submenu item 3") + + myMenu.AddSeparator() + + beatles := myMenu.Add("Hello").OnClick(func(*application.Context) { + println("The beatles would be proud") + }) + myMenu.Add("Toggle the menuitem above").OnClick(func(*application.Context) { + if beatles.Enabled() { + beatles.SetEnabled(false) + beatles.SetLabel("Goodbye") + } else { + beatles.SetEnabled(true) + beatles.SetLabel("Hello") + } + }) + + app.SetMenu(menu) + + app.NewWebviewWindow() + + err := app.Run() + + if err != nil { + log.Fatal(err.Error()) + } +} diff --git a/v3/examples/plain/main.go b/v3/examples/plain/main.go new file mode 100644 index 00000000..1257ee2a --- /dev/null +++ b/v3/examples/plain/main.go @@ -0,0 +1,45 @@ +package main + +import ( + _ "embed" + "log" + "net/http" + + "github.com/wailsapp/wails/v3/pkg/options" + + "github.com/wailsapp/wails/v3/pkg/application" +) + +func main() { + app := application.New(options.Application{ + Name: "Plain", + Description: "A demo of using raw HTML & CSS", + Mac: options.Mac{ + ApplicationShouldTerminateAfterLastWindowClosed: true, + }, + }) + // Create window + app.NewWebviewWindowWithOptions(&options.WebviewWindow{ + Title: "Plain Bundle", + CSS: `body { background-color: rgba(255, 255, 255, 0); } .main { color: white; margin: 20%; }`, + Mac: options.MacWindow{ + InvisibleTitleBarHeight: 50, + Backdrop: options.MacBackdropTranslucent, + TitleBar: options.TitleBarHiddenInset, + }, + + URL: "/", + Assets: options.Assets{ + Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + w.Write([]byte(`Plain Bundle

Plain Bundle

This is a plain bundle. It has no frontend code but this was Served by the AssetServer's Handler

`)) + }), + }, + }) + + err := app.Run() + + if err != nil { + log.Fatal(err) + } +} diff --git a/v3/examples/systray/main.go b/v3/examples/systray/main.go new file mode 100644 index 00000000..054b2a9b --- /dev/null +++ b/v3/examples/systray/main.go @@ -0,0 +1,47 @@ +package main + +import ( + _ "embed" + "log" + "runtime" + + "github.com/wailsapp/wails/v3/pkg/options" + + "github.com/wailsapp/wails/v3/pkg/application" +) + +func main() { + app := application.New(options.Application{ + Name: "Systray Demo", + Description: "A demo of the Systray API", + Mac: options.Mac{ + ActivationPolicy: options.ActivationPolicyAccessory, + }, + }) + + systemTray := app.NewSystemTray() + if runtime.GOOS == "darwin" { + systemTray.SetIcon(application.DefaultMacTemplateIcon) + } + + myMenu := app.NewMenu() + myMenu.Add("Hello World!").OnClick(func(ctx *application.Context) { + app.InfoDialog().SetTitle("Hello World!").SetMessage("Hello World!").Show() + }) + subMenu := myMenu.AddSubmenu("Submenu") + subMenu.Add("Click me!").OnClick(func(ctx *application.Context) { + ctx.ClickedMenuItem().SetLabel("Clicked!") + }) + myMenu.AddSeparator() + myMenu.Add("Quit").OnClick(func(ctx *application.Context) { + app.Quit() + }) + + systemTray.SetMenu(myMenu) + + err := app.Run() + + if err != nil { + log.Fatal(err) + } +} diff --git a/v3/examples/window/main.go b/v3/examples/window/main.go new file mode 100644 index 00000000..9d7a84a5 --- /dev/null +++ b/v3/examples/window/main.go @@ -0,0 +1,277 @@ +package main + +import ( + _ "embed" + "fmt" + "log" + "math/rand" + "runtime" + "strconv" + "time" + + "github.com/wailsapp/wails/v3/pkg/options" + + "github.com/wailsapp/wails/v3/pkg/events" + + "github.com/wailsapp/wails/v3/pkg/application" +) + +func main() { + app := application.New(options.Application{ + Name: "WebviewWindow Demo", + Description: "A demo of the WebviewWindow API", + Mac: options.Mac{ + ApplicationShouldTerminateAfterLastWindowClosed: true, + }, + }) + app.On(events.Mac.ApplicationDidFinishLaunching, func() { + log.Println("ApplicationDidFinishLaunching") + }) + + currentWindow := func(fn func(window *application.WebviewWindow)) { + if app.CurrentWindow() != nil { + fn(app.CurrentWindow()) + } else { + println("Current WebviewWindow is nil") + } + } + + // Create a custom menu + menu := app.NewMenu() + menu.AddRole(application.AppMenu) + + windowCounter := 1 + + // Let's make a "Demo" menu + myMenu := menu.AddSubmenu("New") + + myMenu.Add("New WebviewWindow"). + SetAccelerator("CmdOrCtrl+N"). + OnClick(func(ctx *application.Context) { + app.NewWebviewWindow(). + SetTitle("WebviewWindow "+strconv.Itoa(windowCounter)). + SetPosition(rand.Intn(1000), rand.Intn(800)). + SetURL("https://wails.io"). + Show() + windowCounter++ + }) + myMenu.Add("New Frameless WebviewWindow"). + SetAccelerator("CmdOrCtrl+F"). + OnClick(func(ctx *application.Context) { + app.NewWebviewWindowWithOptions(&options.WebviewWindow{ + X: rand.Intn(1000), + Y: rand.Intn(800), + Frameless: true, + Mac: options.MacWindow{ + InvisibleTitleBarHeight: 50, + }, + }).Show() + windowCounter++ + }) + if runtime.GOOS == "darwin" { + myMenu.Add("New WebviewWindow (TitleBarHiddenInset)"). + OnClick(func(ctx *application.Context) { + app.NewWebviewWindowWithOptions(&options.WebviewWindow{ + Mac: options.MacWindow{ + TitleBar: options.TitleBarHiddenInset, + InvisibleTitleBarHeight: 25, + }, + }). + SetTitle("WebviewWindow "+strconv.Itoa(windowCounter)). + SetPosition(rand.Intn(1000), rand.Intn(800)). + SetHTML("

A TitleBarHiddenInset WebviewWindow example

"). + Show() + windowCounter++ + }) + myMenu.Add("New WebviewWindow (TitleBarHiddenInsetUnified)"). + OnClick(func(ctx *application.Context) { + app.NewWebviewWindowWithOptions(&options.WebviewWindow{ + Mac: options.MacWindow{ + TitleBar: options.TitleBarHiddenInsetUnified, + InvisibleTitleBarHeight: 50, + }, + }). + SetTitle("WebviewWindow "+strconv.Itoa(windowCounter)). + SetPosition(rand.Intn(1000), rand.Intn(800)). + SetHTML("

A TitleBarHiddenInsetUnified WebviewWindow example

"). + Show() + windowCounter++ + }) + myMenu.Add("New WebviewWindow (TitleBarHidden)"). + OnClick(func(ctx *application.Context) { + app.NewWebviewWindowWithOptions(&options.WebviewWindow{ + Mac: options.MacWindow{ + TitleBar: options.TitleBarHidden, + InvisibleTitleBarHeight: 25, + }, + }). + SetTitle("WebviewWindow "+strconv.Itoa(windowCounter)). + SetPosition(rand.Intn(1000), rand.Intn(800)). + SetHTML("

A TitleBarHidden WebviewWindow example

"). + Show() + windowCounter++ + }) + } + + sizeMenu := menu.AddSubmenu("Size") + sizeMenu.Add("Set Size (800,600)").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetSize(800, 600) + }) + }) + + sizeMenu.Add("Set Size (Random)").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetSize(rand.Intn(800)+200, rand.Intn(600)+200) + }) + }) + sizeMenu.Add("Set Min Size (200,200)").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetMinSize(200, 200) + }) + }) + sizeMenu.Add("Set Max Size (600,600)").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetFullscreenButtonEnabled(false) + w.SetMaxSize(600, 600) + }) + }) + sizeMenu.Add("Get Current WebviewWindow Size").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + width, height := w.Size() + app.InfoDialog().SetTitle("Current WebviewWindow Size").SetMessage("Width: " + strconv.Itoa(width) + " Height: " + strconv.Itoa(height)).Show() + }) + }) + + sizeMenu.Add("Reset Min Size").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetMinSize(0, 0) + }) + }) + + sizeMenu.Add("Reset Max Size").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetMaxSize(0, 0) + w.SetFullscreenButtonEnabled(true) + }) + }) + positionMenu := menu.AddSubmenu("Position") + positionMenu.Add("Set Position (0,0)").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetPosition(0, 0) + }) + }) + positionMenu.Add("Set Position (Random)").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetPosition(rand.Intn(1000), rand.Intn(800)) + }) + }) + + positionMenu.Add("Get Position").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + x, y := w.Position() + app.InfoDialog().SetTitle("Current WebviewWindow Position").SetMessage("X: " + strconv.Itoa(x) + " Y: " + strconv.Itoa(y)).Show() + }) + }) + + positionMenu.Add("Center").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.Center() + }) + }) + stateMenu := menu.AddSubmenu("State") + stateMenu.Add("Minimise (for 2 secs)").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.Minimise() + time.Sleep(2 * time.Second) + w.Restore() + }) + }) + stateMenu.Add("Maximise").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.Maximise() + }) + }) + stateMenu.Add("Fullscreen").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.Fullscreen() + }) + }) + stateMenu.Add("UnFullscreen").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.UnFullscreen() + }) + }) + stateMenu.Add("Restore").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.Restore() + }) + }) + stateMenu.Add("Hide (for 2 seconds)").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.Hide() + time.Sleep(2 * time.Second) + w.Show() + }) + }) + stateMenu.Add("Always on Top").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetAlwaysOnTop(true) + }) + }) + stateMenu.Add("Not always on Top").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetAlwaysOnTop(false) + }) + }) + stateMenu.Add("Google.com").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetURL("https://google.com") + }) + }) + stateMenu.Add("wails.io").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + w.SetURL("https://wails.io") + }) + }) + stateMenu.Add("Get Primary Screen").OnClick(func(ctx *application.Context) { + screen, err := app.GetPrimaryScreen() + if err != nil { + app.ErrorDialog().SetTitle("Error").SetMessage(err.Error()).Show() + return + } + msg := fmt.Sprintf("Screen: %+v", screen) + app.InfoDialog().SetTitle("Primary Screen").SetMessage(msg).Show() + }) + stateMenu.Add("Get Screens").OnClick(func(ctx *application.Context) { + screens, err := app.GetScreens() + if err != nil { + app.ErrorDialog().SetTitle("Error").SetMessage(err.Error()).Show() + return + } + for _, screen := range screens { + msg := fmt.Sprintf("Screen: %+v", screen) + app.InfoDialog().SetTitle(fmt.Sprintf("Screen %s", screen.ID)).SetMessage(msg).Show() + } + }) + stateMenu.Add("Get Screen for WebviewWindow").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + screen, err := w.GetScreen() + if err != nil { + app.ErrorDialog().SetTitle("Error").SetMessage(err.Error()).Show() + return + } + msg := fmt.Sprintf("Screen: %+v", screen) + app.InfoDialog().SetTitle(fmt.Sprintf("Screen %s", screen.ID)).SetMessage(msg).Show() + }) + }) + app.NewWebviewWindow() + + app.SetMenu(menu) + err := app.Run() + + if err != nil { + log.Fatal(err) + } + +} diff --git a/v3/go.mod b/v3/go.mod new file mode 100644 index 00000000..416e36ff --- /dev/null +++ b/v3/go.mod @@ -0,0 +1,56 @@ +module github.com/wailsapp/wails/v3 + +go 1.19 + +require ( + github.com/go-task/task/v3 v3.19.1 + github.com/jackmordaunt/icns/v2 v2.2.1 + github.com/leaanthony/clir v1.5.0 + github.com/leaanthony/winicon v1.0.0 + github.com/pterm/pterm v0.12.51 + github.com/samber/lo v1.37.0 + github.com/stretchr/testify v1.8.1 + github.com/tc-hib/winres v0.1.6 + github.com/wailsapp/wails/v2 v2.3.2-0.20230117193915-45c3a501d9e6 + golang.org/x/tools v0.1.12 +) + +require ( + atomicgo.dev/cursor v0.1.1 // indirect + atomicgo.dev/keyboard v0.2.8 // indirect + github.com/containerd/console v1.0.3 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/fatih/color v1.13.0 // indirect + github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect + github.com/gookit/color v1.5.2 // indirect + github.com/imdario/mergo v0.3.12 // indirect + github.com/joho/godotenv v1.4.0 // indirect + github.com/leaanthony/slicer v1.5.0 // indirect + github.com/lithammer/fuzzysearch v1.1.5 // indirect + github.com/mattn/go-colorable v0.1.11 // indirect + github.com/mattn/go-isatty v0.0.14 // indirect + github.com/mattn/go-runewidth v0.0.14 // indirect + github.com/mattn/go-zglob v0.0.4 // indirect + github.com/mitchellh/hashstructure/v2 v2.0.2 // indirect + github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 // indirect + github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/radovskyb/watcher v1.0.7 // indirect + github.com/rivo/uniseg v0.2.0 // indirect + github.com/sajari/fuzzy v1.0.0 // indirect + github.com/wailsapp/mimetype v1.4.1 // indirect + github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 // indirect + golang.org/x/exp v0.0.0-20220930202632-ec3f01382ef9 // indirect + golang.org/x/image v0.0.0-20201208152932-35266b937fa6 // indirect + golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect + golang.org/x/net v0.0.0-20220722155237-a158d28d115b // indirect + golang.org/x/sync v0.1.0 // indirect + golang.org/x/sys v0.3.0 // indirect + golang.org/x/term v0.3.0 // indirect + golang.org/x/text v0.4.0 // indirect + gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + mvdan.cc/sh/v3 v3.6.0 // indirect +) + +replace github.com/go-task/task/v3 v3.19.1 => github.com/wailsapp/task/v3 v3.19.1 diff --git a/v3/go.sum b/v3/go.sum new file mode 100644 index 00000000..90fb6b9b --- /dev/null +++ b/v3/go.sum @@ -0,0 +1,179 @@ +atomicgo.dev/assert v0.0.2 h1:FiKeMiZSgRrZsPo9qn/7vmr7mCsh5SZyXY4YGYiYwrg= +atomicgo.dev/cursor v0.1.1 h1:0t9sxQomCTRh5ug+hAMCs59x/UmC9QL6Ci5uosINKD4= +atomicgo.dev/cursor v0.1.1/go.mod h1:Lr4ZJB3U7DfPPOkbH7/6TOtJ4vFGHlgj1nc+n900IpU= +atomicgo.dev/keyboard v0.2.8 h1:Di09BitwZgdTV1hPyX/b9Cqxi8HVuJQwWivnZUEqlj4= +atomicgo.dev/keyboard v0.2.8/go.mod h1:BC4w9g00XkxH/f1HXhW2sXmJFOCWbKn9xrOunSFtExQ= +github.com/MarvinJWendt/testza v0.1.0/go.mod h1:7AxNvlfeHP7Z/hDQ5JtE3OKYT3XFUeLCDE2DQninSqs= +github.com/MarvinJWendt/testza v0.2.1/go.mod h1:God7bhG8n6uQxwdScay+gjm9/LnO4D3kkcZX4hv9Rp8= +github.com/MarvinJWendt/testza v0.2.8/go.mod h1:nwIcjmr0Zz+Rcwfh3/4UhBp7ePKVhuBExvZqnKYWlII= +github.com/MarvinJWendt/testza v0.2.10/go.mod h1:pd+VWsoGUiFtq+hRKSU1Bktnn+DMCSrDrXDpX2bG66k= +github.com/MarvinJWendt/testza v0.2.12/go.mod h1:JOIegYyV7rX+7VZ9r77L/eH6CfJHHzXjB69adAhzZkI= +github.com/MarvinJWendt/testza v0.3.0/go.mod h1:eFcL4I0idjtIx8P9C6KkAuLgATNKpX4/2oUqKc6bF2c= +github.com/MarvinJWendt/testza v0.4.2/go.mod h1:mSdhXiKH8sg/gQehJ63bINcCKp7RtYewEjXsvsVUPbE= +github.com/MarvinJWendt/testza v0.5.1 h1:a9Fqx6vQrHQ4CyiaLhktfTTelwGotmFWy8MNhyaohw8= +github.com/atomicgo/cursor v0.0.1/go.mod h1:cBON2QmmrysudxNBFthvMtN32r3jxVRIvzkUiF/RuIk= +github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw= +github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= +github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/gookit/color v1.4.2/go.mod h1:fqRyamkC1W8uxl+lxCQxOT09l/vYfZ+QeiX3rKQHCoQ= +github.com/gookit/color v1.5.0/go.mod h1:43aQb+Zerm/BWh2GnrgOQm7ffz7tvQXEKV6BFMl7wAo= +github.com/gookit/color v1.5.2 h1:uLnfXcaFjlrDnQDT+NCBcfhrXqYTx/rcCa6xn01Y8yI= +github.com/gookit/color v1.5.2/go.mod h1:w8h4bGiHeeBpvQVePTutdbERIUf3oJE5lZ8HM0UgXyg= +github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= +github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/jackmordaunt/icns/v2 v2.2.1 h1:MGklwYP2yohKn2Bw7XxlF69LZe98S1vUfl5OvAulPwg= +github.com/jackmordaunt/icns/v2 v2.2.1/go.mod h1:6aYIB9eSzyfHHMKqDf17Xrs1zetQPReAkiUSHzdw4cI= +github.com/joho/godotenv v1.4.0 h1:3l4+N6zfMWnkbPEXKng2o2/MR5mSwTrBih4ZEkkz1lg= +github.com/joho/godotenv v1.4.0/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.0.10/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c= +github.com/klauspost/cpuid/v2 v2.0.12/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c= +github.com/klauspost/cpuid/v2 v2.2.0 h1:4ZexSFt8agMNzNisrsilL6RClWDC5YJnLHNIfTy4iuc= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/leaanthony/clir v1.0.4/go.mod h1:k/RBkdkFl18xkkACMCLt09bhiZnrGORoxmomeMvDpE0= +github.com/leaanthony/clir v1.5.0 h1:zaH7fgsZ5OLfr0YwJBwQ+EYxCjXQsHF+CRudIiZb0KQ= +github.com/leaanthony/clir v1.5.0/go.mod h1:k/RBkdkFl18xkkACMCLt09bhiZnrGORoxmomeMvDpE0= +github.com/leaanthony/slicer v1.5.0 h1:aHYTN8xbCCLxJmkNKiLB6tgcMARl4eWmH9/F+S/0HtY= +github.com/leaanthony/slicer v1.5.0/go.mod h1:FwrApmf8gOrpzEWM2J/9Lh79tyq8KTX5AzRtwV7m4AY= +github.com/leaanthony/winicon v1.0.0 h1:ZNt5U5dY71oEoKZ97UVwJRT4e+5xo5o/ieKuHuk8NqQ= +github.com/leaanthony/winicon v1.0.0/go.mod h1:en5xhijl92aphrJdmRPlh4NI1L6wq3gEm0LpXAPghjU= +github.com/lithammer/fuzzysearch v1.1.5 h1:Ag7aKU08wp0R9QCfF4GoGST9HbmAIeLP7xwMrOBEp1c= +github.com/lithammer/fuzzysearch v1.1.5/go.mod h1:1R1LRNk7yKid1BaQkmuLQaHruxcC4HmAH30Dh61Ih1Q= +github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.11 h1:nQ+aFkoE2TMGc0b68U2OKSexC+eq46+XwZzWXHRmPYs= +github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= +github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-zglob v0.0.4 h1:LQi2iOm0/fGgu80AioIJ/1j9w9Oh+9DZ39J4VAGzHQM= +github.com/mattn/go-zglob v0.0.4/go.mod h1:MxxjyoXXnMxfIpxTK2GAkw1w8glPsQILx3N5wrKakiY= +github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4NcD46KavDd4= +github.com/mitchellh/hashstructure/v2 v2.0.2/go.mod h1:MG3aRVU/N29oo/V/IhBX8GR/zz4kQkprJgF2EVszyDE= +github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ= +github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pterm/pterm v0.12.27/go.mod h1:PhQ89w4i95rhgE+xedAoqous6K9X+r6aSOI2eFF7DZI= +github.com/pterm/pterm v0.12.29/go.mod h1:WI3qxgvoQFFGKGjGnJR849gU0TsEOvKn5Q8LlY1U7lg= +github.com/pterm/pterm v0.12.30/go.mod h1:MOqLIyMOgmTDz9yorcYbcw+HsgoZo3BQfg2wtl3HEFE= +github.com/pterm/pterm v0.12.31/go.mod h1:32ZAWZVXD7ZfG0s8qqHXePte42kdz8ECtRyEejaWgXU= +github.com/pterm/pterm v0.12.33/go.mod h1:x+h2uL+n7CP/rel9+bImHD5lF3nM9vJj80k9ybiiTTE= +github.com/pterm/pterm v0.12.36/go.mod h1:NjiL09hFhT/vWjQHSj1athJpx6H8cjpHXNAK5bUw8T8= +github.com/pterm/pterm v0.12.40/go.mod h1:ffwPLwlbXxP+rxT0GsgDTzS3y3rmpAO1NMjUkGTYf8s= +github.com/pterm/pterm v0.12.51 h1:iwhNG1FhQMgks+5kVyr/ClRk3WJCuL907nJN7RqmEpw= +github.com/pterm/pterm v0.12.51/go.mod h1:79BLm4vos2z+eOoHnDG7ZWuYtLaSStyaspKjGmSoxc4= +github.com/radovskyb/watcher v1.0.7 h1:AYePLih6dpmS32vlHfhCeli8127LzkIgwJGcwwe8tUE= +github.com/radovskyb/watcher v1.0.7/go.mod h1:78okwvY5wPdzcb1UYnip1pvrZNIVEIh/Cm+ZuvsUYIg= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/sajari/fuzzy v1.0.0 h1:+FmwVvJErsd0d0hAPlj4CxqxUtQY/fOoY0DwX4ykpRY= +github.com/sajari/fuzzy v1.0.0/go.mod h1:OjYR6KxoWOe9+dOlXeiCJd4dIbED4Oo8wpS89o0pwOo= +github.com/samber/lo v1.37.0 h1:XjVcB8g6tgUp8rsPsJ2CvhClfImrpL04YpQHXeHPhRw= +github.com/samber/lo v1.37.0/go.mod h1:9vaz2O4o8oOnK23pd2TrXufcbdbJIa3b6cstBWKpopA= +github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= +github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/tc-hib/winres v0.1.6 h1:qgsYHze+BxQPEYilxIz/KCQGaClvI2+yLBAZs+3+0B8= +github.com/tc-hib/winres v0.1.6/go.mod h1:pe6dOR40VOrGz8PkzreVKNvEKnlE8t4yR8A8naL+t7A= +github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs= +github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o= +github.com/wailsapp/task/v3 v3.19.1 h1:syDKYaPBXgrXKKSJVEWcOEoSFtZzpvxqlHf90YRukRc= +github.com/wailsapp/task/v3 v3.19.1/go.mod h1:y7rWakbLR5gFElGgo6rA2dyr6vU/zNIDVfn3S4Of6OI= +github.com/wailsapp/wails/v2 v2.3.2-0.20230117193915-45c3a501d9e6 h1:Wn+nhnS+VytzE0PegUzSh4T3hXJCtggKGD/4U5H9+wQ= +github.com/wailsapp/wails/v2 v2.3.2-0.20230117193915-45c3a501d9e6/go.mod h1:zlNLI0E2c2qA6miiuAHtp0Bac8FaGH0tlhA19OssR/8= +github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 h1:QldyIu/L63oPpyvQmHgvgickp1Yw510KJOqX7H24mg8= +github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/exp v0.0.0-20220930202632-ec3f01382ef9 h1:RjggHMcaTVp0LOVZcW0bo8alwHrOaCrGUDgfWUHhnN4= +golang.org/x/exp v0.0.0-20220930202632-ec3f01382ef9/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= +golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20201208152932-35266b937fa6 h1:nfeHNc1nAqecKCy2FCy4HY+soOOe5sDLJ/gZLbx6GYI= +golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211013075003-97ac67df715c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +mvdan.cc/sh/v3 v3.6.0 h1:gtva4EXJ0dFNvl5bHjcUEvws+KRcDslT8VKheTYkbGU= +mvdan.cc/sh/v3 v3.6.0/go.mod h1:U4mhtBLZ32iWhif5/lD+ygy1zrgaQhUu+XFy7C8+TTA= diff --git a/v3/internal/commands/bindings.go b/v3/internal/commands/bindings.go new file mode 100644 index 00000000..719580b3 --- /dev/null +++ b/v3/internal/commands/bindings.go @@ -0,0 +1,42 @@ +package commands + +import ( + "bytes" + "fmt" + "os" + + "github.com/wailsapp/wails/v3/internal/parser" +) + +type GenerateBindingsOptions struct { + ModelsFilename string `name:"m" description:"The filename for the models file" default:"models.ts"` + BindingsFilename string `name:"b" description:"The filename for the bindings file" default:"bindings.js"` + ProjectDirectory string `name:"d" description:"The project directory" default:"."` +} + +func GenerateBindings(options *GenerateBindingsOptions) error { + + parserContext, err := parser.ParseDirectory(options.ProjectDirectory) + if err != nil { + return fmt.Errorf("error parsing project: %v", err) + } + + // Generate models + modelsData, err := parser.GenerateModels(parserContext) + if err != nil { + return fmt.Errorf("error generating models: %v", err) + } + + var modelsFileData bytes.Buffer + modelsFileData.WriteString(`// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +`) + modelsFileData.Write(modelsData) + err = os.WriteFile(options.ModelsFilename, modelsFileData.Bytes(), 0755) + if err != nil { + return fmt.Errorf("error writing models file: %v", err) + } + + return nil +} diff --git a/v3/internal/commands/defaults.go b/v3/internal/commands/defaults.go new file mode 100644 index 00000000..0d7b6d0d --- /dev/null +++ b/v3/internal/commands/defaults.go @@ -0,0 +1,61 @@ +package commands + +import ( + _ "embed" + "os" +) + +//go:embed defaults/info.json +var Info []byte + +//go:embed defaults/wails.exe.manifest +var Manifest []byte + +//go:embed defaults/appicon.png +var AppIcon []byte + +//go:embed defaults/icons.ico +var IconsIco []byte + +//go:embed defaults/Info.plist +var InfoPlist []byte + +//go:embed defaults/Info.dev.plist +var InfoDevPlist []byte + +//go:embed defaults/icons.icns +var IconsIcns []byte + +var AllAssets = map[string][]byte{ + "info.json": Info, + "wails.exe.manifest": Manifest, + "appicon.png": AppIcon, + "icons.ico": IconsIco, + "Info.plist": InfoPlist, + "Info.dev.plist": InfoDevPlist, + "icons.icns": IconsIcns, +} + +type DefaultsOptions struct { + Dir string `description:"The directory to generate the files into"` +} + +func Defaults(options *DefaultsOptions) error { + dir := options.Dir + if dir == "" { + dir = "." + } + for filename, data := range AllAssets { + // If file exists, skip it + if _, err := os.Stat(dir + "/" + filename); err == nil { + println("Skipping " + filename) + continue + } + err := os.WriteFile(dir+"/"+filename, data, 0644) + if err != nil { + return err + } + println("Generated " + filename) + } + return nil +} diff --git a/v3/internal/commands/defaults/Info.dev.plist b/v3/internal/commands/defaults/Info.dev.plist new file mode 100644 index 00000000..02e7358e --- /dev/null +++ b/v3/internal/commands/defaults/Info.dev.plist @@ -0,0 +1,32 @@ + + + + CFBundlePackageType + APPL + CFBundleName + {{.Info.ProductName}} + CFBundleExecutable + {{.Name}} + CFBundleIdentifier + com.wails.{{.Name}} + CFBundleVersion + {{.Info.ProductVersion}} + CFBundleGetInfoString + {{.Info.Comments}} + CFBundleShortVersionString + {{.Info.ProductVersion}} + CFBundleIconFile + iconfile + LSMinimumSystemVersion + 10.13.0 + NSHighResolutionCapable + true + NSHumanReadableCopyright + {{.Info.Copyright}} + NSAppTransportSecurity + + NSAllowsLocalNetworking + + + + \ No newline at end of file diff --git a/v3/internal/commands/defaults/Info.plist b/v3/internal/commands/defaults/Info.plist new file mode 100644 index 00000000..e7819a7e --- /dev/null +++ b/v3/internal/commands/defaults/Info.plist @@ -0,0 +1,27 @@ + + + + CFBundlePackageType + APPL + CFBundleName + {{.Info.ProductName}} + CFBundleExecutable + {{.Name}} + CFBundleIdentifier + com.wails.{{.Name}} + CFBundleVersion + {{.Info.ProductVersion}} + CFBundleGetInfoString + {{.Info.Comments}} + CFBundleShortVersionString + {{.Info.ProductVersion}} + CFBundleIconFile + iconfile + LSMinimumSystemVersion + 10.13.0 + NSHighResolutionCapable + true + NSHumanReadableCopyright + {{.Info.Copyright}} + + \ No newline at end of file diff --git a/v3/internal/commands/defaults/appicon.png b/v3/internal/commands/defaults/appicon.png new file mode 100644 index 0000000000000000000000000000000000000000..63617fe4f746b8a878bd5f44725f4f317b9d9850 GIT binary patch literal 132625 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 z˵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 -`D^0*p}lTwGQ~7 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 literal 0 HcmV?d00001 diff --git a/v3/internal/commands/defaults/icons.ico b/v3/internal/commands/defaults/icons.ico new file mode 100644 index 0000000000000000000000000000000000000000..f33479841c61728c8b5ee076ed13771c68e48b40 GIT binary patch literal 21017 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 AM*si- literal 0 HcmV?d00001 diff --git a/v3/internal/commands/defaults/info.json b/v3/internal/commands/defaults/info.json new file mode 100644 index 00000000..1005eb5c --- /dev/null +++ b/v3/internal/commands/defaults/info.json @@ -0,0 +1,15 @@ +{ + "fixed": { + "file_version": "v1.0.0" + }, + "info": { + "0000": { + "ProductVersion": "v1.0.0", + "CompanyName": "My Company Name", + "FileDescription": "A thing that does a thing", + "LegalCopyright": "(c) 2023 My Company Name", + "ProductName": "My Product Name", + "Comments": "This is a comment" + } + } +} \ No newline at end of file diff --git a/v3/internal/commands/defaults/wails.exe.manifest b/v3/internal/commands/defaults/wails.exe.manifest new file mode 100644 index 00000000..fb1ce5bd --- /dev/null +++ b/v3/internal/commands/defaults/wails.exe.manifest @@ -0,0 +1,15 @@ + + + + + + + + + + + true/pm + permonitorv2,permonitor + + + \ No newline at end of file diff --git a/v3/internal/commands/icons.go b/v3/internal/commands/icons.go new file mode 100644 index 00000000..dde3b8bf --- /dev/null +++ b/v3/internal/commands/icons.go @@ -0,0 +1,135 @@ +package commands + +import ( + "bytes" + "fmt" + "image" + "os" + "strconv" + "strings" + + "github.com/jackmordaunt/icns/v2" + "github.com/leaanthony/winicon" +) + +type IconsOptions struct { + Example bool `description:"Generate example icon file (appicon.png) in the current directory"` + Input string `description:"The input image file"` + Sizes string `description:"The sizes to generate in .ico file (comma separated)"` + WindowsFilename string `description:"The output filename for the Windows icon"` + MacFilename string `description:"The output filename for the Mac icon bundle"` +} + +func (i *IconsOptions) Default() *IconsOptions { + return &IconsOptions{ + Sizes: "256,128,64,48,32,16", + MacFilename: "icons.icns", + WindowsFilename: "icons.ico", + } +} + +func GenerateIcons(options *IconsOptions) error { + + if options.Example { + return generateExampleIcon() + } + + if options.Input == "" { + return fmt.Errorf("input is required") + } + + if options.WindowsFilename == "" && options.MacFilename == "" { + return fmt.Errorf("at least one output filename is required") + } + + // Parse sizes + var sizes = []int{256, 128, 64, 48, 32, 16} + var err error + if options.Sizes != "" { + sizes, err = parseSizes(options.Sizes) + if err != nil { + return err + } + } + + iconData, err := os.ReadFile(options.Input) + if err != nil { + return err + } + + if options.WindowsFilename != "" { + err := generateWindowsIcon(iconData, sizes, options) + if err != nil { + return err + } + } + + if options.MacFilename != "" { + err := generateMacIcon(iconData, options) + if err != nil { + return err + } + } + + return nil +} + +func generateExampleIcon() error { + return os.WriteFile("appicon.png", []byte(AppIcon), 0644) +} + +func parseSizes(sizes string) ([]int, error) { + // split the input string by comma and confirm that each one is an integer + parsedSizes := strings.Split(sizes, ",") + var result []int + for _, size := range parsedSizes { + s, err := strconv.Atoi(size) + if err != nil { + return nil, err + } + if s == 0 { + continue + } + result = append(result, s) + } + + // put all integers in a slice and return + return result, nil +} + +func generateMacIcon(iconData []byte, options *IconsOptions) error { + + srcImg, _, err := image.Decode(bytes.NewBuffer(iconData)) + if err != nil { + return err + } + + dest, err := os.Create(options.MacFilename) + if err != nil { + return err + + } + defer func() { + err = dest.Close() + if err == nil { + return + } + }() + return icns.Encode(dest, srcImg) +} + +func generateWindowsIcon(iconData []byte, sizes []int, options *IconsOptions) error { + + var output bytes.Buffer + + err := winicon.GenerateIcon(bytes.NewBuffer(iconData), &output, sizes) + if err != nil { + return err + } + + err = os.WriteFile(options.WindowsFilename, output.Bytes(), 0644) + if err != nil { + return err + } + return nil +} diff --git a/v3/internal/commands/icons_test.go b/v3/internal/commands/icons_test.go new file mode 100644 index 00000000..a41e1bd6 --- /dev/null +++ b/v3/internal/commands/icons_test.go @@ -0,0 +1,285 @@ +package commands + +import ( + "fmt" + "os" + "path/filepath" + "runtime" + "testing" +) + +func TestGenerateIcon(t *testing.T) { + tests := []struct { + name string + setup func() *IconsOptions + wantErr bool + test func() error + }{ + { + name: "should generate an icon when using the `example` flag", + setup: func() *IconsOptions { + return &IconsOptions{ + Example: true, + } + }, + wantErr: false, + test: func() error { + // the file `appicon.png` should be created in the current directory + // check for the existence of the file + f, err := os.Stat("appicon.png") + if err != nil { + return err + } + defer func() { + err := os.Remove("appicon.png") + if err != nil { + panic(err) + } + }() + if f.IsDir() { + return fmt.Errorf("appicon.png is a directory") + } + if f.Size() == 0 { + return fmt.Errorf("appicon.png is empty") + } + return nil + }, + }, + { + name: "should generate a .ico file when using the `input` flag and `windowsfilena me` flag", + setup: func() *IconsOptions { + // Get the directory of this file + _, thisFile, _, _ := runtime.Caller(1) + localDir := filepath.Dir(thisFile) + // Get the path to the example icon + exampleIcon := filepath.Join(localDir, "examples", "appicon.png") + return &IconsOptions{ + Input: exampleIcon, + WindowsFilename: "appicon.ico", + } + }, + wantErr: false, + test: func() error { + // the file `appicon.ico` should be created in the current directory + // check for the existence of the file + f, err := os.Stat("appicon.ico") + if err != nil { + return err + } + defer func() { + // Remove the file + err = os.Remove("appicon.ico") + if err != nil { + return + } + }() + if f.IsDir() { + return fmt.Errorf("appicon.ico is a directory") + } + if f.Size() == 0 { + return fmt.Errorf("appicon.ico is empty") + } + // Remove the file + err = os.Remove("appicon.ico") + if err != nil { + return err + } + return nil + }, + }, + { + name: "should generate a .icns file when using the `input` flag and `macfilename` flag", + setup: func() *IconsOptions { + // Get the directory of this file + _, thisFile, _, _ := runtime.Caller(1) + localDir := filepath.Dir(thisFile) + // Get the path to the example icon + exampleIcon := filepath.Join(localDir, "examples", "appicon.png") + return &IconsOptions{ + Input: exampleIcon, + MacFilename: "appicon.icns", + } + }, + wantErr: false, + test: func() error { + // the file `appicon.icns` should be created in the current directory + // check for the existence of the file + f, err := os.Stat("appicon.icns") + if err != nil { + return err + } + defer func() { + // Remove the file + err = os.Remove("appicon.icns") + if err != nil { + panic(err) + } + }() + if f.IsDir() { + return fmt.Errorf("appicon.icns is a directory") + } + if f.Size() == 0 { + return fmt.Errorf("appicon.icns is empty") + } + // Remove the file + + return nil + }, + }, + { + name: "should generate a small .ico file when using the `input` flag and `sizes` flag", + setup: func() *IconsOptions { + // Get the directory of this file + _, thisFile, _, _ := runtime.Caller(1) + localDir := filepath.Dir(thisFile) + // Get the path to the example icon + exampleIcon := filepath.Join(localDir, "examples", "appicon.png") + return &IconsOptions{ + Input: exampleIcon, + Sizes: "16", + WindowsFilename: "appicon.ico", + } + }, + wantErr: false, + test: func() error { + // the file `appicon.ico` should be created in the current directory + // check for the existence of the file + f, err := os.Stat("appicon.ico") + if err != nil { + return err + } + defer func() { + err := os.Remove("appicon.ico") + if err != nil { + panic(err) + } + }() + // The size of the file should be 571 bytes + if f.Size() != 571 { + return fmt.Errorf("appicon.ico is not the correct size. Got %d", f.Size()) + } + if f.IsDir() { + return fmt.Errorf("appicon.ico is a directory") + } + if f.Size() == 0 { + return fmt.Errorf("appicon.ico is empty") + } + return nil + }, + }, + { + name: "should error if no input file is provided", + setup: func() *IconsOptions { + return &IconsOptions{} + }, + wantErr: true, + }, + { + name: "should error if neither mac or windows filename is provided", + setup: func() *IconsOptions { + // Get the directory of this file + _, thisFile, _, _ := runtime.Caller(1) + localDir := filepath.Dir(thisFile) + // Get the path to the example icon + exampleIcon := filepath.Join(localDir, "examples", "appicon.png") + return &IconsOptions{ + Input: exampleIcon, + } + }, + wantErr: true, + }, + { + name: "should error if bad sizes provided", + setup: func() *IconsOptions { + // Get the directory of this file + _, thisFile, _, _ := runtime.Caller(1) + localDir := filepath.Dir(thisFile) + // Get the path to the example icon + exampleIcon := filepath.Join(localDir, "examples", "appicon.png") + return &IconsOptions{ + Input: exampleIcon, + WindowsFilename: "appicon.ico", + Sizes: "bad", + } + }, + wantErr: true, + }, + { + name: "should ignore 0 size", + setup: func() *IconsOptions { + // Get the directory of this file + _, thisFile, _, _ := runtime.Caller(1) + localDir := filepath.Dir(thisFile) + // Get the path to the example icon + exampleIcon := filepath.Join(localDir, "examples", "appicon.png") + return &IconsOptions{ + Input: exampleIcon, + WindowsFilename: "appicon.ico", + Sizes: "0,16", + } + }, + wantErr: false, + test: func() error { + // Test the file exists and has 571 bytes + f, err := os.Stat("appicon.ico") + if err != nil { + return err + } + defer func() { + err := os.Remove("appicon.ico") + if err != nil { + panic(err) + } + }() + if f.Size() != 571 { + return fmt.Errorf("appicon.ico is not the correct size. Got %d", f.Size()) + } + if f.IsDir() { + return fmt.Errorf("appicon.ico is a directory") + } + if f.Size() == 0 { + return fmt.Errorf("appicon.ico is empty") + } + return nil + }, + }, + { + name: "should error if the input file does not exist", + setup: func() *IconsOptions { + return &IconsOptions{ + Input: "doesnotexist.png", + WindowsFilename: "appicon.ico", + } + }, + wantErr: true, + }, + { + name: "should error if the input file is not a png", + setup: func() *IconsOptions { + // Get the directory of this file + _, thisFile, _, _ := runtime.Caller(1) + return &IconsOptions{ + Input: thisFile, + WindowsFilename: "appicon.ico", + } + }, + wantErr: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + options := tt.setup() + err := GenerateIcons(options) + if (err != nil) != tt.wantErr { + t.Errorf("GenerateIcon() error = %v, wantErr %v", err, tt.wantErr) + return + } + if tt.test != nil { + if err := tt.test(); err != nil { + t.Errorf("GenerateIcon() test error = %v", err) + } + } + }) + } +} diff --git a/v3/internal/commands/init.go b/v3/internal/commands/init.go new file mode 100644 index 00000000..14248a4f --- /dev/null +++ b/v3/internal/commands/init.go @@ -0,0 +1,8 @@ +package commands + +type InitOptions struct { +} + +func Init(options *InitOptions) error { + return nil +} diff --git a/v3/internal/commands/syso.go b/v3/internal/commands/syso.go new file mode 100644 index 00000000..70821789 --- /dev/null +++ b/v3/internal/commands/syso.go @@ -0,0 +1,123 @@ +package commands + +import ( + "fmt" + "os" + "runtime" + + "github.com/tc-hib/winres" + "github.com/tc-hib/winres/version" +) + +type SysoOptions struct { + Example bool `description:"Generate example manifest & info files"` + Manifest string `description:"The manifest file"` + Info string `description:"The info.json file"` + Icon string `description:"The icon file"` + Out string `description:"The output filename for the syso file"` + Arch string `description:"The target architecture"` +} + +func (i *SysoOptions) Default() *SysoOptions { + return &SysoOptions{ + Arch: runtime.GOARCH, + } +} + +func GenerateSyso(options *SysoOptions) error { + + // Generate example files? + if options.Example { + return generateExampleSyso() + } + + if options.Manifest == "" { + return fmt.Errorf("manifest is required") + } + if options.Icon == "" { + return fmt.Errorf("icon is required") + } + + rs := winres.ResourceSet{} + + // Process Icon + iconFile, err := os.Open(options.Icon) + if err != nil { + return err + } + defer iconFile.Close() + ico, err := winres.LoadICO(iconFile) + if err != nil { + return fmt.Errorf("couldn't load icon '%s': %v", options.Icon, err) + } + err = rs.SetIcon(winres.RT_ICON, ico) + if err != nil { + return err + } + + // Process Manifest + manifestData, err := os.ReadFile(options.Manifest) + if err != nil { + return err + } + + xmlData, err := winres.AppManifestFromXML(manifestData) + if err != nil { + return err + } + rs.SetManifest(xmlData) + + if options.Info != "" { + infoData, err := os.ReadFile(options.Info) + if err != nil { + return err + } + if len(infoData) != 0 { + var v version.Info + if err := v.UnmarshalJSON(infoData); err != nil { + return err + } + rs.SetVersionInfo(v) + } + } + + targetFile := options.Out + if targetFile == "" { + targetFile = "rsrc_windows_" + options.Arch + ".syso" + } + fout, err := os.Create(targetFile) + if err != nil { + return err + } + defer fout.Close() + + archs := map[string]winres.Arch{ + "amd64": winres.ArchAMD64, + "arm64": winres.ArchARM64, + "386": winres.ArchI386, + } + targetArch, supported := archs[options.Arch] + if !supported { + return fmt.Errorf("arch '%s' not supported", options.Arch) + } + + err = rs.WriteObject(fout, targetArch) + if err != nil { + return err + } + return nil +} + +func generateExampleSyso() error { + // Generate example info.json + err := os.WriteFile("info.json", Info, 0644) + if err != nil { + return err + } + // Generate example manifest + err = os.WriteFile("wails.exe.manifest", Manifest, 0644) + if err != nil { + return err + } + return nil +} diff --git a/v3/internal/commands/syso_test.go b/v3/internal/commands/syso_test.go new file mode 100644 index 00000000..a1e18e3d --- /dev/null +++ b/v3/internal/commands/syso_test.go @@ -0,0 +1,189 @@ +package commands + +import ( + "fmt" + "os" + "path/filepath" + "runtime" + "testing" +) + +func TestGenerateSyso(t *testing.T) { + tests := []struct { + name string + setup func() *SysoOptions + wantErr bool + test func() error + }{ + { + name: "should generate example info and manifest files when using the `example` flag", + setup: func() *SysoOptions { + return &SysoOptions{ + Example: true, + } + }, + wantErr: false, + test: func() error { + // the file `info.json` should be created in the current directory + // check for the existence of the file + f, err := os.Stat("info.json") + if err != nil { + return err + } + m, err := os.Stat("wails.exe.manifest") + if err != nil { + return err + } + defer func() { + err := os.Remove("info.json") + err2 := os.Remove("wails.exe.manifest") + if err != nil { + panic(err) + } + if err2 != nil { + panic(err2) + } + }() + if f.IsDir() { + return fmt.Errorf("info.json is a directory") + } + if f.Size() == 0 { + return fmt.Errorf("info.json is empty") + } + if m.IsDir() { + return fmt.Errorf("wails.exe.manifest is a directory") + } + if m.Size() == 0 { + return fmt.Errorf("wails.exe.manifest is empty") + } + return nil + }, + }, + { + name: "should error if manifest filename is not provided", + setup: func() *SysoOptions { + return &SysoOptions{ + Manifest: "", + } + }, + wantErr: true, + }, + { + name: "should error if icon filename is not provided", + setup: func() *SysoOptions { + return &SysoOptions{ + Manifest: "test.manifest", + Icon: "", + } + }, + wantErr: true, + }, + { + name: "should error if icon filename does not exist", + setup: func() *SysoOptions { + return &SysoOptions{ + Manifest: "test.manifest", + Icon: "icon.ico", + } + }, + wantErr: true, + }, + { + name: "should error if icon is wrong format", + setup: func() *SysoOptions { + _, thisFile, _, _ := runtime.Caller(1) + return &SysoOptions{ + Manifest: "test.manifest", + Icon: thisFile, + } + }, + wantErr: true, + }, + { + name: "should error if manifest filename does not exist", + setup: func() *SysoOptions { + // Get the directory of this file + _, thisFile, _, _ := runtime.Caller(1) + localDir := filepath.Dir(thisFile) + // Get the path to the example icon + exampleIcon := filepath.Join(localDir, "examples", "icon.ico") + return &SysoOptions{ + Manifest: "test.manifest", + Icon: exampleIcon, + } + }, + wantErr: true, + }, + { + name: "should error if manifest is wrong format", + setup: func() *SysoOptions { + // Get the directory of this file + _, thisFile, _, _ := runtime.Caller(1) + localDir := filepath.Dir(thisFile) + // Get the path to the example icon + exampleIcon := filepath.Join(localDir, "examples", "icon.ico") + return &SysoOptions{ + Manifest: exampleIcon, + Icon: exampleIcon, + } + }, + wantErr: true, + }, + { + name: "should error if info file does not exist", + setup: func() *SysoOptions { + // Get the directory of this file + _, thisFile, _, _ := runtime.Caller(1) + localDir := filepath.Dir(thisFile) + // Get the path to the example icon + exampleIcon := filepath.Join(localDir, "examples", "icon.ico") + // Get the path to the example manifest + exampleManifest := filepath.Join(localDir, "examples", "wails.exe.manifest") + return &SysoOptions{ + Manifest: exampleManifest, + Icon: exampleIcon, + Info: "doesnotexist.json", + } + }, + wantErr: true, + }, + { + name: "should error if info file is wrong format", + setup: func() *SysoOptions { + // Get the directory of this file + _, thisFile, _, _ := runtime.Caller(1) + localDir := filepath.Dir(thisFile) + // Get the path to the example icon + exampleIcon := filepath.Join(localDir, "examples", "icon.ico") + // Get the path to the example manifest + exampleManifest := filepath.Join(localDir, "examples", "wails.exe.manifest") + return &SysoOptions{ + Manifest: exampleManifest, + Icon: exampleIcon, + Info: thisFile, + } + }, + wantErr: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + options := tt.setup() + err := GenerateSyso(options) + if (err != nil) != tt.wantErr { + t.Errorf("GenerateSyso() error = %v, wantErr %v", err, tt.wantErr) + return + } + if (err != nil) && tt.wantErr { + println(err.Error()) + return + } + if tt.test != nil { + if err := tt.test(); err != nil { + t.Errorf("GenerateSyso() test error = %v", err) + } + } + }) + } +} diff --git a/v3/internal/commands/task.go b/v3/internal/commands/task.go new file mode 100644 index 00000000..82a8bf54 --- /dev/null +++ b/v3/internal/commands/task.go @@ -0,0 +1,66 @@ +package commands + +import ( + "context" + "fmt" + + "github.com/pterm/pterm" + + "github.com/go-task/task/v3" + "github.com/go-task/task/v3/taskfile" +) + +type RunTaskOptions struct { + Name string `name:"n" description:"The name of the task to run"` +} + +func RunTask(options *RunTaskOptions) error { + if options.Name == "" { + return fmt.Errorf("name of task required") + } + + e := task.Executor{} + err := e.Setup() + if err != nil { + return err + } + build := taskfile.Call{ + Task: options.Name, + Vars: nil, + } + return e.Run(context.Background(), build) +} + +type ListTaskOptions struct { +} + +func ListTasks(options *ListTaskOptions) error { + e := task.Executor{} + if err := e.Setup(); err != nil { + return err + } + tasks := e.GetTaskList() + if len(tasks) == 0 { + return fmt.Errorf("no tasks found. Ensure there is a `Taskfile.yml` in your project. You can generate a default takfile by running `wails generate defaults`") + } + tableData := [][]string{ + {"Task", "Summary"}, + } + println() + + for _, thisTask := range tasks { + if thisTask.Internal { + continue + } + var thisRow = make([]string, 2) + thisRow[0] = thisTask.Task + thisRow[1] = thisTask.Summary + tableData = append(tableData, thisRow) + } + err := pterm.DefaultTable.WithHasHeader(true).WithHeaderRowSeparator("-").WithData(tableData).Render() + if err != nil { + return err + } + println() + return nil +} diff --git a/v3/internal/commands/task_test.go b/v3/internal/commands/task_test.go new file mode 100644 index 00000000..df365c99 --- /dev/null +++ b/v3/internal/commands/task_test.go @@ -0,0 +1,38 @@ +package commands + +import "testing" + +func TestBuild(t *testing.T) { + type args struct { + options *RunTaskOptions + } + tests := []struct { + name string + args args + wantErr bool + }{ + { + name: "should error if task name not provided", + args: args{ + options: &RunTaskOptions{}, + }, + wantErr: true, + }, + { + name: "should work if task name provided", + args: args{ + options: &RunTaskOptions{ + Name: "build", + }, + }, + wantErr: true, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if err := RunTask(tt.args.options); (err != nil) != tt.wantErr { + t.Errorf("Run() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} diff --git a/v3/internal/parser/README.md b/v3/internal/parser/README.md new file mode 100644 index 00000000..59de0d74 --- /dev/null +++ b/v3/internal/parser/README.md @@ -0,0 +1,24 @@ +# Parser + +This package contains the static analyser used for parsing Wails projects so that we may: + +- Generate the bindings for the frontend +- Generate Typescript definitions for the structs used by the bindings + +## Implemented + +- [x] Parsing of structs +- [x] Generation of models + - [x] Scalars + - [x] Arrays + - [ ] Maps + - [x] Structs +- [ ] Generation of bindings + +## Limitations + +There are many ways to write a Go program so there are many different program structures that we would need to support. This is a work in progress and will be improved over time. The current limitations are: + +- The call to `application.New()` must be in the `main` package +- Bound structs must be declared as struct literals + diff --git a/v3/internal/parser/models.go b/v3/internal/parser/models.go new file mode 100644 index 00000000..4f728e8b --- /dev/null +++ b/v3/internal/parser/models.go @@ -0,0 +1,95 @@ +package parser + +import ( + "bytes" + "fmt" + "go/ast" + "go/types" + "sort" + "strings" + "unicode" +) + +func GenerateModels(context *Context) ([]byte, error) { + var buf bytes.Buffer + var pkgs []Package + specs := context.GetBoundStructs() + for pkg, pkgSpecs := range specs { + pkgs = append(pkgs, Package{Name: pkg, Specs: pkgSpecs}) + } + knownStructs := newAllModels(specs) + sort.Slice(pkgs, func(i, j int) bool { return pkgs[i].Name < pkgs[j].Name }) + for _, pkg := range pkgs { + if _, err := fmt.Fprintf(&buf, "namespace %s {\n", pkg.Name); err != nil { + return nil, err + } + sort.Slice(pkg.Specs, func(i, j int) bool { return pkg.Specs[i].Name.Name < pkg.Specs[j].Name.Name }) + for _, spec := range pkg.Specs { + if structType, ok := spec.Type.(*ast.StructType); ok { + if _, err := fmt.Fprintf(&buf, " class %s {\n", spec.Name.Name); err != nil { + return nil, err + } + + for _, field := range structType.Fields.List { + + // Ignore field names that have a lower case first letter + if !unicode.IsUpper(rune(field.Names[0].Name[0])) { + continue + } + + // Get the Go type of the field + goType := types.ExprString(field.Type) + // Check if the type is an array + if arrayType, ok := field.Type.(*ast.ArrayType); ok { + // Get the element type of the array + elementType := types.ExprString(arrayType.Elt) + // Look up the corresponding TypeScript type + tsType, ok := goToTS[elementType] + if !ok { + // strip off the * prefix if it is there + if strings.HasPrefix(elementType, "*") { + elementType = elementType[1:] + } + if knownStructs.exists(elementType) { + tsType = elementType + } else { + tsType = "any" + } + } + // Output the field as an array of the corresponding TypeScript type + if _, err := fmt.Fprintf(&buf, " %s: %s[];\n", field.Names[0].Name, tsType); err != nil { + return nil, err + } + } else { + // strip off the * prefix if it is there + if strings.HasPrefix(goType, "*") { + goType = goType[1:] + } + // Look up the corresponding TypeScript type + tsType, ok := goToTS[goType] + if !ok { + if knownStructs.exists(goType) { + tsType = goType + } else { + tsType = "any" + } + } + // Output the field as the corresponding TypeScript type + if _, err := fmt.Fprintf(&buf, " %s: %s;\n", field.Names[0].Name, tsType); err != nil { + return nil, err + } + } + } + + if _, err := fmt.Fprintf(&buf, " }\n"); err != nil { + return nil, err + } + } + } + + if _, err := fmt.Fprintf(&buf, "}\n\n"); err != nil { + return nil, err + } + } + return buf.Bytes(), nil +} diff --git a/v3/internal/parser/parser.go b/v3/internal/parser/parser.go new file mode 100644 index 00000000..79c1ca72 --- /dev/null +++ b/v3/internal/parser/parser.go @@ -0,0 +1,531 @@ +package parser + +import ( + "fmt" + "go/ast" + "go/parser" + "go/token" + "os" + "strings" + + "github.com/samber/lo" + + "golang.org/x/tools/go/packages" +) + +var Debug = false + +func debug(msg string, args ...interface{}) { + if Debug { + println(fmt.Sprintf(msg, args...)) + } +} + +type parsedPackage struct { + name string + pkg *ast.Package + boundStructs map[string]*ast.TypeSpec +} + +type Context struct { + packages map[string]*parsedPackage +} + +func (c *Context) GetBoundStructs() map[string][]*ast.TypeSpec { + structs := make(map[string][]*ast.TypeSpec) + for _, pkg := range c.packages { + for _, structType := range pkg.boundStructs { + structs[pkg.name] = append(structs[pkg.name], structType) + } + } + return structs +} + +func ParseDirectory(dir string) (*Context, error) { + // Parse the directory + fset := token.NewFileSet() + if dir == "." || dir == "" { + cwd, err := os.Getwd() + if err != nil { + return nil, err + } + dir = cwd + } + println("Parsing directory " + dir) + pkgs, err := parser.ParseDir(fset, dir, nil, parser.AllErrors) + if err != nil { + return nil, err + } + + context := &Context{ + packages: make(map[string]*parsedPackage), + } + + // Iterate through the packages + for _, pkg := range pkgs { + context.packages[pkg.Name] = &parsedPackage{ + name: pkg.Name, + pkg: pkg, + boundStructs: make(map[string]*ast.TypeSpec), + } + } + + findApplicationNewCalls(context) + + return context, nil +} + +func findApplicationNewCalls(context *Context) { + // Iterate through the packages + currentPackages := lo.Keys(context.packages) + + for _, packageName := range currentPackages { + thisPackage := context.packages[packageName] + debug("Parsing package: %s", packageName) + // Iterate through the package's files + for _, file := range thisPackage.pkg.Files { + // Use an ast.Inspector to find the calls to application.New + ast.Inspect(file, func(n ast.Node) bool { + // Check if the node is a call expression + callExpr, ok := n.(*ast.CallExpr) + if !ok { + return true + } + + // Check if the function being called is "application.New" + selExpr, ok := callExpr.Fun.(*ast.SelectorExpr) + if !ok { + return true + } + if selExpr.Sel.Name != "New" { + return true + } + if id, ok := selExpr.X.(*ast.Ident); !ok || id.Name != "application" { + return true + } + + // Check there is only 1 argument + if len(callExpr.Args) != 1 { + return true + } + + // Check argument 1 is a struct literal + structLit, ok := callExpr.Args[0].(*ast.CompositeLit) + if !ok { + return true + } + + // Check struct literal is of type "options.Application" + selectorExpr, ok := structLit.Type.(*ast.SelectorExpr) + if !ok { + return true + } + if selectorExpr.Sel.Name != "Application" { + return true + } + if id, ok := selectorExpr.X.(*ast.Ident); !ok || id.Name != "options" { + return true + } + + for _, elt := range structLit.Elts { + // Find the "Bind" field + kvExpr, ok := elt.(*ast.KeyValueExpr) + if !ok { + continue + } + if id, ok := kvExpr.Key.(*ast.Ident); !ok || id.Name != "Bind" { + continue + } + // Check the value is a slice of interfaces + sliceExpr, ok := kvExpr.Value.(*ast.CompositeLit) + if !ok { + continue + } + var arrayType *ast.ArrayType + if arrayType, ok = sliceExpr.Type.(*ast.ArrayType); !ok { + continue + } + + // Check array type is of type "interface{}" + if _, ok := arrayType.Elt.(*ast.InterfaceType); !ok { + continue + } + // Iterate through the slice elements + for _, elt := range sliceExpr.Elts { + // Check the element is a unary expression + unaryExpr, ok := elt.(*ast.UnaryExpr) + if ok { + // Check the unary expression is a composite lit + boundStructLit, ok := unaryExpr.X.(*ast.CompositeLit) + if !ok { + continue + } + // Check if the composite lit is a struct + if _, ok := boundStructLit.Type.(*ast.StructType); ok { + // Parse struct + continue + } + // Check if the lit is an ident + ident, ok := boundStructLit.Type.(*ast.Ident) + if ok { + if ident.Obj == nil { + structTypeSpec := findStructInPackage(thisPackage.pkg, ident.Name) + thisPackage.boundStructs[ident.Name] = structTypeSpec + findNestedStructs(structTypeSpec, file, packageName, context) + continue + } + // Check if the ident is a struct type + if t, ok := ident.Obj.Decl.(*ast.TypeSpec); ok { + thisPackage.boundStructs[ident.Name] = t + findNestedStructs(t, file, packageName, context) + continue + } + // Check the typespec decl is a struct + if _, ok := ident.Obj.Decl.(*ast.StructType); ok { + continue + } + + } + // Check if the lit is a selector + selector, ok := boundStructLit.Type.(*ast.SelectorExpr) + if ok { + getStructsFromSelector(selector, file, context) + continue + } + } + } + } + + return true + }) + } + } +} + +func getStructsFromSelector(selector *ast.SelectorExpr, file *ast.File, context *Context) { + debug("getStructsFromSelector called with selector '%s' on file '%s.go'", selector.Sel.Name, file.Name.Name) + + // extract package name from selector + packageName := selector.X.(*ast.Ident).Name + + if context.packages[packageName] == nil { + context.packages[packageName] = &parsedPackage{ + name: packageName, + boundStructs: make(map[string]*ast.TypeSpec), + } + } + + // extract struct name from selector + structName := selector.Sel.Name + + // Find the package name from the imports + for _, imp := range file.Imports { + var match bool + if imp.Name == nil || imp.Name.Name == packageName { + match = true + } + if match == false { + pathSplit := strings.Split(imp.Path.Value, "/") + endPath := strings.Trim(pathSplit[len(pathSplit)-1], `"`) + match = endPath == packageName + } + + if match { + // We have the import + cfg := &packages.Config{ + Mode: packages.NeedName | packages.NeedFiles | packages.NeedImports | packages.NeedDeps | packages.NeedTypes | packages.NeedSyntax | packages.NeedTypesInfo | packages.NeedModule, + } + pkgs, err := packages.Load(cfg, strings.Trim(imp.Path.Value, `"`)) + if err != nil { + panic(err) + } + foundPackage := pkgs[0] + + // Iterate the files in the package and find struct types + for _, parsedFile := range foundPackage.Syntax { + ast.Inspect(parsedFile, func(n ast.Node) bool { + if n == nil { + return false + } + switch n.(type) { + case *ast.TypeSpec: + typeSpec := n.(*ast.TypeSpec) + if typeSpec.Name.Name == structName { + if _, ok := context.packages[packageName].boundStructs[structName]; !ok { + debug("Adding struct '%s' in package '%s'", structName, packageName) + context.packages[packageName].boundStructs[typeSpec.Name.Name] = typeSpec + findNestedStructs(typeSpec, parsedFile, packageName, context) + } + return false + } + } + return true + }) + } + + continue + } + } + +} + +func findNestedStructs(t *ast.TypeSpec, parsedFile *ast.File, pkgName string, context *Context) { + debug("findNestedStructs called with type '%s' on file '%s.go'", t.Name.Name, parsedFile.Name.Name) + structType, ok := t.Type.(*ast.StructType) + if !ok { + return + } + for _, field := range structType.Fields.List { + for _, ident := range field.Names { + switch t := ident.Obj.Decl.(*ast.Field).Type.(type) { + case *ast.Ident: + if t.Obj == nil { + continue + } + if t.Obj.Kind == ast.Typ { + if _, ok := t.Obj.Decl.(*ast.TypeSpec); ok { + if _, ok := context.packages[pkgName].boundStructs[t.Name]; !ok { + debug("Adding nested struct '%s' to package '%s'", t.Name, pkgName) + context.packages[pkgName].boundStructs[t.Name] = t.Obj.Decl.(*ast.TypeSpec) + findNestedStructs(t.Obj.Decl.(*ast.TypeSpec), parsedFile, pkgName, context) + } + } + } + case *ast.SelectorExpr: + if ident, ok := t.X.(*ast.Ident); ok { + if ident.IsExported() { + getStructsFromSelector(t, parsedFile, context) + } + } + case *ast.StarExpr: + if sel, ok := t.X.(*ast.SelectorExpr); ok { + if _, ok := sel.X.(*ast.Ident); ok { + if ident.IsExported() { + getStructsFromSelector(sel, parsedFile, context) + } + } + } + } + } + } + findStructsInMethods(t.Name.Name, parsedFile, pkgName, context) + +} + +func findStructsInMethods(name string, parsedFile *ast.File, pkgName string, context *Context) { + debug("findStructsInMethods called with type '%s' on file '%s.go'", name, parsedFile.Name.Name) + // Find the struct declaration for the given name + var structDecl *ast.TypeSpec + for _, decl := range parsedFile.Decls { + if fn, ok := decl.(*ast.FuncDecl); ok { + // check the receiver name is the same as the name given + if fn.Recv == nil { + continue + } + // Check if the receiver is a pointer + if starExpr, ok := fn.Recv.List[0].Type.(*ast.StarExpr); ok { + if ident, ok := starExpr.X.(*ast.Ident); ok { + if ident.Name != name { + continue + } + } + } else { + if ident, ok := fn.Recv.List[0].Type.(*ast.Ident); ok { + if ident.Name != name { + continue + } + } + } + findStructsInMethodParams(fn, parsedFile, pkgName, context) + } + } + if structDecl == nil { + return + } + // Iterate the methods in the struct + +} + +func findStructsInMethodParams(f *ast.FuncDecl, parsedFile *ast.File, pkgName string, context *Context) { + debug("findStructsInMethodParams called with type '%s' on file '%s.go'", f.Name.Name, parsedFile.Name.Name) + if f.Type.Params == nil { + for _, field := range f.Type.Params.List { + parseField(field, parsedFile, pkgName, context) + } + } + if f.Type.Results != nil { + for _, field := range f.Type.Results.List { + parseField(field, parsedFile, pkgName, context) + } + } +} + +func parseField(field *ast.Field, parsedFile *ast.File, pkgName string, context *Context) { + if se, ok := field.Type.(*ast.StarExpr); ok { + // Check if the star expr is a struct + if selExp, ok := se.X.(*ast.SelectorExpr); ok { + getStructsFromSelector(selExp, parsedFile, context) + return + } + if ident, ok := se.X.(*ast.Ident); ok { + if ident.Obj == nil { + return + } + if ident.Obj.Kind == ast.Typ { + if _, ok := ident.Obj.Decl.(*ast.TypeSpec); ok { + if _, ok := context.packages[pkgName].boundStructs[ident.Name]; !ok { + debug("Adding field struct '%s' to package '%s'", ident.Name, pkgName) + context.packages[pkgName].boundStructs[ident.Name] = ident.Obj.Decl.(*ast.TypeSpec) + findNestedStructs(ident.Obj.Decl.(*ast.TypeSpec), parsedFile, pkgName, context) + } else { + debug("Struct %s already bound", ident.Name) + } + } + } + } + } + if selExp, ok := field.Type.(*ast.SelectorExpr); ok { + getStructsFromSelector(selExp, parsedFile, context) + return + } + if ident, ok := field.Type.(*ast.Ident); ok { + if ident.Obj == nil { + return + } + if ident.Obj.Kind == ast.Typ { + if _, ok := ident.Obj.Decl.(*ast.TypeSpec); ok { + if _, ok := context.packages[pkgName].boundStructs[ident.Name]; !ok { + debug("Adding field struct '%s' to package '%s'", ident.Name, pkgName) + context.packages[pkgName].boundStructs[ident.Name] = ident.Obj.Decl.(*ast.TypeSpec) + findNestedStructs(ident.Obj.Decl.(*ast.TypeSpec), parsedFile, pkgName, context) + } else { + debug("Struct %s already bound", ident.Name) + } + } + } + } +} + +func findStructInPackage(pkg *ast.Package, name string) *ast.TypeSpec { + for _, file := range pkg.Files { + for _, decl := range file.Decls { + if gen, ok := decl.(*ast.GenDecl); ok && gen.Tok == token.TYPE { + for _, spec := range gen.Specs { + if typeSpec, ok := spec.(*ast.TypeSpec); ok { + if typeSpec.Name.Name == name { + if _, ok := typeSpec.Type.(*ast.StructType); ok { + return typeSpec + } + } + } + } + } + } + } + return nil +} + +type Package struct { + Name string + Specs []*ast.TypeSpec +} + +var goToTS = map[string]string{ + "int": "number", + "int8": "number", + "int16": "number", + "int32": "number", + "int64": "number", + "uint": "number", + "uint8": "number", + "uint16": "number", + "uint32": "number", + "uint64": "number", + "float32": "number", + "float64": "number", + "string": "string", + "bool": "boolean", +} + +//func GenerateModels(specs map[string][]*ast.TypeSpec) ([]byte, error) { +// var buf bytes.Buffer +// var packages []Package +// for pkg, pkgSpecs := range specs { +// packages = append(packages, Package{Name: pkg, Specs: pkgSpecs}) +// } +// sort.Slice(packages, func(i, j int) bool { return packages[i].Name < packages[j].Name }) +// for _, pkg := range packages { +// if _, err := fmt.Fprintf(&buf, "namespace %s {\n", pkg.Name); err != nil { +// return nil, err +// } +// sort.Slice(pkg.Specs, func(i, j int) bool { return pkg.Specs[i].Name.Name < pkg.Specs[j].Name.Name }) +// for _, spec := range pkg.Specs { +// if structType, ok := spec.Type.(*ast.StructType); ok { +// if _, err := fmt.Fprintf(&buf, " class %s {\n", spec.Name.Name); err != nil { +// return nil, err +// } +// +// for _, field := range structType.Fields.List { +// +// // Get the Go type of the field +// goType := types.ExprString(field.Type) +// // Look up the corresponding TypeScript type +// tsType, ok := goToTS[goType] +// if !ok { +// tsType = goType +// } +// +// if _, err := fmt.Fprintf(&buf, " %s: %s;\n", field.Names[0].Name, tsType); err != nil { +// return nil, err +// } +// } +// +// if _, err := fmt.Fprintf(&buf, " }\n"); err != nil { +// return nil, err +// } +// if _, err := fmt.Fprintf(&buf, " }\n"); err != nil { +// return nil, err +// } +// } +// } +// +// if _, err := fmt.Fprintf(&buf, "}\n"); err != nil { +// return nil, err +// } +// } +// return buf.Bytes(), nil +//} + +type allModels struct { + known map[string]map[string]struct{} +} + +func newAllModels(models map[string][]*ast.TypeSpec) *allModels { + result := &allModels{known: make(map[string]map[string]struct{})} + // iterate over all models + for pkg, pkgSpecs := range models { + for _, spec := range pkgSpecs { + result.known[pkg] = make(map[string]struct{}) + result.known[pkg][spec.Name.Name] = struct{}{} + } + } + return result +} + +func (k *allModels) exists(name string) bool { + // Split the name into package and type + parts := strings.Split(name, ".") + typ := parts[0] + pkg := "main" + if len(parts) == 2 { + pkg = parts[0] + typ = parts[1] + } + + knownPkg, ok := k.known[pkg] + if !ok { + return false + } + _, ok = knownPkg[typ] + return ok +} diff --git a/v3/internal/parser/parser_test.go b/v3/internal/parser/parser_test.go new file mode 100644 index 00000000..468966a0 --- /dev/null +++ b/v3/internal/parser/parser_test.go @@ -0,0 +1,144 @@ +package parser + +import ( + "testing" + + "github.com/samber/lo" + + "github.com/stretchr/testify/require" +) + +func TestParseDirectory(t *testing.T) { + tests := []struct { + name string + dir string + want []string + wantErr bool + }{ + { + name: "should find single bound service", + dir: "testdata/struct_literal_single", + want: []string{"main.GreetService"}, + wantErr: false, + }, + { + name: "should find multiple bound services", + dir: "testdata/struct_literal_multiple", + want: []string{"main.GreetService", "main.OtherService"}, + wantErr: false, + }, + { + name: "should find multiple bound services over multiple files", + dir: "testdata/struct_literal_multiple_files", + want: []string{"main.GreetService", "main.OtherService"}, + wantErr: false, + }, + { + name: "should find bound services from other packages", + dir: "../../examples/binding", + want: []string{"main.localStruct", "services.GreetService", "models.Person"}, + wantErr: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + Debug = true + got, err := ParseDirectory(tt.dir) + if (err != nil) != tt.wantErr { + t.Errorf("ParseDirectory() error = %v, wantErr %v", err, tt.wantErr) + return + } + + for name, pkg := range got.packages { + for structName := range pkg.boundStructs { + require.True(t, lo.Contains(tt.want, name+"."+structName)) + tt.want = lo.Without(tt.want, name+"."+structName) + } + } + require.Empty(t, tt.want) + }) + } +} + +func TestGenerateTypeScript(t *testing.T) { + tests := []struct { + name string + dir string + want string + wantErr bool + }{ + { + name: "should find single bound service", + dir: "testdata/struct_literal_single", + want: `namespace main { + class GreetService { + SomeVariable: number; + } +} +`, + wantErr: false, + }, + { + name: "should find multiple bound services", + dir: "testdata/struct_literal_multiple", + want: `namespace main { + class GreetService { + SomeVariable: number; + } + class OtherService { + } +} +`, + wantErr: false, + }, + { + name: "should find multiple bound services over multiple files", + dir: "testdata/struct_literal_multiple_files", + want: `namespace main { + class GreetService { + SomeVariable: number; + } + class OtherService { + } +} +`, + wantErr: false, + }, + { + name: "should find bound services from other packages", + dir: "../../examples/binding", + want: `namespace main { + class localStruct { + } +} +namespace models { + class Person { + Name: string; + } +} +namespace services { + class GreetService { + SomeVariable: number; + Parent: models.Person; + } +} +`, + wantErr: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + Debug = true + context, err := ParseDirectory(tt.dir) + if (err != nil) != tt.wantErr { + t.Errorf("ParseDirectory() error = %v, wantErr %v", err, tt.wantErr) + return + } + + ts, err := GenerateModels(context) + require.NoError(t, err) + require.Equal(t, tt.want, string(ts)) + + }) + } +} diff --git a/v3/internal/parser/testdata/struct_literal_multiple/main.go b/v3/internal/parser/testdata/struct_literal_multiple/main.go new file mode 100644 index 00000000..4f0bf8bd --- /dev/null +++ b/v3/internal/parser/testdata/struct_literal_multiple/main.go @@ -0,0 +1,40 @@ +package main + +import ( + _ "embed" + "log" + + "github.com/wailsapp/wails/v3/pkg/application" + "github.com/wailsapp/wails/v3/pkg/options" +) + +type GreetService struct { + SomeVariable int + lowerCase string +} + +func (*GreetService) Greet(name string) string { + return "Hello " + name +} + +type OtherService struct { + t int +} + +func main() { + app := application.New(options.Application{ + Bind: []interface{}{ + &GreetService{}, + &OtherService{}, + }, + }) + + app.NewWebviewWindow() + + err := app.Run() + + if err != nil { + log.Fatal(err) + } + +} diff --git a/v3/internal/parser/testdata/struct_literal_multiple_files/greet.go b/v3/internal/parser/testdata/struct_literal_multiple_files/greet.go new file mode 100644 index 00000000..2a45396a --- /dev/null +++ b/v3/internal/parser/testdata/struct_literal_multiple_files/greet.go @@ -0,0 +1,14 @@ +package main + +import ( + _ "embed" +) + +type GreetService struct { + SomeVariable int + lowerCase string +} + +func (*GreetService) Greet(name string) string { + return "Hello " + name +} diff --git a/v3/internal/parser/testdata/struct_literal_multiple_files/main.go b/v3/internal/parser/testdata/struct_literal_multiple_files/main.go new file mode 100644 index 00000000..fd801c1b --- /dev/null +++ b/v3/internal/parser/testdata/struct_literal_multiple_files/main.go @@ -0,0 +1,27 @@ +package main + +import ( + _ "embed" + "log" + + "github.com/wailsapp/wails/v3/pkg/application" + "github.com/wailsapp/wails/v3/pkg/options" +) + +func main() { + app := application.New(options.Application{ + Bind: []interface{}{ + &GreetService{}, + &OtherService{}, + }, + }) + + app.NewWebviewWindow() + + err := app.Run() + + if err != nil { + log.Fatal(err) + } + +} diff --git a/v3/internal/parser/testdata/struct_literal_multiple_files/other.go b/v3/internal/parser/testdata/struct_literal_multiple_files/other.go new file mode 100644 index 00000000..c6e16377 --- /dev/null +++ b/v3/internal/parser/testdata/struct_literal_multiple_files/other.go @@ -0,0 +1,5 @@ +package main + +type OtherService struct { + t int +} diff --git a/v3/internal/parser/testdata/struct_literal_single/main.go b/v3/internal/parser/testdata/struct_literal_single/main.go new file mode 100644 index 00000000..cfc684e1 --- /dev/null +++ b/v3/internal/parser/testdata/struct_literal_single/main.go @@ -0,0 +1,35 @@ +package main + +import ( + _ "embed" + "log" + + "github.com/wailsapp/wails/v3/pkg/application" + "github.com/wailsapp/wails/v3/pkg/options" +) + +type GreetService struct { + SomeVariable int + lowerCase string +} + +func (*GreetService) Greet(name string) string { + return "Hello " + name +} + +func main() { + app := application.New(options.Application{ + Bind: []interface{}{ + &GreetService{}, + }, + }) + + app.NewWebviewWindow() + + err := app.Run() + + if err != nil { + log.Fatal(err) + } + +} diff --git a/v3/internal/runtime/assets.go b/v3/internal/runtime/assets.go new file mode 100644 index 00000000..bf3caa37 --- /dev/null +++ b/v3/internal/runtime/assets.go @@ -0,0 +1,26 @@ +//go:build production + +package runtime + +var RuntimeAssetsBundle = &RuntimeAssets{ + desktopIPC: DesktopIPC, + runtimeDesktopJS: DesktopRuntime, +} + +type RuntimeAssets struct { + desktopIPC []byte + websocketIPC []byte + runtimeDesktopJS []byte +} + +func (r *RuntimeAssets) DesktopIPC() []byte { + return r.desktopIPC +} + +func (r *RuntimeAssets) WebsocketIPC() []byte { + return r.websocketIPC +} + +func (r *RuntimeAssets) RuntimeDesktopJS() []byte { + return r.runtimeDesktopJS +} diff --git a/v3/internal/runtime/assets_dev.go b/v3/internal/runtime/assets_dev.go new file mode 100644 index 00000000..1d9915d3 --- /dev/null +++ b/v3/internal/runtime/assets_dev.go @@ -0,0 +1,27 @@ +//go:build !production + +package runtime + +var RuntimeAssetsBundle = &RuntimeAssets{ + desktopIPC: DesktopIPC, + websocketIPC: WebsocketIPC, + runtimeDesktopJS: DesktopRuntime, +} + +type RuntimeAssets struct { + desktopIPC []byte + websocketIPC []byte + runtimeDesktopJS []byte +} + +func (r *RuntimeAssets) DesktopIPC() []byte { + return r.desktopIPC +} + +func (r *RuntimeAssets) WebsocketIPC() []byte { + return r.websocketIPC +} + +func (r *RuntimeAssets) RuntimeDesktopJS() []byte { + return r.runtimeDesktopJS +} diff --git a/v3/internal/runtime/desktop/bindings.js b/v3/internal/runtime/desktop/bindings.js new file mode 100644 index 00000000..96e1890f --- /dev/null +++ b/v3/internal/runtime/desktop/bindings.js @@ -0,0 +1,67 @@ +/* + _ __ _ __ +| | / /___ _(_) /____ +| | /| / / __ `/ / / ___/ +| |/ |/ / /_/ / / (__ ) +|__/|__/\__,_/_/_/____/ +The electron alternative for Go +(c) Lea Anthony 2019-present +*/ +/* jshint esversion: 6 */ + +import {Call} from './calls'; + +// This is where we bind go method wrappers +window.go = {}; + +export function SetBindings(bindingsMap) { + try { + bindingsMap = JSON.parse(bindingsMap); + } catch (e) { + console.error(e); + } + + // Initialise the bindings map + window.go = window.go || {}; + + // Iterate package names + Object.keys(bindingsMap).forEach((packageName) => { + + // Create inner map if it doesn't exist + window.go[packageName] = window.go[packageName] || {}; + + // Iterate struct names + Object.keys(bindingsMap[packageName]).forEach((structName) => { + + // Create inner map if it doesn't exist + window.go[packageName][structName] = window.go[packageName][structName] || {}; + + Object.keys(bindingsMap[packageName][structName]).forEach((methodName) => { + + window.go[packageName][structName][methodName] = function () { + + // No timeout by default + let timeout = 0; + + // Actual function + function dynamic() { + const args = [].slice.call(arguments); + return Call([packageName, structName, methodName].join('.'), args, timeout); + } + + // Allow setting timeout to function + dynamic.setTimeout = function (newTimeout) { + timeout = newTimeout; + }; + + // Allow getting timeout to function + dynamic.getTimeout = function () { + return timeout; + }; + + return dynamic; + }(); + }); + }); + }); +} diff --git a/v3/internal/runtime/desktop/browser.js b/v3/internal/runtime/desktop/browser.js new file mode 100644 index 00000000..18c5258f --- /dev/null +++ b/v3/internal/runtime/desktop/browser.js @@ -0,0 +1,8 @@ +/** + * @description: Use the system default browser to open the url + * @param {string} url + * @return {void} + */ +export function BrowserOpenURL(url) { + window.WailsInvoke('BO:' + url); +} \ No newline at end of file diff --git a/v3/internal/runtime/desktop/calls.js b/v3/internal/runtime/desktop/calls.js new file mode 100644 index 00000000..161aaaed --- /dev/null +++ b/v3/internal/runtime/desktop/calls.js @@ -0,0 +1,189 @@ +/* + _ __ _ __ +| | / /___ _(_) /____ +| | /| / / __ `/ / / ___/ +| |/ |/ / /_/ / / (__ ) +|__/|__/\__,_/_/_/____/ +The electron alternative for Go +(c) Lea Anthony 2019-present +*/ +/* jshint esversion: 6 */ + +export const callbacks = {}; + +/** + * Returns a number from the native browser random function + * + * @returns number + */ +function cryptoRandom() { + var array = new Uint32Array(1); + return window.crypto.getRandomValues(array)[0]; +} + +/** + * Returns a number using da old-skool Math.Random + * I likes to call it LOLRandom + * + * @returns number + */ +function basicRandom() { + return Math.random() * 9007199254740991; +} + +// Pick a random number function based on browser capability +var randomFunc; +if (window.crypto) { + randomFunc = cryptoRandom; +} else { + randomFunc = basicRandom; +} + + +/** + * Call sends a message to the backend to call the binding with the + * given data. A promise is returned and will be completed when the + * backend responds. This will be resolved when the call was successful + * or rejected if an error is passed back. + * There is a timeout mechanism. If the call doesn't respond in the given + * time (in milliseconds) then the promise is rejected. + * + * @export + * @param {string} name + * @param {any=} args + * @param {number=} timeout + * @returns + */ +export function Call(name, args, timeout) { + + // Timeout infinite by default + if (timeout == null) { + timeout = 0; + } + + let windowID = window.wails.window.ID(); + + // Create a promise + return new Promise(function (resolve, reject) { + + // Create a unique callbackID + var callbackID; + do { + callbackID = name + '-' + randomFunc(); + } while (callbacks[callbackID]); + + var timeoutHandle; + // Set timeout + if (timeout > 0) { + timeoutHandle = setTimeout(function () { + reject(Error('Call to ' + name + ' timed out. Request ID: ' + callbackID)); + }, timeout); + } + + // Store callback + callbacks[callbackID] = { + timeoutHandle: timeoutHandle, + reject: reject, + resolve: resolve + }; + + try { + const payload = { + name, + args, + callbackID, + windowID, + }; + + // Make the call + window.WailsInvoke('C' + JSON.stringify(payload)); + } catch (e) { + // eslint-disable-next-line + console.error(e); + } + }); +} + +window.ObfuscatedCall = (id, args, timeout) => { + + // Timeout infinite by default + if (timeout == null) { + timeout = 0; + } + + // Create a promise + return new Promise(function (resolve, reject) { + + // Create a unique callbackID + var callbackID; + do { + callbackID = id + '-' + randomFunc(); + } while (callbacks[callbackID]); + + var timeoutHandle; + // Set timeout + if (timeout > 0) { + timeoutHandle = setTimeout(function () { + reject(Error('Call to method ' + id + ' timed out. Request ID: ' + callbackID)); + }, timeout); + } + + // Store callback + callbacks[callbackID] = { + timeoutHandle: timeoutHandle, + reject: reject, + resolve: resolve + }; + + try { + const payload = { + id, + args, + callbackID, + windowID: window.wails.window.ID(), + }; + + // Make the call + window.WailsInvoke('c' + JSON.stringify(payload)); + } catch (e) { + // eslint-disable-next-line + console.error(e); + } + }); +}; + + +/** + * Called by the backend to return data to a previously called + * binding invocation + * + * @export + * @param {string} incomingMessage + */ +export function Callback(incomingMessage) { + // Parse the message + 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); // eslint-disable-line + throw new Error(error); + } + clearTimeout(callbackData.timeoutHandle); + + delete callbacks[callbackID]; + + if (message.error) { + callbackData.reject(message.error); + } else { + callbackData.resolve(message.result); + } +} diff --git a/v3/internal/runtime/desktop/events.js b/v3/internal/runtime/desktop/events.js new file mode 100644 index 00000000..0ee9b2dd --- /dev/null +++ b/v3/internal/runtime/desktop/events.js @@ -0,0 +1,212 @@ +/* + _ __ _ __ +| | / /___ _(_) /____ +| | /| / / __ `/ / / ___/ +| |/ |/ / /_/ / / (__ ) +|__/|__/\__,_/_/_/____/ +The electron alternative for Go +(c) Lea Anthony 2019-present +*/ +/* jshint esversion: 6 */ + +// Defines a single listener with a maximum number of times to callback + +/** + * The Listener class defines a listener! :-) + * + * @class Listener + */ +class Listener { + /** + * Creates an instance of Listener. + * @param {string} eventName + * @param {function} callback + * @param {number} maxCallbacks + * @memberof Listener + */ + constructor(eventName, callback, maxCallbacks) { + this.eventName = eventName; + // Default of -1 means infinite + this.maxCallbacks = maxCallbacks || -1; + // Callback invokes the callback with the given data + // Returns true if this listener should be destroyed + this.Callback = (data) => { + callback.apply(null, data); + // If maxCallbacks is infinite, return false (do not destroy) + if (this.maxCallbacks === -1) { + return false; + } + // Decrement maxCallbacks. Return true if now 0, otherwise false + this.maxCallbacks -= 1; + return this.maxCallbacks === 0; + }; + } +} + +export const eventListeners = {}; + +/** + * Registers an event listener that will be invoked `maxCallbacks` times before being destroyed + * + * @export + * @param {string} eventName + * @param {function} callback + * @param {number} maxCallbacks + * @returns {function} A function to cancel the listener + */ +export function EventsOnMultiple(eventName, callback, maxCallbacks) { + eventListeners[eventName] = eventListeners[eventName] || []; + const thisListener = new Listener(eventName, callback, maxCallbacks); + eventListeners[eventName].push(thisListener); + return () => listenerOff(thisListener); +} + +/** + * Registers an event listener that will be invoked every time the event is emitted + * + * @export + * @param {string} eventName + * @param {function} callback + * @returns {function} A function to cancel the listener + */ +export function EventsOn(eventName, callback) { + return EventsOnMultiple(eventName, callback, -1); +} + +/** + * Registers an event listener that will be invoked once then destroyed + * + * @export + * @param {string} eventName + * @param {function} callback + * @returns {function} A function to cancel the listener + */ +export function EventsOnce(eventName, callback) { + return EventsOnMultiple(eventName, callback, 1); +} + +function notifyListeners(eventData) { + + // Get the event name + let eventName = eventData.name; + + // Check if we have any listeners for this event + if (eventListeners[eventName]) { + + // Keep a list of listener indexes to destroy + const newEventListenerList = eventListeners[eventName].slice(); + + // Iterate listeners + for (let count = 0; count < eventListeners[eventName].length; count += 1) { + + // Get next listener + const listener = eventListeners[eventName][count]; + + let data = eventData.data; + + // Do the callback + const destroy = listener.Callback(data); + if (destroy) { + // if the listener indicated to destroy itself, add it to the destroy list + newEventListenerList.splice(count, 1); + } + } + + // Update callbacks with new list of listeners + if (newEventListenerList.length === 0) { + removeListener(eventName); + } else { + eventListeners[eventName] = newEventListenerList; + } + } +} + +/** + * Notify informs frontend listeners that an event was emitted with the given data + * + * @export + * @param {string} notifyMessage - encoded notification message + + */ +export function EventsNotify(notifyMessage) { + // Parse the message + let message; + try { + message = JSON.parse(notifyMessage); + } catch (e) { + const error = 'Invalid JSON passed to Notify: ' + notifyMessage; + throw new Error(error); + } + notifyListeners(message); +} + +/** + * Emit an event with the given name and data + * + * @export + * @param {string} eventName + */ +export function EventsEmit(eventName) { + + const payload = { + name: eventName, + data: [].slice.apply(arguments).slice(1), + }; + + // Notify JS listeners + notifyListeners(payload); + + // Notify Go listeners + window.WailsInvoke('EE' + JSON.stringify(payload)); +} + +function removeListener(eventName) { + // Remove local listeners + delete eventListeners[eventName]; + + // Notify Go listeners + window.WailsInvoke('EX' + eventName); +} + +/** + * Off unregisters a listener previously registered with On, + * optionally multiple listeneres can be unregistered via `additionalEventNames` + * + * @param {string} eventName + * @param {...string} additionalEventNames + */ +export function EventsOff(eventName, ...additionalEventNames) { + removeListener(eventName) + + if (additionalEventNames.length > 0) { + additionalEventNames.forEach(eventName => { + removeListener(eventName) + }) + } +} + +/** + * Off unregisters all event listeners previously registered with On + */ + export function EventsOffAll() { + const eventNames = Object.keys(eventListeners); + for (let i = 0; i !== eventNames.length; i++) { + removeListener(eventNames[i]); + } +} + +/** + * listenerOff unregisters a listener previously registered with EventsOn + * + * @param {Listener} listener + */ + function listenerOff(listener) { + const eventName = listener.eventName; + // Remove local listener + eventListeners[eventName] = eventListeners[eventName].filter(l => l !== listener); + + // Clean up if there are no event listeners left + if (eventListeners[eventName].length === 0) { + removeListener(eventName); + } +} diff --git a/v3/internal/runtime/desktop/events.test.js b/v3/internal/runtime/desktop/events.test.js new file mode 100644 index 00000000..69ece676 --- /dev/null +++ b/v3/internal/runtime/desktop/events.test.js @@ -0,0 +1,132 @@ +import { EventsOnMultiple, EventsNotify, eventListeners, EventsOn, EventsEmit, EventsOffAll, EventsOnce, EventsOff } from './events' +import { expect, describe, it, beforeAll, vi, afterEach, beforeEach } from 'vitest' +// Edit an assertion and save to see HMR in action + +beforeAll(() => { + window.WailsInvoke = vi.fn(() => {}) +}) + +afterEach(() => { + EventsOffAll(); + vi.resetAllMocks() +}) + +describe('EventsOnMultiple', () => { + it('should stop after a specified number of times', () => { + const cb = vi.fn() + EventsOnMultiple('a', cb, 5) + EventsNotify(JSON.stringify({name: 'a', data: {}})) + EventsNotify(JSON.stringify({name: 'a', data: {}})) + EventsNotify(JSON.stringify({name: 'a', data: {}})) + EventsNotify(JSON.stringify({name: 'a', data: {}})) + EventsNotify(JSON.stringify({name: 'a', data: {}})) + EventsNotify(JSON.stringify({name: 'a', data: {}})) + expect(cb).toBeCalledTimes(5); + expect(window.WailsInvoke).toBeCalledTimes(1); + expect(window.WailsInvoke).toHaveBeenLastCalledWith('EXa'); + }) + + it('should return a cancel fn', () => { + const cb = vi.fn() + const cancel = EventsOnMultiple('a', cb, 5) + EventsNotify(JSON.stringify({name: 'a', data: {}})) + EventsNotify(JSON.stringify({name: 'a', data: {}})) + cancel() + EventsNotify(JSON.stringify({name: 'a', data: {}})) + EventsNotify(JSON.stringify({name: 'a', data: {}})) + expect(cb).toBeCalledTimes(2) + expect(window.WailsInvoke).toBeCalledTimes(1); + expect(window.WailsInvoke).toHaveBeenLastCalledWith('EXa'); + }) +}) + +describe('EventsOn', () => { + it('should create a listener with a count of -1', () => { + EventsOn('a', () => {}) + expect(eventListeners['a'][0].maxCallbacks).toBe(-1) + }) + + it('should return a cancel fn', () => { + const cancel = EventsOn('a', () => {}) + cancel(); + expect(window.WailsInvoke).toBeCalledTimes(1); + expect(window.WailsInvoke).toHaveBeenLastCalledWith('EXa'); + }) +}) + +describe('EventsOnce', () => { + it('should create a listener with a count of 1', () => { + EventsOnce('a', () => {}) + expect(eventListeners['a'][0].maxCallbacks).toBe(1) + }) + + it('should return a cancel fn', () => { + const cancel = EventsOn('a', () => {}) + cancel(); + expect(window.WailsInvoke).toBeCalledTimes(1); + expect(window.WailsInvoke).toHaveBeenLastCalledWith('EXa'); + }) +}) + +describe('EventsNotify', () => { + it('should inform a listener', () => { + const cb = vi.fn() + EventsOn('a', cb) + EventsNotify(JSON.stringify({name: 'a', data: ["one", "two", "three"]})) + expect(cb).toBeCalledTimes(1); + expect(cb).toHaveBeenLastCalledWith("one", "two", "three"); + expect(window.WailsInvoke).toBeCalledTimes(0); + }) +}) + +describe('EventsEmit', () => { + it('should emit an event', () => { + EventsEmit('a', 'one', 'two', 'three') + expect(window.WailsInvoke).toBeCalledTimes(1); + const calledWith = window.WailsInvoke.calls[0][0]; + expect(calledWith.slice(0, 2)).toBe('EE') + expect(JSON.parse(calledWith.slice(2))).toStrictEqual({data: ["one", "two", "three"], name: "a"}) + }) +}) + +describe('EventsOff', () => { + beforeEach(() => { + EventsOn('a', () => {}) + EventsOn('a', () => {}) + EventsOn('a', () => {}) + EventsOn('b', () => {}) + EventsOn('c', () => {}) + }) + + it('should cancel all event listeners for a single type', () => { + EventsOff('a') + expect(eventListeners['a']).toBeUndefined() + expect(eventListeners['b']).not.toBeUndefined() + expect(eventListeners['c']).not.toBeUndefined() + expect(window.WailsInvoke).toBeCalledTimes(1); + expect(window.WailsInvoke).toHaveBeenLastCalledWith('EXa'); + }) + + it('should cancel all event listeners for multiple types', () => { + EventsOff('a', 'b') + expect(eventListeners['a']).toBeUndefined() + expect(eventListeners['b']).toBeUndefined() + expect(eventListeners['c']).not.toBeUndefined() + expect(window.WailsInvoke).toBeCalledTimes(2); + expect(window.WailsInvoke.calls).toStrictEqual([['EXa'], ['EXb']]); + }) +}) + +describe('EventsOffAll', () => { + it('should cancel all event listeners', () => { + EventsOn('a', () => {}) + EventsOn('a', () => {}) + EventsOn('a', () => {}) + EventsOn('b', () => {}) + EventsOn('c', () => {}) + EventsOffAll() + expect(eventListeners).toStrictEqual({}) + expect(window.WailsInvoke).toBeCalledTimes(3); + expect(window.WailsInvoke.calls).toStrictEqual([['EXa'], ['EXb'], ['EXc']]); + }) +}) diff --git a/v3/internal/runtime/desktop/ipc.js b/v3/internal/runtime/desktop/ipc.js new file mode 100644 index 00000000..62fdbdf4 --- /dev/null +++ b/v3/internal/runtime/desktop/ipc.js @@ -0,0 +1,23 @@ +/* + _ __ _ __ +| | / /___ _(_) /____ +| | /| / / __ `/ / / ___/ +| |/ |/ / /_/ / / (__ ) +|__/|__/\__,_/_/_/____/ +The electron alternative for Go +(c) Lea Anthony 2019-present +*/ +/* jshint esversion: 6 */ + +/** + * WailsInvoke sends the given message to the backend + * + * @param {string} message + */ + +(function () { + window.WailsInvoke = (message) => { + WINDOWS && window.chrome.webview.postMessage(message); + (DARWIN || LINUX) && window.webkit.messageHandlers.wails.postMessage(message); + } +})(); \ No newline at end of file diff --git a/v3/internal/runtime/desktop/log.js b/v3/internal/runtime/desktop/log.js new file mode 100644 index 00000000..ff52f591 --- /dev/null +++ b/v3/internal/runtime/desktop/log.js @@ -0,0 +1,113 @@ +/* + _ __ _ __ +| | / /___ _(_) /____ +| | /| / / __ `/ / / ___/ +| |/ |/ / /_/ / / (__ ) +|__/|__/\__,_/_/_/____/ +The electron alternative for Go +(c) Lea Anthony 2019-present +*/ + +/* jshint esversion: 6 */ + +/** + * Sends a log message to the backend with the given level + message + * + * @param {string} level + * @param {string} message + */ +function sendLogMessage(level, message) { + + // Log Message format: + // l[type][message] + window.WailsInvoke('L' + level + message); +} + +/** + * Log the given trace message with the backend + * + * @export + * @param {string} message + */ +export function LogTrace(message) { + sendLogMessage('T', message); +} + +/** + * Log the given message with the backend + * + * @export + * @param {string} message + */ +export function LogPrint(message) { + sendLogMessage('P', message); +} + +/** + * Log the given debug message with the backend + * + * @export + * @param {string} message + */ +export function LogDebug(message) { + sendLogMessage('D', message); +} + +/** + * Log the given info message with the backend + * + * @export + * @param {string} message + */ +export function LogInfo(message) { + sendLogMessage('I', message); +} + +/** + * Log the given warning message with the backend + * + * @export + * @param {string} message + */ +export function LogWarning(message) { + sendLogMessage('W', message); +} + +/** + * Log the given error message with the backend + * + * @export + * @param {string} message + */ +export function LogError(message) { + sendLogMessage('E', message); +} + +/** + * Log the given fatal message with the backend + * + * @export + * @param {string} message + */ +export function LogFatal(message) { + sendLogMessage('F', message); +} + +/** + * Sets the Log level to the given log level + * + * @export + * @param {number} loglevel + */ +export function SetLogLevel(loglevel) { + sendLogMessage('S', loglevel); +} + +// Log levels +export const LogLevel = { + TRACE: 1, + DEBUG: 2, + INFO: 3, + WARNING: 4, + ERROR: 5, +}; diff --git a/v3/internal/runtime/desktop/main.js b/v3/internal/runtime/desktop/main.js new file mode 100644 index 00000000..331bc866 --- /dev/null +++ b/v3/internal/runtime/desktop/main.js @@ -0,0 +1,80 @@ +/* + _ __ _ __ +| | / /___ _(_) /____ +| | /| / / __ `/ / / ___/ +| |/ |/ / /_/ / / (__ ) +|__/|__/\__,_/_/_/____/ +The electron alternative for Go +(c) Lea Anthony 2019-present +*/ +/* jshint esversion: 9 */ + +import "./ipc.js"; +import {Callback, callbacks} from './calls'; +import {EventsNotify, eventListeners} from "./events"; +import {SetBindings} from "./bindings"; + +import * as Window from "./window"; +import * as Screen from "./screen"; +import * as Browser from "./browser"; +import * as Log from './log'; + +let windowID = -1; + + +export function Quit() { + window.WailsInvoke('Q'); +} + +export function Show() { + window.WailsInvoke('S'); +} + +export function Hide() { + window.WailsInvoke('H'); +} + +// export function Environment() { +// return Call(":wails:Environment"); +// } + +// Internal wails endpoints +window.wails = { + Callback, + callbacks, + EventsNotify, + eventListeners, + SetBindings, + window: { + ID: () => { + return windowID + }, + } +}; + +window.runtime = { + ...Log, + ...Window, + ...Browser, + ...Screen, + EventsOn, + EventsOnce, + EventsOnMultiple, + EventsEmit, + EventsOff, + // Environment, + Show, + Hide, + Quit, +} + +// Process the expected runtime config from the backend +if( window.wails_config ) { + windowID = window.wails_config.windowID; + window.wails_config = null; +} + +if (DEBUG) { + console.log("Wails v3.0.0 Debug Mode Enabled"); +} + diff --git a/v3/internal/runtime/desktop/screen.js b/v3/internal/runtime/desktop/screen.js new file mode 100644 index 00000000..f2afb050 --- /dev/null +++ b/v3/internal/runtime/desktop/screen.js @@ -0,0 +1,25 @@ +/* + _ __ _ __ +| | / /___ _(_) /____ +| | /| / / __ `/ / / ___/ +| |/ |/ / /_/ / / (__ ) +|__/|__/\__,_/_/_/____/ +The electron alternative for Go +(c) Lea Anthony 2019-present +*/ + +/* jshint esversion: 9 */ + + +import {Call} from "./calls"; + + +/** + * Gets the all screens. Call this anew each time you want to refresh data from the underlying windowing system. + * @export + * @typedef {import('../wrapper/runtime').Screen} Screen + * @return {Promise<{Screen[]}>} The screens + */ +export function ScreenGetAll() { + return Call(":wails:ScreenGetAll"); +} diff --git a/v3/internal/runtime/desktop/window.js b/v3/internal/runtime/desktop/window.js new file mode 100644 index 00000000..f24cdd9c --- /dev/null +++ b/v3/internal/runtime/desktop/window.js @@ -0,0 +1,269 @@ +/* + _ __ _ __ +| | / /___ _(_) /____ +| | /| / / __ `/ / / ___/ +| |/ |/ / /_/ / / (__ ) +|__/|__/\__,_/_/_/____/ +The electron alternative for Go +(c) Lea Anthony 2019-present +*/ + +/* jshint esversion: 9 */ + + +import {Call} from "./calls"; + +export function WindowReload() { + window.location.reload(); +} + +export function WindowReloadApp() { + window.WailsInvoke('WR'); +} + +export function WindowSetSystemDefaultTheme() { + window.WailsInvoke('WASDT'); +} + +export function WindowSetLightTheme() { + window.WailsInvoke('WALT'); +} + +export function WindowSetDarkTheme() { + window.WailsInvoke('WADT'); +} + +/** + * Place the window in the center of the screen + * + * @export + */ +export function WindowCenter() { + window.WailsInvoke('Wc'); +} + +/** + * Sets the window title + * + * @param {string} title + * @export + */ +export function WindowSetTitle(title) { + window.WailsInvoke('WT' + title); +} + +/** + * Makes the window go fullscreen + * + * @export + */ +export function WindowFullscreen() { + window.WailsInvoke('WF'); +} + +/** + * Reverts the window from fullscreen + * + * @export + */ +export function WindowUnfullscreen() { + window.WailsInvoke('Wf'); +} + +/** + * Returns the state of the window, i.e. whether the window is in full screen mode or not. + * + * @export + * @return {Promise} The state of the window + */ +export function WindowIsFullscreen() { + return Call(":wails:WindowIsFullscreen"); +} + +/** + * Set the Size of the window + * + * @export + * @param {number} width + * @param {number} height + */ +export function WindowSetSize(width, height) { + window.WailsInvoke('Ws:' + width + ':' + height); +} + +/** + * Get the Size of the window + * + * @export + * @return {Promise<{w: number, h: number}>} The size of the window + + */ +export function WindowGetSize() { + return Call(":wails:WindowGetSize"); +} + +/** + * Set the maximum size of the window + * + * @export + * @param {number} width + * @param {number} height + */ +export function WindowSetMaxSize(width, height) { + window.WailsInvoke('WZ:' + width + ':' + height); +} + +/** + * Set the minimum size of the window + * + * @export + * @param {number} width + * @param {number} height + */ +export function WindowSetMinSize(width, height) { + window.WailsInvoke('Wz:' + width + ':' + height); +} + + + +/** + * Set the window AlwaysOnTop or not on top + * + * @export + */ +export function WindowSetAlwaysOnTop(b) { + + window.WailsInvoke('WATP:' + (b ? '1' : '0')); +} + + + + +/** + * Set the Position of the window + * + * @export + * @param {number} x + * @param {number} y + */ +export function WindowSetPosition(x, y) { + window.WailsInvoke('Wp:' + x + ':' + y); +} + +/** + * Get the Position of the window + * + * @export + * @return {Promise<{x: number, y: number}>} The position of the window + */ +export function WindowGetPosition() { + return Call(":wails:WindowGetPos"); +} + +/** + * Hide the Window + * + * @export + */ +export function WindowHide() { + window.WailsInvoke('WH'); +} + +/** + * Show the Window + * + * @export + */ +export function WindowShow() { + window.WailsInvoke('WS'); +} + +/** + * Maximise the Window + * + * @export + */ +export function WindowMaximise() { + window.WailsInvoke('WM'); +} + +/** + * Toggle the Maximise of the Window + * + * @export + */ +export function WindowToggleMaximise() { + window.WailsInvoke('Wt'); +} + +/** + * Unmaximise the Window + * + * @export + */ +export function WindowUnmaximise() { + window.WailsInvoke('WU'); +} + +/** + * Returns the state of the window, i.e. whether the window is maximised or not. + * + * @export + * @return {Promise} The state of the window + */ +export function WindowIsMaximised() { + return Call(":wails:WindowIsMaximised"); +} + +/** + * Minimise the Window + * + * @export + */ +export function WindowMinimise() { + window.WailsInvoke('Wm'); +} + +/** + * Unminimise the Window + * + * @export + */ +export function WindowUnminimise() { + window.WailsInvoke('Wu'); +} + +/** + * Returns the state of the window, i.e. whether the window is minimised or not. + * + * @export + * @return {Promise} The state of the window + */ +export function WindowIsMinimised() { + return Call(":wails:WindowIsMinimised"); +} + +/** + * Returns the state of the window, i.e. whether the window is normal or not. + * + * @export + * @return {Promise} The state of the window + */ +export function WindowIsNormal() { + return Call(":wails:WindowIsNormal"); +} + +/** + * Sets the background colour of the window + * + * @export + * @param {number} R Red + * @param {number} G Green + * @param {number} B Blue + * @param {number} A Alpha + */ +export function WindowSetBackgroundColour(R, G, B, A) { + let rgba = JSON.stringify({r: R || 0, g: G || 0, b: B || 0, a: A || 255}); + window.WailsInvoke('Wr:' + rgba); +} + diff --git a/v3/internal/runtime/dev/Overlay.svelte b/v3/internal/runtime/dev/Overlay.svelte new file mode 100644 index 00000000..dfe02b21 --- /dev/null +++ b/v3/internal/runtime/dev/Overlay.svelte @@ -0,0 +1,54 @@ + + +{#if $overlayVisible } +
+
+
+
+
+{/if} + + \ No newline at end of file diff --git a/v3/internal/runtime/dev/build.js b/v3/internal/runtime/dev/build.js new file mode 100644 index 00000000..6e5e8bb2 --- /dev/null +++ b/v3/internal/runtime/dev/build.js @@ -0,0 +1,15 @@ +/* jshint esversion: 8 */ +const esbuild = require("esbuild"); +const sveltePlugin = require("esbuild-svelte"); + +esbuild + .build({ + entryPoints: ["main.js"], + bundle: true, + minify: true, + outfile: "../ipc_websocket.js", + plugins: [sveltePlugin({compileOptions: {css: true}})], + logLevel: "info", + sourcemap: "inline", + }) + .catch(() => process.exit(1)); \ No newline at end of file diff --git a/v3/internal/runtime/dev/log.js b/v3/internal/runtime/dev/log.js new file mode 100644 index 00000000..e128c97f --- /dev/null +++ b/v3/internal/runtime/dev/log.js @@ -0,0 +1,8 @@ +export function log(message) { + // eslint-disable-next-line + console.log( + '%c wails dev %c ' + message + ' ', + 'background: #aa0000; color: #fff; border-radius: 3px 0px 0px 3px; padding: 1px; font-size: 0.7rem', + 'background: #009900; color: #fff; border-radius: 0px 3px 3px 0px; padding: 1px; font-size: 0.7rem' + ); +} \ No newline at end of file diff --git a/v3/internal/runtime/dev/main.js b/v3/internal/runtime/dev/main.js new file mode 100644 index 00000000..e6e05be5 --- /dev/null +++ b/v3/internal/runtime/dev/main.js @@ -0,0 +1,125 @@ +/* + _ __ _ __ +| | / /___ _(_) /____ +| | /| / / __ `/ / / ___/ +| |/ |/ / /_/ / / (__ ) +|__/|__/\__,_/_/_/____/ +The electron alternative for Go +(c) Lea Anthony 2019-present +*/ +/* jshint esversion: 6 */ + +import {log} from "./log"; +import Overlay from "./Overlay.svelte"; +import {hideOverlay, showOverlay} from "./store"; + +let components = {}; + +let wailsInvokeInternal = null; +let messageQueue = []; + +window.WailsInvoke = (message) => { + if (!wailsInvokeInternal) { + console.log("Queueing: " + message); + messageQueue.push(message); + return; + } + wailsInvokeInternal(message); +}; + +window.addEventListener('DOMContentLoaded', () => { + components.overlay = new Overlay({ + target: document.body, + anchor: document.querySelector('#wails-spinner'), + }); +}); + +let websocket = null; +let connectTimer; + +window.onbeforeunload = function () { + if (websocket) { + websocket.onclose = function () { + }; + websocket.close(); + websocket = null; + } +}; + +// ...and attempt to connect +connect(); + +function setupIPCBridge() { + wailsInvokeInternal = (message) => { + websocket.send(message); + }; + for (let i = 0; i < messageQueue.length; i++) { + console.log("sending queued message: " + messageQueue[i]); + window.WailsInvoke(messageQueue[i]); + } + messageQueue = []; +} + +// Handles incoming websocket connections +function handleConnect() { + log('Connected to backend'); + hideOverlay(); + setupIPCBridge(); + clearInterval(connectTimer); + websocket.onclose = handleDisconnect; + websocket.onmessage = handleMessage; +} + +// Handles websocket disconnects +function handleDisconnect() { + log('Disconnected from backend'); + websocket = null; + showOverlay(); + connect(); +} + +function _connect() { + if (websocket == null) { + websocket = new WebSocket('ws://' + window.location.host + '/wails/ipc'); + websocket.onopen = handleConnect; + websocket.onerror = function (e) { + e.stopImmediatePropagation(); + e.stopPropagation(); + e.preventDefault(); + websocket = null; + return false; + }; + } +} + +// Try to connect to the backend every .5s +function connect() { + _connect(); + connectTimer = setInterval(_connect, 500); +} + +function handleMessage(message) { + + if (message.data === "reload") { + window.runtime.WindowReload(); + return; + } + if (message.data === "reloadapp") { + window.runtime.WindowReloadApp() + return; + } + + // As a bridge we ignore js and css injections + switch (message.data[0]) { + // Notifications + case 'n': + window.wails.EventsNotify(message.data.slice(1)); + break; + case 'c': + const callbackData = message.data.slice(1); + window.wails.Callback(callbackData); + break; + default: + log('Unknown message: ' + message.data); + } +} diff --git a/v3/internal/runtime/dev/package-lock.json b/v3/internal/runtime/dev/package-lock.json new file mode 100644 index 00000000..c5917b6f --- /dev/null +++ b/v3/internal/runtime/dev/package-lock.json @@ -0,0 +1,1536 @@ +{ + "name": "dev", + "version": "3.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "dev", + "version": "3.0.0", + "license": "ISC", + "devDependencies": { + "esbuild": "^0.12.17", + "esbuild-svelte": "^0.5.6", + "npm-run-all": "^4.1.5", + "svelte": "^3.49.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.18.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", + "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.12.21", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.21.tgz", + "integrity": "sha512-7hyXbU3g94aREufI/5nls7Xcc+RGQeZWZApm6hoBaFvt2BPtpT4TjFMQ9Tb1jU8XyBGz00ShmiyflCogphMHFQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + } + }, + "node_modules/esbuild-svelte": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/esbuild-svelte/-/esbuild-svelte-0.5.6.tgz", + "integrity": "sha512-Bz8nU45FrT6sP/Tf3M2rQUuBGxnDSNSPZNIoYwSNt5H+wjSyo/t+zm94tgnOZsR6GgpDMbNQgo4jGbK0NLvEfw==", + "dev": true, + "dependencies": { + "svelte": "^3.42.6" + }, + "peerDependencies": { + "esbuild": ">=0.9.6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", + "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", + "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", + "dev": true + }, + "node_modules/string.prototype.padend": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz", + "integrity": "sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svelte": { + "version": "3.52.0", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.52.0.tgz", + "integrity": "sha512-FxcnEUOAVfr10vDU5dVgJN19IvqeHQCS1zfe8vayTfis9A2t5Fhx+JDe5uv/C3j//bB1umpLJ6quhgs9xyUbCQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + } + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.18.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", + "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "esbuild": { + "version": "0.12.21", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.21.tgz", + "integrity": "sha512-7hyXbU3g94aREufI/5nls7Xcc+RGQeZWZApm6hoBaFvt2BPtpT4TjFMQ9Tb1jU8XyBGz00ShmiyflCogphMHFQ==", + "dev": true + }, + "esbuild-svelte": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/esbuild-svelte/-/esbuild-svelte-0.5.6.tgz", + "integrity": "sha512-Bz8nU45FrT6sP/Tf3M2rQUuBGxnDSNSPZNIoYwSNt5H+wjSyo/t+zm94tgnOZsR6GgpDMbNQgo4jGbK0NLvEfw==", + "dev": true, + "requires": { + "svelte": "^3.42.6" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "is-core-module": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", + "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", + "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", + "dev": true + }, + "string.prototype.padend": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz", + "integrity": "sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svelte": { + "version": "3.52.0", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.52.0.tgz", + "integrity": "sha512-FxcnEUOAVfr10vDU5dVgJN19IvqeHQCS1zfe8vayTfis9A2t5Fhx+JDe5uv/C3j//bB1umpLJ6quhgs9xyUbCQ==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + } + } +} diff --git a/v3/internal/runtime/dev/package.json b/v3/internal/runtime/dev/package.json new file mode 100644 index 00000000..ff5024ed --- /dev/null +++ b/v3/internal/runtime/dev/package.json @@ -0,0 +1,18 @@ +{ + "name": "dev", + "version": "3.0.0", + "description": "Wails JS Dev", + "main": "main.js", + "scripts": { + "build": "run-p build:*", + "build:dev": "node build.js" + }, + "author": "Lea Anthony ", + "license": "ISC", + "devDependencies": { + "esbuild": "^0.12.17", + "esbuild-svelte": "^0.5.6", + "npm-run-all": "^4.1.5", + "svelte": "^3.49.0" + } +} diff --git a/v3/internal/runtime/dev/store.js b/v3/internal/runtime/dev/store.js new file mode 100644 index 00000000..fc085570 --- /dev/null +++ b/v3/internal/runtime/dev/store.js @@ -0,0 +1,12 @@ +import {writable} from 'svelte/store'; + +/** Overlay */ +export const overlayVisible = writable(false); + +export function showOverlay() { + overlayVisible.set(true); +} + +export function hideOverlay() { + overlayVisible.set(false); +} diff --git a/v3/internal/runtime/ipc.go b/v3/internal/runtime/ipc.go new file mode 100644 index 00000000..eebcd302 --- /dev/null +++ b/v3/internal/runtime/ipc.go @@ -0,0 +1,9 @@ +package runtime + +import _ "embed" + +//go:embed ipc_websocket.js +var WebsocketIPC []byte + +//go:embed ipc.js +var DesktopIPC []byte diff --git a/v3/internal/runtime/ipc.js b/v3/internal/runtime/ipc.js new file mode 100644 index 00000000..6066287a --- /dev/null +++ b/v3/internal/runtime/ipc.js @@ -0,0 +1 @@ +(()=>{(function(){window.WailsInvoke=e=>{WINDOWS&&window.chrome.webview.postMessage(e),(DARWIN||LINUX)&&window.webkit.messageHandlers.wails.postMessage(e)}})();})(); diff --git a/v3/internal/runtime/ipc_websocket.js b/v3/internal/runtime/ipc_websocket.js new file mode 100644 index 00000000..d5dca66a --- /dev/null +++ b/v3/internal/runtime/ipc_websocket.js @@ -0,0 +1,22 @@ +(()=>{function D(t){console.log("%c wails dev %c "+t+" ","background: #aa0000; color: #fff; border-radius: 3px 0px 0px 3px; padding: 1px; font-size: 0.7rem","background: #009900; color: #fff; border-radius: 0px 3px 3px 0px; padding: 1px; font-size: 0.7rem")}function p(){}var A=t=>t;function N(t){return t()}function it(){return Object.create(null)}function b(t){t.forEach(N)}function w(t){return typeof t=="function"}function L(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}function ot(t){return Object.keys(t).length===0}function rt(t,...e){if(t==null)return p;let n=t.subscribe(...e);return n.unsubscribe?()=>n.unsubscribe():n}function st(t,e,n){t.$$.on_destroy.push(rt(e,n))}var ct=typeof window!="undefined",Ot=ct?()=>window.performance.now():()=>Date.now(),P=ct?t=>requestAnimationFrame(t):p;var x=new Set;function lt(t){x.forEach(e=>{e.c(t)||(x.delete(e),e.f())}),x.size!==0&&P(lt)}function Dt(t){let e;return x.size===0&&P(lt),{promise:new Promise(n=>{x.add(e={c:t,f:n})}),abort(){x.delete(e)}}}var ut=!1;function At(){ut=!0}function Lt(){ut=!1}function Bt(t,e){t.appendChild(e)}function at(t,e,n){let i=R(t);if(!i.getElementById(e)){let o=B("style");o.id=e,o.textContent=n,ft(i,o)}}function R(t){if(!t)return document;let e=t.getRootNode?t.getRootNode():t.ownerDocument;return e&&e.host?e:t.ownerDocument}function Tt(t){let e=B("style");return ft(R(t),e),e.sheet}function ft(t,e){return Bt(t.head||t,e),e.sheet}function W(t,e,n){t.insertBefore(e,n||null)}function S(t){t.parentNode.removeChild(t)}function B(t){return document.createElement(t)}function Jt(t){return document.createTextNode(t)}function dt(){return Jt("")}function ht(t,e,n){n==null?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function zt(t){return Array.from(t.childNodes)}function Ht(t,e,{bubbles:n=!1,cancelable:i=!1}={}){let o=document.createEvent("CustomEvent");return o.initCustomEvent(t,n,i,e),o}var T=new Map,J=0;function Gt(t){let e=5381,n=t.length;for(;n--;)e=(e<<5)-e^t.charCodeAt(n);return e>>>0}function qt(t,e){let n={stylesheet:Tt(e),rules:{}};return T.set(t,n),n}function _t(t,e,n,i,o,c,s,l=0){let f=16.666/i,r=`{ +`;for(let g=0;g<=1;g+=f){let F=e+(n-e)*c(g);r+=g*100+`%{${s(F,1-F)}} +`}let y=r+`100% {${s(n,1-n)}} +}`,a=`__svelte_${Gt(y)}_${l}`,u=R(t),{stylesheet:h,rules:_}=T.get(u)||qt(u,t);_[a]||(_[a]=!0,h.insertRule(`@keyframes ${a} ${y}`,h.cssRules.length));let v=t.style.animation||"";return t.style.animation=`${v?`${v}, `:""}${a} ${i}ms linear ${o}ms 1 both`,J+=1,a}function Kt(t,e){let n=(t.style.animation||"").split(", "),i=n.filter(e?c=>c.indexOf(e)<0:c=>c.indexOf("__svelte")===-1),o=n.length-i.length;o&&(t.style.animation=i.join(", "),J-=o,J||Nt())}function Nt(){P(()=>{J||(T.forEach(t=>{let{ownerNode:e}=t.stylesheet;e&&S(e)}),T.clear())})}var V;function C(t){V=t}var k=[];var pt=[],z=[],mt=[],Pt=Promise.resolve(),U=!1;function Rt(){U||(U=!0,Pt.then(yt))}function $(t){z.push(t)}var X=new Set,H=0;function yt(){let t=V;do{for(;H{E=null})),E}function Z(t,e,n){t.dispatchEvent(Ht(`${e?"intro":"outro"}${n}`))}var G=new Set,m;function gt(){m={r:0,c:[],p:m}}function bt(){m.r||b(m.c),m=m.p}function I(t,e){t&&t.i&&(G.delete(t),t.i(e))}function Q(t,e,n,i){if(t&&t.o){if(G.has(t))return;G.add(t),m.c.push(()=>{G.delete(t),i&&(n&&t.d(1),i())}),t.o(e)}else i&&i()}var Ut={duration:0};function Y(t,e,n,i){let o=e(t,n),c=i?0:1,s=null,l=null,f=null;function r(){f&&Kt(t,f)}function y(u,h){let _=u.b-c;return h*=Math.abs(_),{a:c,b:u.b,d:_,duration:h,start:u.start,end:u.start+h,group:u.group}}function a(u){let{delay:h=0,duration:_=300,easing:v=A,tick:g=p,css:F}=o||Ut,K={start:Ot()+h,b:u};u||(K.group=m,m.r+=1),s||l?l=K:(F&&(r(),f=_t(t,c,u,_,h,v,F)),u&&g(0,1),s=y(K,_),$(()=>Z(t,u,"start")),Dt(O=>{if(l&&O>l.start&&(s=y(l,_),l=null,Z(t,s.b,"start"),F&&(r(),f=_t(t,c,s.b,s.duration,0,v,o.css))),s){if(O>=s.end)g(c=s.b,1-c),Z(t,s.b,"end"),l||(s.b?r():--s.group.r||b(s.group.c)),s=null;else if(O>=s.start){let jt=O-s.start;c=s.a+s.d*v(jt/s.duration),g(c,1-c)}}return!!(s||l)}))}return{run(u){w(o)?Vt().then(()=>{o=o(),a(u)}):a(u)},end(){r(),s=l=null}}}var le=typeof window!="undefined"?window:typeof globalThis!="undefined"?globalThis:global;var ue=new Set(["allowfullscreen","allowpaymentrequest","async","autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","hidden","inert","ismap","itemscope","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"]);function Xt(t,e,n,i){let{fragment:o,after_update:c}=t.$$;o&&o.m(e,n),i||$(()=>{let s=t.$$.on_mount.map(N).filter(w);t.$$.on_destroy?t.$$.on_destroy.push(...s):b(s),t.$$.on_mount=[]}),c.forEach($)}function wt(t,e){let n=t.$$;n.fragment!==null&&(b(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function Zt(t,e){t.$$.dirty[0]===-1&&(k.push(t),Rt(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{let _=h.length?h[0]:u;return r.ctx&&o(r.ctx[a],r.ctx[a]=_)&&(!r.skip_bound&&r.bound[a]&&r.bound[a](_),y&&Zt(t,a)),u}):[],r.update(),y=!0,b(r.before_update),r.fragment=i?i(r.ctx):!1,e.target){if(e.hydrate){At();let a=zt(e.target);r.fragment&&r.fragment.l(a),a.forEach(S)}else r.fragment&&r.fragment.c();e.intro&&I(t.$$.fragment),Xt(t,e.target,e.anchor,e.customElement),Lt(),yt()}C(f)}var Qt;typeof HTMLElement=="function"&&(Qt=class extends HTMLElement{constructor(){super();this.attachShadow({mode:"open"})}connectedCallback(){let{on_mount:t}=this.$$;this.$$.on_disconnect=t.map(N).filter(w);for(let e in this.$$.slotted)this.appendChild(this.$$.slotted[e])}attributeChangedCallback(t,e,n){this[t]=n}disconnectedCallback(){b(this.$$.on_disconnect)}$destroy(){wt(this,1),this.$destroy=p}$on(t,e){if(!w(e))return p;let n=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return n.push(e),()=>{let i=n.indexOf(e);i!==-1&&n.splice(i,1)}}$set(t){this.$$set&&!ot(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}});var tt=class{$destroy(){wt(this,1),this.$destroy=p}$on(e,n){if(!w(n))return p;let i=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return i.push(n),()=>{let o=i.indexOf(n);o!==-1&&i.splice(o,1)}}$set(e){this.$$set&&!ot(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}};var M=[];function Ft(t,e=p){let n,i=new Set;function o(l){if(L(t,l)&&(t=l,n)){let f=!M.length;for(let r of i)r[1](),M.push(r,t);if(f){for(let r=0;r{i.delete(r),i.size===0&&(n(),n=null)}}return{set:o,update:c,subscribe:s}}var q=Ft(!1);function xt(){q.set(!0)}function $t(){q.set(!1)}function et(t,{delay:e=0,duration:n=400,easing:i=A}={}){let o=+getComputedStyle(t).opacity;return{delay:e,duration:n,easing:i,css:c=>`opacity: ${c*o}`}}function Yt(t){at(t,"svelte-181h7z",`.wails-reconnect-overlay.svelte-181h7z{position:fixed;top:0;left:0;width:100%;height:100%;backdrop-filter:blur(2px) saturate(0%) contrast(50%) brightness(25%);z-index:999999 + }.wails-reconnect-overlay-content.svelte-181h7z{position:relative;top:50%;transform:translateY(-50%);margin:0;background-image:url(data:image/png;base64,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);background-repeat:no-repeat;background-position:center + }.wails-reconnect-overlay-loadingspinner.svelte-181h7z{pointer-events:none;width:2.5em;height:2.5em;border:.4em solid transparent;border-color:#f00 #eee0 #f00 #eee0;border-radius:50%;animation:svelte-181h7z-loadingspin 1s linear infinite;margin:auto;padding:2.5em + }@keyframes svelte-181h7z-loadingspin{100%{transform:rotate(360deg)}}`)}function Mt(t){let e,n,i;return{c(){e=B("div"),e.innerHTML='
',ht(e,"class","wails-reconnect-overlay svelte-181h7z")},m(o,c){W(o,e,c),i=!0},i(o){i||($(()=>{n||(n=Y(e,et,{duration:300},!0)),n.run(1)}),i=!0)},o(o){n||(n=Y(e,et,{duration:300},!1)),n.run(0),i=!1},d(o){o&&S(e),o&&n&&n.end()}}}function te(t){let e,n,i=t[0]&&Mt(t);return{c(){i&&i.c(),e=dt()},m(o,c){i&&i.m(o,c),W(o,e,c),n=!0},p(o,[c]){o[0]?i?c&1&&I(i,1):(i=Mt(o),i.c(),I(i,1),i.m(e.parentNode,e)):i&&(gt(),Q(i,1,1,()=>{i=null}),bt())},i(o){n||(I(i),n=!0)},o(o){Q(i),n=!1},d(o){i&&i.d(o),o&&S(e)}}}function ee(t,e,n){let i;return st(t,q,o=>n(0,i=o)),[i]}var St=class extends tt{constructor(e){super();vt(this,e,ee,te,L,{},Yt)}},Ct=St;var ne={},nt=null,j=[];window.WailsInvoke=t=>{if(!nt){console.log("Queueing: "+t),j.push(t);return}nt(t)};window.addEventListener("DOMContentLoaded",()=>{ne.overlay=new Ct({target:document.body,anchor:document.querySelector("#wails-spinner")})});var d=null,kt;window.onbeforeunload=function(){d&&(d.onclose=function(){},d.close(),d=null)};It();function ie(){nt=t=>{d.send(t)};for(let t=0;t=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@types/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", + "dev": true + }, + "node_modules/@types/chai-subset": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", + "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", + "dev": true, + "dependencies": { + "@types/chai": "*" + } + }, + "node_modules/@types/node": { + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/esbuild": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", + "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.15.18", + "@esbuild/linux-loong64": "0.15.18", + "esbuild-android-64": "0.15.18", + "esbuild-android-arm64": "0.15.18", + "esbuild-darwin-64": "0.15.18", + "esbuild-darwin-arm64": "0.15.18", + "esbuild-freebsd-64": "0.15.18", + "esbuild-freebsd-arm64": "0.15.18", + "esbuild-linux-32": "0.15.18", + "esbuild-linux-64": "0.15.18", + "esbuild-linux-arm": "0.15.18", + "esbuild-linux-arm64": "0.15.18", + "esbuild-linux-mips64le": "0.15.18", + "esbuild-linux-ppc64le": "0.15.18", + "esbuild-linux-riscv64": "0.15.18", + "esbuild-linux-s390x": "0.15.18", + "esbuild-netbsd-64": "0.15.18", + "esbuild-openbsd-64": "0.15.18", + "esbuild-sunos-64": "0.15.18", + "esbuild-windows-32": "0.15.18", + "esbuild-windows-64": "0.15.18", + "esbuild-windows-arm64": "0.15.18" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz", + "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz", + "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz", + "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz", + "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz", + "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz", + "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz", + "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz", + "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz", + "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz", + "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz", + "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz", + "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz", + "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz", + "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz", + "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz", + "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz", + "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz", + "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz", + "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz", + "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/happy-dom": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-8.1.3.tgz", + "integrity": "sha512-XC0ZvAmMOfW56X7yw9IrBuVpHKRzVAMDbtoF4MmOHoe17r2zY6yTMhs+lrsz9KLGQUcFyDPianULPAOp1+OnVg==", + "dev": true, + "dependencies": { + "css.escape": "^1.5.1", + "he": "^1.2.0", + "node-fetch": "^2.x.x", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/local-pkg": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.2.tgz", + "integrity": "sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-literal": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-0.4.2.tgz", + "integrity": "sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tinybench": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.3.1.tgz", + "integrity": "sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==", + "dev": true + }, + "node_modules/tinypool": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.0.tgz", + "integrity": "sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.0.2.tgz", + "integrity": "sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/vite": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.5.tgz", + "integrity": "sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.15.9", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "0.24.5", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.24.5.tgz", + "integrity": "sha512-zw6JhPUHtLILQDe5Q39b/SzoITkG+R7hcFjuthp4xsi6zpmfQPOZcHodZ+3bqoWl4EdGK/p1fuMiEwdxgbGLOA==", + "dev": true, + "dependencies": { + "@types/chai": "^4.3.3", + "@types/chai-subset": "^1.3.3", + "@types/node": "*", + "chai": "^4.3.6", + "debug": "^4.3.4", + "local-pkg": "^0.4.2", + "strip-literal": "^0.4.2", + "tinybench": "^2.3.1", + "tinypool": "^0.3.0", + "tinyspy": "^1.0.2", + "vite": "^3.0.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": ">=v14.16.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@vitest/browser": "*", + "@vitest/ui": "*", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/whatwg-url/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + } + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "dev": true, + "optional": true + }, + "@types/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", + "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", + "dev": true, + "requires": { + "@types/chai": "*" + } + }, + "@types/node": { + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", + "dev": true + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + } + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true + }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "esbuild": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", + "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.15.18", + "@esbuild/linux-loong64": "0.15.18", + "esbuild-android-64": "0.15.18", + "esbuild-android-arm64": "0.15.18", + "esbuild-darwin-64": "0.15.18", + "esbuild-darwin-arm64": "0.15.18", + "esbuild-freebsd-64": "0.15.18", + "esbuild-freebsd-arm64": "0.15.18", + "esbuild-linux-32": "0.15.18", + "esbuild-linux-64": "0.15.18", + "esbuild-linux-arm": "0.15.18", + "esbuild-linux-arm64": "0.15.18", + "esbuild-linux-mips64le": "0.15.18", + "esbuild-linux-ppc64le": "0.15.18", + "esbuild-linux-riscv64": "0.15.18", + "esbuild-linux-s390x": "0.15.18", + "esbuild-netbsd-64": "0.15.18", + "esbuild-openbsd-64": "0.15.18", + "esbuild-sunos-64": "0.15.18", + "esbuild-windows-32": "0.15.18", + "esbuild-windows-64": "0.15.18", + "esbuild-windows-arm64": "0.15.18" + } + }, + "esbuild-android-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz", + "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz", + "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz", + "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz", + "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz", + "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz", + "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz", + "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz", + "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz", + "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz", + "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz", + "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz", + "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz", + "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz", + "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz", + "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz", + "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz", + "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz", + "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz", + "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz", + "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==", + "dev": true, + "optional": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true + }, + "happy-dom": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-8.1.3.tgz", + "integrity": "sha512-XC0ZvAmMOfW56X7yw9IrBuVpHKRzVAMDbtoF4MmOHoe17r2zY6yTMhs+lrsz9KLGQUcFyDPianULPAOp1+OnVg==", + "dev": true, + "requires": { + "css.escape": "^1.5.1", + "he": "^1.2.0", + "node-fetch": "^2.x.x", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "local-pkg": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.2.tgz", + "integrity": "sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==", + "dev": true + }, + "loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "strip-literal": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-0.4.2.tgz", + "integrity": "sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==", + "dev": true, + "requires": { + "acorn": "^8.8.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "tinybench": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.3.1.tgz", + "integrity": "sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==", + "dev": true + }, + "tinypool": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.0.tgz", + "integrity": "sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==", + "dev": true + }, + "tinyspy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.0.2.tgz", + "integrity": "sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==", + "dev": true + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "vite": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.5.tgz", + "integrity": "sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==", + "dev": true, + "requires": { + "esbuild": "^0.15.9", + "fsevents": "~2.3.2", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + } + }, + "vitest": { + "version": "0.24.5", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.24.5.tgz", + "integrity": "sha512-zw6JhPUHtLILQDe5Q39b/SzoITkG+R7hcFjuthp4xsi6zpmfQPOZcHodZ+3bqoWl4EdGK/p1fuMiEwdxgbGLOA==", + "dev": true, + "requires": { + "@types/chai": "^4.3.3", + "@types/chai-subset": "^1.3.3", + "@types/node": "*", + "chai": "^4.3.6", + "debug": "^4.3.4", + "local-pkg": "^0.4.2", + "strip-literal": "^0.4.2", + "tinybench": "^2.3.1", + "tinypool": "^0.3.0", + "tinyspy": "^1.0.2", + "vite": "^3.0.0" + } + }, + "webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true + }, + "whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "requires": { + "iconv-lite": "0.6.3" + } + }, + "whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + } + } + } + } +} diff --git a/v3/internal/runtime/package.json b/v3/internal/runtime/package.json new file mode 100644 index 00000000..2100ea70 --- /dev/null +++ b/v3/internal/runtime/package.json @@ -0,0 +1,14 @@ +{ + "name": "runtime", + "version": "3.0.0", + "description": "Wails JS Runtime", + "main": "index.js", + "scripts": {}, + "author": "Lea Anthony ", + "license": "ISC", + "devDependencies": { + "esbuild": "^0.15.6", + "happy-dom": "^8.1.3", + "vitest": "^0.24.3" + } +} diff --git a/v3/internal/runtime/runtime_debug_darwin.go b/v3/internal/runtime/runtime_debug_darwin.go new file mode 100644 index 00000000..14656126 --- /dev/null +++ b/v3/internal/runtime/runtime_debug_darwin.go @@ -0,0 +1,8 @@ +//go:build darwin && !production + +package runtime + +import _ "embed" + +//go:embed runtime_debug_desktop_darwin.js +var DesktopRuntime []byte diff --git a/v3/internal/runtime/runtime_debug_desktop_darwin.js b/v3/internal/runtime/runtime_debug_desktop_darwin.js new file mode 100644 index 00000000..d8fbf5de --- /dev/null +++ b/v3/internal/runtime/runtime_debug_desktop_darwin.js @@ -0,0 +1,420 @@ +(() => { + var __defProp = Object.defineProperty; + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); + }; + + // desktop/ipc.js + (function() { + window.WailsInvoke = (message) => { + window.webkit.messageHandlers.wails.postMessage(message); + }; + })(); + + // desktop/calls.js + var callbacks = {}; + function cryptoRandom() { + var array = new Uint32Array(1); + return window.crypto.getRandomValues(array)[0]; + } + function basicRandom() { + return Math.random() * 9007199254740991; + } + var randomFunc; + if (window.crypto) { + randomFunc = cryptoRandom; + } else { + randomFunc = basicRandom; + } + function Call(name, args, timeout) { + if (timeout == null) { + timeout = 0; + } + let windowID2 = window.wails.window.ID(); + return new Promise(function(resolve, reject) { + var callbackID; + do { + callbackID = name + "-" + randomFunc(); + } while (callbacks[callbackID]); + var timeoutHandle; + if (timeout > 0) { + timeoutHandle = setTimeout(function() { + reject(Error("Call to " + name + " timed out. Request ID: " + callbackID)); + }, timeout); + } + callbacks[callbackID] = { + timeoutHandle, + reject, + resolve + }; + try { + const payload = { + name, + args, + callbackID, + windowID: windowID2 + }; + window.WailsInvoke("C" + JSON.stringify(payload)); + } catch (e) { + console.error(e); + } + }); + } + window.ObfuscatedCall = (id, args, timeout) => { + if (timeout == null) { + timeout = 0; + } + return new Promise(function(resolve, reject) { + var callbackID; + do { + callbackID = id + "-" + randomFunc(); + } while (callbacks[callbackID]); + var timeoutHandle; + if (timeout > 0) { + timeoutHandle = setTimeout(function() { + reject(Error("Call to method " + id + " timed out. Request ID: " + callbackID)); + }, timeout); + } + callbacks[callbackID] = { + timeoutHandle, + reject, + resolve + }; + try { + const payload = { + id, + args, + callbackID, + windowID: window.wails.window.ID() + }; + window.WailsInvoke("c" + JSON.stringify(payload)); + } catch (e) { + console.error(e); + } + }); + }; + function Callback(incomingMessage) { + 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 { + callbackData.resolve(message.result); + } + } + + // desktop/events.js + var eventListeners = {}; + function notifyListeners(eventData) { + let eventName = eventData.name; + if (eventListeners[eventName]) { + const newEventListenerList = eventListeners[eventName].slice(); + for (let count = 0; count < eventListeners[eventName].length; count += 1) { + const listener = eventListeners[eventName][count]; + let data = eventData.data; + const destroy = listener.Callback(data); + if (destroy) { + newEventListenerList.splice(count, 1); + } + } + if (newEventListenerList.length === 0) { + removeListener(eventName); + } else { + eventListeners[eventName] = newEventListenerList; + } + } + } + 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 removeListener(eventName) { + delete eventListeners[eventName]; + window.WailsInvoke("EX" + eventName); + } + + // desktop/bindings.js + window.go = {}; + function SetBindings(bindingsMap) { + try { + bindingsMap = JSON.parse(bindingsMap); + } catch (e) { + console.error(e); + } + window.go = window.go || {}; + Object.keys(bindingsMap).forEach((packageName) => { + window.go[packageName] = window.go[packageName] || {}; + Object.keys(bindingsMap[packageName]).forEach((structName) => { + window.go[packageName][structName] = window.go[packageName][structName] || {}; + Object.keys(bindingsMap[packageName][structName]).forEach((methodName) => { + window.go[packageName][structName][methodName] = function() { + let timeout = 0; + function dynamic() { + const args = [].slice.call(arguments); + return Call([packageName, structName, methodName].join("."), args, timeout); + } + dynamic.setTimeout = function(newTimeout) { + timeout = newTimeout; + }; + dynamic.getTimeout = function() { + return timeout; + }; + return dynamic; + }(); + }); + }); + }); + } + + // desktop/window.js + var window_exports = {}; + __export(window_exports, { + 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, + WindowSetPosition: () => WindowSetPosition, + WindowSetSize: () => WindowSetSize, + WindowSetSystemDefaultTheme: () => WindowSetSystemDefaultTheme, + WindowSetTitle: () => WindowSetTitle, + WindowShow: () => WindowShow, + WindowToggleMaximise: () => WindowToggleMaximise, + WindowUnfullscreen: () => WindowUnfullscreen, + WindowUnmaximise: () => WindowUnmaximise, + WindowUnminimise: () => WindowUnminimise + }); + function WindowReload() { + window.location.reload(); + } + function WindowReloadApp() { + window.WailsInvoke("WR"); + } + function WindowSetSystemDefaultTheme() { + window.WailsInvoke("WASDT"); + } + function WindowSetLightTheme() { + window.WailsInvoke("WALT"); + } + function WindowSetDarkTheme() { + window.WailsInvoke("WADT"); + } + function WindowCenter() { + window.WailsInvoke("Wc"); + } + 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) { + window.WailsInvoke("Wz:" + width + ":" + height); + } + function WindowSetAlwaysOnTop(b) { + window.WailsInvoke("WATP:" + (b ? "1" : "0")); + } + 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"); + } + 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) { + let rgba = JSON.stringify({ r: R || 0, g: G || 0, b: B || 0, a: A || 255 }); + window.WailsInvoke("Wr:" + rgba); + } + + // desktop/screen.js + var screen_exports = {}; + __export(screen_exports, { + ScreenGetAll: () => ScreenGetAll + }); + function ScreenGetAll() { + return Call(":wails:ScreenGetAll"); + } + + // desktop/browser.js + var browser_exports = {}; + __export(browser_exports, { + BrowserOpenURL: () => BrowserOpenURL + }); + function BrowserOpenURL(url) { + window.WailsInvoke("BO:" + url); + } + + // 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 + }; + + // desktop/main.js + var windowID = -1; + function Quit() { + window.WailsInvoke("Q"); + } + function Show() { + window.WailsInvoke("S"); + } + function Hide() { + window.WailsInvoke("H"); + } + window.wails = { + Callback, + callbacks, + EventsNotify, + eventListeners, + SetBindings, + window: { + ID: () => { + return windowID; + } + } + }; + window.runtime = { + ...log_exports, + ...window_exports, + ...browser_exports, + ...screen_exports, + EventsOn, + EventsOnce, + EventsOnMultiple, + EventsEmit, + EventsOff, + Show, + Hide, + Quit + }; + if (window.wails_config) { + windowID = window.wails_config.windowID; + window.wails_config = null; + } + if (true) { + console.log("Wails v3.0.0 Debug Mode Enabled"); + } +})(); +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZGVza3RvcC9pcGMuanMiLCAiZGVza3RvcC9jYWxscy5qcyIsICJkZXNrdG9wL2V2ZW50cy5qcyIsICJkZXNrdG9wL2JpbmRpbmdzLmpzIiwgImRlc2t0b3Avd2luZG93LmpzIiwgImRlc2t0b3Avc2NyZWVuLmpzIiwgImRlc2t0b3AvYnJvd3Nlci5qcyIsICJkZXNrdG9wL2xvZy5qcyIsICJkZXNrdG9wL21haW4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qXG4gXyAgICAgICBfXyAgICAgIF8gX19cbnwgfCAgICAgLyAvX19fIF8oXykgL19fX19cbnwgfCAvfCAvIC8gX18gYC8gLyAvIF9fXy9cbnwgfC8gfC8gLyAvXy8gLyAvIChfXyAgKVxufF9fL3xfXy9cXF9fLF8vXy9fL19fX18vXG5UaGUgZWxlY3Ryb24gYWx0ZXJuYXRpdmUgZm9yIEdvXG4oYykgTGVhIEFudGhvbnkgMjAxOS1wcmVzZW50XG4qL1xuLyoganNoaW50IGVzdmVyc2lvbjogNiAqL1xuXG4vKipcbiAqIFdhaWxzSW52b2tlIHNlbmRzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIHRoZSBiYWNrZW5kXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAqL1xuXG4oZnVuY3Rpb24gKCkge1xuXHR3aW5kb3cuV2FpbHNJbnZva2UgPSAobWVzc2FnZSkgPT4ge1xuXHRcdFdJTkRPV1MgJiYgd2luZG93LmNocm9tZS53ZWJ2aWV3LnBvc3RNZXNzYWdlKG1lc3NhZ2UpO1xuXHRcdChEQVJXSU4gfHwgTElOVVgpICYmIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLndhaWxzLnBvc3RNZXNzYWdlKG1lc3NhZ2UpO1xuXHR9XG59KSgpOyIsICIvKlxuIF8gICAgICAgX18gICAgICBfIF9fXG58IHwgICAgIC8gL19fXyBfKF8pIC9fX19fXG58IHwgL3wgLyAvIF9fIGAvIC8gLyBfX18vXG58IHwvIHwvIC8gL18vIC8gLyAoX18gIClcbnxfXy98X18vXFxfXyxfL18vXy9fX19fL1xuVGhlIGVsZWN0cm9uIGFsdGVybmF0aXZlIGZvciBHb1xuKGMpIExlYSBBbnRob255IDIwMTktcHJlc2VudFxuKi9cbi8qIGpzaGludCBlc3ZlcnNpb246IDYgKi9cblxuZXhwb3J0IGNvbnN0IGNhbGxiYWNrcyA9IHt9O1xuXG4vKipcbiAqIFJldHVybnMgYSBudW1iZXIgZnJvbSB0aGUgbmF0aXZlIGJyb3dzZXIgcmFuZG9tIGZ1bmN0aW9uXG4gKlxuICogQHJldHVybnMgbnVtYmVyXG4gKi9cbmZ1bmN0aW9uIGNyeXB0b1JhbmRvbSgpIHtcblx0dmFyIGFycmF5ID0gbmV3IFVpbnQzMkFycmF5KDEpO1xuXHRyZXR1cm4gd2luZG93LmNyeXB0by5nZXRSYW5kb21WYWx1ZXMoYXJyYXkpWzBdO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBudW1iZXIgdXNpbmcgZGEgb2xkLXNrb29sIE1hdGguUmFuZG9tXG4gKiBJIGxpa2VzIHRvIGNhbGwgaXQgTE9MUmFuZG9tXG4gKlxuICogQHJldHVybnMgbnVtYmVyXG4gKi9cbmZ1bmN0aW9uIGJhc2ljUmFuZG9tKCkge1xuXHRyZXR1cm4gTWF0aC5yYW5kb20oKSAqIDkwMDcxOTkyNTQ3NDA5OTE7XG59XG5cbi8vIFBpY2sgYSByYW5kb20gbnVtYmVyIGZ1bmN0aW9uIGJhc2VkIG9uIGJyb3dzZXIgY2FwYWJpbGl0eVxudmFyIHJhbmRvbUZ1bmM7XG5pZiAod2luZG93LmNyeXB0bykge1xuXHRyYW5kb21GdW5jID0gY3J5cHRvUmFuZG9tO1xufSBlbHNlIHtcblx0cmFuZG9tRnVuYyA9IGJhc2ljUmFuZG9tO1xufVxuXG5cbi8qKlxuICogQ2FsbCBzZW5kcyBhIG1lc3NhZ2UgdG8gdGhlIGJhY2tlbmQgdG8gY2FsbCB0aGUgYmluZGluZyB3aXRoIHRoZVxuICogZ2l2ZW4gZGF0YS4gQSBwcm9taXNlIGlzIHJldHVybmVkIGFuZCB3aWxsIGJlIGNvbXBsZXRlZCB3aGVuIHRoZVxuICogYmFja2VuZCByZXNwb25kcy4gVGhpcyB3aWxsIGJlIHJlc29sdmVkIHdoZW4gdGhlIGNhbGwgd2FzIHN1Y2Nlc3NmdWxcbiAqIG9yIHJlamVjdGVkIGlmIGFuIGVycm9yIGlzIHBhc3NlZCBiYWNrLlxuICogVGhlcmUgaXMgYSB0aW1lb3V0IG1lY2hhbmlzbS4gSWYgdGhlIGNhbGwgZG9lc24ndCByZXNwb25kIGluIHRoZSBnaXZlblxuICogdGltZSAoaW4gbWlsbGlzZWNvbmRzKSB0aGVuIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0ge2FueT19IGFyZ3NcbiAqIEBwYXJhbSB7bnVtYmVyPX0gdGltZW91dFxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENhbGwobmFtZSwgYXJncywgdGltZW91dCkge1xuXG5cdC8vIFRpbWVvdXQgaW5maW5pdGUgYnkgZGVmYXVsdFxuXHRpZiAodGltZW91dCA9PSBudWxsKSB7XG5cdFx0dGltZW91dCA9IDA7XG5cdH1cblxuXHRsZXQgd2luZG93SUQgPSB3aW5kb3cud2FpbHMud2luZG93LklEKCk7XG5cblx0Ly8gQ3JlYXRlIGEgcHJvbWlzZVxuXHRyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuXG5cdFx0Ly8gQ3JlYXRlIGEgdW5pcXVlIGNhbGxiYWNrSURcblx0XHR2YXIgY2FsbGJhY2tJRDtcblx0XHRkbyB7XG5cdFx0XHRjYWxsYmFja0lEID0gbmFtZSArICctJyArIHJhbmRvbUZ1bmMoKTtcblx0XHR9IHdoaWxlIChjYWxsYmFja3NbY2FsbGJhY2tJRF0pO1xuXG5cdFx0dmFyIHRpbWVvdXRIYW5kbGU7XG5cdFx0Ly8gU2V0IHRpbWVvdXRcblx0XHRpZiAodGltZW91dCA+IDApIHtcblx0XHRcdHRpbWVvdXRIYW5kbGUgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0cmVqZWN0KEVycm9yKCdDYWxsIHRvICcgKyBuYW1lICsgJyB0aW1lZCBvdXQuIFJlcXVlc3QgSUQ6ICcgKyBjYWxsYmFja0lEKSk7XG5cdFx0XHR9LCB0aW1lb3V0KTtcblx0XHR9XG5cblx0XHQvLyBTdG9yZSBjYWxsYmFja1xuXHRcdGNhbGxiYWNrc1tjYWxsYmFja0lEXSA9IHtcblx0XHRcdHRpbWVvdXRIYW5kbGU6IHRpbWVvdXRIYW5kbGUsXG5cdFx0XHRyZWplY3Q6IHJlamVjdCxcblx0XHRcdHJlc29sdmU6IHJlc29sdmVcblx0XHR9O1xuXG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHBheWxvYWQgPSB7XG5cdFx0XHRcdG5hbWUsXG5cdFx0XHRcdGFyZ3MsXG5cdFx0XHRcdGNhbGxiYWNrSUQsXG5cdFx0XHRcdHdpbmRvd0lELFxuXHRcdFx0fTtcblxuICAgICAgICAgICAgLy8gTWFrZSB0aGUgY2FsbFxuICAgICAgICAgICAgd2luZG93LldhaWxzSW52b2tlKCdDJyArIEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5cbndpbmRvdy5PYmZ1c2NhdGVkQ2FsbCA9IChpZCwgYXJncywgdGltZW91dCkgPT4ge1xuXG4gICAgLy8gVGltZW91dCBpbmZpbml0ZSBieSBkZWZhdWx0XG4gICAgaWYgKHRpbWVvdXQgPT0gbnVsbCkge1xuICAgICAgICB0aW1lb3V0ID0gMDtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYSBwcm9taXNlXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcblxuICAgICAgICAvLyBDcmVhdGUgYSB1bmlxdWUgY2FsbGJhY2tJRFxuICAgICAgICB2YXIgY2FsbGJhY2tJRDtcbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgY2FsbGJhY2tJRCA9IGlkICsgJy0nICsgcmFuZG9tRnVuYygpO1xuICAgICAgICB9IHdoaWxlIChjYWxsYmFja3NbY2FsbGJhY2tJRF0pO1xuXG4gICAgICAgIHZhciB0aW1lb3V0SGFuZGxlO1xuICAgICAgICAvLyBTZXQgdGltZW91dFxuICAgICAgICBpZiAodGltZW91dCA+IDApIHtcbiAgICAgICAgICAgIHRpbWVvdXRIYW5kbGUgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoRXJyb3IoJ0NhbGwgdG8gbWV0aG9kICcgKyBpZCArICcgdGltZWQgb3V0LiBSZXF1ZXN0IElEOiAnICsgY2FsbGJhY2tJRCkpO1xuICAgICAgICAgICAgfSwgdGltZW91dCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTdG9yZSBjYWxsYmFja1xuICAgICAgICBjYWxsYmFja3NbY2FsbGJhY2tJRF0gPSB7XG4gICAgICAgICAgICB0aW1lb3V0SGFuZGxlOiB0aW1lb3V0SGFuZGxlLFxuICAgICAgICAgICAgcmVqZWN0OiByZWplY3QsXG4gICAgICAgICAgICByZXNvbHZlOiByZXNvbHZlXG4gICAgICAgIH07XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSB7XG5cdFx0XHRcdGlkLFxuXHRcdFx0XHRhcmdzLFxuXHRcdFx0XHRjYWxsYmFja0lELFxuXHRcdFx0XHR3aW5kb3dJRDogd2luZG93LndhaWxzLndpbmRvdy5JRCgpLFxuXHRcdFx0fTtcblxuICAgICAgICAgICAgLy8gTWFrZSB0aGUgY2FsbFxuICAgICAgICAgICAgd2luZG93LldhaWxzSW52b2tlKCdjJyArIEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuXG5cbi8qKlxuICogQ2FsbGVkIGJ5IHRoZSBiYWNrZW5kIHRvIHJldHVybiBkYXRhIHRvIGEgcHJldmlvdXNseSBjYWxsZWRcbiAqIGJpbmRpbmcgaW52b2NhdGlvblxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBpbmNvbWluZ01lc3NhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENhbGxiYWNrKGluY29taW5nTWVzc2FnZSkge1xuXHQvLyBQYXJzZSB0aGUgbWVzc2FnZVxuXHRsZXQgbWVzc2FnZTtcblx0dHJ5IHtcblx0XHRtZXNzYWdlID0gSlNPTi5wYXJzZShpbmNvbWluZ01lc3NhZ2UpO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0Y29uc3QgZXJyb3IgPSBgSW52YWxpZCBKU09OIHBhc3NlZCB0byBjYWxsYmFjazogJHtlLm1lc3NhZ2V9LiBNZXNzYWdlOiAke2luY29taW5nTWVzc2FnZX1gO1xuXHRcdHJ1bnRpbWUuTG9nRGVidWcoZXJyb3IpO1xuXHRcdHRocm93IG5ldyBFcnJvcihlcnJvcik7XG5cdH1cblx0bGV0IGNhbGxiYWNrSUQgPSBtZXNzYWdlLmNhbGxiYWNraWQ7XG5cdGxldCBjYWxsYmFja0RhdGEgPSBjYWxsYmFja3NbY2FsbGJhY2tJRF07XG5cdGlmICghY2FsbGJhY2tEYXRhKSB7XG5cdFx0Y29uc3QgZXJyb3IgPSBgQ2FsbGJhY2sgJyR7Y2FsbGJhY2tJRH0nIG5vdCByZWdpc3RlcmVkISEhYDtcblx0XHRjb25zb2xlLmVycm9yKGVycm9yKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXHRcdHRocm93IG5ldyBFcnJvcihlcnJvcik7XG5cdH1cblx0Y2xlYXJUaW1lb3V0KGNhbGxiYWNrRGF0YS50aW1lb3V0SGFuZGxlKTtcblxuXHRkZWxldGUgY2FsbGJhY2tzW2NhbGxiYWNrSURdO1xuXG5cdGlmIChtZXNzYWdlLmVycm9yKSB7XG5cdFx0Y2FsbGJhY2tEYXRhLnJlamVjdChtZXNzYWdlLmVycm9yKTtcblx0fSBlbHNlIHtcblx0XHRjYWxsYmFja0RhdGEucmVzb2x2ZShtZXNzYWdlLnJlc3VsdCk7XG5cdH1cbn1cbiIsICIvKlxuIF8gICAgICAgX18gICAgICBfIF9fXG58IHwgICAgIC8gL19fXyBfKF8pIC9fX19fXG58IHwgL3wgLyAvIF9fIGAvIC8gLyBfX18vXG58IHwvIHwvIC8gL18vIC8gLyAoX18gIClcbnxfXy98X18vXFxfXyxfL18vXy9fX19fL1xuVGhlIGVsZWN0cm9uIGFsdGVybmF0aXZlIGZvciBHb1xuKGMpIExlYSBBbnRob255IDIwMTktcHJlc2VudFxuKi9cbi8qIGpzaGludCBlc3ZlcnNpb246IDYgKi9cblxuLy8gRGVmaW5lcyBhIHNpbmdsZSBsaXN0ZW5lciB3aXRoIGEgbWF4aW11bSBudW1iZXIgb2YgdGltZXMgdG8gY2FsbGJhY2tcblxuLyoqXG4gKiBUaGUgTGlzdGVuZXIgY2xhc3MgZGVmaW5lcyBhIGxpc3RlbmVyISA6LSlcbiAqXG4gKiBAY2xhc3MgTGlzdGVuZXJcbiAqL1xuY2xhc3MgTGlzdGVuZXIge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgTGlzdGVuZXIuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG1heENhbGxiYWNrc1xuICAgICAqIEBtZW1iZXJvZiBMaXN0ZW5lclxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGV2ZW50TmFtZSwgY2FsbGJhY2ssIG1heENhbGxiYWNrcykge1xuICAgICAgICB0aGlzLmV2ZW50TmFtZSA9IGV2ZW50TmFtZTtcbiAgICAgICAgLy8gRGVmYXVsdCBvZiAtMSBtZWFucyBpbmZpbml0ZVxuICAgICAgICB0aGlzLm1heENhbGxiYWNrcyA9IG1heENhbGxiYWNrcyB8fCAtMTtcbiAgICAgICAgLy8gQ2FsbGJhY2sgaW52b2tlcyB0aGUgY2FsbGJhY2sgd2l0aCB0aGUgZ2l2ZW4gZGF0YVxuICAgICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBsaXN0ZW5lciBzaG91bGQgYmUgZGVzdHJveWVkXG4gICAgICAgIHRoaXMuQ2FsbGJhY2sgPSAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgY2FsbGJhY2suYXBwbHkobnVsbCwgZGF0YSk7XG4gICAgICAgICAgICAvLyBJZiBtYXhDYWxsYmFja3MgaXMgaW5maW5pdGUsIHJldHVybiBmYWxzZSAoZG8gbm90IGRlc3Ryb3kpXG4gICAgICAgICAgICBpZiAodGhpcy5tYXhDYWxsYmFja3MgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRGVjcmVtZW50IG1heENhbGxiYWNrcy4gUmV0dXJuIHRydWUgaWYgbm93IDAsIG90aGVyd2lzZSBmYWxzZVxuICAgICAgICAgICAgdGhpcy5tYXhDYWxsYmFja3MgLT0gMTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1heENhbGxiYWNrcyA9PT0gMDtcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBldmVudExpc3RlbmVycyA9IHt9O1xuXG4vKipcbiAqIFJlZ2lzdGVycyBhbiBldmVudCBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgaW52b2tlZCBgbWF4Q2FsbGJhY2tzYCB0aW1lcyBiZWZvcmUgYmVpbmcgZGVzdHJveWVkXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEBwYXJhbSB7bnVtYmVyfSBtYXhDYWxsYmFja3NcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gQSBmdW5jdGlvbiB0byBjYW5jZWwgdGhlIGxpc3RlbmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFdmVudHNPbk11bHRpcGxlKGV2ZW50TmFtZSwgY2FsbGJhY2ssIG1heENhbGxiYWNrcykge1xuICAgIGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0gPSBldmVudExpc3RlbmVyc1tldmVudE5hbWVdIHx8IFtdO1xuICAgIGNvbnN0IHRoaXNMaXN0ZW5lciA9IG5ldyBMaXN0ZW5lcihldmVudE5hbWUsIGNhbGxiYWNrLCBtYXhDYWxsYmFja3MpO1xuICAgIGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0ucHVzaCh0aGlzTGlzdGVuZXIpO1xuICAgIHJldHVybiAoKSA9PiBsaXN0ZW5lck9mZih0aGlzTGlzdGVuZXIpO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBhbiBldmVudCBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgaW52b2tlZCBldmVyeSB0aW1lIHRoZSBldmVudCBpcyBlbWl0dGVkXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gQSBmdW5jdGlvbiB0byBjYW5jZWwgdGhlIGxpc3RlbmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFdmVudHNPbihldmVudE5hbWUsIGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIEV2ZW50c09uTXVsdGlwbGUoZXZlbnROYW1lLCBjYWxsYmFjaywgLTEpO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBhbiBldmVudCBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgaW52b2tlZCBvbmNlIHRoZW4gZGVzdHJveWVkXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gQSBmdW5jdGlvbiB0byBjYW5jZWwgdGhlIGxpc3RlbmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFdmVudHNPbmNlKGV2ZW50TmFtZSwgY2FsbGJhY2spIHtcbiAgICByZXR1cm4gRXZlbnRzT25NdWx0aXBsZShldmVudE5hbWUsIGNhbGxiYWNrLCAxKTtcbn1cblxuZnVuY3Rpb24gbm90aWZ5TGlzdGVuZXJzKGV2ZW50RGF0YSkge1xuXG4gICAgLy8gR2V0IHRoZSBldmVudCBuYW1lXG4gICAgbGV0IGV2ZW50TmFtZSA9IGV2ZW50RGF0YS5uYW1lO1xuXG4gICAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSBhbnkgbGlzdGVuZXJzIGZvciB0aGlzIGV2ZW50XG4gICAgaWYgKGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0pIHtcblxuICAgICAgICAvLyBLZWVwIGEgbGlzdCBvZiBsaXN0ZW5lciBpbmRleGVzIHRvIGRlc3Ryb3lcbiAgICAgICAgY29uc3QgbmV3RXZlbnRMaXN0ZW5lckxpc3QgPSBldmVudExpc3RlbmVyc1tldmVudE5hbWVdLnNsaWNlKCk7XG5cbiAgICAgICAgLy8gSXRlcmF0ZSBsaXN0ZW5lcnNcbiAgICAgICAgZm9yIChsZXQgY291bnQgPSAwOyBjb3VudCA8IGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0ubGVuZ3RoOyBjb3VudCArPSAxKSB7XG5cbiAgICAgICAgICAgIC8vIEdldCBuZXh0IGxpc3RlbmVyXG4gICAgICAgICAgICBjb25zdCBsaXN0ZW5lciA9IGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV1bY291bnRdO1xuXG4gICAgICAgICAgICBsZXQgZGF0YSA9IGV2ZW50RGF0YS5kYXRhO1xuXG4gICAgICAgICAgICAvLyBEbyB0aGUgY2FsbGJhY2tcbiAgICAgICAgICAgIGNvbnN0IGRlc3Ryb3kgPSBsaXN0ZW5lci5DYWxsYmFjayhkYXRhKTtcbiAgICAgICAgICAgIGlmIChkZXN0cm95KSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIGxpc3RlbmVyIGluZGljYXRlZCB0byBkZXN0cm95IGl0c2VsZiwgYWRkIGl0IHRvIHRoZSBkZXN0cm95IGxpc3RcbiAgICAgICAgICAgICAgICBuZXdFdmVudExpc3RlbmVyTGlzdC5zcGxpY2UoY291bnQsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXBkYXRlIGNhbGxiYWNrcyB3aXRoIG5ldyBsaXN0IG9mIGxpc3RlbmVyc1xuICAgICAgICBpZiAobmV3RXZlbnRMaXN0ZW5lckxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihldmVudE5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXSA9IG5ld0V2ZW50TGlzdGVuZXJMaXN0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIE5vdGlmeSBpbmZvcm1zIGZyb250ZW5kIGxpc3RlbmVycyB0aGF0IGFuIGV2ZW50IHdhcyBlbWl0dGVkIHdpdGggdGhlIGdpdmVuIGRhdGFcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge3N0cmluZ30gbm90aWZ5TWVzc2FnZSAtIGVuY29kZWQgbm90aWZpY2F0aW9uIG1lc3NhZ2VcblxuICovXG5leHBvcnQgZnVuY3Rpb24gRXZlbnRzTm90aWZ5KG5vdGlmeU1lc3NhZ2UpIHtcbiAgICAvLyBQYXJzZSB0aGUgbWVzc2FnZVxuICAgIGxldCBtZXNzYWdlO1xuICAgIHRyeSB7XG4gICAgICAgIG1lc3NhZ2UgPSBKU09OLnBhcnNlKG5vdGlmeU1lc3NhZ2UpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSAnSW52YWxpZCBKU09OIHBhc3NlZCB0byBOb3RpZnk6ICcgKyBub3RpZnlNZXNzYWdlO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICBub3RpZnlMaXN0ZW5lcnMobWVzc2FnZSk7XG59XG5cbi8qKlxuICogRW1pdCBhbiBldmVudCB3aXRoIHRoZSBnaXZlbiBuYW1lIGFuZCBkYXRhXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gRXZlbnRzRW1pdChldmVudE5hbWUpIHtcblxuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgIG5hbWU6IGV2ZW50TmFtZSxcbiAgICAgICAgZGF0YTogW10uc2xpY2UuYXBwbHkoYXJndW1lbnRzKS5zbGljZSgxKSxcbiAgICB9O1xuXG4gICAgLy8gTm90aWZ5IEpTIGxpc3RlbmVyc1xuICAgIG5vdGlmeUxpc3RlbmVycyhwYXlsb2FkKTtcblxuICAgIC8vIE5vdGlmeSBHbyBsaXN0ZW5lcnNcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ0VFJyArIEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIoZXZlbnROYW1lKSB7XG4gICAgLy8gUmVtb3ZlIGxvY2FsIGxpc3RlbmVyc1xuICAgIGRlbGV0ZSBldmVudExpc3RlbmVyc1tldmVudE5hbWVdO1xuXG4gICAgLy8gTm90aWZ5IEdvIGxpc3RlbmVyc1xuICAgIHdpbmRvdy5XYWlsc0ludm9rZSgnRVgnICsgZXZlbnROYW1lKTtcbn1cblxuLyoqXG4gKiBPZmYgdW5yZWdpc3RlcnMgYSBsaXN0ZW5lciBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgd2l0aCBPbixcbiAqIG9wdGlvbmFsbHkgbXVsdGlwbGUgbGlzdGVuZXJlcyBjYW4gYmUgdW5yZWdpc3RlcmVkIHZpYSBgYWRkaXRpb25hbEV2ZW50TmFtZXNgXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICogQHBhcmFtICB7Li4uc3RyaW5nfSBhZGRpdGlvbmFsRXZlbnROYW1lc1xuICovXG5leHBvcnQgZnVuY3Rpb24gRXZlbnRzT2ZmKGV2ZW50TmFtZSwgLi4uYWRkaXRpb25hbEV2ZW50TmFtZXMpIHtcbiAgICByZW1vdmVMaXN0ZW5lcihldmVudE5hbWUpXG5cbiAgICBpZiAoYWRkaXRpb25hbEV2ZW50TmFtZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBhZGRpdGlvbmFsRXZlbnROYW1lcy5mb3JFYWNoKGV2ZW50TmFtZSA9PiB7XG4gICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihldmVudE5hbWUpXG4gICAgICAgIH0pXG4gICAgfVxufVxuXG4vKipcbiAqIE9mZiB1bnJlZ2lzdGVycyBhbGwgZXZlbnQgbGlzdGVuZXJzIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCB3aXRoIE9uXG4gKi9cbiBleHBvcnQgZnVuY3Rpb24gRXZlbnRzT2ZmQWxsKCkge1xuICAgIGNvbnN0IGV2ZW50TmFtZXMgPSBPYmplY3Qua2V5cyhldmVudExpc3RlbmVycyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgIT09IGV2ZW50TmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcmVtb3ZlTGlzdGVuZXIoZXZlbnROYW1lc1tpXSk7XG4gICAgfVxufVxuXG4vKipcbiAqIGxpc3RlbmVyT2ZmIHVucmVnaXN0ZXJzIGEgbGlzdGVuZXIgcHJldmlvdXNseSByZWdpc3RlcmVkIHdpdGggRXZlbnRzT25cbiAqXG4gKiBAcGFyYW0ge0xpc3RlbmVyfSBsaXN0ZW5lclxuICovXG4gZnVuY3Rpb24gbGlzdGVuZXJPZmYobGlzdGVuZXIpIHtcbiAgICBjb25zdCBldmVudE5hbWUgPSBsaXN0ZW5lci5ldmVudE5hbWU7XG4gICAgLy8gUmVtb3ZlIGxvY2FsIGxpc3RlbmVyXG4gICAgZXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXSA9IGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0uZmlsdGVyKGwgPT4gbCAhPT0gbGlzdGVuZXIpO1xuXG4gICAgLy8gQ2xlYW4gdXAgaWYgdGhlcmUgYXJlIG5vIGV2ZW50IGxpc3RlbmVycyBsZWZ0XG4gICAgaWYgKGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJlbW92ZUxpc3RlbmVyKGV2ZW50TmFtZSk7XG4gICAgfVxufVxuIiwgIi8qXG4gXyAgICAgICBfXyAgICAgIF8gX18gICAgXG58IHwgICAgIC8gL19fXyBfKF8pIC9fX19fXG58IHwgL3wgLyAvIF9fIGAvIC8gLyBfX18vXG58IHwvIHwvIC8gL18vIC8gLyAoX18gICkgXG58X18vfF9fL1xcX18sXy9fL18vX19fXy8gIFxuVGhlIGVsZWN0cm9uIGFsdGVybmF0aXZlIGZvciBHb1xuKGMpIExlYSBBbnRob255IDIwMTktcHJlc2VudFxuKi9cbi8qIGpzaGludCBlc3ZlcnNpb246IDYgKi9cblxuaW1wb3J0IHtDYWxsfSBmcm9tICcuL2NhbGxzJztcblxuLy8gVGhpcyBpcyB3aGVyZSB3ZSBiaW5kIGdvIG1ldGhvZCB3cmFwcGVyc1xud2luZG93LmdvID0ge307XG5cbmV4cG9ydCBmdW5jdGlvbiBTZXRCaW5kaW5ncyhiaW5kaW5nc01hcCkge1xuXHR0cnkge1xuXHRcdGJpbmRpbmdzTWFwID0gSlNPTi5wYXJzZShiaW5kaW5nc01hcCk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRjb25zb2xlLmVycm9yKGUpO1xuXHR9XG5cblx0Ly8gSW5pdGlhbGlzZSB0aGUgYmluZGluZ3MgbWFwXG5cdHdpbmRvdy5nbyA9IHdpbmRvdy5nbyB8fCB7fTtcblxuXHQvLyBJdGVyYXRlIHBhY2thZ2UgbmFtZXNcblx0T2JqZWN0LmtleXMoYmluZGluZ3NNYXApLmZvckVhY2goKHBhY2thZ2VOYW1lKSA9PiB7XG5cblx0XHQvLyBDcmVhdGUgaW5uZXIgbWFwIGlmIGl0IGRvZXNuJ3QgZXhpc3Rcblx0XHR3aW5kb3cuZ29bcGFja2FnZU5hbWVdID0gd2luZG93LmdvW3BhY2thZ2VOYW1lXSB8fCB7fTtcblxuXHRcdC8vIEl0ZXJhdGUgc3RydWN0IG5hbWVzXG5cdFx0T2JqZWN0LmtleXMoYmluZGluZ3NNYXBbcGFja2FnZU5hbWVdKS5mb3JFYWNoKChzdHJ1Y3ROYW1lKSA9PiB7XG5cblx0XHRcdC8vIENyZWF0ZSBpbm5lciBtYXAgaWYgaXQgZG9lc24ndCBleGlzdFxuXHRcdFx0d2luZG93LmdvW3BhY2thZ2VOYW1lXVtzdHJ1Y3ROYW1lXSA9IHdpbmRvdy5nb1twYWNrYWdlTmFtZV1bc3RydWN0TmFtZV0gfHwge307XG5cblx0XHRcdE9iamVjdC5rZXlzKGJpbmRpbmdzTWFwW3BhY2thZ2VOYW1lXVtzdHJ1Y3ROYW1lXSkuZm9yRWFjaCgobWV0aG9kTmFtZSkgPT4ge1xuXG5cdFx0XHRcdHdpbmRvdy5nb1twYWNrYWdlTmFtZV1bc3RydWN0TmFtZV1bbWV0aG9kTmFtZV0gPSBmdW5jdGlvbiAoKSB7XG5cblx0XHRcdFx0XHQvLyBObyB0aW1lb3V0IGJ5IGRlZmF1bHRcblx0XHRcdFx0XHRsZXQgdGltZW91dCA9IDA7XG5cblx0XHRcdFx0XHQvLyBBY3R1YWwgZnVuY3Rpb25cblx0XHRcdFx0XHRmdW5jdGlvbiBkeW5hbWljKCkge1xuXHRcdFx0XHRcdFx0Y29uc3QgYXJncyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcblx0XHRcdFx0XHRcdHJldHVybiBDYWxsKFtwYWNrYWdlTmFtZSwgc3RydWN0TmFtZSwgbWV0aG9kTmFtZV0uam9pbignLicpLCBhcmdzLCB0aW1lb3V0KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBBbGxvdyBzZXR0aW5nIHRpbWVvdXQgdG8gZnVuY3Rpb25cblx0XHRcdFx0XHRkeW5hbWljLnNldFRpbWVvdXQgPSBmdW5jdGlvbiAobmV3VGltZW91dCkge1xuXHRcdFx0XHRcdFx0dGltZW91dCA9IG5ld1RpbWVvdXQ7XG5cdFx0XHRcdFx0fTtcblxuXHRcdFx0XHRcdC8vIEFsbG93IGdldHRpbmcgdGltZW91dCB0byBmdW5jdGlvblxuXHRcdFx0XHRcdGR5bmFtaWMuZ2V0VGltZW91dCA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdHJldHVybiB0aW1lb3V0O1xuXHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRyZXR1cm4gZHluYW1pYztcblx0XHRcdFx0fSgpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH0pO1xufVxuIiwgIi8qXG4gX1x0ICAgX19cdCAgXyBfX1xufCB8XHQgLyAvX19fIF8oXykgL19fX19cbnwgfCAvfCAvIC8gX18gYC8gLyAvIF9fXy9cbnwgfC8gfC8gLyAvXy8gLyAvIChfXyAgKVxufF9fL3xfXy9cXF9fLF8vXy9fL19fX18vXG5UaGUgZWxlY3Ryb24gYWx0ZXJuYXRpdmUgZm9yIEdvXG4oYykgTGVhIEFudGhvbnkgMjAxOS1wcmVzZW50XG4qL1xuXG4vKiBqc2hpbnQgZXN2ZXJzaW9uOiA5ICovXG5cblxuaW1wb3J0IHtDYWxsfSBmcm9tIFwiLi9jYWxsc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gV2luZG93UmVsb2FkKCkge1xuICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd1JlbG9hZEFwcCgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dSJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dTZXRTeXN0ZW1EZWZhdWx0VGhlbWUoKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXQVNEVCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gV2luZG93U2V0TGlnaHRUaGVtZSgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dBTFQnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd1NldERhcmtUaGVtZSgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dBRFQnKTtcbn1cblxuLyoqXG4gKiBQbGFjZSB0aGUgd2luZG93IGluIHRoZSBjZW50ZXIgb2YgdGhlIHNjcmVlblxuICpcbiAqIEBleHBvcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd0NlbnRlcigpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1djJyk7XG59XG5cbi8qKlxuICogU2V0cyB0aGUgd2luZG93IHRpdGxlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlXG4gKiBAZXhwb3J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dTZXRUaXRsZSh0aXRsZSkge1xuICAgIHdpbmRvdy5XYWlsc0ludm9rZSgnV1QnICsgdGl0bGUpO1xufVxuXG4vKipcbiAqIE1ha2VzIHRoZSB3aW5kb3cgZ28gZnVsbHNjcmVlblxuICpcbiAqIEBleHBvcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd0Z1bGxzY3JlZW4oKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXRicpO1xufVxuXG4vKipcbiAqIFJldmVydHMgdGhlIHdpbmRvdyBmcm9tIGZ1bGxzY3JlZW5cbiAqXG4gKiBAZXhwb3J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dVbmZ1bGxzY3JlZW4oKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXZicpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHN0YXRlIG9mIHRoZSB3aW5kb3csIGkuZS4gd2hldGhlciB0aGUgd2luZG93IGlzIGluIGZ1bGwgc2NyZWVuIG1vZGUgb3Igbm90LlxuICpcbiAqIEBleHBvcnRcbiAqIEByZXR1cm4ge1Byb21pc2U8Ym9vbGVhbj59IFRoZSBzdGF0ZSBvZiB0aGUgd2luZG93XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dJc0Z1bGxzY3JlZW4oKSB7XG4gICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6V2luZG93SXNGdWxsc2NyZWVuXCIpO1xufVxuXG4vKipcbiAqIFNldCB0aGUgU2l6ZSBvZiB0aGUgd2luZG93XG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoXG4gKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dTZXRTaXplKHdpZHRoLCBoZWlnaHQpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dzOicgKyB3aWR0aCArICc6JyArIGhlaWdodCk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBTaXplIG9mIHRoZSB3aW5kb3dcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcmV0dXJuIHtQcm9taXNlPHt3OiBudW1iZXIsIGg6IG51bWJlcn0+fSBUaGUgc2l6ZSBvZiB0aGUgd2luZG93XG5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd0dldFNpemUoKSB7XG4gICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6V2luZG93R2V0U2l6ZVwiKTtcbn1cblxuLyoqXG4gKiBTZXQgdGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgd2luZG93XG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoXG4gKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dTZXRNYXhTaXplKHdpZHRoLCBoZWlnaHQpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1daOicgKyB3aWR0aCArICc6JyArIGhlaWdodCk7XG59XG5cbi8qKlxuICogU2V0IHRoZSBtaW5pbXVtIHNpemUgb2YgdGhlIHdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aFxuICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodFxuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93U2V0TWluU2l6ZSh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXejonICsgd2lkdGggKyAnOicgKyBoZWlnaHQpO1xufVxuXG5cblxuLyoqXG4gKiBTZXQgdGhlIHdpbmRvdyBBbHdheXNPblRvcCBvciBub3Qgb24gdG9wXG4gKlxuICogQGV4cG9ydFxuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93U2V0QWx3YXlzT25Ub3AoYikge1xuXG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXQVRQOicgKyAoYiA/ICcxJyA6ICcwJykpO1xufVxuXG5cblxuXG4vKipcbiAqIFNldCB0aGUgUG9zaXRpb24gb2YgdGhlIHdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7bnVtYmVyfSB4XG4gKiBAcGFyYW0ge251bWJlcn0geVxuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93U2V0UG9zaXRpb24oeCwgeSkge1xuICAgIHdpbmRvdy5XYWlsc0ludm9rZSgnV3A6JyArIHggKyAnOicgKyB5KTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIFBvc2l0aW9uIG9mIHRoZSB3aW5kb3dcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcmV0dXJuIHtQcm9taXNlPHt4OiBudW1iZXIsIHk6IG51bWJlcn0+fSBUaGUgcG9zaXRpb24gb2YgdGhlIHdpbmRvd1xuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93R2V0UG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6V2luZG93R2V0UG9zXCIpO1xufVxuXG4vKipcbiAqIEhpZGUgdGhlIFdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd0hpZGUoKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXSCcpO1xufVxuXG4vKipcbiAqIFNob3cgdGhlIFdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd1Nob3coKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXUycpO1xufVxuXG4vKipcbiAqIE1heGltaXNlIHRoZSBXaW5kb3dcbiAqXG4gKiBAZXhwb3J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dNYXhpbWlzZSgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dNJyk7XG59XG5cbi8qKlxuICogVG9nZ2xlIHRoZSBNYXhpbWlzZSBvZiB0aGUgV2luZG93XG4gKlxuICogQGV4cG9ydFxuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93VG9nZ2xlTWF4aW1pc2UoKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXdCcpO1xufVxuXG4vKipcbiAqIFVubWF4aW1pc2UgdGhlIFdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd1VubWF4aW1pc2UoKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXVScpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHN0YXRlIG9mIHRoZSB3aW5kb3csIGkuZS4gd2hldGhlciB0aGUgd2luZG93IGlzIG1heGltaXNlZCBvciBub3QuXG4gKlxuICogQGV4cG9ydFxuICogQHJldHVybiB7UHJvbWlzZTxib29sZWFuPn0gVGhlIHN0YXRlIG9mIHRoZSB3aW5kb3dcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd0lzTWF4aW1pc2VkKCkge1xuICAgIHJldHVybiBDYWxsKFwiOndhaWxzOldpbmRvd0lzTWF4aW1pc2VkXCIpO1xufVxuXG4vKipcbiAqIE1pbmltaXNlIHRoZSBXaW5kb3dcbiAqXG4gKiBAZXhwb3J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dNaW5pbWlzZSgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dtJyk7XG59XG5cbi8qKlxuICogVW5taW5pbWlzZSB0aGUgV2luZG93XG4gKlxuICogQGV4cG9ydFxuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93VW5taW5pbWlzZSgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1d1Jyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgc3RhdGUgb2YgdGhlIHdpbmRvdywgaS5lLiB3aGV0aGVyIHRoZSB3aW5kb3cgaXMgbWluaW1pc2VkIG9yIG5vdC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcmV0dXJuIHtQcm9taXNlPGJvb2xlYW4+fSBUaGUgc3RhdGUgb2YgdGhlIHdpbmRvd1xuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93SXNNaW5pbWlzZWQoKSB7XG4gICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6V2luZG93SXNNaW5pbWlzZWRcIik7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgc3RhdGUgb2YgdGhlIHdpbmRvdywgaS5lLiB3aGV0aGVyIHRoZSB3aW5kb3cgaXMgbm9ybWFsIG9yIG5vdC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcmV0dXJuIHtQcm9taXNlPGJvb2xlYW4+fSBUaGUgc3RhdGUgb2YgdGhlIHdpbmRvd1xuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93SXNOb3JtYWwoKSB7XG4gICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6V2luZG93SXNOb3JtYWxcIik7XG59XG5cbi8qKlxuICogU2V0cyB0aGUgYmFja2dyb3VuZCBjb2xvdXIgb2YgdGhlIHdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7bnVtYmVyfSBSIFJlZFxuICogQHBhcmFtIHtudW1iZXJ9IEcgR3JlZW5cbiAqIEBwYXJhbSB7bnVtYmVyfSBCIEJsdWVcbiAqIEBwYXJhbSB7bnVtYmVyfSBBIEFscGhhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dTZXRCYWNrZ3JvdW5kQ29sb3VyKFIsIEcsIEIsIEEpIHtcbiAgICBsZXQgcmdiYSA9IEpTT04uc3RyaW5naWZ5KHtyOiBSIHx8IDAsIGc6IEcgfHwgMCwgYjogQiB8fCAwLCBhOiBBIHx8IDI1NX0pO1xuICAgIHdpbmRvdy5XYWlsc0ludm9rZSgnV3I6JyArIHJnYmEpO1xufVxuXG4iLCAiLypcbiBfXHQgICBfX1x0ICBfIF9fXG58IHxcdCAvIC9fX18gXyhfKSAvX19fX1xufCB8IC98IC8gLyBfXyBgLyAvIC8gX19fL1xufCB8LyB8LyAvIC9fLyAvIC8gKF9fICApXG58X18vfF9fL1xcX18sXy9fL18vX19fXy9cblRoZSBlbGVjdHJvbiBhbHRlcm5hdGl2ZSBmb3IgR29cbihjKSBMZWEgQW50aG9ueSAyMDE5LXByZXNlbnRcbiovXG5cbi8qIGpzaGludCBlc3ZlcnNpb246IDkgKi9cblxuXG5pbXBvcnQge0NhbGx9IGZyb20gXCIuL2NhbGxzXCI7XG5cblxuLyoqXG4gKiBHZXRzIHRoZSBhbGwgc2NyZWVucy4gQ2FsbCB0aGlzIGFuZXcgZWFjaCB0aW1lIHlvdSB3YW50IHRvIHJlZnJlc2ggZGF0YSBmcm9tIHRoZSB1bmRlcmx5aW5nIHdpbmRvd2luZyBzeXN0ZW0uXG4gKiBAZXhwb3J0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi93cmFwcGVyL3J1bnRpbWUnKS5TY3JlZW59IFNjcmVlblxuICogQHJldHVybiB7UHJvbWlzZTx7U2NyZWVuW119Pn0gVGhlIHNjcmVlbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNjcmVlbkdldEFsbCgpIHtcbiAgICByZXR1cm4gQ2FsbChcIjp3YWlsczpTY3JlZW5HZXRBbGxcIik7XG59XG4iLCAiLyoqXG4gKiBAZGVzY3JpcHRpb246IFVzZSB0aGUgc3lzdGVtIGRlZmF1bHQgYnJvd3NlciB0byBvcGVuIHRoZSB1cmxcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgXG4gKiBAcmV0dXJuIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gQnJvd3Nlck9wZW5VUkwodXJsKSB7XG4gIHdpbmRvdy5XYWlsc0ludm9rZSgnQk86JyArIHVybCk7XG59IiwgIi8qXG4gXyAgICAgICBfXyAgICAgIF8gX19cbnwgfCAgICAgLyAvX19fIF8oXykgL19fX19cbnwgfCAvfCAvIC8gX18gYC8gLyAvIF9fXy9cbnwgfC8gfC8gLyAvXy8gLyAvIChfXyAgKVxufF9fL3xfXy9cXF9fLF8vXy9fL19fX18vXG5UaGUgZWxlY3Ryb24gYWx0ZXJuYXRpdmUgZm9yIEdvXG4oYykgTGVhIEFudGhvbnkgMjAxOS1wcmVzZW50XG4qL1xuXG4vKiBqc2hpbnQgZXN2ZXJzaW9uOiA2ICovXG5cbi8qKlxuICogU2VuZHMgYSBsb2cgbWVzc2FnZSB0byB0aGUgYmFja2VuZCB3aXRoIHRoZSBnaXZlbiBsZXZlbCArIG1lc3NhZ2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbGV2ZWxcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cbmZ1bmN0aW9uIHNlbmRMb2dNZXNzYWdlKGxldmVsLCBtZXNzYWdlKSB7XG5cblx0Ly8gTG9nIE1lc3NhZ2UgZm9ybWF0OlxuXHQvLyBsW3R5cGVdW21lc3NhZ2VdXG5cdHdpbmRvdy5XYWlsc0ludm9rZSgnTCcgKyBsZXZlbCArIG1lc3NhZ2UpO1xufVxuXG4vKipcbiAqIExvZyB0aGUgZ2l2ZW4gdHJhY2UgbWVzc2FnZSB3aXRoIHRoZSBiYWNrZW5kXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIExvZ1RyYWNlKG1lc3NhZ2UpIHtcblx0c2VuZExvZ01lc3NhZ2UoJ1QnLCBtZXNzYWdlKTtcbn1cblxuLyoqXG4gKiBMb2cgdGhlIGdpdmVuIG1lc3NhZ2Ugd2l0aCB0aGUgYmFja2VuZFxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMb2dQcmludChtZXNzYWdlKSB7XG5cdHNlbmRMb2dNZXNzYWdlKCdQJywgbWVzc2FnZSk7XG59XG5cbi8qKlxuICogTG9nIHRoZSBnaXZlbiBkZWJ1ZyBtZXNzYWdlIHdpdGggdGhlIGJhY2tlbmRcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gTG9nRGVidWcobWVzc2FnZSkge1xuXHRzZW5kTG9nTWVzc2FnZSgnRCcsIG1lc3NhZ2UpO1xufVxuXG4vKipcbiAqIExvZyB0aGUgZ2l2ZW4gaW5mbyBtZXNzYWdlIHdpdGggdGhlIGJhY2tlbmRcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gTG9nSW5mbyhtZXNzYWdlKSB7XG5cdHNlbmRMb2dNZXNzYWdlKCdJJywgbWVzc2FnZSk7XG59XG5cbi8qKlxuICogTG9nIHRoZSBnaXZlbiB3YXJuaW5nIG1lc3NhZ2Ugd2l0aCB0aGUgYmFja2VuZFxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMb2dXYXJuaW5nKG1lc3NhZ2UpIHtcblx0c2VuZExvZ01lc3NhZ2UoJ1cnLCBtZXNzYWdlKTtcbn1cblxuLyoqXG4gKiBMb2cgdGhlIGdpdmVuIGVycm9yIG1lc3NhZ2Ugd2l0aCB0aGUgYmFja2VuZFxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMb2dFcnJvcihtZXNzYWdlKSB7XG5cdHNlbmRMb2dNZXNzYWdlKCdFJywgbWVzc2FnZSk7XG59XG5cbi8qKlxuICogTG9nIHRoZSBnaXZlbiBmYXRhbCBtZXNzYWdlIHdpdGggdGhlIGJhY2tlbmRcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gTG9nRmF0YWwobWVzc2FnZSkge1xuXHRzZW5kTG9nTWVzc2FnZSgnRicsIG1lc3NhZ2UpO1xufVxuXG4vKipcbiAqIFNldHMgdGhlIExvZyBsZXZlbCB0byB0aGUgZ2l2ZW4gbG9nIGxldmVsXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IGxvZ2xldmVsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZXRMb2dMZXZlbChsb2dsZXZlbCkge1xuXHRzZW5kTG9nTWVzc2FnZSgnUycsIGxvZ2xldmVsKTtcbn1cblxuLy8gTG9nIGxldmVsc1xuZXhwb3J0IGNvbnN0IExvZ0xldmVsID0ge1xuXHRUUkFDRTogMSxcblx0REVCVUc6IDIsXG5cdElORk86IDMsXG5cdFdBUk5JTkc6IDQsXG5cdEVSUk9SOiA1LFxufTtcbiIsICIvKlxuIF9cdCAgIF9fXHQgIF8gX19cbnwgfFx0IC8gL19fXyBfKF8pIC9fX19fXG58IHwgL3wgLyAvIF9fIGAvIC8gLyBfX18vXG58IHwvIHwvIC8gL18vIC8gLyAoX18gIClcbnxfXy98X18vXFxfXyxfL18vXy9fX19fL1xuVGhlIGVsZWN0cm9uIGFsdGVybmF0aXZlIGZvciBHb1xuKGMpIExlYSBBbnRob255IDIwMTktcHJlc2VudFxuKi9cbi8qIGpzaGludCBlc3ZlcnNpb246IDkgKi9cblxuaW1wb3J0IFwiLi9pcGMuanNcIjtcbmltcG9ydCB7Q2FsbGJhY2ssIGNhbGxiYWNrc30gZnJvbSAnLi9jYWxscyc7XG5pbXBvcnQge0V2ZW50c05vdGlmeSwgZXZlbnRMaXN0ZW5lcnN9IGZyb20gXCIuL2V2ZW50c1wiO1xuaW1wb3J0IHtTZXRCaW5kaW5nc30gZnJvbSBcIi4vYmluZGluZ3NcIjtcblxuaW1wb3J0ICogYXMgV2luZG93IGZyb20gXCIuL3dpbmRvd1wiO1xuaW1wb3J0ICogYXMgU2NyZWVuIGZyb20gXCIuL3NjcmVlblwiO1xuaW1wb3J0ICogYXMgQnJvd3NlciBmcm9tIFwiLi9icm93c2VyXCI7XG5pbXBvcnQgKiBhcyBMb2cgZnJvbSAnLi9sb2cnO1xuXG5sZXQgd2luZG93SUQgPSAtMTtcblxuXG5leHBvcnQgZnVuY3Rpb24gUXVpdCgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1EnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFNob3coKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdTJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBIaWRlKCkge1xuICAgIHdpbmRvdy5XYWlsc0ludm9rZSgnSCcpO1xufVxuXG4vLyBleHBvcnQgZnVuY3Rpb24gRW52aXJvbm1lbnQoKSB7XG4vLyAgICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6RW52aXJvbm1lbnRcIik7XG4vLyB9XG5cbi8vIEludGVybmFsIHdhaWxzIGVuZHBvaW50c1xud2luZG93LndhaWxzID0ge1xuICAgIENhbGxiYWNrLFxuICAgIGNhbGxiYWNrcyxcbiAgICBFdmVudHNOb3RpZnksXG4gICAgZXZlbnRMaXN0ZW5lcnMsXG4gICAgU2V0QmluZGluZ3MsXG4gICAgd2luZG93OiB7XG4gICAgICAgIElEOiAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gd2luZG93SURcbiAgICAgICAgfSxcbiAgICB9XG59O1xuXG53aW5kb3cucnVudGltZSA9IHtcbiAgICAuLi5Mb2csXG4gICAgLi4uV2luZG93LFxuICAgIC4uLkJyb3dzZXIsXG4gICAgLi4uU2NyZWVuLFxuICAgIEV2ZW50c09uLFxuICAgIEV2ZW50c09uY2UsXG4gICAgRXZlbnRzT25NdWx0aXBsZSxcbiAgICBFdmVudHNFbWl0LFxuICAgIEV2ZW50c09mZixcbiAgICAvLyBFbnZpcm9ubWVudCxcbiAgICBTaG93LFxuICAgIEhpZGUsXG4gICAgUXVpdCxcbn1cblxuLy8gUHJvY2VzcyB0aGUgZXhwZWN0ZWQgcnVudGltZSBjb25maWcgZnJvbSB0aGUgYmFja2VuZFxuaWYoIHdpbmRvdy53YWlsc19jb25maWcgKSB7XG4gICAgd2luZG93SUQgPSB3aW5kb3cud2FpbHNfY29uZmlnLndpbmRvd0lEO1xuICAgIHdpbmRvdy53YWlsc19jb25maWcgPSBudWxsO1xufVxuXG5pZiAoREVCVUcpIHtcbiAgICBjb25zb2xlLmxvZyhcIldhaWxzIHYzLjAuMCBEZWJ1ZyBNb2RlIEVuYWJsZWRcIik7XG59XG5cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7O0FBaUJBLEdBQUMsV0FBWTtBQUNaLFdBQU8sY0FBYyxDQUFDLFlBQVk7QUFFakMsTUFBcUIsT0FBTyxPQUFPLGdCQUFnQixNQUFNLFlBQVksT0FBTztBQUFBLElBQzdFO0FBQUEsRUFDRCxHQUFHOzs7QUNYSSxNQUFNLFlBQVksQ0FBQztBQU8xQixXQUFTLGVBQWU7QUFDdkIsUUFBSSxRQUFRLElBQUksWUFBWSxDQUFDO0FBQzdCLFdBQU8sT0FBTyxPQUFPLGdCQUFnQixLQUFLLEVBQUU7QUFBQSxFQUM3QztBQVFBLFdBQVMsY0FBYztBQUN0QixXQUFPLEtBQUssT0FBTyxJQUFJO0FBQUEsRUFDeEI7QUFHQSxNQUFJO0FBQ0osTUFBSSxPQUFPLFFBQVE7QUFDbEIsaUJBQWE7QUFBQSxFQUNkLE9BQU87QUFDTixpQkFBYTtBQUFBLEVBQ2Q7QUFpQk8sV0FBUyxLQUFLLE1BQU0sTUFBTSxTQUFTO0FBR3pDLFFBQUksV0FBVyxNQUFNO0FBQ3BCLGdCQUFVO0FBQUEsSUFDWDtBQUVBLFFBQUlBLFlBQVcsT0FBTyxNQUFNLE9BQU8sR0FBRztBQUd0QyxXQUFPLElBQUksUUFBUSxTQUFVLFNBQVMsUUFBUTtBQUc3QyxVQUFJO0FBQ0osU0FBRztBQUNGLHFCQUFhLE9BQU8sTUFBTSxXQUFXO0FBQUEsTUFDdEMsU0FBUyxVQUFVO0FBRW5CLFVBQUk7QUFFSixVQUFJLFVBQVUsR0FBRztBQUNoQix3QkFBZ0IsV0FBVyxXQUFZO0FBQ3RDLGlCQUFPLE1BQU0sYUFBYSxPQUFPLDZCQUE2QixVQUFVLENBQUM7QUFBQSxRQUMxRSxHQUFHLE9BQU87QUFBQSxNQUNYO0FBR0EsZ0JBQVUsY0FBYztBQUFBLFFBQ3ZCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNEO0FBRUEsVUFBSTtBQUNILGNBQU0sVUFBVTtBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0EsVUFBQUE7QUFBQSxRQUNEO0FBR1MsZUFBTyxZQUFZLE1BQU0sS0FBSyxVQUFVLE9BQU8sQ0FBQztBQUFBLE1BQ3BELFNBQVMsR0FBUDtBQUVFLGdCQUFRLE1BQU0sQ0FBQztBQUFBLE1BQ25CO0FBQUEsSUFDSixDQUFDO0FBQUEsRUFDTDtBQUVBLFNBQU8saUJBQWlCLENBQUMsSUFBSSxNQUFNLFlBQVk7QUFHM0MsUUFBSSxXQUFXLE1BQU07QUFDakIsZ0JBQVU7QUFBQSxJQUNkO0FBR0EsV0FBTyxJQUFJLFFBQVEsU0FBVSxTQUFTLFFBQVE7QUFHMUMsVUFBSTtBQUNKLFNBQUc7QUFDQyxxQkFBYSxLQUFLLE1BQU0sV0FBVztBQUFBLE1BQ3ZDLFNBQVMsVUFBVTtBQUVuQixVQUFJO0FBRUosVUFBSSxVQUFVLEdBQUc7QUFDYix3QkFBZ0IsV0FBVyxXQUFZO0FBQ25DLGlCQUFPLE1BQU0sb0JBQW9CLEtBQUssNkJBQTZCLFVBQVUsQ0FBQztBQUFBLFFBQ2xGLEdBQUcsT0FBTztBQUFBLE1BQ2Q7QUFHQSxnQkFBVSxjQUFjO0FBQUEsUUFDcEI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0o7QUFFQSxVQUFJO0FBQ0EsY0FBTSxVQUFVO0FBQUEsVUFDeEI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0EsVUFBVSxPQUFPLE1BQU0sT0FBTyxHQUFHO0FBQUEsUUFDbEM7QUFHUyxlQUFPLFlBQVksTUFBTSxLQUFLLFVBQVUsT0FBTyxDQUFDO0FBQUEsTUFDcEQsU0FBUyxHQUFQO0FBRUUsZ0JBQVEsTUFBTSxDQUFDO0FBQUEsTUFDbkI7QUFBQSxJQUNKLENBQUM7QUFBQSxFQUNMO0FBVU8sV0FBUyxTQUFTLGlCQUFpQjtBQUV6QyxRQUFJO0FBQ0osUUFBSTtBQUNILGdCQUFVLEtBQUssTUFBTSxlQUFlO0FBQUEsSUFDckMsU0FBUyxHQUFQO0FBQ0QsWUFBTSxRQUFRLG9DQUFvQyxFQUFFLHFCQUFxQjtBQUN6RSxjQUFRLFNBQVMsS0FBSztBQUN0QixZQUFNLElBQUksTUFBTSxLQUFLO0FBQUEsSUFDdEI7QUFDQSxRQUFJLGFBQWEsUUFBUTtBQUN6QixRQUFJLGVBQWUsVUFBVTtBQUM3QixRQUFJLENBQUMsY0FBYztBQUNsQixZQUFNLFFBQVEsYUFBYTtBQUMzQixjQUFRLE1BQU0sS0FBSztBQUNuQixZQUFNLElBQUksTUFBTSxLQUFLO0FBQUEsSUFDdEI7QUFDQSxpQkFBYSxhQUFhLGFBQWE7QUFFdkMsV0FBTyxVQUFVO0FBRWpCLFFBQUksUUFBUSxPQUFPO0FBQ2xCLG1CQUFhLE9BQU8sUUFBUSxLQUFLO0FBQUEsSUFDbEMsT0FBTztBQUNOLG1CQUFhLFFBQVEsUUFBUSxNQUFNO0FBQUEsSUFDcEM7QUFBQSxFQUNEOzs7QUMvSU8sTUFBTSxpQkFBaUIsQ0FBQztBQTBDL0IsV0FBUyxnQkFBZ0IsV0FBVztBQUdoQyxRQUFJLFlBQVksVUFBVTtBQUcxQixRQUFJLGVBQWUsWUFBWTtBQUczQixZQUFNLHVCQUF1QixlQUFlLFdBQVcsTUFBTTtBQUc3RCxlQUFTLFFBQVEsR0FBRyxRQUFRLGVBQWUsV0FBVyxRQUFRLFNBQVMsR0FBRztBQUd0RSxjQUFNLFdBQVcsZUFBZSxXQUFXO0FBRTNDLFlBQUksT0FBTyxVQUFVO0FBR3JCLGNBQU0sVUFBVSxTQUFTLFNBQVMsSUFBSTtBQUN0QyxZQUFJLFNBQVM7QUFFVCwrQkFBcUIsT0FBTyxPQUFPLENBQUM7QUFBQSxRQUN4QztBQUFBLE1BQ0o7QUFHQSxVQUFJLHFCQUFxQixXQUFXLEdBQUc7QUFDbkMsdUJBQWUsU0FBUztBQUFBLE1BQzVCLE9BQU87QUFDSCx1QkFBZSxhQUFhO0FBQUEsTUFDaEM7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQVNPLFdBQVMsYUFBYSxlQUFlO0FBRXhDLFFBQUk7QUFDSixRQUFJO0FBQ0EsZ0JBQVUsS0FBSyxNQUFNLGFBQWE7QUFBQSxJQUN0QyxTQUFTLEdBQVA7QUFDRSxZQUFNLFFBQVEsb0NBQW9DO0FBQ2xELFlBQU0sSUFBSSxNQUFNLEtBQUs7QUFBQSxJQUN6QjtBQUNBLG9CQUFnQixPQUFPO0FBQUEsRUFDM0I7QUFzQkEsV0FBUyxlQUFlLFdBQVc7QUFFL0IsV0FBTyxlQUFlO0FBR3RCLFdBQU8sWUFBWSxPQUFPLFNBQVM7QUFBQSxFQUN2Qzs7O0FDMUpBLFNBQU8sS0FBSyxDQUFDO0FBRU4sV0FBUyxZQUFZLGFBQWE7QUFDeEMsUUFBSTtBQUNILG9CQUFjLEtBQUssTUFBTSxXQUFXO0FBQUEsSUFDckMsU0FBUyxHQUFQO0FBQ0QsY0FBUSxNQUFNLENBQUM7QUFBQSxJQUNoQjtBQUdBLFdBQU8sS0FBSyxPQUFPLE1BQU0sQ0FBQztBQUcxQixXQUFPLEtBQUssV0FBVyxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0I7QUFHakQsYUFBTyxHQUFHLGVBQWUsT0FBTyxHQUFHLGdCQUFnQixDQUFDO0FBR3BELGFBQU8sS0FBSyxZQUFZLFlBQVksRUFBRSxRQUFRLENBQUMsZUFBZTtBQUc3RCxlQUFPLEdBQUcsYUFBYSxjQUFjLE9BQU8sR0FBRyxhQUFhLGVBQWUsQ0FBQztBQUU1RSxlQUFPLEtBQUssWUFBWSxhQUFhLFdBQVcsRUFBRSxRQUFRLENBQUMsZUFBZTtBQUV6RSxpQkFBTyxHQUFHLGFBQWEsWUFBWSxjQUFjLFdBQVk7QUFHNUQsZ0JBQUksVUFBVTtBQUdkLHFCQUFTLFVBQVU7QUFDbEIsb0JBQU0sT0FBTyxDQUFDLEVBQUUsTUFBTSxLQUFLLFNBQVM7QUFDcEMscUJBQU8sS0FBSyxDQUFDLGFBQWEsWUFBWSxVQUFVLEVBQUUsS0FBSyxHQUFHLEdBQUcsTUFBTSxPQUFPO0FBQUEsWUFDM0U7QUFHQSxvQkFBUSxhQUFhLFNBQVUsWUFBWTtBQUMxQyx3QkFBVTtBQUFBLFlBQ1g7QUFHQSxvQkFBUSxhQUFhLFdBQVk7QUFDaEMscUJBQU87QUFBQSxZQUNSO0FBRUEsbUJBQU87QUFBQSxVQUNSLEVBQUU7QUFBQSxRQUNILENBQUM7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNGLENBQUM7QUFBQSxFQUNGOzs7QUNsRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlTyxXQUFTLGVBQWU7QUFDM0IsV0FBTyxTQUFTLE9BQU87QUFBQSxFQUMzQjtBQUVPLFdBQVMsa0JBQWtCO0FBQzlCLFdBQU8sWUFBWSxJQUFJO0FBQUEsRUFDM0I7QUFFTyxXQUFTLDhCQUE4QjtBQUMxQyxXQUFPLFlBQVksT0FBTztBQUFBLEVBQzlCO0FBRU8sV0FBUyxzQkFBc0I7QUFDbEMsV0FBTyxZQUFZLE1BQU07QUFBQSxFQUM3QjtBQUVPLFdBQVMscUJBQXFCO0FBQ2pDLFdBQU8sWUFBWSxNQUFNO0FBQUEsRUFDN0I7QUFPTyxXQUFTLGVBQWU7QUFDM0IsV0FBTyxZQUFZLElBQUk7QUFBQSxFQUMzQjtBQVFPLFdBQVMsZUFBZSxPQUFPO0FBQ2xDLFdBQU8sWUFBWSxPQUFPLEtBQUs7QUFBQSxFQUNuQztBQU9PLFdBQVMsbUJBQW1CO0FBQy9CLFdBQU8sWUFBWSxJQUFJO0FBQUEsRUFDM0I7QUFPTyxXQUFTLHFCQUFxQjtBQUNqQyxXQUFPLFlBQVksSUFBSTtBQUFBLEVBQzNCO0FBUU8sV0FBUyxxQkFBcUI7QUFDakMsV0FBTyxLQUFLLDJCQUEyQjtBQUFBLEVBQzNDO0FBU08sV0FBUyxjQUFjLE9BQU8sUUFBUTtBQUN6QyxXQUFPLFlBQVksUUFBUSxRQUFRLE1BQU0sTUFBTTtBQUFBLEVBQ25EO0FBU08sV0FBUyxnQkFBZ0I7QUFDNUIsV0FBTyxLQUFLLHNCQUFzQjtBQUFBLEVBQ3RDO0FBU08sV0FBUyxpQkFBaUIsT0FBTyxRQUFRO0FBQzVDLFdBQU8sWUFBWSxRQUFRLFFBQVEsTUFBTSxNQUFNO0FBQUEsRUFDbkQ7QUFTTyxXQUFTLGlCQUFpQixPQUFPLFFBQVE7QUFDNUMsV0FBTyxZQUFZLFFBQVEsUUFBUSxNQUFNLE1BQU07QUFBQSxFQUNuRDtBQVNPLFdBQVMscUJBQXFCLEdBQUc7QUFFcEMsV0FBTyxZQUFZLFdBQVcsSUFBSSxNQUFNLElBQUk7QUFBQSxFQUNoRDtBQVlPLFdBQVMsa0JBQWtCLEdBQUcsR0FBRztBQUNwQyxXQUFPLFlBQVksUUFBUSxJQUFJLE1BQU0sQ0FBQztBQUFBLEVBQzFDO0FBUU8sV0FBUyxvQkFBb0I7QUFDaEMsV0FBTyxLQUFLLHFCQUFxQjtBQUFBLEVBQ3JDO0FBT08sV0FBUyxhQUFhO0FBQ3pCLFdBQU8sWUFBWSxJQUFJO0FBQUEsRUFDM0I7QUFPTyxXQUFTLGFBQWE7QUFDekIsV0FBTyxZQUFZLElBQUk7QUFBQSxFQUMzQjtBQU9PLFdBQVMsaUJBQWlCO0FBQzdCLFdBQU8sWUFBWSxJQUFJO0FBQUEsRUFDM0I7QUFPTyxXQUFTLHVCQUF1QjtBQUNuQyxXQUFPLFlBQVksSUFBSTtBQUFBLEVBQzNCO0FBT08sV0FBUyxtQkFBbUI7QUFDL0IsV0FBTyxZQUFZLElBQUk7QUFBQSxFQUMzQjtBQVFPLFdBQVMsb0JBQW9CO0FBQ2hDLFdBQU8sS0FBSywwQkFBMEI7QUFBQSxFQUMxQztBQU9PLFdBQVMsaUJBQWlCO0FBQzdCLFdBQU8sWUFBWSxJQUFJO0FBQUEsRUFDM0I7QUFPTyxXQUFTLG1CQUFtQjtBQUMvQixXQUFPLFlBQVksSUFBSTtBQUFBLEVBQzNCO0FBUU8sV0FBUyxvQkFBb0I7QUFDaEMsV0FBTyxLQUFLLDBCQUEwQjtBQUFBLEVBQzFDO0FBUU8sV0FBUyxpQkFBaUI7QUFDN0IsV0FBTyxLQUFLLHVCQUF1QjtBQUFBLEVBQ3ZDO0FBV08sV0FBUywwQkFBMEIsR0FBRyxHQUFHLEdBQUcsR0FBRztBQUNsRCxRQUFJLE9BQU8sS0FBSyxVQUFVLEVBQUMsR0FBRyxLQUFLLEdBQUcsR0FBRyxLQUFLLEdBQUcsR0FBRyxLQUFLLEdBQUcsR0FBRyxLQUFLLElBQUcsQ0FBQztBQUN4RSxXQUFPLFlBQVksUUFBUSxJQUFJO0FBQUEsRUFDbkM7OztBQzNRQTtBQUFBO0FBQUE7QUFBQTtBQXNCTyxXQUFTLGVBQWU7QUFDM0IsV0FBTyxLQUFLLHFCQUFxQjtBQUFBLEVBQ3JDOzs7QUN4QkE7QUFBQTtBQUFBO0FBQUE7QUFLTyxXQUFTLGVBQWUsS0FBSztBQUNsQyxXQUFPLFlBQVksUUFBUSxHQUFHO0FBQUEsRUFDaEM7OztBQ1BBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWtCQSxXQUFTLGVBQWUsT0FBTyxTQUFTO0FBSXZDLFdBQU8sWUFBWSxNQUFNLFFBQVEsT0FBTztBQUFBLEVBQ3pDO0FBUU8sV0FBUyxTQUFTLFNBQVM7QUFDakMsbUJBQWUsS0FBSyxPQUFPO0FBQUEsRUFDNUI7QUFRTyxXQUFTLFNBQVMsU0FBUztBQUNqQyxtQkFBZSxLQUFLLE9BQU87QUFBQSxFQUM1QjtBQVFPLFdBQVMsU0FBUyxTQUFTO0FBQ2pDLG1CQUFlLEtBQUssT0FBTztBQUFBLEVBQzVCO0FBUU8sV0FBUyxRQUFRLFNBQVM7QUFDaEMsbUJBQWUsS0FBSyxPQUFPO0FBQUEsRUFDNUI7QUFRTyxXQUFTLFdBQVcsU0FBUztBQUNuQyxtQkFBZSxLQUFLLE9BQU87QUFBQSxFQUM1QjtBQVFPLFdBQVMsU0FBUyxTQUFTO0FBQ2pDLG1CQUFlLEtBQUssT0FBTztBQUFBLEVBQzVCO0FBUU8sV0FBUyxTQUFTLFNBQVM7QUFDakMsbUJBQWUsS0FBSyxPQUFPO0FBQUEsRUFDNUI7QUFRTyxXQUFTLFlBQVksVUFBVTtBQUNyQyxtQkFBZSxLQUFLLFFBQVE7QUFBQSxFQUM3QjtBQUdPLE1BQU0sV0FBVztBQUFBLElBQ3ZCLE9BQU87QUFBQSxJQUNQLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULE9BQU87QUFBQSxFQUNSOzs7QUMzRkEsTUFBSSxXQUFXO0FBR1IsV0FBUyxPQUFPO0FBQ25CLFdBQU8sWUFBWSxHQUFHO0FBQUEsRUFDMUI7QUFFTyxXQUFTLE9BQU87QUFDbkIsV0FBTyxZQUFZLEdBQUc7QUFBQSxFQUMxQjtBQUVPLFdBQVMsT0FBTztBQUNuQixXQUFPLFlBQVksR0FBRztBQUFBLEVBQzFCO0FBT0EsU0FBTyxRQUFRO0FBQUEsSUFDWDtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBLFFBQVE7QUFBQSxNQUNKLElBQUksTUFBTTtBQUNOLGVBQU87QUFBQSxNQUNYO0FBQUEsSUFDSjtBQUFBLEVBQ0o7QUFFQSxTQUFPLFVBQVU7QUFBQSxJQUNiLEdBQUc7QUFBQSxJQUNILEdBQUc7QUFBQSxJQUNILEdBQUc7QUFBQSxJQUNILEdBQUc7QUFBQSxJQUNIO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBRUE7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0o7QUFHQSxNQUFJLE9BQU8sY0FBZTtBQUN0QixlQUFXLE9BQU8sYUFBYTtBQUMvQixXQUFPLGVBQWU7QUFBQSxFQUMxQjtBQUVBLE1BQUksTUFBTztBQUNQLFlBQVEsSUFBSSxpQ0FBaUM7QUFBQSxFQUNqRDsiLAogICJuYW1lcyI6IFsid2luZG93SUQiXQp9Cg== diff --git a/v3/internal/runtime/runtime_debug_desktop_linux.js b/v3/internal/runtime/runtime_debug_desktop_linux.js new file mode 100644 index 00000000..d8fbf5de --- /dev/null +++ b/v3/internal/runtime/runtime_debug_desktop_linux.js @@ -0,0 +1,420 @@ +(() => { + var __defProp = Object.defineProperty; + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); + }; + + // desktop/ipc.js + (function() { + window.WailsInvoke = (message) => { + window.webkit.messageHandlers.wails.postMessage(message); + }; + })(); + + // desktop/calls.js + var callbacks = {}; + function cryptoRandom() { + var array = new Uint32Array(1); + return window.crypto.getRandomValues(array)[0]; + } + function basicRandom() { + return Math.random() * 9007199254740991; + } + var randomFunc; + if (window.crypto) { + randomFunc = cryptoRandom; + } else { + randomFunc = basicRandom; + } + function Call(name, args, timeout) { + if (timeout == null) { + timeout = 0; + } + let windowID2 = window.wails.window.ID(); + return new Promise(function(resolve, reject) { + var callbackID; + do { + callbackID = name + "-" + randomFunc(); + } while (callbacks[callbackID]); + var timeoutHandle; + if (timeout > 0) { + timeoutHandle = setTimeout(function() { + reject(Error("Call to " + name + " timed out. Request ID: " + callbackID)); + }, timeout); + } + callbacks[callbackID] = { + timeoutHandle, + reject, + resolve + }; + try { + const payload = { + name, + args, + callbackID, + windowID: windowID2 + }; + window.WailsInvoke("C" + JSON.stringify(payload)); + } catch (e) { + console.error(e); + } + }); + } + window.ObfuscatedCall = (id, args, timeout) => { + if (timeout == null) { + timeout = 0; + } + return new Promise(function(resolve, reject) { + var callbackID; + do { + callbackID = id + "-" + randomFunc(); + } while (callbacks[callbackID]); + var timeoutHandle; + if (timeout > 0) { + timeoutHandle = setTimeout(function() { + reject(Error("Call to method " + id + " timed out. Request ID: " + callbackID)); + }, timeout); + } + callbacks[callbackID] = { + timeoutHandle, + reject, + resolve + }; + try { + const payload = { + id, + args, + callbackID, + windowID: window.wails.window.ID() + }; + window.WailsInvoke("c" + JSON.stringify(payload)); + } catch (e) { + console.error(e); + } + }); + }; + function Callback(incomingMessage) { + 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 { + callbackData.resolve(message.result); + } + } + + // desktop/events.js + var eventListeners = {}; + function notifyListeners(eventData) { + let eventName = eventData.name; + if (eventListeners[eventName]) { + const newEventListenerList = eventListeners[eventName].slice(); + for (let count = 0; count < eventListeners[eventName].length; count += 1) { + const listener = eventListeners[eventName][count]; + let data = eventData.data; + const destroy = listener.Callback(data); + if (destroy) { + newEventListenerList.splice(count, 1); + } + } + if (newEventListenerList.length === 0) { + removeListener(eventName); + } else { + eventListeners[eventName] = newEventListenerList; + } + } + } + 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 removeListener(eventName) { + delete eventListeners[eventName]; + window.WailsInvoke("EX" + eventName); + } + + // desktop/bindings.js + window.go = {}; + function SetBindings(bindingsMap) { + try { + bindingsMap = JSON.parse(bindingsMap); + } catch (e) { + console.error(e); + } + window.go = window.go || {}; + Object.keys(bindingsMap).forEach((packageName) => { + window.go[packageName] = window.go[packageName] || {}; + Object.keys(bindingsMap[packageName]).forEach((structName) => { + window.go[packageName][structName] = window.go[packageName][structName] || {}; + Object.keys(bindingsMap[packageName][structName]).forEach((methodName) => { + window.go[packageName][structName][methodName] = function() { + let timeout = 0; + function dynamic() { + const args = [].slice.call(arguments); + return Call([packageName, structName, methodName].join("."), args, timeout); + } + dynamic.setTimeout = function(newTimeout) { + timeout = newTimeout; + }; + dynamic.getTimeout = function() { + return timeout; + }; + return dynamic; + }(); + }); + }); + }); + } + + // desktop/window.js + var window_exports = {}; + __export(window_exports, { + 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, + WindowSetPosition: () => WindowSetPosition, + WindowSetSize: () => WindowSetSize, + WindowSetSystemDefaultTheme: () => WindowSetSystemDefaultTheme, + WindowSetTitle: () => WindowSetTitle, + WindowShow: () => WindowShow, + WindowToggleMaximise: () => WindowToggleMaximise, + WindowUnfullscreen: () => WindowUnfullscreen, + WindowUnmaximise: () => WindowUnmaximise, + WindowUnminimise: () => WindowUnminimise + }); + function WindowReload() { + window.location.reload(); + } + function WindowReloadApp() { + window.WailsInvoke("WR"); + } + function WindowSetSystemDefaultTheme() { + window.WailsInvoke("WASDT"); + } + function WindowSetLightTheme() { + window.WailsInvoke("WALT"); + } + function WindowSetDarkTheme() { + window.WailsInvoke("WADT"); + } + function WindowCenter() { + window.WailsInvoke("Wc"); + } + 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) { + window.WailsInvoke("Wz:" + width + ":" + height); + } + function WindowSetAlwaysOnTop(b) { + window.WailsInvoke("WATP:" + (b ? "1" : "0")); + } + 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"); + } + 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) { + let rgba = JSON.stringify({ r: R || 0, g: G || 0, b: B || 0, a: A || 255 }); + window.WailsInvoke("Wr:" + rgba); + } + + // desktop/screen.js + var screen_exports = {}; + __export(screen_exports, { + ScreenGetAll: () => ScreenGetAll + }); + function ScreenGetAll() { + return Call(":wails:ScreenGetAll"); + } + + // desktop/browser.js + var browser_exports = {}; + __export(browser_exports, { + BrowserOpenURL: () => BrowserOpenURL + }); + function BrowserOpenURL(url) { + window.WailsInvoke("BO:" + url); + } + + // 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 + }; + + // desktop/main.js + var windowID = -1; + function Quit() { + window.WailsInvoke("Q"); + } + function Show() { + window.WailsInvoke("S"); + } + function Hide() { + window.WailsInvoke("H"); + } + window.wails = { + Callback, + callbacks, + EventsNotify, + eventListeners, + SetBindings, + window: { + ID: () => { + return windowID; + } + } + }; + window.runtime = { + ...log_exports, + ...window_exports, + ...browser_exports, + ...screen_exports, + EventsOn, + EventsOnce, + EventsOnMultiple, + EventsEmit, + EventsOff, + Show, + Hide, + Quit + }; + if (window.wails_config) { + windowID = window.wails_config.windowID; + window.wails_config = null; + } + if (true) { + console.log("Wails v3.0.0 Debug Mode Enabled"); + } +})(); +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZGVza3RvcC9pcGMuanMiLCAiZGVza3RvcC9jYWxscy5qcyIsICJkZXNrdG9wL2V2ZW50cy5qcyIsICJkZXNrdG9wL2JpbmRpbmdzLmpzIiwgImRlc2t0b3Avd2luZG93LmpzIiwgImRlc2t0b3Avc2NyZWVuLmpzIiwgImRlc2t0b3AvYnJvd3Nlci5qcyIsICJkZXNrdG9wL2xvZy5qcyIsICJkZXNrdG9wL21haW4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qXG4gXyAgICAgICBfXyAgICAgIF8gX19cbnwgfCAgICAgLyAvX19fIF8oXykgL19fX19cbnwgfCAvfCAvIC8gX18gYC8gLyAvIF9fXy9cbnwgfC8gfC8gLyAvXy8gLyAvIChfXyAgKVxufF9fL3xfXy9cXF9fLF8vXy9fL19fX18vXG5UaGUgZWxlY3Ryb24gYWx0ZXJuYXRpdmUgZm9yIEdvXG4oYykgTGVhIEFudGhvbnkgMjAxOS1wcmVzZW50XG4qL1xuLyoganNoaW50IGVzdmVyc2lvbjogNiAqL1xuXG4vKipcbiAqIFdhaWxzSW52b2tlIHNlbmRzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIHRoZSBiYWNrZW5kXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAqL1xuXG4oZnVuY3Rpb24gKCkge1xuXHR3aW5kb3cuV2FpbHNJbnZva2UgPSAobWVzc2FnZSkgPT4ge1xuXHRcdFdJTkRPV1MgJiYgd2luZG93LmNocm9tZS53ZWJ2aWV3LnBvc3RNZXNzYWdlKG1lc3NhZ2UpO1xuXHRcdChEQVJXSU4gfHwgTElOVVgpICYmIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLndhaWxzLnBvc3RNZXNzYWdlKG1lc3NhZ2UpO1xuXHR9XG59KSgpOyIsICIvKlxuIF8gICAgICAgX18gICAgICBfIF9fXG58IHwgICAgIC8gL19fXyBfKF8pIC9fX19fXG58IHwgL3wgLyAvIF9fIGAvIC8gLyBfX18vXG58IHwvIHwvIC8gL18vIC8gLyAoX18gIClcbnxfXy98X18vXFxfXyxfL18vXy9fX19fL1xuVGhlIGVsZWN0cm9uIGFsdGVybmF0aXZlIGZvciBHb1xuKGMpIExlYSBBbnRob255IDIwMTktcHJlc2VudFxuKi9cbi8qIGpzaGludCBlc3ZlcnNpb246IDYgKi9cblxuZXhwb3J0IGNvbnN0IGNhbGxiYWNrcyA9IHt9O1xuXG4vKipcbiAqIFJldHVybnMgYSBudW1iZXIgZnJvbSB0aGUgbmF0aXZlIGJyb3dzZXIgcmFuZG9tIGZ1bmN0aW9uXG4gKlxuICogQHJldHVybnMgbnVtYmVyXG4gKi9cbmZ1bmN0aW9uIGNyeXB0b1JhbmRvbSgpIHtcblx0dmFyIGFycmF5ID0gbmV3IFVpbnQzMkFycmF5KDEpO1xuXHRyZXR1cm4gd2luZG93LmNyeXB0by5nZXRSYW5kb21WYWx1ZXMoYXJyYXkpWzBdO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBudW1iZXIgdXNpbmcgZGEgb2xkLXNrb29sIE1hdGguUmFuZG9tXG4gKiBJIGxpa2VzIHRvIGNhbGwgaXQgTE9MUmFuZG9tXG4gKlxuICogQHJldHVybnMgbnVtYmVyXG4gKi9cbmZ1bmN0aW9uIGJhc2ljUmFuZG9tKCkge1xuXHRyZXR1cm4gTWF0aC5yYW5kb20oKSAqIDkwMDcxOTkyNTQ3NDA5OTE7XG59XG5cbi8vIFBpY2sgYSByYW5kb20gbnVtYmVyIGZ1bmN0aW9uIGJhc2VkIG9uIGJyb3dzZXIgY2FwYWJpbGl0eVxudmFyIHJhbmRvbUZ1bmM7XG5pZiAod2luZG93LmNyeXB0bykge1xuXHRyYW5kb21GdW5jID0gY3J5cHRvUmFuZG9tO1xufSBlbHNlIHtcblx0cmFuZG9tRnVuYyA9IGJhc2ljUmFuZG9tO1xufVxuXG5cbi8qKlxuICogQ2FsbCBzZW5kcyBhIG1lc3NhZ2UgdG8gdGhlIGJhY2tlbmQgdG8gY2FsbCB0aGUgYmluZGluZyB3aXRoIHRoZVxuICogZ2l2ZW4gZGF0YS4gQSBwcm9taXNlIGlzIHJldHVybmVkIGFuZCB3aWxsIGJlIGNvbXBsZXRlZCB3aGVuIHRoZVxuICogYmFja2VuZCByZXNwb25kcy4gVGhpcyB3aWxsIGJlIHJlc29sdmVkIHdoZW4gdGhlIGNhbGwgd2FzIHN1Y2Nlc3NmdWxcbiAqIG9yIHJlamVjdGVkIGlmIGFuIGVycm9yIGlzIHBhc3NlZCBiYWNrLlxuICogVGhlcmUgaXMgYSB0aW1lb3V0IG1lY2hhbmlzbS4gSWYgdGhlIGNhbGwgZG9lc24ndCByZXNwb25kIGluIHRoZSBnaXZlblxuICogdGltZSAoaW4gbWlsbGlzZWNvbmRzKSB0aGVuIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0ge2FueT19IGFyZ3NcbiAqIEBwYXJhbSB7bnVtYmVyPX0gdGltZW91dFxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENhbGwobmFtZSwgYXJncywgdGltZW91dCkge1xuXG5cdC8vIFRpbWVvdXQgaW5maW5pdGUgYnkgZGVmYXVsdFxuXHRpZiAodGltZW91dCA9PSBudWxsKSB7XG5cdFx0dGltZW91dCA9IDA7XG5cdH1cblxuXHRsZXQgd2luZG93SUQgPSB3aW5kb3cud2FpbHMud2luZG93LklEKCk7XG5cblx0Ly8gQ3JlYXRlIGEgcHJvbWlzZVxuXHRyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuXG5cdFx0Ly8gQ3JlYXRlIGEgdW5pcXVlIGNhbGxiYWNrSURcblx0XHR2YXIgY2FsbGJhY2tJRDtcblx0XHRkbyB7XG5cdFx0XHRjYWxsYmFja0lEID0gbmFtZSArICctJyArIHJhbmRvbUZ1bmMoKTtcblx0XHR9IHdoaWxlIChjYWxsYmFja3NbY2FsbGJhY2tJRF0pO1xuXG5cdFx0dmFyIHRpbWVvdXRIYW5kbGU7XG5cdFx0Ly8gU2V0IHRpbWVvdXRcblx0XHRpZiAodGltZW91dCA+IDApIHtcblx0XHRcdHRpbWVvdXRIYW5kbGUgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0cmVqZWN0KEVycm9yKCdDYWxsIHRvICcgKyBuYW1lICsgJyB0aW1lZCBvdXQuIFJlcXVlc3QgSUQ6ICcgKyBjYWxsYmFja0lEKSk7XG5cdFx0XHR9LCB0aW1lb3V0KTtcblx0XHR9XG5cblx0XHQvLyBTdG9yZSBjYWxsYmFja1xuXHRcdGNhbGxiYWNrc1tjYWxsYmFja0lEXSA9IHtcblx0XHRcdHRpbWVvdXRIYW5kbGU6IHRpbWVvdXRIYW5kbGUsXG5cdFx0XHRyZWplY3Q6IHJlamVjdCxcblx0XHRcdHJlc29sdmU6IHJlc29sdmVcblx0XHR9O1xuXG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHBheWxvYWQgPSB7XG5cdFx0XHRcdG5hbWUsXG5cdFx0XHRcdGFyZ3MsXG5cdFx0XHRcdGNhbGxiYWNrSUQsXG5cdFx0XHRcdHdpbmRvd0lELFxuXHRcdFx0fTtcblxuICAgICAgICAgICAgLy8gTWFrZSB0aGUgY2FsbFxuICAgICAgICAgICAgd2luZG93LldhaWxzSW52b2tlKCdDJyArIEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5cbndpbmRvdy5PYmZ1c2NhdGVkQ2FsbCA9IChpZCwgYXJncywgdGltZW91dCkgPT4ge1xuXG4gICAgLy8gVGltZW91dCBpbmZpbml0ZSBieSBkZWZhdWx0XG4gICAgaWYgKHRpbWVvdXQgPT0gbnVsbCkge1xuICAgICAgICB0aW1lb3V0ID0gMDtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYSBwcm9taXNlXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcblxuICAgICAgICAvLyBDcmVhdGUgYSB1bmlxdWUgY2FsbGJhY2tJRFxuICAgICAgICB2YXIgY2FsbGJhY2tJRDtcbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgY2FsbGJhY2tJRCA9IGlkICsgJy0nICsgcmFuZG9tRnVuYygpO1xuICAgICAgICB9IHdoaWxlIChjYWxsYmFja3NbY2FsbGJhY2tJRF0pO1xuXG4gICAgICAgIHZhciB0aW1lb3V0SGFuZGxlO1xuICAgICAgICAvLyBTZXQgdGltZW91dFxuICAgICAgICBpZiAodGltZW91dCA+IDApIHtcbiAgICAgICAgICAgIHRpbWVvdXRIYW5kbGUgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoRXJyb3IoJ0NhbGwgdG8gbWV0aG9kICcgKyBpZCArICcgdGltZWQgb3V0LiBSZXF1ZXN0IElEOiAnICsgY2FsbGJhY2tJRCkpO1xuICAgICAgICAgICAgfSwgdGltZW91dCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTdG9yZSBjYWxsYmFja1xuICAgICAgICBjYWxsYmFja3NbY2FsbGJhY2tJRF0gPSB7XG4gICAgICAgICAgICB0aW1lb3V0SGFuZGxlOiB0aW1lb3V0SGFuZGxlLFxuICAgICAgICAgICAgcmVqZWN0OiByZWplY3QsXG4gICAgICAgICAgICByZXNvbHZlOiByZXNvbHZlXG4gICAgICAgIH07XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSB7XG5cdFx0XHRcdGlkLFxuXHRcdFx0XHRhcmdzLFxuXHRcdFx0XHRjYWxsYmFja0lELFxuXHRcdFx0XHR3aW5kb3dJRDogd2luZG93LndhaWxzLndpbmRvdy5JRCgpLFxuXHRcdFx0fTtcblxuICAgICAgICAgICAgLy8gTWFrZSB0aGUgY2FsbFxuICAgICAgICAgICAgd2luZG93LldhaWxzSW52b2tlKCdjJyArIEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuXG5cbi8qKlxuICogQ2FsbGVkIGJ5IHRoZSBiYWNrZW5kIHRvIHJldHVybiBkYXRhIHRvIGEgcHJldmlvdXNseSBjYWxsZWRcbiAqIGJpbmRpbmcgaW52b2NhdGlvblxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBpbmNvbWluZ01lc3NhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENhbGxiYWNrKGluY29taW5nTWVzc2FnZSkge1xuXHQvLyBQYXJzZSB0aGUgbWVzc2FnZVxuXHRsZXQgbWVzc2FnZTtcblx0dHJ5IHtcblx0XHRtZXNzYWdlID0gSlNPTi5wYXJzZShpbmNvbWluZ01lc3NhZ2UpO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0Y29uc3QgZXJyb3IgPSBgSW52YWxpZCBKU09OIHBhc3NlZCB0byBjYWxsYmFjazogJHtlLm1lc3NhZ2V9LiBNZXNzYWdlOiAke2luY29taW5nTWVzc2FnZX1gO1xuXHRcdHJ1bnRpbWUuTG9nRGVidWcoZXJyb3IpO1xuXHRcdHRocm93IG5ldyBFcnJvcihlcnJvcik7XG5cdH1cblx0bGV0IGNhbGxiYWNrSUQgPSBtZXNzYWdlLmNhbGxiYWNraWQ7XG5cdGxldCBjYWxsYmFja0RhdGEgPSBjYWxsYmFja3NbY2FsbGJhY2tJRF07XG5cdGlmICghY2FsbGJhY2tEYXRhKSB7XG5cdFx0Y29uc3QgZXJyb3IgPSBgQ2FsbGJhY2sgJyR7Y2FsbGJhY2tJRH0nIG5vdCByZWdpc3RlcmVkISEhYDtcblx0XHRjb25zb2xlLmVycm9yKGVycm9yKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXHRcdHRocm93IG5ldyBFcnJvcihlcnJvcik7XG5cdH1cblx0Y2xlYXJUaW1lb3V0KGNhbGxiYWNrRGF0YS50aW1lb3V0SGFuZGxlKTtcblxuXHRkZWxldGUgY2FsbGJhY2tzW2NhbGxiYWNrSURdO1xuXG5cdGlmIChtZXNzYWdlLmVycm9yKSB7XG5cdFx0Y2FsbGJhY2tEYXRhLnJlamVjdChtZXNzYWdlLmVycm9yKTtcblx0fSBlbHNlIHtcblx0XHRjYWxsYmFja0RhdGEucmVzb2x2ZShtZXNzYWdlLnJlc3VsdCk7XG5cdH1cbn1cbiIsICIvKlxuIF8gICAgICAgX18gICAgICBfIF9fXG58IHwgICAgIC8gL19fXyBfKF8pIC9fX19fXG58IHwgL3wgLyAvIF9fIGAvIC8gLyBfX18vXG58IHwvIHwvIC8gL18vIC8gLyAoX18gIClcbnxfXy98X18vXFxfXyxfL18vXy9fX19fL1xuVGhlIGVsZWN0cm9uIGFsdGVybmF0aXZlIGZvciBHb1xuKGMpIExlYSBBbnRob255IDIwMTktcHJlc2VudFxuKi9cbi8qIGpzaGludCBlc3ZlcnNpb246IDYgKi9cblxuLy8gRGVmaW5lcyBhIHNpbmdsZSBsaXN0ZW5lciB3aXRoIGEgbWF4aW11bSBudW1iZXIgb2YgdGltZXMgdG8gY2FsbGJhY2tcblxuLyoqXG4gKiBUaGUgTGlzdGVuZXIgY2xhc3MgZGVmaW5lcyBhIGxpc3RlbmVyISA6LSlcbiAqXG4gKiBAY2xhc3MgTGlzdGVuZXJcbiAqL1xuY2xhc3MgTGlzdGVuZXIge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgTGlzdGVuZXIuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG1heENhbGxiYWNrc1xuICAgICAqIEBtZW1iZXJvZiBMaXN0ZW5lclxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGV2ZW50TmFtZSwgY2FsbGJhY2ssIG1heENhbGxiYWNrcykge1xuICAgICAgICB0aGlzLmV2ZW50TmFtZSA9IGV2ZW50TmFtZTtcbiAgICAgICAgLy8gRGVmYXVsdCBvZiAtMSBtZWFucyBpbmZpbml0ZVxuICAgICAgICB0aGlzLm1heENhbGxiYWNrcyA9IG1heENhbGxiYWNrcyB8fCAtMTtcbiAgICAgICAgLy8gQ2FsbGJhY2sgaW52b2tlcyB0aGUgY2FsbGJhY2sgd2l0aCB0aGUgZ2l2ZW4gZGF0YVxuICAgICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBsaXN0ZW5lciBzaG91bGQgYmUgZGVzdHJveWVkXG4gICAgICAgIHRoaXMuQ2FsbGJhY2sgPSAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgY2FsbGJhY2suYXBwbHkobnVsbCwgZGF0YSk7XG4gICAgICAgICAgICAvLyBJZiBtYXhDYWxsYmFja3MgaXMgaW5maW5pdGUsIHJldHVybiBmYWxzZSAoZG8gbm90IGRlc3Ryb3kpXG4gICAgICAgICAgICBpZiAodGhpcy5tYXhDYWxsYmFja3MgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRGVjcmVtZW50IG1heENhbGxiYWNrcy4gUmV0dXJuIHRydWUgaWYgbm93IDAsIG90aGVyd2lzZSBmYWxzZVxuICAgICAgICAgICAgdGhpcy5tYXhDYWxsYmFja3MgLT0gMTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1heENhbGxiYWNrcyA9PT0gMDtcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBldmVudExpc3RlbmVycyA9IHt9O1xuXG4vKipcbiAqIFJlZ2lzdGVycyBhbiBldmVudCBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgaW52b2tlZCBgbWF4Q2FsbGJhY2tzYCB0aW1lcyBiZWZvcmUgYmVpbmcgZGVzdHJveWVkXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEBwYXJhbSB7bnVtYmVyfSBtYXhDYWxsYmFja3NcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gQSBmdW5jdGlvbiB0byBjYW5jZWwgdGhlIGxpc3RlbmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFdmVudHNPbk11bHRpcGxlKGV2ZW50TmFtZSwgY2FsbGJhY2ssIG1heENhbGxiYWNrcykge1xuICAgIGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0gPSBldmVudExpc3RlbmVyc1tldmVudE5hbWVdIHx8IFtdO1xuICAgIGNvbnN0IHRoaXNMaXN0ZW5lciA9IG5ldyBMaXN0ZW5lcihldmVudE5hbWUsIGNhbGxiYWNrLCBtYXhDYWxsYmFja3MpO1xuICAgIGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0ucHVzaCh0aGlzTGlzdGVuZXIpO1xuICAgIHJldHVybiAoKSA9PiBsaXN0ZW5lck9mZih0aGlzTGlzdGVuZXIpO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBhbiBldmVudCBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgaW52b2tlZCBldmVyeSB0aW1lIHRoZSBldmVudCBpcyBlbWl0dGVkXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gQSBmdW5jdGlvbiB0byBjYW5jZWwgdGhlIGxpc3RlbmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFdmVudHNPbihldmVudE5hbWUsIGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIEV2ZW50c09uTXVsdGlwbGUoZXZlbnROYW1lLCBjYWxsYmFjaywgLTEpO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBhbiBldmVudCBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgaW52b2tlZCBvbmNlIHRoZW4gZGVzdHJveWVkXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gQSBmdW5jdGlvbiB0byBjYW5jZWwgdGhlIGxpc3RlbmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFdmVudHNPbmNlKGV2ZW50TmFtZSwgY2FsbGJhY2spIHtcbiAgICByZXR1cm4gRXZlbnRzT25NdWx0aXBsZShldmVudE5hbWUsIGNhbGxiYWNrLCAxKTtcbn1cblxuZnVuY3Rpb24gbm90aWZ5TGlzdGVuZXJzKGV2ZW50RGF0YSkge1xuXG4gICAgLy8gR2V0IHRoZSBldmVudCBuYW1lXG4gICAgbGV0IGV2ZW50TmFtZSA9IGV2ZW50RGF0YS5uYW1lO1xuXG4gICAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSBhbnkgbGlzdGVuZXJzIGZvciB0aGlzIGV2ZW50XG4gICAgaWYgKGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0pIHtcblxuICAgICAgICAvLyBLZWVwIGEgbGlzdCBvZiBsaXN0ZW5lciBpbmRleGVzIHRvIGRlc3Ryb3lcbiAgICAgICAgY29uc3QgbmV3RXZlbnRMaXN0ZW5lckxpc3QgPSBldmVudExpc3RlbmVyc1tldmVudE5hbWVdLnNsaWNlKCk7XG5cbiAgICAgICAgLy8gSXRlcmF0ZSBsaXN0ZW5lcnNcbiAgICAgICAgZm9yIChsZXQgY291bnQgPSAwOyBjb3VudCA8IGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0ubGVuZ3RoOyBjb3VudCArPSAxKSB7XG5cbiAgICAgICAgICAgIC8vIEdldCBuZXh0IGxpc3RlbmVyXG4gICAgICAgICAgICBjb25zdCBsaXN0ZW5lciA9IGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV1bY291bnRdO1xuXG4gICAgICAgICAgICBsZXQgZGF0YSA9IGV2ZW50RGF0YS5kYXRhO1xuXG4gICAgICAgICAgICAvLyBEbyB0aGUgY2FsbGJhY2tcbiAgICAgICAgICAgIGNvbnN0IGRlc3Ryb3kgPSBsaXN0ZW5lci5DYWxsYmFjayhkYXRhKTtcbiAgICAgICAgICAgIGlmIChkZXN0cm95KSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIGxpc3RlbmVyIGluZGljYXRlZCB0byBkZXN0cm95IGl0c2VsZiwgYWRkIGl0IHRvIHRoZSBkZXN0cm95IGxpc3RcbiAgICAgICAgICAgICAgICBuZXdFdmVudExpc3RlbmVyTGlzdC5zcGxpY2UoY291bnQsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXBkYXRlIGNhbGxiYWNrcyB3aXRoIG5ldyBsaXN0IG9mIGxpc3RlbmVyc1xuICAgICAgICBpZiAobmV3RXZlbnRMaXN0ZW5lckxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihldmVudE5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXSA9IG5ld0V2ZW50TGlzdGVuZXJMaXN0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIE5vdGlmeSBpbmZvcm1zIGZyb250ZW5kIGxpc3RlbmVycyB0aGF0IGFuIGV2ZW50IHdhcyBlbWl0dGVkIHdpdGggdGhlIGdpdmVuIGRhdGFcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge3N0cmluZ30gbm90aWZ5TWVzc2FnZSAtIGVuY29kZWQgbm90aWZpY2F0aW9uIG1lc3NhZ2VcblxuICovXG5leHBvcnQgZnVuY3Rpb24gRXZlbnRzTm90aWZ5KG5vdGlmeU1lc3NhZ2UpIHtcbiAgICAvLyBQYXJzZSB0aGUgbWVzc2FnZVxuICAgIGxldCBtZXNzYWdlO1xuICAgIHRyeSB7XG4gICAgICAgIG1lc3NhZ2UgPSBKU09OLnBhcnNlKG5vdGlmeU1lc3NhZ2UpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSAnSW52YWxpZCBKU09OIHBhc3NlZCB0byBOb3RpZnk6ICcgKyBub3RpZnlNZXNzYWdlO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICBub3RpZnlMaXN0ZW5lcnMobWVzc2FnZSk7XG59XG5cbi8qKlxuICogRW1pdCBhbiBldmVudCB3aXRoIHRoZSBnaXZlbiBuYW1lIGFuZCBkYXRhXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gRXZlbnRzRW1pdChldmVudE5hbWUpIHtcblxuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgIG5hbWU6IGV2ZW50TmFtZSxcbiAgICAgICAgZGF0YTogW10uc2xpY2UuYXBwbHkoYXJndW1lbnRzKS5zbGljZSgxKSxcbiAgICB9O1xuXG4gICAgLy8gTm90aWZ5IEpTIGxpc3RlbmVyc1xuICAgIG5vdGlmeUxpc3RlbmVycyhwYXlsb2FkKTtcblxuICAgIC8vIE5vdGlmeSBHbyBsaXN0ZW5lcnNcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ0VFJyArIEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIoZXZlbnROYW1lKSB7XG4gICAgLy8gUmVtb3ZlIGxvY2FsIGxpc3RlbmVyc1xuICAgIGRlbGV0ZSBldmVudExpc3RlbmVyc1tldmVudE5hbWVdO1xuXG4gICAgLy8gTm90aWZ5IEdvIGxpc3RlbmVyc1xuICAgIHdpbmRvdy5XYWlsc0ludm9rZSgnRVgnICsgZXZlbnROYW1lKTtcbn1cblxuLyoqXG4gKiBPZmYgdW5yZWdpc3RlcnMgYSBsaXN0ZW5lciBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgd2l0aCBPbixcbiAqIG9wdGlvbmFsbHkgbXVsdGlwbGUgbGlzdGVuZXJlcyBjYW4gYmUgdW5yZWdpc3RlcmVkIHZpYSBgYWRkaXRpb25hbEV2ZW50TmFtZXNgXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICogQHBhcmFtICB7Li4uc3RyaW5nfSBhZGRpdGlvbmFsRXZlbnROYW1lc1xuICovXG5leHBvcnQgZnVuY3Rpb24gRXZlbnRzT2ZmKGV2ZW50TmFtZSwgLi4uYWRkaXRpb25hbEV2ZW50TmFtZXMpIHtcbiAgICByZW1vdmVMaXN0ZW5lcihldmVudE5hbWUpXG5cbiAgICBpZiAoYWRkaXRpb25hbEV2ZW50TmFtZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBhZGRpdGlvbmFsRXZlbnROYW1lcy5mb3JFYWNoKGV2ZW50TmFtZSA9PiB7XG4gICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihldmVudE5hbWUpXG4gICAgICAgIH0pXG4gICAgfVxufVxuXG4vKipcbiAqIE9mZiB1bnJlZ2lzdGVycyBhbGwgZXZlbnQgbGlzdGVuZXJzIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCB3aXRoIE9uXG4gKi9cbiBleHBvcnQgZnVuY3Rpb24gRXZlbnRzT2ZmQWxsKCkge1xuICAgIGNvbnN0IGV2ZW50TmFtZXMgPSBPYmplY3Qua2V5cyhldmVudExpc3RlbmVycyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgIT09IGV2ZW50TmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcmVtb3ZlTGlzdGVuZXIoZXZlbnROYW1lc1tpXSk7XG4gICAgfVxufVxuXG4vKipcbiAqIGxpc3RlbmVyT2ZmIHVucmVnaXN0ZXJzIGEgbGlzdGVuZXIgcHJldmlvdXNseSByZWdpc3RlcmVkIHdpdGggRXZlbnRzT25cbiAqXG4gKiBAcGFyYW0ge0xpc3RlbmVyfSBsaXN0ZW5lclxuICovXG4gZnVuY3Rpb24gbGlzdGVuZXJPZmYobGlzdGVuZXIpIHtcbiAgICBjb25zdCBldmVudE5hbWUgPSBsaXN0ZW5lci5ldmVudE5hbWU7XG4gICAgLy8gUmVtb3ZlIGxvY2FsIGxpc3RlbmVyXG4gICAgZXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXSA9IGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0uZmlsdGVyKGwgPT4gbCAhPT0gbGlzdGVuZXIpO1xuXG4gICAgLy8gQ2xlYW4gdXAgaWYgdGhlcmUgYXJlIG5vIGV2ZW50IGxpc3RlbmVycyBsZWZ0XG4gICAgaWYgKGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJlbW92ZUxpc3RlbmVyKGV2ZW50TmFtZSk7XG4gICAgfVxufVxuIiwgIi8qXG4gXyAgICAgICBfXyAgICAgIF8gX18gICAgXG58IHwgICAgIC8gL19fXyBfKF8pIC9fX19fXG58IHwgL3wgLyAvIF9fIGAvIC8gLyBfX18vXG58IHwvIHwvIC8gL18vIC8gLyAoX18gICkgXG58X18vfF9fL1xcX18sXy9fL18vX19fXy8gIFxuVGhlIGVsZWN0cm9uIGFsdGVybmF0aXZlIGZvciBHb1xuKGMpIExlYSBBbnRob255IDIwMTktcHJlc2VudFxuKi9cbi8qIGpzaGludCBlc3ZlcnNpb246IDYgKi9cblxuaW1wb3J0IHtDYWxsfSBmcm9tICcuL2NhbGxzJztcblxuLy8gVGhpcyBpcyB3aGVyZSB3ZSBiaW5kIGdvIG1ldGhvZCB3cmFwcGVyc1xud2luZG93LmdvID0ge307XG5cbmV4cG9ydCBmdW5jdGlvbiBTZXRCaW5kaW5ncyhiaW5kaW5nc01hcCkge1xuXHR0cnkge1xuXHRcdGJpbmRpbmdzTWFwID0gSlNPTi5wYXJzZShiaW5kaW5nc01hcCk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRjb25zb2xlLmVycm9yKGUpO1xuXHR9XG5cblx0Ly8gSW5pdGlhbGlzZSB0aGUgYmluZGluZ3MgbWFwXG5cdHdpbmRvdy5nbyA9IHdpbmRvdy5nbyB8fCB7fTtcblxuXHQvLyBJdGVyYXRlIHBhY2thZ2UgbmFtZXNcblx0T2JqZWN0LmtleXMoYmluZGluZ3NNYXApLmZvckVhY2goKHBhY2thZ2VOYW1lKSA9PiB7XG5cblx0XHQvLyBDcmVhdGUgaW5uZXIgbWFwIGlmIGl0IGRvZXNuJ3QgZXhpc3Rcblx0XHR3aW5kb3cuZ29bcGFja2FnZU5hbWVdID0gd2luZG93LmdvW3BhY2thZ2VOYW1lXSB8fCB7fTtcblxuXHRcdC8vIEl0ZXJhdGUgc3RydWN0IG5hbWVzXG5cdFx0T2JqZWN0LmtleXMoYmluZGluZ3NNYXBbcGFja2FnZU5hbWVdKS5mb3JFYWNoKChzdHJ1Y3ROYW1lKSA9PiB7XG5cblx0XHRcdC8vIENyZWF0ZSBpbm5lciBtYXAgaWYgaXQgZG9lc24ndCBleGlzdFxuXHRcdFx0d2luZG93LmdvW3BhY2thZ2VOYW1lXVtzdHJ1Y3ROYW1lXSA9IHdpbmRvdy5nb1twYWNrYWdlTmFtZV1bc3RydWN0TmFtZV0gfHwge307XG5cblx0XHRcdE9iamVjdC5rZXlzKGJpbmRpbmdzTWFwW3BhY2thZ2VOYW1lXVtzdHJ1Y3ROYW1lXSkuZm9yRWFjaCgobWV0aG9kTmFtZSkgPT4ge1xuXG5cdFx0XHRcdHdpbmRvdy5nb1twYWNrYWdlTmFtZV1bc3RydWN0TmFtZV1bbWV0aG9kTmFtZV0gPSBmdW5jdGlvbiAoKSB7XG5cblx0XHRcdFx0XHQvLyBObyB0aW1lb3V0IGJ5IGRlZmF1bHRcblx0XHRcdFx0XHRsZXQgdGltZW91dCA9IDA7XG5cblx0XHRcdFx0XHQvLyBBY3R1YWwgZnVuY3Rpb25cblx0XHRcdFx0XHRmdW5jdGlvbiBkeW5hbWljKCkge1xuXHRcdFx0XHRcdFx0Y29uc3QgYXJncyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcblx0XHRcdFx0XHRcdHJldHVybiBDYWxsKFtwYWNrYWdlTmFtZSwgc3RydWN0TmFtZSwgbWV0aG9kTmFtZV0uam9pbignLicpLCBhcmdzLCB0aW1lb3V0KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBBbGxvdyBzZXR0aW5nIHRpbWVvdXQgdG8gZnVuY3Rpb25cblx0XHRcdFx0XHRkeW5hbWljLnNldFRpbWVvdXQgPSBmdW5jdGlvbiAobmV3VGltZW91dCkge1xuXHRcdFx0XHRcdFx0dGltZW91dCA9IG5ld1RpbWVvdXQ7XG5cdFx0XHRcdFx0fTtcblxuXHRcdFx0XHRcdC8vIEFsbG93IGdldHRpbmcgdGltZW91dCB0byBmdW5jdGlvblxuXHRcdFx0XHRcdGR5bmFtaWMuZ2V0VGltZW91dCA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdHJldHVybiB0aW1lb3V0O1xuXHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRyZXR1cm4gZHluYW1pYztcblx0XHRcdFx0fSgpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH0pO1xufVxuIiwgIi8qXG4gX1x0ICAgX19cdCAgXyBfX1xufCB8XHQgLyAvX19fIF8oXykgL19fX19cbnwgfCAvfCAvIC8gX18gYC8gLyAvIF9fXy9cbnwgfC8gfC8gLyAvXy8gLyAvIChfXyAgKVxufF9fL3xfXy9cXF9fLF8vXy9fL19fX18vXG5UaGUgZWxlY3Ryb24gYWx0ZXJuYXRpdmUgZm9yIEdvXG4oYykgTGVhIEFudGhvbnkgMjAxOS1wcmVzZW50XG4qL1xuXG4vKiBqc2hpbnQgZXN2ZXJzaW9uOiA5ICovXG5cblxuaW1wb3J0IHtDYWxsfSBmcm9tIFwiLi9jYWxsc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gV2luZG93UmVsb2FkKCkge1xuICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd1JlbG9hZEFwcCgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dSJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dTZXRTeXN0ZW1EZWZhdWx0VGhlbWUoKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXQVNEVCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gV2luZG93U2V0TGlnaHRUaGVtZSgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dBTFQnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd1NldERhcmtUaGVtZSgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dBRFQnKTtcbn1cblxuLyoqXG4gKiBQbGFjZSB0aGUgd2luZG93IGluIHRoZSBjZW50ZXIgb2YgdGhlIHNjcmVlblxuICpcbiAqIEBleHBvcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd0NlbnRlcigpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1djJyk7XG59XG5cbi8qKlxuICogU2V0cyB0aGUgd2luZG93IHRpdGxlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlXG4gKiBAZXhwb3J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dTZXRUaXRsZSh0aXRsZSkge1xuICAgIHdpbmRvdy5XYWlsc0ludm9rZSgnV1QnICsgdGl0bGUpO1xufVxuXG4vKipcbiAqIE1ha2VzIHRoZSB3aW5kb3cgZ28gZnVsbHNjcmVlblxuICpcbiAqIEBleHBvcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd0Z1bGxzY3JlZW4oKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXRicpO1xufVxuXG4vKipcbiAqIFJldmVydHMgdGhlIHdpbmRvdyBmcm9tIGZ1bGxzY3JlZW5cbiAqXG4gKiBAZXhwb3J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dVbmZ1bGxzY3JlZW4oKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXZicpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHN0YXRlIG9mIHRoZSB3aW5kb3csIGkuZS4gd2hldGhlciB0aGUgd2luZG93IGlzIGluIGZ1bGwgc2NyZWVuIG1vZGUgb3Igbm90LlxuICpcbiAqIEBleHBvcnRcbiAqIEByZXR1cm4ge1Byb21pc2U8Ym9vbGVhbj59IFRoZSBzdGF0ZSBvZiB0aGUgd2luZG93XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dJc0Z1bGxzY3JlZW4oKSB7XG4gICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6V2luZG93SXNGdWxsc2NyZWVuXCIpO1xufVxuXG4vKipcbiAqIFNldCB0aGUgU2l6ZSBvZiB0aGUgd2luZG93XG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoXG4gKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dTZXRTaXplKHdpZHRoLCBoZWlnaHQpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dzOicgKyB3aWR0aCArICc6JyArIGhlaWdodCk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBTaXplIG9mIHRoZSB3aW5kb3dcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcmV0dXJuIHtQcm9taXNlPHt3OiBudW1iZXIsIGg6IG51bWJlcn0+fSBUaGUgc2l6ZSBvZiB0aGUgd2luZG93XG5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd0dldFNpemUoKSB7XG4gICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6V2luZG93R2V0U2l6ZVwiKTtcbn1cblxuLyoqXG4gKiBTZXQgdGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgd2luZG93XG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoXG4gKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dTZXRNYXhTaXplKHdpZHRoLCBoZWlnaHQpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1daOicgKyB3aWR0aCArICc6JyArIGhlaWdodCk7XG59XG5cbi8qKlxuICogU2V0IHRoZSBtaW5pbXVtIHNpemUgb2YgdGhlIHdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aFxuICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodFxuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93U2V0TWluU2l6ZSh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXejonICsgd2lkdGggKyAnOicgKyBoZWlnaHQpO1xufVxuXG5cblxuLyoqXG4gKiBTZXQgdGhlIHdpbmRvdyBBbHdheXNPblRvcCBvciBub3Qgb24gdG9wXG4gKlxuICogQGV4cG9ydFxuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93U2V0QWx3YXlzT25Ub3AoYikge1xuXG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXQVRQOicgKyAoYiA/ICcxJyA6ICcwJykpO1xufVxuXG5cblxuXG4vKipcbiAqIFNldCB0aGUgUG9zaXRpb24gb2YgdGhlIHdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7bnVtYmVyfSB4XG4gKiBAcGFyYW0ge251bWJlcn0geVxuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93U2V0UG9zaXRpb24oeCwgeSkge1xuICAgIHdpbmRvdy5XYWlsc0ludm9rZSgnV3A6JyArIHggKyAnOicgKyB5KTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIFBvc2l0aW9uIG9mIHRoZSB3aW5kb3dcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcmV0dXJuIHtQcm9taXNlPHt4OiBudW1iZXIsIHk6IG51bWJlcn0+fSBUaGUgcG9zaXRpb24gb2YgdGhlIHdpbmRvd1xuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93R2V0UG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6V2luZG93R2V0UG9zXCIpO1xufVxuXG4vKipcbiAqIEhpZGUgdGhlIFdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd0hpZGUoKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXSCcpO1xufVxuXG4vKipcbiAqIFNob3cgdGhlIFdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd1Nob3coKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXUycpO1xufVxuXG4vKipcbiAqIE1heGltaXNlIHRoZSBXaW5kb3dcbiAqXG4gKiBAZXhwb3J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dNYXhpbWlzZSgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dNJyk7XG59XG5cbi8qKlxuICogVG9nZ2xlIHRoZSBNYXhpbWlzZSBvZiB0aGUgV2luZG93XG4gKlxuICogQGV4cG9ydFxuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93VG9nZ2xlTWF4aW1pc2UoKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXdCcpO1xufVxuXG4vKipcbiAqIFVubWF4aW1pc2UgdGhlIFdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd1VubWF4aW1pc2UoKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXVScpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHN0YXRlIG9mIHRoZSB3aW5kb3csIGkuZS4gd2hldGhlciB0aGUgd2luZG93IGlzIG1heGltaXNlZCBvciBub3QuXG4gKlxuICogQGV4cG9ydFxuICogQHJldHVybiB7UHJvbWlzZTxib29sZWFuPn0gVGhlIHN0YXRlIG9mIHRoZSB3aW5kb3dcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd0lzTWF4aW1pc2VkKCkge1xuICAgIHJldHVybiBDYWxsKFwiOndhaWxzOldpbmRvd0lzTWF4aW1pc2VkXCIpO1xufVxuXG4vKipcbiAqIE1pbmltaXNlIHRoZSBXaW5kb3dcbiAqXG4gKiBAZXhwb3J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dNaW5pbWlzZSgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dtJyk7XG59XG5cbi8qKlxuICogVW5taW5pbWlzZSB0aGUgV2luZG93XG4gKlxuICogQGV4cG9ydFxuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93VW5taW5pbWlzZSgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1d1Jyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgc3RhdGUgb2YgdGhlIHdpbmRvdywgaS5lLiB3aGV0aGVyIHRoZSB3aW5kb3cgaXMgbWluaW1pc2VkIG9yIG5vdC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcmV0dXJuIHtQcm9taXNlPGJvb2xlYW4+fSBUaGUgc3RhdGUgb2YgdGhlIHdpbmRvd1xuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93SXNNaW5pbWlzZWQoKSB7XG4gICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6V2luZG93SXNNaW5pbWlzZWRcIik7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgc3RhdGUgb2YgdGhlIHdpbmRvdywgaS5lLiB3aGV0aGVyIHRoZSB3aW5kb3cgaXMgbm9ybWFsIG9yIG5vdC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcmV0dXJuIHtQcm9taXNlPGJvb2xlYW4+fSBUaGUgc3RhdGUgb2YgdGhlIHdpbmRvd1xuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93SXNOb3JtYWwoKSB7XG4gICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6V2luZG93SXNOb3JtYWxcIik7XG59XG5cbi8qKlxuICogU2V0cyB0aGUgYmFja2dyb3VuZCBjb2xvdXIgb2YgdGhlIHdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7bnVtYmVyfSBSIFJlZFxuICogQHBhcmFtIHtudW1iZXJ9IEcgR3JlZW5cbiAqIEBwYXJhbSB7bnVtYmVyfSBCIEJsdWVcbiAqIEBwYXJhbSB7bnVtYmVyfSBBIEFscGhhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dTZXRCYWNrZ3JvdW5kQ29sb3VyKFIsIEcsIEIsIEEpIHtcbiAgICBsZXQgcmdiYSA9IEpTT04uc3RyaW5naWZ5KHtyOiBSIHx8IDAsIGc6IEcgfHwgMCwgYjogQiB8fCAwLCBhOiBBIHx8IDI1NX0pO1xuICAgIHdpbmRvdy5XYWlsc0ludm9rZSgnV3I6JyArIHJnYmEpO1xufVxuXG4iLCAiLypcbiBfXHQgICBfX1x0ICBfIF9fXG58IHxcdCAvIC9fX18gXyhfKSAvX19fX1xufCB8IC98IC8gLyBfXyBgLyAvIC8gX19fL1xufCB8LyB8LyAvIC9fLyAvIC8gKF9fICApXG58X18vfF9fL1xcX18sXy9fL18vX19fXy9cblRoZSBlbGVjdHJvbiBhbHRlcm5hdGl2ZSBmb3IgR29cbihjKSBMZWEgQW50aG9ueSAyMDE5LXByZXNlbnRcbiovXG5cbi8qIGpzaGludCBlc3ZlcnNpb246IDkgKi9cblxuXG5pbXBvcnQge0NhbGx9IGZyb20gXCIuL2NhbGxzXCI7XG5cblxuLyoqXG4gKiBHZXRzIHRoZSBhbGwgc2NyZWVucy4gQ2FsbCB0aGlzIGFuZXcgZWFjaCB0aW1lIHlvdSB3YW50IHRvIHJlZnJlc2ggZGF0YSBmcm9tIHRoZSB1bmRlcmx5aW5nIHdpbmRvd2luZyBzeXN0ZW0uXG4gKiBAZXhwb3J0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi93cmFwcGVyL3J1bnRpbWUnKS5TY3JlZW59IFNjcmVlblxuICogQHJldHVybiB7UHJvbWlzZTx7U2NyZWVuW119Pn0gVGhlIHNjcmVlbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNjcmVlbkdldEFsbCgpIHtcbiAgICByZXR1cm4gQ2FsbChcIjp3YWlsczpTY3JlZW5HZXRBbGxcIik7XG59XG4iLCAiLyoqXG4gKiBAZGVzY3JpcHRpb246IFVzZSB0aGUgc3lzdGVtIGRlZmF1bHQgYnJvd3NlciB0byBvcGVuIHRoZSB1cmxcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgXG4gKiBAcmV0dXJuIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gQnJvd3Nlck9wZW5VUkwodXJsKSB7XG4gIHdpbmRvdy5XYWlsc0ludm9rZSgnQk86JyArIHVybCk7XG59IiwgIi8qXG4gXyAgICAgICBfXyAgICAgIF8gX19cbnwgfCAgICAgLyAvX19fIF8oXykgL19fX19cbnwgfCAvfCAvIC8gX18gYC8gLyAvIF9fXy9cbnwgfC8gfC8gLyAvXy8gLyAvIChfXyAgKVxufF9fL3xfXy9cXF9fLF8vXy9fL19fX18vXG5UaGUgZWxlY3Ryb24gYWx0ZXJuYXRpdmUgZm9yIEdvXG4oYykgTGVhIEFudGhvbnkgMjAxOS1wcmVzZW50XG4qL1xuXG4vKiBqc2hpbnQgZXN2ZXJzaW9uOiA2ICovXG5cbi8qKlxuICogU2VuZHMgYSBsb2cgbWVzc2FnZSB0byB0aGUgYmFja2VuZCB3aXRoIHRoZSBnaXZlbiBsZXZlbCArIG1lc3NhZ2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbGV2ZWxcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cbmZ1bmN0aW9uIHNlbmRMb2dNZXNzYWdlKGxldmVsLCBtZXNzYWdlKSB7XG5cblx0Ly8gTG9nIE1lc3NhZ2UgZm9ybWF0OlxuXHQvLyBsW3R5cGVdW21lc3NhZ2VdXG5cdHdpbmRvdy5XYWlsc0ludm9rZSgnTCcgKyBsZXZlbCArIG1lc3NhZ2UpO1xufVxuXG4vKipcbiAqIExvZyB0aGUgZ2l2ZW4gdHJhY2UgbWVzc2FnZSB3aXRoIHRoZSBiYWNrZW5kXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIExvZ1RyYWNlKG1lc3NhZ2UpIHtcblx0c2VuZExvZ01lc3NhZ2UoJ1QnLCBtZXNzYWdlKTtcbn1cblxuLyoqXG4gKiBMb2cgdGhlIGdpdmVuIG1lc3NhZ2Ugd2l0aCB0aGUgYmFja2VuZFxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMb2dQcmludChtZXNzYWdlKSB7XG5cdHNlbmRMb2dNZXNzYWdlKCdQJywgbWVzc2FnZSk7XG59XG5cbi8qKlxuICogTG9nIHRoZSBnaXZlbiBkZWJ1ZyBtZXNzYWdlIHdpdGggdGhlIGJhY2tlbmRcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gTG9nRGVidWcobWVzc2FnZSkge1xuXHRzZW5kTG9nTWVzc2FnZSgnRCcsIG1lc3NhZ2UpO1xufVxuXG4vKipcbiAqIExvZyB0aGUgZ2l2ZW4gaW5mbyBtZXNzYWdlIHdpdGggdGhlIGJhY2tlbmRcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gTG9nSW5mbyhtZXNzYWdlKSB7XG5cdHNlbmRMb2dNZXNzYWdlKCdJJywgbWVzc2FnZSk7XG59XG5cbi8qKlxuICogTG9nIHRoZSBnaXZlbiB3YXJuaW5nIG1lc3NhZ2Ugd2l0aCB0aGUgYmFja2VuZFxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMb2dXYXJuaW5nKG1lc3NhZ2UpIHtcblx0c2VuZExvZ01lc3NhZ2UoJ1cnLCBtZXNzYWdlKTtcbn1cblxuLyoqXG4gKiBMb2cgdGhlIGdpdmVuIGVycm9yIG1lc3NhZ2Ugd2l0aCB0aGUgYmFja2VuZFxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMb2dFcnJvcihtZXNzYWdlKSB7XG5cdHNlbmRMb2dNZXNzYWdlKCdFJywgbWVzc2FnZSk7XG59XG5cbi8qKlxuICogTG9nIHRoZSBnaXZlbiBmYXRhbCBtZXNzYWdlIHdpdGggdGhlIGJhY2tlbmRcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gTG9nRmF0YWwobWVzc2FnZSkge1xuXHRzZW5kTG9nTWVzc2FnZSgnRicsIG1lc3NhZ2UpO1xufVxuXG4vKipcbiAqIFNldHMgdGhlIExvZyBsZXZlbCB0byB0aGUgZ2l2ZW4gbG9nIGxldmVsXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IGxvZ2xldmVsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZXRMb2dMZXZlbChsb2dsZXZlbCkge1xuXHRzZW5kTG9nTWVzc2FnZSgnUycsIGxvZ2xldmVsKTtcbn1cblxuLy8gTG9nIGxldmVsc1xuZXhwb3J0IGNvbnN0IExvZ0xldmVsID0ge1xuXHRUUkFDRTogMSxcblx0REVCVUc6IDIsXG5cdElORk86IDMsXG5cdFdBUk5JTkc6IDQsXG5cdEVSUk9SOiA1LFxufTtcbiIsICIvKlxuIF9cdCAgIF9fXHQgIF8gX19cbnwgfFx0IC8gL19fXyBfKF8pIC9fX19fXG58IHwgL3wgLyAvIF9fIGAvIC8gLyBfX18vXG58IHwvIHwvIC8gL18vIC8gLyAoX18gIClcbnxfXy98X18vXFxfXyxfL18vXy9fX19fL1xuVGhlIGVsZWN0cm9uIGFsdGVybmF0aXZlIGZvciBHb1xuKGMpIExlYSBBbnRob255IDIwMTktcHJlc2VudFxuKi9cbi8qIGpzaGludCBlc3ZlcnNpb246IDkgKi9cblxuaW1wb3J0IFwiLi9pcGMuanNcIjtcbmltcG9ydCB7Q2FsbGJhY2ssIGNhbGxiYWNrc30gZnJvbSAnLi9jYWxscyc7XG5pbXBvcnQge0V2ZW50c05vdGlmeSwgZXZlbnRMaXN0ZW5lcnN9IGZyb20gXCIuL2V2ZW50c1wiO1xuaW1wb3J0IHtTZXRCaW5kaW5nc30gZnJvbSBcIi4vYmluZGluZ3NcIjtcblxuaW1wb3J0ICogYXMgV2luZG93IGZyb20gXCIuL3dpbmRvd1wiO1xuaW1wb3J0ICogYXMgU2NyZWVuIGZyb20gXCIuL3NjcmVlblwiO1xuaW1wb3J0ICogYXMgQnJvd3NlciBmcm9tIFwiLi9icm93c2VyXCI7XG5pbXBvcnQgKiBhcyBMb2cgZnJvbSAnLi9sb2cnO1xuXG5sZXQgd2luZG93SUQgPSAtMTtcblxuXG5leHBvcnQgZnVuY3Rpb24gUXVpdCgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1EnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFNob3coKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdTJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBIaWRlKCkge1xuICAgIHdpbmRvdy5XYWlsc0ludm9rZSgnSCcpO1xufVxuXG4vLyBleHBvcnQgZnVuY3Rpb24gRW52aXJvbm1lbnQoKSB7XG4vLyAgICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6RW52aXJvbm1lbnRcIik7XG4vLyB9XG5cbi8vIEludGVybmFsIHdhaWxzIGVuZHBvaW50c1xud2luZG93LndhaWxzID0ge1xuICAgIENhbGxiYWNrLFxuICAgIGNhbGxiYWNrcyxcbiAgICBFdmVudHNOb3RpZnksXG4gICAgZXZlbnRMaXN0ZW5lcnMsXG4gICAgU2V0QmluZGluZ3MsXG4gICAgd2luZG93OiB7XG4gICAgICAgIElEOiAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gd2luZG93SURcbiAgICAgICAgfSxcbiAgICB9XG59O1xuXG53aW5kb3cucnVudGltZSA9IHtcbiAgICAuLi5Mb2csXG4gICAgLi4uV2luZG93LFxuICAgIC4uLkJyb3dzZXIsXG4gICAgLi4uU2NyZWVuLFxuICAgIEV2ZW50c09uLFxuICAgIEV2ZW50c09uY2UsXG4gICAgRXZlbnRzT25NdWx0aXBsZSxcbiAgICBFdmVudHNFbWl0LFxuICAgIEV2ZW50c09mZixcbiAgICAvLyBFbnZpcm9ubWVudCxcbiAgICBTaG93LFxuICAgIEhpZGUsXG4gICAgUXVpdCxcbn1cblxuLy8gUHJvY2VzcyB0aGUgZXhwZWN0ZWQgcnVudGltZSBjb25maWcgZnJvbSB0aGUgYmFja2VuZFxuaWYoIHdpbmRvdy53YWlsc19jb25maWcgKSB7XG4gICAgd2luZG93SUQgPSB3aW5kb3cud2FpbHNfY29uZmlnLndpbmRvd0lEO1xuICAgIHdpbmRvdy53YWlsc19jb25maWcgPSBudWxsO1xufVxuXG5pZiAoREVCVUcpIHtcbiAgICBjb25zb2xlLmxvZyhcIldhaWxzIHYzLjAuMCBEZWJ1ZyBNb2RlIEVuYWJsZWRcIik7XG59XG5cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7O0FBaUJBLEdBQUMsV0FBWTtBQUNaLFdBQU8sY0FBYyxDQUFDLFlBQVk7QUFFakMsTUFBcUIsT0FBTyxPQUFPLGdCQUFnQixNQUFNLFlBQVksT0FBTztBQUFBLElBQzdFO0FBQUEsRUFDRCxHQUFHOzs7QUNYSSxNQUFNLFlBQVksQ0FBQztBQU8xQixXQUFTLGVBQWU7QUFDdkIsUUFBSSxRQUFRLElBQUksWUFBWSxDQUFDO0FBQzdCLFdBQU8sT0FBTyxPQUFPLGdCQUFnQixLQUFLLEVBQUU7QUFBQSxFQUM3QztBQVFBLFdBQVMsY0FBYztBQUN0QixXQUFPLEtBQUssT0FBTyxJQUFJO0FBQUEsRUFDeEI7QUFHQSxNQUFJO0FBQ0osTUFBSSxPQUFPLFFBQVE7QUFDbEIsaUJBQWE7QUFBQSxFQUNkLE9BQU87QUFDTixpQkFBYTtBQUFBLEVBQ2Q7QUFpQk8sV0FBUyxLQUFLLE1BQU0sTUFBTSxTQUFTO0FBR3pDLFFBQUksV0FBVyxNQUFNO0FBQ3BCLGdCQUFVO0FBQUEsSUFDWDtBQUVBLFFBQUlBLFlBQVcsT0FBTyxNQUFNLE9BQU8sR0FBRztBQUd0QyxXQUFPLElBQUksUUFBUSxTQUFVLFNBQVMsUUFBUTtBQUc3QyxVQUFJO0FBQ0osU0FBRztBQUNGLHFCQUFhLE9BQU8sTUFBTSxXQUFXO0FBQUEsTUFDdEMsU0FBUyxVQUFVO0FBRW5CLFVBQUk7QUFFSixVQUFJLFVBQVUsR0FBRztBQUNoQix3QkFBZ0IsV0FBVyxXQUFZO0FBQ3RDLGlCQUFPLE1BQU0sYUFBYSxPQUFPLDZCQUE2QixVQUFVLENBQUM7QUFBQSxRQUMxRSxHQUFHLE9BQU87QUFBQSxNQUNYO0FBR0EsZ0JBQVUsY0FBYztBQUFBLFFBQ3ZCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxN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 diff --git a/v3/internal/runtime/runtime_debug_desktop_windows.js b/v3/internal/runtime/runtime_debug_desktop_windows.js new file mode 100644 index 00000000..66edb957 --- /dev/null +++ b/v3/internal/runtime/runtime_debug_desktop_windows.js @@ -0,0 +1,420 @@ +(() => { + var __defProp = Object.defineProperty; + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); + }; + + // desktop/ipc.js + (function() { + window.WailsInvoke = (message) => { + window.chrome.webview.postMessage(message); + }; + })(); + + // desktop/calls.js + var callbacks = {}; + function cryptoRandom() { + var array = new Uint32Array(1); + return window.crypto.getRandomValues(array)[0]; + } + function basicRandom() { + return Math.random() * 9007199254740991; + } + var randomFunc; + if (window.crypto) { + randomFunc = cryptoRandom; + } else { + randomFunc = basicRandom; + } + function Call(name, args, timeout) { + if (timeout == null) { + timeout = 0; + } + let windowID2 = window.wails.window.ID(); + return new Promise(function(resolve, reject) { + var callbackID; + do { + callbackID = name + "-" + randomFunc(); + } while (callbacks[callbackID]); + var timeoutHandle; + if (timeout > 0) { + timeoutHandle = setTimeout(function() { + reject(Error("Call to " + name + " timed out. Request ID: " + callbackID)); + }, timeout); + } + callbacks[callbackID] = { + timeoutHandle, + reject, + resolve + }; + try { + const payload = { + name, + args, + callbackID, + windowID: windowID2 + }; + window.WailsInvoke("C" + JSON.stringify(payload)); + } catch (e) { + console.error(e); + } + }); + } + window.ObfuscatedCall = (id, args, timeout) => { + if (timeout == null) { + timeout = 0; + } + return new Promise(function(resolve, reject) { + var callbackID; + do { + callbackID = id + "-" + randomFunc(); + } while (callbacks[callbackID]); + var timeoutHandle; + if (timeout > 0) { + timeoutHandle = setTimeout(function() { + reject(Error("Call to method " + id + " timed out. Request ID: " + callbackID)); + }, timeout); + } + callbacks[callbackID] = { + timeoutHandle, + reject, + resolve + }; + try { + const payload = { + id, + args, + callbackID, + windowID: window.wails.window.ID() + }; + window.WailsInvoke("c" + JSON.stringify(payload)); + } catch (e) { + console.error(e); + } + }); + }; + function Callback(incomingMessage) { + 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 { + callbackData.resolve(message.result); + } + } + + // desktop/events.js + var eventListeners = {}; + function notifyListeners(eventData) { + let eventName = eventData.name; + if (eventListeners[eventName]) { + const newEventListenerList = eventListeners[eventName].slice(); + for (let count = 0; count < eventListeners[eventName].length; count += 1) { + const listener = eventListeners[eventName][count]; + let data = eventData.data; + const destroy = listener.Callback(data); + if (destroy) { + newEventListenerList.splice(count, 1); + } + } + if (newEventListenerList.length === 0) { + removeListener(eventName); + } else { + eventListeners[eventName] = newEventListenerList; + } + } + } + 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 removeListener(eventName) { + delete eventListeners[eventName]; + window.WailsInvoke("EX" + eventName); + } + + // desktop/bindings.js + window.go = {}; + function SetBindings(bindingsMap) { + try { + bindingsMap = JSON.parse(bindingsMap); + } catch (e) { + console.error(e); + } + window.go = window.go || {}; + Object.keys(bindingsMap).forEach((packageName) => { + window.go[packageName] = window.go[packageName] || {}; + Object.keys(bindingsMap[packageName]).forEach((structName) => { + window.go[packageName][structName] = window.go[packageName][structName] || {}; + Object.keys(bindingsMap[packageName][structName]).forEach((methodName) => { + window.go[packageName][structName][methodName] = function() { + let timeout = 0; + function dynamic() { + const args = [].slice.call(arguments); + return Call([packageName, structName, methodName].join("."), args, timeout); + } + dynamic.setTimeout = function(newTimeout) { + timeout = newTimeout; + }; + dynamic.getTimeout = function() { + return timeout; + }; + return dynamic; + }(); + }); + }); + }); + } + + // desktop/window.js + var window_exports = {}; + __export(window_exports, { + 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, + WindowSetPosition: () => WindowSetPosition, + WindowSetSize: () => WindowSetSize, + WindowSetSystemDefaultTheme: () => WindowSetSystemDefaultTheme, + WindowSetTitle: () => WindowSetTitle, + WindowShow: () => WindowShow, + WindowToggleMaximise: () => WindowToggleMaximise, + WindowUnfullscreen: () => WindowUnfullscreen, + WindowUnmaximise: () => WindowUnmaximise, + WindowUnminimise: () => WindowUnminimise + }); + function WindowReload() { + window.location.reload(); + } + function WindowReloadApp() { + window.WailsInvoke("WR"); + } + function WindowSetSystemDefaultTheme() { + window.WailsInvoke("WASDT"); + } + function WindowSetLightTheme() { + window.WailsInvoke("WALT"); + } + function WindowSetDarkTheme() { + window.WailsInvoke("WADT"); + } + function WindowCenter() { + window.WailsInvoke("Wc"); + } + 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) { + window.WailsInvoke("Wz:" + width + ":" + height); + } + function WindowSetAlwaysOnTop(b) { + window.WailsInvoke("WATP:" + (b ? "1" : "0")); + } + 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"); + } + 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) { + let rgba = JSON.stringify({ r: R || 0, g: G || 0, b: B || 0, a: A || 255 }); + window.WailsInvoke("Wr:" + rgba); + } + + // desktop/screen.js + var screen_exports = {}; + __export(screen_exports, { + ScreenGetAll: () => ScreenGetAll + }); + function ScreenGetAll() { + return Call(":wails:ScreenGetAll"); + } + + // desktop/browser.js + var browser_exports = {}; + __export(browser_exports, { + BrowserOpenURL: () => BrowserOpenURL + }); + function BrowserOpenURL(url) { + window.WailsInvoke("BO:" + url); + } + + // 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 + }; + + // desktop/main.js + var windowID = -1; + function Quit() { + window.WailsInvoke("Q"); + } + function Show() { + window.WailsInvoke("S"); + } + function Hide() { + window.WailsInvoke("H"); + } + window.wails = { + Callback, + callbacks, + EventsNotify, + eventListeners, + SetBindings, + window: { + ID: () => { + return windowID; + } + } + }; + window.runtime = { + ...log_exports, + ...window_exports, + ...browser_exports, + ...screen_exports, + EventsOn, + EventsOnce, + EventsOnMultiple, + EventsEmit, + EventsOff, + Show, + Hide, + Quit + }; + if (window.wails_config) { + windowID = window.wails_config.windowID; + window.wails_config = null; + } + if (true) { + console.log("Wails v3.0.0 Debug Mode Enabled"); + } +})(); +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiZGVza3RvcC9pcGMuanMiLCAiZGVza3RvcC9jYWxscy5qcyIsICJkZXNrdG9wL2V2ZW50cy5qcyIsICJkZXNrdG9wL2JpbmRpbmdzLmpzIiwgImRlc2t0b3Avd2luZG93LmpzIiwgImRlc2t0b3Avc2NyZWVuLmpzIiwgImRlc2t0b3AvYnJvd3Nlci5qcyIsICJkZXNrdG9wL2xvZy5qcyIsICJkZXNrdG9wL21haW4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qXG4gXyAgICAgICBfXyAgICAgIF8gX19cbnwgfCAgICAgLyAvX19fIF8oXykgL19fX19cbnwgfCAvfCAvIC8gX18gYC8gLyAvIF9fXy9cbnwgfC8gfC8gLyAvXy8gLyAvIChfXyAgKVxufF9fL3xfXy9cXF9fLF8vXy9fL19fX18vXG5UaGUgZWxlY3Ryb24gYWx0ZXJuYXRpdmUgZm9yIEdvXG4oYykgTGVhIEFudGhvbnkgMjAxOS1wcmVzZW50XG4qL1xuLyoganNoaW50IGVzdmVyc2lvbjogNiAqL1xuXG4vKipcbiAqIFdhaWxzSW52b2tlIHNlbmRzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIHRoZSBiYWNrZW5kXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAqL1xuXG4oZnVuY3Rpb24gKCkge1xuXHR3aW5kb3cuV2FpbHNJbnZva2UgPSAobWVzc2FnZSkgPT4ge1xuXHRcdFdJTkRPV1MgJiYgd2luZG93LmNocm9tZS53ZWJ2aWV3LnBvc3RNZXNzYWdlKG1lc3NhZ2UpO1xuXHRcdChEQVJXSU4gfHwgTElOVVgpICYmIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLndhaWxzLnBvc3RNZXNzYWdlKG1lc3NhZ2UpO1xuXHR9XG59KSgpOyIsICIvKlxuIF8gICAgICAgX18gICAgICBfIF9fXG58IHwgICAgIC8gL19fXyBfKF8pIC9fX19fXG58IHwgL3wgLyAvIF9fIGAvIC8gLyBfX18vXG58IHwvIHwvIC8gL18vIC8gLyAoX18gIClcbnxfXy98X18vXFxfXyxfL18vXy9fX19fL1xuVGhlIGVsZWN0cm9uIGFsdGVybmF0aXZlIGZvciBHb1xuKGMpIExlYSBBbnRob255IDIwMTktcHJlc2VudFxuKi9cbi8qIGpzaGludCBlc3ZlcnNpb246IDYgKi9cblxuZXhwb3J0IGNvbnN0IGNhbGxiYWNrcyA9IHt9O1xuXG4vKipcbiAqIFJldHVybnMgYSBudW1iZXIgZnJvbSB0aGUgbmF0aXZlIGJyb3dzZXIgcmFuZG9tIGZ1bmN0aW9uXG4gKlxuICogQHJldHVybnMgbnVtYmVyXG4gKi9cbmZ1bmN0aW9uIGNyeXB0b1JhbmRvbSgpIHtcblx0dmFyIGFycmF5ID0gbmV3IFVpbnQzMkFycmF5KDEpO1xuXHRyZXR1cm4gd2luZG93LmNyeXB0by5nZXRSYW5kb21WYWx1ZXMoYXJyYXkpWzBdO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBudW1iZXIgdXNpbmcgZGEgb2xkLXNrb29sIE1hdGguUmFuZG9tXG4gKiBJIGxpa2VzIHRvIGNhbGwgaXQgTE9MUmFuZG9tXG4gKlxuICogQHJldHVybnMgbnVtYmVyXG4gKi9cbmZ1bmN0aW9uIGJhc2ljUmFuZG9tKCkge1xuXHRyZXR1cm4gTWF0aC5yYW5kb20oKSAqIDkwMDcxOTkyNTQ3NDA5OTE7XG59XG5cbi8vIFBpY2sgYSByYW5kb20gbnVtYmVyIGZ1bmN0aW9uIGJhc2VkIG9uIGJyb3dzZXIgY2FwYWJpbGl0eVxudmFyIHJhbmRvbUZ1bmM7XG5pZiAod2luZG93LmNyeXB0bykge1xuXHRyYW5kb21GdW5jID0gY3J5cHRvUmFuZG9tO1xufSBlbHNlIHtcblx0cmFuZG9tRnVuYyA9IGJhc2ljUmFuZG9tO1xufVxuXG5cbi8qKlxuICogQ2FsbCBzZW5kcyBhIG1lc3NhZ2UgdG8gdGhlIGJhY2tlbmQgdG8gY2FsbCB0aGUgYmluZGluZyB3aXRoIHRoZVxuICogZ2l2ZW4gZGF0YS4gQSBwcm9taXNlIGlzIHJldHVybmVkIGFuZCB3aWxsIGJlIGNvbXBsZXRlZCB3aGVuIHRoZVxuICogYmFja2VuZCByZXNwb25kcy4gVGhpcyB3aWxsIGJlIHJlc29sdmVkIHdoZW4gdGhlIGNhbGwgd2FzIHN1Y2Nlc3NmdWxcbiAqIG9yIHJlamVjdGVkIGlmIGFuIGVycm9yIGlzIHBhc3NlZCBiYWNrLlxuICogVGhlcmUgaXMgYSB0aW1lb3V0IG1lY2hhbmlzbS4gSWYgdGhlIGNhbGwgZG9lc24ndCByZXNwb25kIGluIHRoZSBnaXZlblxuICogdGltZSAoaW4gbWlsbGlzZWNvbmRzKSB0aGVuIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0ge2FueT19IGFyZ3NcbiAqIEBwYXJhbSB7bnVtYmVyPX0gdGltZW91dFxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENhbGwobmFtZSwgYXJncywgdGltZW91dCkge1xuXG5cdC8vIFRpbWVvdXQgaW5maW5pdGUgYnkgZGVmYXVsdFxuXHRpZiAodGltZW91dCA9PSBudWxsKSB7XG5cdFx0dGltZW91dCA9IDA7XG5cdH1cblxuXHRsZXQgd2luZG93SUQgPSB3aW5kb3cud2FpbHMud2luZG93LklEKCk7XG5cblx0Ly8gQ3JlYXRlIGEgcHJvbWlzZVxuXHRyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuXG5cdFx0Ly8gQ3JlYXRlIGEgdW5pcXVlIGNhbGxiYWNrSURcblx0XHR2YXIgY2FsbGJhY2tJRDtcblx0XHRkbyB7XG5cdFx0XHRjYWxsYmFja0lEID0gbmFtZSArICctJyArIHJhbmRvbUZ1bmMoKTtcblx0XHR9IHdoaWxlIChjYWxsYmFja3NbY2FsbGJhY2tJRF0pO1xuXG5cdFx0dmFyIHRpbWVvdXRIYW5kbGU7XG5cdFx0Ly8gU2V0IHRpbWVvdXRcblx0XHRpZiAodGltZW91dCA+IDApIHtcblx0XHRcdHRpbWVvdXRIYW5kbGUgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0cmVqZWN0KEVycm9yKCdDYWxsIHRvICcgKyBuYW1lICsgJyB0aW1lZCBvdXQuIFJlcXVlc3QgSUQ6ICcgKyBjYWxsYmFja0lEKSk7XG5cdFx0XHR9LCB0aW1lb3V0KTtcblx0XHR9XG5cblx0XHQvLyBTdG9yZSBjYWxsYmFja1xuXHRcdGNhbGxiYWNrc1tjYWxsYmFja0lEXSA9IHtcblx0XHRcdHRpbWVvdXRIYW5kbGU6IHRpbWVvdXRIYW5kbGUsXG5cdFx0XHRyZWplY3Q6IHJlamVjdCxcblx0XHRcdHJlc29sdmU6IHJlc29sdmVcblx0XHR9O1xuXG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHBheWxvYWQgPSB7XG5cdFx0XHRcdG5hbWUsXG5cdFx0XHRcdGFyZ3MsXG5cdFx0XHRcdGNhbGxiYWNrSUQsXG5cdFx0XHRcdHdpbmRvd0lELFxuXHRcdFx0fTtcblxuICAgICAgICAgICAgLy8gTWFrZSB0aGUgY2FsbFxuICAgICAgICAgICAgd2luZG93LldhaWxzSW52b2tlKCdDJyArIEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5cbndpbmRvdy5PYmZ1c2NhdGVkQ2FsbCA9IChpZCwgYXJncywgdGltZW91dCkgPT4ge1xuXG4gICAgLy8gVGltZW91dCBpbmZpbml0ZSBieSBkZWZhdWx0XG4gICAgaWYgKHRpbWVvdXQgPT0gbnVsbCkge1xuICAgICAgICB0aW1lb3V0ID0gMDtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYSBwcm9taXNlXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcblxuICAgICAgICAvLyBDcmVhdGUgYSB1bmlxdWUgY2FsbGJhY2tJRFxuICAgICAgICB2YXIgY2FsbGJhY2tJRDtcbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgY2FsbGJhY2tJRCA9IGlkICsgJy0nICsgcmFuZG9tRnVuYygpO1xuICAgICAgICB9IHdoaWxlIChjYWxsYmFja3NbY2FsbGJhY2tJRF0pO1xuXG4gICAgICAgIHZhciB0aW1lb3V0SGFuZGxlO1xuICAgICAgICAvLyBTZXQgdGltZW91dFxuICAgICAgICBpZiAodGltZW91dCA+IDApIHtcbiAgICAgICAgICAgIHRpbWVvdXRIYW5kbGUgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoRXJyb3IoJ0NhbGwgdG8gbWV0aG9kICcgKyBpZCArICcgdGltZWQgb3V0LiBSZXF1ZXN0IElEOiAnICsgY2FsbGJhY2tJRCkpO1xuICAgICAgICAgICAgfSwgdGltZW91dCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTdG9yZSBjYWxsYmFja1xuICAgICAgICBjYWxsYmFja3NbY2FsbGJhY2tJRF0gPSB7XG4gICAgICAgICAgICB0aW1lb3V0SGFuZGxlOiB0aW1lb3V0SGFuZGxlLFxuICAgICAgICAgICAgcmVqZWN0OiByZWplY3QsXG4gICAgICAgICAgICByZXNvbHZlOiByZXNvbHZlXG4gICAgICAgIH07XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSB7XG5cdFx0XHRcdGlkLFxuXHRcdFx0XHRhcmdzLFxuXHRcdFx0XHRjYWxsYmFja0lELFxuXHRcdFx0XHR3aW5kb3dJRDogd2luZG93LndhaWxzLndpbmRvdy5JRCgpLFxuXHRcdFx0fTtcblxuICAgICAgICAgICAgLy8gTWFrZSB0aGUgY2FsbFxuICAgICAgICAgICAgd2luZG93LldhaWxzSW52b2tlKCdjJyArIEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuXG5cbi8qKlxuICogQ2FsbGVkIGJ5IHRoZSBiYWNrZW5kIHRvIHJldHVybiBkYXRhIHRvIGEgcHJldmlvdXNseSBjYWxsZWRcbiAqIGJpbmRpbmcgaW52b2NhdGlvblxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBpbmNvbWluZ01lc3NhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENhbGxiYWNrKGluY29taW5nTWVzc2FnZSkge1xuXHQvLyBQYXJzZSB0aGUgbWVzc2FnZVxuXHRsZXQgbWVzc2FnZTtcblx0dHJ5IHtcblx0XHRtZXNzYWdlID0gSlNPTi5wYXJzZShpbmNvbWluZ01lc3NhZ2UpO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0Y29uc3QgZXJyb3IgPSBgSW52YWxpZCBKU09OIHBhc3NlZCB0byBjYWxsYmFjazogJHtlLm1lc3NhZ2V9LiBNZXNzYWdlOiAke2luY29taW5nTWVzc2FnZX1gO1xuXHRcdHJ1bnRpbWUuTG9nRGVidWcoZXJyb3IpO1xuXHRcdHRocm93IG5ldyBFcnJvcihlcnJvcik7XG5cdH1cblx0bGV0IGNhbGxiYWNrSUQgPSBtZXNzYWdlLmNhbGxiYWNraWQ7XG5cdGxldCBjYWxsYmFja0RhdGEgPSBjYWxsYmFja3NbY2FsbGJhY2tJRF07XG5cdGlmICghY2FsbGJhY2tEYXRhKSB7XG5cdFx0Y29uc3QgZXJyb3IgPSBgQ2FsbGJhY2sgJyR7Y2FsbGJhY2tJRH0nIG5vdCByZWdpc3RlcmVkISEhYDtcblx0XHRjb25zb2xlLmVycm9yKGVycm9yKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXHRcdHRocm93IG5ldyBFcnJvcihlcnJvcik7XG5cdH1cblx0Y2xlYXJUaW1lb3V0KGNhbGxiYWNrRGF0YS50aW1lb3V0SGFuZGxlKTtcblxuXHRkZWxldGUgY2FsbGJhY2tzW2NhbGxiYWNrSURdO1xuXG5cdGlmIChtZXNzYWdlLmVycm9yKSB7XG5cdFx0Y2FsbGJhY2tEYXRhLnJlamVjdChtZXNzYWdlLmVycm9yKTtcblx0fSBlbHNlIHtcblx0XHRjYWxsYmFja0RhdGEucmVzb2x2ZShtZXNzYWdlLnJlc3VsdCk7XG5cdH1cbn1cbiIsICIvKlxuIF8gICAgICAgX18gICAgICBfIF9fXG58IHwgICAgIC8gL19fXyBfKF8pIC9fX19fXG58IHwgL3wgLyAvIF9fIGAvIC8gLyBfX18vXG58IHwvIHwvIC8gL18vIC8gLyAoX18gIClcbnxfXy98X18vXFxfXyxfL18vXy9fX19fL1xuVGhlIGVsZWN0cm9uIGFsdGVybmF0aXZlIGZvciBHb1xuKGMpIExlYSBBbnRob255IDIwMTktcHJlc2VudFxuKi9cbi8qIGpzaGludCBlc3ZlcnNpb246IDYgKi9cblxuLy8gRGVmaW5lcyBhIHNpbmdsZSBsaXN0ZW5lciB3aXRoIGEgbWF4aW11bSBudW1iZXIgb2YgdGltZXMgdG8gY2FsbGJhY2tcblxuLyoqXG4gKiBUaGUgTGlzdGVuZXIgY2xhc3MgZGVmaW5lcyBhIGxpc3RlbmVyISA6LSlcbiAqXG4gKiBAY2xhc3MgTGlzdGVuZXJcbiAqL1xuY2xhc3MgTGlzdGVuZXIge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgTGlzdGVuZXIuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG1heENhbGxiYWNrc1xuICAgICAqIEBtZW1iZXJvZiBMaXN0ZW5lclxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGV2ZW50TmFtZSwgY2FsbGJhY2ssIG1heENhbGxiYWNrcykge1xuICAgICAgICB0aGlzLmV2ZW50TmFtZSA9IGV2ZW50TmFtZTtcbiAgICAgICAgLy8gRGVmYXVsdCBvZiAtMSBtZWFucyBpbmZpbml0ZVxuICAgICAgICB0aGlzLm1heENhbGxiYWNrcyA9IG1heENhbGxiYWNrcyB8fCAtMTtcbiAgICAgICAgLy8gQ2FsbGJhY2sgaW52b2tlcyB0aGUgY2FsbGJhY2sgd2l0aCB0aGUgZ2l2ZW4gZGF0YVxuICAgICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBsaXN0ZW5lciBzaG91bGQgYmUgZGVzdHJveWVkXG4gICAgICAgIHRoaXMuQ2FsbGJhY2sgPSAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgY2FsbGJhY2suYXBwbHkobnVsbCwgZGF0YSk7XG4gICAgICAgICAgICAvLyBJZiBtYXhDYWxsYmFja3MgaXMgaW5maW5pdGUsIHJldHVybiBmYWxzZSAoZG8gbm90IGRlc3Ryb3kpXG4gICAgICAgICAgICBpZiAodGhpcy5tYXhDYWxsYmFja3MgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRGVjcmVtZW50IG1heENhbGxiYWNrcy4gUmV0dXJuIHRydWUgaWYgbm93IDAsIG90aGVyd2lzZSBmYWxzZVxuICAgICAgICAgICAgdGhpcy5tYXhDYWxsYmFja3MgLT0gMTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1heENhbGxiYWNrcyA9PT0gMDtcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBldmVudExpc3RlbmVycyA9IHt9O1xuXG4vKipcbiAqIFJlZ2lzdGVycyBhbiBldmVudCBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgaW52b2tlZCBgbWF4Q2FsbGJhY2tzYCB0aW1lcyBiZWZvcmUgYmVpbmcgZGVzdHJveWVkXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEBwYXJhbSB7bnVtYmVyfSBtYXhDYWxsYmFja3NcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gQSBmdW5jdGlvbiB0byBjYW5jZWwgdGhlIGxpc3RlbmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFdmVudHNPbk11bHRpcGxlKGV2ZW50TmFtZSwgY2FsbGJhY2ssIG1heENhbGxiYWNrcykge1xuICAgIGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0gPSBldmVudExpc3RlbmVyc1tldmVudE5hbWVdIHx8IFtdO1xuICAgIGNvbnN0IHRoaXNMaXN0ZW5lciA9IG5ldyBMaXN0ZW5lcihldmVudE5hbWUsIGNhbGxiYWNrLCBtYXhDYWxsYmFja3MpO1xuICAgIGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0ucHVzaCh0aGlzTGlzdGVuZXIpO1xuICAgIHJldHVybiAoKSA9PiBsaXN0ZW5lck9mZih0aGlzTGlzdGVuZXIpO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBhbiBldmVudCBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgaW52b2tlZCBldmVyeSB0aW1lIHRoZSBldmVudCBpcyBlbWl0dGVkXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gQSBmdW5jdGlvbiB0byBjYW5jZWwgdGhlIGxpc3RlbmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFdmVudHNPbihldmVudE5hbWUsIGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIEV2ZW50c09uTXVsdGlwbGUoZXZlbnROYW1lLCBjYWxsYmFjaywgLTEpO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBhbiBldmVudCBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgaW52b2tlZCBvbmNlIHRoZW4gZGVzdHJveWVkXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gQSBmdW5jdGlvbiB0byBjYW5jZWwgdGhlIGxpc3RlbmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFdmVudHNPbmNlKGV2ZW50TmFtZSwgY2FsbGJhY2spIHtcbiAgICByZXR1cm4gRXZlbnRzT25NdWx0aXBsZShldmVudE5hbWUsIGNhbGxiYWNrLCAxKTtcbn1cblxuZnVuY3Rpb24gbm90aWZ5TGlzdGVuZXJzKGV2ZW50RGF0YSkge1xuXG4gICAgLy8gR2V0IHRoZSBldmVudCBuYW1lXG4gICAgbGV0IGV2ZW50TmFtZSA9IGV2ZW50RGF0YS5uYW1lO1xuXG4gICAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSBhbnkgbGlzdGVuZXJzIGZvciB0aGlzIGV2ZW50XG4gICAgaWYgKGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0pIHtcblxuICAgICAgICAvLyBLZWVwIGEgbGlzdCBvZiBsaXN0ZW5lciBpbmRleGVzIHRvIGRlc3Ryb3lcbiAgICAgICAgY29uc3QgbmV3RXZlbnRMaXN0ZW5lckxpc3QgPSBldmVudExpc3RlbmVyc1tldmVudE5hbWVdLnNsaWNlKCk7XG5cbiAgICAgICAgLy8gSXRlcmF0ZSBsaXN0ZW5lcnNcbiAgICAgICAgZm9yIChsZXQgY291bnQgPSAwOyBjb3VudCA8IGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0ubGVuZ3RoOyBjb3VudCArPSAxKSB7XG5cbiAgICAgICAgICAgIC8vIEdldCBuZXh0IGxpc3RlbmVyXG4gICAgICAgICAgICBjb25zdCBsaXN0ZW5lciA9IGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV1bY291bnRdO1xuXG4gICAgICAgICAgICBsZXQgZGF0YSA9IGV2ZW50RGF0YS5kYXRhO1xuXG4gICAgICAgICAgICAvLyBEbyB0aGUgY2FsbGJhY2tcbiAgICAgICAgICAgIGNvbnN0IGRlc3Ryb3kgPSBsaXN0ZW5lci5DYWxsYmFjayhkYXRhKTtcbiAgICAgICAgICAgIGlmIChkZXN0cm95KSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIGxpc3RlbmVyIGluZGljYXRlZCB0byBkZXN0cm95IGl0c2VsZiwgYWRkIGl0IHRvIHRoZSBkZXN0cm95IGxpc3RcbiAgICAgICAgICAgICAgICBuZXdFdmVudExpc3RlbmVyTGlzdC5zcGxpY2UoY291bnQsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXBkYXRlIGNhbGxiYWNrcyB3aXRoIG5ldyBsaXN0IG9mIGxpc3RlbmVyc1xuICAgICAgICBpZiAobmV3RXZlbnRMaXN0ZW5lckxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihldmVudE5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXSA9IG5ld0V2ZW50TGlzdGVuZXJMaXN0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIE5vdGlmeSBpbmZvcm1zIGZyb250ZW5kIGxpc3RlbmVycyB0aGF0IGFuIGV2ZW50IHdhcyBlbWl0dGVkIHdpdGggdGhlIGdpdmVuIGRhdGFcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge3N0cmluZ30gbm90aWZ5TWVzc2FnZSAtIGVuY29kZWQgbm90aWZpY2F0aW9uIG1lc3NhZ2VcblxuICovXG5leHBvcnQgZnVuY3Rpb24gRXZlbnRzTm90aWZ5KG5vdGlmeU1lc3NhZ2UpIHtcbiAgICAvLyBQYXJzZSB0aGUgbWVzc2FnZVxuICAgIGxldCBtZXNzYWdlO1xuICAgIHRyeSB7XG4gICAgICAgIG1lc3NhZ2UgPSBKU09OLnBhcnNlKG5vdGlmeU1lc3NhZ2UpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSAnSW52YWxpZCBKU09OIHBhc3NlZCB0byBOb3RpZnk6ICcgKyBub3RpZnlNZXNzYWdlO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICBub3RpZnlMaXN0ZW5lcnMobWVzc2FnZSk7XG59XG5cbi8qKlxuICogRW1pdCBhbiBldmVudCB3aXRoIHRoZSBnaXZlbiBuYW1lIGFuZCBkYXRhXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gRXZlbnRzRW1pdChldmVudE5hbWUpIHtcblxuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgIG5hbWU6IGV2ZW50TmFtZSxcbiAgICAgICAgZGF0YTogW10uc2xpY2UuYXBwbHkoYXJndW1lbnRzKS5zbGljZSgxKSxcbiAgICB9O1xuXG4gICAgLy8gTm90aWZ5IEpTIGxpc3RlbmVyc1xuICAgIG5vdGlmeUxpc3RlbmVycyhwYXlsb2FkKTtcblxuICAgIC8vIE5vdGlmeSBHbyBsaXN0ZW5lcnNcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ0VFJyArIEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIoZXZlbnROYW1lKSB7XG4gICAgLy8gUmVtb3ZlIGxvY2FsIGxpc3RlbmVyc1xuICAgIGRlbGV0ZSBldmVudExpc3RlbmVyc1tldmVudE5hbWVdO1xuXG4gICAgLy8gTm90aWZ5IEdvIGxpc3RlbmVyc1xuICAgIHdpbmRvdy5XYWlsc0ludm9rZSgnRVgnICsgZXZlbnROYW1lKTtcbn1cblxuLyoqXG4gKiBPZmYgdW5yZWdpc3RlcnMgYSBsaXN0ZW5lciBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgd2l0aCBPbixcbiAqIG9wdGlvbmFsbHkgbXVsdGlwbGUgbGlzdGVuZXJlcyBjYW4gYmUgdW5yZWdpc3RlcmVkIHZpYSBgYWRkaXRpb25hbEV2ZW50TmFtZXNgXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICogQHBhcmFtICB7Li4uc3RyaW5nfSBhZGRpdGlvbmFsRXZlbnROYW1lc1xuICovXG5leHBvcnQgZnVuY3Rpb24gRXZlbnRzT2ZmKGV2ZW50TmFtZSwgLi4uYWRkaXRpb25hbEV2ZW50TmFtZXMpIHtcbiAgICByZW1vdmVMaXN0ZW5lcihldmVudE5hbWUpXG5cbiAgICBpZiAoYWRkaXRpb25hbEV2ZW50TmFtZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBhZGRpdGlvbmFsRXZlbnROYW1lcy5mb3JFYWNoKGV2ZW50TmFtZSA9PiB7XG4gICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihldmVudE5hbWUpXG4gICAgICAgIH0pXG4gICAgfVxufVxuXG4vKipcbiAqIE9mZiB1bnJlZ2lzdGVycyBhbGwgZXZlbnQgbGlzdGVuZXJzIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCB3aXRoIE9uXG4gKi9cbiBleHBvcnQgZnVuY3Rpb24gRXZlbnRzT2ZmQWxsKCkge1xuICAgIGNvbnN0IGV2ZW50TmFtZXMgPSBPYmplY3Qua2V5cyhldmVudExpc3RlbmVycyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgIT09IGV2ZW50TmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcmVtb3ZlTGlzdGVuZXIoZXZlbnROYW1lc1tpXSk7XG4gICAgfVxufVxuXG4vKipcbiAqIGxpc3RlbmVyT2ZmIHVucmVnaXN0ZXJzIGEgbGlzdGVuZXIgcHJldmlvdXNseSByZWdpc3RlcmVkIHdpdGggRXZlbnRzT25cbiAqXG4gKiBAcGFyYW0ge0xpc3RlbmVyfSBsaXN0ZW5lclxuICovXG4gZnVuY3Rpb24gbGlzdGVuZXJPZmYobGlzdGVuZXIpIHtcbiAgICBjb25zdCBldmVudE5hbWUgPSBsaXN0ZW5lci5ldmVudE5hbWU7XG4gICAgLy8gUmVtb3ZlIGxvY2FsIGxpc3RlbmVyXG4gICAgZXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXSA9IGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0uZmlsdGVyKGwgPT4gbCAhPT0gbGlzdGVuZXIpO1xuXG4gICAgLy8gQ2xlYW4gdXAgaWYgdGhlcmUgYXJlIG5vIGV2ZW50IGxpc3RlbmVycyBsZWZ0XG4gICAgaWYgKGV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJlbW92ZUxpc3RlbmVyKGV2ZW50TmFtZSk7XG4gICAgfVxufVxuIiwgIi8qXG4gXyAgICAgICBfXyAgICAgIF8gX18gICAgXG58IHwgICAgIC8gL19fXyBfKF8pIC9fX19fXG58IHwgL3wgLyAvIF9fIGAvIC8gLyBfX18vXG58IHwvIHwvIC8gL18vIC8gLyAoX18gICkgXG58X18vfF9fL1xcX18sXy9fL18vX19fXy8gIFxuVGhlIGVsZWN0cm9uIGFsdGVybmF0aXZlIGZvciBHb1xuKGMpIExlYSBBbnRob255IDIwMTktcHJlc2VudFxuKi9cbi8qIGpzaGludCBlc3ZlcnNpb246IDYgKi9cblxuaW1wb3J0IHtDYWxsfSBmcm9tICcuL2NhbGxzJztcblxuLy8gVGhpcyBpcyB3aGVyZSB3ZSBiaW5kIGdvIG1ldGhvZCB3cmFwcGVyc1xud2luZG93LmdvID0ge307XG5cbmV4cG9ydCBmdW5jdGlvbiBTZXRCaW5kaW5ncyhiaW5kaW5nc01hcCkge1xuXHR0cnkge1xuXHRcdGJpbmRpbmdzTWFwID0gSlNPTi5wYXJzZShiaW5kaW5nc01hcCk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRjb25zb2xlLmVycm9yKGUpO1xuXHR9XG5cblx0Ly8gSW5pdGlhbGlzZSB0aGUgYmluZGluZ3MgbWFwXG5cdHdpbmRvdy5nbyA9IHdpbmRvdy5nbyB8fCB7fTtcblxuXHQvLyBJdGVyYXRlIHBhY2thZ2UgbmFtZXNcblx0T2JqZWN0LmtleXMoYmluZGluZ3NNYXApLmZvckVhY2goKHBhY2thZ2VOYW1lKSA9PiB7XG5cblx0XHQvLyBDcmVhdGUgaW5uZXIgbWFwIGlmIGl0IGRvZXNuJ3QgZXhpc3Rcblx0XHR3aW5kb3cuZ29bcGFja2FnZU5hbWVdID0gd2luZG93LmdvW3BhY2thZ2VOYW1lXSB8fCB7fTtcblxuXHRcdC8vIEl0ZXJhdGUgc3RydWN0IG5hbWVzXG5cdFx0T2JqZWN0LmtleXMoYmluZGluZ3NNYXBbcGFja2FnZU5hbWVdKS5mb3JFYWNoKChzdHJ1Y3ROYW1lKSA9PiB7XG5cblx0XHRcdC8vIENyZWF0ZSBpbm5lciBtYXAgaWYgaXQgZG9lc24ndCBleGlzdFxuXHRcdFx0d2luZG93LmdvW3BhY2thZ2VOYW1lXVtzdHJ1Y3ROYW1lXSA9IHdpbmRvdy5nb1twYWNrYWdlTmFtZV1bc3RydWN0TmFtZV0gfHwge307XG5cblx0XHRcdE9iamVjdC5rZXlzKGJpbmRpbmdzTWFwW3BhY2thZ2VOYW1lXVtzdHJ1Y3ROYW1lXSkuZm9yRWFjaCgobWV0aG9kTmFtZSkgPT4ge1xuXG5cdFx0XHRcdHdpbmRvdy5nb1twYWNrYWdlTmFtZV1bc3RydWN0TmFtZV1bbWV0aG9kTmFtZV0gPSBmdW5jdGlvbiAoKSB7XG5cblx0XHRcdFx0XHQvLyBObyB0aW1lb3V0IGJ5IGRlZmF1bHRcblx0XHRcdFx0XHRsZXQgdGltZW91dCA9IDA7XG5cblx0XHRcdFx0XHQvLyBBY3R1YWwgZnVuY3Rpb25cblx0XHRcdFx0XHRmdW5jdGlvbiBkeW5hbWljKCkge1xuXHRcdFx0XHRcdFx0Y29uc3QgYXJncyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcblx0XHRcdFx0XHRcdHJldHVybiBDYWxsKFtwYWNrYWdlTmFtZSwgc3RydWN0TmFtZSwgbWV0aG9kTmFtZV0uam9pbignLicpLCBhcmdzLCB0aW1lb3V0KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBBbGxvdyBzZXR0aW5nIHRpbWVvdXQgdG8gZnVuY3Rpb25cblx0XHRcdFx0XHRkeW5hbWljLnNldFRpbWVvdXQgPSBmdW5jdGlvbiAobmV3VGltZW91dCkge1xuXHRcdFx0XHRcdFx0dGltZW91dCA9IG5ld1RpbWVvdXQ7XG5cdFx0XHRcdFx0fTtcblxuXHRcdFx0XHRcdC8vIEFsbG93IGdldHRpbmcgdGltZW91dCB0byBmdW5jdGlvblxuXHRcdFx0XHRcdGR5bmFtaWMuZ2V0VGltZW91dCA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdHJldHVybiB0aW1lb3V0O1xuXHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRyZXR1cm4gZHluYW1pYztcblx0XHRcdFx0fSgpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH0pO1xufVxuIiwgIi8qXG4gX1x0ICAgX19cdCAgXyBfX1xufCB8XHQgLyAvX19fIF8oXykgL19fX19cbnwgfCAvfCAvIC8gX18gYC8gLyAvIF9fXy9cbnwgfC8gfC8gLyAvXy8gLyAvIChfXyAgKVxufF9fL3xfXy9cXF9fLF8vXy9fL19fX18vXG5UaGUgZWxlY3Ryb24gYWx0ZXJuYXRpdmUgZm9yIEdvXG4oYykgTGVhIEFudGhvbnkgMjAxOS1wcmVzZW50XG4qL1xuXG4vKiBqc2hpbnQgZXN2ZXJzaW9uOiA5ICovXG5cblxuaW1wb3J0IHtDYWxsfSBmcm9tIFwiLi9jYWxsc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gV2luZG93UmVsb2FkKCkge1xuICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd1JlbG9hZEFwcCgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dSJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dTZXRTeXN0ZW1EZWZhdWx0VGhlbWUoKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXQVNEVCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gV2luZG93U2V0TGlnaHRUaGVtZSgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dBTFQnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd1NldERhcmtUaGVtZSgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dBRFQnKTtcbn1cblxuLyoqXG4gKiBQbGFjZSB0aGUgd2luZG93IGluIHRoZSBjZW50ZXIgb2YgdGhlIHNjcmVlblxuICpcbiAqIEBleHBvcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd0NlbnRlcigpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1djJyk7XG59XG5cbi8qKlxuICogU2V0cyB0aGUgd2luZG93IHRpdGxlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlXG4gKiBAZXhwb3J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dTZXRUaXRsZSh0aXRsZSkge1xuICAgIHdpbmRvdy5XYWlsc0ludm9rZSgnV1QnICsgdGl0bGUpO1xufVxuXG4vKipcbiAqIE1ha2VzIHRoZSB3aW5kb3cgZ28gZnVsbHNjcmVlblxuICpcbiAqIEBleHBvcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd0Z1bGxzY3JlZW4oKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXRicpO1xufVxuXG4vKipcbiAqIFJldmVydHMgdGhlIHdpbmRvdyBmcm9tIGZ1bGxzY3JlZW5cbiAqXG4gKiBAZXhwb3J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dVbmZ1bGxzY3JlZW4oKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXZicpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHN0YXRlIG9mIHRoZSB3aW5kb3csIGkuZS4gd2hldGhlciB0aGUgd2luZG93IGlzIGluIGZ1bGwgc2NyZWVuIG1vZGUgb3Igbm90LlxuICpcbiAqIEBleHBvcnRcbiAqIEByZXR1cm4ge1Byb21pc2U8Ym9vbGVhbj59IFRoZSBzdGF0ZSBvZiB0aGUgd2luZG93XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dJc0Z1bGxzY3JlZW4oKSB7XG4gICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6V2luZG93SXNGdWxsc2NyZWVuXCIpO1xufVxuXG4vKipcbiAqIFNldCB0aGUgU2l6ZSBvZiB0aGUgd2luZG93XG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoXG4gKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dTZXRTaXplKHdpZHRoLCBoZWlnaHQpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dzOicgKyB3aWR0aCArICc6JyArIGhlaWdodCk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBTaXplIG9mIHRoZSB3aW5kb3dcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcmV0dXJuIHtQcm9taXNlPHt3OiBudW1iZXIsIGg6IG51bWJlcn0+fSBUaGUgc2l6ZSBvZiB0aGUgd2luZG93XG5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd0dldFNpemUoKSB7XG4gICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6V2luZG93R2V0U2l6ZVwiKTtcbn1cblxuLyoqXG4gKiBTZXQgdGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgd2luZG93XG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoXG4gKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dTZXRNYXhTaXplKHdpZHRoLCBoZWlnaHQpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1daOicgKyB3aWR0aCArICc6JyArIGhlaWdodCk7XG59XG5cbi8qKlxuICogU2V0IHRoZSBtaW5pbXVtIHNpemUgb2YgdGhlIHdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aFxuICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodFxuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93U2V0TWluU2l6ZSh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXejonICsgd2lkdGggKyAnOicgKyBoZWlnaHQpO1xufVxuXG5cblxuLyoqXG4gKiBTZXQgdGhlIHdpbmRvdyBBbHdheXNPblRvcCBvciBub3Qgb24gdG9wXG4gKlxuICogQGV4cG9ydFxuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93U2V0QWx3YXlzT25Ub3AoYikge1xuXG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXQVRQOicgKyAoYiA/ICcxJyA6ICcwJykpO1xufVxuXG5cblxuXG4vKipcbiAqIFNldCB0aGUgUG9zaXRpb24gb2YgdGhlIHdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7bnVtYmVyfSB4XG4gKiBAcGFyYW0ge251bWJlcn0geVxuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93U2V0UG9zaXRpb24oeCwgeSkge1xuICAgIHdpbmRvdy5XYWlsc0ludm9rZSgnV3A6JyArIHggKyAnOicgKyB5KTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIFBvc2l0aW9uIG9mIHRoZSB3aW5kb3dcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcmV0dXJuIHtQcm9taXNlPHt4OiBudW1iZXIsIHk6IG51bWJlcn0+fSBUaGUgcG9zaXRpb24gb2YgdGhlIHdpbmRvd1xuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93R2V0UG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6V2luZG93R2V0UG9zXCIpO1xufVxuXG4vKipcbiAqIEhpZGUgdGhlIFdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd0hpZGUoKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXSCcpO1xufVxuXG4vKipcbiAqIFNob3cgdGhlIFdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd1Nob3coKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXUycpO1xufVxuXG4vKipcbiAqIE1heGltaXNlIHRoZSBXaW5kb3dcbiAqXG4gKiBAZXhwb3J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dNYXhpbWlzZSgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dNJyk7XG59XG5cbi8qKlxuICogVG9nZ2xlIHRoZSBNYXhpbWlzZSBvZiB0aGUgV2luZG93XG4gKlxuICogQGV4cG9ydFxuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93VG9nZ2xlTWF4aW1pc2UoKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXdCcpO1xufVxuXG4vKipcbiAqIFVubWF4aW1pc2UgdGhlIFdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd1VubWF4aW1pc2UoKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdXVScpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHN0YXRlIG9mIHRoZSB3aW5kb3csIGkuZS4gd2hldGhlciB0aGUgd2luZG93IGlzIG1heGltaXNlZCBvciBub3QuXG4gKlxuICogQGV4cG9ydFxuICogQHJldHVybiB7UHJvbWlzZTxib29sZWFuPn0gVGhlIHN0YXRlIG9mIHRoZSB3aW5kb3dcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd0lzTWF4aW1pc2VkKCkge1xuICAgIHJldHVybiBDYWxsKFwiOndhaWxzOldpbmRvd0lzTWF4aW1pc2VkXCIpO1xufVxuXG4vKipcbiAqIE1pbmltaXNlIHRoZSBXaW5kb3dcbiAqXG4gKiBAZXhwb3J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dNaW5pbWlzZSgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1dtJyk7XG59XG5cbi8qKlxuICogVW5taW5pbWlzZSB0aGUgV2luZG93XG4gKlxuICogQGV4cG9ydFxuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93VW5taW5pbWlzZSgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1d1Jyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgc3RhdGUgb2YgdGhlIHdpbmRvdywgaS5lLiB3aGV0aGVyIHRoZSB3aW5kb3cgaXMgbWluaW1pc2VkIG9yIG5vdC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcmV0dXJuIHtQcm9taXNlPGJvb2xlYW4+fSBUaGUgc3RhdGUgb2YgdGhlIHdpbmRvd1xuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93SXNNaW5pbWlzZWQoKSB7XG4gICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6V2luZG93SXNNaW5pbWlzZWRcIik7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgc3RhdGUgb2YgdGhlIHdpbmRvdywgaS5lLiB3aGV0aGVyIHRoZSB3aW5kb3cgaXMgbm9ybWFsIG9yIG5vdC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcmV0dXJuIHtQcm9taXNlPGJvb2xlYW4+fSBUaGUgc3RhdGUgb2YgdGhlIHdpbmRvd1xuICovXG5leHBvcnQgZnVuY3Rpb24gV2luZG93SXNOb3JtYWwoKSB7XG4gICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6V2luZG93SXNOb3JtYWxcIik7XG59XG5cbi8qKlxuICogU2V0cyB0aGUgYmFja2dyb3VuZCBjb2xvdXIgb2YgdGhlIHdpbmRvd1xuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7bnVtYmVyfSBSIFJlZFxuICogQHBhcmFtIHtudW1iZXJ9IEcgR3JlZW5cbiAqIEBwYXJhbSB7bnVtYmVyfSBCIEJsdWVcbiAqIEBwYXJhbSB7bnVtYmVyfSBBIEFscGhhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBXaW5kb3dTZXRCYWNrZ3JvdW5kQ29sb3VyKFIsIEcsIEIsIEEpIHtcbiAgICBsZXQgcmdiYSA9IEpTT04uc3RyaW5naWZ5KHtyOiBSIHx8IDAsIGc6IEcgfHwgMCwgYjogQiB8fCAwLCBhOiBBIHx8IDI1NX0pO1xuICAgIHdpbmRvdy5XYWlsc0ludm9rZSgnV3I6JyArIHJnYmEpO1xufVxuXG4iLCAiLypcbiBfXHQgICBfX1x0ICBfIF9fXG58IHxcdCAvIC9fX18gXyhfKSAvX19fX1xufCB8IC98IC8gLyBfXyBgLyAvIC8gX19fL1xufCB8LyB8LyAvIC9fLyAvIC8gKF9fICApXG58X18vfF9fL1xcX18sXy9fL18vX19fXy9cblRoZSBlbGVjdHJvbiBhbHRlcm5hdGl2ZSBmb3IgR29cbihjKSBMZWEgQW50aG9ueSAyMDE5LXByZXNlbnRcbiovXG5cbi8qIGpzaGludCBlc3ZlcnNpb246IDkgKi9cblxuXG5pbXBvcnQge0NhbGx9IGZyb20gXCIuL2NhbGxzXCI7XG5cblxuLyoqXG4gKiBHZXRzIHRoZSBhbGwgc2NyZWVucy4gQ2FsbCB0aGlzIGFuZXcgZWFjaCB0aW1lIHlvdSB3YW50IHRvIHJlZnJlc2ggZGF0YSBmcm9tIHRoZSB1bmRlcmx5aW5nIHdpbmRvd2luZyBzeXN0ZW0uXG4gKiBAZXhwb3J0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi93cmFwcGVyL3J1bnRpbWUnKS5TY3JlZW59IFNjcmVlblxuICogQHJldHVybiB7UHJvbWlzZTx7U2NyZWVuW119Pn0gVGhlIHNjcmVlbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNjcmVlbkdldEFsbCgpIHtcbiAgICByZXR1cm4gQ2FsbChcIjp3YWlsczpTY3JlZW5HZXRBbGxcIik7XG59XG4iLCAiLyoqXG4gKiBAZGVzY3JpcHRpb246IFVzZSB0aGUgc3lzdGVtIGRlZmF1bHQgYnJvd3NlciB0byBvcGVuIHRoZSB1cmxcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgXG4gKiBAcmV0dXJuIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gQnJvd3Nlck9wZW5VUkwodXJsKSB7XG4gIHdpbmRvdy5XYWlsc0ludm9rZSgnQk86JyArIHVybCk7XG59IiwgIi8qXG4gXyAgICAgICBfXyAgICAgIF8gX19cbnwgfCAgICAgLyAvX19fIF8oXykgL19fX19cbnwgfCAvfCAvIC8gX18gYC8gLyAvIF9fXy9cbnwgfC8gfC8gLyAvXy8gLyAvIChfXyAgKVxufF9fL3xfXy9cXF9fLF8vXy9fL19fX18vXG5UaGUgZWxlY3Ryb24gYWx0ZXJuYXRpdmUgZm9yIEdvXG4oYykgTGVhIEFudGhvbnkgMjAxOS1wcmVzZW50XG4qL1xuXG4vKiBqc2hpbnQgZXN2ZXJzaW9uOiA2ICovXG5cbi8qKlxuICogU2VuZHMgYSBsb2cgbWVzc2FnZSB0byB0aGUgYmFja2VuZCB3aXRoIHRoZSBnaXZlbiBsZXZlbCArIG1lc3NhZ2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbGV2ZWxcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cbmZ1bmN0aW9uIHNlbmRMb2dNZXNzYWdlKGxldmVsLCBtZXNzYWdlKSB7XG5cblx0Ly8gTG9nIE1lc3NhZ2UgZm9ybWF0OlxuXHQvLyBsW3R5cGVdW21lc3NhZ2VdXG5cdHdpbmRvdy5XYWlsc0ludm9rZSgnTCcgKyBsZXZlbCArIG1lc3NhZ2UpO1xufVxuXG4vKipcbiAqIExvZyB0aGUgZ2l2ZW4gdHJhY2UgbWVzc2FnZSB3aXRoIHRoZSBiYWNrZW5kXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIExvZ1RyYWNlKG1lc3NhZ2UpIHtcblx0c2VuZExvZ01lc3NhZ2UoJ1QnLCBtZXNzYWdlKTtcbn1cblxuLyoqXG4gKiBMb2cgdGhlIGdpdmVuIG1lc3NhZ2Ugd2l0aCB0aGUgYmFja2VuZFxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMb2dQcmludChtZXNzYWdlKSB7XG5cdHNlbmRMb2dNZXNzYWdlKCdQJywgbWVzc2FnZSk7XG59XG5cbi8qKlxuICogTG9nIHRoZSBnaXZlbiBkZWJ1ZyBtZXNzYWdlIHdpdGggdGhlIGJhY2tlbmRcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gTG9nRGVidWcobWVzc2FnZSkge1xuXHRzZW5kTG9nTWVzc2FnZSgnRCcsIG1lc3NhZ2UpO1xufVxuXG4vKipcbiAqIExvZyB0aGUgZ2l2ZW4gaW5mbyBtZXNzYWdlIHdpdGggdGhlIGJhY2tlbmRcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gTG9nSW5mbyhtZXNzYWdlKSB7XG5cdHNlbmRMb2dNZXNzYWdlKCdJJywgbWVzc2FnZSk7XG59XG5cbi8qKlxuICogTG9nIHRoZSBnaXZlbiB3YXJuaW5nIG1lc3NhZ2Ugd2l0aCB0aGUgYmFja2VuZFxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMb2dXYXJuaW5nKG1lc3NhZ2UpIHtcblx0c2VuZExvZ01lc3NhZ2UoJ1cnLCBtZXNzYWdlKTtcbn1cblxuLyoqXG4gKiBMb2cgdGhlIGdpdmVuIGVycm9yIG1lc3NhZ2Ugd2l0aCB0aGUgYmFja2VuZFxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMb2dFcnJvcihtZXNzYWdlKSB7XG5cdHNlbmRMb2dNZXNzYWdlKCdFJywgbWVzc2FnZSk7XG59XG5cbi8qKlxuICogTG9nIHRoZSBnaXZlbiBmYXRhbCBtZXNzYWdlIHdpdGggdGhlIGJhY2tlbmRcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gTG9nRmF0YWwobWVzc2FnZSkge1xuXHRzZW5kTG9nTWVzc2FnZSgnRicsIG1lc3NhZ2UpO1xufVxuXG4vKipcbiAqIFNldHMgdGhlIExvZyBsZXZlbCB0byB0aGUgZ2l2ZW4gbG9nIGxldmVsXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IGxvZ2xldmVsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZXRMb2dMZXZlbChsb2dsZXZlbCkge1xuXHRzZW5kTG9nTWVzc2FnZSgnUycsIGxvZ2xldmVsKTtcbn1cblxuLy8gTG9nIGxldmVsc1xuZXhwb3J0IGNvbnN0IExvZ0xldmVsID0ge1xuXHRUUkFDRTogMSxcblx0REVCVUc6IDIsXG5cdElORk86IDMsXG5cdFdBUk5JTkc6IDQsXG5cdEVSUk9SOiA1LFxufTtcbiIsICIvKlxuIF9cdCAgIF9fXHQgIF8gX19cbnwgfFx0IC8gL19fXyBfKF8pIC9fX19fXG58IHwgL3wgLyAvIF9fIGAvIC8gLyBfX18vXG58IHwvIHwvIC8gL18vIC8gLyAoX18gIClcbnxfXy98X18vXFxfXyxfL18vXy9fX19fL1xuVGhlIGVsZWN0cm9uIGFsdGVybmF0aXZlIGZvciBHb1xuKGMpIExlYSBBbnRob255IDIwMTktcHJlc2VudFxuKi9cbi8qIGpzaGludCBlc3ZlcnNpb246IDkgKi9cblxuaW1wb3J0IFwiLi9pcGMuanNcIjtcbmltcG9ydCB7Q2FsbGJhY2ssIGNhbGxiYWNrc30gZnJvbSAnLi9jYWxscyc7XG5pbXBvcnQge0V2ZW50c05vdGlmeSwgZXZlbnRMaXN0ZW5lcnN9IGZyb20gXCIuL2V2ZW50c1wiO1xuaW1wb3J0IHtTZXRCaW5kaW5nc30gZnJvbSBcIi4vYmluZGluZ3NcIjtcblxuaW1wb3J0ICogYXMgV2luZG93IGZyb20gXCIuL3dpbmRvd1wiO1xuaW1wb3J0ICogYXMgU2NyZWVuIGZyb20gXCIuL3NjcmVlblwiO1xuaW1wb3J0ICogYXMgQnJvd3NlciBmcm9tIFwiLi9icm93c2VyXCI7XG5pbXBvcnQgKiBhcyBMb2cgZnJvbSAnLi9sb2cnO1xuXG5sZXQgd2luZG93SUQgPSAtMTtcblxuXG5leHBvcnQgZnVuY3Rpb24gUXVpdCgpIHtcbiAgICB3aW5kb3cuV2FpbHNJbnZva2UoJ1EnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFNob3coKSB7XG4gICAgd2luZG93LldhaWxzSW52b2tlKCdTJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBIaWRlKCkge1xuICAgIHdpbmRvdy5XYWlsc0ludm9rZSgnSCcpO1xufVxuXG4vLyBleHBvcnQgZnVuY3Rpb24gRW52aXJvbm1lbnQoKSB7XG4vLyAgICAgcmV0dXJuIENhbGwoXCI6d2FpbHM6RW52aXJvbm1lbnRcIik7XG4vLyB9XG5cbi8vIEludGVybmFsIHdhaWxzIGVuZHBvaW50c1xud2luZG93LndhaWxzID0ge1xuICAgIENhbGxiYWNrLFxuICAgIGNhbGxiYWNrcyxcbiAgICBFdmVudHNOb3RpZnksXG4gICAgZXZlbnRMaXN0ZW5lcnMsXG4gICAgU2V0QmluZGluZ3MsXG4gICAgd2luZG93OiB7XG4gICAgICAgIElEOiAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gd2luZG93SURcbiAgICAgICAgfSxcbiAgICB9XG59O1xuXG53aW5kb3cucnVudGltZSA9IHtcbiAgICAuLi5Mb2csXG4gICAgLi4uV2luZG93LFxuICAgIC4uLkJyb3dzZXIsXG4gICAgLi4uU2NyZWVuLFxuICAgIEV2ZW50c09uLFxuICAgIEV2ZW50c09uY2UsXG4gICAgRXZlbnRzT25NdWx0aXBsZSxcbiAgICBFdmVudHNFbWl0LFxuICAgIEV2ZW50c09mZixcbiAgICAvLyBFbnZpcm9ubWVudCxcbiAgICBTaG93LFxuICAgIEhpZGUsXG4gICAgUXVpdCxcbn1cblxuLy8gUHJvY2VzcyB0aGUgZXhwZWN0ZWQgcnVudGltZSBjb25maWcgZnJvbSB0aGUgYmFja2VuZFxuaWYoIHdpbmRvdy53YWlsc19jb25maWcgKSB7XG4gICAgd2luZG93SUQgPSB3aW5kb3cud2FpbHNfY29uZmlnLndpbmRvd0lEO1xuICAgIHdpbmRvdy53YWlsc19jb25maWcgPSBudWxsO1xufVxuXG5pZiAoREVCVUcpIHtcbiAgICBjb25zb2xlLmxvZyhcIldhaWxzIHYzLjAuMCBEZWJ1ZyBNb2RlIEVuYWJsZWRcIik7XG59XG5cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7O0FBaUJBLEdBQUMsV0FBWTtBQUNaLFdBQU8sY0FBYyxDQUFDLFlBQVk7QUFDakMsTUFBVyxPQUFPLE9BQU8sUUFBUSxZQUFZLE9BQU87QUFBQSxJQUVyRDtBQUFBLEVBQ0QsR0FBRzs7O0FDWEksTUFBTSxZQUFZLENBQUM7QUFPMUIsV0FBUyxlQUFlO0FBQ3ZCLFFBQUksUUFBUSxJQUFJLFlBQVksQ0FBQztBQUM3QixXQUFPLE9BQU8sT0FBTyxnQkFBZ0IsS0FBSyxFQUFFO0FBQUEsRUFDN0M7QUFRQSxXQUFTLGNBQWM7QUFDdEIsV0FBTyxLQUFLLE9BQU8sSUFBSTtBQUFBLEVBQ3hCO0FBR0EsTUFBSTtBQUNKLE1BQUksT0FBTyxRQUFRO0FBQ2xCLGlCQUFhO0FBQUEsRUFDZCxPQUFPO0FBQ04saUJBQWE7QUFBQSxFQUNkO0FBaUJPLFdBQVMsS0FBSyxNQUFNLE1BQU0sU0FBUztBQUd6QyxRQUFJLFdBQVcsTUFBTTtBQUNwQixnQkFBVTtBQUFBLElBQ1g7QUFFQSxRQUFJQSxZQUFXLE9BQU8sTUFBTSxPQUFPLEdBQUc7QUFHdEMsV0FBTyxJQUFJLFFBQVEsU0FBVSxTQUFTLFFBQVE7QUFHN0MsVUFBSTtBQUNKLFNBQUc7QUFDRixxQkFBYSxPQUFPLE1BQU0sV0FBVztBQUFBLE1BQ3RDLFNBQVMsVUFBVTtBQUVuQixVQUFJO0FBRUosVUFBSSxVQUFVLEdBQUc7QUFDaEIsd0JBQWdCLFdBQVcsV0FBWTtBQUN0QyxpQkFBTyxNQUFNLGFBQWEsT0FBTyw2QkFBNkIsVUFBVSxDQUFDO0FBQUEsUUFDMUUsR0FBRyxPQUFPO0FBQUEsTUFDWDtBQUdBLGdCQUFVLGNBQWM7QUFBQSxRQUN2QjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRDtBQUVB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 diff --git a/v3/internal/runtime/runtime_debug_linux.go b/v3/internal/runtime/runtime_debug_linux.go new file mode 100644 index 00000000..c2940839 --- /dev/null +++ b/v3/internal/runtime/runtime_debug_linux.go @@ -0,0 +1,8 @@ +//go:build linux && !production + +package runtime + +import _ "embed" + +//go:embed runtime_debug_desktop_linux.js +var DesktopRuntime []byte diff --git a/v3/internal/runtime/runtime_debug_windows.go b/v3/internal/runtime/runtime_debug_windows.go new file mode 100644 index 00000000..09a3a919 --- /dev/null +++ b/v3/internal/runtime/runtime_debug_windows.go @@ -0,0 +1,8 @@ +//go:build windows && !production + +package runtime + +import _ "embed" + +//go:embed runtime_debug_desktop_windows.js +var DesktopRuntime []byte diff --git a/v3/internal/runtime/runtime_production_darwin.go b/v3/internal/runtime/runtime_production_darwin.go new file mode 100644 index 00000000..be2411d9 --- /dev/null +++ b/v3/internal/runtime/runtime_production_darwin.go @@ -0,0 +1,8 @@ +//go:build darwin && production + +package runtime + +import _ "embed" + +//go:embed runtime_production_desktop_darwin.js +var DesktopRuntime []byte diff --git a/v3/internal/runtime/runtime_production_desktop_darwin.js b/v3/internal/runtime/runtime_production_desktop_darwin.js new file mode 100644 index 00000000..2cc00fb7 --- /dev/null +++ b/v3/internal/runtime/runtime_production_desktop_darwin.js @@ -0,0 +1 @@ +(()=>{var h=Object.defineProperty;var f=(o,n)=>{for(var e in n)h(o,e,{get:n[e],enumerable:!0})};(function(){window.WailsInvoke=o=>{window.webkit.messageHandlers.wails.postMessage(o)}})();var w={};function E(){var o=new Uint32Array(1);return window.crypto.getRandomValues(o)[0]}function y(){return Math.random()*9007199254740991}var u;window.crypto?u=E:u=y;function l(o,n,e){e==null&&(e=0);let i=window.wails.window.ID();return new Promise(function(t,r){var s;do s=o+"-"+u();while(w[s]);var d;e>0&&(d=setTimeout(function(){r(Error("Call to "+o+" timed out. Request ID: "+s))},e)),w[s]={timeoutHandle:d,reject:r,resolve:t};try{let W={name:o,args:n,callbackID:s,windowID:i};window.WailsInvoke("C"+JSON.stringify(W))}catch(W){console.error(W)}})}window.ObfuscatedCall=(o,n,e)=>(e==null&&(e=0),new Promise(function(i,t){var r;do r=o+"-"+u();while(w[r]);var s;e>0&&(s=setTimeout(function(){t(Error("Call to method "+o+" timed out. Request ID: "+r))},e)),w[r]={timeoutHandle:s,reject:t,resolve:i};try{let d={id:o,args:n,callbackID:r,windowID:window.wails.window.ID()};window.WailsInvoke("c"+JSON.stringify(d))}catch(d){console.error(d)}}));function m(o){let n;try{n=JSON.parse(o)}catch(t){let r=`Invalid JSON passed to callback: ${t.message}. Message: ${o}`;throw runtime.LogDebug(r),new Error(r)}let e=n.callbackid,i=w[e];if(!i){let t=`Callback '${e}' not registered!!!`;throw console.error(t),new Error(t)}clearTimeout(i.timeoutHandle),delete w[e],n.error?i.reject(n.error):i.resolve(n.result)}var a={};function O(o){let n=o.name;if(a[n]){let e=a[n].slice();for(let i=0;i{window.go[n]=window.go[n]||{},Object.keys(o[n]).forEach(e=>{window.go[n][e]=window.go[n][e]||{},Object.keys(o[n][e]).forEach(i=>{window.go[n][e][i]=function(){let t=0;function r(){let s=[].slice.call(arguments);return l([n,e,i].join("."),s,t)}return r.setTimeout=function(s){t=s},r.getTimeout=function(){return t},r}()})})})}var p={};f(p,{WindowCenter:()=>A,WindowFullscreen:()=>H,WindowGetPosition:()=>z,WindowGetSize:()=>B,WindowHide:()=>_,WindowIsFullscreen:()=>J,WindowIsMaximised:()=>V,WindowIsMinimised:()=>Y,WindowIsNormal:()=>oo,WindowMaximise:()=>q,WindowMinimise:()=>Z,WindowReload:()=>L,WindowReloadApp:()=>D,WindowSetAlwaysOnTop:()=>P,WindowSetBackgroundColour:()=>no,WindowSetDarkTheme:()=>R,WindowSetLightTheme:()=>T,WindowSetMaxSize:()=>F,WindowSetMinSize:()=>N,WindowSetPosition:()=>j,WindowSetSize:()=>U,WindowSetSystemDefaultTheme:()=>C,WindowSetTitle:()=>M,WindowShow:()=>$,WindowToggleMaximise:()=>Q,WindowUnfullscreen:()=>G,WindowUnmaximise:()=>X,WindowUnminimise:()=>K});function L(){window.location.reload()}function D(){window.WailsInvoke("WR")}function C(){window.WailsInvoke("WASDT")}function T(){window.WailsInvoke("WALT")}function R(){window.WailsInvoke("WADT")}function A(){window.WailsInvoke("Wc")}function M(o){window.WailsInvoke("WT"+o)}function H(){window.WailsInvoke("WF")}function G(){window.WailsInvoke("Wf")}function J(){return l(":wails:WindowIsFullscreen")}function U(o,n){window.WailsInvoke("Ws:"+o+":"+n)}function B(){return l(":wails:WindowGetSize")}function F(o,n){window.WailsInvoke("WZ:"+o+":"+n)}function N(o,n){window.WailsInvoke("Wz:"+o+":"+n)}function P(o){window.WailsInvoke("WATP:"+(o?"1":"0"))}function j(o,n){window.WailsInvoke("Wp:"+o+":"+n)}function z(){return l(":wails:WindowGetPos")}function _(){window.WailsInvoke("WH")}function $(){window.WailsInvoke("WS")}function q(){window.WailsInvoke("WM")}function Q(){window.WailsInvoke("Wt")}function X(){window.WailsInvoke("WU")}function V(){return l(":wails:WindowIsMaximised")}function Z(){window.WailsInvoke("Wm")}function K(){window.WailsInvoke("Wu")}function Y(){return l(":wails:WindowIsMinimised")}function oo(){return l(":wails:WindowIsNormal")}function no(o,n,e,i){let t=JSON.stringify({r:o||0,g:n||0,b:e||0,a:i||255});window.WailsInvoke("Wr:"+t)}var x={};f(x,{ScreenGetAll:()=>eo});function eo(){return l(":wails:ScreenGetAll")}var v={};f(v,{BrowserOpenURL:()=>io});function io(o){window.WailsInvoke("BO:"+o)}var I={};f(I,{LogDebug:()=>so,LogError:()=>ao,LogFatal:()=>co,LogInfo:()=>lo,LogLevel:()=>uo,LogPrint:()=>ro,LogTrace:()=>to,LogWarning:()=>wo,SetLogLevel:()=>fo});function c(o,n){window.WailsInvoke("L"+o+n)}function to(o){c("T",o)}function ro(o){c("P",o)}function so(o){c("D",o)}function lo(o){c("I",o)}function wo(o){c("W",o)}function ao(o){c("E",o)}function co(o){c("F",o)}function fo(o){c("S",o)}var uo={TRACE:1,DEBUG:2,INFO:3,WARNING:4,ERROR:5};var S=-1;function Wo(){window.WailsInvoke("Q")}function po(){window.WailsInvoke("S")}function xo(){window.WailsInvoke("H")}window.wails={Callback:m,callbacks:w,EventsNotify:k,eventListeners:a,SetBindings:g,window:{ID:()=>S}};window.runtime={...I,...p,...v,...x,EventsOn,EventsOnce,EventsOnMultiple,EventsEmit,EventsOff,Show:po,Hide:xo,Quit:Wo};window.wails_config&&(S=window.wails_config.windowID,window.wails_config=null);console.log("Wails v3.0.0 Debug Mode Enabled");})(); diff --git a/v3/internal/runtime/runtime_production_desktop_linux.js b/v3/internal/runtime/runtime_production_desktop_linux.js new file mode 100644 index 00000000..2cc00fb7 --- /dev/null +++ b/v3/internal/runtime/runtime_production_desktop_linux.js @@ -0,0 +1 @@ +(()=>{var h=Object.defineProperty;var f=(o,n)=>{for(var e in n)h(o,e,{get:n[e],enumerable:!0})};(function(){window.WailsInvoke=o=>{window.webkit.messageHandlers.wails.postMessage(o)}})();var w={};function E(){var o=new Uint32Array(1);return window.crypto.getRandomValues(o)[0]}function y(){return Math.random()*9007199254740991}var u;window.crypto?u=E:u=y;function l(o,n,e){e==null&&(e=0);let i=window.wails.window.ID();return new Promise(function(t,r){var s;do s=o+"-"+u();while(w[s]);var d;e>0&&(d=setTimeout(function(){r(Error("Call to "+o+" timed out. Request ID: "+s))},e)),w[s]={timeoutHandle:d,reject:r,resolve:t};try{let W={name:o,args:n,callbackID:s,windowID:i};window.WailsInvoke("C"+JSON.stringify(W))}catch(W){console.error(W)}})}window.ObfuscatedCall=(o,n,e)=>(e==null&&(e=0),new Promise(function(i,t){var r;do r=o+"-"+u();while(w[r]);var s;e>0&&(s=setTimeout(function(){t(Error("Call to method "+o+" timed out. Request ID: "+r))},e)),w[r]={timeoutHandle:s,reject:t,resolve:i};try{let d={id:o,args:n,callbackID:r,windowID:window.wails.window.ID()};window.WailsInvoke("c"+JSON.stringify(d))}catch(d){console.error(d)}}));function m(o){let n;try{n=JSON.parse(o)}catch(t){let r=`Invalid JSON passed to callback: ${t.message}. Message: ${o}`;throw runtime.LogDebug(r),new Error(r)}let e=n.callbackid,i=w[e];if(!i){let t=`Callback '${e}' not registered!!!`;throw console.error(t),new Error(t)}clearTimeout(i.timeoutHandle),delete w[e],n.error?i.reject(n.error):i.resolve(n.result)}var a={};function O(o){let n=o.name;if(a[n]){let e=a[n].slice();for(let i=0;i{window.go[n]=window.go[n]||{},Object.keys(o[n]).forEach(e=>{window.go[n][e]=window.go[n][e]||{},Object.keys(o[n][e]).forEach(i=>{window.go[n][e][i]=function(){let t=0;function r(){let s=[].slice.call(arguments);return l([n,e,i].join("."),s,t)}return r.setTimeout=function(s){t=s},r.getTimeout=function(){return t},r}()})})})}var p={};f(p,{WindowCenter:()=>A,WindowFullscreen:()=>H,WindowGetPosition:()=>z,WindowGetSize:()=>B,WindowHide:()=>_,WindowIsFullscreen:()=>J,WindowIsMaximised:()=>V,WindowIsMinimised:()=>Y,WindowIsNormal:()=>oo,WindowMaximise:()=>q,WindowMinimise:()=>Z,WindowReload:()=>L,WindowReloadApp:()=>D,WindowSetAlwaysOnTop:()=>P,WindowSetBackgroundColour:()=>no,WindowSetDarkTheme:()=>R,WindowSetLightTheme:()=>T,WindowSetMaxSize:()=>F,WindowSetMinSize:()=>N,WindowSetPosition:()=>j,WindowSetSize:()=>U,WindowSetSystemDefaultTheme:()=>C,WindowSetTitle:()=>M,WindowShow:()=>$,WindowToggleMaximise:()=>Q,WindowUnfullscreen:()=>G,WindowUnmaximise:()=>X,WindowUnminimise:()=>K});function L(){window.location.reload()}function D(){window.WailsInvoke("WR")}function C(){window.WailsInvoke("WASDT")}function T(){window.WailsInvoke("WALT")}function R(){window.WailsInvoke("WADT")}function A(){window.WailsInvoke("Wc")}function M(o){window.WailsInvoke("WT"+o)}function H(){window.WailsInvoke("WF")}function G(){window.WailsInvoke("Wf")}function J(){return l(":wails:WindowIsFullscreen")}function U(o,n){window.WailsInvoke("Ws:"+o+":"+n)}function B(){return l(":wails:WindowGetSize")}function F(o,n){window.WailsInvoke("WZ:"+o+":"+n)}function N(o,n){window.WailsInvoke("Wz:"+o+":"+n)}function P(o){window.WailsInvoke("WATP:"+(o?"1":"0"))}function j(o,n){window.WailsInvoke("Wp:"+o+":"+n)}function z(){return l(":wails:WindowGetPos")}function _(){window.WailsInvoke("WH")}function $(){window.WailsInvoke("WS")}function q(){window.WailsInvoke("WM")}function Q(){window.WailsInvoke("Wt")}function X(){window.WailsInvoke("WU")}function V(){return l(":wails:WindowIsMaximised")}function Z(){window.WailsInvoke("Wm")}function K(){window.WailsInvoke("Wu")}function Y(){return l(":wails:WindowIsMinimised")}function oo(){return l(":wails:WindowIsNormal")}function no(o,n,e,i){let t=JSON.stringify({r:o||0,g:n||0,b:e||0,a:i||255});window.WailsInvoke("Wr:"+t)}var x={};f(x,{ScreenGetAll:()=>eo});function eo(){return l(":wails:ScreenGetAll")}var v={};f(v,{BrowserOpenURL:()=>io});function io(o){window.WailsInvoke("BO:"+o)}var I={};f(I,{LogDebug:()=>so,LogError:()=>ao,LogFatal:()=>co,LogInfo:()=>lo,LogLevel:()=>uo,LogPrint:()=>ro,LogTrace:()=>to,LogWarning:()=>wo,SetLogLevel:()=>fo});function c(o,n){window.WailsInvoke("L"+o+n)}function to(o){c("T",o)}function ro(o){c("P",o)}function so(o){c("D",o)}function lo(o){c("I",o)}function wo(o){c("W",o)}function ao(o){c("E",o)}function co(o){c("F",o)}function fo(o){c("S",o)}var uo={TRACE:1,DEBUG:2,INFO:3,WARNING:4,ERROR:5};var S=-1;function Wo(){window.WailsInvoke("Q")}function po(){window.WailsInvoke("S")}function xo(){window.WailsInvoke("H")}window.wails={Callback:m,callbacks:w,EventsNotify:k,eventListeners:a,SetBindings:g,window:{ID:()=>S}};window.runtime={...I,...p,...v,...x,EventsOn,EventsOnce,EventsOnMultiple,EventsEmit,EventsOff,Show:po,Hide:xo,Quit:Wo};window.wails_config&&(S=window.wails_config.windowID,window.wails_config=null);console.log("Wails v3.0.0 Debug Mode Enabled");})(); diff --git a/v3/internal/runtime/runtime_production_desktop_windows.js b/v3/internal/runtime/runtime_production_desktop_windows.js new file mode 100644 index 00000000..c752cb52 --- /dev/null +++ b/v3/internal/runtime/runtime_production_desktop_windows.js @@ -0,0 +1 @@ +(()=>{var h=Object.defineProperty;var f=(o,n)=>{for(var e in n)h(o,e,{get:n[e],enumerable:!0})};(function(){window.WailsInvoke=o=>{window.chrome.webview.postMessage(o)}})();var w={};function E(){var o=new Uint32Array(1);return window.crypto.getRandomValues(o)[0]}function y(){return Math.random()*9007199254740991}var u;window.crypto?u=E:u=y;function l(o,n,e){e==null&&(e=0);let i=window.wails.window.ID();return new Promise(function(t,r){var s;do s=o+"-"+u();while(w[s]);var d;e>0&&(d=setTimeout(function(){r(Error("Call to "+o+" timed out. Request ID: "+s))},e)),w[s]={timeoutHandle:d,reject:r,resolve:t};try{let W={name:o,args:n,callbackID:s,windowID:i};window.WailsInvoke("C"+JSON.stringify(W))}catch(W){console.error(W)}})}window.ObfuscatedCall=(o,n,e)=>(e==null&&(e=0),new Promise(function(i,t){var r;do r=o+"-"+u();while(w[r]);var s;e>0&&(s=setTimeout(function(){t(Error("Call to method "+o+" timed out. Request ID: "+r))},e)),w[r]={timeoutHandle:s,reject:t,resolve:i};try{let d={id:o,args:n,callbackID:r,windowID:window.wails.window.ID()};window.WailsInvoke("c"+JSON.stringify(d))}catch(d){console.error(d)}}));function m(o){let n;try{n=JSON.parse(o)}catch(t){let r=`Invalid JSON passed to callback: ${t.message}. Message: ${o}`;throw runtime.LogDebug(r),new Error(r)}let e=n.callbackid,i=w[e];if(!i){let t=`Callback '${e}' not registered!!!`;throw console.error(t),new Error(t)}clearTimeout(i.timeoutHandle),delete w[e],n.error?i.reject(n.error):i.resolve(n.result)}var a={};function O(o){let n=o.name;if(a[n]){let e=a[n].slice();for(let i=0;i{window.go[n]=window.go[n]||{},Object.keys(o[n]).forEach(e=>{window.go[n][e]=window.go[n][e]||{},Object.keys(o[n][e]).forEach(i=>{window.go[n][e][i]=function(){let t=0;function r(){let s=[].slice.call(arguments);return l([n,e,i].join("."),s,t)}return r.setTimeout=function(s){t=s},r.getTimeout=function(){return t},r}()})})})}var p={};f(p,{WindowCenter:()=>A,WindowFullscreen:()=>H,WindowGetPosition:()=>z,WindowGetSize:()=>B,WindowHide:()=>_,WindowIsFullscreen:()=>J,WindowIsMaximised:()=>V,WindowIsMinimised:()=>Y,WindowIsNormal:()=>oo,WindowMaximise:()=>q,WindowMinimise:()=>Z,WindowReload:()=>L,WindowReloadApp:()=>D,WindowSetAlwaysOnTop:()=>P,WindowSetBackgroundColour:()=>no,WindowSetDarkTheme:()=>R,WindowSetLightTheme:()=>T,WindowSetMaxSize:()=>F,WindowSetMinSize:()=>N,WindowSetPosition:()=>j,WindowSetSize:()=>U,WindowSetSystemDefaultTheme:()=>C,WindowSetTitle:()=>M,WindowShow:()=>$,WindowToggleMaximise:()=>Q,WindowUnfullscreen:()=>G,WindowUnmaximise:()=>X,WindowUnminimise:()=>K});function L(){window.location.reload()}function D(){window.WailsInvoke("WR")}function C(){window.WailsInvoke("WASDT")}function T(){window.WailsInvoke("WALT")}function R(){window.WailsInvoke("WADT")}function A(){window.WailsInvoke("Wc")}function M(o){window.WailsInvoke("WT"+o)}function H(){window.WailsInvoke("WF")}function G(){window.WailsInvoke("Wf")}function J(){return l(":wails:WindowIsFullscreen")}function U(o,n){window.WailsInvoke("Ws:"+o+":"+n)}function B(){return l(":wails:WindowGetSize")}function F(o,n){window.WailsInvoke("WZ:"+o+":"+n)}function N(o,n){window.WailsInvoke("Wz:"+o+":"+n)}function P(o){window.WailsInvoke("WATP:"+(o?"1":"0"))}function j(o,n){window.WailsInvoke("Wp:"+o+":"+n)}function z(){return l(":wails:WindowGetPos")}function _(){window.WailsInvoke("WH")}function $(){window.WailsInvoke("WS")}function q(){window.WailsInvoke("WM")}function Q(){window.WailsInvoke("Wt")}function X(){window.WailsInvoke("WU")}function V(){return l(":wails:WindowIsMaximised")}function Z(){window.WailsInvoke("Wm")}function K(){window.WailsInvoke("Wu")}function Y(){return l(":wails:WindowIsMinimised")}function oo(){return l(":wails:WindowIsNormal")}function no(o,n,e,i){let t=JSON.stringify({r:o||0,g:n||0,b:e||0,a:i||255});window.WailsInvoke("Wr:"+t)}var x={};f(x,{ScreenGetAll:()=>eo});function eo(){return l(":wails:ScreenGetAll")}var v={};f(v,{BrowserOpenURL:()=>io});function io(o){window.WailsInvoke("BO:"+o)}var I={};f(I,{LogDebug:()=>so,LogError:()=>ao,LogFatal:()=>co,LogInfo:()=>lo,LogLevel:()=>uo,LogPrint:()=>ro,LogTrace:()=>to,LogWarning:()=>wo,SetLogLevel:()=>fo});function c(o,n){window.WailsInvoke("L"+o+n)}function to(o){c("T",o)}function ro(o){c("P",o)}function so(o){c("D",o)}function lo(o){c("I",o)}function wo(o){c("W",o)}function ao(o){c("E",o)}function co(o){c("F",o)}function fo(o){c("S",o)}var uo={TRACE:1,DEBUG:2,INFO:3,WARNING:4,ERROR:5};var S=-1;function Wo(){window.WailsInvoke("Q")}function po(){window.WailsInvoke("S")}function xo(){window.WailsInvoke("H")}window.wails={Callback:m,callbacks:w,EventsNotify:k,eventListeners:a,SetBindings:g,window:{ID:()=>S}};window.runtime={...I,...p,...v,...x,EventsOn,EventsOnce,EventsOnMultiple,EventsEmit,EventsOff,Show:po,Hide:xo,Quit:Wo};window.wails_config&&(S=window.wails_config.windowID,window.wails_config=null);console.log("Wails v3.0.0 Debug Mode Enabled");})(); diff --git a/v3/internal/runtime/runtime_production_linux.go b/v3/internal/runtime/runtime_production_linux.go new file mode 100644 index 00000000..d7c2bd1e --- /dev/null +++ b/v3/internal/runtime/runtime_production_linux.go @@ -0,0 +1,8 @@ +//go:build linux && production + +package runtime + +import _ "embed" + +//go:embed runtime_production_desktop_linux.js +var DesktopRuntime []byte diff --git a/v3/internal/runtime/runtime_production_windows.go b/v3/internal/runtime/runtime_production_windows.go new file mode 100644 index 00000000..8ab6d619 --- /dev/null +++ b/v3/internal/runtime/runtime_production_windows.go @@ -0,0 +1,8 @@ +//go:build windows && production + +package runtime + +import _ "embed" + +//go:embed runtime_production_desktop_windows.js +var DesktopRuntime []byte diff --git a/v3/internal/runtime/vite.config.ts b/v3/internal/runtime/vite.config.ts new file mode 100644 index 00000000..eb0831c6 --- /dev/null +++ b/v3/internal/runtime/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + environment: 'happy-dom', + }, +}) \ No newline at end of file diff --git a/v3/pkg/application/TODO.md b/v3/pkg/application/TODO.md new file mode 100644 index 00000000..ae470042 --- /dev/null +++ b/v3/pkg/application/TODO.md @@ -0,0 +1,10 @@ + +Features +- [ ] AssetServer +- [ ] Offline page if navigating to external URL +- [x] Application menu + +Bugs +- [ ] Resize Window +- [ ] Fullscreen/Maximise/Minimise/Restore + diff --git a/v3/pkg/application/app_delegate.h b/v3/pkg/application/app_delegate.h new file mode 100644 index 00000000..50ff8b6e --- /dev/null +++ b/v3/pkg/application/app_delegate.h @@ -0,0 +1,12 @@ +//go:build darwin + +#ifndef appdelegate_h +#define appdelegate_h + +#import + +@interface AppDelegate : NSObject +@property bool shouldTerminateWhenLastWindowClosed; +@end + +#endif diff --git a/v3/pkg/application/app_delegate.m b/v3/pkg/application/app_delegate.m new file mode 100644 index 00000000..af751093 --- /dev/null +++ b/v3/pkg/application/app_delegate.m @@ -0,0 +1,142 @@ +//go:build darwin + +#import "app_delegate.h" +#import "../events/events.h" + +extern bool hasListeners(unsigned int); + +@implementation AppDelegate +- (void)dealloc +{ + [super dealloc]; +} + +// Create the applicationShouldTerminateAfterLastWindowClosed: method +- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication +{ + return self.shouldTerminateWhenLastWindowClosed; +} + +// GENERATED EVENTS START +- (void)applicationDidBecomeActive:(NSNotification *)notification { + if( hasListeners(EventApplicationDidBecomeActive) ) { + processApplicationEvent(EventApplicationDidBecomeActive); + } +} + +- (void)applicationDidChangeBackingProperties:(NSNotification *)notification { + if( hasListeners(EventApplicationDidChangeBackingProperties) ) { + processApplicationEvent(EventApplicationDidChangeBackingProperties); + } +} + +- (void)applicationDidChangeEffectiveAppearance:(NSNotification *)notification { + if( hasListeners(EventApplicationDidChangeEffectiveAppearance) ) { + processApplicationEvent(EventApplicationDidChangeEffectiveAppearance); + } +} + +- (void)applicationDidChangeIcon:(NSNotification *)notification { + if( hasListeners(EventApplicationDidChangeIcon) ) { + processApplicationEvent(EventApplicationDidChangeIcon); + } +} + +- (void)applicationDidChangeOcclusionState:(NSNotification *)notification { + if( hasListeners(EventApplicationDidChangeOcclusionState) ) { + processApplicationEvent(EventApplicationDidChangeOcclusionState); + } +} + +- (void)applicationDidChangeScreenParameters:(NSNotification *)notification { + if( hasListeners(EventApplicationDidChangeScreenParameters) ) { + processApplicationEvent(EventApplicationDidChangeScreenParameters); + } +} + +- (void)applicationDidChangeStatusBarFrame:(NSNotification *)notification { + if( hasListeners(EventApplicationDidChangeStatusBarFrame) ) { + processApplicationEvent(EventApplicationDidChangeStatusBarFrame); + } +} + +- (void)applicationDidChangeStatusBarOrientation:(NSNotification *)notification { + if( hasListeners(EventApplicationDidChangeStatusBarOrientation) ) { + processApplicationEvent(EventApplicationDidChangeStatusBarOrientation); + } +} + +- (void)applicationDidFinishLaunching:(NSNotification *)notification { + if( hasListeners(EventApplicationDidFinishLaunching) ) { + processApplicationEvent(EventApplicationDidFinishLaunching); + } +} + +- (void)applicationDidHide:(NSNotification *)notification { + if( hasListeners(EventApplicationDidHide) ) { + processApplicationEvent(EventApplicationDidHide); + } +} + +- (void)applicationDidResignActive:(NSNotification *)notification { + if( hasListeners(EventApplicationDidResignActive) ) { + processApplicationEvent(EventApplicationDidResignActive); + } +} + +- (void)applicationDidUnhide:(NSNotification *)notification { + if( hasListeners(EventApplicationDidUnhide) ) { + processApplicationEvent(EventApplicationDidUnhide); + } +} + +- (void)applicationDidUpdate:(NSNotification *)notification { + if( hasListeners(EventApplicationDidUpdate) ) { + processApplicationEvent(EventApplicationDidUpdate); + } +} + +- (void)applicationWillBecomeActive:(NSNotification *)notification { + if( hasListeners(EventApplicationWillBecomeActive) ) { + processApplicationEvent(EventApplicationWillBecomeActive); + } +} + +- (void)applicationWillFinishLaunching:(NSNotification *)notification { + if( hasListeners(EventApplicationWillFinishLaunching) ) { + processApplicationEvent(EventApplicationWillFinishLaunching); + } +} + +- (void)applicationWillHide:(NSNotification *)notification { + if( hasListeners(EventApplicationWillHide) ) { + processApplicationEvent(EventApplicationWillHide); + } +} + +- (void)applicationWillResignActive:(NSNotification *)notification { + if( hasListeners(EventApplicationWillResignActive) ) { + processApplicationEvent(EventApplicationWillResignActive); + } +} + +- (void)applicationWillTerminate:(NSNotification *)notification { + if( hasListeners(EventApplicationWillTerminate) ) { + processApplicationEvent(EventApplicationWillTerminate); + } +} + +- (void)applicationWillUnhide:(NSNotification *)notification { + if( hasListeners(EventApplicationWillUnhide) ) { + processApplicationEvent(EventApplicationWillUnhide); + } +} + +- (void)applicationWillUpdate:(NSNotification *)notification { + if( hasListeners(EventApplicationWillUpdate) ) { + processApplicationEvent(EventApplicationWillUpdate); + } +} + +// GENERATED EVENTS END +@end diff --git a/v3/pkg/application/application.go b/v3/pkg/application/application.go new file mode 100644 index 00000000..b640aa2e --- /dev/null +++ b/v3/pkg/application/application.go @@ -0,0 +1,384 @@ +package application + +import "C" +import ( + "log" + "runtime" + "sync" + + "github.com/wailsapp/wails/v3/pkg/events" + "github.com/wailsapp/wails/v3/pkg/options" + + "github.com/wailsapp/wails/v2/pkg/assetserver/webview" +) + +var globalApplication *App + +func init() { + runtime.LockOSThread() +} + +func New(appOptions options.Application) *App { + if globalApplication != nil { + return globalApplication + } + + mergeApplicationDefaults(&appOptions) + + result := &App{ + options: appOptions, + applicationEventListeners: make(map[uint][]func()), + systemTrays: make(map[uint]*SystemTray), + } + globalApplication = result + return result +} + +func mergeApplicationDefaults(o *options.Application) { + if o.Name == "" { + o.Name = "My Wails Application" + } + if o.Description == "" { + o.Description = "An application written using Wails" + } + if o.Icon == nil { + o.Icon = DefaultApplicationIcon + } + +} + +type platformApp interface { + run() error + destroy() + setApplicationMenu(menu *Menu) + name() string + getCurrentWindowID() uint + showAboutDialog(name string, description string, icon []byte) + setIcon(icon []byte) + on(id uint) + dispatchOnMainThread(id uint) +} + +// Messages sent from javascript get routed here +type windowMessage struct { + windowId uint + message string +} + +var windowMessageBuffer = make(chan *windowMessage) + +type webViewAssetRequest struct { + windowId uint + request webview.Request +} + +var webviewRequests = make(chan *webViewAssetRequest) + +type App struct { + options options.Application + applicationEventListeners map[uint][]func() + applicationEventListenersLock sync.RWMutex + + // Windows + windows map[uint]*WebviewWindow + windowsLock sync.Mutex + windowAliases map[string]uint + windowAliasesLock sync.Mutex + + // System Trays + systemTrays map[uint]*SystemTray + systemTraysLock sync.Mutex + systemTrayID uint + systemTrayIDLock sync.RWMutex + + // MenuItems + menuItems map[uint]*MenuItem + menuItemsLock sync.Mutex + + // Running + running bool + + // platform app + impl platformApp + + // The main application menu + ApplicationMenu *Menu + + // About MessageDialog + clipboard *Clipboard +} + +func (a *App) getSystemTrayID() uint { + a.systemTrayIDLock.Lock() + defer a.systemTrayIDLock.Unlock() + a.systemTrayID++ + return a.systemTrayID +} +func (a *App) On(eventType events.ApplicationEventType, callback func()) { + eventID := uint(eventType) + a.applicationEventListenersLock.Lock() + defer a.applicationEventListenersLock.Unlock() + a.applicationEventListeners[eventID] = append(a.applicationEventListeners[eventID], callback) + if a.impl != nil { + a.impl.on(eventID) + } +} +func (a *App) NewWebviewWindow() *WebviewWindow { + return a.NewWebviewWindowWithOptions(nil) +} + +func (a *App) NewWebviewWindowWithOptions(windowOptions *options.WebviewWindow) *WebviewWindow { + // Ensure we have sane defaults + if windowOptions == nil { + windowOptions = options.WindowDefaults + } + + newWindow := NewWindow(windowOptions) + id := newWindow.id + if a.windows == nil { + a.windows = make(map[uint]*WebviewWindow) + } + a.windowsLock.Lock() + a.windows[id] = newWindow + a.windowsLock.Unlock() + + if windowOptions.Alias != "" { + if a.windowAliases == nil { + a.windowAliases = make(map[string]uint) + } + a.windowAliasesLock.Lock() + a.windowAliases[windowOptions.Alias] = id + a.windowAliasesLock.Unlock() + } + if a.running { + newWindow.run() + } + + return newWindow +} + +func (a *App) NewSystemTray() *SystemTray { + + id := a.getSystemTrayID() + newSystemTray := NewSystemTray(id) + a.systemTraysLock.Lock() + a.systemTrays[id] = newSystemTray + a.systemTraysLock.Unlock() + + if a.running { + newSystemTray.Run() + } + return newSystemTray +} + +func (a *App) Run() error { + a.impl = newPlatformApp(a) + + a.running = true + go func() { + for { + event := <-applicationEvents + a.handleApplicationEvent(event) + } + }() + go func() { + for { + event := <-windowEvents + a.handleWindowEvent(event) + } + }() + go func() { + for { + event := <-webviewRequests + a.handleWebViewRequest(event) + event.request.Release() + } + }() + go func() { + for { + event := <-windowMessageBuffer + a.handleWindowMessage(event) + } + }() + + go func() { + for { + menuItemID := <-menuItemClicked + a.handleMenuItemClicked(menuItemID) + } + }() + + // run windows + for _, window := range a.windows { + go window.run() + } + + // run system trays + for _, systray := range a.systemTrays { + go systray.Run() + } + + // set the application menu + a.impl.setApplicationMenu(a.ApplicationMenu) + + // set the application icon + a.impl.setIcon(a.options.Icon) + + return a.impl.run() +} + +func (a *App) handleApplicationEvent(event uint) { + a.applicationEventListenersLock.RLock() + listeners, ok := a.applicationEventListeners[event] + a.applicationEventListenersLock.RUnlock() + if !ok { + return + } + for _, listener := range listeners { + go listener() + } +} + +func (a *App) handleWindowMessage(event *windowMessage) { + // Get window from window map + a.windowsLock.Lock() + window, ok := a.windows[event.windowId] + a.windowsLock.Unlock() + if !ok { + log.Printf("WebviewWindow #%d not found", event.windowId) + return + } + // Get callback from window + window.handleMessage(event.message) +} + +func (a *App) handleWebViewRequest(event *webViewAssetRequest) { + // Get window from window map + a.windowsLock.Lock() + window, ok := a.windows[event.windowId] + a.windowsLock.Unlock() + if !ok { + log.Printf("WebviewWindow #%d not found", event.windowId) + return + } + // Get callback from window + window.handleWebViewRequest(event.request) +} + +func (a *App) handleWindowEvent(event *WindowEvent) { + // Get window from window map + a.windowsLock.Lock() + window, ok := a.windows[event.WindowID] + a.windowsLock.Unlock() + if !ok { + log.Printf("WebviewWindow #%d not found", event.WindowID) + return + } + window.handleWindowEvent(event.EventID) +} + +func (a *App) handleMenuItemClicked(menuItemID uint) { + menuItem := getMenuItemByID(menuItemID) + if menuItem == nil { + log.Printf("MenuItem #%d not found", menuItemID) + return + } + menuItem.handleClick() +} + +func (a *App) CurrentWindow() *WebviewWindow { + if a.impl == nil { + return nil + } + id := a.impl.getCurrentWindowID() + a.windowsLock.Lock() + defer a.windowsLock.Unlock() + return a.windows[id] +} + +func (a *App) Quit() { + var wg sync.WaitGroup + wg.Add(2) + go func() { + a.windowsLock.Lock() + for _, window := range a.windows { + window.Destroy() + } + a.windowsLock.Unlock() + wg.Done() + }() + go func() { + a.systemTraysLock.Lock() + for _, systray := range a.systemTrays { + systray.Destroy() + } + a.systemTraysLock.Unlock() + wg.Done() + }() + wg.Wait() + a.impl.destroy() +} + +func (a *App) SetMenu(menu *Menu) { + a.ApplicationMenu = menu + if a.impl != nil { + a.impl.setApplicationMenu(menu) + } +} +func (a *App) ShowAboutDialog() { + if a.impl != nil { + a.impl.showAboutDialog(a.options.Name, a.options.Description, a.options.Icon) + } +} + +func (a *App) InfoDialog() *MessageDialog { + return newMessageDialog(InfoDialog) +} + +func (a *App) QuestionDialog() *MessageDialog { + return newMessageDialog(QuestionDialog) +} + +func (a *App) WarningDialog() *MessageDialog { + return newMessageDialog(WarningDialog) +} + +func (a *App) ErrorDialog() *MessageDialog { + return newMessageDialog(ErrorDialog) +} + +func (a *App) OpenDirectoryDialog() *MessageDialog { + return newMessageDialog(OpenDirectoryDialog) +} + +func (a *App) OpenFileDialog() *OpenFileDialog { + return newOpenFileDialog() +} + +func (a *App) SaveFileDialog() *SaveFileDialog { + return newSaveFileDialog() +} + +func (a *App) GetPrimaryScreen() (*Screen, error) { + return getPrimaryScreen() +} + +func (a *App) GetScreens() ([]*Screen, error) { + return getScreens() +} + +func (a *App) Clipboard() *Clipboard { + if a.clipboard == nil { + a.clipboard = newClipboard() + } + return a.clipboard +} + +func (a *App) dispatchOnMainThread(fn func()) { + mainThreadFunctionStoreLock.Lock() + id := generateFunctionStoreID() + mainThreadFunctionStore[id] = fn + mainThreadFunctionStoreLock.Unlock() + // Call platform specific dispatch function + a.impl.dispatchOnMainThread(id) +} diff --git a/v3/pkg/application/application.h b/v3/pkg/application/application.h new file mode 100644 index 00000000..e6738439 --- /dev/null +++ b/v3/pkg/application/application.h @@ -0,0 +1,11 @@ +//go:build darwin + +#ifndef application_h +#define application_h + +static void init(void); +static void run(void); +static void setActivationPolicy(int policy); +static char *getAppName(void); + +#endif \ No newline at end of file diff --git a/v3/pkg/application/application_darwin.go b/v3/pkg/application/application_darwin.go new file mode 100644 index 00000000..b24fe4c5 --- /dev/null +++ b/v3/pkg/application/application_darwin.go @@ -0,0 +1,225 @@ +//go:build darwin + +package application + +/* + +#cgo CFLAGS: -mmacosx-version-min=10.13 -x objective-c +#cgo LDFLAGS: -framework Cocoa -mmacosx-version-min=10.13 + +#include "application.h" +#include "app_delegate.h" +#include "webview_window.h" +#include + +extern void registerListener(unsigned int event); + +#import + +static AppDelegate *appDelegate = nil; + +static void init(void) { + [NSApplication sharedApplication]; + appDelegate = [[AppDelegate alloc] init]; + [NSApp setDelegate:appDelegate]; + + [NSEvent addLocalMonitorForEventsMatchingMask:NSEventMaskLeftMouseDown handler:^NSEvent * _Nullable(NSEvent * _Nonnull event) { + NSWindow* eventWindow = [event window]; + if (eventWindow == nil ) { + return event; + } + WebviewWindowDelegate* windowDelegate = (WebviewWindowDelegate*)[eventWindow delegate]; + if (windowDelegate == nil) { + return event; + } + if ([windowDelegate respondsToSelector:@selector(handleLeftMouseDown:)]) { + [windowDelegate handleLeftMouseDown:event]; + } + return event; + }]; + + [NSEvent addLocalMonitorForEventsMatchingMask:NSEventMaskLeftMouseUp handler:^NSEvent * _Nullable(NSEvent * _Nonnull event) { + NSWindow* eventWindow = [event window]; + if (eventWindow == nil ) { + return event; + } + WebviewWindowDelegate* windowDelegate = (WebviewWindowDelegate*)[eventWindow delegate]; + if (windowDelegate == nil) { + return event; + } + if ([windowDelegate respondsToSelector:@selector(handleLeftMouseUp:)]) { + [windowDelegate handleLeftMouseUp:eventWindow]; + } + return event; + }]; +} + +static void setApplicationShouldTerminateAfterLastWindowClosed(bool shouldTerminate) { + // Get the NSApp delegate + AppDelegate *appDelegate = (AppDelegate*)[NSApp delegate]; + // Set the applicationShouldTerminateAfterLastWindowClosed boolean + appDelegate.shouldTerminateWhenLastWindowClosed = shouldTerminate; +} + +static void setActivationPolicy(int policy) { + [NSApp setActivationPolicy:policy]; +} + +static void activateIgnoringOtherApps() { + [NSApp activateIgnoringOtherApps:YES]; +} + +static void run(void) { + @autoreleasepool { + [NSApp run]; + [appDelegate release]; + } +} + +// Destroy application +static void destroyApp(void) { + [NSApp terminate:nil]; +} + +// Set the application menu +static void setApplicationMenu(void *menu) { + NSMenu *nsMenu = (__bridge NSMenu *)menu; + [NSApp setMainMenu:menu]; +} + +// Get the application name +static char* getAppName(void) { + NSString *appName = [NSRunningApplication currentApplication].localizedName; + if( appName == nil ) { + appName = [[NSProcessInfo processInfo] processName]; + } + return strdup([appName UTF8String]); +} + +// get the current window ID +static unsigned int getCurrentWindowID(void) { + NSWindow *window = [NSApp keyWindow]; + // Get the window delegate + WebviewWindowDelegate *delegate = (WebviewWindowDelegate*)[window delegate]; + return delegate.windowId; +} + +// Set the application icon +static void setApplicationIcon(void *icon, int length) { + // On main thread + dispatch_async(dispatch_get_main_queue(), ^{ + NSImage *image = [[NSImage alloc] initWithData:[NSData dataWithBytes:icon length:length]]; + [NSApp setApplicationIconImage:image]; + }); +} + +*/ +import "C" +import ( + "unsafe" + + "github.com/wailsapp/wails/v2/pkg/assetserver/webview" + "github.com/wailsapp/wails/v3/pkg/events" +) + +type macosApp struct { + applicationMenu unsafe.Pointer + parent *App +} + +func (m *macosApp) on(eventID uint) { + C.registerListener(C.uint(eventID)) +} + +func (m *macosApp) setIcon(icon []byte) { + C.setApplicationIcon(unsafe.Pointer(&icon[0]), C.int(len(icon))) +} + +func (m *macosApp) name() string { + appName := C.getAppName() + defer C.free(unsafe.Pointer(appName)) + return C.GoString(appName) +} + +func (m *macosApp) getCurrentWindowID() uint { + return uint(C.getCurrentWindowID()) +} + +func (m *macosApp) setApplicationMenu(menu *Menu) { + if menu == nil { + // Create a default menu for mac + menu = defaultApplicationMenu() + } + menu.Update() + + // Convert impl to macosMenu object + m.applicationMenu = (menu.impl).(*macosMenu).nsMenu + C.setApplicationMenu(m.applicationMenu) +} + +func (m *macosApp) run() error { + // Add a hook to the ApplicationDidFinishLaunching event + m.parent.On(events.Mac.ApplicationDidFinishLaunching, func() { + C.setApplicationShouldTerminateAfterLastWindowClosed(C.bool(m.parent.options.Mac.ApplicationShouldTerminateAfterLastWindowClosed)) + C.setActivationPolicy(C.int(m.parent.options.Mac.ActivationPolicy)) + C.activateIgnoringOtherApps() + }) + // setup event listeners + for eventID := range m.parent.applicationEventListeners { + m.on(eventID) + } + C.run() + return nil +} + +func (m *macosApp) destroy() { + C.destroyApp() +} + +func newPlatformApp(app *App) *macosApp { + C.init() + return &macosApp{ + parent: app, + } +} + +//export processApplicationEvent +func processApplicationEvent(eventID C.uint) { + applicationEvents <- uint(eventID) +} + +//export processWindowEvent +func processWindowEvent(windowID C.uint, eventID C.uint) { + windowEvents <- &WindowEvent{ + WindowID: uint(windowID), + EventID: uint(eventID), + } +} + +//export processMessage +func processMessage(windowID C.uint, message *C.char) { + windowMessageBuffer <- &windowMessage{ + windowId: uint(windowID), + message: C.GoString(message), + } +} + +//export processURLRequest +func processURLRequest(windowID C.uint, wkUrlSchemeTask unsafe.Pointer) { + webviewRequests <- &webViewAssetRequest{ + windowId: uint(windowID), + request: webview.NewRequest(wkUrlSchemeTask), + } +} + +//export processMenuItemClick +func processMenuItemClick(menuID C.uint) { + menuItemClicked <- uint(menuID) +} + +func setIcon(icon []byte) { + if icon == nil { + return + } + C.setApplicationIcon(unsafe.Pointer(&icon[0]), C.int(len(icon))) +} diff --git a/v3/pkg/application/clipboard.go b/v3/pkg/application/clipboard.go new file mode 100644 index 00000000..e823ace9 --- /dev/null +++ b/v3/pkg/application/clipboard.go @@ -0,0 +1,26 @@ +package application + +import "C" + +type clipboardImpl interface { + setText(text string) bool + text() string +} + +type Clipboard struct { + impl clipboardImpl +} + +func newClipboard() *Clipboard { + return &Clipboard{ + impl: newClipboardImpl(), + } +} + +func (c *Clipboard) SetText(text string) bool { + return c.impl.setText(text) +} + +func (c *Clipboard) Text() string { + return c.impl.text() +} diff --git a/v3/pkg/application/clipboard_darwin.go b/v3/pkg/application/clipboard_darwin.go new file mode 100644 index 00000000..a46ff66d --- /dev/null +++ b/v3/pkg/application/clipboard_darwin.go @@ -0,0 +1,56 @@ +//go:build darwin + +package application + +/* +#cgo CFLAGS: -mmacosx-version-min=10.13 -x objective-c +#cgo LDFLAGS: -framework Cocoa -mmacosx-version-min=10.13 + +#import +#import + +bool setClipboardText(const char* text) { + NSPasteboard *pasteBoard = [NSPasteboard generalPasteboard]; + NSError *error = nil; + NSString *string = [NSString stringWithUTF8String:text]; + [pasteBoard clearContents]; + return [pasteBoard setString:string forType:NSPasteboardTypeString]; +} + +const char* getClipboardText() { + NSPasteboard *pasteboard = [NSPasteboard generalPasteboard]; + NSString *text = [pasteboard stringForType:NSPasteboardTypeString]; + return [text UTF8String]; +} + +*/ +import "C" +import ( + "sync" + "unsafe" +) + +var clipboardLock sync.RWMutex + +type macosClipboard struct{} + +func (m macosClipboard) setText(text string) bool { + clipboardLock.Lock() + defer clipboardLock.Unlock() + cText := C.CString(text) + success := C.setClipboardText(cText) + C.free(unsafe.Pointer(cText)) + return bool(success) +} + +func (m macosClipboard) text() string { + clipboardLock.RLock() + defer clipboardLock.RUnlock() + clipboardText := C.getClipboardText() + result := C.GoString(clipboardText) + return result +} + +func newClipboardImpl() *macosClipboard { + return &macosClipboard{} +} diff --git a/v3/pkg/application/context.go b/v3/pkg/application/context.go new file mode 100644 index 00000000..fff4675e --- /dev/null +++ b/v3/pkg/application/context.go @@ -0,0 +1,42 @@ +package application + +type Context struct { + // contains filtered or unexported fields + data map[string]any +} + +func newContext() *Context { + return &Context{ + data: make(map[string]any), + } +} + +const ( + clickedMenuItem string = "clickedMenuItem" + menuItemIsChecked string = "menuItemIsChecked" +) + +func (c *Context) ClickedMenuItem() *MenuItem { + result, exists := c.data[clickedMenuItem] + if !exists { + return nil + } + return result.(*MenuItem) +} + +func (c *Context) IsChecked() bool { + result, exists := c.data[menuItemIsChecked] + if !exists { + return false + } + return result.(bool) +} + +func (c *Context) withClickedMenuItem(menuItem *MenuItem) *Context { + c.data[clickedMenuItem] = menuItem + return c +} + +func (c *Context) withChecked(checked bool) { + c.data[menuItemIsChecked] = checked +} diff --git a/v3/pkg/application/dialogs.go b/v3/pkg/application/dialogs.go new file mode 100644 index 00000000..c6c03e7b --- /dev/null +++ b/v3/pkg/application/dialogs.go @@ -0,0 +1,367 @@ +package application + +import "C" +import ( + "strings" + "sync" +) + +type DialogType int + +var dialogMapID = make(map[uint]struct{}) +var dialogIDLock sync.RWMutex + +func getDialogID() uint { + dialogIDLock.Lock() + defer dialogIDLock.Unlock() + var dialogID uint + for { + if _, ok := dialogMapID[dialogID]; !ok { + dialogMapID[dialogID] = struct{}{} + break + } + dialogID++ + if dialogID == 0 { + panic("no more dialog IDs") + } + } + return dialogID +} + +func freeDialogID(id uint) { + dialogIDLock.Lock() + defer dialogIDLock.Unlock() + delete(dialogMapID, id) +} + +var openFileResponses = make(map[uint]chan string) +var saveFileResponses = make(map[uint]chan string) + +const ( + InfoDialog DialogType = iota + QuestionDialog + WarningDialog + ErrorDialog + OpenDirectoryDialog +) + +type Button struct { + label string + isCancel bool + isDefault bool + callback func() +} + +func (b *Button) OnClick(callback func()) { + b.callback = callback +} + +type messageDialogImpl interface { + show() +} + +type MessageDialog struct { + dialogType DialogType + title string + message string + buttons []*Button + icon []byte + + // platform independent + impl messageDialogImpl +} + +var defaultTitles = map[DialogType]string{ + InfoDialog: "Information", + QuestionDialog: "Question", + WarningDialog: "Warning", + ErrorDialog: "Error", +} + +func newMessageDialog(dialogType DialogType) *MessageDialog { + return &MessageDialog{ + dialogType: dialogType, + title: defaultTitles[dialogType], + } +} + +func (d *MessageDialog) SetTitle(title string) *MessageDialog { + d.title = title + return d +} + +func (d *MessageDialog) Show() { + if d.impl == nil { + d.impl = newDialogImpl(d) + } + d.impl.show() +} + +func (d *MessageDialog) SetIcon(icon []byte) *MessageDialog { + d.icon = icon + return d +} + +func (d *MessageDialog) AddButton(s string) *Button { + result := &Button{ + label: s, + } + d.buttons = append(d.buttons, result) + return result +} + +func (d *MessageDialog) SetDefaultButton(button *Button) *MessageDialog { + for _, b := range d.buttons { + b.isDefault = false + } + button.isDefault = true + return d +} + +func (d *MessageDialog) SetCancelButton(button *Button) *MessageDialog { + for _, b := range d.buttons { + b.isCancel = false + } + button.isCancel = true + return d +} + +func (d *MessageDialog) SetMessage(title string) *MessageDialog { + d.title = title + return d +} + +type openFileDialogImpl interface { + show() ([]string, error) +} + +type fileFilter struct { + displayName string // Filter information EG: "Image Files (*.jpg, *.png)" + pattern string // semicolon separated list of extensions, EG: "*.jpg;*.png" +} + +type OpenFileDialog struct { + id uint + canChooseDirectories bool + canChooseFiles bool + canCreateDirectories bool + showHiddenFiles bool + resolvesAliases bool + allowsMultipleSelection bool + hideExtension bool + canSelectHiddenExtension bool + treatsFilePackagesAsDirectories bool + allowsOtherFileTypes bool + filters []fileFilter + + title string + message string + buttonText string + directory string + window *WebviewWindow + + impl openFileDialogImpl +} + +func (d *OpenFileDialog) CanChooseFiles(canChooseFiles bool) *OpenFileDialog { + d.canChooseFiles = canChooseFiles + return d +} + +func (d *OpenFileDialog) CanChooseDirectories(canChooseDirectories bool) *OpenFileDialog { + d.canChooseDirectories = canChooseDirectories + return d +} + +func (d *OpenFileDialog) CanCreateDirectories(canCreateDirectories bool) *OpenFileDialog { + d.canCreateDirectories = canCreateDirectories + return d +} + +func (d *OpenFileDialog) AllowsOtherFileTypes(allowsOtherFileTypes bool) *OpenFileDialog { + d.allowsOtherFileTypes = allowsOtherFileTypes + return d +} + +func (d *OpenFileDialog) ShowHiddenFiles(showHiddenFiles bool) *OpenFileDialog { + d.showHiddenFiles = showHiddenFiles + return d +} + +func (d *OpenFileDialog) HideExtension(hideExtension bool) *OpenFileDialog { + d.hideExtension = hideExtension + return d +} + +func (d *OpenFileDialog) TreatsFilePackagesAsDirectories(treatsFilePackagesAsDirectories bool) *OpenFileDialog { + d.treatsFilePackagesAsDirectories = treatsFilePackagesAsDirectories + return d +} + +func (d *OpenFileDialog) AttachToWindow(window *WebviewWindow) *OpenFileDialog { + d.window = window + return d +} + +func (d *OpenFileDialog) ResolvesAliases(resolvesAliases bool) *OpenFileDialog { + d.resolvesAliases = resolvesAliases + return d +} + +func (d *OpenFileDialog) SetTitle(title string) *OpenFileDialog { + d.title = title + return d +} + +func (d *OpenFileDialog) PromptForSingleSelection() (string, error) { + d.allowsMultipleSelection = false + if d.impl == nil { + d.impl = newOpenFileDialogImpl(d) + } + selection, err := d.impl.show() + var result string + if len(selection) > 0 { + result = selection[0] + } + + return result, err +} + +// AddFilter adds a filter to the dialog. The filter is a display name and a semicolon separated list of extensions. +// EG: AddFilter("Image Files", "*.jpg;*.png") +func (d *OpenFileDialog) AddFilter(displayName, pattern string) *OpenFileDialog { + d.filters = append(d.filters, fileFilter{ + displayName: strings.TrimSpace(displayName), + pattern: strings.TrimSpace(pattern), + }) + return d +} + +func (d *OpenFileDialog) PromptForMultipleSelection() ([]string, error) { + d.allowsMultipleSelection = true + if d.impl == nil { + d.impl = newOpenFileDialogImpl(d) + } + return d.impl.show() +} + +func (d *OpenFileDialog) SetMessage(message string) *OpenFileDialog { + d.message = message + return d +} + +func (d *OpenFileDialog) SetButtonText(text string) *OpenFileDialog { + d.buttonText = text + return d +} + +func (d *OpenFileDialog) SetDirectory(directory string) *OpenFileDialog { + d.directory = directory + return d +} + +func (d *OpenFileDialog) CanSelectHiddenExtension(canSelectHiddenExtension bool) *OpenFileDialog { + d.canSelectHiddenExtension = canSelectHiddenExtension + return d +} + +func newOpenFileDialog() *OpenFileDialog { + return &OpenFileDialog{ + id: getDialogID(), + canChooseDirectories: false, + canChooseFiles: true, + canCreateDirectories: true, + resolvesAliases: false, + } +} + +func newSaveFileDialog() *SaveFileDialog { + return &SaveFileDialog{ + id: getDialogID(), + canCreateDirectories: true, + } +} + +type SaveFileDialog struct { + id uint + canCreateDirectories bool + showHiddenFiles bool + canSelectHiddenExtension bool + allowOtherFileTypes bool + hideExtension bool + treatsFilePackagesAsDirectories bool + message string + directory string + filename string + buttonText string + + window *WebviewWindow + + impl saveFileDialogImpl +} + +type saveFileDialogImpl interface { + show() (string, error) +} + +func (d *SaveFileDialog) CanCreateDirectories(canCreateDirectories bool) *SaveFileDialog { + d.canCreateDirectories = canCreateDirectories + return d +} + +func (d *SaveFileDialog) CanSelectHiddenExtension(canSelectHiddenExtension bool) *SaveFileDialog { + d.canSelectHiddenExtension = canSelectHiddenExtension + return d +} + +func (d *SaveFileDialog) ShowHiddenFiles(showHiddenFiles bool) *SaveFileDialog { + d.showHiddenFiles = showHiddenFiles + return d +} + +func (d *SaveFileDialog) SetMessage(message string) *SaveFileDialog { + d.message = message + return d +} + +func (d *SaveFileDialog) SetDirectory(directory string) *SaveFileDialog { + d.directory = directory + return d +} + +func (d *SaveFileDialog) AttachToWindow(window *WebviewWindow) *SaveFileDialog { + d.window = window + return d +} + +func (d *SaveFileDialog) PromptForSingleSelection() (string, error) { + if d.impl == nil { + d.impl = newSaveFileDialogImpl(d) + } + return d.impl.show() +} + +func (d *SaveFileDialog) SetButtonText(text string) *SaveFileDialog { + d.buttonText = text + return d +} + +func (d *SaveFileDialog) SetFilename(filename string) *SaveFileDialog { + d.filename = filename + return d +} + +func (d *SaveFileDialog) AllowsOtherFileTypes(allowOtherFileTypes bool) *SaveFileDialog { + d.allowOtherFileTypes = allowOtherFileTypes + return d +} + +func (d *SaveFileDialog) HideExtension(hideExtension bool) *SaveFileDialog { + d.hideExtension = hideExtension + return d +} + +func (d *SaveFileDialog) TreatsFilePackagesAsDirectories(treatsFilePackagesAsDirectories bool) *SaveFileDialog { + d.treatsFilePackagesAsDirectories = treatsFilePackagesAsDirectories + return d +} diff --git a/v3/pkg/application/dialogs_darwin.go b/v3/pkg/application/dialogs_darwin.go new file mode 100644 index 00000000..91e94d6b --- /dev/null +++ b/v3/pkg/application/dialogs_darwin.go @@ -0,0 +1,520 @@ +//go:build darwin + +package application + +/* +#cgo CFLAGS: -mmacosx-version-min=10.13 -x objective-c +#cgo LDFLAGS: -framework Cocoa -mmacosx-version-min=10.13 -framework UniformTypeIdentifiers + +#import + +#import +#import "dialogs_delegate.h" + +extern void openFileDialogCallback(uint id, char* path); +extern void openFileDialogCallbackEnd(uint id); +extern void saveFileDialogCallback(uint id, char* path); + +static void showAboutBox(char* title, char *message, void *icon, int length) { + + // run on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + NSAlert *alert = [[NSAlert alloc] init]; + if (title != NULL) { + [alert setMessageText:[NSString stringWithUTF8String:title]]; + free(title); + } + if (message != NULL) { + [alert setInformativeText:[NSString stringWithUTF8String:message]]; + free(message); + } + if (icon != NULL) { + NSImage *image = [[NSImage alloc] initWithData:[NSData dataWithBytes:icon length:length]]; + [alert setIcon:image]; + } + [alert setAlertStyle:NSAlertStyleInformational]; + [alert runModal]; + }); +} + + +// Create an NSAlert +static void* createAlert(int alertType, char* title, char *message, void *icon, int length) { + NSAlert *alert = [[NSAlert alloc] init]; + [alert setAlertStyle:alertType]; + if (title != NULL) { + [alert setMessageText:[NSString stringWithUTF8String:title]]; + free(title); + } + if (message != NULL) { + [alert setInformativeText:[NSString stringWithUTF8String:message]]; + free(message); + } + if (icon != NULL) { + NSImage *image = [[NSImage alloc] initWithData:[NSData dataWithBytes:icon length:length]]; + [alert setIcon:image]; + } else { + if(alertType == NSAlertStyleCritical || alertType == NSAlertStyleWarning) { + NSImage *image = [NSImage imageNamed:NSImageNameCaution]; + [alert setIcon:image]; + } else { + NSImage *image = [NSImage imageNamed:NSImageNameInfo]; + [alert setIcon:image]; + } +} + return alert; + +} + +// Run the dialog +static int dialogRunModal(void *dialog) { + NSAlert *alert = (__bridge NSAlert *)dialog; + long response = [alert runModal]; + int result; + + if( response == NSAlertFirstButtonReturn ) { + result = 0; + } + else if( response == NSAlertSecondButtonReturn ) { + result = 1; + } + else if( response == NSAlertThirdButtonReturn ) { + result = 2; + } else { + result = 3; + } + return result; +} + +// Release the dialog +static void releaseDialog(void *dialog) { + NSAlert *alert = (__bridge NSAlert *)dialog; + [alert release]; +} + +// Add a button to the dialog +static void alertAddButton(void *dialog, char *label, bool isDefault, bool isCancel) { + NSAlert *alert = (__bridge NSAlert *)dialog; + NSButton *button = [alert addButtonWithTitle:[NSString stringWithUTF8String:label]]; + free(label); + if( isDefault ) { + [button setKeyEquivalent:@"\r"]; + } else if( isCancel ) { + [button setKeyEquivalent:@"\033"]; + } else { + [button setKeyEquivalent:@""]; + } +} + +static void processOpenFileDialogResults(NSOpenPanel *panel, NSInteger result, uint dialogID) { + const char *path = NULL; + if (result == NSModalResponseOK) { + NSArray *urls = [panel URLs]; + if ([urls count] > 0) { + NSArray *urls = [panel URLs]; + for (NSURL *url in urls) { + path = [[url path] UTF8String]; + openFileDialogCallback(dialogID, (char *)path); + } + } else { + NSURL *url = [panel URL]; + path = [[url path] UTF8String]; + openFileDialogCallback(dialogID, (char *)path); + } + } + openFileDialogCallbackEnd(dialogID); +} + + +static void showOpenFileDialog(unsigned int dialogID, + bool canChooseFiles, + bool canChooseDirectories, + bool canCreateDirectories, + bool showHiddenFiles, + bool allowsMultipleSelection, + bool resolvesAliases, + bool hideExtension, + bool treatsFilePackagesAsDirectories, + bool allowsOtherFileTypes, + char *filterPatterns, + unsigned int filterPatternsCount, + char* message, + char* directory, + char* buttonText, + + void *window) { + + // run on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + + NSOpenPanel *panel = [NSOpenPanel openPanel]; + + // print out filterPatterns if length > 0 + if (filterPatternsCount > 0) { + OpenPanelDelegate *delegate = [[OpenPanelDelegate alloc] init]; + [panel setDelegate:delegate]; + // Initialise NSString with bytes and UTF8 encoding + NSString *filterPatternsString = [[NSString alloc] initWithBytes:filterPatterns length:filterPatternsCount encoding:NSUTF8StringEncoding]; + // Convert NSString to NSArray + delegate.allowedExtensions = [filterPatternsString componentsSeparatedByString:@";"]; + + // Use UTType if macOS 11 or higher to add file filters + if (@available(macOS 11, *)) { + NSMutableArray *filterTypes = [NSMutableArray array]; + // Iterate the filtertypes, create uti's that are limited to the file extensions then add + for (NSString *filterType in delegate.allowedExtensions) { + [filterTypes addObject:[UTType typeWithFilenameExtension:filterType]]; + } + [panel setAllowedContentTypes:filterTypes]; + } else { + [panel setAllowedFileTypes:delegate.allowedExtensions]; + } + + // Free the memory + free(filterPatterns); + } + + + if (message != NULL) { + [panel setMessage:[NSString stringWithUTF8String:message]]; + free(message); + } + + if (directory != NULL) { + [panel setDirectoryURL:[NSURL fileURLWithPath:[NSString stringWithUTF8String:directory]]]; + free(directory); + } + + if (buttonText != NULL) { + [panel setPrompt:[NSString stringWithUTF8String:buttonText]]; + free(buttonText); + } + + [panel setCanChooseFiles:canChooseFiles]; + [panel setCanChooseDirectories:canChooseDirectories]; + [panel setCanCreateDirectories:canCreateDirectories]; + [panel setShowsHiddenFiles:showHiddenFiles]; + [panel setAllowsMultipleSelection:allowsMultipleSelection]; + [panel setResolvesAliases:resolvesAliases]; + [panel setExtensionHidden:hideExtension]; + [panel setTreatsFilePackagesAsDirectories:treatsFilePackagesAsDirectories]; + [panel setAllowsOtherFileTypes:allowsOtherFileTypes]; + + + + if (window != NULL) { + [panel beginSheetModalForWindow:(__bridge NSWindow *)window completionHandler:^(NSInteger result) { + processOpenFileDialogResults(panel, result, dialogID); + }]; + } else { + [panel beginWithCompletionHandler:^(NSInteger result) { + processOpenFileDialogResults(panel, result, dialogID); + }]; + } + }); +} + +static void showSaveFileDialog(unsigned int dialogID, + bool canCreateDirectories, + bool showHiddenFiles, + bool canSelectHiddenExtension, + bool hideExtension, + bool treatsFilePackagesAsDirectories, + bool allowOtherFileTypes, + char* message, + char* directory, + char* buttonText, + char* filename, + void *window) { + + // run on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + NSSavePanel *panel = [NSSavePanel savePanel]; + + if (message != NULL) { + [panel setMessage:[NSString stringWithUTF8String:message]]; + free(message); + } + + if (directory != NULL) { + [panel setDirectoryURL:[NSURL fileURLWithPath:[NSString stringWithUTF8String:directory]]]; + free(directory); + } + + if (filename != NULL) { + [panel setNameFieldStringValue:[NSString stringWithUTF8String:filename]]; + free(filename); + } + + if (buttonText != NULL) { + [panel setPrompt:[NSString stringWithUTF8String:buttonText]]; + free(buttonText); + } + + [panel setCanCreateDirectories:canCreateDirectories]; + [panel setShowsHiddenFiles:showHiddenFiles]; + [panel setCanSelectHiddenExtension:canSelectHiddenExtension]; + [panel setExtensionHidden:hideExtension]; + [panel setTreatsFilePackagesAsDirectories:treatsFilePackagesAsDirectories]; + [panel setAllowsOtherFileTypes:allowOtherFileTypes]; + + if (window != NULL) { + [panel beginSheetModalForWindow:(__bridge NSWindow *)window completionHandler:^(NSInteger result) { + const char *path = NULL; + if (result == NSModalResponseOK) { + NSURL *url = [panel URL]; + const char *path = [[url path] UTF8String]; + } + saveFileDialogCallback(dialogID, (char *)path); + }]; + } else { + [panel beginWithCompletionHandler:^(NSInteger result) { + const char *path = NULL; + if (result == NSModalResponseOK) { + NSURL *url = [panel URL]; + const char *path = [[url path] UTF8String]; + } + saveFileDialogCallback(dialogID, (char *)path); + }]; + } + }); +} + +*/ +import "C" +import ( + "strings" + "unsafe" +) + +const NSAlertStyleWarning = C.int(0) +const NSAlertStyleInformational = C.int(1) +const NSAlertStyleCritical = C.int(2) + +var alertTypeMap = map[DialogType]C.int{ + WarningDialog: NSAlertStyleWarning, + InfoDialog: NSAlertStyleInformational, + ErrorDialog: NSAlertStyleCritical, + QuestionDialog: NSAlertStyleInformational, +} + +func (m *macosApp) showAboutDialog(title string, message string, icon []byte) { + var iconData unsafe.Pointer + if icon != nil { + iconData = unsafe.Pointer(&icon[0]) + } + C.showAboutBox(C.CString(title), C.CString(message), iconData, C.int(len(icon))) +} + +type macosDialog struct { + dialog *MessageDialog + + nsDialog unsafe.Pointer +} + +func (m *macosDialog) show() { + globalApplication.dispatchOnMainThread(func() { + + // Mac can only have 4 buttons on a dialog + if len(m.dialog.buttons) > 4 { + m.dialog.buttons = m.dialog.buttons[:4] + } + + if m.nsDialog != nil { + C.releaseDialog(m.nsDialog) + } + var title *C.char + if m.dialog.title != "" { + title = C.CString(m.dialog.title) + } + var message *C.char + if m.dialog.message != "" { + message = C.CString(m.dialog.message) + } + var iconData unsafe.Pointer + var iconLength C.int + if m.dialog.icon != nil { + iconData = unsafe.Pointer(&m.dialog.icon[0]) + iconLength = C.int(len(m.dialog.icon)) + } else { + // if it's an error, use the application icon + if m.dialog.dialogType == ErrorDialog { + iconData = unsafe.Pointer(&globalApplication.options.Icon[0]) + iconLength = C.int(len(globalApplication.options.Icon)) + } + } + + alertType, ok := alertTypeMap[m.dialog.dialogType] + if !ok { + alertType = C.NSAlertStyleInformational + } + + m.nsDialog = C.createAlert(alertType, title, message, iconData, iconLength) + + // Reverse the buttons so that the default is on the right + reversedButtons := make([]*Button, len(m.dialog.buttons)) + var count = 0 + for i := len(m.dialog.buttons) - 1; i >= 0; i-- { + button := m.dialog.buttons[i] + C.alertAddButton(m.nsDialog, C.CString(button.label), C.bool(button.isDefault), C.bool(button.isCancel)) + reversedButtons[count] = m.dialog.buttons[i] + count++ + } + + buttonPressed := int(C.dialogRunModal(m.nsDialog)) + if len(m.dialog.buttons) > buttonPressed { + button := reversedButtons[buttonPressed] + if button.callback != nil { + button.callback() + } + } + }) + +} + +func newDialogImpl(d *MessageDialog) *macosDialog { + return &macosDialog{ + dialog: d, + } +} + +type macosOpenFileDialog struct { + dialog *OpenFileDialog +} + +func newOpenFileDialogImpl(d *OpenFileDialog) *macosOpenFileDialog { + return &macosOpenFileDialog{ + dialog: d, + } +} + +func toCString(s string) *C.char { + if s == "" { + return nil + } + return C.CString(s) +} + +func (m *macosOpenFileDialog) show() ([]string, error) { + openFileResponses[m.dialog.id] = make(chan string) + nsWindow := unsafe.Pointer(nil) + if m.dialog.window != nil { + // get NSWindow from window + nsWindow = m.dialog.window.impl.(*macosWebviewWindow).nsWindow + } + + // Massage filter patterns into macOS format + // We iterate all filter patterns, tidy them up and then join them with a semicolon + // This should produce a single string of extensions like "png;jpg;gif" + var filterPatterns string + if len(m.dialog.filters) > 0 { + var allPatterns []string + for _, filter := range m.dialog.filters { + patternComponents := strings.Split(filter.pattern, ";") + for i, component := range patternComponents { + filterPattern := strings.TrimSpace(component) + filterPattern = strings.TrimPrefix(filterPattern, "*.") + patternComponents[i] = filterPattern + } + allPatterns = append(allPatterns, strings.Join(patternComponents, ";")) + } + filterPatterns = strings.Join(allPatterns, ";") + } + + C.showOpenFileDialog(C.uint(m.dialog.id), + C.bool(m.dialog.canChooseFiles), + C.bool(m.dialog.canChooseDirectories), + C.bool(m.dialog.canCreateDirectories), + C.bool(m.dialog.showHiddenFiles), + C.bool(m.dialog.allowsMultipleSelection), + C.bool(m.dialog.resolvesAliases), + C.bool(m.dialog.hideExtension), + C.bool(m.dialog.treatsFilePackagesAsDirectories), + C.bool(m.dialog.allowsOtherFileTypes), + toCString(filterPatterns), + C.uint(len(filterPatterns)), + toCString(m.dialog.message), + toCString(m.dialog.directory), + toCString(m.dialog.buttonText), + nsWindow) + var result []string + for filename := range openFileResponses[m.dialog.id] { + result = append(result, filename) + } + return result, nil +} + +//export openFileDialogCallback +func openFileDialogCallback(cid C.uint, cpath *C.char) { + path := C.GoString(cpath) + id := uint(cid) + channel, ok := openFileResponses[id] + if ok { + channel <- path + } else { + panic("No channel found for open file dialog") + } +} + +//export openFileDialogCallbackEnd +func openFileDialogCallbackEnd(cid C.uint) { + id := uint(cid) + channel, ok := openFileResponses[id] + if ok { + close(channel) + delete(openFileResponses, id) + freeDialogID(id) + } else { + panic("No channel found for open file dialog") + } +} + +type macosSaveFileDialog struct { + dialog *SaveFileDialog +} + +func newSaveFileDialogImpl(d *SaveFileDialog) *macosSaveFileDialog { + return &macosSaveFileDialog{ + dialog: d, + } +} + +func (m *macosSaveFileDialog) show() (string, error) { + saveFileResponses[m.dialog.id] = make(chan string) + nsWindow := unsafe.Pointer(nil) + if m.dialog.window != nil { + // get NSWindow from window + nsWindow = m.dialog.window.impl.(*macosWebviewWindow).nsWindow + } + C.showSaveFileDialog(C.uint(m.dialog.id), + C.bool(m.dialog.canCreateDirectories), + C.bool(m.dialog.showHiddenFiles), + C.bool(m.dialog.canSelectHiddenExtension), + C.bool(m.dialog.hideExtension), + C.bool(m.dialog.treatsFilePackagesAsDirectories), + C.bool(m.dialog.allowOtherFileTypes), + toCString(m.dialog.message), + toCString(m.dialog.directory), + toCString(m.dialog.buttonText), + toCString(m.dialog.filename), + nsWindow) + return <-saveFileResponses[m.dialog.id], nil +} + +//export saveFileDialogCallback +func saveFileDialogCallback(cid C.uint, cpath *C.char) { + // Covert the path to a string + path := C.GoString(cpath) + id := uint(cid) + // put response on channel + channel, ok := saveFileResponses[id] + if ok { + channel <- path + close(channel) + delete(saveFileResponses, id) + freeDialogID(id) + + } else { + panic("No channel found for save file dialog") + } +} diff --git a/v3/pkg/application/dialogs_delegate.h b/v3/pkg/application/dialogs_delegate.h new file mode 100644 index 00000000..07657f8b --- /dev/null +++ b/v3/pkg/application/dialogs_delegate.h @@ -0,0 +1,14 @@ +//go:build darwin + +#ifndef _DIALOGS_DELEGATE_H_ +#define _DIALOGS_DELEGATE_H_ + +#import +#import + +// create an NSOpenPanel delegate to handle the callback +@interface OpenPanelDelegate : NSObject +@property (nonatomic, strong) NSArray *allowedExtensions; +@end + +#endif \ No newline at end of file diff --git a/v3/pkg/application/dialogs_delegate.m b/v3/pkg/application/dialogs_delegate.m new file mode 100644 index 00000000..67f34e2e --- /dev/null +++ b/v3/pkg/application/dialogs_delegate.m @@ -0,0 +1,36 @@ +//go:build darwin + +#import "dialogs_delegate.h" + +// Override shouldEnableURL +@implementation OpenPanelDelegate +- (BOOL)panel:(id)sender shouldEnableURL:(NSURL *)url { + if (url == nil) { + return NO; + } + NSFileManager *fileManager = [NSFileManager defaultManager]; + BOOL isDirectory = NO; + if ([fileManager fileExistsAtPath:url.path isDirectory:&isDirectory] && isDirectory) { + return YES; + } + if (self.allowedExtensions == nil) { + return YES; + } + NSString *extension = url.pathExtension; + if (extension == nil) { + return NO; + } + if ([extension isEqualToString:@""]) { + return NO; + } + if ([self.allowedExtensions containsObject:extension]) { + return YES; + } + return NO; +} + +@end + + + + diff --git a/v3/pkg/application/errors.go b/v3/pkg/application/errors.go new file mode 100644 index 00000000..74714232 --- /dev/null +++ b/v3/pkg/application/errors.go @@ -0,0 +1,16 @@ +package application + +import ( + "fmt" + "os" +) + +func Fatal(message string, args ...interface{}) { + println("*********************** FATAL ***********************") + println("There has been a catastrophic failure in your application.") + println("Please report this error at https://github.com/wailsapp/wails/issues") + println("******************** Error Details ******************") + println(fmt.Sprintf(message, args...)) + println("*********************** FATAL ***********************") + os.Exit(1) +} diff --git a/v3/pkg/application/events.go b/v3/pkg/application/events.go new file mode 100644 index 00000000..e073fdeb --- /dev/null +++ b/v3/pkg/application/events.go @@ -0,0 +1,12 @@ +package application + +var applicationEvents = make(chan uint) + +type WindowEvent struct { + WindowID uint + EventID uint +} + +var windowEvents = make(chan *WindowEvent) + +var menuItemClicked = make(chan uint) diff --git a/v3/pkg/application/icons.go b/v3/pkg/application/icons.go new file mode 100644 index 00000000..13ef1f38 --- /dev/null +++ b/v3/pkg/application/icons.go @@ -0,0 +1,8 @@ +package application + +var DefaultApplicationIcon = []byte{137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 64, 0, 0, 0, 64, 8, 3, 0, 0, 0, 157, 183, 129, 236, 0, 0, 1, 2, 80, 76, 84, 69, 0, 0, 0, 255, 255, 255, 20, 20, 20, 14, 14, 14, 255, 255, 255, 9, 9, 9, 103, 103, 103, 255, 255, 255, 255, 255, 255, 185, 185, 185, 255, 255, 255, 16, 16, 16, 27, 27, 27, 2, 2, 2, 23, 23, 23, 62, 62, 62, 105, 105, 105, 12, 12, 12, 21, 21, 21, 36, 36, 36, 41, 41, 41, 51, 51, 51, 55, 55, 55, 78, 78, 78, 146, 146, 146, 226, 226, 226, 0, 0, 0, 225, 225, 225, 79, 79, 79, 17, 17, 17, 76, 76, 76, 221, 221, 221, 101, 101, 101, 64, 64, 64, 223, 223, 223, 217, 217, 217, 133, 133, 133, 104, 104, 104, 94, 94, 94, 6, 6, 6, 202, 202, 202, 198, 198, 198, 110, 110, 110, 97, 97, 97, 70, 70, 70, 55, 55, 55, 13, 13, 13, 211, 211, 211, 188, 188, 188, 176, 176, 176, 117, 117, 117, 91, 91, 91, 73, 73, 73, 34, 35, 34, 27, 27, 27, 21, 21, 21, 173, 173, 173, 166, 166, 166, 161, 162, 162, 150, 150, 150, 142, 143, 143, 136, 136, 136, 119, 119, 119, 90, 90, 90, 87, 87, 87, 50, 50, 50, 44, 44, 45, 41, 41, 41, 32, 32, 32, 4, 4, 4, 214, 214, 214, 178, 178, 178, 158, 158, 158, 153, 153, 153, 148, 148, 148, 123, 123, 123, 82, 82, 82, 67, 67, 67, 66, 66, 66, 208, 208, 208, 192, 192, 192, 190, 190, 190, 184, 184, 184, 127, 127, 127, 126, 126, 126, 60, 60, 61, 204, 47, 21, 237, 0, 0, 0, 26, 116, 82, 78, 83, 0, 12, 195, 213, 16, 227, 64, 19, 14, 29, 9, 198, 164, 248, 176, 96, 59, 213, 184, 145, 130, 110, 106, 78, 37, 20, 109, 186, 18, 188, 0, 0, 2, 46, 73, 68, 65, 84, 88, 195, 237, 150, 123, 83, 26, 49, 20, 197, 89, 107, 91, 10, 84, 251, 126, 220, 128, 91, 150, 151, 96, 65, 64, 121, 169, 80, 68, 169, 90, 31, 125, 233, 247, 255, 42, 206, 238, 222, 51, 73, 112, 38, 201, 50, 227, 140, 227, 120, 254, 217, 61, 155, 156, 223, 228, 113, 179, 147, 212, 147, 30, 153, 50, 158, 187, 50, 119, 227, 95, 63, 174, 173, 184, 43, 247, 217, 91, 200, 191, 202, 82, 50, 189, 79, 235, 195, 207, 81, 82, 173, 235, 3, 120, 157, 24, 176, 162, 77, 226, 13, 37, 214, 243, 85, 21, 240, 98, 9, 192, 203, 251, 1, 52, 243, 172, 89, 232, 10, 108, 250, 161, 233, 161, 169, 104, 2, 236, 11, 214, 255, 208, 109, 177, 201, 135, 230, 0, 77, 101, 3, 64, 246, 234, 134, 110, 196, 102, 35, 52, 155, 104, 106, 154, 0, 101, 244, 170, 132, 51, 240, 21, 192, 17, 90, 234, 100, 2, 156, 163, 91, 149, 136, 242, 66, 1, 124, 131, 153, 24, 1, 93, 116, 155, 98, 65, 0, 216, 131, 57, 50, 2, 26, 74, 166, 246, 19, 102, 87, 49, 109, 50, 1, 228, 64, 139, 68, 69, 161, 0, 154, 120, 111, 152, 1, 59, 202, 82, 151, 37, 64, 206, 45, 232, 155, 1, 23, 200, 204, 148, 125, 19, 223, 137, 78, 248, 117, 72, 102, 192, 6, 50, 61, 58, 20, 10, 160, 16, 96, 119, 44, 128, 75, 100, 250, 52, 81, 1, 0, 251, 3, 11, 224, 6, 153, 22, 181, 85, 192, 152, 223, 246, 200, 2, 192, 184, 131, 121, 47, 122, 198, 235, 112, 73, 117, 254, 126, 97, 3, 160, 96, 75, 84, 137, 158, 241, 78, 92, 29, 227, 115, 203, 6, 64, 207, 109, 26, 70, 3, 248, 17, 23, 69, 149, 63, 255, 34, 27, 160, 143, 19, 51, 240, 163, 1, 48, 224, 12, 139, 97, 5, 20, 80, 176, 211, 56, 25, 3, 174, 182, 121, 92, 53, 43, 160, 197, 251, 221, 57, 141, 2, 243, 184, 50, 113, 66, 198, 100, 5, 212, 124, 6, 148, 226, 41, 199, 128, 33, 234, 219, 14, 160, 18, 23, 12, 31, 201, 170, 226, 68, 125, 238, 0, 248, 45, 164, 74, 45, 6, 176, 206, 201, 14, 224, 138, 65, 217, 233, 128, 153, 11, 224, 143, 18, 216, 225, 255, 50, 235, 47, 185, 0, 254, 201, 64, 48, 208, 1, 13, 39, 64, 71, 6, 58, 164, 1, 130, 99, 39, 192, 72, 38, 42, 252, 139, 99, 157, 144, 19, 224, 84, 38, 122, 58, 96, 203, 13, 176, 47, 160, 54, 105, 0, 127, 224, 6, 56, 16, 208, 68, 7, 140, 200, 13, 48, 22, 208, 161, 14, 152, 58, 2, 174, 17, 216, 140, 108, 69, 86, 165, 35, 160, 139, 68, 89, 7, 156, 145, 35, 160, 129, 68, 81, 7, 236, 186, 2, 106, 5, 214, 162, 189, 11, 120, 88, 151, 172, 229, 239, 137, 203, 223, 84, 179, 158, 10, 240, 214, 18, 3, 62, 165, 52, 125, 121, 155, 48, 159, 75, 47, 222, 247, 63, 100, 159, 185, 235, 221, 58, 231, 85, 121, 233, 85, 87, 165, 51, 169, 39, 61, 36, 221, 2, 115, 72, 10, 51, 166, 156, 57, 80, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130} +var DefaultMacTemplateIcon = []byte{137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 64, 0, 0, 0, 64, 8, 3, 0, 0, 0, 157, 183, 129, 236, 0, 0, 0, 135, 80, 76, 84, 69, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 106, 145, 255, 17, 0, 0, 0, 45, 116, 82, 78, 83, 0, 225, 11, 16, 14, 7, 26, 18, 79, 65, 23, 221, 100, 91, 176, 74, 217, 118, 95, 34, 20, 211, 201, 133, 104, 69, 149, 110, 53, 189, 167, 161, 125, 86, 76, 45, 198, 154, 143, 136, 57, 41, 185, 203, 192, 69, 76, 133, 225, 0, 0, 1, 243, 73, 68, 65, 84, 88, 195, 237, 214, 109, 111, 130, 48, 16, 7, 240, 107, 41, 34, 48, 31, 65, 116, 62, 59, 231, 220, 220, 190, 255, 231, 155, 216, 187, 28, 213, 164, 61, 98, 150, 152, 197, 255, 27, 57, 219, 254, 44, 133, 34, 240, 204, 63, 139, 110, 145, 248, 118, 120, 146, 69, 70, 158, 40, 211, 224, 166, 212, 208, 46, 165, 113, 167, 159, 64, 219, 100, 158, 74, 20, 227, 204, 185, 211, 30, 136, 163, 123, 129, 228, 111, 128, 101, 23, 179, 175, 171, 8, 139, 75, 115, 65, 77, 169, 15, 152, 43, 204, 182, 174, 198, 88, 116, 235, 226, 131, 154, 166, 30, 128, 123, 141, 234, 106, 141, 197, 91, 93, 124, 83, 211, 210, 7, 76, 169, 215, 172, 62, 131, 188, 1, 124, 81, 203, 187, 119, 13, 182, 212, 109, 124, 46, 186, 84, 12, 206, 197, 11, 207, 205, 7, 140, 168, 219, 142, 22, 132, 128, 13, 21, 95, 94, 96, 161, 120, 214, 241, 164, 1, 196, 67, 60, 62, 121, 47, 35, 79, 52, 5, 72, 85, 3, 248, 164, 227, 133, 31, 232, 53, 150, 122, 202, 64, 227, 220, 58, 126, 96, 71, 253, 246, 0, 149, 162, 188, 2, 244, 241, 176, 15, 126, 96, 64, 99, 10, 216, 43, 6, 248, 138, 142, 3, 64, 202, 51, 29, 53, 1, 130, 243, 210, 15, 240, 90, 25, 88, 53, 129, 35, 30, 109, 130, 155, 137, 198, 64, 113, 249, 168, 16, 120, 167, 93, 225, 7, 248, 134, 29, 194, 204, 110, 28, 123, 77, 11, 250, 90, 135, 0, 234, 57, 177, 203, 94, 245, 44, 64, 87, 119, 14, 33, 160, 67, 59, 166, 204, 47, 19, 64, 224, 64, 139, 17, 4, 18, 236, 185, 218, 217, 145, 8, 76, 112, 94, 113, 16, 208, 116, 191, 28, 236, 0, 11, 208, 14, 57, 66, 16, 136, 115, 4, 134, 246, 148, 45, 64, 15, 150, 207, 48, 0, 184, 233, 172, 243, 134, 0, 170, 21, 8, 128, 137, 226, 12, 13, 62, 21, 49, 91, 9, 80, 41, 206, 6, 92, 96, 47, 1, 126, 20, 167, 231, 2, 43, 144, 0, 39, 30, 144, 103, 46, 176, 16, 1, 125, 30, 208, 199, 39, 20, 165, 16, 1, 107, 30, 48, 35, 128, 60, 17, 176, 105, 252, 162, 11, 188, 200, 128, 185, 187, 102, 12, 228, 153, 12, 248, 80, 148, 145, 11, 172, 65, 6, 28, 21, 101, 233, 2, 187, 48, 192, 255, 109, 124, 223, 206, 248, 174, 148, 1, 252, 40, 157, 186, 192, 1, 132, 192, 130, 70, 164, 46, 48, 144, 2, 113, 132, 185, 46, 111, 129, 199, 122, 201, 202, 238, 124, 79, 188, 255, 77, 85, 71, 173, 129, 236, 206, 183, 245, 196, 192, 149, 80, 26, 45, 143, 201, 204, 237, 162, 104, 19, 73, 99, 52, 60, 243, 72, 249, 5, 251, 207, 25, 192, 218, 106, 27, 249, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130} +var WailsLogoBlack = []byte{137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 128, 0, 0, 0, 128, 8, 3, 0, 0, 0, 244, 224, 145, 249, 0, 0, 3, 0, 80, 76, 84, 69, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 254, 254, 254, 8, 1, 1, 227, 49, 49, 255, 255, 255, 5, 5, 5, 0, 0, 0, 6, 1, 1, 203, 44, 44, 227, 50, 50, 35, 6, 6, 160, 22, 29, 244, 53, 53, 150, 17, 26, 234, 51, 51, 36, 6, 6, 7, 1, 1, 59, 10, 12, 255, 255, 255, 6, 5, 5, 13, 2, 2, 23, 4, 4, 212, 212, 212, 15, 2, 2, 234, 51, 51, 188, 35, 38, 171, 27, 33, 78, 17, 17, 240, 52, 52, 231, 231, 231, 51, 8, 10, 26, 26, 26, 76, 76, 76, 163, 163, 163, 171, 30, 34, 218, 42, 45, 210, 42, 44, 214, 45, 46, 23, 23, 23, 13, 13, 13, 195, 41, 42, 225, 49, 49, 135, 25, 28, 42, 7, 8, 66, 13, 14, 148, 29, 31, 111, 23, 23, 154, 154, 154, 225, 48, 48, 204, 39, 42, 198, 38, 41, 146, 28, 30, 131, 12, 21, 105, 17, 20, 186, 35, 38, 139, 139, 139, 88, 12, 16, 48, 7, 9, 186, 30, 36, 5, 5, 5, 219, 47, 47, 183, 31, 36, 35, 35, 35, 247, 246, 246, 209, 44, 45, 253, 252, 252, 116, 116, 116, 118, 23, 24, 11, 2, 2, 77, 14, 15, 126, 23, 25, 33, 5, 6, 253, 55, 55, 128, 5, 17, 55, 9, 10, 242, 242, 242, 145, 15, 24, 27, 4, 5, 238, 238, 238, 225, 225, 225, 179, 29, 35, 179, 179, 179, 20, 3, 3, 171, 34, 36, 40, 40, 40, 166, 33, 35, 89, 18, 18, 235, 235, 235, 207, 207, 207, 93, 93, 93, 43, 8, 9, 53, 8, 10, 230, 46, 48, 196, 33, 38, 115, 4, 16, 194, 194, 194, 60, 60, 60, 140, 18, 25, 170, 170, 170, 103, 103, 103, 160, 34, 34, 99, 20, 21, 135, 28, 29, 72, 14, 15, 146, 146, 146, 148, 30, 31, 206, 36, 40, 12, 12, 12, 64, 10, 12, 22, 3, 4, 191, 34, 38, 163, 23, 30, 163, 30, 33, 72, 11, 13, 217, 47, 47, 47, 47, 47, 153, 22, 28, 216, 216, 216, 156, 28, 32, 221, 221, 221, 51, 51, 51, 96, 17, 19, 178, 36, 38, 104, 17, 20, 38, 4, 6, 141, 26, 29, 222, 47, 48, 68, 68, 68, 131, 131, 131, 87, 87, 87, 114, 13, 19, 202, 202, 202, 24, 3, 4, 229, 229, 229, 189, 189, 189, 148, 148, 148, 91, 8, 15, 100, 17, 20, 125, 10, 19, 203, 40, 43, 145, 20, 27, 62, 62, 62, 191, 39, 41, 104, 20, 22, 194, 194, 194, 173, 173, 173, 85, 15, 17, 203, 203, 203, 206, 19, 21, 198, 198, 198, 159, 159, 159, 163, 24, 30, 126, 126, 126, 212, 44, 45, 108, 108, 108, 248, 248, 248, 134, 25, 27, 129, 23, 26, 141, 26, 29, 186, 116, 121, 64, 8, 12, 99, 16, 19, 250, 234, 235, 227, 80, 80, 227, 201, 204, 224, 103, 104, 35, 35, 35, 243, 187, 187, 163, 73, 80, 114, 114, 114, 183, 183, 183, 10, 0, 1, 255, 238, 238, 146, 40, 50, 212, 71, 73, 230, 148, 149, 0, 0, 0, 203, 53, 56, 86, 14, 17, 0, 0, 0, 227, 50, 50, 255, 255, 255, 5, 1, 1, 224, 48, 49, 216, 45, 46, 221, 47, 48, 218, 46, 47, 214, 44, 46, 210, 43, 45, 4, 4, 4, 2, 2, 2, 205, 41, 43, 225, 49, 49, 194, 36, 40, 212, 44, 45, 222, 48, 48, 184, 32, 36, 209, 42, 44, 219, 47, 47, 198, 37, 41, 177, 29, 34, 188, 34, 38, 192, 35, 39, 202, 39, 42, 204, 40, 42, 200, 39, 41, 251, 251, 251, 187, 33, 37, 180, 30, 35, 172, 27, 33, 182, 31, 36, 218, 48, 48, 247, 54, 54, 236, 51, 52, 229, 50, 50, 207, 41, 43, 190, 34, 38, 175, 28, 33, 129, 8, 19, 8, 8, 8, 196, 36, 40, 169, 25, 31, 245, 245, 245, 154, 34, 34, 164, 24, 30, 154, 19, 27, 133, 9, 20, 231, 50, 50, 167, 24, 31, 135, 11, 21, 120, 5, 17, 240, 52, 52, 125, 7, 18, 170, 26, 32, 141, 14, 23, 137, 12, 22, 214, 41, 44, 157, 20, 28, 145, 15, 24, 190, 31, 37, 211, 42, 44, 223, 43, 46, 203, 36, 40, 148, 31, 32, 173, 26, 32, 162, 22, 29, 199, 35, 40, 220, 43, 46, 210, 37, 40, 183, 27, 34, 153, 33, 33, 124, 0, 8, 252, 54, 55, 29, 193, 86, 184, 0, 0, 0, 182, 116, 82, 78, 83, 254, 251, 225, 249, 254, 254, 254, 249, 244, 246, 247, 245, 249, 248, 254, 254, 254, 254, 241, 251, 241, 246, 246, 246, 241, 239, 252, 250, 247, 247, 247, 251, 247, 243, 242, 241, 235, 230, 254, 250, 249, 248, 246, 244, 243, 242, 242, 241, 240, 240, 237, 252, 250, 247, 245, 244, 243, 241, 240, 233, 252, 251, 250, 249, 248, 248, 247, 245, 244, 243, 242, 242, 241, 239, 230, 251, 250, 249, 248, 247, 246, 245, 245, 245, 244, 244, 243, 242, 242, 242, 239, 237, 235, 235, 233, 254, 251, 251, 245, 245, 244, 243, 242, 240, 238, 236, 236, 235, 234, 253, 253, 252, 249, 248, 248, 246, 246, 245, 245, 245, 243, 243, 242, 240, 240, 239, 254, 254, 253, 250, 247, 246, 242, 241, 238, 234, 231, 231, 249, 249, 248, 248, 241, 239, 236, 235, 235, 234, 230, 226, 253, 252, 247, 246, 239, 236, 236, 235, 234, 229, 224, 220, 234, 224, 223, 246, 246, 243, 240, 239, 234, 234, 224, 223, 211, 248, 247, 244, 239, 229, 215, 214, 81, 124, 11, 18, 0, 0, 15, 238, 73, 68, 65, 84, 120, 218, 236, 152, 107, 72, 83, 97, 24, 199, 223, 211, 216, 106, 43, 117, 46, 73, 209, 173, 240, 131, 115, 160, 203, 162, 108, 134, 137, 146, 161, 89, 138, 129, 40, 245, 65, 81, 8, 180, 40, 74, 51, 36, 232, 250, 33, 250, 208, 141, 130, 8, 34, 232, 126, 161, 160, 123, 59, 109, 78, 151, 59, 187, 232, 212, 57, 156, 171, 188, 49, 97, 115, 154, 121, 77, 69, 187, 16, 61, 239, 57, 59, 30, 187, 88, 218, 205, 47, 253, 81, 16, 207, 129, 255, 239, 125, 222, 231, 242, 190, 7, 205, 81, 19, 234, 217, 212, 127, 128, 255, 0, 255, 1, 254, 3, 252, 7, 248, 71, 0, 104, 118, 1, 16, 31, 126, 103, 17, 64, 163, 81, 7, 75, 166, 66, 248, 251, 0, 176, 124, 34, 102, 7, 0, 168, 103, 7, 0, 150, 191, 104, 91, 244, 226, 41, 2, 240, 215, 1, 144, 6, 150, 31, 181, 49, 5, 169, 53, 234, 217, 0, 128, 85, 103, 239, 8, 123, 185, 143, 167, 230, 171, 103, 1, 0, 85, 169, 137, 245, 201, 1, 61, 81, 217, 106, 62, 154, 5, 0, 240, 12, 137, 8, 120, 229, 77, 140, 81, 107, 102, 167, 15, 8, 139, 162, 95, 82, 100, 216, 114, 2, 88, 254, 53, 0, 68, 31, 73, 14, 108, 12, 52, 147, 175, 10, 133, 120, 3, 48, 67, 213, 191, 2, 64, 8, 220, 68, 203, 23, 188, 212, 106, 201, 87, 243, 179, 185, 4, 252, 123, 0, 8, 49, 63, 85, 88, 154, 42, 88, 126, 208, 153, 141, 222, 26, 146, 244, 42, 194, 241, 83, 2, 17, 66, 132, 178, 119, 31, 202, 205, 221, 13, 239, 253, 62, 0, 226, 60, 17, 237, 249, 21, 76, 112, 90, 216, 75, 221, 10, 146, 36, 155, 183, 137, 114, 243, 50, 182, 159, 59, 158, 178, 163, 108, 79, 68, 97, 218, 245, 188, 96, 244, 7, 34, 128, 144, 70, 163, 249, 42, 232, 4, 15, 241, 230, 45, 12, 61, 22, 114, 72, 146, 23, 127, 102, 99, 243, 11, 18, 251, 39, 151, 149, 100, 37, 189, 29, 29, 144, 239, 148, 238, 75, 217, 181, 155, 248, 115, 91, 128, 64, 60, 33, 18, 166, 134, 134, 30, 243, 59, 148, 23, 180, 107, 125, 252, 241, 19, 105, 39, 79, 158, 206, 28, 186, 112, 113, 73, 143, 121, 5, 246, 23, 40, 100, 181, 111, 223, 214, 39, 200, 148, 251, 195, 131, 121, 4, 194, 131, 1, 253, 9, 0, 209, 134, 9, 207, 163, 5, 5, 42, 85, 103, 102, 230, 144, 88, 236, 1, 13, 122, 196, 171, 19, 189, 100, 13, 137, 69, 81, 249, 31, 19, 100, 167, 227, 130, 66, 132, 216, 67, 195, 231, 220, 127, 19, 96, 81, 124, 122, 65, 122, 122, 123, 123, 39, 86, 183, 79, 253, 253, 253, 125, 125, 253, 251, 78, 45, 32, 205, 102, 198, 63, 240, 212, 233, 184, 24, 63, 17, 161, 198, 238, 26, 244, 39, 199, 241, 238, 130, 55, 5, 175, 105, 189, 121, 243, 6, 147, 116, 131, 121, 223, 80, 95, 230, 234, 196, 102, 202, 76, 9, 40, 240, 215, 6, 22, 30, 19, 17, 104, 10, 243, 223, 173, 130, 77, 39, 95, 23, 48, 246, 237, 96, 15, 254, 24, 160, 255, 194, 41, 1, 44, 95, 75, 81, 20, 246, 143, 74, 85, 131, 176, 249, 95, 232, 3, 40, 60, 29, 251, 115, 0, 96, 159, 185, 250, 8, 105, 214, 105, 181, 0, 32, 32, 169, 230, 232, 60, 110, 233, 127, 161, 17, 17, 165, 221, 92, 0, 112, 4, 186, 47, 36, 11, 180, 58, 179, 150, 6, 32, 5, 100, 216, 89, 110, 4, 252, 149, 78, 184, 240, 120, 39, 11, 0, 9, 216, 9, 203, 167, 106, 106, 124, 0, 2, 129, 246, 213, 14, 33, 156, 65, 126, 21, 224, 167, 232, 56, 178, 217, 71, 59, 95, 183, 99, 125, 250, 212, 174, 186, 144, 76, 213, 84, 232, 116, 58, 179, 153, 142, 128, 182, 71, 26, 12, 254, 51, 7, 64, 124, 62, 193, 19, 206, 35, 112, 251, 6, 253, 120, 19, 36, 39, 219, 95, 127, 250, 244, 41, 253, 193, 213, 171, 79, 228, 84, 57, 172, 31, 0, 24, 127, 60, 2, 52, 232, 87, 0, 54, 169, 182, 166, 93, 186, 124, 244, 224, 193, 184, 179, 215, 175, 199, 239, 42, 45, 141, 217, 126, 45, 239, 208, 33, 63, 137, 100, 195, 177, 208, 208, 80, 209, 162, 212, 121, 72, 13, 112, 60, 30, 82, 19, 185, 233, 111, 148, 119, 175, 222, 90, 119, 231, 230, 200, 139, 242, 138, 10, 6, 0, 139, 92, 80, 132, 112, 6, 254, 194, 22, 160, 12, 255, 177, 241, 142, 177, 177, 177, 218, 90, 199, 199, 143, 31, 45, 9, 9, 197, 197, 197, 78, 75, 130, 116, 245, 153, 51, 189, 189, 178, 156, 136, 136, 136, 195, 135, 15, 43, 183, 93, 186, 28, 119, 240, 68, 220, 221, 91, 55, 230, 62, 187, 127, 251, 252, 7, 5, 248, 87, 112, 17, 104, 142, 141, 11, 23, 209, 37, 56, 243, 28, 64, 126, 153, 227, 98, 104, 169, 131, 254, 32, 183, 187, 171, 163, 183, 169, 13, 96, 156, 150, 186, 214, 122, 151, 235, 221, 104, 67, 203, 240, 192, 192, 128, 252, 253, 251, 145, 17, 106, 228, 230, 141, 103, 107, 31, 37, 159, 127, 145, 88, 201, 1, 128, 200, 72, 177, 71, 166, 138, 73, 5, 123, 254, 47, 148, 225, 26, 79, 151, 103, 124, 124, 220, 221, 213, 213, 1, 238, 77, 109, 224, 95, 235, 112, 56, 19, 18, 156, 22, 139, 165, 14, 4, 40, 245, 70, 163, 203, 101, 181, 157, 127, 120, 7, 150, 159, 88, 89, 89, 14, 0, 19, 57, 72, 30, 41, 233, 22, 123, 198, 146, 246, 109, 145, 16, 184, 13, 206, 16, 0, 8, 6, 59, 60, 254, 227, 110, 32, 96, 0, 176, 63, 152, 55, 54, 214, 181, 50, 214, 86, 171, 221, 214, 208, 96, 48, 24, 244, 45, 59, 63, 84, 42, 76, 12, 0, 36, 33, 179, 3, 130, 172, 118, 177, 103, 208, 191, 203, 146, 159, 149, 178, 148, 7, 81, 208, 160, 153, 1, 32, 76, 224, 198, 225, 159, 12, 192, 16, 176, 0, 118, 155, 13, 8, 90, 244, 38, 147, 105, 216, 4, 254, 44, 0, 16, 144, 177, 233, 125, 98, 241, 160, 187, 183, 169, 214, 245, 33, 118, 85, 204, 34, 64, 224, 207, 100, 22, 32, 32, 240, 239, 29, 252, 14, 64, 29, 7, 0, 254, 24, 160, 90, 175, 215, 211, 1, 96, 139, 192, 12, 9, 160, 234, 28, 26, 242, 248, 187, 155, 106, 157, 150, 86, 195, 123, 69, 206, 150, 84, 60, 138, 103, 116, 59, 6, 130, 49, 127, 102, 7, 32, 5, 113, 14, 50, 91, 80, 199, 248, 51, 0, 6, 12, 80, 173, 55, 49, 59, 48, 1, 144, 88, 246, 166, 175, 79, 76, 3, 88, 234, 140, 46, 123, 165, 96, 65, 212, 242, 16, 2, 16, 102, 52, 142, 215, 184, 219, 152, 44, 156, 148, 134, 190, 60, 0, 6, 216, 130, 9, 0, 253, 23, 0, 218, 21, 178, 130, 238, 254, 33, 0, 232, 162, 1, 108, 134, 106, 147, 206, 251, 106, 175, 146, 78, 6, 52, 109, 0, 32, 216, 179, 58, 43, 43, 43, 41, 33, 161, 177, 241, 109, 125, 126, 126, 254, 187, 119, 163, 163, 59, 119, 182, 128, 101, 245, 240, 176, 205, 138, 183, 224, 123, 17, 16, 72, 11, 218, 89, 0, 135, 165, 213, 101, 51, 232, 203, 43, 106, 4, 129, 61, 11, 10, 99, 132, 184, 49, 76, 23, 0, 169, 67, 54, 108, 200, 205, 13, 15, 207, 88, 179, 102, 77, 198, 185, 167, 231, 206, 197, 239, 223, 127, 226, 32, 116, 200, 43, 87, 174, 236, 136, 173, 182, 114, 57, 48, 25, 128, 74, 62, 249, 186, 179, 187, 111, 72, 60, 56, 222, 209, 230, 176, 212, 27, 49, 64, 141, 25, 247, 166, 158, 176, 213, 235, 1, 65, 141, 190, 5, 224, 205, 232, 32, 192, 227, 17, 68, 248, 202, 1, 43, 222, 2, 122, 7, 38, 85, 161, 54, 81, 166, 242, 1, 184, 59, 218, 156, 141, 70, 123, 67, 181, 169, 66, 167, 37, 177, 154, 123, 2, 78, 21, 225, 230, 132, 166, 57, 142, 159, 35, 172, 137, 171, 78, 149, 79, 106, 172, 140, 149, 3, 118, 22, 160, 210, 7, 160, 171, 209, 173, 144, 14, 150, 168, 218, 251, 251, 134, 60, 80, 133, 181, 206, 198, 122, 91, 165, 110, 133, 192, 27, 248, 106, 9, 86, 96, 96, 192, 198, 232, 109, 146, 175, 139, 238, 30, 63, 56, 52, 116, 33, 136, 199, 227, 137, 68, 11, 69, 172, 126, 120, 156, 0, 130, 114, 187, 1, 50, 2, 0, 184, 54, 160, 141, 245, 119, 119, 148, 165, 247, 251, 170, 208, 146, 180, 45, 38, 99, 87, 233, 226, 73, 42, 93, 124, 98, 123, 234, 215, 0, 126, 215, 226, 227, 142, 170, 84, 91, 105, 157, 62, 189, 108, 95, 225, 230, 205, 57, 57, 7, 138, 160, 114, 126, 72, 32, 183, 227, 28, 228, 0, 42, 180, 145, 37, 227, 80, 55, 101, 157, 108, 17, 180, 22, 175, 10, 18, 254, 236, 176, 129, 30, 171, 121, 68, 176, 36, 232, 248, 81, 149, 184, 107, 236, 227, 91, 16, 20, 154, 181, 97, 88, 113, 246, 199, 4, 187, 26, 228, 54, 253, 36, 128, 10, 115, 98, 150, 127, 71, 71, 83, 147, 44, 179, 143, 173, 66, 251, 251, 176, 168, 229, 18, 4, 61, 128, 147, 102, 138, 171, 25, 33, 20, 102, 47, 45, 221, 159, 86, 38, 75, 106, 117, 185, 92, 198, 122, 107, 228, 89, 248, 176, 242, 35, 2, 133, 220, 62, 169, 17, 234, 142, 72, 253, 59, 232, 190, 37, 203, 20, 15, 194, 159, 184, 8, 140, 182, 145, 192, 249, 105, 208, 3, 166, 60, 29, 48, 85, 192, 94, 245, 16, 1, 20, 219, 227, 148, 155, 165, 43, 203, 223, 143, 8, 224, 203, 194, 243, 41, 174, 101, 176, 20, 226, 92, 244, 136, 193, 196, 1, 196, 186, 25, 127, 135, 83, 70, 23, 129, 163, 177, 222, 218, 208, 98, 208, 55, 7, 68, 47, 163, 123, 0, 31, 253, 168, 19, 34, 196, 81, 240, 130, 253, 130, 138, 148, 133, 81, 209, 151, 133, 220, 134, 177, 239, 240, 225, 53, 166, 20, 136, 107, 23, 203, 171, 77, 62, 0, 93, 164, 172, 11, 252, 233, 174, 157, 80, 226, 113, 247, 182, 57, 49, 64, 53, 174, 144, 192, 128, 176, 156, 248, 96, 14, 97, 170, 50, 228, 40, 64, 4, 33, 10, 9, 143, 63, 6, 0, 236, 191, 153, 39, 204, 51, 158, 40, 91, 18, 180, 126, 255, 153, 247, 44, 64, 141, 34, 169, 11, 183, 108, 122, 110, 183, 38, 149, 184, 155, 218, 156, 117, 70, 12, 0, 109, 192, 108, 246, 6, 44, 129, 129, 128, 48, 194, 148, 0, 223, 82, 128, 24, 227, 42, 182, 7, 17, 194, 96, 73, 120, 204, 150, 229, 202, 85, 57, 210, 83, 43, 19, 229, 250, 106, 182, 13, 188, 40, 238, 98, 166, 22, 30, 23, 245, 198, 164, 146, 94, 60, 9, 236, 6, 26, 0, 174, 73, 230, 230, 158, 37, 201, 202, 92, 176, 226, 79, 243, 251, 192, 36, 10, 130, 71, 164, 238, 206, 13, 138, 143, 75, 91, 181, 39, 75, 26, 187, 50, 114, 120, 0, 107, 88, 15, 98, 27, 97, 108, 47, 187, 124, 60, 173, 92, 249, 73, 62, 0, 61, 13, 0, 162, 204, 100, 79, 64, 244, 62, 92, 150, 252, 233, 127, 33, 65, 161, 75, 243, 74, 139, 142, 42, 203, 54, 103, 73, 243, 173, 54, 251, 232, 168, 29, 132, 207, 35, 204, 56, 100, 59, 113, 69, 164, 108, 204, 193, 46, 31, 138, 216, 106, 139, 58, 0, 57, 232, 178, 1, 64, 141, 153, 34, 105, 9, 180, 100, 96, 79, 216, 129, 245, 244, 76, 154, 238, 205, 40, 116, 235, 78, 7, 238, 12, 173, 117, 220, 97, 208, 200, 29, 71, 216, 78, 172, 72, 106, 114, 56, 28, 190, 229, 27, 1, 208, 16, 123, 101, 207, 187, 58, 43, 51, 138, 40, 48, 247, 33, 80, 176, 19, 81, 69, 208, 11, 171, 208, 180, 0, 128, 224, 176, 177, 201, 193, 28, 136, 184, 3, 25, 119, 28, 193, 4, 176, 3, 197, 240, 142, 147, 243, 135, 199, 166, 148, 120, 104, 38, 13, 45, 166, 114, 157, 153, 244, 122, 155, 89, 145, 164, 183, 39, 96, 111, 202, 38, 52, 237, 187, 97, 72, 132, 177, 141, 61, 15, 77, 6, 96, 8, 32, 194, 90, 193, 138, 149, 109, 181, 240, 10, 216, 51, 143, 225, 97, 131, 60, 39, 68, 41, 55, 54, 84, 3, 0, 117, 68, 145, 184, 224, 11, 133, 45, 129, 153, 132, 166, 5, 128, 212, 104, 67, 132, 171, 118, 2, 192, 200, 0, 128, 108, 116, 130, 235, 20, 210, 194, 229, 65, 251, 243, 157, 206, 198, 137, 240, 211, 209, 49, 69, 6, 101, 23, 15, 219, 241, 59, 212, 197, 203, 75, 119, 111, 242, 155, 172, 77, 126, 25, 211, 4, 192, 95, 60, 55, 68, 188, 171, 229, 142, 196, 32, 60, 229, 7, 228, 242, 200, 216, 28, 229, 150, 165, 248, 27, 136, 48, 101, 212, 210, 200, 44, 31, 236, 153, 228, 88, 145, 198, 91, 127, 164, 133, 174, 66, 111, 216, 234, 45, 162, 95, 190, 158, 35, 13, 38, 248, 204, 174, 185, 252, 52, 17, 196, 113, 124, 38, 174, 84, 164, 166, 41, 143, 182, 1, 12, 175, 42, 65, 16, 75, 193, 70, 56, 152, 240, 8, 66, 72, 8, 120, 144, 34, 68, 14, 36, 42, 207, 152, 16, 12, 1, 73, 56, 233, 149, 40, 49, 49, 106, 248, 47, 102, 183, 11, 145, 214, 202, 74, 137, 138, 104, 210, 199, 5, 131, 135, 30, 122, 241, 32, 112, 49, 6, 127, 211, 97, 186, 45, 22, 221, 88, 123, 210, 111, 160, 205, 46, 179, 251, 253, 252, 126, 251, 155, 157, 71, 248, 72, 167, 196, 180, 18, 97, 142, 3, 75, 163, 242, 139, 179, 142, 154, 92, 203, 49, 122, 37, 188, 27, 201, 73, 219, 183, 215, 44, 252, 88, 223, 80, 102, 205, 216, 182, 3, 0, 10, 236, 86, 24, 58, 38, 219, 171, 161, 49, 29, 138, 92, 76, 90, 139, 80, 37, 128, 36, 188, 93, 31, 91, 43, 175, 131, 13, 191, 222, 106, 51, 70, 204, 28, 193, 55, 66, 119, 38, 190, 190, 97, 181, 17, 157, 166, 65, 207, 240, 149, 151, 144, 174, 74, 121, 53, 218, 9, 148, 229, 96, 160, 202, 118, 3, 140, 84, 103, 141, 0, 156, 96, 247, 195, 167, 221, 177, 186, 66, 231, 249, 123, 185, 93, 153, 204, 28, 162, 81, 111, 150, 93, 248, 229, 213, 59, 150, 126, 218, 47, 64, 25, 173, 152, 12, 235, 125, 62, 217, 43, 130, 106, 253, 198, 64, 129, 179, 205, 196, 7, 4, 237, 0, 156, 160, 238, 180, 173, 166, 173, 218, 124, 140, 5, 206, 205, 213, 90, 205, 173, 92, 123, 79, 195, 135, 236, 179, 57, 170, 56, 107, 34, 184, 61, 178, 228, 5, 0, 134, 16, 10, 20, 213, 223, 182, 16, 226, 1, 4, 205, 0, 188, 18, 31, 92, 224, 129, 67, 4, 220, 92, 149, 139, 228, 79, 236, 172, 179, 240, 95, 176, 85, 146, 119, 178, 132, 16, 115, 125, 196, 47, 114, 201, 203, 33, 67, 81, 86, 107, 54, 31, 16, 180, 3, 0, 1, 179, 57, 122, 215, 43, 103, 238, 236, 198, 75, 30, 62, 216, 43, 203, 74, 248, 18, 180, 45, 209, 135, 21, 49, 14, 65, 132, 215, 144, 35, 151, 47, 82, 52, 3, 0, 1, 247, 78, 174, 227, 142, 12, 88, 43, 67, 245, 113, 127, 89, 86, 140, 215, 192, 7, 215, 116, 200, 34, 23, 27, 147, 130, 17, 189, 115, 152, 141, 73, 26, 0, 180, 109, 91, 229, 56, 6, 54, 192, 159, 61, 125, 31, 91, 164, 203, 161, 201, 108, 226, 33, 57, 206, 125, 127, 72, 100, 226, 3, 130, 49, 2, 111, 134, 19, 108, 76, 210, 12, 240, 27, 127, 218, 249, 249, 211, 87, 162, 59, 133, 94, 111, 193, 67, 106, 80, 93, 101, 240, 139, 25, 92, 94, 250, 171, 200, 161, 96, 81, 22, 157, 160, 16, 148, 58, 0, 98, 254, 137, 225, 103, 208, 72, 141, 78, 12, 41, 192, 189, 29, 145, 112, 240, 144, 140, 198, 160, 97, 95, 111, 131, 9, 10, 74, 21, 0, 252, 109, 3, 60, 253, 44, 124, 176, 167, 242, 134, 154, 187, 8, 130, 252, 12, 85, 85, 102, 37, 213, 228, 179, 69, 75, 170, 25, 240, 80, 127, 216, 40, 137, 79, 63, 175, 55, 177, 160, 247, 96, 70, 117, 148, 112, 126, 126, 138, 0, 136, 249, 179, 244, 243, 167, 207, 229, 13, 223, 210, 176, 238, 77, 5, 0, 185, 96, 24, 26, 88, 75, 168, 190, 248, 122, 15, 53, 91, 216, 172, 250, 23, 74, 9, 32, 234, 175, 86, 191, 204, 253, 99, 210, 183, 241, 213, 93, 58, 50, 64, 227, 31, 13, 175, 172, 44, 169, 213, 39, 30, 82, 216, 129, 9, 74, 19, 128, 234, 207, 58, 95, 50, 127, 49, 148, 117, 37, 109, 0, 224, 111, 26, 53, 174, 174, 194, 184, 167, 246, 189, 159, 0, 244, 195, 196, 149, 182, 71, 144, 185, 88, 11, 239, 127, 190, 75, 229, 79, 170, 218, 33, 236, 65, 105, 2, 176, 156, 233, 8, 211, 55, 92, 36, 98, 160, 10, 36, 213, 126, 179, 153, 184, 210, 3, 128, 135, 39, 246, 230, 246, 162, 250, 78, 245, 57, 185, 246, 78, 165, 11, 0, 209, 159, 212, 245, 239, 252, 47, 217, 127, 128, 63, 1, 64, 160, 216, 167, 27, 190, 18, 254, 148, 112, 204, 26, 36, 30, 242, 99, 245, 148, 91, 109, 163, 61, 3, 232, 111, 197, 233, 38, 84, 110, 164, 29, 0, 97, 16, 251, 66, 236, 211, 67, 98, 194, 84, 241, 55, 75, 60, 102, 237, 19, 227, 192, 166, 113, 19, 189, 159, 102, 128, 138, 17, 171, 125, 164, 135, 148, 89, 173, 35, 165, 164, 127, 193, 110, 191, 137, 98, 87, 247, 88, 237, 118, 235, 211, 113, 226, 142, 53, 110, 128, 51, 119, 137, 231, 192, 13, 247, 47, 140, 88, 251, 85, 55, 184, 114, 222, 218, 55, 213, 247, 164, 236, 50, 65, 90, 1, 26, 243, 36, 65, 55, 136, 30, 233, 164, 150, 25, 60, 37, 8, 186, 6, 196, 19, 136, 26, 116, 146, 32, 52, 245, 144, 45, 126, 147, 153, 22, 104, 92, 198, 50, 12, 24, 231, 238, 11, 146, 206, 142, 1, 144, 19, 61, 207, 147, 64, 66, 119, 41, 217, 210, 12, 80, 44, 9, 197, 141, 21, 157, 210, 118, 119, 79, 69, 147, 180, 121, 85, 189, 182, 98, 90, 218, 222, 150, 174, 207, 147, 45, 78, 84, 166, 219, 20, 166, 27, 161, 1, 3, 104, 156, 146, 58, 117, 253, 60, 99, 112, 98, 48, 15, 174, 0, 130, 199, 38, 237, 0, 63, 168, 45, 99, 21, 213, 129, 40, 12, 79, 112, 96, 226, 237, 21, 210, 5, 99, 163, 229, 150, 22, 194, 138, 105, 5, 69, 16, 162, 85, 36, 54, 194, 150, 34, 110, 167, 178, 168, 213, 194, 46, 139, 203, 178, 246, 11, 187, 237, 240, 151, 201, 35, 204, 11, 92, 200, 155, 220, 99, 226, 36, 123, 183, 138, 183, 187, 163, 112, 156, 113, 78, 230, 227, 255, 231, 76, 166, 118, 34, 128, 209, 154, 200, 123, 31, 142, 0, 134, 250, 110, 17, 73, 234, 42, 142, 222, 58, 87, 192, 37, 128, 113, 83, 247, 217, 61, 1, 119, 215, 50, 210, 9, 198, 156, 43, 197, 173, 163, 56, 150, 101, 88, 24, 192, 3, 6, 139, 13, 143, 209, 31, 181, 0, 49, 203, 82, 141, 0, 92, 112, 116, 28, 166, 21, 48, 230, 136, 49, 44, 103, 0, 91, 194, 182, 111, 117, 66, 36, 219, 67, 174, 224, 151, 217, 84, 171, 82, 4, 224, 238, 5, 216, 57, 71, 156, 181, 246, 1, 175, 38, 67, 45, 112, 15, 202, 59, 161, 242, 158, 1, 220, 237, 17, 243, 86, 230, 185, 65, 130, 192, 106, 230, 0, 165, 128, 0, 6, 77, 201, 88, 84, 188, 12, 127, 19, 128, 53, 17, 226, 4, 251, 211, 6, 130, 220, 1, 87, 32, 174, 123, 168, 184, 122, 87, 178, 198, 18, 138, 207, 152, 190, 123, 148, 110, 56, 9, 82, 210, 0, 52, 62, 19, 32, 9, 170, 122, 164, 152, 2, 71, 240, 151, 3, 236, 39, 120, 207, 10, 149, 109, 38, 64, 213, 7, 6, 19, 114, 217, 101, 122, 133, 81, 7, 188, 235, 200, 76, 144, 33, 9, 50, 215, 130, 36, 101, 241, 68, 132, 252, 201, 148, 97, 113, 128, 182, 15, 238, 173, 48, 108, 225, 180, 67, 162, 95, 190, 163, 17, 80, 221, 137, 155, 242, 37, 149, 173, 207, 158, 47, 242, 42, 89, 34, 22, 239, 185, 221, 4, 90, 179, 160, 64, 46, 133, 172, 48, 192, 47, 130, 174, 8, 229, 186, 16, 21, 160, 174, 39, 69, 70, 139, 67, 109, 107, 4, 80, 215, 34, 147, 194, 228, 121, 67, 3, 176, 69, 15, 74, 57, 236, 219, 98, 68, 48, 64, 178, 13, 194, 194, 0, 213, 61, 20, 135, 125, 239, 10, 10, 194, 201, 78, 185, 198, 138, 192, 190, 158, 5, 240, 42, 53, 0, 213, 10, 39, 207, 53, 128, 83, 1, 149, 206, 247, 131, 153, 80, 182, 156, 6, 239, 105, 78, 81, 0, 227, 245, 108, 155, 111, 110, 132, 82, 176, 218, 23, 128, 136, 109, 5, 20, 0, 206, 243, 186, 107, 7, 228, 121, 114, 240, 229, 130, 172, 22, 237, 154, 113, 97, 110, 126, 58, 70, 121, 134, 43, 1, 228, 1, 28, 124, 99, 28, 206, 10, 80, 137, 233, 51, 37, 224, 160, 207, 249, 251, 160, 79, 158, 38, 25, 44, 222, 178, 11, 184, 177, 225, 10, 162, 223, 163, 255, 163, 36, 167, 102, 139, 253, 190, 3, 142, 101, 245, 10, 11, 216, 1, 49, 239, 79, 217, 129, 199, 113, 247, 81, 11, 32, 111, 7, 232, 197, 65, 107, 168, 98, 248, 119, 23, 128, 91, 15, 113, 103, 155, 21, 65, 187, 142, 158, 82, 128, 95, 74, 1, 216, 180, 15, 106, 49, 184, 126, 157, 20, 3, 184, 1, 176, 50, 101, 64, 193, 42, 167, 0, 209, 217, 110, 192, 54, 229, 26, 20, 244, 219, 97, 45, 128, 238, 52, 3, 104, 12, 144, 180, 186, 145, 102, 177, 73, 5, 49, 7, 196, 254, 170, 50, 100, 239, 187, 177, 245, 198, 34, 119, 247, 96, 205, 168, 155, 218, 89, 157, 83, 247, 77, 202, 233, 114, 108, 125, 125, 164, 0, 236, 145, 102, 62, 55, 50, 123, 107, 251, 213, 195, 120, 60, 182, 38, 68, 156, 42, 244, 106, 119, 85, 199, 114, 245, 250, 5, 1, 218, 166, 105, 150, 210, 144, 207, 48, 204, 164, 203, 74, 151, 152, 106, 78, 191, 203, 9, 99, 62, 231, 239, 172, 198, 98, 49, 106, 50, 90, 255, 95, 175, 100, 236, 231, 168, 142, 133, 90, 116, 9, 161, 44, 14, 160, 111, 145, 58, 100, 45, 76, 186, 58, 230, 51, 191, 63, 60, 76, 27, 251, 49, 240, 223, 93, 203, 255, 12, 59, 24, 117, 192, 168, 3, 70, 29, 48, 234, 128, 81, 7, 140, 58, 96, 212, 1, 84, 7, 0, 13, 207, 230, 190, 92, 185, 148, 184, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130} +var WailsLogoBlackTransparent = []byte{137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 128, 0, 0, 0, 128, 8, 3, 0, 0, 0, 244, 224, 145, 249, 0, 0, 2, 250, 80, 76, 84, 69, 0, 0, 0, 227, 50, 50, 36, 32, 32, 201, 41, 45, 29, 29, 29, 227, 50, 49, 153, 23, 31, 225, 45, 46, 30, 30, 30, 198, 33, 33, 226, 47, 47, 227, 50, 50, 30, 30, 30, 226, 50, 50, 206, 41, 43, 30, 30, 30, 183, 31, 36, 185, 32, 37, 30, 30, 30, 228, 50, 50, 30, 30, 30, 30, 30, 30, 219, 47, 47, 30, 30, 30, 228, 50, 50, 28, 28, 28, 192, 35, 38, 173, 27, 33, 187, 33, 37, 227, 50, 50, 228, 50, 50, 30, 30, 30, 205, 40, 43, 215, 44, 45, 208, 42, 44, 178, 29, 35, 29, 29, 29, 183, 31, 36, 29, 29, 29, 33, 33, 33, 197, 37, 40, 210, 43, 44, 197, 37, 40, 30, 30, 30, 29, 29, 29, 29, 29, 29, 226, 49, 49, 225, 49, 49, 220, 47, 47, 30, 30, 30, 29, 29, 29, 30, 30, 30, 29, 29, 29, 192, 36, 39, 29, 29, 29, 167, 24, 31, 212, 43, 45, 206, 41, 43, 29, 29, 29, 30, 30, 30, 222, 48, 48, 30, 30, 30, 163, 24, 27, 119, 5, 16, 204, 40, 43, 196, 37, 40, 178, 29, 35, 177, 29, 35, 227, 50, 50, 164, 23, 30, 226, 49, 49, 217, 45, 47, 162, 23, 30, 172, 27, 33, 228, 50, 50, 227, 49, 49, 200, 38, 40, 30, 30, 30, 29, 29, 29, 29, 29, 29, 31, 31, 31, 150, 18, 26, 166, 24, 31, 227, 50, 49, 178, 30, 34, 228, 50, 50, 190, 34, 38, 30, 30, 30, 205, 40, 43, 30, 30, 30, 207, 41, 43, 176, 28, 34, 226, 49, 49, 195, 37, 40, 30, 30, 30, 199, 38, 41, 30, 30, 30, 127, 8, 19, 28, 28, 28, 210, 34, 36, 214, 45, 46, 200, 38, 41, 131, 11, 21, 190, 34, 38, 227, 49, 49, 190, 34, 38, 191, 34, 39, 192, 35, 39, 186, 32, 37, 226, 49, 50, 30, 30, 30, 216, 46, 46, 171, 27, 32, 199, 37, 41, 146, 16, 26, 141, 14, 25, 211, 47, 48, 120, 0, 3, 136, 15, 25, 158, 21, 29, 203, 39, 42, 218, 46, 47, 208, 42, 43, 156, 20, 28, 227, 49, 49, 191, 34, 39, 172, 27, 33, 184, 31, 36, 30, 30, 30, 204, 40, 42, 208, 42, 44, 120, 5, 17, 207, 41, 44, 204, 41, 44, 186, 32, 37, 148, 17, 25, 227, 50, 49, 224, 48, 49, 227, 49, 49, 151, 18, 26, 228, 50, 50, 125, 7, 18, 156, 20, 28, 130, 4, 17, 152, 19, 27, 177, 29, 34, 151, 18, 26, 229, 50, 51, 204, 40, 43, 189, 34, 38, 213, 44, 45, 227, 49, 49, 126, 8, 19, 145, 16, 24, 130, 9, 20, 162, 23, 29, 232, 52, 51, 254, 253, 253, 219, 75, 77, 218, 46, 46, 196, 37, 40, 184, 32, 36, 211, 43, 44, 152, 19, 27, 201, 39, 41, 165, 24, 30, 175, 28, 34, 123, 7, 18, 182, 31, 35, 170, 26, 32, 212, 43, 45, 125, 7, 18, 172, 27, 33, 247, 217, 217, 127, 8, 19, 141, 14, 23, 198, 37, 40, 118, 4, 16, 220, 196, 199, 155, 61, 69, 226, 108, 109, 233, 151, 151, 188, 111, 117, 178, 86, 92, 130, 9, 20, 119, 5, 16, 122, 6, 18, 138, 13, 23, 238, 223, 225, 197, 142, 146, 237, 173, 174, 139, 19, 28, 220, 47, 48, 31, 31, 31, 227, 50, 50, 215, 45, 46, 219, 46, 47, 224, 48, 49, 213, 44, 45, 221, 47, 48, 209, 42, 44, 33, 33, 33, 222, 48, 48, 246, 54, 54, 207, 41, 43, 205, 40, 43, 192, 34, 38, 217, 45, 46, 226, 49, 49, 211, 42, 44, 200, 38, 41, 194, 36, 40, 190, 33, 38, 232, 51, 51, 203, 40, 42, 188, 33, 37, 186, 32, 37, 229, 50, 50, 197, 37, 40, 184, 32, 36, 131, 10, 21, 180, 29, 35, 169, 25, 32, 178, 29, 34, 199, 38, 41, 182, 31, 35, 123, 6, 17, 236, 51, 51, 174, 27, 33, 172, 26, 32, 164, 23, 30, 139, 13, 23, 128, 7, 18, 136, 11, 21, 242, 52, 53, 176, 28, 34, 202, 38, 41, 167, 24, 31, 143, 14, 24, 153, 18, 27, 148, 16, 25, 238, 52, 52, 223, 45, 47, 161, 22, 30, 219, 43, 46, 206, 38, 42, 199, 34, 39, 215, 41, 44, 158, 21, 28, 195, 35, 39, 183, 30, 35, 160, 21, 29, 250, 55, 55, 253, 55, 55, 105, 176, 83, 104, 0, 0, 0, 193, 116, 82, 78, 83, 0, 254, 5, 5, 8, 250, 7, 11, 252, 8, 27, 194, 246, 168, 18, 249, 251, 29, 241, 54, 233, 212, 23, 221, 170, 20, 252, 252, 249, 246, 225, 186, 177, 33, 252, 250, 56, 50, 38, 14, 253, 248, 248, 175, 156, 149, 89, 65, 251, 204, 194, 162, 127, 43, 25, 252, 251, 249, 226, 168, 124, 92, 22, 253, 247, 231, 208, 90, 83, 82, 38, 249, 248, 247, 234, 147, 146, 142, 114, 85, 31, 246, 239, 238, 229, 207, 201, 181, 160, 135, 119, 102, 98, 81, 74, 71, 66, 52, 44, 254, 251, 249, 246, 245, 229, 191, 180, 136, 126, 110, 107, 76, 74, 59, 37, 26, 10, 253, 252, 245, 241, 168, 168, 168, 159, 157, 136, 112, 99, 95, 88, 247, 243, 227, 221, 220, 214, 202, 187, 181, 133, 105, 48, 18, 15, 239, 233, 219, 215, 211, 198, 180, 151, 90, 74, 63, 47, 250, 245, 244, 239, 238, 233, 207, 197, 194, 191, 173, 171, 150, 139, 123, 119, 243, 211, 196, 108, 88, 250, 244, 243, 238, 235, 232, 231, 229, 190, 139, 246, 242, 239, 236, 219, 38, 121, 14, 209, 0, 0, 13, 162, 73, 68, 65, 84, 120, 218, 236, 152, 87, 76, 147, 97, 20, 134, 91, 177, 24, 52, 154, 18, 19, 98, 4, 13, 208, 144, 80, 46, 132, 27, 34, 77, 8, 171, 64, 41, 112, 131, 130, 33, 160, 33, 70, 89, 130, 1, 65, 209, 168, 64, 84, 196, 129, 162, 56, 113, 239, 189, 247, 30, 233, 78, 41, 180, 20, 126, 104, 75, 203, 42, 171, 12, 129, 150, 173, 38, 158, 239, 231, 47, 85, 131, 8, 13, 200, 133, 188, 225, 134, 64, 250, 62, 223, 251, 157, 239, 156, 3, 164, 25, 205, 104, 70, 51, 154, 209, 140, 254, 19, 217, 4, 146, 166, 85, 254, 33, 14, 164, 105, 148, 77, 200, 82, 127, 210, 52, 202, 63, 66, 123, 136, 52, 125, 10, 12, 89, 82, 180, 136, 68, 178, 32, 77, 131, 144, 233, 234, 253, 88, 81, 196, 220, 233, 241, 7, 157, 159, 79, 209, 98, 193, 41, 211, 226, 111, 69, 34, 205, 217, 184, 180, 27, 227, 112, 60, 73, 211, 36, 215, 211, 156, 110, 50, 5, 91, 132, 96, 44, 44, 44, 44, 173, 172, 172, 44, 73, 255, 72, 112, 124, 155, 67, 9, 221, 24, 133, 220, 186, 223, 129, 180, 153, 244, 111, 4, 135, 28, 22, 254, 246, 230, 41, 225, 248, 100, 236, 248, 249, 145, 31, 219, 184, 111, 138, 137, 217, 100, 61, 37, 158, 191, 23, 153, 67, 200, 74, 56, 62, 133, 163, 36, 71, 230, 167, 50, 163, 179, 147, 147, 110, 39, 174, 90, 149, 152, 25, 181, 198, 125, 193, 164, 24, 207, 154, 53, 90, 93, 91, 30, 73, 79, 203, 63, 119, 246, 204, 153, 168, 121, 152, 22, 142, 207, 225, 40, 233, 225, 126, 225, 5, 154, 242, 190, 190, 202, 220, 13, 201, 107, 156, 108, 38, 251, 57, 32, 203, 181, 96, 121, 248, 240, 189, 119, 133, 59, 242, 30, 61, 186, 182, 239, 216, 177, 240, 189, 75, 180, 24, 178, 39, 43, 47, 209, 106, 6, 251, 250, 20, 225, 96, 238, 126, 116, 18, 125, 143, 60, 121, 114, 248, 222, 189, 194, 194, 91, 183, 222, 62, 124, 248, 240, 245, 235, 184, 184, 12, 93, 243, 151, 47, 93, 93, 157, 157, 93, 157, 84, 46, 134, 201, 40, 28, 228, 175, 28, 28, 210, 132, 223, 204, 98, 66, 238, 147, 171, 163, 183, 234, 247, 120, 123, 215, 215, 183, 180, 180, 168, 213, 106, 29, 168, 25, 244, 5, 105, 197, 54, 10, 25, 132, 252, 57, 152, 239, 141, 59, 209, 78, 94, 164, 41, 208, 218, 55, 45, 224, 15, 26, 97, 192, 1, 154, 195, 174, 92, 34, 115, 248, 124, 25, 242, 39, 119, 207, 207, 79, 159, 178, 22, 120, 214, 27, 101, 96, 2, 192, 9, 208, 241, 101, 124, 144, 12, 252, 41, 221, 17, 54, 164, 41, 212, 225, 250, 250, 61, 166, 4, 192, 94, 167, 11, 187, 194, 226, 243, 197, 200, 95, 38, 227, 80, 176, 149, 174, 83, 58, 3, 45, 11, 213, 120, 21, 32, 0, 93, 70, 179, 78, 157, 177, 98, 155, 152, 47, 68, 254, 124, 228, 175, 84, 110, 52, 243, 131, 9, 89, 224, 26, 227, 4, 233, 111, 213, 40, 130, 22, 117, 70, 134, 26, 66, 8, 139, 103, 241, 133, 60, 49, 1, 64, 161, 104, 119, 78, 110, 195, 3, 89, 90, 90, 25, 101, 9, 223, 64, 33, 234, 226, 32, 253, 150, 45, 91, 182, 196, 125, 90, 225, 227, 38, 230, 241, 132, 4, 0, 153, 223, 122, 192, 198, 188, 252, 189, 242, 189, 188, 142, 28, 29, 223, 212, 58, 187, 7, 153, 111, 201, 120, 246, 242, 229, 94, 15, 49, 79, 202, 19, 10, 137, 43, 224, 99, 199, 93, 205, 188, 255, 180, 188, 125, 121, 121, 121, 59, 64, 119, 238, 100, 101, 101, 221, 191, 159, 29, 29, 205, 100, 6, 164, 166, 158, 219, 228, 228, 228, 238, 238, 96, 109, 237, 181, 96, 142, 149, 5, 81, 136, 123, 212, 207, 94, 125, 120, 250, 224, 197, 69, 55, 30, 87, 202, 35, 0, 64, 28, 178, 39, 196, 102, 105, 86, 216, 103, 194, 26, 7, 154, 154, 58, 144, 170, 65, 182, 182, 108, 118, 65, 65, 193, 149, 240, 240, 220, 220, 220, 147, 39, 97, 160, 36, 110, 216, 96, 191, 61, 50, 50, 52, 52, 212, 51, 244, 213, 211, 247, 23, 46, 60, 120, 206, 234, 151, 130, 191, 9, 128, 172, 116, 201, 59, 227, 133, 79, 101, 51, 20, 112, 172, 122, 235, 215, 175, 134, 166, 38, 0, 104, 108, 104, 107, 171, 209, 212, 13, 85, 41, 42, 203, 75, 74, 6, 7, 85, 125, 114, 121, 123, 123, 69, 49, 72, 34, 145, 136, 122, 47, 62, 184, 112, 225, 197, 197, 117, 235, 4, 92, 174, 212, 148, 128, 76, 73, 15, 235, 218, 122, 227, 126, 26, 170, 105, 51, 9, 12, 6, 67, 211, 114, 144, 45, 18, 141, 6, 16, 212, 42, 5, 80, 0, 70, 89, 153, 170, 182, 86, 14, 20, 18, 81, 233, 186, 139, 31, 159, 227, 246, 92, 34, 1, 188, 8, 57, 110, 65, 186, 78, 67, 245, 114, 191, 44, 39, 146, 89, 10, 216, 218, 24, 4, 9, 64, 4, 144, 193, 112, 8, 154, 186, 42, 72, 1, 0, 22, 47, 46, 43, 115, 118, 118, 150, 203, 43, 42, 42, 138, 29, 139, 123, 233, 224, 47, 16, 152, 0, 144, 63, 133, 173, 238, 234, 28, 104, 106, 24, 170, 203, 205, 140, 49, 155, 0, 1, 116, 252, 2, 96, 74, 0, 34, 0, 0, 252, 26, 214, 137, 192, 255, 215, 4, 148, 241, 234, 102, 4, 80, 221, 86, 53, 168, 242, 181, 223, 61, 199, 44, 130, 134, 32, 34, 129, 134, 134, 182, 26, 184, 1, 34, 1, 240, 71, 87, 128, 238, 0, 7, 16, 137, 68, 165, 35, 0, 66, 28, 128, 195, 200, 80, 127, 233, 234, 252, 218, 212, 88, 83, 87, 89, 214, 91, 154, 115, 106, 227, 92, 51, 8, 130, 218, 130, 140, 53, 64, 3, 81, 145, 236, 236, 22, 35, 193, 13, 212, 202, 127, 7, 144, 26, 1, 56, 172, 176, 250, 102, 2, 160, 170, 178, 76, 94, 204, 21, 178, 14, 120, 158, 55, 131, 64, 131, 178, 135, 240, 135, 134, 134, 80, 250, 40, 126, 120, 8, 144, 63, 4, 128, 106, 96, 4, 192, 84, 2, 32, 25, 101, 133, 183, 26, 7, 232, 0, 128, 242, 50, 185, 68, 196, 21, 43, 101, 199, 67, 22, 78, 148, 128, 185, 2, 196, 102, 179, 109, 109, 209, 67, 172, 82, 160, 103, 168, 130, 55, 216, 43, 1, 79, 73, 236, 31, 0, 196, 100, 59, 239, 22, 29, 2, 48, 116, 52, 104, 20, 37, 170, 118, 73, 41, 151, 39, 86, 106, 177, 132, 249, 254, 115, 240, 166, 62, 110, 130, 252, 212, 115, 169, 169, 169, 1, 1, 76, 38, 51, 58, 58, 58, 59, 59, 59, 57, 57, 57, 41, 41, 41, 20, 20, 233, 219, 31, 11, 254, 163, 0, 112, 114, 226, 188, 213, 8, 96, 192, 80, 13, 0, 139, 93, 124, 24, 116, 150, 155, 219, 146, 37, 176, 162, 5, 47, 90, 182, 224, 15, 43, 174, 229, 108, 203, 95, 101, 5, 115, 103, 172, 201, 180, 230, 114, 143, 15, 74, 64, 244, 27, 0, 159, 197, 142, 171, 71, 0, 248, 35, 168, 171, 108, 239, 239, 151, 234, 101, 24, 214, 221, 173, 213, 118, 23, 21, 97, 17, 135, 198, 127, 19, 99, 55, 177, 53, 219, 122, 124, 140, 1, 24, 1, 208, 48, 182, 27, 8, 138, 131, 43, 232, 26, 6, 176, 243, 245, 101, 8, 4, 44, 55, 10, 18, 74, 1, 163, 140, 130, 112, 36, 109, 45, 40, 45, 45, 221, 203, 203, 43, 221, 218, 164, 209, 8, 208, 13, 154, 8, 160, 13, 16, 1, 16, 9, 240, 93, 12, 77, 213, 91, 227, 116, 198, 71, 16, 191, 225, 113, 76, 204, 238, 213, 203, 140, 242, 247, 95, 182, 122, 217, 66, 139, 223, 1, 214, 62, 185, 87, 120, 235, 209, 62, 208, 181, 107, 55, 110, 220, 188, 121, 115, 21, 232, 250, 245, 168, 177, 23, 170, 221, 219, 244, 62, 224, 255, 51, 0, 159, 190, 220, 208, 81, 109, 27, 166, 30, 121, 4, 190, 246, 187, 108, 198, 49, 0, 143, 166, 175, 61, 123, 248, 221, 142, 107, 199, 6, 26, 135, 160, 216, 203, 203, 203, 161, 122, 69, 62, 127, 35, 200, 209, 231, 252, 2, 32, 102, 209, 12, 168, 115, 217, 134, 53, 119, 118, 26, 112, 0, 185, 132, 113, 10, 122, 192, 248, 118, 67, 171, 244, 252, 212, 232, 172, 29, 126, 5, 154, 193, 246, 222, 222, 10, 121, 113, 206, 223, 8, 124, 244, 116, 32, 32, 0, 164, 66, 183, 120, 3, 222, 185, 53, 236, 48, 226, 17, 148, 171, 42, 4, 122, 222, 231, 16, 87, 132, 48, 206, 209, 188, 32, 237, 28, 51, 57, 51, 209, 215, 69, 212, 163, 228, 221, 29, 251, 223, 47, 187, 24, 64, 48, 146, 128, 56, 118, 121, 117, 3, 248, 215, 212, 81, 217, 93, 80, 131, 168, 13, 56, 87, 56, 10, 120, 74, 14, 244, 128, 137, 253, 133, 62, 199, 218, 105, 205, 227, 80, 251, 189, 87, 61, 73, 99, 42, 229, 106, 143, 135, 17, 64, 76, 103, 119, 192, 220, 64, 99, 67, 97, 23, 212, 137, 191, 194, 18, 85, 133, 72, 32, 21, 202, 180, 216, 202, 131, 171, 109, 38, 188, 27, 45, 8, 76, 217, 109, 243, 199, 164, 28, 54, 165, 236, 138, 58, 209, 227, 65, 12, 67, 225, 122, 26, 225, 143, 150, 23, 187, 32, 67, 35, 0, 148, 213, 226, 0, 124, 50, 7, 211, 46, 57, 224, 25, 72, 50, 95, 38, 95, 167, 152, 93, 81, 73, 145, 246, 215, 79, 236, 189, 202, 112, 164, 27, 219, 0, 207, 45, 190, 3, 236, 9, 255, 146, 50, 234, 114, 124, 20, 213, 22, 227, 0, 28, 50, 66, 32, 239, 135, 129, 96, 166, 142, 90, 59, 197, 48, 179, 147, 50, 55, 36, 158, 244, 189, 236, 226, 220, 94, 12, 213, 95, 10, 222, 165, 4, 128, 148, 23, 107, 219, 48, 108, 143, 251, 171, 92, 168, 141, 26, 52, 138, 138, 69, 92, 30, 0, 112, 0, 129, 140, 105, 149, 9, 59, 83, 44, 38, 184, 165, 7, 48, 163, 179, 238, 220, 78, 244, 203, 189, 18, 111, 7, 31, 44, 71, 59, 161, 28, 223, 135, 24, 142, 142, 142, 198, 87, 200, 163, 211, 8, 127, 124, 101, 112, 86, 181, 95, 14, 71, 143, 0, 7, 16, 203, 0, 0, 103, 80, 66, 49, 156, 94, 141, 15, 132, 241, 114, 88, 223, 86, 208, 106, 170, 240, 85, 8, 215, 240, 58, 0, 4, 196, 44, 68, 1, 172, 103, 185, 121, 80, 27, 145, 61, 238, 143, 22, 22, 121, 241, 182, 204, 240, 190, 197, 42, 57, 62, 11, 101, 208, 135, 71, 186, 177, 114, 229, 193, 9, 45, 40, 78, 126, 125, 26, 90, 93, 29, 218, 70, 236, 42, 137, 149, 148, 88, 71, 192, 223, 145, 78, 95, 47, 224, 201, 120, 241, 13, 104, 103, 82, 24, 127, 1, 240, 74, 67, 239, 15, 170, 98, 43, 36, 2, 174, 80, 172, 108, 253, 86, 212, 218, 10, 95, 184, 190, 125, 111, 93, 26, 226, 58, 254, 61, 205, 221, 175, 132, 70, 197, 239, 214, 180, 17, 226, 254, 12, 6, 221, 81, 196, 147, 41, 149, 250, 75, 46, 192, 104, 58, 62, 242, 103, 72, 79, 185, 223, 134, 153, 45, 2, 0, 254, 202, 136, 136, 165, 193, 9, 75, 71, 148, 16, 156, 48, 207, 51, 112, 34, 25, 208, 168, 196, 78, 108, 220, 72, 99, 99, 125, 24, 162, 30, 189, 76, 95, 122, 245, 84, 100, 84, 74, 114, 165, 130, 10, 246, 68, 252, 40, 28, 71, 1, 221, 213, 250, 114, 41, 3, 111, 3, 193, 59, 253, 3, 29, 206, 187, 186, 46, 52, 201, 213, 213, 97, 66, 183, 64, 165, 42, 140, 43, 169, 179, 139, 139, 139, 92, 210, 175, 215, 11, 114, 78, 216, 223, 221, 181, 201, 1, 122, 156, 85, 102, 159, 194, 174, 196, 120, 124, 84, 28, 30, 30, 208, 70, 31, 247, 139, 28, 185, 168, 13, 4, 31, 220, 56, 138, 223, 4, 9, 126, 208, 102, 254, 46, 9, 132, 97, 28, 127, 95, 228, 56, 50, 12, 34, 184, 41, 67, 27, 29, 202, 37, 112, 144, 72, 8, 7, 215, 168, 73, 104, 17, 34, 155, 130, 38, 49, 154, 4, 149, 134, 64, 205, 177, 165, 169, 63, 227, 245, 39, 94, 200, 157, 118, 130, 173, 110, 210, 162, 120, 184, 40, 244, 220, 251, 88, 167, 114, 147, 220, 125, 254, 129, 239, 243, 189, 247, 121, 223, 231, 199, 225, 80, 112, 19, 248, 214, 167, 147, 105, 47, 243, 14, 198, 205, 213, 211, 105, 82, 55, 6, 6, 60, 28, 158, 155, 137, 198, 171, 72, 124, 227, 16, 228, 96, 141, 105, 35, 150, 53, 11, 194, 70, 17, 252, 236, 3, 95, 221, 158, 170, 234, 129, 162, 239, 14, 141, 47, 225, 191, 82, 3, 104, 31, 245, 225, 102, 190, 29, 147, 147, 140, 146, 128, 75, 64, 41, 132, 160, 29, 164, 121, 65, 216, 218, 48, 2, 189, 221, 209, 245, 110, 228, 246, 241, 201, 122, 215, 121, 31, 153, 6, 58, 61, 227, 243, 99, 125, 132, 238, 32, 12, 5, 179, 218, 10, 226, 194, 200, 120, 3, 98, 101, 94, 16, 92, 27, 69, 80, 106, 151, 146, 96, 124, 23, 76, 88, 115, 29, 81, 207, 254, 237, 131, 126, 176, 159, 119, 17, 215, 199, 40, 88, 91, 188, 66, 16, 194, 192, 187, 29, 222, 52, 25, 78, 76, 227, 214, 236, 22, 161, 71, 227, 250, 216, 32, 182, 148, 11, 120, 249, 221, 185, 161, 151, 33, 148, 23, 4, 108, 10, 29, 64, 242, 53, 209, 62, 232, 47, 134, 68, 190, 165, 58, 14, 14, 4, 70, 25, 194, 67, 96, 133, 52, 228, 163, 253, 250, 147, 207, 195, 191, 207, 143, 83, 178, 160, 149, 9, 16, 150, 153, 128, 242, 102, 65, 128, 9, 65, 36, 182, 114, 202, 245, 85, 44, 140, 184, 170, 82, 104, 63, 22, 53, 10, 120, 121, 238, 165, 43, 8, 76, 211, 176, 32, 216, 198, 142, 161, 175, 130, 125, 208, 71, 251, 138, 2, 94, 113, 83, 184, 23, 147, 189, 84, 88, 163, 175, 97, 131, 98, 155, 126, 147, 235, 163, 125, 220, 84, 66, 0, 240, 183, 200, 32, 62, 156, 13, 229, 53, 134, 242, 108, 46, 95, 120, 206, 37, 27, 86, 136, 168, 95, 95, 181, 111, 64, 251, 7, 126, 2, 136, 207, 217, 252, 182, 21, 151, 57, 79, 92, 178, 65, 63, 85, 85, 67, 120, 250, 11, 125, 243, 222, 197, 137, 193, 131, 223, 109, 133, 36, 185, 163, 81, 209, 6, 253, 70, 29, 245, 77, 251, 8, 156, 129, 135, 56, 137, 169, 111, 97, 31, 207, 160, 32, 17, 39, 65, 253, 74, 168, 178, 148, 125, 108, 9, 202, 132, 35, 226, 44, 47, 169, 49, 234, 155, 246, 87, 2, 208, 210, 196, 81, 196, 95, 1, 237, 79, 129, 122, 31, 110, 63, 74, 28, 116, 240, 49, 208, 16, 148, 68, 0, 237, 7, 91, 15, 45, 251, 48, 192, 33, 89, 90, 78, 156, 115, 70, 28, 135, 216, 15, 178, 30, 108, 63, 166, 3, 110, 122, 51, 208, 12, 40, 42, 188, 122, 12, 172, 226, 31, 127, 252, 248, 10, 216, 230, 198, 1, 254, 100, 240, 209, 44, 8, 226, 21, 42, 33, 128, 23, 9, 72, 192, 0, 136, 13, 130, 53, 110, 52, 115, 0, 59, 31, 39, 59, 17, 128, 153, 97, 20, 140, 2, 0, 113, 100, 172, 194, 48, 8, 69, 209, 71, 112, 232, 80, 40, 136, 82, 156, 178, 136, 25, 170, 67, 99, 112, 104, 201, 39, 164, 205, 154, 37, 148, 124, 64, 191, 33, 191, 246, 70, 255, 170, 134, 130, 74, 233, 144, 118, 201, 25, 174, 92, 148, 235, 125, 188, 191, 41, 2, 239, 35, 153, 252, 46, 247, 240, 197, 127, 198, 17, 66, 10, 216, 142, 34, 234, 102, 8, 39, 126, 170, 224, 58, 109, 58, 5, 163, 213, 67, 15, 173, 53, 122, 134, 136, 210, 218, 232, 70, 164, 52, 49, 88, 99, 100, 26, 183, 189, 118, 186, 133, 156, 209, 214, 231, 82, 223, 9, 172, 70, 81, 68, 42, 225, 228, 145, 77, 80, 123, 196, 91, 250, 175, 9, 22, 47, 10, 98, 156, 220, 35, 238, 31, 241, 65, 85, 250, 3, 14, 249, 184, 79, 138, 11, 220, 193, 234, 10, 61, 67, 164, 83, 21, 148, 41, 65, 23, 141, 121, 130, 47, 5, 152, 76, 97, 99, 240, 199, 84, 168, 231, 161, 192, 156, 237, 95, 82, 191, 67, 244, 158, 147, 245, 59, 112, 47, 118, 171, 29, 215, 65, 24, 8, 90, 145, 11, 23, 150, 44, 161, 32, 139, 138, 6, 133, 2, 40, 248, 40, 5, 136, 35, 240, 233, 80, 154, 40, 202, 1, 56, 67, 174, 54, 165, 111, 245, 214, 122, 47, 54, 148, 238, 223, 40, 10, 90, 203, 222, 157, 29, 47, 35, 180, 109, 242, 101, 43, 173, 54, 127, 113, 144, 19, 22, 215, 151, 39, 176, 83, 193, 38, 119, 113, 22, 65, 69, 78, 16, 194, 195, 64, 200, 52, 149, 105, 192, 16, 36, 177, 109, 170, 51, 17, 122, 250, 135, 248, 248, 163, 173, 17, 66, 33, 90, 60, 129, 201, 72, 12, 62, 249, 19, 150, 188, 63, 112, 25, 44, 65, 158, 63, 23, 10, 66, 8, 196, 89, 67, 153, 117, 182, 25, 232, 187, 203, 119, 187, 66, 196, 87, 68, 163, 35, 144, 23, 70, 30, 239, 124, 135, 64, 157, 83, 232, 41, 43, 232, 132, 5, 33, 175, 129, 122, 148, 232, 161, 71, 13, 180, 254, 66, 119, 32, 170, 52, 228, 238, 42, 220, 107, 40, 236, 204, 225, 44, 8, 225, 3, 72, 108, 57, 11, 1, 111, 12, 234, 9, 186, 128, 158, 20, 228, 226, 210, 241, 20, 208, 11, 169, 208, 185, 165, 183, 29, 216, 39, 133, 78, 144, 8, 211, 145, 64, 82, 24, 8, 12, 151, 16, 39, 226, 169, 17, 186, 198, 240, 192, 181, 6, 226, 196, 79, 180, 4, 218, 155, 192, 65, 243, 23, 128, 254, 205, 184, 19, 196, 72, 236, 39, 27, 92, 83, 16, 186, 32, 239, 44, 140, 144, 66, 204, 179, 81, 18, 168, 152, 195, 3, 80, 227, 10, 90, 115, 4, 62, 246, 206, 19, 198, 189, 32, 74, 45, 54, 244, 12, 222, 49, 4, 226, 60, 64, 2, 154, 92, 1, 244, 217, 108, 132, 128, 124, 186, 76, 119, 202, 36, 135, 18, 64, 235, 8, 116, 70, 161, 96, 182, 162, 23, 228, 206, 206, 24, 1, 107, 105, 1, 86, 216, 90, 2, 169, 77, 78, 237, 113, 71, 96, 1, 20, 0, 1, 20, 20, 126, 185, 202, 95, 61, 188, 32, 241, 107, 125, 187, 153, 152, 199, 11, 155, 45, 171, 32, 2, 165, 37, 208, 177, 201, 42, 240, 56, 242, 2, 96, 64, 72, 249, 95, 186, 164, 54, 226, 236, 212, 10, 50, 214, 69, 238, 140, 17, 195, 208, 67, 32, 192, 8, 9, 19, 164, 117, 187, 10, 82, 69, 153, 19, 224, 166, 33, 101, 53, 183, 56, 88, 223, 218, 67, 29, 108, 137, 151, 38, 34, 210, 104, 104, 255, 215, 24, 41, 84, 64, 23, 82, 159, 85, 134, 188, 251, 98, 59, 54, 181, 151, 183, 163, 85, 205, 217, 66, 143, 235, 250, 87, 243, 69, 129, 202, 252, 75, 160, 233, 8, 253, 202, 239, 169, 209, 252, 170, 54, 228, 65, 4, 198, 102, 219, 118, 186, 208, 166, 72, 71, 63, 154, 29, 133, 51, 53, 149, 110, 105, 249, 53, 71, 27, 84, 137, 39, 80, 54, 197, 182, 21, 155, 243, 221, 91, 21, 95, 163, 190, 153, 67, 172, 208, 127, 67, 217, 7, 243, 224, 126, 149, 159, 119, 158, 247, 156, 151, 242, 228, 158, 112, 246, 143, 127, 252, 108, 20, 140, 130, 81, 48, 10, 70, 193, 40, 24, 5, 88, 1, 0, 48, 20, 121, 13, 171, 25, 166, 148, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130} +var WailsLogoWhiteTransparent = []byte{137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 128, 0, 0, 0, 128, 8, 3, 0, 0, 0, 244, 224, 145, 249, 0, 0, 2, 244, 80, 76, 84, 69, 0, 0, 0, 190, 37, 40, 145, 21, 31, 222, 46, 46, 208, 42, 44, 228, 50, 50, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 227, 50, 49, 227, 50, 50, 207, 38, 39, 224, 48, 49, 255, 255, 255, 227, 48, 48, 227, 50, 50, 255, 255, 255, 214, 44, 45, 202, 40, 43, 210, 42, 44, 174, 27, 33, 206, 41, 43, 255, 255, 255, 186, 33, 37, 255, 255, 255, 186, 32, 37, 134, 12, 22, 183, 31, 36, 150, 19, 25, 228, 50, 50, 255, 255, 255, 187, 34, 37, 255, 255, 255, 142, 14, 23, 196, 37, 40, 169, 25, 31, 220, 47, 47, 215, 45, 46, 227, 50, 50, 203, 40, 42, 198, 37, 40, 255, 255, 255, 255, 255, 255, 255, 255, 255, 120, 5, 16, 227, 50, 49, 203, 40, 42, 255, 255, 255, 255, 255, 255, 161, 22, 29, 227, 49, 49, 189, 33, 37, 255, 255, 255, 192, 35, 39, 255, 255, 255, 225, 49, 49, 255, 255, 255, 255, 255, 255, 167, 24, 31, 255, 255, 255, 255, 255, 255, 188, 33, 38, 179, 30, 35, 227, 50, 50, 225, 48, 48, 151, 18, 26, 205, 40, 43, 228, 50, 50, 192, 35, 38, 184, 32, 36, 255, 255, 255, 255, 255, 255, 218, 46, 47, 224, 48, 49, 228, 49, 49, 221, 46, 48, 255, 255, 255, 130, 11, 22, 196, 36, 40, 227, 50, 50, 191, 34, 39, 255, 255, 255, 227, 50, 50, 176, 28, 34, 176, 29, 33, 148, 17, 25, 255, 255, 255, 121, 6, 17, 228, 50, 50, 255, 255, 255, 188, 33, 38, 255, 255, 255, 255, 255, 255, 221, 47, 48, 226, 49, 49, 206, 40, 43, 255, 255, 255, 191, 34, 38, 255, 255, 255, 151, 18, 26, 227, 50, 50, 195, 37, 40, 174, 28, 33, 216, 46, 46, 146, 16, 26, 255, 255, 255, 210, 34, 36, 180, 30, 35, 150, 18, 26, 227, 50, 50, 211, 43, 45, 227, 49, 49, 195, 36, 40, 206, 41, 43, 255, 255, 255, 186, 32, 37, 225, 48, 49, 208, 42, 44, 156, 20, 28, 195, 37, 39, 125, 7, 18, 196, 37, 40, 149, 16, 27, 119, 0, 3, 217, 46, 47, 203, 39, 42, 203, 41, 43, 149, 17, 26, 178, 29, 34, 207, 41, 44, 255, 255, 255, 167, 25, 31, 164, 23, 30, 205, 40, 43, 227, 49, 49, 198, 37, 39, 228, 50, 50, 216, 45, 46, 175, 28, 33, 127, 8, 19, 255, 255, 255, 206, 41, 43, 255, 255, 255, 255, 255, 255, 186, 33, 37, 177, 29, 34, 155, 20, 27, 255, 255, 255, 255, 255, 255, 182, 31, 35, 224, 48, 48, 211, 43, 45, 131, 10, 20, 186, 32, 37, 227, 49, 49, 173, 27, 33, 126, 8, 19, 255, 255, 255, 221, 47, 48, 116, 4, 16, 255, 255, 255, 255, 255, 255, 255, 255, 255, 234, 53, 51, 127, 8, 19, 139, 13, 23, 227, 50, 49, 133, 10, 21, 124, 6, 18, 255, 255, 255, 255, 255, 255, 234, 216, 218, 172, 81, 88, 146, 16, 25, 214, 44, 46, 178, 30, 34, 168, 24, 31, 122, 6, 18, 166, 24, 31, 255, 255, 255, 216, 67, 69, 251, 216, 216, 226, 108, 109, 233, 151, 151, 188, 111, 117, 142, 17, 26, 165, 24, 31, 199, 38, 41, 214, 184, 187, 219, 87, 90, 224, 79, 80, 197, 142, 146, 149, 48, 57, 237, 173, 174, 227, 50, 50, 255, 255, 255, 223, 48, 48, 215, 45, 46, 221, 47, 48, 218, 46, 47, 213, 44, 45, 211, 43, 45, 203, 39, 42, 193, 35, 39, 219, 46, 47, 191, 34, 38, 206, 41, 43, 188, 33, 38, 246, 54, 54, 183, 31, 36, 199, 38, 41, 186, 32, 37, 209, 42, 44, 173, 27, 33, 179, 29, 35, 197, 37, 40, 176, 28, 34, 229, 50, 50, 181, 30, 35, 233, 51, 51, 170, 26, 32, 168, 24, 31, 201, 38, 41, 164, 23, 30, 236, 52, 52, 124, 6, 17, 131, 11, 21, 242, 53, 53, 195, 35, 39, 161, 22, 29, 222, 45, 47, 147, 16, 25, 137, 12, 22, 128, 8, 19, 140, 13, 23, 153, 18, 26, 219, 43, 46, 157, 20, 28, 205, 39, 42, 200, 35, 40, 231, 50, 50, 207, 39, 42, 215, 41, 44, 252, 55, 55, 238, 52, 52, 217, 45, 46, 212, 40, 44, 132, 6, 18, 235, 51, 51, 226, 46, 48, 239, 50, 51, 194, 134, 147, 194, 0, 0, 0, 195, 116, 82, 78, 83, 0, 5, 7, 11, 254, 253, 7, 251, 9, 4, 250, 169, 8, 253, 248, 27, 194, 244, 22, 17, 249, 249, 246, 233, 251, 164, 29, 254, 249, 24, 226, 222, 45, 19, 254, 252, 252, 251, 250, 246, 249, 248, 179, 56, 38, 254, 237, 176, 156, 149, 247, 87, 53, 24, 247, 241, 203, 185, 173, 243, 213, 208, 208, 90, 55, 32, 246, 239, 221, 196, 134, 127, 93, 68, 62, 51, 38, 13, 243, 233, 211, 181, 132, 102, 102, 65, 48, 44, 247, 232, 226, 221, 202, 190, 168, 120, 120, 113, 110, 107, 89, 82, 81, 79, 76, 37, 29, 254, 231, 182, 181, 165, 160, 154, 145, 143, 125, 94, 88, 79, 73, 54, 33, 15, 254, 245, 229, 217, 216, 206, 198, 196, 193, 170, 159, 145, 139, 133, 130, 118, 111, 100, 96, 88, 84, 240, 239, 236, 218, 194, 191, 189, 178, 169, 166, 151, 151, 151, 138, 111, 93, 78, 72, 67, 41, 221, 201, 173, 134, 74, 64, 33, 244, 237, 225, 224, 224, 209, 187, 139, 120, 245, 244, 243, 238, 235, 234, 228, 167, 254, 245, 245, 242, 240, 239, 163, 91, 109, 90, 0, 0, 13, 94, 73, 68, 65, 84, 120, 218, 236, 152, 105, 72, 147, 113, 28, 199, 159, 212, 17, 44, 87, 177, 182, 33, 186, 137, 168, 51, 247, 66, 3, 19, 19, 4, 205, 19, 52, 209, 36, 21, 195, 23, 133, 88, 41, 105, 165, 216, 97, 167, 69, 183, 18, 84, 208, 29, 245, 162, 19, 186, 163, 251, 238, 105, 30, 59, 156, 186, 195, 185, 205, 99, 78, 55, 231, 60, 166, 166, 89, 175, 250, 253, 159, 103, 143, 51, 203, 114, 166, 249, 34, 63, 136, 40, 27, 251, 126, 254, 191, 231, 247, 255, 255, 254, 12, 155, 101, 150, 89, 102, 153, 101, 150, 255, 4, 102, 34, 54, 163, 44, 61, 18, 137, 205, 32, 204, 139, 158, 75, 177, 25, 100, 93, 168, 254, 24, 54, 115, 36, 94, 92, 92, 59, 15, 195, 230, 96, 51, 0, 10, 93, 181, 82, 87, 187, 50, 114, 102, 242, 129, 21, 243, 232, 122, 93, 96, 206, 140, 228, 187, 98, 152, 243, 149, 24, 125, 31, 142, 175, 193, 102, 136, 132, 77, 248, 32, 78, 215, 205, 67, 50, 115, 230, 204, 113, 114, 117, 117, 117, 194, 254, 17, 176, 124, 230, 49, 207, 65, 29, 157, 214, 22, 19, 137, 57, 99, 255, 6, 88, 36, 9, 177, 247, 22, 106, 244, 56, 29, 215, 197, 92, 27, 121, 153, 233, 149, 182, 99, 71, 176, 251, 180, 100, 142, 109, 178, 200, 35, 129, 131, 125, 116, 26, 174, 161, 109, 78, 223, 16, 145, 154, 85, 20, 119, 225, 76, 120, 120, 74, 193, 218, 245, 94, 139, 166, 40, 248, 87, 125, 237, 180, 139, 151, 155, 158, 182, 61, 59, 251, 202, 66, 157, 30, 167, 225, 56, 174, 225, 60, 120, 152, 119, 74, 91, 109, 181, 214, 100, 166, 20, 173, 247, 98, 78, 233, 118, 160, 34, 139, 111, 103, 151, 149, 221, 186, 117, 249, 124, 126, 254, 141, 146, 146, 123, 47, 95, 237, 93, 172, 239, 163, 161, 124, 218, 30, 118, 125, 187, 213, 170, 200, 75, 137, 67, 75, 159, 58, 118, 93, 189, 122, 181, 236, 214, 229, 203, 231, 31, 61, 186, 113, 253, 250, 245, 164, 164, 36, 15, 179, 197, 187, 163, 163, 163, 171, 171, 163, 139, 91, 222, 167, 131, 229, 3, 26, 141, 164, 174, 62, 239, 76, 92, 4, 25, 62, 149, 2, 231, 91, 51, 2, 2, 2, 90, 91, 59, 59, 13, 134, 97, 15, 15, 179, 217, 108, 177, 88, 188, 189, 59, 188, 189, 195, 162, 225, 209, 51, 112, 2, 93, 242, 193, 75, 169, 193, 60, 108, 26, 40, 78, 26, 38, 4, 64, 1, 57, 120, 32, 7, 16, 176, 68, 157, 220, 67, 195, 133, 66, 28, 65, 211, 207, 75, 231, 77, 219, 17, 120, 59, 0, 213, 128, 18, 48, 160, 124, 139, 25, 150, 207, 128, 120, 82, 128, 174, 15, 101, 98, 211, 72, 89, 107, 107, 70, 235, 40, 1, 139, 217, 3, 150, 207, 16, 10, 25, 164, 0, 93, 23, 152, 48, 173, 51, 208, 233, 242, 112, 64, 6, 228, 35, 1, 244, 0, 12, 222, 97, 28, 134, 176, 162, 66, 72, 128, 211, 52, 154, 43, 147, 252, 96, 27, 115, 72, 176, 113, 225, 61, 26, 70, 37, 64, 241, 195, 195, 195, 134, 168, 147, 126, 194, 10, 233, 72, 62, 93, 191, 101, 106, 15, 60, 192, 201, 201, 149, 194, 9, 254, 193, 138, 175, 155, 51, 160, 250, 157, 187, 119, 239, 78, 122, 25, 198, 225, 11, 43, 237, 249, 140, 182, 80, 230, 228, 234, 207, 75, 231, 241, 22, 237, 154, 216, 212, 186, 157, 49, 12, 225, 1, 73, 119, 95, 188, 216, 199, 98, 84, 66, 190, 237, 9, 224, 12, 93, 76, 252, 36, 159, 127, 110, 126, 73, 126, 126, 254, 33, 224, 210, 165, 199, 143, 227, 74, 75, 75, 83, 83, 35, 34, 54, 108, 216, 145, 150, 22, 28, 236, 229, 181, 211, 221, 157, 185, 200, 217, 213, 246, 217, 87, 51, 12, 31, 238, 190, 191, 115, 231, 249, 59, 190, 180, 124, 200, 46, 192, 192, 105, 107, 160, 108, 78, 147, 42, 118, 118, 148, 170, 167, 165, 165, 165, 9, 104, 68, 176, 217, 236, 83, 167, 78, 229, 229, 229, 61, 200, 204, 12, 15, 15, 143, 141, 141, 77, 73, 89, 242, 250, 245, 225, 130, 194, 194, 227, 71, 239, 190, 185, 51, 119, 254, 211, 103, 123, 6, 134, 32, 127, 84, 5, 52, 130, 252, 108, 30, 57, 149, 29, 103, 251, 233, 166, 32, 163, 209, 8, 14, 96, 160, 106, 104, 168, 175, 215, 214, 41, 20, 53, 213, 213, 146, 246, 118, 181, 85, 222, 220, 44, 22, 247, 246, 202, 100, 253, 253, 50, 151, 254, 39, 79, 63, 45, 123, 254, 100, 227, 198, 170, 242, 242, 202, 81, 2, 26, 86, 84, 71, 208, 193, 210, 92, 212, 211, 127, 99, 224, 139, 80, 177, 217, 224, 0, 18, 117, 10, 183, 26, 164, 33, 105, 87, 203, 229, 200, 66, 230, 34, 218, 248, 246, 227, 51, 34, 158, 20, 160, 10, 192, 15, 50, 119, 25, 155, 124, 247, 199, 5, 99, 192, 100, 12, 26, 131, 32, 31, 149, 0, 106, 0, 69, 104, 128, 124, 16, 168, 1, 1, 137, 68, 226, 227, 227, 67, 24, 136, 101, 80, 7, 214, 198, 47, 85, 85, 200, 0, 242, 109, 2, 56, 141, 109, 232, 232, 234, 105, 81, 105, 235, 50, 11, 118, 76, 210, 64, 21, 68, 246, 1, 41, 0, 5, 64, 21, 80, 80, 21, 80, 83, 2, 46, 202, 141, 74, 17, 228, 255, 32, 160, 9, 241, 176, 32, 1, 223, 134, 186, 118, 117, 242, 146, 109, 206, 147, 49, 8, 66, 6, 68, 62, 41, 96, 175, 0, 249, 8, 40, 1, 23, 165, 136, 18, 160, 90, 0, 231, 120, 27, 188, 59, 186, 140, 45, 141, 13, 117, 53, 237, 189, 34, 206, 217, 43, 11, 28, 55, 200, 14, 106, 8, 242, 69, 176, 17, 245, 92, 192, 13, 64, 2, 62, 192, 79, 2, 246, 30, 196, 249, 81, 173, 150, 17, 1, 137, 92, 86, 110, 226, 135, 30, 191, 54, 9, 3, 45, 90, 58, 85, 124, 98, 245, 228, 242, 209, 3, 240, 25, 71, 0, 12, 232, 97, 1, 6, 16, 232, 49, 54, 169, 234, 161, 2, 114, 153, 75, 185, 80, 35, 140, 57, 146, 224, 176, 193, 171, 48, 0, 150, 175, 106, 176, 237, 67, 8, 183, 54, 139, 123, 251, 251, 149, 95, 250, 253, 199, 171, 0, 206, 13, 232, 244, 48, 219, 4, 20, 213, 106, 177, 76, 84, 46, 101, 104, 244, 186, 213, 91, 214, 57, 19, 135, 250, 132, 13, 210, 211, 210, 210, 54, 0, 17, 17, 17, 169, 169, 169, 89, 89, 165, 69, 69, 69, 113, 113, 71, 143, 22, 22, 20, 28, 222, 59, 224, 111, 107, 194, 49, 2, 56, 39, 41, 192, 128, 122, 16, 9, 104, 21, 33, 2, 127, 14, 203, 143, 207, 95, 188, 152, 142, 227, 171, 111, 110, 93, 52, 206, 233, 231, 52, 22, 87, 152, 59, 191, 155, 76, 235, 163, 187, 253, 33, 159, 18, 176, 111, 2, 62, 59, 169, 213, 96, 70, 2, 208, 2, 218, 154, 230, 47, 3, 67, 38, 188, 79, 167, 31, 212, 235, 7, 107, 107, 117, 43, 143, 173, 112, 100, 48, 99, 227, 131, 12, 144, 0, 202, 167, 4, 42, 164, 66, 134, 91, 79, 80, 82, 39, 37, 80, 231, 150, 156, 236, 47, 170, 242, 227, 51, 232, 0, 170, 130, 142, 30, 250, 179, 194, 174, 220, 226, 226, 226, 244, 220, 92, 30, 194, 221, 14, 24, 252, 98, 241, 163, 12, 56, 35, 45, 64, 85, 128, 33, 48, 182, 52, 69, 121, 152, 169, 77, 16, 146, 146, 21, 31, 191, 109, 235, 214, 165, 54, 214, 45, 221, 186, 106, 235, 242, 177, 93, 192, 43, 190, 90, 118, 249, 252, 141, 146, 123, 247, 74, 74, 30, 30, 4, 206, 156, 137, 5, 14, 172, 253, 253, 133, 106, 91, 180, 137, 51, 70, 64, 200, 242, 53, 54, 53, 250, 70, 121, 128, 0, 180, 0, 236, 194, 228, 37, 39, 152, 19, 24, 128, 187, 120, 233, 183, 203, 110, 157, 191, 113, 186, 71, 85, 87, 77, 32, 81, 139, 149, 254, 127, 50, 224, 152, 56, 74, 165, 253, 32, 172, 20, 250, 177, 141, 232, 236, 102, 71, 89, 186, 200, 93, 88, 45, 239, 231, 28, 56, 142, 106, 62, 145, 222, 119, 229, 165, 111, 79, 125, 124, 232, 225, 41, 173, 4, 198, 157, 88, 46, 227, 252, 217, 128, 53, 170, 2, 21, 252, 16, 34, 191, 65, 203, 142, 178, 239, 194, 42, 83, 229, 253, 139, 241, 72, 97, 130, 163, 121, 81, 110, 90, 68, 209, 133, 216, 76, 129, 178, 187, 79, 122, 252, 247, 95, 191, 156, 0, 3, 74, 0, 122, 80, 208, 210, 164, 82, 17, 167, 70, 88, 71, 15, 252, 173, 69, 2, 46, 34, 169, 6, 247, 156, 7, 103, 128, 35, 56, 187, 7, 175, 207, 42, 60, 119, 63, 26, 12, 126, 71, 78, 116, 55, 139, 18, 168, 96, 177, 33, 159, 24, 156, 10, 183, 176, 46, 98, 23, 74, 144, 192, 80, 5, 254, 85, 23, 184, 105, 21, 211, 225, 187, 17, 51, 49, 103, 27, 115, 220, 74, 237, 12, 206, 57, 177, 118, 95, 55, 85, 129, 10, 63, 46, 228, 19, 115, 27, 14, 77, 110, 144, 145, 156, 4, 98, 151, 170, 202, 10, 6, 142, 235, 244, 139, 67, 215, 36, 98, 127, 15, 228, 238, 56, 177, 246, 232, 225, 37, 7, 246, 237, 141, 230, 176, 88, 34, 234, 28, 226, 135, 64, 219, 147, 249, 48, 53, 124, 184, 190, 141, 245, 132, 128, 18, 4, 132, 56, 78, 3, 5, 124, 229, 145, 229, 147, 206, 117, 247, 74, 139, 200, 138, 43, 72, 137, 13, 207, 76, 22, 200, 197, 50, 232, 126, 18, 242, 28, 26, 146, 10, 124, 81, 62, 117, 121, 83, 251, 112, 209, 38, 128, 89, 168, 44, 39, 4, 144, 66, 159, 94, 227, 185, 37, 199, 193, 187, 50, 15, 190, 222, 136, 187, 4, 223, 110, 100, 158, 60, 233, 86, 221, 174, 38, 174, 132, 205, 232, 151, 191, 204, 197, 126, 12, 72, 89, 108, 85, 61, 181, 124, 137, 68, 173, 22, 39, 231, 161, 30, 108, 70, 163, 8, 70, 52, 9, 77, 163, 135, 102, 32, 7, 194, 68, 61, 220, 15, 41, 216, 245, 104, 85, 36, 232, 66, 6, 128, 6, 53, 11, 161, 0, 126, 126, 124, 63, 46, 149, 15, 239, 1, 77, 121, 111, 244, 133, 7, 214, 16, 155, 0, 14, 231, 48, 157, 58, 141, 53, 129, 103, 87, 57, 114, 65, 9, 222, 111, 37, 238, 4, 110, 192, 152, 251, 144, 11, 192, 98, 249, 85, 73, 241, 202, 16, 21, 188, 135, 92, 62, 188, 1, 189, 44, 42, 44, 109, 87, 11, 160, 7, 203, 43, 24, 154, 182, 207, 181, 109, 109, 240, 67, 240, 249, 115, 155, 231, 197, 248, 137, 111, 75, 175, 253, 18, 46, 151, 188, 16, 218, 111, 132, 98, 192, 159, 195, 97, 137, 164, 223, 250, 52, 166, 61, 130, 122, 120, 7, 185, 124, 9, 121, 95, 148, 13, 29, 72, 188, 48, 64, 10, 8, 3, 87, 134, 198, 172, 94, 237, 105, 35, 38, 102, 117, 160, 231, 194, 53, 137, 14, 24, 180, 107, 145, 129, 77, 0, 229, 203, 253, 1, 101, 183, 233, 155, 73, 116, 255, 192, 225, 181, 57, 69, 53, 10, 238, 200, 242, 229, 196, 211, 169, 98, 197, 239, 12, 249, 226, 79, 108, 130, 192, 45, 235, 174, 69, 174, 72, 72, 88, 110, 99, 197, 138, 229, 9, 9, 145, 152, 3, 6, 86, 46, 81, 1, 178, 7, 4, 2, 129, 92, 57, 96, 50, 85, 113, 246, 157, 59, 122, 34, 33, 210, 21, 78, 241, 75, 86, 133, 27, 188, 72, 45, 31, 53, 167, 180, 16, 203, 26, 80, 178, 208, 38, 160, 5, 110, 186, 242, 139, 60, 199, 12, 190, 179, 103, 126, 47, 77, 133, 97, 28, 127, 198, 233, 44, 221, 60, 169, 103, 146, 205, 11, 115, 196, 92, 178, 161, 103, 168, 115, 133, 25, 130, 165, 230, 194, 95, 23, 33, 253, 16, 10, 111, 118, 161, 150, 4, 34, 164, 23, 65, 81, 32, 94, 133, 222, 86, 130, 23, 221, 246, 31, 236, 40, 153, 118, 177, 139, 32, 14, 131, 24, 76, 118, 37, 75, 157, 12, 245, 166, 231, 153, 239, 122, 183, 154, 180, 214, 14, 122, 225, 231, 226, 236, 98, 135, 243, 121, 190, 103, 239, 251, 62, 239, 57, 187, 144, 44, 192, 227, 185, 244, 45, 182, 179, 185, 179, 54, 77, 193, 107, 100, 96, 200, 253, 219, 30, 30, 159, 252, 181, 81, 175, 0, 13, 81, 44, 0, 39, 65, 104, 23, 215, 128, 91, 172, 33, 228, 85, 65, 219, 143, 228, 32, 220, 88, 75, 36, 98, 117, 51, 13, 24, 124, 74, 128, 116, 166, 218, 18, 158, 84, 252, 51, 56, 55, 113, 102, 62, 235, 6, 223, 244, 126, 45, 205, 66, 17, 75, 216, 170, 30, 31, 33, 125, 126, 37, 52, 181, 197, 214, 191, 111, 199, 54, 122, 111, 60, 126, 56, 89, 99, 201, 118, 70, 239, 78, 93, 42, 254, 106, 242, 81, 113, 255, 53, 54, 204, 79, 203, 118, 90, 5, 68, 145, 214, 0, 214, 16, 12, 249, 85, 176, 126, 183, 255, 230, 245, 166, 170, 35, 3, 76, 78, 39, 46, 51, 127, 178, 57, 218, 181, 121, 3, 24, 158, 28, 216, 37, 182, 10, 5, 180, 112, 216, 81, 54, 220, 158, 239, 56, 248, 219, 155, 206, 170, 153, 205, 243, 164, 39, 255, 225, 115, 106, 125, 15, 64, 169, 55, 226, 8, 48, 68, 106, 8, 38, 218, 151, 234, 129, 220, 240, 149, 173, 140, 232, 39, 189, 36, 105, 195, 0, 208, 109, 15, 155, 2, 12, 214, 147, 58, 104, 131, 82, 120, 255, 38, 234, 41, 62, 243, 47, 75, 166, 208, 40, 32, 195, 65, 212, 166, 67, 15, 41, 75, 141, 130, 14, 126, 212, 179, 219, 191, 76, 72, 218, 208, 34, 53, 210, 209, 184, 35, 163, 0, 17, 119, 231, 33, 106, 8, 5, 247, 243, 248, 8, 253, 228, 218, 32, 32, 61, 67, 65, 135, 136, 152, 232, 64, 31, 216, 149, 68, 45, 132, 27, 148, 69, 40, 16, 22, 244, 211, 230, 144, 199, 63, 140, 26, 90, 2, 98, 48, 18, 143, 4, 127, 35, 18, 140, 199, 131, 245, 230, 17, 25, 254, 27, 3, 249, 63, 87, 172, 102, 196, 103, 237, 191, 186, 29, 16, 225, 85, 223, 124, 89, 54, 188, 94, 243, 160, 92, 8, 255, 23, 242, 163, 62, 211, 79, 99, 239, 41, 16, 37, 237, 165, 217, 144, 229, 82, 159, 79, 40, 128, 63, 154, 242, 51, 61, 39, 100, 6, 125, 33, 255, 88, 116, 181, 34, 51, 62, 71, 235, 144, 65, 47, 184, 127, 165, 118, 37, 109, 242, 5, 50, 48, 53, 130, 174, 112, 63, 143, 159, 193, 214, 56, 232, 138, 64, 254, 172, 241, 25, 90, 159, 5, 56, 250, 248, 217, 75, 106, 73, 146, 184, 151, 47, 253, 14, 61, 255, 56, 47, 121, 129, 126, 54, 250, 146, 126, 241, 207, 2, 180, 151, 160, 27, 83, 11, 145, 61, 109, 111, 47, 188, 123, 16, 65, 130, 217, 137, 87, 91, 116, 187, 5, 221, 11, 11, 99, 15, 24, 230, 163, 88, 26, 247, 233, 86, 128, 96, 41, 17, 114, 192, 0, 167, 156, 114, 82, 40, 54, 22, 25, 139, 225, 248, 40, 134, 99, 199, 230, 183, 253, 83, 33, 205, 19, 138, 123, 194, 5, 239, 172, 202, 128, 31, 230, 172, 110, 101, 150, 127, 231, 82, 20, 183, 210, 105, 3, 35, 48, 108, 3, 86, 183, 219, 201, 227, 118, 89, 39, 148, 46, 72, 3, 175, 243, 230, 222, 125, 101, 206, 8, 57, 227, 106, 81, 213, 114, 39, 92, 85, 213, 202, 59, 240, 92, 85, 213, 143, 220, 215, 169, 34, 23, 93, 80, 4, 12, 103, 57, 158, 252, 254, 215, 9, 182, 43, 234, 57, 117, 0, 210, 120, 212, 162, 18, 173, 126, 200, 185, 4, 127, 37, 169, 111, 211, 209, 101, 43, 167, 35, 191, 126, 171, 138, 84, 58, 121, 1, 111, 169, 32, 126, 194, 135, 86, 44, 96, 22, 56, 206, 22, 245, 172, 138, 92, 43, 202, 189, 128, 230, 159, 237, 85, 49, 143, 178, 64, 20, 220, 138, 93, 155, 77, 182, 34, 84, 132, 22, 45, 160, 32, 6, 162, 181, 52, 52, 54, 38, 70, 10, 66, 103, 235, 79, 176, 190, 156, 133, 182, 151, 124, 94, 167, 237, 253, 132, 247, 195, 190, 217, 83, 246, 97, 114, 133, 244, 76, 162, 102, 55, 207, 157, 121, 51, 111, 33, 36, 218, 206, 110, 150, 233, 126, 197, 119, 33, 0, 166, 195, 246, 55, 11, 104, 65, 120, 172, 132, 199, 124, 218, 220, 122, 121, 175, 137, 164, 174, 115, 147, 15, 24, 130, 12, 109, 158, 103, 43, 50, 144, 1, 203, 229, 7, 107, 15, 72, 74, 73, 243, 127, 44, 224, 11, 101, 129, 64, 69, 223, 16, 230, 242, 10, 24, 112, 84, 213, 245, 52, 100, 104, 151, 112, 108, 122, 193, 201, 225, 52, 199, 121, 153, 59, 111, 230, 147, 92, 248, 100, 74, 71, 168, 10, 148, 125, 113, 119, 45, 248, 118, 21, 150, 44, 89, 211, 57, 18, 131, 80, 237, 32, 160, 68, 255, 20, 150, 72, 35, 224, 11, 221, 18, 205, 211, 144, 76, 235, 24, 178, 37, 8, 90, 1, 176, 33, 69, 223, 237, 15, 66, 65, 60, 76, 129, 186, 64, 192, 129, 194, 152, 194, 131, 38, 205, 230, 41, 235, 199, 39, 92, 88, 57, 134, 141, 79, 72, 196, 25, 82, 117, 134, 176, 157, 5, 193, 148, 224, 189, 252, 153, 71, 134, 75, 42, 214, 228, 195, 139, 69, 36, 250, 87, 46, 152, 73, 2, 69, 135, 111, 155, 249, 70, 40, 54, 196, 244, 13, 129, 178, 123, 77, 192, 106, 208, 179, 51, 38, 105, 164, 108, 26, 210, 96, 76, 69, 127, 162, 117, 185, 39, 236, 185, 30, 75, 155, 121, 36, 20, 27, 162, 97, 153, 234, 43, 216, 44, 81, 179, 192, 92, 188, 47, 192, 78, 46, 109, 167, 13, 97, 226, 245, 149, 111, 7, 78, 210, 65, 66, 176, 193, 9, 88, 217, 132, 45, 13, 27, 178, 205, 196, 43, 62, 177, 233, 179, 75, 111, 32, 176, 2, 114, 123, 56, 218, 227, 255, 157, 108, 154, 246, 195, 148, 30, 134, 156, 253, 176, 35, 39, 233, 124, 219, 111, 186, 117, 213, 148, 19, 209, 88, 85, 131, 4, 36, 150, 100, 37, 14, 214, 129, 117, 95, 87, 135, 218, 123, 10, 136, 118, 40, 253, 97, 119, 215, 208, 99, 22, 231, 184, 35, 219, 47, 168, 40, 182, 54, 2, 53, 32, 2, 48, 27, 242, 111, 34, 37, 163, 231, 83, 126, 69, 132, 100, 76, 218, 216, 158, 47, 213, 179, 159, 123, 72, 122, 126, 114, 9, 120, 9, 205, 33, 154, 234, 215, 7, 177, 70, 59, 67, 248, 193, 140, 225, 159, 252, 118, 188, 123, 25, 65, 10, 213, 35, 209, 189, 80, 46, 115, 61, 229, 75, 112, 166, 95, 36, 28, 255, 3, 129, 18, 67, 80, 30, 227, 184, 69, 160, 199, 56, 47, 121, 156, 127, 176, 108, 208, 84, 29, 231, 73, 246, 108, 218, 46, 82, 44, 58, 1, 201, 165, 136, 227, 56, 63, 57, 215, 210, 165, 239, 111, 235, 38, 18, 131, 48, 81, 202, 155, 216, 31, 207, 19, 12, 79, 121, 234, 177, 171, 186, 109, 94, 112, 13, 128, 50, 135, 42, 202, 34, 37, 70, 140, 24, 49, 98, 196, 136, 17, 35, 70, 252, 137, 255, 156, 118, 125, 151, 11, 217, 82, 191, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130} +var WailsLogoWhite = []byte{137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 128, 0, 0, 0, 128, 8, 3, 0, 0, 0, 244, 224, 145, 249, 0, 0, 3, 0, 80, 76, 84, 69, 255, 255, 255, 255, 255, 255, 252, 252, 252, 26, 26, 26, 255, 255, 255, 250, 250, 250, 255, 254, 254, 228, 57, 57, 161, 22, 30, 225, 39, 40, 255, 254, 254, 230, 72, 72, 2, 2, 2, 14, 14, 14, 253, 247, 247, 173, 11, 16, 183, 32, 37, 227, 49, 49, 51, 51, 51, 252, 243, 243, 249, 249, 249, 160, 5, 12, 251, 224, 224, 253, 246, 246, 42, 42, 42, 185, 36, 41, 207, 32, 34, 254, 249, 249, 31, 31, 31, 215, 47, 49, 221, 28, 28, 228, 228, 228, 209, 42, 44, 243, 196, 197, 198, 19, 22, 204, 18, 20, 236, 236, 236, 252, 235, 236, 73, 73, 73, 248, 248, 248, 244, 244, 244, 60, 60, 60, 227, 53, 53, 202, 202, 202, 129, 129, 129, 239, 215, 217, 113, 113, 113, 213, 36, 37, 151, 2, 9, 227, 44, 44, 246, 186, 186, 230, 63, 63, 45, 45, 45, 197, 67, 71, 174, 174, 174, 66, 66, 66, 178, 18, 24, 108, 0, 0, 252, 239, 239, 228, 189, 191, 82, 82, 82, 232, 82, 82, 242, 189, 190, 193, 30, 34, 184, 23, 28, 198, 37, 41, 195, 49, 53, 192, 37, 40, 250, 220, 221, 94, 94, 94, 162, 23, 30, 221, 102, 104, 242, 163, 163, 122, 122, 122, 231, 114, 115, 219, 54, 55, 121, 0, 6, 220, 47, 48, 72, 72, 72, 5, 5, 5, 239, 207, 208, 216, 99, 101, 148, 17, 25, 37, 37, 37, 237, 122, 122, 235, 106, 107, 245, 245, 245, 117, 2, 13, 250, 230, 230, 181, 34, 39, 216, 216, 216, 22, 22, 22, 248, 229, 230, 222, 163, 165, 238, 152, 152, 223, 223, 223, 174, 54, 60, 213, 213, 213, 225, 131, 132, 236, 181, 182, 216, 139, 141, 245, 235, 236, 172, 27, 33, 130, 9, 20, 163, 7, 14, 152, 152, 152, 254, 253, 253, 110, 110, 110, 248, 204, 204, 184, 184, 184, 164, 164, 164, 103, 103, 103, 225, 187, 189, 209, 65, 68, 239, 133, 133, 235, 167, 168, 235, 200, 201, 185, 44, 49, 51, 51, 51, 221, 151, 153, 221, 37, 37, 244, 181, 182, 208, 52, 55, 142, 34, 44, 189, 58, 62, 249, 217, 217, 209, 104, 107, 155, 66, 74, 245, 223, 224, 158, 158, 158, 221, 107, 108, 232, 185, 186, 222, 139, 141, 176, 22, 27, 196, 196, 196, 207, 34, 36, 17, 17, 17, 221, 84, 85, 191, 191, 191, 119, 119, 119, 249, 210, 210, 239, 145, 145, 243, 175, 175, 194, 107, 112, 233, 93, 93, 201, 81, 85, 242, 228, 230, 199, 147, 151, 221, 120, 122, 178, 25, 30, 239, 204, 205, 229, 150, 151, 233, 142, 143, 216, 170, 173, 161, 41, 49, 136, 136, 136, 216, 178, 181, 211, 117, 121, 173, 99, 105, 37, 37, 37, 187, 29, 33, 145, 145, 145, 84, 84, 84, 101, 101, 101, 212, 96, 99, 140, 140, 140, 223, 69, 70, 151, 27, 36, 215, 85, 87, 169, 57, 63, 89, 89, 89, 204, 114, 119, 187, 96, 101, 203, 26, 28, 172, 78, 84, 127, 15, 26, 190, 127, 132, 200, 83, 86, 200, 54, 57, 183, 122, 129, 192, 192, 192, 238, 223, 224, 255, 255, 255, 255, 254, 254, 254, 253, 253, 226, 49, 49, 228, 50, 50, 218, 46, 47, 216, 45, 46, 222, 47, 48, 220, 47, 47, 254, 250, 250, 212, 43, 45, 224, 48, 49, 214, 44, 46, 254, 248, 248, 208, 42, 44, 255, 252, 252, 251, 250, 250, 228, 52, 52, 204, 40, 43, 197, 37, 40, 200, 39, 42, 186, 32, 37, 194, 36, 40, 33, 33, 33, 191, 35, 38, 189, 34, 38, 180, 30, 35, 210, 42, 44, 30, 30, 30, 129, 10, 20, 173, 27, 33, 23, 23, 23, 207, 40, 43, 225, 31, 31, 228, 44, 44, 10, 10, 10, 202, 39, 42, 183, 31, 36, 170, 26, 32, 165, 24, 30, 134, 12, 22, 124, 7, 18, 236, 116, 116, 228, 48, 47, 19, 19, 19, 223, 50, 50, 176, 28, 34, 37, 37, 37, 138, 13, 23, 178, 29, 35, 204, 45, 47, 194, 40, 44, 227, 38, 38, 143, 14, 23, 150, 17, 25, 168, 25, 31, 156, 20, 28, 208, 47, 49, 229, 56, 56, 175, 33, 39, 212, 47, 49, 166, 31, 38, 189, 39, 43, 202, 28, 30, 189, 17, 21, 181, 12, 17, 196, 25, 29, 200, 45, 48, 199, 32, 35, 189, 24, 28, 132, 0, 6, 224, 55, 55, 213, 27, 29, 147, 22, 30, 49, 94, 55, 29, 0, 0, 0, 182, 116, 82, 78, 83, 251, 225, 254, 254, 248, 245, 246, 254, 254, 253, 250, 244, 254, 254, 248, 253, 254, 249, 245, 246, 254, 254, 248, 254, 254, 254, 254, 248, 248, 254, 253, 246, 246, 244, 254, 253, 245, 243, 237, 252, 246, 244, 244, 241, 240, 236, 233, 254, 254, 249, 247, 246, 245, 242, 238, 238, 254, 253, 250, 249, 245, 244, 240, 254, 254, 248, 247, 245, 243, 243, 243, 242, 240, 235, 254, 254, 254, 250, 249, 249, 248, 248, 247, 246, 242, 241, 252, 252, 248, 248, 246, 246, 244, 244, 244, 243, 243, 240, 240, 238, 237, 249, 247, 247, 246, 244, 243, 243, 242, 242, 242, 242, 240, 240, 239, 238, 232, 232, 230, 227, 250, 246, 245, 243, 241, 240, 240, 240, 239, 235, 235, 253, 251, 249, 248, 247, 246, 245, 244, 244, 243, 242, 241, 241, 241, 241, 240, 240, 240, 239, 238, 238, 234, 233, 246, 244, 243, 242, 237, 236, 236, 234, 231, 230, 223, 247, 243, 241, 240, 229, 225, 224, 249, 246, 242, 241, 233, 233, 222, 246, 228, 205, 116, 60, 49, 81, 0, 0, 16, 106, 73, 68, 65, 84, 120, 218, 236, 152, 107, 72, 83, 97, 24, 199, 79, 99, 45, 87, 224, 22, 203, 196, 133, 177, 21, 131, 16, 196, 76, 6, 102, 152, 87, 76, 42, 161, 164, 48, 161, 68, 76, 45, 162, 15, 154, 69, 217, 69, 165, 18, 9, 42, 75, 211, 50, 42, 250, 16, 93, 232, 94, 116, 222, 179, 153, 206, 53, 215, 230, 20, 83, 54, 84, 212, 37, 50, 209, 121, 75, 179, 214, 197, 174, 207, 251, 158, 169, 179, 102, 185, 210, 250, 80, 255, 47, 162, 135, 115, 254, 191, 247, 121, 159, 247, 121, 158, 87, 106, 6, 77, 209, 127, 83, 255, 1, 254, 3, 252, 7, 248, 15, 240, 207, 0, 32, 231, 127, 254, 99, 0, 218, 191, 11, 128, 84, 19, 133, 224, 207, 0, 168, 24, 90, 20, 233, 252, 209, 159, 0, 64, 26, 154, 146, 110, 136, 164, 145, 211, 24, 76, 63, 0, 44, 223, 125, 151, 79, 230, 4, 123, 48, 253, 0, 120, 249, 193, 11, 19, 16, 173, 117, 250, 120, 186, 1, 24, 154, 150, 109, 240, 111, 92, 205, 5, 16, 167, 154, 102, 0, 45, 77, 101, 6, 244, 244, 4, 203, 38, 244, 159, 70, 0, 146, 116, 155, 54, 242, 155, 218, 125, 164, 19, 251, 79, 31, 0, 98, 16, 205, 141, 246, 105, 212, 41, 252, 19, 40, 154, 113, 164, 114, 212, 180, 1, 32, 176, 140, 60, 181, 176, 125, 80, 201, 223, 136, 19, 128, 97, 24, 45, 136, 249, 214, 127, 154, 0, 16, 164, 252, 130, 132, 185, 61, 131, 58, 5, 127, 142, 140, 246, 164, 39, 210, 20, 2, 32, 134, 195, 209, 170, 158, 170, 176, 96, 157, 104, 103, 112, 163, 114, 150, 66, 217, 30, 112, 28, 63, 164, 104, 138, 75, 115, 100, 243, 35, 139, 139, 101, 104, 170, 0, 16, 195, 112, 84, 156, 167, 79, 53, 154, 121, 26, 45, 195, 161, 29, 21, 116, 194, 31, 47, 95, 169, 208, 37, 165, 236, 78, 59, 178, 101, 239, 209, 139, 247, 79, 203, 31, 156, 190, 184, 119, 119, 16, 188, 249, 219, 0, 104, 222, 188, 121, 42, 237, 120, 79, 88, 34, 119, 166, 40, 197, 215, 119, 93, 90, 73, 70, 240, 66, 88, 62, 72, 41, 73, 140, 47, 202, 13, 20, 8, 4, 111, 189, 228, 23, 143, 108, 34, 86, 232, 183, 35, 128, 236, 249, 204, 229, 209, 59, 82, 82, 10, 118, 175, 88, 81, 82, 88, 120, 239, 210, 173, 59, 55, 18, 207, 95, 139, 253, 18, 117, 121, 31, 89, 190, 82, 169, 91, 19, 223, 42, 8, 20, 228, 134, 159, 78, 150, 202, 184, 216, 71, 245, 148, 161, 127, 123, 11, 16, 45, 42, 185, 80, 82, 248, 240, 225, 165, 236, 236, 236, 3, 7, 14, 220, 221, 102, 108, 91, 251, 145, 213, 210, 222, 222, 162, 152, 193, 193, 79, 74, 236, 63, 168, 14, 244, 16, 196, 203, 47, 110, 205, 225, 17, 115, 79, 13, 174, 199, 83, 1, 144, 146, 189, 60, 110, 57, 209, 90, 144, 209, 104, 236, 236, 236, 236, 253, 66, 20, 181, 127, 214, 160, 197, 162, 192, 210, 241, 35, 18, 47, 110, 89, 231, 78, 190, 175, 113, 52, 255, 253, 45, 240, 189, 187, 188, 13, 100, 4, 61, 39, 234, 196, 8, 189, 189, 177, 151, 99, 148, 138, 50, 53, 184, 67, 252, 155, 54, 250, 138, 200, 183, 85, 26, 21, 222, 181, 169, 4, 160, 211, 226, 226, 218, 226, 218, 28, 32, 176, 127, 103, 148, 68, 167, 44, 179, 168, 73, 250, 233, 218, 131, 69, 184, 29, 145, 83, 9, 154, 74, 0, 32, 64, 133, 16, 130, 241, 0, 157, 120, 249, 101, 101, 106, 53, 1, 208, 41, 125, 118, 210, 90, 21, 155, 114, 83, 14, 0, 181, 157, 186, 180, 220, 56, 206, 255, 121, 148, 68, 161, 46, 47, 83, 91, 0, 0, 251, 251, 71, 147, 22, 224, 50, 0, 114, 34, 167, 49, 88, 146, 77, 8, 70, 178, 0, 150, 175, 46, 47, 135, 0, 128, 192, 95, 199, 223, 192, 163, 85, 180, 203, 0, 32, 39, 52, 204, 119, 66, 140, 22, 39, 162, 145, 4, 224, 227, 71, 227, 54, 88, 126, 121, 41, 248, 19, 2, 124, 0, 32, 1, 52, 244, 47, 0, 120, 6, 205, 230, 241, 240, 169, 69, 20, 232, 199, 111, 94, 136, 91, 219, 134, 79, 225, 129, 75, 55, 31, 236, 179, 60, 46, 45, 135, 8, 176, 254, 150, 166, 128, 157, 224, 239, 50, 0, 196, 122, 93, 226, 249, 27, 55, 110, 220, 202, 191, 149, 159, 127, 243, 102, 242, 22, 80, 73, 73, 218, 58, 144, 175, 111, 78, 80, 80, 144, 72, 36, 218, 129, 48, 28, 151, 139, 104, 170, 48, 110, 237, 129, 236, 123, 190, 51, 87, 6, 243, 75, 31, 151, 150, 130, 255, 200, 22, 204, 141, 70, 180, 74, 133, 92, 4, 32, 4, 23, 250, 150, 190, 240, 88, 138, 229, 193, 106, 251, 118, 65, 96, 96, 110, 110, 81, 209, 229, 240, 240, 240, 131, 242, 7, 242, 245, 235, 215, 175, 58, 124, 248, 230, 209, 132, 132, 115, 249, 23, 224, 160, 7, 173, 90, 252, 217, 27, 252, 9, 0, 155, 132, 202, 176, 59, 23, 220, 113, 245, 97, 92, 4, 192, 105, 187, 34, 170, 239, 149, 219, 43, 86, 47, 177, 188, 132, 93, 117, 194, 150, 234, 103, 207, 66, 67, 63, 124, 248, 16, 242, 238, 13, 104, 17, 209, 226, 171, 50, 90, 116, 86, 178, 216, 219, 251, 201, 24, 0, 72, 41, 137, 253, 184, 52, 113, 139, 12, 1, 130, 214, 197, 28, 128, 228, 90, 225, 182, 244, 149, 27, 200, 108, 238, 239, 111, 109, 53, 153, 76, 29, 0, 0, 242, 122, 13, 234, 238, 238, 126, 79, 100, 181, 90, 7, 6, 108, 233, 91, 87, 45, 246, 91, 243, 228, 201, 99, 135, 8, 88, 148, 49, 81, 207, 221, 220, 60, 60, 14, 38, 231, 80, 128, 160, 114, 237, 20, 48, 140, 157, 192, 12, 0, 173, 24, 160, 163, 163, 163, 174, 174, 174, 165, 165, 186, 26, 162, 80, 91, 91, 83, 83, 83, 85, 101, 48, 52, 55, 55, 235, 27, 6, 26, 242, 196, 222, 67, 21, 4, 96, 36, 7, 45, 138, 185, 69, 198, 190, 190, 23, 175, 94, 6, 10, 34, 206, 172, 227, 98, 4, 151, 142, 33, 7, 19, 120, 188, 34, 0, 253, 44, 64, 215, 40, 64, 45, 6, 168, 98, 1, 244, 250, 134, 202, 202, 138, 161, 138, 138, 10, 240, 119, 216, 2, 101, 196, 182, 94, 0, 48, 183, 190, 244, 250, 240, 38, 108, 213, 202, 29, 24, 193, 5, 0, 216, 5, 66, 224, 16, 129, 46, 236, 223, 50, 22, 0, 2, 160, 39, 0, 149, 245, 224, 207, 2, 148, 179, 0, 10, 201, 182, 231, 189, 189, 47, 220, 204, 173, 29, 194, 215, 221, 195, 182, 188, 99, 25, 34, 220, 143, 92, 40, 68, 90, 198, 78, 96, 79, 1, 66, 64, 0, 48, 129, 115, 0, 54, 0, 24, 32, 38, 182, 173, 179, 183, 15, 3, 116, 9, 159, 213, 188, 183, 214, 251, 249, 93, 77, 144, 81, 208, 23, 38, 95, 9, 25, 66, 240, 210, 100, 122, 201, 74, 232, 5, 122, 141, 213, 77, 100, 0, 53, 55, 59, 5, 80, 207, 77, 141, 123, 206, 2, 152, 186, 90, 158, 213, 24, 244, 67, 222, 165, 124, 126, 192, 174, 67, 92, 8, 3, 154, 36, 0, 33, 136, 218, 78, 36, 24, 209, 91, 44, 56, 129, 239, 64, 19, 71, 64, 17, 17, 103, 100, 1, 250, 77, 117, 213, 181, 85, 134, 134, 250, 39, 229, 22, 69, 83, 207, 220, 141, 82, 30, 4, 23, 77, 10, 128, 212, 131, 130, 221, 32, 24, 247, 142, 128, 246, 130, 146, 147, 147, 143, 130, 146, 174, 128, 222, 15, 235, 157, 0, 0, 1, 36, 192, 120, 128, 230, 202, 138, 199, 229, 106, 139, 78, 217, 222, 227, 127, 106, 25, 32, 32, 39, 0, 92, 196, 124, 175, 137, 10, 8, 226, 114, 41, 74, 26, 102, 179, 218, 183, 160, 194, 17, 64, 29, 147, 186, 173, 141, 5, 128, 28, 36, 0, 13, 0, 80, 6, 243, 9, 168, 169, 103, 78, 180, 200, 133, 171, 25, 135, 5, 193, 34, 63, 237, 66, 248, 214, 39, 53, 216, 172, 250, 134, 6, 54, 0, 99, 91, 96, 137, 127, 225, 182, 205, 8, 254, 118, 128, 238, 225, 97, 177, 216, 111, 223, 62, 190, 93, 141, 11, 125, 118, 69, 82, 223, 220, 11, 10, 60, 11, 82, 82, 82, 68, 238, 11, 176, 220, 71, 181, 224, 7, 227, 4, 98, 104, 105, 179, 109, 128, 0, 216, 203, 0, 27, 128, 48, 55, 115, 127, 20, 156, 194, 62, 114, 10, 91, 34, 178, 182, 74, 151, 101, 102, 102, 46, 27, 83, 102, 244, 74, 247, 241, 31, 166, 30, 165, 221, 187, 4, 195, 245, 181, 107, 215, 206, 159, 79, 76, 76, 60, 136, 37, 151, 167, 167, 159, 165, 104, 213, 143, 8, 244, 64, 48, 14, 160, 84, 45, 49, 187, 65, 237, 138, 101, 1, 76, 112, 10, 195, 214, 75, 121, 78, 222, 254, 46, 7, 230, 21, 164, 21, 230, 223, 57, 31, 75, 90, 160, 32, 48, 180, 58, 36, 100, 120, 248, 246, 185, 159, 16, 88, 197, 64, 48, 6, 80, 90, 22, 147, 234, 134, 43, 87, 106, 108, 39, 201, 193, 174, 150, 218, 170, 69, 139, 210, 79, 68, 34, 90, 235, 233, 169, 81, 105, 88, 169, 38, 200, 1, 138, 203, 43, 72, 219, 155, 127, 58, 49, 62, 55, 48, 244, 67, 173, 193, 58, 144, 119, 150, 11, 4, 104, 194, 255, 62, 172, 204, 19, 15, 56, 22, 194, 152, 8, 226, 223, 209, 149, 26, 59, 122, 8, 172, 3, 126, 159, 125, 72, 13, 112, 94, 135, 88, 128, 217, 156, 167, 64, 200, 254, 198, 219, 92, 188, 37, 41, 75, 30, 30, 178, 104, 145, 205, 6, 49, 208, 210, 200, 249, 85, 216, 83, 67, 101, 220, 246, 27, 114, 0, 8, 51, 247, 219, 91, 103, 234, 216, 41, 108, 24, 90, 195, 95, 232, 179, 1, 239, 132, 6, 91, 252, 160, 14, 48, 42, 205, 8, 5, 87, 20, 185, 242, 236, 153, 235, 251, 243, 146, 120, 227, 19, 6, 105, 73, 32, 237, 195, 54, 181, 85, 226, 55, 52, 2, 80, 46, 73, 5, 127, 82, 180, 171, 189, 162, 70, 78, 161, 30, 202, 128, 229, 83, 123, 163, 255, 169, 147, 164, 33, 160, 159, 14, 36, 28, 248, 60, 34, 127, 167, 22, 108, 222, 153, 177, 153, 0, 32, 196, 1, 186, 177, 203, 21, 76, 100, 238, 178, 67, 210, 147, 209, 233, 226, 17, 128, 114, 239, 120, 51, 246, 39, 61, 163, 214, 43, 202, 108, 234, 128, 66, 12, 0, 79, 74, 203, 212, 186, 65, 101, 15, 63, 56, 90, 6, 201, 160, 153, 76, 29, 128, 117, 218, 41, 224, 5, 208, 104, 9, 231, 82, 188, 160, 156, 226, 173, 103, 147, 14, 175, 79, 223, 47, 177, 222, 22, 215, 215, 215, 219, 203, 64, 76, 132, 25, 122, 22, 241, 135, 166, 93, 19, 111, 110, 37, 157, 128, 5, 80, 40, 8, 2, 52, 4, 10, 143, 105, 147, 43, 68, 48, 120, 143, 76, 149, 20, 151, 18, 109, 46, 222, 186, 55, 41, 235, 180, 60, 60, 60, 44, 36, 4, 186, 129, 109, 88, 172, 175, 108, 0, 0, 123, 33, 12, 107, 53, 129, 125, 157, 144, 244, 108, 232, 151, 241, 173, 117, 66, 12, 80, 207, 2, 0, 130, 14, 42, 161, 207, 134, 157, 60, 140, 48, 249, 155, 81, 80, 113, 218, 150, 228, 172, 251, 242, 240, 8, 97, 40, 59, 18, 134, 132, 64, 39, 50, 232, 173, 32, 210, 9, 8, 64, 169, 36, 213, 84, 55, 186, 124, 240, 111, 142, 40, 234, 170, 126, 86, 133, 1, 236, 133, 152, 69, 128, 134, 176, 18, 16, 84, 204, 164, 0, 16, 162, 55, 201, 61, 114, 5, 48, 21, 135, 134, 182, 144, 165, 213, 116, 119, 227, 97, 128, 52, 67, 82, 8, 89, 127, 239, 120, 19, 59, 52, 217, 231, 5, 67, 243, 254, 43, 123, 66, 187, 171, 12, 99, 157, 128, 141, 130, 174, 157, 15, 201, 0, 249, 200, 160, 73, 0, 176, 4, 2, 47, 50, 146, 146, 105, 196, 97, 28, 113, 4, 120, 28, 65, 252, 171, 89, 127, 242, 88, 156, 148, 28, 24, 98, 96, 123, 161, 162, 125, 84, 10, 128, 105, 106, 12, 56, 177, 9, 193, 199, 127, 10, 64, 10, 94, 206, 30, 32, 104, 17, 58, 25, 200, 42, 65, 245, 245, 126, 160, 48, 240, 23, 218, 67, 196, 62, 181, 138, 143, 229, 100, 189, 125, 175, 39, 0, 159, 2, 102, 205, 29, 39, 255, 125, 208, 147, 224, 235, 63, 5, 32, 131, 129, 47, 16, 8, 191, 153, 8, 155, 173, 184, 23, 138, 65, 146, 171, 171, 18, 164, 201, 130, 106, 97, 245, 104, 248, 73, 159, 174, 151, 72, 55, 135, 189, 179, 146, 67, 16, 112, 238, 80, 208, 166, 249, 142, 218, 52, 255, 248, 252, 73, 94, 207, 17, 38, 120, 235, 37, 28, 157, 201, 217, 12, 24, 182, 217, 108, 121, 251, 143, 157, 201, 56, 180, 0, 222, 230, 102, 189, 245, 114, 88, 62, 222, 154, 33, 191, 36, 110, 198, 155, 134, 10, 0, 176, 180, 67, 25, 114, 119, 178, 191, 147, 2, 160, 145, 138, 16, 124, 37, 215, 108, 66, 162, 138, 194, 48, 124, 208, 169, 193, 188, 14, 168, 145, 162, 205, 24, 106, 150, 63, 76, 136, 98, 17, 52, 149, 25, 53, 9, 149, 164, 17, 41, 73, 181, 236, 7, 202, 141, 185, 136, 114, 165, 166, 82, 32, 228, 54, 132, 112, 219, 230, 156, 171, 134, 83, 212, 232, 74, 161, 64, 102, 102, 151, 138, 144, 110, 148, 161, 12, 21, 165, 247, 124, 115, 244, 202, 205, 159, 153, 46, 67, 139, 222, 129, 81, 231, 220, 123, 223, 231, 251, 238, 249, 206, 185, 231, 56, 0, 128, 195, 44, 250, 224, 50, 138, 112, 249, 208, 163, 11, 189, 158, 6, 27, 139, 12, 21, 220, 241, 238, 215, 172, 17, 190, 124, 74, 113, 30, 107, 119, 176, 154, 220, 48, 141, 67, 131, 115, 174, 178, 46, 26, 3, 50, 124, 126, 191, 143, 228, 143, 42, 3, 6, 193, 15, 60, 148, 206, 142, 159, 94, 89, 92, 57, 219, 210, 223, 211, 212, 153, 206, 4, 109, 254, 80, 77, 203, 190, 186, 184, 100, 132, 143, 142, 233, 124, 95, 125, 159, 31, 104, 201, 114, 14, 201, 34, 88, 181, 79, 6, 48, 6, 48, 154, 147, 98, 223, 33, 33, 130, 241, 51, 139, 139, 43, 231, 30, 61, 125, 237, 105, 160, 61, 55, 161, 166, 4, 149, 205, 171, 149, 185, 75, 27, 225, 203, 145, 105, 184, 185, 139, 241, 187, 89, 67, 168, 66, 89, 130, 11, 64, 40, 173, 195, 195, 72, 100, 52, 22, 49, 1, 16, 193, 137, 202, 87, 61, 77, 87, 211, 109, 212, 51, 97, 46, 76, 61, 197, 83, 185, 252, 93, 86, 198, 23, 229, 63, 156, 244, 50, 155, 179, 59, 107, 211, 0, 24, 148, 12, 163, 246, 193, 128, 156, 16, 112, 122, 134, 30, 83, 6, 136, 224, 217, 93, 10, 28, 1, 40, 115, 243, 1, 142, 254, 220, 121, 233, 79, 3, 19, 252, 167, 63, 22, 117, 98, 36, 109, 119, 173, 2, 64, 150, 191, 154, 16, 146, 187, 170, 112, 157, 12, 127, 76, 0, 176, 141, 216, 32, 235, 219, 236, 206, 59, 106, 126, 126, 54, 210, 143, 21, 194, 244, 116, 210, 69, 52, 117, 54, 7, 71, 7, 200, 31, 28, 64, 24, 197, 156, 84, 123, 223, 70, 235, 246, 24, 0, 224, 237, 135, 185, 216, 182, 84, 51, 106, 114, 85, 239, 131, 191, 90, 37, 7, 235, 108, 92, 176, 91, 174, 5, 114, 87, 227, 49, 16, 228, 34, 197, 35, 231, 36, 159, 1, 96, 77, 228, 63, 63, 175, 194, 31, 146, 246, 180, 89, 89, 86, 133, 204, 101, 215, 5, 236, 240, 222, 16, 77, 8, 115, 165, 167, 186, 247, 32, 42, 159, 2, 176, 238, 159, 55, 79, 19, 51, 236, 35, 225, 211, 86, 105, 41, 54, 138, 4, 175, 42, 154, 179, 195, 85, 105, 64, 253, 72, 74, 74, 190, 117, 152, 234, 199, 50, 128, 224, 217, 23, 164, 191, 41, 124, 244, 252, 96, 29, 3, 29, 235, 118, 5, 39, 131, 127, 106, 46, 144, 90, 219, 201, 184, 176, 10, 160, 147, 191, 42, 62, 35, 124, 249, 154, 44, 187, 33, 151, 185, 159, 30, 23, 157, 74, 222, 82, 69, 111, 123, 15, 91, 204, 128, 240, 147, 127, 228, 169, 128, 226, 143, 132, 79, 0, 131, 165, 221, 224, 67, 146, 247, 238, 219, 90, 54, 223, 73, 7, 1, 88, 244, 15, 27, 189, 143, 194, 7, 0, 4, 2, 170, 3, 188, 118, 144, 197, 91, 224, 35, 127, 115, 239, 83, 37, 135, 123, 128, 127, 217, 233, 240, 0, 4, 137, 171, 119, 37, 106, 177, 146, 1, 129, 241, 175, 53, 47, 28, 254, 16, 89, 155, 170, 222, 39, 147, 15, 17, 72, 234, 19, 48, 238, 40, 75, 0, 228, 239, 12, 111, 238, 125, 235, 195, 46, 49, 32, 5, 181, 116, 237, 56, 1, 224, 254, 183, 170, 77, 82, 216, 147, 191, 52, 133, 12, 128, 228, 116, 28, 22, 31, 0, 21, 191, 211, 136, 31, 0, 102, 77, 166, 122, 184, 47, 62, 0, 66, 240, 189, 61, 89, 213, 213, 206, 106, 104, 21, 178, 111, 169, 209, 199, 76, 196, 5, 0, 254, 13, 253, 121, 107, 82, 46, 82, 96, 107, 185, 202, 210, 185, 47, 46, 0, 88, 26, 183, 95, 90, 215, 183, 237, 85, 123, 32, 62, 0, 144, 30, 53, 107, 188, 170, 224, 95, 3, 8, 93, 236, 46, 93, 236, 226, 255, 31, 125, 157, 47, 118, 0, 161, 67, 72, 32, 189, 235, 82, 220, 144, 78, 141, 230, 131, 77, 237, 166, 203, 141, 140, 140, 232, 127, 155, 1, 17, 221, 199, 98, 251, 63, 213, 87, 60, 18, 244, 24, 0, 24, 196, 133, 216, 120, 23, 194, 184, 50, 163, 70, 211, 7, 155, 28, 229, 241, 155, 9, 224, 203, 246, 28, 61, 194, 240, 91, 148, 0, 130, 231, 123, 221, 110, 239, 77, 222, 225, 118, 151, 228, 240, 138, 62, 183, 251, 161, 106, 2, 72, 35, 154, 220, 111, 174, 243, 17, 174, 148, 95, 114, 207, 139, 131, 117, 101, 153, 80, 209, 231, 117, 87, 192, 205, 240, 47, 190, 87, 112, 185, 224, 197, 3, 236, 251, 69, 7, 160, 243, 198, 122, 45, 84, 95, 44, 206, 107, 41, 245, 183, 217, 113, 45, 116, 165, 68, 36, 40, 0, 81, 162, 133, 82, 180, 107, 55, 249, 117, 5, 203, 111, 183, 105, 41, 109, 29, 17, 32, 161, 243, 163, 5, 218, 132, 230, 101, 60, 97, 253, 98, 236, 121, 189, 150, 50, 53, 17, 42, 207, 225, 251, 163, 205, 64, 78, 90, 226, 88, 90, 78, 126, 121, 98, 102, 121, 99, 254, 181, 196, 153, 52, 121, 174, 74, 78, 225, 68, 230, 204, 88, 90, 49, 63, 178, 14, 208, 145, 56, 51, 86, 168, 14, 16, 56, 183, 112, 42, 115, 172, 66, 168, 104, 1, 94, 124, 48, 148, 57, 51, 49, 245, 245, 50, 178, 22, 21, 0, 162, 248, 77, 125, 249, 242, 168, 15, 131, 113, 124, 161, 12, 113, 89, 205, 114, 98, 98, 9, 134, 240, 39, 16, 212, 178, 153, 217, 137, 51, 32, 72, 78, 128, 32, 72, 32, 128, 195, 99, 200, 229, 120, 9, 8, 2, 23, 12, 250, 210, 238, 21, 224, 106, 154, 84, 204, 54, 217, 251, 248, 61, 219, 122, 27, 151, 51, 76, 254, 38, 104, 186, 246, 233, 243, 201, 247, 249, 67, 87, 63, 73, 228, 140, 247, 67, 134, 78, 211, 79, 44, 80, 160, 145, 80, 45, 173, 62, 16, 227, 194, 218, 231, 0, 116, 55, 140, 69, 179, 157, 3, 116, 71, 146, 217, 123, 18, 230, 2, 244, 34, 198, 184, 231, 79, 252, 26, 169, 60, 27, 130, 198, 86, 34, 115, 118, 53, 44, 225, 204, 142, 17, 183, 215, 138, 61, 164, 218, 38, 98, 156, 33, 107, 149, 75, 242, 242, 102, 88, 114, 83, 37, 119, 197, 179, 250, 224, 220, 156, 22, 17, 104, 129, 5, 242, 107, 90, 87, 169, 242, 84, 8, 222, 7, 17, 218, 126, 251, 0, 96, 118, 131, 136, 155, 245, 60, 194, 83, 71, 178, 237, 9, 217, 59, 90, 161, 106, 111, 96, 196, 162, 7, 49, 87, 37, 49, 7, 65, 6, 109, 48, 80, 0, 247, 4, 160, 211, 78, 173, 73, 9, 0, 62, 112, 109, 113, 18, 230, 206, 148, 124, 169, 229, 193, 217, 97, 100, 245, 77, 105, 207, 193, 161, 74, 10, 15, 51, 190, 166, 176, 86, 8, 18, 84, 115, 128, 144, 172, 49, 138, 133, 175, 131, 1, 125, 30, 192, 7, 128, 94, 100, 94, 132, 217, 143, 133, 189, 2, 99, 165, 39, 44, 152, 46, 68, 25, 0, 212, 113, 227, 145, 228, 163, 21, 56, 204, 5, 177, 148, 32, 202, 166, 125, 49, 24, 147, 23, 149, 1, 207, 1, 128, 31, 102, 118, 112, 208, 195, 167, 45, 79, 244, 11, 243, 140, 150, 124, 51, 155, 160, 201, 27, 156, 167, 138, 224, 131, 67, 190, 100, 57, 73, 19, 65, 162, 24, 237, 30, 194, 93, 73, 94, 49, 14, 80, 180, 4, 192, 37, 98, 246, 132, 205, 231, 134, 109, 115, 209, 215, 8, 85, 41, 216, 195, 136, 185, 13, 112, 217, 207, 68, 166, 132, 174, 135, 76, 12, 26, 170, 8, 82, 65, 152, 13, 130, 132, 121, 75, 190, 67, 101, 226, 52, 13, 238, 79, 3, 44, 110, 80, 58, 144, 128, 115, 35, 102, 220, 254, 206, 107, 176, 1, 39, 217, 95, 95, 136, 139, 37, 249, 1, 56, 66, 14, 66, 204, 21, 0, 253, 156, 32, 238, 76, 139, 127, 3, 154, 120, 112, 49, 66, 206, 12, 246, 208, 39, 1, 180, 101, 34, 154, 191, 184, 2, 0, 26, 180, 242, 8, 184, 72, 48, 46, 49, 172, 5, 53, 5, 240, 186, 137, 98, 113, 208, 96, 86, 8, 210, 153, 181, 234, 144, 114, 89, 99, 60, 175, 180, 218, 90, 42, 128, 39, 21, 160, 164, 103, 48, 132, 174, 218, 97, 8, 66, 244, 126, 34, 64, 94, 54, 17, 231, 82, 34, 206, 147, 206, 211, 74, 61, 182, 7, 80, 101, 103, 104, 84, 10, 253, 104, 128, 102, 142, 227, 67, 222, 164, 204, 117, 115, 24, 220, 70, 192, 221, 209, 201, 189, 4, 0, 182, 184, 179, 39, 7, 108, 197, 163, 46, 4, 63, 19, 96, 106, 66, 27, 222, 28, 3, 22, 115, 255, 93, 181, 66, 232, 218, 177, 229, 230, 69, 240, 186, 132, 190, 27, 51, 233, 87, 73, 37, 107, 140, 142, 16, 152, 199, 92, 30, 75, 84, 1, 165, 7, 67, 70, 157, 5, 89, 194, 224, 169, 250, 9, 41, 189, 26, 24, 155, 11, 178, 55, 112, 100, 214, 19, 0, 0, 219, 15, 163, 200, 238, 22, 69, 208, 49, 4, 198, 50, 90, 106, 10, 192, 29, 226, 152, 35, 140, 47, 122, 41, 128, 221, 182, 217, 60, 83, 58, 223, 54, 189, 53, 248, 206, 34, 160, 191, 193, 244, 76, 72, 215, 107, 122, 183, 105, 18, 81, 10, 19, 120, 247, 213, 200, 195, 91, 191, 117, 154, 240, 120, 46, 81, 31, 231, 245, 131, 105, 179, 145, 55, 7, 255, 101, 110, 68, 53, 93, 215, 171, 217, 160, 50, 0, 126, 43, 122, 58, 13, 95, 146, 177, 242, 176, 115, 145, 219, 165, 123, 210, 109, 69, 66, 55, 198, 227, 113, 27, 138, 166, 252, 149, 44, 252, 53, 16, 250, 119, 181, 40, 182, 63, 123, 232, 239, 67, 232, 157, 148, 2, 80, 183, 72, 53, 168, 135, 86, 138, 183, 247, 199, 157, 149, 7, 191, 201, 218, 47, 171, 48, 155, 255, 103, 215, 242, 127, 195, 1, 70, 29, 48, 234, 128, 81, 7, 140, 58, 96, 212, 1, 163, 14, 24, 117, 0, 213, 1, 0, 87, 162, 212, 25, 139, 217, 220, 95, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130} diff --git a/v3/pkg/application/keys.go b/v3/pkg/application/keys.go new file mode 100644 index 00000000..d7d1beaf --- /dev/null +++ b/v3/pkg/application/keys.go @@ -0,0 +1,172 @@ +package application + +import ( + "fmt" + "strconv" + "strings" +) + +// modifier is actually a string +type modifier int + +const ( + // CmdOrCtrlKey represents Command on Mac and Control on other platforms + CmdOrCtrlKey modifier = 0 << iota + // OptionOrAltKey represents Option on Mac and Alt on other platforms + OptionOrAltKey modifier = 1 << iota + // ShiftKey represents the shift key on all systems + ShiftKey modifier = 2 << iota + // SuperKey represents Command on Mac and the Windows key on the other platforms + SuperKey modifier = 3 << iota + // ControlKey represents the control key on all systems + ControlKey modifier = 4 << iota +) + +var modifierMap = map[string]modifier{ + "cmdorctrl": CmdOrCtrlKey, + "cmd": CmdOrCtrlKey, + "command": CmdOrCtrlKey, + "ctrl": CmdOrCtrlKey, + "optionoralt": OptionOrAltKey, + "alt": OptionOrAltKey, + "option": OptionOrAltKey, + "shift": ShiftKey, + "super": SuperKey, +} + +// accelerator holds the keyboard shortcut for a menu item +type accelerator struct { + Key string + Modifiers []modifier +} + +var namedKeys = map[string]struct{}{ + "backspace": {}, + "tab": {}, + "return": {}, + "enter": {}, + "escape": {}, + "left": {}, + "right": {}, + "up": {}, + "down": {}, + "space": {}, + "delete": {}, + "home": {}, + "end": {}, + "page up": {}, + "page down": {}, + "f1": {}, + "f2": {}, + "f3": {}, + "f4": {}, + "f5": {}, + "f6": {}, + "f7": {}, + "f8": {}, + "f9": {}, + "f10": {}, + "f11": {}, + "f12": {}, + "f13": {}, + "f14": {}, + "f15": {}, + "f16": {}, + "f17": {}, + "f18": {}, + "f19": {}, + "f20": {}, + "f21": {}, + "f22": {}, + "f23": {}, + "f24": {}, + "f25": {}, + "f26": {}, + "f27": {}, + "f28": {}, + "f29": {}, + "f30": {}, + "f31": {}, + "f32": {}, + "f33": {}, + "f34": {}, + "f35": {}, + "numlock": {}, +} + +func parseKey(key string) (string, bool) { + + // Lowercase! + key = strings.ToLower(key) + + // Check special case + if key == "plus" { + return "+", true + } + + // Handle named keys + _, namedKey := namedKeys[key] + if namedKey { + return key, true + } + + // Check we only have a single character + if len(key) != 1 { + return "", false + } + + runeKey := rune(key[0]) + + // This may be too inclusive + if strconv.IsPrint(runeKey) { + return key, true + } + + return "", false + +} + +// parseAccelerator parses a string into an accelerator +func parseAccelerator(shortcut string) (*accelerator, error) { + + var result accelerator + + // Split the shortcut by + + components := strings.Split(shortcut, "+") + + // If we only have one it should be a key + // We require components + if len(components) == 0 { + return nil, fmt.Errorf("no components given to validateComponents") + } + + modifiers := map[modifier]struct{}{} + + // Check components + for index, component := range components { + + // If last component + if index == len(components)-1 { + processedKey, validKey := parseKey(component) + if !validKey { + return nil, fmt.Errorf("'%s' is not a valid key", component) + } + result.Key = processedKey + continue + } + + // Not last component - needs to be modifier + lowercaseComponent := strings.ToLower(component) + thisModifier, valid := modifierMap[lowercaseComponent] + if !valid { + return nil, fmt.Errorf("'%s' is not a valid modifier", component) + } + // Save this data + modifiers[thisModifier] = struct{}{} + } + // return the keys as a slice + for thisModifier := range modifiers { + result.Modifiers = append(result.Modifiers, thisModifier) + } + return &result, nil +} diff --git a/v3/pkg/application/keys_darwin.go b/v3/pkg/application/keys_darwin.go new file mode 100644 index 00000000..42e1c468 --- /dev/null +++ b/v3/pkg/application/keys_darwin.go @@ -0,0 +1,28 @@ +//go:build darwin + +package application + +const ( + NSEventModifierFlagShift = 1 << 17 // Set if Shift key is pressed. + NSEventModifierFlagControl = 1 << 18 // Set if Control key is pressed. + NSEventModifierFlagOption = 1 << 19 // Set if Option or Alternate key is pressed. + NSEventModifierFlagCommand = 1 << 20 // Set if Command key is pressed. +) + +// macModifierMap maps accelerator modifiers to macOS modifiers. +var macModifierMap = map[modifier]int{ + CmdOrCtrlKey: NSEventModifierFlagCommand, + ControlKey: NSEventModifierFlagControl, + OptionOrAltKey: NSEventModifierFlagOption, + ShiftKey: NSEventModifierFlagShift, + SuperKey: NSEventModifierFlagCommand, +} + +// toMacModifier converts the accelerator to a macOS modifier. +func toMacModifier(modifiers []modifier) int { + result := 0 + for _, modifier := range modifiers { + result |= macModifierMap[modifier] + } + return result +} diff --git a/v3/pkg/application/mainthread.go b/v3/pkg/application/mainthread.go new file mode 100644 index 00000000..f0ae2803 --- /dev/null +++ b/v3/pkg/application/mainthread.go @@ -0,0 +1,21 @@ +package application + +import ( + "sync" +) + +var mainThreadFunctionStore = make(map[uint]func()) +var mainThreadFunctionStoreLock sync.RWMutex + +func generateFunctionStoreID() uint { + startID := 0 + for { + if _, ok := mainThreadFunctionStore[uint(startID)]; !ok { + return uint(startID) + } + startID++ + if startID == 0 { + Fatal("Too many functions have been dispatched to the main thread") + } + } +} diff --git a/v3/pkg/application/mainthread_darwin.go b/v3/pkg/application/mainthread_darwin.go new file mode 100644 index 00000000..5603ea0d --- /dev/null +++ b/v3/pkg/application/mainthread_darwin.go @@ -0,0 +1,37 @@ +//go:build darwin + +package application + +/* +#cgo CFLAGS: -mmacosx-version-min=10.13 -x objective-c +#cgo LDFLAGS: -framework Cocoa + +#include "Cocoa/Cocoa.h" + +extern void dispatchOnMainThreadCallback(unsigned int); + +static void dispatchOnMainThread(unsigned int id) { + dispatch_async(dispatch_get_main_queue(), ^{ + dispatchOnMainThreadCallback(id); + }); +} + +*/ +import "C" + +func (m *macosApp) dispatchOnMainThread(id uint) { + C.dispatchOnMainThread(C.uint(id)) +} + +//export dispatchOnMainThreadCallback +func dispatchOnMainThreadCallback(callbackID C.uint) { + mainThreadFunctionStoreLock.RLock() + id := uint(callbackID) + fn := mainThreadFunctionStore[id] + if fn == nil { + Fatal("dispatchCallback called with invalid id: ", id) + } + delete(mainThreadFunctionStore, id) + mainThreadFunctionStoreLock.RUnlock() + fn() +} diff --git a/v3/pkg/application/menu.go b/v3/pkg/application/menu.go new file mode 100644 index 00000000..5d56c358 --- /dev/null +++ b/v3/pkg/application/menu.go @@ -0,0 +1,103 @@ +package application + +type menuImpl interface { + update() +} + +type Menu struct { + items []*MenuItem + label string + + impl menuImpl +} + +func NewMenu() *Menu { + return &Menu{} +} + +func (m *Menu) Add(label string) *MenuItem { + result := newMenuItem(label) + m.items = append(m.items, result) + return result +} + +func (m *Menu) AddSeparator() { + result := newMenuItemSeperator() + m.items = append(m.items, result) +} + +func (m *Menu) AddCheckbox(label string, enabled bool) *MenuItem { + result := newMenuItemCheckbox(label, enabled) + m.items = append(m.items, result) + return result +} + +func (m *Menu) AddRadio(label string, enabled bool) *MenuItem { + result := newMenuItemRadio(label, enabled) + m.items = append(m.items, result) + return result +} + +func (m *Menu) Update() { + m.processRadioGroups() + if m.impl == nil { + m.impl = newMenuImpl(m) + } + m.impl.update() +} + +func (m *Menu) AddSubmenu(s string) *Menu { + result := newSubMenuItem(s) + m.items = append(m.items, result) + return result.submenu +} + +func (m *Menu) AddRole(role Role) *Menu { + result := newRole(role) + m.items = append(m.items, result) + return m +} + +func (m *Menu) processRadioGroups() { + var radioGroup []*MenuItem + for _, item := range m.items { + if item.itemType == submenu { + item.submenu.processRadioGroups() + continue + } + if item.itemType == radio { + radioGroup = append(radioGroup, item) + } else { + if len(radioGroup) > 0 { + for _, item := range radioGroup { + item.radioGroupMembers = radioGroup + } + radioGroup = nil + } + } + } + if len(radioGroup) > 0 { + for _, item := range radioGroup { + item.radioGroupMembers = radioGroup + } + } +} + +func (m *Menu) SetLabel(label string) { + m.label = label +} + +func (a *App) NewMenu() *Menu { + return &Menu{} +} + +func defaultApplicationMenu() *Menu { + menu := NewMenu() + menu.AddRole(AppMenu) + menu.AddRole(FileMenu) + menu.AddRole(EditMenu) + menu.AddRole(ViewMenu) + menu.AddRole(WindowMenu) + menu.AddRole(HelpMenu) + return menu +} diff --git a/v3/pkg/application/menu_darwin.go b/v3/pkg/application/menu_darwin.go new file mode 100644 index 00000000..b14be232 --- /dev/null +++ b/v3/pkg/application/menu_darwin.go @@ -0,0 +1,105 @@ +//go:build darwin + +package application + +/* +#cgo CFLAGS: -mmacosx-version-min=10.10 -x objective-c +#cgo LDFLAGS: -framework Cocoa + +#include "menuitem.h" + +extern void setMenuItemChecked(void*, unsigned int, bool); + +// Clear and release all menu items in the menu +void clearMenu(void* nsMenu) { + NSMenu *menu = (NSMenu *)nsMenu; + [menu removeAllItems]; +} + + +// Create a new NSMenu +void* createNSMenu(char* label) { + NSMenu *menu = [[NSMenu alloc] init]; + if( label != NULL && strlen(label) > 0 ) { + menu.title = [NSString stringWithUTF8String:label]; + free(label); + } + [menu setAutoenablesItems:NO]; + return (void*)menu; +} + +void addMenuItem(void* nsMenu, void* nsMenuItem) { + NSMenu *menu = (NSMenu *)nsMenu; + [menu addItem:nsMenuItem]; +} + +// add seperator to menu +void addMenuSeparator(void* nsMenu) { + NSMenu *menu = (NSMenu *)nsMenu; + [menu addItem:[NSMenuItem separatorItem]]; +} + +// Set the submenu of a menu item +void setMenuItemSubmenu(void* nsMenuItem, void* nsMenu) { + NSMenuItem *menuItem = (NSMenuItem *)nsMenuItem; + NSMenu *menu = (NSMenu *)nsMenu; + [menuItem setSubmenu:menu]; +} + +// Add services menu +static void addServicesMenu(void* menu) { + NSMenu *nsMenu = (__bridge NSMenu *)menu; + [NSApp setServicesMenu:nsMenu]; +} + + +*/ +import "C" +import "unsafe" + +type macosMenu struct { + menu *Menu + + nsMenu unsafe.Pointer +} + +func newMenuImpl(menu *Menu) *macosMenu { + result := &macosMenu{ + menu: menu, + } + return result +} + +func (m *macosMenu) update() { + if m.nsMenu == nil { + m.nsMenu = C.createNSMenu(C.CString(m.menu.label)) + } else { + C.clearMenu(m.nsMenu) + } + m.processMenu(m.nsMenu, m.menu) +} + +func (m *macosMenu) processMenu(parent unsafe.Pointer, menu *Menu) { + for _, item := range menu.items { + switch item.itemType { + case submenu: + submenu := item.submenu + nsSubmenu := C.createNSMenu(C.CString(item.label)) + m.processMenu(nsSubmenu, submenu) + menuItem := newMenuItemImpl(item) + item.impl = menuItem + C.addMenuItem(parent, menuItem.nsMenuItem) + C.setMenuItemSubmenu(menuItem.nsMenuItem, nsSubmenu) + if item.role == ServicesMenu { + C.addServicesMenu(nsSubmenu) + } + case text, checkbox, radio: + menuItem := newMenuItemImpl(item) + item.impl = menuItem + C.addMenuItem(parent, menuItem.nsMenuItem) + case separator: + C.addMenuSeparator(parent) + } + + } +} diff --git a/v3/pkg/application/menuitem.go b/v3/pkg/application/menuitem.go new file mode 100644 index 00000000..5c494595 --- /dev/null +++ b/v3/pkg/application/menuitem.go @@ -0,0 +1,274 @@ +package application + +import ( + "os" + "sync" + "sync/atomic" +) + +type menuItemType int + +const ( + text menuItemType = iota + separator + checkbox + radio + submenu +) + +var menuItemID uintptr +var menuItemMap = make(map[uint]*MenuItem) +var menuItemMapLock sync.Mutex + +func addToMenuItemMap(menuItem *MenuItem) { + menuItemMapLock.Lock() + menuItemMap[menuItem.id] = menuItem + menuItemMapLock.Unlock() +} + +func getMenuItemByID(id uint) *MenuItem { + menuItemMapLock.Lock() + defer menuItemMapLock.Unlock() + return menuItemMap[id] +} + +type menuItemImpl interface { + setTooltip(s string) + setLabel(s string) + setDisabled(disabled bool) + setChecked(checked bool) + setAccelerator(accelerator *accelerator) +} + +type MenuItem struct { + id uint + label string + tooltip string + disabled bool + checked bool + submenu *Menu + callback func(*Context) + itemType menuItemType + accelerator *accelerator + role Role + + impl menuItemImpl + radioGroupMembers []*MenuItem +} + +func newMenuItem(label string) *MenuItem { + result := &MenuItem{ + id: uint(atomic.AddUintptr(&menuItemID, 1)), + label: label, + itemType: text, + } + addToMenuItemMap(result) + return result +} + +func newMenuItemSeperator() *MenuItem { + result := &MenuItem{ + itemType: separator, + } + return result +} + +func newMenuItemCheckbox(label string, checked bool) *MenuItem { + result := &MenuItem{ + id: uint(atomic.AddUintptr(&menuItemID, 1)), + label: label, + checked: checked, + itemType: checkbox, + } + addToMenuItemMap(result) + return result +} + +func newMenuItemRadio(label string, checked bool) *MenuItem { + result := &MenuItem{ + id: uint(atomic.AddUintptr(&menuItemID, 1)), + label: label, + checked: checked, + itemType: radio, + } + addToMenuItemMap(result) + return result +} + +func newSubMenuItem(label string) *MenuItem { + result := &MenuItem{ + id: uint(atomic.AddUintptr(&menuItemID, 1)), + label: label, + itemType: submenu, + submenu: &Menu{ + label: label, + }, + } + addToMenuItemMap(result) + return result +} + +func newRole(role Role) *MenuItem { + switch role { + case AppMenu: + return newAppMenu() + case EditMenu: + return newEditMenu() + case FileMenu: + return newFileMenu() + case ViewMenu: + return newViewMenu() + case ServicesMenu: + return newServicesMenu() + case SpeechMenu: + return newSpeechMenu() + case WindowMenu: + return newWindowMenu() + case HelpMenu: + return newHelpMenu() + case Hide: + return newHideMenuItem() + case HideOthers: + return newHideOthersMenuItem() + case UnHide: + return newUnhideMenuItem() + case Undo: + return newUndoMenuItem() + case Redo: + return newRedoMenuItem() + case Cut: + return newCutMenuItem() + case Copy: + return newCopyMenuItem() + case Paste: + return newPasteMenuItem() + case PasteAndMatchStyle: + return newPasteAndMatchStyleMenuItem() + case SelectAll: + return newSelectAllMenuItem() + case Delete: + return newDeleteMenuItem() + case Quit: + return newQuitMenuItem() + case Close: + return newCloseMenuItem() + case About: + return newAboutMenuItem() + case Reload: + return newReloadMenuItem() + case ForceReload: + return newForceReloadMenuItem() + case ToggleFullscreen: + return newToggleFullscreenMenuItem() + case ToggleDevTools: + return newToggleDevToolsMenuItem() + case ResetZoom: + return newResetZoomMenuItem() + case ZoomIn: + return newZoomInMenuItem() + case ZoomOut: + return newZoomOutMenuItem() + case Minimize: + return newMinimizeMenuItem() + case Zoom: + return newZoomMenuItem() + + default: + println("No support for role:", role) + os.Exit(1) + } + return nil +} + +func newServicesMenu() *MenuItem { + serviceMenu := newSubMenuItem("Services") + serviceMenu.role = ServicesMenu + return serviceMenu +} + +func (m *MenuItem) handleClick() { + var ctx = newContext().withClickedMenuItem(m) + if m.itemType == checkbox { + m.checked = !m.checked + ctx.withChecked(m.checked) + m.impl.setChecked(m.checked) + } + if m.itemType == radio { + for _, member := range m.radioGroupMembers { + member.checked = false + member.impl.setChecked(false) + } + m.checked = true + ctx.withChecked(true) + m.impl.setChecked(true) + } + if m.callback != nil { + go m.callback(ctx) + } +} + +func (m *MenuItem) SetAccelerator(shortcut string) *MenuItem { + accelerator, err := parseAccelerator(shortcut) + if err != nil { + println("ERROR: invalid accelerator:", err.Error()) + return m + } + m.accelerator = accelerator + if m.impl != nil { + m.impl.setAccelerator(accelerator) + } + return m +} + +func (m *MenuItem) SetTooltip(s string) *MenuItem { + m.tooltip = s + if m.impl != nil { + m.impl.setTooltip(s) + } + return m +} + +func (m *MenuItem) SetLabel(s string) *MenuItem { + m.label = s + if m.impl != nil { + m.impl.setLabel(s) + } + return m +} + +func (m *MenuItem) SetEnabled(enabled bool) *MenuItem { + m.disabled = !enabled + if m.impl != nil { + m.impl.setDisabled(m.disabled) + } + return m +} + +func (m *MenuItem) SetChecked(checked bool) *MenuItem { + m.checked = checked + if m.impl != nil { + m.impl.setChecked(m.checked) + } + return m +} + +func (m *MenuItem) Checked() bool { + return m.checked +} + +func (m *MenuItem) OnClick(f func(*Context)) *MenuItem { + m.callback = f + return m +} + +func (m *MenuItem) Label() string { + return m.label +} + +func (m *MenuItem) Tooltip() string { + return m.tooltip +} + +func (m *MenuItem) Enabled() bool { + return !m.disabled +} diff --git a/v3/pkg/application/menuitem.h b/v3/pkg/application/menuitem.h new file mode 100644 index 00000000..91fce726 --- /dev/null +++ b/v3/pkg/application/menuitem.h @@ -0,0 +1,18 @@ + +#ifndef MenuItemDelegate_h +#define MenuItemDelegate_h + +#import + +extern void processMenuItemClick(unsigned int); + +@interface MenuItem : NSMenuItem + +@property unsigned int menuItemID; + +- (void) handleClick; + +@end + + +#endif /* MenuItemDelegate_h */ diff --git a/v3/pkg/application/menuitem.m b/v3/pkg/application/menuitem.m new file mode 100644 index 00000000..f875d0de --- /dev/null +++ b/v3/pkg/application/menuitem.m @@ -0,0 +1,13 @@ +//go:build darwin + +#import + +#import "menuitem.h" + +@implementation MenuItem + +- (void) handleClick { + processMenuItemClick(self.menuItemID); +} + +@end diff --git a/v3/pkg/application/menuitem_darwin.go b/v3/pkg/application/menuitem_darwin.go new file mode 100644 index 00000000..ce79ece3 --- /dev/null +++ b/v3/pkg/application/menuitem_darwin.go @@ -0,0 +1,620 @@ +package application + +/* +#cgo CFLAGS: -mmacosx-version-min=10.13 -x objective-c +#cgo LDFLAGS: -framework Cocoa -framework WebKit + +#include "Cocoa/Cocoa.h" +#include "menuitem.h" +#include "application.h" + +#define unicode(input) [NSString stringWithFormat:@"%C", input] + +// Create menu item +void* newMenuItem(unsigned int menuItemID, char *label, bool disabled, char* tooltip) { + MenuItem *menuItem = [MenuItem new]; + + // Label + menuItem.title = [NSString stringWithUTF8String:label]; + + if( disabled ) { + [menuItem setTarget:nil]; + } else { + [menuItem setTarget:menuItem]; + } + menuItem.menuItemID = menuItemID; + menuItem.action = @selector(handleClick); + menuItem.enabled = !disabled; + + // Tooltip + if( tooltip != NULL ) { + menuItem.toolTip = [NSString stringWithUTF8String:tooltip]; + free(tooltip); + } + + // Set the tag + [menuItem setTag:menuItemID]; + + return (void*)menuItem; +} + +// set menu item label +void setMenuItemLabel(void* nsMenuItem, char *label) { + MenuItem *menuItem = (MenuItem *)nsMenuItem; + menuItem.title = [NSString stringWithUTF8String:label]; +} + +// set menu item disabled +void setMenuItemDisabled(void* nsMenuItem, bool disabled) { + dispatch_async(dispatch_get_main_queue(), ^{ + MenuItem *menuItem = (MenuItem *)nsMenuItem; + [menuItem setEnabled:!disabled]; + // remove target + if( disabled ) { + [menuItem setTarget:nil]; + } else { + [menuItem setTarget:menuItem]; + } + }); +} + +// set menu item tooltip +void setMenuItemTooltip(void* nsMenuItem, char *tooltip) { + MenuItem *menuItem = (MenuItem *)nsMenuItem; + menuItem.toolTip = [NSString stringWithUTF8String:tooltip]; +} + +// Check menu item +void setMenuItemChecked(void* nsMenuItem, bool checked) { + MenuItem *menuItem = (MenuItem *)nsMenuItem; + menuItem.state = checked ? NSControlStateValueOn : NSControlStateValueOff; +} + +NSString* translateKey(NSString* key) { + + // Guard against no accelerator key + if( key == NULL ) { + return @""; + } + + if( [key isEqualToString:@"backspace"] ) { + return unicode(0x0008); + } + if( [key isEqualToString:@"tab"] ) { + return unicode(0x0009); + } + if( [key isEqualToString:@"return"] ) { + return unicode(0x000d); + } + if( [key isEqualToString:@"enter"] ) { + return unicode(0x000d); + } + if( [key isEqualToString:@"escape"] ) { + return unicode(0x001b); + } + if( [key isEqualToString:@"left"] ) { + return unicode(0x001c); + } + if( [key isEqualToString:@"right"] ) { + return unicode(0x001d); + } + if( [key isEqualToString:@"up"] ) { + return unicode(0x001e); + } + if( [key isEqualToString:@"down"] ) { + return unicode(0x001f); + } + if( [key isEqualToString:@"space"] ) { + return unicode(0x0020); + } + if( [key isEqualToString:@"delete"] ) { + return unicode(0x007f); + } + if( [key isEqualToString:@"home"] ) { + return unicode(0x2196); + } + if( [key isEqualToString:@"end"] ) { + return unicode(0x2198); + } + if( [key isEqualToString:@"page up"] ) { + return unicode(0x21de); + } + if( [key isEqualToString:@"page down"] ) { + return unicode(0x21df); + } + if( [key isEqualToString:@"f1"] ) { + return unicode(0xf704); + } + if( [key isEqualToString:@"f2"] ) { + return unicode(0xf705); + } + if( [key isEqualToString:@"f3"] ) { + return unicode(0xf706); + } + if( [key isEqualToString:@"f4"] ) { + return unicode(0xf707); + } + if( [key isEqualToString:@"f5"] ) { + return unicode(0xf708); + } + if( [key isEqualToString:@"f6"] ) { + return unicode(0xf709); + } + if( [key isEqualToString:@"f7"] ) { + return unicode(0xf70a); + } + if( [key isEqualToString:@"f8"] ) { + return unicode(0xf70b); + } + if( [key isEqualToString:@"f9"] ) { + return unicode(0xf70c); + } + if( [key isEqualToString:@"f10"] ) { + return unicode(0xf70d); + } + if( [key isEqualToString:@"f11"] ) { + return unicode(0xf70e); + } + if( [key isEqualToString:@"f12"] ) { + return unicode(0xf70f); + } + if( [key isEqualToString:@"f13"] ) { + return unicode(0xf710); + } + if( [key isEqualToString:@"f14"] ) { + return unicode(0xf711); + } + if( [key isEqualToString:@"f15"] ) { + return unicode(0xf712); + } + if( [key isEqualToString:@"f16"] ) { + return unicode(0xf713); + } + if( [key isEqualToString:@"f17"] ) { + return unicode(0xf714); + } + if( [key isEqualToString:@"f18"] ) { + return unicode(0xf715); + } + if( [key isEqualToString:@"f19"] ) { + return unicode(0xf716); + } + if( [key isEqualToString:@"f20"] ) { + return unicode(0xf717); + } + if( [key isEqualToString:@"f21"] ) { + return unicode(0xf718); + } + if( [key isEqualToString:@"f22"] ) { + return unicode(0xf719); + } + if( [key isEqualToString:@"f23"] ) { + return unicode(0xf71a); + } + if( [key isEqualToString:@"f24"] ) { + return unicode(0xf71b); + } + if( [key isEqualToString:@"f25"] ) { + return unicode(0xf71c); + } + if( [key isEqualToString:@"f26"] ) { + return unicode(0xf71d); + } + if( [key isEqualToString:@"f27"] ) { + return unicode(0xf71e); + } + if( [key isEqualToString:@"f28"] ) { + return unicode(0xf71f); + } + if( [key isEqualToString:@"f29"] ) { + return unicode(0xf720); + } + if( [key isEqualToString:@"f30"] ) { + return unicode(0xf721); + } + if( [key isEqualToString:@"f31"] ) { + return unicode(0xf722); + } + if( [key isEqualToString:@"f32"] ) { + return unicode(0xf723); + } + if( [key isEqualToString:@"f33"] ) { + return unicode(0xf724); + } + if( [key isEqualToString:@"f34"] ) { + return unicode(0xf725); + } + if( [key isEqualToString:@"f35"] ) { + return unicode(0xf726); + } + if( [key isEqualToString:@"numLock"] ) { + return unicode(0xf739); + } + return key; +} + +// Set the menuitem key equivalent +void setMenuItemKeyEquivalent(void* nsMenuItem, char *key, int modifier) { + MenuItem *menuItem = (MenuItem *)nsMenuItem; + NSString *nskey = [NSString stringWithUTF8String:key]; + menuItem.keyEquivalent = translateKey(nskey); + menuItem.keyEquivalentModifierMask = modifier; + free(key); +} + +// Call the copy selector on the pasteboard +static void copyToPasteboard(char *text) { + NSPasteboard *pasteboard = [NSPasteboard generalPasteboard]; + [pasteboard clearContents]; + [pasteboard setString:[NSString stringWithUTF8String:text] forType:NSPasteboardTypeString]; +} + +// Call the paste selector on the pasteboard +static char *pasteFromPasteboard(void) { + NSPasteboard *pasteboard = [NSPasteboard generalPasteboard]; + NSString *text = [pasteboard stringForType:NSPasteboardTypeString]; + if( text == nil ) { + return NULL; + } + return strdup([text UTF8String]); +} + +// Call paste selector to paste text +static void paste(void) { + [NSApp sendAction:@selector(paste:) to:nil from:nil]; +} + +// Call copy selector to copy text +static void copy(void) { + [NSApp sendAction:@selector(copy:) to:nil from:nil]; +} + +// Call cut selector to cut text +static void cut(void) { + [NSApp sendAction:@selector(cut:) to:nil from:nil]; +} + +// Call selectAll selector to select all text +static void selectAll(void) { + [NSApp sendAction:@selector(selectAll:) to:nil from:nil]; +} + +// Call delete selector to delete text +static void delete(void) { + [NSApp sendAction:@selector(delete:) to:nil from:nil]; +} + +// Call undo selector to undo text +static void undo(void) { + [NSApp sendAction:@selector(undo:) to:nil from:nil]; +} + +// Call redo selector to redo text +static void redo(void) { + [NSApp sendAction:@selector(redo:) to:nil from:nil]; +} + +// Call startSpeaking selector to start speaking text +static void startSpeaking(void) { + [NSApp sendAction:@selector(startSpeaking:) to:nil from:nil]; +} + +// Call stopSpeaking selector to stop speaking text +static void stopSpeaking(void) { + [NSApp sendAction:@selector(stopSpeaking:) to:nil from:nil]; +} + +static void pasteAndMatchStyle(void) { + [NSApp sendAction:@selector(pasteAndMatchStyle:) to:nil from:nil]; +} + +static void hideApplication(void) { + [[NSApplication sharedApplication] hide:nil]; +} + +// hideOthers hides all other applications +static void hideOthers(void) { + [[NSApplication sharedApplication] hideOtherApplications:nil]; +} + +// showAll shows all hidden applications +static void showAll(void) { + [[NSApplication sharedApplication] unhideAllApplications:nil]; +} + +*/ +import "C" +import ( + "runtime" + "unsafe" +) + +type macosMenuItem struct { + menuItem *MenuItem + + nsMenuItem unsafe.Pointer +} + +func (m macosMenuItem) setTooltip(tooltip string) { + C.setMenuItemTooltip(m.nsMenuItem, C.CString(tooltip)) +} + +func (m macosMenuItem) setLabel(s string) { + C.setMenuItemLabel(m.nsMenuItem, C.CString(s)) +} + +func (m macosMenuItem) setDisabled(disabled bool) { + C.setMenuItemDisabled(m.nsMenuItem, C.bool(disabled)) +} + +func (m macosMenuItem) setChecked(checked bool) { + C.setMenuItemChecked(m.nsMenuItem, C.bool(checked)) +} + +func (m macosMenuItem) setAccelerator(accelerator *accelerator) { + // Set the keyboard shortcut of the menu item + var modifier C.int + var key *C.char + if accelerator != nil { + modifier = C.int(toMacModifier(accelerator.Modifiers)) + key = C.CString(accelerator.Key) + } + + // Convert the key to a string + C.setMenuItemKeyEquivalent(m.nsMenuItem, key, modifier) +} + +func newMenuItemImpl(item *MenuItem) *macosMenuItem { + result := &macosMenuItem{ + menuItem: item, + } + + switch item.itemType { + case text, checkbox, submenu, radio: + result.nsMenuItem = unsafe.Pointer(C.newMenuItem(C.uint(item.id), C.CString(item.label), C.bool(item.disabled), C.CString(item.tooltip))) + if item.itemType == checkbox || item.itemType == radio { + C.setMenuItemChecked(result.nsMenuItem, C.bool(item.checked)) + } + if item.accelerator != nil { + result.setAccelerator(item.accelerator) + } + default: + panic("WTF") + } + return result +} + +func newSpeechMenu() *MenuItem { + speechMenu := NewMenu() + speechMenu.Add("Start Speaking"). + SetAccelerator("CmdOrCtrl+OptionOrAlt+Shift+."). + OnClick(func(ctx *Context) { + C.startSpeaking() + }) + speechMenu.Add("Stop Speaking"). + SetAccelerator("CmdOrCtrl+OptionOrAlt+Shift+,"). + OnClick(func(ctx *Context) { + C.stopSpeaking() + }) + subMenu := newSubMenuItem("Speech") + subMenu.submenu = speechMenu + return subMenu +} + +func newHideMenuItem() *MenuItem { + return newMenuItem("Hide " + globalApplication.options.Name). + SetAccelerator("CmdOrCtrl+h"). + OnClick(func(ctx *Context) { + C.hideApplication() + }) +} + +func newHideOthersMenuItem() *MenuItem { + return newMenuItem("Hide Others"). + SetAccelerator("CmdOrCtrl+OptionOrAlt+h"). + OnClick(func(ctx *Context) { + C.hideOthers() + }) +} + +func newUnhideMenuItem() *MenuItem { + return newMenuItem("Show All"). + OnClick(func(ctx *Context) { + C.showAll() + }) +} + +func newUndoMenuItem() *MenuItem { + return newMenuItem("Undo"). + SetAccelerator("CmdOrCtrl+z"). + OnClick(func(ctx *Context) { + C.undo() + }) +} + +// newRedoMenuItem creates a new menu item for redoing the last action +func newRedoMenuItem() *MenuItem { + return newMenuItem("Redo"). + SetAccelerator("CmdOrCtrl+Shift+z"). + OnClick(func(ctx *Context) { + C.redo() + }) +} + +func newCutMenuItem() *MenuItem { + return newMenuItem("Cut"). + SetAccelerator("CmdOrCtrl+x"). + OnClick(func(ctx *Context) { + C.cut() + }) +} + +func newCopyMenuItem() *MenuItem { + return newMenuItem("Copy"). + SetAccelerator("CmdOrCtrl+c"). + OnClick(func(ctx *Context) { + C.copy() + }) +} + +func newPasteMenuItem() *MenuItem { + return newMenuItem("Paste"). + SetAccelerator("CmdOrCtrl+v"). + OnClick(func(ctx *Context) { + C.paste() + }) +} + +func newPasteAndMatchStyleMenuItem() *MenuItem { + return newMenuItem("Paste and Match Style"). + SetAccelerator("CmdOrCtrl+OptionOrAlt+Shift+v"). + OnClick(func(ctx *Context) { + C.pasteAndMatchStyle() + }) +} + +func newDeleteMenuItem() *MenuItem { + return newMenuItem("Delete"). + SetAccelerator("backspace"). + OnClick(func(ctx *Context) { + C.delete() + }) +} + +func newQuitMenuItem() *MenuItem { + return newMenuItem("Quit " + globalApplication.options.Name). + SetAccelerator("CmdOrCtrl+q"). + OnClick(func(ctx *Context) { + globalApplication.Quit() + }) +} + +func newSelectAllMenuItem() *MenuItem { + return newMenuItem("Select All"). + SetAccelerator("CmdOrCtrl+a"). + OnClick(func(ctx *Context) { + C.selectAll() + }) +} + +func newAboutMenuItem() *MenuItem { + return newMenuItem("About " + globalApplication.options.Name). + OnClick(func(ctx *Context) { + globalApplication.ShowAboutDialog() + }) +} + +func newCloseMenuItem() *MenuItem { + return newMenuItem("Close"). + SetAccelerator("CmdOrCtrl+w"). + OnClick(func(ctx *Context) { + currentWindow := globalApplication.CurrentWindow() + if currentWindow != nil { + currentWindow.Close() + } + }) +} + +func newReloadMenuItem() *MenuItem { + return newMenuItem("Reload"). + SetAccelerator("CmdOrCtrl+r"). + OnClick(func(ctx *Context) { + currentWindow := globalApplication.CurrentWindow() + if currentWindow != nil { + currentWindow.Reload() + } + }) +} + +func newForceReloadMenuItem() *MenuItem { + return newMenuItem("Force Reload"). + SetAccelerator("CmdOrCtrl+Shift+r"). + OnClick(func(ctx *Context) { + currentWindow := globalApplication.CurrentWindow() + if currentWindow != nil { + currentWindow.ForceReload() + } + }) +} + +func newToggleFullscreenMenuItem() *MenuItem { + result := newMenuItem("Toggle Full Screen"). + OnClick(func(ctx *Context) { + currentWindow := globalApplication.CurrentWindow() + if currentWindow != nil { + currentWindow.ToggleFullscreen() + } + }) + if runtime.GOOS == "darwin" { + result.SetAccelerator("Ctrl+Command+F") + } else { + result.SetAccelerator("F11") + } + return result +} + +func newToggleDevToolsMenuItem() *MenuItem { + return newMenuItem("Toggle Developer Tools"). + SetAccelerator("Alt+Command+I"). + OnClick(func(ctx *Context) { + currentWindow := globalApplication.CurrentWindow() + if currentWindow != nil { + currentWindow.ToggleDevTools() + } + }) +} + +func newResetZoomMenuItem() *MenuItem { + // reset zoom menu item + return newMenuItem("Actual Size"). + SetAccelerator("CmdOrCtrl+0"). + OnClick(func(ctx *Context) { + currentWindow := globalApplication.CurrentWindow() + if currentWindow != nil { + currentWindow.ResetZoom() + } + }) +} + +func newZoomInMenuItem() *MenuItem { + return newMenuItem("Zoom In"). + SetAccelerator("CmdOrCtrl+plus"). + OnClick(func(ctx *Context) { + currentWindow := globalApplication.CurrentWindow() + if currentWindow != nil { + currentWindow.ZoomIn() + } + }) +} + +func newZoomOutMenuItem() *MenuItem { + return newMenuItem("Zoom Out"). + SetAccelerator("CmdOrCtrl+-"). + OnClick(func(ctx *Context) { + currentWindow := globalApplication.CurrentWindow() + if currentWindow != nil { + currentWindow.ZoomOut() + } + }) +} + +func newMinimizeMenuItem() *MenuItem { + return newMenuItem("Minimize"). + SetAccelerator("CmdOrCtrl+M"). + OnClick(func(ctx *Context) { + currentWindow := globalApplication.CurrentWindow() + if currentWindow != nil { + currentWindow.Minimize() + } + }) +} + +func newZoomMenuItem() *MenuItem { + return newMenuItem("Zoom"). + OnClick(func(ctx *Context) { + currentWindow := globalApplication.CurrentWindow() + if currentWindow != nil { + currentWindow.Zoom() + } + }) +} diff --git a/v3/pkg/application/roles.go b/v3/pkg/application/roles.go new file mode 100644 index 00000000..0aec3bd4 --- /dev/null +++ b/v3/pkg/application/roles.go @@ -0,0 +1,148 @@ +package application + +import "runtime" + +// Heavily inspired by Electron (c) 2013-2020 Github Inc. +// Electron License: https://github.com/electron/electron/blob/master/LICENSE + +// Role is a type to identify menu roles +type Role uint + +// These constants need to be kept in sync with `v2/internal/frontend/desktop/darwin/Role.h` +const ( + NoRole Role = iota + AppMenu Role = iota + EditMenu Role = iota + ViewMenu Role = iota + WindowMenu Role = iota + ServicesMenu Role = iota + HelpMenu Role = iota + + Hide Role = iota + HideOthers Role = iota + UnHide Role = iota + About Role = iota + Undo Role = iota + Redo Role = iota + Cut Role = iota + Copy Role = iota + Paste Role = iota + PasteAndMatchStyle Role = iota + SelectAll Role = iota + Delete Role = iota + SpeechMenu Role = iota + Quit Role = iota + FileMenu Role = iota + Close Role = iota + Reload Role = iota + ForceReload Role = iota + ToggleDevTools Role = iota + ResetZoom Role = iota + ZoomIn Role = iota + ZoomOut Role = iota + ToggleFullscreen Role = iota + + Minimize Role = iota + Zoom Role = iota + //Front Role = iota + //WindowRole Role = iota + + //QuitRole Role = + //TogglefullscreenRole Role = "togglefullscreen" + //ViewMenuRole Role = "viewMenu" + //WindowMenuRole Role = "windowMenu" + + //FrontRole Role = "front" + //ZoomRole Role = "zoom" + //WindowSubMenuRole Role = "windowSubMenu" + //HelpSubMenuRole Role = "helpSubMenu" + //SeparatorItemRole Role = "separatorItem" +) + +func newFileMenu() *MenuItem { + fileMenu := NewMenu() + if runtime.GOOS == "darwin" { + fileMenu.AddRole(Close) + } else { + fileMenu.AddRole(Quit) + } + subMenu := newSubMenuItem("File") + subMenu.submenu = fileMenu + return subMenu +} + +func newViewMenu() *MenuItem { + viewMenu := NewMenu() + viewMenu.AddRole(Reload) + viewMenu.AddRole(ForceReload) + viewMenu.AddRole(ToggleDevTools) + viewMenu.AddSeparator() + viewMenu.AddRole(ResetZoom) + viewMenu.AddRole(ZoomIn) + viewMenu.AddRole(ZoomOut) + viewMenu.AddSeparator() + viewMenu.AddRole(ToggleFullscreen) + subMenu := newSubMenuItem("View") + subMenu.submenu = viewMenu + return subMenu +} + +func newAppMenu() *MenuItem { + appMenu := NewMenu() + appMenu.AddRole(About) + appMenu.AddSeparator() + appMenu.AddRole(ServicesMenu) + appMenu.AddSeparator() + appMenu.AddRole(Hide) + appMenu.AddRole(HideOthers) + appMenu.AddRole(UnHide) + appMenu.AddSeparator() + appMenu.AddRole(Quit) + subMenu := newSubMenuItem(globalApplication.options.Name) + subMenu.submenu = appMenu + return subMenu +} + +func newEditMenu() *MenuItem { + editMenu := NewMenu() + editMenu.AddRole(Undo) + editMenu.AddRole(Redo) + editMenu.AddSeparator() + editMenu.AddRole(Cut) + editMenu.AddRole(Copy) + editMenu.AddRole(Paste) + if runtime.GOOS == "darwin" { + editMenu.AddRole(PasteAndMatchStyle) + editMenu.AddRole(PasteAndMatchStyle) + editMenu.AddRole(Delete) + editMenu.AddRole(SelectAll) + editMenu.AddSeparator() + editMenu.AddRole(SpeechMenu) + } else { + editMenu.AddRole(Delete) + editMenu.AddSeparator() + editMenu.AddRole(SelectAll) + } + subMenu := newSubMenuItem("Edit") + subMenu.submenu = editMenu + return subMenu +} + +func newWindowMenu() *MenuItem { + menu := NewMenu() + menu.AddRole(Minimize) + menu.AddRole(Zoom) + subMenu := newSubMenuItem("Window") + subMenu.submenu = menu + return subMenu +} + +func newHelpMenu() *MenuItem { + menu := NewMenu() + menu.Add("Learn More").OnClick(func(ctx *Context) { + globalApplication.CurrentWindow().SetURL("https://wails.io") + }) + subMenu := newSubMenuItem("Help") + subMenu.submenu = menu + return subMenu +} diff --git a/v3/pkg/application/screen.go b/v3/pkg/application/screen.go new file mode 100644 index 00000000..b3712c9d --- /dev/null +++ b/v3/pkg/application/screen.go @@ -0,0 +1,26 @@ +package application + +type Screen struct { + ID string // A unique identifier for the display + Name string // The name of the display + Scale float32 // The scale factor of the display + X int // The x-coordinate of the top-left corner of the rectangle + Y int // The y-coordinate of the top-left corner of the rectangle + Size Size // The size of the display + Bounds Rect // The bounds of the display + WorkArea Rect // The work area of the display + IsPrimary bool // Whether this is the primary display + Rotation float32 // The rotation of the display +} + +type Rect struct { + X int + Y int + Width int + Height int +} + +type Size struct { + Width int + Height int +} diff --git a/v3/pkg/application/screen_darwin.go b/v3/pkg/application/screen_darwin.go new file mode 100644 index 00000000..d45753f7 --- /dev/null +++ b/v3/pkg/application/screen_darwin.go @@ -0,0 +1,151 @@ +//go:build darwin + +package application + +/* +#cgo CFLAGS: -x objective-c +#cgo LDFLAGS: -framework Foundation -framework Cocoa -framework WebKit -framework AppKit +#import +#import +#import +#import +#include + +typedef struct Screen { + const char* id; + const char* name; + int p_width; + int p_height; + int width; + int height; + int x; + int y; + int w_width; + int w_height; + int w_x; + int w_y; + float scale; + double rotation; + bool isPrimary; +} Screen; + + +int GetNumScreens(){ + return [[NSScreen screens] count]; +} + +Screen processScreen(NSScreen* screen){ + Screen returnScreen; + returnScreen.scale = screen.backingScaleFactor; + + // screen bounds + returnScreen.height = screen.frame.size.height; + returnScreen.width = screen.frame.size.width; + returnScreen.x = screen.frame.origin.x; + returnScreen.y = screen.frame.origin.y; + + // work area + NSRect workArea = [screen visibleFrame]; + returnScreen.w_height = workArea.size.height; + returnScreen.w_width = workArea.size.width; + returnScreen.w_x = workArea.origin.x; + returnScreen.w_y = workArea.origin.y; + + + // adapted from https://stackoverflow.com/a/1237490/4188138 + NSDictionary* screenDictionary = [screen deviceDescription]; + NSNumber* screenID = [screenDictionary objectForKey:@"NSScreenNumber"]; + CGDirectDisplayID displayID = [screenID unsignedIntValue]; + returnScreen.id = [[NSString stringWithFormat:@"%d", displayID] UTF8String]; + + // Get physical monitor size + NSValue *sizeValue = [screenDictionary objectForKey:@"NSDeviceSize"]; + NSSize physicalSize = sizeValue.sizeValue; + returnScreen.p_height = physicalSize.height; + returnScreen.p_width = physicalSize.width; + + // Get the rotation + double rotation = CGDisplayRotation(displayID); + returnScreen.rotation = rotation; + + if( @available(macOS 10.15, *) ){ + returnScreen.name = [screen.localizedName UTF8String]; + } + + return returnScreen; +} + +// Get primary screen +Screen GetPrimaryScreen(){ + // Get primary screen + NSScreen *mainScreen = [NSScreen mainScreen]; + return processScreen(mainScreen); +} + +Screen* getAllScreens() { + NSArray *screens = [NSScreen screens]; + Screen* returnScreens = malloc(sizeof(Screen) * screens.count); + for (int i = 0; i < screens.count; i++) { + NSScreen* screen = [screens objectAtIndex:i]; + returnScreens[i] = processScreen(screen); + } + return returnScreens; +} + +Screen getScreenForWindow(void* window){ + NSScreen* screen = ((NSWindow*)window).screen; + return processScreen(screen); +} + +*/ +import "C" +import "unsafe" + +func cScreenToScreen(screen C.Screen) *Screen { + + return &Screen{ + Size: Size{ + Width: int(screen.p_width), + Height: int(screen.p_height), + }, + Bounds: Rect{ + X: int(screen.x), + Y: int(screen.y), + Height: int(screen.height), + Width: int(screen.width), + }, + WorkArea: Rect{ + X: int(screen.w_x), + Y: int(screen.w_y), + Height: int(screen.w_height), + Width: int(screen.w_width), + }, + Scale: float32(screen.scale), + ID: C.GoString(screen.id), + Name: C.GoString(screen.name), + IsPrimary: bool(screen.isPrimary), + Rotation: float32(screen.rotation), + } +} + +func getPrimaryScreen() (*Screen, error) { + cScreen := C.GetPrimaryScreen() + return cScreenToScreen(cScreen), nil +} + +func getScreens() ([]*Screen, error) { + cScreens := C.getAllScreens() + defer C.free(unsafe.Pointer(cScreens)) + numScreens := int(C.GetNumScreens()) + displays := make([]*Screen, numScreens) + cScreenHeaders := (*[1 << 30]C.Screen)(unsafe.Pointer(cScreens))[:numScreens:numScreens] + for i := 0; i < numScreens; i++ { + displays[i] = cScreenToScreen(cScreenHeaders[i]) + } + return displays, nil +} + +func getScreenForWindow(window *macosWebviewWindow) (*Screen, error) { + cScreen := C.getScreenForWindow(window.nsWindow) + return cScreenToScreen(cScreen), nil +} diff --git a/v3/pkg/application/systemtray.go b/v3/pkg/application/systemtray.go new file mode 100644 index 00000000..23ba6f28 --- /dev/null +++ b/v3/pkg/application/systemtray.go @@ -0,0 +1,106 @@ +package application + +type IconPosition int + +const ( + NSImageNone = iota + NSImageOnly + NSImageLeft + NSImageRight + NSImageBelow + NSImageAbove + NSImageOverlaps + NSImageLeading + NSImageTrailing +) + +type systemTrayImpl interface { + setLabel(label string) + run() + setIcon(icon []byte) + setMenu(menu *Menu) + setIconPosition(position int) + setTemplateIcon(icon []byte) + destroy() +} + +type SystemTray struct { + id uint + label string + icon []byte + iconPosition int + + // Platform specific implementation + impl systemTrayImpl + menu *Menu + isTemplateIcon bool +} + +func NewSystemTray(id uint) *SystemTray { + return &SystemTray{ + id: id, + label: "", + iconPosition: NSImageLeading, + } +} + +func (s *SystemTray) SetLabel(label string) { + if s.impl == nil { + s.label = label + return + } + s.impl.setLabel(label) +} + +func (s *SystemTray) Label() string { + return s.label +} + +func (s *SystemTray) Run() { + s.impl = newSystemTrayImpl(s) + s.impl.run() +} + +func (s *SystemTray) SetIcon(icon []byte) *SystemTray { + if s.impl == nil { + s.icon = icon + } else { + s.impl.setIcon(icon) + } + return s +} + +func (s *SystemTray) SetMenu(menu *Menu) *SystemTray { + if s.impl == nil { + s.menu = menu + } else { + s.impl.setMenu(menu) + } + return s +} + +func (s *SystemTray) SetIconPosition(iconPosition int) *SystemTray { + if s.impl == nil { + s.iconPosition = iconPosition + } else { + s.impl.setIconPosition(iconPosition) + } + return s +} + +func (s *SystemTray) SetTemplateIcon(icon []byte) *SystemTray { + if s.impl == nil { + s.icon = icon + s.isTemplateIcon = true + } else { + s.impl.setTemplateIcon(icon) + } + return s +} + +func (s *SystemTray) Destroy() { + if s.impl == nil { + return + } + s.impl.destroy() +} diff --git a/v3/pkg/application/systemtray_darwin.go b/v3/pkg/application/systemtray_darwin.go new file mode 100644 index 00000000..2baade1b --- /dev/null +++ b/v3/pkg/application/systemtray_darwin.go @@ -0,0 +1,161 @@ +//go:build darwin + +package application + +/* +#cgo CFLAGS: -mmacosx-version-min=10.13 -x objective-c +#cgo LDFLAGS: -framework Cocoa -framework WebKit + +#include "Cocoa/Cocoa.h" +#include "menuitem.h" + +// Create a new system tray +void* systemTrayNew() { + NSStatusItem *statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength] retain]; + return (void*)statusItem; +} + +void systemTraySetLabel(void* nsStatusItem, char *label) { + if( label == NULL ) { + return; + } + // Set the label on the main thread + dispatch_async(dispatch_get_main_queue(), ^{ + NSStatusItem *statusItem = (NSStatusItem *)nsStatusItem; + statusItem.button.title = [NSString stringWithUTF8String:label]; + free(label); + }); +} + +// Create an nsimage from a byte array +NSImage* imageFromBytes(const unsigned char *bytes, int length) { + NSData *data = [NSData dataWithBytes:bytes length:length]; + NSImage *image = [[NSImage alloc] initWithData:data]; + return image; +} + +// Set the icon on the system tray +void systemTraySetIcon(void* nsStatusItem, void* nsImage, int position, bool isTemplate) { + // Set the icon on the main thread + dispatch_async(dispatch_get_main_queue(), ^{ + NSStatusItem *statusItem = (NSStatusItem *)nsStatusItem; + NSImage *image = (NSImage *)nsImage; + + NSStatusBar *statusBar = [NSStatusBar systemStatusBar]; + CGFloat thickness = [statusBar thickness]; + [image setSize:NSMakeSize(thickness, thickness)]; + if( isTemplate ) { + [image setTemplate:YES]; + } + statusItem.button.image = image; + statusItem.button.imagePosition = position; + }); +} + +// Add menu to system tray +void systemTraySetMenu(void* nsStatusItem, void* nsMenu) { + // Set the menu on the main thread + dispatch_async(dispatch_get_main_queue(), ^{ + NSStatusItem *statusItem = (NSStatusItem *)nsStatusItem; + NSMenu *menu = (NSMenu *)nsMenu; + statusItem.menu = menu; + }); +} + +// Destroy system tray +void systemTrayDestroy(void* nsStatusItem) { + // Remove the status item from the status bar and its associated menu + dispatch_async(dispatch_get_main_queue(), ^{ + NSStatusItem *statusItem = (NSStatusItem *)nsStatusItem; + [[NSStatusBar systemStatusBar] removeStatusItem:statusItem]; + [statusItem release]; + }); +} + +*/ +import "C" +import ( + "unsafe" +) + +type macosSystemTray struct { + id uint + label string + icon []byte + menu *Menu + + nsStatusItem unsafe.Pointer + nsImage unsafe.Pointer + nsMenu unsafe.Pointer + iconPosition int + isTemplateIcon bool +} + +func (s *macosSystemTray) setIconPosition(position int) { + s.iconPosition = position +} + +func (s *macosSystemTray) setMenu(menu *Menu) { + s.menu = menu +} + +func (s *macosSystemTray) run() { + globalApplication.dispatchOnMainThread(func() { + if s.nsStatusItem != nil { + Fatal("System tray '%d' already running", s.id) + } + s.nsStatusItem = unsafe.Pointer(C.systemTrayNew()) + if s.label != "" { + C.systemTraySetLabel(s.nsStatusItem, C.CString(s.label)) + } + if s.icon != nil { + s.nsImage = unsafe.Pointer(C.imageFromBytes((*C.uchar)(&s.icon[0]), C.int(len(s.icon)))) + C.systemTraySetIcon(s.nsStatusItem, s.nsImage, C.int(s.iconPosition), C.bool(s.isTemplateIcon)) + } + if s.menu != nil { + s.menu.Update() + // Convert impl to macosMenu object + s.nsMenu = (s.menu.impl).(*macosMenu).nsMenu + C.systemTraySetMenu(s.nsStatusItem, s.nsMenu) + } + + }) +} + +func (s *macosSystemTray) setIcon(icon []byte) { + s.icon = icon + globalApplication.dispatchOnMainThread(func() { + s.nsImage = unsafe.Pointer(C.imageFromBytes((*C.uchar)(&icon[0]), C.int(len(icon)))) + C.systemTraySetIcon(s.nsStatusItem, s.nsImage, C.int(s.iconPosition), C.bool(s.isTemplateIcon)) + }) +} + +func (s *macosSystemTray) setTemplateIcon(icon []byte) { + s.icon = icon + s.isTemplateIcon = true + globalApplication.dispatchOnMainThread(func() { + s.nsImage = unsafe.Pointer(C.imageFromBytes((*C.uchar)(&icon[0]), C.int(len(icon)))) + C.systemTraySetIcon(s.nsStatusItem, s.nsImage, C.int(s.iconPosition), C.bool(s.isTemplateIcon)) + }) +} + +func newSystemTrayImpl(s *SystemTray) systemTrayImpl { + return &macosSystemTray{ + id: s.id, + label: s.label, + icon: s.icon, + menu: s.menu, + iconPosition: s.iconPosition, + isTemplateIcon: s.isTemplateIcon, + } +} + +func (s *macosSystemTray) setLabel(label string) { + s.label = label + C.systemTraySetLabel(s.nsStatusItem, C.CString(label)) +} + +func (s *macosSystemTray) destroy() { + // Remove the status item from the status bar and its associated menu + C.systemTrayDestroy(s.nsStatusItem) +} diff --git a/v3/pkg/application/webview_window.go b/v3/pkg/application/webview_window.go new file mode 100644 index 00000000..443eb6c8 --- /dev/null +++ b/v3/pkg/application/webview_window.go @@ -0,0 +1,587 @@ +package application + +import ( + "fmt" + "sync" + + "github.com/wailsapp/wails/v2/pkg/assetserver" + "github.com/wailsapp/wails/v2/pkg/assetserver/webview" + assetserveroptions "github.com/wailsapp/wails/v2/pkg/options/assetserver" + "github.com/wailsapp/wails/v3/internal/runtime" + "github.com/wailsapp/wails/v3/pkg/events" + "github.com/wailsapp/wails/v3/pkg/options" +) + +type ( + webviewWindowImpl interface { + setTitle(title string) + setSize(width, height int) + setAlwaysOnTop(alwaysOnTop bool) + setURL(url string) + setResizable(resizable bool) + setMinSize(width, height int) + setMaxSize(width, height int) + execJS(js string) + restore() + setBackgroundColour(color *options.RGBA) + run() + center() + size() (int, int) + width() int + height() int + position() (int, int) + destroy() + reload() + forceReload() + toggleDevTools() + resetZoom() + zoomIn() + zoomOut() + close() + zoom() + minimize() + setHTML(html string) + setPosition(x int, y int) + on(eventID uint) + minimise() + unminimise() + maximise() + unmaximise() + fullscreen() + unfullscreen() + isMinimised() bool + isMaximised() bool + isFullscreen() bool + disableSizeConstraints() + setFullscreenButtonEnabled(enabled bool) + show() + hide() + getScreen() (*Screen, error) + setFrameless(bool) + } +) + +type WebviewWindow struct { + options *options.WebviewWindow + impl webviewWindowImpl + implLock sync.RWMutex + id uint + + assets *assetserver.AssetServer + + eventListeners map[uint][]func() + eventListenersLock sync.RWMutex +} + +var windowID uint +var windowIDLock sync.RWMutex + +func getWindowID() uint { + windowIDLock.Lock() + defer windowIDLock.Unlock() + windowID++ + return windowID +} + +func NewWindow(options *options.WebviewWindow) *WebviewWindow { + if options.Width == 0 { + options.Width = 800 + } + if options.Height == 0 { + options.Height = 600 + } + + opts := assetserveroptions.Options{Assets: options.Assets.FS, Handler: options.Assets.Handler, Middleware: options.Assets.Middleware} + // TODO Bindings, Logger, ServingFrom disk? + srv, err := assetserver.NewAssetServer("", opts, false, nil, runtime.RuntimeAssetsBundle) + if err != nil { + // TODO handle errors + panic(err) + } + + return &WebviewWindow{ + id: getWindowID(), + options: options, + eventListeners: make(map[uint][]func()), + + assets: srv, + } +} + +func (w *WebviewWindow) SetTitle(title string) *WebviewWindow { + w.implLock.RLock() + defer w.implLock.RUnlock() + w.options.Title = title + if w.impl != nil { + w.impl.setTitle(title) + } + return w +} + +func (w *WebviewWindow) SetSize(width, height int) *WebviewWindow { + // Don't set size if fullscreen + if w.IsFullscreen() { + return w + } + w.options.Width = width + w.options.Height = height + + var newMaxWidth = w.options.MaxWidth + var newMaxHeight = w.options.MaxHeight + if width > w.options.MaxWidth && w.options.MaxWidth != 0 { + newMaxWidth = width + } + if height > w.options.MaxHeight && w.options.MaxHeight != 0 { + newMaxHeight = height + } + + if newMaxWidth != 0 || newMaxHeight != 0 { + w.SetMaxSize(newMaxWidth, newMaxHeight) + } + + var newMinWidth = w.options.MinWidth + var newMinHeight = w.options.MinHeight + if width < w.options.MinWidth && w.options.MinWidth != 0 { + newMinWidth = width + } + if height < w.options.MinHeight && w.options.MinHeight != 0 { + newMinHeight = height + } + + if newMinWidth != 0 || newMinHeight != 0 { + w.SetMinSize(newMinWidth, newMinHeight) + } + + if w.impl != nil { + w.impl.setSize(width, height) + } + return w +} + +func (w *WebviewWindow) run() { + if w.impl != nil { + return + } + w.implLock.Lock() + w.impl = newWindowImpl(w) + w.implLock.Unlock() + w.impl.run() +} + +func (w *WebviewWindow) SetAlwaysOnTop(b bool) *WebviewWindow { + w.options.AlwaysOnTop = b + if w.impl == nil { + w.impl.setAlwaysOnTop(b) + } + return w +} + +func (w *WebviewWindow) Show() *WebviewWindow { + if w.impl == nil { + w.run() + return w + } + w.impl.show() + return w +} +func (w *WebviewWindow) Hide() *WebviewWindow { + w.options.Hidden = true + if w.impl != nil { + w.impl.hide() + } + return w +} + +func (w *WebviewWindow) SetURL(s string) *WebviewWindow { + w.options.URL = s + if w.impl != nil { + w.impl.setURL(s) + } + return w +} + +func (w *WebviewWindow) SetResizable(b bool) *WebviewWindow { + w.options.DisableResize = !b + if w.impl != nil { + w.impl.setResizable(b) + } + return w +} + +func (w *WebviewWindow) Resizable() bool { + return !w.options.DisableResize +} + +func (w *WebviewWindow) SetMinSize(minWidth, minHeight int) *WebviewWindow { + w.options.MinWidth = minWidth + w.options.MinHeight = minHeight + + currentWidth, currentHeight := w.Size() + newWidth, newHeight := currentWidth, currentHeight + + var newSize bool + if minHeight != 0 && currentHeight < minHeight { + newHeight = minHeight + w.options.Height = newHeight + newSize = true + } + if minWidth != 0 && currentWidth < minWidth { + newWidth = minWidth + w.options.Width = newWidth + newSize = true + } + if w.impl != nil { + if newSize { + w.impl.setSize(newWidth, newHeight) + } + w.impl.setMinSize(minWidth, minHeight) + } + return w +} + +func (w *WebviewWindow) SetMaxSize(maxWidth, maxHeight int) *WebviewWindow { + w.options.MaxWidth = maxWidth + w.options.MaxHeight = maxHeight + + currentWidth, currentHeight := w.Size() + newWidth, newHeight := currentWidth, currentHeight + + var newSize bool + if maxHeight != 0 && currentHeight > maxHeight { + newHeight = maxHeight + w.options.Height = maxHeight + newSize = true + } + if maxWidth != 0 && currentWidth > maxWidth { + newWidth = maxWidth + w.options.Width = maxWidth + newSize = true + } + if w.impl != nil { + if newSize { + w.impl.setSize(newWidth, newHeight) + } + w.impl.setMaxSize(maxWidth, maxHeight) + } + return w +} + +func (w *WebviewWindow) ExecJS(js string) { + if w.impl == nil { + return + } + w.impl.execJS(js) +} + +func (w *WebviewWindow) Fullscreen() *WebviewWindow { + if w.impl == nil { + w.options.StartState = options.WindowStateFullscreen + return w + } + if !w.IsFullscreen() { + w.disableSizeConstraints() + w.impl.fullscreen() + } + return w +} + +func (w *WebviewWindow) SetFullscreenButtonEnabled(enabled bool) *WebviewWindow { + w.options.FullscreenButtonEnabled = enabled + if w.impl != nil { + w.impl.setFullscreenButtonEnabled(enabled) + } + return w +} + +// IsMinimised returns true if the window is minimised +func (w *WebviewWindow) IsMinimised() bool { + if w.impl == nil { + return false + } + return w.impl.isMinimised() +} + +// IsMaximised returns true if the window is maximised +func (w *WebviewWindow) IsMaximised() bool { + if w.impl == nil { + return false + } + return w.impl.isMaximised() +} + +// Size returns the size of the window +func (w *WebviewWindow) Size() (width int, height int) { + if w.impl == nil { + return 0, 0 + } + return w.impl.size() +} + +// IsFullscreen returns true if the window is fullscreen +func (w *WebviewWindow) IsFullscreen() bool { + w.implLock.RLock() + defer w.implLock.RUnlock() + if w.impl == nil { + return false + } + return w.impl.isFullscreen() +} + +func (w *WebviewWindow) SetBackgroundColour(colour *options.RGBA) *WebviewWindow { + w.options.BackgroundColour = colour + if w.impl != nil { + w.impl.setBackgroundColour(colour) + } + return w +} + +func (w *WebviewWindow) handleMessage(message string) { + fmt.Printf("[window %d] %s", w.id, message) + // Check for special messages + if message == "test" { + w.SetTitle("Hello World") + } +} + +func (w *WebviewWindow) handleWebViewRequest(request webview.Request) { + url, _ := request.URL() + fmt.Printf("[window %d] Request %s\n", w.id, url) + w.assets.ServeWebViewRequest(request) +} + +func (w *WebviewWindow) Center() { + if w.impl == nil { + return + } + w.impl.center() +} + +func (w *WebviewWindow) On(eventType events.WindowEventType, callback func()) { + eventID := uint(eventType) + w.eventListenersLock.Lock() + defer w.eventListenersLock.Unlock() + w.eventListeners[eventID] = append(w.eventListeners[eventID], callback) + if w.impl != nil { + w.impl.on(eventID) + } +} + +func (w *WebviewWindow) handleWindowEvent(id uint) { + w.eventListenersLock.RLock() + for _, callback := range w.eventListeners[id] { + go callback() + } + w.eventListenersLock.RUnlock() +} + +func (w *WebviewWindow) Width() int { + if w.impl == nil { + return 0 + } + return w.impl.width() +} + +func (w *WebviewWindow) Height() int { + if w.impl == nil { + return 0 + } + return w.impl.height() +} + +func (w *WebviewWindow) Position() (int, int) { + w.implLock.RLock() + defer w.implLock.RUnlock() + if w.impl == nil { + return 0, 0 + } + return w.impl.position() +} + +func (w *WebviewWindow) Destroy() { + if w.impl == nil { + return + } + w.impl.destroy() +} + +func (w *WebviewWindow) Reload() { + if w.impl == nil { + return + } + w.impl.reload() +} + +func (w *WebviewWindow) ForceReload() { + if w.impl == nil { + return + } + w.impl.forceReload() +} + +func (w *WebviewWindow) ToggleFullscreen() { + if w.impl == nil { + return + } + if w.IsFullscreen() { + w.UnFullscreen() + } else { + w.Fullscreen() + } +} + +func (w *WebviewWindow) ToggleDevTools() { + if w.impl == nil { + return + } + w.impl.toggleDevTools() +} + +func (w *WebviewWindow) ResetZoom() *WebviewWindow { + if w.impl != nil { + w.impl.resetZoom() + } + return w + +} + +func (w *WebviewWindow) ZoomIn() { + if w.impl == nil { + return + } + w.impl.zoomIn() +} + +func (w *WebviewWindow) ZoomOut() { + if w.impl == nil { + return + } + w.impl.zoomOut() +} + +func (w *WebviewWindow) Close() { + if w.impl == nil { + return + } + w.impl.close() +} + +func (w *WebviewWindow) Minimize() { + if w.impl == nil { + return + } + w.impl.minimize() +} + +func (w *WebviewWindow) Zoom() { + if w.impl == nil { + return + } + w.impl.zoom() +} + +func (w *WebviewWindow) SetHTML(html string) *WebviewWindow { + w.options.HTML = html + if w.impl != nil { + w.impl.setHTML(html) + } + return w +} + +func (w *WebviewWindow) SetPosition(x, y int) *WebviewWindow { + w.options.X = x + w.options.Y = y + if w.impl != nil { + w.impl.setPosition(x, y) + } + return w +} + +func (w *WebviewWindow) Minimise() *WebviewWindow { + if w.impl == nil { + w.options.StartState = options.WindowStateMinimised + return w + } + if !w.IsMinimised() { + w.impl.minimise() + } + return w +} + +func (w *WebviewWindow) Maximise() *WebviewWindow { + if w.impl == nil { + w.options.StartState = options.WindowStateMaximised + return w + } + if !w.IsMaximised() { + w.disableSizeConstraints() + w.impl.maximise() + } + return w +} + +func (w *WebviewWindow) UnMinimise() { + if w.impl == nil { + return + } + w.impl.unminimise() +} + +func (w *WebviewWindow) UnMaximise() { + if w.impl == nil { + return + } + w.enableSizeConstraints() + w.impl.unmaximise() +} + +func (w *WebviewWindow) UnFullscreen() { + if w.impl == nil { + return + } + w.enableSizeConstraints() + w.impl.unfullscreen() +} + +func (w *WebviewWindow) Restore() { + if w.impl == nil { + return + } + if w.IsMinimised() { + w.UnMinimise() + } else if w.IsMaximised() { + w.UnMaximise() + } else if w.IsFullscreen() { + w.UnFullscreen() + } +} + +func (w *WebviewWindow) disableSizeConstraints() { + if w.impl == nil { + return + } + w.impl.setMinSize(0, 0) + w.impl.setMaxSize(0, 0) +} + +func (w *WebviewWindow) enableSizeConstraints() { + if w.impl == nil { + return + } + w.SetMinSize(w.options.MinWidth, w.options.MinHeight) + w.SetMaxSize(w.options.MaxWidth, w.options.MaxHeight) +} + +func (w *WebviewWindow) GetScreen() (*Screen, error) { + if w.impl == nil { + return nil, nil + } + return w.impl.getScreen() +} + +func (w *WebviewWindow) SetFrameless(frameless bool) *WebviewWindow { + w.options.Frameless = frameless + if w.impl != nil { + w.impl.setFrameless(frameless) + } + return w +} diff --git a/v3/pkg/application/webview_window.h b/v3/pkg/application/webview_window.h new file mode 100644 index 00000000..72d56ee3 --- /dev/null +++ b/v3/pkg/application/webview_window.h @@ -0,0 +1,36 @@ +//go:build darwin + +#ifndef WebviewWindowDelegate_h +#define WebviewWindowDelegate_h + +#import +#import + +@interface WebviewWindow : NSWindow +- (BOOL) canBecomeKeyWindow; +- (BOOL) canBecomeMainWindow; +- (BOOL) acceptsFirstResponder; +- (BOOL) becomeFirstResponder; +- (BOOL) resignFirstResponder; +- (WebviewWindow*) initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)windowStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)deferCreation; + +@end + +@interface WebviewWindowDelegate : NSObject + +@property bool hideOnClose; +@property (retain) WKWebView* webView; +@property unsigned int windowId; +@property (retain) NSWindow* window; +@property (retain) NSEvent* leftMouseEvent; +@property unsigned int invisibleTitleBarHeight; +@property NSWindowStyleMask previousStyleMask; // Used to restore the window style mask when using frameless + +- (void)handleLeftMouseUp:(NSWindow *)window; +- (void)handleLeftMouseDown:(NSEvent*)event; + + +@end + + +#endif /* WebviewWindowDelegate_h */ diff --git a/v3/pkg/application/webview_window.m b/v3/pkg/application/webview_window.m new file mode 100644 index 00000000..50487176 --- /dev/null +++ b/v3/pkg/application/webview_window.m @@ -0,0 +1,565 @@ +//go:build darwin + +#import +#import +#import "webview_window.h" +#import "../events/events.h" + +extern void processMessage(unsigned int, const char*); +extern void processURLRequest(unsigned int, void *); +extern bool hasListeners(unsigned int); + +@implementation WebviewWindow + +- (WebviewWindow*) initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)windowStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)deferCreation; +{ + self = [super initWithContentRect:contentRect styleMask:windowStyle backing:bufferingType defer:deferCreation]; + [self setAlphaValue:1.0]; + [self setBackgroundColor:[NSColor clearColor]]; + [self setOpaque:NO]; + [self setMovableByWindowBackground:YES]; + return self; +} + +- (BOOL)canBecomeKeyWindow { + return YES; +} + +- (BOOL) canBecomeMainWindow { + return YES; +} +- (BOOL) acceptsFirstResponder { + return YES; +} +- (BOOL) becomeFirstResponder { + return YES; +} +- (BOOL) resignFirstResponder { + return YES; +} +@end + +@implementation WebviewWindowDelegate + +- (BOOL)windowShouldClose:(NSWindow *)sender { + if( self.hideOnClose ) { + [NSApp hide:nil]; + return false; + } + return true; +} + +// Handle script messages from the external bridge +- (void)userContentController:(nonnull WKUserContentController *)userContentController didReceiveScriptMessage:(nonnull WKScriptMessage *)message { + NSString *m = message.body; + /* + // TODO: Check for drag + if ( [m isEqualToString:@"drag"] ) { + if( [self IsFullScreen] ) { + return; + } + if( self.mouseEvent != nil ) { + [self.mainWindow performWindowDragWithEvent:self.mouseEvent]; + } + return; + } + */ + const char *_m = [m UTF8String]; + processMessage(self.windowId, _m); +} +- (void)handleLeftMouseDown:(NSEvent *)event { + self.leftMouseEvent = event; + NSWindow *window = [event window]; + WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[window delegate]; + if( self.invisibleTitleBarHeight > 0 ) { + NSPoint location = [event locationInWindow]; + NSRect frame = [window frame]; + if( location.y > frame.size.height - self.invisibleTitleBarHeight ) { + [window performWindowDragWithEvent:event]; + return; + } + } +} +- (void)handleLeftMouseUp:(NSWindow *)window { + self.leftMouseEvent = nil; +} + +- (void)webView:(nonnull WKWebView *)webView startURLSchemeTask:(nonnull id)urlSchemeTask { + processURLRequest(self.windowId, urlSchemeTask); +} + +- (void)webView:(nonnull WKWebView *)webView stopURLSchemeTask:(nonnull id)urlSchemeTask { + NSInputStream *stream = urlSchemeTask.request.HTTPBodyStream; + if (stream) { + NSStreamStatus status = stream.streamStatus; + if (status != NSStreamStatusClosed && status != NSStreamStatusNotOpen) { + [stream close]; + } + } +} + +// GENERATED EVENTS START +- (void)windowDidBecomeKey:(NSNotification *)notification { + if( hasListeners(EventWindowDidBecomeKey) ) { + processWindowEvent(self.windowId, EventWindowDidBecomeKey); + } +} + +- (void)windowDidBecomeMain:(NSNotification *)notification { + if( hasListeners(EventWindowDidBecomeMain) ) { + processWindowEvent(self.windowId, EventWindowDidBecomeMain); + } +} + +- (void)windowDidBeginSheet:(NSNotification *)notification { + if( hasListeners(EventWindowDidBeginSheet) ) { + processWindowEvent(self.windowId, EventWindowDidBeginSheet); + } +} + +- (void)windowDidChangeAlpha:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeAlpha) ) { + processWindowEvent(self.windowId, EventWindowDidChangeAlpha); + } +} + +- (void)windowDidChangeBackingLocation:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeBackingLocation) ) { + processWindowEvent(self.windowId, EventWindowDidChangeBackingLocation); + } +} + +- (void)windowDidChangeBackingProperties:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeBackingProperties) ) { + processWindowEvent(self.windowId, EventWindowDidChangeBackingProperties); + } +} + +- (void)windowDidChangeCollectionBehavior:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeCollectionBehavior) ) { + processWindowEvent(self.windowId, EventWindowDidChangeCollectionBehavior); + } +} + +- (void)windowDidChangeEffectiveAppearance:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeEffectiveAppearance) ) { + processWindowEvent(self.windowId, EventWindowDidChangeEffectiveAppearance); + } +} + +- (void)windowDidChangeOcclusionState:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeOcclusionState) ) { + processWindowEvent(self.windowId, EventWindowDidChangeOcclusionState); + } +} + +- (void)windowDidChangeOrderingMode:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeOrderingMode) ) { + processWindowEvent(self.windowId, EventWindowDidChangeOrderingMode); + } +} + +- (void)windowDidChangeScreen:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeScreen) ) { + processWindowEvent(self.windowId, EventWindowDidChangeScreen); + } +} + +- (void)windowDidChangeScreenParameters:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeScreenParameters) ) { + processWindowEvent(self.windowId, EventWindowDidChangeScreenParameters); + } +} + +- (void)windowDidChangeScreenProfile:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeScreenProfile) ) { + processWindowEvent(self.windowId, EventWindowDidChangeScreenProfile); + } +} + +- (void)windowDidChangeScreenSpace:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeScreenSpace) ) { + processWindowEvent(self.windowId, EventWindowDidChangeScreenSpace); + } +} + +- (void)windowDidChangeScreenSpaceProperties:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeScreenSpaceProperties) ) { + processWindowEvent(self.windowId, EventWindowDidChangeScreenSpaceProperties); + } +} + +- (void)windowDidChangeSharingType:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeSharingType) ) { + processWindowEvent(self.windowId, EventWindowDidChangeSharingType); + } +} + +- (void)windowDidChangeSpace:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeSpace) ) { + processWindowEvent(self.windowId, EventWindowDidChangeSpace); + } +} + +- (void)windowDidChangeSpaceOrderingMode:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeSpaceOrderingMode) ) { + processWindowEvent(self.windowId, EventWindowDidChangeSpaceOrderingMode); + } +} + +- (void)windowDidChangeTitle:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeTitle) ) { + processWindowEvent(self.windowId, EventWindowDidChangeTitle); + } +} + +- (void)windowDidChangeToolbar:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeToolbar) ) { + processWindowEvent(self.windowId, EventWindowDidChangeToolbar); + } +} + +- (void)windowDidChangeVisibility:(NSNotification *)notification { + if( hasListeners(EventWindowDidChangeVisibility) ) { + processWindowEvent(self.windowId, EventWindowDidChangeVisibility); + } +} + +- (void)windowDidClose:(NSNotification *)notification { + if( hasListeners(EventWindowDidClose) ) { + processWindowEvent(self.windowId, EventWindowDidClose); + } +} + +- (void)windowDidDeminiaturize:(NSNotification *)notification { + if( hasListeners(EventWindowDidDeminiaturize) ) { + processWindowEvent(self.windowId, EventWindowDidDeminiaturize); + } +} + +- (void)windowDidEndSheet:(NSNotification *)notification { + if( hasListeners(EventWindowDidEndSheet) ) { + processWindowEvent(self.windowId, EventWindowDidEndSheet); + } +} + +- (void)windowDidEnterFullScreen:(NSNotification *)notification { + if( hasListeners(EventWindowDidEnterFullScreen) ) { + processWindowEvent(self.windowId, EventWindowDidEnterFullScreen); + } +} + +- (void)windowDidEnterVersionBrowser:(NSNotification *)notification { + if( hasListeners(EventWindowDidEnterVersionBrowser) ) { + processWindowEvent(self.windowId, EventWindowDidEnterVersionBrowser); + } +} + +- (void)windowDidExitFullScreen:(NSNotification *)notification { + if( hasListeners(EventWindowDidExitFullScreen) ) { + processWindowEvent(self.windowId, EventWindowDidExitFullScreen); + } +} + +- (void)windowDidExitVersionBrowser:(NSNotification *)notification { + if( hasListeners(EventWindowDidExitVersionBrowser) ) { + processWindowEvent(self.windowId, EventWindowDidExitVersionBrowser); + } +} + +- (void)windowDidExpose:(NSNotification *)notification { + if( hasListeners(EventWindowDidExpose) ) { + processWindowEvent(self.windowId, EventWindowDidExpose); + } +} + +- (void)windowDidFocus:(NSNotification *)notification { + if( hasListeners(EventWindowDidFocus) ) { + processWindowEvent(self.windowId, EventWindowDidFocus); + } +} + +- (void)windowDidMiniaturize:(NSNotification *)notification { + if( hasListeners(EventWindowDidMiniaturize) ) { + processWindowEvent(self.windowId, EventWindowDidMiniaturize); + } +} + +- (void)windowDidMove:(NSNotification *)notification { + if( hasListeners(EventWindowDidMove) ) { + processWindowEvent(self.windowId, EventWindowDidMove); + } +} + +- (void)windowDidOrderOffScreen:(NSNotification *)notification { + if( hasListeners(EventWindowDidOrderOffScreen) ) { + processWindowEvent(self.windowId, EventWindowDidOrderOffScreen); + } +} + +- (void)windowDidOrderOnScreen:(NSNotification *)notification { + if( hasListeners(EventWindowDidOrderOnScreen) ) { + processWindowEvent(self.windowId, EventWindowDidOrderOnScreen); + } +} + +- (void)windowDidResignKey:(NSNotification *)notification { + if( hasListeners(EventWindowDidResignKey) ) { + processWindowEvent(self.windowId, EventWindowDidResignKey); + } +} + +- (void)windowDidResignMain:(NSNotification *)notification { + if( hasListeners(EventWindowDidResignMain) ) { + processWindowEvent(self.windowId, EventWindowDidResignMain); + } +} + +- (void)windowDidResize:(NSNotification *)notification { + if( hasListeners(EventWindowDidResize) ) { + processWindowEvent(self.windowId, EventWindowDidResize); + } +} + +- (void)windowDidUnfocus:(NSNotification *)notification { + if( hasListeners(EventWindowDidUnfocus) ) { + processWindowEvent(self.windowId, EventWindowDidUnfocus); + } +} + +- (void)windowDidUpdate:(NSNotification *)notification { + if( hasListeners(EventWindowDidUpdate) ) { + processWindowEvent(self.windowId, EventWindowDidUpdate); + } +} + +- (void)windowDidUpdateAlpha:(NSNotification *)notification { + if( hasListeners(EventWindowDidUpdateAlpha) ) { + processWindowEvent(self.windowId, EventWindowDidUpdateAlpha); + } +} + +- (void)windowDidUpdateCollectionBehavior:(NSNotification *)notification { + if( hasListeners(EventWindowDidUpdateCollectionBehavior) ) { + processWindowEvent(self.windowId, EventWindowDidUpdateCollectionBehavior); + } +} + +- (void)windowDidUpdateCollectionProperties:(NSNotification *)notification { + if( hasListeners(EventWindowDidUpdateCollectionProperties) ) { + processWindowEvent(self.windowId, EventWindowDidUpdateCollectionProperties); + } +} + +- (void)windowDidUpdateShadow:(NSNotification *)notification { + if( hasListeners(EventWindowDidUpdateShadow) ) { + processWindowEvent(self.windowId, EventWindowDidUpdateShadow); + } +} + +- (void)windowDidUpdateTitle:(NSNotification *)notification { + if( hasListeners(EventWindowDidUpdateTitle) ) { + processWindowEvent(self.windowId, EventWindowDidUpdateTitle); + } +} + +- (void)windowDidUpdateToolbar:(NSNotification *)notification { + if( hasListeners(EventWindowDidUpdateToolbar) ) { + processWindowEvent(self.windowId, EventWindowDidUpdateToolbar); + } +} + +- (void)windowDidUpdateVisibility:(NSNotification *)notification { + if( hasListeners(EventWindowDidUpdateVisibility) ) { + processWindowEvent(self.windowId, EventWindowDidUpdateVisibility); + } +} + +- (void)windowWillBecomeKey:(NSNotification *)notification { + if( hasListeners(EventWindowWillBecomeKey) ) { + processWindowEvent(self.windowId, EventWindowWillBecomeKey); + } +} + +- (void)windowWillBecomeMain:(NSNotification *)notification { + if( hasListeners(EventWindowWillBecomeMain) ) { + processWindowEvent(self.windowId, EventWindowWillBecomeMain); + } +} + +- (void)windowWillBeginSheet:(NSNotification *)notification { + if( hasListeners(EventWindowWillBeginSheet) ) { + processWindowEvent(self.windowId, EventWindowWillBeginSheet); + } +} + +- (void)windowWillChangeOrderingMode:(NSNotification *)notification { + if( hasListeners(EventWindowWillChangeOrderingMode) ) { + processWindowEvent(self.windowId, EventWindowWillChangeOrderingMode); + } +} + +- (void)windowWillClose:(NSNotification *)notification { + if( hasListeners(EventWindowWillClose) ) { + processWindowEvent(self.windowId, EventWindowWillClose); + } +} + +- (void)windowWillDeminiaturize:(NSNotification *)notification { + if( hasListeners(EventWindowWillDeminiaturize) ) { + processWindowEvent(self.windowId, EventWindowWillDeminiaturize); + } +} + +- (void)windowWillEnterFullScreen:(NSNotification *)notification { + if( hasListeners(EventWindowWillEnterFullScreen) ) { + processWindowEvent(self.windowId, EventWindowWillEnterFullScreen); + } +} + +- (void)windowWillEnterVersionBrowser:(NSNotification *)notification { + if( hasListeners(EventWindowWillEnterVersionBrowser) ) { + processWindowEvent(self.windowId, EventWindowWillEnterVersionBrowser); + } +} + +- (void)windowWillExitFullScreen:(NSNotification *)notification { + if( hasListeners(EventWindowWillExitFullScreen) ) { + processWindowEvent(self.windowId, EventWindowWillExitFullScreen); + } +} + +- (void)windowWillExitVersionBrowser:(NSNotification *)notification { + if( hasListeners(EventWindowWillExitVersionBrowser) ) { + processWindowEvent(self.windowId, EventWindowWillExitVersionBrowser); + } +} + +- (void)windowWillFocus:(NSNotification *)notification { + if( hasListeners(EventWindowWillFocus) ) { + processWindowEvent(self.windowId, EventWindowWillFocus); + } +} + +- (void)windowWillMiniaturize:(NSNotification *)notification { + if( hasListeners(EventWindowWillMiniaturize) ) { + processWindowEvent(self.windowId, EventWindowWillMiniaturize); + } +} + +- (void)windowWillMove:(NSNotification *)notification { + if( hasListeners(EventWindowWillMove) ) { + processWindowEvent(self.windowId, EventWindowWillMove); + } +} + +- (void)windowWillOrderOffScreen:(NSNotification *)notification { + if( hasListeners(EventWindowWillOrderOffScreen) ) { + processWindowEvent(self.windowId, EventWindowWillOrderOffScreen); + } +} + +- (void)windowWillOrderOnScreen:(NSNotification *)notification { + if( hasListeners(EventWindowWillOrderOnScreen) ) { + processWindowEvent(self.windowId, EventWindowWillOrderOnScreen); + } +} + +- (void)windowWillResignMain:(NSNotification *)notification { + if( hasListeners(EventWindowWillResignMain) ) { + processWindowEvent(self.windowId, EventWindowWillResignMain); + } +} + +- (void)windowWillResize:(NSNotification *)notification { + if( hasListeners(EventWindowWillResize) ) { + processWindowEvent(self.windowId, EventWindowWillResize); + } +} + +- (void)windowWillUnfocus:(NSNotification *)notification { + if( hasListeners(EventWindowWillUnfocus) ) { + processWindowEvent(self.windowId, EventWindowWillUnfocus); + } +} + +- (void)windowWillUpdate:(NSNotification *)notification { + if( hasListeners(EventWindowWillUpdate) ) { + processWindowEvent(self.windowId, EventWindowWillUpdate); + } +} + +- (void)windowWillUpdateAlpha:(NSNotification *)notification { + if( hasListeners(EventWindowWillUpdateAlpha) ) { + processWindowEvent(self.windowId, EventWindowWillUpdateAlpha); + } +} + +- (void)windowWillUpdateCollectionBehavior:(NSNotification *)notification { + if( hasListeners(EventWindowWillUpdateCollectionBehavior) ) { + processWindowEvent(self.windowId, EventWindowWillUpdateCollectionBehavior); + } +} + +- (void)windowWillUpdateCollectionProperties:(NSNotification *)notification { + if( hasListeners(EventWindowWillUpdateCollectionProperties) ) { + processWindowEvent(self.windowId, EventWindowWillUpdateCollectionProperties); + } +} + +- (void)windowWillUpdateShadow:(NSNotification *)notification { + if( hasListeners(EventWindowWillUpdateShadow) ) { + processWindowEvent(self.windowId, EventWindowWillUpdateShadow); + } +} + +- (void)windowWillUpdateTitle:(NSNotification *)notification { + if( hasListeners(EventWindowWillUpdateTitle) ) { + processWindowEvent(self.windowId, EventWindowWillUpdateTitle); + } +} + +- (void)windowWillUpdateToolbar:(NSNotification *)notification { + if( hasListeners(EventWindowWillUpdateToolbar) ) { + processWindowEvent(self.windowId, EventWindowWillUpdateToolbar); + } +} + +- (void)windowWillUpdateVisibility:(NSNotification *)notification { + if( hasListeners(EventWindowWillUpdateVisibility) ) { + processWindowEvent(self.windowId, EventWindowWillUpdateVisibility); + } +} + +- (void)windowWillUseStandardFrame:(NSNotification *)notification { + if( hasListeners(EventWindowWillUseStandardFrame) ) { + processWindowEvent(self.windowId, EventWindowWillUseStandardFrame); + } +} + +- (void)webView:(WKWebView *)webview didStartProvisionalNavigation:(WKNavigation *)navigation { + if( hasListeners(EventWebViewDidStartProvisionalNavigation) ) { + processWindowEvent(self.windowId, EventWebViewDidStartProvisionalNavigation); + } +} + +- (void)webView:(WKWebView *)webview didReceiveServerRedirectForProvisionalNavigation:(WKNavigation *)navigation { + if( hasListeners(EventWebViewDidReceiveServerRedirectForProvisionalNavigation) ) { + processWindowEvent(self.windowId, EventWebViewDidReceiveServerRedirectForProvisionalNavigation); + } +} + +- (void)webView:(WKWebView *)webview didFinishNavigation:(WKNavigation *)navigation { + if( hasListeners(EventWebViewDidFinishNavigation) ) { + processWindowEvent(self.windowId, EventWebViewDidFinishNavigation); + } +} + +- (void)webView:(WKWebView *)webview didCommitNavigation:(WKNavigation *)navigation { + if( hasListeners(EventWebViewDidCommitNavigation) ) { + processWindowEvent(self.windowId, EventWebViewDidCommitNavigation); + } +} + +// GENERATED EVENTS END +@end diff --git a/v3/pkg/application/webview_window_darwin.go b/v3/pkg/application/webview_window_darwin.go new file mode 100644 index 00000000..26affa35 --- /dev/null +++ b/v3/pkg/application/webview_window_darwin.go @@ -0,0 +1,1113 @@ +//go:build darwin + +package application + +/* +#cgo CFLAGS: -mmacosx-version-min=10.13 -x objective-c +#cgo LDFLAGS: -framework Cocoa -framework WebKit + +#include "application.h" +#include "webview_window.h" +#include +#include "Cocoa/Cocoa.h" +#import +#import + +extern void registerListener(unsigned int event); + +// Create a new Window +void* windowNew(unsigned int id, int width, int height, bool fraudulentWebsiteWarningEnabled, bool frameless) { + + NSWindowStyleMask styleMask = NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskMiniaturizable | NSWindowStyleMaskResizable; + if (frameless) { + styleMask = NSWindowStyleMaskBorderless | NSWindowStyleMaskResizable; + } + WebviewWindow* window = [[WebviewWindow alloc] initWithContentRect:NSMakeRect(0, 0, width-1, height-1) + styleMask:styleMask + backing:NSBackingStoreBuffered + defer:NO]; + + // Create delegate + WebviewWindowDelegate* delegate = [[WebviewWindowDelegate alloc] init]; + // Set delegate + [window setDelegate:delegate]; + delegate.windowId = id; + delegate.window = window; + + // Add NSView to window + NSView* view = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, width-1, height-1)]; + [view setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; + if( frameless ) { + [view setWantsLayer:YES]; + view.layer.cornerRadius = 8.0; + } + [window setContentView:view]; + + // Embed wkwebview in window + NSRect frame = NSMakeRect(0, 0, width, height); + WKWebViewConfiguration* config = [[WKWebViewConfiguration alloc] init]; + config.suppressesIncrementalRendering = true; + config.applicationNameForUserAgent = @"wails.io"; + [config setURLSchemeHandler:delegate forURLScheme:@"wails"]; + if (@available(macOS 10.15, *)) { + config.preferences.fraudulentWebsiteWarningEnabled = fraudulentWebsiteWarningEnabled; + } + + // Setup user content controller + WKUserContentController* userContentController = [WKUserContentController new]; + [userContentController addScriptMessageHandler:delegate name:@"external"]; + config.userContentController = userContentController; + + WKWebView* webView = [[WKWebView alloc] initWithFrame:frame configuration:config]; + [view addSubview:webView]; + + // support webview events + [webView setNavigationDelegate:delegate]; + + // Ensure webview resizes with the window + [webView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; + + delegate.webView = webView; + delegate.hideOnClose = false; + return window; +} + + +void printWindowStyle(void *window) { + WebviewWindow* nsWindow = (WebviewWindow*)window; + NSWindowStyleMask styleMask = [nsWindow styleMask]; + // Get delegate + WebviewWindowDelegate* windowDelegate = (WebviewWindowDelegate*)[nsWindow delegate]; + + printf("Window %d style mask: ", windowDelegate.windowId); + + if (styleMask & NSWindowStyleMaskTitled) + { + printf("NSWindowStyleMaskTitled "); + } + + if (styleMask & NSWindowStyleMaskClosable) + { + printf("NSWindowStyleMaskClosable "); + } + + if (styleMask & NSWindowStyleMaskMiniaturizable) + { + printf("NSWindowStyleMaskMiniaturizable "); + } + + if (styleMask & NSWindowStyleMaskResizable) + { + printf("NSWindowStyleMaskResizable "); + } + + if (styleMask & NSWindowStyleMaskFullSizeContentView) + { + printf("NSWindowStyleMaskFullSizeContentView "); + } + + if (styleMask & NSWindowStyleMaskNonactivatingPanel) + { + printf("NSWindowStyleMaskNonactivatingPanel "); + } + + if (styleMask & NSWindowStyleMaskFullScreen) + { + printf("NSWindowStyleMaskFullScreen "); + } + + if (styleMask & NSWindowStyleMaskBorderless) + { + printf("MSWindowStyleMaskBorderless "); + } + + printf("\n"); +} + + +// setInvisibleTitleBarHeight sets the invisible title bar height +void setInvisibleTitleBarHeight(void* window, unsigned int height) { + WebviewWindow* nsWindow = (WebviewWindow*)window; + // Get delegate + WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[nsWindow delegate]; + // Set height + delegate.invisibleTitleBarHeight = height; +} + +// Make NSWindow transparent +void windowSetTransparent(void* nsWindow) { + // On main thread + dispatch_async(dispatch_get_main_queue(), ^{ + WebviewWindow* window = (WebviewWindow*)nsWindow; + [window setOpaque:NO]; + [window setBackgroundColor:[NSColor clearColor]]; + }); +} + +void windowSetInvisibleTitleBar(void* nsWindow, unsigned int height) { + // On main thread + dispatch_async(dispatch_get_main_queue(), ^{ + WebviewWindow* window = (WebviewWindow*)nsWindow; + // Get delegate + WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[window delegate]; + // Set height + delegate.invisibleTitleBarHeight = height; + }); +} + + +// Set the title of the NSWindow +void windowSetTitle(void* nsWindow, char* title) { + // Set window title on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + NSString* nsTitle = [NSString stringWithUTF8String:title]; + [(WebviewWindow*)nsWindow setTitle:nsTitle]; + free(title); + }); +} + +// Set the size of the NSWindow +void windowSetSize(void* nsWindow, int width, int height) { + // Set window size on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + WebviewWindow* window = (WebviewWindow*)nsWindow; + NSSize contentSize = [window contentRectForFrameRect:NSMakeRect(0, 0, width, height)].size; + [window setContentSize:contentSize]; + [window setFrame:NSMakeRect(window.frame.origin.x, window.frame.origin.y, width, height) display:YES animate:YES]; + }); +} + +// Set NSWindow always on top +void windowSetAlwaysOnTop(void* nsWindow, bool alwaysOnTop) { + // Set window always on top on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + [(WebviewWindow*)nsWindow setLevel:alwaysOnTop ? NSStatusWindowLevel : NSNormalWindowLevel]; + }); +} + +// Load URL in NSWindow +void navigationLoadURL(void* nsWindow, char* url) { + // Load URL on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + NSURL* nsURL = [NSURL URLWithString:[NSString stringWithUTF8String:url]]; + NSURLRequest* request = [NSURLRequest requestWithURL:nsURL]; + [[(WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate] webView] loadRequest:request]; + free(url); + }); +} + +// Set NSWindow resizable +void windowSetResizable(void* nsWindow, bool resizable) { + // Set window resizable on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + WebviewWindow* window = (WebviewWindow*)nsWindow; + if (resizable) { + printf("Setting resizable to true\n"); + NSWindowStyleMask styleMask = [window styleMask] | NSWindowStyleMaskResizable; + [window setStyleMask:styleMask]; + + } else { + printf("Setting resizable to false\n"); + NSWindowStyleMask styleMask = [window styleMask] & ~NSWindowStyleMaskResizable; + [window setStyleMask:styleMask]; + } + }); +} + +// Set NSWindow min size +void windowSetMinSize(void* nsWindow, int width, int height) { + // Set window min size on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + WebviewWindow* window = (WebviewWindow*)nsWindow; + NSSize contentSize = [window contentRectForFrameRect:NSMakeRect(0, 0, width, height)].size; + [window setContentMinSize:contentSize]; + NSSize size = { width, height }; + [window setMinSize:size]; + }); +} + +// Set NSWindow max size +void windowSetMaxSize(void* nsWindow, int width, int height) { + // Set window max size on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + NSSize size = { FLT_MAX, FLT_MAX }; + size.width = width > 0 ? width : FLT_MAX; + size.height = height > 0 ? height : FLT_MAX; + WebviewWindow* window = (WebviewWindow*)nsWindow; + NSSize contentSize = [window contentRectForFrameRect:NSMakeRect(0, 0, size.width, size.height)].size; + [window setContentMaxSize:contentSize]; + [window setMaxSize:size]; + }); +} + +// Enable NSWindow devtools +void windowEnableDevTools(void* nsWindow) { + // Enable devtools on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + // Get window delegate + WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate]; + // Enable devtools in webview + [delegate.webView.configuration.preferences setValue:@YES forKey:@"developerExtrasEnabled"]; + }); +} + +// windowResetZoom +void windowResetZoom(void* nsWindow) { + // Reset zoom on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + // Get window delegate + WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate]; + // Reset zoom + [delegate.webView setMagnification:1.0]; + }); +} + +// windowZoomIn +void windowZoomIn(void* nsWindow) { + // Zoom in on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + // Get window delegate + WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate]; + // Zoom in + [delegate.webView setMagnification:delegate.webView.magnification + 0.05]; + }); +} + +// windowZoomOut +void windowZoomOut(void* nsWindow) { + // Zoom out on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + // Get window delegate + WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate]; + // Zoom out + if( delegate.webView.magnification > 1.05 ) { + [delegate.webView setMagnification:delegate.webView.magnification - 0.05]; + } else { + [delegate.webView setMagnification:1.0]; + } + }); +} + +// set the window position +void windowSetPosition(void* nsWindow, int x, int y) { + // Set window position on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + [(WebviewWindow*)nsWindow setFrameOrigin:NSMakePoint(x, y)]; + }); +} + +// Execute JS in NSWindow +void windowExecJS(void* nsWindow, const char* js) { + // Execute JS on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate]; + [delegate.webView evaluateJavaScript:[NSString stringWithUTF8String:js] completionHandler:nil]; + free((void*)js); + }); +} + +// Make NSWindow backdrop translucent +void windowSetTranslucent(void* nsWindow) { + // Set window transparent on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + + // Get window + WebviewWindow* window = (WebviewWindow*)nsWindow; + + // Get window delegate + WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate]; + + id contentView = [window contentView]; + NSVisualEffectView *effectView = [NSVisualEffectView alloc]; + NSRect bounds = [contentView bounds]; + [effectView initWithFrame:bounds]; + [effectView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; + [effectView setBlendingMode:NSVisualEffectBlendingModeBehindWindow]; + [effectView setState:NSVisualEffectStateActive]; + [contentView addSubview:effectView positioned:NSWindowBelow relativeTo:nil]; + }); +} + +// Make webview background transparent +void webviewSetTransparent(void* nsWindow) { + // Set webview transparent on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + // Get window delegate + WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate]; + // Set webview background transparent + [delegate.webView setValue:@NO forKey:@"drawsBackground"]; + }); +} + +// Set webview background colour +void webviewSetBackgroundColour(void* nsWindow, int r, int g, int b, int alpha) { + // Set webview background color on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + // Get window delegate + WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate]; + // Set webview background color + [delegate.webView setValue:[NSColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:alpha/255.0] forKey:@"backgroundColor"]; + }); +} + +// Set the window background colour +void windowSetBackgroundColour(void* nsWindow, int r, int g, int b, int alpha) { + // Set window background color on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + // Get window + WebviewWindow* window = (WebviewWindow*)nsWindow; + // Set window background color + [window setBackgroundColor:[NSColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:alpha/255.0]]; + }); +} + +bool windowIsMaximised(void* nsWindow) { + return [(WebviewWindow*)nsWindow isZoomed]; +} + +bool windowIsFullscreen(void* nsWindow) { + return [(WebviewWindow*)nsWindow styleMask] & NSWindowStyleMaskFullScreen; +} + +bool windowIsMinimised(void* nsWindow) { + return [(WebviewWindow*)nsWindow isMiniaturized]; +} + +// Set Window fullscreen +void windowFullscreen(void* nsWindow) { + if( windowIsFullscreen(nsWindow) ) { + return; + } + dispatch_async(dispatch_get_main_queue(), ^{ + [(WebviewWindow*)nsWindow toggleFullScreen:nil]; + });} + +void windowUnFullscreen(void* nsWindow) { + if( !windowIsFullscreen(nsWindow) ) { + return; + } + dispatch_async(dispatch_get_main_queue(), ^{ + [(WebviewWindow*)nsWindow toggleFullScreen:nil]; + }); +} + +// restore window to normal size +void windowRestore(void* nsWindow) { + // Set window normal on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + // If window is fullscreen + if([(WebviewWindow*)nsWindow styleMask] & NSWindowStyleMaskFullScreen) { + [(WebviewWindow*)nsWindow toggleFullScreen:nil]; + } + // If window is maximised + if([(WebviewWindow*)nsWindow isZoomed]) { + [(WebviewWindow*)nsWindow zoom:nil]; + } + // If window in minimised + if([(WebviewWindow*)nsWindow isMiniaturized]) { + [(WebviewWindow*)nsWindow deminiaturize:nil]; + } + }); +} + +// disable window fullscreen button +void setFullscreenButtonEnabled(void* nsWindow, bool enabled) { + // Disable fullscreen button on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + // Get window + WebviewWindow* window = (WebviewWindow*)nsWindow; + NSButton *fullscreenButton = [window standardWindowButton:NSWindowZoomButton]; + fullscreenButton.enabled = enabled; + }); +} + +// Set the titlebar style +void windowSetTitleBarAppearsTransparent(void* nsWindow, bool transparent) { + // Set window titlebar style on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + if( transparent ) { + [(WebviewWindow*)nsWindow setTitlebarAppearsTransparent:true]; + } else { + [(WebviewWindow*)nsWindow setTitlebarAppearsTransparent:false]; + } + }); +} + +// Set window fullsize content view +void windowSetFullSizeContent(void* nsWindow, bool fullSize) { + // Set window fullsize content view on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + if( fullSize ) { + [(WebviewWindow*)nsWindow setStyleMask:[(WebviewWindow*)nsWindow styleMask] | NSWindowStyleMaskFullSizeContentView]; + } else { + [(WebviewWindow*)nsWindow setStyleMask:[(WebviewWindow*)nsWindow styleMask] & ~NSWindowStyleMaskFullSizeContentView]; + } + }); +} + +// Set Hide Titlebar +void windowSetHideTitleBar(void* nsWindow, bool hideTitlebar) { + // Set window titlebar hidden on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + if( hideTitlebar ) { + [(WebviewWindow*)nsWindow setStyleMask:[(WebviewWindow*)nsWindow styleMask] & ~NSWindowStyleMaskTitled]; + } else { + [(WebviewWindow*)nsWindow setStyleMask:[(WebviewWindow*)nsWindow styleMask] | NSWindowStyleMaskTitled]; + } + }); +} + +// Set Hide Title in Titlebar +void windowSetHideTitle(void* nsWindow, bool hideTitle) { + // Set window titlebar hidden on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + if( hideTitle ) { + [(WebviewWindow*)nsWindow setTitleVisibility:NSWindowTitleHidden]; + } else { + [(WebviewWindow*)nsWindow setTitleVisibility:NSWindowTitleVisible]; + } + }); +} + +// Set Window use toolbar +void windowSetUseToolbar(void* nsWindow, bool useToolbar, int toolbarStyle) { + // Set window use toolbar on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + // get main window + WebviewWindow* window = (WebviewWindow*)nsWindow; + if( useToolbar ) { + NSToolbar *toolbar = [[NSToolbar alloc] initWithIdentifier:@"wails.toolbar"]; + [toolbar autorelease]; + [window setToolbar:toolbar]; + + // If macos 11 or higher, set toolbar style + if (@available(macOS 11.0, *)) { + [window setToolbarStyle:toolbarStyle]; + } + + } else { + [window setToolbar:nil]; + } + }); +} + +// Set window toolbar style +void windowSetToolbarStyle(void* nsWindow, int style) { + // use @available to check if the function is available + // if not, return + if (@available(macOS 11.0, *)) { + // Set window toolbar style on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + // get main window + WebviewWindow* window = (WebviewWindow*)nsWindow; + // get toolbar + NSToolbar* toolbar = [window toolbar]; + // set toolbar style + [toolbar setShowsBaselineSeparator:style]; + }); + } +} + +// Set Hide Toolbar Separator +void windowSetHideToolbarSeparator(void* nsWindow, bool hideSeparator) { + // Set window hide toolbar separator on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + // get main window + WebviewWindow* window = (WebviewWindow*)nsWindow; + // get toolbar + NSToolbar* toolbar = [window toolbar]; + // Return if toolbar nil + if( toolbar == nil ) { + return; + } + if( hideSeparator ) { + [toolbar setShowsBaselineSeparator:false]; + } else { + [toolbar setShowsBaselineSeparator:true]; + } + }); +} + +// Set Window appearance type +void windowSetAppearanceTypeByName(void* nsWindow, const char *appearanceName) { + // Set window appearance type on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + // get main window + WebviewWindow* window = (WebviewWindow*)nsWindow; + // set window appearance type by name + // Convert appearance name to NSString + NSString* appearanceNameString = [NSString stringWithUTF8String:appearanceName]; + // Set appearance + [window setAppearance:[NSAppearance appearanceNamed:appearanceNameString]]; + + free((void*)appearanceName); + }); +} + +// Center window on current monitor +void windowCenter(void* nsWindow) { + // Center window on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + // get main window + WebviewWindow* window = (WebviewWindow*)nsWindow; + [window center]; + }); +} + +// Get the current size of the window +void windowGetSize(void* nsWindow, int* width, int* height) { + // get main window + WebviewWindow* window = (WebviewWindow*)nsWindow; + // get window frame + NSRect frame = [window frame]; + // set width and height + *width = frame.size.width; + *height = frame.size.height; +} + +// Get window width +int windowGetWidth(void* nsWindow) { + // get main window + WebviewWindow* window = (WebviewWindow*)nsWindow; + // get window frame + NSRect frame = [window frame]; + // return width + return frame.size.width; +} + +// Get window height +int windowGetHeight(void* nsWindow) { + // get main window + WebviewWindow* window = (WebviewWindow*)nsWindow; + // get window frame + NSRect frame = [window frame]; + // return height + return frame.size.height; +} + +// Get window position +void windowGetPosition(void* nsWindow, int* x, int* y) { + // get main window + WebviewWindow* window = (WebviewWindow*)nsWindow; + // get window frame + NSRect frame = [window frame]; + // set x and y + *x = frame.origin.x; + *y = frame.origin.y; +} + +// Destroy window +void windowDestroy(void* nsWindow) { + // Destroy window on main thread + dispatch_async(dispatch_get_main_queue(), ^{ + // get main window + WebviewWindow* window = (WebviewWindow*)nsWindow; + // close window + [window close]; + }); +} + + +// windowClose closes the current window +static void windowClose(void *window) { + dispatch_async(dispatch_get_main_queue(), ^{ + // close window + [(WebviewWindow*)window close]; + }); +} + +// windowZoom +static void windowZoom(void *window) { + dispatch_async(dispatch_get_main_queue(), ^{ + // zoom window + [(WebviewWindow*)window zoom:nil]; + }); +} + +// miniaturize +static void windowMiniaturize(void *window) { + dispatch_async(dispatch_get_main_queue(), ^{ + // miniaturize window + [(WebviewWindow*)window miniaturize:nil]; + }); +} + +// webviewRenderHTML renders the given HTML +static void windowRenderHTML(void *window, const char *html) { + dispatch_async(dispatch_get_main_queue(), ^{ + // get main window + WebviewWindow* nsWindow = (WebviewWindow*)window; + // get window delegate + WebviewWindowDelegate* windowDelegate = (WebviewWindowDelegate*)[nsWindow delegate]; + // render html + [(WKWebView*)windowDelegate.webView loadHTMLString:[NSString stringWithUTF8String:html] baseURL:nil]; + }); +} + +static void windowInjectCSS(void *window, const char *css) { + dispatch_async(dispatch_get_main_queue(), ^{ + // get main window + WebviewWindow* nsWindow = (WebviewWindow*)window; + // get window delegate + WebviewWindowDelegate* windowDelegate = (WebviewWindowDelegate*)[nsWindow delegate]; + // inject css + [(WKWebView*)windowDelegate.webView evaluateJavaScript:[NSString stringWithFormat:@"(function() { var style = document.createElement('style'); style.appendChild(document.createTextNode('%@')); document.head.appendChild(style); })();", [NSString stringWithUTF8String:css]] completionHandler:nil]; + free((void*)css); + }); +} + +static void windowMinimise(void *window) { + dispatch_async(dispatch_get_main_queue(), ^{ + // minimize window + [(WebviewWindow*)window miniaturize:nil]; + }); +} + +// zoom maximizes the window to the screen dimensions +static void windowMaximise(void *window) { + dispatch_async(dispatch_get_main_queue(), ^{ + // maximize window + [(WebviewWindow*)window zoom:nil]; + }); +} + +static bool isFullScreen(void *window) { + // get main window + WebviewWindow* nsWindow = (WebviewWindow*)window; + long mask = [nsWindow styleMask]; + return (mask & NSWindowStyleMaskFullScreen) == NSWindowStyleMaskFullScreen; +} + +// windowSetFullScreen +static void windowSetFullScreen(void *window, bool fullscreen) { + if (isFullScreen(window)) { + return; + } + dispatch_async(dispatch_get_main_queue(), ^{ + WebviewWindow* nsWindow = (WebviewWindow*)window; + windowSetMaxSize(nsWindow, 0, 0); + windowSetMinSize(nsWindow, 0, 0); + [nsWindow toggleFullScreen:nil]; + }); +} + +// windowUnminimise +static void windowUnminimise(void *window) { + dispatch_async(dispatch_get_main_queue(), ^{ + // unminimize window + [(WebviewWindow*)window deminiaturize:nil]; + }); +} + +// windowUnmaximise +static void windowUnmaximise(void *window) { + dispatch_async(dispatch_get_main_queue(), ^{ + // unmaximize window + [(WebviewWindow*)window zoom:nil]; + }); +} + +static void windowDisableSizeConstraints(void *window) { + dispatch_async(dispatch_get_main_queue(), ^{ + // get main window + WebviewWindow* nsWindow = (WebviewWindow*)window; + // disable size constraints + [nsWindow setContentMinSize:CGSizeZero]; + [nsWindow setContentMaxSize:CGSizeZero]; + }); +} + +static void windowShow(void *window) { + dispatch_async(dispatch_get_main_queue(), ^{ + // show window + [(WebviewWindow*)window makeKeyAndOrderFront:nil]; + }); +} + +static void windowHide(void *window) { + dispatch_async(dispatch_get_main_queue(), ^{ + [(WebviewWindow*)window orderOut:nil]; + }); +} + +// Make the given window frameless +static void windowSetFrameless(void *window, bool frameless) { + dispatch_async(dispatch_get_main_queue(), ^{ + // get main window + WebviewWindow* nsWindow = (WebviewWindow*)window; + // set the window style to be frameless + if (frameless) { + [nsWindow setStyleMask:([nsWindow styleMask] | NSWindowStyleMaskFullSizeContentView)]; + } else { + [nsWindow setStyleMask:([nsWindow styleMask] & ~NSWindowStyleMaskFullSizeContentView)]; + } + }); +} + +*/ +import "C" +import ( + "sync" + "unsafe" + + "github.com/wailsapp/wails/v3/pkg/events" + + "github.com/wailsapp/wails/v3/pkg/options" +) + +var showDevTools = func(window unsafe.Pointer) {} + +type macosWebviewWindow struct { + nsWindow unsafe.Pointer + parent *WebviewWindow +} + +func (w *macosWebviewWindow) setFrameless(frameless bool) { + C.windowSetFrameless(w.nsWindow, C.bool(frameless)) + if frameless { + C.windowSetTitleBarAppearsTransparent(w.nsWindow, C.bool(true)) + C.windowSetHideTitle(w.nsWindow, C.bool(true)) + } else { + macOptions := w.parent.options.Mac + appearsTransparent := macOptions.TitleBar.AppearsTransparent + hideTitle := macOptions.TitleBar.HideTitle + C.windowSetTitleBarAppearsTransparent(w.nsWindow, C.bool(appearsTransparent)) + C.windowSetHideTitle(w.nsWindow, C.bool(hideTitle)) + } +} + +func (w *macosWebviewWindow) getScreen() (*Screen, error) { + return getScreenForWindow(w) +} + +func (w *macosWebviewWindow) show() { + C.windowShow(w.nsWindow) +} + +func (w *macosWebviewWindow) hide() { + C.windowHide(w.nsWindow) +} + +func (w *macosWebviewWindow) setFullscreenButtonEnabled(enabled bool) { + C.setFullscreenButtonEnabled(w.nsWindow, C.bool(enabled)) +} + +func (w *macosWebviewWindow) disableSizeConstraints() { + C.windowDisableSizeConstraints(w.nsWindow) +} + +func (w *macosWebviewWindow) unfullscreen() { + C.windowUnFullscreen(w.nsWindow) +} + +func (w *macosWebviewWindow) fullscreen() { + C.windowFullscreen(w.nsWindow) +} + +func (w *macosWebviewWindow) unminimise() { + C.windowUnminimise(w.nsWindow) +} + +func (w *macosWebviewWindow) unmaximise() { + C.windowUnmaximise(w.nsWindow) +} + +func (w *macosWebviewWindow) maximise() { + C.windowMaximise(w.nsWindow) +} + +func (w *macosWebviewWindow) minimise() { + C.windowMinimise(w.nsWindow) +} + +func (w *macosWebviewWindow) on(eventID uint) { + C.registerListener(C.uint(eventID)) +} + +func (w *macosWebviewWindow) zoom() { + C.windowZoom(w.nsWindow) +} + +func (w *macosWebviewWindow) minimize() { + C.windowMiniaturize(w.nsWindow) +} + +func (w *macosWebviewWindow) windowZoom() { + C.windowZoom(w.nsWindow) +} + +func (w *macosWebviewWindow) close() { + C.windowClose(w.nsWindow) +} + +func (w *macosWebviewWindow) zoomIn() { + C.windowZoomIn(w.nsWindow) +} + +func (w *macosWebviewWindow) zoomOut() { + C.windowZoomOut(w.nsWindow) +} + +func (w *macosWebviewWindow) resetZoom() { + C.windowResetZoom(w.nsWindow) +} + +func (w *macosWebviewWindow) toggleDevTools() { + showDevTools(w.nsWindow) +} + +func (w *macosWebviewWindow) reload() { + //TODO: Implement + println("reload called on WebviewWindow", w.parent.id) +} + +func (w *macosWebviewWindow) forceReload() { + //TODO: Implement + println("forceReload called on WebviewWindow", w.parent.id) +} + +func (w *macosWebviewWindow) center() { + C.windowCenter(w.nsWindow) +} + +func (w *macosWebviewWindow) isMinimised() bool { + return w.syncMainThreadReturningBool(func() bool { + return bool(C.windowIsMinimised(w.nsWindow)) + }) +} + +func (w *macosWebviewWindow) isMaximised() bool { + return w.syncMainThreadReturningBool(func() bool { + return bool(C.windowIsMaximised(w.nsWindow)) + }) +} + +func (w *macosWebviewWindow) isFullscreen() bool { + return w.syncMainThreadReturningBool(func() bool { + return bool(C.windowIsFullscreen(w.nsWindow)) + }) +} + +func (w *macosWebviewWindow) syncMainThreadReturningBool(fn func() bool) bool { + var wg sync.WaitGroup + wg.Add(1) + var result bool + globalApplication.dispatchOnMainThread(func() { + result = fn() + wg.Done() + }) + wg.Wait() + return result +} + +func (w *macosWebviewWindow) restore() { + // restore window to normal size + C.windowRestore(w.nsWindow) +} + +func (w *macosWebviewWindow) restoreWindow() { + C.windowRestore(w.nsWindow) +} + +func (w *macosWebviewWindow) execJS(js string) { + C.windowExecJS(w.nsWindow, C.CString(js)) +} + +func (w *macosWebviewWindow) setURL(url string) { + if url == "/" { + // TODO handle this in a central location and handle all urls without scheme and host. This might be platform + // dependant + url = "wails://wails/" + } + C.navigationLoadURL(w.nsWindow, C.CString(url)) +} + +func (w *macosWebviewWindow) setAlwaysOnTop(alwaysOnTop bool) { + C.windowSetAlwaysOnTop(w.nsWindow, C.bool(alwaysOnTop)) +} + +func newWindowImpl(parent *WebviewWindow) *macosWebviewWindow { + result := &macosWebviewWindow{ + parent: parent, + } + return result +} + +func (w *macosWebviewWindow) setTitle(title string) { + if !w.parent.options.Frameless { + cTitle := C.CString(title) + C.windowSetTitle(w.nsWindow, cTitle) + } +} + +func (w *macosWebviewWindow) setSize(width, height int) { + C.windowSetSize(w.nsWindow, C.int(width), C.int(height)) +} + +func (w *macosWebviewWindow) setMinSize(width, height int) { + C.windowSetMinSize(w.nsWindow, C.int(width), C.int(height)) +} +func (w *macosWebviewWindow) setMaxSize(width, height int) { + C.windowSetMaxSize(w.nsWindow, C.int(width), C.int(height)) +} + +func (w *macosWebviewWindow) setResizable(resizable bool) { + C.windowSetResizable(w.nsWindow, C.bool(resizable)) +} +func (w *macosWebviewWindow) enableDevTools() { + C.windowEnableDevTools(w.nsWindow) +} + +func (w *macosWebviewWindow) size() (int, int) { + var width, height C.int + var wg sync.WaitGroup + wg.Add(1) + globalApplication.dispatchOnMainThread(func() { + C.windowGetSize(w.nsWindow, &width, &height) + wg.Done() + }) + wg.Wait() + return int(width), int(height) +} + +func (w *macosWebviewWindow) setPosition(x, y int) { + C.windowSetPosition(w.nsWindow, C.int(x), C.int(y)) +} + +func (w *macosWebviewWindow) width() int { + var width C.int + var wg sync.WaitGroup + wg.Add(1) + globalApplication.dispatchOnMainThread(func() { + width = C.windowGetWidth(w.nsWindow) + wg.Done() + }) + wg.Wait() + return int(width) +} +func (w *macosWebviewWindow) height() int { + var height C.int + var wg sync.WaitGroup + wg.Add(1) + globalApplication.dispatchOnMainThread(func() { + height = C.windowGetHeight(w.nsWindow) + wg.Done() + }) + wg.Wait() + return int(height) +} + +func (w *macosWebviewWindow) run() { + for eventId := range w.parent.eventListeners { + w.on(eventId) + } + globalApplication.dispatchOnMainThread(func() { + w.nsWindow = C.windowNew(C.uint(w.parent.id), + C.int(w.parent.options.Width), + C.int(w.parent.options.Height), + C.bool(w.parent.options.EnableFraudulentWebsiteWarnings), + C.bool(w.parent.options.Frameless), + ) + w.setTitle(w.parent.options.Title) + w.setAlwaysOnTop(w.parent.options.AlwaysOnTop) + w.setResizable(!w.parent.options.DisableResize) + if w.parent.options.MinWidth != 0 || w.parent.options.MinHeight != 0 { + w.setMinSize(w.parent.options.MinWidth, w.parent.options.MinHeight) + } + if w.parent.options.MaxWidth != 0 || w.parent.options.MaxHeight != 0 { + w.setMaxSize(w.parent.options.MaxWidth, w.parent.options.MaxHeight) + } + w.enableDevTools() + w.setBackgroundColour(w.parent.options.BackgroundColour) + + macOptions := w.parent.options.Mac + switch macOptions.Backdrop { + case options.MacBackdropTransparent: + C.windowSetTransparent(w.nsWindow) + C.webviewSetTransparent(w.nsWindow) + case options.MacBackdropTranslucent: + C.windowSetTranslucent(w.nsWindow) + C.webviewSetTransparent(w.nsWindow) + } + + titleBarOptions := macOptions.TitleBar + if !w.parent.options.Frameless { + C.windowSetTitleBarAppearsTransparent(w.nsWindow, C.bool(titleBarOptions.AppearsTransparent)) + C.windowSetHideTitleBar(w.nsWindow, C.bool(titleBarOptions.Hide)) + C.windowSetHideTitle(w.nsWindow, C.bool(titleBarOptions.HideTitle)) + C.windowSetFullSizeContent(w.nsWindow, C.bool(titleBarOptions.FullSizeContent)) + if titleBarOptions.UseToolbar { + C.windowSetUseToolbar(w.nsWindow, C.bool(titleBarOptions.UseToolbar), C.int(titleBarOptions.ToolbarStyle)) + } + C.windowSetHideToolbarSeparator(w.nsWindow, C.bool(titleBarOptions.HideToolbarSeparator)) + } + if macOptions.Appearance != "" { + C.windowSetAppearanceTypeByName(w.nsWindow, C.CString(string(macOptions.Appearance))) + } + + if macOptions.InvisibleTitleBarHeight != 0 { + C.windowSetInvisibleTitleBar(w.nsWindow, C.uint(macOptions.InvisibleTitleBarHeight)) + } + + switch w.parent.options.StartState { + case options.WindowStateMaximised: + w.maximise() + case options.WindowStateMinimised: + w.minimise() + case options.WindowStateFullscreen: + w.fullscreen() + + } + C.windowCenter(w.nsWindow) + + if w.parent.options.URL != "" { + w.setURL(w.parent.options.URL) + } + // We need to wait for the HTML to load before we can execute the javascript + w.parent.On(events.Mac.WebViewDidFinishNavigation, func() { + if w.parent.options.JS != "" { + w.execJS(w.parent.options.JS) + } + if w.parent.options.CSS != "" { + C.windowInjectCSS(w.nsWindow, C.CString(w.parent.options.CSS)) + } + }) + if w.parent.options.HTML != "" { + w.setHTML(w.parent.options.HTML) + } + if w.parent.options.Hidden == false { + C.windowShow(w.nsWindow) + } + C.printWindowStyle(w.nsWindow) + }) +} + +func (w *macosWebviewWindow) setBackgroundColour(colour *options.RGBA) { + if colour == nil { + return + } + C.windowSetBackgroundColour(w.nsWindow, C.int(colour.Red), C.int(colour.Green), C.int(colour.Blue), C.int(colour.Alpha)) +} + +func (w *macosWebviewWindow) position() (int, int) { + var x, y C.int + var wg sync.WaitGroup + wg.Add(1) + go globalApplication.dispatchOnMainThread(func() { + C.windowGetPosition(w.nsWindow, &x, &y) + wg.Done() + }) + wg.Wait() + return int(x), int(y) +} + +func (w *macosWebviewWindow) destroy() { + C.windowDestroy(w.nsWindow) +} + +func (w *macosWebviewWindow) setHTML(html string) { + // Convert HTML to C string + cHTML := C.CString(html) + // Render HTML + C.windowRenderHTML(w.nsWindow, cHTML) +} diff --git a/v3/pkg/application/webview_window_devtools.go b/v3/pkg/application/webview_window_devtools.go new file mode 100644 index 00000000..98d022cc --- /dev/null +++ b/v3/pkg/application/webview_window_devtools.go @@ -0,0 +1,38 @@ +//go:build darwin && !production + +package application + +/* +#cgo CFLAGS: -mmacosx-version-min=10.13 -x objective-c +#cgo LDFLAGS: -framework Cocoa + +#import + +#include "webview_window.h" + +@interface _WKInspector : NSObject +- (void)show; +- (void)detach; +@end + +@interface WKWebView () +- (_WKInspector *)_inspector; +@end + +void showDevTools(void *window) { + // Get the window delegate + WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(NSWindow*)window delegate]; + dispatch_async(dispatch_get_main_queue(), ^{ + [delegate.webView._inspector show]; + }); +} + +*/ +import "C" +import "unsafe" + +func init() { + showDevTools = func(window unsafe.Pointer) { + C.showDevTools(window) + } +} diff --git a/v3/pkg/events/events.go b/v3/pkg/events/events.go new file mode 100644 index 00000000..f003e7c4 --- /dev/null +++ b/v3/pkg/events/events.go @@ -0,0 +1,254 @@ +package events + +type ApplicationEventType uint +type WindowEventType uint + +var Mac = newMacEvents() + +type macEvents struct { + ApplicationDidBecomeActive ApplicationEventType + ApplicationDidChangeBackingProperties ApplicationEventType + ApplicationDidChangeEffectiveAppearance ApplicationEventType + ApplicationDidChangeIcon ApplicationEventType + ApplicationDidChangeOcclusionState ApplicationEventType + ApplicationDidChangeScreenParameters ApplicationEventType + ApplicationDidChangeStatusBarFrame ApplicationEventType + ApplicationDidChangeStatusBarOrientation ApplicationEventType + ApplicationDidFinishLaunching ApplicationEventType + ApplicationDidHide ApplicationEventType + ApplicationDidResignActive ApplicationEventType + ApplicationDidUnhide ApplicationEventType + ApplicationDidUpdate ApplicationEventType + ApplicationWillBecomeActive ApplicationEventType + ApplicationWillFinishLaunching ApplicationEventType + ApplicationWillHide ApplicationEventType + ApplicationWillResignActive ApplicationEventType + ApplicationWillTerminate ApplicationEventType + ApplicationWillUnhide ApplicationEventType + ApplicationWillUpdate ApplicationEventType + WindowDidBecomeKey WindowEventType + WindowDidBecomeMain WindowEventType + WindowDidBeginSheet WindowEventType + WindowDidChangeAlpha WindowEventType + WindowDidChangeBackingLocation WindowEventType + WindowDidChangeBackingProperties WindowEventType + WindowDidChangeCollectionBehavior WindowEventType + WindowDidChangeEffectiveAppearance WindowEventType + WindowDidChangeOcclusionState WindowEventType + WindowDidChangeOrderingMode WindowEventType + WindowDidChangeScreen WindowEventType + WindowDidChangeScreenParameters WindowEventType + WindowDidChangeScreenProfile WindowEventType + WindowDidChangeScreenSpace WindowEventType + WindowDidChangeScreenSpaceProperties WindowEventType + WindowDidChangeSharingType WindowEventType + WindowDidChangeSpace WindowEventType + WindowDidChangeSpaceOrderingMode WindowEventType + WindowDidChangeTitle WindowEventType + WindowDidChangeToolbar WindowEventType + WindowDidChangeVisibility WindowEventType + WindowDidClose WindowEventType + WindowDidDeminiaturize WindowEventType + WindowDidEndSheet WindowEventType + WindowDidEnterFullScreen WindowEventType + WindowDidEnterVersionBrowser WindowEventType + WindowDidExitFullScreen WindowEventType + WindowDidExitVersionBrowser WindowEventType + WindowDidExpose WindowEventType + WindowDidFocus WindowEventType + WindowDidMiniaturize WindowEventType + WindowDidMove WindowEventType + WindowDidOrderOffScreen WindowEventType + WindowDidOrderOnScreen WindowEventType + WindowDidResignKey WindowEventType + WindowDidResignMain WindowEventType + WindowDidResize WindowEventType + WindowDidUnfocus WindowEventType + WindowDidUpdate WindowEventType + WindowDidUpdateAlpha WindowEventType + WindowDidUpdateCollectionBehavior WindowEventType + WindowDidUpdateCollectionProperties WindowEventType + WindowDidUpdateShadow WindowEventType + WindowDidUpdateTitle WindowEventType + WindowDidUpdateToolbar WindowEventType + WindowDidUpdateVisibility WindowEventType + WindowWillBecomeKey WindowEventType + WindowWillBecomeMain WindowEventType + WindowWillBeginSheet WindowEventType + WindowWillChangeOrderingMode WindowEventType + WindowWillClose WindowEventType + WindowWillDeminiaturize WindowEventType + WindowWillEnterFullScreen WindowEventType + WindowWillEnterVersionBrowser WindowEventType + WindowWillExitFullScreen WindowEventType + WindowWillExitVersionBrowser WindowEventType + WindowWillFocus WindowEventType + WindowWillMiniaturize WindowEventType + WindowWillMove WindowEventType + WindowWillOrderOffScreen WindowEventType + WindowWillOrderOnScreen WindowEventType + WindowWillResignMain WindowEventType + WindowWillResize WindowEventType + WindowWillUnfocus WindowEventType + WindowWillUpdate WindowEventType + WindowWillUpdateAlpha WindowEventType + WindowWillUpdateCollectionBehavior WindowEventType + WindowWillUpdateCollectionProperties WindowEventType + WindowWillUpdateShadow WindowEventType + WindowWillUpdateTitle WindowEventType + WindowWillUpdateToolbar WindowEventType + WindowWillUpdateVisibility WindowEventType + WindowWillUseStandardFrame WindowEventType + MenuWillOpen ApplicationEventType + MenuDidOpen ApplicationEventType + MenuDidClose ApplicationEventType + MenuWillSendAction ApplicationEventType + MenuDidSendAction ApplicationEventType + MenuWillHighlightItem ApplicationEventType + MenuDidHighlightItem ApplicationEventType + MenuWillDisplayItem ApplicationEventType + MenuDidDisplayItem ApplicationEventType + MenuWillAddItem ApplicationEventType + MenuDidAddItem ApplicationEventType + MenuWillRemoveItem ApplicationEventType + MenuDidRemoveItem ApplicationEventType + MenuWillBeginTracking ApplicationEventType + MenuDidBeginTracking ApplicationEventType + MenuWillEndTracking ApplicationEventType + MenuDidEndTracking ApplicationEventType + MenuWillUpdate ApplicationEventType + MenuDidUpdate ApplicationEventType + MenuWillPopUp ApplicationEventType + MenuDidPopUp ApplicationEventType + MenuWillSendActionToItem ApplicationEventType + MenuDidSendActionToItem ApplicationEventType + WebViewDidStartProvisionalNavigation WindowEventType + WebViewDidReceiveServerRedirectForProvisionalNavigation WindowEventType + WebViewDidFinishNavigation WindowEventType + WebViewDidCommitNavigation WindowEventType +} + +func newMacEvents() macEvents { + return macEvents{ + ApplicationDidBecomeActive: 0, + ApplicationDidChangeBackingProperties: 1, + ApplicationDidChangeEffectiveAppearance: 2, + ApplicationDidChangeIcon: 3, + ApplicationDidChangeOcclusionState: 4, + ApplicationDidChangeScreenParameters: 5, + ApplicationDidChangeStatusBarFrame: 6, + ApplicationDidChangeStatusBarOrientation: 7, + ApplicationDidFinishLaunching: 8, + ApplicationDidHide: 9, + ApplicationDidResignActive: 10, + ApplicationDidUnhide: 11, + ApplicationDidUpdate: 12, + ApplicationWillBecomeActive: 13, + ApplicationWillFinishLaunching: 14, + ApplicationWillHide: 15, + ApplicationWillResignActive: 16, + ApplicationWillTerminate: 17, + ApplicationWillUnhide: 18, + ApplicationWillUpdate: 19, + WindowDidBecomeKey: 20, + WindowDidBecomeMain: 21, + WindowDidBeginSheet: 22, + WindowDidChangeAlpha: 23, + WindowDidChangeBackingLocation: 24, + WindowDidChangeBackingProperties: 25, + WindowDidChangeCollectionBehavior: 26, + WindowDidChangeEffectiveAppearance: 27, + WindowDidChangeOcclusionState: 28, + WindowDidChangeOrderingMode: 29, + WindowDidChangeScreen: 30, + WindowDidChangeScreenParameters: 31, + WindowDidChangeScreenProfile: 32, + WindowDidChangeScreenSpace: 33, + WindowDidChangeScreenSpaceProperties: 34, + WindowDidChangeSharingType: 35, + WindowDidChangeSpace: 36, + WindowDidChangeSpaceOrderingMode: 37, + WindowDidChangeTitle: 38, + WindowDidChangeToolbar: 39, + WindowDidChangeVisibility: 40, + WindowDidClose: 41, + WindowDidDeminiaturize: 42, + WindowDidEndSheet: 43, + WindowDidEnterFullScreen: 44, + WindowDidEnterVersionBrowser: 45, + WindowDidExitFullScreen: 46, + WindowDidExitVersionBrowser: 47, + WindowDidExpose: 48, + WindowDidFocus: 49, + WindowDidMiniaturize: 50, + WindowDidMove: 51, + WindowDidOrderOffScreen: 52, + WindowDidOrderOnScreen: 53, + WindowDidResignKey: 54, + WindowDidResignMain: 55, + WindowDidResize: 56, + WindowDidUnfocus: 57, + WindowDidUpdate: 58, + WindowDidUpdateAlpha: 59, + WindowDidUpdateCollectionBehavior: 60, + WindowDidUpdateCollectionProperties: 61, + WindowDidUpdateShadow: 62, + WindowDidUpdateTitle: 63, + WindowDidUpdateToolbar: 64, + WindowDidUpdateVisibility: 65, + WindowWillBecomeKey: 66, + WindowWillBecomeMain: 67, + WindowWillBeginSheet: 68, + WindowWillChangeOrderingMode: 69, + WindowWillClose: 70, + WindowWillDeminiaturize: 71, + WindowWillEnterFullScreen: 72, + WindowWillEnterVersionBrowser: 73, + WindowWillExitFullScreen: 74, + WindowWillExitVersionBrowser: 75, + WindowWillFocus: 76, + WindowWillMiniaturize: 77, + WindowWillMove: 78, + WindowWillOrderOffScreen: 79, + WindowWillOrderOnScreen: 80, + WindowWillResignMain: 81, + WindowWillResize: 82, + WindowWillUnfocus: 83, + WindowWillUpdate: 84, + WindowWillUpdateAlpha: 85, + WindowWillUpdateCollectionBehavior: 86, + WindowWillUpdateCollectionProperties: 87, + WindowWillUpdateShadow: 88, + WindowWillUpdateTitle: 89, + WindowWillUpdateToolbar: 90, + WindowWillUpdateVisibility: 91, + WindowWillUseStandardFrame: 92, + MenuWillOpen: 93, + MenuDidOpen: 94, + MenuDidClose: 95, + MenuWillSendAction: 96, + MenuDidSendAction: 97, + MenuWillHighlightItem: 98, + MenuDidHighlightItem: 99, + MenuWillDisplayItem: 100, + MenuDidDisplayItem: 101, + MenuWillAddItem: 102, + MenuDidAddItem: 103, + MenuWillRemoveItem: 104, + MenuDidRemoveItem: 105, + MenuWillBeginTracking: 106, + MenuDidBeginTracking: 107, + MenuWillEndTracking: 108, + MenuDidEndTracking: 109, + MenuWillUpdate: 110, + MenuDidUpdate: 111, + MenuWillPopUp: 112, + MenuDidPopUp: 113, + MenuWillSendActionToItem: 114, + MenuDidSendActionToItem: 115, + WebViewDidStartProvisionalNavigation: 116, + WebViewDidReceiveServerRedirectForProvisionalNavigation: 117, + WebViewDidFinishNavigation: 118, + WebViewDidCommitNavigation: 119, + } +} diff --git a/v3/pkg/events/events.h b/v3/pkg/events/events.h new file mode 100644 index 00000000..2d1e56d6 --- /dev/null +++ b/v3/pkg/events/events.h @@ -0,0 +1,133 @@ +//go:build darwin + +#ifndef _events_h +#define _events_h + +extern void processApplicationEvent(unsigned int); +extern void processWindowEvent(unsigned int, unsigned int); + +#define EventApplicationDidBecomeActive 0 +#define EventApplicationDidChangeBackingProperties 1 +#define EventApplicationDidChangeEffectiveAppearance 2 +#define EventApplicationDidChangeIcon 3 +#define EventApplicationDidChangeOcclusionState 4 +#define EventApplicationDidChangeScreenParameters 5 +#define EventApplicationDidChangeStatusBarFrame 6 +#define EventApplicationDidChangeStatusBarOrientation 7 +#define EventApplicationDidFinishLaunching 8 +#define EventApplicationDidHide 9 +#define EventApplicationDidResignActive 10 +#define EventApplicationDidUnhide 11 +#define EventApplicationDidUpdate 12 +#define EventApplicationWillBecomeActive 13 +#define EventApplicationWillFinishLaunching 14 +#define EventApplicationWillHide 15 +#define EventApplicationWillResignActive 16 +#define EventApplicationWillTerminate 17 +#define EventApplicationWillUnhide 18 +#define EventApplicationWillUpdate 19 +#define EventWindowDidBecomeKey 20 +#define EventWindowDidBecomeMain 21 +#define EventWindowDidBeginSheet 22 +#define EventWindowDidChangeAlpha 23 +#define EventWindowDidChangeBackingLocation 24 +#define EventWindowDidChangeBackingProperties 25 +#define EventWindowDidChangeCollectionBehavior 26 +#define EventWindowDidChangeEffectiveAppearance 27 +#define EventWindowDidChangeOcclusionState 28 +#define EventWindowDidChangeOrderingMode 29 +#define EventWindowDidChangeScreen 30 +#define EventWindowDidChangeScreenParameters 31 +#define EventWindowDidChangeScreenProfile 32 +#define EventWindowDidChangeScreenSpace 33 +#define EventWindowDidChangeScreenSpaceProperties 34 +#define EventWindowDidChangeSharingType 35 +#define EventWindowDidChangeSpace 36 +#define EventWindowDidChangeSpaceOrderingMode 37 +#define EventWindowDidChangeTitle 38 +#define EventWindowDidChangeToolbar 39 +#define EventWindowDidChangeVisibility 40 +#define EventWindowDidClose 41 +#define EventWindowDidDeminiaturize 42 +#define EventWindowDidEndSheet 43 +#define EventWindowDidEnterFullScreen 44 +#define EventWindowDidEnterVersionBrowser 45 +#define EventWindowDidExitFullScreen 46 +#define EventWindowDidExitVersionBrowser 47 +#define EventWindowDidExpose 48 +#define EventWindowDidFocus 49 +#define EventWindowDidMiniaturize 50 +#define EventWindowDidMove 51 +#define EventWindowDidOrderOffScreen 52 +#define EventWindowDidOrderOnScreen 53 +#define EventWindowDidResignKey 54 +#define EventWindowDidResignMain 55 +#define EventWindowDidResize 56 +#define EventWindowDidUnfocus 57 +#define EventWindowDidUpdate 58 +#define EventWindowDidUpdateAlpha 59 +#define EventWindowDidUpdateCollectionBehavior 60 +#define EventWindowDidUpdateCollectionProperties 61 +#define EventWindowDidUpdateShadow 62 +#define EventWindowDidUpdateTitle 63 +#define EventWindowDidUpdateToolbar 64 +#define EventWindowDidUpdateVisibility 65 +#define EventWindowWillBecomeKey 66 +#define EventWindowWillBecomeMain 67 +#define EventWindowWillBeginSheet 68 +#define EventWindowWillChangeOrderingMode 69 +#define EventWindowWillClose 70 +#define EventWindowWillDeminiaturize 71 +#define EventWindowWillEnterFullScreen 72 +#define EventWindowWillEnterVersionBrowser 73 +#define EventWindowWillExitFullScreen 74 +#define EventWindowWillExitVersionBrowser 75 +#define EventWindowWillFocus 76 +#define EventWindowWillMiniaturize 77 +#define EventWindowWillMove 78 +#define EventWindowWillOrderOffScreen 79 +#define EventWindowWillOrderOnScreen 80 +#define EventWindowWillResignMain 81 +#define EventWindowWillResize 82 +#define EventWindowWillUnfocus 83 +#define EventWindowWillUpdate 84 +#define EventWindowWillUpdateAlpha 85 +#define EventWindowWillUpdateCollectionBehavior 86 +#define EventWindowWillUpdateCollectionProperties 87 +#define EventWindowWillUpdateShadow 88 +#define EventWindowWillUpdateTitle 89 +#define EventWindowWillUpdateToolbar 90 +#define EventWindowWillUpdateVisibility 91 +#define EventWindowWillUseStandardFrame 92 +#define EventMenuWillOpen 93 +#define EventMenuDidOpen 94 +#define EventMenuDidClose 95 +#define EventMenuWillSendAction 96 +#define EventMenuDidSendAction 97 +#define EventMenuWillHighlightItem 98 +#define EventMenuDidHighlightItem 99 +#define EventMenuWillDisplayItem 100 +#define EventMenuDidDisplayItem 101 +#define EventMenuWillAddItem 102 +#define EventMenuDidAddItem 103 +#define EventMenuWillRemoveItem 104 +#define EventMenuDidRemoveItem 105 +#define EventMenuWillBeginTracking 106 +#define EventMenuDidBeginTracking 107 +#define EventMenuWillEndTracking 108 +#define EventMenuDidEndTracking 109 +#define EventMenuWillUpdate 110 +#define EventMenuDidUpdate 111 +#define EventMenuWillPopUp 112 +#define EventMenuDidPopUp 113 +#define EventMenuWillSendActionToItem 114 +#define EventMenuDidSendActionToItem 115 +#define EventWebViewDidStartProvisionalNavigation 116 +#define EventWebViewDidReceiveServerRedirectForProvisionalNavigation 117 +#define EventWebViewDidFinishNavigation 118 +#define EventWebViewDidCommitNavigation 119 + +#define MAX_EVENTS 120 + + +#endif \ No newline at end of file diff --git a/v3/pkg/events/events.txt b/v3/pkg/events/events.txt new file mode 100644 index 00000000..858bb2ad --- /dev/null +++ b/v3/pkg/events/events.txt @@ -0,0 +1,121 @@ +mac:ApplicationDidBecomeActive +mac:ApplicationDidChangeBackingProperties +mac:ApplicationDidChangeEffectiveAppearance +mac:ApplicationDidChangeIcon +mac:ApplicationDidChangeOcclusionState +mac:ApplicationDidChangeScreenParameters +mac:ApplicationDidChangeStatusBarFrame +mac:ApplicationDidChangeStatusBarOrientation +mac:ApplicationDidFinishLaunching +mac:ApplicationDidHide +mac:ApplicationDidResignActive +mac:ApplicationDidUnhide +mac:ApplicationDidUpdate +mac:ApplicationWillBecomeActive +mac:ApplicationWillFinishLaunching +mac:ApplicationWillHide +mac:ApplicationWillResignActive +mac:ApplicationWillTerminate +mac:ApplicationWillUnhide +mac:ApplicationWillUpdate +mac:WindowDidBecomeKey +mac:WindowDidBecomeMain +mac:WindowDidBeginSheet +mac:WindowDidChangeAlpha +mac:WindowDidChangeBackingLocation +mac:WindowDidChangeBackingProperties +mac:WindowDidChangeCollectionBehavior +mac:WindowDidChangeEffectiveAppearance +mac:WindowDidChangeOcclusionState +mac:WindowDidChangeOrderingMode +mac:WindowDidChangeScreen +mac:WindowDidChangeScreenParameters +mac:WindowDidChangeScreenProfile +mac:WindowDidChangeScreenSpace +mac:WindowDidChangeScreenSpaceProperties +mac:WindowDidChangeSharingType +mac:WindowDidChangeSpace +mac:WindowDidChangeSpaceOrderingMode +mac:WindowDidChangeTitle +mac:WindowDidChangeToolbar +mac:WindowDidChangeVisibility +mac:WindowDidClose +mac:WindowDidDeminiaturize +mac:WindowDidEndSheet +mac:WindowDidEnterFullScreen +mac:WindowDidEnterVersionBrowser +mac:WindowDidExitFullScreen +mac:WindowDidExitVersionBrowser +mac:WindowDidExpose +mac:WindowDidFocus +mac:WindowDidMiniaturize +mac:WindowDidMove +mac:WindowDidOrderOffScreen +mac:WindowDidOrderOnScreen +mac:WindowDidResignKey +mac:WindowDidResignMain +mac:WindowDidResize +mac:WindowDidUnfocus +mac:WindowDidUpdate +mac:WindowDidUpdateAlpha +mac:WindowDidUpdateCollectionBehavior +mac:WindowDidUpdateCollectionProperties +mac:WindowDidUpdateShadow +mac:WindowDidUpdateTitle +mac:WindowDidUpdateToolbar +mac:WindowDidUpdateVisibility +mac:WindowWillBecomeKey +mac:WindowWillBecomeMain +mac:WindowWillBeginSheet +mac:WindowWillChangeOrderingMode +mac:WindowWillClose +mac:WindowWillDeminiaturize +mac:WindowWillEnterFullScreen +mac:WindowWillEnterVersionBrowser +mac:WindowWillExitFullScreen +mac:WindowWillExitVersionBrowser +mac:WindowWillFocus +mac:WindowWillMiniaturize +mac:WindowWillMove +mac:WindowWillOrderOffScreen +mac:WindowWillOrderOnScreen +mac:WindowWillResignMain +mac:WindowWillResize +mac:WindowWillUnfocus +mac:WindowWillUpdate +mac:WindowWillUpdateAlpha +mac:WindowWillUpdateCollectionBehavior +mac:WindowWillUpdateCollectionProperties +mac:WindowWillUpdateShadow +mac:WindowWillUpdateTitle +mac:WindowWillUpdateToolbar +mac:WindowWillUpdateVisibility +mac:WindowWillUseStandardFrame +mac:MenuWillOpen +mac:MenuDidOpen +mac:MenuDidClose +mac:MenuWillSendAction +mac:MenuDidSendAction +mac:MenuWillHighlightItem +mac:MenuDidHighlightItem +mac:MenuWillDisplayItem +mac:MenuDidDisplayItem +mac:MenuWillAddItem +mac:MenuDidAddItem +mac:MenuWillRemoveItem +mac:MenuDidRemoveItem +mac:MenuWillBeginTracking +mac:MenuDidBeginTracking +mac:MenuWillEndTracking +mac:MenuDidEndTracking +mac:MenuWillUpdate +mac:MenuDidUpdate +mac:MenuWillPopUp +mac:MenuDidPopUp +mac:MenuWillSendActionToItem +mac:MenuDidSendActionToItem +mac:WebViewDidStartProvisionalNavigation +mac:WebViewDidReceiveServerRedirectForProvisionalNavigation +mac:WebViewDidFinishNavigation +mac:WebViewDidCommitNavigation + diff --git a/v3/pkg/events/events_darwin.go b/v3/pkg/events/events_darwin.go new file mode 100644 index 00000000..12a7c3af --- /dev/null +++ b/v3/pkg/events/events_darwin.go @@ -0,0 +1,26 @@ +//go:build darwin + +package events + +/* +#cgo CFLAGS: -x objective-c +#cgo LDFLAGS: -framework Cocoa -mmacosx-version-min=10.13 + +#include "events.h" +#include +#include + +#include "events.h" + +bool hasListener[MAX_EVENTS] = {false}; + +void registerListener(unsigned int event) { + hasListener[event] = true; +} + +bool hasListeners(unsigned int event) { + return hasListener[event]; +} + +*/ +import "C" diff --git a/v3/pkg/options/application.go b/v3/pkg/options/application.go new file mode 100644 index 00000000..0b72ccc7 --- /dev/null +++ b/v3/pkg/options/application.go @@ -0,0 +1,9 @@ +package options + +type Application struct { + Name string + Description string + Icon []byte + Mac Mac + Bind []interface{} +} diff --git a/v3/pkg/options/mac.go b/v3/pkg/options/mac.go new file mode 100644 index 00000000..ec5f2cc3 --- /dev/null +++ b/v3/pkg/options/mac.go @@ -0,0 +1,130 @@ +package options + +type ActivationPolicy int + +const ( + ActivationPolicyRegular ActivationPolicy = iota + // ActivationPolicyAccessory is used for applications that do not have a main window, + // such as system tray applications or background applications. + ActivationPolicyAccessory + ActivationPolicyProhibited +) + +type Mac struct { + // ActivationPolicy is the activation policy for the application. Defaults to + // applicationActivationPolicyRegular. + ActivationPolicy ActivationPolicy + // If set to true, the application will terminate when the last window is closed. + ApplicationShouldTerminateAfterLastWindowClosed bool +} + +type MacBackdrop int + +const ( + MacBackdropNormal MacBackdrop = iota + MacBackdropTransparent + MacBackdropTranslucent +) + +type MacToolbarStyle int + +const ( + // MacToolbarStyleAutomatic - The default value. The style will be determined by the window's given configuration + MacToolbarStyleAutomatic MacToolbarStyle = iota + // MacToolbarStyleExpanded - The toolbar will appear below the window title + MacToolbarStyleExpanded + // MacToolbarStylePreference - The toolbar will appear below the window title and the items in the toolbar will attempt to have equal widths when possible + MacToolbarStylePreference + // MacToolbarStyleUnified - The window title will appear inline with the toolbar when visible + MacToolbarStyleUnified + // MacToolbarStyleUnifiedCompact - Same as MacToolbarStyleUnified, but with reduced margins in the toolbar allowing more focus to be on the contents of the window + MacToolbarStyleUnifiedCompact +) + +// MacWindow contains macOS specific options +type MacWindow struct { + Backdrop MacBackdrop + TitleBar TitleBar + Appearance MacAppearanceType + InvisibleTitleBarHeight int +} + +// TitleBar contains options for the Mac titlebar +type TitleBar struct { + AppearsTransparent bool + Hide bool + HideTitle bool + FullSizeContent bool + UseToolbar bool + HideToolbarSeparator bool + ToolbarStyle MacToolbarStyle +} + +// TitleBarDefault results in the default Mac TitleBar +var TitleBarDefault = TitleBar{ + AppearsTransparent: false, + Hide: false, + HideTitle: false, + FullSizeContent: false, + UseToolbar: false, + HideToolbarSeparator: false, +} + +// Credit: Comments from Electron site + +// TitleBarHidden results in a hidden title bar and a full size content window, +// yet the title bar still has the standard window controls (“traffic lights”) +// in the top left. +var TitleBarHidden = TitleBar{ + AppearsTransparent: true, + Hide: false, + HideTitle: true, + FullSizeContent: true, + UseToolbar: false, + HideToolbarSeparator: false, +} + +// TitleBarHiddenInset results in a hidden title bar with an alternative look where +// the traffic light buttons are slightly more inset from the window edge. +var TitleBarHiddenInset = TitleBar{ + AppearsTransparent: true, + Hide: false, + HideTitle: true, + FullSizeContent: true, + UseToolbar: true, + HideToolbarSeparator: true, +} + +// TitleBarHiddenInsetUnified results in a hidden title bar with an alternative look where +// the traffic light buttons are even more inset from the window edge. +var TitleBarHiddenInsetUnified = TitleBar{ + AppearsTransparent: true, + Hide: false, + HideTitle: true, + FullSizeContent: true, + UseToolbar: true, + HideToolbarSeparator: true, + ToolbarStyle: MacToolbarStyleUnified, +} + +// MacAppearanceType is a type of Appearance for Cocoa windows +type MacAppearanceType string + +const ( + // DefaultAppearance uses the default system value + DefaultAppearance MacAppearanceType = "" + // NSAppearanceNameAqua - The standard light system appearance. + NSAppearanceNameAqua MacAppearanceType = "NSAppearanceNameAqua" + // NSAppearanceNameDarkAqua - The standard dark system appearance. + NSAppearanceNameDarkAqua MacAppearanceType = "NSAppearanceNameDarkAqua" + // NSAppearanceNameVibrantLight - The light vibrant appearance + NSAppearanceNameVibrantLight MacAppearanceType = "NSAppearanceNameVibrantLight" + // NSAppearanceNameAccessibilityHighContrastAqua - A high-contrast version of the standard light system appearance. + NSAppearanceNameAccessibilityHighContrastAqua MacAppearanceType = "NSAppearanceNameAccessibilityHighContrastAqua" + // NSAppearanceNameAccessibilityHighContrastDarkAqua - A high-contrast version of the standard dark system appearance. + NSAppearanceNameAccessibilityHighContrastDarkAqua MacAppearanceType = "NSAppearanceNameAccessibilityHighContrastDarkAqua" + // NSAppearanceNameAccessibilityHighContrastVibrantLight - A high-contrast version of the light vibrant appearance. + NSAppearanceNameAccessibilityHighContrastVibrantLight MacAppearanceType = "NSAppearanceNameAccessibilityHighContrastVibrantLight" + // NSAppearanceNameAccessibilityHighContrastVibrantDark - A high-contrast version of the dark vibrant appearance. + NSAppearanceNameAccessibilityHighContrastVibrantDark MacAppearanceType = "NSAppearanceNameAccessibilityHighContrastVibrantDark" +) diff --git a/v3/pkg/options/window.go b/v3/pkg/options/window.go new file mode 100644 index 00000000..195168f4 --- /dev/null +++ b/v3/pkg/options/window.go @@ -0,0 +1,64 @@ +package options + +import ( + "io/fs" + "net/http" +) + +type WindowState int + +const ( + WindowStateNormal WindowState = iota + WindowStateMinimised + WindowStateMaximised + WindowStateFullscreen +) + +type WebviewWindow struct { + // Alias is a human-readable name for the window. This can be used to reference the window in the frontend. + Alias string + Title string + Width, Height int + AlwaysOnTop bool + URL string + DisableResize bool + Frameless bool + MinWidth int + MinHeight int + MaxWidth int + MaxHeight int + StartState WindowState + Mac MacWindow + BackgroundColour *RGBA + Assets Assets + HTML string + JS string + CSS string + X int + Y int + FullscreenButtonEnabled bool + Hidden bool + EnableFraudulentWebsiteWarnings bool +} + +var WindowDefaults = &WebviewWindow{ + Title: "", + Width: 800, + Height: 600, + URL: "", +} + +type Assets struct { + // URL to load the `index.html` file from. If this is a relative path, it will be resolved relative to the `FS` filesystem + URL string + // FS to use for loading assets from + FS fs.FS + // Handler is a custom handler to use for serving assets. If this is set, the `SetURL` and `FS` fields are ignored. + Handler http.Handler + // Middleware is a custom middleware to use for serving assets. If this is set, the `SetURL` and `FS` fields are ignored. + Middleware func(http.Handler) http.Handler +} + +type RGBA struct { + Red, Green, Blue, Alpha uint8 +} diff --git a/v3/tasks/Taskfile.yml b/v3/tasks/Taskfile.yml new file mode 100644 index 00000000..1949fb8f --- /dev/null +++ b/v3/tasks/Taskfile.yml @@ -0,0 +1,7 @@ +version: '3' + +tasks: + generate: + dir: ./events + cmds: + - go run generate.go diff --git a/v3/tasks/events/generate.go b/v3/tasks/events/generate.go new file mode 100644 index 00000000..b14af8b7 --- /dev/null +++ b/v3/tasks/events/generate.go @@ -0,0 +1,215 @@ +package main + +import ( + "bytes" + "os" + "strconv" + "strings" +) + +var eventsGo = `package events + +type ApplicationEventType uint +type WindowEventType uint + +var Mac = newMacEvents() + +type macEvents struct { +$$MACEVENTSDECL} + +func newMacEvents() macEvents { + return macEvents{ +$$MACEVENTSVALUES } +} +` + +var eventsH = `//go:build darwin + +#ifndef _events_h +#define _events_h + +extern void processApplicationEvent(unsigned int); +extern void processWindowEvent(unsigned int, unsigned int); + +$$CHEADEREVENTS + +#endif` + +func main() { + + eventNames, err := os.ReadFile("../../pkg/events/events.txt") + if err != nil { + panic(err) + } + + macEventsDecl := bytes.NewBufferString("") + macEventsValues := bytes.NewBufferString("") + cHeaderEvents := bytes.NewBufferString("") + windowDelegateEvents := bytes.NewBufferString("") + applicationDelegateEvents := bytes.NewBufferString("") + webviewDelegateEvents := bytes.NewBufferString("") + + var id int + var line []byte + // Loop over each line in the file + for id, line = range bytes.Split(eventNames, []byte{'\n'}) { + + // Skip empty lines + if len(line) == 0 { + continue + } + + // split on the colon + split := bytes.Split(line, []byte{':'}) + platform := strings.TrimSpace(string(split[0])) + event := strings.TrimSpace(string(split[1])) + var ignoreEvent bool + if strings.HasSuffix(event, "!") { + event = event[:len(event)-1] + ignoreEvent = true + } + + // Title case the event name + eventTitle := string(bytes.ToUpper([]byte{event[0]})) + event[1:] + // delegate function name has a lowercase first character + delegateEventFunction := string(bytes.ToLower([]byte{event[0]})) + event[1:] + + // Add to buffer + switch platform { + case "mac": + eventType := "ApplicationEventType" + if strings.HasPrefix(event, "Window") { + eventType = "WindowEventType" + } + if strings.HasPrefix(event, "WebView") { + eventType = "WindowEventType" + } + macEventsDecl.WriteString("\t" + eventTitle + " " + eventType + "\n") + macEventsValues.WriteString("\t\t" + event + ": " + strconv.Itoa(id) + ",\n") + cHeaderEvents.WriteString("#define Event" + eventTitle + " " + strconv.Itoa(id) + "\n") + if ignoreEvent { + continue + } + // Check if this is a window event + if strings.HasPrefix(event, "Window") { + windowDelegateEvents.WriteString(`- (void)` + delegateEventFunction + `:(NSNotification *)notification { + if( hasListeners(Event` + eventTitle + `) ) { + processWindowEvent(self.windowId, Event` + eventTitle + `); + } +} + +`) + } + // Check if this is a webview event + if strings.HasPrefix(event, "WebView") { + webViewFunction := strings.TrimPrefix(event, "WebView") + webViewFunction = string(bytes.ToLower([]byte{webViewFunction[0]})) + webViewFunction[1:] + webviewDelegateEvents.WriteString(`- (void)webView:(WKWebView *)webview ` + webViewFunction + `:(WKNavigation *)navigation { + if( hasListeners(Event` + eventTitle + `) ) { + processWindowEvent(self.windowId, Event` + eventTitle + `); + } +} + +`) + } + if strings.HasPrefix(event, "Application") { + applicationDelegateEvents.WriteString(`- (void)` + delegateEventFunction + `:(NSNotification *)notification { + if( hasListeners(Event` + eventTitle + `) ) { + processApplicationEvent(Event` + eventTitle + `); + } +} + +`) + } + + } + } + + cHeaderEvents.WriteString("\n#define MAX_EVENTS " + strconv.Itoa(id-1) + "\n") + + // Save the eventsGo template substituting the values and decls + templateToWrite := strings.ReplaceAll(eventsGo, "$$MACEVENTSDECL", macEventsDecl.String()) + templateToWrite = strings.ReplaceAll(templateToWrite, "$$MACEVENTSVALUES", macEventsValues.String()) + err = os.WriteFile("../../pkg/events/events.go", []byte(templateToWrite), 0644) + if err != nil { + panic(err) + } + + // Save the eventsH template substituting the values and decls + templateToWrite = strings.ReplaceAll(eventsH, "$$CHEADEREVENTS", cHeaderEvents.String()) + err = os.WriteFile("../../pkg/events/events.h", []byte(templateToWrite), 0644) + if err != nil { + panic(err) + } + + // Load the window_delegate.m file + windowDelegate, err := os.ReadFile("../../pkg/application/window_delegate.m") + if err != nil { + panic(err) + } + // iterate over the lines until we reach a line that says "// GENERATED EVENTS START" + // then we insert the events + // then we iterate until we reach a line that says "// GENERATED EVENTS END" + // then we write the file + var buffer bytes.Buffer + var inGeneratedEvents bool + for _, line := range bytes.Split(windowDelegate, []byte{'\n'}) { + if bytes.Contains(line, []byte("// GENERATED EVENTS START")) { + inGeneratedEvents = true + buffer.WriteString("// GENERATED EVENTS START\n") + buffer.WriteString(windowDelegateEvents.String()) + buffer.WriteString(webviewDelegateEvents.String()) + continue + } + if bytes.Contains(line, []byte("// GENERATED EVENTS END")) { + inGeneratedEvents = false + buffer.WriteString("// GENERATED EVENTS END\n") + continue + } + if !inGeneratedEvents { + if len(line) > 0 { + buffer.Write(line) + buffer.WriteString("\n") + } + } + } + err = os.WriteFile("../../pkg/application/window_delegate.m", buffer.Bytes(), 0755) + if err != nil { + panic(err) + } + + // Load the app_delegate.m file + appDelegate, err := os.ReadFile("../../pkg/application/app_delegate.m") + if err != nil { + panic(err) + } + // iterate over the lines until we reach a line that says "// GENERATED EVENTS START" + // then we insert the events + // then we iterate until we reach a line that says "// GENERATED EVENTS END" + // then we write the file + buffer.Reset() + for _, line := range bytes.Split(appDelegate, []byte{'\n'}) { + if bytes.Contains(line, []byte("// GENERATED EVENTS START")) { + inGeneratedEvents = true + buffer.WriteString("// GENERATED EVENTS START\n") + buffer.WriteString(applicationDelegateEvents.String()) + continue + } + if bytes.Contains(line, []byte("// GENERATED EVENTS END")) { + inGeneratedEvents = false + buffer.WriteString("// GENERATED EVENTS END\n") + continue + } + if !inGeneratedEvents { + if len(line) > 0 { + buffer.Write(line) + buffer.WriteString("\n") + } + } + } + err = os.WriteFile("../../pkg/application/app_delegate.m", buffer.Bytes(), 0755) + if err != nil { + panic(err) + } + +} diff --git a/v3/tasks/png2bytes/png2bytes.go b/v3/tasks/png2bytes/png2bytes.go new file mode 100644 index 00000000..b51a472b --- /dev/null +++ b/v3/tasks/png2bytes/png2bytes.go @@ -0,0 +1,38 @@ +package main + +import ( + "bytes" + "os" + "strconv" +) + +func main() { + + if len(os.Args) != 2 { + println("Please provide a filename") + os.Exit(1) + } + + data, err := os.ReadFile(os.Args[1]) + if err != nil { + println("Error reading file:", err.Error()) + os.Exit(1) + } + + var buffer bytes.Buffer + buffer.WriteString("var image = []byte{") + // Iterate over the bytes and print them out in decimal + for _, b := range data { + // convert byte to decimal + buffer.WriteString(strconv.Itoa(int(b)) + ", ") + } + buffer.WriteString("}\n") + + // write to file + err = os.WriteFile(os.Args[1]+".go", buffer.Bytes(), 0644) + if err != nil { + println("Error writing file:", err.Error()) + os.Exit(1) + } + +}