@widget-js/core 0.1.13 → 0.1.15

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.
@@ -5,10 +5,12 @@ 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
- await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.APP, this.SET_CONFIG, 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));
9
10
  }
10
11
  static async getConfig(key, defaultValue) {
11
- const value = await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.APP, this.GET_CONFIG, key);
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));
12
14
  if (value === null || value === undefined) {
13
15
  return defaultValue;
14
16
  }
@@ -18,10 +20,12 @@ class AppApi {
18
20
  return value;
19
21
  }
20
22
  static openAddWidgetWindow() {
21
- ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.APP, this.OPEN_ADD_WIDGET_WINDOW);
23
+ var _a;
24
+ (_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.APP, this.OPEN_ADD_WIDGET_WINDOW);
22
25
  }
23
26
  static openSettingWindow() {
24
- ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.APP, this.OPEN_SETTING_WINDOW);
27
+ var _a;
28
+ (_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.APP, this.OPEN_SETTING_WINDOW);
25
29
  }
26
30
  }
27
31
  exports.AppApi = AppApi;
@@ -6,7 +6,8 @@ const Channel_1 = require("./Channel");
6
6
  const ElectronApi_1 = require("./ElectronApi");
7
7
  class BroadcastApi {
8
8
  static async sendBroadcastEvent(event) {
9
- await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.BROADCAST, JSON.stringify(event));
9
+ var _a;
10
+ await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROADCAST, JSON.stringify(event)));
10
11
  }
11
12
  static async registerBroadcast(callback) {
12
13
  await ElectronApi_1.ElectronApi.addIpcListener(Channel_1.Channel.BROADCAST, (json) => {
@@ -5,19 +5,24 @@ const Channel_1 = require("./Channel");
5
5
  const ElectronUtils_1 = require("../utils/ElectronUtils");
6
6
  class BrowserWindowApi {
7
7
  static async setIgnoreMouseEvent(ignore) {
8
- await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.BROWSER_WINDOW, this.IGNORE_MOUSE_EVENT, 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));
9
10
  }
10
11
  static async setWindowVisibility(show) {
11
- await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.BROWSER_WINDOW, this.WINDOW_VISIBILITY, 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, show));
12
14
  }
13
15
  static async setAlwaysOnTop(alwaysOnTop) {
14
- await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.BROWSER_WINDOW, this.ALWAYS_ON_TOP, alwaysOnTop);
16
+ var _a;
17
+ await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.ALWAYS_ON_TOP, alwaysOnTop));
15
18
  }
16
19
  static async isAlwaysOnTop() {
17
- return await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.BROWSER_WINDOW, this.IS_ALWAYS_ON_TOP);
20
+ var _a;
21
+ 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));
18
22
  }
19
23
  static async openUrl(url) {
20
- await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.BROWSER_WINDOW, this.OPEN_URL, url);
24
+ var _a;
25
+ await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.OPEN_URL, url));
21
26
  }
22
27
  /**
23
28
  * 设置窗口位置
@@ -26,23 +31,36 @@ class BrowserWindowApi {
26
31
  * @param animation 动画只在mac系统有效
27
32
  */
28
33
  static async setPosition(x, y, animation) {
29
- await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.BROWSER_WINDOW, this.SET_POSITION, x, y, animation);
34
+ var _a;
35
+ 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));
30
36
  }
31
37
  static async getPosition() {
32
- return await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.BROWSER_WINDOW, this.GET_POSITION);
38
+ var _a;
39
+ return await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.GET_POSITION));
33
40
  }
34
41
  static async blur() {
35
- return await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.BROWSER_WINDOW, this.BLUR);
42
+ var _a;
43
+ return await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.BLUR));
36
44
  }
37
45
  static async focus() {
38
- return await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.BROWSER_WINDOW, this.FOCUS);
46
+ var _a;
47
+ return await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.FOCUS));
39
48
  }
40
49
  /**
41
50
  * 设置窗口是否可以拉伸
42
51
  * @param resizable
43
52
  */
44
53
  static async setResizable(resizable) {
45
- return await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.BROWSER_WINDOW, this.SET_RESIZABLE, resizable);
54
+ var _a;
55
+ return await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.SET_RESIZABLE, resizable));
56
+ }
57
+ static async getBounds() {
58
+ var _a;
59
+ return await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.BROWSER_WINDOW, this.GET_BOUNDS));
60
+ }
61
+ static async setBounds(bounds, animate) {
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.SET_BOUNDS, bounds, animate));
46
64
  }
47
65
  }
48
66
  exports.BrowserWindowApi = BrowserWindowApi;
@@ -56,3 +74,5 @@ BrowserWindowApi.GET_POSITION = "get-position";
56
74
  BrowserWindowApi.BLUR = "blur";
57
75
  BrowserWindowApi.FOCUS = "focus";
58
76
  BrowserWindowApi.SET_RESIZABLE = "set-resizable";
77
+ BrowserWindowApi.GET_BOUNDS = "get-bounds";
78
+ BrowserWindowApi.SET_BOUNDS = "set-bounds";
@@ -9,7 +9,8 @@ class DialogApi {
9
9
  * @param extensions 允许的文件后缀格式,如:["txt","docx","gif"]
10
10
  */
11
11
  static async pickFile(extensions) {
12
- return await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.DIALOG, this.PICK_FILE, extensions);
12
+ var _a;
13
+ return await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.DIALOG, this.PICK_FILE, extensions));
13
14
  }
14
15
  }
15
16
  exports.DialogApi = DialogApi;
@@ -4,10 +4,12 @@ exports.ElectronApi = void 0;
4
4
  const ElectronUtils_1 = require("../utils/ElectronUtils");
5
5
  class ElectronApi {
6
6
  static async addIpcListener(key, f) {
7
- await ElectronUtils_1.ElectronUtils.getAPI().addIpcListener(key, f);
7
+ var _a;
8
+ await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.addIpcListener(key, f));
8
9
  }
9
10
  static async removeIpcListener(key) {
10
- await ElectronUtils_1.ElectronUtils.getAPI().removeIpcListener(key);
11
+ var _a;
12
+ await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.removeIpcListener(key));
11
13
  }
12
14
  }
13
15
  exports.ElectronApi = ElectronApi;
@@ -6,7 +6,8 @@ const Channel_1 = require("./Channel");
6
6
  const ElectronUtils_1 = require("../utils/ElectronUtils");
7
7
  class NotificationApi {
8
8
  static async call(duration = 5000) {
9
- ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.NOTIFICATION, new Notification_1.Notification({
9
+ var _a;
10
+ (_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.NOTIFICATION, new Notification_1.Notification({
10
11
  title: "章鱼哥",
11
12
  type: "call",
12
13
  message: "下班提醒",
@@ -14,7 +15,8 @@ class NotificationApi {
14
15
  }));
15
16
  }
16
17
  static async advanceCountdown(message, targetTime, title) {
17
- ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.NOTIFICATION, new Notification_1.Notification({
18
+ var _a;
19
+ (_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.NOTIFICATION, new Notification_1.Notification({
18
20
  title,
19
21
  message,
20
22
  targetTime,
@@ -22,15 +24,17 @@ class NotificationApi {
22
24
  }));
23
25
  }
24
26
  static async countdown(message, targetTime) {
25
- ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.NOTIFICATION, new Notification_1.Notification({
27
+ var _a;
28
+ (_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.NOTIFICATION, new Notification_1.Notification({
26
29
  message,
27
30
  targetTime,
28
31
  type: "countdown"
29
32
  }));
30
33
  }
31
34
  static async success(message, duration = 5000) {
35
+ var _a;
32
36
  if (ElectronUtils_1.ElectronUtils.hasElectronApi()) {
33
- ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.NOTIFICATION, new Notification_1.Notification({
37
+ (_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.NOTIFICATION, new Notification_1.Notification({
34
38
  message,
35
39
  type: "success",
36
40
  duration
@@ -41,8 +45,9 @@ class NotificationApi {
41
45
  }
42
46
  }
43
47
  static async error(message, duration = 5000) {
48
+ var _a;
44
49
  if (ElectronUtils_1.ElectronUtils.hasElectronApi()) {
45
- ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.NOTIFICATION, new Notification_1.Notification({
50
+ (_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.NOTIFICATION, new Notification_1.Notification({
46
51
  message,
47
52
  type: "error",
48
53
  duration
@@ -53,8 +58,9 @@ class NotificationApi {
53
58
  }
54
59
  }
55
60
  static async warning(message, duration = 5000) {
61
+ var _a;
56
62
  if (ElectronUtils_1.ElectronUtils.hasElectronApi()) {
57
- ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.NOTIFICATION, new Notification_1.Notification({
63
+ (_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.NOTIFICATION, new Notification_1.Notification({
58
64
  message,
59
65
  type: "warning",
60
66
  duration
@@ -65,8 +71,9 @@ class NotificationApi {
65
71
  }
66
72
  }
67
73
  static async message(message, duration = 5000) {
74
+ var _a;
68
75
  if (ElectronUtils_1.ElectronUtils.hasElectronApi()) {
69
- ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.NOTIFICATION, new Notification_1.Notification({
76
+ (_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.NOTIFICATION, new Notification_1.Notification({
70
77
  message,
71
78
  type: "message",
72
79
  duration
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.WidgetApi = void 0;
4
7
  const Widget_1 = require("../model/Widget");
@@ -6,15 +9,21 @@ const ElectronUtils_1 = require("../utils/ElectronUtils");
6
9
  const WidgetPackage_1 = require("../model/WidgetPackage");
7
10
  const Channel_1 = require("./Channel");
8
11
  const UrlUtils_1 = require("../utils/UrlUtils");
12
+ const BroadcastEvent_1 = require("../model/event/BroadcastEvent");
13
+ const BroadcastApi_1 = require("./BroadcastApi");
14
+ const localforage_1 = __importDefault(require("localforage"));
9
15
  class WidgetApi {
10
16
  static async registerWidgets(widgets) {
11
- await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.WIDGET, this.REGISTER_WIDGETS, JSON.stringify(widgets));
17
+ var _a;
18
+ await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.WIDGET, this.REGISTER_WIDGETS, JSON.stringify(widgets)));
12
19
  }
13
20
  static async registerWidgetPackage(widgetPackage) {
14
- await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.WIDGET, this.REGISTER_WIDGET_PACKAGE, JSON.stringify(widgetPackage));
21
+ var _a;
22
+ await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.WIDGET, this.REGISTER_WIDGET_PACKAGE, JSON.stringify(widgetPackage)));
15
23
  }
16
24
  static async getWidgets() {
17
- const data = await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.WIDGET, this.GET_WIDGETS);
25
+ var _a;
26
+ const data = await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.WIDGET, this.GET_WIDGETS));
18
27
  const widgets = [];
19
28
  if (data) {
20
29
  const arr = JSON.parse(data);
@@ -25,28 +34,32 @@ class WidgetApi {
25
34
  return widgets;
26
35
  }
27
36
  static async getWidgetPackages() {
28
- return await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.WIDGET, this.GET_WIDGET_PACKAGES);
37
+ var _a;
38
+ return await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.WIDGET, this.GET_WIDGET_PACKAGES));
29
39
  }
30
40
  /**
31
41
  *
32
42
  * @param name package name
33
43
  */
34
44
  static async getWidget(name) {
35
- return Widget_1.Widget.parseObject(await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.WIDGET, this.GET_WIDGET, name));
45
+ var _a;
46
+ return Widget_1.Widget.parseObject(await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.WIDGET, this.GET_WIDGET, name)));
36
47
  }
37
48
  /**
38
49
  *
39
50
  * @param name package name
40
51
  */
41
52
  static async getWidgetPackage(name) {
42
- return WidgetPackage_1.WidgetPackage.parseObject(await ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.WIDGET, this.GET_WIDGET_PACKAGE, name));
53
+ var _a;
54
+ return WidgetPackage_1.WidgetPackage.parseObject(await ((_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.WIDGET, this.GET_WIDGET_PACKAGE, name)));
43
55
  }
44
56
  /**
45
57
  * 移除组件
46
58
  * @param id
47
59
  */
48
60
  static async removeHostedWidget(id) {
49
- return ElectronUtils_1.ElectronUtils.getAPI().invoke(Channel_1.Channel.WIDGET, this.REMOVE_HOSTED_WIDGET, id);
61
+ var _a;
62
+ return (_a = ElectronUtils_1.ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel_1.Channel.WIDGET, this.REMOVE_HOSTED_WIDGET, id);
50
63
  }
51
64
  /**
52
65
  * 获取组件配置地址
@@ -61,6 +74,37 @@ class WidgetApi {
61
74
  return null;
62
75
  return UrlUtils_1.UrlUtils.getWidgetUrl(widget.configUrl, widgetPackage, widgetParams);
63
76
  }
77
+ /**
78
+ * 通过组件名保存组件信息,通常用于存储可以在同类组件中共用的数据
79
+ * @param data
80
+ * @param options
81
+ */
82
+ static async saveDataByName(data, options = { sendBroadcast: true }) {
83
+ const store = this.getStore(data.name);
84
+ const json = JSON.stringify(data);
85
+ const result = await store.setItem(data.name, json);
86
+ if (options.sendBroadcast) {
87
+ const broadcastEvent = new BroadcastEvent_1.BroadcastEvent(BroadcastEvent_1.BroadcastEvent.TYPE_WIDGET_UPDATED, "", {
88
+ name: data.name,
89
+ id: options.id,
90
+ json
91
+ });
92
+ await BroadcastApi_1.BroadcastApi.sendBroadcastEvent(broadcastEvent);
93
+ }
94
+ return result;
95
+ }
96
+ /**
97
+ * 获取组件 LocalForage 存储实例
98
+ * @param name
99
+ */
100
+ static getStore(name) {
101
+ if (this.stores.has(name)) {
102
+ return this.stores.get(name);
103
+ }
104
+ const store = localforage_1.default.createInstance({ name: name });
105
+ this.stores.set(name, store);
106
+ return store;
107
+ }
64
108
  }
65
109
  exports.WidgetApi = WidgetApi;
66
110
  WidgetApi.REGISTER_WIDGETS = "register-widgets";
@@ -70,3 +114,4 @@ WidgetApi.GET_WIDGET = "get-widget";
70
114
  WidgetApi.GET_WIDGET_PACKAGE = "get-widget-package";
71
115
  WidgetApi.GET_WIDGET_PACKAGES = "get-widget-packages";
72
116
  WidgetApi.REMOVE_HOSTED_WIDGET = "remove-hosted-widget";
117
+ WidgetApi.stores = new Map();
package/dist/cjs/index.js CHANGED
@@ -21,6 +21,7 @@ __exportStar(require("./model/WidgetData"), exports);
21
21
  __exportStar(require("./model/WidgetParams"), exports);
22
22
  __exportStar(require("./model/Notification"), exports);
23
23
  __exportStar(require("./model/HostedMode"), exports);
24
+ __exportStar(require("./model/interface/Rectangle"), exports);
24
25
  __exportStar(require("./model/WidgetPackage"), exports);
25
26
  __exportStar(require("./api/ElectronApi"), exports);
26
27
  __exportStar(require("./repository/WidgetDataRepository"), exports);
@@ -10,6 +10,7 @@ class Notification {
10
10
  this.message = option.message;
11
11
  this.targetTime = option.targetTime;
12
12
  this.duration = (_b = option.duration) !== null && _b !== void 0 ? _b : 5000;
13
+ this.icon = option.icon;
13
14
  }
14
15
  }
15
16
  exports.Notification = Notification;
@@ -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;
7
+ var _a, _b, _c, _d, _e, _f, _g;
8
8
  /**
9
9
  * 组件默认语言
10
10
  */
@@ -23,8 +23,9 @@ class Widget {
23
23
  this.url = options.url;
24
24
  this.packageName = options.packageName;
25
25
  this.configUrl = options.configUrl;
26
- this.extraUrl = (_e = options.extraUrl) !== null && _e !== void 0 ? _e : {};
27
- this.supportHostedMode = (_f = options.supportHostedMode) !== null && _f !== void 0 ? _f : HostedMode_1.HostedMode.NORMAL | HostedMode_1.HostedMode.OVERLAP;
26
+ this.refreshWhenResided = (_e = options.refreshWhenResided) !== null && _e !== void 0 ? _e : false;
27
+ this.extraUrl = (_f = options.extraUrl) !== null && _f !== void 0 ? _f : {};
28
+ this.supportHostedMode = (_g = options.supportHostedMode) !== null && _g !== void 0 ? _g : HostedMode_1.HostedMode.NORMAL | HostedMode_1.HostedMode.OVERLAP;
28
29
  }
29
30
  /**
30
31
  * 获取组件标题
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -2,10 +2,12 @@ import { ElectronUtils } from "../utils/ElectronUtils";
2
2
  import { Channel } from "./Channel";
3
3
  export class AppApi {
4
4
  static async setConfig(key, value) {
5
- await ElectronUtils.getAPI().invoke(Channel.APP, this.SET_CONFIG, 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));
6
7
  }
7
8
  static async getConfig(key, defaultValue) {
8
- const value = await ElectronUtils.getAPI().invoke(Channel.APP, this.GET_CONFIG, key);
9
+ var _a;
10
+ const value = await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.APP, this.GET_CONFIG, key));
9
11
  if (value === null || value === undefined) {
10
12
  return defaultValue;
11
13
  }
@@ -15,10 +17,12 @@ export class AppApi {
15
17
  return value;
16
18
  }
17
19
  static openAddWidgetWindow() {
18
- ElectronUtils.getAPI().invoke(Channel.APP, this.OPEN_ADD_WIDGET_WINDOW);
20
+ var _a;
21
+ (_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.APP, this.OPEN_ADD_WIDGET_WINDOW);
19
22
  }
20
23
  static openSettingWindow() {
21
- ElectronUtils.getAPI().invoke(Channel.APP, this.OPEN_SETTING_WINDOW);
24
+ var _a;
25
+ (_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.APP, this.OPEN_SETTING_WINDOW);
22
26
  }
23
27
  }
24
28
  AppApi.SET_CONFIG = "SET_CONFIG";
@@ -3,7 +3,8 @@ import { Channel } from "./Channel";
3
3
  import { ElectronApi } from "./ElectronApi";
4
4
  export class BroadcastApi {
5
5
  static async sendBroadcastEvent(event) {
6
- await ElectronUtils.getAPI().invoke(Channel.BROADCAST, JSON.stringify(event));
6
+ var _a;
7
+ await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROADCAST, JSON.stringify(event)));
7
8
  }
8
9
  static async registerBroadcast(callback) {
9
10
  await ElectronApi.addIpcListener(Channel.BROADCAST, (json) => {
@@ -2,19 +2,24 @@ import { Channel } from "./Channel";
2
2
  import { ElectronUtils } from "../utils/ElectronUtils";
3
3
  export class BrowserWindowApi {
4
4
  static async setIgnoreMouseEvent(ignore) {
5
- await ElectronUtils.getAPI().invoke(Channel.BROWSER_WINDOW, this.IGNORE_MOUSE_EVENT, 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));
6
7
  }
7
8
  static async setWindowVisibility(show) {
8
- await ElectronUtils.getAPI().invoke(Channel.BROWSER_WINDOW, this.WINDOW_VISIBILITY, show);
9
+ var _a;
10
+ await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.WINDOW_VISIBILITY, show));
9
11
  }
10
12
  static async setAlwaysOnTop(alwaysOnTop) {
11
- await ElectronUtils.getAPI().invoke(Channel.BROWSER_WINDOW, this.ALWAYS_ON_TOP, alwaysOnTop);
13
+ var _a;
14
+ await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.ALWAYS_ON_TOP, alwaysOnTop));
12
15
  }
13
16
  static async isAlwaysOnTop() {
14
- return await ElectronUtils.getAPI().invoke(Channel.BROWSER_WINDOW, this.IS_ALWAYS_ON_TOP);
17
+ var _a;
18
+ return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.IS_ALWAYS_ON_TOP));
15
19
  }
16
20
  static async openUrl(url) {
17
- await ElectronUtils.getAPI().invoke(Channel.BROWSER_WINDOW, this.OPEN_URL, url);
21
+ var _a;
22
+ await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.OPEN_URL, url));
18
23
  }
19
24
  /**
20
25
  * 设置窗口位置
@@ -23,23 +28,36 @@ export class BrowserWindowApi {
23
28
  * @param animation 动画只在mac系统有效
24
29
  */
25
30
  static async setPosition(x, y, animation) {
26
- await ElectronUtils.getAPI().invoke(Channel.BROWSER_WINDOW, this.SET_POSITION, x, y, animation);
31
+ var _a;
32
+ await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.SET_POSITION, x, y, animation));
27
33
  }
28
34
  static async getPosition() {
29
- return await ElectronUtils.getAPI().invoke(Channel.BROWSER_WINDOW, this.GET_POSITION);
35
+ var _a;
36
+ return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.GET_POSITION));
30
37
  }
31
38
  static async blur() {
32
- return await ElectronUtils.getAPI().invoke(Channel.BROWSER_WINDOW, this.BLUR);
39
+ var _a;
40
+ return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.BLUR));
33
41
  }
34
42
  static async focus() {
35
- return await ElectronUtils.getAPI().invoke(Channel.BROWSER_WINDOW, this.FOCUS);
43
+ var _a;
44
+ return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.FOCUS));
36
45
  }
37
46
  /**
38
47
  * 设置窗口是否可以拉伸
39
48
  * @param resizable
40
49
  */
41
50
  static async setResizable(resizable) {
42
- return await ElectronUtils.getAPI().invoke(Channel.BROWSER_WINDOW, this.SET_RESIZABLE, resizable);
51
+ var _a;
52
+ return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.SET_RESIZABLE, resizable));
53
+ }
54
+ static async getBounds() {
55
+ var _a;
56
+ return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.GET_BOUNDS));
57
+ }
58
+ static async setBounds(bounds, animate) {
59
+ var _a;
60
+ return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.BROWSER_WINDOW, this.SET_BOUNDS, bounds, animate));
43
61
  }
44
62
  }
45
63
  BrowserWindowApi.IGNORE_MOUSE_EVENT = "ignore-mouse-event";
@@ -52,3 +70,5 @@ BrowserWindowApi.GET_POSITION = "get-position";
52
70
  BrowserWindowApi.BLUR = "blur";
53
71
  BrowserWindowApi.FOCUS = "focus";
54
72
  BrowserWindowApi.SET_RESIZABLE = "set-resizable";
73
+ BrowserWindowApi.GET_BOUNDS = "get-bounds";
74
+ BrowserWindowApi.SET_BOUNDS = "set-bounds";
@@ -6,7 +6,8 @@ export class DialogApi {
6
6
  * @param extensions 允许的文件后缀格式,如:["txt","docx","gif"]
7
7
  */
8
8
  static async pickFile(extensions) {
9
- return await ElectronUtils.getAPI().invoke(Channel.DIALOG, this.PICK_FILE, extensions);
9
+ var _a;
10
+ return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.DIALOG, this.PICK_FILE, extensions));
10
11
  }
11
12
  }
12
13
  DialogApi.PICK_FILE = "pick-file";
@@ -1,9 +1,11 @@
1
1
  import { ElectronUtils } from "../utils/ElectronUtils";
2
2
  export class ElectronApi {
3
3
  static async addIpcListener(key, f) {
4
- await ElectronUtils.getAPI().addIpcListener(key, f);
4
+ var _a;
5
+ await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.addIpcListener(key, f));
5
6
  }
6
7
  static async removeIpcListener(key) {
7
- await ElectronUtils.getAPI().removeIpcListener(key);
8
+ var _a;
9
+ await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.removeIpcListener(key));
8
10
  }
9
11
  }
@@ -3,7 +3,8 @@ import { Channel } from "./Channel";
3
3
  import { ElectronUtils } from "../utils/ElectronUtils";
4
4
  export class NotificationApi {
5
5
  static async call(duration = 5000) {
6
- ElectronUtils.getAPI().invoke(Channel.NOTIFICATION, new Notification({
6
+ var _a;
7
+ (_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.NOTIFICATION, new Notification({
7
8
  title: "章鱼哥",
8
9
  type: "call",
9
10
  message: "下班提醒",
@@ -11,7 +12,8 @@ export class NotificationApi {
11
12
  }));
12
13
  }
13
14
  static async advanceCountdown(message, targetTime, title) {
14
- ElectronUtils.getAPI().invoke(Channel.NOTIFICATION, new Notification({
15
+ var _a;
16
+ (_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.NOTIFICATION, new Notification({
15
17
  title,
16
18
  message,
17
19
  targetTime,
@@ -19,15 +21,17 @@ export class NotificationApi {
19
21
  }));
20
22
  }
21
23
  static async countdown(message, targetTime) {
22
- ElectronUtils.getAPI().invoke(Channel.NOTIFICATION, new Notification({
24
+ var _a;
25
+ (_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.NOTIFICATION, new Notification({
23
26
  message,
24
27
  targetTime,
25
28
  type: "countdown"
26
29
  }));
27
30
  }
28
31
  static async success(message, duration = 5000) {
32
+ var _a;
29
33
  if (ElectronUtils.hasElectronApi()) {
30
- ElectronUtils.getAPI().invoke(Channel.NOTIFICATION, new Notification({
34
+ (_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.NOTIFICATION, new Notification({
31
35
  message,
32
36
  type: "success",
33
37
  duration
@@ -38,8 +42,9 @@ export class NotificationApi {
38
42
  }
39
43
  }
40
44
  static async error(message, duration = 5000) {
45
+ var _a;
41
46
  if (ElectronUtils.hasElectronApi()) {
42
- ElectronUtils.getAPI().invoke(Channel.NOTIFICATION, new Notification({
47
+ (_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.NOTIFICATION, new Notification({
43
48
  message,
44
49
  type: "error",
45
50
  duration
@@ -50,8 +55,9 @@ export class NotificationApi {
50
55
  }
51
56
  }
52
57
  static async warning(message, duration = 5000) {
58
+ var _a;
53
59
  if (ElectronUtils.hasElectronApi()) {
54
- ElectronUtils.getAPI().invoke(Channel.NOTIFICATION, new Notification({
60
+ (_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.NOTIFICATION, new Notification({
55
61
  message,
56
62
  type: "warning",
57
63
  duration
@@ -62,8 +68,9 @@ export class NotificationApi {
62
68
  }
63
69
  }
64
70
  static async message(message, duration = 5000) {
71
+ var _a;
65
72
  if (ElectronUtils.hasElectronApi()) {
66
- ElectronUtils.getAPI().invoke(Channel.NOTIFICATION, new Notification({
73
+ (_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.NOTIFICATION, new Notification({
67
74
  message,
68
75
  type: "message",
69
76
  duration
@@ -3,15 +3,21 @@ import { ElectronUtils } from "../utils/ElectronUtils";
3
3
  import { WidgetPackage } from "../model/WidgetPackage";
4
4
  import { Channel } from "./Channel";
5
5
  import { UrlUtils } from "../utils/UrlUtils";
6
+ import { BroadcastEvent } from "../model/event/BroadcastEvent";
7
+ import { BroadcastApi } from "./BroadcastApi";
8
+ import localforage from "localforage";
6
9
  export class WidgetApi {
7
10
  static async registerWidgets(widgets) {
8
- await ElectronUtils.getAPI().invoke(Channel.WIDGET, this.REGISTER_WIDGETS, JSON.stringify(widgets));
11
+ var _a;
12
+ await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.WIDGET, this.REGISTER_WIDGETS, JSON.stringify(widgets)));
9
13
  }
10
14
  static async registerWidgetPackage(widgetPackage) {
11
- await ElectronUtils.getAPI().invoke(Channel.WIDGET, this.REGISTER_WIDGET_PACKAGE, JSON.stringify(widgetPackage));
15
+ var _a;
16
+ await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.WIDGET, this.REGISTER_WIDGET_PACKAGE, JSON.stringify(widgetPackage)));
12
17
  }
13
18
  static async getWidgets() {
14
- const data = await ElectronUtils.getAPI().invoke(Channel.WIDGET, this.GET_WIDGETS);
19
+ var _a;
20
+ const data = await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.WIDGET, this.GET_WIDGETS));
15
21
  const widgets = [];
16
22
  if (data) {
17
23
  const arr = JSON.parse(data);
@@ -22,28 +28,32 @@ export class WidgetApi {
22
28
  return widgets;
23
29
  }
24
30
  static async getWidgetPackages() {
25
- return await ElectronUtils.getAPI().invoke(Channel.WIDGET, this.GET_WIDGET_PACKAGES);
31
+ var _a;
32
+ return await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.WIDGET, this.GET_WIDGET_PACKAGES));
26
33
  }
27
34
  /**
28
35
  *
29
36
  * @param name package name
30
37
  */
31
38
  static async getWidget(name) {
32
- return Widget.parseObject(await ElectronUtils.getAPI().invoke(Channel.WIDGET, this.GET_WIDGET, name));
39
+ var _a;
40
+ return Widget.parseObject(await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.WIDGET, this.GET_WIDGET, name)));
33
41
  }
34
42
  /**
35
43
  *
36
44
  * @param name package name
37
45
  */
38
46
  static async getWidgetPackage(name) {
39
- return WidgetPackage.parseObject(await ElectronUtils.getAPI().invoke(Channel.WIDGET, this.GET_WIDGET_PACKAGE, name));
47
+ var _a;
48
+ return WidgetPackage.parseObject(await ((_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.WIDGET, this.GET_WIDGET_PACKAGE, name)));
40
49
  }
41
50
  /**
42
51
  * 移除组件
43
52
  * @param id
44
53
  */
45
54
  static async removeHostedWidget(id) {
46
- return ElectronUtils.getAPI().invoke(Channel.WIDGET, this.REMOVE_HOSTED_WIDGET, id);
55
+ var _a;
56
+ return (_a = ElectronUtils.getAPI()) === null || _a === void 0 ? void 0 : _a.invoke(Channel.WIDGET, this.REMOVE_HOSTED_WIDGET, id);
47
57
  }
48
58
  /**
49
59
  * 获取组件配置地址
@@ -58,6 +68,37 @@ export class WidgetApi {
58
68
  return null;
59
69
  return UrlUtils.getWidgetUrl(widget.configUrl, widgetPackage, widgetParams);
60
70
  }
71
+ /**
72
+ * 通过组件名保存组件信息,通常用于存储可以在同类组件中共用的数据
73
+ * @param data
74
+ * @param options
75
+ */
76
+ static async saveDataByName(data, options = { sendBroadcast: true }) {
77
+ const store = this.getStore(data.name);
78
+ const json = JSON.stringify(data);
79
+ const result = await store.setItem(data.name, json);
80
+ if (options.sendBroadcast) {
81
+ const broadcastEvent = new BroadcastEvent(BroadcastEvent.TYPE_WIDGET_UPDATED, "", {
82
+ name: data.name,
83
+ id: options.id,
84
+ json
85
+ });
86
+ await BroadcastApi.sendBroadcastEvent(broadcastEvent);
87
+ }
88
+ return result;
89
+ }
90
+ /**
91
+ * 获取组件 LocalForage 存储实例
92
+ * @param name
93
+ */
94
+ static getStore(name) {
95
+ if (this.stores.has(name)) {
96
+ return this.stores.get(name);
97
+ }
98
+ const store = localforage.createInstance({ name: name });
99
+ this.stores.set(name, store);
100
+ return store;
101
+ }
61
102
  }
62
103
  WidgetApi.REGISTER_WIDGETS = "register-widgets";
63
104
  WidgetApi.REGISTER_WIDGET_PACKAGE = "register-widget-package";
@@ -66,3 +107,4 @@ WidgetApi.GET_WIDGET = "get-widget";
66
107
  WidgetApi.GET_WIDGET_PACKAGE = "get-widget-package";
67
108
  WidgetApi.GET_WIDGET_PACKAGES = "get-widget-packages";
68
109
  WidgetApi.REMOVE_HOSTED_WIDGET = "remove-hosted-widget";
110
+ WidgetApi.stores = new Map();
package/dist/esm/index.js CHANGED
@@ -5,6 +5,7 @@ export * from "./model/WidgetData";
5
5
  export * from "./model/WidgetParams";
6
6
  export * from "./model/Notification";
7
7
  export * from "./model/HostedMode";
8
+ export * from "./model/interface/Rectangle";
8
9
  export * from "./model/WidgetPackage";
9
10
  export * from "./api/ElectronApi";
10
11
  export * from "./repository/WidgetDataRepository";
@@ -7,5 +7,6 @@ export class Notification {
7
7
  this.message = option.message;
8
8
  this.targetTime = option.targetTime;
9
9
  this.duration = (_b = option.duration) !== null && _b !== void 0 ? _b : 5000;
10
+ this.icon = option.icon;
10
11
  }
11
12
  }
@@ -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;
4
+ var _a, _b, _c, _d, _e, _f, _g;
5
5
  /**
6
6
  * 组件默认语言
7
7
  */
@@ -20,8 +20,9 @@ export class Widget {
20
20
  this.url = options.url;
21
21
  this.packageName = options.packageName;
22
22
  this.configUrl = options.configUrl;
23
- this.extraUrl = (_e = options.extraUrl) !== null && _e !== void 0 ? _e : {};
24
- this.supportHostedMode = (_f = options.supportHostedMode) !== null && _f !== void 0 ? _f : HostedMode.NORMAL | HostedMode.OVERLAP;
23
+ this.refreshWhenResided = (_e = options.refreshWhenResided) !== null && _e !== void 0 ? _e : false;
24
+ this.extraUrl = (_f = options.extraUrl) !== null && _f !== void 0 ? _f : {};
25
+ this.supportHostedMode = (_g = options.supportHostedMode) !== null && _g !== void 0 ? _g : HostedMode.NORMAL | HostedMode.OVERLAP;
25
26
  }
26
27
  /**
27
28
  * 获取组件标题
@@ -0,0 +1 @@
1
+ export {};
@@ -1,3 +1,4 @@
1
+ import { Rectangle } from "../model/interface/Rectangle";
1
2
  type Position = {
2
3
  x: number;
3
4
  y: number;
@@ -13,6 +14,8 @@ export declare class BrowserWindowApi {
13
14
  static readonly BLUR = "blur";
14
15
  static readonly FOCUS = "focus";
15
16
  static readonly SET_RESIZABLE = "set-resizable";
17
+ static readonly GET_BOUNDS = "get-bounds";
18
+ static readonly SET_BOUNDS = "set-bounds";
16
19
  static setIgnoreMouseEvent(ignore: boolean): Promise<void>;
17
20
  static setWindowVisibility(show: boolean): Promise<void>;
18
21
  static setAlwaysOnTop(alwaysOnTop: boolean): Promise<void>;
@@ -33,5 +36,7 @@ export declare class BrowserWindowApi {
33
36
  * @param resizable
34
37
  */
35
38
  static setResizable(resizable: boolean): Promise<any>;
39
+ static getBounds(): Promise<Rectangle>;
40
+ static setBounds(bounds: Partial<Rectangle>, animate?: boolean): Promise<Rectangle>;
36
41
  }
37
42
  export {};
@@ -1,6 +1,11 @@
1
1
  import { Widget } from "../model/Widget";
2
2
  import { WidgetPackage } from "../model/WidgetPackage";
3
3
  import { WidgetParams } from "../model/WidgetParams";
4
+ import { WidgetData } from "../model/WidgetData";
5
+ export interface SaveWidgetOption {
6
+ sendBroadcast?: boolean;
7
+ id?: string;
8
+ }
4
9
  export declare class WidgetApi {
5
10
  static readonly REGISTER_WIDGETS = "register-widgets";
6
11
  static readonly REGISTER_WIDGET_PACKAGE = "register-widget-package";
@@ -33,4 +38,16 @@ export declare class WidgetApi {
33
38
  * @param widgetName
34
39
  */
35
40
  static getWidgetConfigUrl(widgetName: string, widgetParams: WidgetParams): Promise<string | null>;
41
+ /**
42
+ * 通过组件名保存组件信息,通常用于存储可以在同类组件中共用的数据
43
+ * @param data
44
+ * @param options
45
+ */
46
+ static saveDataByName<T extends WidgetData>(data: T, options?: SaveWidgetOption): Promise<string>;
47
+ private static stores;
48
+ /**
49
+ * 获取组件 LocalForage 存储实例
50
+ * @param name
51
+ */
52
+ private static getStore;
36
53
  }
@@ -5,6 +5,7 @@ export * from "./model/WidgetData";
5
5
  export * from "./model/WidgetParams";
6
6
  export * from "./model/Notification";
7
7
  export * from "./model/HostedMode";
8
+ export * from "./model/interface/Rectangle";
8
9
  export * from "./model/WidgetPackage";
9
10
  export * from "./api/ElectronApi";
10
11
  export * from "./repository/WidgetDataRepository";
@@ -1,16 +1,18 @@
1
- export type NotificationType = "call" | "message" | "countdown" | "advance-countdown" | "error" | "success" | "warning" | "info";
2
- export type NotificationOption = {
1
+ export type NotificationType = "call" | "message" | "countdown" | "advance-countdown" | "error" | "success" | "warning" | "info" | "custom";
2
+ export interface NotificationOption {
3
3
  type?: NotificationType;
4
4
  title?: string;
5
5
  message: string;
6
6
  targetTime?: string;
7
7
  duration?: number;
8
- };
8
+ icon?: string;
9
+ }
9
10
  export declare class Notification {
10
11
  type: NotificationType;
11
12
  message: string;
12
13
  title?: string;
13
14
  targetTime?: string;
14
15
  duration: number;
16
+ icon?: string;
15
17
  constructor(option: NotificationOption);
16
18
  }
@@ -22,6 +22,10 @@ type WidgetOptions = {
22
22
  [key: string]: string;
23
23
  };
24
24
  supportHostedMode?: HostedMode;
25
+ /**
26
+ * 组件拉伸后,是否强制刷新组件
27
+ */
28
+ refreshWhenResided?: boolean;
25
29
  };
26
30
  export declare class Widget {
27
31
  readonly name: string;
@@ -52,7 +56,14 @@ export declare class Widget {
52
56
  readonly minHeight: number;
53
57
  readonly url: string;
54
58
  readonly supportHostedMode: number;
59
+ /**
60
+ * 组件配置路由
61
+ */
55
62
  readonly configUrl?: string | null;
63
+ /**
64
+ * 组件拉伸后,是否强制刷新组件
65
+ */
66
+ readonly refreshWhenResided: boolean;
56
67
  /**
57
68
  * 组件其他页面的url在这注册
58
69
  */
@@ -0,0 +1,18 @@
1
+ export interface Rectangle {
2
+ /**
3
+ * The height of the rectangle (must be an integer).
4
+ */
5
+ height: number;
6
+ /**
7
+ * The width of the rectangle (must be an integer).
8
+ */
9
+ width: number;
10
+ /**
11
+ * The x coordinate of the origin of the rectangle (must be an integer).
12
+ */
13
+ x: number;
14
+ /**
15
+ * The y coordinate of the origin of the rectangle (must be an integer).
16
+ */
17
+ y: number;
18
+ }
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={275:(e,t,n)=>{"use strict";n.r(t),n.d(t,{camelCase:()=>v,camelCaseTransform:()=>d,camelCaseTransformMerge:()=>h,capitalCase:()=>y,capitalCaseTransform:()=>g,constantCase:()=>b,dotCase:()=>m,headerCase:()=>I,noCase:()=>s,paramCase:()=>E,pascalCase:()=>f,pascalCaseTransform:()=>u,pascalCaseTransformMerge:()=>l,pathCase:()=>A,sentenceCase:()=>O,sentenceCaseTransform:()=>w,snakeCase:()=>P});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,f=void 0===l?o:l,d=t.delimiter,h=void 0===d?" ":d,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(f).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 f(e,t){return void 0===t&&(t={}),s(e,r({delimiter:"",transform:u},t))}function d(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={}),f(e,r({transform:d},t))}function p(e){return e.charAt(0).toUpperCase()+e.substr(1)}function g(e){return p(e.toLowerCase())}function y(e,t){return void 0===t&&(t={}),s(e,r({delimiter:" ",transform:g},t))}function _(e){return e.toUpperCase()}function b(e,t){return void 0===t&&(t={}),s(e,r({delimiter:"_",transform:_},t))}function m(e,t){return void 0===t&&(t={}),s(e,r({delimiter:"."},t))}function I(e,t){return void 0===t&&(t={}),y(e,r({delimiter:"-"},t))}function E(e,t){return void 0===t&&(t={}),m(e,r({delimiter:"-"},t))}function A(e,t){return void 0===t&&(t={}),m(e,r({delimiter:"/"},t))}function w(e,t){var n=e.toLowerCase();return 0===t?p(n):n}function O(e,t){return void 0===t&&(t={}),s(e,r({delimiter:" ",transform:w},t))}function P(e,t){return void 0===t&&(t={}),m(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 f(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 d(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?f(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){f(this.promise,this.onFulfilled,e)},l.prototype.callRejected=function(e){i.reject(this.promise,e)},l.prototype.otherCallRejected=function(e){f(this.promise,this.onRejected,e)},i.resolve=function(e,t){var n=v(d,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 f="local-forage-detect-blob-support",d=void 0,h={},v=Object.prototype.toString,p="readonly",g="readwrite";function y(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){return"boolean"==typeof d?a.resolve(d):function(e){return new a((function(t){var n=e.transaction(f,g),r=i([""]);n.objectStore(f).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 d=e}))}function b(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 m(e){var t=h[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function I(e,t){var n=h[e.name].deferredOperations.pop();if(n)return n.reject(t),n.promise}function E(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);b(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(f)}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),m(e)}}))}function A(e){return E(e,!1)}function w(e){return E(e,!0)}function O(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 P(e){return i([y(atob(e.data))],{type:e.type})}function S(e){return e&&e.__local_forage_encoded_blob}function T(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 N(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),w(e)})).then((function(){return function(e){b(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,A(e).then((function(t){return e.db=t,O(e)?w(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 I(e,t),t}))}(e).then((function(){N(e,t,n,r-1)}))})).catch(n);n(o)}}var R={_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=T);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,A(n)})).then((function(e){return n.db=e,O(n,t._defaultConfig.version)?w(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(){N(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=P(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(){N(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=P(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)?_(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){N(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(){N(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(){N(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(){N(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(){N(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(){N(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=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||n.name,e.storeName=e.storeName||n.storeName);var r,i=this;if(e.name){var c=e.name===n.name&&i._dbInfo.db?a.resolve(i._dbInfo.db):A(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}));r=e.storeName?c.then((function(t){if(t.objectStoreNames.contains(e.storeName)){var n=t.version+1;b(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,m(n._dbInfo)}})).catch((function(t){throw(I(e,t)||a.resolve()).catch((function(){})),t}))}})):c.then((function(t){b(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++)m(r[t]._dbInfo)})).catch((function(t){throw(I(e,t)||a.resolve()).catch((function(){})),t}))}))}else r=a.reject("Invalid arguments");return s(r,t),r}};var C="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",D=/^~~local_forage_type~([^~]+)~/,W="__lfsc__:",M=W.length,j="arbf",U="blob",k="si08",L="ui08",B="uic8",G="si16",x="si32",F="ur16",H="ui32",z="fl32",K="fl64",V=M+j.length,J=Object.prototype.toString;function Q(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=C.indexOf(e[t]),r=C.indexOf(e[t+1]),o=C.indexOf(e[t+2]),i=C.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 Y(e){var t,n=new Uint8Array(e),r="";for(t=0;t<n.length;t+=3)r+=C[n[t]>>2],r+=C[(3&n[t])<<4|n[t+1]>>4],r+=C[(15&n[t+1])<<2|n[t+2]>>6],r+=C[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 X={serialize:function(e,t){var n="";if(e&&(n=J.call(e)),e&&("[object ArrayBuffer]"===n||e.buffer&&"[object ArrayBuffer]"===J.call(e.buffer))){var r,o=W;e instanceof ArrayBuffer?(r=e,o+=j):(r=e.buffer,"[object Int8Array]"===n?o+=k:"[object Uint8Array]"===n?o+=L:"[object Uint8ClampedArray]"===n?o+=B:"[object Int16Array]"===n?o+=G:"[object Uint16Array]"===n?o+=F:"[object Int32Array]"===n?o+=x:"[object Uint32Array]"===n?o+=H:"[object Float32Array]"===n?o+=z:"[object Float64Array]"===n?o+=K:t(new Error("Failed to get type for BinaryArray"))),t(o+Y(r))}else if("[object Blob]"===n){var i=new FileReader;i.onload=function(){var n="~~local_forage_type~"+e.type+"~"+Y(this.result);t(W+U+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)!==W)return JSON.parse(e);var t,n=e.substring(V),r=e.substring(M,V);if(r===U&&D.test(n)){var o=n.match(D);t=o[1],n=n.substring(o[0].length)}var a=Q(n);switch(r){case j:return a;case U:return i([a],{type:t});case k:return new Int8Array(a);case L:return new Uint8Array(a);case B:return new Uint8ClampedArray(a);case G:return new Int16Array(a);case F:return new Uint16Array(a);case x:return new Int32Array(a);case H:return new Uint32Array(a);case z:return new Float32Array(a);case K:return new Float64Array(a);default:throw new Error("Unkown type: "+r)}},stringToBuffer:Q,bufferToString:Y};function q(e,t,n,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,r)}function Z(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):q(e,t,(function(){e.executeSql(n,r,o,i)}),i)}),i):i(e,a)}),i)}function $(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){Z(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($.apply(o,[e,s,n,r-1]));a(t)}}))}))})).catch(a)}));return s(i,n),i}function ee(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)}))}))}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){q(o,n,(function(){t._dbInfo=n,e()}),(function(e,t){r(t)}))}),r)}));return n.serializer=X,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){Z(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){Z(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 $.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){Z(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){Z(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){Z(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){Z(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){Z(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(ee(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=X,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:R,WEBSQL:te,LOCALSTORAGE:oe},le=[ue.INDEXEDDB._driver,ue.WEBSQL._driver,ue.LOCALSTORAGE._driver],fe=["dropInstance"],de=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(fe),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=de.concat("_initStorage"),c=0,u=i.length;c<u;c++){var l=i[c];if((!ie(fe,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=fe.length;n<r;n++){var o=fe[n];e[o]||(e[o]=t(o))}}();var f=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(f,n):f(!!e._support):f(!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(X);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=de.length;e<t;e++)ve(this,de[e])},e.prototype.createInstance=function(t){return new e(t)},e}(),ye=new ge;t.exports=ye},{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"},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.getAPI().invoke(o.Channel.APP,this.SET_CONFIG,e,t)}static async getConfig(e,t){const n=await r.ElectronUtils.getAPI().invoke(o.Channel.APP,this.GET_CONFIG,e);return null==n?t:"boolean"==typeof t?"true"===n:n}static openAddWidgetWindow(){r.ElectronUtils.getAPI().invoke(o.Channel.APP,this.OPEN_ADD_WIDGET_WINDOW)}static openSettingWindow(){r.ElectronUtils.getAPI().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"},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){await r.ElectronUtils.getAPI().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.getAPI().invoke(r.Channel.BROWSER_WINDOW,this.IGNORE_MOUSE_EVENT,e)}static async setWindowVisibility(e){await o.ElectronUtils.getAPI().invoke(r.Channel.BROWSER_WINDOW,this.WINDOW_VISIBILITY,e)}static async setAlwaysOnTop(e){await o.ElectronUtils.getAPI().invoke(r.Channel.BROWSER_WINDOW,this.ALWAYS_ON_TOP,e)}static async isAlwaysOnTop(){return await o.ElectronUtils.getAPI().invoke(r.Channel.BROWSER_WINDOW,this.IS_ALWAYS_ON_TOP)}static async openUrl(e){await o.ElectronUtils.getAPI().invoke(r.Channel.BROWSER_WINDOW,this.OPEN_URL,e)}static async setPosition(e,t,n){await o.ElectronUtils.getAPI().invoke(r.Channel.BROWSER_WINDOW,this.SET_POSITION,e,t,n)}static async getPosition(){return await o.ElectronUtils.getAPI().invoke(r.Channel.BROWSER_WINDOW,this.GET_POSITION)}static async blur(){return await o.ElectronUtils.getAPI().invoke(r.Channel.BROWSER_WINDOW,this.BLUR)}static async focus(){return await o.ElectronUtils.getAPI().invoke(r.Channel.BROWSER_WINDOW,this.FOCUS)}static async setResizable(e){return await o.ElectronUtils.getAPI().invoke(r.Channel.BROWSER_WINDOW,this.SET_RESIZABLE,e)}}t.BrowserWindowApi=i,i.IGNORE_MOUSE_EVENT="ignore-mouse-event",i.WINDOW_VISIBILITY="window-visibility",i.ALWAYS_ON_TOP="always-on-top",i.IS_ALWAYS_ON_TOP="is-always-on-top",i.OPEN_URL="open-url",i.SET_POSITION="set-position",i.GET_POSITION="get-position",i.BLUR="blur",i.FOCUS="focus",i.SET_RESIZABLE="set-resizable"},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.APP="channel::cn.widgetjs.core.app",n.DIALOG="channel::cn.widgetjs.core.dialog"},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){return await r.ElectronUtils.getAPI().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){await r.ElectronUtils.getAPI().addIpcListener(e,t)}static async removeIpcListener(e){await r.ElectronUtils.getAPI().removeIpcListener(e)}}},717:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NotificationApi=void 0;const r=n(771),o=n(841),i=n(990);t.NotificationApi=class{static async call(e=5e3){i.ElectronUtils.getAPI().invoke(o.Channel.NOTIFICATION,new r.Notification({title:"章鱼哥",type:"call",message:"下班提醒",duration:e}))}static async advanceCountdown(e,t,n){i.ElectronUtils.getAPI().invoke(o.Channel.NOTIFICATION,new r.Notification({title:n,message:e,targetTime:t,type:"advance-countdown"}))}static async countdown(e,t){i.ElectronUtils.getAPI().invoke(o.Channel.NOTIFICATION,new r.Notification({message:e,targetTime:t,type:"countdown"}))}static async success(e,t=5e3){i.ElectronUtils.hasElectronApi()?i.ElectronUtils.getAPI().invoke(o.Channel.NOTIFICATION,new r.Notification({message:e,type:"success",duration:t})):this.callback("success",e,t)}static async error(e,t=5e3){i.ElectronUtils.hasElectronApi()?i.ElectronUtils.getAPI().invoke(o.Channel.NOTIFICATION,new r.Notification({message:e,type:"error",duration:t})):this.callback("error",e,t)}static async warning(e,t=5e3){i.ElectronUtils.hasElectronApi()?i.ElectronUtils.getAPI().invoke(o.Channel.NOTIFICATION,new r.Notification({message:e,type:"warning",duration:t})):this.callback("warning",e,t)}static async message(e,t=5e3){i.ElectronUtils.hasElectronApi()?i.ElectronUtils.getAPI().invoke(o.Channel.NOTIFICATION,new r.Notification({message:e,type:"message",duration:t})):this.callback("message",e,t)}static setDebugNotification(e){this.callback=e}}},737:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetApi=void 0;const r=n(473),o=n(990),i=n(134),a=n(841),s=n(499);class c{static async registerWidgets(e){await o.ElectronUtils.getAPI().invoke(a.Channel.WIDGET,this.REGISTER_WIDGETS,JSON.stringify(e))}static async registerWidgetPackage(e){await o.ElectronUtils.getAPI().invoke(a.Channel.WIDGET,this.REGISTER_WIDGET_PACKAGE,JSON.stringify(e))}static async getWidgets(){const e=await o.ElectronUtils.getAPI().invoke(a.Channel.WIDGET,this.GET_WIDGETS),t=[];if(e){const n=JSON.parse(e);for(const e in n)t.push(r.Widget.parseObject(n[e]))}return t}static async getWidgetPackages(){return await o.ElectronUtils.getAPI().invoke(a.Channel.WIDGET,this.GET_WIDGET_PACKAGES)}static async getWidget(e){return r.Widget.parseObject(await o.ElectronUtils.getAPI().invoke(a.Channel.WIDGET,this.GET_WIDGET,e))}static async getWidgetPackage(e){return i.WidgetPackage.parseObject(await o.ElectronUtils.getAPI().invoke(a.Channel.WIDGET,this.GET_WIDGET_PACKAGE,e))}static async removeHostedWidget(e){return o.ElectronUtils.getAPI().invoke(a.Channel.WIDGET,this.REMOVE_HOSTED_WIDGET,e)}static async getWidgetConfigUrl(e,t){const n=await this.getWidget(e);if(!n||null==n.configUrl)return null;const r=await this.getWidgetPackage(n.packageName);return r?s.UrlUtils.getWidgetUrl(n.configUrl,r,t):null}}t.WidgetApi=c,c.REGISTER_WIDGETS="register-widgets",c.REGISTER_WIDGET_PACKAGE="register-widget-package",c.GET_WIDGETS="get-widgets",c.GET_WIDGET="get-widget",c.GET_WIDGET_PACKAGE="get-widget-package",c.GET_WIDGET_PACKAGES="get-widget-packages",c.REMOVE_HOSTED_WIDGET="remove-hosted-widget"},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(771),t),o(n(995),t),o(n(134),t),o(n(295),t),o(n(630),t),o(n(194),t),o(n(717),t),o(n(841),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)},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.ALL=4369]="ALL"},771:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Notification=void 0,t.Notification=class{constructor(e){var t,n;this.type="message",this.type=null!==(t=e.type)&&void 0!==t?t:"message",this.title=e.title,this.message=e.message,this.targetTime=e.targetTime,this.duration=null!==(n=e.duration)&&void 0!==n?n:5e3}}},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;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.url=e.url,this.packageName=e.packageName,this.configUrl=e.configUrl,this.extraUrl=null!==(a=e.extraUrl)&&void 0!==a?a:{},this.supportHostedMode=null!==(s=e.supportHostedMode)&&void 0!==s?s:r.HostedMode.NORMAL|r.HostedMode.OVERLAP}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){return new o({...e})}isSupportOverlap(){return(this.supportHostedMode&r.HostedMode.OVERLAP)>0}isSupportNormal(){return(this.supportHostedMode&r.HostedMode.NORMAL)>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)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetPackage=void 0;class n{constructor(){this.hash=!0}static parseJSON(e){const t=JSON.parse(e);return this.parseObject(t)}static parseObject(e){let t=new n;return Object.assign(t,e),t}getFullUrl(){return this.url.startsWith("http")?this.url:this.url+(this.entry.startsWith("/")?this.entry:`/${this.entry}`)}}t.WidgetPackage=n},758:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeMode=t.WidgetParams=void 0;const r=n(821),o=n(275);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("?")[1];return this.fromObject((0,r.parseQuery)(e))}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"},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"},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}}},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,f=/%7B/g,d=/%7C/g,h=/%7D/g,v=/%20/g;function p(e){return encodeURI(""+e).replace(d,"|").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(f,"{").replace(h,"}").replace(u,"^")}function y(e){return p(e).replace(n,"%23").replace(a,"%3F")}t.encodeHash=function(e){return p(e).replace(f,"{").replace(h,"}").replace(u,"^")},t.encodeQueryValue=g,t.encodeQueryKey=function(e){return g(e).replace(i,"%3D")},t.encodePath=y,t.encodeParam=function(e){return null==e?"":y(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.getFullUrl()+e,r.includes("?")?r+"&"+n.toUrlParams().toString():r+"?"+n.toUrlParams().toString()}}}},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={275:(e,t,n)=>{"use strict";n.r(t),n.d(t,{camelCase:()=>h,camelCaseTransform:()=>f,camelCaseTransformMerge:()=>v,capitalCase:()=>y,capitalCaseTransform:()=>g,constantCase:()=>m,dotCase:()=>b,headerCase:()=>I,noCase:()=>s,paramCase:()=>E,pascalCase:()=>d,pascalCaseTransform:()=>u,pascalCaseTransformMerge:()=>l,pathCase:()=>A,sentenceCase:()=>O,sentenceCaseTransform:()=>w,snakeCase:()=>P});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"),p=0,g=h.length;"\0"===h.charAt(p);)p++;for(;"\0"===h.charAt(g-1);)g--;return h.slice(p,g).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 p(e){return e.charAt(0).toUpperCase()+e.substr(1)}function g(e){return p(e.toLowerCase())}function y(e,t){return void 0===t&&(t={}),s(e,r({delimiter:" ",transform:g},t))}function _(e){return e.toUpperCase()}function m(e,t){return void 0===t&&(t={}),s(e,r({delimiter:"_",transform:_},t))}function b(e,t){return void 0===t&&(t={}),s(e,r({delimiter:"."},t))}function I(e,t){return void 0===t&&(t={}),y(e,r({delimiter:"-"},t))}function E(e,t){return void 0===t&&(t={}),b(e,r({delimiter:"-"},t))}function A(e,t){return void 0===t&&(t={}),b(e,r({delimiter:"/"},t))}function w(e,t){var n=e.toLowerCase();return 0===t?p(n):n}function O(e,t){return void 0===t&&(t={}),s(e,r({delimiter:" ",transform:w},t))}function P(e,t){return void 0===t&&(t={}),b(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,p="readonly",g="readwrite";function y(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){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 m(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 b(e){var t=v[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function I(e,t){var n=v[e.name].deferredOperations.pop();if(n)return n.reject(t),n.promise}function E(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);m(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),b(e)}}))}function A(e){return E(e,!1)}function w(e){return E(e,!0)}function O(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 P(e){return i([y(atob(e.data))],{type:e.type})}function S(e){return e&&e.__local_forage_encoded_blob}function T(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 N(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),w(e)})).then((function(){return function(e){m(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,A(e).then((function(t){return e.db=t,O(e)?w(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 I(e,t),t}))}(e).then((function(){N(e,t,n,r-1)}))})).catch(n);n(o)}}var R={_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=T);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,A(n)})).then((function(e){return n.db=e,O(n,t._defaultConfig.version)?w(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(){N(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=P(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(){N(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=P(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)?_(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){N(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(){N(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(){N(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(){N(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(){N(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(){N(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=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||n.name,e.storeName=e.storeName||n.storeName);var r,i=this;if(e.name){var c=e.name===n.name&&i._dbInfo.db?a.resolve(i._dbInfo.db):A(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}));r=e.storeName?c.then((function(t){if(t.objectStoreNames.contains(e.storeName)){var n=t.version+1;m(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,b(n._dbInfo)}})).catch((function(t){throw(I(e,t)||a.resolve()).catch((function(){})),t}))}})):c.then((function(t){m(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++)b(r[t]._dbInfo)})).catch((function(t){throw(I(e,t)||a.resolve()).catch((function(){})),t}))}))}else r=a.reject("Invalid arguments");return s(r,t),r}};var D="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",C=/^~~local_forage_type~([^~]+)~/,W="__lfsc__:",M=W.length,j="arbf",U="blob",k="si08",B="ui08",L="uic8",G="si16",x="si32",F="ur16",H="ui32",z="fl32",K="fl64",V=M+j.length,J=Object.prototype.toString;function Y(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 X={serialize:function(e,t){var n="";if(e&&(n=J.call(e)),e&&("[object ArrayBuffer]"===n||e.buffer&&"[object ArrayBuffer]"===J.call(e.buffer))){var r,o=W;e instanceof ArrayBuffer?(r=e,o+=j):(r=e.buffer,"[object Int8Array]"===n?o+=k:"[object Uint8Array]"===n?o+=B:"[object Uint8ClampedArray]"===n?o+=L:"[object Int16Array]"===n?o+=G:"[object Uint16Array]"===n?o+=F:"[object Int32Array]"===n?o+=x:"[object Uint32Array]"===n?o+=H:"[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="~~local_forage_type~"+e.type+"~"+Q(this.result);t(W+U+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)!==W)return JSON.parse(e);var t,n=e.substring(V),r=e.substring(M,V);if(r===U&&C.test(n)){var o=n.match(C);t=o[1],n=n.substring(o[0].length)}var a=Y(n);switch(r){case j:return a;case U:return i([a],{type:t});case k:return new Int8Array(a);case B:return new Uint8Array(a);case L:return new Uint8ClampedArray(a);case G:return new Int16Array(a);case F:return new Uint16Array(a);case x:return new Int32Array(a);case H:return new Uint32Array(a);case z:return new Float32Array(a);case K:return new Float64Array(a);default:throw new Error("Unkown type: "+r)}},stringToBuffer:Y,bufferToString:Q};function q(e,t,n,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,r)}function Z(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):q(e,t,(function(){e.executeSql(n,r,o,i)}),i)}),i):i(e,a)}),i)}function $(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){Z(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($.apply(o,[e,s,n,r-1]));a(t)}}))}))})).catch(a)}));return s(i,n),i}function ee(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)}))}))}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){q(o,n,(function(){t._dbInfo=n,e()}),(function(e,t){r(t)}))}),r)}));return n.serializer=X,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){Z(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){Z(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 $.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){Z(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){Z(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){Z(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){Z(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){Z(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(ee(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=X,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:R,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 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({},ve),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(X);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++)he(this,fe[e])},e.prototype.createInstance=function(t){return new e(t)},e}(),ye=new ge;t.exports=ye},{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"},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:i}static openAddWidgetWindow(){var e;null===(e=r.ElectronUtils.getAPI())||void 0===e||e.invoke(o.Channel.APP,this.OPEN_ADD_WIDGET_WINDOW)}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"},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 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 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))}}t.BrowserWindowApi=i,i.IGNORE_MOUSE_EVENT="ignore-mouse-event",i.WINDOW_VISIBILITY="window-visibility",i.ALWAYS_ON_TOP="always-on-top",i.IS_ALWAYS_ON_TOP="is-always-on-top",i.OPEN_URL="open-url",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"},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.APP="channel::cn.widgetjs.core.app",n.DIALOG="channel::cn.widgetjs.core.dialog"},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))}}},717:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NotificationApi=void 0;const r=n(771),o=n(841),i=n(990);t.NotificationApi=class{static async call(e=5e3){var t;null===(t=i.ElectronUtils.getAPI())||void 0===t||t.invoke(o.Channel.NOTIFICATION,new r.Notification({title:"章鱼哥",type:"call",message:"下班提醒",duration:e}))}static async advanceCountdown(e,t,n){var a;null===(a=i.ElectronUtils.getAPI())||void 0===a||a.invoke(o.Channel.NOTIFICATION,new r.Notification({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.Notification({message:e,targetTime:t,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.Notification({message:e,type:"success",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.Notification({message:e,type:"error",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.Notification({message:e,type:"warning",duration:t})):this.callback("warning",e,t)}static async message(e,t=5e3){var n;i.ElectronUtils.hasElectronApi()?null===(n=i.ElectronUtils.getAPI())||void 0===n||n.invoke(o.Channel.NOTIFICATION,new r.Notification({message:e,type:"message",duration:t})):this.callback("message",e,t)}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){const e=JSON.parse(t);for(const t in e)n.push(o.Widget.parseObject(e[t]))}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 removeHostedWidget(e){var t;return null===(t=i.ElectronUtils.getAPI())||void 0===t?void 0:t.invoke(s.Channel.WIDGET,this.REMOVE_HOSTED_WIDGET,e)}static async getWidgetConfigUrl(e,t){const n=await this.getWidget(e);if(!n||null==n.configUrl)return null;const r=await this.getWidgetPackage(n.packageName);return r?c.UrlUtils.getWidgetUrl(n.configUrl,r,t):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.REMOVE_HOSTED_WIDGET="remove-hosted-widget",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(771),t),o(n(995),t),o(n(386),t),o(n(134),t),o(n(295),t),o(n(630),t),o(n(194),t),o(n(717),t),o(n(841),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)},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.ALL=4369]="ALL"},771:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Notification=void 0,t.Notification=class{constructor(e){var t,n;this.type="message",this.type=null!==(t=e.type)&&void 0!==t?t:"message",this.title=e.title,this.message=e.message,this.targetTime=e.targetTime,this.duration=null!==(n=e.duration)&&void 0!==n?n:5e3,this.icon=e.icon}}},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.url=e.url,this.packageName=e.packageName,this.configUrl=e.configUrl,this.refreshWhenResided=null!==(a=e.refreshWhenResided)&&void 0!==a&&a,this.extraUrl=null!==(s=e.extraUrl)&&void 0!==s?s:{},this.supportHostedMode=null!==(c=e.supportHostedMode)&&void 0!==c?c:r.HostedMode.NORMAL|r.HostedMode.OVERLAP}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){return new o({...e})}isSupportOverlap(){return(this.supportHostedMode&r.HostedMode.OVERLAP)>0}isSupportNormal(){return(this.supportHostedMode&r.HostedMode.NORMAL)>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)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetPackage=void 0;class n{constructor(){this.hash=!0}static parseJSON(e){const t=JSON.parse(e);return this.parseObject(t)}static parseObject(e){let t=new n;return Object.assign(t,e),t}getFullUrl(){return this.url.startsWith("http")?this.url:this.url+(this.entry.startsWith("/")?this.entry:`/${this.entry}`)}}t.WidgetPackage=n},758:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeMode=t.WidgetParams=void 0;const r=n(821),o=n(275);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("?")[1];return this.fromObject((0,r.parseQuery)(e))}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"},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"},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 p(e){return encodeURI(""+e).replace(f,"|").replace(s,"[").replace(c,"]")}function g(e){return p(e).replace(t.PLUS_RE,"%2B").replace(h,"+").replace(n,"%23").replace(r,"%26").replace(l,"`").replace(d,"{").replace(v,"}").replace(u,"^")}function y(e){return p(e).replace(n,"%23").replace(a,"%3F")}t.encodeHash=function(e){return p(e).replace(d,"{").replace(v,"}").replace(u,"^")},t.encodeQueryValue=g,t.encodeQueryKey=function(e){return g(e).replace(i,"%3D")},t.encodePath=y,t.encodeParam=function(e){return null==e?"":y(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.getFullUrl()+e,r.includes("?")?r+"&"+n.toUrlParams().toString():r+"?"+n.toUrlParams().toString()}}}},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,25 +1,12 @@
1
1
  {
2
2
  "name": "@widget-js/core",
3
- "version": "0.1.13",
3
+ "version": "0.1.15",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
8
  "types": "./dist/types/index.d.ts",
9
9
  "main": "./dist/umd/index.js",
10
- "scripts": {
11
- "prepublishOnly": "pinst --disable",
12
- "test": "jest --no-cache --runInBand",
13
- "test:cov": "jest --coverage --no-cache --runInBand",
14
- "build": "npm run build:esm && npm run build:types && npm run build:cjs && npm run build:umd",
15
- "build:update": "npm run build && yarn --cwd ../../../ upgrade @widget-js/core && yarn --cwd ../../../electron upgrade @widget-js/core",
16
- "build:cjs": "node tools/cleanup cjs && tsc -p config/tsconfig.cjs.json",
17
- "build:esm": "node tools/cleanup esm && tsc -p config/tsconfig.esm.json",
18
- "build:umd": "node tools/cleanup umd && webpack --config config/webpack.config.js",
19
- "build:types": "node tools/cleanup types && tsc -p config/tsconfig.types.json",
20
- "package": "npm run build && npm pack",
21
- "addscope": "node tools/packagejson name @widget-js/core"
22
- },
23
10
  "author": "Neo Fu <rtugeek@gmail.com>",
24
11
  "license": "MIT",
25
12
  "homepage": "https://github.com/widom-widget/core",
@@ -53,5 +40,17 @@
53
40
  "dependencies": {
54
41
  "change-case": "^4.1.2",
55
42
  "localforage": "^1.10.0"
43
+ },
44
+ "scripts": {
45
+ "test": "jest --no-cache --runInBand",
46
+ "test:cov": "jest --coverage --no-cache --runInBand",
47
+ "build": "npm run build:esm && npm run build:types && npm run build:cjs && npm run build:umd",
48
+ "build:update": "npm run build && yarn --cwd ../../../ upgrade @widget-js/core && yarn --cwd ../../../electron upgrade @widget-js/core",
49
+ "build:cjs": "node tools/cleanup cjs && tsc -p config/tsconfig.cjs.json",
50
+ "build:esm": "node tools/cleanup esm && tsc -p config/tsconfig.esm.json",
51
+ "build:umd": "node tools/cleanup umd && webpack --config config/webpack.config.js",
52
+ "build:types": "node tools/cleanup types && tsc -p config/tsconfig.types.json",
53
+ "package": "npm run build && npm pack",
54
+ "addscope": "node tools/packagejson name @widget-js/core"
56
55
  }
57
- }
56
+ }