@widget-js/core 0.1.27 → 0.1.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/cjs/api/AppApi.js +9 -10
  2. package/dist/cjs/api/BrowserWindowApi.js +34 -36
  3. package/dist/cjs/api/Channel.js +4 -3
  4. package/dist/cjs/api/DeviceApi.js +8 -2
  5. package/dist/cjs/api/LogApi.js +24 -0
  6. package/dist/cjs/api/ScreenApi.js +6 -0
  7. package/dist/cjs/index.js +3 -1
  8. package/dist/cjs/model/Widget.js +10 -8
  9. package/dist/cjs/permission/permission.js +2 -0
  10. package/dist/cjs/utils/ElectronUtils.js +4 -0
  11. package/dist/esm/api/AppApi.js +9 -10
  12. package/dist/esm/api/BrowserWindowApi.js +34 -36
  13. package/dist/esm/api/Channel.js +4 -3
  14. package/dist/esm/api/DeviceApi.js +8 -2
  15. package/dist/esm/api/LogApi.js +20 -0
  16. package/dist/esm/api/ScreenApi.js +2 -0
  17. package/dist/esm/index.js +3 -1
  18. package/dist/esm/model/Widget.js +10 -8
  19. package/dist/esm/permission/permission.js +1 -0
  20. package/dist/esm/utils/ElectronUtils.js +4 -0
  21. package/dist/types/api/AppApi.d.ts +2 -0
  22. package/dist/types/api/BrowserWindowApi.d.ts +9 -2
  23. package/dist/types/api/Channel.d.ts +5 -4
  24. package/dist/types/api/DeviceApi.d.ts +5 -0
  25. package/dist/types/api/LogApi.d.ts +6 -0
  26. package/dist/types/api/ScreenApi.d.ts +2 -0
  27. package/dist/types/index.d.ts +3 -1
  28. package/dist/types/model/Widget.d.ts +8 -0
  29. package/dist/types/model/event/NativeKeyboardEvent.d.ts +6 -0
  30. package/dist/types/permission/permission.d.ts +1 -0
  31. package/dist/types/utils/ElectronUtils.d.ts +1 -0
  32. package/dist/umd/index.js +1 -1
  33. package/package.json +3 -1
  34. package/dist/types/model/event/AppKeyboardEvent.d.ts +0 -16
  35. /package/dist/cjs/model/event/{AppKeyboardEvent.js → NativeKeyboardEvent.js} +0 -0
  36. /package/dist/esm/model/event/{AppKeyboardEvent.js → NativeKeyboardEvent.js} +0 -0
@@ -5,12 +5,10 @@ const ElectronUtils_1 = require("../utils/ElectronUtils");
5
5
  const Channel_1 = require("./Channel");
6
6
  class AppApi {
7
7
  static async setConfig(key, value) {
8
- var _a;
9
- await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.APP, this.SET_CONFIG, key, value));
8
+ await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.APP, this.SET_CONFIG, key, value);
10
9
  }
11
10
  static async getConfig(key, defaultValue) {
12
- var _a;
13
- const value = await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.APP, this.GET_CONFIG, key));
11
+ const value = await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.APP, this.GET_CONFIG, key);
14
12
  if (value === null || value === undefined) {
15
13
  return defaultValue;
16
14
  }
@@ -23,19 +21,19 @@ class AppApi {
23
21
  return value;
24
22
  }
25
23
  static openAddWidgetWindow() {
26
- var _a;
27
- (_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.APP, this.OPEN_ADD_WIDGET_WINDOW);
24
+ ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.APP, this.OPEN_ADD_WIDGET_WINDOW);
28
25
  }
29
26
  /**
30
27
  * 获取应用版本号,格式为 x.y.z
31
28
  */
32
29
  static async getVersion() {
33
- var _a;
34
- return (_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.APP, this.GET_VERSION);
30
+ return ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.APP, this.GET_VERSION);
31
+ }
32
+ static async getPreloadPath() {
33
+ return ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.APP, this.GET_PRELOAD_PATH);
35
34
  }
36
35
  static openSettingWindow() {
37
- var _a;
38
- (_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.APP, this.OPEN_SETTING_WINDOW);
36
+ ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.APP, this.OPEN_SETTING_WINDOW);
39
37
  }
40
38
  }
41
39
  exports.AppApi = AppApi;
@@ -43,4 +41,5 @@ AppApi.SET_CONFIG = "SET_CONFIG";
43
41
  AppApi.GET_CONFIG = "GET_CONFIG";
44
42
  AppApi.OPEN_ADD_WIDGET_WINDOW = "open-add-widget-window";
45
43
  AppApi.OPEN_SETTING_WINDOW = "open-setting-window";
44
+ AppApi.GET_PRELOAD_PATH = "get-preload-path";
46
45
  AppApi.GET_VERSION = "get-version";
@@ -5,48 +5,41 @@ const Channel_1 = require("./Channel");
5
5
  const ElectronUtils_1 = require("../utils/ElectronUtils");
6
6
  class BrowserWindowApi {
7
7
  static async setIgnoreMouseEvent(ignore) {
8
- var _a;
9
- await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.IGNORE_MOUSE_EVENT, ignore));
8
+ await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.IGNORE_MOUSE_EVENT, ignore);
10
9
  }
11
10
  static async show() {
12
- var _a;
13
- await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.WINDOW_VISIBILITY, true));
11
+ await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.WINDOW_VISIBILITY, true);
12
+ }
13
+ static async showInactive() {
14
+ await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.SHOW_INACTIVE, true);
14
15
  }
15
16
  static async hide() {
16
- var _a;
17
- await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.WINDOW_VISIBILITY, false));
17
+ await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.WINDOW_VISIBILITY, false);
18
18
  }
19
19
  static async center() {
20
- var _a;
21
- await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.CENTER, false));
20
+ await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.CENTER, false);
22
21
  }
23
22
  /**
24
23
  * @deprecated
25
24
  * @param show
26
25
  */
27
26
  static async setWindowVisibility(show) {
28
- var _a;
29
- await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.WINDOW_VISIBILITY, show));
27
+ await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.WINDOW_VISIBILITY, show);
30
28
  }
31
29
  static async setAlwaysOnTop(alwaysOnTop) {
32
- var _a;
33
- await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.ALWAYS_ON_TOP, alwaysOnTop));
30
+ await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.ALWAYS_ON_TOP, alwaysOnTop);
34
31
  }
35
32
  static async isAlwaysOnTop() {
36
- var _a;
37
- return await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.IS_ALWAYS_ON_TOP));
33
+ return await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.IS_ALWAYS_ON_TOP);
38
34
  }
39
35
  static async openUrl(url) {
40
- var _a;
41
- await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.OPEN_URL, url));
36
+ await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.OPEN_URL, url);
42
37
  }
43
38
  static async moveTop() {
44
- var _a;
45
- await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.MOVE_TOP));
39
+ await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.MOVE_TOP);
46
40
  }
47
41
  static async openDevTools() {
48
- var _a;
49
- await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.OPEN_DEV_TOOLS));
42
+ await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.OPEN_DEV_TOOLS);
50
43
  }
51
44
  /**
52
45
  * 设置窗口位置
@@ -55,44 +48,45 @@ class BrowserWindowApi {
55
48
  * @param animation 动画只在mac系统有效
56
49
  */
57
50
  static async setPosition(x, y, animation) {
58
- var _a;
59
- await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.SET_POSITION, x, y, animation));
51
+ await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.SET_POSITION, x, y, animation);
60
52
  }
61
53
  static async getPosition() {
62
- var _a;
63
- return await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.GET_POSITION));
54
+ return await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.GET_POSITION);
64
55
  }
65
56
  static async blur() {
66
- var _a;
67
- return await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.BLUR));
57
+ return await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.BLUR);
68
58
  }
69
59
  static async focus() {
70
- var _a;
71
- return await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.FOCUS));
60
+ return await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.FOCUS);
72
61
  }
73
62
  /**
74
63
  * 设置窗口是否可以拉伸
75
64
  * @param resizable
76
65
  */
77
66
  static async setResizable(resizable) {
78
- var _a;
79
- return await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.SET_RESIZABLE, resizable));
67
+ return await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.SET_RESIZABLE, resizable);
80
68
  }
81
69
  static async getBounds() {
82
- var _a;
83
- return await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.GET_BOUNDS));
70
+ return await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.GET_BOUNDS);
84
71
  }
85
72
  static async setBounds(bounds, animate) {
86
- var _a;
87
- return await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.SET_BOUNDS, bounds, animate));
73
+ return await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.SET_BOUNDS, bounds, animate);
74
+ }
75
+ static async alignToScreen(align) {
76
+ return await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.ALIGN_TO_SCREEN, align);
77
+ }
78
+ static async startDraggingWindow() {
79
+ return await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.START_DRAGGING_WINDOW);
80
+ }
81
+ static async stopDraggingWindow() {
82
+ return await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.STOP_DRAGGING_WINDOW);
88
83
  }
89
84
  /**
90
85
  * 通过url检测窗口是否存在
91
86
  * @param url
92
87
  */
93
88
  static async existsByUrl(url) {
94
- var _a;
95
- return await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.EXISTS_BY_URL, url));
89
+ return await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.BROWSER_WINDOW, this.EXISTS_BY_URL, url);
96
90
  }
97
91
  }
98
92
  exports.BrowserWindowApi = BrowserWindowApi;
@@ -111,5 +105,9 @@ BrowserWindowApi.FOCUS = "focus";
111
105
  BrowserWindowApi.SET_RESIZABLE = "set-resizable";
112
106
  BrowserWindowApi.GET_BOUNDS = "get-bounds";
113
107
  BrowserWindowApi.SET_BOUNDS = "set-bounds";
108
+ BrowserWindowApi.ALIGN_TO_SCREEN = "align-to-screen";
109
+ BrowserWindowApi.START_DRAGGING_WINDOW = "start-dragging-window";
110
+ BrowserWindowApi.STOP_DRAGGING_WINDOW = "stop-dragging-window";
114
111
  BrowserWindowApi.EXISTS_BY_URL = "exists-by-url";
112
+ BrowserWindowApi.SHOW_INACTIVE = "show-inactive";
115
113
  BrowserWindowApi.SHOW = "show";
@@ -9,11 +9,12 @@ var Channel;
9
9
  Channel["WIDGET"] = "channel::cn.widgetjs.core.widget";
10
10
  Channel["HOSTED_WIDGET"] = "channel::cn.widgetjs.core.hosted_widget";
11
11
  Channel["APP"] = "channel::cn.widgetjs.core.app";
12
- Channel["MOUSE_EVENT"] = "channel::cn.widgetjs.core.mouse_event";
13
- Channel["KEYBOARD_EVENT"] = "channel::cn.widgetjs.core.keyboard_event";
14
12
  Channel["DIALOG"] = "channel::cn.widgetjs.core.dialog";
15
13
  Channel["CLIPBOARD"] = "channel::cn.widgetjs.core.clipboard";
14
+ Channel["SCREEN"] = "channel::cn.widgetjs.core.screen";
15
+ Channel["SHORTCUT"] = "channel::cn.widgetjs.core.shortcut";
16
+ Channel["LOG"] = "channel::cn.widgetjs.core.log";
16
17
  Channel["DEVICE"] = "channel::cn.widgetjs.core.device";
18
+ Channel["MOUSE_EVENT"] = "channel::cn.widgetjs.core.mouse_event";
17
19
  Channel["KEYBOARD"] = "channel::cn.widgetjs.core.keyboard";
18
- Channel["SHORTCUT"] = "channel::cn.widgetjs.core.shortcut";
19
20
  })(Channel = exports.Channel || (exports.Channel = {}));
@@ -8,9 +8,15 @@ class DeviceApi {
8
8
  * 获取当前鼠标位置
9
9
  */
10
10
  static async getCursorScreenPoint() {
11
- var _a;
12
- return await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.DEVICE, this.GET_CURSOR_SCREEN_POINT));
11
+ return await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.DEVICE, this.GET_CURSOR_SCREEN_POINT);
12
+ }
13
+ /**
14
+ * 判断是否所有按键都已经释放
15
+ */
16
+ static async isAllKeyReleased() {
17
+ return await ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.DEVICE, this.IS_ALL_KEY_RELEASED);
13
18
  }
14
19
  }
15
20
  exports.DeviceApi = DeviceApi;
16
21
  DeviceApi.GET_CURSOR_SCREEN_POINT = "get-cursor-screen-point";
22
+ DeviceApi.IS_ALL_KEY_RELEASED = "is-all-key-released";
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogApi = void 0;
4
+ const ElectronUtils_1 = require("../utils/ElectronUtils");
5
+ const Channel_1 = require("./Channel");
6
+ class LogApi {
7
+ static info(name, ...data) {
8
+ console.info(...data);
9
+ ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.LOG, name, 'info', ...data);
10
+ }
11
+ static error(name, ...data) {
12
+ console.error(...data);
13
+ ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.LOG, name, 'error', ...data);
14
+ }
15
+ static warn(name, ...data) {
16
+ console.warn(...data);
17
+ ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.LOG, name, 'warn', ...data);
18
+ }
19
+ static log(name, ...data) {
20
+ console.log(...data);
21
+ ElectronUtils_1.ElectronUtils.invoke(Channel_1.Channel.LOG, name, 'log', ...data);
22
+ }
23
+ }
24
+ exports.LogApi = LogApi;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScreenApi = void 0;
4
+ class ScreenApi {
5
+ }
6
+ exports.ScreenApi = ScreenApi;
package/dist/cjs/index.js CHANGED
@@ -23,7 +23,7 @@ __exportStar(require("./model/AppNotification"), exports);
23
23
  __exportStar(require("./model/HostedMode"), exports);
24
24
  __exportStar(require("./model/HostedWidget"), exports);
25
25
  __exportStar(require("./model/interface/Rectangle"), exports);
26
- __exportStar(require("./model/event/AppKeyboardEvent"), exports);
26
+ __exportStar(require("./model/event/NativeKeyboardEvent"), exports);
27
27
  __exportStar(require("./model/event/AppMouseEvent"), exports);
28
28
  __exportStar(require("./model/WidgetPackage"), exports);
29
29
  __exportStar(require("./api/ElectronApi"), exports);
@@ -43,3 +43,5 @@ __exportStar(require("./api/DialogApi"), exports);
43
43
  __exportStar(require("./utils/ElectronUtils"), exports);
44
44
  __exportStar(require("./utils/UrlUtils"), exports);
45
45
  __exportStar(require("./router/query"), exports);
46
+ __exportStar(require("./api/LogApi"), exports);
47
+ __exportStar(require("./permission/permission"), exports);
@@ -4,7 +4,7 @@ exports.WidgetKeyword = exports.Widget = void 0;
4
4
  const HostedMode_1 = require("./HostedMode");
5
5
  class Widget {
6
6
  constructor(options) {
7
- var _a, _b, _c, _d, _e, _f, _g;
7
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
8
8
  /**
9
9
  * 组件默认语言
10
10
  */
@@ -16,17 +16,19 @@ class Widget {
16
16
  this.lang = options.lang;
17
17
  this.width = options.width;
18
18
  this.height = options.height;
19
- this.maxWidth = (_a = options.maxWidth) !== null && _a !== void 0 ? _a : options.width;
20
- this.maxHeight = (_b = options.maxHeight) !== null && _b !== void 0 ? _b : options.height;
21
- this.minWidth = (_c = options.minWidth) !== null && _c !== void 0 ? _c : options.width;
22
- this.minHeight = (_d = options.minHeight) !== null && _d !== void 0 ? _d : options.height;
23
- this.backgroundThrottling = (_e = options.backgroundThrottling) !== null && _e !== void 0 ? _e : true;
19
+ this.movable = (_a = options.movable) !== null && _a !== void 0 ? _a : true;
20
+ this.permissions = (_b = options.permissions) !== null && _b !== void 0 ? _b : [];
21
+ this.maxWidth = (_c = options.maxWidth) !== null && _c !== void 0 ? _c : options.width;
22
+ this.maxHeight = (_d = options.maxHeight) !== null && _d !== void 0 ? _d : options.height;
23
+ this.minWidth = (_e = options.minWidth) !== null && _e !== void 0 ? _e : options.width;
24
+ this.minHeight = (_f = options.minHeight) !== null && _f !== void 0 ? _f : options.height;
25
+ this.backgroundThrottling = (_g = options.backgroundThrottling) !== null && _g !== void 0 ? _g : true;
24
26
  this.packageName = options.packageName;
25
27
  this.previewImage = options.previewImage;
26
28
  this.shortcut = options.shortcut;
27
- this.refreshWhenResided = (_f = options.refreshWhenResided) !== null && _f !== void 0 ? _f : false;
29
+ this.refreshWhenResided = (_h = options.refreshWhenResided) !== null && _h !== void 0 ? _h : false;
28
30
  this.hideWhenBlur = options.hideWhenBlur == null ? false : options.hideWhenBlur;
29
- this.supportHostedMode = (_g = options.supportHostedMode) !== null && _g !== void 0 ? _g : HostedMode_1.HostedMode.NORMAL | HostedMode_1.HostedMode.OVERLAP;
31
+ this.supportHostedMode = (_j = options.supportHostedMode) !== null && _j !== void 0 ? _j : HostedMode_1.HostedMode.NORMAL | HostedMode_1.HostedMode.OVERLAP;
30
32
  this.routes = options.routes;
31
33
  }
32
34
  getIndexRoute() {
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -20,5 +20,9 @@ class ElectronUtils {
20
20
  }
21
21
  return null;
22
22
  }
23
+ static async invoke(channel, method, ...args) {
24
+ var _a;
25
+ return (_a = this.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(channel, method, ...args);
26
+ }
23
27
  }
24
28
  exports.ElectronUtils = ElectronUtils;
@@ -2,12 +2,10 @@ import { ElectronUtils } from "../utils/ElectronUtils";
2
2
  import { Channel } from "./Channel";
3
3
  export class AppApi {
4
4
  static async setConfig(key, value) {
5
- var _a;
6
- await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.APP, this.SET_CONFIG, key, value));
5
+ await ElectronUtils.invoke(Channel.APP, this.SET_CONFIG, key, value);
7
6
  }
8
7
  static async getConfig(key, defaultValue) {
9
- var _a;
10
- const value = await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.APP, this.GET_CONFIG, key));
8
+ const value = await ElectronUtils.invoke(Channel.APP, this.GET_CONFIG, key);
11
9
  if (value === null || value === undefined) {
12
10
  return defaultValue;
13
11
  }
@@ -20,23 +18,24 @@ export class AppApi {
20
18
  return value;
21
19
  }
22
20
  static openAddWidgetWindow() {
23
- var _a;
24
- (_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.APP, this.OPEN_ADD_WIDGET_WINDOW);
21
+ ElectronUtils.invoke(Channel.APP, this.OPEN_ADD_WIDGET_WINDOW);
25
22
  }
26
23
  /**
27
24
  * 获取应用版本号,格式为 x.y.z
28
25
  */
29
26
  static async getVersion() {
30
- var _a;
31
- return (_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.APP, this.GET_VERSION);
27
+ return ElectronUtils.invoke(Channel.APP, this.GET_VERSION);
28
+ }
29
+ static async getPreloadPath() {
30
+ return ElectronUtils.invoke(Channel.APP, this.GET_PRELOAD_PATH);
32
31
  }
33
32
  static openSettingWindow() {
34
- var _a;
35
- (_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.APP, this.OPEN_SETTING_WINDOW);
33
+ ElectronUtils.invoke(Channel.APP, this.OPEN_SETTING_WINDOW);
36
34
  }
37
35
  }
38
36
  AppApi.SET_CONFIG = "SET_CONFIG";
39
37
  AppApi.GET_CONFIG = "GET_CONFIG";
40
38
  AppApi.OPEN_ADD_WIDGET_WINDOW = "open-add-widget-window";
41
39
  AppApi.OPEN_SETTING_WINDOW = "open-setting-window";
40
+ AppApi.GET_PRELOAD_PATH = "get-preload-path";
42
41
  AppApi.GET_VERSION = "get-version";
@@ -2,48 +2,41 @@ import { Channel } from "./Channel";
2
2
  import { ElectronUtils } from "../utils/ElectronUtils";
3
3
  export class BrowserWindowApi {
4
4
  static async setIgnoreMouseEvent(ignore) {
5
- var _a;
6
- await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.IGNORE_MOUSE_EVENT, ignore));
5
+ await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.IGNORE_MOUSE_EVENT, ignore);
7
6
  }
8
7
  static async show() {
9
- var _a;
10
- await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.WINDOW_VISIBILITY, true));
8
+ await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.WINDOW_VISIBILITY, true);
9
+ }
10
+ static async showInactive() {
11
+ await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.SHOW_INACTIVE, true);
11
12
  }
12
13
  static async hide() {
13
- var _a;
14
- await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.WINDOW_VISIBILITY, false));
14
+ await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.WINDOW_VISIBILITY, false);
15
15
  }
16
16
  static async center() {
17
- var _a;
18
- await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.CENTER, false));
17
+ await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.CENTER, false);
19
18
  }
20
19
  /**
21
20
  * @deprecated
22
21
  * @param show
23
22
  */
24
23
  static async setWindowVisibility(show) {
25
- var _a;
26
- await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.WINDOW_VISIBILITY, show));
24
+ await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.WINDOW_VISIBILITY, show);
27
25
  }
28
26
  static async setAlwaysOnTop(alwaysOnTop) {
29
- var _a;
30
- await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.ALWAYS_ON_TOP, alwaysOnTop));
27
+ await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.ALWAYS_ON_TOP, alwaysOnTop);
31
28
  }
32
29
  static async isAlwaysOnTop() {
33
- var _a;
34
- return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.IS_ALWAYS_ON_TOP));
30
+ return await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.IS_ALWAYS_ON_TOP);
35
31
  }
36
32
  static async openUrl(url) {
37
- var _a;
38
- await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.OPEN_URL, url));
33
+ await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.OPEN_URL, url);
39
34
  }
40
35
  static async moveTop() {
41
- var _a;
42
- await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.MOVE_TOP));
36
+ await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.MOVE_TOP);
43
37
  }
44
38
  static async openDevTools() {
45
- var _a;
46
- await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.OPEN_DEV_TOOLS));
39
+ await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.OPEN_DEV_TOOLS);
47
40
  }
48
41
  /**
49
42
  * 设置窗口位置
@@ -52,44 +45,45 @@ export class BrowserWindowApi {
52
45
  * @param animation 动画只在mac系统有效
53
46
  */
54
47
  static async setPosition(x, y, animation) {
55
- var _a;
56
- await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.SET_POSITION, x, y, animation));
48
+ await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.SET_POSITION, x, y, animation);
57
49
  }
58
50
  static async getPosition() {
59
- var _a;
60
- return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.GET_POSITION));
51
+ return await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.GET_POSITION);
61
52
  }
62
53
  static async blur() {
63
- var _a;
64
- return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.BLUR));
54
+ return await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.BLUR);
65
55
  }
66
56
  static async focus() {
67
- var _a;
68
- return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.FOCUS));
57
+ return await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.FOCUS);
69
58
  }
70
59
  /**
71
60
  * 设置窗口是否可以拉伸
72
61
  * @param resizable
73
62
  */
74
63
  static async setResizable(resizable) {
75
- var _a;
76
- return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.SET_RESIZABLE, resizable));
64
+ return await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.SET_RESIZABLE, resizable);
77
65
  }
78
66
  static async getBounds() {
79
- var _a;
80
- return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.GET_BOUNDS));
67
+ return await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.GET_BOUNDS);
81
68
  }
82
69
  static async setBounds(bounds, animate) {
83
- var _a;
84
- return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.SET_BOUNDS, bounds, animate));
70
+ return await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.SET_BOUNDS, bounds, animate);
71
+ }
72
+ static async alignToScreen(align) {
73
+ return await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.ALIGN_TO_SCREEN, align);
74
+ }
75
+ static async startDraggingWindow() {
76
+ return await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.START_DRAGGING_WINDOW);
77
+ }
78
+ static async stopDraggingWindow() {
79
+ return await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.STOP_DRAGGING_WINDOW);
85
80
  }
86
81
  /**
87
82
  * 通过url检测窗口是否存在
88
83
  * @param url
89
84
  */
90
85
  static async existsByUrl(url) {
91
- var _a;
92
- return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.EXISTS_BY_URL, url));
86
+ return await ElectronUtils.invoke(Channel.BROWSER_WINDOW, this.EXISTS_BY_URL, url);
93
87
  }
94
88
  }
95
89
  BrowserWindowApi.IGNORE_MOUSE_EVENT = "ignore-mouse-event";
@@ -107,5 +101,9 @@ BrowserWindowApi.FOCUS = "focus";
107
101
  BrowserWindowApi.SET_RESIZABLE = "set-resizable";
108
102
  BrowserWindowApi.GET_BOUNDS = "get-bounds";
109
103
  BrowserWindowApi.SET_BOUNDS = "set-bounds";
104
+ BrowserWindowApi.ALIGN_TO_SCREEN = "align-to-screen";
105
+ BrowserWindowApi.START_DRAGGING_WINDOW = "start-dragging-window";
106
+ BrowserWindowApi.STOP_DRAGGING_WINDOW = "stop-dragging-window";
110
107
  BrowserWindowApi.EXISTS_BY_URL = "exists-by-url";
108
+ BrowserWindowApi.SHOW_INACTIVE = "show-inactive";
111
109
  BrowserWindowApi.SHOW = "show";
@@ -6,11 +6,12 @@ export var Channel;
6
6
  Channel["WIDGET"] = "channel::cn.widgetjs.core.widget";
7
7
  Channel["HOSTED_WIDGET"] = "channel::cn.widgetjs.core.hosted_widget";
8
8
  Channel["APP"] = "channel::cn.widgetjs.core.app";
9
- Channel["MOUSE_EVENT"] = "channel::cn.widgetjs.core.mouse_event";
10
- Channel["KEYBOARD_EVENT"] = "channel::cn.widgetjs.core.keyboard_event";
11
9
  Channel["DIALOG"] = "channel::cn.widgetjs.core.dialog";
12
10
  Channel["CLIPBOARD"] = "channel::cn.widgetjs.core.clipboard";
11
+ Channel["SCREEN"] = "channel::cn.widgetjs.core.screen";
12
+ Channel["SHORTCUT"] = "channel::cn.widgetjs.core.shortcut";
13
+ Channel["LOG"] = "channel::cn.widgetjs.core.log";
13
14
  Channel["DEVICE"] = "channel::cn.widgetjs.core.device";
15
+ Channel["MOUSE_EVENT"] = "channel::cn.widgetjs.core.mouse_event";
14
16
  Channel["KEYBOARD"] = "channel::cn.widgetjs.core.keyboard";
15
- Channel["SHORTCUT"] = "channel::cn.widgetjs.core.shortcut";
16
17
  })(Channel || (Channel = {}));
@@ -5,8 +5,14 @@ export class DeviceApi {
5
5
  * 获取当前鼠标位置
6
6
  */
7
7
  static async getCursorScreenPoint() {
8
- var _a;
9
- return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.DEVICE, this.GET_CURSOR_SCREEN_POINT));
8
+ return await ElectronUtils.invoke(Channel.DEVICE, this.GET_CURSOR_SCREEN_POINT);
9
+ }
10
+ /**
11
+ * 判断是否所有按键都已经释放
12
+ */
13
+ static async isAllKeyReleased() {
14
+ return await ElectronUtils.invoke(Channel.DEVICE, this.IS_ALL_KEY_RELEASED);
10
15
  }
11
16
  }
12
17
  DeviceApi.GET_CURSOR_SCREEN_POINT = "get-cursor-screen-point";
18
+ DeviceApi.IS_ALL_KEY_RELEASED = "is-all-key-released";
@@ -0,0 +1,20 @@
1
+ import { ElectronUtils } from '../utils/ElectronUtils';
2
+ import { Channel } from "./Channel";
3
+ export class LogApi {
4
+ static info(name, ...data) {
5
+ console.info(...data);
6
+ ElectronUtils.invoke(Channel.LOG, name, 'info', ...data);
7
+ }
8
+ static error(name, ...data) {
9
+ console.error(...data);
10
+ ElectronUtils.invoke(Channel.LOG, name, 'error', ...data);
11
+ }
12
+ static warn(name, ...data) {
13
+ console.warn(...data);
14
+ ElectronUtils.invoke(Channel.LOG, name, 'warn', ...data);
15
+ }
16
+ static log(name, ...data) {
17
+ console.log(...data);
18
+ ElectronUtils.invoke(Channel.LOG, name, 'log', ...data);
19
+ }
20
+ }
@@ -0,0 +1,2 @@
1
+ export class ScreenApi {
2
+ }
package/dist/esm/index.js CHANGED
@@ -7,7 +7,7 @@ export * from "./model/AppNotification";
7
7
  export * from "./model/HostedMode";
8
8
  export * from "./model/HostedWidget";
9
9
  export * from "./model/interface/Rectangle";
10
- export * from "./model/event/AppKeyboardEvent";
10
+ export * from "./model/event/NativeKeyboardEvent";
11
11
  export * from "./model/event/AppMouseEvent";
12
12
  export * from "./model/WidgetPackage";
13
13
  export * from "./api/ElectronApi";
@@ -27,3 +27,5 @@ export * from "./api/DialogApi";
27
27
  export * from "./utils/ElectronUtils";
28
28
  export * from "./utils/UrlUtils";
29
29
  export * from "./router/query";
30
+ export * from "./api/LogApi";
31
+ export * from "./permission/permission";
@@ -1,7 +1,7 @@
1
1
  import { HostedMode } from "./HostedMode";
2
2
  export class Widget {
3
3
  constructor(options) {
4
- var _a, _b, _c, _d, _e, _f, _g;
4
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
5
5
  /**
6
6
  * 组件默认语言
7
7
  */
@@ -13,17 +13,19 @@ export class Widget {
13
13
  this.lang = options.lang;
14
14
  this.width = options.width;
15
15
  this.height = options.height;
16
- this.maxWidth = (_a = options.maxWidth) !== null && _a !== void 0 ? _a : options.width;
17
- this.maxHeight = (_b = options.maxHeight) !== null && _b !== void 0 ? _b : options.height;
18
- this.minWidth = (_c = options.minWidth) !== null && _c !== void 0 ? _c : options.width;
19
- this.minHeight = (_d = options.minHeight) !== null && _d !== void 0 ? _d : options.height;
20
- this.backgroundThrottling = (_e = options.backgroundThrottling) !== null && _e !== void 0 ? _e : true;
16
+ this.movable = (_a = options.movable) !== null && _a !== void 0 ? _a : true;
17
+ this.permissions = (_b = options.permissions) !== null && _b !== void 0 ? _b : [];
18
+ this.maxWidth = (_c = options.maxWidth) !== null && _c !== void 0 ? _c : options.width;
19
+ this.maxHeight = (_d = options.maxHeight) !== null && _d !== void 0 ? _d : options.height;
20
+ this.minWidth = (_e = options.minWidth) !== null && _e !== void 0 ? _e : options.width;
21
+ this.minHeight = (_f = options.minHeight) !== null && _f !== void 0 ? _f : options.height;
22
+ this.backgroundThrottling = (_g = options.backgroundThrottling) !== null && _g !== void 0 ? _g : true;
21
23
  this.packageName = options.packageName;
22
24
  this.previewImage = options.previewImage;
23
25
  this.shortcut = options.shortcut;
24
- this.refreshWhenResided = (_f = options.refreshWhenResided) !== null && _f !== void 0 ? _f : false;
26
+ this.refreshWhenResided = (_h = options.refreshWhenResided) !== null && _h !== void 0 ? _h : false;
25
27
  this.hideWhenBlur = options.hideWhenBlur == null ? false : options.hideWhenBlur;
26
- this.supportHostedMode = (_g = options.supportHostedMode) !== null && _g !== void 0 ? _g : HostedMode.NORMAL | HostedMode.OVERLAP;
28
+ this.supportHostedMode = (_j = options.supportHostedMode) !== null && _j !== void 0 ? _j : HostedMode.NORMAL | HostedMode.OVERLAP;
27
29
  this.routes = options.routes;
28
30
  }
29
31
  getIndexRoute() {
@@ -0,0 +1 @@
1
+ export {};
@@ -17,4 +17,8 @@ export class ElectronUtils {
17
17
  }
18
18
  return null;
19
19
  }
20
+ static async invoke(channel, method, ...args) {
21
+ var _a;
22
+ return (_a = this.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(channel, method, ...args);
23
+ }
20
24
  }
@@ -3,6 +3,7 @@ export declare class AppApi {
3
3
  static readonly GET_CONFIG = "GET_CONFIG";
4
4
  static readonly OPEN_ADD_WIDGET_WINDOW = "open-add-widget-window";
5
5
  static readonly OPEN_SETTING_WINDOW = "open-setting-window";
6
+ static readonly GET_PRELOAD_PATH = "get-preload-path";
6
7
  static readonly GET_VERSION = "get-version";
7
8
  static setConfig(key: string, value: string | number | boolean): Promise<void>;
8
9
  static getConfig(key: string, defaultValue: string | number | boolean): Promise<string | number | boolean>;
@@ -11,5 +12,6 @@ export declare class AppApi {
11
12
  * 获取应用版本号,格式为 x.y.z
12
13
  */
13
14
  static getVersion(): Promise<string>;
15
+ static getPreloadPath(): Promise<string>;
14
16
  static openSettingWindow(): void;
15
17
  }
@@ -1,5 +1,5 @@
1
1
  import { Rectangle } from "../model/interface/Rectangle";
2
- type Position = {
2
+ export type Position = {
3
3
  x: number;
4
4
  y: number;
5
5
  };
@@ -19,10 +19,15 @@ export declare class BrowserWindowApi {
19
19
  static readonly SET_RESIZABLE = "set-resizable";
20
20
  static readonly GET_BOUNDS = "get-bounds";
21
21
  static readonly SET_BOUNDS = "set-bounds";
22
+ static readonly ALIGN_TO_SCREEN = "align-to-screen";
23
+ static readonly START_DRAGGING_WINDOW = "start-dragging-window";
24
+ static readonly STOP_DRAGGING_WINDOW = "stop-dragging-window";
22
25
  static readonly EXISTS_BY_URL = "exists-by-url";
26
+ static readonly SHOW_INACTIVE = "show-inactive";
23
27
  static readonly SHOW = "show";
24
28
  static setIgnoreMouseEvent(ignore: boolean): Promise<void>;
25
29
  static show(): Promise<void>;
30
+ static showInactive(): Promise<void>;
26
31
  static hide(): Promise<void>;
27
32
  static center(): Promise<void>;
28
33
  /**
@@ -52,10 +57,12 @@ export declare class BrowserWindowApi {
52
57
  static setResizable(resizable: boolean): Promise<any>;
53
58
  static getBounds(): Promise<Rectangle>;
54
59
  static setBounds(bounds: Partial<Rectangle>, animate?: boolean): Promise<Rectangle>;
60
+ static alignToScreen(align: "top" | "bottom"): Promise<any>;
61
+ static startDraggingWindow(): Promise<any>;
62
+ static stopDraggingWindow(): Promise<any>;
55
63
  /**
56
64
  * 通过url检测窗口是否存在
57
65
  * @param url
58
66
  */
59
67
  static existsByUrl(url: string): Promise<boolean>;
60
68
  }
61
- export {};
@@ -5,11 +5,12 @@ export declare enum Channel {
5
5
  WIDGET = "channel::cn.widgetjs.core.widget",
6
6
  HOSTED_WIDGET = "channel::cn.widgetjs.core.hosted_widget",
7
7
  APP = "channel::cn.widgetjs.core.app",
8
- MOUSE_EVENT = "channel::cn.widgetjs.core.mouse_event",
9
- KEYBOARD_EVENT = "channel::cn.widgetjs.core.keyboard_event",
10
8
  DIALOG = "channel::cn.widgetjs.core.dialog",
11
9
  CLIPBOARD = "channel::cn.widgetjs.core.clipboard",
10
+ SCREEN = "channel::cn.widgetjs.core.screen",
11
+ SHORTCUT = "channel::cn.widgetjs.core.shortcut",
12
+ LOG = "channel::cn.widgetjs.core.log",
12
13
  DEVICE = "channel::cn.widgetjs.core.device",
13
- KEYBOARD = "channel::cn.widgetjs.core.keyboard",
14
- SHORTCUT = "channel::cn.widgetjs.core.shortcut"
14
+ MOUSE_EVENT = "channel::cn.widgetjs.core.mouse_event",
15
+ KEYBOARD = "channel::cn.widgetjs.core.keyboard"
15
16
  }
@@ -1,9 +1,14 @@
1
1
  export declare class DeviceApi {
2
2
  static readonly GET_CURSOR_SCREEN_POINT = "get-cursor-screen-point";
3
+ static readonly IS_ALL_KEY_RELEASED = "is-all-key-released";
3
4
  /**
4
5
  * 获取当前鼠标位置
5
6
  */
6
7
  static getCursorScreenPoint(): Promise<Point>;
8
+ /**
9
+ * 判断是否所有按键都已经释放
10
+ */
11
+ static isAllKeyReleased(): Promise<boolean>;
7
12
  }
8
13
  export interface Point {
9
14
  x: number;
@@ -0,0 +1,6 @@
1
+ export declare class LogApi {
2
+ static info(name: string, ...data: any[]): void;
3
+ static error(name: string, ...data: any[]): void;
4
+ static warn(name: string, ...data: any[]): void;
5
+ static log(name: string, ...data: any[]): void;
6
+ }
@@ -0,0 +1,2 @@
1
+ export declare class ScreenApi {
2
+ }
@@ -7,7 +7,7 @@ export * from "./model/AppNotification";
7
7
  export * from "./model/HostedMode";
8
8
  export * from "./model/HostedWidget";
9
9
  export * from "./model/interface/Rectangle";
10
- export * from "./model/event/AppKeyboardEvent";
10
+ export * from "./model/event/NativeKeyboardEvent";
11
11
  export * from "./model/event/AppMouseEvent";
12
12
  export * from "./model/WidgetPackage";
13
13
  export * from "./api/ElectronApi";
@@ -27,3 +27,5 @@ export * from "./api/DialogApi";
27
27
  export * from "./utils/ElectronUtils";
28
28
  export * from "./utils/UrlUtils";
29
29
  export * from "./router/query";
30
+ export * from "./api/LogApi";
31
+ export * from "./permission/permission";
@@ -1,4 +1,5 @@
1
1
  import { HostedMode } from "./HostedMode";
2
+ import { WidgetPermission } from "../permission/permission";
2
3
  type WidgetOptions = {
3
4
  name: string;
4
5
  title: {
@@ -17,6 +18,10 @@ type WidgetOptions = {
17
18
  minHeight?: number;
18
19
  packageName?: string;
19
20
  previewImage?: string;
21
+ /**
22
+ * 悬浮窗模式 是否可移动
23
+ */
24
+ movable?: boolean;
20
25
  supportHostedMode?: HostedMode;
21
26
  backgroundThrottling?: boolean;
22
27
  shortcut?: string;
@@ -26,6 +31,7 @@ type WidgetOptions = {
26
31
  refreshWhenResided?: boolean;
27
32
  hideWhenBlur?: boolean;
28
33
  routes: WidgetRoute[];
34
+ permissions?: WidgetPermission[];
29
35
  };
30
36
  export declare class Widget {
31
37
  readonly name: string;
@@ -54,6 +60,7 @@ export declare class Widget {
54
60
  readonly maxHeight: number;
55
61
  readonly minWidth: number;
56
62
  readonly minHeight: number;
63
+ readonly movable: boolean;
57
64
  readonly backgroundThrottling: boolean;
58
65
  /**
59
66
  * 预览图片,可以是GIF
@@ -70,6 +77,7 @@ export declare class Widget {
70
77
  * 组件其他页面的url在这注册
71
78
  */
72
79
  readonly routes: WidgetRoute[];
80
+ readonly permissions: WidgetPermission[];
73
81
  constructor(options: WidgetOptions);
74
82
  getIndexRoute(): WidgetRoute;
75
83
  getConfigRoute(): WidgetRoute | undefined;
@@ -0,0 +1,6 @@
1
+ export interface NativeKeyboardEvent {
2
+ name: string;
3
+ keyCode: number;
4
+ scanCode: number;
5
+ isKeyUp: boolean;
6
+ }
@@ -0,0 +1 @@
1
+ export type WidgetPermission = 'keyboard' | 'mouse' | 'clipboard' | 'notification' | 'storage' | 'network' | 'cpu' | 'system-info';
@@ -5,4 +5,5 @@ export declare class ElectronUtils {
5
5
  * windows api
6
6
  */
7
7
  static getAPI(): any;
8
+ static invoke(channel: string, method: string, ...args: any[]): Promise<any>;
8
9
  }
package/dist/umd/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see index.js.LICENSE.txt */
2
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.exampleTypescriptPackage=t():e.exampleTypescriptPackage=t()}(this,(()=>(()=>{var e={94:(e,t,n)=>{"use strict";n.r(t),n.d(t,{camelCase:()=>h,camelCaseTransform:()=>f,camelCaseTransformMerge:()=>v,capitalCase:()=>_,capitalCaseTransform:()=>p,constantCase:()=>y,dotCase:()=>I,headerCase:()=>A,noCase:()=>s,paramCase:()=>m,pascalCase:()=>d,pascalCaseTransform:()=>u,pascalCaseTransformMerge:()=>l,pathCase:()=>b,sentenceCase:()=>T,sentenceCaseTransform:()=>O,snakeCase:()=>w});var r=function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},r.apply(this,arguments)};function o(e){return e.toLowerCase()}Object.create,Object.create;var i=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g],a=/[^A-Z0-9]+/gi;function s(e,t){void 0===t&&(t={});for(var n=t.splitRegexp,r=void 0===n?i:n,s=t.stripRegexp,u=void 0===s?a:s,l=t.transform,d=void 0===l?o:l,f=t.delimiter,v=void 0===f?" ":f,h=c(c(e,r,"$1\0$2"),u,"\0"),g=0,p=h.length;"\0"===h.charAt(g);)g++;for(;"\0"===h.charAt(p-1);)p--;return h.slice(g,p).split("\0").map(d).join(v)}function c(e,t,n){return t instanceof RegExp?e.replace(t,n):t.reduce((function(e,t){return e.replace(t,n)}),e)}function u(e,t){var n=e.charAt(0),r=e.substr(1).toLowerCase();return t>0&&n>="0"&&n<="9"?"_"+n+r:""+n.toUpperCase()+r}function l(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}function d(e,t){return void 0===t&&(t={}),s(e,r({delimiter:"",transform:u},t))}function f(e,t){return 0===t?e.toLowerCase():u(e,t)}function v(e,t){return 0===t?e.toLowerCase():l(e)}function h(e,t){return void 0===t&&(t={}),d(e,r({transform:f},t))}function g(e){return e.charAt(0).toUpperCase()+e.substr(1)}function p(e){return g(e.toLowerCase())}function _(e,t){return void 0===t&&(t={}),s(e,r({delimiter:" ",transform:p},t))}function E(e){return e.toUpperCase()}function y(e,t){return void 0===t&&(t={}),s(e,r({delimiter:"_",transform:E},t))}function I(e,t){return void 0===t&&(t={}),s(e,r({delimiter:"."},t))}function A(e,t){return void 0===t&&(t={}),_(e,r({delimiter:"-"},t))}function m(e,t){return void 0===t&&(t={}),I(e,r({delimiter:"-"},t))}function b(e,t){return void 0===t&&(t={}),I(e,r({delimiter:"/"},t))}function O(e,t){var n=e.toLowerCase();return 0===t?g(n):n}function T(e,t){return void 0===t&&(t={}),s(e,r({delimiter:" ",transform:O},t))}function w(e,t){return void 0===t&&(t={}),I(e,r({delimiter:"_"},t))}},680:(e,t,n)=>{e.exports=function e(t,n,r){function o(a,s){if(!n[a]){if(!t[a]){if(i)return i(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[a]={exports:{}};t[a][0].call(u.exports,(function(e){return o(t[a][1][e]||e)}),u,u.exports,e,t,n,r)}return n[a].exports}for(var i=void 0,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,t,r){(function(e){"use strict";var n,r,o=e.MutationObserver||e.WebKitMutationObserver;if(o){var i=0,a=new o(l),s=e.document.createTextNode("");a.observe(s,{characterData:!0}),n=function(){s.data=i=++i%2}}else if(e.setImmediate||void 0===e.MessageChannel)n="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var t=e.document.createElement("script");t.onreadystatechange=function(){l(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(l,0)};else{var c=new e.MessageChannel;c.port1.onmessage=l,n=function(){c.port2.postMessage(0)}}var u=[];function l(){var e,t;r=!0;for(var n=u.length;n;){for(t=u,u=[],e=-1;++e<n;)t[e]();n=u.length}r=!1}t.exports=function(e){1!==u.push(e)||r||n()}}).call(this,void 0!==n.g?n.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,n){"use strict";var r=e(1);function o(){}var i={},a=["REJECTED"],s=["FULFILLED"],c=["PENDING"];function u(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=c,this.queue=[],this.outcome=void 0,e!==o&&v(this,e)}function l(e,t,n){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof n&&(this.onRejected=n,this.callRejected=this.otherCallRejected)}function d(e,t,n){r((function(){var r;try{r=t(n)}catch(t){return i.reject(e,t)}r===e?i.reject(e,new TypeError("Cannot resolve promise with itself")):i.resolve(e,r)}))}function f(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments)}}function v(e,t){var n=!1;function r(t){n||(n=!0,i.reject(e,t))}function o(t){n||(n=!0,i.resolve(e,t))}var a=h((function(){t(o,r)}));"error"===a.status&&r(a.value)}function h(e,t){var n={};try{n.value=e(t),n.status="success"}catch(e){n.status="error",n.value=e}return n}t.exports=u,u.prototype.catch=function(e){return this.then(null,e)},u.prototype.then=function(e,t){if("function"!=typeof e&&this.state===s||"function"!=typeof t&&this.state===a)return this;var n=new this.constructor(o);return this.state!==c?d(n,this.state===s?e:t,this.outcome):this.queue.push(new l(n,e,t)),n},l.prototype.callFulfilled=function(e){i.resolve(this.promise,e)},l.prototype.otherCallFulfilled=function(e){d(this.promise,this.onFulfilled,e)},l.prototype.callRejected=function(e){i.reject(this.promise,e)},l.prototype.otherCallRejected=function(e){d(this.promise,this.onRejected,e)},i.resolve=function(e,t){var n=h(f,t);if("error"===n.status)return i.reject(e,n.value);var r=n.value;if(r)v(e,r);else{e.state=s,e.outcome=t;for(var o=-1,a=e.queue.length;++o<a;)e.queue[o].callFulfilled(t)}return e},i.reject=function(e,t){e.state=a,e.outcome=t;for(var n=-1,r=e.queue.length;++n<r;)e.queue[n].callRejected(t);return e},u.resolve=function(e){return e instanceof this?e:i.resolve(new this(o),e)},u.reject=function(e){var t=new this(o);return i.reject(t,e)},u.all=function(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var n=e.length,r=!1;if(!n)return this.resolve([]);for(var a=new Array(n),s=0,c=-1,u=new this(o);++c<n;)l(e[c],c);return u;function l(e,o){t.resolve(e).then((function(e){a[o]=e,++s!==n||r||(r=!0,i.resolve(u,a))}),(function(e){r||(r=!0,i.reject(u,e))}))}},u.race=function(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var n,r=e.length,a=!1;if(!r)return this.resolve([]);for(var s=-1,c=new this(o);++s<r;)n=e[s],t.resolve(n).then((function(e){a||(a=!0,i.resolve(c,e))}),(function(e){a||(a=!0,i.reject(c,e))}));return c}},{1:1}],3:[function(e,t,r){(function(t){"use strict";"function"!=typeof t.Promise&&(t.Promise=e(2))}).call(this,void 0!==n.g?n.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2}],4:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var o=function(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(e){return}}();function i(e,t){e=e||[],t=t||{};try{return new Blob(e,t)}catch(o){if("TypeError"!==o.name)throw o;for(var n=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),r=0;r<e.length;r+=1)n.append(e[r]);return n.getBlob(t.type)}}"undefined"==typeof Promise&&e(3);var a=Promise;function s(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function c(e,t,n){"function"==typeof t&&e.then(t),"function"==typeof n&&e.catch(n)}function u(e){return"string"!=typeof e&&(console.warn(e+" used as a key, but it is not a string."),e=String(e)),e}function l(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var d="local-forage-detect-blob-support",f=void 0,v={},h=Object.prototype.toString,g="readonly",p="readwrite";function _(e){for(var t=e.length,n=new ArrayBuffer(t),r=new Uint8Array(n),o=0;o<t;o++)r[o]=e.charCodeAt(o);return n}function E(e){return"boolean"==typeof f?a.resolve(f):function(e){return new a((function(t){var n=e.transaction(d,p),r=i([""]);n.objectStore(d).put(r,"key"),n.onabort=function(e){e.preventDefault(),e.stopPropagation(),t(!1)},n.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/),n=navigator.userAgent.match(/Edge\//);t(n||!e||parseInt(e[1],10)>=43)}})).catch((function(){return!1}))}(e).then((function(e){return f=e}))}function y(e){var t=v[e.name],n={};n.promise=new a((function(e,t){n.resolve=e,n.reject=t})),t.deferredOperations.push(n),t.dbReady?t.dbReady=t.dbReady.then((function(){return n.promise})):t.dbReady=n.promise}function I(e){var t=v[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function A(e,t){var n=v[e.name].deferredOperations.pop();if(n)return n.reject(t),n.promise}function m(e,t){return new a((function(n,r){if(v[e.name]=v[e.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},e.db){if(!t)return n(e.db);y(e),e.db.close()}var i=[e.name];t&&i.push(e.version);var a=o.open.apply(o,i);t&&(a.onupgradeneeded=function(t){var n=a.result;try{n.createObjectStore(e.storeName),t.oldVersion<=1&&n.createObjectStore(d)}catch(n){if("ConstraintError"!==n.name)throw n;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),a.onerror=function(e){e.preventDefault(),r(a.error)},a.onsuccess=function(){var t=a.result;t.onversionchange=function(e){e.target.close()},n(t),I(e)}}))}function b(e){return m(e,!1)}function O(e){return m(e,!0)}function T(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),r=e.version<e.db.version,o=e.version>e.db.version;if(r&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||n){if(n){var i=e.db.version+1;i>e.version&&(e.version=i)}return!0}return!1}function w(e){return i([_(atob(e.data))],{type:e.type})}function S(e){return e&&e.__local_forage_encoded_blob}function P(e){var t=this,n=t._initReady().then((function(){var e=v[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return c(n,e,e),n}function R(e,t,n,r){void 0===r&&(r=1);try{var o=e.db.transaction(e.storeName,t);n(null,o)}catch(o){if(r>0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return a.resolve().then((function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),O(e)})).then((function(){return function(e){y(e);for(var t=v[e.name],n=t.forages,r=0;r<n.length;r++){var o=n[r];o._dbInfo.db&&(o._dbInfo.db.close(),o._dbInfo.db=null)}return e.db=null,b(e).then((function(t){return e.db=t,T(e)?O(e):t})).then((function(r){e.db=t.db=r;for(var o=0;o<n.length;o++)n[o]._dbInfo.db=r})).catch((function(t){throw A(e,t),t}))}(e).then((function(){R(e,t,n,r-1)}))})).catch(n);n(o)}}var N={_driver:"asyncStorage",_initStorage:function(e){var t=this,n={db:null};if(e)for(var r in e)n[r]=e[r];var o=v[n.name];o||(o={forages:[],db:null,dbReady:null,deferredOperations:[]},v[n.name]=o),o.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=P);var i=[];function s(){return a.resolve()}for(var c=0;c<o.forages.length;c++){var u=o.forages[c];u!==t&&i.push(u._initReady().catch(s))}var l=o.forages.slice(0);return a.all(i).then((function(){return n.db=o.db,b(n)})).then((function(e){return n.db=e,T(n,t._defaultConfig.version)?O(n):e})).then((function(e){n.db=o.db=e,t._dbInfo=n;for(var r=0;r<l.length;r++){var i=l[r];i!==t&&(i._dbInfo.db=n.db,i._dbInfo.version=n.version)}}))},_support:function(){try{if(!o||!o.open)return!1;var e="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}(),iterate:function(e,t){var n=this,r=new a((function(t,r){n.ready().then((function(){R(n._dbInfo,g,(function(o,i){if(o)return r(o);try{var a=i.objectStore(n._dbInfo.storeName).openCursor(),s=1;a.onsuccess=function(){var n=a.result;if(n){var r=n.value;S(r)&&(r=w(r));var o=e(r,n.key,s++);void 0!==o?t(o):n.continue()}else t()},a.onerror=function(){r(a.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,t),r},getItem:function(e,t){var n=this;e=u(e);var r=new a((function(t,r){n.ready().then((function(){R(n._dbInfo,g,(function(o,i){if(o)return r(o);try{var a=i.objectStore(n._dbInfo.storeName).get(e);a.onsuccess=function(){var e=a.result;void 0===e&&(e=null),S(e)&&(e=w(e)),t(e)},a.onerror=function(){r(a.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,t),r},setItem:function(e,t,n){var r=this;e=u(e);var o=new a((function(n,o){var i;r.ready().then((function(){return i=r._dbInfo,"[object Blob]"===h.call(t)?E(i.db).then((function(e){return e?t:(n=t,new a((function(e,t){var r=new FileReader;r.onerror=t,r.onloadend=function(t){var r=btoa(t.target.result||"");e({__local_forage_encoded_blob:!0,data:r,type:n.type})},r.readAsBinaryString(n)})));var n})):t})).then((function(t){R(r._dbInfo,p,(function(i,a){if(i)return o(i);try{var s=a.objectStore(r._dbInfo.storeName);null===t&&(t=void 0);var c=s.put(t,e);a.oncomplete=function(){void 0===t&&(t=null),n(t)},a.onabort=a.onerror=function(){var e=c.error?c.error:c.transaction.error;o(e)}}catch(e){o(e)}}))})).catch(o)}));return s(o,n),o},removeItem:function(e,t){var n=this;e=u(e);var r=new a((function(t,r){n.ready().then((function(){R(n._dbInfo,p,(function(o,i){if(o)return r(o);try{var a=i.objectStore(n._dbInfo.storeName).delete(e);i.oncomplete=function(){t()},i.onerror=function(){r(a.error)},i.onabort=function(){var e=a.error?a.error:a.transaction.error;r(e)}}catch(e){r(e)}}))})).catch(r)}));return s(r,t),r},clear:function(e){var t=this,n=new a((function(e,n){t.ready().then((function(){R(t._dbInfo,p,(function(r,o){if(r)return n(r);try{var i=o.objectStore(t._dbInfo.storeName).clear();o.oncomplete=function(){e()},o.onabort=o.onerror=function(){var e=i.error?i.error:i.transaction.error;n(e)}}catch(e){n(e)}}))})).catch(n)}));return s(n,e),n},length:function(e){var t=this,n=new a((function(e,n){t.ready().then((function(){R(t._dbInfo,g,(function(r,o){if(r)return n(r);try{var i=o.objectStore(t._dbInfo.storeName).count();i.onsuccess=function(){e(i.result)},i.onerror=function(){n(i.error)}}catch(e){n(e)}}))})).catch(n)}));return s(n,e),n},key:function(e,t){var n=this,r=new a((function(t,r){e<0?t(null):n.ready().then((function(){R(n._dbInfo,g,(function(o,i){if(o)return r(o);try{var a=i.objectStore(n._dbInfo.storeName),s=!1,c=a.openKeyCursor();c.onsuccess=function(){var n=c.result;n?0===e||s?t(n.key):(s=!0,n.advance(e)):t(null)},c.onerror=function(){r(c.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,t),r},keys:function(e){var t=this,n=new a((function(e,n){t.ready().then((function(){R(t._dbInfo,g,(function(r,o){if(r)return n(r);try{var i=o.objectStore(t._dbInfo.storeName).openKeyCursor(),a=[];i.onsuccess=function(){var t=i.result;t?(a.push(t.key),t.continue()):e(a)},i.onerror=function(){n(i.error)}}catch(e){n(e)}}))})).catch(n)}));return s(n,e),n},dropInstance:function(e,t){t=l.apply(this,arguments);var n,r=this.config();if((e="function"!=typeof e&&e||{}).name||(e.name=e.name||r.name,e.storeName=e.storeName||r.storeName),e.name){var i=e.name===r.name&&this._dbInfo.db?a.resolve(this._dbInfo.db):b(e).then((function(t){var n=v[e.name],r=n.forages;n.db=t;for(var o=0;o<r.length;o++)r[o]._dbInfo.db=t;return t}));n=e.storeName?i.then((function(t){if(t.objectStoreNames.contains(e.storeName)){var n=t.version+1;y(e);var r=v[e.name],i=r.forages;t.close();for(var s=0;s<i.length;s++){var c=i[s];c._dbInfo.db=null,c._dbInfo.version=n}var u=new a((function(t,r){var i=o.open(e.name,n);i.onerror=function(e){i.result.close(),r(e)},i.onupgradeneeded=function(){i.result.deleteObjectStore(e.storeName)},i.onsuccess=function(){var e=i.result;e.close(),t(e)}}));return u.then((function(e){r.db=e;for(var t=0;t<i.length;t++){var n=i[t];n._dbInfo.db=e,I(n._dbInfo)}})).catch((function(t){throw(A(e,t)||a.resolve()).catch((function(){})),t}))}})):i.then((function(t){y(e);var n=v[e.name],r=n.forages;t.close();for(var i=0;i<r.length;i++)r[i]._dbInfo.db=null;var s=new a((function(t,n){var r=o.deleteDatabase(e.name);r.onerror=function(){var e=r.result;e&&e.close(),n(r.error)},r.onblocked=function(){console.warn('dropInstance blocked for database "'+e.name+'" until all open connections are closed')},r.onsuccess=function(){var e=r.result;e&&e.close(),t(e)}}));return s.then((function(e){n.db=e;for(var t=0;t<r.length;t++)I(r[t]._dbInfo)})).catch((function(t){throw(A(e,t)||a.resolve()).catch((function(){})),t}))}))}else n=a.reject("Invalid arguments");return s(n,t),n}};var D="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",C="~~local_forage_type~",W=/^~~local_forage_type~([^~]+)~/,U="__lfsc__:",M=U.length,j="arbf",k="blob",B="si08",G="ui08",L="uic8",x="si16",H="si32",F="ur16",V="ui32",z="fl32",K="fl64",Y=M+j.length,X=Object.prototype.toString;function J(e){var t,n,r,o,i,a=.75*e.length,s=e.length,c=0;"="===e[e.length-1]&&(a--,"="===e[e.length-2]&&a--);var u=new ArrayBuffer(a),l=new Uint8Array(u);for(t=0;t<s;t+=4)n=D.indexOf(e[t]),r=D.indexOf(e[t+1]),o=D.indexOf(e[t+2]),i=D.indexOf(e[t+3]),l[c++]=n<<2|r>>4,l[c++]=(15&r)<<4|o>>2,l[c++]=(3&o)<<6|63&i;return u}function Q(e){var t,n=new Uint8Array(e),r="";for(t=0;t<n.length;t+=3)r+=D[n[t]>>2],r+=D[(3&n[t])<<4|n[t+1]>>4],r+=D[(15&n[t+1])<<2|n[t+2]>>6],r+=D[63&n[t+2]];return n.length%3==2?r=r.substring(0,r.length-1)+"=":n.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}var q={serialize:function(e,t){var n="";if(e&&(n=X.call(e)),e&&("[object ArrayBuffer]"===n||e.buffer&&"[object ArrayBuffer]"===X.call(e.buffer))){var r,o=U;e instanceof ArrayBuffer?(r=e,o+=j):(r=e.buffer,"[object Int8Array]"===n?o+=B:"[object Uint8Array]"===n?o+=G:"[object Uint8ClampedArray]"===n?o+=L:"[object Int16Array]"===n?o+=x:"[object Uint16Array]"===n?o+=F:"[object Int32Array]"===n?o+=H:"[object Uint32Array]"===n?o+=V:"[object Float32Array]"===n?o+=z:"[object Float64Array]"===n?o+=K:t(new Error("Failed to get type for BinaryArray"))),t(o+Q(r))}else if("[object Blob]"===n){var i=new FileReader;i.onload=function(){var n=C+e.type+"~"+Q(this.result);t(U+k+n)},i.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(n){console.error("Couldn't convert value into a JSON string: ",e),t(null,n)}},deserialize:function(e){if(e.substring(0,M)!==U)return JSON.parse(e);var t,n=e.substring(Y),r=e.substring(M,Y);if(r===k&&W.test(n)){var o=n.match(W);t=o[1],n=n.substring(o[0].length)}var a=J(n);switch(r){case j:return a;case k:return i([a],{type:t});case B:return new Int8Array(a);case G:return new Uint8Array(a);case L:return new Uint8ClampedArray(a);case x:return new Int16Array(a);case F:return new Uint16Array(a);case H:return new Int32Array(a);case V:return new Uint32Array(a);case z:return new Float32Array(a);case K:return new Float64Array(a);default:throw new Error("Unkown type: "+r)}},stringToBuffer:J,bufferToString:Q};function Z(e,t,n,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,r)}function $(e,t,n,r,o,i){e.executeSql(n,r,o,(function(e,a){a.code===a.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,s){s.rows.length?i(e,a):Z(e,t,(function(){e.executeSql(n,r,o,i)}),i)}),i):i(e,a)}),i)}function ee(e,t,n,r){var o=this;e=u(e);var i=new a((function(i,a){o.ready().then((function(){void 0===t&&(t=null);var s=t,c=o._dbInfo;c.serializer.serialize(t,(function(t,u){u?a(u):c.db.transaction((function(n){$(n,c,"INSERT OR REPLACE INTO "+c.storeName+" (key, value) VALUES (?, ?)",[e,t],(function(){i(s)}),(function(e,t){a(t)}))}),(function(t){if(t.code===t.QUOTA_ERR){if(r>0)return void i(ee.apply(o,[e,s,n,r-1]));a(t)}}))}))})).catch(a)}));return s(i,n),i}var te={_driver:"webSQLStorage",_initStorage:function(e){var t=this,n={db:null};if(e)for(var r in e)n[r]="string"!=typeof e[r]?e[r].toString():e[r];var o=new a((function(e,r){try{n.db=openDatabase(n.name,String(n.version),n.description,n.size)}catch(e){return r(e)}n.db.transaction((function(o){Z(o,n,(function(){t._dbInfo=n,e()}),(function(e,t){r(t)}))}),r)}));return n.serializer=q,o},_support:"function"==typeof openDatabase,iterate:function(e,t){var n=this,r=new a((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){$(n,o,"SELECT * FROM "+o.storeName,[],(function(n,r){for(var i=r.rows,a=i.length,s=0;s<a;s++){var c=i.item(s),u=c.value;if(u&&(u=o.serializer.deserialize(u)),void 0!==(u=e(u,c.key,s+1)))return void t(u)}t()}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,t),r},getItem:function(e,t){var n=this;e=u(e);var r=new a((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){$(n,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,n){var r=n.rows.length?n.rows.item(0).value:null;r&&(r=o.serializer.deserialize(r)),t(r)}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,t),r},setItem:function(e,t,n){return ee.apply(this,[e,t,n,1])},removeItem:function(e,t){var n=this;e=u(e);var r=new a((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){$(n,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,t),r},clear:function(e){var t=this,n=new a((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){$(t,r,"DELETE FROM "+r.storeName,[],(function(){e()}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,e),n},length:function(e){var t=this,n=new a((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){$(t,r,"SELECT COUNT(key) as c FROM "+r.storeName,[],(function(t,n){var r=n.rows.item(0).c;e(r)}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,e),n},key:function(e,t){var n=this,r=new a((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){$(n,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,n){var r=n.rows.length?n.rows.item(0).key:null;t(r)}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,t),r},keys:function(e){var t=this,n=new a((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){$(t,r,"SELECT key FROM "+r.storeName,[],(function(t,n){for(var r=[],o=0;o<n.rows.length;o++)r.push(n.rows.item(o).key);e(r)}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,e),n},dropInstance:function(e,t){t=l.apply(this,arguments);var n=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||n.name,e.storeName=e.storeName||n.storeName);var r,o=this;return s(r=e.name?new a((function(t){var r;r=e.name===n.name?o._dbInfo.db:openDatabase(e.name,"","",0),e.storeName?t({db:r,storeNames:[e.storeName]}):t(function(e){return new a((function(t,n){e.transaction((function(r){r.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],(function(n,r){for(var o=[],i=0;i<r.rows.length;i++)o.push(r.rows.item(i).name);t({db:e,storeNames:o})}),(function(e,t){n(t)}))}),(function(e){n(e)}))}))}(r))})).then((function(e){return new a((function(t,n){e.db.transaction((function(r){function o(e){return new a((function(t,n){r.executeSql("DROP TABLE IF EXISTS "+e,[],(function(){t()}),(function(e,t){n(t)}))}))}for(var i=[],s=0,c=e.storeNames.length;s<c;s++)i.push(o(e.storeNames[s]));a.all(i).then((function(){t()})).catch((function(e){n(e)}))}),(function(e){n(e)}))}))})):a.reject("Invalid arguments"),t),r}};function ne(e,t){var n=e.name+"/";return e.storeName!==t.storeName&&(n+=e.storeName+"/"),n}function re(){return!function(){var e="_localforage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(e){return!0}}()||localStorage.length>0}var oe={_driver:"localStorageWrapper",_initStorage:function(e){var t={};if(e)for(var n in e)t[n]=e[n];return t.keyPrefix=ne(e,this._defaultConfig),re()?(this._dbInfo=t,t.serializer=q,a.resolve()):a.reject()},_support:function(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}(),iterate:function(e,t){var n=this,r=n.ready().then((function(){for(var t=n._dbInfo,r=t.keyPrefix,o=r.length,i=localStorage.length,a=1,s=0;s<i;s++){var c=localStorage.key(s);if(0===c.indexOf(r)){var u=localStorage.getItem(c);if(u&&(u=t.serializer.deserialize(u)),void 0!==(u=e(u,c.substring(o),a++)))return u}}}));return s(r,t),r},getItem:function(e,t){var n=this;e=u(e);var r=n.ready().then((function(){var t=n._dbInfo,r=localStorage.getItem(t.keyPrefix+e);return r&&(r=t.serializer.deserialize(r)),r}));return s(r,t),r},setItem:function(e,t,n){var r=this;e=u(e);var o=r.ready().then((function(){void 0===t&&(t=null);var n=t;return new a((function(o,i){var a=r._dbInfo;a.serializer.serialize(t,(function(t,r){if(r)i(r);else try{localStorage.setItem(a.keyPrefix+e,t),o(n)}catch(e){"QuotaExceededError"!==e.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==e.name||i(e),i(e)}}))}))}));return s(o,n),o},removeItem:function(e,t){var n=this;e=u(e);var r=n.ready().then((function(){var t=n._dbInfo;localStorage.removeItem(t.keyPrefix+e)}));return s(r,t),r},clear:function(e){var t=this,n=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,n=localStorage.length-1;n>=0;n--){var r=localStorage.key(n);0===r.indexOf(e)&&localStorage.removeItem(r)}}));return s(n,e),n},length:function(e){var t=this.keys().then((function(e){return e.length}));return s(t,e),t},key:function(e,t){var n=this,r=n.ready().then((function(){var t,r=n._dbInfo;try{t=localStorage.key(e)}catch(e){t=null}return t&&(t=t.substring(r.keyPrefix.length)),t}));return s(r,t),r},keys:function(e){var t=this,n=t.ready().then((function(){for(var e=t._dbInfo,n=localStorage.length,r=[],o=0;o<n;o++){var i=localStorage.key(o);0===i.indexOf(e.keyPrefix)&&r.push(i.substring(e.keyPrefix.length))}return r}));return s(n,e),n},dropInstance:function(e,t){if(t=l.apply(this,arguments),!(e="function"!=typeof e&&e||{}).name){var n=this.config();e.name=e.name||n.name,e.storeName=e.storeName||n.storeName}var r,o=this;return r=e.name?new a((function(t){e.storeName?t(ne(e,o._defaultConfig)):t(e.name+"/")})).then((function(e){for(var t=localStorage.length-1;t>=0;t--){var n=localStorage.key(t);0===n.indexOf(e)&&localStorage.removeItem(n)}})):a.reject("Invalid arguments"),s(r,t),r}},ie=function(e,t){for(var n=e.length,r=0;r<n;){if((o=e[r])===(i=t)||"number"==typeof o&&"number"==typeof i&&isNaN(o)&&isNaN(i))return!0;r++}var o,i;return!1},ae=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},se={},ce={},ue={INDEXEDDB:N,WEBSQL:te,LOCALSTORAGE:oe},le=[ue.INDEXEDDB._driver,ue.WEBSQL._driver,ue.LOCALSTORAGE._driver],de=["dropInstance"],fe=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(de),ve={description:"",driver:le.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function he(e,t){e[t]=function(){var n=arguments;return e.ready().then((function(){return e[t].apply(e,n)}))}}function ge(){for(var e=1;e<arguments.length;e++){var t=arguments[e];if(t)for(var n in t)t.hasOwnProperty(n)&&(ae(t[n])?arguments[0][n]=t[n].slice():arguments[0][n]=t[n])}return arguments[0]}var pe=function(){function e(t){for(var n in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),ue)if(ue.hasOwnProperty(n)){var r=ue[n],o=r._driver;this[n]=o,se[o]||this.defineDriver(r)}this._defaultConfig=ge({},ve),this._config=ge({},this._defaultConfig,t),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((function(){}))}return e.prototype.config=function(e){if("object"===(void 0===e?"undefined":r(e))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var t in e){if("storeName"===t&&(e[t]=e[t].replace(/\W/g,"_")),"version"===t&&"number"!=typeof e[t])return new Error("Database version must be a number.");this._config[t]=e[t]}return!("driver"in e)||!e.driver||this.setDriver(this._config.driver)}return"string"==typeof e?this._config[e]:this._config},e.prototype.defineDriver=function(e,t,n){var r=new a((function(t,n){try{var r=e._driver,o=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!e._driver)return void n(o);for(var i=fe.concat("_initStorage"),c=0,u=i.length;c<u;c++){var l=i[c];if((!ie(de,l)||e[l])&&"function"!=typeof e[l])return void n(o)}!function(){for(var t=function(e){return function(){var t=new Error("Method "+e+" is not implemented by the current driver"),n=a.reject(t);return s(n,arguments[arguments.length-1]),n}},n=0,r=de.length;n<r;n++){var o=de[n];e[o]||(e[o]=t(o))}}();var d=function(n){se[r]&&console.info("Redefining LocalForage driver: "+r),se[r]=e,ce[r]=n,t()};"_support"in e?e._support&&"function"==typeof e._support?e._support().then(d,n):d(!!e._support):d(!0)}catch(e){n(e)}}));return c(r,t,n),r},e.prototype.driver=function(){return this._driver||null},e.prototype.getDriver=function(e,t,n){var r=se[e]?a.resolve(se[e]):a.reject(new Error("Driver not found."));return c(r,t,n),r},e.prototype.getSerializer=function(e){var t=a.resolve(q);return c(t,e),t},e.prototype.ready=function(e){var t=this,n=t._driverSet.then((function(){return null===t._ready&&(t._ready=t._initDriver()),t._ready}));return c(n,e,e),n},e.prototype.setDriver=function(e,t,n){var r=this;ae(e)||(e=[e]);var o=this._getSupportedDrivers(e);function i(){r._config.driver=r.driver()}function s(e){return r._extend(e),i(),r._ready=r._initStorage(r._config),r._ready}var u=null!==this._driverSet?this._driverSet.catch((function(){return a.resolve()})):a.resolve();return this._driverSet=u.then((function(){var e=o[0];return r._dbInfo=null,r._ready=null,r.getDriver(e).then((function(e){r._driver=e._driver,i(),r._wrapLibraryMethodsWithReady(),r._initDriver=function(e){return function(){var t=0;return function n(){for(;t<e.length;){var o=e[t];return t++,r._dbInfo=null,r._ready=null,r.getDriver(o).then(s).catch(n)}i();var c=new Error("No available storage method found.");return r._driverSet=a.reject(c),r._driverSet}()}}(o)}))})).catch((function(){i();var e=new Error("No available storage method found.");return r._driverSet=a.reject(e),r._driverSet})),c(this._driverSet,t,n),this._driverSet},e.prototype.supports=function(e){return!!ce[e]},e.prototype._extend=function(e){ge(this,e)},e.prototype._getSupportedDrivers=function(e){for(var t=[],n=0,r=e.length;n<r;n++){var o=e[n];this.supports(o)&&t.push(o)}return t},e.prototype._wrapLibraryMethodsWithReady=function(){for(var e=0,t=fe.length;e<t;e++)he(this,fe[e])},e.prototype.createInstance=function(t){return new e(t)},e}(),_e=new pe;t.exports=_e},{3:3}]},{},[4])(4)},913:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ApiConstants=void 0;class n{}t.ApiConstants=n,n.CONFIG_LAUNCH_AT_STARTUP="CONFIG_LAUNCH_AT_STARTUP",n.CONFIG_WIDGET_TITLE_COLOR="CONFIG_WIDGET_TITLE_COLOR",n.CONFIG_DEBUG_MODE="cn.widgetjs.config.debug",n.CONFIG_GRID_SIZE="cn.widgetjs.config.grid.size",n.SHORTCUT_PIN_DESKTOP_WIDGETS="cn.widgetjs.config.shortcut.pin_desktop_widgets"},445:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AppApi=void 0;const r=n(990),o=n(841);class i{static async setConfig(e,t){var n;await(null===(n=r.ElectronUtils.getAPI())||void 0===n?void 0:n.invoke(o.Channel.APP,this.SET_CONFIG,e,t))}static async getConfig(e,t){var n;const i=await(null===(n=r.ElectronUtils.getAPI())||void 0===n?void 0:n.invoke(o.Channel.APP,this.GET_CONFIG,e));return null==i?t:"boolean"==typeof t?"true"===i:"number"==typeof t?Number(i):i}static openAddWidgetWindow(){var e;null===(e=r.ElectronUtils.getAPI())||void 0===e||e.invoke(o.Channel.APP,this.OPEN_ADD_WIDGET_WINDOW)}static async getVersion(){var e;return null===(e=r.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(o.Channel.APP,this.GET_VERSION)}static openSettingWindow(){var e;null===(e=r.ElectronUtils.getAPI())||void 0===e||e.invoke(o.Channel.APP,this.OPEN_SETTING_WINDOW)}}t.AppApi=i,i.SET_CONFIG="SET_CONFIG",i.GET_CONFIG="GET_CONFIG",i.OPEN_ADD_WIDGET_WINDOW="open-add-widget-window",i.OPEN_SETTING_WINDOW="open-setting-window",i.GET_VERSION="get-version"},969:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BroadcastApi=void 0;const r=n(990),o=n(841),i=n(295);t.BroadcastApi=class{static async sendBroadcastEvent(e){var t;await(null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.BROADCAST,JSON.stringify(e)))}static async registerBroadcast(e){await i.ElectronApi.addIpcListener(o.Channel.BROADCAST,(t=>{e(JSON.parse(t))}))}static async unregisterBroadcast(){await i.ElectronApi.removeIpcListener(o.Channel.BROADCAST)}}},194:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BrowserWindowApi=void 0;const r=n(841),o=n(990);class i{static async setIgnoreMouseEvent(e){var t;await(null===(t=o.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(r.Channel.BROWSER_WINDOW,this.IGNORE_MOUSE_EVENT,e))}static async show(){var e;await(null===(e=o.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(r.Channel.BROWSER_WINDOW,this.WINDOW_VISIBILITY,!0))}static async hide(){var e;await(null===(e=o.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(r.Channel.BROWSER_WINDOW,this.WINDOW_VISIBILITY,!1))}static async center(){var e;await(null===(e=o.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(r.Channel.BROWSER_WINDOW,this.CENTER,!1))}static async setWindowVisibility(e){var t;await(null===(t=o.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(r.Channel.BROWSER_WINDOW,this.WINDOW_VISIBILITY,e))}static async setAlwaysOnTop(e){var t;await(null===(t=o.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(r.Channel.BROWSER_WINDOW,this.ALWAYS_ON_TOP,e))}static async isAlwaysOnTop(){var e;return await(null===(e=o.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(r.Channel.BROWSER_WINDOW,this.IS_ALWAYS_ON_TOP))}static async openUrl(e){var t;await(null===(t=o.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(r.Channel.BROWSER_WINDOW,this.OPEN_URL,e))}static async moveTop(){var e;await(null===(e=o.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(r.Channel.BROWSER_WINDOW,this.MOVE_TOP))}static async openDevTools(){var e;await(null===(e=o.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(r.Channel.BROWSER_WINDOW,this.OPEN_DEV_TOOLS))}static async setPosition(e,t,n){var i;await(null===(i=o.ElectronUtils.getAPI())||void 0===i?void 0:i.invoke(r.Channel.BROWSER_WINDOW,this.SET_POSITION,e,t,n))}static async getPosition(){var e;return await(null===(e=o.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(r.Channel.BROWSER_WINDOW,this.GET_POSITION))}static async blur(){var e;return await(null===(e=o.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(r.Channel.BROWSER_WINDOW,this.BLUR))}static async focus(){var e;return await(null===(e=o.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(r.Channel.BROWSER_WINDOW,this.FOCUS))}static async setResizable(e){var t;return await(null===(t=o.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(r.Channel.BROWSER_WINDOW,this.SET_RESIZABLE,e))}static async getBounds(){var e;return await(null===(e=o.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(r.Channel.BROWSER_WINDOW,this.GET_BOUNDS))}static async setBounds(e,t){var n;return await(null===(n=o.ElectronUtils.getAPI())||void 0===n?void 0:n.invoke(r.Channel.BROWSER_WINDOW,this.SET_BOUNDS,e,t))}static async existsByUrl(e){var t;return await(null===(t=o.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(r.Channel.BROWSER_WINDOW,this.EXISTS_BY_URL,e))}}t.BrowserWindowApi=i,i.IGNORE_MOUSE_EVENT="ignore-mouse-event",i.WINDOW_VISIBILITY="window-visibility",i.CENTER="center",i.ALWAYS_ON_TOP="always-on-top",i.IS_ALWAYS_ON_TOP="is-always-on-top",i.OPEN_URL="open-url",i.MOVE_TOP="move-top",i.OPEN_DEV_TOOLS="open-dev-tools",i.SET_POSITION="set-position",i.GET_POSITION="get-position",i.BLUR="blur",i.FOCUS="focus",i.SET_RESIZABLE="set-resizable",i.GET_BOUNDS="get-bounds",i.SET_BOUNDS="set-bounds",i.EXISTS_BY_URL="exists-by-url",i.SHOW="show"},841:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.Channel=void 0,(n=t.Channel||(t.Channel={})).NOTIFICATION="channel::cn.widgetjs.core.notification",n.BROWSER_WINDOW="channel::cn.widgetjs.core.browser_window",n.BROADCAST="channel::cn.widgetjs.core.broadcast",n.WIDGET="channel::cn.widgetjs.core.widget",n.HOSTED_WIDGET="channel::cn.widgetjs.core.hosted_widget",n.APP="channel::cn.widgetjs.core.app",n.MOUSE_EVENT="channel::cn.widgetjs.core.mouse_event",n.KEYBOARD_EVENT="channel::cn.widgetjs.core.keyboard_event",n.DIALOG="channel::cn.widgetjs.core.dialog",n.CLIPBOARD="channel::cn.widgetjs.core.clipboard",n.DEVICE="channel::cn.widgetjs.core.device",n.KEYBOARD="channel::cn.widgetjs.core.keyboard",n.SHORTCUT="channel::cn.widgetjs.core.shortcut"},989:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ClipboardApi=void 0;const r=n(990),o=n(841);class i{static async getSelectedText(){var e;return await(null===(e=r.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(o.Channel.CLIPBOARD,this.GET_SELECTED_TEXT))}static async getText(){var e;return await(null===(e=r.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(o.Channel.CLIPBOARD,this.GET_TEXT))}}t.ClipboardApi=i,i.GET_SELECTED_TEXT="get-selected-text",i.GET_TEXT="get-text"},394:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeviceApi=void 0;const r=n(990),o=n(841);class i{static async getCursorScreenPoint(){var e;return await(null===(e=r.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(o.Channel.DEVICE,this.GET_CURSOR_SCREEN_POINT))}}t.DeviceApi=i,i.GET_CURSOR_SCREEN_POINT="get-cursor-screen-point"},24:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DialogApi=void 0;const r=n(990),o=n(841);class i{static async pickFile(e){var t;return await(null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.DIALOG,this.PICK_FILE,e))}}t.DialogApi=i,i.PICK_FILE="pick-file"},295:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ElectronApi=void 0;const r=n(990);t.ElectronApi=class{static async addIpcListener(e,t){var n;await(null===(n=r.ElectronUtils.getAPI())||void 0===n?void 0:n.addIpcListener(e,t))}static async removeIpcListener(e){var t;await(null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.removeIpcListener(e))}}},671:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalShortcutApi=void 0;const r=n(990),o=n(841);class i{static async register(e){var t;return await(null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.SHORTCUT,this.REGISTER,e))}static async unregister(e){var t;return await(null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.SHORTCUT,this.UNREGISTER,e))}static async isRegistered(e){var t;return await(null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.SHORTCUT,this.IS_REGISTERED,e))}}t.GlobalShortcutApi=i,i.REGISTER="register",i.IS_REGISTERED="is-registered",i.UNREGISTER="unregister"},766:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HostedWidgetApi=void 0;const r=n(990),o=n(841);class i{static async removeHostedWidget(e){var t;return null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.HOSTED_WIDGET,this.REMOVE_HOSTED_WIDGET,e)}static async removeHostedWidgetByName(e){var t;return null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.HOSTED_WIDGET,this.REMOVE_HOSTED_WIDGET_BY_NAME,e)}static async getHostedWidgets(e){var t;return null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.HOSTED_WIDGET,this.GET_HOSTED_WIDGETS,e)}static async getHostedWidget(e){var t;return null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.HOSTED_WIDGET,this.GET_HOSTED_WIDGET,e)}static async openDevTools(e){var t;return null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.HOSTED_WIDGET,this.OPEN_DEV_TOOLS,e)}static async openConfigRoute(e,t){var n;return null===(n=r.ElectronUtils.getAPI())||void 0===n?void 0:n.invoke(o.Channel.HOSTED_WIDGET,this.OPEN_CONFIG_ROUTE,e,t)}static async registerActiveShortcut(e,t){var n;return null===(n=r.ElectronUtils.getAPI())||void 0===n?void 0:n.invoke(o.Channel.HOSTED_WIDGET,this.REGISTER_ACTIVE_SHORTCUT,e,t)}static async setProxy(e,t){var n;return null===(n=r.ElectronUtils.getAPI())||void 0===n?void 0:n.invoke(o.Channel.HOSTED_WIDGET,this.SET_PROXY,e,t)}}t.HostedWidgetApi=i,i.REMOVE_HOSTED_WIDGET="remove-hosted-widget",i.REMOVE_HOSTED_WIDGET_BY_NAME="remove-hosted-widget-by-name",i.GET_HOSTED_WIDGETS="get-hosted-widgets",i.GET_HOSTED_WIDGET="get-hosted-widget",i.OPEN_DEV_TOOLS="open-dev-tools",i.REGISTER_ACTIVE_SHORTCUT="register-active-shortcut",i.SET_PROXY="SET_PROXY",i.UPDATE="UPDATE",i.OPEN_CONFIG_ROUTE="open-config-route"},717:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NotificationApi=void 0;const r=n(31),o=n(841),i=n(990);t.NotificationApi=class{static async call(e,t,n,a,s){var c;null===(c=i.ElectronUtils.getAPI())||void 0===c||c.invoke(o.Channel.NOTIFICATION,new r.AppNotification({avatar:e,audio:t,message:a,title:n,duration:-1,lyric:s,type:"call"}))}static async send(e){var t;return null===(t=i.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.NOTIFICATION,e)}static async reminder(e,t,n,o,i,a,s,c=5e3){return await this.send(new r.AppNotification({icon:n,message:t,title:e,duration:c,cancelButtonText:o,confirmButtonText:i,cancelBroadcast:a,confirmBroadcast:s,type:"reminder"}))}static async advanceCountdown(e,t,n){return await this.send(new r.AppNotification({title:n,message:e,targetTime:t,type:"advance-countdown"}))}static async countdown(e,t){var n;null===(n=i.ElectronUtils.getAPI())||void 0===n||n.invoke(o.Channel.NOTIFICATION,new r.AppNotification({message:e,targetTime:t,backgroundColor:"rgba(0,0,0,0.5)",duration:-1,type:"countdown"}))}static async success(e,t=5e3){var n;i.ElectronUtils.hasElectronApi()?null===(n=i.ElectronUtils.getAPI())||void 0===n||n.invoke(o.Channel.NOTIFICATION,new r.AppNotification({message:e,type:"success",icon:"check_circle_line",duration:t})):this.callback("success",e,t)}static async error(e,t=5e3){var n;i.ElectronUtils.hasElectronApi()?null===(n=i.ElectronUtils.getAPI())||void 0===n||n.invoke(o.Channel.NOTIFICATION,new r.AppNotification({message:e,type:"error",icon:"close_circle_line",duration:t})):this.callback("error",e,t)}static async warning(e,t=5e3){var n;i.ElectronUtils.hasElectronApi()?null===(n=i.ElectronUtils.getAPI())||void 0===n||n.invoke(o.Channel.NOTIFICATION,new r.AppNotification({message:e,type:"warning",icon:"warning_line",duration:t})):this.callback("warning",e,t)}static async info(e,t=5e3){var n;i.ElectronUtils.hasElectronApi()?null===(n=i.ElectronUtils.getAPI())||void 0===n||n.invoke(o.Channel.NOTIFICATION,new r.AppNotification({message:e,type:"info",icon:"information_line",duration:t})):this.callback("info",e,t)}static async hide(){var e;i.ElectronUtils.hasElectronApi()&&(null===(e=i.ElectronUtils.getAPI())||void 0===e||e.invoke(o.Channel.NOTIFICATION,null))}static setDebugNotification(e){this.callback=e}}},737:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetApi=void 0;const o=n(473),i=n(990),a=n(134),s=n(841),c=n(499),u=n(937),l=n(969),d=r(n(680));class f{static async registerWidgets(e){var t;await(null===(t=i.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(s.Channel.WIDGET,this.REGISTER_WIDGETS,JSON.stringify(e)))}static async registerWidgetPackage(e){var t;await(null===(t=i.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(s.Channel.WIDGET,this.REGISTER_WIDGET_PACKAGE,JSON.stringify(e)))}static async getWidgets(){var e;const t=await(null===(e=i.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(s.Channel.WIDGET,this.GET_WIDGETS)),n=[];if(t)for(const e of t)n.push(o.Widget.parseObject(e));return n}static async getWidgetPackages(){var e;return await(null===(e=i.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(s.Channel.WIDGET,this.GET_WIDGET_PACKAGES))}static async getWidget(e){var t;return o.Widget.parseObject(await(null===(t=i.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(s.Channel.WIDGET,this.GET_WIDGET,e)))}static async getWidgetPackage(e){var t;return a.WidgetPackage.parseObject(await(null===(t=i.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(s.Channel.WIDGET,this.GET_WIDGET_PACKAGE,e)))}static async getWidgetConfigUrl(e,t){const n=await this.getWidget(e);if(!n)return null;const r=n.getConfigRoute();if(!r)return null;const o=await this.getWidgetPackage(n.packageName);return o?c.UrlUtils.getWidgetUrl(r.url,o,t):null}static async getWidgetUrl(e,t){const n=await this.getWidget(e);if(!n)return null;const r=n.getIndexRoute(),o=await this.getWidgetPackage(n.packageName);return o?c.UrlUtils.getWidgetUrl(r.url,o,t):null}static async getWidgetPackageIndexUrl(e,t){const n=await this.getWidgetPackage(e);return n?n.getIndexUrl(t):null}static async getWidgetPackageUrl(e){const t=await this.getWidgetPackage(e);return t?t.url:null}static async saveDataByName(e,t={sendBroadcast:!0}){const n=this.getStore(e.name),r=JSON.stringify(e),o=await n.setItem(e.name,r);if(t.sendBroadcast){const n=new u.BroadcastEvent(u.BroadcastEvent.TYPE_WIDGET_UPDATED,"",{name:e.name,id:t.id,json:r});await l.BroadcastApi.sendBroadcastEvent(n)}return o}static getStore(e){if(this.stores.has(e))return this.stores.get(e);const t=d.default.createInstance({name:e});return this.stores.set(e,t),t}}t.WidgetApi=f,f.REGISTER_WIDGETS="register-widgets",f.REGISTER_WIDGET_PACKAGE="register-widget-package",f.GET_WIDGETS="get-widgets",f.GET_WIDGET="get-widget",f.GET_WIDGET_PACKAGE="get-widget-package",f.GET_WIDGET_PACKAGES="get-widget-packages",f.stores=new Map},755:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),o(n(473),t),o(n(937),t),o(n(681),t),o(n(450),t),o(n(758),t),o(n(31),t),o(n(995),t),o(n(726),t),o(n(386),t),o(n(790),t),o(n(442),t),o(n(134),t),o(n(295),t),o(n(630),t),o(n(194),t),o(n(671),t),o(n(717),t),o(n(766),t),o(n(394),t),o(n(841),t),o(n(989),t),o(n(737),t),o(n(913),t),o(n(969),t),o(n(445),t),o(n(24),t),o(n(990),t),o(n(499),t),o(n(821),t)},31:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.AppNotification=t.NotificationSize=void 0,function(e){e.SMALL="small",e.NORMAL="normal",e.LARGE="large"}(n=t.NotificationSize||(t.NotificationSize={})),t.AppNotification=class{constructor(e){var t,r,o,i,a;this.type="info",this.createdAt=(new Date).toISOString(),this.type=null!==(t=e.type)&&void 0!==t?t:"info",this.title=e.title,this.message=e.message,this.targetTime=e.targetTime,this.duration=null!==(r=e.duration)&&void 0!==r?r:5e3,this.icon=e.icon,this.color=null!==(o=e.color)&&void 0!==o?o:"#5D8AC8",this.confirmButtonText=e.confirmButtonText,this.cancelButtonText=e.cancelButtonText,this.cancelBroadcast=e.cancelBroadcast,this.confirmBroadcast=e.confirmBroadcast,this.size=null!==(i=e.size)&&void 0!==i?i:n.NORMAL,this.audio=e.audio,this.avatar=e.avatar,this.lyric=e.lyric,this.backgroundColor=null!==(a=e.backgroundColor)&&void 0!==a?a:"#000000"}}},995:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.HostedMode=void 0,(n=t.HostedMode||(t.HostedMode={}))[n.NORMAL=1]="NORMAL",n[n.OVERLAP=16]="OVERLAP",n[n.WALLPAPER=256]="WALLPAPER",n[n.SCREEN=4096]="SCREEN",n[n.BACKGROUND=65536]="BACKGROUND",n[n.ALL=69905]="ALL"},726:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HostedWidget=void 0;const r=n(995);t.HostedWidget=class{constructor(){this.x=0,this.y=0}isOverlap(){return(this.hostedMode&r.HostedMode.OVERLAP)>0}}},473:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetKeyword=t.Widget=void 0;const r=n(995);class o{constructor(e){var t,n,o,i,a,s,c;this.lang="zh",this.name=e.name,this.title=e.title,this.description=e.description,this.keywords=e.keywords,this.lang=e.lang,this.width=e.width,this.height=e.height,this.maxWidth=null!==(t=e.maxWidth)&&void 0!==t?t:e.width,this.maxHeight=null!==(n=e.maxHeight)&&void 0!==n?n:e.height,this.minWidth=null!==(o=e.minWidth)&&void 0!==o?o:e.width,this.minHeight=null!==(i=e.minHeight)&&void 0!==i?i:e.height,this.backgroundThrottling=null===(a=e.backgroundThrottling)||void 0===a||a,this.packageName=e.packageName,this.previewImage=e.previewImage,this.shortcut=e.shortcut,this.refreshWhenResided=null!==(s=e.refreshWhenResided)&&void 0!==s&&s,this.hideWhenBlur=null!=e.hideWhenBlur&&e.hideWhenBlur,this.supportHostedMode=null!==(c=e.supportHostedMode)&&void 0!==c?c:r.HostedMode.NORMAL|r.HostedMode.OVERLAP,this.routes=e.routes}getIndexRoute(){return this.routes.find((e=>"index"==e.name.toLowerCase()))}getConfigRoute(){return this.routes.find((e=>"config"==e.name.toLowerCase()))}isConfigurable(){return null!=this.getConfigRoute()}getTitle(e){var t;return e&&null!==(t=this.title[e])&&void 0!==t?t:this.title[this.lang]}getDescription(e){return e?this.description[e]:this.description[this.lang]}static parseJSON(e){const t=JSON.parse(e);return this.parseObject(t)}static parseObject(e){let t=new o({description:{},height:0,keywords:[],lang:"",name:"",routes:[],title:{},width:0});return Object.assign(t,e),t}isSupportOverlap(){return(this.supportHostedMode&r.HostedMode.OVERLAP)>0}isResizable(){return!(this.minWidth==this.width&&this.maxWidth==this.width&&this.minHeight==this.height&&this.maxHeight==this.height)}isSupportBackground(){return(this.supportHostedMode&r.HostedMode.BACKGROUND)>0}isSupportNormal(){return(this.supportHostedMode&r.HostedMode.NORMAL)>0}isSupportWallpaper(){return(this.supportHostedMode&r.HostedMode.WALLPAPER)>0}isSupportScreen(){return(this.supportHostedMode&r.HostedMode.SCREEN)>0}}var i;t.Widget=o,(i=t.WidgetKeyword||(t.WidgetKeyword={})).RECOMMEND="recommend",i.TOOLS="tools",i.EFFICIENCY="efficiency",i.PICTURE="picture",i.LIFE="life",i.SHORTCUT="shortcut",i.COUNTDOWN="countdown",i.TIMER="timer",i.INFO="info",i.DASHBOARD="dashboard"},450:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetData=void 0,t.WidgetData=class{constructor(e,t){this.id=t,this.name=e}parseJSON(e){Object.assign(this,e)}}},134:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetPackage=void 0;const r=n(499);class o{constructor(){this.hash=!0}static parseJSON(e){const t=JSON.parse(e);return this.parseObject(t)}static parseObject(e){let t=new o;return Object.assign(t,e),t}getIndexUrl(e){return r.UrlUtils.getWidgetPackageIndexUrl(this.url,this.entry,null==e?this.hash:e)}}t.WidgetPackage=o},758:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeMode=t.WidgetParams=void 0;const r=n(821),o=n(94);class i{toUrlParams(){const e=new URLSearchParams,t=Object.getOwnPropertyNames(this);for(let n of t){const t=this[n];t&&e.append(i.PARAM_PREFIX+(0,o.snakeCase)(n),t.toString())}return e}getPersistKey(){return`${this.name}-${this.id}`}static fromCurrentLocation(){let e=window.location.href.split("?");if(e.length>1){let t=e[1];return this.fromObject((0,r.parseQuery)(t))}return new i}static fromLocation(e){let t=e.split("?");if(t.length>1){let e=t[1];return this.fromObject((0,r.parseQuery)(e))}return new i}static setValue(e,t,n){const r=t.replace(this.PARAM_PREFIX,"");r==i.PARAM_ID?e.id=n:r==i.PARAM_X?e.x=parseInt(n):r==i.PARAM_Y?e.y=parseInt(n):r==i.PARAM_HEIGHT?e.height=parseInt(n):r==i.PARAM_WIDTH?e.width=parseInt(n):r==i.PARAM_LANG?e.lang=n:r==i.PARAM_THEME?e.theme=n:r==i.PARAM_MODE?e.mode=parseInt(n):r==i.PARAM_RADIUS?e.radius=parseInt(n):r==i.PARAM_WIDTH_PX?e.widthPx=parseInt(n):r==i.PARAM_HEIGHT_PX?e.heightPx=parseInt(n):r==i.PARAM_NAME?e.name=n:r==i.PARAM_TITLE?e.title=n:r==i.PARAM_PREVIEW&&(e.preview="true"===n)}static fromObject(e){const t=new i,n=Object.getOwnPropertyNames(e);for(let r of n){const n=r,o=e[n];this.setValue(t,n,o)}return t}}var a;t.WidgetParams=i,i.PARAM_PREFIX="w_",i.PARAM_ID="id",i.PARAM_WIDTH="width",i.PARAM_HEIGHT="height",i.PARAM_WIDTH_PX="width_px",i.PARAM_HEIGHT_PX="height_px",i.PARAM_X="x",i.PARAM_Y="y",i.PARAM_LANG="lang",i.PARAM_THEME="theme",i.PARAM_MODE="mode",i.PARAM_RADIUS="radius",i.PARAM_NAME="name",i.PARAM_TITLE="title",i.PARAM_PREVIEW="preview",i.PARAMS=[i.PARAM_ID,i.PARAM_WIDTH,i.PARAM_HEIGHT,i.PARAM_X,i.PARAM_Y,i.PARAM_LANG,i.PARAM_THEME,i.PARAM_MODE,i.PARAM_WIDTH_PX,i.PARAM_HEIGHT_PX,i.PARAM_NAME,i.PARAM_TITLE,i.PARAM_PREVIEW],(a=t.ThemeMode||(t.ThemeMode={})).AUTO="auto",a.LIGHT="LIGHT",a.DARK="DARK"},790:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},442:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},937:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BroadcastEvent=void 0;class n{constructor(e,t,n){this.type=e,this.from=t,this.payload=n}}t.BroadcastEvent=n,n.TYPE_WIDGET_UPDATED="broadcast::cn.widgetjs.core.widget_updated",n.TYPE_APP_CONFIG_UPDATED="broadcast::cn.widgetjs.core.app_config_updated",n.TYPE_THEME_CHANGED="broadcast::cn.widgetjs.core.theme_changed",n.TYPE_EDIT_DESKTOP_WIDGETS="broadcast::cn.widgetjs.core.edit_desktop_widgets"},681:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WebSocketEvent=t.WebSocketEventType=void 0,(t.WebSocketEventType||(t.WebSocketEventType={})).RESISTER_WIDGETS="ws::cn.widgetjs.core.resister_widgets",t.WebSocketEvent=class{constructor(e,t){this.type=e,this.payload=t}}},386:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},630:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetDataRepository=void 0;const o=r(n(680)),i=n(937),a=n(969);class s{static async save(e){let t=this.getStore(e.name);const n=await t.setItem(this.getKey(e.name,e.id),JSON.stringify(e)),r=new i.BroadcastEvent(i.BroadcastEvent.TYPE_WIDGET_UPDATED,"",e);return await a.BroadcastApi.sendBroadcastEvent(r),n}static getStore(e){if(this.stores.has(e))return this.stores.get(e);const t=o.default.createInstance({name:e});return this.stores.set(e,t),t}static async saveByName(e){const t=this.getStore(e.name),n=JSON.stringify(e),r=await t.setItem(e.name,n),o=new i.BroadcastEvent(i.BroadcastEvent.TYPE_WIDGET_UPDATED,"",{name:e.name,json:n});return await a.BroadcastApi.sendBroadcastEvent(o),r}static async findByName(e,t){let n=this.getStore(e),r=await n.getItem(e);if(r){const n=new t(e);return n.parseJSON(JSON.parse(r)),n}}static async find(e,t,n){let r=this.getStore(e),o=await r.getItem(this.getKey(e,t));if(o){const r=new n(e,t);return r.parseJSON(JSON.parse(o)),r}}static getKey(e,t){return`${e}@${t}`}}t.WidgetDataRepository=s,s.stores=new Map},733:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decode=t.encodeParam=t.encodePath=t.encodeQueryKey=t.encodeQueryValue=t.encodeHash=t.PLUS_RE=void 0;const n=/#/g,r=/&/g,o=/\//g,i=/=/g,a=/\?/g;t.PLUS_RE=/\+/g;const s=/%5B/g,c=/%5D/g,u=/%5E/g,l=/%60/g,d=/%7B/g,f=/%7C/g,v=/%7D/g,h=/%20/g;function g(e){return encodeURI(""+e).replace(f,"|").replace(s,"[").replace(c,"]")}function p(e){return g(e).replace(t.PLUS_RE,"%2B").replace(h,"+").replace(n,"%23").replace(r,"%26").replace(l,"`").replace(d,"{").replace(v,"}").replace(u,"^")}function _(e){return g(e).replace(n,"%23").replace(a,"%3F")}t.encodeHash=function(e){return g(e).replace(d,"{").replace(v,"}").replace(u,"^")},t.encodeQueryValue=p,t.encodeQueryKey=function(e){return p(e).replace(i,"%3D")},t.encodePath=_,t.encodeParam=function(e){return null==e?"":_(e).replace(o,"%2F")},t.decode=function(e){try{return decodeURIComponent(""+e)}catch(e){}return""+e}},821:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stringifyQuery=t.parseQuery=void 0;const r=n(733),o=Array.isArray;t.parseQuery=function(e){const t={};if(""===e||"?"===e)return t;const n=("?"===e[0]?e.slice(1):e).split("&");for(let e=0;e<n.length;++e){const i=n[e].replace(r.PLUS_RE," "),a=i.indexOf("="),s=(0,r.decode)(a<0?i:i.slice(0,a)),c=a<0?null:(0,r.decode)(i.slice(a+1));if(s in t){let e=t[s];o(e)||(e=t[s]=[e]),e.push(c)}else t[s]=c}return t},t.stringifyQuery=function(e){let t="";for(let n in e){const i=e[n];(n=(0,r.encodeQueryKey)(n),null!=i)?(o(i)?i.map((e=>e&&(0,r.encodeQueryValue)(e))):[i&&(0,r.encodeQueryValue)(i)]).forEach((e=>{void 0!==e&&(t+=(t.length?"&":"")+n,null!=e&&(t+="="+e))})):void 0!==i&&(t+=(t.length?"&":"")+n)}return t}},990:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ElectronUtils=void 0,t.ElectronUtils=class{static hasElectronApi(){return null!=this.getAPI()}static getAPI(){return Reflect.has(window,"electronAPI")?window.electronAPI:Reflect.has(window.parent,"electronAPI")?window.parent.electronAPI:null}}},499:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UrlUtils=void 0,t.UrlUtils=class{static getWidgetUrl(e,t,n){let r="";return r=e.startsWith("http")?e:t.getIndexUrl()+e,r.includes("?")?r+"&"+n.toUrlParams().toString():r+"?"+n.toUrlParams().toString()}static getWidgetPackageIndexUrl(e,t,n){const r=[e];return e.startsWith("http")?n&&r.push(e.endsWith("/")?"#":"/#"):(r.push(t.startsWith("/")?t:`/${t}`),n&&r.push(e.endsWith("#")?"":"#")),r.join("")}}}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}return n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(755)})()));
2
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.exampleTypescriptPackage=t():e.exampleTypescriptPackage=t()}(this,(()=>(()=>{var e={94:(e,t,n)=>{"use strict";n.r(t),n.d(t,{camelCase:()=>v,camelCaseTransform:()=>f,camelCaseTransformMerge:()=>h,capitalCase:()=>_,capitalCaseTransform:()=>g,constantCase:()=>y,dotCase:()=>I,headerCase:()=>O,noCase:()=>s,paramCase:()=>A,pascalCase:()=>d,pascalCaseTransform:()=>u,pascalCaseTransformMerge:()=>l,pathCase:()=>m,sentenceCase:()=>T,sentenceCaseTransform:()=>b,snakeCase:()=>w});var r=function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},r.apply(this,arguments)};function o(e){return e.toLowerCase()}Object.create,Object.create;var i=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g],a=/[^A-Z0-9]+/gi;function s(e,t){void 0===t&&(t={});for(var n=t.splitRegexp,r=void 0===n?i:n,s=t.stripRegexp,u=void 0===s?a:s,l=t.transform,d=void 0===l?o:l,f=t.delimiter,h=void 0===f?" ":f,v=c(c(e,r,"$1\0$2"),u,"\0"),p=0,g=v.length;"\0"===v.charAt(p);)p++;for(;"\0"===v.charAt(g-1);)g--;return v.slice(p,g).split("\0").map(d).join(h)}function c(e,t,n){return t instanceof RegExp?e.replace(t,n):t.reduce((function(e,t){return e.replace(t,n)}),e)}function u(e,t){var n=e.charAt(0),r=e.substr(1).toLowerCase();return t>0&&n>="0"&&n<="9"?"_"+n+r:""+n.toUpperCase()+r}function l(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}function d(e,t){return void 0===t&&(t={}),s(e,r({delimiter:"",transform:u},t))}function f(e,t){return 0===t?e.toLowerCase():u(e,t)}function h(e,t){return 0===t?e.toLowerCase():l(e)}function v(e,t){return void 0===t&&(t={}),d(e,r({transform:f},t))}function p(e){return e.charAt(0).toUpperCase()+e.substr(1)}function g(e){return p(e.toLowerCase())}function _(e,t){return void 0===t&&(t={}),s(e,r({delimiter:" ",transform:g},t))}function E(e){return e.toUpperCase()}function y(e,t){return void 0===t&&(t={}),s(e,r({delimiter:"_",transform:E},t))}function I(e,t){return void 0===t&&(t={}),s(e,r({delimiter:"."},t))}function O(e,t){return void 0===t&&(t={}),_(e,r({delimiter:"-"},t))}function A(e,t){return void 0===t&&(t={}),I(e,r({delimiter:"-"},t))}function m(e,t){return void 0===t&&(t={}),I(e,r({delimiter:"/"},t))}function b(e,t){var n=e.toLowerCase();return 0===t?p(n):n}function T(e,t){return void 0===t&&(t={}),s(e,r({delimiter:" ",transform:b},t))}function w(e,t){return void 0===t&&(t={}),I(e,r({delimiter:"_"},t))}},680:(e,t,n)=>{e.exports=function e(t,n,r){function o(a,s){if(!n[a]){if(!t[a]){if(i)return i(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[a]={exports:{}};t[a][0].call(u.exports,(function(e){return o(t[a][1][e]||e)}),u,u.exports,e,t,n,r)}return n[a].exports}for(var i=void 0,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,t,r){(function(e){"use strict";var n,r,o=e.MutationObserver||e.WebKitMutationObserver;if(o){var i=0,a=new o(l),s=e.document.createTextNode("");a.observe(s,{characterData:!0}),n=function(){s.data=i=++i%2}}else if(e.setImmediate||void 0===e.MessageChannel)n="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var t=e.document.createElement("script");t.onreadystatechange=function(){l(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(l,0)};else{var c=new e.MessageChannel;c.port1.onmessage=l,n=function(){c.port2.postMessage(0)}}var u=[];function l(){var e,t;r=!0;for(var n=u.length;n;){for(t=u,u=[],e=-1;++e<n;)t[e]();n=u.length}r=!1}t.exports=function(e){1!==u.push(e)||r||n()}}).call(this,void 0!==n.g?n.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,n){"use strict";var r=e(1);function o(){}var i={},a=["REJECTED"],s=["FULFILLED"],c=["PENDING"];function u(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=c,this.queue=[],this.outcome=void 0,e!==o&&h(this,e)}function l(e,t,n){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof n&&(this.onRejected=n,this.callRejected=this.otherCallRejected)}function d(e,t,n){r((function(){var r;try{r=t(n)}catch(t){return i.reject(e,t)}r===e?i.reject(e,new TypeError("Cannot resolve promise with itself")):i.resolve(e,r)}))}function f(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments)}}function h(e,t){var n=!1;function r(t){n||(n=!0,i.reject(e,t))}function o(t){n||(n=!0,i.resolve(e,t))}var a=v((function(){t(o,r)}));"error"===a.status&&r(a.value)}function v(e,t){var n={};try{n.value=e(t),n.status="success"}catch(e){n.status="error",n.value=e}return n}t.exports=u,u.prototype.catch=function(e){return this.then(null,e)},u.prototype.then=function(e,t){if("function"!=typeof e&&this.state===s||"function"!=typeof t&&this.state===a)return this;var n=new this.constructor(o);return this.state!==c?d(n,this.state===s?e:t,this.outcome):this.queue.push(new l(n,e,t)),n},l.prototype.callFulfilled=function(e){i.resolve(this.promise,e)},l.prototype.otherCallFulfilled=function(e){d(this.promise,this.onFulfilled,e)},l.prototype.callRejected=function(e){i.reject(this.promise,e)},l.prototype.otherCallRejected=function(e){d(this.promise,this.onRejected,e)},i.resolve=function(e,t){var n=v(f,t);if("error"===n.status)return i.reject(e,n.value);var r=n.value;if(r)h(e,r);else{e.state=s,e.outcome=t;for(var o=-1,a=e.queue.length;++o<a;)e.queue[o].callFulfilled(t)}return e},i.reject=function(e,t){e.state=a,e.outcome=t;for(var n=-1,r=e.queue.length;++n<r;)e.queue[n].callRejected(t);return e},u.resolve=function(e){return e instanceof this?e:i.resolve(new this(o),e)},u.reject=function(e){var t=new this(o);return i.reject(t,e)},u.all=function(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var n=e.length,r=!1;if(!n)return this.resolve([]);for(var a=new Array(n),s=0,c=-1,u=new this(o);++c<n;)l(e[c],c);return u;function l(e,o){t.resolve(e).then((function(e){a[o]=e,++s!==n||r||(r=!0,i.resolve(u,a))}),(function(e){r||(r=!0,i.reject(u,e))}))}},u.race=function(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var n,r=e.length,a=!1;if(!r)return this.resolve([]);for(var s=-1,c=new this(o);++s<r;)n=e[s],t.resolve(n).then((function(e){a||(a=!0,i.resolve(c,e))}),(function(e){a||(a=!0,i.reject(c,e))}));return c}},{1:1}],3:[function(e,t,r){(function(t){"use strict";"function"!=typeof t.Promise&&(t.Promise=e(2))}).call(this,void 0!==n.g?n.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2}],4:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var o=function(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(e){return}}();function i(e,t){e=e||[],t=t||{};try{return new Blob(e,t)}catch(o){if("TypeError"!==o.name)throw o;for(var n=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),r=0;r<e.length;r+=1)n.append(e[r]);return n.getBlob(t.type)}}"undefined"==typeof Promise&&e(3);var a=Promise;function s(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function c(e,t,n){"function"==typeof t&&e.then(t),"function"==typeof n&&e.catch(n)}function u(e){return"string"!=typeof e&&(console.warn(e+" used as a key, but it is not a string."),e=String(e)),e}function l(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var d="local-forage-detect-blob-support",f=void 0,h={},v=Object.prototype.toString,p="readonly",g="readwrite";function _(e){for(var t=e.length,n=new ArrayBuffer(t),r=new Uint8Array(n),o=0;o<t;o++)r[o]=e.charCodeAt(o);return n}function E(e){return"boolean"==typeof f?a.resolve(f):function(e){return new a((function(t){var n=e.transaction(d,g),r=i([""]);n.objectStore(d).put(r,"key"),n.onabort=function(e){e.preventDefault(),e.stopPropagation(),t(!1)},n.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/),n=navigator.userAgent.match(/Edge\//);t(n||!e||parseInt(e[1],10)>=43)}})).catch((function(){return!1}))}(e).then((function(e){return f=e}))}function y(e){var t=h[e.name],n={};n.promise=new a((function(e,t){n.resolve=e,n.reject=t})),t.deferredOperations.push(n),t.dbReady?t.dbReady=t.dbReady.then((function(){return n.promise})):t.dbReady=n.promise}function I(e){var t=h[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function O(e,t){var n=h[e.name].deferredOperations.pop();if(n)return n.reject(t),n.promise}function A(e,t){return new a((function(n,r){if(h[e.name]=h[e.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},e.db){if(!t)return n(e.db);y(e),e.db.close()}var i=[e.name];t&&i.push(e.version);var a=o.open.apply(o,i);t&&(a.onupgradeneeded=function(t){var n=a.result;try{n.createObjectStore(e.storeName),t.oldVersion<=1&&n.createObjectStore(d)}catch(n){if("ConstraintError"!==n.name)throw n;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),a.onerror=function(e){e.preventDefault(),r(a.error)},a.onsuccess=function(){var t=a.result;t.onversionchange=function(e){e.target.close()},n(t),I(e)}}))}function m(e){return A(e,!1)}function b(e){return A(e,!0)}function T(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),r=e.version<e.db.version,o=e.version>e.db.version;if(r&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||n){if(n){var i=e.db.version+1;i>e.version&&(e.version=i)}return!0}return!1}function w(e){return i([_(atob(e.data))],{type:e.type})}function S(e){return e&&e.__local_forage_encoded_blob}function R(e){var t=this,n=t._initReady().then((function(){var e=h[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return c(n,e,e),n}function P(e,t,n,r){void 0===r&&(r=1);try{var o=e.db.transaction(e.storeName,t);n(null,o)}catch(o){if(r>0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return a.resolve().then((function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),b(e)})).then((function(){return function(e){y(e);for(var t=h[e.name],n=t.forages,r=0;r<n.length;r++){var o=n[r];o._dbInfo.db&&(o._dbInfo.db.close(),o._dbInfo.db=null)}return e.db=null,m(e).then((function(t){return e.db=t,T(e)?b(e):t})).then((function(r){e.db=t.db=r;for(var o=0;o<n.length;o++)n[o]._dbInfo.db=r})).catch((function(t){throw O(e,t),t}))}(e).then((function(){P(e,t,n,r-1)}))})).catch(n);n(o)}}var N={_driver:"asyncStorage",_initStorage:function(e){var t=this,n={db:null};if(e)for(var r in e)n[r]=e[r];var o=h[n.name];o||(o={forages:[],db:null,dbReady:null,deferredOperations:[]},h[n.name]=o),o.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=R);var i=[];function s(){return a.resolve()}for(var c=0;c<o.forages.length;c++){var u=o.forages[c];u!==t&&i.push(u._initReady().catch(s))}var l=o.forages.slice(0);return a.all(i).then((function(){return n.db=o.db,m(n)})).then((function(e){return n.db=e,T(n,t._defaultConfig.version)?b(n):e})).then((function(e){n.db=o.db=e,t._dbInfo=n;for(var r=0;r<l.length;r++){var i=l[r];i!==t&&(i._dbInfo.db=n.db,i._dbInfo.version=n.version)}}))},_support:function(){try{if(!o||!o.open)return!1;var e="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}(),iterate:function(e,t){var n=this,r=new a((function(t,r){n.ready().then((function(){P(n._dbInfo,p,(function(o,i){if(o)return r(o);try{var a=i.objectStore(n._dbInfo.storeName).openCursor(),s=1;a.onsuccess=function(){var n=a.result;if(n){var r=n.value;S(r)&&(r=w(r));var o=e(r,n.key,s++);void 0!==o?t(o):n.continue()}else t()},a.onerror=function(){r(a.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,t),r},getItem:function(e,t){var n=this;e=u(e);var r=new a((function(t,r){n.ready().then((function(){P(n._dbInfo,p,(function(o,i){if(o)return r(o);try{var a=i.objectStore(n._dbInfo.storeName).get(e);a.onsuccess=function(){var e=a.result;void 0===e&&(e=null),S(e)&&(e=w(e)),t(e)},a.onerror=function(){r(a.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,t),r},setItem:function(e,t,n){var r=this;e=u(e);var o=new a((function(n,o){var i;r.ready().then((function(){return i=r._dbInfo,"[object Blob]"===v.call(t)?E(i.db).then((function(e){return e?t:(n=t,new a((function(e,t){var r=new FileReader;r.onerror=t,r.onloadend=function(t){var r=btoa(t.target.result||"");e({__local_forage_encoded_blob:!0,data:r,type:n.type})},r.readAsBinaryString(n)})));var n})):t})).then((function(t){P(r._dbInfo,g,(function(i,a){if(i)return o(i);try{var s=a.objectStore(r._dbInfo.storeName);null===t&&(t=void 0);var c=s.put(t,e);a.oncomplete=function(){void 0===t&&(t=null),n(t)},a.onabort=a.onerror=function(){var e=c.error?c.error:c.transaction.error;o(e)}}catch(e){o(e)}}))})).catch(o)}));return s(o,n),o},removeItem:function(e,t){var n=this;e=u(e);var r=new a((function(t,r){n.ready().then((function(){P(n._dbInfo,g,(function(o,i){if(o)return r(o);try{var a=i.objectStore(n._dbInfo.storeName).delete(e);i.oncomplete=function(){t()},i.onerror=function(){r(a.error)},i.onabort=function(){var e=a.error?a.error:a.transaction.error;r(e)}}catch(e){r(e)}}))})).catch(r)}));return s(r,t),r},clear:function(e){var t=this,n=new a((function(e,n){t.ready().then((function(){P(t._dbInfo,g,(function(r,o){if(r)return n(r);try{var i=o.objectStore(t._dbInfo.storeName).clear();o.oncomplete=function(){e()},o.onabort=o.onerror=function(){var e=i.error?i.error:i.transaction.error;n(e)}}catch(e){n(e)}}))})).catch(n)}));return s(n,e),n},length:function(e){var t=this,n=new a((function(e,n){t.ready().then((function(){P(t._dbInfo,p,(function(r,o){if(r)return n(r);try{var i=o.objectStore(t._dbInfo.storeName).count();i.onsuccess=function(){e(i.result)},i.onerror=function(){n(i.error)}}catch(e){n(e)}}))})).catch(n)}));return s(n,e),n},key:function(e,t){var n=this,r=new a((function(t,r){e<0?t(null):n.ready().then((function(){P(n._dbInfo,p,(function(o,i){if(o)return r(o);try{var a=i.objectStore(n._dbInfo.storeName),s=!1,c=a.openKeyCursor();c.onsuccess=function(){var n=c.result;n?0===e||s?t(n.key):(s=!0,n.advance(e)):t(null)},c.onerror=function(){r(c.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,t),r},keys:function(e){var t=this,n=new a((function(e,n){t.ready().then((function(){P(t._dbInfo,p,(function(r,o){if(r)return n(r);try{var i=o.objectStore(t._dbInfo.storeName).openKeyCursor(),a=[];i.onsuccess=function(){var t=i.result;t?(a.push(t.key),t.continue()):e(a)},i.onerror=function(){n(i.error)}}catch(e){n(e)}}))})).catch(n)}));return s(n,e),n},dropInstance:function(e,t){t=l.apply(this,arguments);var n,r=this.config();if((e="function"!=typeof e&&e||{}).name||(e.name=e.name||r.name,e.storeName=e.storeName||r.storeName),e.name){var i=e.name===r.name&&this._dbInfo.db?a.resolve(this._dbInfo.db):m(e).then((function(t){var n=h[e.name],r=n.forages;n.db=t;for(var o=0;o<r.length;o++)r[o]._dbInfo.db=t;return t}));n=e.storeName?i.then((function(t){if(t.objectStoreNames.contains(e.storeName)){var n=t.version+1;y(e);var r=h[e.name],i=r.forages;t.close();for(var s=0;s<i.length;s++){var c=i[s];c._dbInfo.db=null,c._dbInfo.version=n}var u=new a((function(t,r){var i=o.open(e.name,n);i.onerror=function(e){i.result.close(),r(e)},i.onupgradeneeded=function(){i.result.deleteObjectStore(e.storeName)},i.onsuccess=function(){var e=i.result;e.close(),t(e)}}));return u.then((function(e){r.db=e;for(var t=0;t<i.length;t++){var n=i[t];n._dbInfo.db=e,I(n._dbInfo)}})).catch((function(t){throw(O(e,t)||a.resolve()).catch((function(){})),t}))}})):i.then((function(t){y(e);var n=h[e.name],r=n.forages;t.close();for(var i=0;i<r.length;i++)r[i]._dbInfo.db=null;var s=new a((function(t,n){var r=o.deleteDatabase(e.name);r.onerror=function(){var e=r.result;e&&e.close(),n(r.error)},r.onblocked=function(){console.warn('dropInstance blocked for database "'+e.name+'" until all open connections are closed')},r.onsuccess=function(){var e=r.result;e&&e.close(),t(e)}}));return s.then((function(e){n.db=e;for(var t=0;t<r.length;t++)I(r[t]._dbInfo)})).catch((function(t){throw(O(e,t)||a.resolve()).catch((function(){})),t}))}))}else n=a.reject("Invalid arguments");return s(n,t),n}};var D="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",W="~~local_forage_type~",C=/^~~local_forage_type~([^~]+)~/,U="__lfsc__:",M=U.length,k="arbf",j="blob",G="si08",B="ui08",L="uic8",x="si16",H="si32",F="ur16",V="ui32",z="fl32",K="fl64",Y=M+k.length,X=Object.prototype.toString;function J(e){var t,n,r,o,i,a=.75*e.length,s=e.length,c=0;"="===e[e.length-1]&&(a--,"="===e[e.length-2]&&a--);var u=new ArrayBuffer(a),l=new Uint8Array(u);for(t=0;t<s;t+=4)n=D.indexOf(e[t]),r=D.indexOf(e[t+1]),o=D.indexOf(e[t+2]),i=D.indexOf(e[t+3]),l[c++]=n<<2|r>>4,l[c++]=(15&r)<<4|o>>2,l[c++]=(3&o)<<6|63&i;return u}function Q(e){var t,n=new Uint8Array(e),r="";for(t=0;t<n.length;t+=3)r+=D[n[t]>>2],r+=D[(3&n[t])<<4|n[t+1]>>4],r+=D[(15&n[t+1])<<2|n[t+2]>>6],r+=D[63&n[t+2]];return n.length%3==2?r=r.substring(0,r.length-1)+"=":n.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}var q={serialize:function(e,t){var n="";if(e&&(n=X.call(e)),e&&("[object ArrayBuffer]"===n||e.buffer&&"[object ArrayBuffer]"===X.call(e.buffer))){var r,o=U;e instanceof ArrayBuffer?(r=e,o+=k):(r=e.buffer,"[object Int8Array]"===n?o+=G:"[object Uint8Array]"===n?o+=B:"[object Uint8ClampedArray]"===n?o+=L:"[object Int16Array]"===n?o+=x:"[object Uint16Array]"===n?o+=F:"[object Int32Array]"===n?o+=H:"[object Uint32Array]"===n?o+=V:"[object Float32Array]"===n?o+=z:"[object Float64Array]"===n?o+=K:t(new Error("Failed to get type for BinaryArray"))),t(o+Q(r))}else if("[object Blob]"===n){var i=new FileReader;i.onload=function(){var n=W+e.type+"~"+Q(this.result);t(U+j+n)},i.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(n){console.error("Couldn't convert value into a JSON string: ",e),t(null,n)}},deserialize:function(e){if(e.substring(0,M)!==U)return JSON.parse(e);var t,n=e.substring(Y),r=e.substring(M,Y);if(r===j&&C.test(n)){var o=n.match(C);t=o[1],n=n.substring(o[0].length)}var a=J(n);switch(r){case k:return a;case j:return i([a],{type:t});case G:return new Int8Array(a);case B:return new Uint8Array(a);case L:return new Uint8ClampedArray(a);case x:return new Int16Array(a);case F:return new Uint16Array(a);case H:return new Int32Array(a);case V:return new Uint32Array(a);case z:return new Float32Array(a);case K:return new Float64Array(a);default:throw new Error("Unkown type: "+r)}},stringToBuffer:J,bufferToString:Q};function Z(e,t,n,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,r)}function $(e,t,n,r,o,i){e.executeSql(n,r,o,(function(e,a){a.code===a.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,s){s.rows.length?i(e,a):Z(e,t,(function(){e.executeSql(n,r,o,i)}),i)}),i):i(e,a)}),i)}function ee(e,t,n,r){var o=this;e=u(e);var i=new a((function(i,a){o.ready().then((function(){void 0===t&&(t=null);var s=t,c=o._dbInfo;c.serializer.serialize(t,(function(t,u){u?a(u):c.db.transaction((function(n){$(n,c,"INSERT OR REPLACE INTO "+c.storeName+" (key, value) VALUES (?, ?)",[e,t],(function(){i(s)}),(function(e,t){a(t)}))}),(function(t){if(t.code===t.QUOTA_ERR){if(r>0)return void i(ee.apply(o,[e,s,n,r-1]));a(t)}}))}))})).catch(a)}));return s(i,n),i}var te={_driver:"webSQLStorage",_initStorage:function(e){var t=this,n={db:null};if(e)for(var r in e)n[r]="string"!=typeof e[r]?e[r].toString():e[r];var o=new a((function(e,r){try{n.db=openDatabase(n.name,String(n.version),n.description,n.size)}catch(e){return r(e)}n.db.transaction((function(o){Z(o,n,(function(){t._dbInfo=n,e()}),(function(e,t){r(t)}))}),r)}));return n.serializer=q,o},_support:"function"==typeof openDatabase,iterate:function(e,t){var n=this,r=new a((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){$(n,o,"SELECT * FROM "+o.storeName,[],(function(n,r){for(var i=r.rows,a=i.length,s=0;s<a;s++){var c=i.item(s),u=c.value;if(u&&(u=o.serializer.deserialize(u)),void 0!==(u=e(u,c.key,s+1)))return void t(u)}t()}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,t),r},getItem:function(e,t){var n=this;e=u(e);var r=new a((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){$(n,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,n){var r=n.rows.length?n.rows.item(0).value:null;r&&(r=o.serializer.deserialize(r)),t(r)}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,t),r},setItem:function(e,t,n){return ee.apply(this,[e,t,n,1])},removeItem:function(e,t){var n=this;e=u(e);var r=new a((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){$(n,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,t),r},clear:function(e){var t=this,n=new a((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){$(t,r,"DELETE FROM "+r.storeName,[],(function(){e()}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,e),n},length:function(e){var t=this,n=new a((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){$(t,r,"SELECT COUNT(key) as c FROM "+r.storeName,[],(function(t,n){var r=n.rows.item(0).c;e(r)}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,e),n},key:function(e,t){var n=this,r=new a((function(t,r){n.ready().then((function(){var o=n._dbInfo;o.db.transaction((function(n){$(n,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,n){var r=n.rows.length?n.rows.item(0).key:null;t(r)}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,t),r},keys:function(e){var t=this,n=new a((function(e,n){t.ready().then((function(){var r=t._dbInfo;r.db.transaction((function(t){$(t,r,"SELECT key FROM "+r.storeName,[],(function(t,n){for(var r=[],o=0;o<n.rows.length;o++)r.push(n.rows.item(o).key);e(r)}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,e),n},dropInstance:function(e,t){t=l.apply(this,arguments);var n=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||n.name,e.storeName=e.storeName||n.storeName);var r,o=this;return s(r=e.name?new a((function(t){var r;r=e.name===n.name?o._dbInfo.db:openDatabase(e.name,"","",0),e.storeName?t({db:r,storeNames:[e.storeName]}):t(function(e){return new a((function(t,n){e.transaction((function(r){r.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],(function(n,r){for(var o=[],i=0;i<r.rows.length;i++)o.push(r.rows.item(i).name);t({db:e,storeNames:o})}),(function(e,t){n(t)}))}),(function(e){n(e)}))}))}(r))})).then((function(e){return new a((function(t,n){e.db.transaction((function(r){function o(e){return new a((function(t,n){r.executeSql("DROP TABLE IF EXISTS "+e,[],(function(){t()}),(function(e,t){n(t)}))}))}for(var i=[],s=0,c=e.storeNames.length;s<c;s++)i.push(o(e.storeNames[s]));a.all(i).then((function(){t()})).catch((function(e){n(e)}))}),(function(e){n(e)}))}))})):a.reject("Invalid arguments"),t),r}};function ne(e,t){var n=e.name+"/";return e.storeName!==t.storeName&&(n+=e.storeName+"/"),n}function re(){return!function(){var e="_localforage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(e){return!0}}()||localStorage.length>0}var oe={_driver:"localStorageWrapper",_initStorage:function(e){var t={};if(e)for(var n in e)t[n]=e[n];return t.keyPrefix=ne(e,this._defaultConfig),re()?(this._dbInfo=t,t.serializer=q,a.resolve()):a.reject()},_support:function(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}(),iterate:function(e,t){var n=this,r=n.ready().then((function(){for(var t=n._dbInfo,r=t.keyPrefix,o=r.length,i=localStorage.length,a=1,s=0;s<i;s++){var c=localStorage.key(s);if(0===c.indexOf(r)){var u=localStorage.getItem(c);if(u&&(u=t.serializer.deserialize(u)),void 0!==(u=e(u,c.substring(o),a++)))return u}}}));return s(r,t),r},getItem:function(e,t){var n=this;e=u(e);var r=n.ready().then((function(){var t=n._dbInfo,r=localStorage.getItem(t.keyPrefix+e);return r&&(r=t.serializer.deserialize(r)),r}));return s(r,t),r},setItem:function(e,t,n){var r=this;e=u(e);var o=r.ready().then((function(){void 0===t&&(t=null);var n=t;return new a((function(o,i){var a=r._dbInfo;a.serializer.serialize(t,(function(t,r){if(r)i(r);else try{localStorage.setItem(a.keyPrefix+e,t),o(n)}catch(e){"QuotaExceededError"!==e.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==e.name||i(e),i(e)}}))}))}));return s(o,n),o},removeItem:function(e,t){var n=this;e=u(e);var r=n.ready().then((function(){var t=n._dbInfo;localStorage.removeItem(t.keyPrefix+e)}));return s(r,t),r},clear:function(e){var t=this,n=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,n=localStorage.length-1;n>=0;n--){var r=localStorage.key(n);0===r.indexOf(e)&&localStorage.removeItem(r)}}));return s(n,e),n},length:function(e){var t=this.keys().then((function(e){return e.length}));return s(t,e),t},key:function(e,t){var n=this,r=n.ready().then((function(){var t,r=n._dbInfo;try{t=localStorage.key(e)}catch(e){t=null}return t&&(t=t.substring(r.keyPrefix.length)),t}));return s(r,t),r},keys:function(e){var t=this,n=t.ready().then((function(){for(var e=t._dbInfo,n=localStorage.length,r=[],o=0;o<n;o++){var i=localStorage.key(o);0===i.indexOf(e.keyPrefix)&&r.push(i.substring(e.keyPrefix.length))}return r}));return s(n,e),n},dropInstance:function(e,t){if(t=l.apply(this,arguments),!(e="function"!=typeof e&&e||{}).name){var n=this.config();e.name=e.name||n.name,e.storeName=e.storeName||n.storeName}var r,o=this;return r=e.name?new a((function(t){e.storeName?t(ne(e,o._defaultConfig)):t(e.name+"/")})).then((function(e){for(var t=localStorage.length-1;t>=0;t--){var n=localStorage.key(t);0===n.indexOf(e)&&localStorage.removeItem(n)}})):a.reject("Invalid arguments"),s(r,t),r}},ie=function(e,t){for(var n=e.length,r=0;r<n;){if((o=e[r])===(i=t)||"number"==typeof o&&"number"==typeof i&&isNaN(o)&&isNaN(i))return!0;r++}var o,i;return!1},ae=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},se={},ce={},ue={INDEXEDDB:N,WEBSQL:te,LOCALSTORAGE:oe},le=[ue.INDEXEDDB._driver,ue.WEBSQL._driver,ue.LOCALSTORAGE._driver],de=["dropInstance"],fe=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(de),he={description:"",driver:le.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function ve(e,t){e[t]=function(){var n=arguments;return e.ready().then((function(){return e[t].apply(e,n)}))}}function pe(){for(var e=1;e<arguments.length;e++){var t=arguments[e];if(t)for(var n in t)t.hasOwnProperty(n)&&(ae(t[n])?arguments[0][n]=t[n].slice():arguments[0][n]=t[n])}return arguments[0]}var ge=function(){function e(t){for(var n in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),ue)if(ue.hasOwnProperty(n)){var r=ue[n],o=r._driver;this[n]=o,se[o]||this.defineDriver(r)}this._defaultConfig=pe({},he),this._config=pe({},this._defaultConfig,t),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((function(){}))}return e.prototype.config=function(e){if("object"===(void 0===e?"undefined":r(e))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var t in e){if("storeName"===t&&(e[t]=e[t].replace(/\W/g,"_")),"version"===t&&"number"!=typeof e[t])return new Error("Database version must be a number.");this._config[t]=e[t]}return!("driver"in e)||!e.driver||this.setDriver(this._config.driver)}return"string"==typeof e?this._config[e]:this._config},e.prototype.defineDriver=function(e,t,n){var r=new a((function(t,n){try{var r=e._driver,o=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!e._driver)return void n(o);for(var i=fe.concat("_initStorage"),c=0,u=i.length;c<u;c++){var l=i[c];if((!ie(de,l)||e[l])&&"function"!=typeof e[l])return void n(o)}!function(){for(var t=function(e){return function(){var t=new Error("Method "+e+" is not implemented by the current driver"),n=a.reject(t);return s(n,arguments[arguments.length-1]),n}},n=0,r=de.length;n<r;n++){var o=de[n];e[o]||(e[o]=t(o))}}();var d=function(n){se[r]&&console.info("Redefining LocalForage driver: "+r),se[r]=e,ce[r]=n,t()};"_support"in e?e._support&&"function"==typeof e._support?e._support().then(d,n):d(!!e._support):d(!0)}catch(e){n(e)}}));return c(r,t,n),r},e.prototype.driver=function(){return this._driver||null},e.prototype.getDriver=function(e,t,n){var r=se[e]?a.resolve(se[e]):a.reject(new Error("Driver not found."));return c(r,t,n),r},e.prototype.getSerializer=function(e){var t=a.resolve(q);return c(t,e),t},e.prototype.ready=function(e){var t=this,n=t._driverSet.then((function(){return null===t._ready&&(t._ready=t._initDriver()),t._ready}));return c(n,e,e),n},e.prototype.setDriver=function(e,t,n){var r=this;ae(e)||(e=[e]);var o=this._getSupportedDrivers(e);function i(){r._config.driver=r.driver()}function s(e){return r._extend(e),i(),r._ready=r._initStorage(r._config),r._ready}var u=null!==this._driverSet?this._driverSet.catch((function(){return a.resolve()})):a.resolve();return this._driverSet=u.then((function(){var e=o[0];return r._dbInfo=null,r._ready=null,r.getDriver(e).then((function(e){r._driver=e._driver,i(),r._wrapLibraryMethodsWithReady(),r._initDriver=function(e){return function(){var t=0;return function n(){for(;t<e.length;){var o=e[t];return t++,r._dbInfo=null,r._ready=null,r.getDriver(o).then(s).catch(n)}i();var c=new Error("No available storage method found.");return r._driverSet=a.reject(c),r._driverSet}()}}(o)}))})).catch((function(){i();var e=new Error("No available storage method found.");return r._driverSet=a.reject(e),r._driverSet})),c(this._driverSet,t,n),this._driverSet},e.prototype.supports=function(e){return!!ce[e]},e.prototype._extend=function(e){pe(this,e)},e.prototype._getSupportedDrivers=function(e){for(var t=[],n=0,r=e.length;n<r;n++){var o=e[n];this.supports(o)&&t.push(o)}return t},e.prototype._wrapLibraryMethodsWithReady=function(){for(var e=0,t=fe.length;e<t;e++)ve(this,fe[e])},e.prototype.createInstance=function(t){return new e(t)},e}(),_e=new ge;t.exports=_e},{3:3}]},{},[4])(4)},913:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ApiConstants=void 0;class n{}t.ApiConstants=n,n.CONFIG_LAUNCH_AT_STARTUP="CONFIG_LAUNCH_AT_STARTUP",n.CONFIG_WIDGET_TITLE_COLOR="CONFIG_WIDGET_TITLE_COLOR",n.CONFIG_DEBUG_MODE="cn.widgetjs.config.debug",n.CONFIG_GRID_SIZE="cn.widgetjs.config.grid.size",n.SHORTCUT_PIN_DESKTOP_WIDGETS="cn.widgetjs.config.shortcut.pin_desktop_widgets"},445:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AppApi=void 0;const r=n(990),o=n(841);class i{static async setConfig(e,t){await r.ElectronUtils.invoke(o.Channel.APP,this.SET_CONFIG,e,t)}static async getConfig(e,t){const n=await r.ElectronUtils.invoke(o.Channel.APP,this.GET_CONFIG,e);return null==n?t:"boolean"==typeof t?"true"===n:"number"==typeof t?Number(n):n}static openAddWidgetWindow(){r.ElectronUtils.invoke(o.Channel.APP,this.OPEN_ADD_WIDGET_WINDOW)}static async getVersion(){return r.ElectronUtils.invoke(o.Channel.APP,this.GET_VERSION)}static async getPreloadPath(){return r.ElectronUtils.invoke(o.Channel.APP,this.GET_PRELOAD_PATH)}static openSettingWindow(){r.ElectronUtils.invoke(o.Channel.APP,this.OPEN_SETTING_WINDOW)}}t.AppApi=i,i.SET_CONFIG="SET_CONFIG",i.GET_CONFIG="GET_CONFIG",i.OPEN_ADD_WIDGET_WINDOW="open-add-widget-window",i.OPEN_SETTING_WINDOW="open-setting-window",i.GET_PRELOAD_PATH="get-preload-path",i.GET_VERSION="get-version"},969:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BroadcastApi=void 0;const r=n(990),o=n(841),i=n(295);t.BroadcastApi=class{static async sendBroadcastEvent(e){var t;await(null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.BROADCAST,JSON.stringify(e)))}static async registerBroadcast(e){await i.ElectronApi.addIpcListener(o.Channel.BROADCAST,(t=>{e(JSON.parse(t))}))}static async unregisterBroadcast(){await i.ElectronApi.removeIpcListener(o.Channel.BROADCAST)}}},194:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BrowserWindowApi=void 0;const r=n(841),o=n(990);class i{static async setIgnoreMouseEvent(e){await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.IGNORE_MOUSE_EVENT,e)}static async show(){await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.WINDOW_VISIBILITY,!0)}static async showInactive(){await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.SHOW_INACTIVE,!0)}static async hide(){await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.WINDOW_VISIBILITY,!1)}static async center(){await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.CENTER,!1)}static async setWindowVisibility(e){await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.WINDOW_VISIBILITY,e)}static async setAlwaysOnTop(e){await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.ALWAYS_ON_TOP,e)}static async isAlwaysOnTop(){return await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.IS_ALWAYS_ON_TOP)}static async openUrl(e){await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.OPEN_URL,e)}static async moveTop(){await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.MOVE_TOP)}static async openDevTools(){await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.OPEN_DEV_TOOLS)}static async setPosition(e,t,n){await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.SET_POSITION,e,t,n)}static async getPosition(){return await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.GET_POSITION)}static async blur(){return await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.BLUR)}static async focus(){return await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.FOCUS)}static async setResizable(e){return await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.SET_RESIZABLE,e)}static async getBounds(){return await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.GET_BOUNDS)}static async setBounds(e,t){return await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.SET_BOUNDS,e,t)}static async alignToScreen(e){return await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.ALIGN_TO_SCREEN,e)}static async startDraggingWindow(){return await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.START_DRAGGING_WINDOW)}static async stopDraggingWindow(){return await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.STOP_DRAGGING_WINDOW)}static async existsByUrl(e){return await o.ElectronUtils.invoke(r.Channel.BROWSER_WINDOW,this.EXISTS_BY_URL,e)}}t.BrowserWindowApi=i,i.IGNORE_MOUSE_EVENT="ignore-mouse-event",i.WINDOW_VISIBILITY="window-visibility",i.CENTER="center",i.ALWAYS_ON_TOP="always-on-top",i.IS_ALWAYS_ON_TOP="is-always-on-top",i.OPEN_URL="open-url",i.MOVE_TOP="move-top",i.OPEN_DEV_TOOLS="open-dev-tools",i.SET_POSITION="set-position",i.GET_POSITION="get-position",i.BLUR="blur",i.FOCUS="focus",i.SET_RESIZABLE="set-resizable",i.GET_BOUNDS="get-bounds",i.SET_BOUNDS="set-bounds",i.ALIGN_TO_SCREEN="align-to-screen",i.START_DRAGGING_WINDOW="start-dragging-window",i.STOP_DRAGGING_WINDOW="stop-dragging-window",i.EXISTS_BY_URL="exists-by-url",i.SHOW_INACTIVE="show-inactive",i.SHOW="show"},841:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.Channel=void 0,(n=t.Channel||(t.Channel={})).NOTIFICATION="channel::cn.widgetjs.core.notification",n.BROWSER_WINDOW="channel::cn.widgetjs.core.browser_window",n.BROADCAST="channel::cn.widgetjs.core.broadcast",n.WIDGET="channel::cn.widgetjs.core.widget",n.HOSTED_WIDGET="channel::cn.widgetjs.core.hosted_widget",n.APP="channel::cn.widgetjs.core.app",n.DIALOG="channel::cn.widgetjs.core.dialog",n.CLIPBOARD="channel::cn.widgetjs.core.clipboard",n.SCREEN="channel::cn.widgetjs.core.screen",n.SHORTCUT="channel::cn.widgetjs.core.shortcut",n.LOG="channel::cn.widgetjs.core.log",n.DEVICE="channel::cn.widgetjs.core.device",n.MOUSE_EVENT="channel::cn.widgetjs.core.mouse_event",n.KEYBOARD="channel::cn.widgetjs.core.keyboard"},989:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ClipboardApi=void 0;const r=n(990),o=n(841);class i{static async getSelectedText(){var e;return await(null===(e=r.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(o.Channel.CLIPBOARD,this.GET_SELECTED_TEXT))}static async getText(){var e;return await(null===(e=r.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(o.Channel.CLIPBOARD,this.GET_TEXT))}}t.ClipboardApi=i,i.GET_SELECTED_TEXT="get-selected-text",i.GET_TEXT="get-text"},394:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeviceApi=void 0;const r=n(990),o=n(841);class i{static async getCursorScreenPoint(){return await r.ElectronUtils.invoke(o.Channel.DEVICE,this.GET_CURSOR_SCREEN_POINT)}static async isAllKeyReleased(){return await r.ElectronUtils.invoke(o.Channel.DEVICE,this.IS_ALL_KEY_RELEASED)}}t.DeviceApi=i,i.GET_CURSOR_SCREEN_POINT="get-cursor-screen-point",i.IS_ALL_KEY_RELEASED="is-all-key-released"},24:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DialogApi=void 0;const r=n(990),o=n(841);class i{static async pickFile(e){var t;return await(null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.DIALOG,this.PICK_FILE,e))}}t.DialogApi=i,i.PICK_FILE="pick-file"},295:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ElectronApi=void 0;const r=n(990);t.ElectronApi=class{static async addIpcListener(e,t){var n;await(null===(n=r.ElectronUtils.getAPI())||void 0===n?void 0:n.addIpcListener(e,t))}static async removeIpcListener(e){var t;await(null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.removeIpcListener(e))}}},671:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalShortcutApi=void 0;const r=n(990),o=n(841);class i{static async register(e){var t;return await(null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.SHORTCUT,this.REGISTER,e))}static async unregister(e){var t;return await(null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.SHORTCUT,this.UNREGISTER,e))}static async isRegistered(e){var t;return await(null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.SHORTCUT,this.IS_REGISTERED,e))}}t.GlobalShortcutApi=i,i.REGISTER="register",i.IS_REGISTERED="is-registered",i.UNREGISTER="unregister"},766:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HostedWidgetApi=void 0;const r=n(990),o=n(841);class i{static async removeHostedWidget(e){var t;return null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.HOSTED_WIDGET,this.REMOVE_HOSTED_WIDGET,e)}static async removeHostedWidgetByName(e){var t;return null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.HOSTED_WIDGET,this.REMOVE_HOSTED_WIDGET_BY_NAME,e)}static async getHostedWidgets(e){var t;return null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.HOSTED_WIDGET,this.GET_HOSTED_WIDGETS,e)}static async getHostedWidget(e){var t;return null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.HOSTED_WIDGET,this.GET_HOSTED_WIDGET,e)}static async openDevTools(e){var t;return null===(t=r.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.HOSTED_WIDGET,this.OPEN_DEV_TOOLS,e)}static async openConfigRoute(e,t){var n;return null===(n=r.ElectronUtils.getAPI())||void 0===n?void 0:n.invoke(o.Channel.HOSTED_WIDGET,this.OPEN_CONFIG_ROUTE,e,t)}static async registerActiveShortcut(e,t){var n;return null===(n=r.ElectronUtils.getAPI())||void 0===n?void 0:n.invoke(o.Channel.HOSTED_WIDGET,this.REGISTER_ACTIVE_SHORTCUT,e,t)}static async setProxy(e,t){var n;return null===(n=r.ElectronUtils.getAPI())||void 0===n?void 0:n.invoke(o.Channel.HOSTED_WIDGET,this.SET_PROXY,e,t)}}t.HostedWidgetApi=i,i.REMOVE_HOSTED_WIDGET="remove-hosted-widget",i.REMOVE_HOSTED_WIDGET_BY_NAME="remove-hosted-widget-by-name",i.GET_HOSTED_WIDGETS="get-hosted-widgets",i.GET_HOSTED_WIDGET="get-hosted-widget",i.OPEN_DEV_TOOLS="open-dev-tools",i.REGISTER_ACTIVE_SHORTCUT="register-active-shortcut",i.SET_PROXY="SET_PROXY",i.UPDATE="UPDATE",i.OPEN_CONFIG_ROUTE="open-config-route"},806:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LogApi=void 0;const r=n(990),o=n(841);t.LogApi=class{static info(e,...t){console.info(...t),r.ElectronUtils.invoke(o.Channel.LOG,e,"info",...t)}static error(e,...t){console.error(...t),r.ElectronUtils.invoke(o.Channel.LOG,e,"error",...t)}static warn(e,...t){console.warn(...t),r.ElectronUtils.invoke(o.Channel.LOG,e,"warn",...t)}static log(e,...t){console.log(...t),r.ElectronUtils.invoke(o.Channel.LOG,e,"log",...t)}}},717:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NotificationApi=void 0;const r=n(31),o=n(841),i=n(990);t.NotificationApi=class{static async call(e,t,n,a,s){var c;null===(c=i.ElectronUtils.getAPI())||void 0===c||c.invoke(o.Channel.NOTIFICATION,new r.AppNotification({avatar:e,audio:t,message:a,title:n,duration:-1,lyric:s,type:"call"}))}static async send(e){var t;return null===(t=i.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(o.Channel.NOTIFICATION,e)}static async reminder(e,t,n,o,i,a,s,c=5e3){return await this.send(new r.AppNotification({icon:n,message:t,title:e,duration:c,cancelButtonText:o,confirmButtonText:i,cancelBroadcast:a,confirmBroadcast:s,type:"reminder"}))}static async advanceCountdown(e,t,n){return await this.send(new r.AppNotification({title:n,message:e,targetTime:t,type:"advance-countdown"}))}static async countdown(e,t){var n;null===(n=i.ElectronUtils.getAPI())||void 0===n||n.invoke(o.Channel.NOTIFICATION,new r.AppNotification({message:e,targetTime:t,backgroundColor:"rgba(0,0,0,0.5)",duration:-1,type:"countdown"}))}static async success(e,t=5e3){var n;i.ElectronUtils.hasElectronApi()?null===(n=i.ElectronUtils.getAPI())||void 0===n||n.invoke(o.Channel.NOTIFICATION,new r.AppNotification({message:e,type:"success",icon:"check_circle_line",duration:t})):this.callback("success",e,t)}static async error(e,t=5e3){var n;i.ElectronUtils.hasElectronApi()?null===(n=i.ElectronUtils.getAPI())||void 0===n||n.invoke(o.Channel.NOTIFICATION,new r.AppNotification({message:e,type:"error",icon:"close_circle_line",duration:t})):this.callback("error",e,t)}static async warning(e,t=5e3){var n;i.ElectronUtils.hasElectronApi()?null===(n=i.ElectronUtils.getAPI())||void 0===n||n.invoke(o.Channel.NOTIFICATION,new r.AppNotification({message:e,type:"warning",icon:"warning_line",duration:t})):this.callback("warning",e,t)}static async info(e,t=5e3){var n;i.ElectronUtils.hasElectronApi()?null===(n=i.ElectronUtils.getAPI())||void 0===n||n.invoke(o.Channel.NOTIFICATION,new r.AppNotification({message:e,type:"info",icon:"information_line",duration:t})):this.callback("info",e,t)}static async hide(){var e;i.ElectronUtils.hasElectronApi()&&(null===(e=i.ElectronUtils.getAPI())||void 0===e||e.invoke(o.Channel.NOTIFICATION,null))}static setDebugNotification(e){this.callback=e}}},737:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetApi=void 0;const o=n(473),i=n(990),a=n(134),s=n(841),c=n(499),u=n(937),l=n(969),d=r(n(680));class f{static async registerWidgets(e){var t;await(null===(t=i.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(s.Channel.WIDGET,this.REGISTER_WIDGETS,JSON.stringify(e)))}static async registerWidgetPackage(e){var t;await(null===(t=i.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(s.Channel.WIDGET,this.REGISTER_WIDGET_PACKAGE,JSON.stringify(e)))}static async getWidgets(){var e;const t=await(null===(e=i.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(s.Channel.WIDGET,this.GET_WIDGETS)),n=[];if(t)for(const e of t)n.push(o.Widget.parseObject(e));return n}static async getWidgetPackages(){var e;return await(null===(e=i.ElectronUtils.getAPI())||void 0===e?void 0:e.invoke(s.Channel.WIDGET,this.GET_WIDGET_PACKAGES))}static async getWidget(e){var t;return o.Widget.parseObject(await(null===(t=i.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(s.Channel.WIDGET,this.GET_WIDGET,e)))}static async getWidgetPackage(e){var t;return a.WidgetPackage.parseObject(await(null===(t=i.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(s.Channel.WIDGET,this.GET_WIDGET_PACKAGE,e)))}static async getWidgetConfigUrl(e,t){const n=await this.getWidget(e);if(!n)return null;const r=n.getConfigRoute();if(!r)return null;const o=await this.getWidgetPackage(n.packageName);return o?c.UrlUtils.getWidgetUrl(r.url,o,t):null}static async getWidgetUrl(e,t){const n=await this.getWidget(e);if(!n)return null;const r=n.getIndexRoute(),o=await this.getWidgetPackage(n.packageName);return o?c.UrlUtils.getWidgetUrl(r.url,o,t):null}static async getWidgetPackageIndexUrl(e,t){const n=await this.getWidgetPackage(e);return n?n.getIndexUrl(t):null}static async getWidgetPackageUrl(e){const t=await this.getWidgetPackage(e);return t?t.url:null}static async saveDataByName(e,t={sendBroadcast:!0}){const n=this.getStore(e.name),r=JSON.stringify(e),o=await n.setItem(e.name,r);if(t.sendBroadcast){const n=new u.BroadcastEvent(u.BroadcastEvent.TYPE_WIDGET_UPDATED,"",{name:e.name,id:t.id,json:r});await l.BroadcastApi.sendBroadcastEvent(n)}return o}static getStore(e){if(this.stores.has(e))return this.stores.get(e);const t=d.default.createInstance({name:e});return this.stores.set(e,t),t}}t.WidgetApi=f,f.REGISTER_WIDGETS="register-widgets",f.REGISTER_WIDGET_PACKAGE="register-widget-package",f.GET_WIDGETS="get-widgets",f.GET_WIDGET="get-widget",f.GET_WIDGET_PACKAGE="get-widget-package",f.GET_WIDGET_PACKAGES="get-widget-packages",f.stores=new Map},755:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),o(n(473),t),o(n(937),t),o(n(681),t),o(n(450),t),o(n(758),t),o(n(31),t),o(n(995),t),o(n(726),t),o(n(386),t),o(n(594),t),o(n(442),t),o(n(134),t),o(n(295),t),o(n(630),t),o(n(194),t),o(n(671),t),o(n(717),t),o(n(766),t),o(n(394),t),o(n(841),t),o(n(989),t),o(n(737),t),o(n(913),t),o(n(969),t),o(n(445),t),o(n(24),t),o(n(990),t),o(n(499),t),o(n(821),t),o(n(806),t),o(n(82),t)},31:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.AppNotification=t.NotificationSize=void 0,function(e){e.SMALL="small",e.NORMAL="normal",e.LARGE="large"}(n=t.NotificationSize||(t.NotificationSize={})),t.AppNotification=class{constructor(e){var t,r,o,i,a;this.type="info",this.createdAt=(new Date).toISOString(),this.type=null!==(t=e.type)&&void 0!==t?t:"info",this.title=e.title,this.message=e.message,this.targetTime=e.targetTime,this.duration=null!==(r=e.duration)&&void 0!==r?r:5e3,this.icon=e.icon,this.color=null!==(o=e.color)&&void 0!==o?o:"#5D8AC8",this.confirmButtonText=e.confirmButtonText,this.cancelButtonText=e.cancelButtonText,this.cancelBroadcast=e.cancelBroadcast,this.confirmBroadcast=e.confirmBroadcast,this.size=null!==(i=e.size)&&void 0!==i?i:n.NORMAL,this.audio=e.audio,this.avatar=e.avatar,this.lyric=e.lyric,this.backgroundColor=null!==(a=e.backgroundColor)&&void 0!==a?a:"#000000"}}},995:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.HostedMode=void 0,(n=t.HostedMode||(t.HostedMode={}))[n.NORMAL=1]="NORMAL",n[n.OVERLAP=16]="OVERLAP",n[n.WALLPAPER=256]="WALLPAPER",n[n.SCREEN=4096]="SCREEN",n[n.BACKGROUND=65536]="BACKGROUND",n[n.ALL=69905]="ALL"},726:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HostedWidget=void 0;const r=n(995);t.HostedWidget=class{constructor(){this.x=0,this.y=0}isOverlap(){return(this.hostedMode&r.HostedMode.OVERLAP)>0}}},473:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetKeyword=t.Widget=void 0;const r=n(995);class o{constructor(e){var t,n,o,i,a,s,c,u,l;this.lang="zh",this.name=e.name,this.title=e.title,this.description=e.description,this.keywords=e.keywords,this.lang=e.lang,this.width=e.width,this.height=e.height,this.movable=null===(t=e.movable)||void 0===t||t,this.permissions=null!==(n=e.permissions)&&void 0!==n?n:[],this.maxWidth=null!==(o=e.maxWidth)&&void 0!==o?o:e.width,this.maxHeight=null!==(i=e.maxHeight)&&void 0!==i?i:e.height,this.minWidth=null!==(a=e.minWidth)&&void 0!==a?a:e.width,this.minHeight=null!==(s=e.minHeight)&&void 0!==s?s:e.height,this.backgroundThrottling=null===(c=e.backgroundThrottling)||void 0===c||c,this.packageName=e.packageName,this.previewImage=e.previewImage,this.shortcut=e.shortcut,this.refreshWhenResided=null!==(u=e.refreshWhenResided)&&void 0!==u&&u,this.hideWhenBlur=null!=e.hideWhenBlur&&e.hideWhenBlur,this.supportHostedMode=null!==(l=e.supportHostedMode)&&void 0!==l?l:r.HostedMode.NORMAL|r.HostedMode.OVERLAP,this.routes=e.routes}getIndexRoute(){return this.routes.find((e=>"index"==e.name.toLowerCase()))}getConfigRoute(){return this.routes.find((e=>"config"==e.name.toLowerCase()))}isConfigurable(){return null!=this.getConfigRoute()}getTitle(e){var t;return e&&null!==(t=this.title[e])&&void 0!==t?t:this.title[this.lang]}getDescription(e){return e?this.description[e]:this.description[this.lang]}static parseJSON(e){const t=JSON.parse(e);return this.parseObject(t)}static parseObject(e){let t=new o({description:{},height:0,keywords:[],lang:"",name:"",routes:[],title:{},width:0});return Object.assign(t,e),t}isSupportOverlap(){return(this.supportHostedMode&r.HostedMode.OVERLAP)>0}isResizable(){return!(this.minWidth==this.width&&this.maxWidth==this.width&&this.minHeight==this.height&&this.maxHeight==this.height)}isSupportBackground(){return(this.supportHostedMode&r.HostedMode.BACKGROUND)>0}isSupportNormal(){return(this.supportHostedMode&r.HostedMode.NORMAL)>0}isSupportWallpaper(){return(this.supportHostedMode&r.HostedMode.WALLPAPER)>0}isSupportScreen(){return(this.supportHostedMode&r.HostedMode.SCREEN)>0}}var i;t.Widget=o,(i=t.WidgetKeyword||(t.WidgetKeyword={})).RECOMMEND="recommend",i.TOOLS="tools",i.EFFICIENCY="efficiency",i.PICTURE="picture",i.LIFE="life",i.SHORTCUT="shortcut",i.COUNTDOWN="countdown",i.TIMER="timer",i.INFO="info",i.DASHBOARD="dashboard"},450:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetData=void 0,t.WidgetData=class{constructor(e,t){this.id=t,this.name=e}parseJSON(e){Object.assign(this,e)}}},134:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetPackage=void 0;const r=n(499);class o{constructor(){this.hash=!0}static parseJSON(e){const t=JSON.parse(e);return this.parseObject(t)}static parseObject(e){let t=new o;return Object.assign(t,e),t}getIndexUrl(e){return r.UrlUtils.getWidgetPackageIndexUrl(this.url,this.entry,null==e?this.hash:e)}}t.WidgetPackage=o},758:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeMode=t.WidgetParams=void 0;const r=n(821),o=n(94);class i{toUrlParams(){const e=new URLSearchParams,t=Object.getOwnPropertyNames(this);for(let n of t){const t=this[n];t&&e.append(i.PARAM_PREFIX+(0,o.snakeCase)(n),t.toString())}return e}getPersistKey(){return`${this.name}-${this.id}`}static fromCurrentLocation(){let e=window.location.href.split("?");if(e.length>1){let t=e[1];return this.fromObject((0,r.parseQuery)(t))}return new i}static fromLocation(e){let t=e.split("?");if(t.length>1){let e=t[1];return this.fromObject((0,r.parseQuery)(e))}return new i}static setValue(e,t,n){const r=t.replace(this.PARAM_PREFIX,"");r==i.PARAM_ID?e.id=n:r==i.PARAM_X?e.x=parseInt(n):r==i.PARAM_Y?e.y=parseInt(n):r==i.PARAM_HEIGHT?e.height=parseInt(n):r==i.PARAM_WIDTH?e.width=parseInt(n):r==i.PARAM_LANG?e.lang=n:r==i.PARAM_THEME?e.theme=n:r==i.PARAM_MODE?e.mode=parseInt(n):r==i.PARAM_RADIUS?e.radius=parseInt(n):r==i.PARAM_WIDTH_PX?e.widthPx=parseInt(n):r==i.PARAM_HEIGHT_PX?e.heightPx=parseInt(n):r==i.PARAM_NAME?e.name=n:r==i.PARAM_TITLE?e.title=n:r==i.PARAM_PREVIEW&&(e.preview="true"===n)}static fromObject(e){const t=new i,n=Object.getOwnPropertyNames(e);for(let r of n){const n=r,o=e[n];this.setValue(t,n,o)}return t}}var a;t.WidgetParams=i,i.PARAM_PREFIX="w_",i.PARAM_ID="id",i.PARAM_WIDTH="width",i.PARAM_HEIGHT="height",i.PARAM_WIDTH_PX="width_px",i.PARAM_HEIGHT_PX="height_px",i.PARAM_X="x",i.PARAM_Y="y",i.PARAM_LANG="lang",i.PARAM_THEME="theme",i.PARAM_MODE="mode",i.PARAM_RADIUS="radius",i.PARAM_NAME="name",i.PARAM_TITLE="title",i.PARAM_PREVIEW="preview",i.PARAMS=[i.PARAM_ID,i.PARAM_WIDTH,i.PARAM_HEIGHT,i.PARAM_X,i.PARAM_Y,i.PARAM_LANG,i.PARAM_THEME,i.PARAM_MODE,i.PARAM_WIDTH_PX,i.PARAM_HEIGHT_PX,i.PARAM_NAME,i.PARAM_TITLE,i.PARAM_PREVIEW],(a=t.ThemeMode||(t.ThemeMode={})).AUTO="auto",a.LIGHT="LIGHT",a.DARK="DARK"},442:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},937:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BroadcastEvent=void 0;class n{constructor(e,t,n){this.type=e,this.from=t,this.payload=n}}t.BroadcastEvent=n,n.TYPE_WIDGET_UPDATED="broadcast::cn.widgetjs.core.widget_updated",n.TYPE_APP_CONFIG_UPDATED="broadcast::cn.widgetjs.core.app_config_updated",n.TYPE_THEME_CHANGED="broadcast::cn.widgetjs.core.theme_changed",n.TYPE_EDIT_DESKTOP_WIDGETS="broadcast::cn.widgetjs.core.edit_desktop_widgets"},594:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},681:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WebSocketEvent=t.WebSocketEventType=void 0,(t.WebSocketEventType||(t.WebSocketEventType={})).RESISTER_WIDGETS="ws::cn.widgetjs.core.resister_widgets",t.WebSocketEvent=class{constructor(e,t){this.type=e,this.payload=t}}},386:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},82:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},630:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetDataRepository=void 0;const o=r(n(680)),i=n(937),a=n(969);class s{static async save(e){let t=this.getStore(e.name);const n=await t.setItem(this.getKey(e.name,e.id),JSON.stringify(e)),r=new i.BroadcastEvent(i.BroadcastEvent.TYPE_WIDGET_UPDATED,"",e);return await a.BroadcastApi.sendBroadcastEvent(r),n}static getStore(e){if(this.stores.has(e))return this.stores.get(e);const t=o.default.createInstance({name:e});return this.stores.set(e,t),t}static async saveByName(e){const t=this.getStore(e.name),n=JSON.stringify(e),r=await t.setItem(e.name,n),o=new i.BroadcastEvent(i.BroadcastEvent.TYPE_WIDGET_UPDATED,"",{name:e.name,json:n});return await a.BroadcastApi.sendBroadcastEvent(o),r}static async findByName(e,t){let n=this.getStore(e),r=await n.getItem(e);if(r){const n=new t(e);return n.parseJSON(JSON.parse(r)),n}}static async find(e,t,n){let r=this.getStore(e),o=await r.getItem(this.getKey(e,t));if(o){const r=new n(e,t);return r.parseJSON(JSON.parse(o)),r}}static getKey(e,t){return`${e}@${t}`}}t.WidgetDataRepository=s,s.stores=new Map},733:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decode=t.encodeParam=t.encodePath=t.encodeQueryKey=t.encodeQueryValue=t.encodeHash=t.PLUS_RE=void 0;const n=/#/g,r=/&/g,o=/\//g,i=/=/g,a=/\?/g;t.PLUS_RE=/\+/g;const s=/%5B/g,c=/%5D/g,u=/%5E/g,l=/%60/g,d=/%7B/g,f=/%7C/g,h=/%7D/g,v=/%20/g;function p(e){return encodeURI(""+e).replace(f,"|").replace(s,"[").replace(c,"]")}function g(e){return p(e).replace(t.PLUS_RE,"%2B").replace(v,"+").replace(n,"%23").replace(r,"%26").replace(l,"`").replace(d,"{").replace(h,"}").replace(u,"^")}function _(e){return p(e).replace(n,"%23").replace(a,"%3F")}t.encodeHash=function(e){return p(e).replace(d,"{").replace(h,"}").replace(u,"^")},t.encodeQueryValue=g,t.encodeQueryKey=function(e){return g(e).replace(i,"%3D")},t.encodePath=_,t.encodeParam=function(e){return null==e?"":_(e).replace(o,"%2F")},t.decode=function(e){try{return decodeURIComponent(""+e)}catch(e){}return""+e}},821:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stringifyQuery=t.parseQuery=void 0;const r=n(733),o=Array.isArray;t.parseQuery=function(e){const t={};if(""===e||"?"===e)return t;const n=("?"===e[0]?e.slice(1):e).split("&");for(let e=0;e<n.length;++e){const i=n[e].replace(r.PLUS_RE," "),a=i.indexOf("="),s=(0,r.decode)(a<0?i:i.slice(0,a)),c=a<0?null:(0,r.decode)(i.slice(a+1));if(s in t){let e=t[s];o(e)||(e=t[s]=[e]),e.push(c)}else t[s]=c}return t},t.stringifyQuery=function(e){let t="";for(let n in e){const i=e[n];(n=(0,r.encodeQueryKey)(n),null!=i)?(o(i)?i.map((e=>e&&(0,r.encodeQueryValue)(e))):[i&&(0,r.encodeQueryValue)(i)]).forEach((e=>{void 0!==e&&(t+=(t.length?"&":"")+n,null!=e&&(t+="="+e))})):void 0!==i&&(t+=(t.length?"&":"")+n)}return t}},990:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ElectronUtils=void 0,t.ElectronUtils=class{static hasElectronApi(){return null!=this.getAPI()}static getAPI(){return Reflect.has(window,"electronAPI")?window.electronAPI:Reflect.has(window.parent,"electronAPI")?window.parent.electronAPI:null}static async invoke(e,t,...n){var r;return null===(r=this.getAPI())||void 0===r?void 0:r.invoke(e,t,...n)}}},499:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UrlUtils=void 0,t.UrlUtils=class{static getWidgetUrl(e,t,n){let r="";return r=e.startsWith("http")?e:t.getIndexUrl()+e,r.includes("?")?r+"&"+n.toUrlParams().toString():r+"?"+n.toUrlParams().toString()}static getWidgetPackageIndexUrl(e,t,n){const r=[e];return e.startsWith("http")?n&&r.push(e.endsWith("/")?"#":"/#"):(r.push(t.startsWith("/")?t:`/${t}`),n&&r.push(e.endsWith("#")?"":"#")),r.join("")}}}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}return n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(755)})()));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@widget-js/core",
3
- "version": "0.1.27",
3
+ "version": "0.1.31",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -43,9 +43,11 @@
43
43
  "@types/jest": "^29.2.3",
44
44
  "@types/urijs": "^1.19.19",
45
45
  "babel-core": "^6.26.3",
46
+ "electron": "^23.2.0",
46
47
  "husky": "^8.0.2",
47
48
  "jest": "^29.3.1",
48
49
  "pinst": "^3.0.0",
50
+ "rimraf": "^4.4.1",
49
51
  "ts-jest": "^29.0.3",
50
52
  "ts-loader": "^9.4.1",
51
53
  "typescript": "^4.9.3",
@@ -1,16 +0,0 @@
1
- export interface AppKeyboardEvent {
2
- scanCode: number;
3
- timestamp: number;
4
- isKeyDown: boolean;
5
- isKeyUp: boolean;
6
- isExtendedKey: boolean;
7
- alt: boolean;
8
- control: boolean;
9
- handled: boolean;
10
- keyCode: number;
11
- keyValue: number;
12
- keyData: number;
13
- modifiers: number;
14
- shift: boolean;
15
- suppressKeyPress: boolean;
16
- }