@widget-js/core 24.1.1-beta.86 → 24.1.1-beta.87
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.
- package/dist/index.cjs +2317 -2091
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2798 -2714
- package/dist/index.d.ts +2798 -2714
- package/dist/index.js +2313 -2091
- package/dist/index.js.map +1 -1
- package/package.json +75 -75
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { parse, find } from 'css-tree';
|
|
2
|
+
import merge from 'lodash/merge';
|
|
2
3
|
import localforage from 'localforage';
|
|
3
4
|
|
|
4
5
|
var __create = Object.create;
|
|
@@ -27,238 +28,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
27
28
|
mod
|
|
28
29
|
));
|
|
29
30
|
|
|
30
|
-
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayReduce.js
|
|
31
|
-
var require_arrayReduce = __commonJS({
|
|
32
|
-
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayReduce.js"(exports$1, module) {
|
|
33
|
-
function arrayReduce(array, iteratee, accumulator, initAccum) {
|
|
34
|
-
var index = -1, length = array == null ? 0 : array.length;
|
|
35
|
-
if (initAccum && length) {
|
|
36
|
-
accumulator = array[++index];
|
|
37
|
-
}
|
|
38
|
-
while (++index < length) {
|
|
39
|
-
accumulator = iteratee(accumulator, array[index], index, array);
|
|
40
|
-
}
|
|
41
|
-
return accumulator;
|
|
42
|
-
}
|
|
43
|
-
module.exports = arrayReduce;
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePropertyOf.js
|
|
48
|
-
var require_basePropertyOf = __commonJS({
|
|
49
|
-
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePropertyOf.js"(exports$1, module) {
|
|
50
|
-
function basePropertyOf(object) {
|
|
51
|
-
return function(key) {
|
|
52
|
-
return object == null ? void 0 : object[key];
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
module.exports = basePropertyOf;
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_deburrLetter.js
|
|
60
|
-
var require_deburrLetter = __commonJS({
|
|
61
|
-
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_deburrLetter.js"(exports$1, module) {
|
|
62
|
-
var basePropertyOf = require_basePropertyOf();
|
|
63
|
-
var deburredLetters = {
|
|
64
|
-
// Latin-1 Supplement block.
|
|
65
|
-
"\xC0": "A",
|
|
66
|
-
"\xC1": "A",
|
|
67
|
-
"\xC2": "A",
|
|
68
|
-
"\xC3": "A",
|
|
69
|
-
"\xC4": "A",
|
|
70
|
-
"\xC5": "A",
|
|
71
|
-
"\xE0": "a",
|
|
72
|
-
"\xE1": "a",
|
|
73
|
-
"\xE2": "a",
|
|
74
|
-
"\xE3": "a",
|
|
75
|
-
"\xE4": "a",
|
|
76
|
-
"\xE5": "a",
|
|
77
|
-
"\xC7": "C",
|
|
78
|
-
"\xE7": "c",
|
|
79
|
-
"\xD0": "D",
|
|
80
|
-
"\xF0": "d",
|
|
81
|
-
"\xC8": "E",
|
|
82
|
-
"\xC9": "E",
|
|
83
|
-
"\xCA": "E",
|
|
84
|
-
"\xCB": "E",
|
|
85
|
-
"\xE8": "e",
|
|
86
|
-
"\xE9": "e",
|
|
87
|
-
"\xEA": "e",
|
|
88
|
-
"\xEB": "e",
|
|
89
|
-
"\xCC": "I",
|
|
90
|
-
"\xCD": "I",
|
|
91
|
-
"\xCE": "I",
|
|
92
|
-
"\xCF": "I",
|
|
93
|
-
"\xEC": "i",
|
|
94
|
-
"\xED": "i",
|
|
95
|
-
"\xEE": "i",
|
|
96
|
-
"\xEF": "i",
|
|
97
|
-
"\xD1": "N",
|
|
98
|
-
"\xF1": "n",
|
|
99
|
-
"\xD2": "O",
|
|
100
|
-
"\xD3": "O",
|
|
101
|
-
"\xD4": "O",
|
|
102
|
-
"\xD5": "O",
|
|
103
|
-
"\xD6": "O",
|
|
104
|
-
"\xD8": "O",
|
|
105
|
-
"\xF2": "o",
|
|
106
|
-
"\xF3": "o",
|
|
107
|
-
"\xF4": "o",
|
|
108
|
-
"\xF5": "o",
|
|
109
|
-
"\xF6": "o",
|
|
110
|
-
"\xF8": "o",
|
|
111
|
-
"\xD9": "U",
|
|
112
|
-
"\xDA": "U",
|
|
113
|
-
"\xDB": "U",
|
|
114
|
-
"\xDC": "U",
|
|
115
|
-
"\xF9": "u",
|
|
116
|
-
"\xFA": "u",
|
|
117
|
-
"\xFB": "u",
|
|
118
|
-
"\xFC": "u",
|
|
119
|
-
"\xDD": "Y",
|
|
120
|
-
"\xFD": "y",
|
|
121
|
-
"\xFF": "y",
|
|
122
|
-
"\xC6": "Ae",
|
|
123
|
-
"\xE6": "ae",
|
|
124
|
-
"\xDE": "Th",
|
|
125
|
-
"\xFE": "th",
|
|
126
|
-
"\xDF": "ss",
|
|
127
|
-
// Latin Extended-A block.
|
|
128
|
-
"\u0100": "A",
|
|
129
|
-
"\u0102": "A",
|
|
130
|
-
"\u0104": "A",
|
|
131
|
-
"\u0101": "a",
|
|
132
|
-
"\u0103": "a",
|
|
133
|
-
"\u0105": "a",
|
|
134
|
-
"\u0106": "C",
|
|
135
|
-
"\u0108": "C",
|
|
136
|
-
"\u010A": "C",
|
|
137
|
-
"\u010C": "C",
|
|
138
|
-
"\u0107": "c",
|
|
139
|
-
"\u0109": "c",
|
|
140
|
-
"\u010B": "c",
|
|
141
|
-
"\u010D": "c",
|
|
142
|
-
"\u010E": "D",
|
|
143
|
-
"\u0110": "D",
|
|
144
|
-
"\u010F": "d",
|
|
145
|
-
"\u0111": "d",
|
|
146
|
-
"\u0112": "E",
|
|
147
|
-
"\u0114": "E",
|
|
148
|
-
"\u0116": "E",
|
|
149
|
-
"\u0118": "E",
|
|
150
|
-
"\u011A": "E",
|
|
151
|
-
"\u0113": "e",
|
|
152
|
-
"\u0115": "e",
|
|
153
|
-
"\u0117": "e",
|
|
154
|
-
"\u0119": "e",
|
|
155
|
-
"\u011B": "e",
|
|
156
|
-
"\u011C": "G",
|
|
157
|
-
"\u011E": "G",
|
|
158
|
-
"\u0120": "G",
|
|
159
|
-
"\u0122": "G",
|
|
160
|
-
"\u011D": "g",
|
|
161
|
-
"\u011F": "g",
|
|
162
|
-
"\u0121": "g",
|
|
163
|
-
"\u0123": "g",
|
|
164
|
-
"\u0124": "H",
|
|
165
|
-
"\u0126": "H",
|
|
166
|
-
"\u0125": "h",
|
|
167
|
-
"\u0127": "h",
|
|
168
|
-
"\u0128": "I",
|
|
169
|
-
"\u012A": "I",
|
|
170
|
-
"\u012C": "I",
|
|
171
|
-
"\u012E": "I",
|
|
172
|
-
"\u0130": "I",
|
|
173
|
-
"\u0129": "i",
|
|
174
|
-
"\u012B": "i",
|
|
175
|
-
"\u012D": "i",
|
|
176
|
-
"\u012F": "i",
|
|
177
|
-
"\u0131": "i",
|
|
178
|
-
"\u0134": "J",
|
|
179
|
-
"\u0135": "j",
|
|
180
|
-
"\u0136": "K",
|
|
181
|
-
"\u0137": "k",
|
|
182
|
-
"\u0138": "k",
|
|
183
|
-
"\u0139": "L",
|
|
184
|
-
"\u013B": "L",
|
|
185
|
-
"\u013D": "L",
|
|
186
|
-
"\u013F": "L",
|
|
187
|
-
"\u0141": "L",
|
|
188
|
-
"\u013A": "l",
|
|
189
|
-
"\u013C": "l",
|
|
190
|
-
"\u013E": "l",
|
|
191
|
-
"\u0140": "l",
|
|
192
|
-
"\u0142": "l",
|
|
193
|
-
"\u0143": "N",
|
|
194
|
-
"\u0145": "N",
|
|
195
|
-
"\u0147": "N",
|
|
196
|
-
"\u014A": "N",
|
|
197
|
-
"\u0144": "n",
|
|
198
|
-
"\u0146": "n",
|
|
199
|
-
"\u0148": "n",
|
|
200
|
-
"\u014B": "n",
|
|
201
|
-
"\u014C": "O",
|
|
202
|
-
"\u014E": "O",
|
|
203
|
-
"\u0150": "O",
|
|
204
|
-
"\u014D": "o",
|
|
205
|
-
"\u014F": "o",
|
|
206
|
-
"\u0151": "o",
|
|
207
|
-
"\u0154": "R",
|
|
208
|
-
"\u0156": "R",
|
|
209
|
-
"\u0158": "R",
|
|
210
|
-
"\u0155": "r",
|
|
211
|
-
"\u0157": "r",
|
|
212
|
-
"\u0159": "r",
|
|
213
|
-
"\u015A": "S",
|
|
214
|
-
"\u015C": "S",
|
|
215
|
-
"\u015E": "S",
|
|
216
|
-
"\u0160": "S",
|
|
217
|
-
"\u015B": "s",
|
|
218
|
-
"\u015D": "s",
|
|
219
|
-
"\u015F": "s",
|
|
220
|
-
"\u0161": "s",
|
|
221
|
-
"\u0162": "T",
|
|
222
|
-
"\u0164": "T",
|
|
223
|
-
"\u0166": "T",
|
|
224
|
-
"\u0163": "t",
|
|
225
|
-
"\u0165": "t",
|
|
226
|
-
"\u0167": "t",
|
|
227
|
-
"\u0168": "U",
|
|
228
|
-
"\u016A": "U",
|
|
229
|
-
"\u016C": "U",
|
|
230
|
-
"\u016E": "U",
|
|
231
|
-
"\u0170": "U",
|
|
232
|
-
"\u0172": "U",
|
|
233
|
-
"\u0169": "u",
|
|
234
|
-
"\u016B": "u",
|
|
235
|
-
"\u016D": "u",
|
|
236
|
-
"\u016F": "u",
|
|
237
|
-
"\u0171": "u",
|
|
238
|
-
"\u0173": "u",
|
|
239
|
-
"\u0174": "W",
|
|
240
|
-
"\u0175": "w",
|
|
241
|
-
"\u0176": "Y",
|
|
242
|
-
"\u0177": "y",
|
|
243
|
-
"\u0178": "Y",
|
|
244
|
-
"\u0179": "Z",
|
|
245
|
-
"\u017B": "Z",
|
|
246
|
-
"\u017D": "Z",
|
|
247
|
-
"\u017A": "z",
|
|
248
|
-
"\u017C": "z",
|
|
249
|
-
"\u017E": "z",
|
|
250
|
-
"\u0132": "IJ",
|
|
251
|
-
"\u0133": "ij",
|
|
252
|
-
"\u0152": "Oe",
|
|
253
|
-
"\u0153": "oe",
|
|
254
|
-
"\u0149": "'n",
|
|
255
|
-
"\u017F": "s"
|
|
256
|
-
};
|
|
257
|
-
var deburrLetter = basePropertyOf(deburredLetters);
|
|
258
|
-
module.exports = deburrLetter;
|
|
259
|
-
}
|
|
260
|
-
});
|
|
261
|
-
|
|
262
31
|
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js
|
|
263
32
|
var require_freeGlobal = __commonJS({
|
|
264
33
|
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js"(exports$1, module) {
|
|
@@ -428,154 +197,6 @@ var require_toString = __commonJS({
|
|
|
428
197
|
}
|
|
429
198
|
});
|
|
430
199
|
|
|
431
|
-
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/deburr.js
|
|
432
|
-
var require_deburr = __commonJS({
|
|
433
|
-
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/deburr.js"(exports$1, module) {
|
|
434
|
-
var deburrLetter = require_deburrLetter();
|
|
435
|
-
var toString = require_toString();
|
|
436
|
-
var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
|
|
437
|
-
var rsComboMarksRange = "\\u0300-\\u036f";
|
|
438
|
-
var reComboHalfMarksRange = "\\ufe20-\\ufe2f";
|
|
439
|
-
var rsComboSymbolsRange = "\\u20d0-\\u20ff";
|
|
440
|
-
var rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;
|
|
441
|
-
var rsCombo = "[" + rsComboRange + "]";
|
|
442
|
-
var reComboMark = RegExp(rsCombo, "g");
|
|
443
|
-
function deburr(string) {
|
|
444
|
-
string = toString(string);
|
|
445
|
-
return string && string.replace(reLatin, deburrLetter).replace(reComboMark, "");
|
|
446
|
-
}
|
|
447
|
-
module.exports = deburr;
|
|
448
|
-
}
|
|
449
|
-
});
|
|
450
|
-
|
|
451
|
-
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_asciiWords.js
|
|
452
|
-
var require_asciiWords = __commonJS({
|
|
453
|
-
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_asciiWords.js"(exports$1, module) {
|
|
454
|
-
var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
|
|
455
|
-
function asciiWords(string) {
|
|
456
|
-
return string.match(reAsciiWord) || [];
|
|
457
|
-
}
|
|
458
|
-
module.exports = asciiWords;
|
|
459
|
-
}
|
|
460
|
-
});
|
|
461
|
-
|
|
462
|
-
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasUnicodeWord.js
|
|
463
|
-
var require_hasUnicodeWord = __commonJS({
|
|
464
|
-
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasUnicodeWord.js"(exports$1, module) {
|
|
465
|
-
var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;
|
|
466
|
-
function hasUnicodeWord(string) {
|
|
467
|
-
return reHasUnicodeWord.test(string);
|
|
468
|
-
}
|
|
469
|
-
module.exports = hasUnicodeWord;
|
|
470
|
-
}
|
|
471
|
-
});
|
|
472
|
-
|
|
473
|
-
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_unicodeWords.js
|
|
474
|
-
var require_unicodeWords = __commonJS({
|
|
475
|
-
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_unicodeWords.js"(exports$1, module) {
|
|
476
|
-
var rsAstralRange = "\\ud800-\\udfff";
|
|
477
|
-
var rsComboMarksRange = "\\u0300-\\u036f";
|
|
478
|
-
var reComboHalfMarksRange = "\\ufe20-\\ufe2f";
|
|
479
|
-
var rsComboSymbolsRange = "\\u20d0-\\u20ff";
|
|
480
|
-
var rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;
|
|
481
|
-
var rsDingbatRange = "\\u2700-\\u27bf";
|
|
482
|
-
var rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff";
|
|
483
|
-
var rsMathOpRange = "\\xac\\xb1\\xd7\\xf7";
|
|
484
|
-
var rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf";
|
|
485
|
-
var rsPunctuationRange = "\\u2000-\\u206f";
|
|
486
|
-
var rsSpaceRange = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000";
|
|
487
|
-
var rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde";
|
|
488
|
-
var rsVarRange = "\\ufe0e\\ufe0f";
|
|
489
|
-
var rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;
|
|
490
|
-
var rsApos = "['\u2019]";
|
|
491
|
-
var rsBreak = "[" + rsBreakRange + "]";
|
|
492
|
-
var rsCombo = "[" + rsComboRange + "]";
|
|
493
|
-
var rsDigits = "\\d+";
|
|
494
|
-
var rsDingbat = "[" + rsDingbatRange + "]";
|
|
495
|
-
var rsLower = "[" + rsLowerRange + "]";
|
|
496
|
-
var rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]";
|
|
497
|
-
var rsFitz = "\\ud83c[\\udffb-\\udfff]";
|
|
498
|
-
var rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")";
|
|
499
|
-
var rsNonAstral = "[^" + rsAstralRange + "]";
|
|
500
|
-
var rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}";
|
|
501
|
-
var rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]";
|
|
502
|
-
var rsUpper = "[" + rsUpperRange + "]";
|
|
503
|
-
var rsZWJ = "\\u200d";
|
|
504
|
-
var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")";
|
|
505
|
-
var rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")";
|
|
506
|
-
var rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?";
|
|
507
|
-
var rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?";
|
|
508
|
-
var reOptMod = rsModifier + "?";
|
|
509
|
-
var rsOptVar = "[" + rsVarRange + "]?";
|
|
510
|
-
var rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*";
|
|
511
|
-
var rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])";
|
|
512
|
-
var rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])";
|
|
513
|
-
var rsSeq = rsOptVar + reOptMod + rsOptJoin;
|
|
514
|
-
var rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq;
|
|
515
|
-
var reUnicodeWord = RegExp([
|
|
516
|
-
rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")",
|
|
517
|
-
rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")",
|
|
518
|
-
rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower,
|
|
519
|
-
rsUpper + "+" + rsOptContrUpper,
|
|
520
|
-
rsOrdUpper,
|
|
521
|
-
rsOrdLower,
|
|
522
|
-
rsDigits,
|
|
523
|
-
rsEmoji
|
|
524
|
-
].join("|"), "g");
|
|
525
|
-
function unicodeWords(string) {
|
|
526
|
-
return string.match(reUnicodeWord) || [];
|
|
527
|
-
}
|
|
528
|
-
module.exports = unicodeWords;
|
|
529
|
-
}
|
|
530
|
-
});
|
|
531
|
-
|
|
532
|
-
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/words.js
|
|
533
|
-
var require_words = __commonJS({
|
|
534
|
-
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/words.js"(exports$1, module) {
|
|
535
|
-
var asciiWords = require_asciiWords();
|
|
536
|
-
var hasUnicodeWord = require_hasUnicodeWord();
|
|
537
|
-
var toString = require_toString();
|
|
538
|
-
var unicodeWords = require_unicodeWords();
|
|
539
|
-
function words(string, pattern, guard) {
|
|
540
|
-
string = toString(string);
|
|
541
|
-
pattern = guard ? void 0 : pattern;
|
|
542
|
-
if (pattern === void 0) {
|
|
543
|
-
return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);
|
|
544
|
-
}
|
|
545
|
-
return string.match(pattern) || [];
|
|
546
|
-
}
|
|
547
|
-
module.exports = words;
|
|
548
|
-
}
|
|
549
|
-
});
|
|
550
|
-
|
|
551
|
-
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createCompounder.js
|
|
552
|
-
var require_createCompounder = __commonJS({
|
|
553
|
-
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createCompounder.js"(exports$1, module) {
|
|
554
|
-
var arrayReduce = require_arrayReduce();
|
|
555
|
-
var deburr = require_deburr();
|
|
556
|
-
var words = require_words();
|
|
557
|
-
var rsApos = "['\u2019]";
|
|
558
|
-
var reApos = RegExp(rsApos, "g");
|
|
559
|
-
function createCompounder(callback) {
|
|
560
|
-
return function(string) {
|
|
561
|
-
return arrayReduce(words(deburr(string).replace(reApos, "")), callback, "");
|
|
562
|
-
};
|
|
563
|
-
}
|
|
564
|
-
module.exports = createCompounder;
|
|
565
|
-
}
|
|
566
|
-
});
|
|
567
|
-
|
|
568
|
-
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/kebabCase.js
|
|
569
|
-
var require_kebabCase = __commonJS({
|
|
570
|
-
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/kebabCase.js"(exports$1, module) {
|
|
571
|
-
var createCompounder = require_createCompounder();
|
|
572
|
-
var kebabCase3 = createCompounder(function(result, word, index) {
|
|
573
|
-
return result + (index ? "-" : "") + word.toLowerCase();
|
|
574
|
-
});
|
|
575
|
-
module.exports = kebabCase3;
|
|
576
|
-
}
|
|
577
|
-
});
|
|
578
|
-
|
|
579
200
|
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSlice.js
|
|
580
201
|
var require_baseSlice = __commonJS({
|
|
581
202
|
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSlice.js"(exports$1, module) {
|
|
@@ -725,135 +346,875 @@ var require_capitalize = __commonJS({
|
|
|
725
346
|
}
|
|
726
347
|
});
|
|
727
348
|
|
|
728
|
-
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/
|
|
729
|
-
var
|
|
730
|
-
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
return result + (index ? capitalize(word) : word);
|
|
736
|
-
});
|
|
737
|
-
module.exports = camelCase2;
|
|
738
|
-
}
|
|
739
|
-
});
|
|
740
|
-
|
|
741
|
-
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/snakeCase.js
|
|
742
|
-
var require_snakeCase = __commonJS({
|
|
743
|
-
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/snakeCase.js"(exports$1, module) {
|
|
744
|
-
var createCompounder = require_createCompounder();
|
|
745
|
-
var snakeCase2 = createCompounder(function(result, word, index) {
|
|
746
|
-
return result + (index ? "_" : "") + word.toLowerCase();
|
|
747
|
-
});
|
|
748
|
-
module.exports = snakeCase2;
|
|
749
|
-
}
|
|
750
|
-
});
|
|
751
|
-
|
|
752
|
-
// src/model/DeployMode.ts
|
|
753
|
-
var HostedMode = /* @__PURE__ */ ((HostedMode2) => {
|
|
754
|
-
HostedMode2[HostedMode2["NORMAL"] = 1] = "NORMAL";
|
|
755
|
-
HostedMode2[HostedMode2["OVERLAP"] = 16] = "OVERLAP";
|
|
756
|
-
HostedMode2[HostedMode2["WALLPAPER"] = 256] = "WALLPAPER";
|
|
757
|
-
HostedMode2[HostedMode2["SCREEN"] = 4096] = "SCREEN";
|
|
758
|
-
HostedMode2[HostedMode2["BACKGROUND"] = 65536] = "BACKGROUND";
|
|
759
|
-
HostedMode2[HostedMode2["PAGE"] = 1048576] = "PAGE";
|
|
760
|
-
HostedMode2[HostedMode2["ALL"] = 1118481] = "ALL";
|
|
761
|
-
return HostedMode2;
|
|
762
|
-
})(HostedMode || {});
|
|
763
|
-
var DeployMode = /* @__PURE__ */ ((DeployMode2) => {
|
|
764
|
-
DeployMode2[DeployMode2["NORMAL"] = 1] = "NORMAL";
|
|
765
|
-
DeployMode2[DeployMode2["OVERLAP"] = 16] = "OVERLAP";
|
|
766
|
-
DeployMode2[DeployMode2["BACKGROUND"] = 65536] = "BACKGROUND";
|
|
767
|
-
DeployMode2[DeployMode2["TRAY"] = 256] = "TRAY";
|
|
768
|
-
DeployMode2[DeployMode2["ALL"] = 1118481] = "ALL";
|
|
769
|
-
return DeployMode2;
|
|
770
|
-
})(DeployMode || {});
|
|
771
|
-
|
|
772
|
-
// src/utils/ElectronUtils.ts
|
|
773
|
-
var ElectronUtils = class {
|
|
774
|
-
static hasElectronApi() {
|
|
775
|
-
return this.getAPI() != null;
|
|
776
|
-
}
|
|
777
|
-
/**
|
|
778
|
-
* 获取ElectronAPI
|
|
779
|
-
* windows api
|
|
780
|
-
*/
|
|
781
|
-
static getAPI() {
|
|
782
|
-
if (Reflect.has(window, "electronAPI")) {
|
|
783
|
-
return window.electronAPI;
|
|
784
|
-
} else if (Reflect.has(window.parent, "electronAPI")) {
|
|
785
|
-
return window.parent.electronAPI;
|
|
786
|
-
}
|
|
787
|
-
return null;
|
|
788
|
-
}
|
|
789
|
-
static async invokeMethod(channel, method, ...args) {
|
|
790
|
-
return this.getAPI()?.invoke(channel, method, ...args);
|
|
791
|
-
}
|
|
792
|
-
static async invoke(channel, ...args) {
|
|
793
|
-
return this.getAPI()?.invoke(channel, ...args);
|
|
794
|
-
}
|
|
795
|
-
};
|
|
796
|
-
|
|
797
|
-
// src/utils/LanguageUtils.ts
|
|
798
|
-
var LanguageUtils = class {
|
|
799
|
-
static findText(langMap, localeCode) {
|
|
800
|
-
const locales = Object.keys(langMap).map((key) => new Intl.Locale(key));
|
|
801
|
-
const targetLocale = new Intl.Locale(localeCode);
|
|
802
|
-
let find2 = locales.find((locale) => locale.baseName == targetLocale.baseName);
|
|
803
|
-
if (!find2) {
|
|
804
|
-
find2 = locales.find((locale) => locale.language == targetLocale.language);
|
|
805
|
-
}
|
|
806
|
-
return find2;
|
|
807
|
-
}
|
|
808
|
-
/**
|
|
809
|
-
* Get text from `LanguageTextMap` by Unicode locale identifier.
|
|
810
|
-
* `localeCode` > `localeCode` without region > browser default language > English > first language
|
|
811
|
-
* @param langMap 对象
|
|
812
|
-
* @param {LanguageCode} localeCode `zh-CN`、`en-US`、 `zh`、`en`
|
|
813
|
-
* @param fallbackToBrowser
|
|
814
|
-
*/
|
|
815
|
-
static getTextByLocate(langMap, localeCode, fallbackToBrowser = true) {
|
|
816
|
-
let result;
|
|
817
|
-
if (localeCode) {
|
|
818
|
-
if (localeCode in langMap) {
|
|
819
|
-
return langMap[localeCode];
|
|
820
|
-
}
|
|
821
|
-
}
|
|
822
|
-
if (localeCode) {
|
|
823
|
-
const find2 = this.findText(langMap, localeCode);
|
|
824
|
-
if (find2) {
|
|
825
|
-
return langMap[find2.baseName];
|
|
826
|
-
}
|
|
827
|
-
}
|
|
828
|
-
if (result == void 0 && fallbackToBrowser) {
|
|
829
|
-
if (typeof navigator != "undefined" && navigator.languages) {
|
|
830
|
-
const langCode = navigator.language;
|
|
831
|
-
result = this.getTextByLocate(langMap, langCode, false);
|
|
832
|
-
if (result != void 0) {
|
|
833
|
-
return result;
|
|
834
|
-
}
|
|
349
|
+
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayReduce.js
|
|
350
|
+
var require_arrayReduce = __commonJS({
|
|
351
|
+
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayReduce.js"(exports$1, module) {
|
|
352
|
+
function arrayReduce(array, iteratee, accumulator, initAccum) {
|
|
353
|
+
var index = -1, length = array == null ? 0 : array.length;
|
|
354
|
+
if (initAccum && length) {
|
|
355
|
+
accumulator = array[++index];
|
|
835
356
|
}
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
const find2 = this.findText(langMap, "en");
|
|
839
|
-
if (find2) {
|
|
840
|
-
return langMap[find2.baseName];
|
|
357
|
+
while (++index < length) {
|
|
358
|
+
accumulator = iteratee(accumulator, array[index], index, array);
|
|
841
359
|
}
|
|
360
|
+
return accumulator;
|
|
842
361
|
}
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
362
|
+
module.exports = arrayReduce;
|
|
363
|
+
}
|
|
364
|
+
});
|
|
365
|
+
|
|
366
|
+
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePropertyOf.js
|
|
367
|
+
var require_basePropertyOf = __commonJS({
|
|
368
|
+
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePropertyOf.js"(exports$1, module) {
|
|
369
|
+
function basePropertyOf(object) {
|
|
370
|
+
return function(key) {
|
|
371
|
+
return object == null ? void 0 : object[key];
|
|
372
|
+
};
|
|
848
373
|
}
|
|
849
|
-
|
|
374
|
+
module.exports = basePropertyOf;
|
|
850
375
|
}
|
|
851
|
-
};
|
|
376
|
+
});
|
|
852
377
|
|
|
853
|
-
//
|
|
854
|
-
var
|
|
855
|
-
|
|
856
|
-
|
|
378
|
+
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_deburrLetter.js
|
|
379
|
+
var require_deburrLetter = __commonJS({
|
|
380
|
+
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_deburrLetter.js"(exports$1, module) {
|
|
381
|
+
var basePropertyOf = require_basePropertyOf();
|
|
382
|
+
var deburredLetters = {
|
|
383
|
+
// Latin-1 Supplement block.
|
|
384
|
+
"\xC0": "A",
|
|
385
|
+
"\xC1": "A",
|
|
386
|
+
"\xC2": "A",
|
|
387
|
+
"\xC3": "A",
|
|
388
|
+
"\xC4": "A",
|
|
389
|
+
"\xC5": "A",
|
|
390
|
+
"\xE0": "a",
|
|
391
|
+
"\xE1": "a",
|
|
392
|
+
"\xE2": "a",
|
|
393
|
+
"\xE3": "a",
|
|
394
|
+
"\xE4": "a",
|
|
395
|
+
"\xE5": "a",
|
|
396
|
+
"\xC7": "C",
|
|
397
|
+
"\xE7": "c",
|
|
398
|
+
"\xD0": "D",
|
|
399
|
+
"\xF0": "d",
|
|
400
|
+
"\xC8": "E",
|
|
401
|
+
"\xC9": "E",
|
|
402
|
+
"\xCA": "E",
|
|
403
|
+
"\xCB": "E",
|
|
404
|
+
"\xE8": "e",
|
|
405
|
+
"\xE9": "e",
|
|
406
|
+
"\xEA": "e",
|
|
407
|
+
"\xEB": "e",
|
|
408
|
+
"\xCC": "I",
|
|
409
|
+
"\xCD": "I",
|
|
410
|
+
"\xCE": "I",
|
|
411
|
+
"\xCF": "I",
|
|
412
|
+
"\xEC": "i",
|
|
413
|
+
"\xED": "i",
|
|
414
|
+
"\xEE": "i",
|
|
415
|
+
"\xEF": "i",
|
|
416
|
+
"\xD1": "N",
|
|
417
|
+
"\xF1": "n",
|
|
418
|
+
"\xD2": "O",
|
|
419
|
+
"\xD3": "O",
|
|
420
|
+
"\xD4": "O",
|
|
421
|
+
"\xD5": "O",
|
|
422
|
+
"\xD6": "O",
|
|
423
|
+
"\xD8": "O",
|
|
424
|
+
"\xF2": "o",
|
|
425
|
+
"\xF3": "o",
|
|
426
|
+
"\xF4": "o",
|
|
427
|
+
"\xF5": "o",
|
|
428
|
+
"\xF6": "o",
|
|
429
|
+
"\xF8": "o",
|
|
430
|
+
"\xD9": "U",
|
|
431
|
+
"\xDA": "U",
|
|
432
|
+
"\xDB": "U",
|
|
433
|
+
"\xDC": "U",
|
|
434
|
+
"\xF9": "u",
|
|
435
|
+
"\xFA": "u",
|
|
436
|
+
"\xFB": "u",
|
|
437
|
+
"\xFC": "u",
|
|
438
|
+
"\xDD": "Y",
|
|
439
|
+
"\xFD": "y",
|
|
440
|
+
"\xFF": "y",
|
|
441
|
+
"\xC6": "Ae",
|
|
442
|
+
"\xE6": "ae",
|
|
443
|
+
"\xDE": "Th",
|
|
444
|
+
"\xFE": "th",
|
|
445
|
+
"\xDF": "ss",
|
|
446
|
+
// Latin Extended-A block.
|
|
447
|
+
"\u0100": "A",
|
|
448
|
+
"\u0102": "A",
|
|
449
|
+
"\u0104": "A",
|
|
450
|
+
"\u0101": "a",
|
|
451
|
+
"\u0103": "a",
|
|
452
|
+
"\u0105": "a",
|
|
453
|
+
"\u0106": "C",
|
|
454
|
+
"\u0108": "C",
|
|
455
|
+
"\u010A": "C",
|
|
456
|
+
"\u010C": "C",
|
|
457
|
+
"\u0107": "c",
|
|
458
|
+
"\u0109": "c",
|
|
459
|
+
"\u010B": "c",
|
|
460
|
+
"\u010D": "c",
|
|
461
|
+
"\u010E": "D",
|
|
462
|
+
"\u0110": "D",
|
|
463
|
+
"\u010F": "d",
|
|
464
|
+
"\u0111": "d",
|
|
465
|
+
"\u0112": "E",
|
|
466
|
+
"\u0114": "E",
|
|
467
|
+
"\u0116": "E",
|
|
468
|
+
"\u0118": "E",
|
|
469
|
+
"\u011A": "E",
|
|
470
|
+
"\u0113": "e",
|
|
471
|
+
"\u0115": "e",
|
|
472
|
+
"\u0117": "e",
|
|
473
|
+
"\u0119": "e",
|
|
474
|
+
"\u011B": "e",
|
|
475
|
+
"\u011C": "G",
|
|
476
|
+
"\u011E": "G",
|
|
477
|
+
"\u0120": "G",
|
|
478
|
+
"\u0122": "G",
|
|
479
|
+
"\u011D": "g",
|
|
480
|
+
"\u011F": "g",
|
|
481
|
+
"\u0121": "g",
|
|
482
|
+
"\u0123": "g",
|
|
483
|
+
"\u0124": "H",
|
|
484
|
+
"\u0126": "H",
|
|
485
|
+
"\u0125": "h",
|
|
486
|
+
"\u0127": "h",
|
|
487
|
+
"\u0128": "I",
|
|
488
|
+
"\u012A": "I",
|
|
489
|
+
"\u012C": "I",
|
|
490
|
+
"\u012E": "I",
|
|
491
|
+
"\u0130": "I",
|
|
492
|
+
"\u0129": "i",
|
|
493
|
+
"\u012B": "i",
|
|
494
|
+
"\u012D": "i",
|
|
495
|
+
"\u012F": "i",
|
|
496
|
+
"\u0131": "i",
|
|
497
|
+
"\u0134": "J",
|
|
498
|
+
"\u0135": "j",
|
|
499
|
+
"\u0136": "K",
|
|
500
|
+
"\u0137": "k",
|
|
501
|
+
"\u0138": "k",
|
|
502
|
+
"\u0139": "L",
|
|
503
|
+
"\u013B": "L",
|
|
504
|
+
"\u013D": "L",
|
|
505
|
+
"\u013F": "L",
|
|
506
|
+
"\u0141": "L",
|
|
507
|
+
"\u013A": "l",
|
|
508
|
+
"\u013C": "l",
|
|
509
|
+
"\u013E": "l",
|
|
510
|
+
"\u0140": "l",
|
|
511
|
+
"\u0142": "l",
|
|
512
|
+
"\u0143": "N",
|
|
513
|
+
"\u0145": "N",
|
|
514
|
+
"\u0147": "N",
|
|
515
|
+
"\u014A": "N",
|
|
516
|
+
"\u0144": "n",
|
|
517
|
+
"\u0146": "n",
|
|
518
|
+
"\u0148": "n",
|
|
519
|
+
"\u014B": "n",
|
|
520
|
+
"\u014C": "O",
|
|
521
|
+
"\u014E": "O",
|
|
522
|
+
"\u0150": "O",
|
|
523
|
+
"\u014D": "o",
|
|
524
|
+
"\u014F": "o",
|
|
525
|
+
"\u0151": "o",
|
|
526
|
+
"\u0154": "R",
|
|
527
|
+
"\u0156": "R",
|
|
528
|
+
"\u0158": "R",
|
|
529
|
+
"\u0155": "r",
|
|
530
|
+
"\u0157": "r",
|
|
531
|
+
"\u0159": "r",
|
|
532
|
+
"\u015A": "S",
|
|
533
|
+
"\u015C": "S",
|
|
534
|
+
"\u015E": "S",
|
|
535
|
+
"\u0160": "S",
|
|
536
|
+
"\u015B": "s",
|
|
537
|
+
"\u015D": "s",
|
|
538
|
+
"\u015F": "s",
|
|
539
|
+
"\u0161": "s",
|
|
540
|
+
"\u0162": "T",
|
|
541
|
+
"\u0164": "T",
|
|
542
|
+
"\u0166": "T",
|
|
543
|
+
"\u0163": "t",
|
|
544
|
+
"\u0165": "t",
|
|
545
|
+
"\u0167": "t",
|
|
546
|
+
"\u0168": "U",
|
|
547
|
+
"\u016A": "U",
|
|
548
|
+
"\u016C": "U",
|
|
549
|
+
"\u016E": "U",
|
|
550
|
+
"\u0170": "U",
|
|
551
|
+
"\u0172": "U",
|
|
552
|
+
"\u0169": "u",
|
|
553
|
+
"\u016B": "u",
|
|
554
|
+
"\u016D": "u",
|
|
555
|
+
"\u016F": "u",
|
|
556
|
+
"\u0171": "u",
|
|
557
|
+
"\u0173": "u",
|
|
558
|
+
"\u0174": "W",
|
|
559
|
+
"\u0175": "w",
|
|
560
|
+
"\u0176": "Y",
|
|
561
|
+
"\u0177": "y",
|
|
562
|
+
"\u0178": "Y",
|
|
563
|
+
"\u0179": "Z",
|
|
564
|
+
"\u017B": "Z",
|
|
565
|
+
"\u017D": "Z",
|
|
566
|
+
"\u017A": "z",
|
|
567
|
+
"\u017C": "z",
|
|
568
|
+
"\u017E": "z",
|
|
569
|
+
"\u0132": "IJ",
|
|
570
|
+
"\u0133": "ij",
|
|
571
|
+
"\u0152": "Oe",
|
|
572
|
+
"\u0153": "oe",
|
|
573
|
+
"\u0149": "'n",
|
|
574
|
+
"\u017F": "s"
|
|
575
|
+
};
|
|
576
|
+
var deburrLetter = basePropertyOf(deburredLetters);
|
|
577
|
+
module.exports = deburrLetter;
|
|
578
|
+
}
|
|
579
|
+
});
|
|
580
|
+
|
|
581
|
+
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/deburr.js
|
|
582
|
+
var require_deburr = __commonJS({
|
|
583
|
+
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/deburr.js"(exports$1, module) {
|
|
584
|
+
var deburrLetter = require_deburrLetter();
|
|
585
|
+
var toString = require_toString();
|
|
586
|
+
var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
|
|
587
|
+
var rsComboMarksRange = "\\u0300-\\u036f";
|
|
588
|
+
var reComboHalfMarksRange = "\\ufe20-\\ufe2f";
|
|
589
|
+
var rsComboSymbolsRange = "\\u20d0-\\u20ff";
|
|
590
|
+
var rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;
|
|
591
|
+
var rsCombo = "[" + rsComboRange + "]";
|
|
592
|
+
var reComboMark = RegExp(rsCombo, "g");
|
|
593
|
+
function deburr(string) {
|
|
594
|
+
string = toString(string);
|
|
595
|
+
return string && string.replace(reLatin, deburrLetter).replace(reComboMark, "");
|
|
596
|
+
}
|
|
597
|
+
module.exports = deburr;
|
|
598
|
+
}
|
|
599
|
+
});
|
|
600
|
+
|
|
601
|
+
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_asciiWords.js
|
|
602
|
+
var require_asciiWords = __commonJS({
|
|
603
|
+
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_asciiWords.js"(exports$1, module) {
|
|
604
|
+
var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
|
|
605
|
+
function asciiWords(string) {
|
|
606
|
+
return string.match(reAsciiWord) || [];
|
|
607
|
+
}
|
|
608
|
+
module.exports = asciiWords;
|
|
609
|
+
}
|
|
610
|
+
});
|
|
611
|
+
|
|
612
|
+
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasUnicodeWord.js
|
|
613
|
+
var require_hasUnicodeWord = __commonJS({
|
|
614
|
+
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasUnicodeWord.js"(exports$1, module) {
|
|
615
|
+
var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;
|
|
616
|
+
function hasUnicodeWord(string) {
|
|
617
|
+
return reHasUnicodeWord.test(string);
|
|
618
|
+
}
|
|
619
|
+
module.exports = hasUnicodeWord;
|
|
620
|
+
}
|
|
621
|
+
});
|
|
622
|
+
|
|
623
|
+
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_unicodeWords.js
|
|
624
|
+
var require_unicodeWords = __commonJS({
|
|
625
|
+
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_unicodeWords.js"(exports$1, module) {
|
|
626
|
+
var rsAstralRange = "\\ud800-\\udfff";
|
|
627
|
+
var rsComboMarksRange = "\\u0300-\\u036f";
|
|
628
|
+
var reComboHalfMarksRange = "\\ufe20-\\ufe2f";
|
|
629
|
+
var rsComboSymbolsRange = "\\u20d0-\\u20ff";
|
|
630
|
+
var rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;
|
|
631
|
+
var rsDingbatRange = "\\u2700-\\u27bf";
|
|
632
|
+
var rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff";
|
|
633
|
+
var rsMathOpRange = "\\xac\\xb1\\xd7\\xf7";
|
|
634
|
+
var rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf";
|
|
635
|
+
var rsPunctuationRange = "\\u2000-\\u206f";
|
|
636
|
+
var rsSpaceRange = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000";
|
|
637
|
+
var rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde";
|
|
638
|
+
var rsVarRange = "\\ufe0e\\ufe0f";
|
|
639
|
+
var rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;
|
|
640
|
+
var rsApos = "['\u2019]";
|
|
641
|
+
var rsBreak = "[" + rsBreakRange + "]";
|
|
642
|
+
var rsCombo = "[" + rsComboRange + "]";
|
|
643
|
+
var rsDigits = "\\d+";
|
|
644
|
+
var rsDingbat = "[" + rsDingbatRange + "]";
|
|
645
|
+
var rsLower = "[" + rsLowerRange + "]";
|
|
646
|
+
var rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]";
|
|
647
|
+
var rsFitz = "\\ud83c[\\udffb-\\udfff]";
|
|
648
|
+
var rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")";
|
|
649
|
+
var rsNonAstral = "[^" + rsAstralRange + "]";
|
|
650
|
+
var rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}";
|
|
651
|
+
var rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]";
|
|
652
|
+
var rsUpper = "[" + rsUpperRange + "]";
|
|
653
|
+
var rsZWJ = "\\u200d";
|
|
654
|
+
var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")";
|
|
655
|
+
var rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")";
|
|
656
|
+
var rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?";
|
|
657
|
+
var rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?";
|
|
658
|
+
var reOptMod = rsModifier + "?";
|
|
659
|
+
var rsOptVar = "[" + rsVarRange + "]?";
|
|
660
|
+
var rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*";
|
|
661
|
+
var rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])";
|
|
662
|
+
var rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])";
|
|
663
|
+
var rsSeq = rsOptVar + reOptMod + rsOptJoin;
|
|
664
|
+
var rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq;
|
|
665
|
+
var reUnicodeWord = RegExp([
|
|
666
|
+
rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")",
|
|
667
|
+
rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")",
|
|
668
|
+
rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower,
|
|
669
|
+
rsUpper + "+" + rsOptContrUpper,
|
|
670
|
+
rsOrdUpper,
|
|
671
|
+
rsOrdLower,
|
|
672
|
+
rsDigits,
|
|
673
|
+
rsEmoji
|
|
674
|
+
].join("|"), "g");
|
|
675
|
+
function unicodeWords(string) {
|
|
676
|
+
return string.match(reUnicodeWord) || [];
|
|
677
|
+
}
|
|
678
|
+
module.exports = unicodeWords;
|
|
679
|
+
}
|
|
680
|
+
});
|
|
681
|
+
|
|
682
|
+
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/words.js
|
|
683
|
+
var require_words = __commonJS({
|
|
684
|
+
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/words.js"(exports$1, module) {
|
|
685
|
+
var asciiWords = require_asciiWords();
|
|
686
|
+
var hasUnicodeWord = require_hasUnicodeWord();
|
|
687
|
+
var toString = require_toString();
|
|
688
|
+
var unicodeWords = require_unicodeWords();
|
|
689
|
+
function words(string, pattern, guard) {
|
|
690
|
+
string = toString(string);
|
|
691
|
+
pattern = guard ? void 0 : pattern;
|
|
692
|
+
if (pattern === void 0) {
|
|
693
|
+
return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);
|
|
694
|
+
}
|
|
695
|
+
return string.match(pattern) || [];
|
|
696
|
+
}
|
|
697
|
+
module.exports = words;
|
|
698
|
+
}
|
|
699
|
+
});
|
|
700
|
+
|
|
701
|
+
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createCompounder.js
|
|
702
|
+
var require_createCompounder = __commonJS({
|
|
703
|
+
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createCompounder.js"(exports$1, module) {
|
|
704
|
+
var arrayReduce = require_arrayReduce();
|
|
705
|
+
var deburr = require_deburr();
|
|
706
|
+
var words = require_words();
|
|
707
|
+
var rsApos = "['\u2019]";
|
|
708
|
+
var reApos = RegExp(rsApos, "g");
|
|
709
|
+
function createCompounder(callback) {
|
|
710
|
+
return function(string) {
|
|
711
|
+
return arrayReduce(words(deburr(string).replace(reApos, "")), callback, "");
|
|
712
|
+
};
|
|
713
|
+
}
|
|
714
|
+
module.exports = createCompounder;
|
|
715
|
+
}
|
|
716
|
+
});
|
|
717
|
+
|
|
718
|
+
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/camelCase.js
|
|
719
|
+
var require_camelCase = __commonJS({
|
|
720
|
+
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/camelCase.js"(exports$1, module) {
|
|
721
|
+
var capitalize = require_capitalize();
|
|
722
|
+
var createCompounder = require_createCompounder();
|
|
723
|
+
var camelCase3 = createCompounder(function(result, word, index) {
|
|
724
|
+
word = word.toLowerCase();
|
|
725
|
+
return result + (index ? capitalize(word) : word);
|
|
726
|
+
});
|
|
727
|
+
module.exports = camelCase3;
|
|
728
|
+
}
|
|
729
|
+
});
|
|
730
|
+
|
|
731
|
+
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/kebabCase.js
|
|
732
|
+
var require_kebabCase = __commonJS({
|
|
733
|
+
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/kebabCase.js"(exports$1, module) {
|
|
734
|
+
var createCompounder = require_createCompounder();
|
|
735
|
+
var kebabCase4 = createCompounder(function(result, word, index) {
|
|
736
|
+
return result + (index ? "-" : "") + word.toLowerCase();
|
|
737
|
+
});
|
|
738
|
+
module.exports = kebabCase4;
|
|
739
|
+
}
|
|
740
|
+
});
|
|
741
|
+
|
|
742
|
+
// ../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/snakeCase.js
|
|
743
|
+
var require_snakeCase = __commonJS({
|
|
744
|
+
"../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/snakeCase.js"(exports$1, module) {
|
|
745
|
+
var createCompounder = require_createCompounder();
|
|
746
|
+
var snakeCase2 = createCompounder(function(result, word, index) {
|
|
747
|
+
return result + (index ? "_" : "") + word.toLowerCase();
|
|
748
|
+
});
|
|
749
|
+
module.exports = snakeCase2;
|
|
750
|
+
}
|
|
751
|
+
});
|
|
752
|
+
|
|
753
|
+
// src/model/AppNotification.ts
|
|
754
|
+
var NotificationSize = /* @__PURE__ */ ((NotificationSize2) => {
|
|
755
|
+
NotificationSize2["SMALL"] = "small";
|
|
756
|
+
NotificationSize2["NORMAL"] = "normal";
|
|
757
|
+
NotificationSize2["LARGE"] = "large";
|
|
758
|
+
return NotificationSize2;
|
|
759
|
+
})(NotificationSize || {});
|
|
760
|
+
var AppNotification = class {
|
|
761
|
+
type = "info";
|
|
762
|
+
message;
|
|
763
|
+
title;
|
|
764
|
+
targetTime;
|
|
765
|
+
/**
|
|
766
|
+
* 持续时间,单位毫秒
|
|
767
|
+
*/
|
|
768
|
+
duration;
|
|
769
|
+
/**
|
|
770
|
+
* IconPark图标
|
|
771
|
+
* @example close-one
|
|
772
|
+
* @see [IconPark](https://iconpark.oceanengine.com/official)
|
|
773
|
+
*/
|
|
774
|
+
icon;
|
|
775
|
+
color;
|
|
776
|
+
backgroundColor;
|
|
777
|
+
confirmButtonText;
|
|
778
|
+
cancelButtonText;
|
|
779
|
+
cancelBroadcast;
|
|
780
|
+
confirmBroadcast;
|
|
781
|
+
size;
|
|
782
|
+
url;
|
|
783
|
+
avatar;
|
|
784
|
+
audio;
|
|
785
|
+
lyric;
|
|
786
|
+
createdAt;
|
|
787
|
+
constructor(option) {
|
|
788
|
+
this.createdAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
789
|
+
this.type = option.type ?? "info";
|
|
790
|
+
this.title = option.title;
|
|
791
|
+
this.message = option.message;
|
|
792
|
+
this.targetTime = option.targetTime;
|
|
793
|
+
this.duration = option.duration ?? 5e3;
|
|
794
|
+
this.icon = option.icon;
|
|
795
|
+
this.color = option.color ?? "#5D8AC8";
|
|
796
|
+
this.confirmButtonText = option.confirmButtonText;
|
|
797
|
+
this.cancelButtonText = option.cancelButtonText;
|
|
798
|
+
this.cancelBroadcast = option.cancelBroadcast;
|
|
799
|
+
this.confirmBroadcast = option.confirmBroadcast;
|
|
800
|
+
this.size = option.size ?? "normal" /* NORMAL */;
|
|
801
|
+
this.audio = option.audio;
|
|
802
|
+
this.avatar = option.avatar;
|
|
803
|
+
this.lyric = option.lyric;
|
|
804
|
+
this.backgroundColor = option.backgroundColor ?? "#000000";
|
|
805
|
+
}
|
|
806
|
+
};
|
|
807
|
+
var AppReminderNotification = class extends AppNotification {
|
|
808
|
+
constructor(option) {
|
|
809
|
+
super(option);
|
|
810
|
+
this.type = "reminder";
|
|
811
|
+
this.size = "large" /* LARGE */;
|
|
812
|
+
}
|
|
813
|
+
};
|
|
814
|
+
|
|
815
|
+
// src/model/AppTheme.ts
|
|
816
|
+
var import_camelCase = __toESM(require_camelCase());
|
|
817
|
+
var import_kebabCase = __toESM(require_kebabCase());
|
|
818
|
+
var DefaultThemeDark = {
|
|
819
|
+
useGlobalTheme: true,
|
|
820
|
+
mode: "dark",
|
|
821
|
+
colors: {
|
|
822
|
+
background: "hsl(0 0% 10%)",
|
|
823
|
+
foreground: "hsl(0 0% 98%)",
|
|
824
|
+
card: "hsl(0 0% 12%)",
|
|
825
|
+
cardForeground: "hsl(0 0% 98%)",
|
|
826
|
+
popover: "hsl(0 0% 12%)",
|
|
827
|
+
popoverForeground: "hsl(0 0% 98%)",
|
|
828
|
+
primary: "hsl(210 100% 56%)",
|
|
829
|
+
primaryForeground: "#fff",
|
|
830
|
+
secondary: "hsl(0 0% 20%)",
|
|
831
|
+
secondaryForeground: "#fff",
|
|
832
|
+
muted: "hsl(0 0% 30%)",
|
|
833
|
+
mutedForeground: "hsl(0 0% 70%)",
|
|
834
|
+
accent: "hsl(210 100% 60%)",
|
|
835
|
+
accentForeground: "#fff",
|
|
836
|
+
destructive: "hsl(0 84% 60%)",
|
|
837
|
+
destructiveForeground: "#fff",
|
|
838
|
+
border: "hsl(0 0% 30%)",
|
|
839
|
+
input: "hsl(0 0% 25%)",
|
|
840
|
+
ring: "hsl(210 100% 60%)"
|
|
841
|
+
},
|
|
842
|
+
radius: {
|
|
843
|
+
sm: "6px",
|
|
844
|
+
md: "10px",
|
|
845
|
+
lg: "16px",
|
|
846
|
+
full: "9999px"
|
|
847
|
+
},
|
|
848
|
+
typography: {
|
|
849
|
+
fontFamily: "system-ui, sans-serif",
|
|
850
|
+
fontSize: "14px"
|
|
851
|
+
},
|
|
852
|
+
shadow: {
|
|
853
|
+
sm: "0 1px 2px rgba(0,0,0,0.2)",
|
|
854
|
+
md: "0 4px 6px rgba(0,0,0,0.3)",
|
|
855
|
+
lg: "0 10px 20px rgba(0,0,0,0.4)"
|
|
856
|
+
},
|
|
857
|
+
spacing: "0.5rem"
|
|
858
|
+
};
|
|
859
|
+
var DefaultThemeLight = {
|
|
860
|
+
...DefaultThemeDark,
|
|
861
|
+
mode: "light",
|
|
862
|
+
colors: {
|
|
863
|
+
background: "#ffffff",
|
|
864
|
+
foreground: "hsl(0 0% 10%)",
|
|
865
|
+
card: "#ffffff",
|
|
866
|
+
cardForeground: "hsl(0 0% 10%)",
|
|
867
|
+
popover: "#ffffff",
|
|
868
|
+
popoverForeground: "hsl(0 0% 10%)",
|
|
869
|
+
primary: "hsl(210 100% 56%)",
|
|
870
|
+
primaryForeground: "#fff",
|
|
871
|
+
secondary: "hsl(0 0% 90%)",
|
|
872
|
+
secondaryForeground: "hsl(0 0% 10%)",
|
|
873
|
+
muted: "hsl(0 0% 95%)",
|
|
874
|
+
mutedForeground: "hsl(0 0% 40%)",
|
|
875
|
+
accent: "hsl(210 100% 90%)",
|
|
876
|
+
accentForeground: "hsl(210 100% 40%)",
|
|
877
|
+
destructive: "hsl(0 84% 60%)",
|
|
878
|
+
destructiveForeground: "#fff",
|
|
879
|
+
border: "hsl(0 0% 90%)",
|
|
880
|
+
input: "hsl(0 0% 85%)",
|
|
881
|
+
ring: "hsl(210 100% 56%)"
|
|
882
|
+
},
|
|
883
|
+
shadow: {
|
|
884
|
+
sm: "0 1px 2px rgba(0,0,0,0.05)",
|
|
885
|
+
md: "0 4px 6px rgba(0,0,0,0.1)",
|
|
886
|
+
lg: "0 10px 20px rgba(0,0,0,0.15)"
|
|
887
|
+
}
|
|
888
|
+
};
|
|
889
|
+
var DefaultTheme = DefaultThemeDark;
|
|
890
|
+
var AppTheme = class _AppTheme {
|
|
891
|
+
useGlobalTheme;
|
|
892
|
+
mode;
|
|
893
|
+
colors;
|
|
894
|
+
radius;
|
|
895
|
+
typography;
|
|
896
|
+
shadow;
|
|
897
|
+
spacing;
|
|
898
|
+
constructor(options) {
|
|
899
|
+
let parsedOptions = {};
|
|
900
|
+
if (typeof options === "string") {
|
|
901
|
+
try {
|
|
902
|
+
parsedOptions = JSON.parse(options);
|
|
903
|
+
} catch (e) {
|
|
904
|
+
console.error("Failed to parse AppTheme options", e);
|
|
905
|
+
}
|
|
906
|
+
} else if (options) {
|
|
907
|
+
parsedOptions = options;
|
|
908
|
+
}
|
|
909
|
+
const baseTheme = parsedOptions.mode === "light" ? DefaultThemeLight : DefaultThemeDark;
|
|
910
|
+
merge(this, structuredClone(baseTheme), parsedOptions);
|
|
911
|
+
if (this.useGlobalTheme === void 0) {
|
|
912
|
+
this.useGlobalTheme = true;
|
|
913
|
+
}
|
|
914
|
+
}
|
|
915
|
+
static fromJSON(json) {
|
|
916
|
+
return new _AppTheme(json);
|
|
917
|
+
}
|
|
918
|
+
/**
|
|
919
|
+
* 兼容 V1 版本的 CSS 变量
|
|
920
|
+
*/
|
|
921
|
+
toLegacyCSSVariables(prefix = "--widget") {
|
|
922
|
+
const result = {};
|
|
923
|
+
if (this.colors) {
|
|
924
|
+
if (this.colors.background) {
|
|
925
|
+
result[`${prefix}-background-color`] = this.colors.background;
|
|
926
|
+
}
|
|
927
|
+
if (this.colors.foreground) {
|
|
928
|
+
result[`${prefix}-color`] = this.colors.foreground;
|
|
929
|
+
}
|
|
930
|
+
if (this.colors.primary) {
|
|
931
|
+
result[`${prefix}-primary-color`] = this.colors.primary;
|
|
932
|
+
}
|
|
933
|
+
if (this.colors.border) {
|
|
934
|
+
result[`${prefix}-border-color`] = this.colors.border;
|
|
935
|
+
result[`${prefix}-divider-color`] = this.colors.border;
|
|
936
|
+
result[`${prefix}-background-border-color`] = this.colors.border;
|
|
937
|
+
}
|
|
938
|
+
if (this.colors.ring) {
|
|
939
|
+
result[`${prefix}-shadow-color`] = this.colors.ring;
|
|
940
|
+
result[`${prefix}-background-box-shadow-color`] = this.colors.ring;
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
if (this.typography) {
|
|
944
|
+
if (this.typography.fontSize) {
|
|
945
|
+
result[`${prefix}-font-size`] = this.typography.fontSize;
|
|
946
|
+
}
|
|
947
|
+
if (this.typography.fontFamily) {
|
|
948
|
+
result[`${prefix}-font-family`] = this.typography.fontFamily;
|
|
949
|
+
}
|
|
950
|
+
}
|
|
951
|
+
if (this.radius) {
|
|
952
|
+
if (this.radius.lg) {
|
|
953
|
+
result[`${prefix}-border-radius`] = this.radius.lg;
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
if (this.spacing) {
|
|
957
|
+
result[`${prefix}-padding`] = this.spacing;
|
|
958
|
+
}
|
|
959
|
+
return result;
|
|
960
|
+
}
|
|
961
|
+
/**
|
|
962
|
+
* flatten tokens → CSS variables
|
|
963
|
+
*/
|
|
964
|
+
toCSSVariables(prefix = "--widget") {
|
|
965
|
+
const result = {};
|
|
966
|
+
const tokensToWalk = {
|
|
967
|
+
colors: this.colors,
|
|
968
|
+
radius: this.radius,
|
|
969
|
+
typography: this.typography,
|
|
970
|
+
shadow: this.shadow,
|
|
971
|
+
spacing: this.spacing
|
|
972
|
+
};
|
|
973
|
+
const walk = (obj, path = []) => {
|
|
974
|
+
Object.entries(obj).forEach(([key, value]) => {
|
|
975
|
+
if (value === void 0 || value === null) {
|
|
976
|
+
return;
|
|
977
|
+
}
|
|
978
|
+
const newPath = [...path, key];
|
|
979
|
+
if (typeof value === "object") {
|
|
980
|
+
walk(value, newPath);
|
|
981
|
+
} else {
|
|
982
|
+
const varName = `${prefix}-${newPath.map(import_kebabCase.default).join("-")}`;
|
|
983
|
+
result[varName] = String(value);
|
|
984
|
+
}
|
|
985
|
+
});
|
|
986
|
+
};
|
|
987
|
+
walk(tokensToWalk);
|
|
988
|
+
Object.assign(result, this.toLegacyCSSVariables(prefix));
|
|
989
|
+
return result;
|
|
990
|
+
}
|
|
991
|
+
toCSS(selector = ":root") {
|
|
992
|
+
const vars = this.toCSSVariables();
|
|
993
|
+
const body = Object.entries(vars).map(([k, v]) => ` ${k}: ${v};`).join("\n");
|
|
994
|
+
return `${selector} {
|
|
995
|
+
${body}
|
|
996
|
+
}`;
|
|
997
|
+
}
|
|
998
|
+
injectCSS(el = document.documentElement) {
|
|
999
|
+
const vars = this.toCSSVariables();
|
|
1000
|
+
Object.entries(vars).forEach(([k, v]) => {
|
|
1001
|
+
el.style.setProperty(k, v);
|
|
1002
|
+
});
|
|
1003
|
+
}
|
|
1004
|
+
removeCSS(el = document.documentElement) {
|
|
1005
|
+
const vars = this.toCSSVariables();
|
|
1006
|
+
Object.keys(vars).forEach((k) => el.style.removeProperty(k));
|
|
1007
|
+
}
|
|
1008
|
+
/**
|
|
1009
|
+
* 支持主题切换(light/dark)
|
|
1010
|
+
*/
|
|
1011
|
+
setMode(mode) {
|
|
1012
|
+
if (this.mode === mode) {
|
|
1013
|
+
return;
|
|
1014
|
+
}
|
|
1015
|
+
this.mode = mode;
|
|
1016
|
+
const baseTheme = mode === "light" ? DefaultThemeLight : DefaultThemeDark;
|
|
1017
|
+
this.colors = structuredClone(baseTheme.colors);
|
|
1018
|
+
this.shadow = structuredClone(baseTheme.shadow);
|
|
1019
|
+
}
|
|
1020
|
+
copy(partial) {
|
|
1021
|
+
return new _AppTheme(merge({}, structuredClone(this), partial));
|
|
1022
|
+
}
|
|
1023
|
+
static fromCSS(css) {
|
|
1024
|
+
const ast = parse(css);
|
|
1025
|
+
const rootRule = find(ast, (node, _item, _list) => {
|
|
1026
|
+
if (node.type == "Rule") {
|
|
1027
|
+
const prelude = node.prelude;
|
|
1028
|
+
if (prelude.type == "SelectorList") {
|
|
1029
|
+
const isRoot = prelude.children.some((it) => {
|
|
1030
|
+
return it.type == "Selector" && it.children.some((child) => child.type == "PseudoClassSelector" && child.name == "root");
|
|
1031
|
+
});
|
|
1032
|
+
if (isRoot) {
|
|
1033
|
+
return true;
|
|
1034
|
+
}
|
|
1035
|
+
}
|
|
1036
|
+
}
|
|
1037
|
+
return false;
|
|
1038
|
+
});
|
|
1039
|
+
if (rootRule == null) {
|
|
1040
|
+
return new _AppTheme();
|
|
1041
|
+
}
|
|
1042
|
+
const widgetVariables = rootRule.block.children.filter((it) => it.type == "Declaration" && it.property.startsWith("--widget-"));
|
|
1043
|
+
const themeOptions = {};
|
|
1044
|
+
for (const cssNode of widgetVariables) {
|
|
1045
|
+
const propStr = cssNode.property.replace("--widget-", "");
|
|
1046
|
+
const firstDashIndex = propStr.indexOf("-");
|
|
1047
|
+
const value = cssNode.value.value?.trim() || "";
|
|
1048
|
+
if (firstDashIndex !== -1) {
|
|
1049
|
+
const category = propStr.substring(0, firstDashIndex);
|
|
1050
|
+
const property = (0, import_camelCase.default)(propStr.substring(firstDashIndex + 1));
|
|
1051
|
+
if (!themeOptions[category]) {
|
|
1052
|
+
themeOptions[category] = {};
|
|
1053
|
+
}
|
|
1054
|
+
themeOptions[category][property] = value;
|
|
1055
|
+
} else {
|
|
1056
|
+
const category = (0, import_camelCase.default)(propStr);
|
|
1057
|
+
themeOptions[category] = value;
|
|
1058
|
+
}
|
|
1059
|
+
}
|
|
1060
|
+
return new _AppTheme(themeOptions);
|
|
1061
|
+
}
|
|
1062
|
+
};
|
|
1063
|
+
|
|
1064
|
+
// src/model/DeployedPage.ts
|
|
1065
|
+
var DeployedPage = class {
|
|
1066
|
+
name;
|
|
1067
|
+
packageName;
|
|
1068
|
+
x = 0;
|
|
1069
|
+
y = 0;
|
|
1070
|
+
height = 600;
|
|
1071
|
+
width = 800;
|
|
1072
|
+
proxy;
|
|
1073
|
+
id;
|
|
1074
|
+
isIgnoreMouseEvents;
|
|
1075
|
+
};
|
|
1076
|
+
|
|
1077
|
+
// src/model/DeployMode.ts
|
|
1078
|
+
var HostedMode = /* @__PURE__ */ ((HostedMode2) => {
|
|
1079
|
+
HostedMode2[HostedMode2["NORMAL"] = 1] = "NORMAL";
|
|
1080
|
+
HostedMode2[HostedMode2["OVERLAP"] = 16] = "OVERLAP";
|
|
1081
|
+
HostedMode2[HostedMode2["WALLPAPER"] = 256] = "WALLPAPER";
|
|
1082
|
+
HostedMode2[HostedMode2["SCREEN"] = 4096] = "SCREEN";
|
|
1083
|
+
HostedMode2[HostedMode2["BACKGROUND"] = 65536] = "BACKGROUND";
|
|
1084
|
+
HostedMode2[HostedMode2["PAGE"] = 1048576] = "PAGE";
|
|
1085
|
+
HostedMode2[HostedMode2["ALL"] = 1118481] = "ALL";
|
|
1086
|
+
return HostedMode2;
|
|
1087
|
+
})(HostedMode || {});
|
|
1088
|
+
var DeployMode = /* @__PURE__ */ ((DeployMode2) => {
|
|
1089
|
+
DeployMode2[DeployMode2["NORMAL"] = 1] = "NORMAL";
|
|
1090
|
+
DeployMode2[DeployMode2["OVERLAP"] = 16] = "OVERLAP";
|
|
1091
|
+
DeployMode2[DeployMode2["BACKGROUND"] = 65536] = "BACKGROUND";
|
|
1092
|
+
DeployMode2[DeployMode2["TRAY"] = 256] = "TRAY";
|
|
1093
|
+
DeployMode2[DeployMode2["ALL"] = 1118481] = "ALL";
|
|
1094
|
+
return DeployMode2;
|
|
1095
|
+
})(DeployMode || {});
|
|
1096
|
+
|
|
1097
|
+
// src/model/DeployedWidget.ts
|
|
1098
|
+
var DeployedWidget = class extends DeployedPage {
|
|
1099
|
+
shortcut;
|
|
1100
|
+
deployMode;
|
|
1101
|
+
isOverlap() {
|
|
1102
|
+
return (this.deployMode & 16 /* OVERLAP */) > 0;
|
|
1103
|
+
}
|
|
1104
|
+
};
|
|
1105
|
+
|
|
1106
|
+
// src/model/event/BroadcastEvent.ts
|
|
1107
|
+
var BroadcastEvent = class {
|
|
1108
|
+
event;
|
|
1109
|
+
sender;
|
|
1110
|
+
payload;
|
|
1111
|
+
constructor(options) {
|
|
1112
|
+
this.event = options.event;
|
|
1113
|
+
this.sender = options.sender;
|
|
1114
|
+
this.payload = options.payload;
|
|
1115
|
+
}
|
|
1116
|
+
};
|
|
1117
|
+
|
|
1118
|
+
// src/model/event/WebSocketEvent.ts
|
|
1119
|
+
var WebSocketEventType = /* @__PURE__ */ ((WebSocketEventType2) => {
|
|
1120
|
+
WebSocketEventType2["RESISTER_PACKAGE"] = "ws::cn.widgetjs.core.resister_package";
|
|
1121
|
+
return WebSocketEventType2;
|
|
1122
|
+
})(WebSocketEventType || {});
|
|
1123
|
+
var WebSocketEvent = class {
|
|
1124
|
+
// 类型
|
|
1125
|
+
type;
|
|
1126
|
+
payload;
|
|
1127
|
+
constructor(type, payload) {
|
|
1128
|
+
this.type = type;
|
|
1129
|
+
this.payload = payload;
|
|
1130
|
+
}
|
|
1131
|
+
};
|
|
1132
|
+
|
|
1133
|
+
// src/utils/ElectronUtils.ts
|
|
1134
|
+
var ElectronUtils = class {
|
|
1135
|
+
static hasElectronApi() {
|
|
1136
|
+
return this.getAPI() != null;
|
|
1137
|
+
}
|
|
1138
|
+
/**
|
|
1139
|
+
* 获取ElectronAPI
|
|
1140
|
+
* windows api
|
|
1141
|
+
*/
|
|
1142
|
+
static getAPI() {
|
|
1143
|
+
if (Reflect.has(window, "electronAPI")) {
|
|
1144
|
+
return window.electronAPI;
|
|
1145
|
+
} else if (Reflect.has(window.parent, "electronAPI")) {
|
|
1146
|
+
return window.parent.electronAPI;
|
|
1147
|
+
}
|
|
1148
|
+
return null;
|
|
1149
|
+
}
|
|
1150
|
+
static async invokeMethod(channel, method, ...args) {
|
|
1151
|
+
return this.getAPI()?.invoke(channel, method, ...args);
|
|
1152
|
+
}
|
|
1153
|
+
static async invoke(channel, ...args) {
|
|
1154
|
+
return this.getAPI()?.invoke(channel, ...args);
|
|
1155
|
+
}
|
|
1156
|
+
};
|
|
1157
|
+
|
|
1158
|
+
// src/utils/LanguageUtils.ts
|
|
1159
|
+
var LanguageUtils = class {
|
|
1160
|
+
static findText(langMap, localeCode) {
|
|
1161
|
+
const locales = Object.keys(langMap).map((key) => new Intl.Locale(key));
|
|
1162
|
+
const targetLocale = new Intl.Locale(localeCode);
|
|
1163
|
+
let find3 = locales.find((locale) => locale.baseName == targetLocale.baseName);
|
|
1164
|
+
if (!find3) {
|
|
1165
|
+
find3 = locales.find((locale) => locale.language == targetLocale.language);
|
|
1166
|
+
}
|
|
1167
|
+
return find3;
|
|
1168
|
+
}
|
|
1169
|
+
/**
|
|
1170
|
+
* Get text from `LanguageTextMap` by Unicode locale identifier.
|
|
1171
|
+
* `localeCode` > `localeCode` without region > browser default language > English > first language
|
|
1172
|
+
* @param langMap 对象
|
|
1173
|
+
* @param {LanguageCode} localeCode `zh-CN`、`en-US`、 `zh`、`en`
|
|
1174
|
+
* @param fallbackToBrowser
|
|
1175
|
+
*/
|
|
1176
|
+
static getTextByLocate(langMap, localeCode, fallbackToBrowser = true) {
|
|
1177
|
+
let result;
|
|
1178
|
+
if (localeCode) {
|
|
1179
|
+
if (localeCode in langMap) {
|
|
1180
|
+
return langMap[localeCode];
|
|
1181
|
+
}
|
|
1182
|
+
}
|
|
1183
|
+
if (localeCode) {
|
|
1184
|
+
const find3 = this.findText(langMap, localeCode);
|
|
1185
|
+
if (find3) {
|
|
1186
|
+
return langMap[find3.baseName];
|
|
1187
|
+
}
|
|
1188
|
+
}
|
|
1189
|
+
if (result == void 0 && fallbackToBrowser) {
|
|
1190
|
+
if (typeof navigator != "undefined" && navigator.languages) {
|
|
1191
|
+
const langCode = navigator.language;
|
|
1192
|
+
result = this.getTextByLocate(langMap, langCode, false);
|
|
1193
|
+
if (result != void 0) {
|
|
1194
|
+
return result;
|
|
1195
|
+
}
|
|
1196
|
+
}
|
|
1197
|
+
}
|
|
1198
|
+
if (result == void 0) {
|
|
1199
|
+
const find3 = this.findText(langMap, "en");
|
|
1200
|
+
if (find3) {
|
|
1201
|
+
return langMap[find3.baseName];
|
|
1202
|
+
}
|
|
1203
|
+
}
|
|
1204
|
+
if (result == void 0) {
|
|
1205
|
+
const langCode = Object.keys(langMap);
|
|
1206
|
+
if (langCode.length > 0) {
|
|
1207
|
+
return langMap[langCode[0]];
|
|
1208
|
+
}
|
|
1209
|
+
}
|
|
1210
|
+
return void 0;
|
|
1211
|
+
}
|
|
1212
|
+
};
|
|
1213
|
+
|
|
1214
|
+
// src/utils/WidgetUtils.ts
|
|
1215
|
+
var WidgetUtils = class {
|
|
1216
|
+
/**
|
|
1217
|
+
* 是否支持悬浮窗
|
|
857
1218
|
*/
|
|
858
1219
|
static isSupportOverlap(supportDeployMode) {
|
|
859
1220
|
return (supportDeployMode & 16 /* OVERLAP */) > 0;
|
|
@@ -1041,6 +1402,16 @@ var Page = class _Page {
|
|
|
1041
1402
|
}
|
|
1042
1403
|
};
|
|
1043
1404
|
|
|
1405
|
+
// src/model/SocialInfo.ts
|
|
1406
|
+
var SocialInfo = class {
|
|
1407
|
+
content;
|
|
1408
|
+
name;
|
|
1409
|
+
constructor(name, content) {
|
|
1410
|
+
this.name = name;
|
|
1411
|
+
this.content = content;
|
|
1412
|
+
}
|
|
1413
|
+
};
|
|
1414
|
+
|
|
1044
1415
|
// src/model/Widget.ts
|
|
1045
1416
|
var Widget = class _Widget extends Page {
|
|
1046
1417
|
categories;
|
|
@@ -1142,39 +1513,12 @@ var WidgetKeyword = /* @__PURE__ */ ((WidgetKeyword2) => {
|
|
|
1142
1513
|
return WidgetKeyword2;
|
|
1143
1514
|
})(WidgetKeyword || {});
|
|
1144
1515
|
|
|
1145
|
-
// src/model/event/BroadcastEvent.ts
|
|
1146
|
-
var BroadcastEvent = class {
|
|
1147
|
-
event;
|
|
1148
|
-
sender;
|
|
1149
|
-
payload;
|
|
1150
|
-
constructor(options) {
|
|
1151
|
-
this.event = options.event;
|
|
1152
|
-
this.sender = options.sender;
|
|
1153
|
-
this.payload = options.payload;
|
|
1154
|
-
}
|
|
1155
|
-
};
|
|
1156
|
-
|
|
1157
|
-
// src/model/event/WebSocketEvent.ts
|
|
1158
|
-
var WebSocketEventType = /* @__PURE__ */ ((WebSocketEventType2) => {
|
|
1159
|
-
WebSocketEventType2["RESISTER_PACKAGE"] = "ws::cn.widgetjs.core.resister_package";
|
|
1160
|
-
return WebSocketEventType2;
|
|
1161
|
-
})(WebSocketEventType || {});
|
|
1162
|
-
var WebSocketEvent = class {
|
|
1163
|
-
// 类型
|
|
1164
|
-
type;
|
|
1165
|
-
payload;
|
|
1166
|
-
constructor(type, payload) {
|
|
1167
|
-
this.type = type;
|
|
1168
|
-
this.payload = payload;
|
|
1169
|
-
}
|
|
1170
|
-
};
|
|
1171
|
-
|
|
1172
1516
|
// src/model/WidgetData.ts
|
|
1173
|
-
var
|
|
1517
|
+
var import_kebabCase3 = __toESM(require_kebabCase());
|
|
1174
1518
|
|
|
1175
1519
|
// src/model/WidgetTheme.ts
|
|
1176
|
-
var
|
|
1177
|
-
var
|
|
1520
|
+
var import_camelCase2 = __toESM(require_camelCase());
|
|
1521
|
+
var import_kebabCase2 = __toESM(require_kebabCase());
|
|
1178
1522
|
var WidgetTheme = class _WidgetTheme {
|
|
1179
1523
|
borderRadius;
|
|
1180
1524
|
backgroundColor;
|
|
@@ -1248,7 +1592,7 @@ ${cssVariables}
|
|
|
1248
1592
|
const prefix = "--widget-";
|
|
1249
1593
|
const keys = Object.keys(this);
|
|
1250
1594
|
keys.filter((key) => this[key] != void 0).forEach((key) => {
|
|
1251
|
-
variables[`${prefix}${(0,
|
|
1595
|
+
variables[`${prefix}${(0, import_kebabCase2.default)(key)}`] = `${this[key]}`;
|
|
1252
1596
|
});
|
|
1253
1597
|
return variables;
|
|
1254
1598
|
}
|
|
@@ -1256,7 +1600,7 @@ ${cssVariables}
|
|
|
1256
1600
|
const properties = {};
|
|
1257
1601
|
const keys = Object.keys(this);
|
|
1258
1602
|
keys.filter((key) => this[key] != void 0).forEach((key) => {
|
|
1259
|
-
properties[`${(0,
|
|
1603
|
+
properties[`${(0, import_kebabCase2.default)(key)}`] = `${this[key]}`;
|
|
1260
1604
|
});
|
|
1261
1605
|
return properties;
|
|
1262
1606
|
}
|
|
@@ -1282,7 +1626,7 @@ ${cssVariables}
|
|
|
1282
1626
|
const widgetVariables = rootRule.block.children.filter((it) => it.type == "Declaration" && it.property.startsWith("--widget-"));
|
|
1283
1627
|
const themeOptions = {};
|
|
1284
1628
|
for (const cssNode of widgetVariables) {
|
|
1285
|
-
const prop = (0,
|
|
1629
|
+
const prop = (0, import_camelCase2.default)(cssNode.property.replace("--widget-", ""));
|
|
1286
1630
|
themeOptions[prop] = cssNode.value.value.trim();
|
|
1287
1631
|
}
|
|
1288
1632
|
return new _WidgetTheme(themeOptions);
|
|
@@ -1361,7 +1705,7 @@ var WidgetData = class {
|
|
|
1361
1705
|
const prefix = "--widget-";
|
|
1362
1706
|
const keys = Object.keys(this.theme);
|
|
1363
1707
|
keys.filter((key) => this.theme[key] != void 0).forEach((key) => {
|
|
1364
|
-
properties[`${prefix}${(0,
|
|
1708
|
+
properties[`${prefix}${(0, import_kebabCase3.default)(key)}`] = `${this.theme[key]}`;
|
|
1365
1709
|
});
|
|
1366
1710
|
}
|
|
1367
1711
|
return properties;
|
|
@@ -1378,6 +1722,159 @@ var WidgetData = class {
|
|
|
1378
1722
|
}
|
|
1379
1723
|
};
|
|
1380
1724
|
|
|
1725
|
+
// src/model/WidgetPackage.ts
|
|
1726
|
+
var WidgetPackage = class _WidgetPackage {
|
|
1727
|
+
/**
|
|
1728
|
+
* 组件包名,一般为域名倒写,e.g. com.example
|
|
1729
|
+
*/
|
|
1730
|
+
name;
|
|
1731
|
+
/**
|
|
1732
|
+
* 组件包版本,可以为空,默认采用package.json里的版本
|
|
1733
|
+
* e.g. 1.0.2
|
|
1734
|
+
*/
|
|
1735
|
+
version;
|
|
1736
|
+
/**
|
|
1737
|
+
* 组件包所需的App版本
|
|
1738
|
+
*/
|
|
1739
|
+
requiredAppVersion;
|
|
1740
|
+
/**
|
|
1741
|
+
* 组件作者署名
|
|
1742
|
+
*/
|
|
1743
|
+
author;
|
|
1744
|
+
development;
|
|
1745
|
+
/**
|
|
1746
|
+
* 组件首页
|
|
1747
|
+
*/
|
|
1748
|
+
homepage;
|
|
1749
|
+
/**
|
|
1750
|
+
* 组件描述
|
|
1751
|
+
*/
|
|
1752
|
+
title;
|
|
1753
|
+
/**
|
|
1754
|
+
* 组件描述
|
|
1755
|
+
*/
|
|
1756
|
+
description;
|
|
1757
|
+
/**
|
|
1758
|
+
* 本地组件入口文件,通常为 index.html
|
|
1759
|
+
*/
|
|
1760
|
+
entry;
|
|
1761
|
+
/**
|
|
1762
|
+
* 远程组件包入口文件
|
|
1763
|
+
* @deprecated
|
|
1764
|
+
*/
|
|
1765
|
+
remoteEntry;
|
|
1766
|
+
/**
|
|
1767
|
+
* 组件包json文件路径
|
|
1768
|
+
* @deprecated
|
|
1769
|
+
* @example https://rtugeek.gitee.io/hotspot/widget.json
|
|
1770
|
+
*/
|
|
1771
|
+
remotePackage;
|
|
1772
|
+
local;
|
|
1773
|
+
remote;
|
|
1774
|
+
/**
|
|
1775
|
+
* zip package url, used for downloading the package
|
|
1776
|
+
*/
|
|
1777
|
+
zipUrl;
|
|
1778
|
+
/**
|
|
1779
|
+
* 组件包图标
|
|
1780
|
+
*/
|
|
1781
|
+
icon;
|
|
1782
|
+
/**
|
|
1783
|
+
* Hash路由模式,默认为true
|
|
1784
|
+
*/
|
|
1785
|
+
hash = true;
|
|
1786
|
+
/**
|
|
1787
|
+
* 可能是网络地址,或者本地路径(解压后的文件夹路径),
|
|
1788
|
+
* 网络地址:https://www.bilibili.com
|
|
1789
|
+
* 本地地址:file:///C:/Users/neo/Desktop
|
|
1790
|
+
* 在测试时。地址通常为: http://127.0.0.1:8080
|
|
1791
|
+
*/
|
|
1792
|
+
url;
|
|
1793
|
+
widgets = [];
|
|
1794
|
+
pages = [];
|
|
1795
|
+
devOptions;
|
|
1796
|
+
constructor(options) {
|
|
1797
|
+
this.name = options.name;
|
|
1798
|
+
this.development = options.development;
|
|
1799
|
+
this.version = options.version;
|
|
1800
|
+
this.author = options.author;
|
|
1801
|
+
this.homepage = options.homepage;
|
|
1802
|
+
this.title = options.title;
|
|
1803
|
+
this.description = options.description;
|
|
1804
|
+
this.entry = options.entry ?? "index.html";
|
|
1805
|
+
this.remoteEntry = options.remoteEntry;
|
|
1806
|
+
this.requiredAppVersion = options.requiredAppVersion;
|
|
1807
|
+
this.remotePackage = options.remotePackage;
|
|
1808
|
+
this.hash = options.hash ?? false;
|
|
1809
|
+
this.url = "";
|
|
1810
|
+
this.icon = options.icon;
|
|
1811
|
+
this.devOptions = options.devOptions;
|
|
1812
|
+
this.zipUrl = options.zipUrl;
|
|
1813
|
+
this.remote = options.remote;
|
|
1814
|
+
if (options.widgets) {
|
|
1815
|
+
for (const widget of options.widgets) {
|
|
1816
|
+
this.widgets.push(widget);
|
|
1817
|
+
}
|
|
1818
|
+
}
|
|
1819
|
+
}
|
|
1820
|
+
static parseJSON(json) {
|
|
1821
|
+
const object = JSON.parse(json);
|
|
1822
|
+
return this.parseObject(object);
|
|
1823
|
+
}
|
|
1824
|
+
static parseObject(obj) {
|
|
1825
|
+
const widgetPackage = new _WidgetPackage({
|
|
1826
|
+
author: "",
|
|
1827
|
+
description: {
|
|
1828
|
+
"zh-CN": ""
|
|
1829
|
+
},
|
|
1830
|
+
entry: "",
|
|
1831
|
+
hash: false,
|
|
1832
|
+
homepage: "",
|
|
1833
|
+
name: "",
|
|
1834
|
+
title: {
|
|
1835
|
+
"zh-CN": ""
|
|
1836
|
+
},
|
|
1837
|
+
version: ""
|
|
1838
|
+
});
|
|
1839
|
+
Object.assign(widgetPackage, obj);
|
|
1840
|
+
const widgets = [];
|
|
1841
|
+
if (widgetPackage.widgets) {
|
|
1842
|
+
for (const jsonWidget of widgetPackage.widgets) {
|
|
1843
|
+
const widget = new Widget({
|
|
1844
|
+
previewImage: "",
|
|
1845
|
+
path: "",
|
|
1846
|
+
description: { "zh-CN": "" },
|
|
1847
|
+
height: 0,
|
|
1848
|
+
keywords: [],
|
|
1849
|
+
lang: "zh-CN",
|
|
1850
|
+
name: "",
|
|
1851
|
+
title: { "zh-CN": "" },
|
|
1852
|
+
width: 0
|
|
1853
|
+
});
|
|
1854
|
+
Object.assign(widget, jsonWidget);
|
|
1855
|
+
widgets.push(widget);
|
|
1856
|
+
}
|
|
1857
|
+
}
|
|
1858
|
+
widgetPackage.widgets.splice(0, widgetPackage.widgets.length);
|
|
1859
|
+
widgetPackage.widgets.push(...widgets);
|
|
1860
|
+
return widgetPackage;
|
|
1861
|
+
}
|
|
1862
|
+
/**
|
|
1863
|
+
* 获取组件包标题
|
|
1864
|
+
* @param lang 语言环境,不传则获取默认语言
|
|
1865
|
+
*/
|
|
1866
|
+
getTitle(lang) {
|
|
1867
|
+
return LanguageUtils.getTextByLocate(this.title, lang);
|
|
1868
|
+
}
|
|
1869
|
+
/**
|
|
1870
|
+
* 获取组件包描述
|
|
1871
|
+
* @param lang 语言环境,不传则获取默认标题
|
|
1872
|
+
*/
|
|
1873
|
+
getDescription(lang) {
|
|
1874
|
+
return LanguageUtils.getTextByLocate(this.description, lang);
|
|
1875
|
+
}
|
|
1876
|
+
};
|
|
1877
|
+
|
|
1381
1878
|
// src/model/WidgetParams.ts
|
|
1382
1879
|
var import_snakeCase = __toESM(require_snakeCase());
|
|
1383
1880
|
|
|
@@ -1590,1101 +2087,1162 @@ var ThemeMode = /* @__PURE__ */ ((ThemeMode2) => {
|
|
|
1590
2087
|
return ThemeMode2;
|
|
1591
2088
|
})(ThemeMode || {});
|
|
1592
2089
|
|
|
1593
|
-
// src/
|
|
1594
|
-
var
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
2090
|
+
// src/lang/LanguageCode.ts
|
|
2091
|
+
var LanguageMap = class {
|
|
2092
|
+
"ar-SA" = { baseName: "ar-SA", language: "ar", nativeName: "\u0627\u0644\u0639\u0631\u0628\u064A\u0629" };
|
|
2093
|
+
"bn-BD" = { baseName: "bn-BD", language: "bn", nativeName: "\u09AC\u09BE\u0982\u09B2\u09BE" };
|
|
2094
|
+
"en-US" = { baseName: "en-US", language: "en", nativeName: "English" };
|
|
2095
|
+
"de-DE" = { baseName: "de-DE", language: "de", nativeName: "Deutsch" };
|
|
2096
|
+
"el-GR" = { baseName: "el-GR", language: "el", nativeName: "\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC" };
|
|
2097
|
+
"es-ES" = { baseName: "es-ES", language: "es", nativeName: "Espa\xF1ol", region: "ES" };
|
|
2098
|
+
"fi-FI" = { baseName: "fi-FI", language: "fi", nativeName: "Suomalainen" };
|
|
2099
|
+
"fil-PH" = { baseName: "fil-PH", language: "fil", nativeName: "Filipino" };
|
|
2100
|
+
"fr-FR" = { baseName: "fr-FR", language: "fr", nativeName: "Fran\xE7ais" };
|
|
2101
|
+
"hi-IN" = { baseName: "hi-IN", language: "hi", nativeName: "\u0939\u093F\u0902\u0926\u0940" };
|
|
2102
|
+
"hu-HU" = { baseName: "hu-HU", language: "hu", nativeName: "Magyar" };
|
|
2103
|
+
"id-ID" = { baseName: "id-ID", language: "id", nativeName: "Bahasa Indonesia" };
|
|
2104
|
+
"it-IT" = { baseName: "it-IT", language: "it", nativeName: "Italiano" };
|
|
2105
|
+
"ja-JP" = { baseName: "ja-JP", language: "ja", nativeName: "\u65E5\u672C\u8A9E" };
|
|
2106
|
+
"ko-KR" = { baseName: "ko-KR", language: "ko", nativeName: "\uD55C\uAD6D\uC5B4" };
|
|
2107
|
+
"nl-NL" = { baseName: "nl-NL", language: "nl", nativeName: "Nederlands" };
|
|
2108
|
+
"pl-PL" = { baseName: "pl-PL", language: "pl", nativeName: "Polski" };
|
|
2109
|
+
"pt-BR" = { baseName: "pt-BR", language: "pt", nativeName: "Portugu\xEAs (Brazil)", region: "BR" };
|
|
2110
|
+
"pt-PT" = { baseName: "pt-PT", language: "pt", nativeName: "Portugu\xEAs" };
|
|
2111
|
+
"ro-RO" = { baseName: "ro-RO", language: "ro", nativeName: "Rom\xE2n\u0103" };
|
|
2112
|
+
"ru-RU" = { baseName: "ru-RU", language: "ru", nativeName: "\u0420\u0443\u0441\u0441\u043A\u0438\u0439" };
|
|
2113
|
+
"sv-SE" = { baseName: "sv-SE", language: "sv", nativeName: "Svenska" };
|
|
2114
|
+
"ta-IN" = { baseName: "ta-IN", language: "ta", nativeName: "\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD" };
|
|
2115
|
+
"tr-TR" = { baseName: "tr-TR", language: "tr", nativeName: "T\xFCrk\xE7e" };
|
|
2116
|
+
"uk-UA" = { baseName: "uk-UA", language: "uk", nativeName: "\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430" };
|
|
2117
|
+
"vi-VN" = { baseName: "vi-VN", language: "vi", nativeName: "Ti\u1EBFng Vi\u1EC7t" };
|
|
2118
|
+
"zh-CN" = { baseName: "zh-CN", language: "zh", nativeName: "\u7B80\u4F53\u4E2D\u6587", region: "CN" };
|
|
2119
|
+
"zh-TW" = { baseName: "zh-TW", language: "zh", nativeName: "\u7E41\u9AD4\u4E2D\u6587", region: "TW" };
|
|
2120
|
+
};
|
|
2121
|
+
|
|
2122
|
+
// src/utils/normalizeUrl.ts
|
|
2123
|
+
var DATA_URL_DEFAULT_MIME_TYPE = "text/plain";
|
|
2124
|
+
var DATA_URL_DEFAULT_CHARSET = "us-ascii";
|
|
2125
|
+
var testParameter = (name, filters) => filters.some((filter) => filter instanceof RegExp ? filter.test(name) : filter === name);
|
|
2126
|
+
var supportedProtocols = /* @__PURE__ */ new Set([
|
|
2127
|
+
"https:",
|
|
2128
|
+
"http:",
|
|
2129
|
+
"file:"
|
|
2130
|
+
]);
|
|
2131
|
+
function hasCustomProtocol(urlString) {
|
|
2132
|
+
try {
|
|
2133
|
+
const { protocol } = new URL(urlString);
|
|
2134
|
+
return protocol.endsWith(":") && !supportedProtocols.has(protocol);
|
|
2135
|
+
} catch {
|
|
2136
|
+
return false;
|
|
2137
|
+
}
|
|
2138
|
+
}
|
|
2139
|
+
function normalizeDataURL(urlString, option) {
|
|
2140
|
+
const match = /^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(urlString);
|
|
2141
|
+
if (!match) {
|
|
2142
|
+
throw new Error(`Invalid URL: ${urlString}`);
|
|
2143
|
+
}
|
|
2144
|
+
let { type, data, hash } = match.groups;
|
|
2145
|
+
const mediaType = type.split(";");
|
|
2146
|
+
hash = option.stripHash ? "" : hash;
|
|
2147
|
+
let isBase64 = false;
|
|
2148
|
+
if (mediaType[mediaType.length - 1] === "base64") {
|
|
2149
|
+
mediaType.pop();
|
|
2150
|
+
isBase64 = true;
|
|
2151
|
+
}
|
|
2152
|
+
const mimeType = mediaType.shift()?.toLowerCase() ?? "";
|
|
2153
|
+
const attributes = mediaType.map((attribute) => {
|
|
2154
|
+
let [key, value = ""] = attribute.split("=").map((item) => item.trim());
|
|
2155
|
+
if (key === "charset") {
|
|
2156
|
+
value = value.toLowerCase();
|
|
2157
|
+
if (value === DATA_URL_DEFAULT_CHARSET) {
|
|
2158
|
+
return "";
|
|
2159
|
+
}
|
|
2160
|
+
}
|
|
2161
|
+
return `${key}${value ? `=${value}` : ""}`;
|
|
2162
|
+
}).filter(Boolean);
|
|
2163
|
+
const normalizedMediaType = [
|
|
2164
|
+
...attributes
|
|
2165
|
+
];
|
|
2166
|
+
if (isBase64) {
|
|
2167
|
+
normalizedMediaType.push("base64");
|
|
2168
|
+
}
|
|
2169
|
+
if (normalizedMediaType.length > 0 || mimeType && mimeType !== DATA_URL_DEFAULT_MIME_TYPE) {
|
|
2170
|
+
normalizedMediaType.unshift(mimeType);
|
|
2171
|
+
}
|
|
2172
|
+
return `data:${normalizedMediaType.join(";")},${isBase64 ? data.trim() : data}${hash ? `#${hash}` : ""}`;
|
|
2173
|
+
}
|
|
2174
|
+
function normalizeUrl(urlString, options) {
|
|
2175
|
+
options = {
|
|
2176
|
+
defaultProtocol: "http",
|
|
2177
|
+
normalizeProtocol: true,
|
|
2178
|
+
forceHttp: false,
|
|
2179
|
+
forceHttps: false,
|
|
2180
|
+
stripAuthentication: true,
|
|
2181
|
+
stripHash: false,
|
|
2182
|
+
stripTextFragment: true,
|
|
2183
|
+
stripWWW: true,
|
|
2184
|
+
removeQueryParameters: [/^utm_\w+/i],
|
|
2185
|
+
removeTrailingSlash: true,
|
|
2186
|
+
removeSingleSlash: true,
|
|
2187
|
+
removeDirectoryIndex: false,
|
|
2188
|
+
removeExplicitPort: false,
|
|
2189
|
+
sortQueryParameters: true,
|
|
2190
|
+
...options
|
|
2191
|
+
};
|
|
2192
|
+
urlString = urlString.replace("\\\\", "//");
|
|
2193
|
+
if (typeof options.defaultProtocol === "string" && !options.defaultProtocol.endsWith(":")) {
|
|
2194
|
+
options.defaultProtocol = `${options.defaultProtocol}:`;
|
|
2195
|
+
}
|
|
2196
|
+
urlString = urlString.trim();
|
|
2197
|
+
if (/^data:/i.test(urlString)) {
|
|
2198
|
+
return normalizeDataURL(urlString, { stripHash: options.stripHash ?? false });
|
|
2199
|
+
}
|
|
2200
|
+
if (hasCustomProtocol(urlString)) {
|
|
2201
|
+
return urlString;
|
|
2202
|
+
}
|
|
2203
|
+
const hasRelativeProtocol = urlString.startsWith("//");
|
|
2204
|
+
const isRelativeUrl = !hasRelativeProtocol && /^\.*\//.test(urlString);
|
|
2205
|
+
if (!isRelativeUrl) {
|
|
2206
|
+
urlString = urlString.replace(/^(?!(?:\w+:)?\/\/)|^\/\//, options.defaultProtocol);
|
|
2207
|
+
}
|
|
2208
|
+
const urlObject = new URL(urlString);
|
|
2209
|
+
if (options.forceHttp && options.forceHttps) {
|
|
2210
|
+
throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");
|
|
2211
|
+
}
|
|
2212
|
+
if (options.forceHttp && urlObject.protocol === "https:") {
|
|
2213
|
+
urlObject.protocol = "http:";
|
|
2214
|
+
}
|
|
2215
|
+
if (options.forceHttps && urlObject.protocol === "http:") {
|
|
2216
|
+
urlObject.protocol = "https:";
|
|
2217
|
+
}
|
|
2218
|
+
if (options.stripAuthentication) {
|
|
2219
|
+
urlObject.username = "";
|
|
2220
|
+
urlObject.password = "";
|
|
2221
|
+
}
|
|
2222
|
+
if (options.stripHash) {
|
|
2223
|
+
urlObject.hash = "";
|
|
2224
|
+
} else if (options.stripTextFragment) {
|
|
2225
|
+
urlObject.hash = urlObject.hash.replace(/#?:~:text.*?$/i, "");
|
|
2226
|
+
}
|
|
2227
|
+
if (urlObject.pathname) {
|
|
2228
|
+
const protocolRegex = /\b[a-z][a-z\d+\-.]{1,50}:\/\//g;
|
|
2229
|
+
let lastIndex = 0;
|
|
2230
|
+
let result = "";
|
|
2231
|
+
for (; ; ) {
|
|
2232
|
+
const match = protocolRegex.exec(urlObject.pathname);
|
|
2233
|
+
if (!match) {
|
|
2234
|
+
break;
|
|
2235
|
+
}
|
|
2236
|
+
const protocol = match[0];
|
|
2237
|
+
const protocolAtIndex = match.index;
|
|
2238
|
+
const intermediate = urlObject.pathname.slice(lastIndex, protocolAtIndex);
|
|
2239
|
+
result += intermediate.replace(/\/{2,}/g, "/");
|
|
2240
|
+
result += protocol;
|
|
2241
|
+
lastIndex = protocolAtIndex + protocol.length;
|
|
2242
|
+
}
|
|
2243
|
+
const remnant = urlObject.pathname.slice(lastIndex, urlObject.pathname.length);
|
|
2244
|
+
result += remnant.replace(/\/{2,}/g, "/");
|
|
2245
|
+
urlObject.pathname = result;
|
|
2246
|
+
}
|
|
2247
|
+
if (urlObject.pathname) {
|
|
2248
|
+
try {
|
|
2249
|
+
urlObject.pathname = decodeURI(urlObject.pathname);
|
|
2250
|
+
} catch {
|
|
2251
|
+
}
|
|
2252
|
+
}
|
|
2253
|
+
if (options.removeDirectoryIndex === true) {
|
|
2254
|
+
options.removeDirectoryIndex = [/^index\.[a-z]+$/];
|
|
2255
|
+
}
|
|
2256
|
+
if (Array.isArray(options.removeDirectoryIndex) && options.removeDirectoryIndex.length > 0) {
|
|
2257
|
+
let pathComponents = urlObject.pathname.split("/");
|
|
2258
|
+
const lastComponent = pathComponents[pathComponents.length - 1];
|
|
2259
|
+
if (testParameter(lastComponent, options.removeDirectoryIndex)) {
|
|
2260
|
+
pathComponents = pathComponents.slice(0, -1);
|
|
2261
|
+
urlObject.pathname = `${pathComponents.slice(1).join("/")}/`;
|
|
2262
|
+
}
|
|
2263
|
+
}
|
|
2264
|
+
if (urlObject.hostname) {
|
|
2265
|
+
urlObject.hostname = urlObject.hostname.replace(/\.$/, "");
|
|
2266
|
+
if (options.stripWWW && /^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(urlObject.hostname)) {
|
|
2267
|
+
urlObject.hostname = urlObject.hostname.replace(/^www\./, "");
|
|
2268
|
+
}
|
|
2269
|
+
}
|
|
2270
|
+
if (Array.isArray(options.removeQueryParameters)) {
|
|
2271
|
+
for (const key of [...urlObject.searchParams.keys()]) {
|
|
2272
|
+
if (testParameter(key, options.removeQueryParameters)) {
|
|
2273
|
+
urlObject.searchParams.delete(key);
|
|
2274
|
+
}
|
|
2275
|
+
}
|
|
2276
|
+
}
|
|
2277
|
+
if (!Array.isArray(options.keepQueryParameters) && options.removeQueryParameters === true) {
|
|
2278
|
+
urlObject.search = "";
|
|
2279
|
+
}
|
|
2280
|
+
if (Array.isArray(options.keepQueryParameters) && options.keepQueryParameters.length > 0) {
|
|
2281
|
+
for (const key of [...urlObject.searchParams.keys()]) {
|
|
2282
|
+
if (!testParameter(key, options.keepQueryParameters)) {
|
|
2283
|
+
urlObject.searchParams.delete(key);
|
|
2284
|
+
}
|
|
2285
|
+
}
|
|
2286
|
+
}
|
|
2287
|
+
if (options.sortQueryParameters) {
|
|
2288
|
+
urlObject.searchParams.sort();
|
|
2289
|
+
try {
|
|
2290
|
+
urlObject.search = decodeURIComponent(urlObject.search);
|
|
2291
|
+
} catch {
|
|
2292
|
+
}
|
|
1645
2293
|
}
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
constructor(option) {
|
|
1649
|
-
super(option);
|
|
1650
|
-
this.type = "reminder";
|
|
1651
|
-
this.size = "large" /* LARGE */;
|
|
2294
|
+
if (options.removeTrailingSlash) {
|
|
2295
|
+
urlObject.pathname = urlObject.pathname.replace(/\/$/, "");
|
|
1652
2296
|
}
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
// src/model/DeployedPage.ts
|
|
1656
|
-
var DeployedPage = class {
|
|
1657
|
-
name;
|
|
1658
|
-
packageName;
|
|
1659
|
-
x = 0;
|
|
1660
|
-
y = 0;
|
|
1661
|
-
height = 600;
|
|
1662
|
-
width = 800;
|
|
1663
|
-
proxy;
|
|
1664
|
-
id;
|
|
1665
|
-
isIgnoreMouseEvents;
|
|
1666
|
-
};
|
|
1667
|
-
|
|
1668
|
-
// src/model/SocialInfo.ts
|
|
1669
|
-
var SocialInfo = class {
|
|
1670
|
-
content;
|
|
1671
|
-
name;
|
|
1672
|
-
constructor(name, content) {
|
|
1673
|
-
this.name = name;
|
|
1674
|
-
this.content = content;
|
|
2297
|
+
if (options.removeExplicitPort && urlObject.port) {
|
|
2298
|
+
urlObject.port = "";
|
|
1675
2299
|
}
|
|
1676
|
-
|
|
2300
|
+
const oldUrlString = urlString;
|
|
2301
|
+
urlString = urlObject.toString();
|
|
2302
|
+
if (!options.removeSingleSlash && urlObject.pathname === "/" && !oldUrlString.endsWith("/") && urlObject.hash === "") {
|
|
2303
|
+
urlString = urlString.replace(/\/$/, "");
|
|
2304
|
+
}
|
|
2305
|
+
if ((options.removeTrailingSlash || urlObject.pathname === "/") && urlObject.hash === "" && options.removeSingleSlash) {
|
|
2306
|
+
urlString = urlString.replace(/\/$/, "");
|
|
2307
|
+
}
|
|
2308
|
+
if (hasRelativeProtocol && !options.normalizeProtocol) {
|
|
2309
|
+
urlString = urlString.replace(/^http:\/\//, "//");
|
|
2310
|
+
}
|
|
2311
|
+
if (options.stripProtocol) {
|
|
2312
|
+
urlString = urlString.replace(/^(?:https?:)?\/\//, "");
|
|
2313
|
+
}
|
|
2314
|
+
return urlString;
|
|
2315
|
+
}
|
|
1677
2316
|
|
|
1678
|
-
// src/
|
|
1679
|
-
var
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
2317
|
+
// src/grid/GridSystem.ts
|
|
2318
|
+
var GridRect = class {
|
|
2319
|
+
top;
|
|
2320
|
+
left;
|
|
2321
|
+
width;
|
|
2322
|
+
height;
|
|
2323
|
+
constructor(left, top, width, height) {
|
|
2324
|
+
this.top = top;
|
|
2325
|
+
this.left = left;
|
|
2326
|
+
this.width = width;
|
|
2327
|
+
this.height = height;
|
|
2328
|
+
}
|
|
2329
|
+
get right() {
|
|
2330
|
+
return this.left + this.width;
|
|
2331
|
+
}
|
|
2332
|
+
get bottom() {
|
|
2333
|
+
return this.top + this.height;
|
|
1684
2334
|
}
|
|
1685
2335
|
};
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
name;
|
|
1693
|
-
/**
|
|
1694
|
-
* 组件包版本,可以为空,默认采用package.json里的版本
|
|
1695
|
-
* e.g. 1.0.2
|
|
1696
|
-
*/
|
|
1697
|
-
version;
|
|
1698
|
-
/**
|
|
1699
|
-
* 组件包所需的App版本
|
|
1700
|
-
*/
|
|
1701
|
-
requiredAppVersion;
|
|
1702
|
-
/**
|
|
1703
|
-
* 组件作者署名
|
|
1704
|
-
*/
|
|
1705
|
-
author;
|
|
1706
|
-
development;
|
|
1707
|
-
/**
|
|
1708
|
-
* 组件首页
|
|
1709
|
-
*/
|
|
1710
|
-
homepage;
|
|
1711
|
-
/**
|
|
1712
|
-
* 组件描述
|
|
1713
|
-
*/
|
|
1714
|
-
title;
|
|
1715
|
-
/**
|
|
1716
|
-
* 组件描述
|
|
1717
|
-
*/
|
|
1718
|
-
description;
|
|
1719
|
-
/**
|
|
1720
|
-
* 本地组件入口文件,通常为 index.html
|
|
1721
|
-
*/
|
|
1722
|
-
entry;
|
|
1723
|
-
/**
|
|
1724
|
-
* 远程组件包入口文件
|
|
1725
|
-
* @deprecated
|
|
1726
|
-
*/
|
|
1727
|
-
remoteEntry;
|
|
1728
|
-
/**
|
|
1729
|
-
* 组件包json文件路径
|
|
1730
|
-
* @deprecated
|
|
1731
|
-
* @example https://rtugeek.gitee.io/hotspot/widget.json
|
|
1732
|
-
*/
|
|
1733
|
-
remotePackage;
|
|
1734
|
-
local;
|
|
1735
|
-
remote;
|
|
2336
|
+
var GridSystem = class extends GridRect {
|
|
2337
|
+
cellSize;
|
|
2338
|
+
horizontalCellCount;
|
|
2339
|
+
verticalCellCount;
|
|
2340
|
+
screenWidth;
|
|
2341
|
+
screenHeight;
|
|
1736
2342
|
/**
|
|
1737
|
-
*
|
|
2343
|
+
* 屏幕x坐标,用于解决多块屏幕坐标计算问题
|
|
1738
2344
|
*/
|
|
1739
|
-
|
|
2345
|
+
screenLeft;
|
|
1740
2346
|
/**
|
|
1741
|
-
*
|
|
2347
|
+
* 屏幕y坐标,用于解决多块屏幕坐标计算问题
|
|
1742
2348
|
*/
|
|
1743
|
-
|
|
2349
|
+
screenTop;
|
|
2350
|
+
canvasScreenTop;
|
|
2351
|
+
canvasScreenLeft;
|
|
1744
2352
|
/**
|
|
1745
|
-
*
|
|
2353
|
+
*
|
|
2354
|
+
* @param cellSize
|
|
2355
|
+
* @param padding 至少保留的边距
|
|
2356
|
+
* @param screenWidth
|
|
2357
|
+
* @param screenHeight
|
|
2358
|
+
* @param screenX
|
|
2359
|
+
* @param screenY
|
|
1746
2360
|
*/
|
|
1747
|
-
|
|
2361
|
+
constructor(cellSize, padding, screenWidth, screenHeight, screenX, screenY) {
|
|
2362
|
+
const gridMaxWidth = screenWidth - padding * 2;
|
|
2363
|
+
const gridMaxHeight = screenHeight - padding * 2;
|
|
2364
|
+
const horizontalPadding = gridMaxWidth % cellSize / 2 + padding;
|
|
2365
|
+
const verticalPadding = gridMaxHeight % cellSize / 2 + padding;
|
|
2366
|
+
const horizontalCellCount = Math.floor(gridMaxWidth / cellSize);
|
|
2367
|
+
const verticalCellCount = Math.floor(gridMaxHeight / cellSize);
|
|
2368
|
+
super(horizontalPadding, verticalPadding, horizontalCellCount * cellSize, verticalCellCount * cellSize);
|
|
2369
|
+
this.canvasScreenLeft = horizontalPadding + (screenX ?? 0);
|
|
2370
|
+
this.canvasScreenTop = verticalPadding + (screenY ?? 0);
|
|
2371
|
+
this.cellSize = cellSize;
|
|
2372
|
+
this.screenWidth = screenWidth;
|
|
2373
|
+
this.screenHeight = screenHeight;
|
|
2374
|
+
this.horizontalCellCount = horizontalCellCount;
|
|
2375
|
+
this.verticalCellCount = verticalCellCount;
|
|
2376
|
+
this.screenLeft = screenX;
|
|
2377
|
+
this.screenTop = screenY;
|
|
2378
|
+
}
|
|
1748
2379
|
/**
|
|
1749
|
-
*
|
|
1750
|
-
*
|
|
1751
|
-
*
|
|
1752
|
-
*
|
|
2380
|
+
* 将坐标对齐到网格上
|
|
2381
|
+
* @param x
|
|
2382
|
+
* @param y
|
|
2383
|
+
* @param gridSystem
|
|
1753
2384
|
*/
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
constructor(options) {
|
|
1759
|
-
this.name = options.name;
|
|
1760
|
-
this.development = options.development;
|
|
1761
|
-
this.version = options.version;
|
|
1762
|
-
this.author = options.author;
|
|
1763
|
-
this.homepage = options.homepage;
|
|
1764
|
-
this.title = options.title;
|
|
1765
|
-
this.description = options.description;
|
|
1766
|
-
this.entry = options.entry ?? "index.html";
|
|
1767
|
-
this.remoteEntry = options.remoteEntry;
|
|
1768
|
-
this.requiredAppVersion = options.requiredAppVersion;
|
|
1769
|
-
this.remotePackage = options.remotePackage;
|
|
1770
|
-
this.hash = options.hash ?? false;
|
|
1771
|
-
this.url = "";
|
|
1772
|
-
this.icon = options.icon;
|
|
1773
|
-
this.devOptions = options.devOptions;
|
|
1774
|
-
this.zipUrl = options.zipUrl;
|
|
1775
|
-
this.remote = options.remote;
|
|
1776
|
-
if (options.widgets) {
|
|
1777
|
-
for (const widget of options.widgets) {
|
|
1778
|
-
this.widgets.push(widget);
|
|
1779
|
-
}
|
|
1780
|
-
}
|
|
1781
|
-
}
|
|
1782
|
-
static parseJSON(json) {
|
|
1783
|
-
const object = JSON.parse(json);
|
|
1784
|
-
return this.parseObject(object);
|
|
2385
|
+
snapCanvasPosition(x, y) {
|
|
2386
|
+
const newX = this.getRangeValue(x - this.left, 0, this.right);
|
|
2387
|
+
const newY = this.getRangeValue(y - this.top, 0, this.bottom);
|
|
2388
|
+
return this.snapPosition(newX, newY);
|
|
1785
2389
|
}
|
|
1786
|
-
|
|
1787
|
-
const
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
keywords: [],
|
|
1811
|
-
lang: "zh-CN",
|
|
1812
|
-
name: "",
|
|
1813
|
-
title: { "zh-CN": "" },
|
|
1814
|
-
width: 0
|
|
1815
|
-
});
|
|
1816
|
-
Object.assign(widget, jsonWidget);
|
|
1817
|
-
widgets.push(widget);
|
|
1818
|
-
}
|
|
2390
|
+
snapPosition(newX, newY) {
|
|
2391
|
+
const diffX = newX % this.cellSize;
|
|
2392
|
+
if (diffX >= this.cellSize / 2) {
|
|
2393
|
+
newX = newX + this.cellSize - diffX;
|
|
2394
|
+
} else {
|
|
2395
|
+
newX = newX - diffX;
|
|
2396
|
+
}
|
|
2397
|
+
const diffY = newY % this.cellSize;
|
|
2398
|
+
if (diffY >= this.cellSize / 2) {
|
|
2399
|
+
newY = newY + this.cellSize - diffY;
|
|
2400
|
+
} else {
|
|
2401
|
+
newY = newY - diffY;
|
|
2402
|
+
}
|
|
2403
|
+
return [newX + this.left, newY + this.top];
|
|
2404
|
+
}
|
|
2405
|
+
snapSize(width, height) {
|
|
2406
|
+
let newWidth = Math.floor(width);
|
|
2407
|
+
let newHeight = Math.floor(height);
|
|
2408
|
+
const diffWidth = newWidth % this.cellSize;
|
|
2409
|
+
const diffHeight = newHeight % this.cellSize;
|
|
2410
|
+
if (diffWidth > this.cellSize / 2) {
|
|
2411
|
+
newWidth = width + this.cellSize - diffWidth;
|
|
2412
|
+
} else {
|
|
2413
|
+
newWidth = width - diffWidth;
|
|
1819
2414
|
}
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
2415
|
+
if (diffHeight > this.cellSize / 2) {
|
|
2416
|
+
newHeight = height + this.cellSize - diffHeight;
|
|
2417
|
+
} else {
|
|
2418
|
+
newHeight = height - diffHeight;
|
|
2419
|
+
}
|
|
2420
|
+
return [newWidth, newHeight];
|
|
1823
2421
|
}
|
|
1824
2422
|
/**
|
|
1825
|
-
*
|
|
1826
|
-
* @param
|
|
2423
|
+
* 将矩形对齐到网格上
|
|
2424
|
+
* @param rect
|
|
2425
|
+
* @param minWidth
|
|
2426
|
+
* @param maxWidth
|
|
2427
|
+
* @param minHeight
|
|
2428
|
+
* @param maxHeight
|
|
1827
2429
|
*/
|
|
1828
|
-
|
|
1829
|
-
|
|
2430
|
+
snapCanvasRect(rect, minWidth, maxWidth, minHeight, maxHeight) {
|
|
2431
|
+
const [newX, newY] = this.snapCanvasPosition(rect.left, rect.top);
|
|
2432
|
+
return this.snapRect(rect, minWidth, maxWidth, minHeight, maxHeight, newX, newY);
|
|
2433
|
+
}
|
|
2434
|
+
snapRect(rect, minWidth, maxWidth, minHeight, maxHeight, newX, newY) {
|
|
2435
|
+
let [newWidth, newHeight] = this.snapSize(rect.width, rect.height);
|
|
2436
|
+
newWidth = this.getRangeValue(newWidth, minWidth, maxWidth);
|
|
2437
|
+
newHeight = this.getRangeValue(newHeight, minHeight, maxHeight);
|
|
2438
|
+
if (newX + newWidth > this.right) {
|
|
2439
|
+
newX = this.right - newWidth;
|
|
2440
|
+
}
|
|
2441
|
+
if (newY + newHeight > this.bottom) {
|
|
2442
|
+
newY = this.bottom - newHeight;
|
|
2443
|
+
}
|
|
2444
|
+
return new GridRect(newX, newY, newWidth, newHeight);
|
|
1830
2445
|
}
|
|
1831
2446
|
/**
|
|
1832
|
-
*
|
|
1833
|
-
* @param
|
|
2447
|
+
* 将矩形对齐到网格上,与snapRect的区别是,这个会加上屏幕x和y坐标,用于适配多个显示器
|
|
2448
|
+
* @param rect
|
|
2449
|
+
* @param minWidth
|
|
2450
|
+
* @param maxWidth
|
|
2451
|
+
* @param minHeight
|
|
2452
|
+
* @param maxHeight
|
|
1834
2453
|
*/
|
|
1835
|
-
|
|
1836
|
-
|
|
2454
|
+
snapWindow(rect, minWidth, maxWidth, minHeight, maxHeight) {
|
|
2455
|
+
rect.left = rect.left - (this.screenLeft ?? 0);
|
|
2456
|
+
rect.top = rect.top - (this.screenTop ?? 0);
|
|
2457
|
+
const result = this.snapCanvasRect(rect, minWidth, maxWidth, minHeight, maxHeight);
|
|
2458
|
+
return new GridRect(
|
|
2459
|
+
result.left + (this.screenLeft ?? 0),
|
|
2460
|
+
result.top + (this.screenTop ?? 0),
|
|
2461
|
+
result.width,
|
|
2462
|
+
result.height
|
|
2463
|
+
);
|
|
2464
|
+
}
|
|
2465
|
+
/**
|
|
2466
|
+
* 限制值不超出屏幕
|
|
2467
|
+
* @param value
|
|
2468
|
+
* @param min
|
|
2469
|
+
* @param max
|
|
2470
|
+
* @private
|
|
2471
|
+
*/
|
|
2472
|
+
getRangeValue(value, min, max) {
|
|
2473
|
+
if (value < min) {
|
|
2474
|
+
return min;
|
|
2475
|
+
}
|
|
2476
|
+
if (value > max) {
|
|
2477
|
+
return max;
|
|
2478
|
+
}
|
|
2479
|
+
return value;
|
|
2480
|
+
}
|
|
2481
|
+
getWidth() {
|
|
2482
|
+
return this.width;
|
|
2483
|
+
}
|
|
2484
|
+
getHeight() {
|
|
2485
|
+
return this.height;
|
|
1837
2486
|
}
|
|
1838
2487
|
};
|
|
1839
2488
|
|
|
1840
|
-
// src/
|
|
1841
|
-
var
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
"it-IT" = { baseName: "it-IT", language: "it", nativeName: "Italiano" };
|
|
1855
|
-
"ja-JP" = { baseName: "ja-JP", language: "ja", nativeName: "\u65E5\u672C\u8A9E" };
|
|
1856
|
-
"ko-KR" = { baseName: "ko-KR", language: "ko", nativeName: "\uD55C\uAD6D\uC5B4" };
|
|
1857
|
-
"nl-NL" = { baseName: "nl-NL", language: "nl", nativeName: "Nederlands" };
|
|
1858
|
-
"pl-PL" = { baseName: "pl-PL", language: "pl", nativeName: "Polski" };
|
|
1859
|
-
"pt-BR" = { baseName: "pt-BR", language: "pt", nativeName: "Portugu\xEAs (Brazil)", region: "BR" };
|
|
1860
|
-
"pt-PT" = { baseName: "pt-PT", language: "pt", nativeName: "Portugu\xEAs" };
|
|
1861
|
-
"ro-RO" = { baseName: "ro-RO", language: "ro", nativeName: "Rom\xE2n\u0103" };
|
|
1862
|
-
"ru-RU" = { baseName: "ru-RU", language: "ru", nativeName: "\u0420\u0443\u0441\u0441\u043A\u0438\u0439" };
|
|
1863
|
-
"sv-SE" = { baseName: "sv-SE", language: "sv", nativeName: "Svenska" };
|
|
1864
|
-
"ta-IN" = { baseName: "ta-IN", language: "ta", nativeName: "\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD" };
|
|
1865
|
-
"tr-TR" = { baseName: "tr-TR", language: "tr", nativeName: "T\xFCrk\xE7e" };
|
|
1866
|
-
"uk-UA" = { baseName: "uk-UA", language: "uk", nativeName: "\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430" };
|
|
1867
|
-
"vi-VN" = { baseName: "vi-VN", language: "vi", nativeName: "Ti\u1EBFng Vi\u1EC7t" };
|
|
1868
|
-
"zh-CN" = { baseName: "zh-CN", language: "zh", nativeName: "\u7B80\u4F53\u4E2D\u6587", region: "CN" };
|
|
1869
|
-
"zh-TW" = { baseName: "zh-TW", language: "zh", nativeName: "\u7E41\u9AD4\u4E2D\u6587", region: "TW" };
|
|
2489
|
+
// src/api/ApiConstants.ts
|
|
2490
|
+
var ApiConstants = class {
|
|
2491
|
+
static CONFIG_LAUNCH_AT_STARTUP = "CONFIG_LAUNCH_AT_STARTUP";
|
|
2492
|
+
static CONFIG_WIDGET_TITLE_COLOR = "CONFIG_WIDGET_TITLE_COLOR";
|
|
2493
|
+
static CONFIG_DEBUG_MODE = "cn.widgetjs.config.debug";
|
|
2494
|
+
static CONFIG_GRID_CELL_SIZE = "cn.widgetjs.config.grid.size";
|
|
2495
|
+
static SHORTCUT_PIN_DESKTOP_WIDGETS = "cn.widgetjs.config.shortcut.pin_desktop_widgets";
|
|
2496
|
+
};
|
|
2497
|
+
var AppEvent = class {
|
|
2498
|
+
static LANGUAGE_CHANGED = "event::cn.widgetjs.core.app.language.changed";
|
|
2499
|
+
};
|
|
2500
|
+
var AppConfig = class {
|
|
2501
|
+
static LANGUAGE = "cn.widgetjs.config.app.language";
|
|
2502
|
+
static LAUNCH_AT_STARTUP = "CONFIG_LAUNCH_AT_STARTUP";
|
|
1870
2503
|
};
|
|
1871
2504
|
|
|
1872
|
-
// src/
|
|
1873
|
-
var
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
var supportedProtocols = /* @__PURE__ */ new Set([
|
|
1877
|
-
"https:",
|
|
1878
|
-
"http:",
|
|
1879
|
-
"file:"
|
|
1880
|
-
]);
|
|
1881
|
-
function hasCustomProtocol(urlString) {
|
|
1882
|
-
try {
|
|
1883
|
-
const { protocol } = new URL(urlString);
|
|
1884
|
-
return protocol.endsWith(":") && !supportedProtocols.has(protocol);
|
|
1885
|
-
} catch {
|
|
1886
|
-
return false;
|
|
2505
|
+
// src/api/BaseApi.ts
|
|
2506
|
+
var BaseApi = class {
|
|
2507
|
+
async invokeMethod(method, ...args) {
|
|
2508
|
+
return await ElectronUtils.invokeMethod(this.getChannel(), method, ...args);
|
|
1887
2509
|
}
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
const match = /^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(urlString);
|
|
1891
|
-
if (!match) {
|
|
1892
|
-
throw new Error(`Invalid URL: ${urlString}`);
|
|
2510
|
+
async invoke(...args) {
|
|
2511
|
+
return await ElectronUtils.invoke(this.getChannel(), ...args);
|
|
1893
2512
|
}
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
2513
|
+
};
|
|
2514
|
+
|
|
2515
|
+
// src/api/Channel.ts
|
|
2516
|
+
var Channel = /* @__PURE__ */ ((Channel2) => {
|
|
2517
|
+
Channel2["NOTIFICATION"] = "channel::cn.widgetjs.core.notification";
|
|
2518
|
+
Channel2["BROWSER_WINDOW"] = "channel::cn.widgetjs.core.browser_window";
|
|
2519
|
+
Channel2["BROADCAST"] = "channel::cn.widgetjs.core.broadcast";
|
|
2520
|
+
Channel2["WIDGET"] = "channel::cn.widgetjs.core.widget";
|
|
2521
|
+
Channel2["WIDGET_PACKAGE"] = "channel::cn.widgetjs.core.widget.package";
|
|
2522
|
+
Channel2["DEPLOYED_WIDGET"] = "channel::cn.widgetjs.core.deployed_widget";
|
|
2523
|
+
Channel2["APP"] = "channel::cn.widgetjs.core.app";
|
|
2524
|
+
Channel2["SYSTEM"] = "channel::cn.widgetjs.core.system";
|
|
2525
|
+
Channel2["DIALOG"] = "channel::cn.widgetjs.core.dialog";
|
|
2526
|
+
Channel2["HTTP"] = "channel::cn.widgetjs.core.http";
|
|
2527
|
+
Channel2["CLIPBOARD"] = "channel::cn.widgetjs.core.clipboard";
|
|
2528
|
+
Channel2["FILE"] = "channel::cn.widgetjs.core.file";
|
|
2529
|
+
Channel2["SCREEN"] = "channel::cn.widgetjs.core.screen";
|
|
2530
|
+
Channel2["MENU"] = "channel::cn.widgetjs.core.menu";
|
|
2531
|
+
Channel2["SHORTCUT"] = "channel::cn.widgetjs.core.shortcut";
|
|
2532
|
+
Channel2["LOG"] = "channel::cn.widgetjs.core.log";
|
|
2533
|
+
Channel2["DEVICE"] = "channel::cn.widgetjs.core.device";
|
|
2534
|
+
Channel2["MOUSE"] = "channel::cn.widgetjs.core.mouse";
|
|
2535
|
+
Channel2["KEYBOARD"] = "channel::cn.widgetjs.core.keyboard";
|
|
2536
|
+
Channel2["STORE"] = "channel::cn.widgetjs.core.store";
|
|
2537
|
+
Channel2["STORAGE"] = "channel::cn.widgetjs.core.storage";
|
|
2538
|
+
Channel2["PROCESS"] = "channel::cn.widgetjs.core.process";
|
|
2539
|
+
Channel2["USER"] = "channel::cn.widgetjs.core.user";
|
|
2540
|
+
Channel2["TRAY"] = "channel::cn.widgetjs.core.tray";
|
|
2541
|
+
Channel2["AI"] = "channel::cn.widgetjs.core.ai";
|
|
2542
|
+
return Channel2;
|
|
2543
|
+
})(Channel || {});
|
|
2544
|
+
|
|
2545
|
+
// src/api/AppApi.ts
|
|
2546
|
+
var AppApiImpl = class extends BaseApi {
|
|
2547
|
+
showAppWindow(route, options) {
|
|
2548
|
+
return this.invokeMethod("showAppWindow", route, options);
|
|
1901
2549
|
}
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
let [key, value = ""] = attribute.split("=").map((item) => item.trim());
|
|
1905
|
-
if (key === "charset") {
|
|
1906
|
-
value = value.toLowerCase();
|
|
1907
|
-
if (value === DATA_URL_DEFAULT_CHARSET) {
|
|
1908
|
-
return "";
|
|
1909
|
-
}
|
|
1910
|
-
}
|
|
1911
|
-
return `${key}${value ? `=${value}` : ""}`;
|
|
1912
|
-
}).filter(Boolean);
|
|
1913
|
-
const normalizedMediaType = [
|
|
1914
|
-
...attributes
|
|
1915
|
-
];
|
|
1916
|
-
if (isBase64) {
|
|
1917
|
-
normalizedMediaType.push("base64");
|
|
2550
|
+
openWidgetPackageManagerWindow() {
|
|
2551
|
+
return this.invokeMethod("openWidgetPackageManagerWindow");
|
|
1918
2552
|
}
|
|
1919
|
-
|
|
1920
|
-
|
|
2553
|
+
getRuntimeInfo() {
|
|
2554
|
+
return this.invokeMethod("getRuntimeInfo");
|
|
1921
2555
|
}
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
removeSingleSlash: true,
|
|
1937
|
-
removeDirectoryIndex: false,
|
|
1938
|
-
removeExplicitPort: false,
|
|
1939
|
-
sortQueryParameters: true,
|
|
1940
|
-
...options
|
|
1941
|
-
};
|
|
1942
|
-
urlString = urlString.replace("\\\\", "//");
|
|
1943
|
-
if (typeof options.defaultProtocol === "string" && !options.defaultProtocol.endsWith(":")) {
|
|
1944
|
-
options.defaultProtocol = `${options.defaultProtocol}:`;
|
|
2556
|
+
setProxy(config) {
|
|
2557
|
+
return this.invokeMethod("setProxy", config);
|
|
2558
|
+
}
|
|
2559
|
+
getProxy() {
|
|
2560
|
+
return this.invokeMethod("getProxy");
|
|
2561
|
+
}
|
|
2562
|
+
isWindowsStore() {
|
|
2563
|
+
return this.invokeMethod("isWindowsStore");
|
|
2564
|
+
}
|
|
2565
|
+
getAppPath() {
|
|
2566
|
+
return this.invokeMethod("getAppPath");
|
|
2567
|
+
}
|
|
2568
|
+
async getIconFile() {
|
|
2569
|
+
return this.invokeMethod("getIconFile");
|
|
1945
2570
|
}
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
return normalizeDataURL(urlString, { stripHash: options.stripHash ?? false });
|
|
2571
|
+
getChannel() {
|
|
2572
|
+
return "channel::cn.widgetjs.core.app" /* APP */;
|
|
1949
2573
|
}
|
|
1950
|
-
|
|
1951
|
-
return
|
|
2574
|
+
async setConfig(key, value) {
|
|
2575
|
+
return await this.invokeMethod("setConfig", key, value);
|
|
1952
2576
|
}
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
2577
|
+
async getConfig(key, defaultValue) {
|
|
2578
|
+
const value = await this.invokeMethod("getConfig", key);
|
|
2579
|
+
if (value === null || value === void 0) {
|
|
2580
|
+
return defaultValue;
|
|
2581
|
+
}
|
|
2582
|
+
if (typeof defaultValue == "boolean") {
|
|
2583
|
+
return value === "true";
|
|
2584
|
+
}
|
|
2585
|
+
if (typeof defaultValue == "number") {
|
|
2586
|
+
return Number(value);
|
|
2587
|
+
}
|
|
2588
|
+
return value;
|
|
1957
2589
|
}
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");
|
|
2590
|
+
async openAddWidgetWindow() {
|
|
2591
|
+
return this.invokeMethod("openAddWidgetWindow");
|
|
1961
2592
|
}
|
|
1962
|
-
|
|
1963
|
-
|
|
2593
|
+
async getVersion(type) {
|
|
2594
|
+
return this.invokeMethod("getVersion", type);
|
|
1964
2595
|
}
|
|
1965
|
-
|
|
1966
|
-
|
|
2596
|
+
async getPreloadPath() {
|
|
2597
|
+
return this.invokeMethod("getPreloadPath");
|
|
1967
2598
|
}
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
urlObject.password = "";
|
|
2599
|
+
async openSettingWindow() {
|
|
2600
|
+
return this.invokeMethod("openSettingWindow");
|
|
1971
2601
|
}
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
} else if (options.stripTextFragment) {
|
|
1975
|
-
urlObject.hash = urlObject.hash.replace(/#?:~:text.*?$/i, "");
|
|
2602
|
+
getThemeCSS() {
|
|
2603
|
+
return this.invokeMethod("getThemeCSS");
|
|
1976
2604
|
}
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
let lastIndex = 0;
|
|
1980
|
-
let result = "";
|
|
1981
|
-
for (; ; ) {
|
|
1982
|
-
const match = protocolRegex.exec(urlObject.pathname);
|
|
1983
|
-
if (!match) {
|
|
1984
|
-
break;
|
|
1985
|
-
}
|
|
1986
|
-
const protocol = match[0];
|
|
1987
|
-
const protocolAtIndex = match.index;
|
|
1988
|
-
const intermediate = urlObject.pathname.slice(lastIndex, protocolAtIndex);
|
|
1989
|
-
result += intermediate.replace(/\/{2,}/g, "/");
|
|
1990
|
-
result += protocol;
|
|
1991
|
-
lastIndex = protocolAtIndex + protocol.length;
|
|
1992
|
-
}
|
|
1993
|
-
const remnant = urlObject.pathname.slice(lastIndex, urlObject.pathname.length);
|
|
1994
|
-
result += remnant.replace(/\/{2,}/g, "/");
|
|
1995
|
-
urlObject.pathname = result;
|
|
2605
|
+
setThemeCSS(css) {
|
|
2606
|
+
return this.invokeMethod("setThemeCSS", css);
|
|
1996
2607
|
}
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
urlObject.pathname = decodeURI(urlObject.pathname);
|
|
2000
|
-
} catch {
|
|
2001
|
-
}
|
|
2608
|
+
getDevMode() {
|
|
2609
|
+
return this.invokeMethod("getDevMode");
|
|
2002
2610
|
}
|
|
2003
|
-
|
|
2004
|
-
|
|
2611
|
+
setDevMode(enable) {
|
|
2612
|
+
return this.invokeMethod("setDevMode", enable);
|
|
2005
2613
|
}
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
if (testParameter(lastComponent, options.removeDirectoryIndex)) {
|
|
2010
|
-
pathComponents = pathComponents.slice(0, -1);
|
|
2011
|
-
urlObject.pathname = `${pathComponents.slice(1).join("/")}/`;
|
|
2614
|
+
getLanguageCode() {
|
|
2615
|
+
if (ElectronUtils.hasElectronApi()) {
|
|
2616
|
+
return this.invokeMethod("getLanguageCode");
|
|
2012
2617
|
}
|
|
2618
|
+
return Promise.resolve(navigator.language);
|
|
2013
2619
|
}
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
if (options.stripWWW && /^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(urlObject.hostname)) {
|
|
2017
|
-
urlObject.hostname = urlObject.hostname.replace(/^www\./, "");
|
|
2018
|
-
}
|
|
2620
|
+
async setLanguageCode(code) {
|
|
2621
|
+
await this.invokeMethod("setLanguageCode", code);
|
|
2019
2622
|
}
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
if (testParameter(key, options.removeQueryParameters)) {
|
|
2023
|
-
urlObject.searchParams.delete(key);
|
|
2024
|
-
}
|
|
2025
|
-
}
|
|
2623
|
+
getGridCellSize() {
|
|
2624
|
+
return this.invokeMethod("getGridCellSize");
|
|
2026
2625
|
}
|
|
2027
|
-
|
|
2028
|
-
|
|
2626
|
+
setGridCellSize(size) {
|
|
2627
|
+
return this.invokeMethod("setGridCellSize", size);
|
|
2029
2628
|
}
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
if (!testParameter(key, options.keepQueryParameters)) {
|
|
2033
|
-
urlObject.searchParams.delete(key);
|
|
2034
|
-
}
|
|
2035
|
-
}
|
|
2629
|
+
exit() {
|
|
2630
|
+
return this.invokeMethod("exit");
|
|
2036
2631
|
}
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
try {
|
|
2040
|
-
urlObject.search = decodeURIComponent(urlObject.search);
|
|
2041
|
-
} catch {
|
|
2042
|
-
}
|
|
2632
|
+
openCheckUpdateWindow() {
|
|
2633
|
+
return this.invokeMethod(`openCheckUpdateWindow`);
|
|
2043
2634
|
}
|
|
2044
|
-
|
|
2045
|
-
|
|
2635
|
+
openWidgetManagerWindow() {
|
|
2636
|
+
return this.invokeMethod(`openWidgetManagerWindow`);
|
|
2046
2637
|
}
|
|
2047
|
-
|
|
2048
|
-
|
|
2638
|
+
openRuntimeInfoWindow() {
|
|
2639
|
+
return this.invokeMethod(`openRuntimeInfoWindow`);
|
|
2049
2640
|
}
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2641
|
+
};
|
|
2642
|
+
var AppApi = new AppApiImpl();
|
|
2643
|
+
|
|
2644
|
+
// src/api/BroadcastApi.ts
|
|
2645
|
+
var BroadcastApiImpl = class extends BaseApi {
|
|
2646
|
+
async send(event) {
|
|
2647
|
+
await this.invokeMethod("send", event);
|
|
2054
2648
|
}
|
|
2055
|
-
|
|
2056
|
-
|
|
2649
|
+
async register(...event) {
|
|
2650
|
+
await this.invokeMethod("register", event);
|
|
2057
2651
|
}
|
|
2058
|
-
|
|
2059
|
-
|
|
2652
|
+
async unregister(...event) {
|
|
2653
|
+
await this.invokeMethod("unregister", event);
|
|
2060
2654
|
}
|
|
2061
|
-
|
|
2062
|
-
|
|
2655
|
+
getChannel() {
|
|
2656
|
+
return "channel::cn.widgetjs.core.broadcast" /* BROADCAST */;
|
|
2063
2657
|
}
|
|
2064
|
-
|
|
2065
|
-
|
|
2658
|
+
};
|
|
2659
|
+
var BroadcastApi = new BroadcastApiImpl();
|
|
2066
2660
|
|
|
2067
|
-
// src/
|
|
2068
|
-
var
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2661
|
+
// src/api/BrowserWindowApi.ts
|
|
2662
|
+
var BrowserWindowApiEvent = /* @__PURE__ */ ((BrowserWindowApiEvent2) => {
|
|
2663
|
+
BrowserWindowApiEvent2["BLUR"] = "event::cn.widgetjs.core.browser-window.blur";
|
|
2664
|
+
BrowserWindowApiEvent2["MOVED"] = "event::cn.widgetjs.core.browser-window.moved";
|
|
2665
|
+
BrowserWindowApiEvent2["FOCUS"] = "event::cn.widgetjs.core.browser-window.focus";
|
|
2666
|
+
BrowserWindowApiEvent2["CLOSE"] = "event::cn.widgetjs.core.browser-window.close";
|
|
2667
|
+
BrowserWindowApiEvent2["SNAP_TO_EDGE"] = "event::cn.widgetjs.core.browser-window.snap_to_edge";
|
|
2668
|
+
BrowserWindowApiEvent2["RESIZED"] = "event::cn.widgetjs.core.browser-window.resized";
|
|
2669
|
+
BrowserWindowApiEvent2["CANCEL_SNAP_TO_EDGE"] = "event::cn.widgetjs.core.browser-window.cancel_snap_to_edge";
|
|
2670
|
+
return BrowserWindowApiEvent2;
|
|
2671
|
+
})(BrowserWindowApiEvent || {});
|
|
2672
|
+
var BrowserWindowApiImpl = class extends BaseApi {
|
|
2673
|
+
getProxy() {
|
|
2674
|
+
return this.invokeMethod("getProxy");
|
|
2078
2675
|
}
|
|
2079
|
-
|
|
2080
|
-
return this.
|
|
2676
|
+
setBackgroundThrottling(enabled) {
|
|
2677
|
+
return this.invokeMethod("setBackgroundThrottling", enabled);
|
|
2081
2678
|
}
|
|
2082
|
-
|
|
2083
|
-
return this.
|
|
2679
|
+
getBackgroundThrottling() {
|
|
2680
|
+
return this.invokeMethod("getBackgroundThrottling");
|
|
2084
2681
|
}
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
/**
|
|
2103
|
-
*
|
|
2104
|
-
* @param cellSize
|
|
2105
|
-
* @param padding 至少保留的边距
|
|
2106
|
-
* @param screenWidth
|
|
2107
|
-
* @param screenHeight
|
|
2108
|
-
* @param screenX
|
|
2109
|
-
* @param screenY
|
|
2110
|
-
*/
|
|
2111
|
-
constructor(cellSize, padding, screenWidth, screenHeight, screenX, screenY) {
|
|
2112
|
-
const gridMaxWidth = screenWidth - padding * 2;
|
|
2113
|
-
const gridMaxHeight = screenHeight - padding * 2;
|
|
2114
|
-
const horizontalPadding = gridMaxWidth % cellSize / 2 + padding;
|
|
2115
|
-
const verticalPadding = gridMaxHeight % cellSize / 2 + padding;
|
|
2116
|
-
const horizontalCellCount = Math.floor(gridMaxWidth / cellSize);
|
|
2117
|
-
const verticalCellCount = Math.floor(gridMaxHeight / cellSize);
|
|
2118
|
-
super(horizontalPadding, verticalPadding, horizontalCellCount * cellSize, verticalCellCount * cellSize);
|
|
2119
|
-
this.canvasScreenLeft = horizontalPadding + (screenX ?? 0);
|
|
2120
|
-
this.canvasScreenTop = verticalPadding + (screenY ?? 0);
|
|
2121
|
-
this.cellSize = cellSize;
|
|
2122
|
-
this.screenWidth = screenWidth;
|
|
2123
|
-
this.screenHeight = screenHeight;
|
|
2124
|
-
this.horizontalCellCount = horizontalCellCount;
|
|
2125
|
-
this.verticalCellCount = verticalCellCount;
|
|
2126
|
-
this.screenLeft = screenX;
|
|
2127
|
-
this.screenTop = screenY;
|
|
2682
|
+
isResizable() {
|
|
2683
|
+
return this.invokeMethod("isResizable");
|
|
2684
|
+
}
|
|
2685
|
+
setHasShadow(hasShadow) {
|
|
2686
|
+
return this.invokeMethod("setHasShadow", hasShadow);
|
|
2687
|
+
}
|
|
2688
|
+
isDraggingWindow() {
|
|
2689
|
+
return this.invokeMethod("isDraggingWindow");
|
|
2690
|
+
}
|
|
2691
|
+
setNoActivate() {
|
|
2692
|
+
return this.invokeMethod("setNoActivate");
|
|
2693
|
+
}
|
|
2694
|
+
async isVisible() {
|
|
2695
|
+
return await this.invokeMethod("isVisible");
|
|
2696
|
+
}
|
|
2697
|
+
getChannel() {
|
|
2698
|
+
return "channel::cn.widgetjs.core.browser_window" /* BROWSER_WINDOW */;
|
|
2128
2699
|
}
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
* @param x
|
|
2132
|
-
* @param y
|
|
2133
|
-
* @param gridSystem
|
|
2134
|
-
*/
|
|
2135
|
-
snapCanvasPosition(x, y) {
|
|
2136
|
-
const newX = this.getRangeValue(x - this.left, 0, this.right);
|
|
2137
|
-
const newY = this.getRangeValue(y - this.top, 0, this.bottom);
|
|
2138
|
-
return this.snapPosition(newX, newY);
|
|
2700
|
+
async setIgnoreMouseEvent(ignore) {
|
|
2701
|
+
await this.invokeMethod("setIgnoreMouseEvent", ignore);
|
|
2139
2702
|
}
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
if (diffX >= this.cellSize / 2) {
|
|
2143
|
-
newX = newX + this.cellSize - diffX;
|
|
2144
|
-
} else {
|
|
2145
|
-
newX = newX - diffX;
|
|
2146
|
-
}
|
|
2147
|
-
const diffY = newY % this.cellSize;
|
|
2148
|
-
if (diffY >= this.cellSize / 2) {
|
|
2149
|
-
newY = newY + this.cellSize - diffY;
|
|
2150
|
-
} else {
|
|
2151
|
-
newY = newY - diffY;
|
|
2152
|
-
}
|
|
2153
|
-
return [newX + this.left, newY + this.top];
|
|
2703
|
+
async show() {
|
|
2704
|
+
await this.invokeMethod("show", true);
|
|
2154
2705
|
}
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2706
|
+
async showInactive() {
|
|
2707
|
+
await this.invokeMethod("showInactive", true);
|
|
2708
|
+
}
|
|
2709
|
+
async hide() {
|
|
2710
|
+
await this.invokeMethod("hide", false);
|
|
2711
|
+
}
|
|
2712
|
+
async center() {
|
|
2713
|
+
await this.invokeMethod("center", false);
|
|
2714
|
+
}
|
|
2715
|
+
async setAlwaysOnTop(alwaysOnTop) {
|
|
2716
|
+
await this.invokeMethod("setAlwaysOnTop", alwaysOnTop);
|
|
2717
|
+
}
|
|
2718
|
+
async isAlwaysOnTop() {
|
|
2719
|
+
return await this.invokeMethod("isAlwaysOnTop");
|
|
2720
|
+
}
|
|
2721
|
+
async openUrl(url, option) {
|
|
2722
|
+
if (ElectronUtils.hasElectronApi()) {
|
|
2723
|
+
await this.invokeMethod("openUrl", url, option);
|
|
2167
2724
|
} else {
|
|
2168
|
-
|
|
2725
|
+
window.open(url, "_blank");
|
|
2169
2726
|
}
|
|
2170
|
-
return [newWidth, newHeight];
|
|
2171
2727
|
}
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
* @param rect
|
|
2175
|
-
* @param minWidth
|
|
2176
|
-
* @param maxWidth
|
|
2177
|
-
* @param minHeight
|
|
2178
|
-
* @param maxHeight
|
|
2179
|
-
*/
|
|
2180
|
-
snapCanvasRect(rect, minWidth, maxWidth, minHeight, maxHeight) {
|
|
2181
|
-
const [newX, newY] = this.snapCanvasPosition(rect.left, rect.top);
|
|
2182
|
-
return this.snapRect(rect, minWidth, maxWidth, minHeight, maxHeight, newX, newY);
|
|
2728
|
+
async moveTop() {
|
|
2729
|
+
await this.invokeMethod("moveTop");
|
|
2183
2730
|
}
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
return
|
|
2731
|
+
async openDevTools() {
|
|
2732
|
+
await this.invokeMethod("openDevTools");
|
|
2733
|
+
}
|
|
2734
|
+
async setPosition(options) {
|
|
2735
|
+
await this.invokeMethod("setPosition", options);
|
|
2736
|
+
}
|
|
2737
|
+
async getPosition() {
|
|
2738
|
+
return await this.invokeMethod("getPosition");
|
|
2739
|
+
}
|
|
2740
|
+
async blur() {
|
|
2741
|
+
return await this.invokeMethod("blur");
|
|
2742
|
+
}
|
|
2743
|
+
async focus() {
|
|
2744
|
+
return await this.invokeMethod("focus");
|
|
2195
2745
|
}
|
|
2196
2746
|
/**
|
|
2197
|
-
*
|
|
2198
|
-
* @param
|
|
2199
|
-
* @param minWidth
|
|
2200
|
-
* @param maxWidth
|
|
2201
|
-
* @param minHeight
|
|
2202
|
-
* @param maxHeight
|
|
2747
|
+
* 设置窗口是否可以拉伸
|
|
2748
|
+
* @param resizable
|
|
2203
2749
|
*/
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
return
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
|
|
2750
|
+
async setResizable(resizable) {
|
|
2751
|
+
return await this.invokeMethod("setResizable", resizable);
|
|
2752
|
+
}
|
|
2753
|
+
async getBounds() {
|
|
2754
|
+
return await this.invokeMethod("getBounds");
|
|
2755
|
+
}
|
|
2756
|
+
async setBounds(bounds, animate) {
|
|
2757
|
+
return await this.invokeMethod("setBounds", bounds, animate);
|
|
2758
|
+
}
|
|
2759
|
+
async alignToScreen(align) {
|
|
2760
|
+
return await this.invokeMethod("alignToScreen", align);
|
|
2761
|
+
}
|
|
2762
|
+
async startDraggingWindow() {
|
|
2763
|
+
return await this.invokeMethod("startDraggingWindow");
|
|
2764
|
+
}
|
|
2765
|
+
async stopDraggingWindow() {
|
|
2766
|
+
return await this.invokeMethod("stopDraggingWindow");
|
|
2214
2767
|
}
|
|
2215
2768
|
/**
|
|
2216
|
-
*
|
|
2217
|
-
* @param
|
|
2218
|
-
* @param min
|
|
2219
|
-
* @param max
|
|
2220
|
-
* @private
|
|
2769
|
+
* 通过url检测窗口是否存在
|
|
2770
|
+
* @param url
|
|
2221
2771
|
*/
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
return min;
|
|
2225
|
-
}
|
|
2226
|
-
if (value > max) {
|
|
2227
|
-
return max;
|
|
2228
|
-
}
|
|
2229
|
-
return value;
|
|
2772
|
+
async existsByUrl(url) {
|
|
2773
|
+
return await this.invokeMethod("existsByUrl", url);
|
|
2230
2774
|
}
|
|
2231
|
-
|
|
2232
|
-
return this.
|
|
2775
|
+
async getMaximumSize() {
|
|
2776
|
+
return await this.invokeMethod("getMaximumSize");
|
|
2233
2777
|
}
|
|
2234
|
-
|
|
2235
|
-
return this.
|
|
2778
|
+
async minimize() {
|
|
2779
|
+
return await this.invokeMethod("minimize");
|
|
2236
2780
|
}
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
// src/api/ElectronApi.ts
|
|
2240
|
-
var ElectronApi = class {
|
|
2241
|
-
static async addIpcListener(key, f) {
|
|
2242
|
-
await ElectronUtils.getAPI()?.addIpcListener(key, f);
|
|
2781
|
+
async maximize() {
|
|
2782
|
+
return await this.invokeMethod("maximize");
|
|
2243
2783
|
}
|
|
2244
|
-
|
|
2245
|
-
await
|
|
2784
|
+
async isMaximized() {
|
|
2785
|
+
return await this.invokeMethod("isMaximized");
|
|
2246
2786
|
}
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
// src/api/Channel.ts
|
|
2250
|
-
var Channel = /* @__PURE__ */ ((Channel2) => {
|
|
2251
|
-
Channel2["NOTIFICATION"] = "channel::cn.widgetjs.core.notification";
|
|
2252
|
-
Channel2["BROWSER_WINDOW"] = "channel::cn.widgetjs.core.browser_window";
|
|
2253
|
-
Channel2["BROADCAST"] = "channel::cn.widgetjs.core.broadcast";
|
|
2254
|
-
Channel2["WIDGET"] = "channel::cn.widgetjs.core.widget";
|
|
2255
|
-
Channel2["WIDGET_PACKAGE"] = "channel::cn.widgetjs.core.widget.package";
|
|
2256
|
-
Channel2["DEPLOYED_WIDGET"] = "channel::cn.widgetjs.core.deployed_widget";
|
|
2257
|
-
Channel2["APP"] = "channel::cn.widgetjs.core.app";
|
|
2258
|
-
Channel2["SYSTEM"] = "channel::cn.widgetjs.core.system";
|
|
2259
|
-
Channel2["DIALOG"] = "channel::cn.widgetjs.core.dialog";
|
|
2260
|
-
Channel2["HTTP"] = "channel::cn.widgetjs.core.http";
|
|
2261
|
-
Channel2["CLIPBOARD"] = "channel::cn.widgetjs.core.clipboard";
|
|
2262
|
-
Channel2["FILE"] = "channel::cn.widgetjs.core.file";
|
|
2263
|
-
Channel2["SCREEN"] = "channel::cn.widgetjs.core.screen";
|
|
2264
|
-
Channel2["MENU"] = "channel::cn.widgetjs.core.menu";
|
|
2265
|
-
Channel2["SHORTCUT"] = "channel::cn.widgetjs.core.shortcut";
|
|
2266
|
-
Channel2["LOG"] = "channel::cn.widgetjs.core.log";
|
|
2267
|
-
Channel2["DEVICE"] = "channel::cn.widgetjs.core.device";
|
|
2268
|
-
Channel2["MOUSE"] = "channel::cn.widgetjs.core.mouse";
|
|
2269
|
-
Channel2["KEYBOARD"] = "channel::cn.widgetjs.core.keyboard";
|
|
2270
|
-
Channel2["STORE"] = "channel::cn.widgetjs.core.store";
|
|
2271
|
-
Channel2["STORAGE"] = "channel::cn.widgetjs.core.storage";
|
|
2272
|
-
Channel2["PROCESS"] = "channel::cn.widgetjs.core.process";
|
|
2273
|
-
Channel2["USER"] = "channel::cn.widgetjs.core.user";
|
|
2274
|
-
Channel2["TRAY"] = "channel::cn.widgetjs.core.tray";
|
|
2275
|
-
Channel2["AI"] = "channel::cn.widgetjs.core.ai";
|
|
2276
|
-
return Channel2;
|
|
2277
|
-
})(Channel || {});
|
|
2278
|
-
|
|
2279
|
-
// src/api/BaseApi.ts
|
|
2280
|
-
var BaseApi = class {
|
|
2281
|
-
async invokeMethod(method, ...args) {
|
|
2282
|
-
return await ElectronUtils.invokeMethod(this.getChannel(), method, ...args);
|
|
2787
|
+
async isMinimized() {
|
|
2788
|
+
return await this.invokeMethod("isMinimized");
|
|
2283
2789
|
}
|
|
2284
|
-
async
|
|
2285
|
-
return await
|
|
2790
|
+
async restore() {
|
|
2791
|
+
return await this.invokeMethod("restore");
|
|
2286
2792
|
}
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2793
|
+
async unmaximize() {
|
|
2794
|
+
return await this.invokeMethod("unmaximize");
|
|
2795
|
+
}
|
|
2796
|
+
async setZoomLevel(level) {
|
|
2797
|
+
return await this.invokeMethod("setZoomLevel", level);
|
|
2798
|
+
}
|
|
2799
|
+
async reload() {
|
|
2800
|
+
return await this.invokeMethod("reload");
|
|
2801
|
+
}
|
|
2802
|
+
async setMovable(movable) {
|
|
2803
|
+
return await this.invokeMethod("setMovable", movable);
|
|
2804
|
+
}
|
|
2805
|
+
async setSize(width, height, animate) {
|
|
2806
|
+
return this.invokeMethod("setSize", width, height, animate);
|
|
2807
|
+
}
|
|
2808
|
+
async isFocused() {
|
|
2809
|
+
return this.invokeMethod("isFocused");
|
|
2810
|
+
}
|
|
2811
|
+
async setMaximumSize(width, height) {
|
|
2812
|
+
return this.invokeMethod("setMaximumSize", width, height);
|
|
2813
|
+
}
|
|
2814
|
+
async setMinimumSize(width, height) {
|
|
2815
|
+
return this.invokeMethod("setMinimumSize", width, height);
|
|
2816
|
+
}
|
|
2817
|
+
getMinimumSize() {
|
|
2818
|
+
return this.invokeMethod("getMinimumSize");
|
|
2819
|
+
}
|
|
2820
|
+
close() {
|
|
2821
|
+
return this.invokeMethod("close");
|
|
2822
|
+
}
|
|
2823
|
+
setZoomFactor(factor) {
|
|
2824
|
+
return this.invokeMethod("setZoomFactor", factor);
|
|
2825
|
+
}
|
|
2826
|
+
async setup(options) {
|
|
2827
|
+
if (options.alwaysOnTop) {
|
|
2828
|
+
await this.setAlwaysOnTop(true);
|
|
2829
|
+
}
|
|
2830
|
+
await this.setResizable(!!options.resizable);
|
|
2831
|
+
await this.setMovable(!!options.movable);
|
|
2832
|
+
if (options.width && options.height) {
|
|
2833
|
+
await this.setSize(options.width, options.height);
|
|
2834
|
+
}
|
|
2835
|
+
if (options.minWidth && options.minHeight) {
|
|
2836
|
+
await this.setMinimumSize(options.minWidth, options.minHeight);
|
|
2837
|
+
}
|
|
2838
|
+
if (options.maxWidth && options.maxHeight) {
|
|
2839
|
+
await this.setMaximumSize(options.maxWidth, options.maxHeight);
|
|
2840
|
+
}
|
|
2841
|
+
if (options.center) {
|
|
2842
|
+
await this.center();
|
|
2843
|
+
}
|
|
2844
|
+
if (options.x != void 0 || options.y != void 0) {
|
|
2845
|
+
await this.setPosition({ x: options.x, y: options.y });
|
|
2846
|
+
}
|
|
2847
|
+
if (options.skipTaskbar) {
|
|
2848
|
+
await this.setSkipTaskbar(true);
|
|
2849
|
+
} else if (options.skipTaskbar === false) {
|
|
2850
|
+
await this.setSkipTaskbar(false);
|
|
2851
|
+
}
|
|
2293
2852
|
}
|
|
2294
|
-
async
|
|
2295
|
-
await this.invokeMethod("
|
|
2853
|
+
async setProxy(config) {
|
|
2854
|
+
return await this.invokeMethod("setProxy", config);
|
|
2296
2855
|
}
|
|
2297
|
-
|
|
2298
|
-
|
|
2856
|
+
getSize() {
|
|
2857
|
+
return this.invokeMethod("getSize");
|
|
2299
2858
|
}
|
|
2300
|
-
|
|
2301
|
-
return
|
|
2859
|
+
setSkipTaskbar(skip) {
|
|
2860
|
+
return this.invokeMethod("setSkipTaskbar", skip);
|
|
2302
2861
|
}
|
|
2303
2862
|
};
|
|
2304
|
-
var
|
|
2863
|
+
var BrowserWindowApi = new BrowserWindowApiImpl();
|
|
2305
2864
|
|
|
2306
|
-
// src/api/
|
|
2307
|
-
var
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
var WidgetApiImpl = class extends BaseApi {
|
|
2315
|
-
getSyncInfo(widgetName) {
|
|
2316
|
-
return this.invokeMethod("getSyncInfo", widgetName);
|
|
2865
|
+
// src/api/ClipboardApi.ts
|
|
2866
|
+
var ClipboardApiEvent = /* @__PURE__ */ ((ClipboardApiEvent2) => {
|
|
2867
|
+
ClipboardApiEvent2["CHANGED"] = "clipboard-changed";
|
|
2868
|
+
return ClipboardApiEvent2;
|
|
2869
|
+
})(ClipboardApiEvent || {});
|
|
2870
|
+
var ClipboardApiImpl = class extends BaseApi {
|
|
2871
|
+
writeText(text) {
|
|
2872
|
+
return this.invokeMethod("writeText", text);
|
|
2317
2873
|
}
|
|
2318
|
-
|
|
2319
|
-
return this.invokeMethod("
|
|
2874
|
+
async getSelectedText() {
|
|
2875
|
+
return this.invokeMethod("getSelectedText");
|
|
2320
2876
|
}
|
|
2321
|
-
|
|
2322
|
-
return this.invokeMethod("
|
|
2877
|
+
async getText() {
|
|
2878
|
+
return this.invokeMethod("getText");
|
|
2323
2879
|
}
|
|
2324
2880
|
getChannel() {
|
|
2325
|
-
return "channel::cn.widgetjs.core.
|
|
2326
|
-
}
|
|
2327
|
-
async registerWidgets(widgets) {
|
|
2328
|
-
return this.invokeMethod("registerWidgets", JSON.stringify(widgets));
|
|
2881
|
+
return "channel::cn.widgetjs.core.clipboard" /* CLIPBOARD */;
|
|
2329
2882
|
}
|
|
2330
|
-
|
|
2331
|
-
|
|
2883
|
+
};
|
|
2884
|
+
var ClipboardApi = new ClipboardApiImpl();
|
|
2885
|
+
|
|
2886
|
+
// src/utils/AppProtocolUtils.ts
|
|
2887
|
+
var AppProtocolUtils = class {
|
|
2888
|
+
static getBaseURL() {
|
|
2889
|
+
return new URL("widget://widgetjs.cn");
|
|
2332
2890
|
}
|
|
2333
|
-
|
|
2334
|
-
const
|
|
2335
|
-
|
|
2336
|
-
if (
|
|
2337
|
-
|
|
2338
|
-
widgets.push(Widget.parseObject(item));
|
|
2339
|
-
}
|
|
2891
|
+
static getAddWidgetUrl(options) {
|
|
2892
|
+
const url = this.getBaseURL();
|
|
2893
|
+
url.pathname = "/widget/add";
|
|
2894
|
+
if (options.packageJsonUrl) {
|
|
2895
|
+
url.searchParams.set("packageJsonUrl", options.packageJsonUrl);
|
|
2340
2896
|
}
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2897
|
+
if (options.hostname) {
|
|
2898
|
+
url.searchParams.set("hostname", options.hostname);
|
|
2899
|
+
}
|
|
2900
|
+
if (options.widgetTitle) {
|
|
2901
|
+
url.searchParams.set("widgetTitle", options.widgetTitle);
|
|
2902
|
+
}
|
|
2903
|
+
url.searchParams.set("widgetName", options.widgetName);
|
|
2904
|
+
url.searchParams.set("deployMode", options.deployMode.toString());
|
|
2905
|
+
return url.toString();
|
|
2345
2906
|
}
|
|
2346
|
-
|
|
2347
|
-
|
|
2907
|
+
};
|
|
2908
|
+
|
|
2909
|
+
// src/api/DeployedWidgetApi.ts
|
|
2910
|
+
var DeployedWidgetApiImpl = class extends BaseApi {
|
|
2911
|
+
getChannel() {
|
|
2912
|
+
return "channel::cn.widgetjs.core.deployed_widget" /* DEPLOYED_WIDGET */;
|
|
2348
2913
|
}
|
|
2349
2914
|
/**
|
|
2350
|
-
*
|
|
2915
|
+
* 移除组件
|
|
2916
|
+
* @param id
|
|
2351
2917
|
*/
|
|
2352
|
-
async
|
|
2353
|
-
return
|
|
2918
|
+
async removeDeployedWidget(id) {
|
|
2919
|
+
return this.invokeMethod("removeDeployedWidget", id);
|
|
2354
2920
|
}
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2921
|
+
addWidget(options) {
|
|
2922
|
+
if (ElectronUtils.hasElectronApi()) {
|
|
2923
|
+
return this.invokeMethod("addWidget", options);
|
|
2924
|
+
} else {
|
|
2925
|
+
window.location.href = AppProtocolUtils.getAddWidgetUrl(options);
|
|
2926
|
+
return Promise.resolve([]);
|
|
2927
|
+
}
|
|
2361
2928
|
}
|
|
2362
2929
|
/**
|
|
2363
|
-
*
|
|
2364
|
-
* @
|
|
2930
|
+
* 通过组件名移除已添加的组件
|
|
2931
|
+
* @param name 组件名
|
|
2365
2932
|
*/
|
|
2366
|
-
async
|
|
2367
|
-
|
|
2368
|
-
if (result) {
|
|
2369
|
-
return WidgetPackage.parseObject(result);
|
|
2370
|
-
}
|
|
2371
|
-
return void 0;
|
|
2372
|
-
}
|
|
2373
|
-
async getWidgetPackageUrl(packageName) {
|
|
2374
|
-
const widgetPackage = await this.getWidgetPackage(packageName);
|
|
2375
|
-
if (!widgetPackage) {
|
|
2376
|
-
return null;
|
|
2377
|
-
}
|
|
2378
|
-
return widgetPackage.url;
|
|
2379
|
-
}
|
|
2380
|
-
async upgradePackage(packageName) {
|
|
2381
|
-
return await this.invokeMethod("upgradePackage", packageName);
|
|
2933
|
+
async removeDeployedWidgetByName(name) {
|
|
2934
|
+
return this.invokeMethod("removeDeployedWidgetByName", name);
|
|
2382
2935
|
}
|
|
2383
2936
|
/**
|
|
2384
|
-
*
|
|
2385
|
-
* @param
|
|
2937
|
+
* 获取已添加的组件
|
|
2938
|
+
* @param name 组件名,可以不传
|
|
2386
2939
|
*/
|
|
2387
|
-
|
|
2388
|
-
return this.invokeMethod("
|
|
2389
|
-
}
|
|
2390
|
-
isIgnoreMouseEvents(widgetId) {
|
|
2391
|
-
return this.invokeMethod("isIgnoreMouseEvents", widgetId);
|
|
2392
|
-
}
|
|
2393
|
-
setIgnoreMouseEvents(widgetId, ignore) {
|
|
2394
|
-
return this.invokeMethod("setIgnoreMouseEvents", widgetId, ignore);
|
|
2940
|
+
async getDeployedWidgets(name) {
|
|
2941
|
+
return this.invokeMethod("getDeployedWidgets", name);
|
|
2395
2942
|
}
|
|
2396
|
-
|
|
2397
|
-
return this.invokeMethod("
|
|
2943
|
+
async getDeployedWidget(id) {
|
|
2944
|
+
return this.invokeMethod("getDeployedWidget", id);
|
|
2398
2945
|
}
|
|
2399
|
-
};
|
|
2400
|
-
var WidgetApi = new WidgetApiImpl();
|
|
2401
|
-
|
|
2402
|
-
// src/api/WidgetDataApi.ts
|
|
2403
|
-
var WidgetDataApiImpl = class {
|
|
2404
|
-
stores = /* @__PURE__ */ new Map();
|
|
2405
2946
|
/**
|
|
2406
|
-
*
|
|
2407
|
-
*
|
|
2408
|
-
* @param
|
|
2947
|
+
* Opens the dev tools for a widget with the specified ID.
|
|
2948
|
+
*
|
|
2949
|
+
* @param {string} widgetId - The ID of the widget to open the dev tools for.
|
|
2950
|
+
* @return {Promise} A Promise that resolves when the dev tools are opened.
|
|
2409
2951
|
*/
|
|
2410
|
-
async
|
|
2411
|
-
|
|
2412
|
-
const json = JSON.stringify(data);
|
|
2413
|
-
const result = await store.setItem(this.getKey(data.name, data.id), json);
|
|
2414
|
-
if (options.sendBroadcast) {
|
|
2415
|
-
const broadcastEvent = new BroadcastEvent({
|
|
2416
|
-
event: "event::cn.widgetjs.core.widget.data-changed" /* DATA_CHANGED */,
|
|
2417
|
-
payload: { name: data.name, json }
|
|
2418
|
-
});
|
|
2419
|
-
await BroadcastApi.send(broadcastEvent);
|
|
2420
|
-
}
|
|
2421
|
-
return result;
|
|
2952
|
+
async openDevTools(widgetId) {
|
|
2953
|
+
return this.invokeMethod("openDevTools", widgetId);
|
|
2422
2954
|
}
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
return this.stores.get(widgetName);
|
|
2426
|
-
}
|
|
2427
|
-
const store = localforage.createInstance({ name: widgetName, storeName });
|
|
2428
|
-
this.stores.set(widgetName, store);
|
|
2429
|
-
return store;
|
|
2955
|
+
async openConfigPage(widgetId, params) {
|
|
2956
|
+
return this.invokeMethod("openConfigPage", widgetId, params);
|
|
2430
2957
|
}
|
|
2431
2958
|
/**
|
|
2432
|
-
*
|
|
2433
|
-
* @param
|
|
2434
|
-
* @param
|
|
2959
|
+
* 注册激活、呼出、置顶组件快捷键
|
|
2960
|
+
* @param widgetId 组件id
|
|
2961
|
+
* @param shortcut 如果传空或者不传,则会取消快捷键。更多快捷键配置,请查看Accelerator用法
|
|
2962
|
+
* https://www.electronjs.org/docs/latest/api/accelerator
|
|
2435
2963
|
*/
|
|
2436
|
-
async
|
|
2437
|
-
|
|
2438
|
-
const json = JSON.stringify(data);
|
|
2439
|
-
const result = await store.setItem(data.name, json);
|
|
2440
|
-
if (options?.sendBroadcast) {
|
|
2441
|
-
const broadcastEvent = new BroadcastEvent({
|
|
2442
|
-
event: "event::cn.widgetjs.core.widget.data-changed" /* DATA_CHANGED */,
|
|
2443
|
-
payload: { name: data.name, json }
|
|
2444
|
-
});
|
|
2445
|
-
await BroadcastApi.send(broadcastEvent);
|
|
2446
|
-
}
|
|
2447
|
-
return result;
|
|
2448
|
-
}
|
|
2449
|
-
async findByName(...args) {
|
|
2450
|
-
let name = "";
|
|
2451
|
-
let dbStr = "";
|
|
2452
|
-
let data;
|
|
2453
|
-
if (args.length === 2) {
|
|
2454
|
-
name = args[0];
|
|
2455
|
-
const Type = args[1];
|
|
2456
|
-
data = new Type(name);
|
|
2457
|
-
} else {
|
|
2458
|
-
data = args[0];
|
|
2459
|
-
name = data.name;
|
|
2460
|
-
}
|
|
2461
|
-
const store = this.getStore(name);
|
|
2462
|
-
dbStr = await store.getItem(name);
|
|
2463
|
-
if (dbStr) {
|
|
2464
|
-
data.parseJSON(JSON.parse(dbStr));
|
|
2465
|
-
return data;
|
|
2466
|
-
}
|
|
2467
|
-
return void 0;
|
|
2468
|
-
}
|
|
2469
|
-
async find(name, id, Type) {
|
|
2470
|
-
const store = this.getStore(name);
|
|
2471
|
-
const result = await store.getItem(this.getKey(name, id));
|
|
2472
|
-
if (result) {
|
|
2473
|
-
const widgetData = new Type(name, id);
|
|
2474
|
-
widgetData.parseJSON(JSON.parse(result));
|
|
2475
|
-
return widgetData;
|
|
2476
|
-
}
|
|
2477
|
-
return void 0;
|
|
2964
|
+
async registerActiveShortcut(widgetId, shortcut) {
|
|
2965
|
+
return this.invokeMethod("registerActiveShortcut", widgetId, shortcut);
|
|
2478
2966
|
}
|
|
2479
|
-
|
|
2480
|
-
return
|
|
2967
|
+
async setProxy(widgetId, proxy) {
|
|
2968
|
+
return this.invokeMethod("setProxy", widgetId, proxy);
|
|
2481
2969
|
}
|
|
2482
2970
|
};
|
|
2483
|
-
var
|
|
2971
|
+
var DeployedWidgetApi = new DeployedWidgetApiImpl();
|
|
2484
2972
|
|
|
2485
|
-
// src/api/
|
|
2486
|
-
var
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
BrowserWindowApiEvent2["FOCUS"] = "event::cn.widgetjs.core.browser-window.focus";
|
|
2490
|
-
BrowserWindowApiEvent2["CLOSE"] = "event::cn.widgetjs.core.browser-window.close";
|
|
2491
|
-
BrowserWindowApiEvent2["SNAP_TO_EDGE"] = "event::cn.widgetjs.core.browser-window.snap_to_edge";
|
|
2492
|
-
BrowserWindowApiEvent2["RESIZED"] = "event::cn.widgetjs.core.browser-window.resized";
|
|
2493
|
-
BrowserWindowApiEvent2["CANCEL_SNAP_TO_EDGE"] = "event::cn.widgetjs.core.browser-window.cancel_snap_to_edge";
|
|
2494
|
-
return BrowserWindowApiEvent2;
|
|
2495
|
-
})(BrowserWindowApiEvent || {});
|
|
2496
|
-
var BrowserWindowApiImpl = class extends BaseApi {
|
|
2497
|
-
getProxy() {
|
|
2498
|
-
return this.invokeMethod("getProxy");
|
|
2499
|
-
}
|
|
2500
|
-
setBackgroundThrottling(enabled) {
|
|
2501
|
-
return this.invokeMethod("setBackgroundThrottling", enabled);
|
|
2502
|
-
}
|
|
2503
|
-
getBackgroundThrottling() {
|
|
2504
|
-
return this.invokeMethod("getBackgroundThrottling");
|
|
2973
|
+
// src/api/DeviceApi.ts
|
|
2974
|
+
var DeviceApiImpl = class extends BaseApi {
|
|
2975
|
+
getDisplayNearestPoint(point) {
|
|
2976
|
+
return this.invokeMethod("getDisplayNearestPoint", point);
|
|
2505
2977
|
}
|
|
2506
|
-
|
|
2507
|
-
return this.invokeMethod("
|
|
2978
|
+
getAllDisplays() {
|
|
2979
|
+
return this.invokeMethod("getAllDisplays");
|
|
2508
2980
|
}
|
|
2509
|
-
|
|
2510
|
-
return this.invokeMethod("
|
|
2981
|
+
getPrimaryDisplay() {
|
|
2982
|
+
return this.invokeMethod("getPrimaryDisplay");
|
|
2511
2983
|
}
|
|
2512
|
-
|
|
2513
|
-
|
|
2984
|
+
/**
|
|
2985
|
+
* 获取当前鼠标位置
|
|
2986
|
+
*/
|
|
2987
|
+
async getCursorScreenPoint() {
|
|
2988
|
+
return this.invokeMethod("getCursorScreenPoint");
|
|
2514
2989
|
}
|
|
2515
|
-
|
|
2516
|
-
return this.invokeMethod("
|
|
2990
|
+
async sendCtrlV() {
|
|
2991
|
+
return this.invokeMethod("sendCtrlV");
|
|
2517
2992
|
}
|
|
2518
|
-
|
|
2519
|
-
|
|
2993
|
+
/**
|
|
2994
|
+
* 判断是否所有按键都已经释放
|
|
2995
|
+
*/
|
|
2996
|
+
async isAllKeyReleased() {
|
|
2997
|
+
return this.invokeMethod("isAllKeyReleased");
|
|
2520
2998
|
}
|
|
2521
2999
|
getChannel() {
|
|
2522
|
-
return "channel::cn.widgetjs.core.
|
|
2523
|
-
}
|
|
2524
|
-
async setIgnoreMouseEvent(ignore) {
|
|
2525
|
-
await this.invokeMethod("setIgnoreMouseEvent", ignore);
|
|
3000
|
+
return "channel::cn.widgetjs.core.device" /* DEVICE */;
|
|
2526
3001
|
}
|
|
2527
|
-
|
|
2528
|
-
|
|
3002
|
+
isCapsLockOn() {
|
|
3003
|
+
return this.invokeMethod("isCapsLockOn");
|
|
2529
3004
|
}
|
|
2530
|
-
|
|
2531
|
-
|
|
3005
|
+
};
|
|
3006
|
+
var DeviceApi = new DeviceApiImpl();
|
|
3007
|
+
|
|
3008
|
+
// src/api/DialogApi.ts
|
|
3009
|
+
var DialogApiImpl = class extends BaseApi {
|
|
3010
|
+
getChannel() {
|
|
3011
|
+
return "channel::cn.widgetjs.core.dialog" /* DIALOG */;
|
|
2532
3012
|
}
|
|
2533
|
-
|
|
2534
|
-
|
|
3013
|
+
pickFile(extensions) {
|
|
3014
|
+
return this.invokeMethod("pickFile", extensions);
|
|
2535
3015
|
}
|
|
2536
|
-
|
|
2537
|
-
|
|
3016
|
+
pickFolder() {
|
|
3017
|
+
return this.invokeMethod("pickFolder");
|
|
2538
3018
|
}
|
|
2539
|
-
|
|
2540
|
-
|
|
3019
|
+
};
|
|
3020
|
+
var DialogApi = new DialogApiImpl();
|
|
3021
|
+
|
|
3022
|
+
// src/api/ElectronApi.ts
|
|
3023
|
+
var ElectronApi = class {
|
|
3024
|
+
static async addIpcListener(key, f) {
|
|
3025
|
+
await ElectronUtils.getAPI()?.addIpcListener(key, f);
|
|
2541
3026
|
}
|
|
2542
|
-
async
|
|
2543
|
-
|
|
3027
|
+
static async removeIpcListener(key) {
|
|
3028
|
+
await ElectronUtils.getAPI()?.removeIpcListener(key);
|
|
2544
3029
|
}
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
|
|
3030
|
+
};
|
|
3031
|
+
|
|
3032
|
+
// src/api/FileApi.ts
|
|
3033
|
+
var FileApiImpl = class extends BaseApi {
|
|
3034
|
+
async readShortcutLink(shortcutPath) {
|
|
3035
|
+
return this.invokeMethod("readShortcutLink", shortcutPath);
|
|
2551
3036
|
}
|
|
2552
|
-
async
|
|
2553
|
-
|
|
3037
|
+
async extractIcon(path, size) {
|
|
3038
|
+
return this.invokeMethod("extractIcon", path, size);
|
|
2554
3039
|
}
|
|
2555
|
-
async
|
|
2556
|
-
|
|
3040
|
+
async delete(filePath) {
|
|
3041
|
+
return this.invokeMethod("delete", filePath);
|
|
2557
3042
|
}
|
|
2558
|
-
async
|
|
2559
|
-
|
|
3043
|
+
async getPictureMetadata(filePath) {
|
|
3044
|
+
return this.invokeMethod("getPictureMetadata", filePath);
|
|
2560
3045
|
}
|
|
2561
|
-
async
|
|
2562
|
-
return
|
|
3046
|
+
async move(form, to) {
|
|
3047
|
+
return this.invokeMethod("move", form, to);
|
|
2563
3048
|
}
|
|
2564
|
-
async
|
|
2565
|
-
return
|
|
3049
|
+
async isDirectory(filePath) {
|
|
3050
|
+
return this.invokeMethod("isDirectory", filePath);
|
|
2566
3051
|
}
|
|
2567
|
-
|
|
2568
|
-
return
|
|
3052
|
+
getChannel() {
|
|
3053
|
+
return "channel::cn.widgetjs.core.file" /* FILE */;
|
|
2569
3054
|
}
|
|
2570
|
-
|
|
2571
|
-
|
|
2572
|
-
* @param resizable
|
|
2573
|
-
*/
|
|
2574
|
-
async setResizable(resizable) {
|
|
2575
|
-
return await this.invokeMethod("setResizable", resizable);
|
|
3055
|
+
async readDirectory(path, options) {
|
|
3056
|
+
return this.invokeMethod("readDirectory", path, options);
|
|
2576
3057
|
}
|
|
2577
|
-
async
|
|
2578
|
-
return
|
|
3058
|
+
async downloadUrl(options) {
|
|
3059
|
+
return this.invokeMethod("downloadUrl", options);
|
|
2579
3060
|
}
|
|
2580
|
-
async
|
|
2581
|
-
return
|
|
3061
|
+
async exists(filePath) {
|
|
3062
|
+
return this.invokeMethod("exists", filePath);
|
|
2582
3063
|
}
|
|
2583
|
-
async
|
|
2584
|
-
return
|
|
3064
|
+
async readFile(filePath) {
|
|
3065
|
+
return this.invokeMethod("readFile", filePath);
|
|
2585
3066
|
}
|
|
2586
|
-
async
|
|
2587
|
-
return
|
|
3067
|
+
async getDocumentFolder(filePath) {
|
|
3068
|
+
return this.invokeMethod("getDocumentFolder", filePath);
|
|
2588
3069
|
}
|
|
2589
|
-
async
|
|
2590
|
-
return
|
|
3070
|
+
async getMimeType(absoluteFilePath) {
|
|
3071
|
+
return this.invokeMethod("getMimeType", absoluteFilePath);
|
|
2591
3072
|
}
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
* @param url
|
|
2595
|
-
*/
|
|
2596
|
-
async existsByUrl(url) {
|
|
2597
|
-
return await this.invokeMethod("existsByUrl", url);
|
|
3073
|
+
async getFileInfo(absoluteFilePath) {
|
|
3074
|
+
return this.invokeMethod("getFileInfo", absoluteFilePath);
|
|
2598
3075
|
}
|
|
2599
|
-
async
|
|
2600
|
-
return
|
|
3076
|
+
async showItemInFolder(fullPath) {
|
|
3077
|
+
return this.invokeMethod("showItemInFolder", fullPath);
|
|
2601
3078
|
}
|
|
2602
|
-
async
|
|
2603
|
-
return
|
|
3079
|
+
async openPath(path) {
|
|
3080
|
+
return this.invokeMethod("openPath", path);
|
|
2604
3081
|
}
|
|
2605
|
-
async
|
|
2606
|
-
return
|
|
3082
|
+
async trashItem(path) {
|
|
3083
|
+
return this.invokeMethod("trashItem", path);
|
|
2607
3084
|
}
|
|
2608
|
-
|
|
2609
|
-
|
|
3085
|
+
};
|
|
3086
|
+
var FileApi = new FileApiImpl();
|
|
3087
|
+
|
|
3088
|
+
// src/api/HttpApi.ts
|
|
3089
|
+
var HttpApiImpl = class extends BaseApi {
|
|
3090
|
+
getChannel() {
|
|
3091
|
+
return "channel::cn.widgetjs.core.http" /* HTTP */;
|
|
2610
3092
|
}
|
|
2611
|
-
|
|
2612
|
-
return
|
|
3093
|
+
get(url, params) {
|
|
3094
|
+
return this.invokeMethod("get", url, params);
|
|
2613
3095
|
}
|
|
2614
|
-
|
|
2615
|
-
return
|
|
3096
|
+
post(url, data) {
|
|
3097
|
+
return this.invokeMethod("post", url, data);
|
|
2616
3098
|
}
|
|
2617
|
-
|
|
2618
|
-
|
|
3099
|
+
};
|
|
3100
|
+
var HttpApi = new HttpApiImpl();
|
|
3101
|
+
|
|
3102
|
+
// src/api/interface/IAppApi.ts
|
|
3103
|
+
var AppApiEvent = /* @__PURE__ */ ((AppApiEvent2) => {
|
|
3104
|
+
AppApiEvent2["CONFIG_CHANGED"] = "event::cn.widgetjs.core.app.config.changed";
|
|
3105
|
+
AppApiEvent2["MOVING_GRID_WINDOW"] = "event::cn.widgetjs.core.app.moving.grid.window";
|
|
3106
|
+
AppApiEvent2["STOP_MOVING_GRID_WINDOW"] = "event::cn.widgetjs.core.app.moving.grid.window.stop";
|
|
3107
|
+
AppApiEvent2["PROXY_CHANGED"] = "event::cn.widgetjs.core.app.proxy.changed";
|
|
3108
|
+
AppApiEvent2["LANGUAGE_CHANGED"] = "event::cn.widgetjs.core.app.language.changed";
|
|
3109
|
+
return AppApiEvent2;
|
|
3110
|
+
})(AppApiEvent || {});
|
|
3111
|
+
var AppApiConstants = /* @__PURE__ */ ((AppApiConstants2) => {
|
|
3112
|
+
AppApiConstants2["CONFIG_GRID_CELL_SIZE"] = "cn.widgetjs.config.grid.size";
|
|
3113
|
+
AppApiConstants2["CONFIG_WIDGET_THEME_CSS"] = "cn.widgetjs.config.widget.theme.css";
|
|
3114
|
+
AppApiConstants2["CONFIG_PROXY"] = "cn.widgetjs.config.app.proxy";
|
|
3115
|
+
AppApiConstants2["CONFIG_DEV_MODE"] = "cn.widgetjs.config.app.dev.mode";
|
|
3116
|
+
AppApiConstants2["CONFIG_LANGUAGE"] = "cn.widgetjs.config.app.language";
|
|
3117
|
+
return AppApiConstants2;
|
|
3118
|
+
})(AppApiConstants || {});
|
|
3119
|
+
|
|
3120
|
+
// src/api/interface/IWidgetPackageApi.ts
|
|
3121
|
+
var WidgetPackageApiEvent = /* @__PURE__ */ ((WidgetPackageApiEvent2) => {
|
|
3122
|
+
WidgetPackageApiEvent2["PACKAGE_UPGRADE"] = "event::cn.widgetjs.core.widget.package.upgraded";
|
|
3123
|
+
WidgetPackageApiEvent2["PACKAGE_INSTALLED"] = "event::cn.widgetjs.core.widget.package.installed";
|
|
3124
|
+
return WidgetPackageApiEvent2;
|
|
3125
|
+
})(WidgetPackageApiEvent || {});
|
|
3126
|
+
|
|
3127
|
+
// src/api/interface/IMouseApi.ts
|
|
3128
|
+
var MouseApiEvent = /* @__PURE__ */ ((MouseApiEvent2) => {
|
|
3129
|
+
MouseApiEvent2["HOTSPOT_ACTIVE"] = "event::cn.widgetjs.core.mouse.hotspot.active";
|
|
3130
|
+
return MouseApiEvent2;
|
|
3131
|
+
})(MouseApiEvent || {});
|
|
3132
|
+
|
|
3133
|
+
// src/api/interface/ITrayApi.ts
|
|
3134
|
+
var TrayApiEvent = /* @__PURE__ */ ((TrayApiEvent2) => {
|
|
3135
|
+
TrayApiEvent2["CLICK"] = "channel::cn.widgetjs.core.tray.click";
|
|
3136
|
+
TrayApiEvent2["RIGHT_CLICK"] = "channel::cn.widgetjs.core.tray.right-click";
|
|
3137
|
+
TrayApiEvent2["MIDDLE_CLICK"] = "channel::cn.widgetjs.core.tray.middle-click";
|
|
3138
|
+
TrayApiEvent2["MOUSE_ENTER"] = "channel::cn.widgetjs.core.tray.mouse-enter";
|
|
3139
|
+
TrayApiEvent2["MOUSE_LEAVE"] = "channel::cn.widgetjs.core.tray.mouse-leave";
|
|
3140
|
+
return TrayApiEvent2;
|
|
3141
|
+
})(TrayApiEvent || {});
|
|
3142
|
+
|
|
3143
|
+
// src/api/interface/IUserApi.ts
|
|
3144
|
+
var UserApiEvent = /* @__PURE__ */ ((UserApiEvent2) => {
|
|
3145
|
+
UserApiEvent2["USER_UPDATED"] = `channel::cn.widgetjs.core.user.updated`;
|
|
3146
|
+
UserApiEvent2["SIGNED_OUT"] = `channel::cn.widgetjs.core.user.signed.out`;
|
|
3147
|
+
UserApiEvent2["SIGNED_IN"] = `channel::cn.widgetjs.core.user.signed.in`;
|
|
3148
|
+
UserApiEvent2["TOKEN_REFRESHED"] = `channel::cn.widgetjs.core.user.token.refreshed`;
|
|
3149
|
+
return UserApiEvent2;
|
|
3150
|
+
})(UserApiEvent || {});
|
|
3151
|
+
|
|
3152
|
+
// src/api/interface/IAiApi.ts
|
|
3153
|
+
var AiApiEvent = /* @__PURE__ */ ((AiApiEvent2) => {
|
|
3154
|
+
AiApiEvent2["CONFIG_UPDATED"] = `channel::cn.widgetjs.core.ai.config.updated`;
|
|
3155
|
+
return AiApiEvent2;
|
|
3156
|
+
})(AiApiEvent || {});
|
|
3157
|
+
|
|
3158
|
+
// src/api/LogApi.ts
|
|
3159
|
+
var LogApiImpl = class extends BaseApi {
|
|
3160
|
+
getChannel() {
|
|
3161
|
+
return "channel::cn.widgetjs.core.log" /* LOG */;
|
|
2619
3162
|
}
|
|
2620
|
-
|
|
2621
|
-
|
|
3163
|
+
info(...data) {
|
|
3164
|
+
console.log(...data);
|
|
3165
|
+
this.invokeMethod("info", ...data);
|
|
2622
3166
|
}
|
|
2623
|
-
|
|
2624
|
-
|
|
3167
|
+
error(...data) {
|
|
3168
|
+
console.error(...data);
|
|
3169
|
+
this.invokeMethod("error", ...data);
|
|
2625
3170
|
}
|
|
2626
|
-
|
|
2627
|
-
|
|
3171
|
+
warn(...data) {
|
|
3172
|
+
console.warn(...data);
|
|
3173
|
+
this.invokeMethod("warn", ...data);
|
|
2628
3174
|
}
|
|
2629
|
-
|
|
2630
|
-
|
|
3175
|
+
log(...data) {
|
|
3176
|
+
console.log(...data);
|
|
3177
|
+
this.invokeMethod("log", ...data);
|
|
2631
3178
|
}
|
|
2632
|
-
|
|
2633
|
-
|
|
3179
|
+
json(data) {
|
|
3180
|
+
const json = JSON.stringify(data, null, 2);
|
|
3181
|
+
this.log(json);
|
|
2634
3182
|
}
|
|
2635
|
-
|
|
2636
|
-
|
|
3183
|
+
};
|
|
3184
|
+
var LogApi = new LogApiImpl();
|
|
3185
|
+
|
|
3186
|
+
// src/api/MenuApi.ts
|
|
3187
|
+
var MenuApiEvent = /* @__PURE__ */ ((MenuApiEvent2) => {
|
|
3188
|
+
MenuApiEvent2["ITEM_CLICK"] = "event::cn.widgetjs.core.menu.item.click";
|
|
3189
|
+
return MenuApiEvent2;
|
|
3190
|
+
})(MenuApiEvent || {});
|
|
3191
|
+
var MenuApiImpl = class extends BaseApi {
|
|
3192
|
+
getChannel() {
|
|
3193
|
+
return "channel::cn.widgetjs.core.menu" /* MENU */;
|
|
2637
3194
|
}
|
|
2638
|
-
|
|
2639
|
-
|
|
3195
|
+
/**
|
|
3196
|
+
* Add items to the context menu
|
|
3197
|
+
* @param menuItems The menu items to add
|
|
3198
|
+
*/
|
|
3199
|
+
addContextMenuItem(menuItems) {
|
|
3200
|
+
return this.invokeMethod("addContextMenuItem", menuItems);
|
|
2640
3201
|
}
|
|
2641
|
-
|
|
2642
|
-
|
|
3202
|
+
/**
|
|
3203
|
+
* Add items to the application menu
|
|
3204
|
+
* @param menuItems The menu items to add
|
|
3205
|
+
*/
|
|
3206
|
+
addMenuItem(menuItems) {
|
|
3207
|
+
return this.invokeMethod("addMenuItem", menuItems);
|
|
2643
3208
|
}
|
|
2644
|
-
|
|
2645
|
-
|
|
3209
|
+
/**
|
|
3210
|
+
* Show a menu programmatically
|
|
3211
|
+
* @param options The options for showing the menu
|
|
3212
|
+
*/
|
|
3213
|
+
showMenu(options) {
|
|
3214
|
+
return this.invokeMethod("showMenu", options);
|
|
2646
3215
|
}
|
|
2647
|
-
|
|
2648
|
-
|
|
3216
|
+
/**
|
|
3217
|
+
* Remove items from the application menu
|
|
3218
|
+
* @param menuItemIds The IDs of the menu items to remove
|
|
3219
|
+
*/
|
|
3220
|
+
removeMenuItem(menuItemIds) {
|
|
3221
|
+
return this.invokeMethod("removeMenuItem", menuItemIds);
|
|
2649
3222
|
}
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
if (options.width && options.height) {
|
|
2657
|
-
await this.setSize(options.width, options.height);
|
|
2658
|
-
}
|
|
2659
|
-
if (options.minWidth && options.minHeight) {
|
|
2660
|
-
await this.setMinimumSize(options.minWidth, options.minHeight);
|
|
2661
|
-
}
|
|
2662
|
-
if (options.maxWidth && options.maxHeight) {
|
|
2663
|
-
await this.setMaximumSize(options.maxWidth, options.maxHeight);
|
|
2664
|
-
}
|
|
2665
|
-
if (options.center) {
|
|
2666
|
-
await this.center();
|
|
2667
|
-
}
|
|
2668
|
-
if (options.x != void 0 || options.y != void 0) {
|
|
2669
|
-
await this.setPosition({ x: options.x, y: options.y });
|
|
2670
|
-
}
|
|
2671
|
-
if (options.skipTaskbar) {
|
|
2672
|
-
await this.setSkipTaskbar(true);
|
|
2673
|
-
} else if (options.skipTaskbar === false) {
|
|
2674
|
-
await this.setSkipTaskbar(false);
|
|
2675
|
-
}
|
|
3223
|
+
/**
|
|
3224
|
+
* Remove items from the context menu
|
|
3225
|
+
* @param menuItemIds The IDs of the menu items to remove
|
|
3226
|
+
*/
|
|
3227
|
+
removeContextMenuItem(menuItemIds) {
|
|
3228
|
+
return this.invokeMethod("removeContextMenuItem", menuItemIds);
|
|
2676
3229
|
}
|
|
2677
|
-
|
|
2678
|
-
|
|
3230
|
+
};
|
|
3231
|
+
var MenuApi = new MenuApiImpl();
|
|
3232
|
+
|
|
3233
|
+
// src/api/MouseApi.ts
|
|
3234
|
+
var MouseApiImpl = class extends BaseApi {
|
|
3235
|
+
getChannel() {
|
|
3236
|
+
return "channel::cn.widgetjs.core.mouse" /* MOUSE */;
|
|
2679
3237
|
}
|
|
2680
|
-
|
|
2681
|
-
return this.invokeMethod("
|
|
3238
|
+
removeHotspot() {
|
|
3239
|
+
return this.invokeMethod("removeHotspot");
|
|
2682
3240
|
}
|
|
2683
|
-
|
|
2684
|
-
return this.invokeMethod("
|
|
3241
|
+
createHotspot(rect) {
|
|
3242
|
+
return this.invokeMethod("createHotspot", rect);
|
|
2685
3243
|
}
|
|
2686
3244
|
};
|
|
2687
|
-
var
|
|
3245
|
+
var MouseApi = new MouseApiImpl();
|
|
2688
3246
|
|
|
2689
3247
|
// src/api/NotificationApi.ts
|
|
2690
3248
|
var NotificationApiEvent = /* @__PURE__ */ ((NotificationApiEvent2) => {
|
|
@@ -2760,191 +3318,52 @@ var NotificationApiImpl = class extends BaseApi {
|
|
|
2760
3318
|
}));
|
|
2761
3319
|
}
|
|
2762
3320
|
async warning(message, duration = 5e3) {
|
|
2763
|
-
await this.send(new AppNotification({
|
|
2764
|
-
message,
|
|
2765
|
-
type: "warning",
|
|
2766
|
-
icon: "attention",
|
|
2767
|
-
duration
|
|
2768
|
-
}));
|
|
2769
|
-
}
|
|
2770
|
-
async info(message, duration = 5e3) {
|
|
2771
|
-
await this.send(new AppNotification({
|
|
2772
|
-
message,
|
|
2773
|
-
type: "info",
|
|
2774
|
-
icon: "info",
|
|
2775
|
-
duration
|
|
2776
|
-
}));
|
|
2777
|
-
}
|
|
2778
|
-
/**
|
|
2779
|
-
* 隐藏通知
|
|
2780
|
-
*/
|
|
2781
|
-
async hide() {
|
|
2782
|
-
await this.invokeMethod("hide");
|
|
2783
|
-
}
|
|
2784
|
-
getChannel() {
|
|
2785
|
-
return "channel::cn.widgetjs.core.notification" /* NOTIFICATION */;
|
|
2786
|
-
}
|
|
2787
|
-
};
|
|
2788
|
-
var NotificationApi = new NotificationApiImpl();
|
|
2789
|
-
|
|
2790
|
-
// src/utils/AppProtocolUtils.ts
|
|
2791
|
-
var AppProtocolUtils = class {
|
|
2792
|
-
static getBaseURL() {
|
|
2793
|
-
return new URL("widget://widgetjs.cn");
|
|
2794
|
-
}
|
|
2795
|
-
static getAddWidgetUrl(options) {
|
|
2796
|
-
const url = this.getBaseURL();
|
|
2797
|
-
url.pathname = "/widget/add";
|
|
2798
|
-
if (options.packageJsonUrl) {
|
|
2799
|
-
url.searchParams.set("packageJsonUrl", options.packageJsonUrl);
|
|
2800
|
-
}
|
|
2801
|
-
if (options.hostname) {
|
|
2802
|
-
url.searchParams.set("hostname", options.hostname);
|
|
2803
|
-
}
|
|
2804
|
-
if (options.widgetTitle) {
|
|
2805
|
-
url.searchParams.set("widgetTitle", options.widgetTitle);
|
|
2806
|
-
}
|
|
2807
|
-
url.searchParams.set("widgetName", options.widgetName);
|
|
2808
|
-
url.searchParams.set("deployMode", options.deployMode.toString());
|
|
2809
|
-
return url.toString();
|
|
2810
|
-
}
|
|
2811
|
-
};
|
|
2812
|
-
|
|
2813
|
-
// src/api/DeployedWidgetApi.ts
|
|
2814
|
-
var DeployedWidgetApiImpl = class extends BaseApi {
|
|
2815
|
-
getChannel() {
|
|
2816
|
-
return "channel::cn.widgetjs.core.deployed_widget" /* DEPLOYED_WIDGET */;
|
|
2817
|
-
}
|
|
2818
|
-
/**
|
|
2819
|
-
* 移除组件
|
|
2820
|
-
* @param id
|
|
2821
|
-
*/
|
|
2822
|
-
async removeDeployedWidget(id) {
|
|
2823
|
-
return this.invokeMethod("removeDeployedWidget", id);
|
|
2824
|
-
}
|
|
2825
|
-
addWidget(options) {
|
|
2826
|
-
if (ElectronUtils.hasElectronApi()) {
|
|
2827
|
-
return this.invokeMethod("addWidget", options);
|
|
2828
|
-
} else {
|
|
2829
|
-
window.location.href = AppProtocolUtils.getAddWidgetUrl(options);
|
|
2830
|
-
return Promise.resolve([]);
|
|
2831
|
-
}
|
|
2832
|
-
}
|
|
2833
|
-
/**
|
|
2834
|
-
* 通过组件名移除已添加的组件
|
|
2835
|
-
* @param name 组件名
|
|
2836
|
-
*/
|
|
2837
|
-
async removeDeployedWidgetByName(name) {
|
|
2838
|
-
return this.invokeMethod("removeDeployedWidgetByName", name);
|
|
2839
|
-
}
|
|
2840
|
-
/**
|
|
2841
|
-
* 获取已添加的组件
|
|
2842
|
-
* @param name 组件名,可以不传
|
|
2843
|
-
*/
|
|
2844
|
-
async getDeployedWidgets(name) {
|
|
2845
|
-
return this.invokeMethod("getDeployedWidgets", name);
|
|
2846
|
-
}
|
|
2847
|
-
async getDeployedWidget(id) {
|
|
2848
|
-
return this.invokeMethod("getDeployedWidget", id);
|
|
2849
|
-
}
|
|
2850
|
-
/**
|
|
2851
|
-
* Opens the dev tools for a widget with the specified ID.
|
|
2852
|
-
*
|
|
2853
|
-
* @param {string} widgetId - The ID of the widget to open the dev tools for.
|
|
2854
|
-
* @return {Promise} A Promise that resolves when the dev tools are opened.
|
|
2855
|
-
*/
|
|
2856
|
-
async openDevTools(widgetId) {
|
|
2857
|
-
return this.invokeMethod("openDevTools", widgetId);
|
|
2858
|
-
}
|
|
2859
|
-
async openConfigPage(widgetId, params) {
|
|
2860
|
-
return this.invokeMethod("openConfigPage", widgetId, params);
|
|
2861
|
-
}
|
|
2862
|
-
/**
|
|
2863
|
-
* 注册激活、呼出、置顶组件快捷键
|
|
2864
|
-
* @param widgetId 组件id
|
|
2865
|
-
* @param shortcut 如果传空或者不传,则会取消快捷键。更多快捷键配置,请查看Accelerator用法
|
|
2866
|
-
* https://www.electronjs.org/docs/latest/api/accelerator
|
|
2867
|
-
*/
|
|
2868
|
-
async registerActiveShortcut(widgetId, shortcut) {
|
|
2869
|
-
return this.invokeMethod("registerActiveShortcut", widgetId, shortcut);
|
|
2870
|
-
}
|
|
2871
|
-
async setProxy(widgetId, proxy) {
|
|
2872
|
-
return this.invokeMethod("setProxy", widgetId, proxy);
|
|
2873
|
-
}
|
|
2874
|
-
};
|
|
2875
|
-
var DeployedWidgetApi = new DeployedWidgetApiImpl();
|
|
2876
|
-
|
|
2877
|
-
// src/api/DeviceApi.ts
|
|
2878
|
-
var DeviceApiImpl = class extends BaseApi {
|
|
2879
|
-
getDisplayNearestPoint(point) {
|
|
2880
|
-
return this.invokeMethod("getDisplayNearestPoint", point);
|
|
2881
|
-
}
|
|
2882
|
-
getAllDisplays() {
|
|
2883
|
-
return this.invokeMethod("getAllDisplays");
|
|
2884
|
-
}
|
|
2885
|
-
getPrimaryDisplay() {
|
|
2886
|
-
return this.invokeMethod("getPrimaryDisplay");
|
|
2887
|
-
}
|
|
2888
|
-
/**
|
|
2889
|
-
* 获取当前鼠标位置
|
|
2890
|
-
*/
|
|
2891
|
-
async getCursorScreenPoint() {
|
|
2892
|
-
return this.invokeMethod("getCursorScreenPoint");
|
|
3321
|
+
await this.send(new AppNotification({
|
|
3322
|
+
message,
|
|
3323
|
+
type: "warning",
|
|
3324
|
+
icon: "attention",
|
|
3325
|
+
duration
|
|
3326
|
+
}));
|
|
2893
3327
|
}
|
|
2894
|
-
async
|
|
2895
|
-
|
|
3328
|
+
async info(message, duration = 5e3) {
|
|
3329
|
+
await this.send(new AppNotification({
|
|
3330
|
+
message,
|
|
3331
|
+
type: "info",
|
|
3332
|
+
icon: "info",
|
|
3333
|
+
duration
|
|
3334
|
+
}));
|
|
2896
3335
|
}
|
|
2897
3336
|
/**
|
|
2898
|
-
*
|
|
3337
|
+
* 隐藏通知
|
|
2899
3338
|
*/
|
|
2900
|
-
async
|
|
2901
|
-
|
|
3339
|
+
async hide() {
|
|
3340
|
+
await this.invokeMethod("hide");
|
|
2902
3341
|
}
|
|
2903
3342
|
getChannel() {
|
|
2904
|
-
return "channel::cn.widgetjs.core.
|
|
2905
|
-
}
|
|
2906
|
-
isCapsLockOn() {
|
|
2907
|
-
return this.invokeMethod("isCapsLockOn");
|
|
3343
|
+
return "channel::cn.widgetjs.core.notification" /* NOTIFICATION */;
|
|
2908
3344
|
}
|
|
2909
3345
|
};
|
|
2910
|
-
var
|
|
3346
|
+
var NotificationApi = new NotificationApiImpl();
|
|
2911
3347
|
|
|
2912
|
-
// src/api/
|
|
2913
|
-
var
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
})(ClipboardApiEvent || {});
|
|
2917
|
-
var ClipboardApiImpl = class extends BaseApi {
|
|
2918
|
-
writeText(text) {
|
|
2919
|
-
return this.invokeMethod("writeText", text);
|
|
3348
|
+
// src/api/ProcessApi.ts
|
|
3349
|
+
var ProcessApiImpl = class extends BaseApi {
|
|
3350
|
+
getChannel() {
|
|
3351
|
+
return "channel::cn.widgetjs.core.process" /* PROCESS */;
|
|
2920
3352
|
}
|
|
2921
|
-
|
|
2922
|
-
return this.invokeMethod("
|
|
3353
|
+
getBlinkMemoryInfo() {
|
|
3354
|
+
return this.invokeMethod("getBlinkMemoryInfo");
|
|
2923
3355
|
}
|
|
2924
|
-
|
|
2925
|
-
return this.invokeMethod("
|
|
3356
|
+
getHeapStatistics() {
|
|
3357
|
+
return this.invokeMethod("getHeapStatistics");
|
|
2926
3358
|
}
|
|
2927
|
-
|
|
2928
|
-
return
|
|
3359
|
+
getProcessMemoryInfo() {
|
|
3360
|
+
return this.invokeMethod("getProcessMemoryInfo");
|
|
3361
|
+
}
|
|
3362
|
+
getSystemVersion() {
|
|
3363
|
+
return this.invokeMethod("getSystemVersion");
|
|
2929
3364
|
}
|
|
2930
3365
|
};
|
|
2931
|
-
var
|
|
2932
|
-
|
|
2933
|
-
// src/api/ApiConstants.ts
|
|
2934
|
-
var ApiConstants = class {
|
|
2935
|
-
static CONFIG_LAUNCH_AT_STARTUP = "CONFIG_LAUNCH_AT_STARTUP";
|
|
2936
|
-
static CONFIG_WIDGET_TITLE_COLOR = "CONFIG_WIDGET_TITLE_COLOR";
|
|
2937
|
-
static CONFIG_DEBUG_MODE = "cn.widgetjs.config.debug";
|
|
2938
|
-
static CONFIG_GRID_CELL_SIZE = "cn.widgetjs.config.grid.size";
|
|
2939
|
-
static SHORTCUT_PIN_DESKTOP_WIDGETS = "cn.widgetjs.config.shortcut.pin_desktop_widgets";
|
|
2940
|
-
};
|
|
2941
|
-
var AppEvent = class {
|
|
2942
|
-
static LANGUAGE_CHANGED = "event::cn.widgetjs.core.app.language.changed";
|
|
2943
|
-
};
|
|
2944
|
-
var AppConfig = class {
|
|
2945
|
-
static LANGUAGE = "cn.widgetjs.config.app.language";
|
|
2946
|
-
static LAUNCH_AT_STARTUP = "CONFIG_LAUNCH_AT_STARTUP";
|
|
2947
|
-
};
|
|
3366
|
+
var ProcessApi = new ProcessApiImpl();
|
|
2948
3367
|
|
|
2949
3368
|
// src/api/interface/IShortcutApi.ts
|
|
2950
3369
|
var ShortcutApiEvent = /* @__PURE__ */ ((ShortcutApiEvent2) => {
|
|
@@ -2966,363 +3385,331 @@ var ShortcutApiImpl = class extends BaseApi {
|
|
|
2966
3385
|
};
|
|
2967
3386
|
var ShortcutApi = new ShortcutApiImpl();
|
|
2968
3387
|
|
|
2969
|
-
// src/api/
|
|
2970
|
-
var
|
|
2971
|
-
getChannel() {
|
|
2972
|
-
return "channel::cn.widgetjs.core.process" /* PROCESS */;
|
|
2973
|
-
}
|
|
2974
|
-
getBlinkMemoryInfo() {
|
|
2975
|
-
return this.invokeMethod("getBlinkMemoryInfo");
|
|
2976
|
-
}
|
|
2977
|
-
getHeapStatistics() {
|
|
2978
|
-
return this.invokeMethod("getHeapStatistics");
|
|
2979
|
-
}
|
|
2980
|
-
getProcessMemoryInfo() {
|
|
2981
|
-
return this.invokeMethod("getProcessMemoryInfo");
|
|
2982
|
-
}
|
|
2983
|
-
getSystemVersion() {
|
|
2984
|
-
return this.invokeMethod("getSystemVersion");
|
|
2985
|
-
}
|
|
2986
|
-
};
|
|
2987
|
-
var ProcessApi = new ProcessApiImpl();
|
|
2988
|
-
|
|
2989
|
-
// src/api/AppApi.ts
|
|
2990
|
-
var AppApiImpl = class extends BaseApi {
|
|
2991
|
-
showAppWindow(route, options) {
|
|
2992
|
-
return this.invokeMethod("showAppWindow", route, options);
|
|
2993
|
-
}
|
|
2994
|
-
openWidgetPackageManagerWindow() {
|
|
2995
|
-
return this.invokeMethod("openWidgetPackageManagerWindow");
|
|
2996
|
-
}
|
|
2997
|
-
getRuntimeInfo() {
|
|
2998
|
-
return this.invokeMethod("getRuntimeInfo");
|
|
2999
|
-
}
|
|
3000
|
-
setProxy(config) {
|
|
3001
|
-
return this.invokeMethod("setProxy", config);
|
|
3002
|
-
}
|
|
3003
|
-
getProxy() {
|
|
3004
|
-
return this.invokeMethod("getProxy");
|
|
3005
|
-
}
|
|
3006
|
-
isWindowsStore() {
|
|
3007
|
-
return this.invokeMethod("isWindowsStore");
|
|
3008
|
-
}
|
|
3009
|
-
getAppPath() {
|
|
3010
|
-
return this.invokeMethod("getAppPath");
|
|
3011
|
-
}
|
|
3012
|
-
async getIconFile() {
|
|
3013
|
-
return this.invokeMethod("getIconFile");
|
|
3014
|
-
}
|
|
3388
|
+
// src/api/StorageApi.ts
|
|
3389
|
+
var StorageApiImpl = class extends BaseApi {
|
|
3015
3390
|
getChannel() {
|
|
3016
|
-
return "channel::cn.widgetjs.core.
|
|
3391
|
+
return "channel::cn.widgetjs.core.store" /* STORE */;
|
|
3017
3392
|
}
|
|
3018
|
-
async
|
|
3019
|
-
return
|
|
3393
|
+
async delete(key) {
|
|
3394
|
+
return this.invokeMethod("delete", key);
|
|
3020
3395
|
}
|
|
3021
|
-
async
|
|
3022
|
-
const
|
|
3023
|
-
if (
|
|
3396
|
+
async get(key, defaultValue) {
|
|
3397
|
+
const result = await this.invokeMethod("get", key);
|
|
3398
|
+
if (result == null && defaultValue != void 0) {
|
|
3024
3399
|
return defaultValue;
|
|
3025
3400
|
}
|
|
3026
|
-
|
|
3027
|
-
|
|
3401
|
+
return result;
|
|
3402
|
+
}
|
|
3403
|
+
async getObject(key, defaultValue) {
|
|
3404
|
+
const result = await this.invokeMethod("get", key);
|
|
3405
|
+
if (result) {
|
|
3406
|
+
return JSON.parse(result);
|
|
3028
3407
|
}
|
|
3029
|
-
if (
|
|
3030
|
-
return
|
|
3408
|
+
if (defaultValue != void 0) {
|
|
3409
|
+
return defaultValue;
|
|
3031
3410
|
}
|
|
3032
|
-
return
|
|
3033
|
-
}
|
|
3034
|
-
async openAddWidgetWindow() {
|
|
3035
|
-
return this.invokeMethod("openAddWidgetWindow");
|
|
3036
|
-
}
|
|
3037
|
-
async getVersion(type) {
|
|
3038
|
-
return this.invokeMethod("getVersion", type);
|
|
3039
|
-
}
|
|
3040
|
-
async getPreloadPath() {
|
|
3041
|
-
return this.invokeMethod("getPreloadPath");
|
|
3042
|
-
}
|
|
3043
|
-
async openSettingWindow() {
|
|
3044
|
-
return this.invokeMethod("openSettingWindow");
|
|
3045
|
-
}
|
|
3046
|
-
getThemeCSS() {
|
|
3047
|
-
return this.invokeMethod("getThemeCSS");
|
|
3411
|
+
return void 0;
|
|
3048
3412
|
}
|
|
3049
|
-
|
|
3050
|
-
|
|
3413
|
+
async set(key, value) {
|
|
3414
|
+
if (typeof value == "object") {
|
|
3415
|
+
return this.invokeMethod("set", key, JSON.stringify(value));
|
|
3416
|
+
}
|
|
3417
|
+
return this.invokeMethod("set", key, value);
|
|
3051
3418
|
}
|
|
3052
|
-
|
|
3053
|
-
return this.invokeMethod("
|
|
3419
|
+
decryptString(value) {
|
|
3420
|
+
return this.invokeMethod("decryptString", value);
|
|
3054
3421
|
}
|
|
3055
|
-
|
|
3056
|
-
return this.invokeMethod("
|
|
3422
|
+
decryptGet(key, defaultValue) {
|
|
3423
|
+
return this.invokeMethod("decryptGet", key, defaultValue);
|
|
3057
3424
|
}
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
return this.invokeMethod("getLanguageCode");
|
|
3061
|
-
}
|
|
3062
|
-
return Promise.resolve(navigator.language);
|
|
3425
|
+
encryptSet(key, value) {
|
|
3426
|
+
return this.invokeMethod("encryptSet", key, value);
|
|
3063
3427
|
}
|
|
3064
|
-
|
|
3065
|
-
|
|
3428
|
+
encryptString(value) {
|
|
3429
|
+
return this.invokeMethod("encryptString", value);
|
|
3066
3430
|
}
|
|
3067
|
-
|
|
3068
|
-
|
|
3431
|
+
};
|
|
3432
|
+
var StorageApi = new StorageApiImpl();
|
|
3433
|
+
var StoreApi = new StorageApiImpl();
|
|
3434
|
+
|
|
3435
|
+
// src/api/structures/Gravity.ts
|
|
3436
|
+
var Gravity = /* @__PURE__ */ ((Gravity2) => {
|
|
3437
|
+
Gravity2["TOP"] = "TOP";
|
|
3438
|
+
Gravity2["LEFT"] = "LEFT";
|
|
3439
|
+
Gravity2["RIGHT"] = "RIGHT";
|
|
3440
|
+
Gravity2["BOTTOM"] = "BOTTOM";
|
|
3441
|
+
return Gravity2;
|
|
3442
|
+
})(Gravity || {});
|
|
3443
|
+
|
|
3444
|
+
// src/api/interface/ISystemApi.ts
|
|
3445
|
+
var SystemApiEvent = /* @__PURE__ */ ((SystemApiEvent2) => {
|
|
3446
|
+
SystemApiEvent2["DATE_CHANGED"] = "event::cn.widgetjs.core.sys.date.changed";
|
|
3447
|
+
return SystemApiEvent2;
|
|
3448
|
+
})(SystemApiEvent || {});
|
|
3449
|
+
|
|
3450
|
+
// src/api/SystemApi.ts
|
|
3451
|
+
var SystemApiImpl = class extends BaseApi {
|
|
3452
|
+
launchWindowsSettings(uri) {
|
|
3453
|
+
return this.invokeMethod("launchWindowsSettings", uri);
|
|
3069
3454
|
}
|
|
3070
|
-
|
|
3071
|
-
return this.invokeMethod("
|
|
3455
|
+
launchStoreDetailsPage(storeId) {
|
|
3456
|
+
return this.invokeMethod("launchStoreDetailsPage", storeId ?? "9NPR50GQ7T53");
|
|
3072
3457
|
}
|
|
3073
|
-
|
|
3074
|
-
return
|
|
3458
|
+
getChannel() {
|
|
3459
|
+
return "channel::cn.widgetjs.core.system" /* SYSTEM */;
|
|
3075
3460
|
}
|
|
3076
|
-
|
|
3077
|
-
return this.invokeMethod(
|
|
3461
|
+
getWallpaper() {
|
|
3462
|
+
return this.invokeMethod("getWallpaper");
|
|
3078
3463
|
}
|
|
3079
|
-
|
|
3080
|
-
return this.invokeMethod(
|
|
3464
|
+
getInfo(valuesObject) {
|
|
3465
|
+
return this.invokeMethod("getInfo", valuesObject);
|
|
3081
3466
|
}
|
|
3082
|
-
|
|
3083
|
-
return this.invokeMethod(
|
|
3467
|
+
getUptime() {
|
|
3468
|
+
return this.invokeMethod("getUptime");
|
|
3084
3469
|
}
|
|
3085
3470
|
};
|
|
3086
|
-
var
|
|
3471
|
+
var SystemApi = new SystemApiImpl();
|
|
3087
3472
|
|
|
3088
|
-
// src/api/
|
|
3089
|
-
var
|
|
3473
|
+
// src/api/TrayApi.ts
|
|
3474
|
+
var TrayApiImpl = class extends BaseApi {
|
|
3090
3475
|
getChannel() {
|
|
3091
|
-
return "channel::cn.widgetjs.core.
|
|
3092
|
-
}
|
|
3093
|
-
pickFile(extensions) {
|
|
3094
|
-
return this.invokeMethod("pickFile", extensions);
|
|
3476
|
+
return "channel::cn.widgetjs.core.tray" /* TRAY */;
|
|
3095
3477
|
}
|
|
3096
|
-
|
|
3097
|
-
return this.invokeMethod("
|
|
3478
|
+
setTray(options) {
|
|
3479
|
+
return this.invokeMethod("setTray", options);
|
|
3098
3480
|
}
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
3102
|
-
// src/api/StorageApi.ts
|
|
3103
|
-
var StorageApiImpl = class extends BaseApi {
|
|
3104
|
-
getChannel() {
|
|
3105
|
-
return "channel::cn.widgetjs.core.store" /* STORE */;
|
|
3481
|
+
removeTray() {
|
|
3482
|
+
return this.invokeMethod("removeTray");
|
|
3106
3483
|
}
|
|
3107
|
-
|
|
3108
|
-
return this.invokeMethod("
|
|
3484
|
+
displayBalloon(options) {
|
|
3485
|
+
return this.invokeMethod("displayBalloon", options);
|
|
3109
3486
|
}
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
if (result == null && defaultValue != void 0) {
|
|
3113
|
-
return defaultValue;
|
|
3114
|
-
}
|
|
3115
|
-
return result;
|
|
3487
|
+
removeBalloon() {
|
|
3488
|
+
return this.invokeMethod("removeBalloon");
|
|
3116
3489
|
}
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
if (result) {
|
|
3120
|
-
return JSON.parse(result);
|
|
3121
|
-
}
|
|
3122
|
-
if (defaultValue != void 0) {
|
|
3123
|
-
return defaultValue;
|
|
3124
|
-
}
|
|
3125
|
-
return void 0;
|
|
3490
|
+
setContextMenu(menus) {
|
|
3491
|
+
return this.invokeMethod("setContextMenu", menus);
|
|
3126
3492
|
}
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
return this.invokeMethod("set", key, JSON.stringify(value));
|
|
3130
|
-
}
|
|
3131
|
-
return this.invokeMethod("set", key, value);
|
|
3493
|
+
closeContextMenu() {
|
|
3494
|
+
return this.invokeMethod("closeContextMenu");
|
|
3132
3495
|
}
|
|
3133
|
-
|
|
3134
|
-
return this.invokeMethod("
|
|
3496
|
+
popUpContextMenu(menus, position) {
|
|
3497
|
+
return this.invokeMethod("popUpContextMenu", menus, position);
|
|
3135
3498
|
}
|
|
3136
|
-
|
|
3137
|
-
return this.invokeMethod("
|
|
3499
|
+
isDestroyed() {
|
|
3500
|
+
return this.invokeMethod("isDestroyed");
|
|
3138
3501
|
}
|
|
3139
|
-
|
|
3140
|
-
return this.invokeMethod("
|
|
3502
|
+
getBounds() {
|
|
3503
|
+
return this.invokeMethod("getBounds");
|
|
3141
3504
|
}
|
|
3142
|
-
|
|
3143
|
-
return this.invokeMethod("
|
|
3505
|
+
focus() {
|
|
3506
|
+
return this.invokeMethod("focus");
|
|
3144
3507
|
}
|
|
3145
3508
|
};
|
|
3146
|
-
var
|
|
3147
|
-
var StoreApi = new StorageApiImpl();
|
|
3509
|
+
var TrayApi = new TrayApiImpl();
|
|
3148
3510
|
|
|
3149
|
-
// src/api/
|
|
3150
|
-
var
|
|
3151
|
-
|
|
3152
|
-
return
|
|
3511
|
+
// src/api/UserApi.ts
|
|
3512
|
+
var UserApiImpl = class extends BaseApi {
|
|
3513
|
+
async getSession() {
|
|
3514
|
+
return await this.invokeMethod("getSession");
|
|
3153
3515
|
}
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
this.invokeMethod("info", ...data);
|
|
3516
|
+
async updateSession(session) {
|
|
3517
|
+
await this.invokeMethod("updateSession", session);
|
|
3157
3518
|
}
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
this.invokeMethod("error", ...data);
|
|
3519
|
+
async updateUser(user) {
|
|
3520
|
+
await this.invokeMethod("updateUser", user);
|
|
3161
3521
|
}
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
this.invokeMethod("warn", ...data);
|
|
3522
|
+
async login(session) {
|
|
3523
|
+
await this.invokeMethod("login", session);
|
|
3165
3524
|
}
|
|
3166
|
-
|
|
3167
|
-
|
|
3168
|
-
this.invokeMethod("log", ...data);
|
|
3525
|
+
async logout() {
|
|
3526
|
+
await this.invokeMethod("logout");
|
|
3169
3527
|
}
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3528
|
+
async getUser() {
|
|
3529
|
+
return await this.invokeMethod("getUser");
|
|
3530
|
+
}
|
|
3531
|
+
getChannel() {
|
|
3532
|
+
return "channel::cn.widgetjs.core.user" /* USER */;
|
|
3173
3533
|
}
|
|
3174
3534
|
};
|
|
3175
|
-
var
|
|
3535
|
+
var UserApi = new UserApiImpl();
|
|
3176
3536
|
|
|
3177
|
-
// src/api/
|
|
3178
|
-
var
|
|
3179
|
-
|
|
3180
|
-
|
|
3537
|
+
// src/api/WidgetApi.ts
|
|
3538
|
+
var WidgetApiEvent = /* @__PURE__ */ ((WidgetApiEvent2) => {
|
|
3539
|
+
WidgetApiEvent2["DATA_CHANGED"] = "event::cn.widgetjs.core.widget.data-changed";
|
|
3540
|
+
WidgetApiEvent2["EDIT_DESKTOP_WIDGETS"] = "event::cn.widgetjs.core.widget.desktop.edit";
|
|
3541
|
+
WidgetApiEvent2["PACKAGE_UPGRADE"] = "event::cn.widgetjs.core.widget.package.upgraded";
|
|
3542
|
+
WidgetApiEvent2["PACKAGE_INSTALLED"] = "event::cn.widgetjs.core.widget.package.installed";
|
|
3543
|
+
return WidgetApiEvent2;
|
|
3544
|
+
})(WidgetApiEvent || {});
|
|
3545
|
+
var WidgetApiImpl = class extends BaseApi {
|
|
3546
|
+
getSyncInfo(widgetName) {
|
|
3547
|
+
return this.invokeMethod("getSyncInfo", widgetName);
|
|
3181
3548
|
}
|
|
3182
|
-
|
|
3183
|
-
return this.invokeMethod("
|
|
3549
|
+
updateSyncInfo() {
|
|
3550
|
+
return this.invokeMethod("updateSyncInfo");
|
|
3184
3551
|
}
|
|
3185
|
-
|
|
3186
|
-
return this.invokeMethod("
|
|
3552
|
+
reload(id) {
|
|
3553
|
+
return this.invokeMethod("reload", id);
|
|
3187
3554
|
}
|
|
3188
|
-
|
|
3189
|
-
return
|
|
3555
|
+
getChannel() {
|
|
3556
|
+
return "channel::cn.widgetjs.core.widget" /* WIDGET */;
|
|
3190
3557
|
}
|
|
3191
|
-
async
|
|
3192
|
-
return this.invokeMethod("
|
|
3558
|
+
async registerWidgets(widgets) {
|
|
3559
|
+
return this.invokeMethod("registerWidgets", JSON.stringify(widgets));
|
|
3193
3560
|
}
|
|
3194
|
-
async
|
|
3195
|
-
return this.invokeMethod("
|
|
3561
|
+
async registerWidgetPackage(widgetPackage) {
|
|
3562
|
+
return this.invokeMethod("registerWidgetPackage", JSON.stringify(widgetPackage));
|
|
3196
3563
|
}
|
|
3197
|
-
|
|
3198
|
-
|
|
3564
|
+
async getWidgets() {
|
|
3565
|
+
const data = await this.invokeMethod("getWidgets");
|
|
3566
|
+
const widgets = [];
|
|
3567
|
+
if (data) {
|
|
3568
|
+
for (const item of data) {
|
|
3569
|
+
widgets.push(Widget.parseObject(item));
|
|
3570
|
+
}
|
|
3571
|
+
}
|
|
3572
|
+
return widgets;
|
|
3199
3573
|
}
|
|
3200
|
-
async
|
|
3201
|
-
return this.invokeMethod("
|
|
3574
|
+
async openConfigPage(widgetId) {
|
|
3575
|
+
return this.invokeMethod("openConfigPage", widgetId);
|
|
3202
3576
|
}
|
|
3203
|
-
async
|
|
3204
|
-
return this.invokeMethod("
|
|
3577
|
+
async openConfigPageByName(widgetName) {
|
|
3578
|
+
return this.invokeMethod("openConfigPageByName", widgetName);
|
|
3205
3579
|
}
|
|
3206
|
-
|
|
3207
|
-
|
|
3580
|
+
/**
|
|
3581
|
+
* @deprecated
|
|
3582
|
+
*/
|
|
3583
|
+
async getWidgetPackages() {
|
|
3584
|
+
return await this.invokeMethod("getWidgetPackages");
|
|
3208
3585
|
}
|
|
3209
|
-
|
|
3210
|
-
|
|
3586
|
+
/**
|
|
3587
|
+
*
|
|
3588
|
+
* @param name package name
|
|
3589
|
+
*/
|
|
3590
|
+
async getWidget(name) {
|
|
3591
|
+
return Widget.parseObject(await this.invokeMethod("getWidget", name));
|
|
3211
3592
|
}
|
|
3212
|
-
|
|
3213
|
-
|
|
3593
|
+
/**
|
|
3594
|
+
* @param name package name
|
|
3595
|
+
* @deprecated
|
|
3596
|
+
*/
|
|
3597
|
+
async getWidgetPackage(name) {
|
|
3598
|
+
const result = await this.invokeMethod("getWidgetPackage", name);
|
|
3599
|
+
if (result) {
|
|
3600
|
+
return WidgetPackage.parseObject(result);
|
|
3601
|
+
}
|
|
3602
|
+
return void 0;
|
|
3214
3603
|
}
|
|
3215
|
-
async
|
|
3216
|
-
|
|
3604
|
+
async getWidgetPackageUrl(packageName) {
|
|
3605
|
+
const widgetPackage = await this.getWidgetPackage(packageName);
|
|
3606
|
+
if (!widgetPackage) {
|
|
3607
|
+
return null;
|
|
3608
|
+
}
|
|
3609
|
+
return widgetPackage.url;
|
|
3217
3610
|
}
|
|
3218
|
-
async
|
|
3219
|
-
return this.invokeMethod("
|
|
3611
|
+
async upgradePackage(packageName) {
|
|
3612
|
+
return await this.invokeMethod("upgradePackage", packageName);
|
|
3220
3613
|
}
|
|
3221
|
-
|
|
3222
|
-
|
|
3614
|
+
/**
|
|
3615
|
+
* 阻止拖动窗口,只能用于悬浮窗口 DeployMode.OVERLAP
|
|
3616
|
+
* @param draggable
|
|
3617
|
+
*/
|
|
3618
|
+
setMouseDraggable(draggable) {
|
|
3619
|
+
return this.invokeMethod("setMouseDraggable", draggable);
|
|
3223
3620
|
}
|
|
3224
|
-
|
|
3225
|
-
return this.invokeMethod("
|
|
3621
|
+
isIgnoreMouseEvents(widgetId) {
|
|
3622
|
+
return this.invokeMethod("isIgnoreMouseEvents", widgetId);
|
|
3226
3623
|
}
|
|
3227
|
-
|
|
3228
|
-
return this.invokeMethod("
|
|
3624
|
+
setIgnoreMouseEvents(widgetId, ignore) {
|
|
3625
|
+
return this.invokeMethod("setIgnoreMouseEvents", widgetId, ignore);
|
|
3626
|
+
}
|
|
3627
|
+
restartWidgets(mode) {
|
|
3628
|
+
return this.invokeMethod("restartWidgets", mode);
|
|
3229
3629
|
}
|
|
3230
3630
|
};
|
|
3231
|
-
var
|
|
3232
|
-
|
|
3233
|
-
|
|
3234
|
-
|
|
3235
|
-
|
|
3236
|
-
|
|
3237
|
-
|
|
3238
|
-
|
|
3239
|
-
|
|
3240
|
-
|
|
3241
|
-
|
|
3242
|
-
|
|
3243
|
-
|
|
3244
|
-
|
|
3245
|
-
|
|
3246
|
-
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
|
|
3250
|
-
|
|
3251
|
-
return this.invokeMethod("launchWindowsSettings", uri);
|
|
3631
|
+
var WidgetApi = new WidgetApiImpl();
|
|
3632
|
+
var WidgetDataApiImpl = class {
|
|
3633
|
+
stores = /* @__PURE__ */ new Map();
|
|
3634
|
+
/**
|
|
3635
|
+
* 保存组件数据
|
|
3636
|
+
* @param data
|
|
3637
|
+
* @param options
|
|
3638
|
+
*/
|
|
3639
|
+
async save(data, options = { sendBroadcast: true }) {
|
|
3640
|
+
const store = this.getStore(data.name, options.storeName);
|
|
3641
|
+
const json = JSON.stringify(data);
|
|
3642
|
+
const result = await store.setItem(this.getKey(data.name, data.id), json);
|
|
3643
|
+
if (options.sendBroadcast) {
|
|
3644
|
+
const broadcastEvent = new BroadcastEvent({
|
|
3645
|
+
event: "event::cn.widgetjs.core.widget.data-changed" /* DATA_CHANGED */,
|
|
3646
|
+
payload: { name: data.name, json }
|
|
3647
|
+
});
|
|
3648
|
+
await BroadcastApi.send(broadcastEvent);
|
|
3649
|
+
}
|
|
3650
|
+
return result;
|
|
3252
3651
|
}
|
|
3253
|
-
|
|
3254
|
-
|
|
3652
|
+
getStore(widgetName, storeName) {
|
|
3653
|
+
if (this.stores.has(widgetName)) {
|
|
3654
|
+
return this.stores.get(widgetName);
|
|
3655
|
+
}
|
|
3656
|
+
const store = localforage.createInstance({ name: widgetName, storeName });
|
|
3657
|
+
this.stores.set(widgetName, store);
|
|
3658
|
+
return store;
|
|
3255
3659
|
}
|
|
3256
|
-
|
|
3257
|
-
|
|
3660
|
+
/**
|
|
3661
|
+
* 通过组件名保存组件信息,通常用于存储可以在同类组件中共用的数据
|
|
3662
|
+
* @param data
|
|
3663
|
+
* @param options
|
|
3664
|
+
*/
|
|
3665
|
+
async saveByName(data, options = { sendBroadcast: true }) {
|
|
3666
|
+
const store = this.getStore(data.name);
|
|
3667
|
+
const json = JSON.stringify(data);
|
|
3668
|
+
const result = await store.setItem(data.name, json);
|
|
3669
|
+
if (options?.sendBroadcast) {
|
|
3670
|
+
const broadcastEvent = new BroadcastEvent({
|
|
3671
|
+
event: "event::cn.widgetjs.core.widget.data-changed" /* DATA_CHANGED */,
|
|
3672
|
+
payload: { name: data.name, json }
|
|
3673
|
+
});
|
|
3674
|
+
await BroadcastApi.send(broadcastEvent);
|
|
3675
|
+
}
|
|
3676
|
+
return result;
|
|
3258
3677
|
}
|
|
3259
|
-
|
|
3260
|
-
|
|
3678
|
+
async findByName(...args) {
|
|
3679
|
+
let name = "";
|
|
3680
|
+
let dbStr = "";
|
|
3681
|
+
let data;
|
|
3682
|
+
if (args.length === 2) {
|
|
3683
|
+
name = args[0];
|
|
3684
|
+
const Type = args[1];
|
|
3685
|
+
data = new Type(name);
|
|
3686
|
+
} else {
|
|
3687
|
+
data = args[0];
|
|
3688
|
+
name = data.name;
|
|
3689
|
+
}
|
|
3690
|
+
const store = this.getStore(name);
|
|
3691
|
+
dbStr = await store.getItem(name);
|
|
3692
|
+
if (dbStr) {
|
|
3693
|
+
data.parseJSON(JSON.parse(dbStr));
|
|
3694
|
+
return data;
|
|
3695
|
+
}
|
|
3696
|
+
return void 0;
|
|
3261
3697
|
}
|
|
3262
|
-
|
|
3263
|
-
|
|
3698
|
+
async find(name, id, Type) {
|
|
3699
|
+
const store = this.getStore(name);
|
|
3700
|
+
const result = await store.getItem(this.getKey(name, id));
|
|
3701
|
+
if (result) {
|
|
3702
|
+
const widgetData = new Type(name, id);
|
|
3703
|
+
widgetData.parseJSON(JSON.parse(result));
|
|
3704
|
+
return widgetData;
|
|
3705
|
+
}
|
|
3706
|
+
return void 0;
|
|
3264
3707
|
}
|
|
3265
|
-
|
|
3266
|
-
return
|
|
3708
|
+
getKey(name, id) {
|
|
3709
|
+
return `${name}@${id}`;
|
|
3267
3710
|
}
|
|
3268
3711
|
};
|
|
3269
|
-
var
|
|
3270
|
-
|
|
3271
|
-
// src/api/interface/IAppApi.ts
|
|
3272
|
-
var AppApiEvent = /* @__PURE__ */ ((AppApiEvent2) => {
|
|
3273
|
-
AppApiEvent2["CONFIG_CHANGED"] = "event::cn.widgetjs.core.app.config.changed";
|
|
3274
|
-
AppApiEvent2["MOVING_GRID_WINDOW"] = "event::cn.widgetjs.core.app.moving.grid.window";
|
|
3275
|
-
AppApiEvent2["STOP_MOVING_GRID_WINDOW"] = "event::cn.widgetjs.core.app.moving.grid.window.stop";
|
|
3276
|
-
AppApiEvent2["PROXY_CHANGED"] = "event::cn.widgetjs.core.app.proxy.changed";
|
|
3277
|
-
AppApiEvent2["LANGUAGE_CHANGED"] = "event::cn.widgetjs.core.app.language.changed";
|
|
3278
|
-
return AppApiEvent2;
|
|
3279
|
-
})(AppApiEvent || {});
|
|
3280
|
-
var AppApiConstants = /* @__PURE__ */ ((AppApiConstants2) => {
|
|
3281
|
-
AppApiConstants2["CONFIG_GRID_CELL_SIZE"] = "cn.widgetjs.config.grid.size";
|
|
3282
|
-
AppApiConstants2["CONFIG_WIDGET_THEME_CSS"] = "cn.widgetjs.config.widget.theme.css";
|
|
3283
|
-
AppApiConstants2["CONFIG_PROXY"] = "cn.widgetjs.config.app.proxy";
|
|
3284
|
-
AppApiConstants2["CONFIG_DEV_MODE"] = "cn.widgetjs.config.app.dev.mode";
|
|
3285
|
-
AppApiConstants2["CONFIG_LANGUAGE"] = "cn.widgetjs.config.app.language";
|
|
3286
|
-
return AppApiConstants2;
|
|
3287
|
-
})(AppApiConstants || {});
|
|
3288
|
-
|
|
3289
|
-
// src/api/interface/IWidgetPackageApi.ts
|
|
3290
|
-
var WidgetPackageApiEvent = /* @__PURE__ */ ((WidgetPackageApiEvent2) => {
|
|
3291
|
-
WidgetPackageApiEvent2["PACKAGE_UPGRADE"] = "event::cn.widgetjs.core.widget.package.upgraded";
|
|
3292
|
-
WidgetPackageApiEvent2["PACKAGE_INSTALLED"] = "event::cn.widgetjs.core.widget.package.installed";
|
|
3293
|
-
return WidgetPackageApiEvent2;
|
|
3294
|
-
})(WidgetPackageApiEvent || {});
|
|
3295
|
-
|
|
3296
|
-
// src/api/interface/IMouseApi.ts
|
|
3297
|
-
var MouseApiEvent = /* @__PURE__ */ ((MouseApiEvent2) => {
|
|
3298
|
-
MouseApiEvent2["HOTSPOT_ACTIVE"] = "event::cn.widgetjs.core.mouse.hotspot.active";
|
|
3299
|
-
return MouseApiEvent2;
|
|
3300
|
-
})(MouseApiEvent || {});
|
|
3301
|
-
|
|
3302
|
-
// src/api/interface/ITrayApi.ts
|
|
3303
|
-
var TrayApiEvent = /* @__PURE__ */ ((TrayApiEvent2) => {
|
|
3304
|
-
TrayApiEvent2["CLICK"] = "channel::cn.widgetjs.core.tray.click";
|
|
3305
|
-
TrayApiEvent2["RIGHT_CLICK"] = "channel::cn.widgetjs.core.tray.right-click";
|
|
3306
|
-
TrayApiEvent2["MIDDLE_CLICK"] = "channel::cn.widgetjs.core.tray.middle-click";
|
|
3307
|
-
TrayApiEvent2["MOUSE_ENTER"] = "channel::cn.widgetjs.core.tray.mouse-enter";
|
|
3308
|
-
TrayApiEvent2["MOUSE_LEAVE"] = "channel::cn.widgetjs.core.tray.mouse-leave";
|
|
3309
|
-
return TrayApiEvent2;
|
|
3310
|
-
})(TrayApiEvent || {});
|
|
3311
|
-
|
|
3312
|
-
// src/api/interface/IUserApi.ts
|
|
3313
|
-
var UserApiEvent = /* @__PURE__ */ ((UserApiEvent2) => {
|
|
3314
|
-
UserApiEvent2["USER_UPDATED"] = `channel::cn.widgetjs.core.user.updated`;
|
|
3315
|
-
UserApiEvent2["SIGNED_OUT"] = `channel::cn.widgetjs.core.user.signed.out`;
|
|
3316
|
-
UserApiEvent2["SIGNED_IN"] = `channel::cn.widgetjs.core.user.signed.in`;
|
|
3317
|
-
UserApiEvent2["TOKEN_REFRESHED"] = `channel::cn.widgetjs.core.user.token.refreshed`;
|
|
3318
|
-
return UserApiEvent2;
|
|
3319
|
-
})(UserApiEvent || {});
|
|
3320
|
-
|
|
3321
|
-
// src/api/interface/IAiApi.ts
|
|
3322
|
-
var AiApiEvent = /* @__PURE__ */ ((AiApiEvent2) => {
|
|
3323
|
-
AiApiEvent2["CONFIG_UPDATED"] = `channel::cn.widgetjs.core.ai.config.updated`;
|
|
3324
|
-
return AiApiEvent2;
|
|
3325
|
-
})(AiApiEvent || {});
|
|
3712
|
+
var WidgetDataApi = new WidgetDataApiImpl();
|
|
3326
3713
|
|
|
3327
3714
|
// src/api/WidgetPackageApi.ts
|
|
3328
3715
|
var WidgetPackageApiImpl = class extends BaseApi {
|
|
@@ -3383,171 +3770,6 @@ var WidgetPackageApiImpl = class extends BaseApi {
|
|
|
3383
3770
|
};
|
|
3384
3771
|
var WidgetPackageApi = new WidgetPackageApiImpl();
|
|
3385
3772
|
|
|
3386
|
-
|
|
3387
|
-
var MenuApiEvent = /* @__PURE__ */ ((MenuApiEvent2) => {
|
|
3388
|
-
MenuApiEvent2["ITEM_CLICK"] = "event::cn.widgetjs.core.menu.item.click";
|
|
3389
|
-
return MenuApiEvent2;
|
|
3390
|
-
})(MenuApiEvent || {});
|
|
3391
|
-
var MenuApiImpl = class extends BaseApi {
|
|
3392
|
-
getChannel() {
|
|
3393
|
-
return "channel::cn.widgetjs.core.menu" /* MENU */;
|
|
3394
|
-
}
|
|
3395
|
-
/**
|
|
3396
|
-
* Add items to the context menu
|
|
3397
|
-
* @param menuItems The menu items to add
|
|
3398
|
-
*/
|
|
3399
|
-
addContextMenuItem(menuItems) {
|
|
3400
|
-
return this.invokeMethod("addContextMenuItem", menuItems);
|
|
3401
|
-
}
|
|
3402
|
-
/**
|
|
3403
|
-
* Add items to the application menu
|
|
3404
|
-
* @param menuItems The menu items to add
|
|
3405
|
-
*/
|
|
3406
|
-
addMenuItem(menuItems) {
|
|
3407
|
-
return this.invokeMethod("addMenuItem", menuItems);
|
|
3408
|
-
}
|
|
3409
|
-
/**
|
|
3410
|
-
* Show a menu programmatically
|
|
3411
|
-
* @param options The options for showing the menu
|
|
3412
|
-
*/
|
|
3413
|
-
showMenu(options) {
|
|
3414
|
-
return this.invokeMethod("showMenu", options);
|
|
3415
|
-
}
|
|
3416
|
-
/**
|
|
3417
|
-
* Remove items from the application menu
|
|
3418
|
-
* @param menuItemIds The IDs of the menu items to remove
|
|
3419
|
-
*/
|
|
3420
|
-
removeMenuItem(menuItemIds) {
|
|
3421
|
-
return this.invokeMethod("removeMenuItem", menuItemIds);
|
|
3422
|
-
}
|
|
3423
|
-
/**
|
|
3424
|
-
* Remove items from the context menu
|
|
3425
|
-
* @param menuItemIds The IDs of the menu items to remove
|
|
3426
|
-
*/
|
|
3427
|
-
removeContextMenuItem(menuItemIds) {
|
|
3428
|
-
return this.invokeMethod("removeContextMenuItem", menuItemIds);
|
|
3429
|
-
}
|
|
3430
|
-
};
|
|
3431
|
-
var MenuApi = new MenuApiImpl();
|
|
3432
|
-
|
|
3433
|
-
// src/api/MouseApi.ts
|
|
3434
|
-
var MouseApiImpl = class extends BaseApi {
|
|
3435
|
-
getChannel() {
|
|
3436
|
-
return "channel::cn.widgetjs.core.mouse" /* MOUSE */;
|
|
3437
|
-
}
|
|
3438
|
-
removeHotspot() {
|
|
3439
|
-
return this.invokeMethod("removeHotspot");
|
|
3440
|
-
}
|
|
3441
|
-
createHotspot(rect) {
|
|
3442
|
-
return this.invokeMethod("createHotspot", rect);
|
|
3443
|
-
}
|
|
3444
|
-
};
|
|
3445
|
-
var MouseApi = new MouseApiImpl();
|
|
3446
|
-
|
|
3447
|
-
// src/api/HttpApi.ts
|
|
3448
|
-
var HttpApiImpl = class extends BaseApi {
|
|
3449
|
-
getChannel() {
|
|
3450
|
-
return "channel::cn.widgetjs.core.http" /* HTTP */;
|
|
3451
|
-
}
|
|
3452
|
-
get(url, params) {
|
|
3453
|
-
return this.invokeMethod("get", url, params);
|
|
3454
|
-
}
|
|
3455
|
-
post(url, data) {
|
|
3456
|
-
return this.invokeMethod("post", url, data);
|
|
3457
|
-
}
|
|
3458
|
-
};
|
|
3459
|
-
var HttpApi = new HttpApiImpl();
|
|
3460
|
-
|
|
3461
|
-
// src/api/UserApi.ts
|
|
3462
|
-
var UserApiImpl = class extends BaseApi {
|
|
3463
|
-
async getSession() {
|
|
3464
|
-
return await this.invokeMethod("getSession");
|
|
3465
|
-
}
|
|
3466
|
-
async updateSession(session) {
|
|
3467
|
-
await this.invokeMethod("updateSession", session);
|
|
3468
|
-
}
|
|
3469
|
-
async updateUser(user) {
|
|
3470
|
-
await this.invokeMethod("updateUser", user);
|
|
3471
|
-
}
|
|
3472
|
-
async login(session) {
|
|
3473
|
-
await this.invokeMethod("login", session);
|
|
3474
|
-
}
|
|
3475
|
-
async logout() {
|
|
3476
|
-
await this.invokeMethod("logout");
|
|
3477
|
-
}
|
|
3478
|
-
async getUser() {
|
|
3479
|
-
return await this.invokeMethod("getUser");
|
|
3480
|
-
}
|
|
3481
|
-
getChannel() {
|
|
3482
|
-
return "channel::cn.widgetjs.core.user" /* USER */;
|
|
3483
|
-
}
|
|
3484
|
-
};
|
|
3485
|
-
var UserApi = new UserApiImpl();
|
|
3486
|
-
|
|
3487
|
-
// src/api/TrayApi.ts
|
|
3488
|
-
var TrayApiImpl = class extends BaseApi {
|
|
3489
|
-
getChannel() {
|
|
3490
|
-
return "channel::cn.widgetjs.core.tray" /* TRAY */;
|
|
3491
|
-
}
|
|
3492
|
-
setTray(options) {
|
|
3493
|
-
return this.invokeMethod("setTray", options);
|
|
3494
|
-
}
|
|
3495
|
-
removeTray() {
|
|
3496
|
-
return this.invokeMethod("removeTray");
|
|
3497
|
-
}
|
|
3498
|
-
displayBalloon(options) {
|
|
3499
|
-
return this.invokeMethod("displayBalloon", options);
|
|
3500
|
-
}
|
|
3501
|
-
removeBalloon() {
|
|
3502
|
-
return this.invokeMethod("removeBalloon");
|
|
3503
|
-
}
|
|
3504
|
-
setContextMenu(menus) {
|
|
3505
|
-
return this.invokeMethod("setContextMenu", menus);
|
|
3506
|
-
}
|
|
3507
|
-
closeContextMenu() {
|
|
3508
|
-
return this.invokeMethod("closeContextMenu");
|
|
3509
|
-
}
|
|
3510
|
-
popUpContextMenu(menus, position) {
|
|
3511
|
-
return this.invokeMethod("popUpContextMenu", menus, position);
|
|
3512
|
-
}
|
|
3513
|
-
isDestroyed() {
|
|
3514
|
-
return this.invokeMethod("isDestroyed");
|
|
3515
|
-
}
|
|
3516
|
-
getBounds() {
|
|
3517
|
-
return this.invokeMethod("getBounds");
|
|
3518
|
-
}
|
|
3519
|
-
focus() {
|
|
3520
|
-
return this.invokeMethod("focus");
|
|
3521
|
-
}
|
|
3522
|
-
};
|
|
3523
|
-
var TrayApi = new TrayApiImpl();
|
|
3524
|
-
|
|
3525
|
-
// src/api/AiApi.ts
|
|
3526
|
-
var AiApiImpl = class extends BaseApi {
|
|
3527
|
-
addConfig(config) {
|
|
3528
|
-
return this.invokeMethod("addConfig", config);
|
|
3529
|
-
}
|
|
3530
|
-
deleteConfig(id) {
|
|
3531
|
-
return this.invokeMethod("deleteConfig", id);
|
|
3532
|
-
}
|
|
3533
|
-
updateConfig(config) {
|
|
3534
|
-
return this.invokeMethod("updateConfig", config);
|
|
3535
|
-
}
|
|
3536
|
-
getConfigList() {
|
|
3537
|
-
return this.invokeMethod("getConfigList");
|
|
3538
|
-
}
|
|
3539
|
-
setConfigList(configs) {
|
|
3540
|
-
return this.invokeMethod("setConfigList", configs);
|
|
3541
|
-
}
|
|
3542
|
-
getConfig(id) {
|
|
3543
|
-
return this.invokeMethod("getConfig", id);
|
|
3544
|
-
}
|
|
3545
|
-
getChannel() {
|
|
3546
|
-
return "channel::cn.widgetjs.core.ai" /* AI */;
|
|
3547
|
-
}
|
|
3548
|
-
};
|
|
3549
|
-
var AiApi = new AiApiImpl();
|
|
3550
|
-
|
|
3551
|
-
export { AiApi, AiApiEvent, ApiConstants, AppApi, AppApiConstants, AppApiEvent, AppConfig, AppEvent, AppNotification, AppReminderNotification, BackgroundWidget, BaseApi, BroadcastApi, BroadcastEvent, BrowserWindowApi, BrowserWindowApiEvent, Channel, ClipboardApi, ClipboardApiEvent, DefaultWidgetTheme, DeployMode, DeployedPage, DeployedWidget, DeployedWidgetApi, DeviceApi, DialogApi, ElectronApi, ElectronUtils, FileApi, Gravity, GridRect, GridSystem, HostedMode, HttpApi, LanguageMap, LanguageUtils, LogApi, MenuApi, MenuApiEvent, MouseApi, MouseApiEvent, NotificationApi, NotificationApiEvent, NotificationSize, Page, ProcessApi, ShortcutApi, ShortcutApiEvent, SocialInfo, StorageApi, StoreApi, SystemApi, SystemApiEvent, ThemeMode, TrayApi, TrayApiEvent, UserApi, UserApiEvent, WebSocketEvent, WebSocketEventType, Widget, WidgetApi, WidgetApiEvent, WidgetData, WidgetDataApi, WidgetKeyword, WidgetPackage, WidgetPackageApi, WidgetPackageApiEvent, WidgetPackageUtils, WidgetParams, WidgetTheme, WidgetUtils, delay, normalizeUrl, parseQuery, stringifyQuery };
|
|
3773
|
+
export { AiApiEvent, ApiConstants, AppApi, AppApiConstants, AppApiEvent, AppConfig, AppEvent, AppNotification, AppReminderNotification, AppTheme, BackgroundWidget, BaseApi, BroadcastApi, BroadcastEvent, BrowserWindowApi, BrowserWindowApiEvent, Channel, ClipboardApi, ClipboardApiEvent, DefaultTheme, DefaultThemeDark, DefaultThemeLight, DefaultWidgetTheme, DeployMode, DeployedPage, DeployedWidget, DeployedWidgetApi, DeviceApi, DialogApi, ElectronApi, ElectronUtils, FileApi, Gravity, GridRect, GridSystem, HostedMode, HttpApi, LanguageMap, LanguageUtils, LogApi, MenuApi, MenuApiEvent, MouseApi, MouseApiEvent, NotificationApi, NotificationApiEvent, NotificationSize, Page, ProcessApi, ShortcutApi, ShortcutApiEvent, SocialInfo, StorageApi, StoreApi, SystemApi, SystemApiEvent, ThemeMode, TrayApi, TrayApiEvent, UserApi, UserApiEvent, WebSocketEvent, WebSocketEventType, Widget, WidgetApi, WidgetApiEvent, WidgetData, WidgetDataApi, WidgetKeyword, WidgetPackage, WidgetPackageApi, WidgetPackageApiEvent, WidgetPackageUtils, WidgetParams, WidgetTheme, WidgetUtils, delay, normalizeUrl, parseQuery, stringifyQuery };
|
|
3552
3774
|
//# sourceMappingURL=index.js.map
|
|
3553
3775
|
//# sourceMappingURL=index.js.map
|