@rpg-engine/long-bow 0.4.7 → 0.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +181 -181
  3. package/dist/components/ConfirmModal.d.ts +8 -0
  4. package/dist/components/DraggableContainer.d.ts +1 -0
  5. package/dist/components/Item/Inventory/ItemSlot.d.ts +7 -7
  6. package/dist/components/Marketplace/BuyPanel.d.ts +22 -0
  7. package/dist/components/Marketplace/ManagmentPanel.d.ts +18 -0
  8. package/dist/components/Marketplace/Marketplace.d.ts +22 -9
  9. package/dist/components/Marketplace/MarketplaceRows.d.ts +3 -1
  10. package/dist/components/Marketplace/{__mocks__ → filters}/index.d.ts +1 -3
  11. package/dist/components/Pager.d.ts +9 -0
  12. package/dist/long-bow.cjs.development.js +1540 -1163
  13. package/dist/long-bow.cjs.development.js.map +1 -1
  14. package/dist/long-bow.cjs.production.min.js +1 -1
  15. package/dist/long-bow.cjs.production.min.js.map +1 -1
  16. package/dist/long-bow.esm.js +1594 -1217
  17. package/dist/long-bow.esm.js.map +1 -1
  18. package/package.json +100 -100
  19. package/src/components/Abstractions/ModalPortal.tsx +22 -22
  20. package/src/components/Abstractions/SlotsContainer.tsx +62 -62
  21. package/src/components/Arrow/SelectArrow.tsx +69 -69
  22. package/src/components/Arrow/img/arrow01-left-clicked.png +0 -0
  23. package/src/components/Arrow/img/arrow01-left.png +0 -0
  24. package/src/components/Arrow/img/arrow01-right-clicked.png +0 -0
  25. package/src/components/Arrow/img/arrow01-right.png +0 -0
  26. package/src/components/Arrow/img/arrow02-left-clicked.png +0 -0
  27. package/src/components/Arrow/img/arrow02-left.png +0 -0
  28. package/src/components/Arrow/img/arrow02-right-clicked.png +0 -0
  29. package/src/components/Arrow/img/arrow02-right.png +0 -0
  30. package/src/components/Button.tsx +40 -40
  31. package/src/components/Character/CharacterSelection.tsx +98 -98
  32. package/src/components/CharacterStatus/CharacterStatus.tsx +120 -120
  33. package/src/components/Chat/Chat.tsx +196 -196
  34. package/src/components/Chatdeprecated/ChatDeprecated.tsx +198 -198
  35. package/src/components/CheckButton.tsx +65 -65
  36. package/src/components/CircularController/CircularController.tsx +282 -282
  37. package/src/components/ConfirmModal.tsx +87 -0
  38. package/src/components/CraftBook/CraftBook.tsx +286 -286
  39. package/src/components/CraftBook/CraftingRecipe.tsx +161 -161
  40. package/src/components/CraftBook/MockItems.ts +101 -101
  41. package/src/components/DraggableContainer.tsx +183 -180
  42. package/src/components/Dropdown.tsx +14 -6
  43. package/src/components/DropdownSelectorContainer.tsx +42 -42
  44. package/src/components/Equipment/EquipmentSet.tsx +199 -199
  45. package/src/components/HistoryDialog.tsx +104 -104
  46. package/src/components/Input.tsx +15 -15
  47. package/src/components/InputRadio.tsx +41 -41
  48. package/src/components/Item/Cards/ItemInfo.tsx +298 -298
  49. package/src/components/Item/Cards/ItemInfoDisplay.tsx +135 -135
  50. package/src/components/Item/Cards/ItemInfoWrapper.tsx +62 -62
  51. package/src/components/Item/Cards/ItemTooltip.tsx +83 -83
  52. package/src/components/Item/Cards/MobileItemTooltip.tsx +149 -149
  53. package/src/components/Item/Inventory/ErrorBoundary.tsx +42 -42
  54. package/src/components/Item/Inventory/ItemContainer.tsx +231 -231
  55. package/src/components/Item/Inventory/ItemContainerTypes.ts +6 -6
  56. package/src/components/Item/Inventory/ItemQuantitySelector.tsx +138 -138
  57. package/src/components/Item/Inventory/ItemSlot.tsx +595 -580
  58. package/src/components/Item/Inventory/itemContainerHelper.ts +175 -175
  59. package/src/components/ListMenu.tsx +63 -63
  60. package/src/components/Marketplace/BuyPanel.tsx +296 -0
  61. package/src/components/Marketplace/ManagmentPanel.tsx +247 -0
  62. package/src/components/Marketplace/Marketplace.tsx +106 -132
  63. package/src/components/Marketplace/MarketplaceRows.tsx +161 -171
  64. package/src/components/Marketplace/{__mocks__ → filters}/index.tsx +67 -65
  65. package/src/components/Multitab/Tab.tsx +66 -66
  66. package/src/components/Multitab/TabBody.tsx +13 -13
  67. package/src/components/Multitab/TabsContainer.tsx +97 -97
  68. package/src/components/NPCDialog/NPCDialog.tsx +121 -121
  69. package/src/components/NPCDialog/NPCDialogText.tsx +113 -113
  70. package/src/components/NPCDialog/NPCMultiDialog.tsx +159 -159
  71. package/src/components/NPCDialog/QuestionDialog/QuestionDialog.tsx +237 -237
  72. package/src/components/Pager.tsx +94 -0
  73. package/src/components/ProgressBar.tsx +95 -95
  74. package/src/components/PropertySelect/PropertySelect.tsx +106 -106
  75. package/src/components/QuestInfo/QuestInfo.tsx +233 -233
  76. package/src/components/QuestList.tsx +135 -135
  77. package/src/components/RPGUIContainer.tsx +47 -47
  78. package/src/components/RPGUIForceRenderStart.tsx +45 -45
  79. package/src/components/RPGUIRoot.tsx +14 -14
  80. package/src/components/RadioButton.tsx +53 -53
  81. package/src/components/RadioInput/RadioButton.tsx +96 -96
  82. package/src/components/RadioInput/RadioInput.tsx +102 -102
  83. package/src/components/RadioInput/instruments.ts +15 -15
  84. package/src/components/RangeSlider.tsx +78 -78
  85. package/src/components/RelativeListMenu.tsx +90 -90
  86. package/src/components/ScrollList.tsx +79 -79
  87. package/src/components/Shortcuts/Shortcuts.tsx +193 -193
  88. package/src/components/Shortcuts/ShortcutsSetter.tsx +139 -139
  89. package/src/components/Shortcuts/SingleShortcut.ts +82 -82
  90. package/src/components/Shortcuts/useShortcutCooldown.ts +23 -23
  91. package/src/components/SimpleProgressBar.tsx +62 -62
  92. package/src/components/SkillProgressBar.tsx +198 -198
  93. package/src/components/SkillsContainer.tsx +213 -213
  94. package/src/components/Spellbook/Spell.tsx +235 -236
  95. package/src/components/Spellbook/Spellbook.tsx +145 -161
  96. package/src/components/Spellbook/cards/MobileSpellTooltip.tsx +137 -137
  97. package/src/components/Spellbook/cards/SpellInfo.tsx +134 -134
  98. package/src/components/Spellbook/cards/SpellInfoDisplay.tsx +31 -31
  99. package/src/components/Spellbook/cards/SpellInfoWrapper.tsx +48 -48
  100. package/src/components/Spellbook/cards/SpellTooltip.tsx +70 -70
  101. package/src/components/Spellbook/constants.ts +7 -7
  102. package/src/components/Spellbook/mockSpells.ts +84 -84
  103. package/src/components/StaticBook/StaticBook.tsx +103 -103
  104. package/src/components/TextArea.tsx +11 -11
  105. package/src/components/TimeWidget/DayNightPeriod/DayNightPeriod.tsx +35 -35
  106. package/src/components/TimeWidget/TimeWidget.tsx +65 -65
  107. package/src/components/TradingMenu/TradingItemRow.tsx +199 -199
  108. package/src/components/TradingMenu/TradingMenu.tsx +219 -219
  109. package/src/components/TradingMenu/items.mock.ts +48 -48
  110. package/src/components/Truncate.tsx +25 -25
  111. package/src/components/itemSelector/ItemSelector.tsx +136 -136
  112. package/src/components/shared/Column.tsx +16 -16
  113. package/src/components/shared/Ellipsis.tsx +76 -68
  114. package/src/components/shared/SpriteFromAtlas.tsx +104 -104
  115. package/src/components/typography/DynamicText.tsx +49 -49
  116. package/src/constants/uiColors.ts +20 -20
  117. package/src/constants/uiDevices.ts +3 -3
  118. package/src/constants/uiFonts.ts +12 -12
  119. package/src/hooks/useEventListener.ts +21 -21
  120. package/src/hooks/useOutsideAlerter.ts +25 -25
  121. package/src/index.tsx +42 -42
  122. package/src/libs/CastingTypeHelper.ts +7 -7
  123. package/src/libs/StringHelpers.ts +3 -3
  124. package/src/libs/itemCounter.ts +21 -21
  125. package/src/mocks/atlas/entities/entities.json +20215 -20215
  126. package/src/mocks/atlas/icons/icons.json +735 -735
  127. package/src/mocks/atlas/items/items.json +12086 -12086
  128. package/src/mocks/equipmentSet.mocks.ts +391 -391
  129. package/src/mocks/itemContainer.mocks.ts +605 -605
  130. package/src/mocks/skills.mocks.ts +130 -130
  131. package/src/stories/Arrow.stories.tsx +26 -26
  132. package/src/stories/Button.stories.tsx +36 -36
  133. package/src/stories/CharacterSelection.stories.tsx +44 -44
  134. package/src/stories/CharacterStatus.stories.tsx +29 -29
  135. package/src/stories/Chat.stories.tsx +187 -187
  136. package/src/stories/ChatDeprecated.stories.tsx +170 -170
  137. package/src/stories/CheckButton.stories.tsx +48 -48
  138. package/src/stories/CircullarController.stories.tsx +37 -37
  139. package/src/stories/CraftBook.stories.tsx +42 -42
  140. package/src/stories/DayNightPeriod.stories.tsx +27 -27
  141. package/src/stories/DraggableContainer.stories.tsx +28 -28
  142. package/src/stories/Dropdown.stories.tsx +46 -46
  143. package/src/stories/DropdownSelectorContainer.stories.tsx +41 -41
  144. package/src/stories/EquipmentSet.stories.tsx +65 -65
  145. package/src/stories/HistoryDialog.stories.tsx +61 -61
  146. package/src/stories/ItemContainer.stories.tsx +201 -201
  147. package/src/stories/ItemInfoDisplay.stories.tsx +33 -33
  148. package/src/stories/ItemQuantitySelector.stories.tsx +26 -26
  149. package/src/stories/ItemSelector.stories.tsx +77 -77
  150. package/src/stories/ItemTradingComponent.stories.tsx +35 -35
  151. package/src/stories/ListMenu.stories.tsx +56 -56
  152. package/src/stories/Marketplace.stories.tsx +53 -42
  153. package/src/stories/MarketplaceRows.stories.tsx +28 -28
  154. package/src/stories/Multitab.stories.tsx +51 -51
  155. package/src/stories/NPCDialog.stories.tsx +130 -130
  156. package/src/stories/NPCMultiDialog.stories.tsx +71 -71
  157. package/src/stories/ProgressBar.stories.tsx +23 -23
  158. package/src/stories/PropertySelect.stories.tsx +40 -40
  159. package/src/stories/QuestInfo.stories.tsx +107 -107
  160. package/src/stories/QuestList.stories.tsx +82 -82
  161. package/src/stories/RPGUIContainers.stories.tsx +42 -42
  162. package/src/stories/RadioButton.stories.tsx +49 -49
  163. package/src/stories/RadioInput.stories.tsx +34 -34
  164. package/src/stories/RangeSlider.stories.tsx +64 -64
  165. package/src/stories/ScrollList.stories.tsx +85 -85
  166. package/src/stories/Shortcuts.stories.tsx +39 -39
  167. package/src/stories/SimpleProgressBar.stories.tsx +22 -22
  168. package/src/stories/SkillProgressBar.stories.tsx +34 -34
  169. package/src/stories/SkillsContainer.stories.tsx +35 -35
  170. package/src/stories/SpellInfoDisplay.stories.tsx +27 -27
  171. package/src/stories/Spellbook.stories.tsx +104 -104
  172. package/src/stories/StaticBook.stories.tsx +32 -32
  173. package/src/stories/Text.stories.tsx +42 -42
  174. package/src/stories/TimeWidget.stories.tsx +27 -27
  175. package/src/stories/TradingMenu.stories.tsx +47 -47
  176. package/src/types/eventTypes.ts +4 -4
  177. package/src/types/index.d.ts +2 -2
@@ -1,6 +1,6 @@
1
1
  import React, { Component, useState, useEffect, useRef, useMemo, Fragment } from 'react';
2
2
  import styled from 'styled-components';
3
- import { GRID_WIDTH, GRID_HEIGHT, ShortcutType, getItemTextureKeyPath, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemRarities, ItemSubType, ItemSlotType, isMobileOrTablet, getSPForLevel, PeriodOfDay } from '@rpg-engine/shared';
3
+ import { GRID_WIDTH, GRID_HEIGHT, ShortcutType, getItemTextureKeyPath, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemRarities, ItemSubType, ItemSlotType, getSPForLevel, PeriodOfDay, isMobileOrTablet } from '@rpg-engine/shared';
4
4
  import dayjs from 'dayjs';
5
5
  import { ErrorBoundary as ErrorBoundary$1 } from 'react-error-boundary';
6
6
  import { RxPaperPlane } from 'react-icons/rx';
@@ -9,6 +9,7 @@ import ReactDOM from 'react-dom';
9
9
  import { camelCase } from 'lodash-es';
10
10
  import { observer } from 'mobx-react-lite';
11
11
  import { v4 } from 'uuid';
12
+ import { AiFillCaretRight } from 'react-icons/ai';
12
13
  import 'rpgui/rpgui.min.css';
13
14
  import 'rpgui/rpgui.min.js';
14
15
  import capitalize from 'lodash-es/capitalize';
@@ -12345,14 +12346,14 @@ var Ellipsis = function Ellipsis(_ref) {
12345
12346
  maxWidth: maxWidth,
12346
12347
  fontSize: fontSize,
12347
12348
  center: center
12348
- }, React.createElement("div", {
12349
+ }, React.createElement("span", {
12349
12350
  className: "ellipsis-" + maxLines + "-lines"
12350
12351
  }, children));
12351
12352
  };
12352
- var Container$1 = /*#__PURE__*/styled.div.withConfig({
12353
+ var Container$1 = /*#__PURE__*/styled.span.withConfig({
12353
12354
  displayName: "Ellipsis__Container",
12354
12355
  componentId: "sc-ysrlju-0"
12355
- })([".ellipsis-1-lines{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:", ";font-size:", ";", "}.ellipsis-2-lines{display:-webkit-box;max-width:", "px;height:25px;margin:0 auto;line-height:1;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-overflow:ellipsis;overflow:hidden;font-size:", ";}.ellipsis-3-lines{display:-webkit-box;max-width:", "px;height:43px;margin:0 auto;line-height:1;-webkit-line-clamp:3;-webkit-box-orient:vertical;text-overflow:ellipsis;overflow:hidden;font-size:", ";}"], function (props) {
12356
+ })(["display:block;margin:0;.ellipsis-1-lines{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:", ";font-size:", ";", "}.ellipsis-2-lines{display:block;display:-webkit-box;max-width:", "px;height:25px;margin:0 auto;line-height:1;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-overflow:ellipsis;overflow:hidden;font-size:", ";}.ellipsis-3-lines{display:block;display:-webkit-box;max-width:", "px;height:43px;margin:0 auto;line-height:1;-webkit-line-clamp:3;-webkit-box-orient:vertical;text-overflow:ellipsis;overflow:hidden;font-size:", ";}"], function (props) {
12356
12357
  return props.maxWidth;
12357
12358
  }, function (props) {
12358
12359
  return props.fontSize;
@@ -13051,7 +13052,9 @@ var DraggableContainer = function DraggableContainer(_ref) {
13051
13052
  x: 0,
13052
13053
  y: 0
13053
13054
  } : _ref$initialPosition,
13054
- scale = _ref.scale;
13055
+ scale = _ref.scale,
13056
+ _ref$dragDisabled = _ref.dragDisabled,
13057
+ dragDisabled = _ref$dragDisabled === void 0 ? false : _ref$dragDisabled;
13055
13058
  var draggableRef = useRef(null);
13056
13059
  useOutsideClick(draggableRef, 'item-container');
13057
13060
  useEffect(function () {
@@ -13069,6 +13072,7 @@ var DraggableContainer = function DraggableContainer(_ref) {
13069
13072
  }, []);
13070
13073
  return React.createElement(Draggable, {
13071
13074
  cancel: ".container-close," + cancelDrag,
13075
+ disabled: dragDisabled,
13072
13076
  onDrag: function onDrag(_e, data) {
13073
13077
  if (onPositionChange) {
13074
13078
  onPositionChange({
@@ -13493,7 +13497,7 @@ var ItemSlot = /*#__PURE__*/observer(function (_ref) {
13493
13497
  y: 0
13494
13498
  });
13495
13499
  setIsFocused(false);
13496
- if (item) {
13500
+ if (item && containerType) {
13497
13501
  setContextActions(generateContextMenu(item, containerType, isDepotSystem));
13498
13502
  }
13499
13503
  }, [item, isDepotSystem]);
@@ -13609,7 +13613,7 @@ var ItemSlot = /*#__PURE__*/observer(function (_ref) {
13609
13613
  });
13610
13614
  setIsFocused(false);
13611
13615
  } else if (item) {
13612
- onDragEnd(quantity);
13616
+ onDragEnd == null ? void 0 : onDragEnd(quantity);
13613
13617
  }
13614
13618
  };
13615
13619
  return React.createElement(Container$a, {
@@ -13617,7 +13621,7 @@ var ItemSlot = /*#__PURE__*/observer(function (_ref) {
13617
13621
  className: "rpgui-icon empty-slot",
13618
13622
  onMouseUp: function onMouseUp() {
13619
13623
  var data = item ? item : null;
13620
- if (onPlaceDrop) onPlaceDrop(data, slotIndex, containerType);
13624
+ if (onPlaceDrop && containerType) onPlaceDrop(data, slotIndex, containerType);
13621
13625
  },
13622
13626
  onTouchEnd: function onTouchEnd(e) {
13623
13627
  var _document$elementFrom;
@@ -13631,11 +13635,15 @@ var ItemSlot = /*#__PURE__*/observer(function (_ref) {
13631
13635
  });
13632
13636
  (_document$elementFrom = document.elementFromPoint(clientX, clientY)) == null ? void 0 : _document$elementFrom.dispatchEvent(simulatedEvent);
13633
13637
  },
13638
+ onPointerDown: onDragStart !== undefined && onDragEnd !== undefined ? undefined : function () {
13639
+ if (item) onPointerDown(item.type, containerType != null ? containerType : null, item);
13640
+ },
13634
13641
  isSelectingShortcut: isSelectingShortcut && ((item == null ? void 0 : item.type) === ItemType.Consumable || (item == null ? void 0 : item.type) === ItemType.Tool)
13635
13642
  }, React.createElement(Draggable, {
13636
13643
  axis: isSelectingShortcut ? 'none' : 'both',
13637
13644
  defaultClassName: item ? 'draggable' : 'empty-slot',
13638
13645
  scale: dragScale,
13646
+ disabled: onDragStart === undefined || onDragEnd === undefined,
13639
13647
  onStop: function onStop(e, data) {
13640
13648
  var target = e.target;
13641
13649
  if (target != null && target.id.includes('shortcutSetter') && setItemShortcut && item) {
@@ -13669,7 +13677,7 @@ var ItemSlot = /*#__PURE__*/observer(function (_ref) {
13669
13677
  y: y
13670
13678
  });
13671
13679
  setTimeout(function () {
13672
- if (checkIfItemCanBeMoved()) {
13680
+ if (checkIfItemCanBeMoved != null && checkIfItemCanBeMoved()) {
13673
13681
  if (checkIfItemShouldDragEnd && !checkIfItemShouldDragEnd()) return;
13674
13682
  if (item.stackQty && item.stackQty !== 1 && openQuantitySelector) openQuantitySelector(item.stackQty, onSuccesfulDrag);else onSuccesfulDrag(item.stackQty);
13675
13683
  } else {
@@ -13697,14 +13705,14 @@ var ItemSlot = /*#__PURE__*/observer(function (_ref) {
13697
13705
  });
13698
13706
  }
13699
13707
  }
13700
- onPointerDown(item.type, containerType, item);
13708
+ onPointerDown(item.type, containerType != null ? containerType : null, item);
13701
13709
  }
13702
13710
  },
13703
13711
  onStart: function onStart() {
13704
13712
  if (!item || isSelectingShortcut) {
13705
13713
  return;
13706
13714
  }
13707
- if (onDragStart) {
13715
+ if (onDragStart && containerType) {
13708
13716
  onDragStart(item, slotIndex, containerType);
13709
13717
  }
13710
13718
  },
@@ -13720,7 +13728,7 @@ var ItemSlot = /*#__PURE__*/observer(function (_ref) {
13720
13728
  ref: dragContainer,
13721
13729
  isFocused: isFocused,
13722
13730
  onMouseOver: function onMouseOver(event) {
13723
- _onMouseOver(event, slotIndex, item, event.clientX, event.clientY);
13731
+ _onMouseOver == null ? void 0 : _onMouseOver(event, slotIndex, item, event.clientX, event.clientY);
13724
13732
  },
13725
13733
  onMouseOut: function onMouseOut() {
13726
13734
  if (_onMouseOut) _onMouseOut();
@@ -13749,7 +13757,7 @@ var ItemSlot = /*#__PURE__*/observer(function (_ref) {
13749
13757
  onSelected: function onSelected(optionId) {
13750
13758
  setIsContextMenuVisible(false);
13751
13759
  if (item) {
13752
- _onSelected(optionId, item);
13760
+ _onSelected == null ? void 0 : _onSelected(optionId, item);
13753
13761
  }
13754
13762
  }
13755
13763
  }), !isContextMenuDisabled && isContextMenuVisible && contextActions && React.createElement(RelativeListMenu, {
@@ -13757,7 +13765,7 @@ var ItemSlot = /*#__PURE__*/observer(function (_ref) {
13757
13765
  onSelected: function onSelected(optionId) {
13758
13766
  setIsContextMenuVisible(false);
13759
13767
  if (item) {
13760
- _onSelected(optionId, item);
13768
+ _onSelected == null ? void 0 : _onSelected(optionId, item);
13761
13769
  }
13762
13770
  },
13763
13771
  onOutsideClick: function onOutsideClick() {
@@ -14430,7 +14438,7 @@ var Dropdown = function Dropdown(_ref) {
14430
14438
  }, React.createElement(DropdownSelect, {
14431
14439
  id: "dropdown-" + dropdownId,
14432
14440
  className: "rpgui-dropdown-imp rpgui-dropdown-imp-header",
14433
- onPointerDown: function onPointerDown() {
14441
+ onPointerUp: function onPointerUp() {
14434
14442
  return setOpened(function (prev) {
14435
14443
  return !prev;
14436
14444
  });
@@ -14441,7 +14449,7 @@ var Dropdown = function Dropdown(_ref) {
14441
14449
  }, options.map(function (option) {
14442
14450
  return React.createElement("li", {
14443
14451
  key: option.id,
14444
- onPointerDown: function onPointerDown() {
14452
+ onPointerUp: function onPointerUp() {
14445
14453
  setSelectedValue(option.value);
14446
14454
  setSelectedOption(option.option);
14447
14455
  setOpened(false);
@@ -14458,11 +14466,11 @@ var Container$d = /*#__PURE__*/styled.div.withConfig({
14458
14466
  var DropdownSelect = /*#__PURE__*/styled.p.withConfig({
14459
14467
  displayName: "Dropdown__DropdownSelect",
14460
14468
  componentId: "sc-8arn65-1"
14461
- })(["width:100%;box-sizing:border-box;"]);
14469
+ })(["width:100%;box-sizing:border-box;label{display:inline-block;transform:translateY(-2px);}"]);
14462
14470
  var DropdownOptions = /*#__PURE__*/styled.ul.withConfig({
14463
14471
  displayName: "Dropdown__DropdownOptions",
14464
14472
  componentId: "sc-8arn65-2"
14465
- })(["position:absolute;width:100%;display:", ";box-sizing:border-box;@media (max-width:768px){padding:8px 0;}"], function (props) {
14473
+ })(["position:absolute;width:100%;max-height:300px;overflow-y:auto;display:", ";box-sizing:border-box;@media (max-width:768px){padding:8px 0;}"], function (props) {
14466
14474
  return props.opened ? 'block' : 'none';
14467
14475
  });
14468
14476
 
@@ -14588,1240 +14596,1407 @@ var EquipmentColumn = /*#__PURE__*/styled.div.withConfig({
14588
14596
  componentId: "sc-1wuddg2-1"
14589
14597
  })(["display:flex;justify-content:center;flex-wrap:wrap;flex-direction:column;touch-action:none;"]);
14590
14598
 
14591
- var IS_MOBILE_OR_TABLET = /*#__PURE__*/isMobileOrTablet();
14592
-
14593
- var chunkString = function chunkString(str, length) {
14594
- return str.match(new RegExp('.{1,' + length + '}', 'g'));
14595
- };
14596
-
14597
- var DynamicText = function DynamicText(_ref) {
14598
- var text = _ref.text,
14599
- onFinish = _ref.onFinish,
14600
- onStart = _ref.onStart;
14601
- var _useState = useState(''),
14602
- textState = _useState[0],
14603
- setTextState = _useState[1];
14604
- useEffect(function () {
14605
- var i = 0;
14606
- var interval = setInterval(function () {
14607
- // on every interval, show one more character
14608
- if (i === 0) {
14609
- if (onStart) {
14610
- onStart();
14611
- }
14599
+ var SlotsContainer = function SlotsContainer(_ref) {
14600
+ var children = _ref.children,
14601
+ title = _ref.title,
14602
+ onClose = _ref.onClose,
14603
+ _onPositionChange = _ref.onPositionChange,
14604
+ _onPositionChangeEnd = _ref.onPositionChangeEnd,
14605
+ _onPositionChangeStart = _ref.onPositionChangeStart,
14606
+ onOutsideClick = _ref.onOutsideClick,
14607
+ initialPosition = _ref.initialPosition,
14608
+ scale = _ref.scale;
14609
+ return React.createElement(DraggableContainer, {
14610
+ title: title,
14611
+ type: RPGUIContainerTypes.Framed,
14612
+ onCloseButton: function onCloseButton() {
14613
+ if (onClose) {
14614
+ onClose();
14612
14615
  }
14613
- if (i < text.length) {
14614
- setTextState(text.substring(0, i + 1));
14615
- i++;
14616
- } else {
14617
- clearInterval(interval);
14618
- if (onFinish) {
14619
- onFinish();
14620
- }
14616
+ },
14617
+ width: "400px",
14618
+ cancelDrag: ".item-container-body, #shortcuts_list",
14619
+ onPositionChange: function onPositionChange(_ref2) {
14620
+ var x = _ref2.x,
14621
+ y = _ref2.y;
14622
+ if (_onPositionChange) {
14623
+ _onPositionChange({
14624
+ x: x,
14625
+ y: y
14626
+ });
14621
14627
  }
14622
- }, 50);
14623
- return function () {
14624
- clearInterval(interval);
14625
- };
14626
- }, [text]);
14627
- return React.createElement(TextContainer, null, textState);
14628
+ },
14629
+ onPositionChangeEnd: function onPositionChangeEnd(_ref3) {
14630
+ var x = _ref3.x,
14631
+ y = _ref3.y;
14632
+ if (_onPositionChangeEnd) {
14633
+ _onPositionChangeEnd({
14634
+ x: x,
14635
+ y: y
14636
+ });
14637
+ }
14638
+ },
14639
+ onPositionChangeStart: function onPositionChangeStart(_ref4) {
14640
+ var x = _ref4.x,
14641
+ y = _ref4.y;
14642
+ if (_onPositionChangeStart) {
14643
+ _onPositionChangeStart({
14644
+ x: x,
14645
+ y: y
14646
+ });
14647
+ }
14648
+ },
14649
+ onOutsideClick: onOutsideClick,
14650
+ initialPosition: initialPosition,
14651
+ scale: scale
14652
+ }, children);
14628
14653
  };
14629
- var TextContainer = /*#__PURE__*/styled.p.withConfig({
14630
- displayName: "DynamicText__TextContainer",
14631
- componentId: "sc-1ggl9nd-0"
14632
- })(["font-size:0.7rem !important;color:white;text-shadow:1px 1px 0px #000000;letter-spacing:1.2px;word-break:normal;"]);
14633
14654
 
14634
- var img$5 = 'data:image/gif;base64,R0lGODlhEAAQAPIAAAAAABQYLiw1TUBJc2hvmQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAM9CLrc/lCFGSKYJJP5AhlguDnBMIVgxXgmJapSSp3mKs/pKrT0IMCXUk+2Cgh2oSOnaDz+lswZpSOFUq2KBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAIzhI+py90Bg4OjDrjCELxfFQhQx0mIJkaeaYRp5LJADMdnqXbyOJLYTdKBejjZoRaZJBMFACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAABAAEAAAAjKEj6nL7Y+CDE6OO+QKQ/ifKYEgfR4VddPohQe7lmR0xidNTib65uacYP2AQWGuMlEUAAA7';
14635
-
14636
- var img$6 = 'data:image/gif;base64,R0lGODlhQAAgAPIAAAAAAA0NDRERESIiIigoKFlZWf///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw5nYW1tYT0wLjQ1NDU0NQAh+QQBFAAAACwAAAAAQAAgAAAD/wi63P4wykmrvTjrzbv/YAgIZGmeaKquakQWcCzPdG3fNukIeO//PQGDBywafcIF8chswpKKZcxApTqvNOiIZi0YsODncFaFlcNOrdTbJVff0/c3Lp/Xs2N37cy2ndt6ZnhKXHdsc4d7VnwyfIxqPWWOXXWLgHSGYoSNbZKVZp2WiJyjg1GFcaClqaqJhasyUAFrh3Cur3KqubWXBQIBAAEDtDeMaEEDAcLEx2gCycvN0jHPysPT09XR2M3a19zH3gTM4EYCBNDD4yzs7e4r48nB6gT19vf4+fr7/P3P8sKGvRtIkMUAeQoCHlzIsKHDhxAjSoTWQJnFixgzatzIsQWjRQYJAAAh/wtJbWFnZU1hZ2ljaw5nYW1tYT0wLjQ1NDU0NQAh+QQBFAAAACwAAAAAQAAgAAAD8Ai63P4wykmrvTjrzbv/YCiOlGCeaKqubMtGZiHPdG3feI6bjqD/wOBPwPAJj0ggcWFMOp+ypaI5M1it0KxNCqDKsAWDdhwt1q5fMPnJ9aJt17g4HafJ3/et+Tzn99V+aThqfTNtcHlhhIBVWG+BdDSHOmiPeHdij3aYhZONf46YkZGanzpSAV6KjaOIpqWtNwIBAAEDqqKKhZuJnHSwAgMBtqo5sGs5wcO3yM01ysTO0gXQzNPN1cXXUNnbyNna3kcmwrW3Lujp6ugD5bbn6/HyLe20Cu/t+fr7/P3+/wCF2VswrKDBgwgTKlzIsCCDBAA7';
14637
-
14638
- var NPCDialogText = function NPCDialogText(_ref) {
14639
- var text = _ref.text,
14640
- onClose = _ref.onClose,
14641
- onEndStep = _ref.onEndStep,
14642
- onStartStep = _ref.onStartStep,
14643
- type = _ref.type;
14644
- var windowSize = useRef([window.innerWidth, window.innerHeight]);
14645
- function maxCharacters(width) {
14646
- // Set the font size to 16 pixels
14647
- var fontSize = 11.2;
14648
- // Calculate the number of characters that can fit in one line
14649
- var charactersPerLine = Math.floor(width / 2 / fontSize);
14650
- // Calculate the number of lines that can fit in the div
14651
- var linesPerDiv = Math.floor(180 / fontSize);
14652
- // Calculate the maximum number of characters that can fit in the div
14653
- var maxCharacters = charactersPerLine * linesPerDiv;
14654
- // Return the maximum number of characters
14655
- return Math.round(maxCharacters / 5);
14656
- }
14657
- var textChunks = chunkString(text, maxCharacters(windowSize.current[0]));
14655
+ var RangeSliderType;
14656
+ (function (RangeSliderType) {
14657
+ RangeSliderType["Slider"] = "rpgui-slider";
14658
+ RangeSliderType["GoldSlider"] = "rpgui-slider golden";
14659
+ })(RangeSliderType || (RangeSliderType = {}));
14660
+ var RangeSlider = function RangeSlider(_ref) {
14661
+ var type = _ref.type,
14662
+ valueMin = _ref.valueMin,
14663
+ valueMax = _ref.valueMax,
14664
+ width = _ref.width,
14665
+ _onChange = _ref.onChange,
14666
+ value = _ref.value;
14667
+ var sliderId = v4();
14668
+ var containerRef = useRef(null);
14658
14669
  var _useState = useState(0),
14659
- chunkIndex = _useState[0],
14660
- setChunkIndex = _useState[1];
14661
- var onHandleSpacePress = function onHandleSpacePress(event) {
14662
- if (event.code === 'Space') {
14663
- goToNextStep();
14664
- }
14665
- };
14666
- var goToNextStep = function goToNextStep() {
14667
- var hasNextChunk = (textChunks == null ? void 0 : textChunks[chunkIndex + 1]) || false;
14668
- if (hasNextChunk) {
14669
- setChunkIndex(function (prev) {
14670
- return prev + 1;
14671
- });
14672
- } else {
14673
- // if there's no more text chunks, close the dialog
14674
- onClose();
14675
- }
14676
- };
14670
+ left = _useState[0],
14671
+ setLeft = _useState[1];
14677
14672
  useEffect(function () {
14678
- document.addEventListener('keydown', onHandleSpacePress);
14679
- return function () {
14680
- return document.removeEventListener('keydown', onHandleSpacePress);
14681
- };
14682
- }, [chunkIndex]);
14683
- var _useState2 = useState(false),
14684
- showGoNextIndicator = _useState2[0],
14685
- setShowGoNextIndicator = _useState2[1];
14686
- return React.createElement(Container$e, null, React.createElement(DynamicText, {
14687
- text: (textChunks == null ? void 0 : textChunks[chunkIndex]) || '',
14688
- onFinish: function onFinish() {
14689
- setShowGoNextIndicator(true);
14690
- onEndStep && onEndStep();
14673
+ var _containerRef$current;
14674
+ var calculatedWidth = ((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.clientWidth) || 0;
14675
+ setLeft(Math.max((value - valueMin) / (valueMax - valueMin) * (calculatedWidth - 35) + 10));
14676
+ }, [value, valueMin, valueMax]);
14677
+ var typeClass = type === RangeSliderType.GoldSlider ? 'golden' : '';
14678
+ return React.createElement("div", {
14679
+ style: {
14680
+ width: width,
14681
+ position: 'relative'
14691
14682
  },
14692
- onStart: function onStart() {
14693
- setShowGoNextIndicator(false);
14694
- onStartStep && onStartStep();
14683
+ className: "rpgui-slider-container " + typeClass,
14684
+ id: "rpgui-slider-" + sliderId,
14685
+ ref: containerRef
14686
+ }, React.createElement("div", {
14687
+ style: {
14688
+ pointerEvents: 'none'
14695
14689
  }
14696
- }), showGoNextIndicator && React.createElement(PressSpaceIndicator, {
14697
- right: type === NPCDialogType.TextOnly ? '1rem' : '10.5rem',
14698
- src: IS_MOBILE_OR_TABLET ? img$5 : img$6,
14699
- onPointerDown: function onPointerDown() {
14700
- goToNextStep();
14690
+ }, React.createElement("div", {
14691
+ className: "rpgui-slider-track " + typeClass
14692
+ }), React.createElement("div", {
14693
+ className: "rpgui-slider-left-edge " + typeClass
14694
+ }), React.createElement("div", {
14695
+ className: "rpgui-slider-right-edge " + typeClass
14696
+ }), React.createElement("div", {
14697
+ className: "rpgui-slider-thumb " + typeClass,
14698
+ style: {
14699
+ left: left
14701
14700
  }
14701
+ })), React.createElement(Input$1, {
14702
+ type: "range",
14703
+ style: {
14704
+ width: width
14705
+ },
14706
+ min: valueMin,
14707
+ max: valueMax,
14708
+ onChange: function onChange(e) {
14709
+ return _onChange(Number(e.target.value));
14710
+ },
14711
+ value: value,
14712
+ className: "rpgui-cursor-point"
14702
14713
  }));
14703
14714
  };
14704
- var Container$e = /*#__PURE__*/styled.div.withConfig({
14705
- displayName: "NPCDialogText__Container",
14706
- componentId: "sc-1cxkdh9-0"
14707
- })([""]);
14708
- var PressSpaceIndicator = /*#__PURE__*/styled.img.withConfig({
14709
- displayName: "NPCDialogText__PressSpaceIndicator",
14710
- componentId: "sc-1cxkdh9-1"
14711
- })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref2) {
14712
- var right = _ref2.right;
14713
- return right;
14714
- });
14715
-
14716
- //@ts-ignore
14717
- var useEventListener = function useEventListener(type, handler, el) {
14718
- if (el === void 0) {
14719
- el = window;
14720
- }
14721
- var savedHandler = React.useRef();
14722
- React.useEffect(function () {
14723
- savedHandler.current = handler;
14724
- }, [handler]);
14725
- React.useEffect(function () {
14726
- //@ts-ignore
14727
- var listener = function listener(e) {
14728
- return savedHandler.current(e);
14729
- };
14730
- el.addEventListener(type, listener);
14731
- return function () {
14732
- el.removeEventListener(type, listener);
14733
- };
14734
- }, [type, el]);
14735
- };
14715
+ var Input$1 = /*#__PURE__*/styled.input.withConfig({
14716
+ displayName: "RangeSlider__Input",
14717
+ componentId: "sc-v8mte9-0"
14718
+ })(["opacity:0;position:absolute;width:100%;height:100%;top:0;left:0;margin-top:-5px;"]);
14736
14719
 
14737
- var QuestionDialog = function QuestionDialog(_ref) {
14738
- var questions = _ref.questions,
14739
- answers = _ref.answers,
14720
+ var ItemQuantitySelector = function ItemQuantitySelector(_ref) {
14721
+ var quantity = _ref.quantity,
14722
+ onConfirm = _ref.onConfirm,
14740
14723
  onClose = _ref.onClose;
14741
- var _useState = useState(questions[0]),
14742
- currentQuestion = _useState[0],
14743
- setCurrentQuestion = _useState[1];
14744
- var _useState2 = useState(false),
14745
- canShowAnswers = _useState2[0],
14746
- setCanShowAnswers = _useState2[1];
14747
- var onGetFirstAnswer = function onGetFirstAnswer() {
14748
- if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {
14749
- return null;
14750
- }
14751
- var firstAnswerId = currentQuestion.answerIds[0];
14752
- return answers.find(function (answer) {
14753
- return answer.id === firstAnswerId;
14754
- });
14755
- };
14756
- var _useState3 = useState(onGetFirstAnswer()),
14757
- currentAnswer = _useState3[0],
14758
- setCurrentAnswer = _useState3[1];
14724
+ var _useState = useState(quantity),
14725
+ value = _useState[0],
14726
+ setValue = _useState[1];
14727
+ var inputRef = useRef(null);
14759
14728
  useEffect(function () {
14760
- setCurrentAnswer(onGetFirstAnswer());
14761
- }, [currentQuestion]);
14762
- var onGetAnswers = function onGetAnswers(answerIds) {
14763
- return answerIds.map(function (answerId) {
14764
- return answers.find(function (answer) {
14765
- return answer.id === answerId;
14766
- });
14767
- });
14768
- };
14769
- var onKeyPress = function onKeyPress(e) {
14770
- switch (e.key) {
14771
- case 'ArrowDown':
14772
- // select next answer, if any.
14773
- // if no next answer, select first answer
14774
- // const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(
14775
- // (answer) => answer?.id === currentAnswer!.id + 1
14776
- // );
14777
- var nextAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
14778
- return (answer == null ? void 0 : answer.id) === currentAnswer.id + 1;
14779
- });
14780
- var nextAnswerID = currentQuestion.answerIds[nextAnswerIndex];
14781
- var nextAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
14782
- return (answer == null ? void 0 : answer.id) === nextAnswerID;
14783
- });
14784
- setCurrentAnswer(nextAnswer || onGetFirstAnswer());
14785
- break;
14786
- case 'ArrowUp':
14787
- // select previous answer, if any.
14788
- // if no previous answer, select last answer
14789
- var previousAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
14790
- return (answer == null ? void 0 : answer.id) === currentAnswer.id - 1;
14791
- });
14792
- var previousAnswerID = currentQuestion.answerIds && currentQuestion.answerIds[previousAnswerIndex];
14793
- var previousAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
14794
- return (answer == null ? void 0 : answer.id) === previousAnswerID;
14795
- });
14796
- if (previousAnswer) {
14797
- setCurrentAnswer(previousAnswer);
14798
- } else {
14799
- setCurrentAnswer(onGetAnswers(currentQuestion.answerIds).pop());
14800
- }
14801
- break;
14802
- case 'Enter':
14803
- setCanShowAnswers(false);
14804
- if (!(currentAnswer != null && currentAnswer.nextQuestionId)) {
14729
+ if (inputRef.current) {
14730
+ inputRef.current.focus();
14731
+ inputRef.current.select();
14732
+ var closeSelector = function closeSelector(e) {
14733
+ if (e.key === 'Escape') {
14805
14734
  onClose();
14806
- return;
14807
- } else {
14808
- setCurrentQuestion(questions.find(function (question) {
14809
- return question.id === currentAnswer.nextQuestionId;
14810
- }));
14811
14735
  }
14812
- break;
14813
- }
14814
- };
14815
- useEventListener('keydown', onKeyPress);
14816
- var onAnswerClick = function onAnswerClick(answer) {
14817
- setCanShowAnswers(false);
14818
- if (answer.nextQuestionId) {
14819
- // if there is a next question, go to it
14820
- setCurrentQuestion(questions.find(function (question) {
14821
- return question.id === answer.nextQuestionId;
14822
- }));
14823
- } else {
14824
- // else, finish dialog!
14825
- onClose();
14826
- }
14827
- };
14828
- var onRenderCurrentAnswers = function onRenderCurrentAnswers() {
14829
- var answerIds = currentQuestion.answerIds;
14830
- if (!answerIds) {
14831
- return null;
14832
- }
14833
- var answers = onGetAnswers(answerIds);
14834
- if (!answers) {
14835
- return null;
14736
+ };
14737
+ document.addEventListener('keydown', closeSelector);
14738
+ return function () {
14739
+ document.removeEventListener('keydown', closeSelector);
14740
+ };
14836
14741
  }
14837
- return answers.map(function (answer) {
14838
- var isSelected = (currentAnswer == null ? void 0 : currentAnswer.id) === (answer == null ? void 0 : answer.id);
14839
- var selectedColor = isSelected ? 'yellow' : 'white';
14840
- if (answer) {
14841
- return React.createElement(AnswerRow, {
14842
- key: "answer_" + answer.id
14843
- }, React.createElement(AnswerSelectedIcon, {
14844
- color: selectedColor
14845
- }, isSelected ? 'X' : null), React.createElement(Answer, {
14846
- key: answer.id,
14847
- onPointerDown: function onPointerDown() {
14848
- return onAnswerClick(answer);
14849
- },
14850
- color: selectedColor
14851
- }, answer.text));
14852
- }
14853
- return null;
14854
- });
14855
- };
14856
- return React.createElement(Container$f, null, React.createElement(QuestionContainer, null, React.createElement(DynamicText, {
14857
- text: currentQuestion.text,
14858
- onStart: function onStart() {
14859
- return setCanShowAnswers(false);
14742
+ return function () {};
14743
+ }, []);
14744
+ return React.createElement(StyledContainer, {
14745
+ type: RPGUIContainerTypes.Framed,
14746
+ width: "25rem"
14747
+ }, React.createElement(CloseButton$2, {
14748
+ className: "container-close",
14749
+ onPointerDown: onClose
14750
+ }, "X"), React.createElement("h2", null, "Select quantity to move"), React.createElement(StyledForm, {
14751
+ style: {
14752
+ width: '100%'
14860
14753
  },
14861
- onFinish: function onFinish() {
14862
- return setCanShowAnswers(true);
14863
- }
14864
- })), canShowAnswers && React.createElement(AnswersContainer, null, onRenderCurrentAnswers()));
14865
- };
14866
- var Container$f = /*#__PURE__*/styled.div.withConfig({
14867
- displayName: "QuestionDialog__Container",
14868
- componentId: "sc-bxc5u0-0"
14869
- })(["display:flex;word-break:break-all;box-sizing:border-box;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;"]);
14870
- var QuestionContainer = /*#__PURE__*/styled.div.withConfig({
14871
- displayName: "QuestionDialog__QuestionContainer",
14872
- componentId: "sc-bxc5u0-1"
14873
- })(["flex:100%;width:100%;"]);
14874
- var AnswersContainer = /*#__PURE__*/styled.div.withConfig({
14875
- displayName: "QuestionDialog__AnswersContainer",
14876
- componentId: "sc-bxc5u0-2"
14877
- })(["flex:100%;"]);
14878
- var Answer = /*#__PURE__*/styled.p.withConfig({
14879
- displayName: "QuestionDialog__Answer",
14880
- componentId: "sc-bxc5u0-3"
14881
- })(["flex:auto;color:", " !important;font-size:0.65rem !important;background:inherit;border:none;"], function (props) {
14882
- return props.color;
14883
- });
14884
- var AnswerSelectedIcon = /*#__PURE__*/styled.span.withConfig({
14885
- displayName: "QuestionDialog__AnswerSelectedIcon",
14886
- componentId: "sc-bxc5u0-4"
14887
- })(["flex:5% 0 0;color:", " !important;"], function (props) {
14888
- return props.color;
14889
- });
14890
- var AnswerRow = /*#__PURE__*/styled.div.withConfig({
14891
- displayName: "QuestionDialog__AnswerRow",
14892
- componentId: "sc-bxc5u0-5"
14893
- })(["display:flex;flex-wrap:wrap;justify-content:center;align-items:center;margin-bottom:0.5rem;height:22px;p{line-height:unset;margin-top:0;margin-bottom:0rem;}"]);
14894
-
14895
- var img$7 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAP1BMVEUAAAA7FyVxQTsUEBPj5v////+5v/tCJDOOUlIiHBr1oJfptaO6dWr61rhzFy1bMTjoanMUNGQoXMQkn97+88DQ3IhAAAAAAXRSTlMAQObYZgAAAAFiS0dEBfhv6ccAAAAHdElNRQfmAw4VOBC7c5LYAAABM0lEQVQ4y3XRi5KDIAwFUAUkbrBgpP//rZsHVHQ009qZ3tPboNN0zmwzvcw8O5sX4y0NOg/Et3jRCXF+ziULorjkOQ9gE24dvuUAzq08DiCO4pe3WN7zCP56vmpubBReQYC11YPS86ySxxCsAABTSgjb5m4g8nfbxvFHBkH2OEEvAItVuCuIsgGgl+Gcr7kDXxhEAx55A2SQEEeQeZwUaIP8Tbo05B0RFPhItAjgj1w6cDnhLluDj+Egkh3pCCP4pKQAw1IPO0W9Nti5gW9RP2dKA3BZd2Dw+baYX+Nt4GM00O4S3kEpF6Alb2Bv4LeC3kkGfAW0/p0RPoJVKr63ghHsKuRh5DIUKOAlGOwrtt9fQekAEfmhZslHUDoglB0zjfkJigN7UnTQQ4GBWomoVhEN/AOPSBh38gy+fwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wMy0xNFQyMTo1NTo1MSswMDowMJcc0eEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDMtMTRUMjE6NTU6NTErMDA6MDDmQWldAAAAAElFTkSuQmCC';
14896
-
14897
- var NPCDialogType;
14898
- (function (NPCDialogType) {
14899
- NPCDialogType["TextOnly"] = "TextOnly";
14900
- NPCDialogType["TextAndThumbnail"] = "TextAndThumbnail";
14901
- })(NPCDialogType || (NPCDialogType = {}));
14902
- var NPCDialog = function NPCDialog(_ref) {
14903
- var text = _ref.text,
14904
- type = _ref.type,
14905
- _onClose = _ref.onClose,
14906
- imagePath = _ref.imagePath,
14907
- _ref$isQuestionDialog = _ref.isQuestionDialog,
14908
- isQuestionDialog = _ref$isQuestionDialog === void 0 ? false : _ref$isQuestionDialog,
14909
- questions = _ref.questions,
14910
- answers = _ref.answers;
14911
- return React.createElement(RPGUIContainer, {
14912
- type: RPGUIContainerTypes.FramedGold,
14913
- width: isQuestionDialog ? '600px' : '80%',
14914
- height: '180px'
14915
- }, isQuestionDialog && questions && answers ? React.createElement(React.Fragment, null, React.createElement(TextContainer$1, {
14916
- flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
14917
- }, React.createElement(QuestionDialog, {
14918
- questions: questions,
14919
- answers: answers,
14920
- onClose: function onClose() {
14921
- if (_onClose) {
14922
- _onClose();
14754
+ onSubmit: function onSubmit(e) {
14755
+ e.preventDefault();
14756
+ var numberValue = Number(value);
14757
+ if (Number.isNaN(numberValue)) {
14758
+ return;
14923
14759
  }
14924
- }
14925
- })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
14926
- src: imagePath || img$7
14927
- }))) : React.createElement(React.Fragment, null, React.createElement(Container$g, null, React.createElement(TextContainer$1, {
14928
- flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
14929
- }, React.createElement(NPCDialogText, {
14930
- type: type,
14931
- text: text || 'No text provided.',
14932
- onClose: function onClose() {
14933
- if (_onClose) {
14934
- _onClose();
14760
+ onConfirm(Math.max(1, Math.min(quantity, numberValue)));
14761
+ },
14762
+ noValidate: true
14763
+ }, React.createElement(StyledInput, {
14764
+ innerRef: inputRef,
14765
+ placeholder: "Enter quantity",
14766
+ type: "number",
14767
+ min: 1,
14768
+ max: quantity,
14769
+ value: value,
14770
+ onChange: function onChange(e) {
14771
+ if (Number(e.target.value) >= quantity) {
14772
+ setValue(quantity);
14773
+ return;
14935
14774
  }
14775
+ setValue(e.target.value);
14776
+ },
14777
+ onBlur: function onBlur(e) {
14778
+ var newValue = Math.max(1, Math.min(quantity, Number(e.target.value)));
14779
+ setValue(newValue);
14936
14780
  }
14937
- })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
14938
- src: imagePath || img$7
14939
- })))));
14781
+ }), React.createElement(RangeSlider, {
14782
+ type: RangeSliderType.Slider,
14783
+ valueMin: 1,
14784
+ valueMax: quantity,
14785
+ width: "100%",
14786
+ onChange: setValue,
14787
+ value: value
14788
+ }), React.createElement(Button, {
14789
+ buttonType: ButtonTypes.RPGUIButton,
14790
+ type: "submit"
14791
+ }, "Confirm")));
14940
14792
  };
14941
- var Container$g = /*#__PURE__*/styled.div.withConfig({
14942
- displayName: "NPCDialog__Container",
14943
- componentId: "sc-1b4aw74-0"
14944
- })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
14945
- var TextContainer$1 = /*#__PURE__*/styled.div.withConfig({
14946
- displayName: "NPCDialog__TextContainer",
14947
- componentId: "sc-1b4aw74-1"
14948
- })(["flex:", " 0 0;width:355px;"], function (_ref2) {
14949
- var flex = _ref2.flex;
14950
- return flex;
14951
- });
14952
- var ThumbnailContainer = /*#__PURE__*/styled.div.withConfig({
14953
- displayName: "NPCDialog__ThumbnailContainer",
14954
- componentId: "sc-1b4aw74-2"
14955
- })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
14956
- var NPCThumbnail = /*#__PURE__*/styled.img.withConfig({
14957
- displayName: "NPCDialog__NPCThumbnail",
14958
- componentId: "sc-1b4aw74-3"
14959
- })(["image-rendering:pixelated;height:128px;width:128px;"]);
14960
-
14961
- var ImgSide;
14962
- (function (ImgSide) {
14963
- ImgSide["right"] = "right";
14964
- ImgSide["left"] = "left";
14965
- })(ImgSide || (ImgSide = {}));
14966
- var NPCMultiDialog = function NPCMultiDialog(_ref) {
14967
- var _textAndTypeArray$sli;
14968
- var _onClose = _ref.onClose,
14969
- textAndTypeArray = _ref.textAndTypeArray;
14970
- var _useState = useState(false),
14971
- showGoNextIndicator = _useState[0],
14972
- setShowGoNextIndicator = _useState[1];
14973
- var _useState2 = useState(0),
14974
- slide = _useState2[0],
14975
- setSlide = _useState2[1];
14976
- var onHandleSpacePress = function onHandleSpacePress(event) {
14977
- if (event.code === 'Space') {
14978
- if (slide < (textAndTypeArray == null ? void 0 : textAndTypeArray.length) - 1) {
14979
- setSlide(function (prev) {
14980
- return prev + 1;
14981
- });
14982
- } else {
14983
- // if there's no more text chunks, close the dialog
14984
- _onClose();
14985
- }
14986
- }
14987
- };
14988
- useEffect(function () {
14989
- document.addEventListener('keydown', onHandleSpacePress);
14990
- return function () {
14991
- return document.removeEventListener('keydown', onHandleSpacePress);
14992
- };
14993
- }, [slide]);
14994
- return React.createElement(RPGUIContainer, {
14995
- type: RPGUIContainerTypes.FramedGold,
14996
- width: '50%',
14997
- height: '180px'
14998
- }, React.createElement(React.Fragment, null, React.createElement(Container$h, null, ((_textAndTypeArray$sli = textAndTypeArray[slide]) == null ? void 0 : _textAndTypeArray$sli.imageSide) === 'right' && React.createElement(React.Fragment, null, React.createElement(TextContainer$2, {
14999
- flex: '70%'
15000
- }, React.createElement(NPCDialogText, {
15001
- onStartStep: function onStartStep() {
15002
- return setShowGoNextIndicator(false);
15003
- },
15004
- onEndStep: function onEndStep() {
15005
- return setShowGoNextIndicator(true);
15006
- },
15007
- text: textAndTypeArray[slide].text || 'No text provided.',
15008
- onClose: function onClose() {
15009
- if (_onClose) {
15010
- _onClose();
15011
- }
15012
- }
15013
- })), React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
15014
- src: textAndTypeArray[slide].imagePath || img$7
15015
- })), showGoNextIndicator && React.createElement(PressSpaceIndicator$1, {
15016
- right: '10.5rem',
15017
- src: img$6
15018
- })), textAndTypeArray[slide].imageSide === 'left' && React.createElement(React.Fragment, null, React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
15019
- src: textAndTypeArray[slide].imagePath || img$7
15020
- })), React.createElement(TextContainer$2, {
15021
- flex: '70%'
15022
- }, React.createElement(NPCDialogText, {
15023
- onStartStep: function onStartStep() {
15024
- return setShowGoNextIndicator(false);
15025
- },
15026
- onEndStep: function onEndStep() {
15027
- return setShowGoNextIndicator(true);
15028
- },
15029
- text: textAndTypeArray[slide].text || 'No text provided.',
15030
- onClose: function onClose() {
15031
- if (_onClose) {
15032
- _onClose();
15033
- }
15034
- }
15035
- })), showGoNextIndicator && React.createElement(PressSpaceIndicator$1, {
15036
- right: '1rem',
15037
- src: img$6
15038
- }))), ")"));
15039
- };
15040
- var Container$h = /*#__PURE__*/styled.div.withConfig({
15041
- displayName: "NPCMultiDialog__Container",
15042
- componentId: "sc-rvu5wg-0"
15043
- })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
15044
- var TextContainer$2 = /*#__PURE__*/styled.div.withConfig({
15045
- displayName: "NPCMultiDialog__TextContainer",
15046
- componentId: "sc-rvu5wg-1"
15047
- })(["flex:", " 0 0;width:355px;"], function (_ref2) {
15048
- var flex = _ref2.flex;
15049
- return flex;
15050
- });
15051
- var ThumbnailContainer$1 = /*#__PURE__*/styled.div.withConfig({
15052
- displayName: "NPCMultiDialog__ThumbnailContainer",
15053
- componentId: "sc-rvu5wg-2"
15054
- })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
15055
- var NPCThumbnail$1 = /*#__PURE__*/styled.img.withConfig({
15056
- displayName: "NPCMultiDialog__NPCThumbnail",
15057
- componentId: "sc-rvu5wg-3"
15058
- })(["image-rendering:pixelated;height:128px;width:128px;"]);
15059
- var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
15060
- displayName: "NPCMultiDialog__PressSpaceIndicator",
15061
- componentId: "sc-rvu5wg-4"
15062
- })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref3) {
15063
- var right = _ref3.right;
15064
- return right;
15065
- });
14793
+ var StyledContainer = /*#__PURE__*/styled(RPGUIContainer).withConfig({
14794
+ displayName: "ItemQuantitySelector__StyledContainer",
14795
+ componentId: "sc-yfdtpn-0"
14796
+ })(["display:flex;flex-direction:column;align-items:center;"]);
14797
+ var StyledForm = /*#__PURE__*/styled.form.withConfig({
14798
+ displayName: "ItemQuantitySelector__StyledForm",
14799
+ componentId: "sc-yfdtpn-1"
14800
+ })(["display:flex;flex-direction:column;align-items:center;width:100%;"]);
14801
+ var StyledInput = /*#__PURE__*/styled(Input).withConfig({
14802
+ displayName: "ItemQuantitySelector__StyledInput",
14803
+ componentId: "sc-yfdtpn-2"
14804
+ })(["text-align:center;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}"]);
14805
+ var CloseButton$2 = /*#__PURE__*/styled.div.withConfig({
14806
+ displayName: "ItemQuantitySelector__CloseButton",
14807
+ componentId: "sc-yfdtpn-3"
14808
+ })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:0.8rem;"]);
15066
14809
 
15067
- var HistoryDialog = function HistoryDialog(_ref) {
15068
- var backgroundImgPath = _ref.backgroundImgPath,
15069
- fullCoverBackground = _ref.fullCoverBackground,
15070
- questions = _ref.questions,
15071
- answers = _ref.answers,
15072
- text = _ref.text,
15073
- imagePath = _ref.imagePath,
15074
- textAndTypeArray = _ref.textAndTypeArray,
15075
- onClose = _ref.onClose;
15076
- var _useState = useState(0),
15077
- img = _useState[0],
15078
- setImage = _useState[1];
15079
- var onHandleSpacePress = function onHandleSpacePress(event) {
15080
- if (event.code === 'Space') {
15081
- if (img < (backgroundImgPath == null ? void 0 : backgroundImgPath.length) - 1) {
15082
- setImage(function (prev) {
15083
- return prev + 1;
15084
- });
15085
- } else {
15086
- // if there's no more text chunks, close the dialog
15087
- onClose();
15088
- }
14810
+ var ShortcutsSetter = function ShortcutsSetter(_ref) {
14811
+ var setSettingShortcutIndex = _ref.setSettingShortcutIndex,
14812
+ settingShortcutIndex = _ref.settingShortcutIndex,
14813
+ shortcuts = _ref.shortcuts,
14814
+ removeShortcut = _ref.removeShortcut,
14815
+ atlasJSON = _ref.atlasJSON,
14816
+ atlasIMG = _ref.atlasIMG;
14817
+ var getContent = function getContent(index) {
14818
+ var _shortcuts$index, _shortcuts$index3;
14819
+ if (((_shortcuts$index = shortcuts[index]) == null ? void 0 : _shortcuts$index.type) === ShortcutType.Item) {
14820
+ var _shortcuts$index2;
14821
+ var _payload = (_shortcuts$index2 = shortcuts[index]) == null ? void 0 : _shortcuts$index2.payload;
14822
+ if (!_payload) return null;
14823
+ return React.createElement(SpriteFromAtlas, {
14824
+ atlasIMG: atlasIMG,
14825
+ atlasJSON: atlasJSON,
14826
+ spriteKey: getItemTextureKeyPath({
14827
+ key: _payload.texturePath,
14828
+ texturePath: _payload.texturePath,
14829
+ stackQty: _payload.stackQty || 1,
14830
+ isStackable: _payload.isStackable
14831
+ }, atlasJSON),
14832
+ width: 32,
14833
+ height: 32,
14834
+ imgScale: 1.6,
14835
+ imgStyle: {
14836
+ left: '5px'
14837
+ }
14838
+ });
15089
14839
  }
14840
+ var payload = (_shortcuts$index3 = shortcuts[index]) == null ? void 0 : _shortcuts$index3.payload;
14841
+ return React.createElement("span", null, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
14842
+ return word[0];
14843
+ }));
15090
14844
  };
15091
- useEffect(function () {
15092
- document.addEventListener('keydown', onHandleSpacePress);
15093
- return function () {
15094
- return document.removeEventListener('keydown', onHandleSpacePress);
15095
- };
15096
- }, [backgroundImgPath]);
15097
- return React.createElement(BackgroundContainer, {
15098
- imgPath: backgroundImgPath[img],
15099
- fullImg: fullCoverBackground
15100
- }, React.createElement(DialogContainer, null, textAndTypeArray ? React.createElement(NPCMultiDialog, {
15101
- textAndTypeArray: textAndTypeArray,
15102
- onClose: onClose
15103
- }) : questions && answers ? React.createElement(QuestionDialog, {
15104
- questions: questions,
15105
- answers: answers,
15106
- onClose: onClose
15107
- }) : text && imagePath ? React.createElement(NPCDialog, {
15108
- text: text,
15109
- imagePath: imagePath,
15110
- onClose: onClose,
15111
- type: NPCDialogType.TextAndThumbnail
15112
- }) : React.createElement(NPCDialog, {
15113
- text: text,
15114
- onClose: onClose,
15115
- type: NPCDialogType.TextOnly
14845
+ return React.createElement(Container$e, null, React.createElement("p", null, "Shortcuts:"), React.createElement(List, {
14846
+ id: "shortcuts_list"
14847
+ }, Array.from({
14848
+ length: 6
14849
+ }).map(function (_, i) {
14850
+ return React.createElement(Shortcut, {
14851
+ key: i,
14852
+ onPointerDown: function onPointerDown() {
14853
+ if (settingShortcutIndex !== -1) setSettingShortcutIndex(-1);
14854
+ removeShortcut(i);
14855
+ if (settingShortcutIndex === -1 && (!shortcuts[i] || shortcuts[i].type === ShortcutType.None)) setSettingShortcutIndex(i);
14856
+ },
14857
+ disabled: settingShortcutIndex !== -1 && settingShortcutIndex !== i,
14858
+ isBeingSet: settingShortcutIndex === i,
14859
+ id: "shortcutSetter_" + i
14860
+ }, getContent(i));
15116
14861
  })));
15117
14862
  };
15118
- var BackgroundContainer = /*#__PURE__*/styled.div.withConfig({
15119
- displayName: "HistoryDialog__BackgroundContainer",
15120
- componentId: "sc-u6oe75-0"
15121
- })(["width:100%;height:100%;background-image:url(", ");background-size:", ";display:flex;justify-content:space-evenly;align-items:center;"], function (props) {
15122
- return props.imgPath;
15123
- }, function (props) {
15124
- return props.imgPath ? 'cover' : 'auto';
15125
- });
15126
- var DialogContainer = /*#__PURE__*/styled.div.withConfig({
15127
- displayName: "HistoryDialog__DialogContainer",
15128
- componentId: "sc-u6oe75-1"
15129
- })(["display:flex;justify-content:center;padding-top:200px;"]);
14863
+ var Container$e = /*#__PURE__*/styled.div.withConfig({
14864
+ displayName: "ShortcutsSetter__Container",
14865
+ componentId: "sc-xuouuf-0"
14866
+ })(["p{margin:0;margin-left:0.5rem;}"]);
14867
+ var Shortcut = /*#__PURE__*/styled.button.withConfig({
14868
+ displayName: "ShortcutsSetter__Shortcut",
14869
+ componentId: "sc-xuouuf-1"
14870
+ })(["width:2.6rem;height:2.6rem;background-color:", ";border:2px solid ", ";border-radius:50%;text-transform:uppercase;font-size:0.7rem;font-weight:bold;display:flex;align-items:center;justify-content:center;span{margin-top:4px;}&:hover,&:focus{background-color:", ";}&:active{background-color:", ";}&:disabled{opacity:0.5;}"], uiColors.lightGray, function (_ref2) {
14871
+ var isBeingSet = _ref2.isBeingSet;
14872
+ return isBeingSet ? uiColors.yellow : uiColors.darkGray;
14873
+ }, uiColors.darkGray, uiColors.gray);
14874
+ var List = /*#__PURE__*/styled.div.withConfig({
14875
+ displayName: "ShortcutsSetter__List",
14876
+ componentId: "sc-xuouuf-2"
14877
+ })(["width:100%;display:flex;align-items:center;gap:0.5rem;padding-bottom:0.5rem;padding-left:0.5rem;box-sizing:border-box;margin:0 !important;"]);
15130
14878
 
15131
- var SlotsContainer = function SlotsContainer(_ref) {
15132
- var children = _ref.children,
15133
- title = _ref.title,
14879
+ var ItemContainer$1 = function ItemContainer(_ref) {
14880
+ var itemContainer = _ref.itemContainer,
15134
14881
  onClose = _ref.onClose,
15135
- _onPositionChange = _ref.onPositionChange,
15136
- _onPositionChangeEnd = _ref.onPositionChangeEnd,
15137
- _onPositionChangeStart = _ref.onPositionChangeStart,
15138
- onOutsideClick = _ref.onOutsideClick,
15139
- initialPosition = _ref.initialPosition,
15140
- scale = _ref.scale;
15141
- return React.createElement(DraggableContainer, {
15142
- title: title,
15143
- type: RPGUIContainerTypes.Framed,
15144
- onCloseButton: function onCloseButton() {
15145
- if (onClose) {
15146
- onClose();
15147
- }
15148
- },
15149
- width: "400px",
15150
- cancelDrag: ".item-container-body, #shortcuts_list",
15151
- onPositionChange: function onPositionChange(_ref2) {
15152
- var x = _ref2.x,
15153
- y = _ref2.y;
15154
- if (_onPositionChange) {
15155
- _onPositionChange({
15156
- x: x,
15157
- y: y
15158
- });
15159
- }
15160
- },
15161
- onPositionChangeEnd: function onPositionChangeEnd(_ref3) {
15162
- var x = _ref3.x,
15163
- y = _ref3.y;
15164
- if (_onPositionChangeEnd) {
15165
- _onPositionChangeEnd({
15166
- x: x,
15167
- y: y
15168
- });
15169
- }
15170
- },
15171
- onPositionChangeStart: function onPositionChangeStart(_ref4) {
15172
- var x = _ref4.x,
15173
- y = _ref4.y;
15174
- if (_onPositionChangeStart) {
15175
- _onPositionChangeStart({
15176
- x: x,
15177
- y: y
15178
- });
15179
- }
15180
- },
15181
- onOutsideClick: onOutsideClick,
14882
+ _onMouseOver = _ref.onMouseOver,
14883
+ _onSelected = _ref.onSelected,
14884
+ onItemClick = _ref.onItemClick,
14885
+ type = _ref.type,
14886
+ atlasJSON = _ref.atlasJSON,
14887
+ atlasIMG = _ref.atlasIMG,
14888
+ _ref$disableContextMe = _ref.disableContextMenu,
14889
+ disableContextMenu = _ref$disableContextMe === void 0 ? false : _ref$disableContextMe,
14890
+ onItemDragEnd = _ref.onItemDragEnd,
14891
+ onItemDragStart = _ref.onItemDragStart,
14892
+ onItemPlaceDrop = _ref.onItemPlaceDrop,
14893
+ _onOutsideDrop = _ref.onOutsideDrop,
14894
+ checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
14895
+ initialPosition = _ref.initialPosition,
14896
+ checkIfItemShouldDragEnd = _ref.checkIfItemShouldDragEnd,
14897
+ scale = _ref.scale,
14898
+ shortcuts = _ref.shortcuts,
14899
+ setItemShortcut = _ref.setItemShortcut,
14900
+ removeShortcut = _ref.removeShortcut,
14901
+ equipmentSet = _ref.equipmentSet,
14902
+ isDepotSystem = _ref.isDepotSystem,
14903
+ onPositionChangeEnd = _ref.onPositionChangeEnd,
14904
+ onPositionChangeStart = _ref.onPositionChangeStart;
14905
+ var _useState = useState({
14906
+ isOpen: false,
14907
+ maxQuantity: 1,
14908
+ callback: function callback(_quantity) {}
14909
+ }),
14910
+ quantitySelect = _useState[0],
14911
+ setQuantitySelect = _useState[1];
14912
+ var _useState2 = useState(-1),
14913
+ settingShortcutIndex = _useState2[0],
14914
+ setSettingShortcutIndex = _useState2[1];
14915
+ var handleSetShortcut = function handleSetShortcut(item, index) {
14916
+ if (item.type === ItemType.Consumable || item.type === ItemType.Tool) {
14917
+ setItemShortcut == null ? void 0 : setItemShortcut(item.key, index);
14918
+ }
14919
+ };
14920
+ var onRenderSlots = function onRenderSlots() {
14921
+ var slots = [];
14922
+ for (var i = 0; i < itemContainer.slotQty; i++) {
14923
+ var _itemContainer$slots;
14924
+ slots.push(React.createElement(ItemSlot, {
14925
+ isContextMenuDisabled: disableContextMenu,
14926
+ key: i,
14927
+ slotIndex: i,
14928
+ item: ((_itemContainer$slots = itemContainer.slots) == null ? void 0 : _itemContainer$slots[i]) || null,
14929
+ itemContainerType: type,
14930
+ onMouseOver: function onMouseOver(event, slotIndex, item) {
14931
+ if (_onMouseOver) _onMouseOver(event, slotIndex, item);
14932
+ },
14933
+ onPointerDown: function onPointerDown(itemType, containerType, item) {
14934
+ if (settingShortcutIndex !== -1) {
14935
+ setSettingShortcutIndex(-1);
14936
+ handleSetShortcut(item, settingShortcutIndex);
14937
+ } else if (onItemClick) onItemClick(item, itemType, containerType);
14938
+ },
14939
+ onSelected: function onSelected(optionId, item) {
14940
+ if (_onSelected) _onSelected(optionId, item);
14941
+ },
14942
+ onDragStart: function onDragStart(item, slotIndex, itemContainerType) {
14943
+ if (onItemDragStart) onItemDragStart(item, slotIndex, itemContainerType);
14944
+ },
14945
+ onDragEnd: function onDragEnd(quantity) {
14946
+ if (onItemDragEnd) onItemDragEnd(quantity);
14947
+ },
14948
+ dragScale: scale,
14949
+ checkIfItemCanBeMoved: checkIfItemCanBeMoved,
14950
+ checkIfItemShouldDragEnd: checkIfItemShouldDragEnd,
14951
+ openQuantitySelector: function openQuantitySelector(maxQuantity, callback) {
14952
+ setQuantitySelect({
14953
+ isOpen: true,
14954
+ maxQuantity: maxQuantity,
14955
+ callback: callback
14956
+ });
14957
+ },
14958
+ onPlaceDrop: function onPlaceDrop(item, slotIndex, itemContainerType) {
14959
+ if (onItemPlaceDrop) onItemPlaceDrop(item, slotIndex, itemContainerType);
14960
+ },
14961
+ onOutsideDrop: function onOutsideDrop(item, position) {
14962
+ if (_onOutsideDrop) _onOutsideDrop(item, position);
14963
+ },
14964
+ atlasIMG: atlasIMG,
14965
+ atlasJSON: atlasJSON,
14966
+ isSelectingShortcut: settingShortcutIndex !== -1,
14967
+ equipmentSet: equipmentSet,
14968
+ setItemShortcut: type === ItemContainerType.Inventory ? handleSetShortcut : undefined,
14969
+ isDepotSystem: isDepotSystem
14970
+ }));
14971
+ }
14972
+ return slots;
14973
+ };
14974
+ return React.createElement(React.Fragment, null, React.createElement(SlotsContainer, {
14975
+ title: itemContainer.name || 'Container',
14976
+ onClose: onClose,
15182
14977
  initialPosition: initialPosition,
15183
- scale: scale
15184
- }, children);
14978
+ scale: scale,
14979
+ onPositionChangeEnd: onPositionChangeEnd,
14980
+ onPositionChangeStart: onPositionChangeStart
14981
+ }, type === ItemContainerType.Inventory && shortcuts && removeShortcut && React.createElement(ShortcutsSetter, {
14982
+ setSettingShortcutIndex: setSettingShortcutIndex,
14983
+ settingShortcutIndex: settingShortcutIndex,
14984
+ shortcuts: shortcuts,
14985
+ removeShortcut: removeShortcut,
14986
+ atlasIMG: atlasIMG,
14987
+ atlasJSON: atlasJSON
14988
+ }), React.createElement(ItemsContainer, {
14989
+ className: "item-container-body"
14990
+ }, onRenderSlots())), quantitySelect.isOpen && React.createElement(ModalPortal, null, React.createElement(QuantitySelectorContainer, null, React.createElement(ItemQuantitySelector, {
14991
+ quantity: quantitySelect.maxQuantity,
14992
+ onConfirm: function onConfirm(quantity) {
14993
+ quantitySelect.callback(quantity);
14994
+ setQuantitySelect({
14995
+ isOpen: false,
14996
+ maxQuantity: 1,
14997
+ callback: function callback() {}
14998
+ });
14999
+ },
15000
+ onClose: function onClose() {
15001
+ quantitySelect.callback(-1);
15002
+ setQuantitySelect({
15003
+ isOpen: false,
15004
+ maxQuantity: 1,
15005
+ callback: function callback() {}
15006
+ });
15007
+ }
15008
+ }))));
15185
15009
  };
15010
+ var ItemsContainer = /*#__PURE__*/styled.div.withConfig({
15011
+ displayName: "ItemContainer__ItemsContainer",
15012
+ componentId: "sc-15y5p9l-0"
15013
+ })(["display:flex;justify-content:center;flex-wrap:wrap;"]);
15014
+ var QuantitySelectorContainer = /*#__PURE__*/styled.div.withConfig({
15015
+ displayName: "ItemContainer__QuantitySelectorContainer",
15016
+ componentId: "sc-15y5p9l-1"
15017
+ })(["position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:100;display:flex;justify-content:center;align-items:center;background-color:rgba(0,0,0,0.5);"]);
15186
15018
 
15187
- var RangeSliderType;
15188
- (function (RangeSliderType) {
15189
- RangeSliderType["Slider"] = "rpgui-slider";
15190
- RangeSliderType["GoldSlider"] = "rpgui-slider golden";
15191
- })(RangeSliderType || (RangeSliderType = {}));
15192
- var RangeSlider = function RangeSlider(_ref) {
15193
- var type = _ref.type,
15194
- valueMin = _ref.valueMin,
15195
- valueMax = _ref.valueMax,
15196
- width = _ref.width,
15197
- _onChange = _ref.onChange,
15198
- value = _ref.value;
15199
- var sliderId = v4();
15200
- var containerRef = useRef(null);
15201
- var _useState = useState(0),
15202
- left = _useState[0],
15203
- setLeft = _useState[1];
15019
+ var ItemSelector = function ItemSelector(_ref) {
15020
+ var atlasIMG = _ref.atlasIMG,
15021
+ atlasJSON = _ref.atlasJSON,
15022
+ options = _ref.options,
15023
+ onClose = _ref.onClose,
15024
+ onSelect = _ref.onSelect;
15025
+ var _useState = useState(),
15026
+ selectedValue = _useState[0],
15027
+ setSelectedValue = _useState[1];
15028
+ var handleClick = function handleClick() {
15029
+ var element = document.querySelector("input[name='test']:checked");
15030
+ var elementValue = element.value;
15031
+ setSelectedValue(elementValue);
15032
+ };
15204
15033
  useEffect(function () {
15205
- var _containerRef$current;
15206
- var calculatedWidth = ((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.clientWidth) || 0;
15207
- setLeft(Math.max((value - valueMin) / (valueMax - valueMin) * (calculatedWidth - 35) + 10));
15208
- }, [value, valueMin, valueMax]);
15209
- var typeClass = type === RangeSliderType.GoldSlider ? 'golden' : '';
15210
- return React.createElement("div", {
15211
- style: {
15212
- width: width,
15213
- position: 'relative'
15214
- },
15215
- className: "rpgui-slider-container " + typeClass,
15216
- id: "rpgui-slider-" + sliderId,
15217
- ref: containerRef
15218
- }, React.createElement("div", {
15219
- style: {
15220
- pointerEvents: 'none'
15034
+ if (selectedValue) {
15035
+ onSelect(selectedValue);
15036
+ }
15037
+ }, [selectedValue]);
15038
+ return React.createElement(DraggableContainer, {
15039
+ type: RPGUIContainerTypes.Framed,
15040
+ width: "500px",
15041
+ cancelDrag: ".equipment-container-body .arrow-selector",
15042
+ onCloseButton: function onCloseButton() {
15043
+ if (onClose) {
15044
+ onClose();
15045
+ }
15221
15046
  }
15222
15047
  }, React.createElement("div", {
15223
- className: "rpgui-slider-track " + typeClass
15224
- }), React.createElement("div", {
15225
- className: "rpgui-slider-left-edge " + typeClass
15226
- }), React.createElement("div", {
15227
- className: "rpgui-slider-right-edge " + typeClass
15228
- }), React.createElement("div", {
15229
- className: "rpgui-slider-thumb " + typeClass,
15230
15048
  style: {
15231
- left: left
15049
+ width: '100%'
15232
15050
  }
15233
- })), React.createElement(Input$1, {
15234
- type: "range",
15235
- style: {
15236
- width: width
15237
- },
15238
- min: valueMin,
15239
- max: valueMax,
15240
- onChange: function onChange(e) {
15241
- return _onChange(Number(e.target.value));
15242
- },
15243
- value: value,
15244
- className: "rpgui-cursor-point"
15245
- }));
15246
- };
15247
- var Input$1 = /*#__PURE__*/styled.input.withConfig({
15248
- displayName: "RangeSlider__Input",
15249
- componentId: "sc-v8mte9-0"
15250
- })(["opacity:0;position:absolute;width:100%;height:100%;top:0;left:0;margin-top:-5px;"]);
15251
-
15252
- var ItemQuantitySelector = function ItemQuantitySelector(_ref) {
15253
- var quantity = _ref.quantity,
15254
- onConfirm = _ref.onConfirm,
15255
- onClose = _ref.onClose;
15256
- var _useState = useState(quantity),
15257
- value = _useState[0],
15258
- setValue = _useState[1];
15259
- var inputRef = useRef(null);
15260
- useEffect(function () {
15261
- if (inputRef.current) {
15262
- inputRef.current.focus();
15263
- inputRef.current.select();
15264
- var closeSelector = function closeSelector(e) {
15265
- if (e.key === 'Escape') {
15266
- onClose();
15267
- }
15268
- };
15269
- document.addEventListener('keydown', closeSelector);
15270
- return function () {
15271
- document.removeEventListener('keydown', closeSelector);
15272
- };
15273
- }
15274
- return function () {};
15275
- }, []);
15276
- return React.createElement(StyledContainer, {
15277
- type: RPGUIContainerTypes.Framed,
15278
- width: "25rem"
15279
- }, React.createElement(CloseButton$2, {
15280
- className: "container-close",
15281
- onPointerDown: onClose
15282
- }, "X"), React.createElement("h2", null, "Select quantity to move"), React.createElement(StyledForm, {
15283
- style: {
15284
- width: '100%'
15285
- },
15286
- onSubmit: function onSubmit(e) {
15287
- e.preventDefault();
15288
- var numberValue = Number(value);
15289
- if (Number.isNaN(numberValue)) {
15290
- return;
15291
- }
15292
- onConfirm(Math.max(1, Math.min(quantity, numberValue)));
15293
- },
15294
- noValidate: true
15295
- }, React.createElement(StyledInput, {
15296
- innerRef: inputRef,
15297
- placeholder: "Enter quantity",
15298
- type: "number",
15299
- min: 1,
15300
- max: quantity,
15301
- value: value,
15302
- onChange: function onChange(e) {
15303
- if (Number(e.target.value) >= quantity) {
15304
- setValue(quantity);
15305
- return;
15051
+ }, React.createElement(Title$3, null, 'Harvesting instruments'), React.createElement(Subtitle$1, null, 'Use the tool, you need it'), React.createElement("hr", {
15052
+ className: "golden"
15053
+ })), React.createElement(RadioInputScroller$1, null, options == null ? void 0 : options.map(function (option, index) {
15054
+ return React.createElement(RadioOptionsWrapper$1, {
15055
+ key: index
15056
+ }, React.createElement(SpriteAtlasWrapper$1, null, React.createElement(SpriteFromAtlas, {
15057
+ atlasIMG: atlasIMG,
15058
+ atlasJSON: atlasJSON,
15059
+ spriteKey: option.imageKey,
15060
+ imgScale: 3
15061
+ })), React.createElement("div", null, React.createElement("input", {
15062
+ className: "rpgui-radio",
15063
+ type: "radio",
15064
+ value: option.name,
15065
+ name: "test"
15066
+ }), React.createElement("label", {
15067
+ onPointerDown: handleClick,
15068
+ style: {
15069
+ display: 'flex',
15070
+ alignItems: 'center'
15306
15071
  }
15307
- setValue(e.target.value);
15308
- },
15309
- onBlur: function onBlur(e) {
15310
- var newValue = Math.max(1, Math.min(quantity, Number(e.target.value)));
15311
- setValue(newValue);
15312
- }
15313
- }), React.createElement(RangeSlider, {
15314
- type: RangeSliderType.Slider,
15315
- valueMin: 1,
15316
- valueMax: quantity,
15317
- width: "100%",
15318
- onChange: setValue,
15319
- value: value
15320
- }), React.createElement(Button, {
15072
+ }, option.name, " ", React.createElement("br", null), option.description)));
15073
+ })), React.createElement(ButtonWrapper$1, null, React.createElement(Button, {
15321
15074
  buttonType: ButtonTypes.RPGUIButton,
15322
- type: "submit"
15323
- }, "Confirm")));
15075
+ onPointerDown: onClose
15076
+ }, "Cancel"), React.createElement(Button, {
15077
+ buttonType: ButtonTypes.RPGUIButton
15078
+ }, "Select")));
15324
15079
  };
15325
- var StyledContainer = /*#__PURE__*/styled(RPGUIContainer).withConfig({
15326
- displayName: "ItemQuantitySelector__StyledContainer",
15327
- componentId: "sc-yfdtpn-0"
15328
- })(["display:flex;flex-direction:column;align-items:center;"]);
15329
- var StyledForm = /*#__PURE__*/styled.form.withConfig({
15330
- displayName: "ItemQuantitySelector__StyledForm",
15331
- componentId: "sc-yfdtpn-1"
15332
- })(["display:flex;flex-direction:column;align-items:center;width:100%;"]);
15333
- var StyledInput = /*#__PURE__*/styled(Input).withConfig({
15334
- displayName: "ItemQuantitySelector__StyledInput",
15335
- componentId: "sc-yfdtpn-2"
15336
- })(["text-align:center;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}"]);
15337
- var CloseButton$2 = /*#__PURE__*/styled.div.withConfig({
15338
- displayName: "ItemQuantitySelector__CloseButton",
15339
- componentId: "sc-yfdtpn-3"
15340
- })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:0.8rem;"]);
15080
+ var Title$3 = /*#__PURE__*/styled.h1.withConfig({
15081
+ displayName: "ItemSelector__Title",
15082
+ componentId: "sc-gptoxp-0"
15083
+ })(["font-size:0.6rem;color:yellow !important;"]);
15084
+ var Subtitle$1 = /*#__PURE__*/styled.h1.withConfig({
15085
+ displayName: "ItemSelector__Subtitle",
15086
+ componentId: "sc-gptoxp-1"
15087
+ })(["font-size:0.4rem;color:yellow !important;"]);
15088
+ var RadioInputScroller$1 = /*#__PURE__*/styled.div.withConfig({
15089
+ displayName: "ItemSelector__RadioInputScroller",
15090
+ componentId: "sc-gptoxp-2"
15091
+ })(["padding-left:15px;padding-top:10px;width:100%;margin-top:1rem;align-items:center;margin-left:20px;align-items:flex-start;overflow-y:scroll;height:360px;"]);
15092
+ var SpriteAtlasWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15093
+ displayName: "ItemSelector__SpriteAtlasWrapper",
15094
+ componentId: "sc-gptoxp-3"
15095
+ })(["margin-right:40px;"]);
15096
+ var RadioOptionsWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15097
+ displayName: "ItemSelector__RadioOptionsWrapper",
15098
+ componentId: "sc-gptoxp-4"
15099
+ })(["display:flex;align-items:stretch;margin-bottom:40px;"]);
15100
+ var ButtonWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15101
+ displayName: "ItemSelector__ButtonWrapper",
15102
+ componentId: "sc-gptoxp-5"
15103
+ })(["display:flex;justify-content:space-around;padding-top:20px;width:100%;"]);
15341
15104
 
15342
- var ShortcutsSetter = function ShortcutsSetter(_ref) {
15343
- var setSettingShortcutIndex = _ref.setSettingShortcutIndex,
15344
- settingShortcutIndex = _ref.settingShortcutIndex,
15345
- shortcuts = _ref.shortcuts,
15346
- removeShortcut = _ref.removeShortcut,
15347
- atlasJSON = _ref.atlasJSON,
15348
- atlasIMG = _ref.atlasIMG;
15349
- var getContent = function getContent(index) {
15350
- var _shortcuts$index, _shortcuts$index3;
15351
- if (((_shortcuts$index = shortcuts[index]) == null ? void 0 : _shortcuts$index.type) === ShortcutType.Item) {
15352
- var _shortcuts$index2;
15353
- var _payload = (_shortcuts$index2 = shortcuts[index]) == null ? void 0 : _shortcuts$index2.payload;
15354
- if (!_payload) return null;
15355
- return React.createElement(SpriteFromAtlas, {
15356
- atlasIMG: atlasIMG,
15357
- atlasJSON: atlasJSON,
15358
- spriteKey: getItemTextureKeyPath({
15359
- key: _payload.texturePath,
15360
- texturePath: _payload.texturePath,
15361
- stackQty: _payload.stackQty || 1,
15362
- isStackable: _payload.isStackable
15363
- }, atlasJSON),
15364
- width: 32,
15365
- height: 32,
15366
- imgScale: 1.6,
15367
- imgStyle: {
15368
- left: '5px'
15369
- }
15370
- });
15105
+ var ListMenu = function ListMenu(_ref) {
15106
+ var options = _ref.options,
15107
+ onSelected = _ref.onSelected,
15108
+ x = _ref.x,
15109
+ y = _ref.y;
15110
+ return React.createElement(Container$f, {
15111
+ x: x,
15112
+ y: y
15113
+ }, React.createElement("ul", {
15114
+ className: "rpgui-list-imp",
15115
+ style: {
15116
+ overflow: 'hidden'
15371
15117
  }
15372
- var payload = (_shortcuts$index3 = shortcuts[index]) == null ? void 0 : _shortcuts$index3.payload;
15373
- return React.createElement("span", null, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
15374
- return word[0];
15375
- }));
15376
- };
15377
- return React.createElement(Container$i, null, React.createElement("p", null, "Shortcuts:"), React.createElement(List, {
15378
- id: "shortcuts_list"
15379
- }, Array.from({
15380
- length: 6
15381
- }).map(function (_, i) {
15382
- return React.createElement(Shortcut, {
15383
- key: i,
15118
+ }, options.map(function (params, index) {
15119
+ return React.createElement(ListElement$1, {
15120
+ key: (params == null ? void 0 : params.id) || index,
15384
15121
  onPointerDown: function onPointerDown() {
15385
- if (settingShortcutIndex !== -1) setSettingShortcutIndex(-1);
15386
- removeShortcut(i);
15387
- if (settingShortcutIndex === -1 && (!shortcuts[i] || shortcuts[i].type === ShortcutType.None)) setSettingShortcutIndex(i);
15388
- },
15389
- disabled: settingShortcutIndex !== -1 && settingShortcutIndex !== i,
15390
- isBeingSet: settingShortcutIndex === i,
15391
- id: "shortcutSetter_" + i
15392
- }, getContent(i));
15122
+ onSelected(params == null ? void 0 : params.id);
15123
+ }
15124
+ }, (params == null ? void 0 : params.text) || 'No text');
15393
15125
  })));
15394
15126
  };
15395
- var Container$i = /*#__PURE__*/styled.div.withConfig({
15396
- displayName: "ShortcutsSetter__Container",
15397
- componentId: "sc-xuouuf-0"
15398
- })(["p{margin:0;margin-left:0.5rem;}"]);
15399
- var Shortcut = /*#__PURE__*/styled.button.withConfig({
15400
- displayName: "ShortcutsSetter__Shortcut",
15401
- componentId: "sc-xuouuf-1"
15402
- })(["width:2.6rem;height:2.6rem;background-color:", ";border:2px solid ", ";border-radius:50%;text-transform:uppercase;font-size:0.7rem;font-weight:bold;display:flex;align-items:center;justify-content:center;span{margin-top:4px;}&:hover,&:focus{background-color:", ";}&:active{background-color:", ";}&:disabled{opacity:0.5;}"], uiColors.lightGray, function (_ref2) {
15403
- var isBeingSet = _ref2.isBeingSet;
15404
- return isBeingSet ? uiColors.yellow : uiColors.darkGray;
15405
- }, uiColors.darkGray, uiColors.gray);
15406
- var List = /*#__PURE__*/styled.div.withConfig({
15407
- displayName: "ShortcutsSetter__List",
15408
- componentId: "sc-xuouuf-2"
15409
- })(["width:100%;display:flex;align-items:center;gap:0.5rem;padding-bottom:0.5rem;padding-left:0.5rem;box-sizing:border-box;margin:0 !important;"]);
15127
+ var Container$f = /*#__PURE__*/styled.div.withConfig({
15128
+ displayName: "ListMenu__Container",
15129
+ componentId: "sc-i9097t-0"
15130
+ })(["display:flex;flex-direction:column;width:100%;justify-content:start;align-items:flex-start;position:absolute;top:", "px;left:", "px;li{font-size:", ";}"], function (props) {
15131
+ return props.y || 0;
15132
+ }, function (props) {
15133
+ return props.x || 0;
15134
+ }, uiFonts.size.xsmall);
15135
+ var ListElement$1 = /*#__PURE__*/styled.li.withConfig({
15136
+ displayName: "ListMenu__ListElement",
15137
+ componentId: "sc-i9097t-1"
15138
+ })(["margin-right:0.5rem;"]);
15410
15139
 
15411
- var ItemContainer$1 = function ItemContainer(_ref) {
15412
- var itemContainer = _ref.itemContainer,
15140
+ var Pager = function Pager(_ref) {
15141
+ var totalItems = _ref.totalItems,
15142
+ currentPage = _ref.currentPage,
15143
+ itemsPerPage = _ref.itemsPerPage,
15144
+ onPageChange = _ref.onPageChange;
15145
+ var totalPages = Math.ceil(totalItems / itemsPerPage);
15146
+ return React.createElement(Container$g, null, React.createElement("p", null, "Total items: ", totalItems), React.createElement(PagerContainer, null, React.createElement("button", {
15147
+ disabled: currentPage === 1,
15148
+ onPointerDown: function onPointerDown() {
15149
+ return onPageChange(Math.max(currentPage - 1, 1));
15150
+ }
15151
+ }, '<'), React.createElement("div", {
15152
+ className: "rpgui-container framed-grey"
15153
+ }, currentPage), React.createElement("button", {
15154
+ disabled: currentPage === totalPages,
15155
+ onPointerDown: function onPointerDown() {
15156
+ return onPageChange(Math.min(currentPage + 1, totalPages));
15157
+ }
15158
+ }, '>')));
15159
+ };
15160
+ var Container$g = /*#__PURE__*/styled.div.withConfig({
15161
+ displayName: "Pager__Container",
15162
+ componentId: "sc-1ekmf50-0"
15163
+ })(["display:flex;flex-direction:column;align-items:center;p{margin:0;font-size:", ";}"], uiFonts.size.xsmall);
15164
+ var PagerContainer = /*#__PURE__*/styled.div.withConfig({
15165
+ displayName: "Pager__PagerContainer",
15166
+ componentId: "sc-1ekmf50-1"
15167
+ })(["display:flex;justify-content:center;align-items:center;gap:5px;p{margin:0;}div{color:white;}button{width:40px;height:40px;background-color:", ";border:none;border-radius:5px;color:white;:hover{background-color:", ";}:disabled{opacity:0.5;}&.active{background-color:", ";font-weight:bold;color:black;}}"], uiColors.darkGray, uiColors.lightGray, uiColors.orange);
15168
+
15169
+ var ConfirmModal = function ConfirmModal(_ref) {
15170
+ var onConfirm = _ref.onConfirm,
15413
15171
  onClose = _ref.onClose,
15414
- _onMouseOver = _ref.onMouseOver,
15415
- _onSelected = _ref.onSelected,
15416
- onItemClick = _ref.onItemClick,
15417
- type = _ref.type,
15418
- atlasJSON = _ref.atlasJSON,
15172
+ message = _ref.message;
15173
+ return React.createElement(ModalPortal, null, React.createElement(Background, null), React.createElement(Container$h, {
15174
+ onPointerDown: onClose
15175
+ }, React.createElement(DraggableContainer, {
15176
+ width: "auto",
15177
+ dragDisabled: true
15178
+ }, React.createElement(Wrapper$1, {
15179
+ onPointerDown: function onPointerDown(e) {
15180
+ return e.stopPropagation();
15181
+ }
15182
+ }, React.createElement("p", null, message != null ? message : 'Are you sure?'), React.createElement(ButtonsWrapper, null, React.createElement("div", {
15183
+ className: "cancel-button"
15184
+ }, React.createElement(Button, {
15185
+ buttonType: ButtonTypes.RPGUIButton,
15186
+ onPointerDown: onClose
15187
+ }, "No")), React.createElement(Button, {
15188
+ buttonType: ButtonTypes.RPGUIButton,
15189
+ onPointerDown: onConfirm
15190
+ }, "Yes"))))));
15191
+ };
15192
+ var Background = /*#__PURE__*/styled.div.withConfig({
15193
+ displayName: "ConfirmModal__Background",
15194
+ componentId: "sc-11qkyu1-0"
15195
+ })(["position:absolute;width:100%;height:100%;background-color:#000000;opacity:0.5;left:0;top:0;z-index:1000;"]);
15196
+ var Container$h = /*#__PURE__*/styled.div.withConfig({
15197
+ displayName: "ConfirmModal__Container",
15198
+ componentId: "sc-11qkyu1-1"
15199
+ })(["position:absolute;width:100%;height:100%;left:0;top:0;display:flex;justify-content:center;align-items:center;z-index:1001;"]);
15200
+ var Wrapper$1 = /*#__PURE__*/styled.div.withConfig({
15201
+ displayName: "ConfirmModal__Wrapper",
15202
+ componentId: "sc-11qkyu1-2"
15203
+ })(["p{margin:0;}"]);
15204
+ var ButtonsWrapper = /*#__PURE__*/styled.div.withConfig({
15205
+ displayName: "ConfirmModal__ButtonsWrapper",
15206
+ componentId: "sc-11qkyu1-3"
15207
+ })(["display:flex;justify-content:flex-end;gap:5px;margin-top:5px;.cancel-button{filter:grayscale(0.7);}"]);
15208
+
15209
+ var MarketplaceRows = function MarketplaceRows(_ref) {
15210
+ var atlasJSON = _ref.atlasJSON,
15419
15211
  atlasIMG = _ref.atlasIMG,
15420
- _ref$disableContextMe = _ref.disableContextMenu,
15421
- disableContextMenu = _ref$disableContextMe === void 0 ? false : _ref$disableContextMe,
15422
- onItemDragEnd = _ref.onItemDragEnd,
15423
- onItemDragStart = _ref.onItemDragStart,
15424
- onItemPlaceDrop = _ref.onItemPlaceDrop,
15425
- _onOutsideDrop = _ref.onOutsideDrop,
15426
- checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
15427
- initialPosition = _ref.initialPosition,
15428
- checkIfItemShouldDragEnd = _ref.checkIfItemShouldDragEnd,
15429
- scale = _ref.scale,
15430
- shortcuts = _ref.shortcuts,
15431
- setItemShortcut = _ref.setItemShortcut,
15432
- removeShortcut = _ref.removeShortcut,
15212
+ item = _ref.item,
15213
+ itemPrice = _ref.itemPrice,
15433
15214
  equipmentSet = _ref.equipmentSet,
15434
- isDepotSystem = _ref.isDepotSystem,
15435
- onPositionChangeEnd = _ref.onPositionChangeEnd,
15436
- onPositionChangeStart = _ref.onPositionChangeStart;
15437
- var _useState = useState({
15438
- isOpen: false,
15439
- maxQuantity: 1,
15440
- callback: function callback(_quantity) {}
15441
- }),
15442
- quantitySelect = _useState[0],
15443
- setQuantitySelect = _useState[1];
15444
- var _useState2 = useState(-1),
15445
- settingShortcutIndex = _useState2[0],
15446
- setSettingShortcutIndex = _useState2[1];
15447
- var handleSetShortcut = function handleSetShortcut(item, index) {
15448
- if (item.type === ItemType.Consumable || item.type === ItemType.Tool) {
15449
- setItemShortcut == null ? void 0 : setItemShortcut(item.key, index);
15215
+ scale = _ref.scale,
15216
+ onMarketPlaceItemBuy = _ref.onMarketPlaceItemBuy,
15217
+ onMarketPlaceItemRemove = _ref.onMarketPlaceItemRemove,
15218
+ disabled = _ref.disabled;
15219
+ return React.createElement(MarketplaceWrapper, null, React.createElement(ItemInfoWrapper, {
15220
+ item: item,
15221
+ atlasIMG: atlasIMG,
15222
+ atlasJSON: atlasJSON,
15223
+ equipmentSet: equipmentSet,
15224
+ scale: scale
15225
+ }, React.createElement(ItemIconContainer, null, React.createElement(SpriteContainer, null, React.createElement(SpriteFromAtlas, {
15226
+ atlasIMG: atlasIMG,
15227
+ atlasJSON: atlasJSON,
15228
+ spriteKey: getItemTextureKeyPath({
15229
+ key: item.key,
15230
+ stackQty: item.stackQty || 1,
15231
+ texturePath: item.texturePath,
15232
+ isStackable: item.isStackable
15233
+ }, atlasJSON),
15234
+ imgScale: 2
15235
+ }), React.createElement(QuantityContainer, null, item.stackQty && item.stackQty > 1 && "x" + Math.round(item.stackQty * 10) / 10)), React.createElement(PriceValue, null, React.createElement("p", null, React.createElement(Ellipsis, {
15236
+ maxLines: 1,
15237
+ maxWidth: "200px",
15238
+ fontSize: "10px"
15239
+ }, item.name))))), React.createElement(Flex$1, null, React.createElement(ItemIconContainer, null, React.createElement(SpriteContainer, null, React.createElement(SpriteFromAtlas, {
15240
+ atlasIMG: atlasIMG,
15241
+ atlasJSON: atlasJSON,
15242
+ spriteKey: "others/gold-coin-qty-5.png",
15243
+ imgScale: 2
15244
+ })), React.createElement(PriceValue, null, React.createElement("p", null, React.createElement(Ellipsis, {
15245
+ maxLines: 1,
15246
+ maxWidth: "200px",
15247
+ fontSize: "10px"
15248
+ }, "$", itemPrice)))), React.createElement(ButtonContainer$1, null, React.createElement(Button, {
15249
+ buttonType: ButtonTypes.RPGUIButton,
15250
+ disabled: disabled,
15251
+ onPointerDown: function onPointerDown() {
15252
+ if (disabled) return;
15253
+ onMarketPlaceItemBuy == null ? void 0 : onMarketPlaceItemBuy();
15254
+ onMarketPlaceItemRemove == null ? void 0 : onMarketPlaceItemRemove();
15450
15255
  }
15256
+ }, onMarketPlaceItemBuy ? 'Buy' : 'Remove'))));
15257
+ };
15258
+ var MarketplaceWrapper = /*#__PURE__*/styled.div.withConfig({
15259
+ displayName: "MarketplaceRows__MarketplaceWrapper",
15260
+ componentId: "sc-wmpr1o-0"
15261
+ })(["margin:auto;display:flex;justify-content:space-between;padding:0.5rem;&:hover{background-color:", ";}p{font-size:0.8rem;}"], uiColors.darkGray);
15262
+ var QuantityContainer = /*#__PURE__*/styled.p.withConfig({
15263
+ displayName: "MarketplaceRows__QuantityContainer",
15264
+ componentId: "sc-wmpr1o-1"
15265
+ })(["position:absolute;display:block;top:15px;left:25px;font-size:", " !important;"], uiFonts.size.xsmall);
15266
+ var Flex$1 = /*#__PURE__*/styled.div.withConfig({
15267
+ displayName: "MarketplaceRows__Flex",
15268
+ componentId: "sc-wmpr1o-2"
15269
+ })(["display:flex;gap:24px;"]);
15270
+ var ItemIconContainer = /*#__PURE__*/styled.div.withConfig({
15271
+ displayName: "MarketplaceRows__ItemIconContainer",
15272
+ componentId: "sc-wmpr1o-3"
15273
+ })(["display:flex;justify-content:flex-start;align-items:center;"]);
15274
+ var SpriteContainer = /*#__PURE__*/styled.div.withConfig({
15275
+ displayName: "MarketplaceRows__SpriteContainer",
15276
+ componentId: "sc-wmpr1o-4"
15277
+ })(["position:relative;top:-0.5rem;left:0.5rem;"]);
15278
+ var PriceValue = /*#__PURE__*/styled.div.withConfig({
15279
+ displayName: "MarketplaceRows__PriceValue",
15280
+ componentId: "sc-wmpr1o-5"
15281
+ })(["margin-left:40px;"]);
15282
+ var ButtonContainer$1 = /*#__PURE__*/styled.div.withConfig({
15283
+ displayName: "MarketplaceRows__ButtonContainer",
15284
+ componentId: "sc-wmpr1o-6"
15285
+ })(["margin:auto;"]);
15286
+
15287
+ var OrderByType;
15288
+ (function (OrderByType) {
15289
+ OrderByType["Name"] = "Name";
15290
+ OrderByType["Price"] = "Price";
15291
+ })(OrderByType || (OrderByType = {}));
15292
+ var itemTypeOptions = /*#__PURE__*/['Type'].concat(Object.keys(ItemSubType)).filter(function (type) {
15293
+ return type !== 'DeadBody';
15294
+ }).map(function (itemType, index) {
15295
+ return {
15296
+ id: index + 1,
15297
+ value: itemType,
15298
+ option: itemType
15451
15299
  };
15452
- var onRenderSlots = function onRenderSlots() {
15453
- var slots = [];
15454
- for (var i = 0; i < itemContainer.slotQty; i++) {
15455
- var _itemContainer$slots;
15456
- slots.push(React.createElement(ItemSlot, {
15457
- isContextMenuDisabled: disableContextMenu,
15458
- key: i,
15459
- slotIndex: i,
15460
- item: ((_itemContainer$slots = itemContainer.slots) == null ? void 0 : _itemContainer$slots[i]) || null,
15461
- itemContainerType: type,
15462
- onMouseOver: function onMouseOver(event, slotIndex, item) {
15463
- if (_onMouseOver) _onMouseOver(event, slotIndex, item);
15464
- },
15465
- onPointerDown: function onPointerDown(itemType, containerType, item) {
15466
- if (settingShortcutIndex !== -1) {
15467
- setSettingShortcutIndex(-1);
15468
- handleSetShortcut(item, settingShortcutIndex);
15469
- } else if (onItemClick) onItemClick(item, itemType, containerType);
15470
- },
15471
- onSelected: function onSelected(optionId, item) {
15472
- if (_onSelected) _onSelected(optionId, item);
15473
- },
15474
- onDragStart: function onDragStart(item, slotIndex, itemContainerType) {
15475
- if (onItemDragStart) onItemDragStart(item, slotIndex, itemContainerType);
15476
- },
15477
- onDragEnd: function onDragEnd(quantity) {
15478
- if (onItemDragEnd) onItemDragEnd(quantity);
15479
- },
15480
- dragScale: scale,
15481
- checkIfItemCanBeMoved: checkIfItemCanBeMoved,
15482
- checkIfItemShouldDragEnd: checkIfItemShouldDragEnd,
15483
- openQuantitySelector: function openQuantitySelector(maxQuantity, callback) {
15484
- setQuantitySelect({
15485
- isOpen: true,
15486
- maxQuantity: maxQuantity,
15487
- callback: callback
15488
- });
15489
- },
15490
- onPlaceDrop: function onPlaceDrop(item, slotIndex, itemContainerType) {
15491
- if (onItemPlaceDrop) onItemPlaceDrop(item, slotIndex, itemContainerType);
15492
- },
15493
- onOutsideDrop: function onOutsideDrop(item, position) {
15494
- if (_onOutsideDrop) _onOutsideDrop(item, position);
15495
- },
15496
- atlasIMG: atlasIMG,
15497
- atlasJSON: atlasJSON,
15498
- isSelectingShortcut: settingShortcutIndex !== -1,
15499
- equipmentSet: equipmentSet,
15500
- setItemShortcut: type === ItemContainerType.Inventory ? handleSetShortcut : undefined,
15501
- isDepotSystem: isDepotSystem
15502
- }));
15503
- }
15504
- return slots;
15300
+ });
15301
+ var itemRarityOptions = /*#__PURE__*/['Rarity'].concat(Object.values(ItemRarities)).map(function (itemRarity, index) {
15302
+ return {
15303
+ id: index + 1,
15304
+ value: itemRarity,
15305
+ option: itemRarity
15505
15306
  };
15506
- return React.createElement(React.Fragment, null, React.createElement(SlotsContainer, {
15507
- title: itemContainer.name || 'Container',
15508
- onClose: onClose,
15509
- initialPosition: initialPosition,
15510
- scale: scale,
15511
- onPositionChangeEnd: onPositionChangeEnd,
15512
- onPositionChangeStart: onPositionChangeStart
15513
- }, type === ItemContainerType.Inventory && shortcuts && removeShortcut && React.createElement(ShortcutsSetter, {
15514
- setSettingShortcutIndex: setSettingShortcutIndex,
15515
- settingShortcutIndex: settingShortcutIndex,
15516
- shortcuts: shortcuts,
15517
- removeShortcut: removeShortcut,
15307
+ });
15308
+ var orderByOptions = /*#__PURE__*/Object.values(OrderByType).flatMap(function (orderBy, index) {
15309
+ return [{
15310
+ id: index * 2 + 1,
15311
+ value: orderBy.toLowerCase(),
15312
+ option: React.createElement(React.Fragment, null, orderBy, ' ', React.createElement("span", {
15313
+ style: {
15314
+ transform: 'translateY(-2px)',
15315
+ display: 'inline-block'
15316
+ }
15317
+ }, "\u2193"))
15318
+ }, {
15319
+ id: index * 2 + 2,
15320
+ value: '-' + orderBy.toLowerCase(),
15321
+ option: React.createElement(React.Fragment, null, orderBy, ' ', React.createElement("span", {
15322
+ style: {
15323
+ transform: 'translateY(-2px)',
15324
+ display: 'inline-block'
15325
+ }
15326
+ }, "\u2191"))
15327
+ }];
15328
+ });
15329
+
15330
+ var BuyPanel = function BuyPanel(_ref) {
15331
+ var items = _ref.items,
15332
+ atlasIMG = _ref.atlasIMG,
15333
+ atlasJSON = _ref.atlasJSON,
15334
+ onChangeType = _ref.onChangeType,
15335
+ onChangeRarity = _ref.onChangeRarity,
15336
+ onChangeOrder = _ref.onChangeOrder,
15337
+ onChangeNameInput = _ref.onChangeNameInput,
15338
+ onChangeMainLevelInput = _ref.onChangeMainLevelInput,
15339
+ onChangeSecondaryLevelInput = _ref.onChangeSecondaryLevelInput,
15340
+ onChangePriceInput = _ref.onChangePriceInput,
15341
+ equipmentSet = _ref.equipmentSet,
15342
+ onMarketPlaceItemBuy = _ref.onMarketPlaceItemBuy,
15343
+ characterId = _ref.characterId,
15344
+ enableHotkeys = _ref.enableHotkeys,
15345
+ disableHotkeys = _ref.disableHotkeys;
15346
+ var _useState = useState(''),
15347
+ name = _useState[0],
15348
+ setName = _useState[1];
15349
+ var _useState2 = useState([undefined, undefined]),
15350
+ mainLevel = _useState2[0],
15351
+ setMainLevel = _useState2[1];
15352
+ var _useState3 = useState([undefined, undefined]),
15353
+ secondaryLevel = _useState3[0],
15354
+ setSecondaryLevel = _useState3[1];
15355
+ var _useState4 = useState([undefined, undefined]),
15356
+ price = _useState4[0],
15357
+ setPrice = _useState4[1];
15358
+ var _useState5 = useState(null),
15359
+ buyingItemId = _useState5[0],
15360
+ setBuyingItemId = _useState5[1];
15361
+ return React.createElement(React.Fragment, null, buyingItemId && React.createElement(ConfirmModal, {
15362
+ onClose: setBuyingItemId.bind(null, null),
15363
+ onConfirm: function onConfirm() {
15364
+ onMarketPlaceItemBuy == null ? void 0 : onMarketPlaceItemBuy(buyingItemId);
15365
+ setBuyingItemId(null);
15366
+ enableHotkeys == null ? void 0 : enableHotkeys();
15367
+ },
15368
+ message: "Are you sure to buy this item?"
15369
+ }), React.createElement(InputWrapper, null, React.createElement("p", null, "Search By Name"), React.createElement(Input, {
15370
+ onChange: function onChange(e) {
15371
+ setName(e.target.value);
15372
+ onChangeNameInput(e.target.value);
15373
+ },
15374
+ value: name,
15375
+ placeholder: "Enter name...",
15376
+ onBlur: enableHotkeys,
15377
+ onFocus: disableHotkeys
15378
+ })), React.createElement(OptionsWrapper, null, React.createElement(FilterInputsWrapper, null, React.createElement("div", null, React.createElement("p", null, "Main level"), React.createElement(Input, {
15379
+ onChange: function onChange(e) {
15380
+ setMainLevel([Number(e.target.value), mainLevel[1]]);
15381
+ onChangeMainLevelInput([Number(e.target.value), mainLevel[1]]);
15382
+ },
15383
+ placeholder: "Min",
15384
+ type: "number",
15385
+ min: 0,
15386
+ onBlur: enableHotkeys,
15387
+ onFocus: disableHotkeys
15388
+ }), React.createElement(AiFillCaretRight, null), React.createElement(Input, {
15389
+ onChange: function onChange(e) {
15390
+ setMainLevel([mainLevel[0], Number(e.target.value)]);
15391
+ onChangeMainLevelInput([mainLevel[0], Number(e.target.value)]);
15392
+ },
15393
+ placeholder: "Max",
15394
+ type: "number",
15395
+ min: 0,
15396
+ onBlur: enableHotkeys,
15397
+ onFocus: disableHotkeys
15398
+ })), React.createElement("div", null, React.createElement("p", null, "Secondary level"), React.createElement(Input, {
15399
+ onChange: function onChange(e) {
15400
+ setSecondaryLevel([Number(e.target.value), secondaryLevel[1]]);
15401
+ onChangeSecondaryLevelInput([Number(e.target.value), secondaryLevel[1]]);
15402
+ },
15403
+ placeholder: "Min",
15404
+ type: "number",
15405
+ min: 0,
15406
+ onBlur: enableHotkeys,
15407
+ onFocus: disableHotkeys
15408
+ }), React.createElement(AiFillCaretRight, null), React.createElement(Input, {
15409
+ onChange: function onChange(e) {
15410
+ setSecondaryLevel([secondaryLevel[0], Number(e.target.value)]);
15411
+ onChangeSecondaryLevelInput([secondaryLevel[0], Number(e.target.value)]);
15412
+ },
15413
+ placeholder: "Max",
15414
+ type: "number",
15415
+ min: 0,
15416
+ onBlur: enableHotkeys,
15417
+ onFocus: disableHotkeys
15418
+ })), React.createElement("div", null, React.createElement("p", null, "Price"), React.createElement(Input, {
15419
+ onChange: function onChange(e) {
15420
+ setPrice([Number(e.target.value), price[1]]);
15421
+ onChangePriceInput([Number(e.target.value), price[1]]);
15422
+ },
15423
+ placeholder: "Min",
15424
+ type: "number",
15425
+ min: 0,
15426
+ className: "big-input",
15427
+ onBlur: enableHotkeys,
15428
+ onFocus: disableHotkeys
15429
+ }), React.createElement(AiFillCaretRight, null), React.createElement(Input, {
15430
+ onChange: function onChange(e) {
15431
+ setPrice([price[0], Number(e.target.value)]);
15432
+ onChangePriceInput([price[0], Number(e.target.value)]);
15433
+ },
15434
+ placeholder: "Max",
15435
+ type: "number",
15436
+ min: 0,
15437
+ className: "big-input",
15438
+ onBlur: enableHotkeys,
15439
+ onFocus: disableHotkeys
15440
+ }))), React.createElement(WrapperContainer, null, React.createElement(StyledDropdown, {
15441
+ options: itemTypeOptions,
15442
+ onChange: onChangeType,
15443
+ width: "95%"
15444
+ }), React.createElement(StyledDropdown, {
15445
+ options: itemRarityOptions,
15446
+ onChange: onChangeRarity,
15447
+ width: "95%"
15448
+ }), React.createElement(StyledDropdown, {
15449
+ options: orderByOptions,
15450
+ onChange: onChangeOrder,
15451
+ width: "100%"
15452
+ }))), React.createElement(ItemComponentScrollWrapper, {
15453
+ id: "MarketContainer"
15454
+ }, items == null ? void 0 : items.map(function (_ref2, index) {
15455
+ var item = _ref2.item,
15456
+ price = _ref2.price,
15457
+ _id = _ref2._id,
15458
+ owner = _ref2.owner;
15459
+ return React.createElement(MarketplaceRows, {
15460
+ key: item.key + "_" + index,
15461
+ atlasIMG: atlasIMG,
15462
+ atlasJSON: atlasJSON,
15463
+ item: item,
15464
+ itemPrice: price,
15465
+ equipmentSet: equipmentSet,
15466
+ onMarketPlaceItemBuy: setBuyingItemId.bind(null, _id),
15467
+ disabled: owner === characterId
15468
+ });
15469
+ })));
15470
+ };
15471
+ var InputWrapper = /*#__PURE__*/styled.div.withConfig({
15472
+ displayName: "BuyPanel__InputWrapper",
15473
+ componentId: "sc-1si8t7i-0"
15474
+ })(["width:95%;display:flex !important;justify-content:flex-start;align-items:center;margin:auto;p{width:auto;margin-right:20px;}input{width:68%;height:10px;}"]);
15475
+ var OptionsWrapper = /*#__PURE__*/styled.div.withConfig({
15476
+ displayName: "BuyPanel__OptionsWrapper",
15477
+ componentId: "sc-1si8t7i-1"
15478
+ })(["width:100%;height:100px;"]);
15479
+ var FilterInputsWrapper = /*#__PURE__*/styled.div.withConfig({
15480
+ displayName: "BuyPanel__FilterInputsWrapper",
15481
+ componentId: "sc-1si8t7i-2"
15482
+ })(["width:95%;display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;margin-left:10px;gap:5px;color:white;flex-wrap:wrap;p{width:auto;margin:0;}input{width:75px;height:10px;}.big-input{width:130px;}"]);
15483
+ var WrapperContainer = /*#__PURE__*/styled.div.withConfig({
15484
+ displayName: "BuyPanel__WrapperContainer",
15485
+ componentId: "sc-1si8t7i-3"
15486
+ })(["display:grid;grid-template-columns:40% 30% 30%;justify-content:space-between;width:calc(100% - 40px);margin-left:10px;.rpgui-content .rpgui-dropdown-imp-header{padding:0px 10px 0 !important;}"]);
15487
+ var ItemComponentScrollWrapper = /*#__PURE__*/styled.div.withConfig({
15488
+ displayName: "BuyPanel__ItemComponentScrollWrapper",
15489
+ componentId: "sc-1si8t7i-4"
15490
+ })(["overflow-y:scroll;height:390px;width:100%;margin-top:1rem;@media (max-width:950px){height:250px;}"]);
15491
+ var StyledDropdown = /*#__PURE__*/styled(Dropdown).withConfig({
15492
+ displayName: "BuyPanel__StyledDropdown",
15493
+ componentId: "sc-1si8t7i-5"
15494
+ })(["margin:3px !important;width:170px !important;"]);
15495
+
15496
+ var ManagmentPanel = function ManagmentPanel(_ref) {
15497
+ var items = _ref.items,
15498
+ atlasIMG = _ref.atlasIMG,
15499
+ atlasJSON = _ref.atlasJSON,
15500
+ onChangeNameInput = _ref.onChangeNameInput,
15501
+ equipmentSet = _ref.equipmentSet,
15502
+ availableGold = _ref.availableGold,
15503
+ onMarketPlaceItemRemove = _ref.onMarketPlaceItemRemove,
15504
+ selectedItemToSell = _ref.selectedItemToSell,
15505
+ onSelectedItemToSellRemove = _ref.onSelectedItemToSellRemove,
15506
+ onAddItemToMarketplace = _ref.onAddItemToMarketplace,
15507
+ enableHotkeys = _ref.enableHotkeys,
15508
+ disableHotkeys = _ref.disableHotkeys,
15509
+ onMoneyWithdraw = _ref.onMoneyWithdraw;
15510
+ var _useState = useState(''),
15511
+ name = _useState[0],
15512
+ setName = _useState[1];
15513
+ var _useState2 = useState(''),
15514
+ price = _useState2[0],
15515
+ setPrice = _useState2[1];
15516
+ var _useState3 = useState(false),
15517
+ isCreatingOffer = _useState3[0],
15518
+ setIsCreatingOffer = _useState3[1];
15519
+ var _useState4 = useState(null),
15520
+ removingItemId = _useState4[0],
15521
+ setRemovingItemId = _useState4[1];
15522
+ return React.createElement(React.Fragment, null, isCreatingOffer && React.createElement(ConfirmModal, {
15523
+ onClose: setIsCreatingOffer.bind(null, false),
15524
+ onConfirm: function onConfirm() {
15525
+ if (selectedItemToSell && price && Number(price)) {
15526
+ onAddItemToMarketplace(selectedItemToSell, Number(price));
15527
+ setPrice('');
15528
+ onSelectedItemToSellRemove(selectedItemToSell);
15529
+ setIsCreatingOffer(false);
15530
+ enableHotkeys == null ? void 0 : enableHotkeys();
15531
+ }
15532
+ },
15533
+ message: "Are you sure to create this offer?"
15534
+ }), removingItemId && React.createElement(ConfirmModal, {
15535
+ onClose: setRemovingItemId.bind(null, null),
15536
+ onConfirm: function onConfirm() {
15537
+ onMarketPlaceItemRemove == null ? void 0 : onMarketPlaceItemRemove(removingItemId);
15538
+ setRemovingItemId(null);
15539
+ enableHotkeys == null ? void 0 : enableHotkeys();
15540
+ },
15541
+ message: "Are you sure to remove this item?"
15542
+ }), React.createElement(InputWrapper$1, null, React.createElement("p", null, "Search By Name"), React.createElement(Input, {
15543
+ onChange: function onChange(e) {
15544
+ setName(e.target.value);
15545
+ onChangeNameInput(e.target.value);
15546
+ },
15547
+ value: name,
15548
+ placeholder: "Enter name...",
15549
+ onBlur: enableHotkeys,
15550
+ onFocus: disableHotkeys
15551
+ })), React.createElement(OptionsWrapper$1, null, React.createElement(InnerOptionsWrapper, null, React.createElement(SellDescription, null, "Click on item in inventory to sell it"), React.createElement(Flex$2, null, React.createElement(ItemSlot, {
15552
+ slotIndex: 0,
15518
15553
  atlasIMG: atlasIMG,
15519
- atlasJSON: atlasJSON
15520
- }), React.createElement(ItemsContainer, {
15521
- className: "item-container-body"
15522
- }, onRenderSlots())), quantitySelect.isOpen && React.createElement(ModalPortal, null, React.createElement(QuantitySelectorContainer, null, React.createElement(ItemQuantitySelector, {
15523
- quantity: quantitySelect.maxQuantity,
15524
- onConfirm: function onConfirm(quantity) {
15525
- quantitySelect.callback(quantity);
15526
- setQuantitySelect({
15527
- isOpen: false,
15528
- maxQuantity: 1,
15529
- callback: function callback() {}
15530
- });
15554
+ atlasJSON: atlasJSON,
15555
+ onPointerDown: function onPointerDown(_, __, item) {
15556
+ return onSelectedItemToSellRemove(item);
15557
+ },
15558
+ item: selectedItemToSell
15559
+ }), React.createElement(PriceInputWrapper, null, React.createElement("p", null, "Enter price"), React.createElement(Flex$2, null, React.createElement(Input, {
15560
+ onChange: function onChange(e) {
15561
+ setPrice(e.target.value);
15562
+ },
15563
+ value: price,
15564
+ placeholder: "Enter price...",
15565
+ type: "number",
15566
+ disabled: !selectedItemToSell,
15567
+ onBlur: enableHotkeys,
15568
+ onFocus: disableHotkeys
15569
+ }), React.createElement(Button, {
15570
+ buttonType: ButtonTypes.RPGUIButton,
15571
+ disabled: !selectedItemToSell || !price,
15572
+ onPointerDown: function onPointerDown() {
15573
+ if (selectedItemToSell && price && Number(price)) {
15574
+ setIsCreatingOffer(true);
15575
+ }
15576
+ }
15577
+ }, "Create offer"))))), React.createElement(InnerOptionsWrapper, null, React.createElement(AvailableGold, {
15578
+ "$disabled": availableGold === 0
15579
+ }, React.createElement("p", null, "Available gold"), React.createElement("p", {
15580
+ className: "center"
15581
+ }, "$", availableGold), React.createElement(Button, {
15582
+ buttonType: ButtonTypes.RPGUIButton,
15583
+ disabled: availableGold === 0,
15584
+ onPointerDown: function onPointerDown() {
15585
+ return availableGold > 0 && onMoneyWithdraw();
15586
+ }
15587
+ }, "Withdraw")))), React.createElement(ItemComponentScrollWrapper$1, {
15588
+ id: "MarketContainer"
15589
+ }, items == null ? void 0 : items.map(function (_ref2, index) {
15590
+ var item = _ref2.item,
15591
+ price = _ref2.price,
15592
+ _id = _ref2._id;
15593
+ return React.createElement(MarketplaceRows, {
15594
+ key: item.key + "_" + index,
15595
+ atlasIMG: atlasIMG,
15596
+ atlasJSON: atlasJSON,
15597
+ item: item,
15598
+ itemPrice: price,
15599
+ equipmentSet: equipmentSet,
15600
+ onMarketPlaceItemRemove: setRemovingItemId.bind(null, _id)
15601
+ });
15602
+ })));
15603
+ };
15604
+ var Flex$2 = /*#__PURE__*/styled.div.withConfig({
15605
+ displayName: "ManagmentPanel__Flex",
15606
+ componentId: "sc-1yyi6jn-0"
15607
+ })(["display:flex;gap:5px;align-items:center;"]);
15608
+ var InputWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15609
+ displayName: "ManagmentPanel__InputWrapper",
15610
+ componentId: "sc-1yyi6jn-1"
15611
+ })(["width:95%;display:flex !important;justify-content:flex-start;align-items:center;margin:auto;p{width:auto;margin-right:20px;}input{width:68%;height:10px;}"]);
15612
+ var OptionsWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15613
+ displayName: "ManagmentPanel__OptionsWrapper",
15614
+ componentId: "sc-1yyi6jn-2"
15615
+ })(["width:100%;height:100px;display:flex;align-items:center;justify-content:space-around;"]);
15616
+ var InnerOptionsWrapper = /*#__PURE__*/styled.div.withConfig({
15617
+ displayName: "ManagmentPanel__InnerOptionsWrapper",
15618
+ componentId: "sc-1yyi6jn-3"
15619
+ })(["display:flex;justify-content:space-between;flex-direction:column;height:100%;"]);
15620
+ var ItemComponentScrollWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15621
+ displayName: "ManagmentPanel__ItemComponentScrollWrapper",
15622
+ componentId: "sc-1yyi6jn-4"
15623
+ })(["overflow-y:scroll;height:390px;width:100%;margin-top:1rem;@media (max-width:950px){height:250px;}"]);
15624
+ var PriceInputWrapper = /*#__PURE__*/styled.div.withConfig({
15625
+ displayName: "ManagmentPanel__PriceInputWrapper",
15626
+ componentId: "sc-1yyi6jn-5"
15627
+ })(["p{margin:0;}input{width:200px;}"]);
15628
+ var SellDescription = /*#__PURE__*/styled.p.withConfig({
15629
+ displayName: "ManagmentPanel__SellDescription",
15630
+ componentId: "sc-1yyi6jn-6"
15631
+ })(["margin:0;font-size:", " !important;"], uiFonts.size.xsmall);
15632
+ var AvailableGold = /*#__PURE__*/styled.div.withConfig({
15633
+ displayName: "ManagmentPanel__AvailableGold",
15634
+ componentId: "sc-1yyi6jn-7"
15635
+ })(["height:100%;display:flex;flex-direction:column;justify-content:space-between;p{margin:0;color:", " !important;}.center{text-align:center;font-size:", " !important;color:", " !important;}"], function (props) {
15636
+ return props.$disabled ? uiColors.lightGray : 'white';
15637
+ }, uiFonts.size.large, function (props) {
15638
+ return props.$disabled ? uiColors.lightGray : uiColors.lightGreen;
15639
+ });
15640
+
15641
+ var Marketplace = function Marketplace(props) {
15642
+ var onClose = props.onClose,
15643
+ scale = props.scale,
15644
+ onYourPanelToggle = props.onYourPanelToggle;
15645
+ var _useState = useState(false),
15646
+ isYourPanel = _useState[0],
15647
+ setIsYourPanel = _useState[1];
15648
+ return React.createElement(DraggableContainer, {
15649
+ type: RPGUIContainerTypes.Framed,
15650
+ onCloseButton: function onCloseButton() {
15651
+ if (onClose) onClose();
15652
+ },
15653
+ width: "800px",
15654
+ cancelDrag: "#MarketContainer, .rpgui-dropdown-imp, input, .empty-slot, button",
15655
+ scale: scale
15656
+ }, isYourPanel && React.createElement(React.Fragment, null, React.createElement(ManagmentPanel, Object.assign({}, props)), React.createElement(PagerContainer$1, null, React.createElement(Button, {
15657
+ buttonType: ButtonTypes.RPGUIButton,
15658
+ onPointerDown: function onPointerDown() {
15659
+ onYourPanelToggle(false);
15660
+ setIsYourPanel(false);
15661
+ }
15662
+ }, "Go to marketplace"), React.createElement(Pager, Object.assign({}, props)))), !isYourPanel && React.createElement(React.Fragment, null, React.createElement(BuyPanel, Object.assign({}, props)), React.createElement(PagerContainer$1, null, React.createElement(Button, {
15663
+ buttonType: ButtonTypes.RPGUIButton,
15664
+ onPointerDown: function onPointerDown() {
15665
+ onYourPanelToggle(true);
15666
+ setIsYourPanel(true);
15667
+ }
15668
+ }, "Go to your panel"), React.createElement(Pager, Object.assign({}, props)))));
15669
+ };
15670
+ var PagerContainer$1 = /*#__PURE__*/styled.div.withConfig({
15671
+ displayName: "Marketplace__PagerContainer",
15672
+ componentId: "sc-h904b1-0"
15673
+ })(["display:flex;justify-content:space-between;align-items:center;width:calc(100% - 30px);"]);
15674
+
15675
+ var img$5 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAP1BMVEUAAAA7FyVxQTsUEBPj5v////+5v/tCJDOOUlIiHBr1oJfptaO6dWr61rhzFy1bMTjoanMUNGQoXMQkn97+88DQ3IhAAAAAAXRSTlMAQObYZgAAAAFiS0dEBfhv6ccAAAAHdElNRQfmAw4VOBC7c5LYAAABM0lEQVQ4y3XRi5KDIAwFUAUkbrBgpP//rZsHVHQ009qZ3tPboNN0zmwzvcw8O5sX4y0NOg/Et3jRCXF+ziULorjkOQ9gE24dvuUAzq08DiCO4pe3WN7zCP56vmpubBReQYC11YPS86ySxxCsAABTSgjb5m4g8nfbxvFHBkH2OEEvAItVuCuIsgGgl+Gcr7kDXxhEAx55A2SQEEeQeZwUaIP8Tbo05B0RFPhItAjgj1w6cDnhLluDj+Egkh3pCCP4pKQAw1IPO0W9Nti5gW9RP2dKA3BZd2Dw+baYX+Nt4GM00O4S3kEpF6Alb2Bv4LeC3kkGfAW0/p0RPoJVKr63ghHsKuRh5DIUKOAlGOwrtt9fQekAEfmhZslHUDoglB0zjfkJigN7UnTQQ4GBWomoVhEN/AOPSBh38gy+fwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wMy0xNFQyMTo1NTo1MSswMDowMJcc0eEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDMtMTRUMjE6NTU6NTErMDA6MDDmQWldAAAAAElFTkSuQmCC';
15676
+
15677
+ var img$6 = 'data:image/gif;base64,R0lGODlhQAAgAPIAAAAAAA0NDRERESIiIigoKFlZWf///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw5nYW1tYT0wLjQ1NDU0NQAh+QQBFAAAACwAAAAAQAAgAAAD/wi63P4wykmrvTjrzbv/YAgIZGmeaKquakQWcCzPdG3fNukIeO//PQGDBywafcIF8chswpKKZcxApTqvNOiIZi0YsODncFaFlcNOrdTbJVff0/c3Lp/Xs2N37cy2ndt6ZnhKXHdsc4d7VnwyfIxqPWWOXXWLgHSGYoSNbZKVZp2WiJyjg1GFcaClqaqJhasyUAFrh3Cur3KqubWXBQIBAAEDtDeMaEEDAcLEx2gCycvN0jHPysPT09XR2M3a19zH3gTM4EYCBNDD4yzs7e4r48nB6gT19vf4+fr7/P3P8sKGvRtIkMUAeQoCHlzIsKHDhxAjSoTWQJnFixgzatzIsQWjRQYJAAAh/wtJbWFnZU1hZ2ljaw5nYW1tYT0wLjQ1NDU0NQAh+QQBFAAAACwAAAAAQAAgAAAD8Ai63P4wykmrvTjrzbv/YCiOlGCeaKqubMtGZiHPdG3feI6bjqD/wOBPwPAJj0ggcWFMOp+ypaI5M1it0KxNCqDKsAWDdhwt1q5fMPnJ9aJt17g4HafJ3/et+Tzn99V+aThqfTNtcHlhhIBVWG+BdDSHOmiPeHdij3aYhZONf46YkZGanzpSAV6KjaOIpqWtNwIBAAEDqqKKhZuJnHSwAgMBtqo5sGs5wcO3yM01ysTO0gXQzNPN1cXXUNnbyNna3kcmwrW3Lujp6ugD5bbn6/HyLe20Cu/t+fr7/P3+/wCF2VswrKDBgwgTKlzIsCCDBAA7';
15678
+
15679
+ var ImgSide;
15680
+ (function (ImgSide) {
15681
+ ImgSide["right"] = "right";
15682
+ ImgSide["left"] = "left";
15683
+ })(ImgSide || (ImgSide = {}));
15684
+ var NPCMultiDialog = function NPCMultiDialog(_ref) {
15685
+ var _textAndTypeArray$sli;
15686
+ var _onClose = _ref.onClose,
15687
+ textAndTypeArray = _ref.textAndTypeArray;
15688
+ var _useState = useState(false),
15689
+ showGoNextIndicator = _useState[0],
15690
+ setShowGoNextIndicator = _useState[1];
15691
+ var _useState2 = useState(0),
15692
+ slide = _useState2[0],
15693
+ setSlide = _useState2[1];
15694
+ var onHandleSpacePress = function onHandleSpacePress(event) {
15695
+ if (event.code === 'Space') {
15696
+ if (slide < (textAndTypeArray == null ? void 0 : textAndTypeArray.length) - 1) {
15697
+ setSlide(function (prev) {
15698
+ return prev + 1;
15699
+ });
15700
+ } else {
15701
+ // if there's no more text chunks, close the dialog
15702
+ _onClose();
15703
+ }
15704
+ }
15705
+ };
15706
+ useEffect(function () {
15707
+ document.addEventListener('keydown', onHandleSpacePress);
15708
+ return function () {
15709
+ return document.removeEventListener('keydown', onHandleSpacePress);
15710
+ };
15711
+ }, [slide]);
15712
+ return React.createElement(RPGUIContainer, {
15713
+ type: RPGUIContainerTypes.FramedGold,
15714
+ width: '50%',
15715
+ height: '180px'
15716
+ }, React.createElement(React.Fragment, null, React.createElement(Container$i, null, ((_textAndTypeArray$sli = textAndTypeArray[slide]) == null ? void 0 : _textAndTypeArray$sli.imageSide) === 'right' && React.createElement(React.Fragment, null, React.createElement(TextContainer, {
15717
+ flex: '70%'
15718
+ }, React.createElement(NPCDialogText, {
15719
+ onStartStep: function onStartStep() {
15720
+ return setShowGoNextIndicator(false);
15721
+ },
15722
+ onEndStep: function onEndStep() {
15723
+ return setShowGoNextIndicator(true);
15531
15724
  },
15725
+ text: textAndTypeArray[slide].text || 'No text provided.',
15532
15726
  onClose: function onClose() {
15533
- quantitySelect.callback(-1);
15534
- setQuantitySelect({
15535
- isOpen: false,
15536
- maxQuantity: 1,
15537
- callback: function callback() {}
15727
+ if (_onClose) {
15728
+ _onClose();
15729
+ }
15730
+ }
15731
+ })), React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
15732
+ src: textAndTypeArray[slide].imagePath || img$5
15733
+ })), showGoNextIndicator && React.createElement(PressSpaceIndicator, {
15734
+ right: '10.5rem',
15735
+ src: img$6
15736
+ })), textAndTypeArray[slide].imageSide === 'left' && React.createElement(React.Fragment, null, React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
15737
+ src: textAndTypeArray[slide].imagePath || img$5
15738
+ })), React.createElement(TextContainer, {
15739
+ flex: '70%'
15740
+ }, React.createElement(NPCDialogText, {
15741
+ onStartStep: function onStartStep() {
15742
+ return setShowGoNextIndicator(false);
15743
+ },
15744
+ onEndStep: function onEndStep() {
15745
+ return setShowGoNextIndicator(true);
15746
+ },
15747
+ text: textAndTypeArray[slide].text || 'No text provided.',
15748
+ onClose: function onClose() {
15749
+ if (_onClose) {
15750
+ _onClose();
15751
+ }
15752
+ }
15753
+ })), showGoNextIndicator && React.createElement(PressSpaceIndicator, {
15754
+ right: '1rem',
15755
+ src: img$6
15756
+ }))), ")"));
15757
+ };
15758
+ var Container$i = /*#__PURE__*/styled.div.withConfig({
15759
+ displayName: "NPCMultiDialog__Container",
15760
+ componentId: "sc-rvu5wg-0"
15761
+ })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
15762
+ var TextContainer = /*#__PURE__*/styled.div.withConfig({
15763
+ displayName: "NPCMultiDialog__TextContainer",
15764
+ componentId: "sc-rvu5wg-1"
15765
+ })(["flex:", " 0 0;width:355px;"], function (_ref2) {
15766
+ var flex = _ref2.flex;
15767
+ return flex;
15768
+ });
15769
+ var ThumbnailContainer = /*#__PURE__*/styled.div.withConfig({
15770
+ displayName: "NPCMultiDialog__ThumbnailContainer",
15771
+ componentId: "sc-rvu5wg-2"
15772
+ })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
15773
+ var NPCThumbnail = /*#__PURE__*/styled.img.withConfig({
15774
+ displayName: "NPCMultiDialog__NPCThumbnail",
15775
+ componentId: "sc-rvu5wg-3"
15776
+ })(["image-rendering:pixelated;height:128px;width:128px;"]);
15777
+ var PressSpaceIndicator = /*#__PURE__*/styled.img.withConfig({
15778
+ displayName: "NPCMultiDialog__PressSpaceIndicator",
15779
+ componentId: "sc-rvu5wg-4"
15780
+ })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref3) {
15781
+ var right = _ref3.right;
15782
+ return right;
15783
+ });
15784
+
15785
+ //@ts-ignore
15786
+ var useEventListener = function useEventListener(type, handler, el) {
15787
+ if (el === void 0) {
15788
+ el = window;
15789
+ }
15790
+ var savedHandler = React.useRef();
15791
+ React.useEffect(function () {
15792
+ savedHandler.current = handler;
15793
+ }, [handler]);
15794
+ React.useEffect(function () {
15795
+ //@ts-ignore
15796
+ var listener = function listener(e) {
15797
+ return savedHandler.current(e);
15798
+ };
15799
+ el.addEventListener(type, listener);
15800
+ return function () {
15801
+ el.removeEventListener(type, listener);
15802
+ };
15803
+ }, [type, el]);
15804
+ };
15805
+
15806
+ var DynamicText = function DynamicText(_ref) {
15807
+ var text = _ref.text,
15808
+ onFinish = _ref.onFinish,
15809
+ onStart = _ref.onStart;
15810
+ var _useState = useState(''),
15811
+ textState = _useState[0],
15812
+ setTextState = _useState[1];
15813
+ useEffect(function () {
15814
+ var i = 0;
15815
+ var interval = setInterval(function () {
15816
+ // on every interval, show one more character
15817
+ if (i === 0) {
15818
+ if (onStart) {
15819
+ onStart();
15820
+ }
15821
+ }
15822
+ if (i < text.length) {
15823
+ setTextState(text.substring(0, i + 1));
15824
+ i++;
15825
+ } else {
15826
+ clearInterval(interval);
15827
+ if (onFinish) {
15828
+ onFinish();
15829
+ }
15830
+ }
15831
+ }, 50);
15832
+ return function () {
15833
+ clearInterval(interval);
15834
+ };
15835
+ }, [text]);
15836
+ return React.createElement(TextContainer$1, null, textState);
15837
+ };
15838
+ var TextContainer$1 = /*#__PURE__*/styled.p.withConfig({
15839
+ displayName: "DynamicText__TextContainer",
15840
+ componentId: "sc-1ggl9nd-0"
15841
+ })(["font-size:0.7rem !important;color:white;text-shadow:1px 1px 0px #000000;letter-spacing:1.2px;word-break:normal;"]);
15842
+
15843
+ var QuestionDialog = function QuestionDialog(_ref) {
15844
+ var questions = _ref.questions,
15845
+ answers = _ref.answers,
15846
+ onClose = _ref.onClose;
15847
+ var _useState = useState(questions[0]),
15848
+ currentQuestion = _useState[0],
15849
+ setCurrentQuestion = _useState[1];
15850
+ var _useState2 = useState(false),
15851
+ canShowAnswers = _useState2[0],
15852
+ setCanShowAnswers = _useState2[1];
15853
+ var onGetFirstAnswer = function onGetFirstAnswer() {
15854
+ if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {
15855
+ return null;
15856
+ }
15857
+ var firstAnswerId = currentQuestion.answerIds[0];
15858
+ return answers.find(function (answer) {
15859
+ return answer.id === firstAnswerId;
15860
+ });
15861
+ };
15862
+ var _useState3 = useState(onGetFirstAnswer()),
15863
+ currentAnswer = _useState3[0],
15864
+ setCurrentAnswer = _useState3[1];
15865
+ useEffect(function () {
15866
+ setCurrentAnswer(onGetFirstAnswer());
15867
+ }, [currentQuestion]);
15868
+ var onGetAnswers = function onGetAnswers(answerIds) {
15869
+ return answerIds.map(function (answerId) {
15870
+ return answers.find(function (answer) {
15871
+ return answer.id === answerId;
15538
15872
  });
15873
+ });
15874
+ };
15875
+ var onKeyPress = function onKeyPress(e) {
15876
+ switch (e.key) {
15877
+ case 'ArrowDown':
15878
+ // select next answer, if any.
15879
+ // if no next answer, select first answer
15880
+ // const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(
15881
+ // (answer) => answer?.id === currentAnswer!.id + 1
15882
+ // );
15883
+ var nextAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
15884
+ return (answer == null ? void 0 : answer.id) === currentAnswer.id + 1;
15885
+ });
15886
+ var nextAnswerID = currentQuestion.answerIds[nextAnswerIndex];
15887
+ var nextAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
15888
+ return (answer == null ? void 0 : answer.id) === nextAnswerID;
15889
+ });
15890
+ setCurrentAnswer(nextAnswer || onGetFirstAnswer());
15891
+ break;
15892
+ case 'ArrowUp':
15893
+ // select previous answer, if any.
15894
+ // if no previous answer, select last answer
15895
+ var previousAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
15896
+ return (answer == null ? void 0 : answer.id) === currentAnswer.id - 1;
15897
+ });
15898
+ var previousAnswerID = currentQuestion.answerIds && currentQuestion.answerIds[previousAnswerIndex];
15899
+ var previousAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
15900
+ return (answer == null ? void 0 : answer.id) === previousAnswerID;
15901
+ });
15902
+ if (previousAnswer) {
15903
+ setCurrentAnswer(previousAnswer);
15904
+ } else {
15905
+ setCurrentAnswer(onGetAnswers(currentQuestion.answerIds).pop());
15906
+ }
15907
+ break;
15908
+ case 'Enter':
15909
+ setCanShowAnswers(false);
15910
+ if (!(currentAnswer != null && currentAnswer.nextQuestionId)) {
15911
+ onClose();
15912
+ return;
15913
+ } else {
15914
+ setCurrentQuestion(questions.find(function (question) {
15915
+ return question.id === currentAnswer.nextQuestionId;
15916
+ }));
15917
+ }
15918
+ break;
15539
15919
  }
15540
- }))));
15541
- };
15542
- var ItemsContainer = /*#__PURE__*/styled.div.withConfig({
15543
- displayName: "ItemContainer__ItemsContainer",
15544
- componentId: "sc-15y5p9l-0"
15545
- })(["display:flex;justify-content:center;flex-wrap:wrap;"]);
15546
- var QuantitySelectorContainer = /*#__PURE__*/styled.div.withConfig({
15547
- displayName: "ItemContainer__QuantitySelectorContainer",
15548
- componentId: "sc-15y5p9l-1"
15549
- })(["position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:100;display:flex;justify-content:center;align-items:center;background-color:rgba(0,0,0,0.5);"]);
15550
-
15551
- var ItemSelector = function ItemSelector(_ref) {
15552
- var atlasIMG = _ref.atlasIMG,
15553
- atlasJSON = _ref.atlasJSON,
15554
- options = _ref.options,
15555
- onClose = _ref.onClose,
15556
- onSelect = _ref.onSelect;
15557
- var _useState = useState(),
15558
- selectedValue = _useState[0],
15559
- setSelectedValue = _useState[1];
15560
- var handleClick = function handleClick() {
15561
- var element = document.querySelector("input[name='test']:checked");
15562
- var elementValue = element.value;
15563
- setSelectedValue(elementValue);
15564
15920
  };
15565
- useEffect(function () {
15566
- if (selectedValue) {
15567
- onSelect(selectedValue);
15568
- }
15569
- }, [selectedValue]);
15570
- return React.createElement(DraggableContainer, {
15571
- type: RPGUIContainerTypes.Framed,
15572
- width: "500px",
15573
- cancelDrag: ".equipment-container-body .arrow-selector",
15574
- onCloseButton: function onCloseButton() {
15575
- if (onClose) {
15576
- onClose();
15577
- }
15921
+ useEventListener('keydown', onKeyPress);
15922
+ var onAnswerClick = function onAnswerClick(answer) {
15923
+ setCanShowAnswers(false);
15924
+ if (answer.nextQuestionId) {
15925
+ // if there is a next question, go to it
15926
+ setCurrentQuestion(questions.find(function (question) {
15927
+ return question.id === answer.nextQuestionId;
15928
+ }));
15929
+ } else {
15930
+ // else, finish dialog!
15931
+ onClose();
15578
15932
  }
15579
- }, React.createElement("div", {
15580
- style: {
15581
- width: '100%'
15933
+ };
15934
+ var onRenderCurrentAnswers = function onRenderCurrentAnswers() {
15935
+ var answerIds = currentQuestion.answerIds;
15936
+ if (!answerIds) {
15937
+ return null;
15582
15938
  }
15583
- }, React.createElement(Title$3, null, 'Harvesting instruments'), React.createElement(Subtitle$1, null, 'Use the tool, you need it'), React.createElement("hr", {
15584
- className: "golden"
15585
- })), React.createElement(RadioInputScroller$1, null, options == null ? void 0 : options.map(function (option, index) {
15586
- return React.createElement(RadioOptionsWrapper$1, {
15587
- key: index
15588
- }, React.createElement(SpriteAtlasWrapper$1, null, React.createElement(SpriteFromAtlas, {
15589
- atlasIMG: atlasIMG,
15590
- atlasJSON: atlasJSON,
15591
- spriteKey: option.imageKey,
15592
- imgScale: 3
15593
- })), React.createElement("div", null, React.createElement("input", {
15594
- className: "rpgui-radio",
15595
- type: "radio",
15596
- value: option.name,
15597
- name: "test"
15598
- }), React.createElement("label", {
15599
- onPointerDown: handleClick,
15600
- style: {
15601
- display: 'flex',
15602
- alignItems: 'center'
15603
- }
15604
- }, option.name, " ", React.createElement("br", null), option.description)));
15605
- })), React.createElement(ButtonWrapper$1, null, React.createElement(Button, {
15606
- buttonType: ButtonTypes.RPGUIButton,
15607
- onPointerDown: onClose
15608
- }, "Cancel"), React.createElement(Button, {
15609
- buttonType: ButtonTypes.RPGUIButton
15610
- }, "Select")));
15611
- };
15612
- var Title$3 = /*#__PURE__*/styled.h1.withConfig({
15613
- displayName: "ItemSelector__Title",
15614
- componentId: "sc-gptoxp-0"
15615
- })(["font-size:0.6rem;color:yellow !important;"]);
15616
- var Subtitle$1 = /*#__PURE__*/styled.h1.withConfig({
15617
- displayName: "ItemSelector__Subtitle",
15618
- componentId: "sc-gptoxp-1"
15619
- })(["font-size:0.4rem;color:yellow !important;"]);
15620
- var RadioInputScroller$1 = /*#__PURE__*/styled.div.withConfig({
15621
- displayName: "ItemSelector__RadioInputScroller",
15622
- componentId: "sc-gptoxp-2"
15623
- })(["padding-left:15px;padding-top:10px;width:100%;margin-top:1rem;align-items:center;margin-left:20px;align-items:flex-start;overflow-y:scroll;height:360px;"]);
15624
- var SpriteAtlasWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15625
- displayName: "ItemSelector__SpriteAtlasWrapper",
15626
- componentId: "sc-gptoxp-3"
15627
- })(["margin-right:40px;"]);
15628
- var RadioOptionsWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15629
- displayName: "ItemSelector__RadioOptionsWrapper",
15630
- componentId: "sc-gptoxp-4"
15631
- })(["display:flex;align-items:stretch;margin-bottom:40px;"]);
15632
- var ButtonWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15633
- displayName: "ItemSelector__ButtonWrapper",
15634
- componentId: "sc-gptoxp-5"
15635
- })(["display:flex;justify-content:space-around;padding-top:20px;width:100%;"]);
15636
-
15637
- var ListMenu = function ListMenu(_ref) {
15638
- var options = _ref.options,
15639
- onSelected = _ref.onSelected,
15640
- x = _ref.x,
15641
- y = _ref.y;
15642
- return React.createElement(Container$j, {
15643
- x: x,
15644
- y: y
15645
- }, React.createElement("ul", {
15646
- className: "rpgui-list-imp",
15647
- style: {
15648
- overflow: 'hidden'
15939
+ var answers = onGetAnswers(answerIds);
15940
+ if (!answers) {
15941
+ return null;
15649
15942
  }
15650
- }, options.map(function (params, index) {
15651
- return React.createElement(ListElement$1, {
15652
- key: (params == null ? void 0 : params.id) || index,
15653
- onPointerDown: function onPointerDown() {
15654
- onSelected(params == null ? void 0 : params.id);
15943
+ return answers.map(function (answer) {
15944
+ var isSelected = (currentAnswer == null ? void 0 : currentAnswer.id) === (answer == null ? void 0 : answer.id);
15945
+ var selectedColor = isSelected ? 'yellow' : 'white';
15946
+ if (answer) {
15947
+ return React.createElement(AnswerRow, {
15948
+ key: "answer_" + answer.id
15949
+ }, React.createElement(AnswerSelectedIcon, {
15950
+ color: selectedColor
15951
+ }, isSelected ? 'X' : null), React.createElement(Answer, {
15952
+ key: answer.id,
15953
+ onPointerDown: function onPointerDown() {
15954
+ return onAnswerClick(answer);
15955
+ },
15956
+ color: selectedColor
15957
+ }, answer.text));
15655
15958
  }
15656
- }, (params == null ? void 0 : params.text) || 'No text');
15657
- })));
15658
- };
15659
- var Container$j = /*#__PURE__*/styled.div.withConfig({
15660
- displayName: "ListMenu__Container",
15661
- componentId: "sc-i9097t-0"
15662
- })(["display:flex;flex-direction:column;width:100%;justify-content:start;align-items:flex-start;position:absolute;top:", "px;left:", "px;li{font-size:", ";}"], function (props) {
15663
- return props.y || 0;
15664
- }, function (props) {
15665
- return props.x || 0;
15666
- }, uiFonts.size.xsmall);
15667
- var ListElement$1 = /*#__PURE__*/styled.li.withConfig({
15668
- displayName: "ListMenu__ListElement",
15669
- componentId: "sc-i9097t-1"
15670
- })(["margin-right:0.5rem;"]);
15671
-
15672
- var MarketplaceRows = function MarketplaceRows(_ref) {
15673
- var atlasJSON = _ref.atlasJSON,
15674
- atlasIMG = _ref.atlasIMG,
15675
- item = _ref.item,
15676
- itemPrice = _ref.itemPrice,
15677
- equipmentSet = _ref.equipmentSet,
15678
- scale = _ref.scale,
15679
- onHandleClick = _ref.onHandleClick;
15680
- return React.createElement(MarketPlaceWrapper, null, React.createElement(ItemIconContainer, null, React.createElement(SpriteContainer, null, React.createElement(ItemInfoWrapper, {
15681
- item: item,
15682
- atlasIMG: atlasIMG,
15683
- atlasJSON: atlasJSON,
15684
- equipmentSet: equipmentSet,
15685
- scale: scale
15686
- }, React.createElement(SpriteFromAtlas, {
15687
- atlasIMG: atlasIMG,
15688
- atlasJSON: atlasJSON,
15689
- spriteKey: getItemTextureKeyPath({
15690
- key: item.key,
15691
- stackQty: item.stackQty || 1,
15692
- texturePath: item.texturePath,
15693
- isStackable: item.isStackable
15694
- }, atlasJSON),
15695
- imgScale: 2
15696
- }))), React.createElement(PriceValue, null, React.createElement("p", null, React.createElement(Ellipsis, {
15697
- maxLines: 1,
15698
- maxWidth: "150px",
15699
- fontSize: "10px"
15700
- }, item.name)))), React.createElement(QuantityContainer, null, React.createElement(QuantityDisplay, null, React.createElement(TextOverlay$1, null, React.createElement(Item$1, null, React.createElement(Ellipsis, {
15701
- maxLines: 1,
15702
- maxWidth: "150px",
15703
- fontSize: "10px"
15704
- }, item.rarity))))), React.createElement(ItemIconContainer, null, React.createElement(SpriteContainer, null, React.createElement(SpriteFromAtlas, {
15705
- atlasIMG: atlasIMG,
15706
- atlasJSON: atlasJSON,
15707
- spriteKey: 'others/gold-coin-qty-4.png',
15708
- imgScale: 2
15709
- })), React.createElement(PriceValue, null, React.createElement("p", null, React.createElement(Ellipsis, {
15710
- maxLines: 1,
15711
- maxWidth: "150px",
15712
- fontSize: "10px"
15713
- }, "$", itemPrice)))), React.createElement(ButtonContainer$1, null, React.createElement(Button, {
15714
- buttonType: ButtonTypes.RPGUIButton,
15715
- onClick: function onClick() {
15716
- return onHandleClick(item.name);
15717
- }
15718
- }, "Buy")));
15719
- };
15720
- var MarketPlaceWrapper = /*#__PURE__*/styled.div.withConfig({
15721
- displayName: "MarketplaceRows__MarketPlaceWrapper",
15722
- componentId: "sc-wmpr1o-0"
15723
- })(["margin:auto;display:grid;grid-template-columns:35% 20% 20% 25%;&:hover{background-color:", ";}padding:0.5rem;p{font-size:0.8rem;}"], uiColors.darkGray);
15724
- var ItemIconContainer = /*#__PURE__*/styled.div.withConfig({
15725
- displayName: "MarketplaceRows__ItemIconContainer",
15726
- componentId: "sc-wmpr1o-1"
15727
- })(["display:flex;justify-content:flex-start;align-items:center;"]);
15728
- var SpriteContainer = /*#__PURE__*/styled.div.withConfig({
15729
- displayName: "MarketplaceRows__SpriteContainer",
15730
- componentId: "sc-wmpr1o-2"
15731
- })(["position:relative;top:-0.5rem;left:0.5rem;"]);
15732
- var Item$1 = /*#__PURE__*/styled.span.withConfig({
15733
- displayName: "MarketplaceRows__Item",
15734
- componentId: "sc-wmpr1o-3"
15735
- })(["color:white;text-align:center;z-index:1;width:100%;"]);
15736
- var TextOverlay$1 = /*#__PURE__*/styled.div.withConfig({
15737
- displayName: "MarketplaceRows__TextOverlay",
15738
- componentId: "sc-wmpr1o-4"
15739
- })(["width:100%;position:relative;"]);
15740
- var QuantityContainer = /*#__PURE__*/styled.div.withConfig({
15741
- displayName: "MarketplaceRows__QuantityContainer",
15742
- componentId: "sc-wmpr1o-5"
15743
- })(["position:relative;display:flex;min-width:100px;justify-content:center;align-items:center;"]);
15744
- var QuantityDisplay = /*#__PURE__*/styled.div.withConfig({
15745
- displayName: "MarketplaceRows__QuantityDisplay",
15746
- componentId: "sc-wmpr1o-6"
15747
- })(["font-size:", ";"], uiFonts.size.small);
15748
- var PriceValue = /*#__PURE__*/styled.div.withConfig({
15749
- displayName: "MarketplaceRows__PriceValue",
15750
- componentId: "sc-wmpr1o-7"
15751
- })(["margin-left:40px;"]);
15752
- var ButtonContainer$1 = /*#__PURE__*/styled.div.withConfig({
15753
- displayName: "MarketplaceRows__ButtonContainer",
15754
- componentId: "sc-wmpr1o-8"
15755
- })(["margin:auto;"]);
15756
-
15757
- var Marketplace = function Marketplace(_ref) {
15758
- var items = _ref.items,
15759
- atlasIMG = _ref.atlasIMG,
15760
- atlasJSON = _ref.atlasJSON,
15761
- onClose = _ref.onClose,
15762
- optionsType = _ref.optionsType,
15763
- optionsRarity = _ref.optionsRarity,
15764
- optionsPrice = _ref.optionsPrice,
15765
- onChangeType = _ref.onChangeType,
15766
- onChangeRarity = _ref.onChangeRarity,
15767
- onChangeOrder = _ref.onChangeOrder,
15768
- onChangeNameInput = _ref.onChangeNameInput,
15769
- scale = _ref.scale,
15770
- equipmentSet = _ref.equipmentSet,
15771
- onHandleClick = _ref.onHandleClick;
15772
- return React.createElement(DraggableContainer, {
15773
- type: RPGUIContainerTypes.Framed,
15774
- onCloseButton: function onCloseButton() {
15775
- if (onClose) onClose();
15776
- },
15777
- width: "800px",
15778
- cancelDrag: "#MarketContainer",
15779
- scale: scale
15780
- }, React.createElement(React.Fragment, null, React.createElement(InputWrapper, null, React.createElement("p", null, " Search By Name"), React.createElement(Input, {
15781
- onChange: onChangeNameInput,
15782
- placeholder: 'Search...'
15783
- })), React.createElement(WrapperContainer, null, React.createElement(StyledDropdown, {
15784
- options: optionsType,
15785
- onChange: onChangeType,
15786
- width: '220px'
15787
- }), React.createElement(StyledDropdown, {
15788
- options: optionsRarity,
15789
- onChange: onChangeRarity,
15790
- width: '220px'
15791
- }), React.createElement(StyledDropdown, {
15792
- options: optionsPrice,
15793
- onChange: onChangeOrder,
15794
- width: '220px'
15795
- })), React.createElement(ItemComponentScrollWrapper, {
15796
- id: "MarketContainer"
15797
- }, items == null ? void 0 : items.map(function (item, index) {
15798
- return React.createElement(MarketplaceRows, {
15799
- key: item.key + "_" + index,
15800
- atlasIMG: atlasIMG,
15801
- atlasJSON: atlasJSON,
15802
- item: item,
15803
- itemPrice: 10,
15804
- equipmentSet: equipmentSet,
15805
- onHandleClick: onHandleClick
15959
+ return null;
15806
15960
  });
15807
- }))));
15961
+ };
15962
+ return React.createElement(Container$j, null, React.createElement(QuestionContainer, null, React.createElement(DynamicText, {
15963
+ text: currentQuestion.text,
15964
+ onStart: function onStart() {
15965
+ return setCanShowAnswers(false);
15966
+ },
15967
+ onFinish: function onFinish() {
15968
+ return setCanShowAnswers(true);
15969
+ }
15970
+ })), canShowAnswers && React.createElement(AnswersContainer, null, onRenderCurrentAnswers()));
15808
15971
  };
15809
- var InputWrapper = /*#__PURE__*/styled.div.withConfig({
15810
- displayName: "Marketplace__InputWrapper",
15811
- componentId: "sc-h904b1-0"
15812
- })(["width:95%;display:flex;justify-content:flex-start;align-items:center;margin:auto;margin-bottom:10px;p{width:auto;margin-right:20px;}input{width:68%;height:10px;}"]);
15813
- var WrapperContainer = /*#__PURE__*/styled.div.withConfig({
15814
- displayName: "Marketplace__WrapperContainer",
15815
- componentId: "sc-h904b1-1"
15816
- })(["display:grid;grid-template-columns:30% 30% 30%;justify-content:space-between;width:90%;margin-left:10px;.rpgui-content .rpgui-dropdown-imp-header{padding:0px 10px 0 !important;}"]);
15817
- var ItemComponentScrollWrapper = /*#__PURE__*/styled.div.withConfig({
15818
- displayName: "Marketplace__ItemComponentScrollWrapper",
15819
- componentId: "sc-h904b1-2"
15820
- })(["overflow-y:scroll;height:390px;width:100%;margin-top:1rem;"]);
15821
- var StyledDropdown = /*#__PURE__*/styled(Dropdown).withConfig({
15822
- displayName: "Marketplace__StyledDropdown",
15823
- componentId: "sc-h904b1-3"
15824
- })(["margin:3px !important;width:170px !important;"]);
15972
+ var Container$j = /*#__PURE__*/styled.div.withConfig({
15973
+ displayName: "QuestionDialog__Container",
15974
+ componentId: "sc-bxc5u0-0"
15975
+ })(["display:flex;word-break:break-all;box-sizing:border-box;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;"]);
15976
+ var QuestionContainer = /*#__PURE__*/styled.div.withConfig({
15977
+ displayName: "QuestionDialog__QuestionContainer",
15978
+ componentId: "sc-bxc5u0-1"
15979
+ })(["flex:100%;width:100%;"]);
15980
+ var AnswersContainer = /*#__PURE__*/styled.div.withConfig({
15981
+ displayName: "QuestionDialog__AnswersContainer",
15982
+ componentId: "sc-bxc5u0-2"
15983
+ })(["flex:100%;"]);
15984
+ var Answer = /*#__PURE__*/styled.p.withConfig({
15985
+ displayName: "QuestionDialog__Answer",
15986
+ componentId: "sc-bxc5u0-3"
15987
+ })(["flex:auto;color:", " !important;font-size:0.65rem !important;background:inherit;border:none;"], function (props) {
15988
+ return props.color;
15989
+ });
15990
+ var AnswerSelectedIcon = /*#__PURE__*/styled.span.withConfig({
15991
+ displayName: "QuestionDialog__AnswerSelectedIcon",
15992
+ componentId: "sc-bxc5u0-4"
15993
+ })(["flex:5% 0 0;color:", " !important;"], function (props) {
15994
+ return props.color;
15995
+ });
15996
+ var AnswerRow = /*#__PURE__*/styled.div.withConfig({
15997
+ displayName: "QuestionDialog__AnswerRow",
15998
+ componentId: "sc-bxc5u0-5"
15999
+ })(["display:flex;flex-wrap:wrap;justify-content:center;align-items:center;margin-bottom:0.5rem;height:22px;p{line-height:unset;margin-top:0;margin-bottom:0rem;}"]);
15825
16000
 
15826
16001
  var ProgressBar = function ProgressBar(_ref) {
15827
16002
  var max = _ref.max,
@@ -15849,7 +16024,7 @@ var ProgressBar = function ProgressBar(_ref) {
15849
16024
  percentageWidth: percentageWidth,
15850
16025
  minWidth: minWidth,
15851
16026
  style: style
15852
- }, displayText && React.createElement(TextOverlay$2, null, React.createElement(ProgressBarText, null, value, "/", max)), React.createElement("div", {
16027
+ }, displayText && React.createElement(TextOverlay$1, null, React.createElement(ProgressBarText, null, value, "/", max)), React.createElement("div", {
15853
16028
  className: " rpgui-progress-track"
15854
16029
  }, React.createElement("div", {
15855
16030
  className: "rpgui-progress-fill " + color + " ",
@@ -15867,7 +16042,7 @@ var ProgressBarText = /*#__PURE__*/styled.span.withConfig({
15867
16042
  displayName: "ProgressBar__ProgressBarText",
15868
16043
  componentId: "sc-qa6fzh-0"
15869
16044
  })(["font-size:", " !important;color:white;text-align:center;z-index:1;position:absolute;left:50%;transform:translateX(-50%);top:12px;"], uiFonts.size.small);
15870
- var TextOverlay$2 = /*#__PURE__*/styled.div.withConfig({
16045
+ var TextOverlay$1 = /*#__PURE__*/styled.div.withConfig({
15871
16046
  displayName: "ProgressBar__TextOverlay",
15872
16047
  componentId: "sc-qa6fzh-1"
15873
16048
  })(["width:100%;position:relative;"]);
@@ -15882,7 +16057,7 @@ var Container$k = /*#__PURE__*/styled.div.withConfig({
15882
16057
  return props.style;
15883
16058
  });
15884
16059
 
15885
- var img$8 = 'data:image/png;base64,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';
16060
+ var img$7 = 'data:image/png;base64,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';
15886
16061
 
15887
16062
  var QuestInfo = function QuestInfo(_ref) {
15888
16063
  var quests = _ref.quests,
@@ -15926,7 +16101,7 @@ var QuestInfo = function QuestInfo(_ref) {
15926
16101
  }), React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
15927
16102
  className: "drag-handler"
15928
16103
  }, React.createElement(Title$4, null, React.createElement(Thumbnail, {
15929
- src: quests[currentIndex].thumbnail || img$8
16104
+ src: quests[currentIndex].thumbnail || img$7
15930
16105
  }), quests[currentIndex].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
15931
16106
  className: "golden"
15932
16107
  }))), React.createElement(Content, null, React.createElement("p", null, quests[currentIndex].description)), React.createElement(QuestColumn, {
@@ -15945,7 +16120,7 @@ var QuestInfo = function QuestInfo(_ref) {
15945
16120
  })))) : React.createElement(QuestsContainer, null, React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
15946
16121
  className: "drag-handler"
15947
16122
  }, React.createElement(Title$4, null, React.createElement(Thumbnail, {
15948
- src: quests[0].thumbnail || img$8
16123
+ src: quests[0].thumbnail || img$7
15949
16124
  }), quests[0].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
15950
16125
  className: "golden"
15951
16126
  }))), React.createElement(Content, null, React.createElement("p", null, quests[0].description)), React.createElement(QuestColumn, {
@@ -16541,13 +16716,13 @@ var Statistic$1 = /*#__PURE__*/styled.div.withConfig({
16541
16716
  var SpellInfoDisplay = function SpellInfoDisplay(_ref) {
16542
16717
  var spell = _ref.spell,
16543
16718
  isMobile = _ref.isMobile;
16544
- return React.createElement(Flex$1, {
16719
+ return React.createElement(Flex$3, {
16545
16720
  "$isMobile": isMobile
16546
16721
  }, React.createElement(SpellInfo, {
16547
16722
  spell: spell
16548
16723
  }));
16549
16724
  };
16550
- var Flex$1 = /*#__PURE__*/styled.div.withConfig({
16725
+ var Flex$3 = /*#__PURE__*/styled.div.withConfig({
16551
16726
  displayName: "SpellInfoDisplay__Flex",
16552
16727
  componentId: "sc-1htnsmm-0"
16553
16728
  })(["display:flex;gap:0.5rem;flex-direction:", ";@media (max-width:580px){flex-direction:column-reverse;align-items:center;}"], function (_ref2) {
@@ -16692,7 +16867,6 @@ var Spell = function Spell(_ref) {
16692
16867
  return React.createElement(SpellInfoWrapper, {
16693
16868
  spell: spell
16694
16869
  }, React.createElement(Container$p, {
16695
- disabled: disabled || (activeCooldown != null ? activeCooldown : 0) > 0,
16696
16870
  onPointerUp: onPointerUp == null ? void 0 : onPointerUp.bind(null, spellKey),
16697
16871
  isSettingShortcut: isSettingShortcut && !disabled,
16698
16872
  className: "spell"
@@ -16763,17 +16937,6 @@ var Spellbook = function Spellbook(_ref) {
16763
16937
  var _useState2 = useState(-1),
16764
16938
  settingShortcutIndex = _useState2[0],
16765
16939
  setSettingShortcutIndex = _useState2[1];
16766
- useEffect(function () {
16767
- var handleEscapeClose = function handleEscapeClose(e) {
16768
- if (e.key === 'Escape') {
16769
- onClose == null ? void 0 : onClose();
16770
- }
16771
- };
16772
- document.addEventListener('keydown', handleEscapeClose);
16773
- return function () {
16774
- document.removeEventListener('keydown', handleEscapeClose);
16775
- };
16776
- }, [onClose]);
16777
16940
  var spellsToDisplay = useMemo(function () {
16778
16941
  return spells.sort(function (a, b) {
16779
16942
  if (a.minMagicLevelRequired > b.minMagicLevelRequired) return 1;
@@ -16842,16 +17005,16 @@ var TextArea = function TextArea(_ref) {
16842
17005
  return React.createElement("textarea", Object.assign({}, props));
16843
17006
  };
16844
17007
 
16845
- var img$9 = 'data:image/gif;base64,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';
17008
+ var img$8 = 'data:image/gif;base64,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';
16846
17009
 
16847
- var img$a = 'data:image/gif;base64,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';
17010
+ var img$9 = 'data:image/gif;base64,R0lGODlhTgBNAPMAAAAAALcILyZ31ESZ+lrC/1Ds//vvpv3wo4G8//////38+QAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAAIf4gQ3JlYXRlZCB3aXRoIGV6Z2lmLmNvbSBHSUYgbWFrZXIALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQfIpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2yL+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlAgHm5ybmZV2KHh0naWcepYlo22mradzqUUClK61nJSxIJiMrgm+v664oSKrXqa/yMmmbrkexVXHydK+y2bNULON0dPTppLXGs9UpdzlCaVt4FpsZuTm5ejWwx3iU53v753p89jtnPj49JVRZ2ELgYMFoP0DaE6gF4JjBBycSCChEncMucV7yC+DQYoI/y8uzAjvFUddEkGGRHKPZMlN8lCqXDmgpctuJs90XDdzpc2bynJWgSjh40yLP4ECE1pHZs8CB5MqPcd0ClEARlVCjTpy6kadTrWC7KpU4NaDVndeyNqT64GpSzedBblHbcGUbSmSddlprsokV7HizUtAKsO+hAkMCCw48UTD+RAnZsw2L0aApfy2pTw48eWGczX3ZNzYsdtNAf2KVkm6tOnC2+JqXg2ytWBStiSLzWv7dh5XBnS/Pti7nj9TW2kT7u1bT03dBZSPtuuMnfMkqqXXpl79uhLR2icyj+gdSfjN3FF6Pz89kXU3itnPHO/xfXlm6VXZv3+ShnH+gOUnikAUAFpFny7/XYeGGBOssR8qQjBYQRQPpoOGgHc4WOEeYGAYB4VBBDGEhMTkYCKJKKao4oostujiizDGKOOMF0QAACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAAE4ATQAABP8QyEmrvTjrzbv/YCiOZGmeaKqubOu+cCzPa2DfuE2ruOD/QB9uN7IBB8ikEgnUETk333JKZQpuT0zgV+1Sf4Esxegtd6/h7FZgbn+vz617/k3P5PS8Ei7bIv6AgYKDhIWBfC9+houMjIgsio2Sk4CPKZGUmY2WJnh6B6ChoHpMdieec6KqoXqcRQKaq7Khmq4gmI2zurSUth6oZbMJw8Szc74dwF2rxM3Oq27IG7iGzM7Xw6uT0hnKVNbY2NBm3Bfe36Lh6gmq0aa/bGaq6+vt5O/J8cGh9PSibeUqbCFAoMAyfv38sSoTcMJAggQNTkmXsN5Chvg0PIRYcMm8iur/7HlpCGAjR4lIKIIMefFMxm4COEJEOUDlSnEtq5A0eTKJzZvPcta5FVNmRJ8IgV77h5Go0YgEayZV2ozpyJdaihotAPEnVXZCp+zUepLjx69gF3KFuGTsU6Negf5bazSJ27dmp1IVRfdpqRA838YFyRcvRJISAj89e1NV37eIS5I1zLiiY8OHscLEnFevP7oHHkPWvJkzwcohH4s2GjnxZMyol4peLbO161SyloKiTZug7du4dRkobLo26Wn6gs9a29vwb+B5ls9s/vS5w+R0Lp+kztH6dVJTVnP3ffzDOTrjR7c43yZ99fIi2FchMMA9a/ivwIP3jlx/Hv5QYOefQUtxSDGgTgCaJx8paIhxnYH+geGgQEYIGA0a+NFQIYRngJGhGlEEIeIQE8aXw4klpqjiiiy26OKLMMYo44w0XhABACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAAE4ATQAABP8QyEmrvTjrzbv/YCiOZGmeaKqubOu+cCzPa2DfuE2ruOD/QB9uN7IBB8ikEgnUETk333JKZQpuT0zgV+1Sf4Esxegtd6/h7FZgbn+vz617/k3P5PS8Ei7bIv6AgYKDhIWBfC9+houMjIgsio2Sk4CPKZGUmY2WJnh6n2d2J555B6anpqCcRQKaf6iwp64IqyCYk7G5spq1HqRmusGndL0dv166CcrLunPFG7eLscvU1bGUzxnHVdPV3sqxbtkX21Td39/hbeMV5VOw6PEJsOKivmzAqPLy9GbsYwIIFCijbx+/Yf7sQQlIoOFAc6cMGkS1TqGGLQ0zPlxSUGI8ign/bTHMKJBjR4/pQHr5BwAjyZJKTqJMmaoMS5cvNw6QOdMawpUWtY0kqZNnT2Y/Q4l86bAhEqNH5yWtcnOoxow7I0b1plLpB5xXSUI9qrIAyT1BtVhlSgDeVqTDzLJlkpbcWrZjUVKUy5bAAJYt777M6xEV376AA/cdrHXr3sUNE4Nd7JasYciR66rFnLGyXr4DDiPWvJnzOYkHRItmmljCZMqe+a1e/bK1a3z5CM+jLXCx7dtzklFTcJlzbdIXcbcRVpw35N/A6TDnW8A5W+gT3HXRpdo6SezZlUuHRdt75hriQZkf3UJ7m/XXkYtwX8UvfNbyWYFSlZ8E/f1LgGdMRXoAUtXfKFIUSJWAtvyXBxpihJcggGBE2I4RBK6DxoF9rDHhGWBwSEQPQZQ4hIXz5aAiiiy26OKLMMYo44w01mjjjRdEAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQfIpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2yL+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlJmNliZ4ep9ndieeoKV7oiWYmgesrayah6giqpSutq2wf5wgpG63v616ux+9ZcDHwXPDHbSLwAnQ0cCZyxvFXbfR2tu3yrLMbL622+TStt6z4WbZ5e3dbdVa6sau7fYJ5/Df1gIF6/X37OUrE8/CFgII/WFrFTCgKzcFxwhAmLAKwIb3HpqJOOEgRQIK/5dcxOguGcF98j6CnDKOpECNXjhK8PgxJJKRLsvBDMVrokqbA3Dm5GaSJzGfNREmETrUHKuNKC/QpFiA4k2GTXUWrSITwFSQKoNizUr0aZKqVplENYhU5UemWTWidTug61e3BFqShXZuLt6uXtvizTt270O/bgEHHvy2MNnDjAkovosXLknIkScLHqx36IG5AxAnXpsyMsLOlxGL/qh45ubKqB2KXk2xtes27Bp+Hkzb9m3csaMp4LvbtErfgec8I4qWNmPkycUhYzW3gPPRl+b9O6b6em3SHq7R+7Xau2Tw4bVLd2X+L/qjppC0x+5CvBkCoY27j2E/Ptf3JPTn30cpOwg4IHQ9qTdgXQiGQMaCSaAhRkdcxAfGhBVEoSA8aAB4xxpSEASGh3FoGEQQQ2A4Sw4squjiizDGKOOMNNZo44045nhBBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQfIpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2yL+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlJmNliZ4ep9ndieeoKV7oiWYmgesrayah6giqpSutq2wf5wgpG63v616ux+9ZcDHwXPDHbSLwAnQ0cCZyxvFXbfR2tu3yrLMbL622+TStt6z4WbZ5e3dbdVa6sau7fYJ5/Df1gIF6/X37OUrE8/CFgII/WFrFTCgKzcFxwhAmLAKwIb3HpqJOOEgRQIK/5dcxOguGcF98j6CnDKOpECNXjhK8PgxJJKRLsvBDMVrokqbA3Dm5GaSJzGfNREmETrUHKuNKC/QpFiA4k2GTXUWrSITwFSQKoNizUr0aZKqVplENYhU5UemWTWidTug61e3BFqShXZuLt6uXtvizTt270O/bgEHHvy2MNnDjAkovosXLknIkScLHqx36IG5AxAnXpsyMsLOlxGL/qh45ubKqB2KXk2xtes27Bp+Hkzb9m3csaMp4LvbtErfgec8I4qWNmPkycUhYzW3gPPRl+b9O6b6em3SHq7R+7Xau2Tw4bVLd2X+L/qjppC0x+5CvBkCoY27j2E/Ptf3JPTn30cpOwg4IHQ9qTdgXQiGQMaCSaAhRkdcxAfGhBVEoSA8aAB4xxpSEASGh3FoGEQQQ2A4Sw4squjiizDGKOOMNNZo44045nhBBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQfIpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2yL+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlJmNliZ4ep9ndieeeQemp6agnEUCmn+osKeuCKsgmJOxubKatR6kZrrBp3S9Hb9eugnKy7pzxRu3i7HL1NWxlM8Zx1XT1d7KsW7ZF9tU3d/f4W3jFeVTsOjxCbDior5swKjy8vRm7GMCCBQoo28fv2H+7EEJSKDhQHOnDBpEtU6hhi0NMz5cUlBiPIoJ/20xzCiQY0eP6UB6+QcAI8mSSk6iTJmqDEuXLzcOkDnTGsKVFrWNJKmTZ09mP0OJfOmwIRKjR+clrXJzqMaMOyNG9aZS6QecV0lCPaqyAMk9QbVYZUoA3lakw8yyZZKW3Fq2Y1FSlMuWwACWLe++zOsRFd++gAP3Hax1697FDRODXeyWrGHIkeuqxZyxsl6+Aw4j1ryZ8zmJB0SLZppYwmTKnvmtXv2ytWt8+QjPoy1wse3bc5JRU3CZc23SF3G3EVacN+TfwOkw51vAOVvoE9x10aXaOkns2ZVLh0Xbe+Ya4kGZH91Ce5v115GLcF/FL3zW8lmBUpWfBP39S4BnTEV6AFLV3yhSFEiVgLb8lwcaYoSXIIBgRNiOEQSug8aBfawx4RlgcEhED0GUOISF8+WgIoostujiizDGKOOMNNZo440XRAAAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAE/xDISau9OOvNu/9gKI5kaZ5oqq5s675wLM9rYN+4Tau44P9AH243sgEHyKQSCdQROTffckplCm5PTOBX7VJ/gSzF6C13r+HsVmBuf6/PrXv+Tc/k9LwSLtsi/oCBgoOEhYF8L36Gi4yMiCyKjZKTgI8pkZSZjZYmeHoHoKGgekx2J55zoqqhepxFApqrsqGariCYjbO6tJS2HqhlswnDxLNzvh3AXavEzc6rbsgbuIbMztfDq5PSGcpU1tjY0GbcF97fouHqCarRpr9sZqrr6+3k78nxwaH09KJt5SpsIUCgwDJ+/fyxKhNwwkCCBA1OSZew3kKG+DQ8hFhwybyK6v/seWkIYCNHiUgoggx58UzGbgI4QkQ5QOVKcS2rkDR5MonNm89y1rkVU2ZEnwiBXvuHkajRiARrJlXajOnIl1qKGi0A8SdVdkKn7NR6kuPHr2AXcoW4ZOxTo16B/ltrNInbt2anUhVF92mpEDzfxgXJFy9EkhICPz17U1Xft4hLkjXMuKJjw4exwsTctbI/ugceQ9a8mTMBcJ9lijYaOfFkyp6Xil4ts7XrVLKWgqJNm6Dt27h1GShsujbpafqCz1rb2/Bv4HmWz2z+9LnD5HQun6TO0fp1UlNWc/d9/MM5OuNHtzjfJn318iLYVyEwwD1r+K/Ag/eOXH8e/lBg559BS3FIMaBOAJonHyloiHGdgf6B4aBARggYDRr40VAhhGeAkaEaUQQh4hATxpfDiSWmqOKKLLbo4oswxijjjDReEAEAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAE/xDISau9OOvNu/9gKI5kaZ5oqq5s675wLM9rYN+4Tau44P9AH243sgEHyKQSCdQROTffckplCm5PTOBX7VJ/gSzF6C13r+HsVmBuf6/PrXv+Tc/k9LwSLtsi/oCBgoOEhYF8L36Gi4yMiCyKjZKTgI8pkZQIB5ucm5mVdih4dJ2lnHqWJaNtpq2nc6lFApSutZyUsSCYjK4Jvr+uuKEiq16mv8jJpm65HsVVx8nSvstmzVCzjdHT06aS1xrPVKXc5QmlbeBabGbk5uXo1sMd4lOd7++d6fPY7Zz4+PSVUWdhC4GDBaD9A2hOoBeCYwQcnEggoRJ3DLnFe8gvg0GKCP8vLswI7xVHXRJBhkRyj2TJTfJQqlw5oKXLbibPdFw3c6XNm8pyVoEo4eNMiz+BAhNaR2bPAgeTKj3HdApRAEZVQo06cupGnU61guyqVODWg1Z3Xsjak+uBqUs3nQW5R23BlG0pknXZaa7KJFex4s1LQCrDvoQJDAgsOPFEw/kQJ2bMNi9GgKX8tqU8OPHlhnM192Tc2LHbTQH9ilZJurTpwtvial4NsrVgUrYki81r+3YeVwZ0vz7Yu54/U1tpE+7tW09N3QWUj7brjJ3zJKql16Ze/boS0donMo/oHUn4zdxRej8/PZF1N4rZzxzv8X15ZulV2b9/koZx/oDlJ4pAFABaRZ8u/12HhhgTrLEfKkIwWEEUD6aDhoB3OFjhHmBgGAeFQQQxhITE5GAiiSimqOKKLLbo4oswxijjjBdEAAA7';
16848
17011
 
16849
- var img$b = 'data:image/gif;base64,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';
17012
+ var img$a = 'data:image/gif;base64,R0lGODlhTgBNAPIAAAAAAAgIMhkZS2tsbbcIL4zZ98jh6////yH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAAIf4gQ3JlYXRlZCB3aXRoIGV6Z2lmLmNvbSBHSUYgbWFrZXIALAAAAABOAE0AAAP/CLrc/jDKSau9OOvNu/9gKI5kaZ5oqq4j4b6wy4qwYN+4Dc+biwfAoBCIk/EoL9twySQKXkcI4dasMm+EKMNnDRiA327wmY1OBeLA4ZAW6o7TtpotH5dX8XY4XA888QIDgoOEhYaHiIR/KFOJjo+QiyWNkJWWinc0gZecjgaDkiB5fV4Gpqd8XQYHfKEeo2pppmu0tKaybpkdlJeztb9rpp2uGryVvsDJrJ+XxBiwqsrStnLOF9BVq9PbqVbWFcae27SGtcyRutdoYtrbVtRi3xLYTe3Kbaxt8lLr0dN1+eKlQ9LPij1gpLo12feA3pCDv0hVGzivYLZ/EvVR5McO/2PGNAy3WGQCsdZHjc9GLim5JmGfkAscCmFJp47CLjAVyAxCk1SBlxsbjuzWs06BAz8npnwYEIw0PQaOrilwKxuRoA6wEX1qFGnHLzkB7OTJVU5SdleXdrxnE2iGsU7Z6qkTVqfKlWVPLsQqVE9evUPqir2L9y/gtMUIMzWsV7BdOTRbHvbDNwJcsu6GBFO6S/HKyMCqvrPzyjNJ0MtIORYpEdkv0XQrEwRDWxaqUxlXZ+0neTLnEHl6+xY4ScCe4cRNXG5dRfds5KtuOgdnWjjaJdMtjLWuWjZwJcideKexPPZ4EmdMx3ujpUES9VfInFfhgwpOLPN51MjBf0f7HhYxBPjfgAQWaOCBCCao4IIMNuggBwkAACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAAE4ATQAAA/8Iutz+MMpJq7046827/2AojmRpnmiqriPhvrDLirBg37gNz5uLB8CgEIiT8Sgv23DJJApeRwjhxjQIrU3nM8rwZb/gJ4E7FYCBh8N5qDtO12g1XLhlvef4ZT01Hfj/gIEGgIOBhod7Jn2HjI2OggOJLQKPlZaMkiCLl5yPhZFjNGZ5pFcBBgdWVpkcd3FwBrGysXNYRKEfm35plbFpv7+xnX+sGLqXvsDKacKOn8S4PaOwqMvWzLZrxRauZ9XX4Klz20iUyOHoqZzkEt1f3+hLwNlf7FLTYPDgX8Fw9g7usuhbBkectmjc8AmMN8dgGIQVAlYJR4pek39dFDYZCKz/1DiI7TRO3OfxoDGRQzj+KukPZASJKSmyPINRQUB6KuXgsfjwpDeSO2Hd8pky5jVSBfLUBOBKlTgsOfMUOJDU29ALN41aozY1TQFaS5yucnnv51E8U6vmu5owbFigcNS2zADzCtw1PKsEWGoTpVaCtfDwZerX7tmZF8m+LGx4K2Imgwnjlfk4SGTJk+8ivozZrGaPnDt71swMTBq20nbmtAaWn5zQmLPlPbUam1LFWBlXUdn6o6ggp6nN6i0YN9HglYHMRh2ibvLEJ5o+nw07pNVTVlGpYmM8l27keCF318QYfKnquVFCDWwZvTHnoI1wIaxk5o3xfHzovigGv50yI/XVc59/UdSQw4E7zNdDDAwq6OCDEEYo4YQUVmjhhRhmyEECACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAAE4ATQAAA/8Iutz+MMpJq7046827/2AojmRpnmiqriPhvrDLirBg37gNz5uLB8CgEIiT8Sgv23DJJApeRwjh1qwyb4Qow2ftVp/Z6FTgDRzKQ91xim5fwyu2ey58xgWDvH7P7/v/egZ2KFOAhoeIgyWFiI2OAwZ5ijR4j5aGkZJwIHIBBkCfdGWfBgYHpZ6THp1mZ6JzoUSbHYx6BweOpbq6j5l6qhq1eZm+f6W3yMill7+zGaxox8nTt6hWsUHAGNBd0tTfp9he2hbCiKbg6dWW5Ehk0erxp23tEtxV6PJLyeJW9VLvvORTZ0UZmn8P7jEZ+A3NvDIIHSgcwpCam4ddIm4J2I3/IKyDzuxxxOfx1biQESYKqZjMJESUAJeIY4nM5cttIxeWtClTFs6eK9PR6ZcRZsKcM4V+HOXzghxSplCRUuqmQLSm5ZBSpIqmwAGrTaCG06iAW1Jw0Qx4vVXAWlisFVSC4lrGK9hucOOO7EfTVZu7N5/llElX4FWyC+TORduG6BejMQUW5pkNcuSOjCnXsXz52k7NiBso9vR5KKgAoUUP1ln6oqvUGxvrG1Kty628wVYv7PvN7dtUnN258ZbO90lKQfx2o2nc8eYWuq/t0iUKtkjNC/0FF2w4iHOKj1OMvnpM6nMVim83fjNDrvqrabZzUoK9jnVaZlfCR21EC4AxMdEdpIZ/W/gQ4BdgyBcHgAcWoeAaSeQg4Q4EBhPDhRVmqOGGHHbo4YcghijiiCQ+kAAAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAD/wi63P4wykmrvTjrzbv/YCiOZGmeaKquI+G+sMuKsGDfuA3Pm4sHwKAQiJPxKC/bcMkkCl5HCOHWrDJvhCjDZ+1Wn9noVOANHA5loe44TZvR7uBz1o7b1eHUdMDv+/+AgYJ+cyh7g4iJiYUlh4qPkH2MNAIDBn6XkZqBkx91d6BCcER5nmRBZ6GqAZ0cjnxnm7KCrRmvsga5urmzkqUanwEGQsNVuWfIyLmhtRfBacfJ0mfLds0Vt4rR09wHvJrXE89dBt3mynHhEeNW5efvxWnqD+xN7u+jqOjyv9inXvfOWdnnZZ6DeksCckvjjZ+tf+TexWlYxuAChEMUSrsTr/+LRQUYg2hMtqpgPwkhgYxEVtLjyXUQ7QlsaeUjgJQrU9H88lJKTCY5OVrrSe9nPmHmhKYjevBnwqR2CjAkhQEnVDcFDkh1Y9NqN2gGsp4pUM3lw4hf42TdWpFpUYBX07BtC8xpxrhlOpqsmxcvuaU97BLzu9PmFsGD067qOMzwYbiEVzl+DFmxKp2TLyJOHJkhnMyaoeFbQs0hiJQqc3IrC1SOWwufdBpTTU2vWUpAZLdbyZouCdQZd+m6Axrl5p1Dios7Duqo6xUpnYNSDpt5SerOlCBXg70q8KWvT4yxXnONlgZJyCcHE57O+ONF2mupkaP+jvM9YujHz7+///8NAAYo4IAEFmjggRwkAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAABOAE0AAAP/CLrc/jDKSau9OOvNu/9gKI5kaZ5oqq4j4b6wy4qwYN+4Dc+biwfAoBCIk/EoL9twySQKXkcI4dasMm+EKMNnDRiA327wmY1OBeLA4ZAW6o7TtpotH5dX8XY4XA888QIDgoOEhYaHiIR/KFOJjo+QiyWNkJWWinc0gZecjgaDkiB5faRDBgd8oR6jaqWlfH6ZHZSdtZWqGrS2Bry9vLagshmsdbxrx8e8rrgYxGnGyNFryn3MFrqV0NLbqJ+c1khocqfc5dN14BLOVuTm5rBi6VLiz+7HS8jwVvIP60zt5qwka8PPgb8lALe1QUVQ2ISDptzVYZim4AKIQhJGI6Wv/4lFBRjBBHRV0WGEkF5GkuzyEUBIjchWlmxGrwrMezJZmpyHMCI3jtV29quZEtZNOsX0EBFqkKgXnwr7FKj3peXLclIPTBUTxqpThFifGShwrAA1ncO+Zgwrh+zWmWm5sm3zFi5NuT+TymkJUi1UaXob9vAb5GhOj0xPEi489/DSWYtTNs7JtwHKo0hJIq28JbJIlTI5d9ZjDx/FeIkr5NnTRJu9boJDjFrTxTW3s3ZFiaPN9Sbu3LIFsBbr6zdwTY57Ik6Bss+pjqIvhOStdEn0uwIzl7qe1vN27rmaozOixSWV0G/Kb/Hh3TqZ1DzYK2GJBX75Gjny71AfPkYM/hIABijggAQWaOCBCCao4IIPJAAAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAD/wi63P4wykmrvTjrzbv/YCiOZGmeaKquI+G+sMuKsGDfuA3Pm4sHwKAQiJPxKC/bcMkkCl5HCOHGNAitTeczyvBlv+AngTsVgIGHw3moO07XaDVcuGW95/hlPTUd+P+AgQaAg4GGh3smfYeMjY6CA4ktAo+VloySIIuXnI+FkWM0ZnmkVwEGB1ZWmRx3caWkWEShH5t+aZcGuru6nYGsGLadumnFxb2Vn3/AFq5zxMbRabqkzBXOZ9DS26mya9YTwp7c5Med4BHYX6jl7d5htMGja+ztckLG71/oDupN9eW+HIPDr4G/Ku3gpCIYr9m8dQnnLDxTcMHBJQClxWIoj/9eQFjfGoZ7mCVjNJAhO4IxaQxlygvq3rEs5pKiSAkXg8y89wwOlooAYg7ZuREPUFeqFmIhmqeAz1kqTV0h1/SA05KnFh4liZCbTwMFihWghjXAVoxDqeIJe5Vj1JJq57RdafbmyGxxn84BqiCnzrzZjNrFybXrtppZ+PYtjBEw4rqtGKd1XFOxRclTKYO0fNlnRFhpoHbwm/kjvolZQkP2cMebvlM7t5F9WQszxtjTXicenMGV6pUzZ+/l3XvU72y8dlWBV4L0Yz3EI+t8fmo3H9vVs6/LqopN9NpnjgeGPsOv+GrfRTFe2jNImyheqNdNr4iKyxv0USTB3kSHES4mUpShRBj45QfffjnksAOAPcTgIIMQRijhhBRWaOGFGGao4YYcJAAAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAD/wi63P4wykmrvTjrzbv/YCiOZGmeaKquI+G+sMuKsGDfuA3Pm4sHwKAQiJPxKC/bcMkkCl5HCOHWrDJvhCjDZ+1Wn9noVOANHMpD3XGKbl/DK7Z7LnzGBYO8fs/v+/96BnYoU4CGh4iDJYWIjY4DBnmKNHiPloaRknAgcgEGQJ90ZZ8GBgelnpMenWZno6WwqGihRJsdjHoHB4ilur6+pY2ZeqoauHmZw329v826wZfFGKxezM7Xp7RL2rWrZLPY4cBt0hbHh6bi6sqH5Ujf1eq+S7/cX7bm8F3p6lbjZe4iUKvCDxuaU2gCStFHsF8bhF4UPhjIpKAzOvbeZKC4Tf+cKHL4JHAcYrHZx4QhBTKs6PEkwJQLt5Fs6bKLxC0rOxqck7FitwsDuZWcx3POzQVBZ+50U2DWz3ygPJlCRSrcnAIHmlZ7WiGpkKG6ZhnAqquArK9Ssx1V4DUIWFdtsGrdx/XdKKtMnQZYy5ahvbdFQRrLqfOam54y+fa9u7Smxo2EC190/Bgy48aU98KcMFIpZseKcYKjiTFqaNGjSQN51iWsZm+H3147W8X1adRtrIWjTRDU7Qadm+iuh/gepSBwX8XiHdXmZsuZRf2OGZ2klekqt7rVW9lE8MNpqdZ5ziky8uTa05APEdw19yDYpympDj/+xraeuIPRgpRKTSwv/AHng3nXgbEeDwPOV6AOB/JXQw4Q7hCgMTFUOOGFGGao4YYcdujhhyCGKOIDCQAAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAD/wi63P4wykmrvTjrzbv/YCiOZGmeaKquI+G+sMuKsGDfuA3Pm4sHwKAQiJPxKC/bcMkkCl5HCOHWrDJvhCjDZ+1Wn9noVOANHA5loe44TZvR7uBz1o7b1eHUdMDv+/+AgYJ+cyh7g4iJiYUlh4qPkH2MNAIDBn6XkZqBkx91dwahoqFucER5nmRBZ16hZ6+vpHadHI58Z4iusLtnoZu0GbaKurzFB76RwBefAQZCzs/G0rFuyhbMVgbT28dp1kiVj9rcB4CwmYrfEthN49tW1F7qUqqt72XdZfMO7EzuxnHyddnXoN+Sf7xA6UN1rV4VhLvuVGMIrgxEWBInYjAYTf9aRo3LHLab9tEbxXUi/Xm0Aw1kQ3sAWc46GYFjkIus7BSYuTHlwZVuChzY6bICO1NAcCLNZkDomQKyBtKkB7OYzqH4TvW0CDQN0aIVqyaM09JkMJ8/Y6YpK29qTbRDlJaUqsFmR6tzmxDcAjcuybxL9vJd+xew1h59/RaWeTOA4IKJ73YF0gvsWbJKi0WtkvMxZFCZe7HlDMfzZ9DGNltGnHHUKLJy3G6lvNRw2xaqctpe2Cjybjwn7P4+HNz3ndrEDUVGfsd0XeMlnSOGPkt6LeHNjWgBMIa63jXbt/jwLgeMbDHdIxc5H557khzwd7QPFqP+/Pv48+vfz7+///8FAAbIXwIAOw==';
16850
17013
 
16851
17014
  var DayNightPeriod = function DayNightPeriod(_ref) {
16852
17015
  var _periodOfDaySrcFiles;
16853
17016
  var periodOfDay = _ref.periodOfDay;
16854
- var periodOfDaySrcFiles = (_periodOfDaySrcFiles = {}, _periodOfDaySrcFiles[PeriodOfDay.Morning] = img$a, _periodOfDaySrcFiles[PeriodOfDay.Afternoon] = img$9, _periodOfDaySrcFiles[PeriodOfDay.Night] = img$b, _periodOfDaySrcFiles);
17017
+ var periodOfDaySrcFiles = (_periodOfDaySrcFiles = {}, _periodOfDaySrcFiles[PeriodOfDay.Morning] = img$9, _periodOfDaySrcFiles[PeriodOfDay.Afternoon] = img$8, _periodOfDaySrcFiles[PeriodOfDay.Night] = img$a, _periodOfDaySrcFiles);
16855
17018
  return React.createElement(GifContainer, null, React.createElement("img", {
16856
17019
  src: periodOfDaySrcFiles[periodOfDay]
16857
17020
  }));
@@ -16861,7 +17024,7 @@ var GifContainer = /*#__PURE__*/styled.div.withConfig({
16861
17024
  componentId: "sc-10t97fw-0"
16862
17025
  })(["width:100%;img{width:67%;}"]);
16863
17026
 
16864
- var img$c = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAABHCAYAAAA0qHhdAAAAAXNSR0IArs4c6QAABGRJREFUeJztnb9PGzEUx7+JMjC0Uge6tVsVdTghQP0D2qgjzGz8D8woE2LO/5CNOcwlU9WJRCgDYmWJRAYkFgak6wDv5HPsO9/P8J79WUhicr7nzz3bOV8uHbRPXOXN2x++1LUfYnh4uu8AQK+FulLy7hbHxn96vrh22tjW0b7xPVtH+87bkMbnj1/jh6f7TqfBOmKgurwy6MJ10VRuKqNylwMl7wBy3U5WuetBOhg9om6ZSRaqEtvImJ2zRfL4/GA3eXy494LJzNwBmcpc//9w7wUAMJn1ktdt5bbnaj228qw6VeqWGbctUEXNxn40Fj+2/jn5lHpel8xUd+oqcedsUajum2HkNHEiqf1oDAD4/e1HkWrYMF8uE6GTWQ+j6aryBCh2lVhUXt77bXJpP2i/+tE41e1y5uo2W1cVmfHd4rhxiXnbdZEqReiv76/jpE1q2YbOFNmUwDxsYreO9lkLvbrtJSLp+Xy5xN9/g8TBYPSIboltv0uRWXU/X1zjbnGM08t527tUC7aM1B0UbXiryE1KNGHKUu4ZqjKarpLMpAlQkcxkIxIw7xP3DLVBnzldZbISSUgXqvtwkclSJCFNqDpu0mdqOkOUJ5O1SEKSUHVWWyQzRYgkJAml7KTMzBszRYkkJAhVu1ny49rNpuAskuAaw9VtL/d0nikwY1ZybQQb+udQ+gzKZbXFtGqiq3Y63yoR6m770Rg3wyi1gK1iel1dQNbLqazsX9M2dKib1bPNi6wkbNl5M4w2tUulGIwe8fB031nrhH0RCbzGpgrVJxSEaYXfdoWCrdxE1lUNtnJ9+6PpKrmgSxUVm45IyTIB8zncnbPF2th58nMbo+kq9zUX8t5XpC4SCQSZVpkovzy4MWiHvRRJSBFaZj0z8E6xyvQlKwE5sYbMFEQXlvHSd97apNL3YtomZKYgjDKljCFFkBBzyExBBJmCCDIFEWQKIsgURJApiCBTEEGmILqA26q4b3Bsk5CZgjDKdL1/gCQkxJzI5NitNAXXtugC6HC5NL9N3tqE1cn3MGYKIiVT7V4kjCGuqLFy7WIBw61jOAdTFikxp66bPT/YXbsnm4RF2yz0Hmgy67EcLwHDmCnlKC0D99hVmcmslntQZaCYuWYlYPgWmOkeOaeXc5bB5XF+sLs2yeMs05iC+rh5uBfF0sbO17EyHSf3HkkfMzunl3P2QZWB88SHsO246JmtpBmsSuYZoMmsJ+5Egn6CQFIvlHUkrk2GKFO5ZiiJ1AVKyEogPwDj7BbgN8M1zVwBOSIBtyDYC/VBJOAeCFuhvogEigXDTqhPIoESd4LmItQ3kUC5oKxCgc1LtUkEZIsEKvx6wnsU6rNIoFpwmUKJpsVmCVT2ARAuEqgeoJNQoH6pLhLf6gU8EAnUE2QMoPDPSxSV6ypP2T499EIkUG+gzlnaND5lo0pjv5/Ztljt2l/vRALNBl2q+y2Kj92pjTYaIDXWVZVruPree4nEJhqi6ppokGfhP6xr60VVr5O+AAAAAElFTkSuQmCC';
17027
+ var img$b = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAABHCAYAAAA0qHhdAAAAAXNSR0IArs4c6QAABGRJREFUeJztnb9PGzEUx7+JMjC0Uge6tVsVdTghQP0D2qgjzGz8D8woE2LO/5CNOcwlU9WJRCgDYmWJRAYkFgak6wDv5HPsO9/P8J79WUhicr7nzz3bOV8uHbRPXOXN2x++1LUfYnh4uu8AQK+FulLy7hbHxn96vrh22tjW0b7xPVtH+87bkMbnj1/jh6f7TqfBOmKgurwy6MJ10VRuKqNylwMl7wBy3U5WuetBOhg9om6ZSRaqEtvImJ2zRfL4/GA3eXy494LJzNwBmcpc//9w7wUAMJn1ktdt5bbnaj228qw6VeqWGbctUEXNxn40Fj+2/jn5lHpel8xUd+oqcedsUajum2HkNHEiqf1oDAD4/e1HkWrYMF8uE6GTWQ+j6aryBCh2lVhUXt77bXJpP2i/+tE41e1y5uo2W1cVmfHd4rhxiXnbdZEqReiv76/jpE1q2YbOFNmUwDxsYreO9lkLvbrtJSLp+Xy5xN9/g8TBYPSIboltv0uRWXU/X1zjbnGM08t527tUC7aM1B0UbXiryE1KNGHKUu4ZqjKarpLMpAlQkcxkIxIw7xP3DLVBnzldZbISSUgXqvtwkclSJCFNqDpu0mdqOkOUJ5O1SEKSUHVWWyQzRYgkJAml7KTMzBszRYkkJAhVu1ny49rNpuAskuAaw9VtL/d0nikwY1ZybQQb+udQ+gzKZbXFtGqiq3Y63yoR6m770Rg3wyi1gK1iel1dQNbLqazsX9M2dKib1bPNi6wkbNl5M4w2tUulGIwe8fB031nrhH0RCbzGpgrVJxSEaYXfdoWCrdxE1lUNtnJ9+6PpKrmgSxUVm45IyTIB8zncnbPF2th58nMbo+kq9zUX8t5XpC4SCQSZVpkovzy4MWiHvRRJSBFaZj0z8E6xyvQlKwE5sYbMFEQXlvHSd97apNL3YtomZKYgjDKljCFFkBBzyExBBJmCCDIFEWQKIsgURJApiCBTEEGmILqA26q4b3Bsk5CZgjDKdL1/gCQkxJzI5NitNAXXtugC6HC5NL9N3tqE1cn3MGYKIiVT7V4kjCGuqLFy7WIBw61jOAdTFikxp66bPT/YXbsnm4RF2yz0Hmgy67EcLwHDmCnlKC0D99hVmcmslntQZaCYuWYlYPgWmOkeOaeXc5bB5XF+sLs2yeMs05iC+rh5uBfF0sbO17EyHSf3HkkfMzunl3P2QZWB88SHsO246JmtpBmsSuYZoMmsJ+5Egn6CQFIvlHUkrk2GKFO5ZiiJ1AVKyEogPwDj7BbgN8M1zVwBOSIBtyDYC/VBJOAeCFuhvogEigXDTqhPIoESd4LmItQ3kUC5oKxCgc1LtUkEZIsEKvx6wnsU6rNIoFpwmUKJpsVmCVT2ARAuEqgeoJNQoH6pLhLf6gU8EAnUE2QMoPDPSxSV6ypP2T499EIkUG+gzlnaND5lo0pjv5/Ztljt2l/vRALNBl2q+y2Kj92pjTYaIDXWVZVruPree4nEJhqi6ppokGfhP6xr60VVr5O+AAAAAElFTkSuQmCC';
16865
17028
 
16866
17029
  var TimeWidget = function TimeWidget(_ref) {
16867
17030
  var onClose = _ref.onClose,
@@ -16879,7 +17042,7 @@ var TimeWidget = function TimeWidget(_ref) {
16879
17042
  var WidgetContainer = /*#__PURE__*/styled.div.withConfig({
16880
17043
  displayName: "TimeWidget__WidgetContainer",
16881
17044
  componentId: "sc-1ja236h-0"
16882
- })(["background-image:url(", ");background-size:10rem;background-repeat:no-repeat;width:10rem;position:absolute;height:100px;"], img$c);
17045
+ })(["background-image:url(", ");background-size:10rem;background-repeat:no-repeat;width:10rem;position:absolute;height:100px;"], img$b);
16883
17046
  var Time = /*#__PURE__*/styled.div.withConfig({
16884
17047
  displayName: "TimeWidget__Time",
16885
17048
  componentId: "sc-1ja236h-1"
@@ -16944,7 +17107,7 @@ var TradingItemRow = function TradingItemRow(_ref) {
16944
17107
  className: "arrow-selector",
16945
17108
  direction: "left",
16946
17109
  onPointerDown: onLeftClick
16947
- }), React.createElement(QuantityDisplay$1, null, React.createElement(TextOverlay$3, null, React.createElement(Item$2, null, selectedQty))), React.createElement(StyledArrow, {
17110
+ }), React.createElement(QuantityDisplay, null, React.createElement(TextOverlay$2, null, React.createElement(Item$1, null, selectedQty))), React.createElement(StyledArrow, {
16948
17111
  size: 32,
16949
17112
  className: "arrow-selector",
16950
17113
  direction: "right",
@@ -16980,11 +17143,11 @@ var NameValue = /*#__PURE__*/styled.div.withConfig({
16980
17143
  displayName: "TradingItemRow__NameValue",
16981
17144
  componentId: "sc-mja0b5-5"
16982
17145
  })(["p{font-size:0.75rem;margin:0;}"]);
16983
- var Item$2 = /*#__PURE__*/styled.span.withConfig({
17146
+ var Item$1 = /*#__PURE__*/styled.span.withConfig({
16984
17147
  displayName: "TradingItemRow__Item",
16985
17148
  componentId: "sc-mja0b5-6"
16986
17149
  })(["color:white;text-align:center;z-index:1;width:100%;"]);
16987
- var TextOverlay$3 = /*#__PURE__*/styled.div.withConfig({
17150
+ var TextOverlay$2 = /*#__PURE__*/styled.div.withConfig({
16988
17151
  displayName: "TradingItemRow__TextOverlay",
16989
17152
  componentId: "sc-mja0b5-7"
16990
17153
  })(["width:100%;position:relative;"]);
@@ -16992,7 +17155,7 @@ var QuantityContainer$1 = /*#__PURE__*/styled.div.withConfig({
16992
17155
  displayName: "TradingItemRow__QuantityContainer",
16993
17156
  componentId: "sc-mja0b5-8"
16994
17157
  })(["position:relative;display:flex;min-width:100px;width:40%;justify-content:center;align-items:center;flex:40%;"]);
16995
- var QuantityDisplay$1 = /*#__PURE__*/styled.div.withConfig({
17158
+ var QuantityDisplay = /*#__PURE__*/styled.div.withConfig({
16996
17159
  displayName: "TradingItemRow__QuantityDisplay",
16997
17160
  componentId: "sc-mja0b5-9"
16998
17161
  })(["font-size:", ";"], uiFonts.size.small);
@@ -17140,5 +17303,219 @@ var Container$r = /*#__PURE__*/styled.div.withConfig({
17140
17303
  return props.maxLines;
17141
17304
  });
17142
17305
 
17306
+ var IS_MOBILE_OR_TABLET = /*#__PURE__*/isMobileOrTablet();
17307
+
17308
+ var chunkString = function chunkString(str, length) {
17309
+ return str.match(new RegExp('.{1,' + length + '}', 'g'));
17310
+ };
17311
+
17312
+ var img$c = 'data:image/gif;base64,R0lGODlhEAAQAPIAAAAAABQYLiw1TUBJc2hvmQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAM9CLrc/lCFGSKYJJP5AhlguDnBMIVgxXgmJapSSp3mKs/pKrT0IMCXUk+2Cgh2oSOnaDz+lswZpSOFUq2KBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAIzhI+py90Bg4OjDrjCELxfFQhQx0mIJkaeaYRp5LJADMdnqXbyOJLYTdKBejjZoRaZJBMFACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAABAAEAAAAjKEj6nL7Y+CDE6OO+QKQ/ifKYEgfR4VddPohQe7lmR0xidNTib65uacYP2AQWGuMlEUAAA7';
17313
+
17314
+ var NPCDialogText = function NPCDialogText(_ref) {
17315
+ var text = _ref.text,
17316
+ onClose = _ref.onClose,
17317
+ onEndStep = _ref.onEndStep,
17318
+ onStartStep = _ref.onStartStep,
17319
+ type = _ref.type;
17320
+ var windowSize = useRef([window.innerWidth, window.innerHeight]);
17321
+ function maxCharacters(width) {
17322
+ // Set the font size to 16 pixels
17323
+ var fontSize = 11.2;
17324
+ // Calculate the number of characters that can fit in one line
17325
+ var charactersPerLine = Math.floor(width / 2 / fontSize);
17326
+ // Calculate the number of lines that can fit in the div
17327
+ var linesPerDiv = Math.floor(180 / fontSize);
17328
+ // Calculate the maximum number of characters that can fit in the div
17329
+ var maxCharacters = charactersPerLine * linesPerDiv;
17330
+ // Return the maximum number of characters
17331
+ return Math.round(maxCharacters / 5);
17332
+ }
17333
+ var textChunks = chunkString(text, maxCharacters(windowSize.current[0]));
17334
+ var _useState = useState(0),
17335
+ chunkIndex = _useState[0],
17336
+ setChunkIndex = _useState[1];
17337
+ var onHandleSpacePress = function onHandleSpacePress(event) {
17338
+ if (event.code === 'Space') {
17339
+ goToNextStep();
17340
+ }
17341
+ };
17342
+ var goToNextStep = function goToNextStep() {
17343
+ var hasNextChunk = (textChunks == null ? void 0 : textChunks[chunkIndex + 1]) || false;
17344
+ if (hasNextChunk) {
17345
+ setChunkIndex(function (prev) {
17346
+ return prev + 1;
17347
+ });
17348
+ } else {
17349
+ // if there's no more text chunks, close the dialog
17350
+ onClose();
17351
+ }
17352
+ };
17353
+ useEffect(function () {
17354
+ document.addEventListener('keydown', onHandleSpacePress);
17355
+ return function () {
17356
+ return document.removeEventListener('keydown', onHandleSpacePress);
17357
+ };
17358
+ }, [chunkIndex]);
17359
+ var _useState2 = useState(false),
17360
+ showGoNextIndicator = _useState2[0],
17361
+ setShowGoNextIndicator = _useState2[1];
17362
+ return React.createElement(Container$s, null, React.createElement(DynamicText, {
17363
+ text: (textChunks == null ? void 0 : textChunks[chunkIndex]) || '',
17364
+ onFinish: function onFinish() {
17365
+ setShowGoNextIndicator(true);
17366
+ onEndStep && onEndStep();
17367
+ },
17368
+ onStart: function onStart() {
17369
+ setShowGoNextIndicator(false);
17370
+ onStartStep && onStartStep();
17371
+ }
17372
+ }), showGoNextIndicator && React.createElement(PressSpaceIndicator$1, {
17373
+ right: type === NPCDialogType.TextOnly ? '1rem' : '10.5rem',
17374
+ src: IS_MOBILE_OR_TABLET ? img$c : img$6,
17375
+ onPointerDown: function onPointerDown() {
17376
+ goToNextStep();
17377
+ }
17378
+ }));
17379
+ };
17380
+ var Container$s = /*#__PURE__*/styled.div.withConfig({
17381
+ displayName: "NPCDialogText__Container",
17382
+ componentId: "sc-1cxkdh9-0"
17383
+ })([""]);
17384
+ var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
17385
+ displayName: "NPCDialogText__PressSpaceIndicator",
17386
+ componentId: "sc-1cxkdh9-1"
17387
+ })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref2) {
17388
+ var right = _ref2.right;
17389
+ return right;
17390
+ });
17391
+
17392
+ var NPCDialogType;
17393
+ (function (NPCDialogType) {
17394
+ NPCDialogType["TextOnly"] = "TextOnly";
17395
+ NPCDialogType["TextAndThumbnail"] = "TextAndThumbnail";
17396
+ })(NPCDialogType || (NPCDialogType = {}));
17397
+ var NPCDialog = function NPCDialog(_ref) {
17398
+ var text = _ref.text,
17399
+ type = _ref.type,
17400
+ _onClose = _ref.onClose,
17401
+ imagePath = _ref.imagePath,
17402
+ _ref$isQuestionDialog = _ref.isQuestionDialog,
17403
+ isQuestionDialog = _ref$isQuestionDialog === void 0 ? false : _ref$isQuestionDialog,
17404
+ questions = _ref.questions,
17405
+ answers = _ref.answers;
17406
+ return React.createElement(RPGUIContainer, {
17407
+ type: RPGUIContainerTypes.FramedGold,
17408
+ width: isQuestionDialog ? '600px' : '80%',
17409
+ height: '180px'
17410
+ }, isQuestionDialog && questions && answers ? React.createElement(React.Fragment, null, React.createElement(TextContainer$2, {
17411
+ flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
17412
+ }, React.createElement(QuestionDialog, {
17413
+ questions: questions,
17414
+ answers: answers,
17415
+ onClose: function onClose() {
17416
+ if (_onClose) {
17417
+ _onClose();
17418
+ }
17419
+ }
17420
+ })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
17421
+ src: imagePath || img$5
17422
+ }))) : React.createElement(React.Fragment, null, React.createElement(Container$t, null, React.createElement(TextContainer$2, {
17423
+ flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
17424
+ }, React.createElement(NPCDialogText, {
17425
+ type: type,
17426
+ text: text || 'No text provided.',
17427
+ onClose: function onClose() {
17428
+ if (_onClose) {
17429
+ _onClose();
17430
+ }
17431
+ }
17432
+ })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
17433
+ src: imagePath || img$5
17434
+ })))));
17435
+ };
17436
+ var Container$t = /*#__PURE__*/styled.div.withConfig({
17437
+ displayName: "NPCDialog__Container",
17438
+ componentId: "sc-1b4aw74-0"
17439
+ })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
17440
+ var TextContainer$2 = /*#__PURE__*/styled.div.withConfig({
17441
+ displayName: "NPCDialog__TextContainer",
17442
+ componentId: "sc-1b4aw74-1"
17443
+ })(["flex:", " 0 0;width:355px;"], function (_ref2) {
17444
+ var flex = _ref2.flex;
17445
+ return flex;
17446
+ });
17447
+ var ThumbnailContainer$1 = /*#__PURE__*/styled.div.withConfig({
17448
+ displayName: "NPCDialog__ThumbnailContainer",
17449
+ componentId: "sc-1b4aw74-2"
17450
+ })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
17451
+ var NPCThumbnail$1 = /*#__PURE__*/styled.img.withConfig({
17452
+ displayName: "NPCDialog__NPCThumbnail",
17453
+ componentId: "sc-1b4aw74-3"
17454
+ })(["image-rendering:pixelated;height:128px;width:128px;"]);
17455
+
17456
+ var HistoryDialog = function HistoryDialog(_ref) {
17457
+ var backgroundImgPath = _ref.backgroundImgPath,
17458
+ fullCoverBackground = _ref.fullCoverBackground,
17459
+ questions = _ref.questions,
17460
+ answers = _ref.answers,
17461
+ text = _ref.text,
17462
+ imagePath = _ref.imagePath,
17463
+ textAndTypeArray = _ref.textAndTypeArray,
17464
+ onClose = _ref.onClose;
17465
+ var _useState = useState(0),
17466
+ img = _useState[0],
17467
+ setImage = _useState[1];
17468
+ var onHandleSpacePress = function onHandleSpacePress(event) {
17469
+ if (event.code === 'Space') {
17470
+ if (img < (backgroundImgPath == null ? void 0 : backgroundImgPath.length) - 1) {
17471
+ setImage(function (prev) {
17472
+ return prev + 1;
17473
+ });
17474
+ } else {
17475
+ // if there's no more text chunks, close the dialog
17476
+ onClose();
17477
+ }
17478
+ }
17479
+ };
17480
+ useEffect(function () {
17481
+ document.addEventListener('keydown', onHandleSpacePress);
17482
+ return function () {
17483
+ return document.removeEventListener('keydown', onHandleSpacePress);
17484
+ };
17485
+ }, [backgroundImgPath]);
17486
+ return React.createElement(BackgroundContainer, {
17487
+ imgPath: backgroundImgPath[img],
17488
+ fullImg: fullCoverBackground
17489
+ }, React.createElement(DialogContainer, null, textAndTypeArray ? React.createElement(NPCMultiDialog, {
17490
+ textAndTypeArray: textAndTypeArray,
17491
+ onClose: onClose
17492
+ }) : questions && answers ? React.createElement(QuestionDialog, {
17493
+ questions: questions,
17494
+ answers: answers,
17495
+ onClose: onClose
17496
+ }) : text && imagePath ? React.createElement(NPCDialog, {
17497
+ text: text,
17498
+ imagePath: imagePath,
17499
+ onClose: onClose,
17500
+ type: NPCDialogType.TextAndThumbnail
17501
+ }) : React.createElement(NPCDialog, {
17502
+ text: text,
17503
+ onClose: onClose,
17504
+ type: NPCDialogType.TextOnly
17505
+ })));
17506
+ };
17507
+ var BackgroundContainer = /*#__PURE__*/styled.div.withConfig({
17508
+ displayName: "HistoryDialog__BackgroundContainer",
17509
+ componentId: "sc-u6oe75-0"
17510
+ })(["width:100%;height:100%;background-image:url(", ");background-size:", ";display:flex;justify-content:space-evenly;align-items:center;"], function (props) {
17511
+ return props.imgPath;
17512
+ }, function (props) {
17513
+ return props.imgPath ? 'cover' : 'auto';
17514
+ });
17515
+ var DialogContainer = /*#__PURE__*/styled.div.withConfig({
17516
+ displayName: "HistoryDialog__DialogContainer",
17517
+ componentId: "sc-u6oe75-1"
17518
+ })(["display:flex;justify-content:center;padding-top:200px;"]);
17519
+
17143
17520
  export { Button, ButtonTypes, CharacterSelection, Chat, ChatDeprecated, CheckButton, CircularController, CraftBook, DraggableContainer, Dropdown, DropdownSelectorContainer, DynamicText, EquipmentSet, EquipmentSlotSpriteByType, ErrorBoundary, HistoryDialog, ImgSide, Input, InputRadio$1 as InputRadio, ItemContainer$1 as ItemContainer, ItemSelector, ItemSlot, ListMenu, Marketplace, MarketplaceRows, NPCDialog, NPCDialogType, NPCMultiDialog, ProgressBar, PropertySelect, QuestInfo, QuestList, QuestionDialog, RPGUIContainer, RPGUIContainerTypes, RPGUIRoot, RangeSlider, RangeSliderType, Shortcuts, SkillProgressBar, SkillsContainer, Spellbook, SpriteFromAtlas, TextArea, TimeWidget, TradingMenu, Truncate, _RPGUI, rarityColor, useEventListener };
17144
17521
  //# sourceMappingURL=long-bow.esm.js.map