bc-deeplib 1.1.0 → 1.1.2
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/deeplib.d.ts +326 -21
- package/dist/deeplib.js +191 -84
- package/dist/deeplib.js.map +3 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -12
package/dist/deeplib.js
CHANGED
|
@@ -204,12 +204,27 @@ var BaseModule = class {
|
|
|
204
204
|
static {
|
|
205
205
|
__name(this, "BaseModule");
|
|
206
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* An optional UI screen for configuring this module's settings.
|
|
209
|
+
* Subclasses can override this getter to provide a `Subscreen` instance.
|
|
210
|
+
* Modules with screens are automatically registered to the main menu.
|
|
211
|
+
*/
|
|
207
212
|
get settingsScreen() {
|
|
208
213
|
return null;
|
|
209
214
|
}
|
|
215
|
+
/**
|
|
216
|
+
* The storage key under which this module's settings will be saved.
|
|
217
|
+
* Defaults to the class name.
|
|
218
|
+
*
|
|
219
|
+
* Subclasses can override this if they require a custom storage key.
|
|
220
|
+
*/
|
|
210
221
|
get settingsStorage() {
|
|
211
222
|
return this.constructor.name;
|
|
212
223
|
}
|
|
224
|
+
/**
|
|
225
|
+
* Retrieves the current settings for this module.
|
|
226
|
+
* If no settings exist yet, registers default settings first.
|
|
227
|
+
*/
|
|
213
228
|
get settings() {
|
|
214
229
|
const modName = ModSdkManager.ModInfo.name;
|
|
215
230
|
if (!this.settingsStorage) return {};
|
|
@@ -219,6 +234,10 @@ var BaseModule = class {
|
|
|
219
234
|
} else if (!modStorage.playerStorage[this.settingsStorage]) this.registerDefaultSettings();
|
|
220
235
|
return modStorage.playerStorage[this.settingsStorage];
|
|
221
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* Persists new settings for this module.
|
|
239
|
+
* Automatically initializes storage and defaults if they don't exist.
|
|
240
|
+
*/
|
|
222
241
|
set settings(value) {
|
|
223
242
|
const modName = ModSdkManager.ModInfo.name;
|
|
224
243
|
const storage = new ModStorage(modName);
|
|
@@ -229,31 +248,55 @@ var BaseModule = class {
|
|
|
229
248
|
} else if (!storage.playerStorage[this.settingsStorage]) this.registerDefaultSettings();
|
|
230
249
|
storage.playerStorage[this.settingsStorage] = value;
|
|
231
250
|
}
|
|
251
|
+
/**
|
|
252
|
+
* Initializes the module.
|
|
253
|
+
* Default implementation registers default settings immediately.
|
|
254
|
+
* Subclasses can override to perform additional setup.
|
|
255
|
+
*/
|
|
232
256
|
init() {
|
|
233
257
|
this.registerDefaultSettings();
|
|
234
258
|
}
|
|
259
|
+
/**
|
|
260
|
+
* Registers default settings for this module in persistent storage.
|
|
261
|
+
* Only runs if a storage key and default settings are defined.
|
|
262
|
+
*
|
|
263
|
+
* If some settings already exist, they will be merged with defaults.
|
|
264
|
+
* Existing values will NOT be overwritten.
|
|
265
|
+
*/
|
|
235
266
|
registerDefaultSettings() {
|
|
236
267
|
const storage = this.settingsStorage;
|
|
237
268
|
const defaults = this.defaultSettings;
|
|
238
269
|
if (!storage || !defaults) return;
|
|
239
270
|
Player[ModSdkManager.ModInfo.name][storage] = Object.assign(defaults, Player[ModSdkManager.ModInfo.name][storage] ?? {});
|
|
240
271
|
}
|
|
272
|
+
/**
|
|
273
|
+
* Provides default settings for this module.
|
|
274
|
+
* Subclasses should override this getter to return their defaults.
|
|
275
|
+
*/
|
|
241
276
|
get defaultSettings() {
|
|
242
277
|
return null;
|
|
243
278
|
}
|
|
279
|
+
/**
|
|
280
|
+
* Called when the module is loaded into the system.
|
|
281
|
+
* Subclasses should override to perform data loading or initialization.
|
|
282
|
+
*/
|
|
244
283
|
load() {
|
|
245
284
|
}
|
|
285
|
+
/**
|
|
286
|
+
* By default doesn't get called each frame, only once when the module is loaded.
|
|
287
|
+
* Subclasses can override to implement runtime logic.
|
|
288
|
+
*/
|
|
246
289
|
run() {
|
|
247
290
|
}
|
|
291
|
+
/**
|
|
292
|
+
* Called when the module is being removed.
|
|
293
|
+
* Subclasses can override to perform cleanup or save final state.
|
|
294
|
+
*/
|
|
248
295
|
unload() {
|
|
249
296
|
}
|
|
250
297
|
};
|
|
251
298
|
|
|
252
299
|
// src/base/base_subscreen.ts
|
|
253
|
-
function getCurrentSubscreen() {
|
|
254
|
-
return GUI.instance && GUI.instance.currentSubscreen;
|
|
255
|
-
}
|
|
256
|
-
__name(getCurrentSubscreen, "getCurrentSubscreen");
|
|
257
300
|
function setSubscreen(subscreen) {
|
|
258
301
|
if (!GUI.instance) {
|
|
259
302
|
throw new Error("Attempt to set subscreen before init");
|
|
@@ -266,38 +309,62 @@ var BaseSubscreen = class _BaseSubscreen {
|
|
|
266
309
|
static {
|
|
267
310
|
__name(this, "BaseSubscreen");
|
|
268
311
|
}
|
|
312
|
+
/** Global registry of currently rendered elements and their definitions. */
|
|
269
313
|
static currentElements = [];
|
|
314
|
+
/** Tracks the currently visible page number (1-based index). */
|
|
270
315
|
static currentPage = 1;
|
|
316
|
+
/** Runtime options for this subscreen. */
|
|
271
317
|
options;
|
|
318
|
+
/** Reference to the module this subscreen belongs to. */
|
|
272
319
|
module;
|
|
273
320
|
constructor(subscreenOptions, module) {
|
|
274
321
|
if (module) this.module = module;
|
|
275
322
|
this.options = subscreenOptions || {};
|
|
276
323
|
}
|
|
324
|
+
/**
|
|
325
|
+
* Logical name of this subscreen.
|
|
326
|
+
* Used for localization key resolution in `load()`.
|
|
327
|
+
* Subclasses should override this with a meaningful identifier.
|
|
328
|
+
*/
|
|
277
329
|
get name() {
|
|
278
330
|
return "UNKNOWN";
|
|
279
331
|
}
|
|
332
|
+
/**
|
|
333
|
+
* Path to or Base64 data for an icon representing this subscreen.
|
|
334
|
+
* Defaults to empty string (no icon).
|
|
335
|
+
*/
|
|
280
336
|
get icon() {
|
|
281
337
|
return "";
|
|
282
338
|
}
|
|
283
|
-
|
|
284
|
-
return this.constructor.name;
|
|
285
|
-
}
|
|
339
|
+
/** Changes the currently active subscreen. */
|
|
286
340
|
setSubscreen(screen) {
|
|
287
341
|
return setSubscreen(screen);
|
|
288
342
|
}
|
|
343
|
+
/** Gets this subscreen's settings object from its parent module. */
|
|
289
344
|
get settings() {
|
|
290
345
|
return this.module.settings;
|
|
291
346
|
}
|
|
347
|
+
/** Updates this subscreen's settings in its parent module. */
|
|
292
348
|
set settings(value) {
|
|
293
349
|
this.module.settings = value;
|
|
294
350
|
}
|
|
351
|
+
/**
|
|
352
|
+
* Defines the paginated layout of the subscreen's settings UI.
|
|
353
|
+
* Each element in the outer array is a page; each page contains `SettingElement`s.
|
|
354
|
+
*
|
|
355
|
+
* Subclasses should override to define their actual UI structure.
|
|
356
|
+
*/
|
|
295
357
|
get pageStructure() {
|
|
296
358
|
return [[]];
|
|
297
359
|
}
|
|
360
|
+
/** Gets the currently visible page's settings elements. */
|
|
298
361
|
get currentPage() {
|
|
299
362
|
return this.pageStructure[Math.min(_BaseSubscreen.currentPage - 1, this.pageStructure.length - 1)];
|
|
300
363
|
}
|
|
364
|
+
/**
|
|
365
|
+
* Changes the visible page in a multi-page subscreen.
|
|
366
|
+
* Automatically wraps around when going past the first or last page.
|
|
367
|
+
*/
|
|
301
368
|
changePage(page, setLabel) {
|
|
302
369
|
const totalPages = this.pageStructure.length;
|
|
303
370
|
if (page > totalPages) page = 1;
|
|
@@ -306,6 +373,10 @@ var BaseSubscreen = class _BaseSubscreen {
|
|
|
306
373
|
this.managePageElementsVisibility();
|
|
307
374
|
setLabel(`${_BaseSubscreen.currentPage} of ${this.pageStructure.length}`);
|
|
308
375
|
}
|
|
376
|
+
/**
|
|
377
|
+
* Updates the DOM to show only elements belonging to the current page.
|
|
378
|
+
* All elements on other pages are hidden.
|
|
379
|
+
*/
|
|
309
380
|
managePageElementsVisibility() {
|
|
310
381
|
this.pageStructure.forEach((item, ix) => {
|
|
311
382
|
if (ix != _BaseSubscreen.currentPage - 1) {
|
|
@@ -319,19 +390,30 @@ var BaseSubscreen = class _BaseSubscreen {
|
|
|
319
390
|
}
|
|
320
391
|
});
|
|
321
392
|
}
|
|
393
|
+
/**
|
|
394
|
+
* Called when this subscreen is first displayed.
|
|
395
|
+
* Builds the layout, initializes navigation, and renders all settings elements.
|
|
396
|
+
*
|
|
397
|
+
* Handles:
|
|
398
|
+
* - Ensuring each module with a settings screen has its defaults loaded
|
|
399
|
+
* - Creating navigation menus and back/next page controls
|
|
400
|
+
* - Building and appending UI elements based on `pageStructure`
|
|
401
|
+
* - Setting up exit button and tooltip
|
|
402
|
+
* - Resetting to page 1
|
|
403
|
+
*/
|
|
322
404
|
load() {
|
|
323
405
|
for (const module of modules()) {
|
|
324
406
|
if (!module.settingsScreen) continue;
|
|
325
407
|
if (!module.settings || !Object.keys(module.settings).length) module.registerDefaultSettings();
|
|
326
408
|
}
|
|
327
409
|
_BaseSubscreen.currentPage = 1;
|
|
328
|
-
|
|
329
|
-
const settingsElement =
|
|
330
|
-
|
|
410
|
+
layout.createSubscreen();
|
|
411
|
+
const settingsElement = layout.createSettingsDiv();
|
|
412
|
+
layout.appendToSubscreen(settingsElement);
|
|
331
413
|
const menu = ElementMenu.Create("deeplib-nav-menu", []);
|
|
332
|
-
|
|
414
|
+
layout.appendToSubscreen(menu);
|
|
333
415
|
if (this.pageStructure.length > 1) {
|
|
334
|
-
const backNext =
|
|
416
|
+
const backNext = advElement.createBackNext({
|
|
335
417
|
id: "deeplib-page-back-next",
|
|
336
418
|
next: /* @__PURE__ */ __name(({ setLabel }) => this.changePage(_BaseSubscreen.currentPage + 1, setLabel), "next"),
|
|
337
419
|
initialNextTooltip: getText("settings.button.next_button_hint"),
|
|
@@ -341,13 +423,13 @@ var BaseSubscreen = class _BaseSubscreen {
|
|
|
341
423
|
});
|
|
342
424
|
ElementMenu.PrependItem(menu, backNext);
|
|
343
425
|
}
|
|
344
|
-
const subscreenTitle =
|
|
426
|
+
const subscreenTitle = advElement.createLabel({
|
|
345
427
|
id: "deeplib-subscreen-title",
|
|
346
428
|
label: getText(`${this.name}.title`).replace("$ModVersion", ModSdkManager.ModInfo.version)
|
|
347
429
|
});
|
|
348
|
-
|
|
430
|
+
layout.appendToSubscreen(subscreenTitle);
|
|
349
431
|
if (this.name !== "mainmenu") {
|
|
350
|
-
const exitButton =
|
|
432
|
+
const exitButton = advElement.createButton({
|
|
351
433
|
id: "deeplib-exit",
|
|
352
434
|
size: [90, 90],
|
|
353
435
|
image: `${PUBLIC_URL}/dl_images/exit.svg`,
|
|
@@ -358,8 +440,8 @@ var BaseSubscreen = class _BaseSubscreen {
|
|
|
358
440
|
});
|
|
359
441
|
ElementMenu.AppendButton(menu, exitButton);
|
|
360
442
|
}
|
|
361
|
-
const tooltip =
|
|
362
|
-
|
|
443
|
+
const tooltip = advElement.createTooltip();
|
|
444
|
+
layout.appendToSubscreen(tooltip);
|
|
363
445
|
this.pageStructure.forEach(
|
|
364
446
|
(s) => s.forEach((item) => {
|
|
365
447
|
let element;
|
|
@@ -367,42 +449,59 @@ var BaseSubscreen = class _BaseSubscreen {
|
|
|
367
449
|
case "text":
|
|
368
450
|
case "number":
|
|
369
451
|
case "color":
|
|
370
|
-
element =
|
|
452
|
+
element = advElement.createInput(item);
|
|
371
453
|
break;
|
|
372
454
|
case "checkbox":
|
|
373
|
-
element =
|
|
455
|
+
element = advElement.createCheckbox(item);
|
|
374
456
|
break;
|
|
375
457
|
case "button":
|
|
376
|
-
element =
|
|
458
|
+
element = advElement.createButton(item);
|
|
377
459
|
break;
|
|
378
460
|
case "label":
|
|
379
|
-
element =
|
|
461
|
+
element = advElement.createLabel(item);
|
|
380
462
|
break;
|
|
381
463
|
case "custom":
|
|
382
|
-
element =
|
|
464
|
+
element = advElement.createCustom(item);
|
|
383
465
|
break;
|
|
384
466
|
}
|
|
385
|
-
|
|
467
|
+
layout.appendToSettingsDiv(element);
|
|
386
468
|
})
|
|
387
469
|
);
|
|
388
470
|
this.managePageElementsVisibility();
|
|
389
471
|
CharacterAppearanceForceUpCharacter = Player.MemberNumber ?? -1;
|
|
390
472
|
}
|
|
473
|
+
/**
|
|
474
|
+
* Called each frame while this subscreen is active.
|
|
475
|
+
* Default behavior draws the player's character if `drawCharacter` is enabled.
|
|
476
|
+
*/
|
|
391
477
|
run() {
|
|
392
478
|
if (this.options.drawCharacter) DrawCharacter(Player, 50, 50, 0.9, false);
|
|
393
479
|
}
|
|
480
|
+
/**
|
|
481
|
+
* Handles mouse clicks *on canvas* while the subscreen is active.
|
|
482
|
+
* Default implementation is empty — subclasses may override.
|
|
483
|
+
*/
|
|
394
484
|
click() {
|
|
395
485
|
}
|
|
486
|
+
/**
|
|
487
|
+
* Exits this subscreen, returning to the main menu.
|
|
488
|
+
* Also saves persistent storage changes.
|
|
489
|
+
* Called after the `unload`.
|
|
490
|
+
*/
|
|
396
491
|
exit() {
|
|
397
492
|
CharacterAppearanceForceUpCharacter = -1;
|
|
398
493
|
CharacterLoadCanvas(Player);
|
|
399
494
|
setSubscreen("mainmenu");
|
|
400
495
|
modStorage.save();
|
|
401
496
|
}
|
|
497
|
+
/**
|
|
498
|
+
* Called when the window is resized.
|
|
499
|
+
* Also checks for overflow in the settings div and applies styling accordingly.
|
|
500
|
+
*/
|
|
402
501
|
resize(onLoad = false) {
|
|
403
502
|
const offset = this.options.drawCharacter ? 0 : 380;
|
|
404
|
-
const subscreen =
|
|
405
|
-
const settingsDiv =
|
|
503
|
+
const subscreen = layout.getSubscreen();
|
|
504
|
+
const settingsDiv = layout.getSettingsDiv();
|
|
406
505
|
ElementSetPosition(subscreen || "", 0, 0);
|
|
407
506
|
ElementSetSize(subscreen || "", 2e3, 1e3);
|
|
408
507
|
ElementSetFontSize(subscreen || "", "auto");
|
|
@@ -417,8 +516,8 @@ var BaseSubscreen = class _BaseSubscreen {
|
|
|
417
516
|
ElementSetSize("deeplib-subscreen-title", 800, 60);
|
|
418
517
|
ElementSetPosition("deeplib-nav-menu", 1905, 75, "top-right");
|
|
419
518
|
ElementSetSize("deeplib-nav-menu", null, 90);
|
|
420
|
-
ElementSetPosition(
|
|
421
|
-
ElementSetSize(
|
|
519
|
+
ElementSetPosition(advElement.getTooltip() || "", 250, 850);
|
|
520
|
+
ElementSetSize(advElement.getTooltip() || "", 1500, 70);
|
|
422
521
|
_BaseSubscreen.currentElements.forEach((item) => {
|
|
423
522
|
const options = item[1];
|
|
424
523
|
domUtil.autoSetPosition(options.id, options.position);
|
|
@@ -432,9 +531,14 @@ var BaseSubscreen = class _BaseSubscreen {
|
|
|
432
531
|
}
|
|
433
532
|
}
|
|
434
533
|
}
|
|
534
|
+
/**
|
|
535
|
+
* Called when this subscreen is being removed.
|
|
536
|
+
* Resets the static element registry and removes the subscreen from the layout.
|
|
537
|
+
* Called before `exit`.
|
|
538
|
+
*/
|
|
435
539
|
unload() {
|
|
436
540
|
_BaseSubscreen.currentElements = [];
|
|
437
|
-
|
|
541
|
+
layout.removeSubscreen();
|
|
438
542
|
}
|
|
439
543
|
};
|
|
440
544
|
|
|
@@ -446,8 +550,8 @@ var styles_default = `.deeplib-subscreen,
|
|
|
446
550
|
--deeplib-element-hover-color: var(--tmd-element-hover, cyan);
|
|
447
551
|
--deeplib-blocked-color: var(--tmd-blocked, red);
|
|
448
552
|
--deeplib-text-color: var(--tmd-text, black);
|
|
449
|
-
--deeplib-icon-color: var(--tmd-accent,
|
|
450
|
-
--deeplib-icon-hover-color: var(--tmd-accent-hover,
|
|
553
|
+
--deeplib-icon-color: var(--tmd-accent, black);
|
|
554
|
+
--deeplib-icon-hover-color: var(--tmd-accent-hover, black);
|
|
451
555
|
--deeplib-border-color: var(--tmd-accent, black);
|
|
452
556
|
--deeplib-border-width: min(0.2vh, 0.1vw);
|
|
453
557
|
--deeplib-border-width: min(0.2dvh, 0.1dvw);
|
|
@@ -735,7 +839,7 @@ input[type=number] {
|
|
|
735
839
|
height: 100dvh;
|
|
736
840
|
background-color: rgba(0, 0, 0, 0.5);
|
|
737
841
|
}
|
|
738
|
-
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL21lZGlhL0Rlby9OVk1FL1N0dWZmL0NvZGUvQkMvQkMtRGVlcExpYi9zcmMvc3R5bGVzIiwic291cmNlcyI6WyJ2YXJzLnNjc3MiLCJidXR0b25zLnNjc3MiLCJlbGVtZW50cy5zY3NzIiwiaW5wdXRzLnNjc3MiLCJtZXNzYWdlcy5zY3NzIiwibW9kYWwuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNiRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUMzQ0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFNRTtFQUNBOztBQU5BO0VBQ0U7RUFDQTs7QUFPSjtFQUNFOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTs7O0FDdEZGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUM3REY7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FDN0JGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7O0FBTVI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSIsInNvdXJjZXNDb250ZW50IjpbIi5kZWVwbGliLXN1YnNjcmVlbixcbi5kZWVwbGliLW1vZGFsIHtcbiAgLS1kZWVwbGliLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXRtZC1tYWluLCB3aGl0ZSk7XG4gIC0tZGVlcGxpYi1lbGVtZW50LWNvbG9yOiB2YXIoLS10bWQtZWxlbWVudCwgd2hpdGUpO1xuICAtLWRlZXBsaWItZWxlbWVudC1ob3Zlci1jb2xvcjogdmFyKC0tdG1kLWVsZW1lbnQtaG92ZXIsIGN5YW4pO1xuICAtLWRlZXBsaWItYmxvY2tlZC1jb2xvcjogdmFyKC0tdG1kLWJsb2NrZWQsIHJlZCk7XG4gIC0tZGVlcGxpYi10ZXh0LWNvbG9yOiB2YXIoLS10bWQtdGV4dCwgYmxhY2spO1xuICAtLWRlZXBsaWItaWNvbi1jb2xvcjogdmFyKC0tdG1kLWFjY2VudCwgd2hpdGUpO1xuICAtLWRlZXBsaWItaWNvbi1ob3Zlci1jb2xvcjogdmFyKC0tdG1kLWFjY2VudC1ob3ZlciwgY3lhbik7XG4gIC0tZGVlcGxpYi1ib3JkZXItY29sb3I6IHZhcigtLXRtZC1hY2NlbnQsIGJsYWNrKTtcbiAgLS1kZWVwbGliLWJvcmRlci13aWR0aDogbWluKDAuMnZoLCAwLjF2dyk7XG4gIC0tZGVlcGxpYi1ib3JkZXItd2lkdGg6IG1pbigwLjJkdmgsIDAuMWR2dyk7XG4gIC0tZGVlcGxpYi1ib3JkZXItcmFkaXVzOiBtaW4oMXZoLCAwLjV2dyk7XG4gIC0tZGVlcGxpYi1ib3JkZXItcmFkaXVzOiBtaW4oMWR2aCwgMC41ZHZ3KTtcbn1cbiIsIi5kZWVwbGliLWJ1dHRvbiB7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZGVlcGxpYi1idXR0b24uYnV0dG9uLXN0eWxpbmcsXG4uZGVlcGxpYi1idXR0b24uYnV0dG9uLXN0eWxpbmc6OmJlZm9yZSB7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG59XG5cbi5kZWVwbGliLWJ1dHRvbiBpbWcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDAlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWljb24tY29sb3IpO1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IG11bHRpcGx5O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIG1hc2stcG9zaXRpb246IGxlZnQ7XG4gIG1hc2stc2l6ZTogY29udGFpbjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWltYWdlKTtcbiAgbWFzay1pbWFnZTogdmFyKC0taW1hZ2UpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmRlZXBsaWItYnV0dG9uOmhvdmVyIGltZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRlZXBsaWItaWNvbi1ob3Zlci1jb2xvcik7XG59XG5cbi5kZWVwbGliLWJ1dHRvbiAuYnV0dG9uLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogbWluKDMuNmR2aCwgMS44ZHZ3KTtcbn1cblxuLmRlZXBsaWItYnV0dG9uIC5idXR0b24tdG9vbHRpcCB7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG59XG4iLCIjZGVlcGxpYi1wYWdlLWxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbiNkZWVwbGliLXN1YnNjcmVlbi10aXRsZSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xufVxuXG4uZGVlcGxpYi10ZXh0IHtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG59XG5cbi5kZWVwbGliLXN1YnNjcmVlbiB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5kZWVwbGliLXN1YnNjcmVlbiAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuLmRlZXBsaWItc2V0dGluZ3Mge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWF1dG8tcm93czogbWluLWNvbnRlbnQ7XG4gIHBhZGRpbmc6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG4gIGdhcDogMC4zZW07XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLmRlZXBsaWItbWlzYyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgZ2FwOiBtaW4oMXZoLCAwLjV2dyk7XG59XG5cbi5kZWVwbGliLXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWVsZW1lbnQtY29sb3IpO1xuICBjb2xvcjogdmFyKC0tZGVlcGxpYi10ZXh0LWNvbG9yKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG4gIHBhZGRpbmc6IG1pbigxdmgsIDAuNXZ3KTtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgYm9yZGVyOiBtaW4oMC4ydmgsIDAuMXZ3KSBzb2xpZCB2YXIoLS1kZWVwbGliLWJvcmRlci1jb2xvcik7XG59XG5cbi5kZWVwbGliLW92ZXJmbG93LWJveCB7XG4gIGJvcmRlcjogdmFyKC0tZGVlcGxpYi1ib3JkZXItY29sb3IpIHNvbGlkIHZhcigtLWRlZXBsaWItYm9yZGVyLXdpZHRoKTtcbn1cblxuLmRlZXBsaWItcHJldi1uZXh0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBnYXA6IG1pbigyZHZoLCAxZHZ3KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGVlcGxpYi1lbGVtZW50LWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG4gIGJvcmRlcjogbWluKDAuMnZoLCAwLjF2dykgc29saWQgdmFyKC0tZGVlcGxpYi1ib3JkZXItY29sb3IpO1xuXG4gIC5kZWVwbGliLXByZXYtbmV4dC1idXR0b24ge1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGVlcGxpYi1lbGVtZW50LWhvdmVyLWNvbG9yKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXBsaWItYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuICAgIFxuICAgIGhlaWdodDogMTAwJTtcbiAgICBhc3BlY3QtcmF0aW86IDE7XG4gIH1cblxuICAuZGVlcGxpYi1wcmV2LW5leHQtbGFiZWwge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuI2RlZXBsaWItbmF2LW1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBnYXA6IG1pbigyZHZoLCAxZHZ3KTtcbn0iLCIuZGVlcGxpYi1jaGVja2JveC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuM2VtO1xufVxuXG4uZGVlcGxpYi1jaGVja2JveC1jb250YWluZXIgaW5wdXQuZGVlcGxpYi1pbnB1dCB7XG4gIHdpZHRoOiBtaW4oNXZoLCAyLjV2dyk7XG4gIGhlaWdodDogbWluKDV2aCwgMi41dncpO1xuICBib3JkZXItcmFkaXVzOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xufVxuXG4uZGVlcGxpYi1jaGVja2JveC1jb250YWluZXIgaW5wdXQuZGVlcGxpYi1pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZDo6YmVmb3JlIHtcbiAgd2lkdGg6IDgwJTtcbiAgaGVpZ2h0OiA4MCU7XG59XG5cbi5kZWVwbGliLWlucHV0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zZW07XG59XG5cbi5kZWVwbGliLWlucHV0LWNvbnRhaW5lcjpoYXMobGFiZWwuZGVlcGxpYi10ZXh0KSB7XG4gIG1hcmdpbi10b3A6IG1pbigxdmgsIDAuNXZ3KTtcbn1cblxuLmRlZXBsaWItaW5wdXQtY29udGFpbmVyIGlucHV0LmRlZXBsaWItaW5wdXQge1xuICBmb250LXNpemU6IDAuNmVtO1xuICBwYWRkaW5nOiA1cHggMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogbWluKDF2aCwgMC41dncpO1xuICBwYWRkaW5nLXJpZ2h0OiBtaW4oMXZoLCAwLjV2dyk7XG4gIG1pbi1oZWlnaHQ6IG1pbig1ZHZoLCAyLjVkdncpO1xuICBib3JkZXItcmFkaXVzOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xufVxuXG5cbi5kZWVwbGliLWlucHV0LWNvbnRhaW5lciBpbnB1dC5kZWVwbGliLWlucHV0W3R5cGU9XCJjb2xvclwiXSB7XG4gIHBhZGRpbmc6IDBweDtcbiAgd2lkdGg6IG1pbig1dmgsIDIuNXZ3KTtcbiAgaGVpZ2h0OiBtaW4oNXZoLCAyLjV2dyk7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLmRlZXBsaWItaW5wdXQtY29udGFpbmVyIGlucHV0LmRlZXBsaWItaW5wdXRbdHlwZT1cImNvbG9yXCJdOmRpc2FibGVkIHtcbiAgYm9yZGVyOiB2YXIoLS1kZWVwbGliLWJsb2NrZWQtY29sb3IpIHNvbGlkIHZhcigtLWRlZXBsaWItYm9yZGVyLXdpZHRoKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG5pbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuXG5pbnB1dFt0eXBlPW51bWJlcl0ge1xuICBhcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xufVxuIiwiLmRlZXBsaWItaGlnaGxpZ2h0LXRleHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHJnYigyMDMsIDE4NSwgMjMpO1xufVxuXG4jVGV4dEFyZWFDaGF0TG9nW2RhdGEtY29sb3J0aGVtZT0nZGFyayddIGRpdi5DaGF0TWVzc2FnZS5kZWVwbGliLW1lc3NhZ2UsXG4jVGV4dEFyZWFDaGF0TG9nW2RhdGEtY29sb3J0aGVtZT0nZGFyazInXSBkaXYuQ2hhdE1lc3NhZ2UuZGVlcGxpYi1tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGVlcGxpYi1lbGVtZW50LWNvbG9yKTtcbiAgYm9yZGVyOiBtaW4oMC4yZHZoLCAwLjFkdncpIHNvbGlkIHZhcigtLWRlZXBsaWItYm9yZGVyLWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG59XG5cbiNUZXh0QXJlYUNoYXRMb2cgZGl2LkNoYXRNZXNzYWdlLmRlZXBsaWItbWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIGJvcmRlcjogbWluKDAuMmR2aCwgMC4xZHZ3KSBzb2xpZCAjNDQwMTcxO1xuICBjb2xvcjogIzExMTtcbiAgcGFkZGluZy1sZWZ0OiBtaW4oMC42ZHZoLCAwLjNkdncpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxuI1RleHRBcmVhQ2hhdExvZ1tkYXRhLWNvbG9ydGhlbWU9J2RhcmsnXSBkaXYuQ2hhdE1lc3NhZ2UuZGVlcGxpYi1tZXNzYWdlIGEsXG4jVGV4dEFyZWFDaGF0TG9nW2RhdGEtY29sb3J0aGVtZT0nZGFyazInXSBkaXYuQ2hhdE1lc3NhZ2UuZGVlcGxpYi1tZXNzYWdlIGEge1xuICBjb2xvcjogdmFyKC0tZGVlcGxpYi10ZXh0LWNvbG9yKTtcbn1cblxuI1RleHRBcmVhQ2hhdExvZyBkaXYuQ2hhdE1lc3NhZ2UuZGVlcGxpYi1tZXNzYWdlIGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzExMTtcbn1cbiIsIi5kZWVwbGliLW1vZGFsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDEwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHotaW5kZXg6IDEwMDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNWVtO1xuICB3aWR0aDogbWF4KDUwZHZ3LCAyNWR2aCk7XG4gIGZvbnQtc2l6ZTogbWluKDRkdmgsIDJkdncpO1xuICBwYWRkaW5nOiBtaW4oMmR2aCwgMWR2dyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRlZXBsaWItZWxlbWVudC1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjJkdmgsIDAuNmR2dyk7XG4gIGJvcmRlcjogbWluKDAuMmR2aCwgMC4xZHZ3KSBzb2xpZCB2YXIoLS1kZWVwbGliLWJvcmRlci1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xuXG4gIC5kZWVwbGliLW1vZGFsLWlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IG1pbigyLjZkdmgsIDEuOGR2dyk7XG4gICAgYm9yZGVyLXJhZGl1czogbWluKDEuMGR2aCwgMC41ZHZ3KTtcbiAgICBwYWRkaW5nOiBtaW4oMWR2aCwgMC41ZHZ3KTtcbiAgfVxuXG4gIGlucHV0LmRlZXBsaWItbW9kYWwtaW5wdXQge1xuICAgIG1heC13aWR0aDogbWF4KDUwZHZoLCAyNWR2dyk7XG4gIH1cblxuICAuZGVlcGxpYi1tb2RhbC1idXR0b24tY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDAuNWVtO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLmRlZXBsaWItYnV0dG9uIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBwYWRkaW5nOiBtaW4oMC40dmgsIDAuMnZ3KSBtaW4oMnZoLCAxdncpO1xuXG4gICAgICAuYnV0dG9uLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5kZWVwbGliLW1vZGFsLWJsb2NrZXIge1xuICB6LWluZGV4OiAxMDAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMGR2dztcbiAgaGVpZ2h0OiAxMDBkdmg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cbiJdfQ== */`;
|
|
842
|
+
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL21lZGlhL05WTUUvU3R1ZmYvQ29kZS9CQy9CQy1EZWVwTGliL3NyYy9zdHlsZXMiLCJzb3VyY2VzIjpbInZhcnMuc2NzcyIsImJ1dHRvbnMuc2NzcyIsImVsZW1lbnRzLnNjc3MiLCJpbnB1dHMuc2NzcyIsIm1lc3NhZ2VzLnNjc3MiLCJtb2RhbC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQ2JGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQzNDRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQU1FO0VBQ0E7O0FBTkE7RUFDRTtFQUNBOztBQU9KO0VBQ0U7OztBQUlKO0VBQ0U7RUFDQTtFQUNBOzs7QUN0RkY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQzdERjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUM3QkY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOzs7QUFNUjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBIiwic291cmNlc0NvbnRlbnQiOlsiLmRlZXBsaWItc3Vic2NyZWVuLFxuLmRlZXBsaWItbW9kYWwge1xuICAtLWRlZXBsaWItYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdG1kLW1haW4sIHdoaXRlKTtcbiAgLS1kZWVwbGliLWVsZW1lbnQtY29sb3I6IHZhcigtLXRtZC1lbGVtZW50LCB3aGl0ZSk7XG4gIC0tZGVlcGxpYi1lbGVtZW50LWhvdmVyLWNvbG9yOiB2YXIoLS10bWQtZWxlbWVudC1ob3ZlciwgY3lhbik7XG4gIC0tZGVlcGxpYi1ibG9ja2VkLWNvbG9yOiB2YXIoLS10bWQtYmxvY2tlZCwgcmVkKTtcbiAgLS1kZWVwbGliLXRleHQtY29sb3I6IHZhcigtLXRtZC10ZXh0LCBibGFjayk7XG4gIC0tZGVlcGxpYi1pY29uLWNvbG9yOiB2YXIoLS10bWQtYWNjZW50LCBibGFjayk7XG4gIC0tZGVlcGxpYi1pY29uLWhvdmVyLWNvbG9yOiB2YXIoLS10bWQtYWNjZW50LWhvdmVyLCBibGFjayk7XG4gIC0tZGVlcGxpYi1ib3JkZXItY29sb3I6IHZhcigtLXRtZC1hY2NlbnQsIGJsYWNrKTtcbiAgLS1kZWVwbGliLWJvcmRlci13aWR0aDogbWluKDAuMnZoLCAwLjF2dyk7XG4gIC0tZGVlcGxpYi1ib3JkZXItd2lkdGg6IG1pbigwLjJkdmgsIDAuMWR2dyk7XG4gIC0tZGVlcGxpYi1ib3JkZXItcmFkaXVzOiBtaW4oMXZoLCAwLjV2dyk7XG4gIC0tZGVlcGxpYi1ib3JkZXItcmFkaXVzOiBtaW4oMWR2aCwgMC41ZHZ3KTtcbn1cbiIsIi5kZWVwbGliLWJ1dHRvbiB7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZGVlcGxpYi1idXR0b24uYnV0dG9uLXN0eWxpbmcsXG4uZGVlcGxpYi1idXR0b24uYnV0dG9uLXN0eWxpbmc6OmJlZm9yZSB7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG59XG5cbi5kZWVwbGliLWJ1dHRvbiBpbWcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDAlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWljb24tY29sb3IpO1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IG11bHRpcGx5O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIG1hc2stcG9zaXRpb246IGxlZnQ7XG4gIG1hc2stc2l6ZTogY29udGFpbjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWltYWdlKTtcbiAgbWFzay1pbWFnZTogdmFyKC0taW1hZ2UpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmRlZXBsaWItYnV0dG9uOmhvdmVyIGltZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRlZXBsaWItaWNvbi1ob3Zlci1jb2xvcik7XG59XG5cbi5kZWVwbGliLWJ1dHRvbiAuYnV0dG9uLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogbWluKDMuNmR2aCwgMS44ZHZ3KTtcbn1cblxuLmRlZXBsaWItYnV0dG9uIC5idXR0b24tdG9vbHRpcCB7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG59XG4iLCIjZGVlcGxpYi1wYWdlLWxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbiNkZWVwbGliLXN1YnNjcmVlbi10aXRsZSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xufVxuXG4uZGVlcGxpYi10ZXh0IHtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG59XG5cbi5kZWVwbGliLXN1YnNjcmVlbiB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5kZWVwbGliLXN1YnNjcmVlbiAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuLmRlZXBsaWItc2V0dGluZ3Mge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWF1dG8tcm93czogbWluLWNvbnRlbnQ7XG4gIHBhZGRpbmc6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG4gIGdhcDogMC4zZW07XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLmRlZXBsaWItbWlzYyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgZ2FwOiBtaW4oMXZoLCAwLjV2dyk7XG59XG5cbi5kZWVwbGliLXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWVsZW1lbnQtY29sb3IpO1xuICBjb2xvcjogdmFyKC0tZGVlcGxpYi10ZXh0LWNvbG9yKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG4gIHBhZGRpbmc6IG1pbigxdmgsIDAuNXZ3KTtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgYm9yZGVyOiBtaW4oMC4ydmgsIDAuMXZ3KSBzb2xpZCB2YXIoLS1kZWVwbGliLWJvcmRlci1jb2xvcik7XG59XG5cbi5kZWVwbGliLW92ZXJmbG93LWJveCB7XG4gIGJvcmRlcjogdmFyKC0tZGVlcGxpYi1ib3JkZXItY29sb3IpIHNvbGlkIHZhcigtLWRlZXBsaWItYm9yZGVyLXdpZHRoKTtcbn1cblxuLmRlZXBsaWItcHJldi1uZXh0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBnYXA6IG1pbigyZHZoLCAxZHZ3KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGVlcGxpYi1lbGVtZW50LWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG4gIGJvcmRlcjogbWluKDAuMnZoLCAwLjF2dykgc29saWQgdmFyKC0tZGVlcGxpYi1ib3JkZXItY29sb3IpO1xuXG4gIC5kZWVwbGliLXByZXYtbmV4dC1idXR0b24ge1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGVlcGxpYi1lbGVtZW50LWhvdmVyLWNvbG9yKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXBsaWItYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuICAgIFxuICAgIGhlaWdodDogMTAwJTtcbiAgICBhc3BlY3QtcmF0aW86IDE7XG4gIH1cblxuICAuZGVlcGxpYi1wcmV2LW5leHQtbGFiZWwge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuI2RlZXBsaWItbmF2LW1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBnYXA6IG1pbigyZHZoLCAxZHZ3KTtcbn0iLCIuZGVlcGxpYi1jaGVja2JveC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuM2VtO1xufVxuXG4uZGVlcGxpYi1jaGVja2JveC1jb250YWluZXIgaW5wdXQuZGVlcGxpYi1pbnB1dCB7XG4gIHdpZHRoOiBtaW4oNXZoLCAyLjV2dyk7XG4gIGhlaWdodDogbWluKDV2aCwgMi41dncpO1xuICBib3JkZXItcmFkaXVzOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xufVxuXG4uZGVlcGxpYi1jaGVja2JveC1jb250YWluZXIgaW5wdXQuZGVlcGxpYi1pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZDo6YmVmb3JlIHtcbiAgd2lkdGg6IDgwJTtcbiAgaGVpZ2h0OiA4MCU7XG59XG5cbi5kZWVwbGliLWlucHV0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zZW07XG59XG5cbi5kZWVwbGliLWlucHV0LWNvbnRhaW5lcjpoYXMobGFiZWwuZGVlcGxpYi10ZXh0KSB7XG4gIG1hcmdpbi10b3A6IG1pbigxdmgsIDAuNXZ3KTtcbn1cblxuLmRlZXBsaWItaW5wdXQtY29udGFpbmVyIGlucHV0LmRlZXBsaWItaW5wdXQge1xuICBmb250LXNpemU6IDAuNmVtO1xuICBwYWRkaW5nOiA1cHggMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogbWluKDF2aCwgMC41dncpO1xuICBwYWRkaW5nLXJpZ2h0OiBtaW4oMXZoLCAwLjV2dyk7XG4gIG1pbi1oZWlnaHQ6IG1pbig1ZHZoLCAyLjVkdncpO1xuICBib3JkZXItcmFkaXVzOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xufVxuXG5cbi5kZWVwbGliLWlucHV0LWNvbnRhaW5lciBpbnB1dC5kZWVwbGliLWlucHV0W3R5cGU9XCJjb2xvclwiXSB7XG4gIHBhZGRpbmc6IDBweDtcbiAgd2lkdGg6IG1pbig1dmgsIDIuNXZ3KTtcbiAgaGVpZ2h0OiBtaW4oNXZoLCAyLjV2dyk7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLmRlZXBsaWItaW5wdXQtY29udGFpbmVyIGlucHV0LmRlZXBsaWItaW5wdXRbdHlwZT1cImNvbG9yXCJdOmRpc2FibGVkIHtcbiAgYm9yZGVyOiB2YXIoLS1kZWVwbGliLWJsb2NrZWQtY29sb3IpIHNvbGlkIHZhcigtLWRlZXBsaWItYm9yZGVyLXdpZHRoKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG5pbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuXG5pbnB1dFt0eXBlPW51bWJlcl0ge1xuICBhcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xufVxuIiwiLmRlZXBsaWItaGlnaGxpZ2h0LXRleHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHJnYigyMDMsIDE4NSwgMjMpO1xufVxuXG4jVGV4dEFyZWFDaGF0TG9nW2RhdGEtY29sb3J0aGVtZT0nZGFyayddIGRpdi5DaGF0TWVzc2FnZS5kZWVwbGliLW1lc3NhZ2UsXG4jVGV4dEFyZWFDaGF0TG9nW2RhdGEtY29sb3J0aGVtZT0nZGFyazInXSBkaXYuQ2hhdE1lc3NhZ2UuZGVlcGxpYi1tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGVlcGxpYi1lbGVtZW50LWNvbG9yKTtcbiAgYm9yZGVyOiBtaW4oMC4yZHZoLCAwLjFkdncpIHNvbGlkIHZhcigtLWRlZXBsaWItYm9yZGVyLWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG59XG5cbiNUZXh0QXJlYUNoYXRMb2cgZGl2LkNoYXRNZXNzYWdlLmRlZXBsaWItbWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIGJvcmRlcjogbWluKDAuMmR2aCwgMC4xZHZ3KSBzb2xpZCAjNDQwMTcxO1xuICBjb2xvcjogIzExMTtcbiAgcGFkZGluZy1sZWZ0OiBtaW4oMC42ZHZoLCAwLjNkdncpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxuI1RleHRBcmVhQ2hhdExvZ1tkYXRhLWNvbG9ydGhlbWU9J2RhcmsnXSBkaXYuQ2hhdE1lc3NhZ2UuZGVlcGxpYi1tZXNzYWdlIGEsXG4jVGV4dEFyZWFDaGF0TG9nW2RhdGEtY29sb3J0aGVtZT0nZGFyazInXSBkaXYuQ2hhdE1lc3NhZ2UuZGVlcGxpYi1tZXNzYWdlIGEge1xuICBjb2xvcjogdmFyKC0tZGVlcGxpYi10ZXh0LWNvbG9yKTtcbn1cblxuI1RleHRBcmVhQ2hhdExvZyBkaXYuQ2hhdE1lc3NhZ2UuZGVlcGxpYi1tZXNzYWdlIGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzExMTtcbn1cbiIsIi5kZWVwbGliLW1vZGFsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDEwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHotaW5kZXg6IDEwMDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNWVtO1xuICB3aWR0aDogbWF4KDUwZHZ3LCAyNWR2aCk7XG4gIGZvbnQtc2l6ZTogbWluKDRkdmgsIDJkdncpO1xuICBwYWRkaW5nOiBtaW4oMmR2aCwgMWR2dyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRlZXBsaWItZWxlbWVudC1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjJkdmgsIDAuNmR2dyk7XG4gIGJvcmRlcjogbWluKDAuMmR2aCwgMC4xZHZ3KSBzb2xpZCB2YXIoLS1kZWVwbGliLWJvcmRlci1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xuXG4gIC5kZWVwbGliLW1vZGFsLWlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IG1pbigyLjZkdmgsIDEuOGR2dyk7XG4gICAgYm9yZGVyLXJhZGl1czogbWluKDEuMGR2aCwgMC41ZHZ3KTtcbiAgICBwYWRkaW5nOiBtaW4oMWR2aCwgMC41ZHZ3KTtcbiAgfVxuXG4gIGlucHV0LmRlZXBsaWItbW9kYWwtaW5wdXQge1xuICAgIG1heC13aWR0aDogbWF4KDUwZHZoLCAyNWR2dyk7XG4gIH1cblxuICAuZGVlcGxpYi1tb2RhbC1idXR0b24tY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDAuNWVtO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLmRlZXBsaWItYnV0dG9uIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBwYWRkaW5nOiBtaW4oMC40dmgsIDAuMnZ3KSBtaW4oMnZoLCAxdncpO1xuXG4gICAgICAuYnV0dG9uLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5kZWVwbGliLW1vZGFsLWJsb2NrZXIge1xuICB6LWluZGV4OiAxMDAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMGR2dztcbiAgaGVpZ2h0OiAxMDBkdmg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cbiJdfQ== */`;
|
|
739
843
|
|
|
740
844
|
// src/base/initialization.ts
|
|
741
845
|
var modStorage;
|
|
@@ -769,11 +873,7 @@ async function init(options) {
|
|
|
769
873
|
const MOD_VERSION = ModSdkManager.ModInfo.version;
|
|
770
874
|
if (window[MOD_NAME + "Loaded"]) return;
|
|
771
875
|
modStorage.load();
|
|
772
|
-
|
|
773
|
-
await Localization.init({
|
|
774
|
-
pathToTranslationsFolder: options.pathToTranslationsFolder
|
|
775
|
-
});
|
|
776
|
-
}
|
|
876
|
+
await Localization.init(options.translationOptions);
|
|
777
877
|
if (options.modules && !initModules(options.modules)) {
|
|
778
878
|
unloadMod();
|
|
779
879
|
return;
|
|
@@ -883,13 +983,12 @@ var GUI = class _GUI extends BaseModule {
|
|
|
883
983
|
} else {
|
|
884
984
|
this._currentSubscreen = subscreen;
|
|
885
985
|
}
|
|
886
|
-
PreferenceMessage = "";
|
|
887
|
-
PreferencePageCurrent = 1;
|
|
888
986
|
if (this._currentSubscreen) {
|
|
889
987
|
this._currentSubscreen.load();
|
|
890
988
|
this._currentSubscreen.resize(true);
|
|
891
989
|
}
|
|
892
990
|
}
|
|
991
|
+
/** Creates the GUI instance and initializes the main menu. */
|
|
893
992
|
constructor(modButtonOptions) {
|
|
894
993
|
super();
|
|
895
994
|
if (_GUI.instance) {
|
|
@@ -1244,8 +1343,8 @@ function hasSetter(obj, prop) {
|
|
|
1244
1343
|
}
|
|
1245
1344
|
__name(hasSetter, "hasSetter");
|
|
1246
1345
|
|
|
1247
|
-
// src/utilities/elements/
|
|
1248
|
-
var
|
|
1346
|
+
// src/utilities/elements/elements.ts
|
|
1347
|
+
var advElement = {
|
|
1249
1348
|
createButton: elementCreateButton,
|
|
1250
1349
|
createCheckbox: elementCreateCheckbox,
|
|
1251
1350
|
createInput: elementCreateInput,
|
|
@@ -1484,7 +1583,7 @@ function elementPrevNext(options) {
|
|
|
1484
1583
|
id: options.id
|
|
1485
1584
|
},
|
|
1486
1585
|
children: [
|
|
1487
|
-
|
|
1586
|
+
advElement.createButton({
|
|
1488
1587
|
id: `deeplib-prev-next-${options.id}-prev-button`,
|
|
1489
1588
|
image: `${PUBLIC_URL}/dl_images/arrow_left.svg`,
|
|
1490
1589
|
onClick: /* @__PURE__ */ __name(() => {
|
|
@@ -1506,14 +1605,14 @@ function elementPrevNext(options) {
|
|
|
1506
1605
|
}
|
|
1507
1606
|
}
|
|
1508
1607
|
}),
|
|
1509
|
-
|
|
1608
|
+
advElement.createLabel({
|
|
1510
1609
|
id: `${options.id}-label`,
|
|
1511
1610
|
label: options.initialLabel,
|
|
1512
1611
|
htmlOptions: {
|
|
1513
1612
|
classList: ["deeplib-prev-next-label"]
|
|
1514
1613
|
}
|
|
1515
1614
|
}),
|
|
1516
|
-
|
|
1615
|
+
advElement.createButton({
|
|
1517
1616
|
id: `deeplib-prev-next-${options.id}-next-button`,
|
|
1518
1617
|
image: `${PUBLIC_URL}/dl_images/arrow_right.svg`,
|
|
1519
1618
|
onClick: /* @__PURE__ */ __name(() => {
|
|
@@ -1622,7 +1721,7 @@ var Modal = class _Modal {
|
|
|
1622
1721
|
container.classList.add("deeplib-modal-button-container");
|
|
1623
1722
|
const btns = this.opts.buttons ? [...this.opts.buttons] : [];
|
|
1624
1723
|
btns.forEach((b) => {
|
|
1625
|
-
const btn =
|
|
1724
|
+
const btn = advElement.createButton({
|
|
1626
1725
|
label: b.text,
|
|
1627
1726
|
id: `deeplib-modal-${b.action}`,
|
|
1628
1727
|
disabled: b.disabled,
|
|
@@ -1725,7 +1824,7 @@ var MainMenu = class _MainMenu extends BaseSubscreen {
|
|
|
1725
1824
|
return;
|
|
1726
1825
|
}
|
|
1727
1826
|
super.load();
|
|
1728
|
-
const exitButton =
|
|
1827
|
+
const exitButton = advElement.createButton({
|
|
1729
1828
|
id: "exit",
|
|
1730
1829
|
size: [90, 90],
|
|
1731
1830
|
image: `${PUBLIC_URL}/dl_images/exit.svg`,
|
|
@@ -1740,7 +1839,7 @@ var MainMenu = class _MainMenu extends BaseSubscreen {
|
|
|
1740
1839
|
}
|
|
1741
1840
|
for (const screen of this.subscreens) {
|
|
1742
1841
|
if (screen.name == "mainmenu") continue;
|
|
1743
|
-
const button =
|
|
1842
|
+
const button = advElement.createButton({
|
|
1744
1843
|
id: `${screen.name}-button`,
|
|
1745
1844
|
image: screen.icon,
|
|
1746
1845
|
label: getText(`mainmenu.button.${screen.name}`),
|
|
@@ -1749,12 +1848,12 @@ var MainMenu = class _MainMenu extends BaseSubscreen {
|
|
|
1749
1848
|
}, "onClick"),
|
|
1750
1849
|
size: [null, 90]
|
|
1751
1850
|
});
|
|
1752
|
-
|
|
1851
|
+
layout.appendToSettingsDiv(button);
|
|
1753
1852
|
}
|
|
1754
|
-
const miscDiv =
|
|
1755
|
-
|
|
1853
|
+
const miscDiv = layout.createMiscDiv();
|
|
1854
|
+
layout.appendToSubscreen(miscDiv);
|
|
1756
1855
|
if (_MainMenu.options.wikiLink) {
|
|
1757
|
-
const wikiButton =
|
|
1856
|
+
const wikiButton = advElement.createButton({
|
|
1758
1857
|
id: "deeplib-wiki-button",
|
|
1759
1858
|
image: `${PUBLIC_URL}/dl_images/notebook.svg`,
|
|
1760
1859
|
label: getText("mainmenu.button.wiki"),
|
|
@@ -1763,10 +1862,10 @@ var MainMenu = class _MainMenu extends BaseSubscreen {
|
|
|
1763
1862
|
}, "onClick"),
|
|
1764
1863
|
size: [null, 80]
|
|
1765
1864
|
});
|
|
1766
|
-
|
|
1865
|
+
layout.appendToMiscDiv(wikiButton);
|
|
1767
1866
|
}
|
|
1768
1867
|
if (_MainMenu.options.repoLink) {
|
|
1769
|
-
const repoButton =
|
|
1868
|
+
const repoButton = advElement.createButton({
|
|
1770
1869
|
id: "deeplib-repo-button",
|
|
1771
1870
|
image: `${PUBLIC_URL}/dl_images/git.svg`,
|
|
1772
1871
|
label: getText("mainmenu.button.repo"),
|
|
@@ -1775,10 +1874,10 @@ var MainMenu = class _MainMenu extends BaseSubscreen {
|
|
|
1775
1874
|
}, "onClick"),
|
|
1776
1875
|
size: [null, 80]
|
|
1777
1876
|
});
|
|
1778
|
-
|
|
1877
|
+
layout.appendToMiscDiv(repoButton);
|
|
1779
1878
|
}
|
|
1780
1879
|
if (_MainMenu.options.resetSubscreen) {
|
|
1781
|
-
const resetButton =
|
|
1880
|
+
const resetButton = advElement.createButton({
|
|
1782
1881
|
id: "deeplib-reset-button",
|
|
1783
1882
|
image: `${PUBLIC_URL}/dl_images/trash_bin.svg`,
|
|
1784
1883
|
label: getText("mainmenu.button.reset"),
|
|
@@ -1787,10 +1886,10 @@ var MainMenu = class _MainMenu extends BaseSubscreen {
|
|
|
1787
1886
|
}, "onClick"),
|
|
1788
1887
|
size: [null, 80]
|
|
1789
1888
|
});
|
|
1790
|
-
|
|
1889
|
+
layout.appendToMiscDiv(resetButton);
|
|
1791
1890
|
}
|
|
1792
1891
|
if (_MainMenu.options.importExportSubscreen) {
|
|
1793
|
-
const importExportButton =
|
|
1892
|
+
const importExportButton = advElement.createButton({
|
|
1794
1893
|
id: "deeplib-import-export-button",
|
|
1795
1894
|
image: `${PUBLIC_URL}/dl_images/transfer.svg`,
|
|
1796
1895
|
label: getText("mainmenu.button.import_export"),
|
|
@@ -1799,10 +1898,10 @@ var MainMenu = class _MainMenu extends BaseSubscreen {
|
|
|
1799
1898
|
}, "onClick"),
|
|
1800
1899
|
size: [null, 80]
|
|
1801
1900
|
});
|
|
1802
|
-
|
|
1901
|
+
layout.appendToMiscDiv(importExportButton);
|
|
1803
1902
|
}
|
|
1804
1903
|
if (IS_DEBUG) {
|
|
1805
|
-
const debugButton =
|
|
1904
|
+
const debugButton = advElement.createButton({
|
|
1806
1905
|
id: "deeplib-debug-button",
|
|
1807
1906
|
image: `${PUBLIC_URL}/dl_images/bug.svg`,
|
|
1808
1907
|
onClick: /* @__PURE__ */ __name(() => {
|
|
@@ -1851,7 +1950,7 @@ var GuiImportExport = class extends BaseSubscreen {
|
|
|
1851
1950
|
}
|
|
1852
1951
|
load() {
|
|
1853
1952
|
super.load();
|
|
1854
|
-
const importFromFileButton =
|
|
1953
|
+
const importFromFileButton = advElement.createButton({
|
|
1855
1954
|
id: "deeplib-import-file-button",
|
|
1856
1955
|
size: [600, 90],
|
|
1857
1956
|
image: `${PUBLIC_URL}/dl_images/file_import.svg`,
|
|
@@ -1860,8 +1959,8 @@ var GuiImportExport = class extends BaseSubscreen {
|
|
|
1860
1959
|
}, "onClick"),
|
|
1861
1960
|
label: getText("import-export.button.import_file")
|
|
1862
1961
|
});
|
|
1863
|
-
|
|
1864
|
-
const exportToFileButton =
|
|
1962
|
+
layout.appendToSettingsDiv(importFromFileButton);
|
|
1963
|
+
const exportToFileButton = advElement.createButton({
|
|
1865
1964
|
id: "deeplib-export-file-button",
|
|
1866
1965
|
size: [600, 90],
|
|
1867
1966
|
image: `${PUBLIC_URL}/dl_images/file_export.svg`,
|
|
@@ -1870,8 +1969,8 @@ var GuiImportExport = class extends BaseSubscreen {
|
|
|
1870
1969
|
}, "onClick"),
|
|
1871
1970
|
label: getText("import-export.button.export_file")
|
|
1872
1971
|
});
|
|
1873
|
-
|
|
1874
|
-
const importFromClipboardButton =
|
|
1972
|
+
layout.appendToSettingsDiv(exportToFileButton);
|
|
1973
|
+
const importFromClipboardButton = advElement.createButton({
|
|
1875
1974
|
id: "deeplib-import-clipboard-button",
|
|
1876
1975
|
size: [600, 90],
|
|
1877
1976
|
image: `${PUBLIC_URL}/dl_images/clipboard_import.svg`,
|
|
@@ -1880,8 +1979,8 @@ var GuiImportExport = class extends BaseSubscreen {
|
|
|
1880
1979
|
}, "onClick"),
|
|
1881
1980
|
label: getText("import-export.button.import_clipboard")
|
|
1882
1981
|
});
|
|
1883
|
-
|
|
1884
|
-
const exportToClipboardButton =
|
|
1982
|
+
layout.appendToSettingsDiv(importFromClipboardButton);
|
|
1983
|
+
const exportToClipboardButton = advElement.createButton({
|
|
1885
1984
|
id: "deeplib-export-clipboard-button",
|
|
1886
1985
|
size: [600, 90],
|
|
1887
1986
|
image: `${PUBLIC_URL}/dl_images/clipboard_export.svg`,
|
|
@@ -1890,7 +1989,7 @@ var GuiImportExport = class extends BaseSubscreen {
|
|
|
1890
1989
|
}, "onClick"),
|
|
1891
1990
|
label: getText("import-export.button.export_clipboard")
|
|
1892
1991
|
});
|
|
1893
|
-
|
|
1992
|
+
layout.appendToSettingsDiv(exportToClipboardButton);
|
|
1894
1993
|
}
|
|
1895
1994
|
resize() {
|
|
1896
1995
|
super.resize();
|
|
@@ -2105,7 +2204,7 @@ var ModStorage = class _ModStorage {
|
|
|
2105
2204
|
}
|
|
2106
2205
|
};
|
|
2107
2206
|
|
|
2108
|
-
// src/utilities/elements/
|
|
2207
|
+
// src/utilities/elements/helpers.ts
|
|
2109
2208
|
var domUtil = {
|
|
2110
2209
|
autoSetPosition,
|
|
2111
2210
|
autoSetSize,
|
|
@@ -2166,12 +2265,12 @@ function hasOverflow(el) {
|
|
|
2166
2265
|
}
|
|
2167
2266
|
__name(hasOverflow, "hasOverflow");
|
|
2168
2267
|
|
|
2169
|
-
// src/utilities/elements/
|
|
2170
|
-
var
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2268
|
+
// src/utilities/elements/layout.ts
|
|
2269
|
+
var layout = {
|
|
2270
|
+
createSubscreen: elementCreateSubscreenDiv,
|
|
2271
|
+
getSubscreen: elementGetSubscreenDiv,
|
|
2272
|
+
appendToSubscreen: elementAppendToSubscreenDiv,
|
|
2273
|
+
removeSubscreen: elementRemoveSubscreenDiv,
|
|
2175
2274
|
createSettingsDiv: elementCreateSettingsDiv,
|
|
2176
2275
|
getSettingsDiv: elementGetSettingsDiv,
|
|
2177
2276
|
appendToSettingsDiv: elementAppendToSettingsDiv,
|
|
@@ -2489,24 +2588,30 @@ var Localization = class _Localization {
|
|
|
2489
2588
|
static ModTranslation = {};
|
|
2490
2589
|
static PathToModTranslation;
|
|
2491
2590
|
static PathToLibTranslation = `${PUBLIC_URL}/dl_translations/`;
|
|
2591
|
+
static DefaultLanguage = "en";
|
|
2492
2592
|
static initialized = false;
|
|
2493
2593
|
static async init(initOptions) {
|
|
2494
2594
|
if (_Localization.initialized) return;
|
|
2495
2595
|
_Localization.initialized = true;
|
|
2496
|
-
_Localization.PathToModTranslation =
|
|
2497
|
-
|
|
2596
|
+
_Localization.PathToModTranslation = (() => {
|
|
2597
|
+
if (!initOptions?.pathToTranslationsFolder) return void 0;
|
|
2598
|
+
return initOptions.pathToTranslationsFolder.endsWith("/") ? initOptions.pathToTranslationsFolder : `${initOptions.pathToTranslationsFolder}/`;
|
|
2599
|
+
})();
|
|
2600
|
+
_Localization.DefaultLanguage = initOptions?.defaultLanguage || _Localization.DefaultLanguage;
|
|
2601
|
+
const lang = initOptions?.fixedLanguage ? _Localization.DefaultLanguage : TranslationLanguage.toLowerCase();
|
|
2498
2602
|
const libTranslation = await _Localization.fetchLanguageFile(_Localization.PathToLibTranslation, lang);
|
|
2499
|
-
if (lang ===
|
|
2603
|
+
if (lang === _Localization.DefaultLanguage) {
|
|
2500
2604
|
_Localization.LibTranslation = libTranslation;
|
|
2501
2605
|
} else {
|
|
2502
|
-
const fallbackTranslation = await _Localization.fetchLanguageFile(_Localization.PathToLibTranslation,
|
|
2606
|
+
const fallbackTranslation = await _Localization.fetchLanguageFile(_Localization.PathToLibTranslation, _Localization.DefaultLanguage);
|
|
2503
2607
|
_Localization.LibTranslation = { ...fallbackTranslation, ...libTranslation };
|
|
2504
2608
|
}
|
|
2609
|
+
if (!_Localization.PathToModTranslation) return;
|
|
2505
2610
|
const modTranslation = await _Localization.fetchLanguageFile(_Localization.PathToModTranslation, lang);
|
|
2506
|
-
if (lang ===
|
|
2611
|
+
if (lang === _Localization.DefaultLanguage) {
|
|
2507
2612
|
_Localization.ModTranslation = modTranslation;
|
|
2508
2613
|
} else {
|
|
2509
|
-
const fallbackTranslation = await _Localization.fetchLanguageFile(_Localization.PathToModTranslation,
|
|
2614
|
+
const fallbackTranslation = await _Localization.fetchLanguageFile(_Localization.PathToModTranslation, _Localization.DefaultLanguage);
|
|
2510
2615
|
_Localization.ModTranslation = { ...fallbackTranslation, ...modTranslation };
|
|
2511
2616
|
}
|
|
2512
2617
|
}
|
|
@@ -2518,8 +2623,11 @@ var Localization = class _Localization {
|
|
|
2518
2623
|
}
|
|
2519
2624
|
static async fetchLanguageFile(baseUrl, lang) {
|
|
2520
2625
|
const response = await fetch(`${baseUrl}${lang}.lang`);
|
|
2521
|
-
if (lang !==
|
|
2522
|
-
return this.fetchLanguageFile(baseUrl,
|
|
2626
|
+
if (lang !== _Localization.DefaultLanguage && !response.ok) {
|
|
2627
|
+
return this.fetchLanguageFile(baseUrl, _Localization.DefaultLanguage);
|
|
2628
|
+
}
|
|
2629
|
+
if (!response.ok) {
|
|
2630
|
+
return {};
|
|
2523
2631
|
}
|
|
2524
2632
|
const langFileContent = await response.text();
|
|
2525
2633
|
return this.parseLanguageFile(langFileContent);
|
|
@@ -2555,20 +2663,19 @@ export {
|
|
|
2555
2663
|
Modal,
|
|
2556
2664
|
Style,
|
|
2557
2665
|
VersionModule,
|
|
2558
|
-
|
|
2666
|
+
advElement,
|
|
2559
2667
|
deepLibLogger,
|
|
2560
2668
|
deepMerge,
|
|
2561
2669
|
deepMergeMatchingProperties,
|
|
2562
2670
|
domUtil,
|
|
2563
2671
|
exportToGlobal,
|
|
2564
|
-
getCurrentSubscreen,
|
|
2565
2672
|
getModule,
|
|
2566
2673
|
getText,
|
|
2567
2674
|
hasGetter,
|
|
2568
2675
|
hasSetter,
|
|
2569
2676
|
init,
|
|
2570
2677
|
initMod,
|
|
2571
|
-
|
|
2678
|
+
layout,
|
|
2572
2679
|
modStorage,
|
|
2573
2680
|
modules,
|
|
2574
2681
|
modulesMap,
|