bc-deeplib 2.0.0 → 2.2.0

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.js CHANGED
@@ -325,7 +325,11 @@ var BaseSubscreen = class _BaseSubscreen {
325
325
  drawCharacter: true,
326
326
  name: "UNKNOWN",
327
327
  icon: "",
328
- background: "Sheet"
328
+ background: "Sheet",
329
+ doShowExitButton: true,
330
+ doShowTitle: true,
331
+ settingsWidth: 1e3,
332
+ forceUpCharacter: false
329
333
  };
330
334
  constructor(module) {
331
335
  if (module) this.module = module;
@@ -394,15 +398,14 @@ var BaseSubscreen = class _BaseSubscreen {
394
398
  */
395
399
  managePageElementsVisibility() {
396
400
  this.pageStructure.forEach((item, ix) => {
397
- if (ix != _BaseSubscreen.currentPage - 1) {
398
- item.forEach((setting) => {
399
- domUtil.hide(`${setting.id}-container`);
400
- });
401
- } else {
402
- item.forEach((setting) => {
403
- domUtil.unhide(`${setting.id}-container`);
404
- });
405
- }
401
+ item.forEach((setting) => {
402
+ const element = ElementWrap(`${setting.id}-container`) ?? ElementWrap(`${setting.id}`);
403
+ if (ix != _BaseSubscreen.currentPage - 1) {
404
+ if (element) domUtil.hide(element);
405
+ } else {
406
+ if (element) domUtil.unhide(element);
407
+ }
408
+ });
406
409
  });
407
410
  }
408
411
  /**
@@ -462,12 +465,14 @@ var BaseSubscreen = class _BaseSubscreen {
462
465
  });
463
466
  ElementMenu.AppendButton(menu, helpButton);
464
467
  }
465
- const subscreenTitle = advElement.createLabel({
466
- id: "deeplib-subscreen-title",
467
- label: getText(`${this.options.name}.title`).replace("$ModVersion", ModSdkManager.ModInfo.version)
468
- });
469
- layout.appendToSubscreen(subscreenTitle);
470
- if (this.options.name !== "mainmenu") {
468
+ if (this.options.doShowTitle) {
469
+ const subscreenTitle = advElement.createLabel({
470
+ id: "deeplib-subscreen-title",
471
+ label: getText(`${this.options.name}.title`).replace("$ModVersion", ModSdkManager.ModInfo.version)
472
+ });
473
+ layout.appendToSubscreen(subscreenTitle);
474
+ }
475
+ if (this.options.doShowExitButton) {
471
476
  const exitButton = advElement.createButton({
472
477
  id: "deeplib-exit",
473
478
  size: [90, 90],
@@ -504,12 +509,19 @@ var BaseSubscreen = class _BaseSubscreen {
504
509
  case "custom":
505
510
  element = advElement.createCustom(item);
506
511
  break;
512
+ case "dropdown":
513
+ element = advElement.createDropdown(item);
514
+ break;
507
515
  }
508
516
  layout.appendToSettingsDiv(element);
509
517
  })
510
518
  );
511
519
  this.managePageElementsVisibility();
512
- CharacterAppearanceForceUpCharacter = Player.MemberNumber ?? -1;
520
+ if (this.options.drawCharacter && this.options.forceUpCharacter) {
521
+ CharacterAppearanceForceUpCharacter = Player.MemberNumber;
522
+ } else {
523
+ CharacterAppearanceForceUpCharacter = -1;
524
+ }
513
525
  }
514
526
  /**
515
527
  * Called each frame while this subscreen is active.
@@ -551,16 +563,11 @@ var BaseSubscreen = class _BaseSubscreen {
551
563
  const offset = this.options.drawCharacter ? 0 : 380;
552
564
  const subscreen = layout.getSubscreen();
553
565
  const settingsDiv = layout.getSettingsDiv();
554
- ElementSetPosition(subscreen || "", 0, 0);
555
- ElementSetSize(subscreen || "", 2e3, 1e3);
556
- ElementSetFontSize(subscreen || "", "auto");
557
- if (this.options.name === "mainmenu") {
558
- ElementSetPosition(settingsDiv || "", 530 - offset, 170);
559
- ElementSetSize(settingsDiv || "", 600 + offset, 660);
560
- } else {
561
- ElementSetPosition(settingsDiv || "", 530 - offset, 170);
562
- ElementSetSize(settingsDiv || "", 1e3 + offset, 660);
563
- }
566
+ ElementSetPosition(subscreen, 0, 0);
567
+ ElementSetSize(subscreen, 2e3, 1e3);
568
+ ElementSetFontSize(subscreen, "auto");
569
+ ElementSetPosition(settingsDiv, 530 - offset, 170);
570
+ ElementSetSize(settingsDiv, this.options.settingsWidth ?? 1e3 + offset, 660);
564
571
  ElementSetPosition("deeplib-subscreen-title", 530 - offset, 75);
565
572
  ElementSetSize("deeplib-subscreen-title", 800, 60);
566
573
  ElementSetPosition("deeplib-nav-menu", 1905, 75, "top-right");
@@ -770,6 +777,9 @@ var styles_default = `.deeplib-subscreen,
770
777
  .deeplib-checkbox-container input.deeplib-input {
771
778
  width: min(5vh, 2.5vw);
772
779
  height: min(5vh, 2.5vw);
780
+ width: min(5dvh, 2.5dvw);
781
+ height: min(5dvh, 2.5dvw);
782
+ border-radius: min(1vh, 0.5vw);
773
783
  border-radius: min(1dvh, 0.5dvw);
774
784
  }
775
785
 
@@ -787,16 +797,18 @@ var styles_default = `.deeplib-subscreen,
787
797
 
788
798
  .deeplib-input-container:has(label.deeplib-text) {
789
799
  margin-top: min(1vh, 0.5vw);
800
+ margin-top: min(1dvh, 0.5dvw);
790
801
  }
791
802
 
792
803
  .deeplib-input-container input.deeplib-input {
793
804
  font-size: 0.6em;
794
- padding: 5px 0;
805
+ padding: min(1vh, 0.5vw);
806
+ padding: min(1dvh, 0.5dvw);
795
807
  background-color: transparent;
796
808
  outline: none;
797
- padding-left: min(1vh, 0.5vw);
798
- padding-right: min(1vh, 0.5vw);
809
+ min-height: min(5vh, 2.5vw);
799
810
  min-height: min(5dvh, 2.5dvw);
811
+ border-radius: min(1vh, 0.5vw);
800
812
  border-radius: min(1dvh, 0.5dvw);
801
813
  }
802
814
 
@@ -804,6 +816,8 @@ var styles_default = `.deeplib-subscreen,
804
816
  padding: 0px;
805
817
  width: min(5vh, 2.5vw);
806
818
  height: min(5vh, 2.5vw);
819
+ width: min(5dvh, 2.5dvw);
820
+ height: min(5dvh, 2.5dvw);
807
821
  border-radius: 0px;
808
822
  }
809
823
 
@@ -812,15 +826,19 @@ var styles_default = `.deeplib-subscreen,
812
826
  cursor: not-allowed;
813
827
  }
814
828
 
815
- input::-webkit-outer-spin-button,
816
- input::-webkit-inner-spin-button {
817
- -webkit-appearance: none;
818
- margin: 0;
829
+ .deeplib-dropdown-container {
830
+ display: flex;
831
+ flex-direction: row;
832
+ align-items: center;
833
+ gap: min(2vh, 1vw);
834
+ gap: min(2dvh, 1dvw);
835
+ color: var(--deeplib-text-color);
819
836
  }
820
-
821
- input[type=number] {
822
- appearance: textfield;
823
- -moz-appearance: textfield;
837
+ .deeplib-dropdown-container select {
838
+ padding: 0 min(1vh, 0.5vw);
839
+ padding: 0 min(1dvh, 0.5dvw);
840
+ border-radius: min(1vh, 0.5vw);
841
+ border-radius: min(1dvh, 0.5dvw);
824
842
  }
825
843
 
826
844
  .deeplib-highlight-text {
@@ -915,7 +933,7 @@ input[type=number] {
915
933
  height: 100dvh;
916
934
  background-color: rgba(0, 0, 0, 0.5);
917
935
  }
918
- /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL21lZGlhL05WTUUvU3R1ZmYvQ29kZS9CQy9CQy1EZWVwTGliL3NyYy9zdHlsZXMiLCJzb3VyY2VzIjpbInZhcnMuc2NzcyIsImJ1dHRvbnMuc2NzcyIsImVsZW1lbnRzLnNjc3MiLCJpbnB1dHMuc2NzcyIsIm1lc3NhZ2VzLnNjc3MiLCJtb2RhbC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDZEY7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FDM0NGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdFO0VBQ0U7RUFDQTs7QUFISjtFQU1FO0VBQ0E7O0FBR0Y7RUFDRTs7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUN6R0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQzdERjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUM3QkY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOztBQUtOO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyIuZGVlcGxpYi1zdWJzY3JlZW4sXG4uZGVlcGxpYi1tb2RhbCB7XG4gIC0tZGVlcGxpYi1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10bWQtbWFpbiwgd2hpdGUpO1xuICAtLWRlZXBsaWItZWxlbWVudC1jb2xvcjogdmFyKC0tdG1kLWVsZW1lbnQsIHdoaXRlKTtcbiAgLS1kZWVwbGliLWVsZW1lbnQtaG92ZXItY29sb3I6IHZhcigtLXRtZC1lbGVtZW50LWhvdmVyLCBjeWFuKTtcbiAgLS1kZWVwbGliLWFjY2VudC1jb2xvcjogdmFyKC0tdG1kLWFjY2VudCwgI0ZGRkY4OCk7XG4gIC0tZGVlcGxpYi1ibG9ja2VkLWNvbG9yOiB2YXIoLS10bWQtYmxvY2tlZCwgcmVkKTtcbiAgLS1kZWVwbGliLXRleHQtY29sb3I6IHZhcigtLXRtZC10ZXh0LCBibGFjayk7XG4gIC0tZGVlcGxpYi1pY29uLWNvbG9yOiB2YXIoLS10bWQtYWNjZW50LCBibGFjayk7XG4gIC0tZGVlcGxpYi1pY29uLWhvdmVyLWNvbG9yOiB2YXIoLS10bWQtYWNjZW50LWhvdmVyLCBibGFjayk7XG4gIC0tZGVlcGxpYi1ib3JkZXItY29sb3I6IHZhcigtLXRtZC1hY2NlbnQsIGJsYWNrKTtcbiAgLS1kZWVwbGliLWJvcmRlci13aWR0aDogbWluKDAuMnZoLCAwLjF2dyk7XG4gIC0tZGVlcGxpYi1ib3JkZXItd2lkdGg6IG1pbigwLjJkdmgsIDAuMWR2dyk7XG4gIC0tZGVlcGxpYi1ib3JkZXItcmFkaXVzOiBtaW4oMXZoLCAwLjV2dyk7XG4gIC0tZGVlcGxpYi1ib3JkZXItcmFkaXVzOiBtaW4oMWR2aCwgMC41ZHZ3KTtcbn1cbiIsIi5kZWVwbGliLWJ1dHRvbiB7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZGVlcGxpYi1idXR0b24uYnV0dG9uLXN0eWxpbmcsXG4uZGVlcGxpYi1idXR0b24uYnV0dG9uLXN0eWxpbmc6OmJlZm9yZSB7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG59XG5cbi5kZWVwbGliLWJ1dHRvbiBpbWcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDAlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWljb24tY29sb3IpO1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IG11bHRpcGx5O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIG1hc2stcG9zaXRpb246IGxlZnQ7XG4gIG1hc2stc2l6ZTogY29udGFpbjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWltYWdlKTtcbiAgbWFzay1pbWFnZTogdmFyKC0taW1hZ2UpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmRlZXBsaWItYnV0dG9uOmhvdmVyIGltZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRlZXBsaWItaWNvbi1ob3Zlci1jb2xvcik7XG59XG5cbi5kZWVwbGliLWJ1dHRvbiAuYnV0dG9uLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogbWluKDMuNmR2aCwgMS44ZHZ3KTtcbn1cblxuLmRlZXBsaWItYnV0dG9uIC5idXR0b24tdG9vbHRpcCB7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG59XG4iLCIjZGVlcGxpYi1wYWdlLWxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbiNkZWVwbGliLXN1YnNjcmVlbi10aXRsZSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xufVxuXG4uZGVlcGxpYi10ZXh0IHtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG59XG5cbi5kZWVwbGliLXN1YnNjcmVlbiB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5kZWVwbGliLXN1YnNjcmVlbiAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuLmRlZXBsaWItc2V0dGluZ3Mge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWF1dG8tcm93czogbWluLWNvbnRlbnQ7XG4gIHBhZGRpbmc6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG4gIGdhcDogMC4zZW07XG59XG5cbi5kZWVwbGliLW1pc2Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIGdhcDogbWluKDF2aCwgMC41dncpO1xufVxuXG4uZGVlcGxpYi10b29sdGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGVlcGxpYi1lbGVtZW50LWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xuICBwYWRkaW5nOiBtaW4oMXZoLCAwLjV2dyk7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGJvcmRlcjogbWluKDAuMnZoLCAwLjF2dykgc29saWQgdmFyKC0tZGVlcGxpYi1ib3JkZXItY29sb3IpO1xuICB6LWluZGV4OiAxO1xufVxuXG4uZGVlcGxpYi1vdmVyZmxvdy1ib3gge1xuICBib3JkZXI6IHZhcigtLWRlZXBsaWItYm9yZGVyLWNvbG9yKSBzb2xpZCB2YXIoLS1kZWVwbGliLWJvcmRlci13aWR0aCk7XG59XG5cbi5kZWVwbGliLXByZXYtbmV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZ2FwOiBtaW4oMmR2aCwgMWR2dyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRlZXBsaWItZWxlbWVudC1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xuICBib3JkZXI6IG1pbigwLjJ2aCwgMC4xdncpIHNvbGlkIHZhcigtLWRlZXBsaWItYm9yZGVyLWNvbG9yKTtcblxuICAuZGVlcGxpYi1wcmV2LW5leHQtYnV0dG9uIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRlZXBsaWItZWxlbWVudC1ob3Zlci1jb2xvcik7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVwbGliLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cbiAgICBcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYXNwZWN0LXJhdGlvOiAxO1xuICB9XG5cbiAgLmRlZXBsaWItcHJldi1uZXh0LWxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG59XG5cbiNkZWVwbGliLW5hdi1tZW51IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZ2FwOiBtaW4oMmR2aCwgMWR2dyk7XG59XG5cbiNkZWVwbGliLXN0b3JhZ2UtbWV0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRlZXBsaWItZWxlbWVudC1jb2xvcik7XG4gIGJvcmRlcjogdmFyKC0tZGVlcGxpYi1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWRlZXBsaWItYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcGxpYi1ib3JkZXItcmFkaXVzKTtcbiAgei1pbmRleDogLTE7XG59XG5cbiNkZWVwbGliLXN0b3JhZ2UtYmFyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWRlZXBsaWItYWNjZW50LWNvbG9yKTtcbn1cbiIsIi5kZWVwbGliLWNoZWNrYm94LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zZW07XG59XG5cbi5kZWVwbGliLWNoZWNrYm94LWNvbnRhaW5lciBpbnB1dC5kZWVwbGliLWlucHV0IHtcbiAgd2lkdGg6IG1pbig1dmgsIDIuNXZ3KTtcbiAgaGVpZ2h0OiBtaW4oNXZoLCAyLjV2dyk7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG59XG5cbi5kZWVwbGliLWNoZWNrYm94LWNvbnRhaW5lciBpbnB1dC5kZWVwbGliLWlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkOjpiZWZvcmUge1xuICB3aWR0aDogODAlO1xuICBoZWlnaHQ6IDgwJTtcbn1cblxuLmRlZXBsaWItaW5wdXQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjNlbTtcbn1cblxuLmRlZXBsaWItaW5wdXQtY29udGFpbmVyOmhhcyhsYWJlbC5kZWVwbGliLXRleHQpIHtcbiAgbWFyZ2luLXRvcDogbWluKDF2aCwgMC41dncpO1xufVxuXG4uZGVlcGxpYi1pbnB1dC1jb250YWluZXIgaW5wdXQuZGVlcGxpYi1pbnB1dCB7XG4gIGZvbnQtc2l6ZTogMC42ZW07XG4gIHBhZGRpbmc6IDVweCAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgb3V0bGluZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiBtaW4oMXZoLCAwLjV2dyk7XG4gIHBhZGRpbmctcmlnaHQ6IG1pbigxdmgsIDAuNXZ3KTtcbiAgbWluLWhlaWdodDogbWluKDVkdmgsIDIuNWR2dyk7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG59XG5cblxuLmRlZXBsaWItaW5wdXQtY29udGFpbmVyIGlucHV0LmRlZXBsaWItaW5wdXRbdHlwZT1cImNvbG9yXCJdIHtcbiAgcGFkZGluZzogMHB4O1xuICB3aWR0aDogbWluKDV2aCwgMi41dncpO1xuICBoZWlnaHQ6IG1pbig1dmgsIDIuNXZ3KTtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4uZGVlcGxpYi1pbnB1dC1jb250YWluZXIgaW5wdXQuZGVlcGxpYi1pbnB1dFt0eXBlPVwiY29sb3JcIl06ZGlzYWJsZWQge1xuICBib3JkZXI6IHZhcigtLWRlZXBsaWItYmxvY2tlZC1jb2xvcikgc29saWQgdmFyKC0tZGVlcGxpYi1ib3JkZXItd2lkdGgpO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5pbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbmlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG5cbmlucHV0W3R5cGU9bnVtYmVyXSB7XG4gIGFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG59XG4iLCIuZGVlcGxpYi1oaWdobGlnaHQtdGV4dCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiKDIwMywgMTg1LCAyMyk7XG59XG5cbiNUZXh0QXJlYUNoYXRMb2dbZGF0YS1jb2xvcnRoZW1lPSdkYXJrJ10gZGl2LkNoYXRNZXNzYWdlLmRlZXBsaWItbWVzc2FnZSxcbiNUZXh0QXJlYUNoYXRMb2dbZGF0YS1jb2xvcnRoZW1lPSdkYXJrMiddIGRpdi5DaGF0TWVzc2FnZS5kZWVwbGliLW1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWVsZW1lbnQtY29sb3IpO1xuICBib3JkZXI6IG1pbigwLjJkdmgsIDAuMWR2dykgc29saWQgdmFyKC0tZGVlcGxpYi1ib3JkZXItY29sb3IpO1xuICBjb2xvcjogdmFyKC0tZGVlcGxpYi10ZXh0LWNvbG9yKTtcbn1cblxuI1RleHRBcmVhQ2hhdExvZyBkaXYuQ2hhdE1lc3NhZ2UuZGVlcGxpYi1tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbiAgYm9yZGVyOiBtaW4oMC4yZHZoLCAwLjFkdncpIHNvbGlkICM0NDAxNzE7XG4gIGNvbG9yOiAjMTExO1xuICBwYWRkaW5nLWxlZnQ6IG1pbigwLjZkdmgsIDAuM2R2dyk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG4jVGV4dEFyZWFDaGF0TG9nW2RhdGEtY29sb3J0aGVtZT0nZGFyayddIGRpdi5DaGF0TWVzc2FnZS5kZWVwbGliLW1lc3NhZ2UgYSxcbiNUZXh0QXJlYUNoYXRMb2dbZGF0YS1jb2xvcnRoZW1lPSdkYXJrMiddIGRpdi5DaGF0TWVzc2FnZS5kZWVwbGliLW1lc3NhZ2UgYSB7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xufVxuXG4jVGV4dEFyZWFDaGF0TG9nIGRpdi5DaGF0TWVzc2FnZS5kZWVwbGliLW1lc3NhZ2UgYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjMTExO1xufVxuIiwiLmRlZXBsaWItbW9kYWwge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgei1pbmRleDogMTAwMTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41ZW07XG4gIHdpZHRoOiBtYXgoNTBkdncsIDI1ZHZoKTtcbiAgZm9udC1zaXplOiBtaW4oNGR2aCwgMmR2dyk7XG4gIHBhZGRpbmc6IG1pbigyZHZoLCAxZHZ3KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGVlcGxpYi1lbGVtZW50LWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogbWluKDEuMmR2aCwgMC42ZHZ3KTtcbiAgYm9yZGVyOiBtaW4oMC4yZHZoLCAwLjFkdncpIHNvbGlkIHZhcigtLWRlZXBsaWItYm9yZGVyLWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG5cbiAgLmRlZXBsaWItbW9kYWwtaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogbWluKDIuNmR2aCwgMS44ZHZ3KTtcbiAgICBib3JkZXItcmFkaXVzOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xuICAgIHBhZGRpbmc6IG1pbigxZHZoLCAwLjVkdncpO1xuICB9XG5cbiAgaW5wdXQuZGVlcGxpYi1tb2RhbC1pbnB1dCB7XG4gICAgbWF4LXdpZHRoOiBtYXgoNTBkdmgsIDI1ZHZ3KTtcbiAgfVxuXG4gIC5kZWVwbGliLW1vZGFsLWJ1dHRvbi1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGdhcDogMC41ZW07XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAuZGVlcGxpYi1idXR0b24ge1xuICAgICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIHBhZGRpbmc6IG1pbigwLjR2aCwgMC4ydncpIG1pbigydmgsIDF2dyk7XG5cbiAgICAgIC5idXR0b24tbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZGVlcGxpYi1tb2RhbC1wcm9tcHQtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxuXG4uZGVlcGxpYi1tb2RhbC1ibG9ja2VyIHtcbiAgei1pbmRleDogMTAwMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDBkdnc7XG4gIGhlaWdodDogMTAwZHZoO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG4iXX0= */`;
936
+ /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL21udC9zaGluZG93cy9TdHVmZi9Db2RlL2JjL0JDLURlZXBMaWIvc3JjL3N0eWxlcyIsInNvdXJjZXMiOlsidmFycy5zY3NzIiwiYnV0dG9ucy5zY3NzIiwiZWxlbWVudHMuc2NzcyIsImlucHV0cy5zY3NzIiwibWVzc2FnZXMuc2NzcyIsIm1vZGFsLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNkRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUMzQ0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0U7RUFDRTtFQUNBOztBQUhKO0VBTUU7RUFDQTs7QUFHRjtFQUNFOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQ3pHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUN2RUo7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FDN0JGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFLTjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBIiwic291cmNlc0NvbnRlbnQiOlsiLmRlZXBsaWItc3Vic2NyZWVuLFxuLmRlZXBsaWItbW9kYWwge1xuICAtLWRlZXBsaWItYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdG1kLW1haW4sIHdoaXRlKTtcbiAgLS1kZWVwbGliLWVsZW1lbnQtY29sb3I6IHZhcigtLXRtZC1lbGVtZW50LCB3aGl0ZSk7XG4gIC0tZGVlcGxpYi1lbGVtZW50LWhvdmVyLWNvbG9yOiB2YXIoLS10bWQtZWxlbWVudC1ob3ZlciwgY3lhbik7XG4gIC0tZGVlcGxpYi1hY2NlbnQtY29sb3I6IHZhcigtLXRtZC1hY2NlbnQsICNGRkZGODgpO1xuICAtLWRlZXBsaWItYmxvY2tlZC1jb2xvcjogdmFyKC0tdG1kLWJsb2NrZWQsIHJlZCk7XG4gIC0tZGVlcGxpYi10ZXh0LWNvbG9yOiB2YXIoLS10bWQtdGV4dCwgYmxhY2spO1xuICAtLWRlZXBsaWItaWNvbi1jb2xvcjogdmFyKC0tdG1kLWFjY2VudCwgYmxhY2spO1xuICAtLWRlZXBsaWItaWNvbi1ob3Zlci1jb2xvcjogdmFyKC0tdG1kLWFjY2VudC1ob3ZlciwgYmxhY2spO1xuICAtLWRlZXBsaWItYm9yZGVyLWNvbG9yOiB2YXIoLS10bWQtYWNjZW50LCBibGFjayk7XG4gIC0tZGVlcGxpYi1ib3JkZXItd2lkdGg6IG1pbigwLjJ2aCwgMC4xdncpO1xuICAtLWRlZXBsaWItYm9yZGVyLXdpZHRoOiBtaW4oMC4yZHZoLCAwLjFkdncpO1xuICAtLWRlZXBsaWItYm9yZGVyLXJhZGl1czogbWluKDF2aCwgMC41dncpO1xuICAtLWRlZXBsaWItYm9yZGVyLXJhZGl1czogbWluKDFkdmgsIDAuNWR2dyk7XG59XG4iLCIuZGVlcGxpYi1idXR0b24ge1xuICBjb2xvcjogdmFyKC0tZGVlcGxpYi10ZXh0LWNvbG9yKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmRlZXBsaWItYnV0dG9uLmJ1dHRvbi1zdHlsaW5nLFxuLmRlZXBsaWItYnV0dG9uLmJ1dHRvbi1zdHlsaW5nOjpiZWZvcmUge1xuICBib3JkZXItcmFkaXVzOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xufVxuXG4uZGVlcGxpYi1idXR0b24gaW1nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAlO1xuICBsZWZ0OiAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGVlcGxpYi1pY29uLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBtYXNrLXBvc2l0aW9uOiBsZWZ0O1xuICBtYXNrLXNpemU6IGNvbnRhaW47XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1pbWFnZSk7XG4gIG1hc2staW1hZ2U6IHZhcigtLWltYWdlKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5kZWVwbGliLWJ1dHRvbjpob3ZlciBpbWcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWljb24taG92ZXItY29sb3IpO1xufVxuXG4uZGVlcGxpYi1idXR0b24gLmJ1dHRvbi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xuICBmb250LXNpemU6IG1pbigzLjZkdmgsIDEuOGR2dyk7XG59XG5cbi5kZWVwbGliLWJ1dHRvbiAuYnV0dG9uLXRvb2x0aXAge1xuICBib3JkZXItcmFkaXVzOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xufVxuIiwiI2RlZXBsaWItcGFnZS1sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4jZGVlcGxpYi1zdWJzY3JlZW4tdGl0bGUge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogdmFyKC0tZGVlcGxpYi10ZXh0LWNvbG9yKTtcbn1cblxuLmRlZXBsaWItdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xufVxuXG4uZGVlcGxpYi1zdWJzY3JlZW4ge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZGVlcGxpYi1zdWJzY3JlZW4gKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbi5kZWVwbGliLXNldHRpbmdzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1hdXRvLXJvd3M6IG1pbi1jb250ZW50O1xuICBwYWRkaW5nOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xuICBnYXA6IDAuM2VtO1xufVxuXG4uZGVlcGxpYi1taXNjIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICBnYXA6IG1pbigxdmgsIDAuNXZ3KTtcbn1cblxuLmRlZXBsaWItdG9vbHRpcCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRlZXBsaWItZWxlbWVudC1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogbWluKDEuMGR2aCwgMC41ZHZ3KTtcbiAgcGFkZGluZzogbWluKDF2aCwgMC41dncpO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBib3JkZXI6IG1pbigwLjJ2aCwgMC4xdncpIHNvbGlkIHZhcigtLWRlZXBsaWItYm9yZGVyLWNvbG9yKTtcbiAgei1pbmRleDogMTtcbn1cblxuLmRlZXBsaWItb3ZlcmZsb3ctYm94IHtcbiAgYm9yZGVyOiB2YXIoLS1kZWVwbGliLWJvcmRlci1jb2xvcikgc29saWQgdmFyKC0tZGVlcGxpYi1ib3JkZXItd2lkdGgpO1xufVxuXG4uZGVlcGxpYi1wcmV2LW5leHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGdhcDogbWluKDJkdmgsIDFkdncpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWVsZW1lbnQtY29sb3IpO1xuICBjb2xvcjogdmFyKC0tZGVlcGxpYi10ZXh0LWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogbWluKDEuMGR2aCwgMC41ZHZ3KTtcbiAgYm9yZGVyOiBtaW4oMC4ydmgsIDAuMXZ3KSBzb2xpZCB2YXIoLS1kZWVwbGliLWJvcmRlci1jb2xvcik7XG5cbiAgLmRlZXBsaWItcHJldi1uZXh0LWJ1dHRvbiB7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWVsZW1lbnQtaG92ZXItY29sb3IpO1xuICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcGxpYi1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG4gICAgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgfVxuXG4gIC5kZWVwbGliLXByZXYtbmV4dC1sYWJlbCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuXG4jZGVlcGxpYi1uYXYtbWVudSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGdhcDogbWluKDJkdmgsIDFkdncpO1xufVxuXG4jZGVlcGxpYi1zdG9yYWdlLW1ldGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWVsZW1lbnQtY29sb3IpO1xuICBib3JkZXI6IHZhcigtLWRlZXBsaWItYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1kZWVwbGliLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXBsaWItYm9yZGVyLXJhZGl1cyk7XG4gIHotaW5kZXg6IC0xO1xufVxuXG4jZGVlcGxpYi1zdG9yYWdlLWJhciB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVwbGliLWFjY2VudC1jb2xvcik7XG59XG4iLCIuZGVlcGxpYi1jaGVja2JveC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuM2VtO1xufVxuXG4uZGVlcGxpYi1jaGVja2JveC1jb250YWluZXIgaW5wdXQuZGVlcGxpYi1pbnB1dCB7XG4gIHdpZHRoOiBtaW4oNXZoLCAyLjV2dyk7XG4gIGhlaWdodDogbWluKDV2aCwgMi41dncpO1xuICB3aWR0aDogbWluKDVkdmgsIDIuNWR2dyk7XG4gIGhlaWdodDogbWluKDVkdmgsIDIuNWR2dyk7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjB2aCwgMC41dncpO1xuICBib3JkZXItcmFkaXVzOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xufVxuXG4uZGVlcGxpYi1jaGVja2JveC1jb250YWluZXIgaW5wdXQuZGVlcGxpYi1pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZDo6YmVmb3JlIHtcbiAgd2lkdGg6IDgwJTtcbiAgaGVpZ2h0OiA4MCU7XG59XG5cbi5kZWVwbGliLWlucHV0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zZW07XG59XG5cbi5kZWVwbGliLWlucHV0LWNvbnRhaW5lcjpoYXMobGFiZWwuZGVlcGxpYi10ZXh0KSB7XG4gIG1hcmdpbi10b3A6IG1pbigxdmgsIDAuNXZ3KTtcbiAgbWFyZ2luLXRvcDogbWluKDFkdmgsIDAuNWR2dyk7XG59XG5cbi5kZWVwbGliLWlucHV0LWNvbnRhaW5lciBpbnB1dC5kZWVwbGliLWlucHV0IHtcbiAgZm9udC1zaXplOiAwLjZlbTtcbiAgcGFkZGluZzogbWluKDF2aCwgMC41dncpO1xuICBwYWRkaW5nOiBtaW4oMWR2aCwgMC41ZHZ3KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IG1pbig1dmgsIDIuNXZ3KTtcbiAgbWluLWhlaWdodDogbWluKDVkdmgsIDIuNWR2dyk7XG4gIGJvcmRlci1yYWRpdXM6IG1pbigxLjB2aCwgMC41dncpO1xuICBib3JkZXItcmFkaXVzOiBtaW4oMS4wZHZoLCAwLjVkdncpO1xufVxuXG4uZGVlcGxpYi1pbnB1dC1jb250YWluZXIgaW5wdXQuZGVlcGxpYi1pbnB1dFt0eXBlPVwiY29sb3JcIl0ge1xuICBwYWRkaW5nOiAwcHg7XG4gIHdpZHRoOiBtaW4oNXZoLCAyLjV2dyk7XG4gIGhlaWdodDogbWluKDV2aCwgMi41dncpO1xuICB3aWR0aDogbWluKDVkdmgsIDIuNWR2dyk7XG4gIGhlaWdodDogbWluKDVkdmgsIDIuNWR2dyk7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLmRlZXBsaWItaW5wdXQtY29udGFpbmVyIGlucHV0LmRlZXBsaWItaW5wdXRbdHlwZT1cImNvbG9yXCJdOmRpc2FibGVkIHtcbiAgYm9yZGVyOiB2YXIoLS1kZWVwbGliLWJsb2NrZWQtY29sb3IpIHNvbGlkIHZhcigtLWRlZXBsaWItYm9yZGVyLXdpZHRoKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmRlZXBsaWItZHJvcGRvd24tY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiBtaW4oMnZoLCAxdncpO1xuICBnYXA6IG1pbigyZHZoLCAxZHZ3KTtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG5cbiAgc2VsZWN0IHtcbiAgICBwYWRkaW5nOiAwIG1pbigxdmgsIDAuNXZ3KTtcbiAgICBwYWRkaW5nOiAwIG1pbigxZHZoLCAwLjVkdncpO1xuICAgIGJvcmRlci1yYWRpdXM6IG1pbigxdmgsIDAuNXZ3KTtcbiAgICBib3JkZXItcmFkaXVzOiBtaW4oMWR2aCwgMC41ZHZ3KTtcbiAgfVxufSIsIi5kZWVwbGliLWhpZ2hsaWdodC10ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2IoMjAzLCAxODUsIDIzKTtcbn1cblxuI1RleHRBcmVhQ2hhdExvZ1tkYXRhLWNvbG9ydGhlbWU9J2RhcmsnXSBkaXYuQ2hhdE1lc3NhZ2UuZGVlcGxpYi1tZXNzYWdlLFxuI1RleHRBcmVhQ2hhdExvZ1tkYXRhLWNvbG9ydGhlbWU9J2RhcmsyJ10gZGl2LkNoYXRNZXNzYWdlLmRlZXBsaWItbWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRlZXBsaWItZWxlbWVudC1jb2xvcik7XG4gIGJvcmRlcjogbWluKDAuMmR2aCwgMC4xZHZ3KSBzb2xpZCB2YXIoLS1kZWVwbGliLWJvcmRlci1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1kZWVwbGliLXRleHQtY29sb3IpO1xufVxuXG4jVGV4dEFyZWFDaGF0TG9nIGRpdi5DaGF0TWVzc2FnZS5kZWVwbGliLW1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICBib3JkZXI6IG1pbigwLjJkdmgsIDAuMWR2dykgc29saWQgIzQ0MDE3MTtcbiAgY29sb3I6ICMxMTE7XG4gIHBhZGRpbmctbGVmdDogbWluKDAuNmR2aCwgMC4zZHZ3KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbiNUZXh0QXJlYUNoYXRMb2dbZGF0YS1jb2xvcnRoZW1lPSdkYXJrJ10gZGl2LkNoYXRNZXNzYWdlLmRlZXBsaWItbWVzc2FnZSBhLFxuI1RleHRBcmVhQ2hhdExvZ1tkYXRhLWNvbG9ydGhlbWU9J2RhcmsyJ10gZGl2LkNoYXRNZXNzYWdlLmRlZXBsaWItbWVzc2FnZSBhIHtcbiAgY29sb3I6IHZhcigtLWRlZXBsaWItdGV4dC1jb2xvcik7XG59XG5cbiNUZXh0QXJlYUNoYXRMb2cgZGl2LkNoYXRNZXNzYWdlLmRlZXBsaWItbWVzc2FnZSBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICMxMTE7XG59XG4iLCIuZGVlcGxpYi1tb2RhbCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAxMCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB6LWluZGV4OiAxMDAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVlbTtcbiAgd2lkdGg6IG1heCg1MGR2dywgMjVkdmgpO1xuICBmb250LXNpemU6IG1pbig0ZHZoLCAyZHZ3KTtcbiAgcGFkZGluZzogbWluKDJkdmgsIDFkdncpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kZWVwbGliLWVsZW1lbnQtY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiBtaW4oMS4yZHZoLCAwLjZkdncpO1xuICBib3JkZXI6IG1pbigwLjJkdmgsIDAuMWR2dykgc29saWQgdmFyKC0tZGVlcGxpYi1ib3JkZXItY29sb3IpO1xuICBjb2xvcjogdmFyKC0tZGVlcGxpYi10ZXh0LWNvbG9yKTtcblxuICAuZGVlcGxpYi1tb2RhbC1pbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiBtaW4oMi42ZHZoLCAxLjhkdncpO1xuICAgIGJvcmRlci1yYWRpdXM6IG1pbigxLjBkdmgsIDAuNWR2dyk7XG4gICAgcGFkZGluZzogbWluKDFkdmgsIDAuNWR2dyk7XG4gIH1cblxuICBpbnB1dC5kZWVwbGliLW1vZGFsLWlucHV0IHtcbiAgICBtYXgtd2lkdGg6IG1heCg1MGR2aCwgMjVkdncpO1xuICB9XG5cbiAgLmRlZXBsaWItbW9kYWwtYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZ2FwOiAwLjVlbTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5kZWVwbGliLWJ1dHRvbiB7XG4gICAgICBmb250LXNpemU6IDAuOGVtO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgcGFkZGluZzogbWluKDAuNHZoLCAwLjJ2dykgbWluKDJ2aCwgMXZ3KTtcblxuICAgICAgLmJ1dHRvbi1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5kZWVwbGliLW1vZGFsLXByb21wdC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG59XG5cbi5kZWVwbGliLW1vZGFsLWJsb2NrZXIge1xuICB6LWluZGV4OiAxMDAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMGR2dztcbiAgaGVpZ2h0OiAxMDBkdmg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cbiJdfQ== */`;
919
937
 
920
938
  // src/base/initialization.ts
921
939
  var modStorage;
@@ -1188,6 +1206,7 @@ var VersionModule = class _VersionModule extends BaseModule {
1188
1206
  }
1189
1207
  /** Sends the currently configured "new version" message to the local player. */
1190
1208
  static sendNewVersionMessage() {
1209
+ if (!_VersionModule.newVersionMessage) return;
1191
1210
  const beepLogLength = FriendListBeepLog.push({
1192
1211
  MemberNumber: Player.MemberNumber,
1193
1212
  MemberName: ModSdkManager.ModInfo.name,
@@ -1261,10 +1280,12 @@ var GuiDebug = class extends BaseSubscreen {
1261
1280
  {
1262
1281
  type: "button",
1263
1282
  id: "test-deeplib-big-button",
1283
+ options: {
1284
+ label: "Big Button",
1285
+ tooltip: "This is a big button",
1286
+ image: "Icons/Exit.png"
1287
+ },
1264
1288
  size: [405, 80],
1265
- label: "Big Button",
1266
- tooltip: "This is a big button",
1267
- image: "Icons/Exit.png",
1268
1289
  onClick() {
1269
1290
  deepLibLogger.info("Big Button Clicked");
1270
1291
  }
@@ -1272,9 +1293,11 @@ var GuiDebug = class extends BaseSubscreen {
1272
1293
  {
1273
1294
  type: "button",
1274
1295
  id: "test-deeplib-small-button",
1296
+ options: {
1297
+ tooltip: "This is a small button",
1298
+ image: "Icons/Exit.png"
1299
+ },
1275
1300
  size: [90, 90],
1276
- tooltip: "This is a small button",
1277
- image: "Icons/Exit.png",
1278
1301
  onClick() {
1279
1302
  deepLibLogger.info("Small Button Clicked");
1280
1303
  }
@@ -1326,10 +1349,12 @@ var GuiDebug = class extends BaseSubscreen {
1326
1349
  {
1327
1350
  type: "button",
1328
1351
  id: "test-deeplib-big-button2",
1352
+ options: {
1353
+ label: "Big Button",
1354
+ tooltip: "This is a big button",
1355
+ image: "Icons/Exit.png"
1356
+ },
1329
1357
  size: [405, 80],
1330
- label: "Big Button",
1331
- tooltip: "This is a big button",
1332
- image: "Icons/Prev.png",
1333
1358
  onClick() {
1334
1359
  deepLibLogger.info("Big Button Clicked");
1335
1360
  }
@@ -1337,9 +1362,11 @@ var GuiDebug = class extends BaseSubscreen {
1337
1362
  {
1338
1363
  type: "button",
1339
1364
  id: "test-deeplib-small-button2",
1365
+ options: {
1366
+ tooltip: "This is a small button",
1367
+ image: "Icons/Next.png"
1368
+ },
1340
1369
  size: [90, 90],
1341
- tooltip: "This is a small button",
1342
- image: "Icons/Next.png",
1343
1370
  onClick() {
1344
1371
  deepLibLogger.info("Small Button Clicked");
1345
1372
  }
@@ -1385,6 +1412,22 @@ var GuiDebug = class extends BaseSubscreen {
1385
1412
  id: "test-deeplib-label2",
1386
1413
  label: "Label",
1387
1414
  description: "This is a label"
1415
+ },
1416
+ {
1417
+ type: "dropdown",
1418
+ id: "test-deeplib-dropdown",
1419
+ label: "Dropdown",
1420
+ description: "This is a dropdown",
1421
+ optionsList: ["Option 1", "Option 2", "Option 3"],
1422
+ setElementValue() {
1423
+ return "Option 2";
1424
+ },
1425
+ setSettingValue(val) {
1426
+ deepLibLogger.info("Dropdown value:", val);
1427
+ },
1428
+ options: {
1429
+ width: 200
1430
+ }
1388
1431
  }
1389
1432
  ]
1390
1433
  ];
@@ -1392,22 +1435,27 @@ var GuiDebug = class extends BaseSubscreen {
1392
1435
  };
1393
1436
 
1394
1437
  // src/utilities/common.ts
1438
+ function isPlainObject(value) {
1439
+ return value !== null && typeof value === "object" && Object.getPrototypeOf(value) === Object.prototype;
1440
+ }
1441
+ __name(isPlainObject, "isPlainObject");
1395
1442
  function deepMerge(target, source) {
1396
1443
  if (target === void 0) return source;
1397
1444
  if (source === void 0) return target;
1398
- if (typeof target !== "object" || typeof source !== "object") {
1399
- return source;
1400
- }
1401
- for (const key of Object.keys(source)) {
1402
- if (Array.isArray(source[key]) && Array.isArray(target[key])) {
1403
- target[key] = [...target[key], ...source[key]];
1404
- } else if (typeof source[key] === "object" && source[key] !== null) {
1405
- target[key] = deepMerge(target[key] || {}, source[key]);
1406
- } else {
1407
- target[key] = source[key];
1445
+ if (Array.isArray(target) && Array.isArray(source)) {
1446
+ return [...target, ...source];
1447
+ }
1448
+ if (isPlainObject(target) && isPlainObject(source)) {
1449
+ const result = { ...target };
1450
+ for (const key of Object.keys(source)) {
1451
+ if (key === "__proto__" || key === "constructor" || key === "prototype") {
1452
+ continue;
1453
+ }
1454
+ result[key] = key in target ? deepMerge(target[key], source[key]) : source[key];
1408
1455
  }
1456
+ return result;
1409
1457
  }
1410
- return target;
1458
+ return source;
1411
1459
  }
1412
1460
  __name(deepMerge, "deepMerge");
1413
1461
  function shuffleArray(array) {
@@ -1472,6 +1520,7 @@ var advElement = {
1472
1520
  createInput: elementCreateInput,
1473
1521
  createLabel: elementCreateLabel,
1474
1522
  createCustom: elementCreateCustom,
1523
+ createDropdown: elementCreateDropdown,
1475
1524
  createTooltip: elementCreateTooltip,
1476
1525
  getTooltip: elementGetTooltip,
1477
1526
  setTooltip: elementSetTooltip,
@@ -1502,7 +1551,7 @@ function elementCreateButton(options) {
1502
1551
  disabled
1503
1552
  },
1504
1553
  children: [
1505
- image ? {
1554
+ image ? deepMerge({
1506
1555
  tag: "img",
1507
1556
  attributes: {
1508
1557
  id: `${options.id}-image`,
@@ -1515,7 +1564,7 @@ function elementCreateButton(options) {
1515
1564
  style: {
1516
1565
  "--image": `url("${image}")`
1517
1566
  }
1518
- } : void 0
1567
+ }, options.htmlOptions?.img) : void 0
1519
1568
  ]
1520
1569
  }
1521
1570
  }, options.htmlOptions ?? {})
@@ -1529,7 +1578,7 @@ function elementCreateCheckbox(options) {
1529
1578
  if (elem) return elem;
1530
1579
  options.type = "checkbox";
1531
1580
  const disabled = typeof options?.disabled === "function" ? options?.disabled() : options?.disabled;
1532
- const retElem = ElementCreate({
1581
+ const retElem = ElementCreate(deepMerge({
1533
1582
  tag: "div",
1534
1583
  classList: ["deeplib-checkbox-container"],
1535
1584
  attributes: {
@@ -1544,23 +1593,23 @@ function elementCreateCheckbox(options) {
1544
1593
  id: options.id,
1545
1594
  disabled,
1546
1595
  checked: options?.setElementValue?.() || void 0
1596
+ },
1597
+ eventListeners: {
1598
+ change: /* @__PURE__ */ __name(function() {
1599
+ options?.setSettingValue?.(this.checked);
1600
+ }, "change")
1547
1601
  }
1548
- }, options.htmlOptions),
1549
- {
1602
+ }, options.htmlOptions?.checkbox),
1603
+ deepMerge({
1550
1604
  tag: "label",
1551
1605
  classList: ["deeplib-text"],
1552
1606
  attributes: {
1553
1607
  for: options.id
1554
1608
  },
1555
1609
  children: [options.label]
1556
- }
1557
- ],
1558
- eventListeners: {
1559
- change: /* @__PURE__ */ __name(() => {
1560
- options?.setSettingValue?.(document.getElementById(options.id)?.checked);
1561
- }, "change")
1562
- }
1563
- });
1610
+ }, options.htmlOptions?.label)
1611
+ ]
1612
+ }, options.htmlOptions?.container));
1564
1613
  if (options.description) {
1565
1614
  retElem.addEventListener("mouseover", () => {
1566
1615
  elementSetTooltip(options.description || "");
@@ -1574,7 +1623,10 @@ function elementCreateCheckbox(options) {
1574
1623
  }
1575
1624
  __name(elementCreateCheckbox, "elementCreateCheckbox");
1576
1625
  function elementCreateCustom(options) {
1577
- const elem = document.getElementById(options.id);
1626
+ options.id ??= ElementGenerateID();
1627
+ options.htmlOptions.attributes ??= {};
1628
+ options.htmlOptions.attributes.id ??= options.id;
1629
+ const elem = document.getElementById(options.htmlOptions.attributes.id);
1578
1630
  if (elem) return elem;
1579
1631
  options.type = "custom";
1580
1632
  const retElem = ElementCreate(options.htmlOptions);
@@ -1586,7 +1638,7 @@ function elementCreateInput(options) {
1586
1638
  const elem = document.getElementById(options.id);
1587
1639
  if (elem) return elem;
1588
1640
  const disabled = typeof options?.disabled === "function" ? options?.disabled() : options?.disabled;
1589
- const retElem = ElementCreate({
1641
+ const retElem = ElementCreate(deepMerge({
1590
1642
  tag: "div",
1591
1643
  classList: ["deeplib-input-container"],
1592
1644
  attributes: {
@@ -1602,23 +1654,23 @@ function elementCreateInput(options) {
1602
1654
  placeholder: " ",
1603
1655
  disabled,
1604
1656
  value: options?.setElementValue?.() || void 0
1657
+ },
1658
+ eventListeners: {
1659
+ input: /* @__PURE__ */ __name(function() {
1660
+ options?.setSettingValue?.(this.value);
1661
+ }, "input")
1605
1662
  }
1606
- }, options.htmlOptions),
1607
- options.label ? {
1663
+ }, options.htmlOptions?.input),
1664
+ options.label ? deepMerge({
1608
1665
  tag: "label",
1609
1666
  classList: ["deeplib-text"],
1610
1667
  attributes: {
1611
1668
  for: options.id
1612
1669
  },
1613
1670
  children: [options.label]
1614
- } : void 0
1615
- ],
1616
- eventListeners: {
1617
- input: /* @__PURE__ */ __name(() => {
1618
- options?.setSettingValue?.(document.getElementById(options.id)?.value);
1619
- }, "input")
1620
- }
1621
- });
1671
+ }, options.htmlOptions?.label) : void 0
1672
+ ]
1673
+ }, options.htmlOptions?.container));
1622
1674
  if (options.description) {
1623
1675
  retElem.addEventListener("mouseover", () => {
1624
1676
  elementSetTooltip(options.description || "");
@@ -1657,6 +1709,49 @@ function elementCreateLabel(options) {
1657
1709
  return retElem;
1658
1710
  }
1659
1711
  __name(elementCreateLabel, "elementCreateLabel");
1712
+ function elementCreateDropdown(options) {
1713
+ options.id ??= ElementGenerateID();
1714
+ const elem = document.getElementById(`${options.id}-container`);
1715
+ if (elem) return elem;
1716
+ options.type = "dropdown";
1717
+ const retElem = ElementCreate(deepMerge({
1718
+ tag: "div",
1719
+ classList: ["deeplib-dropdown-container"],
1720
+ attributes: {
1721
+ id: `${options.id}-container`
1722
+ },
1723
+ children: [
1724
+ options.label ? deepMerge({
1725
+ tag: "label",
1726
+ classList: ["deeplib-text"],
1727
+ attributes: {
1728
+ for: options.id
1729
+ },
1730
+ children: [options.label]
1731
+ }, options.htmlOptions?.label) : void 0,
1732
+ ElementCreateDropdown(
1733
+ options.id,
1734
+ options.optionsList,
1735
+ function() {
1736
+ return options.setSettingValue?.(this.value);
1737
+ },
1738
+ options.options,
1739
+ options.htmlOptions?.select
1740
+ )
1741
+ ],
1742
+ eventListeners: {
1743
+ mouseover: /* @__PURE__ */ __name(function() {
1744
+ elementSetTooltip(options.description ?? "");
1745
+ }, "mouseover"),
1746
+ mouseout: /* @__PURE__ */ __name(function() {
1747
+ elementSetTooltip("");
1748
+ }, "mouseout")
1749
+ }
1750
+ }, options.htmlOptions?.container));
1751
+ BaseSubscreen.currentElements.push([retElem, options]);
1752
+ return retElem;
1753
+ }
1754
+ __name(elementCreateDropdown, "elementCreateDropdown");
1660
1755
  function elementCreateTooltip() {
1661
1756
  const element = ElementCreate({
1662
1757
  tag: "div",
@@ -1985,7 +2080,9 @@ var MainMenu = class _MainMenu extends BaseSubscreen {
1985
2080
  subscreens = [];
1986
2081
  static options = {};
1987
2082
  static subscreenOptions = {
1988
- name: "mainmenu"
2083
+ name: "mainmenu",
2084
+ doShowExitButton: false,
2085
+ settingsWidth: 600
1989
2086
  };
1990
2087
  constructor(module) {
1991
2088
  super(module);
@@ -2168,18 +2265,6 @@ var MainMenu = class _MainMenu extends BaseSubscreen {
2168
2265
  _MainMenu.options = mainMenuOptions;
2169
2266
  }
2170
2267
  };
2171
- async function PreferenceOpenSubscreen(subscreen, page = 1) {
2172
- if (CurrentModule !== "Character" || CurrentScreen !== "Preference") {
2173
- await CommonSetScreen("Character", "Preference");
2174
- }
2175
- PreferenceSubscreen?.unload?.();
2176
- PreferenceSubscreen = PreferenceSubscreens.find((s) => s.name === subscreen) ?? null;
2177
- if (!CommonIsNonNegativeInteger(page)) page = 1;
2178
- PreferencePageCurrent = page;
2179
- PreferenceMessage = "";
2180
- PreferenceSubscreen?.load?.();
2181
- }
2182
- __name(PreferenceOpenSubscreen, "PreferenceOpenSubscreen");
2183
2268
 
2184
2269
  // src/screens/import_export.ts
2185
2270
  var GuiImportExport = class extends BaseSubscreen {
@@ -2436,7 +2521,9 @@ var ModStorage = class _ModStorage {
2436
2521
  if (this.extensionStorage) {
2437
2522
  const parsed = _ModStorage.dataDecompress(this.extensionStorage || "");
2438
2523
  if (parsed === null || !Object.hasOwn(parsed, "Version")) {
2439
- this.playerStorage = {};
2524
+ this.playerStorage = {
2525
+ Version: ModSdkManager.ModInfo.version
2526
+ };
2440
2527
  } else {
2441
2528
  this.playerStorage = parsed;
2442
2529
  }
@@ -3072,7 +3159,6 @@ export {
3072
3159
  getText,
3073
3160
  hasGetter,
3074
3161
  hasSetter,
3075
- init,
3076
3162
  initMod,
3077
3163
  layout,
3078
3164
  modStorage,