@rpg-engine/long-bow 0.3.93 → 0.3.95

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 (160) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +181 -181
  3. package/dist/components/CraftBook/CraftBook.d.ts +4 -1
  4. package/dist/components/CraftBook/CraftingRecipe.d.ts +15 -0
  5. package/dist/components/InputRadio.d.ts +10 -0
  6. package/dist/components/Spellbook/Spell.d.ts +1 -1
  7. package/dist/libs/itemCounter.d.ts +2 -0
  8. package/dist/long-bow.cjs.development.js +1567 -1453
  9. package/dist/long-bow.cjs.development.js.map +1 -1
  10. package/dist/long-bow.cjs.production.min.js +1 -1
  11. package/dist/long-bow.cjs.production.min.js.map +1 -1
  12. package/dist/long-bow.esm.js +1481 -1367
  13. package/dist/long-bow.esm.js.map +1 -1
  14. package/package.json +100 -100
  15. package/src/components/Abstractions/ModalPortal.tsx +22 -22
  16. package/src/components/Abstractions/SlotsContainer.tsx +62 -62
  17. package/src/components/Arrow/SelectArrow.tsx +69 -69
  18. package/src/components/Arrow/img/arrow01-left-clicked.png +0 -0
  19. package/src/components/Arrow/img/arrow01-left.png +0 -0
  20. package/src/components/Arrow/img/arrow01-right-clicked.png +0 -0
  21. package/src/components/Arrow/img/arrow01-right.png +0 -0
  22. package/src/components/Arrow/img/arrow02-left-clicked.png +0 -0
  23. package/src/components/Arrow/img/arrow02-left.png +0 -0
  24. package/src/components/Arrow/img/arrow02-right-clicked.png +0 -0
  25. package/src/components/Arrow/img/arrow02-right.png +0 -0
  26. package/src/components/Button.tsx +40 -40
  27. package/src/components/Character/CharacterSelection.tsx +98 -98
  28. package/src/components/CharacterStatus/CharacterStatus.tsx +120 -120
  29. package/src/components/Chat/Chat.tsx +196 -196
  30. package/src/components/Chatdeprecated/ChatDeprecated.tsx +198 -198
  31. package/src/components/CheckButton.tsx +65 -65
  32. package/src/components/CircularController/CircularController.tsx +249 -249
  33. package/src/components/CraftBook/CraftBook.tsx +286 -260
  34. package/src/components/CraftBook/CraftingRecipe.tsx +161 -0
  35. package/src/components/CraftBook/MockItems.ts +101 -89
  36. package/src/components/DraggableContainer.tsx +180 -180
  37. package/src/components/DropdownSelectorContainer.tsx +42 -42
  38. package/src/components/Equipment/EquipmentSet.tsx +199 -199
  39. package/src/components/HistoryDialog.tsx +104 -104
  40. package/src/components/Input.tsx +15 -15
  41. package/src/components/InputRadio.tsx +41 -0
  42. package/src/components/Item/Cards/ItemInfo.tsx +252 -252
  43. package/src/components/Item/Cards/ItemInfoDisplay.tsx +128 -128
  44. package/src/components/Item/Cards/ItemInfoWrapper.tsx +62 -62
  45. package/src/components/Item/Cards/ItemTooltip.tsx +83 -83
  46. package/src/components/Item/Cards/MobileItemTooltip.tsx +149 -149
  47. package/src/components/Item/Inventory/ErrorBoundary.tsx +42 -42
  48. package/src/components/Item/Inventory/ItemContainer.tsx +231 -231
  49. package/src/components/Item/Inventory/ItemContainerTypes.ts +6 -6
  50. package/src/components/Item/Inventory/ItemQuantitySelector.tsx +138 -138
  51. package/src/components/Item/Inventory/ItemSlot.tsx +580 -580
  52. package/src/components/Item/Inventory/itemContainerHelper.ts +175 -175
  53. package/src/components/ListMenu.tsx +63 -63
  54. package/src/components/Marketplace/Marketplace.tsx +132 -132
  55. package/src/components/Marketplace/MarketplaceRows.tsx +171 -171
  56. package/src/components/Marketplace/__mocks__/index.tsx +65 -65
  57. package/src/components/Multitab/Tab.tsx +66 -66
  58. package/src/components/Multitab/TabBody.tsx +13 -13
  59. package/src/components/Multitab/TabsContainer.tsx +97 -97
  60. package/src/components/NPCDialog/NPCDialog.tsx +121 -121
  61. package/src/components/NPCDialog/NPCDialogText.tsx +113 -113
  62. package/src/components/NPCDialog/NPCMultiDialog.tsx +159 -159
  63. package/src/components/NPCDialog/QuestionDialog/QuestionDialog.tsx +237 -237
  64. package/src/components/ProgressBar.tsx +92 -92
  65. package/src/components/PropertySelect/PropertySelect.tsx +106 -106
  66. package/src/components/QuestInfo/QuestInfo.tsx +233 -233
  67. package/src/components/QuestList.tsx +135 -135
  68. package/src/components/RPGUIContainer.tsx +47 -47
  69. package/src/components/RPGUIForceRenderStart.tsx +45 -45
  70. package/src/components/RPGUIRoot.tsx +14 -14
  71. package/src/components/RadioButton.tsx +53 -53
  72. package/src/components/RadioInput/RadioButton.tsx +96 -96
  73. package/src/components/RadioInput/RadioInput.tsx +102 -102
  74. package/src/components/RadioInput/instruments.ts +15 -15
  75. package/src/components/RangeSlider.tsx +78 -78
  76. package/src/components/RelativeListMenu.tsx +90 -90
  77. package/src/components/ScrollList.tsx +79 -79
  78. package/src/components/Shortcuts/Shortcuts.tsx +153 -152
  79. package/src/components/Shortcuts/ShortcutsSetter.tsx +139 -139
  80. package/src/components/Shortcuts/SingleShortcut.ts +62 -62
  81. package/src/components/SimpleProgressBar.tsx +62 -62
  82. package/src/components/SkillProgressBar.tsx +133 -133
  83. package/src/components/SkillsContainer.tsx +206 -206
  84. package/src/components/Spellbook/Spell.tsx +201 -201
  85. package/src/components/Spellbook/Spellbook.tsx +153 -153
  86. package/src/components/Spellbook/constants.ts +8 -8
  87. package/src/components/Spellbook/mockSpells.ts +60 -60
  88. package/src/components/StaticBook/StaticBook.tsx +103 -103
  89. package/src/components/TextArea.tsx +11 -11
  90. package/src/components/TimeWidget/DayNightPeriod/DayNightPeriod.tsx +35 -35
  91. package/src/components/TimeWidget/TimeWidget.tsx +65 -65
  92. package/src/components/TradingMenu/TradingItemRow.tsx +199 -199
  93. package/src/components/TradingMenu/TradingMenu.tsx +219 -219
  94. package/src/components/TradingMenu/items.mock.ts +48 -48
  95. package/src/components/Truncate.tsx +25 -25
  96. package/src/components/itemSelector/ItemSelector.tsx +136 -136
  97. package/src/components/shared/Column.tsx +16 -16
  98. package/src/components/shared/Ellipsis.tsx +68 -68
  99. package/src/components/shared/SpriteFromAtlas.tsx +104 -104
  100. package/src/components/typography/DynamicText.tsx +49 -49
  101. package/src/constants/uiColors.ts +20 -20
  102. package/src/constants/uiDevices.ts +3 -3
  103. package/src/constants/uiFonts.ts +12 -12
  104. package/src/hooks/useEventListener.ts +21 -21
  105. package/src/hooks/useOutsideAlerter.ts +25 -25
  106. package/src/index.tsx +42 -42
  107. package/src/libs/StringHelpers.ts +3 -3
  108. package/src/libs/itemCounter.ts +22 -0
  109. package/src/mocks/atlas/entities/entities.json +20215 -20215
  110. package/src/mocks/atlas/icons/icons.json +735 -735
  111. package/src/mocks/atlas/items/items.json +12086 -12086
  112. package/src/mocks/equipmentSet.mocks.ts +391 -391
  113. package/src/mocks/itemContainer.mocks.ts +563 -563
  114. package/src/mocks/skills.mocks.ts +128 -128
  115. package/src/stories/Arrow.stories.tsx +26 -26
  116. package/src/stories/Button.stories.tsx +36 -36
  117. package/src/stories/CharacterSelection.stories.tsx +44 -44
  118. package/src/stories/CharacterStatus.stories.tsx +29 -29
  119. package/src/stories/Chat.stories.tsx +187 -187
  120. package/src/stories/ChatDeprecated.stories.tsx +170 -170
  121. package/src/stories/CheckButton.stories.tsx +48 -48
  122. package/src/stories/CircullarController.stories.tsx +37 -37
  123. package/src/stories/CraftBook.stories.tsx +42 -42
  124. package/src/stories/DayNightPeriod.stories.tsx +27 -27
  125. package/src/stories/DraggableContainer.stories.tsx +28 -28
  126. package/src/stories/Dropdown.stories.tsx +46 -46
  127. package/src/stories/DropdownSelectorContainer.stories.tsx +41 -41
  128. package/src/stories/EquipmentSet.stories.tsx +65 -65
  129. package/src/stories/HistoryDialog.stories.tsx +61 -61
  130. package/src/stories/ItemContainer.stories.tsx +201 -201
  131. package/src/stories/ItemInfoDisplay.stories.tsx +33 -33
  132. package/src/stories/ItemQuantitySelector.stories.tsx +26 -26
  133. package/src/stories/ItemSelector.stories.tsx +77 -77
  134. package/src/stories/ItemTradingComponent.stories.tsx +35 -35
  135. package/src/stories/ListMenu.stories.tsx +56 -56
  136. package/src/stories/Marketplace.stories.tsx +42 -42
  137. package/src/stories/MarketplaceRows.stories.tsx +28 -28
  138. package/src/stories/Multitab.stories.tsx +51 -51
  139. package/src/stories/NPCDialog.stories.tsx +130 -130
  140. package/src/stories/NPCMultiDialog.stories.tsx +71 -71
  141. package/src/stories/ProgressBar.stories.tsx +23 -23
  142. package/src/stories/PropertySelect.stories.tsx +40 -40
  143. package/src/stories/QuestInfo.stories.tsx +107 -107
  144. package/src/stories/QuestList.stories.tsx +82 -82
  145. package/src/stories/RPGUIContainers.stories.tsx +42 -42
  146. package/src/stories/RadioButton.stories.tsx +49 -49
  147. package/src/stories/RadioInput.stories.tsx +34 -34
  148. package/src/stories/RangeSlider.stories.tsx +64 -64
  149. package/src/stories/ScrollList.stories.tsx +85 -85
  150. package/src/stories/Shortcuts.stories.tsx +39 -39
  151. package/src/stories/SimpleProgressBar.stories.tsx +22 -22
  152. package/src/stories/SkillProgressBar.stories.tsx +34 -34
  153. package/src/stories/SkillsContainer.stories.tsx +35 -35
  154. package/src/stories/Spellbook.stories.tsx +104 -104
  155. package/src/stories/StaticBook.stories.tsx +32 -32
  156. package/src/stories/Text.stories.tsx +42 -42
  157. package/src/stories/TimeWidget.stories.tsx +27 -27
  158. package/src/stories/TradingMenu.stories.tsx +47 -47
  159. package/src/types/eventTypes.ts +4 -4
  160. package/src/types/index.d.ts +2 -2
@@ -12,10 +12,10 @@ var dayjs = _interopDefault(require('dayjs'));
12
12
  var reactErrorBoundary = require('react-error-boundary');
13
13
  var rx = require('react-icons/rx');
14
14
  var Draggable = _interopDefault(require('react-draggable'));
15
- var uuid = require('uuid');
16
15
  var ReactDOM = _interopDefault(require('react-dom'));
17
16
  var lodash = require('lodash');
18
17
  var mobxReactLite = require('mobx-react-lite');
18
+ var uuid = require('uuid');
19
19
  require('rpgui/rpgui.min.css');
20
20
  require('rpgui/rpgui.min.js');
21
21
  var capitalize = _interopDefault(require('lodash/capitalize'));
@@ -12634,7 +12634,7 @@ var Button$1 = /*#__PURE__*/styled.button.withConfig({
12634
12634
  });
12635
12635
 
12636
12636
  var uiColors = {
12637
- lightGray: '#757161',
12637
+ lightGray: '#888',
12638
12638
  gray: '#4E4A4E',
12639
12639
  darkGray: '#3e3e3e',
12640
12640
  darkYellow: '#FFC857',
@@ -12650,7 +12650,7 @@ var uiColors = {
12650
12650
  blue: '#597DCE',
12651
12651
  darkBlue: '#30346D',
12652
12652
  brown: '#854C30',
12653
- lightGreen: '#6DAA2C',
12653
+ lightGreen: '#88ed1c',
12654
12654
  brownGreen: '#346524'
12655
12655
  };
12656
12656
 
@@ -13104,96 +13104,54 @@ var Icon = /*#__PURE__*/styled.img.withConfig({
13104
13104
  return props.width;
13105
13105
  });
13106
13106
 
13107
- var Dropdown = function Dropdown(_ref) {
13108
- var options = _ref.options,
13109
- width = _ref.width,
13110
- onChange = _ref.onChange;
13111
- var dropdownId = uuid.v4();
13112
- var _useState = React.useState(''),
13113
- selectedValue = _useState[0],
13114
- setSelectedValue = _useState[1];
13115
- var _useState2 = React.useState(''),
13116
- selectedOption = _useState2[0],
13117
- setSelectedOption = _useState2[1];
13118
- var _useState3 = React.useState(false),
13119
- opened = _useState3[0],
13120
- setOpened = _useState3[1];
13121
- React.useEffect(function () {
13122
- var firstOption = options[0];
13123
- if (firstOption) {
13124
- var change = !selectedValue;
13125
- if (!change) {
13126
- change = options.filter(function (o) {
13127
- return o.value === selectedValue;
13128
- }).length < 1;
13129
- }
13130
- /**
13131
- * make a selection if there is no selected value already present
13132
- * or if there is a selected value but its not in new options
13133
- */
13134
- if (change) {
13135
- setSelectedValue(firstOption.value);
13136
- setSelectedOption(firstOption.option);
13137
- }
13138
- }
13139
- }, [options]);
13140
- React.useEffect(function () {
13141
- if (selectedValue) {
13142
- onChange(selectedValue);
13143
- }
13144
- }, [selectedValue]);
13145
- return React__default.createElement(Container$7, {
13146
- onMouseLeave: function onMouseLeave() {
13147
- return setOpened(false);
13148
- },
13149
- width: width
13150
- }, React__default.createElement(DropdownSelect, {
13151
- id: "dropdown-" + dropdownId,
13152
- className: "rpgui-dropdown-imp rpgui-dropdown-imp-header",
13153
- onPointerDown: function onPointerDown() {
13154
- return setOpened(function (prev) {
13155
- return !prev;
13156
- });
13157
- }
13158
- }, React__default.createElement("label", null, "\u25BC"), " ", selectedOption), React__default.createElement(DropdownOptions, {
13159
- className: "rpgui-dropdown-imp",
13160
- opened: opened
13161
- }, options.map(function (option) {
13162
- return React__default.createElement("li", {
13163
- key: option.id,
13164
- onPointerDown: function onPointerDown() {
13165
- setSelectedValue(option.value);
13166
- setSelectedOption(option.option);
13167
- setOpened(false);
13107
+ var InputRadio = function InputRadio(_ref) {
13108
+ var label = _ref.label,
13109
+ name = _ref.name,
13110
+ value = _ref.value,
13111
+ isChecked = _ref.isChecked,
13112
+ onRadioSelect = _ref.onRadioSelect;
13113
+ var onRadioClick = function onRadioClick() {
13114
+ onRadioSelect(value);
13115
+ };
13116
+ return React__default.createElement("div", {
13117
+ onPointerUp: onRadioClick
13118
+ }, React__default.createElement("input", {
13119
+ className: "rpgui-radio",
13120
+ name: name,
13121
+ value: value,
13122
+ type: "radio",
13123
+ "data-rpguitype": "radio",
13124
+ checked: isChecked,
13125
+ // rpgui breaks onChange on this input (doesn't work). That's why I had to wrap it with a div and a onClick listener.
13126
+ readOnly: true
13127
+ }), React__default.createElement("label", null, label));
13128
+ };
13129
+
13130
+ var countItemFromInventory = function countItemFromInventory(itemKey, inventory) {
13131
+ var itemsFromInventory = [];
13132
+ if (inventory) {
13133
+ Object.keys(inventory.slots).forEach(function (i) {
13134
+ var _inventory$slots$inde;
13135
+ var index = parseInt(i);
13136
+ if (((_inventory$slots$inde = inventory.slots[index]) == null ? void 0 : _inventory$slots$inde.key) === itemKey) {
13137
+ itemsFromInventory.push(inventory.slots[index]);
13168
13138
  }
13169
- }, option.option);
13170
- })));
13139
+ });
13140
+ }
13141
+ var totalQty = itemsFromInventory.reduce(function (acc, item) {
13142
+ return acc + ((item == null ? void 0 : item.stackQty) || 1);
13143
+ }, 0);
13144
+ return totalQty;
13171
13145
  };
13172
- var Container$7 = /*#__PURE__*/styled.div.withConfig({
13173
- displayName: "Dropdown__Container",
13174
- componentId: "sc-8arn65-0"
13175
- })(["position:relative;width:", ";"], function (props) {
13176
- return props.width || '100%';
13177
- });
13178
- var DropdownSelect = /*#__PURE__*/styled.p.withConfig({
13179
- displayName: "Dropdown__DropdownSelect",
13180
- componentId: "sc-8arn65-1"
13181
- })(["width:100%;box-sizing:border-box;"]);
13182
- var DropdownOptions = /*#__PURE__*/styled.ul.withConfig({
13183
- displayName: "Dropdown__DropdownOptions",
13184
- componentId: "sc-8arn65-2"
13185
- })(["position:absolute;width:100%;display:", ";box-sizing:border-box;@media (max-width:768px){padding:8px 0;}"], function (props) {
13186
- return props.opened ? 'block' : 'none';
13187
- });
13188
13146
 
13189
13147
  var modalRoot = /*#__PURE__*/document.getElementById('modal-root');
13190
13148
  var ModalPortal = function ModalPortal(_ref) {
13191
13149
  var children = _ref.children;
13192
- return ReactDOM.createPortal(React__default.createElement(Container$8, {
13150
+ return ReactDOM.createPortal(React__default.createElement(Container$7, {
13193
13151
  className: "rpgui-content"
13194
13152
  }, children), modalRoot);
13195
13153
  };
13196
- var Container$8 = /*#__PURE__*/styled.div.withConfig({
13154
+ var Container$7 = /*#__PURE__*/styled.div.withConfig({
13197
13155
  displayName: "ModalPortal__Container",
13198
13156
  componentId: "sc-dgmp04-0"
13199
13157
  })(["position:static !important;"]);
@@ -13220,7 +13178,7 @@ var RelativeListMenu = function RelativeListMenu(_ref) {
13220
13178
  document.removeEventListener('clickOutside', function (_e) {});
13221
13179
  };
13222
13180
  }, []);
13223
- return React__default.createElement(ModalPortal, null, React__default.createElement(Container$9, Object.assign({
13181
+ return React__default.createElement(ModalPortal, null, React__default.createElement(Container$8, Object.assign({
13224
13182
  fontSize: fontSize,
13225
13183
  ref: ref
13226
13184
  }, pos), React__default.createElement("ul", {
@@ -13237,7 +13195,7 @@ var RelativeListMenu = function RelativeListMenu(_ref) {
13237
13195
  }, (params == null ? void 0 : params.text) || 'No text');
13238
13196
  }))));
13239
13197
  };
13240
- var Container$9 = /*#__PURE__*/styled.div.withConfig({
13198
+ var Container$8 = /*#__PURE__*/styled.div.withConfig({
13241
13199
  displayName: "RelativeListMenu__Container",
13242
13200
  componentId: "sc-7hohf-0"
13243
13201
  })(["position:absolute;top:", "px;left:", "px;display:flex;flex-direction:column;width:max-content;justify-content:start;align-items:flex-start;li{font-size:", "em;}"], function (props) {
@@ -13267,7 +13225,7 @@ var MobileItemTooltip = function MobileItemTooltip(_ref) {
13267
13225
  var _ref$current;
13268
13226
  (_ref$current = ref.current) == null ? void 0 : _ref$current.classList.add('fadeOut');
13269
13227
  };
13270
- return React__default.createElement(ModalPortal, null, React__default.createElement(Container$a, {
13228
+ return React__default.createElement(ModalPortal, null, React__default.createElement(Container$9, {
13271
13229
  ref: ref,
13272
13230
  onTouchEnd: function onTouchEnd() {
13273
13231
  handleFadeOut();
@@ -13295,7 +13253,7 @@ var MobileItemTooltip = function MobileItemTooltip(_ref) {
13295
13253
  }, option.text);
13296
13254
  }))));
13297
13255
  };
13298
- var Container$a = /*#__PURE__*/styled.div.withConfig({
13256
+ var Container$9 = /*#__PURE__*/styled.div.withConfig({
13299
13257
  displayName: "MobileItemTooltip__Container",
13300
13258
  componentId: "sc-ku4p1j-0"
13301
13259
  })(["position:absolute;z-index:100;left:0;top:0;width:100vw;height:100vh;background-color:rgba(0 0 0 / 0.5);display:flex;justify-content:center;align-items:center;gap:0.5rem;transition:opacity 0.08s;animation:fadeIn 0.1s forwards;@keyframes fadeIn{0%{opacity:0;}100%{opacity:0.92;}}@keyframes fadeOut{0%{opacity:0.92;}100%{opacity:0;}}&.fadeOut{animation:fadeOut 0.1s forwards;}@media (max-width:580px){flex-direction:column;}"]);
@@ -13620,7 +13578,7 @@ var ItemSlot = /*#__PURE__*/mobxReactLite.observer(function (_ref) {
13620
13578
  onDragEnd(quantity);
13621
13579
  }
13622
13580
  };
13623
- return React__default.createElement(Container$b, {
13581
+ return React__default.createElement(Container$a, {
13624
13582
  item: item,
13625
13583
  className: "rpgui-icon empty-slot",
13626
13584
  onMouseUp: function onMouseUp() {
@@ -13788,7 +13746,7 @@ var rarityColor = function rarityColor(item) {
13788
13746
  return null;
13789
13747
  }
13790
13748
  };
13791
- var Container$b = /*#__PURE__*/styled.div.withConfig({
13749
+ var Container$a = /*#__PURE__*/styled.div.withConfig({
13792
13750
  displayName: "ItemSlot__Container",
13793
13751
  componentId: "sc-l2j5ef-0"
13794
13752
  })(["margin:0.1rem;.sprite-from-atlas-img--item{position:relative;top:1.5rem;left:1.5rem;border-color:", ";box-shadow:", " inset,", ";}position:relative;&::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-radius:12px;pointer-events:none;animation:", ";@keyframes bg-color-change{0%{background-color:rgba(255 255 255 / 0.5);}50%{background-color:transparent;}100%{background-color:rgba(255 255 255 / 0.5);}}}"], function (_ref2) {
@@ -13899,13 +13857,13 @@ var ItemInfo = function ItemInfo(_ref) {
13899
13857
  }));
13900
13858
  });
13901
13859
  };
13902
- return React__default.createElement(Container$c, {
13860
+ return React__default.createElement(Container$b, {
13903
13861
  item: item
13904
13862
  }, React__default.createElement(Header, null, React__default.createElement("div", null, React__default.createElement(Title$1, null, item.name), item.rarity !== 'Common' && React__default.createElement(Rarity, {
13905
13863
  item: item
13906
13864
  }, item.rarity), React__default.createElement(Type, null, item.subType)), React__default.createElement(AllowedSlots, null, renderAvaibleSlots())), renderStatistics(), item.isTwoHanded && React__default.createElement(Statistic, null, "Two handed"), React__default.createElement(Description, null, item.description), item.maxStackSize && item.maxStackSize !== 1 && React__default.createElement(StackInfo, null, "x", Math.round(((_item$stackQty = item.stackQty) != null ? _item$stackQty : 1) * 100) / 100, "(", item.maxStackSize, ")"), renderMissingStatistic().length > 0 && React__default.createElement(MissingStatistics, null, React__default.createElement(Statistic, null, "Equipped Diff"), itemToCompare && renderMissingStatistic()));
13907
13865
  };
13908
- var Container$c = /*#__PURE__*/styled.div.withConfig({
13866
+ var Container$b = /*#__PURE__*/styled.div.withConfig({
13909
13867
  displayName: "ItemInfo__Container",
13910
13868
  componentId: "sc-1xm4q8k-0"
13911
13869
  })(["color:white;background-color:#222;border-radius:5px;padding:0.5rem;font-size:", ";border:3px solid ", ";height:max-content;width:15rem;@media (max-width:580px){width:80vw;}"], uiFonts.size.small, function (_ref2) {
@@ -14040,7 +13998,7 @@ var ItemTooltip = function ItemTooltip(_ref) {
14040
13998
  }
14041
13999
  return;
14042
14000
  }, []);
14043
- return React__default.createElement(ModalPortal, null, React__default.createElement(Container$d, {
14001
+ return React__default.createElement(ModalPortal, null, React__default.createElement(Container$c, {
14044
14002
  ref: ref
14045
14003
  }, React__default.createElement(ItemInfoDisplay, {
14046
14004
  item: item,
@@ -14049,7 +14007,7 @@ var ItemTooltip = function ItemTooltip(_ref) {
14049
14007
  equipmentSet: equipmentSet
14050
14008
  })));
14051
14009
  };
14052
- var Container$d = /*#__PURE__*/styled.div.withConfig({
14010
+ var Container$c = /*#__PURE__*/styled.div.withConfig({
14053
14011
  displayName: "ItemTooltip__Container",
14054
14012
  componentId: "sc-11d9r7x-0"
14055
14013
  })(["position:absolute;z-index:100;pointer-events:none;left:0;top:0;opacity:0;transition:opacity 0.08s;"]);
@@ -14094,41 +14052,17 @@ var ItemInfoWrapper = function ItemInfoWrapper(_ref) {
14094
14052
  }));
14095
14053
  };
14096
14054
 
14097
- var CraftBook = function CraftBook(_ref) {
14055
+ var CraftingRecipe = function CraftingRecipe(_ref) {
14056
+ var _skills$level, _skills, _recipe$minCraftingRe, _recipe$minCraftingRe2, _recipe$levelIsOk, _recipe$minCraftingRe3, _recipe$minCraftingRe4, _recipe$minCraftingRe5, _recipe$minCraftingRe6;
14098
14057
  var atlasIMG = _ref.atlasIMG,
14099
14058
  atlasJSON = _ref.atlasJSON,
14100
- onClose = _ref.onClose,
14101
- onSelect = _ref.onSelect,
14102
- onCraftItem = _ref.onCraftItem,
14103
- craftablesItems = _ref.craftablesItems,
14104
14059
  equipmentSet = _ref.equipmentSet,
14105
- scale = _ref.scale;
14106
- var optionsId = 0;
14107
- var _useState = React.useState({
14108
- show: false,
14109
- index: 200
14110
- }),
14111
- isShown = _useState[0],
14112
- setIsShown = _useState[1];
14113
- var _useState2 = React.useState(),
14114
- craftItem = _useState2[0],
14115
- setCraftItem = _useState2[1];
14116
- var getDropdownOptions = function getDropdownOptions() {
14117
- var options = [];
14118
- Object.keys(shared.ItemSubType).forEach(function (key) {
14119
- if (key === 'DeadBody') {
14120
- return; // we can't craft crafting resouces...
14121
- }
14122
-
14123
- options.push({
14124
- id: optionsId,
14125
- value: key,
14126
- option: key
14127
- });
14128
- optionsId += 1;
14129
- });
14130
- return options;
14131
- };
14060
+ recipe = _ref.recipe,
14061
+ scale = _ref.scale,
14062
+ handleRecipeSelect = _ref.handleRecipeSelect,
14063
+ selectedCraftItemKey = _ref.selectedCraftItemKey,
14064
+ inventory = _ref.inventory,
14065
+ skills = _ref.skills;
14132
14066
  var modifyString = function modifyString(str) {
14133
14067
  // Split the string by "/" and "."
14134
14068
  var parts = str.split('/');
@@ -14144,12 +14078,180 @@ var CraftBook = function CraftBook(_ref) {
14144
14078
  name = modifiedWords.join(' ');
14145
14079
  return name;
14146
14080
  };
14147
- var handleClick = function handleClick(value) {
14148
- setCraftItem(value);
14081
+ var levelInSkill = (_skills$level = skills == null ? void 0 : (_skills = skills[(_recipe$minCraftingRe = recipe == null ? void 0 : (_recipe$minCraftingRe2 = recipe.minCraftingRequirements) == null ? void 0 : _recipe$minCraftingRe2[0]) != null ? _recipe$minCraftingRe : '']) == null ? void 0 : _skills.level) != null ? _skills$level : 1;
14082
+ return React__default.createElement(RadioOptionsWrapper, null, React__default.createElement(SpriteAtlasWrapper, null, React__default.createElement(ItemInfoWrapper, {
14083
+ item: recipe,
14084
+ atlasIMG: atlasIMG,
14085
+ atlasJSON: atlasJSON,
14086
+ equipmentSet: equipmentSet,
14087
+ scale: scale
14088
+ }, React__default.createElement(SpriteFromAtlas, {
14089
+ atlasIMG: atlasIMG,
14090
+ atlasJSON: atlasJSON,
14091
+ spriteKey: recipe.texturePath,
14092
+ imgScale: 3,
14093
+ grayScale: !recipe.canCraft
14094
+ }))), React__default.createElement("div", null, React__default.createElement("div", {
14095
+ onPointerUp: recipe.canCraft ? handleRecipeSelect : undefined
14096
+ }, React__default.createElement("input", {
14097
+ className: "rpgui-radio",
14098
+ type: "radio",
14099
+ value: recipe.name,
14100
+ name: "test",
14101
+ disabled: !recipe.canCraft,
14102
+ checked: selectedCraftItemKey === recipe.key,
14103
+ onChange: handleRecipeSelect
14104
+ }), React__default.createElement("label", {
14105
+ style: {
14106
+ display: 'flex',
14107
+ alignItems: 'center'
14108
+ }
14109
+ }, modifyString(recipe.name))), React__default.createElement(MinCraftingRequirementsText, {
14110
+ levelIsOk: (_recipe$levelIsOk = recipe == null ? void 0 : recipe.levelIsOk) != null ? _recipe$levelIsOk : false
14111
+ }, modifyString("" + ((_recipe$minCraftingRe3 = recipe == null ? void 0 : (_recipe$minCraftingRe4 = recipe.minCraftingRequirements) == null ? void 0 : _recipe$minCraftingRe4[0]) != null ? _recipe$minCraftingRe3 : '')), " lvl", ' ', (_recipe$minCraftingRe5 = recipe == null ? void 0 : (_recipe$minCraftingRe6 = recipe.minCraftingRequirements) == null ? void 0 : _recipe$minCraftingRe6[1]) != null ? _recipe$minCraftingRe5 : 0, " (", levelInSkill, ")"), recipe.ingredients.map(function (ingredient, index) {
14112
+ var itemQtyInInventory = !inventory ? 0 : countItemFromInventory(ingredient.key, inventory);
14113
+ return React__default.createElement(Recipe, {
14114
+ key: index
14115
+ }, React__default.createElement(SpriteFromAtlas, {
14116
+ atlasIMG: atlasIMG,
14117
+ atlasJSON: atlasJSON,
14118
+ spriteKey: ingredient.texturePath,
14119
+ imgScale: 1.2
14120
+ }), React__default.createElement(Ingredient, {
14121
+ isQuantityOk: ingredient.qty <= itemQtyInInventory
14122
+ }, modifyString(ingredient.key), " x", ingredient.qty, " (", itemQtyInInventory, ")"));
14123
+ })));
14124
+ };
14125
+ var Ingredient = /*#__PURE__*/styled.p.withConfig({
14126
+ displayName: "CraftingRecipe__Ingredient",
14127
+ componentId: "sc-1fe04wz-0"
14128
+ })(["margin:0;margin-left:14px;color:", " !important;"], function (_ref2) {
14129
+ var isQuantityOk = _ref2.isQuantityOk;
14130
+ return isQuantityOk ? uiColors.lightGreen : uiColors.lightGray;
14131
+ });
14132
+ var Recipe = /*#__PURE__*/styled.div.withConfig({
14133
+ displayName: "CraftingRecipe__Recipe",
14134
+ componentId: "sc-1fe04wz-1"
14135
+ })(["font-size:0.6rem;margin-bottom:3px;display:flex;align-items:center;margin-left:4px;.sprite-from-atlas-img{top:0px;left:0px;}"]);
14136
+ var SpriteAtlasWrapper = /*#__PURE__*/styled.div.withConfig({
14137
+ displayName: "CraftingRecipe__SpriteAtlasWrapper",
14138
+ componentId: "sc-1fe04wz-2"
14139
+ })(["margin-right:40px;"]);
14140
+ var RadioOptionsWrapper = /*#__PURE__*/styled.div.withConfig({
14141
+ displayName: "CraftingRecipe__RadioOptionsWrapper",
14142
+ componentId: "sc-1fe04wz-3"
14143
+ })(["display:flex;align-items:stretch;margin-bottom:40px;"]);
14144
+ var MinCraftingRequirementsText = /*#__PURE__*/styled.p.withConfig({
14145
+ displayName: "CraftingRecipe__MinCraftingRequirementsText",
14146
+ componentId: "sc-1fe04wz-4"
14147
+ })(["font-size:0.6rem !important;margin:0 5px 0 35px;color:", " !important;"], function (_ref3) {
14148
+ var levelIsOk = _ref3.levelIsOk;
14149
+ return levelIsOk ? uiColors.lightGreen : uiColors.lightGray;
14150
+ });
14151
+
14152
+ var desktop = {
14153
+ width: 'min(900px, 80%)',
14154
+ height: 'min(700px, 80%)'
14155
+ };
14156
+ var mobileLanscape = {
14157
+ width: '800px',
14158
+ height: '500px'
14159
+ };
14160
+ var mobilePortrait = {
14161
+ width: '500px',
14162
+ height: '700px'
14163
+ };
14164
+ var CraftBook = function CraftBook(_ref) {
14165
+ var atlasIMG = _ref.atlasIMG,
14166
+ atlasJSON = _ref.atlasJSON,
14167
+ onClose = _ref.onClose,
14168
+ onSelect = _ref.onSelect,
14169
+ onCraftItem = _ref.onCraftItem,
14170
+ craftablesItems = _ref.craftablesItems,
14171
+ equipmentSet = _ref.equipmentSet,
14172
+ scale = _ref.scale,
14173
+ inventory = _ref.inventory,
14174
+ skills = _ref.skills,
14175
+ savedSelectedType = _ref.savedSelectedType;
14176
+ var _useState = React.useState(),
14177
+ craftItemKey = _useState[0],
14178
+ setCraftItemKey = _useState[1];
14179
+ var _useState2 = React.useState(savedSelectedType != null ? savedSelectedType : Object.keys(shared.ItemSubType)[0]),
14180
+ selectedType = _useState2[0],
14181
+ setSelectedType = _useState2[1];
14182
+ var _useState3 = React.useState(),
14183
+ size = _useState3[0],
14184
+ setSize = _useState3[1];
14185
+ React.useEffect(function () {
14186
+ var handleResize = function handleResize() {
14187
+ if (window.innerWidth < 500 && (size == null ? void 0 : size.width) !== mobilePortrait.width && (!scale || scale < 1)) {
14188
+ setSize(mobilePortrait);
14189
+ } else if ((!scale || scale < 1) && (size == null ? void 0 : size.width) !== mobileLanscape.width) {
14190
+ setSize(mobileLanscape);
14191
+ } else if ((size == null ? void 0 : size.width) !== desktop.width) {
14192
+ setSize(desktop);
14193
+ }
14194
+ };
14195
+ handleResize();
14196
+ window.addEventListener('resize', handleResize);
14197
+ return function () {
14198
+ return window.removeEventListener('resize', handleResize);
14199
+ };
14200
+ }, [scale]);
14201
+ var renderItemTypes = function renderItemTypes() {
14202
+ var itemTypes = ['Suggested'].concat(Object.keys(shared.ItemSubType)).filter(function (type) {
14203
+ return type !== 'DeadBody';
14204
+ }).sort(function (a, b) {
14205
+ if (a === 'Suggested') return -1;
14206
+ if (b === 'Suggested') return 1;
14207
+ return a.localeCompare(b);
14208
+ });
14209
+ if (window.innerWidth > parseInt(mobilePortrait.width)) {
14210
+ return itemTypes.map(function (type) {
14211
+ return React__default.createElement(InputRadio, {
14212
+ key: type,
14213
+ value: type,
14214
+ label: type,
14215
+ name: type,
14216
+ isChecked: selectedType === type,
14217
+ onRadioSelect: function onRadioSelect(value) {
14218
+ setSelectedType(value);
14219
+ onSelect(value);
14220
+ }
14221
+ });
14222
+ });
14223
+ }
14224
+ var rows = [[], []];
14225
+ itemTypes.forEach(function (type, index) {
14226
+ var row = 0;
14227
+ if (index % 2 === 1) row = 1;
14228
+ rows[row].push(React__default.createElement(InputRadio, {
14229
+ key: type,
14230
+ value: type,
14231
+ label: type,
14232
+ name: type,
14233
+ isChecked: selectedType === type,
14234
+ onRadioSelect: function onRadioSelect(value) {
14235
+ setSelectedType(value);
14236
+ onSelect(value);
14237
+ }
14238
+ }));
14239
+ });
14240
+ return rows.map(function (row, index) {
14241
+ return React__default.createElement("div", {
14242
+ key: index,
14243
+ style: {
14244
+ display: 'flex',
14245
+ gap: '10px'
14246
+ }
14247
+ }, row);
14248
+ });
14149
14249
  };
14250
+ if (!size) return null;
14150
14251
  return React__default.createElement(DraggableContainer, {
14151
14252
  type: exports.RPGUIContainerTypes.Framed,
14152
- width: "500px",
14253
+ width: size.width,
14254
+ height: size.height,
14153
14255
  cancelDrag: ".inputRadioCraftBook",
14154
14256
  onCloseButton: function onCloseButton() {
14155
14257
  if (onClose) {
@@ -14157,168 +14259,182 @@ var CraftBook = function CraftBook(_ref) {
14157
14259
  }
14158
14260
  },
14159
14261
  scale: scale
14160
- }, React__default.createElement("div", {
14262
+ }, React__default.createElement(Wrapper, null, React__default.createElement("div", {
14161
14263
  style: {
14162
14264
  width: '100%'
14163
14265
  }
14164
14266
  }, React__default.createElement(Title$2, null, "Craftbook"), React__default.createElement(Subtitle, null, "Select an item to craft"), React__default.createElement("hr", {
14165
14267
  className: "golden"
14166
- })), React__default.createElement(Dropdown, {
14167
- options: getDropdownOptions(),
14168
- onChange: function onChange(value) {
14169
- return onSelect(value);
14170
- }
14171
- }), React__default.createElement(RadioInputScroller, {
14268
+ })), React__default.createElement(ContentContainer, null, React__default.createElement(ItemTypes, {
14172
14269
  className: "inputRadioCraftBook"
14173
- }, craftablesItems == null ? void 0 : craftablesItems.map(function (option, index) {
14174
- var _option$levelIsOk, _option$minCraftingRe, _option$minCraftingRe2, _option$minCraftingRe3, _option$minCraftingRe4;
14175
- return React__default.createElement(RadioOptionsWrapper, {
14176
- key: index
14177
- }, React__default.createElement(SpriteAtlasWrapper, null, React__default.createElement(ItemInfoWrapper, {
14178
- item: option,
14270
+ }, renderItemTypes()), React__default.createElement(RadioInputScroller, {
14271
+ className: "inputRadioCraftBook"
14272
+ }, craftablesItems == null ? void 0 : craftablesItems.map(function (item) {
14273
+ return React__default.createElement(CraftingRecipe, {
14274
+ key: item.key,
14179
14275
  atlasIMG: atlasIMG,
14180
14276
  atlasJSON: atlasJSON,
14181
14277
  equipmentSet: equipmentSet,
14182
- scale: scale
14183
- }, React__default.createElement(SpriteFromAtlas, {
14184
- atlasIMG: atlasIMG,
14185
- atlasJSON: atlasJSON,
14186
- spriteKey: option.texturePath,
14187
- imgScale: 3,
14188
- grayScale: !option.canCraft
14189
- }))), React__default.createElement("div", null, React__default.createElement("div", {
14190
- onPointerDown: function onPointerDown() {
14191
- return handleClick(option.key);
14192
- }
14193
- }, React__default.createElement("input", {
14194
- className: "rpgui-radio",
14195
- type: "radio",
14196
- value: option.name,
14197
- name: "test",
14198
- disabled: !option.canCraft,
14199
- checked: craftItem === option.key,
14200
- onChange: function onChange() {
14201
- return handleClick(option.key);
14202
- }
14203
- }), React__default.createElement("label", {
14204
- onPointerDown: function onPointerDown() {
14205
- handleClick(option.key);
14206
- },
14207
- onTouchEnd: function onTouchEnd() {
14208
- setIsShown({
14209
- show: true,
14210
- index: index
14211
- });
14212
- },
14213
- style: {
14214
- display: 'flex',
14215
- alignItems: 'center'
14216
- },
14217
- onMouseEnter: function onMouseEnter() {
14218
- return setIsShown({
14219
- show: true,
14220
- index: index
14221
- });
14222
- },
14223
- onMouseLeave: function onMouseLeave() {
14224
- return setIsShown({
14225
- show: false,
14226
- index: index
14227
- });
14228
- }
14229
- }, modifyString(option.name))), isShown && isShown.index === index && option.ingredients.map(function (option, index) {
14230
- return React__default.createElement(Recipes, {
14231
- key: index
14232
- }, React__default.createElement(SpriteFromAtlas, {
14233
- atlasIMG: atlasIMG,
14234
- atlasJSON: atlasJSON,
14235
- spriteKey: option.texturePath,
14236
- imgScale: 1
14237
- }), React__default.createElement(StyledItem, null, modifyString(option.key), " (", option.qty, "x)"));
14238
- }), isShown && isShown.index === index && React__default.createElement(MinCraftingRequirementsText, {
14239
- levelIsOk: (_option$levelIsOk = option == null ? void 0 : option.levelIsOk) != null ? _option$levelIsOk : false
14240
- }, modifyString(((_option$minCraftingRe = option == null ? void 0 : (_option$minCraftingRe2 = option.minCraftingRequirements) == null ? void 0 : _option$minCraftingRe2[0]) != null ? _option$minCraftingRe : '') + " " + ((_option$minCraftingRe3 = option == null ? void 0 : (_option$minCraftingRe4 = option.minCraftingRequirements) == null ? void 0 : _option$minCraftingRe4[1]) != null ? _option$minCraftingRe3 : '')))));
14241
- })), React__default.createElement(ButtonWrapper, null, React__default.createElement(Button, {
14278
+ recipe: item,
14279
+ scale: scale,
14280
+ handleRecipeSelect: setCraftItemKey.bind(null, item.key),
14281
+ selectedCraftItemKey: craftItemKey,
14282
+ inventory: inventory,
14283
+ skills: skills
14284
+ });
14285
+ }))), React__default.createElement(ButtonWrapper, null, React__default.createElement(Button, {
14242
14286
  buttonType: exports.ButtonTypes.RPGUIButton,
14243
14287
  onPointerDown: onClose
14244
14288
  }, "Cancel"), React__default.createElement(Button, {
14289
+ disabled: !craftItemKey,
14245
14290
  buttonType: exports.ButtonTypes.RPGUIButton,
14246
14291
  onPointerDown: function onPointerDown() {
14247
- return onCraftItem(craftItem);
14292
+ return onCraftItem(craftItemKey);
14248
14293
  }
14249
- }, "Craft")));
14294
+ }, "Craft"))));
14250
14295
  };
14251
- var StyledItem = /*#__PURE__*/styled.div.withConfig({
14252
- displayName: "CraftBook__StyledItem",
14296
+ var Wrapper = /*#__PURE__*/styled.div.withConfig({
14297
+ displayName: "CraftBook__Wrapper",
14253
14298
  componentId: "sc-19q95ue-0"
14254
- })(["margin-left:10px;"]);
14255
- var Recipes = /*#__PURE__*/styled.div.withConfig({
14256
- displayName: "CraftBook__Recipes",
14257
- componentId: "sc-19q95ue-1"
14258
- })(["font-size:0.6rem;color:yellow !important;margin-bottom:3px;display:flex;align-items:center;.sprite-from-atlas-img{top:0px;left:0px;}"]);
14299
+ })(["display:flex;flex-direction:column;width:100%;height:100%;"]);
14259
14300
  var Title$2 = /*#__PURE__*/styled.h1.withConfig({
14260
14301
  displayName: "CraftBook__Title",
14261
- componentId: "sc-19q95ue-2"
14262
- })(["font-size:0.6rem;color:yellow !important;"]);
14302
+ componentId: "sc-19q95ue-1"
14303
+ })(["font-size:0.6rem;color:", " !important;"], uiColors.yellow);
14263
14304
  var Subtitle = /*#__PURE__*/styled.h1.withConfig({
14264
14305
  displayName: "CraftBook__Subtitle",
14265
- componentId: "sc-19q95ue-3"
14266
- })(["font-size:0.4rem;color:yellow !important;"]);
14306
+ componentId: "sc-19q95ue-2"
14307
+ })(["font-size:0.4rem;color:", " !important;"], uiColors.yellow);
14267
14308
  var RadioInputScroller = /*#__PURE__*/styled.div.withConfig({
14268
14309
  displayName: "CraftBook__RadioInputScroller",
14310
+ componentId: "sc-19q95ue-3"
14311
+ })(["padding-left:15px;padding-top:10px;margin-top:1rem;align-items:center;align-items:flex-start;overflow-y:scroll;min-height:0;flex:1;margin-left:10px;-webkit-overflow-scrolling:touch;@media (max-width:", "){margin-left:0;}"], mobilePortrait.width);
14312
+ var ButtonWrapper = /*#__PURE__*/styled.div.withConfig({
14313
+ displayName: "CraftBook__ButtonWrapper",
14269
14314
  componentId: "sc-19q95ue-4"
14270
- })(["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;-webkit-overflow-scrolling:touch;"]);
14271
- var SpriteAtlasWrapper = /*#__PURE__*/styled.div.withConfig({
14272
- displayName: "CraftBook__SpriteAtlasWrapper",
14315
+ })(["display:flex;justify-content:flex-end;margin-top:10px;width:100%;button{padding:0px 50px;margin:5px;}@media (max-width:", "){justify-content:center;}"], mobilePortrait.width);
14316
+ var ContentContainer = /*#__PURE__*/styled.div.withConfig({
14317
+ displayName: "CraftBook__ContentContainer",
14273
14318
  componentId: "sc-19q95ue-5"
14274
- })(["margin-right:40px;"]);
14275
- var RadioOptionsWrapper = /*#__PURE__*/styled.div.withConfig({
14276
- displayName: "CraftBook__RadioOptionsWrapper",
14319
+ })(["display:flex;width:100%;min-height:0;flex:1;@media (max-width:", "){flex-direction:column;}"], mobilePortrait.width);
14320
+ var ItemTypes = /*#__PURE__*/styled.div.withConfig({
14321
+ displayName: "CraftBook__ItemTypes",
14277
14322
  componentId: "sc-19q95ue-6"
14278
- })(["display:flex;align-items:stretch;margin-bottom:40px;"]);
14279
- var ButtonWrapper = /*#__PURE__*/styled.div.withConfig({
14280
- displayName: "CraftBook__ButtonWrapper",
14281
- componentId: "sc-19q95ue-7"
14282
- })(["display:flex;justify-content:space-around;padding-top:20px;width:100%;button{padding:0px 50px;}"]);
14283
- var MinCraftingRequirementsText = /*#__PURE__*/styled.div.withConfig({
14284
- displayName: "CraftBook__MinCraftingRequirementsText",
14285
- componentId: "sc-19q95ue-8"
14286
- })(["font-size:0.6rem;font-weight:bold;color:", ";"], function (_ref2) {
14287
- var levelIsOk = _ref2.levelIsOk;
14288
- return levelIsOk ? '#72f100' : 'gray';
14289
- });
14290
-
14291
- var DropdownSelectorContainer = function DropdownSelectorContainer(_ref) {
14292
- var title = _ref.title,
14293
- onChange = _ref.onChange,
14294
- options = _ref.options,
14295
- details = _ref.details;
14296
- return React__default.createElement("div", null, React__default.createElement("p", null, title), React__default.createElement(Dropdown, {
14297
- options: options.map(function (option, index) {
14298
- return {
14299
- option: option.name,
14300
- value: option.id,
14301
- id: index
14302
- };
14303
- }),
14304
- onChange: onChange
14305
- }), React__default.createElement(Details, null, details));
14306
- };
14307
- var Details = /*#__PURE__*/styled.p.withConfig({
14308
- displayName: "DropdownSelectorContainer__Details",
14309
- componentId: "sc-kaa0h9-0"
14310
- })(["font-size:", " !important;"], uiFonts.size.xsmall);
14323
+ })(["display:flex;overflow-y:scroll;overflow-x:hidden;width:max-content;flex-direction:column;padding-right:5px;@media (max-width:", "){overflow-x:scroll;overflow-y:hidden;padding-right:0;width:100%;}"], mobilePortrait.width);
14311
14324
 
14312
- var EquipmentSet = function EquipmentSet(_ref) {
14313
- var equipmentSet = _ref.equipmentSet,
14314
- onClose = _ref.onClose,
14315
- _onMouseOver = _ref.onMouseOver,
14316
- _onSelected = _ref.onSelected,
14317
- onItemClick = _ref.onItemClick,
14318
- atlasIMG = _ref.atlasIMG,
14319
- atlasJSON = _ref.atlasJSON,
14320
- onItemDragEnd = _ref.onItemDragEnd,
14321
- onItemDragStart = _ref.onItemDragStart,
14325
+ var Dropdown = function Dropdown(_ref) {
14326
+ var options = _ref.options,
14327
+ width = _ref.width,
14328
+ onChange = _ref.onChange;
14329
+ var dropdownId = uuid.v4();
14330
+ var _useState = React.useState(''),
14331
+ selectedValue = _useState[0],
14332
+ setSelectedValue = _useState[1];
14333
+ var _useState2 = React.useState(''),
14334
+ selectedOption = _useState2[0],
14335
+ setSelectedOption = _useState2[1];
14336
+ var _useState3 = React.useState(false),
14337
+ opened = _useState3[0],
14338
+ setOpened = _useState3[1];
14339
+ React.useEffect(function () {
14340
+ var firstOption = options[0];
14341
+ if (firstOption) {
14342
+ var change = !selectedValue;
14343
+ if (!change) {
14344
+ change = options.filter(function (o) {
14345
+ return o.value === selectedValue;
14346
+ }).length < 1;
14347
+ }
14348
+ /**
14349
+ * make a selection if there is no selected value already present
14350
+ * or if there is a selected value but its not in new options
14351
+ */
14352
+ if (change) {
14353
+ setSelectedValue(firstOption.value);
14354
+ setSelectedOption(firstOption.option);
14355
+ }
14356
+ }
14357
+ }, [options]);
14358
+ React.useEffect(function () {
14359
+ if (selectedValue) {
14360
+ onChange(selectedValue);
14361
+ }
14362
+ }, [selectedValue]);
14363
+ return React__default.createElement(Container$d, {
14364
+ onMouseLeave: function onMouseLeave() {
14365
+ return setOpened(false);
14366
+ },
14367
+ width: width
14368
+ }, React__default.createElement(DropdownSelect, {
14369
+ id: "dropdown-" + dropdownId,
14370
+ className: "rpgui-dropdown-imp rpgui-dropdown-imp-header",
14371
+ onPointerDown: function onPointerDown() {
14372
+ return setOpened(function (prev) {
14373
+ return !prev;
14374
+ });
14375
+ }
14376
+ }, React__default.createElement("label", null, "\u25BC"), " ", selectedOption), React__default.createElement(DropdownOptions, {
14377
+ className: "rpgui-dropdown-imp",
14378
+ opened: opened
14379
+ }, options.map(function (option) {
14380
+ return React__default.createElement("li", {
14381
+ key: option.id,
14382
+ onPointerDown: function onPointerDown() {
14383
+ setSelectedValue(option.value);
14384
+ setSelectedOption(option.option);
14385
+ setOpened(false);
14386
+ }
14387
+ }, option.option);
14388
+ })));
14389
+ };
14390
+ var Container$d = /*#__PURE__*/styled.div.withConfig({
14391
+ displayName: "Dropdown__Container",
14392
+ componentId: "sc-8arn65-0"
14393
+ })(["position:relative;width:", ";"], function (props) {
14394
+ return props.width || '100%';
14395
+ });
14396
+ var DropdownSelect = /*#__PURE__*/styled.p.withConfig({
14397
+ displayName: "Dropdown__DropdownSelect",
14398
+ componentId: "sc-8arn65-1"
14399
+ })(["width:100%;box-sizing:border-box;"]);
14400
+ var DropdownOptions = /*#__PURE__*/styled.ul.withConfig({
14401
+ displayName: "Dropdown__DropdownOptions",
14402
+ componentId: "sc-8arn65-2"
14403
+ })(["position:absolute;width:100%;display:", ";box-sizing:border-box;@media (max-width:768px){padding:8px 0;}"], function (props) {
14404
+ return props.opened ? 'block' : 'none';
14405
+ });
14406
+
14407
+ var DropdownSelectorContainer = function DropdownSelectorContainer(_ref) {
14408
+ var title = _ref.title,
14409
+ onChange = _ref.onChange,
14410
+ options = _ref.options,
14411
+ details = _ref.details;
14412
+ return React__default.createElement("div", null, React__default.createElement("p", null, title), React__default.createElement(Dropdown, {
14413
+ options: options.map(function (option, index) {
14414
+ return {
14415
+ option: option.name,
14416
+ value: option.id,
14417
+ id: index
14418
+ };
14419
+ }),
14420
+ onChange: onChange
14421
+ }), React__default.createElement(Details, null, details));
14422
+ };
14423
+ var Details = /*#__PURE__*/styled.p.withConfig({
14424
+ displayName: "DropdownSelectorContainer__Details",
14425
+ componentId: "sc-kaa0h9-0"
14426
+ })(["font-size:", " !important;"], uiFonts.size.xsmall);
14427
+
14428
+ var EquipmentSet = function EquipmentSet(_ref) {
14429
+ var equipmentSet = _ref.equipmentSet,
14430
+ onClose = _ref.onClose,
14431
+ _onMouseOver = _ref.onMouseOver,
14432
+ _onSelected = _ref.onSelected,
14433
+ onItemClick = _ref.onItemClick,
14434
+ atlasIMG = _ref.atlasIMG,
14435
+ atlasJSON = _ref.atlasJSON,
14436
+ onItemDragEnd = _ref.onItemDragEnd,
14437
+ onItemDragStart = _ref.onItemDragStart,
14322
14438
  onItemPlaceDrop = _ref.onItemPlaceDrop,
14323
14439
  onItemOutsideDrop = _ref.onItemOutsideDrop,
14324
14440
  checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
@@ -14410,1237 +14526,1024 @@ var EquipmentColumn = /*#__PURE__*/styled.div.withConfig({
14410
14526
  componentId: "sc-1wuddg2-1"
14411
14527
  })(["display:flex;justify-content:center;flex-wrap:wrap;flex-direction:column;touch-action:none;"]);
14412
14528
 
14413
- var IS_MOBILE_OR_TABLET = /*#__PURE__*/shared.isMobileOrTablet();
14414
-
14415
- var chunkString = function chunkString(str, length) {
14416
- return str.match(new RegExp('.{1,' + length + '}', 'g'));
14417
- };
14418
-
14419
- var DynamicText = function DynamicText(_ref) {
14420
- var text = _ref.text,
14421
- onFinish = _ref.onFinish,
14422
- onStart = _ref.onStart;
14423
- var _useState = React.useState(''),
14424
- textState = _useState[0],
14425
- setTextState = _useState[1];
14426
- React.useEffect(function () {
14427
- var i = 0;
14428
- var interval = setInterval(function () {
14429
- // on every interval, show one more character
14430
- if (i === 0) {
14431
- if (onStart) {
14432
- onStart();
14433
- }
14529
+ var SlotsContainer = function SlotsContainer(_ref) {
14530
+ var children = _ref.children,
14531
+ title = _ref.title,
14532
+ onClose = _ref.onClose,
14533
+ _onPositionChange = _ref.onPositionChange,
14534
+ _onPositionChangeEnd = _ref.onPositionChangeEnd,
14535
+ _onPositionChangeStart = _ref.onPositionChangeStart,
14536
+ onOutsideClick = _ref.onOutsideClick,
14537
+ initialPosition = _ref.initialPosition,
14538
+ scale = _ref.scale;
14539
+ return React__default.createElement(DraggableContainer, {
14540
+ title: title,
14541
+ type: exports.RPGUIContainerTypes.Framed,
14542
+ onCloseButton: function onCloseButton() {
14543
+ if (onClose) {
14544
+ onClose();
14434
14545
  }
14435
- if (i < text.length) {
14436
- setTextState(text.substring(0, i + 1));
14437
- i++;
14438
- } else {
14439
- clearInterval(interval);
14440
- if (onFinish) {
14441
- onFinish();
14442
- }
14546
+ },
14547
+ width: "400px",
14548
+ cancelDrag: ".item-container-body, #shortcuts_list",
14549
+ onPositionChange: function onPositionChange(_ref2) {
14550
+ var x = _ref2.x,
14551
+ y = _ref2.y;
14552
+ if (_onPositionChange) {
14553
+ _onPositionChange({
14554
+ x: x,
14555
+ y: y
14556
+ });
14443
14557
  }
14444
- }, 50);
14445
- return function () {
14446
- clearInterval(interval);
14447
- };
14448
- }, [text]);
14449
- return React__default.createElement(TextContainer, null, textState);
14558
+ },
14559
+ onPositionChangeEnd: function onPositionChangeEnd(_ref3) {
14560
+ var x = _ref3.x,
14561
+ y = _ref3.y;
14562
+ if (_onPositionChangeEnd) {
14563
+ _onPositionChangeEnd({
14564
+ x: x,
14565
+ y: y
14566
+ });
14567
+ }
14568
+ },
14569
+ onPositionChangeStart: function onPositionChangeStart(_ref4) {
14570
+ var x = _ref4.x,
14571
+ y = _ref4.y;
14572
+ if (_onPositionChangeStart) {
14573
+ _onPositionChangeStart({
14574
+ x: x,
14575
+ y: y
14576
+ });
14577
+ }
14578
+ },
14579
+ onOutsideClick: onOutsideClick,
14580
+ initialPosition: initialPosition,
14581
+ scale: scale
14582
+ }, children);
14450
14583
  };
14451
- var TextContainer = /*#__PURE__*/styled.p.withConfig({
14452
- displayName: "DynamicText__TextContainer",
14453
- componentId: "sc-1ggl9nd-0"
14454
- })(["font-size:0.7rem !important;color:white;text-shadow:1px 1px 0px #000000;letter-spacing:1.2px;word-break:normal;"]);
14455
-
14456
- var img$5 = 'data:image/gif;base64,R0lGODlhEAAQAPIAAAAAABQYLiw1TUBJc2hvmQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAM9CLrc/lCFGSKYJJP5AhlguDnBMIVgxXgmJapSSp3mKs/pKrT0IMCXUk+2Cgh2oSOnaDz+lswZpSOFUq2KBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAIzhI+py90Bg4OjDrjCELxfFQhQx0mIJkaeaYRp5LJADMdnqXbyOJLYTdKBejjZoRaZJBMFACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAABAAEAAAAjKEj6nL7Y+CDE6OO+QKQ/ifKYEgfR4VddPohQe7lmR0xidNTib65uacYP2AQWGuMlEUAAA7';
14457
-
14458
- 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';
14459
14584
 
14460
- var NPCDialogText = function NPCDialogText(_ref) {
14461
- var text = _ref.text,
14462
- onClose = _ref.onClose,
14463
- onEndStep = _ref.onEndStep,
14464
- onStartStep = _ref.onStartStep,
14465
- type = _ref.type;
14466
- var windowSize = React.useRef([window.innerWidth, window.innerHeight]);
14467
- function maxCharacters(width) {
14468
- // Set the font size to 16 pixels
14469
- var fontSize = 11.2;
14470
- // Calculate the number of characters that can fit in one line
14471
- var charactersPerLine = Math.floor(width / 2 / fontSize);
14472
- // Calculate the number of lines that can fit in the div
14473
- var linesPerDiv = Math.floor(180 / fontSize);
14474
- // Calculate the maximum number of characters that can fit in the div
14475
- var maxCharacters = charactersPerLine * linesPerDiv;
14476
- // Return the maximum number of characters
14477
- return Math.round(maxCharacters / 5);
14478
- }
14479
- var textChunks = chunkString(text, maxCharacters(windowSize.current[0]));
14585
+ (function (RangeSliderType) {
14586
+ RangeSliderType["Slider"] = "rpgui-slider";
14587
+ RangeSliderType["GoldSlider"] = "rpgui-slider golden";
14588
+ })(exports.RangeSliderType || (exports.RangeSliderType = {}));
14589
+ var RangeSlider = function RangeSlider(_ref) {
14590
+ var type = _ref.type,
14591
+ valueMin = _ref.valueMin,
14592
+ valueMax = _ref.valueMax,
14593
+ width = _ref.width,
14594
+ _onChange = _ref.onChange,
14595
+ value = _ref.value;
14596
+ var sliderId = uuid.v4();
14597
+ var containerRef = React.useRef(null);
14480
14598
  var _useState = React.useState(0),
14481
- chunkIndex = _useState[0],
14482
- setChunkIndex = _useState[1];
14483
- var onHandleSpacePress = function onHandleSpacePress(event) {
14484
- if (event.code === 'Space') {
14485
- goToNextStep();
14486
- }
14487
- };
14488
- var goToNextStep = function goToNextStep() {
14489
- var hasNextChunk = (textChunks == null ? void 0 : textChunks[chunkIndex + 1]) || false;
14490
- if (hasNextChunk) {
14491
- setChunkIndex(function (prev) {
14492
- return prev + 1;
14493
- });
14494
- } else {
14495
- // if there's no more text chunks, close the dialog
14496
- onClose();
14497
- }
14498
- };
14499
- React.useEffect(function () {
14500
- document.addEventListener('keydown', onHandleSpacePress);
14501
- return function () {
14502
- return document.removeEventListener('keydown', onHandleSpacePress);
14503
- };
14504
- }, [chunkIndex]);
14505
- var _useState2 = React.useState(false),
14506
- showGoNextIndicator = _useState2[0],
14507
- setShowGoNextIndicator = _useState2[1];
14508
- return React__default.createElement(Container$e, null, React__default.createElement(DynamicText, {
14509
- text: (textChunks == null ? void 0 : textChunks[chunkIndex]) || '',
14510
- onFinish: function onFinish() {
14511
- setShowGoNextIndicator(true);
14512
- onEndStep && onEndStep();
14599
+ left = _useState[0],
14600
+ setLeft = _useState[1];
14601
+ React.useEffect(function () {
14602
+ var _containerRef$current;
14603
+ var calculatedWidth = ((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.clientWidth) || 0;
14604
+ setLeft(Math.max((value - valueMin) / (valueMax - valueMin) * (calculatedWidth - 35) + 10));
14605
+ }, [value, valueMin, valueMax]);
14606
+ var typeClass = type === exports.RangeSliderType.GoldSlider ? 'golden' : '';
14607
+ return React__default.createElement("div", {
14608
+ style: {
14609
+ width: width,
14610
+ position: 'relative'
14513
14611
  },
14514
- onStart: function onStart() {
14515
- setShowGoNextIndicator(false);
14516
- onStartStep && onStartStep();
14612
+ className: "rpgui-slider-container " + typeClass,
14613
+ id: "rpgui-slider-" + sliderId,
14614
+ ref: containerRef
14615
+ }, React__default.createElement("div", {
14616
+ style: {
14617
+ pointerEvents: 'none'
14517
14618
  }
14518
- }), showGoNextIndicator && React__default.createElement(PressSpaceIndicator, {
14519
- right: type === exports.NPCDialogType.TextOnly ? '1rem' : '10.5rem',
14520
- src: IS_MOBILE_OR_TABLET ? img$5 : img$6,
14521
- onPointerDown: function onPointerDown() {
14522
- goToNextStep();
14619
+ }, React__default.createElement("div", {
14620
+ className: "rpgui-slider-track " + typeClass
14621
+ }), React__default.createElement("div", {
14622
+ className: "rpgui-slider-left-edge " + typeClass
14623
+ }), React__default.createElement("div", {
14624
+ className: "rpgui-slider-right-edge " + typeClass
14625
+ }), React__default.createElement("div", {
14626
+ className: "rpgui-slider-thumb " + typeClass,
14627
+ style: {
14628
+ left: left
14523
14629
  }
14630
+ })), React__default.createElement(Input$1, {
14631
+ type: "range",
14632
+ style: {
14633
+ width: width
14634
+ },
14635
+ min: valueMin,
14636
+ max: valueMax,
14637
+ onChange: function onChange(e) {
14638
+ return _onChange(Number(e.target.value));
14639
+ },
14640
+ value: value,
14641
+ className: "rpgui-cursor-point"
14524
14642
  }));
14525
14643
  };
14526
- var Container$e = /*#__PURE__*/styled.div.withConfig({
14527
- displayName: "NPCDialogText__Container",
14528
- componentId: "sc-1cxkdh9-0"
14529
- })([""]);
14530
- var PressSpaceIndicator = /*#__PURE__*/styled.img.withConfig({
14531
- displayName: "NPCDialogText__PressSpaceIndicator",
14532
- componentId: "sc-1cxkdh9-1"
14533
- })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref2) {
14534
- var right = _ref2.right;
14535
- return right;
14536
- });
14537
-
14538
- //@ts-ignore
14539
- var useEventListener = function useEventListener(type, handler, el) {
14540
- if (el === void 0) {
14541
- el = window;
14542
- }
14543
- var savedHandler = React__default.useRef();
14544
- React__default.useEffect(function () {
14545
- savedHandler.current = handler;
14546
- }, [handler]);
14547
- React__default.useEffect(function () {
14548
- //@ts-ignore
14549
- var listener = function listener(e) {
14550
- return savedHandler.current(e);
14551
- };
14552
- el.addEventListener(type, listener);
14553
- return function () {
14554
- el.removeEventListener(type, listener);
14555
- };
14556
- }, [type, el]);
14557
- };
14644
+ var Input$1 = /*#__PURE__*/styled.input.withConfig({
14645
+ displayName: "RangeSlider__Input",
14646
+ componentId: "sc-v8mte9-0"
14647
+ })(["opacity:0;position:absolute;width:100%;height:100%;top:0;left:0;margin-top:-5px;"]);
14558
14648
 
14559
- var QuestionDialog = function QuestionDialog(_ref) {
14560
- var questions = _ref.questions,
14561
- answers = _ref.answers,
14649
+ var ItemQuantitySelector = function ItemQuantitySelector(_ref) {
14650
+ var quantity = _ref.quantity,
14651
+ onConfirm = _ref.onConfirm,
14562
14652
  onClose = _ref.onClose;
14563
- var _useState = React.useState(questions[0]),
14564
- currentQuestion = _useState[0],
14565
- setCurrentQuestion = _useState[1];
14566
- var _useState2 = React.useState(false),
14567
- canShowAnswers = _useState2[0],
14568
- setCanShowAnswers = _useState2[1];
14569
- var onGetFirstAnswer = function onGetFirstAnswer() {
14570
- if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {
14571
- return null;
14572
- }
14573
- var firstAnswerId = currentQuestion.answerIds[0];
14574
- return answers.find(function (answer) {
14575
- return answer.id === firstAnswerId;
14576
- });
14577
- };
14578
- var _useState3 = React.useState(onGetFirstAnswer()),
14579
- currentAnswer = _useState3[0],
14580
- setCurrentAnswer = _useState3[1];
14653
+ var _useState = React.useState(quantity),
14654
+ value = _useState[0],
14655
+ setValue = _useState[1];
14656
+ var inputRef = React.useRef(null);
14581
14657
  React.useEffect(function () {
14582
- setCurrentAnswer(onGetFirstAnswer());
14583
- }, [currentQuestion]);
14584
- var onGetAnswers = function onGetAnswers(answerIds) {
14585
- return answerIds.map(function (answerId) {
14586
- return answers.find(function (answer) {
14587
- return answer.id === answerId;
14588
- });
14589
- });
14590
- };
14591
- var onKeyPress = function onKeyPress(e) {
14592
- switch (e.key) {
14593
- case 'ArrowDown':
14594
- // select next answer, if any.
14595
- // if no next answer, select first answer
14596
- // const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(
14597
- // (answer) => answer?.id === currentAnswer!.id + 1
14598
- // );
14599
- var nextAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
14600
- return (answer == null ? void 0 : answer.id) === currentAnswer.id + 1;
14601
- });
14602
- var nextAnswerID = currentQuestion.answerIds[nextAnswerIndex];
14603
- var nextAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
14604
- return (answer == null ? void 0 : answer.id) === nextAnswerID;
14605
- });
14606
- setCurrentAnswer(nextAnswer || onGetFirstAnswer());
14607
- break;
14608
- case 'ArrowUp':
14609
- // select previous answer, if any.
14610
- // if no previous answer, select last answer
14611
- var previousAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
14612
- return (answer == null ? void 0 : answer.id) === currentAnswer.id - 1;
14613
- });
14614
- var previousAnswerID = currentQuestion.answerIds && currentQuestion.answerIds[previousAnswerIndex];
14615
- var previousAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
14616
- return (answer == null ? void 0 : answer.id) === previousAnswerID;
14617
- });
14618
- if (previousAnswer) {
14619
- setCurrentAnswer(previousAnswer);
14620
- } else {
14621
- setCurrentAnswer(onGetAnswers(currentQuestion.answerIds).pop());
14622
- }
14623
- break;
14624
- case 'Enter':
14625
- setCanShowAnswers(false);
14626
- if (!(currentAnswer != null && currentAnswer.nextQuestionId)) {
14658
+ if (inputRef.current) {
14659
+ inputRef.current.focus();
14660
+ inputRef.current.select();
14661
+ var closeSelector = function closeSelector(e) {
14662
+ if (e.key === 'Escape') {
14627
14663
  onClose();
14628
- return;
14629
- } else {
14630
- setCurrentQuestion(questions.find(function (question) {
14631
- return question.id === currentAnswer.nextQuestionId;
14632
- }));
14633
14664
  }
14634
- break;
14635
- }
14636
- };
14637
- useEventListener('keydown', onKeyPress);
14638
- var onAnswerClick = function onAnswerClick(answer) {
14639
- setCanShowAnswers(false);
14640
- if (answer.nextQuestionId) {
14641
- // if there is a next question, go to it
14642
- setCurrentQuestion(questions.find(function (question) {
14643
- return question.id === answer.nextQuestionId;
14644
- }));
14645
- } else {
14646
- // else, finish dialog!
14647
- onClose();
14648
- }
14649
- };
14650
- var onRenderCurrentAnswers = function onRenderCurrentAnswers() {
14651
- var answerIds = currentQuestion.answerIds;
14652
- if (!answerIds) {
14653
- return null;
14654
- }
14655
- var answers = onGetAnswers(answerIds);
14656
- if (!answers) {
14657
- return null;
14665
+ };
14666
+ document.addEventListener('keydown', closeSelector);
14667
+ return function () {
14668
+ document.removeEventListener('keydown', closeSelector);
14669
+ };
14658
14670
  }
14659
- return answers.map(function (answer) {
14660
- var isSelected = (currentAnswer == null ? void 0 : currentAnswer.id) === (answer == null ? void 0 : answer.id);
14661
- var selectedColor = isSelected ? 'yellow' : 'white';
14662
- if (answer) {
14663
- return React__default.createElement(AnswerRow, {
14664
- key: "answer_" + answer.id
14665
- }, React__default.createElement(AnswerSelectedIcon, {
14666
- color: selectedColor
14667
- }, isSelected ? 'X' : null), React__default.createElement(Answer, {
14668
- key: answer.id,
14669
- onPointerDown: function onPointerDown() {
14670
- return onAnswerClick(answer);
14671
- },
14672
- color: selectedColor
14673
- }, answer.text));
14671
+ return function () {};
14672
+ }, []);
14673
+ return React__default.createElement(StyledContainer, {
14674
+ type: exports.RPGUIContainerTypes.Framed,
14675
+ width: "25rem"
14676
+ }, React__default.createElement(CloseButton$2, {
14677
+ className: "container-close",
14678
+ onPointerDown: onClose
14679
+ }, "X"), React__default.createElement("h2", null, "Select quantity to move"), React__default.createElement(StyledForm, {
14680
+ style: {
14681
+ width: '100%'
14682
+ },
14683
+ onSubmit: function onSubmit(e) {
14684
+ e.preventDefault();
14685
+ var numberValue = Number(value);
14686
+ if (Number.isNaN(numberValue)) {
14687
+ return;
14674
14688
  }
14675
- return null;
14676
- });
14677
- };
14678
- return React__default.createElement(Container$f, null, React__default.createElement(QuestionContainer, null, React__default.createElement(DynamicText, {
14679
- text: currentQuestion.text,
14680
- onStart: function onStart() {
14681
- return setCanShowAnswers(false);
14689
+ onConfirm(Math.max(1, Math.min(quantity, numberValue)));
14682
14690
  },
14683
- onFinish: function onFinish() {
14684
- return setCanShowAnswers(true);
14685
- }
14686
- })), canShowAnswers && React__default.createElement(AnswersContainer, null, onRenderCurrentAnswers()));
14687
- };
14688
- var Container$f = /*#__PURE__*/styled.div.withConfig({
14689
- displayName: "QuestionDialog__Container",
14690
- componentId: "sc-bxc5u0-0"
14691
- })(["display:flex;word-break:break-all;box-sizing:border-box;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;"]);
14692
- var QuestionContainer = /*#__PURE__*/styled.div.withConfig({
14693
- displayName: "QuestionDialog__QuestionContainer",
14694
- componentId: "sc-bxc5u0-1"
14695
- })(["flex:100%;width:100%;"]);
14696
- var AnswersContainer = /*#__PURE__*/styled.div.withConfig({
14697
- displayName: "QuestionDialog__AnswersContainer",
14698
- componentId: "sc-bxc5u0-2"
14699
- })(["flex:100%;"]);
14700
- var Answer = /*#__PURE__*/styled.p.withConfig({
14701
- displayName: "QuestionDialog__Answer",
14702
- componentId: "sc-bxc5u0-3"
14703
- })(["flex:auto;color:", " !important;font-size:0.65rem !important;background:inherit;border:none;"], function (props) {
14704
- return props.color;
14705
- });
14706
- var AnswerSelectedIcon = /*#__PURE__*/styled.span.withConfig({
14707
- displayName: "QuestionDialog__AnswerSelectedIcon",
14708
- componentId: "sc-bxc5u0-4"
14709
- })(["flex:5% 0 0;color:", " !important;"], function (props) {
14710
- return props.color;
14711
- });
14712
- var AnswerRow = /*#__PURE__*/styled.div.withConfig({
14713
- displayName: "QuestionDialog__AnswerRow",
14714
- componentId: "sc-bxc5u0-5"
14715
- })(["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;}"]);
14716
-
14717
- var img$7 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAP1BMVEUAAAA7FyVxQTsUEBPj5v////+5v/tCJDOOUlIiHBr1oJfptaO6dWr61rhzFy1bMTjoanMUNGQoXMQkn97+88DQ3IhAAAAAAXRSTlMAQObYZgAAAAFiS0dEBfhv6ccAAAAHdElNRQfmAw4VOBC7c5LYAAABM0lEQVQ4y3XRi5KDIAwFUAUkbrBgpP//rZsHVHQ009qZ3tPboNN0zmwzvcw8O5sX4y0NOg/Et3jRCXF+ziULorjkOQ9gE24dvuUAzq08DiCO4pe3WN7zCP56vmpubBReQYC11YPS86ySxxCsAABTSgjb5m4g8nfbxvFHBkH2OEEvAItVuCuIsgGgl+Gcr7kDXxhEAx55A2SQEEeQeZwUaIP8Tbo05B0RFPhItAjgj1w6cDnhLluDj+Egkh3pCCP4pKQAw1IPO0W9Nti5gW9RP2dKA3BZd2Dw+baYX+Nt4GM00O4S3kEpF6Alb2Bv4LeC3kkGfAW0/p0RPoJVKr63ghHsKuRh5DIUKOAlGOwrtt9fQekAEfmhZslHUDoglB0zjfkJigN7UnTQQ4GBWomoVhEN/AOPSBh38gy+fwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wMy0xNFQyMTo1NTo1MSswMDowMJcc0eEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDMtMTRUMjE6NTU6NTErMDA6MDDmQWldAAAAAElFTkSuQmCC';
14718
-
14719
- (function (NPCDialogType) {
14720
- NPCDialogType["TextOnly"] = "TextOnly";
14721
- NPCDialogType["TextAndThumbnail"] = "TextAndThumbnail";
14722
- })(exports.NPCDialogType || (exports.NPCDialogType = {}));
14723
- var NPCDialog = function NPCDialog(_ref) {
14724
- var text = _ref.text,
14725
- type = _ref.type,
14726
- _onClose = _ref.onClose,
14727
- imagePath = _ref.imagePath,
14728
- _ref$isQuestionDialog = _ref.isQuestionDialog,
14729
- isQuestionDialog = _ref$isQuestionDialog === void 0 ? false : _ref$isQuestionDialog,
14730
- questions = _ref.questions,
14731
- answers = _ref.answers;
14732
- return React__default.createElement(RPGUIContainer, {
14733
- type: exports.RPGUIContainerTypes.FramedGold,
14734
- width: isQuestionDialog ? '600px' : '80%',
14735
- height: '180px'
14736
- }, isQuestionDialog && questions && answers ? React__default.createElement(React__default.Fragment, null, React__default.createElement(TextContainer$1, {
14737
- flex: type === exports.NPCDialogType.TextAndThumbnail ? '70%' : '100%'
14738
- }, React__default.createElement(QuestionDialog, {
14739
- questions: questions,
14740
- answers: answers,
14741
- onClose: function onClose() {
14742
- if (_onClose) {
14743
- _onClose();
14744
- }
14745
- }
14746
- })), type === exports.NPCDialogType.TextAndThumbnail && React__default.createElement(ThumbnailContainer, null, React__default.createElement(NPCThumbnail, {
14747
- src: imagePath || img$7
14748
- }))) : React__default.createElement(React__default.Fragment, null, React__default.createElement(Container$g, null, React__default.createElement(TextContainer$1, {
14749
- flex: type === exports.NPCDialogType.TextAndThumbnail ? '70%' : '100%'
14750
- }, React__default.createElement(NPCDialogText, {
14751
- type: type,
14752
- text: text || 'No text provided.',
14753
- onClose: function onClose() {
14754
- if (_onClose) {
14755
- _onClose();
14691
+ noValidate: true
14692
+ }, React__default.createElement(StyledInput, {
14693
+ innerRef: inputRef,
14694
+ placeholder: "Enter quantity",
14695
+ type: "number",
14696
+ min: 1,
14697
+ max: quantity,
14698
+ value: value,
14699
+ onChange: function onChange(e) {
14700
+ if (Number(e.target.value) >= quantity) {
14701
+ setValue(quantity);
14702
+ return;
14756
14703
  }
14704
+ setValue(e.target.value);
14705
+ },
14706
+ onBlur: function onBlur(e) {
14707
+ var newValue = Math.max(1, Math.min(quantity, Number(e.target.value)));
14708
+ setValue(newValue);
14757
14709
  }
14758
- })), type === exports.NPCDialogType.TextAndThumbnail && React__default.createElement(ThumbnailContainer, null, React__default.createElement(NPCThumbnail, {
14759
- src: imagePath || img$7
14760
- })))));
14710
+ }), React__default.createElement(RangeSlider, {
14711
+ type: exports.RangeSliderType.Slider,
14712
+ valueMin: 1,
14713
+ valueMax: quantity,
14714
+ width: "100%",
14715
+ onChange: setValue,
14716
+ value: value
14717
+ }), React__default.createElement(Button, {
14718
+ buttonType: exports.ButtonTypes.RPGUIButton,
14719
+ type: "submit"
14720
+ }, "Confirm")));
14761
14721
  };
14762
- var Container$g = /*#__PURE__*/styled.div.withConfig({
14763
- displayName: "NPCDialog__Container",
14764
- componentId: "sc-1b4aw74-0"
14765
- })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
14766
- var TextContainer$1 = /*#__PURE__*/styled.div.withConfig({
14767
- displayName: "NPCDialog__TextContainer",
14768
- componentId: "sc-1b4aw74-1"
14769
- })(["flex:", " 0 0;width:355px;"], function (_ref2) {
14770
- var flex = _ref2.flex;
14771
- return flex;
14772
- });
14773
- var ThumbnailContainer = /*#__PURE__*/styled.div.withConfig({
14774
- displayName: "NPCDialog__ThumbnailContainer",
14775
- componentId: "sc-1b4aw74-2"
14776
- })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
14777
- var NPCThumbnail = /*#__PURE__*/styled.img.withConfig({
14778
- displayName: "NPCDialog__NPCThumbnail",
14779
- componentId: "sc-1b4aw74-3"
14780
- })(["image-rendering:pixelated;height:128px;width:128px;"]);
14722
+ var StyledContainer = /*#__PURE__*/styled(RPGUIContainer).withConfig({
14723
+ displayName: "ItemQuantitySelector__StyledContainer",
14724
+ componentId: "sc-yfdtpn-0"
14725
+ })(["display:flex;flex-direction:column;align-items:center;"]);
14726
+ var StyledForm = /*#__PURE__*/styled.form.withConfig({
14727
+ displayName: "ItemQuantitySelector__StyledForm",
14728
+ componentId: "sc-yfdtpn-1"
14729
+ })(["display:flex;flex-direction:column;align-items:center;width:100%;"]);
14730
+ var StyledInput = /*#__PURE__*/styled(Input).withConfig({
14731
+ displayName: "ItemQuantitySelector__StyledInput",
14732
+ componentId: "sc-yfdtpn-2"
14733
+ })(["text-align:center;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}"]);
14734
+ var CloseButton$2 = /*#__PURE__*/styled.div.withConfig({
14735
+ displayName: "ItemQuantitySelector__CloseButton",
14736
+ componentId: "sc-yfdtpn-3"
14737
+ })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:0.8rem;"]);
14781
14738
 
14782
- (function (ImgSide) {
14783
- ImgSide["right"] = "right";
14784
- ImgSide["left"] = "left";
14785
- })(exports.ImgSide || (exports.ImgSide = {}));
14786
- var NPCMultiDialog = function NPCMultiDialog(_ref) {
14787
- var _textAndTypeArray$sli;
14788
- var _onClose = _ref.onClose,
14789
- textAndTypeArray = _ref.textAndTypeArray;
14790
- var _useState = React.useState(false),
14791
- showGoNextIndicator = _useState[0],
14792
- setShowGoNextIndicator = _useState[1];
14793
- var _useState2 = React.useState(0),
14794
- slide = _useState2[0],
14795
- setSlide = _useState2[1];
14796
- var onHandleSpacePress = function onHandleSpacePress(event) {
14797
- if (event.code === 'Space') {
14798
- if (slide < (textAndTypeArray == null ? void 0 : textAndTypeArray.length) - 1) {
14799
- setSlide(function (prev) {
14800
- return prev + 1;
14801
- });
14802
- } else {
14803
- // if there's no more text chunks, close the dialog
14804
- _onClose();
14805
- }
14739
+ var ShortcutsSetter = function ShortcutsSetter(_ref) {
14740
+ var setSettingShortcutIndex = _ref.setSettingShortcutIndex,
14741
+ settingShortcutIndex = _ref.settingShortcutIndex,
14742
+ shortcuts = _ref.shortcuts,
14743
+ removeShortcut = _ref.removeShortcut,
14744
+ atlasJSON = _ref.atlasJSON,
14745
+ atlasIMG = _ref.atlasIMG;
14746
+ var getContent = function getContent(index) {
14747
+ var _shortcuts$index, _shortcuts$index3;
14748
+ if (((_shortcuts$index = shortcuts[index]) == null ? void 0 : _shortcuts$index.type) === shared.ShortcutType.Item) {
14749
+ var _shortcuts$index2;
14750
+ var _payload = (_shortcuts$index2 = shortcuts[index]) == null ? void 0 : _shortcuts$index2.payload;
14751
+ if (!_payload) return null;
14752
+ return React__default.createElement(SpriteFromAtlas, {
14753
+ atlasIMG: atlasIMG,
14754
+ atlasJSON: atlasJSON,
14755
+ spriteKey: shared.getItemTextureKeyPath({
14756
+ key: _payload.texturePath,
14757
+ texturePath: _payload.texturePath,
14758
+ stackQty: _payload.stackQty || 1,
14759
+ isStackable: _payload.isStackable
14760
+ }, atlasJSON),
14761
+ width: 32,
14762
+ height: 32,
14763
+ imgScale: 1.6,
14764
+ imgStyle: {
14765
+ left: '5px'
14766
+ }
14767
+ });
14806
14768
  }
14769
+ var payload = (_shortcuts$index3 = shortcuts[index]) == null ? void 0 : _shortcuts$index3.payload;
14770
+ return React__default.createElement("span", null, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
14771
+ return word[0];
14772
+ }));
14807
14773
  };
14808
- React.useEffect(function () {
14809
- document.addEventListener('keydown', onHandleSpacePress);
14810
- return function () {
14811
- return document.removeEventListener('keydown', onHandleSpacePress);
14812
- };
14813
- }, [slide]);
14814
- return React__default.createElement(RPGUIContainer, {
14815
- type: exports.RPGUIContainerTypes.FramedGold,
14816
- width: '50%',
14817
- height: '180px'
14818
- }, React__default.createElement(React__default.Fragment, null, React__default.createElement(Container$h, null, ((_textAndTypeArray$sli = textAndTypeArray[slide]) == null ? void 0 : _textAndTypeArray$sli.imageSide) === 'right' && React__default.createElement(React__default.Fragment, null, React__default.createElement(TextContainer$2, {
14819
- flex: '70%'
14820
- }, React__default.createElement(NPCDialogText, {
14821
- onStartStep: function onStartStep() {
14822
- return setShowGoNextIndicator(false);
14823
- },
14824
- onEndStep: function onEndStep() {
14825
- return setShowGoNextIndicator(true);
14826
- },
14827
- text: textAndTypeArray[slide].text || 'No text provided.',
14828
- onClose: function onClose() {
14829
- if (_onClose) {
14830
- _onClose();
14831
- }
14832
- }
14833
- })), React__default.createElement(ThumbnailContainer$1, null, React__default.createElement(NPCThumbnail$1, {
14834
- src: textAndTypeArray[slide].imagePath || img$7
14835
- })), showGoNextIndicator && React__default.createElement(PressSpaceIndicator$1, {
14836
- right: '10.5rem',
14837
- src: img$6
14838
- })), textAndTypeArray[slide].imageSide === 'left' && React__default.createElement(React__default.Fragment, null, React__default.createElement(ThumbnailContainer$1, null, React__default.createElement(NPCThumbnail$1, {
14839
- src: textAndTypeArray[slide].imagePath || img$7
14840
- })), React__default.createElement(TextContainer$2, {
14841
- flex: '70%'
14842
- }, React__default.createElement(NPCDialogText, {
14843
- onStartStep: function onStartStep() {
14844
- return setShowGoNextIndicator(false);
14845
- },
14846
- onEndStep: function onEndStep() {
14847
- return setShowGoNextIndicator(true);
14848
- },
14849
- text: textAndTypeArray[slide].text || 'No text provided.',
14850
- onClose: function onClose() {
14851
- if (_onClose) {
14852
- _onClose();
14853
- }
14854
- }
14855
- })), showGoNextIndicator && React__default.createElement(PressSpaceIndicator$1, {
14856
- right: '1rem',
14857
- src: img$6
14858
- }))), ")"));
14774
+ return React__default.createElement(Container$e, null, React__default.createElement("p", null, "Shortcuts:"), React__default.createElement(List, {
14775
+ id: "shortcuts_list"
14776
+ }, Array.from({
14777
+ length: 6
14778
+ }).map(function (_, i) {
14779
+ return React__default.createElement(Shortcut, {
14780
+ key: i,
14781
+ onPointerDown: function onPointerDown() {
14782
+ if (settingShortcutIndex !== -1) setSettingShortcutIndex(-1);
14783
+ removeShortcut(i);
14784
+ if (settingShortcutIndex === -1 && (!shortcuts[i] || shortcuts[i].type === shared.ShortcutType.None)) setSettingShortcutIndex(i);
14785
+ },
14786
+ disabled: settingShortcutIndex !== -1 && settingShortcutIndex !== i,
14787
+ isBeingSet: settingShortcutIndex === i,
14788
+ id: "shortcutSetter_" + i
14789
+ }, getContent(i));
14790
+ })));
14859
14791
  };
14860
- var Container$h = /*#__PURE__*/styled.div.withConfig({
14861
- displayName: "NPCMultiDialog__Container",
14862
- componentId: "sc-rvu5wg-0"
14863
- })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
14864
- var TextContainer$2 = /*#__PURE__*/styled.div.withConfig({
14865
- displayName: "NPCMultiDialog__TextContainer",
14866
- componentId: "sc-rvu5wg-1"
14867
- })(["flex:", " 0 0;width:355px;"], function (_ref2) {
14868
- var flex = _ref2.flex;
14869
- return flex;
14870
- });
14871
- var ThumbnailContainer$1 = /*#__PURE__*/styled.div.withConfig({
14872
- displayName: "NPCMultiDialog__ThumbnailContainer",
14873
- componentId: "sc-rvu5wg-2"
14874
- })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
14875
- var NPCThumbnail$1 = /*#__PURE__*/styled.img.withConfig({
14876
- displayName: "NPCMultiDialog__NPCThumbnail",
14877
- componentId: "sc-rvu5wg-3"
14878
- })(["image-rendering:pixelated;height:128px;width:128px;"]);
14879
- var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
14880
- displayName: "NPCMultiDialog__PressSpaceIndicator",
14881
- componentId: "sc-rvu5wg-4"
14882
- })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref3) {
14883
- var right = _ref3.right;
14884
- return right;
14885
- });
14792
+ var Container$e = /*#__PURE__*/styled.div.withConfig({
14793
+ displayName: "ShortcutsSetter__Container",
14794
+ componentId: "sc-xuouuf-0"
14795
+ })(["p{margin:0;margin-left:0.5rem;}"]);
14796
+ var Shortcut = /*#__PURE__*/styled.button.withConfig({
14797
+ displayName: "ShortcutsSetter__Shortcut",
14798
+ componentId: "sc-xuouuf-1"
14799
+ })(["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) {
14800
+ var isBeingSet = _ref2.isBeingSet;
14801
+ return isBeingSet ? uiColors.yellow : uiColors.darkGray;
14802
+ }, uiColors.darkGray, uiColors.gray);
14803
+ var List = /*#__PURE__*/styled.div.withConfig({
14804
+ displayName: "ShortcutsSetter__List",
14805
+ componentId: "sc-xuouuf-2"
14806
+ })(["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;"]);
14886
14807
 
14887
- var HistoryDialog = function HistoryDialog(_ref) {
14888
- var backgroundImgPath = _ref.backgroundImgPath,
14889
- fullCoverBackground = _ref.fullCoverBackground,
14890
- questions = _ref.questions,
14891
- answers = _ref.answers,
14892
- text = _ref.text,
14893
- imagePath = _ref.imagePath,
14894
- textAndTypeArray = _ref.textAndTypeArray,
14895
- onClose = _ref.onClose;
14896
- var _useState = React.useState(0),
14897
- img = _useState[0],
14898
- setImage = _useState[1];
14899
- var onHandleSpacePress = function onHandleSpacePress(event) {
14900
- if (event.code === 'Space') {
14901
- if (img < (backgroundImgPath == null ? void 0 : backgroundImgPath.length) - 1) {
14902
- setImage(function (prev) {
14903
- return prev + 1;
14904
- });
14905
- } else {
14906
- // if there's no more text chunks, close the dialog
14907
- onClose();
14908
- }
14808
+ var ItemContainer$1 = function ItemContainer(_ref) {
14809
+ var itemContainer = _ref.itemContainer,
14810
+ onClose = _ref.onClose,
14811
+ _onMouseOver = _ref.onMouseOver,
14812
+ _onSelected = _ref.onSelected,
14813
+ onItemClick = _ref.onItemClick,
14814
+ type = _ref.type,
14815
+ atlasJSON = _ref.atlasJSON,
14816
+ atlasIMG = _ref.atlasIMG,
14817
+ _ref$disableContextMe = _ref.disableContextMenu,
14818
+ disableContextMenu = _ref$disableContextMe === void 0 ? false : _ref$disableContextMe,
14819
+ onItemDragEnd = _ref.onItemDragEnd,
14820
+ onItemDragStart = _ref.onItemDragStart,
14821
+ onItemPlaceDrop = _ref.onItemPlaceDrop,
14822
+ _onOutsideDrop = _ref.onOutsideDrop,
14823
+ checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
14824
+ initialPosition = _ref.initialPosition,
14825
+ checkIfItemShouldDragEnd = _ref.checkIfItemShouldDragEnd,
14826
+ scale = _ref.scale,
14827
+ shortcuts = _ref.shortcuts,
14828
+ setItemShortcut = _ref.setItemShortcut,
14829
+ removeShortcut = _ref.removeShortcut,
14830
+ equipmentSet = _ref.equipmentSet,
14831
+ isDepotSystem = _ref.isDepotSystem,
14832
+ onPositionChangeEnd = _ref.onPositionChangeEnd,
14833
+ onPositionChangeStart = _ref.onPositionChangeStart;
14834
+ var _useState = React.useState({
14835
+ isOpen: false,
14836
+ maxQuantity: 1,
14837
+ callback: function callback(_quantity) {}
14838
+ }),
14839
+ quantitySelect = _useState[0],
14840
+ setQuantitySelect = _useState[1];
14841
+ var _useState2 = React.useState(-1),
14842
+ settingShortcutIndex = _useState2[0],
14843
+ setSettingShortcutIndex = _useState2[1];
14844
+ var handleSetShortcut = function handleSetShortcut(item, index) {
14845
+ if (item.type === shared.ItemType.Consumable || item.type === shared.ItemType.Tool) {
14846
+ setItemShortcut == null ? void 0 : setItemShortcut(item.key, index);
14909
14847
  }
14910
14848
  };
14911
- React.useEffect(function () {
14912
- document.addEventListener('keydown', onHandleSpacePress);
14913
- return function () {
14914
- return document.removeEventListener('keydown', onHandleSpacePress);
14915
- };
14916
- }, [backgroundImgPath]);
14917
- return React__default.createElement(BackgroundContainer, {
14918
- imgPath: backgroundImgPath[img],
14919
- fullImg: fullCoverBackground
14920
- }, React__default.createElement(DialogContainer, null, textAndTypeArray ? React__default.createElement(NPCMultiDialog, {
14921
- textAndTypeArray: textAndTypeArray,
14922
- onClose: onClose
14923
- }) : questions && answers ? React__default.createElement(QuestionDialog, {
14924
- questions: questions,
14925
- answers: answers,
14926
- onClose: onClose
14927
- }) : text && imagePath ? React__default.createElement(NPCDialog, {
14928
- text: text,
14929
- imagePath: imagePath,
14930
- onClose: onClose,
14931
- type: exports.NPCDialogType.TextAndThumbnail
14932
- }) : React__default.createElement(NPCDialog, {
14933
- text: text,
14849
+ var onRenderSlots = function onRenderSlots() {
14850
+ var slots = [];
14851
+ for (var i = 0; i < itemContainer.slotQty; i++) {
14852
+ var _itemContainer$slots;
14853
+ slots.push(React__default.createElement(ItemSlot, {
14854
+ isContextMenuDisabled: disableContextMenu,
14855
+ key: i,
14856
+ slotIndex: i,
14857
+ item: ((_itemContainer$slots = itemContainer.slots) == null ? void 0 : _itemContainer$slots[i]) || null,
14858
+ itemContainerType: type,
14859
+ onMouseOver: function onMouseOver(event, slotIndex, item) {
14860
+ if (_onMouseOver) _onMouseOver(event, slotIndex, item);
14861
+ },
14862
+ onPointerDown: function onPointerDown(itemType, containerType, item) {
14863
+ if (settingShortcutIndex !== -1) {
14864
+ setSettingShortcutIndex(-1);
14865
+ handleSetShortcut(item, settingShortcutIndex);
14866
+ } else if (onItemClick) onItemClick(item, itemType, containerType);
14867
+ },
14868
+ onSelected: function onSelected(optionId, item) {
14869
+ if (_onSelected) _onSelected(optionId, item);
14870
+ },
14871
+ onDragStart: function onDragStart(item, slotIndex, itemContainerType) {
14872
+ if (onItemDragStart) onItemDragStart(item, slotIndex, itemContainerType);
14873
+ },
14874
+ onDragEnd: function onDragEnd(quantity) {
14875
+ if (onItemDragEnd) onItemDragEnd(quantity);
14876
+ },
14877
+ dragScale: scale,
14878
+ checkIfItemCanBeMoved: checkIfItemCanBeMoved,
14879
+ checkIfItemShouldDragEnd: checkIfItemShouldDragEnd,
14880
+ openQuantitySelector: function openQuantitySelector(maxQuantity, callback) {
14881
+ setQuantitySelect({
14882
+ isOpen: true,
14883
+ maxQuantity: maxQuantity,
14884
+ callback: callback
14885
+ });
14886
+ },
14887
+ onPlaceDrop: function onPlaceDrop(item, slotIndex, itemContainerType) {
14888
+ if (onItemPlaceDrop) onItemPlaceDrop(item, slotIndex, itemContainerType);
14889
+ },
14890
+ onOutsideDrop: function onOutsideDrop(item, position) {
14891
+ if (_onOutsideDrop) _onOutsideDrop(item, position);
14892
+ },
14893
+ atlasIMG: atlasIMG,
14894
+ atlasJSON: atlasJSON,
14895
+ isSelectingShortcut: settingShortcutIndex !== -1,
14896
+ equipmentSet: equipmentSet,
14897
+ setItemShortcut: type === shared.ItemContainerType.Inventory ? handleSetShortcut : undefined,
14898
+ isDepotSystem: isDepotSystem
14899
+ }));
14900
+ }
14901
+ return slots;
14902
+ };
14903
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(SlotsContainer, {
14904
+ title: itemContainer.name || 'Container',
14934
14905
  onClose: onClose,
14935
- type: exports.NPCDialogType.TextOnly
14936
- })));
14906
+ initialPosition: initialPosition,
14907
+ scale: scale,
14908
+ onPositionChangeEnd: onPositionChangeEnd,
14909
+ onPositionChangeStart: onPositionChangeStart
14910
+ }, type === shared.ItemContainerType.Inventory && shortcuts && removeShortcut && React__default.createElement(ShortcutsSetter, {
14911
+ setSettingShortcutIndex: setSettingShortcutIndex,
14912
+ settingShortcutIndex: settingShortcutIndex,
14913
+ shortcuts: shortcuts,
14914
+ removeShortcut: removeShortcut,
14915
+ atlasIMG: atlasIMG,
14916
+ atlasJSON: atlasJSON
14917
+ }), React__default.createElement(ItemsContainer, {
14918
+ className: "item-container-body"
14919
+ }, onRenderSlots())), quantitySelect.isOpen && React__default.createElement(ModalPortal, null, React__default.createElement(QuantitySelectorContainer, null, React__default.createElement(ItemQuantitySelector, {
14920
+ quantity: quantitySelect.maxQuantity,
14921
+ onConfirm: function onConfirm(quantity) {
14922
+ quantitySelect.callback(quantity);
14923
+ setQuantitySelect({
14924
+ isOpen: false,
14925
+ maxQuantity: 1,
14926
+ callback: function callback() {}
14927
+ });
14928
+ },
14929
+ onClose: function onClose() {
14930
+ quantitySelect.callback(-1);
14931
+ setQuantitySelect({
14932
+ isOpen: false,
14933
+ maxQuantity: 1,
14934
+ callback: function callback() {}
14935
+ });
14936
+ }
14937
+ }))));
14937
14938
  };
14938
- var BackgroundContainer = /*#__PURE__*/styled.div.withConfig({
14939
- displayName: "HistoryDialog__BackgroundContainer",
14940
- componentId: "sc-u6oe75-0"
14941
- })(["width:100%;height:100%;background-image:url(", ");background-size:", ";display:flex;justify-content:space-evenly;align-items:center;"], function (props) {
14942
- return props.imgPath;
14943
- }, function (props) {
14944
- return props.imgPath ? 'cover' : 'auto';
14945
- });
14946
- var DialogContainer = /*#__PURE__*/styled.div.withConfig({
14947
- displayName: "HistoryDialog__DialogContainer",
14948
- componentId: "sc-u6oe75-1"
14949
- })(["display:flex;justify-content:center;padding-top:200px;"]);
14939
+ var ItemsContainer = /*#__PURE__*/styled.div.withConfig({
14940
+ displayName: "ItemContainer__ItemsContainer",
14941
+ componentId: "sc-15y5p9l-0"
14942
+ })(["display:flex;justify-content:center;flex-wrap:wrap;"]);
14943
+ var QuantitySelectorContainer = /*#__PURE__*/styled.div.withConfig({
14944
+ displayName: "ItemContainer__QuantitySelectorContainer",
14945
+ componentId: "sc-15y5p9l-1"
14946
+ })(["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);"]);
14950
14947
 
14951
- var SlotsContainer = function SlotsContainer(_ref) {
14952
- var children = _ref.children,
14953
- title = _ref.title,
14948
+ var ItemSelector = function ItemSelector(_ref) {
14949
+ var atlasIMG = _ref.atlasIMG,
14950
+ atlasJSON = _ref.atlasJSON,
14951
+ options = _ref.options,
14954
14952
  onClose = _ref.onClose,
14955
- _onPositionChange = _ref.onPositionChange,
14956
- _onPositionChangeEnd = _ref.onPositionChangeEnd,
14957
- _onPositionChangeStart = _ref.onPositionChangeStart,
14958
- onOutsideClick = _ref.onOutsideClick,
14959
- initialPosition = _ref.initialPosition,
14960
- scale = _ref.scale;
14953
+ onSelect = _ref.onSelect;
14954
+ var _useState = React.useState(),
14955
+ selectedValue = _useState[0],
14956
+ setSelectedValue = _useState[1];
14957
+ var handleClick = function handleClick() {
14958
+ var element = document.querySelector("input[name='test']:checked");
14959
+ var elementValue = element.value;
14960
+ setSelectedValue(elementValue);
14961
+ };
14962
+ React.useEffect(function () {
14963
+ if (selectedValue) {
14964
+ onSelect(selectedValue);
14965
+ }
14966
+ }, [selectedValue]);
14961
14967
  return React__default.createElement(DraggableContainer, {
14962
- title: title,
14963
14968
  type: exports.RPGUIContainerTypes.Framed,
14969
+ width: "500px",
14970
+ cancelDrag: ".equipment-container-body .arrow-selector",
14964
14971
  onCloseButton: function onCloseButton() {
14965
14972
  if (onClose) {
14966
14973
  onClose();
14967
14974
  }
14968
- },
14969
- width: "400px",
14970
- cancelDrag: ".item-container-body, #shortcuts_list",
14971
- onPositionChange: function onPositionChange(_ref2) {
14972
- var x = _ref2.x,
14973
- y = _ref2.y;
14974
- if (_onPositionChange) {
14975
- _onPositionChange({
14976
- x: x,
14977
- y: y
14978
- });
14979
- }
14980
- },
14981
- onPositionChangeEnd: function onPositionChangeEnd(_ref3) {
14982
- var x = _ref3.x,
14983
- y = _ref3.y;
14984
- if (_onPositionChangeEnd) {
14985
- _onPositionChangeEnd({
14986
- x: x,
14987
- y: y
14988
- });
14989
- }
14990
- },
14991
- onPositionChangeStart: function onPositionChangeStart(_ref4) {
14992
- var x = _ref4.x,
14993
- y = _ref4.y;
14994
- if (_onPositionChangeStart) {
14995
- _onPositionChangeStart({
14996
- x: x,
14997
- y: y
14998
- });
14999
- }
15000
- },
15001
- onOutsideClick: onOutsideClick,
15002
- initialPosition: initialPosition,
15003
- scale: scale
15004
- }, children);
15005
- };
15006
-
15007
- (function (RangeSliderType) {
15008
- RangeSliderType["Slider"] = "rpgui-slider";
15009
- RangeSliderType["GoldSlider"] = "rpgui-slider golden";
15010
- })(exports.RangeSliderType || (exports.RangeSliderType = {}));
15011
- var RangeSlider = function RangeSlider(_ref) {
15012
- var type = _ref.type,
15013
- valueMin = _ref.valueMin,
15014
- valueMax = _ref.valueMax,
15015
- width = _ref.width,
15016
- _onChange = _ref.onChange,
15017
- value = _ref.value;
15018
- var sliderId = uuid.v4();
15019
- var containerRef = React.useRef(null);
15020
- var _useState = React.useState(0),
15021
- left = _useState[0],
15022
- setLeft = _useState[1];
15023
- React.useEffect(function () {
15024
- var _containerRef$current;
15025
- var calculatedWidth = ((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.clientWidth) || 0;
15026
- setLeft(Math.max((value - valueMin) / (valueMax - valueMin) * (calculatedWidth - 35) + 10));
15027
- }, [value, valueMin, valueMax]);
15028
- var typeClass = type === exports.RangeSliderType.GoldSlider ? 'golden' : '';
15029
- return React__default.createElement("div", {
15030
- style: {
15031
- width: width,
15032
- position: 'relative'
15033
- },
15034
- className: "rpgui-slider-container " + typeClass,
15035
- id: "rpgui-slider-" + sliderId,
15036
- ref: containerRef
15037
- }, React__default.createElement("div", {
15038
- style: {
15039
- pointerEvents: 'none'
15040
14975
  }
15041
14976
  }, React__default.createElement("div", {
15042
- className: "rpgui-slider-track " + typeClass
15043
- }), React__default.createElement("div", {
15044
- className: "rpgui-slider-left-edge " + typeClass
15045
- }), React__default.createElement("div", {
15046
- className: "rpgui-slider-right-edge " + typeClass
15047
- }), React__default.createElement("div", {
15048
- className: "rpgui-slider-thumb " + typeClass,
15049
14977
  style: {
15050
- left: left
14978
+ width: '100%'
15051
14979
  }
15052
- })), React__default.createElement(Input$1, {
15053
- type: "range",
15054
- style: {
15055
- width: width
15056
- },
15057
- min: valueMin,
15058
- max: valueMax,
15059
- onChange: function onChange(e) {
15060
- return _onChange(Number(e.target.value));
15061
- },
15062
- value: value,
15063
- className: "rpgui-cursor-point"
15064
- }));
14980
+ }, React__default.createElement(Title$3, null, 'Harvesting instruments'), React__default.createElement(Subtitle$1, null, 'Use the tool, you need it'), React__default.createElement("hr", {
14981
+ className: "golden"
14982
+ })), React__default.createElement(RadioInputScroller$1, null, options == null ? void 0 : options.map(function (option, index) {
14983
+ return React__default.createElement(RadioOptionsWrapper$1, {
14984
+ key: index
14985
+ }, React__default.createElement(SpriteAtlasWrapper$1, null, React__default.createElement(SpriteFromAtlas, {
14986
+ atlasIMG: atlasIMG,
14987
+ atlasJSON: atlasJSON,
14988
+ spriteKey: option.imageKey,
14989
+ imgScale: 3
14990
+ })), React__default.createElement("div", null, React__default.createElement("input", {
14991
+ className: "rpgui-radio",
14992
+ type: "radio",
14993
+ value: option.name,
14994
+ name: "test"
14995
+ }), React__default.createElement("label", {
14996
+ onPointerDown: handleClick,
14997
+ style: {
14998
+ display: 'flex',
14999
+ alignItems: 'center'
15000
+ }
15001
+ }, option.name, " ", React__default.createElement("br", null), option.description)));
15002
+ })), React__default.createElement(ButtonWrapper$1, null, React__default.createElement(Button, {
15003
+ buttonType: exports.ButtonTypes.RPGUIButton,
15004
+ onPointerDown: onClose
15005
+ }, "Cancel"), React__default.createElement(Button, {
15006
+ buttonType: exports.ButtonTypes.RPGUIButton
15007
+ }, "Select")));
15065
15008
  };
15066
- var Input$1 = /*#__PURE__*/styled.input.withConfig({
15067
- displayName: "RangeSlider__Input",
15068
- componentId: "sc-v8mte9-0"
15069
- })(["opacity:0;position:absolute;width:100%;height:100%;top:0;left:0;margin-top:-5px;"]);
15009
+ var Title$3 = /*#__PURE__*/styled.h1.withConfig({
15010
+ displayName: "ItemSelector__Title",
15011
+ componentId: "sc-gptoxp-0"
15012
+ })(["font-size:0.6rem;color:yellow !important;"]);
15013
+ var Subtitle$1 = /*#__PURE__*/styled.h1.withConfig({
15014
+ displayName: "ItemSelector__Subtitle",
15015
+ componentId: "sc-gptoxp-1"
15016
+ })(["font-size:0.4rem;color:yellow !important;"]);
15017
+ var RadioInputScroller$1 = /*#__PURE__*/styled.div.withConfig({
15018
+ displayName: "ItemSelector__RadioInputScroller",
15019
+ componentId: "sc-gptoxp-2"
15020
+ })(["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;"]);
15021
+ var SpriteAtlasWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15022
+ displayName: "ItemSelector__SpriteAtlasWrapper",
15023
+ componentId: "sc-gptoxp-3"
15024
+ })(["margin-right:40px;"]);
15025
+ var RadioOptionsWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15026
+ displayName: "ItemSelector__RadioOptionsWrapper",
15027
+ componentId: "sc-gptoxp-4"
15028
+ })(["display:flex;align-items:stretch;margin-bottom:40px;"]);
15029
+ var ButtonWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15030
+ displayName: "ItemSelector__ButtonWrapper",
15031
+ componentId: "sc-gptoxp-5"
15032
+ })(["display:flex;justify-content:space-around;padding-top:20px;width:100%;"]);
15070
15033
 
15071
- var ItemQuantitySelector = function ItemQuantitySelector(_ref) {
15072
- var quantity = _ref.quantity,
15073
- onConfirm = _ref.onConfirm,
15074
- onClose = _ref.onClose;
15075
- var _useState = React.useState(quantity),
15076
- value = _useState[0],
15077
- setValue = _useState[1];
15078
- var inputRef = React.useRef(null);
15079
- React.useEffect(function () {
15080
- if (inputRef.current) {
15081
- inputRef.current.focus();
15082
- inputRef.current.select();
15083
- var closeSelector = function closeSelector(e) {
15084
- if (e.key === 'Escape') {
15085
- onClose();
15086
- }
15087
- };
15088
- document.addEventListener('keydown', closeSelector);
15089
- return function () {
15090
- document.removeEventListener('keydown', closeSelector);
15091
- };
15092
- }
15093
- return function () {};
15094
- }, []);
15095
- return React__default.createElement(StyledContainer, {
15096
- type: exports.RPGUIContainerTypes.Framed,
15097
- width: "25rem"
15098
- }, React__default.createElement(CloseButton$2, {
15099
- className: "container-close",
15100
- onPointerDown: onClose
15101
- }, "X"), React__default.createElement("h2", null, "Select quantity to move"), React__default.createElement(StyledForm, {
15034
+ var ListMenu = function ListMenu(_ref) {
15035
+ var options = _ref.options,
15036
+ onSelected = _ref.onSelected,
15037
+ x = _ref.x,
15038
+ y = _ref.y;
15039
+ return React__default.createElement(Container$f, {
15040
+ x: x,
15041
+ y: y
15042
+ }, React__default.createElement("ul", {
15043
+ className: "rpgui-list-imp",
15102
15044
  style: {
15103
- width: '100%'
15104
- },
15105
- onSubmit: function onSubmit(e) {
15106
- e.preventDefault();
15107
- var numberValue = Number(value);
15108
- if (Number.isNaN(numberValue)) {
15109
- return;
15110
- }
15111
- onConfirm(Math.max(1, Math.min(quantity, numberValue)));
15112
- },
15113
- noValidate: true
15114
- }, React__default.createElement(StyledInput, {
15115
- innerRef: inputRef,
15116
- placeholder: "Enter quantity",
15117
- type: "number",
15118
- min: 1,
15119
- max: quantity,
15120
- value: value,
15121
- onChange: function onChange(e) {
15122
- if (Number(e.target.value) >= quantity) {
15123
- setValue(quantity);
15124
- return;
15125
- }
15126
- setValue(e.target.value);
15127
- },
15128
- onBlur: function onBlur(e) {
15129
- var newValue = Math.max(1, Math.min(quantity, Number(e.target.value)));
15130
- setValue(newValue);
15045
+ overflow: 'hidden'
15131
15046
  }
15132
- }), React__default.createElement(RangeSlider, {
15133
- type: exports.RangeSliderType.Slider,
15134
- valueMin: 1,
15135
- valueMax: quantity,
15136
- width: "100%",
15137
- onChange: setValue,
15138
- value: value
15139
- }), React__default.createElement(Button, {
15140
- buttonType: exports.ButtonTypes.RPGUIButton,
15141
- type: "submit"
15142
- }, "Confirm")));
15047
+ }, options.map(function (params, index) {
15048
+ return React__default.createElement(ListElement$1, {
15049
+ key: (params == null ? void 0 : params.id) || index,
15050
+ onPointerDown: function onPointerDown() {
15051
+ onSelected(params == null ? void 0 : params.id);
15052
+ }
15053
+ }, (params == null ? void 0 : params.text) || 'No text');
15054
+ })));
15143
15055
  };
15144
- var StyledContainer = /*#__PURE__*/styled(RPGUIContainer).withConfig({
15145
- displayName: "ItemQuantitySelector__StyledContainer",
15146
- componentId: "sc-yfdtpn-0"
15147
- })(["display:flex;flex-direction:column;align-items:center;"]);
15148
- var StyledForm = /*#__PURE__*/styled.form.withConfig({
15149
- displayName: "ItemQuantitySelector__StyledForm",
15150
- componentId: "sc-yfdtpn-1"
15151
- })(["display:flex;flex-direction:column;align-items:center;width:100%;"]);
15152
- var StyledInput = /*#__PURE__*/styled(Input).withConfig({
15153
- displayName: "ItemQuantitySelector__StyledInput",
15154
- componentId: "sc-yfdtpn-2"
15155
- })(["text-align:center;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}"]);
15156
- var CloseButton$2 = /*#__PURE__*/styled.div.withConfig({
15157
- displayName: "ItemQuantitySelector__CloseButton",
15158
- componentId: "sc-yfdtpn-3"
15159
- })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:0.8rem;"]);
15056
+ var Container$f = /*#__PURE__*/styled.div.withConfig({
15057
+ displayName: "ListMenu__Container",
15058
+ componentId: "sc-i9097t-0"
15059
+ })(["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) {
15060
+ return props.y || 0;
15061
+ }, function (props) {
15062
+ return props.x || 0;
15063
+ }, uiFonts.size.xsmall);
15064
+ var ListElement$1 = /*#__PURE__*/styled.li.withConfig({
15065
+ displayName: "ListMenu__ListElement",
15066
+ componentId: "sc-i9097t-1"
15067
+ })(["margin-right:0.5rem;"]);
15160
15068
 
15161
- var ShortcutsSetter = function ShortcutsSetter(_ref) {
15162
- var setSettingShortcutIndex = _ref.setSettingShortcutIndex,
15163
- settingShortcutIndex = _ref.settingShortcutIndex,
15164
- shortcuts = _ref.shortcuts,
15165
- removeShortcut = _ref.removeShortcut,
15166
- atlasJSON = _ref.atlasJSON,
15167
- atlasIMG = _ref.atlasIMG;
15168
- var getContent = function getContent(index) {
15169
- var _shortcuts$index, _shortcuts$index3;
15170
- if (((_shortcuts$index = shortcuts[index]) == null ? void 0 : _shortcuts$index.type) === shared.ShortcutType.Item) {
15171
- var _shortcuts$index2;
15172
- var _payload = (_shortcuts$index2 = shortcuts[index]) == null ? void 0 : _shortcuts$index2.payload;
15173
- if (!_payload) return null;
15174
- return React__default.createElement(SpriteFromAtlas, {
15175
- atlasIMG: atlasIMG,
15176
- atlasJSON: atlasJSON,
15177
- spriteKey: shared.getItemTextureKeyPath({
15178
- key: _payload.texturePath,
15179
- texturePath: _payload.texturePath,
15180
- stackQty: _payload.stackQty || 1,
15181
- isStackable: _payload.isStackable
15182
- }, atlasJSON),
15183
- width: 32,
15184
- height: 32,
15185
- imgScale: 1.6,
15186
- imgStyle: {
15187
- left: '5px'
15188
- }
15189
- });
15069
+ var MarketplaceRows = function MarketplaceRows(_ref) {
15070
+ var atlasJSON = _ref.atlasJSON,
15071
+ atlasIMG = _ref.atlasIMG,
15072
+ item = _ref.item,
15073
+ itemPrice = _ref.itemPrice,
15074
+ equipmentSet = _ref.equipmentSet,
15075
+ scale = _ref.scale,
15076
+ onHandleClick = _ref.onHandleClick;
15077
+ return React__default.createElement(MarketPlaceWrapper, null, React__default.createElement(ItemIconContainer, null, React__default.createElement(SpriteContainer, null, React__default.createElement(ItemInfoWrapper, {
15078
+ item: item,
15079
+ atlasIMG: atlasIMG,
15080
+ atlasJSON: atlasJSON,
15081
+ equipmentSet: equipmentSet,
15082
+ scale: scale
15083
+ }, React__default.createElement(SpriteFromAtlas, {
15084
+ atlasIMG: atlasIMG,
15085
+ atlasJSON: atlasJSON,
15086
+ spriteKey: shared.getItemTextureKeyPath({
15087
+ key: item.key,
15088
+ stackQty: item.stackQty || 1,
15089
+ texturePath: item.texturePath,
15090
+ isStackable: item.isStackable
15091
+ }, atlasJSON),
15092
+ imgScale: 2
15093
+ }))), React__default.createElement(PriceValue, null, React__default.createElement("p", null, React__default.createElement(Ellipsis, {
15094
+ maxLines: 1,
15095
+ maxWidth: "150px",
15096
+ fontSize: "10px"
15097
+ }, item.name)))), React__default.createElement(QuantityContainer, null, React__default.createElement(QuantityDisplay, null, React__default.createElement(TextOverlay$1, null, React__default.createElement(Item$1, null, React__default.createElement(Ellipsis, {
15098
+ maxLines: 1,
15099
+ maxWidth: "150px",
15100
+ fontSize: "10px"
15101
+ }, item.rarity))))), React__default.createElement(ItemIconContainer, null, React__default.createElement(SpriteContainer, null, React__default.createElement(SpriteFromAtlas, {
15102
+ atlasIMG: atlasIMG,
15103
+ atlasJSON: atlasJSON,
15104
+ spriteKey: 'others/gold-coin-qty-4.png',
15105
+ imgScale: 2
15106
+ })), React__default.createElement(PriceValue, null, React__default.createElement("p", null, React__default.createElement(Ellipsis, {
15107
+ maxLines: 1,
15108
+ maxWidth: "150px",
15109
+ fontSize: "10px"
15110
+ }, "$", itemPrice)))), React__default.createElement(ButtonContainer$1, null, React__default.createElement(Button, {
15111
+ buttonType: exports.ButtonTypes.RPGUIButton,
15112
+ onClick: function onClick() {
15113
+ return onHandleClick(item.name);
15190
15114
  }
15191
- var payload = (_shortcuts$index3 = shortcuts[index]) == null ? void 0 : _shortcuts$index3.payload;
15192
- return React__default.createElement("span", null, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
15193
- return word[0];
15194
- }));
15195
- };
15196
- return React__default.createElement(Container$i, null, React__default.createElement("p", null, "Shortcuts:"), React__default.createElement(List, {
15197
- id: "shortcuts_list"
15198
- }, Array.from({
15199
- length: 6
15200
- }).map(function (_, i) {
15201
- return React__default.createElement(Shortcut, {
15202
- key: i,
15203
- onPointerDown: function onPointerDown() {
15204
- if (settingShortcutIndex !== -1) setSettingShortcutIndex(-1);
15205
- removeShortcut(i);
15206
- if (settingShortcutIndex === -1 && (!shortcuts[i] || shortcuts[i].type === shared.ShortcutType.None)) setSettingShortcutIndex(i);
15207
- },
15208
- disabled: settingShortcutIndex !== -1 && settingShortcutIndex !== i,
15209
- isBeingSet: settingShortcutIndex === i,
15210
- id: "shortcutSetter_" + i
15211
- }, getContent(i));
15212
- })));
15115
+ }, "Buy")));
15213
15116
  };
15214
- var Container$i = /*#__PURE__*/styled.div.withConfig({
15215
- displayName: "ShortcutsSetter__Container",
15216
- componentId: "sc-xuouuf-0"
15217
- })(["p{margin:0;margin-left:0.5rem;}"]);
15218
- var Shortcut = /*#__PURE__*/styled.button.withConfig({
15219
- displayName: "ShortcutsSetter__Shortcut",
15220
- componentId: "sc-xuouuf-1"
15221
- })(["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) {
15222
- var isBeingSet = _ref2.isBeingSet;
15223
- return isBeingSet ? uiColors.yellow : uiColors.darkGray;
15224
- }, uiColors.darkGray, uiColors.gray);
15225
- var List = /*#__PURE__*/styled.div.withConfig({
15226
- displayName: "ShortcutsSetter__List",
15227
- componentId: "sc-xuouuf-2"
15228
- })(["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;"]);
15117
+ var MarketPlaceWrapper = /*#__PURE__*/styled.div.withConfig({
15118
+ displayName: "MarketplaceRows__MarketPlaceWrapper",
15119
+ componentId: "sc-wmpr1o-0"
15120
+ })(["margin:auto;display:grid;grid-template-columns:35% 20% 20% 25%;&:hover{background-color:", ";}padding:0.5rem;p{font-size:0.8rem;}"], uiColors.darkGray);
15121
+ var ItemIconContainer = /*#__PURE__*/styled.div.withConfig({
15122
+ displayName: "MarketplaceRows__ItemIconContainer",
15123
+ componentId: "sc-wmpr1o-1"
15124
+ })(["display:flex;justify-content:flex-start;align-items:center;"]);
15125
+ var SpriteContainer = /*#__PURE__*/styled.div.withConfig({
15126
+ displayName: "MarketplaceRows__SpriteContainer",
15127
+ componentId: "sc-wmpr1o-2"
15128
+ })(["position:relative;top:-0.5rem;left:0.5rem;"]);
15129
+ var Item$1 = /*#__PURE__*/styled.span.withConfig({
15130
+ displayName: "MarketplaceRows__Item",
15131
+ componentId: "sc-wmpr1o-3"
15132
+ })(["color:white;text-align:center;z-index:1;width:100%;"]);
15133
+ var TextOverlay$1 = /*#__PURE__*/styled.div.withConfig({
15134
+ displayName: "MarketplaceRows__TextOverlay",
15135
+ componentId: "sc-wmpr1o-4"
15136
+ })(["width:100%;position:relative;"]);
15137
+ var QuantityContainer = /*#__PURE__*/styled.div.withConfig({
15138
+ displayName: "MarketplaceRows__QuantityContainer",
15139
+ componentId: "sc-wmpr1o-5"
15140
+ })(["position:relative;display:flex;min-width:100px;justify-content:center;align-items:center;"]);
15141
+ var QuantityDisplay = /*#__PURE__*/styled.div.withConfig({
15142
+ displayName: "MarketplaceRows__QuantityDisplay",
15143
+ componentId: "sc-wmpr1o-6"
15144
+ })(["font-size:", ";"], uiFonts.size.small);
15145
+ var PriceValue = /*#__PURE__*/styled.div.withConfig({
15146
+ displayName: "MarketplaceRows__PriceValue",
15147
+ componentId: "sc-wmpr1o-7"
15148
+ })(["margin-left:40px;"]);
15149
+ var ButtonContainer$1 = /*#__PURE__*/styled.div.withConfig({
15150
+ displayName: "MarketplaceRows__ButtonContainer",
15151
+ componentId: "sc-wmpr1o-8"
15152
+ })(["margin:auto;"]);
15229
15153
 
15230
- var ItemContainer$1 = function ItemContainer(_ref) {
15231
- var itemContainer = _ref.itemContainer,
15232
- onClose = _ref.onClose,
15233
- _onMouseOver = _ref.onMouseOver,
15234
- _onSelected = _ref.onSelected,
15235
- onItemClick = _ref.onItemClick,
15236
- type = _ref.type,
15237
- atlasJSON = _ref.atlasJSON,
15154
+ var Marketplace = function Marketplace(_ref) {
15155
+ var items = _ref.items,
15238
15156
  atlasIMG = _ref.atlasIMG,
15239
- _ref$disableContextMe = _ref.disableContextMenu,
15240
- disableContextMenu = _ref$disableContextMe === void 0 ? false : _ref$disableContextMe,
15241
- onItemDragEnd = _ref.onItemDragEnd,
15242
- onItemDragStart = _ref.onItemDragStart,
15243
- onItemPlaceDrop = _ref.onItemPlaceDrop,
15244
- _onOutsideDrop = _ref.onOutsideDrop,
15245
- checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
15246
- initialPosition = _ref.initialPosition,
15247
- checkIfItemShouldDragEnd = _ref.checkIfItemShouldDragEnd,
15157
+ atlasJSON = _ref.atlasJSON,
15158
+ onClose = _ref.onClose,
15159
+ optionsType = _ref.optionsType,
15160
+ optionsRarity = _ref.optionsRarity,
15161
+ optionsPrice = _ref.optionsPrice,
15162
+ onChangeType = _ref.onChangeType,
15163
+ onChangeRarity = _ref.onChangeRarity,
15164
+ onChangeOrder = _ref.onChangeOrder,
15165
+ onChangeNameInput = _ref.onChangeNameInput,
15248
15166
  scale = _ref.scale,
15249
- shortcuts = _ref.shortcuts,
15250
- setItemShortcut = _ref.setItemShortcut,
15251
- removeShortcut = _ref.removeShortcut,
15252
15167
  equipmentSet = _ref.equipmentSet,
15253
- isDepotSystem = _ref.isDepotSystem,
15254
- onPositionChangeEnd = _ref.onPositionChangeEnd,
15255
- onPositionChangeStart = _ref.onPositionChangeStart;
15256
- var _useState = React.useState({
15257
- isOpen: false,
15258
- maxQuantity: 1,
15259
- callback: function callback(_quantity) {}
15260
- }),
15261
- quantitySelect = _useState[0],
15262
- setQuantitySelect = _useState[1];
15263
- var _useState2 = React.useState(-1),
15264
- settingShortcutIndex = _useState2[0],
15265
- setSettingShortcutIndex = _useState2[1];
15266
- var handleSetShortcut = function handleSetShortcut(item, index) {
15267
- if (item.type === shared.ItemType.Consumable || item.type === shared.ItemType.Tool) {
15268
- setItemShortcut == null ? void 0 : setItemShortcut(item.key, index);
15269
- }
15270
- };
15271
- var onRenderSlots = function onRenderSlots() {
15272
- var slots = [];
15273
- for (var i = 0; i < itemContainer.slotQty; i++) {
15274
- var _itemContainer$slots;
15275
- slots.push(React__default.createElement(ItemSlot, {
15276
- isContextMenuDisabled: disableContextMenu,
15277
- key: i,
15278
- slotIndex: i,
15279
- item: ((_itemContainer$slots = itemContainer.slots) == null ? void 0 : _itemContainer$slots[i]) || null,
15280
- itemContainerType: type,
15281
- onMouseOver: function onMouseOver(event, slotIndex, item) {
15282
- if (_onMouseOver) _onMouseOver(event, slotIndex, item);
15283
- },
15284
- onPointerDown: function onPointerDown(itemType, containerType, item) {
15285
- if (settingShortcutIndex !== -1) {
15286
- setSettingShortcutIndex(-1);
15287
- handleSetShortcut(item, settingShortcutIndex);
15288
- } else if (onItemClick) onItemClick(item, itemType, containerType);
15289
- },
15290
- onSelected: function onSelected(optionId, item) {
15291
- if (_onSelected) _onSelected(optionId, item);
15292
- },
15293
- onDragStart: function onDragStart(item, slotIndex, itemContainerType) {
15294
- if (onItemDragStart) onItemDragStart(item, slotIndex, itemContainerType);
15295
- },
15296
- onDragEnd: function onDragEnd(quantity) {
15297
- if (onItemDragEnd) onItemDragEnd(quantity);
15298
- },
15299
- dragScale: scale,
15300
- checkIfItemCanBeMoved: checkIfItemCanBeMoved,
15301
- checkIfItemShouldDragEnd: checkIfItemShouldDragEnd,
15302
- openQuantitySelector: function openQuantitySelector(maxQuantity, callback) {
15303
- setQuantitySelect({
15304
- isOpen: true,
15305
- maxQuantity: maxQuantity,
15306
- callback: callback
15307
- });
15308
- },
15309
- onPlaceDrop: function onPlaceDrop(item, slotIndex, itemContainerType) {
15310
- if (onItemPlaceDrop) onItemPlaceDrop(item, slotIndex, itemContainerType);
15311
- },
15312
- onOutsideDrop: function onOutsideDrop(item, position) {
15313
- if (_onOutsideDrop) _onOutsideDrop(item, position);
15314
- },
15315
- atlasIMG: atlasIMG,
15316
- atlasJSON: atlasJSON,
15317
- isSelectingShortcut: settingShortcutIndex !== -1,
15318
- equipmentSet: equipmentSet,
15319
- setItemShortcut: type === shared.ItemContainerType.Inventory ? handleSetShortcut : undefined,
15320
- isDepotSystem: isDepotSystem
15321
- }));
15322
- }
15323
- return slots;
15324
- };
15325
- return React__default.createElement(React__default.Fragment, null, React__default.createElement(SlotsContainer, {
15326
- title: itemContainer.name || 'Container',
15327
- onClose: onClose,
15328
- initialPosition: initialPosition,
15329
- scale: scale,
15330
- onPositionChangeEnd: onPositionChangeEnd,
15331
- onPositionChangeStart: onPositionChangeStart
15332
- }, type === shared.ItemContainerType.Inventory && shortcuts && removeShortcut && React__default.createElement(ShortcutsSetter, {
15333
- setSettingShortcutIndex: setSettingShortcutIndex,
15334
- settingShortcutIndex: settingShortcutIndex,
15335
- shortcuts: shortcuts,
15336
- removeShortcut: removeShortcut,
15337
- atlasIMG: atlasIMG,
15338
- atlasJSON: atlasJSON
15339
- }), React__default.createElement(ItemsContainer, {
15340
- className: "item-container-body"
15341
- }, onRenderSlots())), quantitySelect.isOpen && React__default.createElement(ModalPortal, null, React__default.createElement(QuantitySelectorContainer, null, React__default.createElement(ItemQuantitySelector, {
15342
- quantity: quantitySelect.maxQuantity,
15343
- onConfirm: function onConfirm(quantity) {
15344
- quantitySelect.callback(quantity);
15345
- setQuantitySelect({
15346
- isOpen: false,
15347
- maxQuantity: 1,
15348
- callback: function callback() {}
15349
- });
15168
+ onHandleClick = _ref.onHandleClick;
15169
+ return React__default.createElement(DraggableContainer, {
15170
+ type: exports.RPGUIContainerTypes.Framed,
15171
+ onCloseButton: function onCloseButton() {
15172
+ if (onClose) onClose();
15350
15173
  },
15351
- onClose: function onClose() {
15352
- quantitySelect.callback(-1);
15353
- setQuantitySelect({
15354
- isOpen: false,
15355
- maxQuantity: 1,
15356
- callback: function callback() {}
15357
- });
15358
- }
15174
+ width: "800px",
15175
+ cancelDrag: "#MarketContainer",
15176
+ scale: scale
15177
+ }, React__default.createElement(React__default.Fragment, null, React__default.createElement(InputWrapper, null, React__default.createElement("p", null, " Search By Name"), React__default.createElement(Input, {
15178
+ onChange: onChangeNameInput,
15179
+ placeholder: 'Search...'
15180
+ })), React__default.createElement(WrapperContainer, null, React__default.createElement(StyledDropdown, {
15181
+ options: optionsType,
15182
+ onChange: onChangeType,
15183
+ width: '220px'
15184
+ }), React__default.createElement(StyledDropdown, {
15185
+ options: optionsRarity,
15186
+ onChange: onChangeRarity,
15187
+ width: '220px'
15188
+ }), React__default.createElement(StyledDropdown, {
15189
+ options: optionsPrice,
15190
+ onChange: onChangeOrder,
15191
+ width: '220px'
15192
+ })), React__default.createElement(ItemComponentScrollWrapper, {
15193
+ id: "MarketContainer"
15194
+ }, items == null ? void 0 : items.map(function (item, index) {
15195
+ return React__default.createElement(MarketplaceRows, {
15196
+ key: item.key + "_" + index,
15197
+ atlasIMG: atlasIMG,
15198
+ atlasJSON: atlasJSON,
15199
+ item: item,
15200
+ itemPrice: 10,
15201
+ equipmentSet: equipmentSet,
15202
+ onHandleClick: onHandleClick
15203
+ });
15359
15204
  }))));
15360
15205
  };
15361
- var ItemsContainer = /*#__PURE__*/styled.div.withConfig({
15362
- displayName: "ItemContainer__ItemsContainer",
15363
- componentId: "sc-15y5p9l-0"
15364
- })(["display:flex;justify-content:center;flex-wrap:wrap;"]);
15365
- var QuantitySelectorContainer = /*#__PURE__*/styled.div.withConfig({
15366
- displayName: "ItemContainer__QuantitySelectorContainer",
15367
- componentId: "sc-15y5p9l-1"
15368
- })(["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);"]);
15206
+ var InputWrapper = /*#__PURE__*/styled.div.withConfig({
15207
+ displayName: "Marketplace__InputWrapper",
15208
+ componentId: "sc-h904b1-0"
15209
+ })(["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;}"]);
15210
+ var WrapperContainer = /*#__PURE__*/styled.div.withConfig({
15211
+ displayName: "Marketplace__WrapperContainer",
15212
+ componentId: "sc-h904b1-1"
15213
+ })(["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;}"]);
15214
+ var ItemComponentScrollWrapper = /*#__PURE__*/styled.div.withConfig({
15215
+ displayName: "Marketplace__ItemComponentScrollWrapper",
15216
+ componentId: "sc-h904b1-2"
15217
+ })(["overflow-y:scroll;height:390px;width:100%;margin-top:1rem;"]);
15218
+ var StyledDropdown = /*#__PURE__*/styled(Dropdown).withConfig({
15219
+ displayName: "Marketplace__StyledDropdown",
15220
+ componentId: "sc-h904b1-3"
15221
+ })(["margin:3px !important;width:170px !important;"]);
15369
15222
 
15370
- var ItemSelector = function ItemSelector(_ref) {
15371
- var atlasIMG = _ref.atlasIMG,
15372
- atlasJSON = _ref.atlasJSON,
15373
- options = _ref.options,
15374
- onClose = _ref.onClose,
15375
- onSelect = _ref.onSelect;
15376
- var _useState = React.useState(),
15377
- selectedValue = _useState[0],
15378
- setSelectedValue = _useState[1];
15379
- var handleClick = function handleClick() {
15380
- var element = document.querySelector("input[name='test']:checked");
15381
- var elementValue = element.value;
15382
- setSelectedValue(elementValue);
15223
+ var img$5 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAP1BMVEUAAAA7FyVxQTsUEBPj5v////+5v/tCJDOOUlIiHBr1oJfptaO6dWr61rhzFy1bMTjoanMUNGQoXMQkn97+88DQ3IhAAAAAAXRSTlMAQObYZgAAAAFiS0dEBfhv6ccAAAAHdElNRQfmAw4VOBC7c5LYAAABM0lEQVQ4y3XRi5KDIAwFUAUkbrBgpP//rZsHVHQ009qZ3tPboNN0zmwzvcw8O5sX4y0NOg/Et3jRCXF+ziULorjkOQ9gE24dvuUAzq08DiCO4pe3WN7zCP56vmpubBReQYC11YPS86ySxxCsAABTSgjb5m4g8nfbxvFHBkH2OEEvAItVuCuIsgGgl+Gcr7kDXxhEAx55A2SQEEeQeZwUaIP8Tbo05B0RFPhItAjgj1w6cDnhLluDj+Egkh3pCCP4pKQAw1IPO0W9Nti5gW9RP2dKA3BZd2Dw+baYX+Nt4GM00O4S3kEpF6Alb2Bv4LeC3kkGfAW0/p0RPoJVKr63ghHsKuRh5DIUKOAlGOwrtt9fQekAEfmhZslHUDoglB0zjfkJigN7UnTQQ4GBWomoVhEN/AOPSBh38gy+fwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wMy0xNFQyMTo1NTo1MSswMDowMJcc0eEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDMtMTRUMjE6NTU6NTErMDA6MDDmQWldAAAAAElFTkSuQmCC';
15224
+
15225
+ 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';
15226
+
15227
+ (function (ImgSide) {
15228
+ ImgSide["right"] = "right";
15229
+ ImgSide["left"] = "left";
15230
+ })(exports.ImgSide || (exports.ImgSide = {}));
15231
+ var NPCMultiDialog = function NPCMultiDialog(_ref) {
15232
+ var _textAndTypeArray$sli;
15233
+ var _onClose = _ref.onClose,
15234
+ textAndTypeArray = _ref.textAndTypeArray;
15235
+ var _useState = React.useState(false),
15236
+ showGoNextIndicator = _useState[0],
15237
+ setShowGoNextIndicator = _useState[1];
15238
+ var _useState2 = React.useState(0),
15239
+ slide = _useState2[0],
15240
+ setSlide = _useState2[1];
15241
+ var onHandleSpacePress = function onHandleSpacePress(event) {
15242
+ if (event.code === 'Space') {
15243
+ if (slide < (textAndTypeArray == null ? void 0 : textAndTypeArray.length) - 1) {
15244
+ setSlide(function (prev) {
15245
+ return prev + 1;
15246
+ });
15247
+ } else {
15248
+ // if there's no more text chunks, close the dialog
15249
+ _onClose();
15250
+ }
15251
+ }
15383
15252
  };
15384
15253
  React.useEffect(function () {
15385
- if (selectedValue) {
15386
- onSelect(selectedValue);
15387
- }
15388
- }, [selectedValue]);
15389
- return React__default.createElement(DraggableContainer, {
15390
- type: exports.RPGUIContainerTypes.Framed,
15391
- width: "500px",
15392
- cancelDrag: ".equipment-container-body .arrow-selector",
15393
- onCloseButton: function onCloseButton() {
15394
- if (onClose) {
15395
- onClose();
15254
+ document.addEventListener('keydown', onHandleSpacePress);
15255
+ return function () {
15256
+ return document.removeEventListener('keydown', onHandleSpacePress);
15257
+ };
15258
+ }, [slide]);
15259
+ return React__default.createElement(RPGUIContainer, {
15260
+ type: exports.RPGUIContainerTypes.FramedGold,
15261
+ width: '50%',
15262
+ height: '180px'
15263
+ }, React__default.createElement(React__default.Fragment, null, React__default.createElement(Container$g, null, ((_textAndTypeArray$sli = textAndTypeArray[slide]) == null ? void 0 : _textAndTypeArray$sli.imageSide) === 'right' && React__default.createElement(React__default.Fragment, null, React__default.createElement(TextContainer, {
15264
+ flex: '70%'
15265
+ }, React__default.createElement(NPCDialogText, {
15266
+ onStartStep: function onStartStep() {
15267
+ return setShowGoNextIndicator(false);
15268
+ },
15269
+ onEndStep: function onEndStep() {
15270
+ return setShowGoNextIndicator(true);
15271
+ },
15272
+ text: textAndTypeArray[slide].text || 'No text provided.',
15273
+ onClose: function onClose() {
15274
+ if (_onClose) {
15275
+ _onClose();
15396
15276
  }
15397
15277
  }
15398
- }, React__default.createElement("div", {
15399
- style: {
15400
- width: '100%'
15401
- }
15402
- }, React__default.createElement(Title$3, null, 'Harvesting instruments'), React__default.createElement(Subtitle$1, null, 'Use the tool, you need it'), React__default.createElement("hr", {
15403
- className: "golden"
15404
- })), React__default.createElement(RadioInputScroller$1, null, options == null ? void 0 : options.map(function (option, index) {
15405
- return React__default.createElement(RadioOptionsWrapper$1, {
15406
- key: index
15407
- }, React__default.createElement(SpriteAtlasWrapper$1, null, React__default.createElement(SpriteFromAtlas, {
15408
- atlasIMG: atlasIMG,
15409
- atlasJSON: atlasJSON,
15410
- spriteKey: option.imageKey,
15411
- imgScale: 3
15412
- })), React__default.createElement("div", null, React__default.createElement("input", {
15413
- className: "rpgui-radio",
15414
- type: "radio",
15415
- value: option.name,
15416
- name: "test"
15417
- }), React__default.createElement("label", {
15418
- onPointerDown: handleClick,
15419
- style: {
15420
- display: 'flex',
15421
- alignItems: 'center'
15278
+ })), React__default.createElement(ThumbnailContainer, null, React__default.createElement(NPCThumbnail, {
15279
+ src: textAndTypeArray[slide].imagePath || img$5
15280
+ })), showGoNextIndicator && React__default.createElement(PressSpaceIndicator, {
15281
+ right: '10.5rem',
15282
+ src: img$6
15283
+ })), textAndTypeArray[slide].imageSide === 'left' && React__default.createElement(React__default.Fragment, null, React__default.createElement(ThumbnailContainer, null, React__default.createElement(NPCThumbnail, {
15284
+ src: textAndTypeArray[slide].imagePath || img$5
15285
+ })), React__default.createElement(TextContainer, {
15286
+ flex: '70%'
15287
+ }, React__default.createElement(NPCDialogText, {
15288
+ onStartStep: function onStartStep() {
15289
+ return setShowGoNextIndicator(false);
15290
+ },
15291
+ onEndStep: function onEndStep() {
15292
+ return setShowGoNextIndicator(true);
15293
+ },
15294
+ text: textAndTypeArray[slide].text || 'No text provided.',
15295
+ onClose: function onClose() {
15296
+ if (_onClose) {
15297
+ _onClose();
15422
15298
  }
15423
- }, option.name, " ", React__default.createElement("br", null), option.description)));
15424
- })), React__default.createElement(ButtonWrapper$1, null, React__default.createElement(Button, {
15425
- buttonType: exports.ButtonTypes.RPGUIButton,
15426
- onPointerDown: onClose
15427
- }, "Cancel"), React__default.createElement(Button, {
15428
- buttonType: exports.ButtonTypes.RPGUIButton
15429
- }, "Select")));
15430
- };
15431
- var Title$3 = /*#__PURE__*/styled.h1.withConfig({
15432
- displayName: "ItemSelector__Title",
15433
- componentId: "sc-gptoxp-0"
15434
- })(["font-size:0.6rem;color:yellow !important;"]);
15435
- var Subtitle$1 = /*#__PURE__*/styled.h1.withConfig({
15436
- displayName: "ItemSelector__Subtitle",
15437
- componentId: "sc-gptoxp-1"
15438
- })(["font-size:0.4rem;color:yellow !important;"]);
15439
- var RadioInputScroller$1 = /*#__PURE__*/styled.div.withConfig({
15440
- displayName: "ItemSelector__RadioInputScroller",
15441
- componentId: "sc-gptoxp-2"
15442
- })(["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;"]);
15443
- var SpriteAtlasWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15444
- displayName: "ItemSelector__SpriteAtlasWrapper",
15445
- componentId: "sc-gptoxp-3"
15446
- })(["margin-right:40px;"]);
15447
- var RadioOptionsWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15448
- displayName: "ItemSelector__RadioOptionsWrapper",
15449
- componentId: "sc-gptoxp-4"
15450
- })(["display:flex;align-items:stretch;margin-bottom:40px;"]);
15451
- var ButtonWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15452
- displayName: "ItemSelector__ButtonWrapper",
15453
- componentId: "sc-gptoxp-5"
15454
- })(["display:flex;justify-content:space-around;padding-top:20px;width:100%;"]);
15455
-
15456
- var ListMenu = function ListMenu(_ref) {
15457
- var options = _ref.options,
15458
- onSelected = _ref.onSelected,
15459
- x = _ref.x,
15460
- y = _ref.y;
15461
- return React__default.createElement(Container$j, {
15462
- x: x,
15463
- y: y
15464
- }, React__default.createElement("ul", {
15465
- className: "rpgui-list-imp",
15466
- style: {
15467
- overflow: 'hidden'
15468
15299
  }
15469
- }, options.map(function (params, index) {
15470
- return React__default.createElement(ListElement$1, {
15471
- key: (params == null ? void 0 : params.id) || index,
15472
- onPointerDown: function onPointerDown() {
15473
- onSelected(params == null ? void 0 : params.id);
15474
- }
15475
- }, (params == null ? void 0 : params.text) || 'No text');
15476
- })));
15300
+ })), showGoNextIndicator && React__default.createElement(PressSpaceIndicator, {
15301
+ right: '1rem',
15302
+ src: img$6
15303
+ }))), ")"));
15477
15304
  };
15478
- var Container$j = /*#__PURE__*/styled.div.withConfig({
15479
- displayName: "ListMenu__Container",
15480
- componentId: "sc-i9097t-0"
15481
- })(["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) {
15482
- return props.y || 0;
15483
- }, function (props) {
15484
- return props.x || 0;
15485
- }, uiFonts.size.xsmall);
15486
- var ListElement$1 = /*#__PURE__*/styled.li.withConfig({
15487
- displayName: "ListMenu__ListElement",
15488
- componentId: "sc-i9097t-1"
15489
- })(["margin-right:0.5rem;"]);
15305
+ var Container$g = /*#__PURE__*/styled.div.withConfig({
15306
+ displayName: "NPCMultiDialog__Container",
15307
+ componentId: "sc-rvu5wg-0"
15308
+ })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
15309
+ var TextContainer = /*#__PURE__*/styled.div.withConfig({
15310
+ displayName: "NPCMultiDialog__TextContainer",
15311
+ componentId: "sc-rvu5wg-1"
15312
+ })(["flex:", " 0 0;width:355px;"], function (_ref2) {
15313
+ var flex = _ref2.flex;
15314
+ return flex;
15315
+ });
15316
+ var ThumbnailContainer = /*#__PURE__*/styled.div.withConfig({
15317
+ displayName: "NPCMultiDialog__ThumbnailContainer",
15318
+ componentId: "sc-rvu5wg-2"
15319
+ })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
15320
+ var NPCThumbnail = /*#__PURE__*/styled.img.withConfig({
15321
+ displayName: "NPCMultiDialog__NPCThumbnail",
15322
+ componentId: "sc-rvu5wg-3"
15323
+ })(["image-rendering:pixelated;height:128px;width:128px;"]);
15324
+ var PressSpaceIndicator = /*#__PURE__*/styled.img.withConfig({
15325
+ displayName: "NPCMultiDialog__PressSpaceIndicator",
15326
+ componentId: "sc-rvu5wg-4"
15327
+ })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref3) {
15328
+ var right = _ref3.right;
15329
+ return right;
15330
+ });
15490
15331
 
15491
- var MarketplaceRows = function MarketplaceRows(_ref) {
15492
- var atlasJSON = _ref.atlasJSON,
15493
- atlasIMG = _ref.atlasIMG,
15494
- item = _ref.item,
15495
- itemPrice = _ref.itemPrice,
15496
- equipmentSet = _ref.equipmentSet,
15497
- scale = _ref.scale,
15498
- onHandleClick = _ref.onHandleClick;
15499
- return React__default.createElement(MarketPlaceWrapper, null, React__default.createElement(ItemIconContainer, null, React__default.createElement(SpriteContainer, null, React__default.createElement(ItemInfoWrapper, {
15500
- item: item,
15501
- atlasIMG: atlasIMG,
15502
- atlasJSON: atlasJSON,
15503
- equipmentSet: equipmentSet,
15504
- scale: scale
15505
- }, React__default.createElement(SpriteFromAtlas, {
15506
- atlasIMG: atlasIMG,
15507
- atlasJSON: atlasJSON,
15508
- spriteKey: shared.getItemTextureKeyPath({
15509
- key: item.key,
15510
- stackQty: item.stackQty || 1,
15511
- texturePath: item.texturePath,
15512
- isStackable: item.isStackable
15513
- }, atlasJSON),
15514
- imgScale: 2
15515
- }))), React__default.createElement(PriceValue, null, React__default.createElement("p", null, React__default.createElement(Ellipsis, {
15516
- maxLines: 1,
15517
- maxWidth: "150px",
15518
- fontSize: "10px"
15519
- }, item.name)))), React__default.createElement(QuantityContainer, null, React__default.createElement(QuantityDisplay, null, React__default.createElement(TextOverlay$1, null, React__default.createElement(Item$1, null, React__default.createElement(Ellipsis, {
15520
- maxLines: 1,
15521
- maxWidth: "150px",
15522
- fontSize: "10px"
15523
- }, item.rarity))))), React__default.createElement(ItemIconContainer, null, React__default.createElement(SpriteContainer, null, React__default.createElement(SpriteFromAtlas, {
15524
- atlasIMG: atlasIMG,
15525
- atlasJSON: atlasJSON,
15526
- spriteKey: 'others/gold-coin-qty-4.png',
15527
- imgScale: 2
15528
- })), React__default.createElement(PriceValue, null, React__default.createElement("p", null, React__default.createElement(Ellipsis, {
15529
- maxLines: 1,
15530
- maxWidth: "150px",
15531
- fontSize: "10px"
15532
- }, "$", itemPrice)))), React__default.createElement(ButtonContainer$1, null, React__default.createElement(Button, {
15533
- buttonType: exports.ButtonTypes.RPGUIButton,
15534
- onClick: function onClick() {
15535
- return onHandleClick(item.name);
15536
- }
15537
- }, "Buy")));
15332
+ //@ts-ignore
15333
+ var useEventListener = function useEventListener(type, handler, el) {
15334
+ if (el === void 0) {
15335
+ el = window;
15336
+ }
15337
+ var savedHandler = React__default.useRef();
15338
+ React__default.useEffect(function () {
15339
+ savedHandler.current = handler;
15340
+ }, [handler]);
15341
+ React__default.useEffect(function () {
15342
+ //@ts-ignore
15343
+ var listener = function listener(e) {
15344
+ return savedHandler.current(e);
15345
+ };
15346
+ el.addEventListener(type, listener);
15347
+ return function () {
15348
+ el.removeEventListener(type, listener);
15349
+ };
15350
+ }, [type, el]);
15538
15351
  };
15539
- var MarketPlaceWrapper = /*#__PURE__*/styled.div.withConfig({
15540
- displayName: "MarketplaceRows__MarketPlaceWrapper",
15541
- componentId: "sc-wmpr1o-0"
15542
- })(["margin:auto;display:grid;grid-template-columns:35% 20% 20% 25%;&:hover{background-color:", ";}padding:0.5rem;p{font-size:0.8rem;}"], uiColors.darkGray);
15543
- var ItemIconContainer = /*#__PURE__*/styled.div.withConfig({
15544
- displayName: "MarketplaceRows__ItemIconContainer",
15545
- componentId: "sc-wmpr1o-1"
15546
- })(["display:flex;justify-content:flex-start;align-items:center;"]);
15547
- var SpriteContainer = /*#__PURE__*/styled.div.withConfig({
15548
- displayName: "MarketplaceRows__SpriteContainer",
15549
- componentId: "sc-wmpr1o-2"
15550
- })(["position:relative;top:-0.5rem;left:0.5rem;"]);
15551
- var Item$1 = /*#__PURE__*/styled.span.withConfig({
15552
- displayName: "MarketplaceRows__Item",
15553
- componentId: "sc-wmpr1o-3"
15554
- })(["color:white;text-align:center;z-index:1;width:100%;"]);
15555
- var TextOverlay$1 = /*#__PURE__*/styled.div.withConfig({
15556
- displayName: "MarketplaceRows__TextOverlay",
15557
- componentId: "sc-wmpr1o-4"
15558
- })(["width:100%;position:relative;"]);
15559
- var QuantityContainer = /*#__PURE__*/styled.div.withConfig({
15560
- displayName: "MarketplaceRows__QuantityContainer",
15561
- componentId: "sc-wmpr1o-5"
15562
- })(["position:relative;display:flex;min-width:100px;justify-content:center;align-items:center;"]);
15563
- var QuantityDisplay = /*#__PURE__*/styled.div.withConfig({
15564
- displayName: "MarketplaceRows__QuantityDisplay",
15565
- componentId: "sc-wmpr1o-6"
15566
- })(["font-size:", ";"], uiFonts.size.small);
15567
- var PriceValue = /*#__PURE__*/styled.div.withConfig({
15568
- displayName: "MarketplaceRows__PriceValue",
15569
- componentId: "sc-wmpr1o-7"
15570
- })(["margin-left:40px;"]);
15571
- var ButtonContainer$1 = /*#__PURE__*/styled.div.withConfig({
15572
- displayName: "MarketplaceRows__ButtonContainer",
15573
- componentId: "sc-wmpr1o-8"
15574
- })(["margin:auto;"]);
15575
15352
 
15576
- var Marketplace = function Marketplace(_ref) {
15577
- var items = _ref.items,
15578
- atlasIMG = _ref.atlasIMG,
15579
- atlasJSON = _ref.atlasJSON,
15580
- onClose = _ref.onClose,
15581
- optionsType = _ref.optionsType,
15582
- optionsRarity = _ref.optionsRarity,
15583
- optionsPrice = _ref.optionsPrice,
15584
- onChangeType = _ref.onChangeType,
15585
- onChangeRarity = _ref.onChangeRarity,
15586
- onChangeOrder = _ref.onChangeOrder,
15587
- onChangeNameInput = _ref.onChangeNameInput,
15588
- scale = _ref.scale,
15589
- equipmentSet = _ref.equipmentSet,
15590
- onHandleClick = _ref.onHandleClick;
15591
- return React__default.createElement(DraggableContainer, {
15592
- type: exports.RPGUIContainerTypes.Framed,
15593
- onCloseButton: function onCloseButton() {
15594
- if (onClose) onClose();
15595
- },
15596
- width: "800px",
15597
- cancelDrag: "#MarketContainer",
15598
- scale: scale
15599
- }, React__default.createElement(React__default.Fragment, null, React__default.createElement(InputWrapper, null, React__default.createElement("p", null, " Search By Name"), React__default.createElement(Input, {
15600
- onChange: onChangeNameInput,
15601
- placeholder: 'Search...'
15602
- })), React__default.createElement(WrapperContainer, null, React__default.createElement(StyledDropdown, {
15603
- options: optionsType,
15604
- onChange: onChangeType,
15605
- width: '220px'
15606
- }), React__default.createElement(StyledDropdown, {
15607
- options: optionsRarity,
15608
- onChange: onChangeRarity,
15609
- width: '220px'
15610
- }), React__default.createElement(StyledDropdown, {
15611
- options: optionsPrice,
15612
- onChange: onChangeOrder,
15613
- width: '220px'
15614
- })), React__default.createElement(ItemComponentScrollWrapper, {
15615
- id: "MarketContainer"
15616
- }, items == null ? void 0 : items.map(function (item, index) {
15617
- return React__default.createElement(MarketplaceRows, {
15618
- key: item.key + "_" + index,
15619
- atlasIMG: atlasIMG,
15620
- atlasJSON: atlasJSON,
15621
- item: item,
15622
- itemPrice: 10,
15623
- equipmentSet: equipmentSet,
15624
- onHandleClick: onHandleClick
15625
- });
15626
- }))));
15353
+ var DynamicText = function DynamicText(_ref) {
15354
+ var text = _ref.text,
15355
+ onFinish = _ref.onFinish,
15356
+ onStart = _ref.onStart;
15357
+ var _useState = React.useState(''),
15358
+ textState = _useState[0],
15359
+ setTextState = _useState[1];
15360
+ React.useEffect(function () {
15361
+ var i = 0;
15362
+ var interval = setInterval(function () {
15363
+ // on every interval, show one more character
15364
+ if (i === 0) {
15365
+ if (onStart) {
15366
+ onStart();
15367
+ }
15368
+ }
15369
+ if (i < text.length) {
15370
+ setTextState(text.substring(0, i + 1));
15371
+ i++;
15372
+ } else {
15373
+ clearInterval(interval);
15374
+ if (onFinish) {
15375
+ onFinish();
15376
+ }
15377
+ }
15378
+ }, 50);
15379
+ return function () {
15380
+ clearInterval(interval);
15381
+ };
15382
+ }, [text]);
15383
+ return React__default.createElement(TextContainer$1, null, textState);
15627
15384
  };
15628
- var InputWrapper = /*#__PURE__*/styled.div.withConfig({
15629
- displayName: "Marketplace__InputWrapper",
15630
- componentId: "sc-h904b1-0"
15631
- })(["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;}"]);
15632
- var WrapperContainer = /*#__PURE__*/styled.div.withConfig({
15633
- displayName: "Marketplace__WrapperContainer",
15634
- componentId: "sc-h904b1-1"
15635
- })(["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;}"]);
15636
- var ItemComponentScrollWrapper = /*#__PURE__*/styled.div.withConfig({
15637
- displayName: "Marketplace__ItemComponentScrollWrapper",
15638
- componentId: "sc-h904b1-2"
15639
- })(["overflow-y:scroll;height:390px;width:100%;margin-top:1rem;"]);
15640
- var StyledDropdown = /*#__PURE__*/styled(Dropdown).withConfig({
15641
- displayName: "Marketplace__StyledDropdown",
15642
- componentId: "sc-h904b1-3"
15643
- })(["margin:3px !important;width:170px !important;"]);
15385
+ var TextContainer$1 = /*#__PURE__*/styled.p.withConfig({
15386
+ displayName: "DynamicText__TextContainer",
15387
+ componentId: "sc-1ggl9nd-0"
15388
+ })(["font-size:0.7rem !important;color:white;text-shadow:1px 1px 0px #000000;letter-spacing:1.2px;word-break:normal;"]);
15389
+
15390
+ var QuestionDialog = function QuestionDialog(_ref) {
15391
+ var questions = _ref.questions,
15392
+ answers = _ref.answers,
15393
+ onClose = _ref.onClose;
15394
+ var _useState = React.useState(questions[0]),
15395
+ currentQuestion = _useState[0],
15396
+ setCurrentQuestion = _useState[1];
15397
+ var _useState2 = React.useState(false),
15398
+ canShowAnswers = _useState2[0],
15399
+ setCanShowAnswers = _useState2[1];
15400
+ var onGetFirstAnswer = function onGetFirstAnswer() {
15401
+ if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {
15402
+ return null;
15403
+ }
15404
+ var firstAnswerId = currentQuestion.answerIds[0];
15405
+ return answers.find(function (answer) {
15406
+ return answer.id === firstAnswerId;
15407
+ });
15408
+ };
15409
+ var _useState3 = React.useState(onGetFirstAnswer()),
15410
+ currentAnswer = _useState3[0],
15411
+ setCurrentAnswer = _useState3[1];
15412
+ React.useEffect(function () {
15413
+ setCurrentAnswer(onGetFirstAnswer());
15414
+ }, [currentQuestion]);
15415
+ var onGetAnswers = function onGetAnswers(answerIds) {
15416
+ return answerIds.map(function (answerId) {
15417
+ return answers.find(function (answer) {
15418
+ return answer.id === answerId;
15419
+ });
15420
+ });
15421
+ };
15422
+ var onKeyPress = function onKeyPress(e) {
15423
+ switch (e.key) {
15424
+ case 'ArrowDown':
15425
+ // select next answer, if any.
15426
+ // if no next answer, select first answer
15427
+ // const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(
15428
+ // (answer) => answer?.id === currentAnswer!.id + 1
15429
+ // );
15430
+ var nextAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
15431
+ return (answer == null ? void 0 : answer.id) === currentAnswer.id + 1;
15432
+ });
15433
+ var nextAnswerID = currentQuestion.answerIds[nextAnswerIndex];
15434
+ var nextAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
15435
+ return (answer == null ? void 0 : answer.id) === nextAnswerID;
15436
+ });
15437
+ setCurrentAnswer(nextAnswer || onGetFirstAnswer());
15438
+ break;
15439
+ case 'ArrowUp':
15440
+ // select previous answer, if any.
15441
+ // if no previous answer, select last answer
15442
+ var previousAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
15443
+ return (answer == null ? void 0 : answer.id) === currentAnswer.id - 1;
15444
+ });
15445
+ var previousAnswerID = currentQuestion.answerIds && currentQuestion.answerIds[previousAnswerIndex];
15446
+ var previousAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
15447
+ return (answer == null ? void 0 : answer.id) === previousAnswerID;
15448
+ });
15449
+ if (previousAnswer) {
15450
+ setCurrentAnswer(previousAnswer);
15451
+ } else {
15452
+ setCurrentAnswer(onGetAnswers(currentQuestion.answerIds).pop());
15453
+ }
15454
+ break;
15455
+ case 'Enter':
15456
+ setCanShowAnswers(false);
15457
+ if (!(currentAnswer != null && currentAnswer.nextQuestionId)) {
15458
+ onClose();
15459
+ return;
15460
+ } else {
15461
+ setCurrentQuestion(questions.find(function (question) {
15462
+ return question.id === currentAnswer.nextQuestionId;
15463
+ }));
15464
+ }
15465
+ break;
15466
+ }
15467
+ };
15468
+ useEventListener('keydown', onKeyPress);
15469
+ var onAnswerClick = function onAnswerClick(answer) {
15470
+ setCanShowAnswers(false);
15471
+ if (answer.nextQuestionId) {
15472
+ // if there is a next question, go to it
15473
+ setCurrentQuestion(questions.find(function (question) {
15474
+ return question.id === answer.nextQuestionId;
15475
+ }));
15476
+ } else {
15477
+ // else, finish dialog!
15478
+ onClose();
15479
+ }
15480
+ };
15481
+ var onRenderCurrentAnswers = function onRenderCurrentAnswers() {
15482
+ var answerIds = currentQuestion.answerIds;
15483
+ if (!answerIds) {
15484
+ return null;
15485
+ }
15486
+ var answers = onGetAnswers(answerIds);
15487
+ if (!answers) {
15488
+ return null;
15489
+ }
15490
+ return answers.map(function (answer) {
15491
+ var isSelected = (currentAnswer == null ? void 0 : currentAnswer.id) === (answer == null ? void 0 : answer.id);
15492
+ var selectedColor = isSelected ? 'yellow' : 'white';
15493
+ if (answer) {
15494
+ return React__default.createElement(AnswerRow, {
15495
+ key: "answer_" + answer.id
15496
+ }, React__default.createElement(AnswerSelectedIcon, {
15497
+ color: selectedColor
15498
+ }, isSelected ? 'X' : null), React__default.createElement(Answer, {
15499
+ key: answer.id,
15500
+ onPointerDown: function onPointerDown() {
15501
+ return onAnswerClick(answer);
15502
+ },
15503
+ color: selectedColor
15504
+ }, answer.text));
15505
+ }
15506
+ return null;
15507
+ });
15508
+ };
15509
+ return React__default.createElement(Container$h, null, React__default.createElement(QuestionContainer, null, React__default.createElement(DynamicText, {
15510
+ text: currentQuestion.text,
15511
+ onStart: function onStart() {
15512
+ return setCanShowAnswers(false);
15513
+ },
15514
+ onFinish: function onFinish() {
15515
+ return setCanShowAnswers(true);
15516
+ }
15517
+ })), canShowAnswers && React__default.createElement(AnswersContainer, null, onRenderCurrentAnswers()));
15518
+ };
15519
+ var Container$h = /*#__PURE__*/styled.div.withConfig({
15520
+ displayName: "QuestionDialog__Container",
15521
+ componentId: "sc-bxc5u0-0"
15522
+ })(["display:flex;word-break:break-all;box-sizing:border-box;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;"]);
15523
+ var QuestionContainer = /*#__PURE__*/styled.div.withConfig({
15524
+ displayName: "QuestionDialog__QuestionContainer",
15525
+ componentId: "sc-bxc5u0-1"
15526
+ })(["flex:100%;width:100%;"]);
15527
+ var AnswersContainer = /*#__PURE__*/styled.div.withConfig({
15528
+ displayName: "QuestionDialog__AnswersContainer",
15529
+ componentId: "sc-bxc5u0-2"
15530
+ })(["flex:100%;"]);
15531
+ var Answer = /*#__PURE__*/styled.p.withConfig({
15532
+ displayName: "QuestionDialog__Answer",
15533
+ componentId: "sc-bxc5u0-3"
15534
+ })(["flex:auto;color:", " !important;font-size:0.65rem !important;background:inherit;border:none;"], function (props) {
15535
+ return props.color;
15536
+ });
15537
+ var AnswerSelectedIcon = /*#__PURE__*/styled.span.withConfig({
15538
+ displayName: "QuestionDialog__AnswerSelectedIcon",
15539
+ componentId: "sc-bxc5u0-4"
15540
+ })(["flex:5% 0 0;color:", " !important;"], function (props) {
15541
+ return props.color;
15542
+ });
15543
+ var AnswerRow = /*#__PURE__*/styled.div.withConfig({
15544
+ displayName: "QuestionDialog__AnswerRow",
15545
+ componentId: "sc-bxc5u0-5"
15546
+ })(["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;}"]);
15644
15547
 
15645
15548
  var ProgressBar = function ProgressBar(_ref) {
15646
15549
  var max = _ref.max,
@@ -15659,7 +15562,7 @@ var ProgressBar = function ProgressBar(_ref) {
15659
15562
  }
15660
15563
  return value * 100 / max;
15661
15564
  };
15662
- return React__default.createElement(Container$k, {
15565
+ return React__default.createElement(Container$i, {
15663
15566
  className: "rpgui-progress",
15664
15567
  "data-value": calculatePercentageValue(max, value) / 100,
15665
15568
  "data-rpguitype": "progress",
@@ -15688,7 +15591,7 @@ var TextOverlay$2 = /*#__PURE__*/styled.div.withConfig({
15688
15591
  displayName: "ProgressBar__TextOverlay",
15689
15592
  componentId: "sc-qa6fzh-1"
15690
15593
  })(["width:100%;position:relative;"]);
15691
- var Container$k = /*#__PURE__*/styled.div.withConfig({
15594
+ var Container$i = /*#__PURE__*/styled.div.withConfig({
15692
15595
  displayName: "ProgressBar__Container",
15693
15596
  componentId: "sc-qa6fzh-2"
15694
15597
  })(["display:flex;flex-direction:column;min-width:", "px;width:", "%;justify-content:start;align-items:flex-start;", ""], function (props) {
@@ -15699,7 +15602,7 @@ var Container$k = /*#__PURE__*/styled.div.withConfig({
15699
15602
  return props.style;
15700
15603
  });
15701
15604
 
15702
- var img$8 = 'data:image/png;base64,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';
15605
+ var img$7 = 'data:image/png;base64,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';
15703
15606
 
15704
15607
  var QuestInfo = function QuestInfo(_ref) {
15705
15608
  var quests = _ref.quests,
@@ -15743,7 +15646,7 @@ var QuestInfo = function QuestInfo(_ref) {
15743
15646
  }), React__default.createElement(QuestContainer, null, React__default.createElement(TitleContainer$1, {
15744
15647
  className: "drag-handler"
15745
15648
  }, React__default.createElement(Title$4, null, React__default.createElement(Thumbnail, {
15746
- src: quests[currentIndex].thumbnail || img$8
15649
+ src: quests[currentIndex].thumbnail || img$7
15747
15650
  }), quests[currentIndex].title), React__default.createElement(QuestSplitDiv, null, React__default.createElement("hr", {
15748
15651
  className: "golden"
15749
15652
  }))), React__default.createElement(Content, null, React__default.createElement("p", null, quests[currentIndex].description)), React__default.createElement(QuestColumn, {
@@ -15762,7 +15665,7 @@ var QuestInfo = function QuestInfo(_ref) {
15762
15665
  })))) : React__default.createElement(QuestsContainer, null, React__default.createElement(QuestContainer, null, React__default.createElement(TitleContainer$1, {
15763
15666
  className: "drag-handler"
15764
15667
  }, React__default.createElement(Title$4, null, React__default.createElement(Thumbnail, {
15765
- src: quests[0].thumbnail || img$8
15668
+ src: quests[0].thumbnail || img$7
15766
15669
  }), quests[0].title), React__default.createElement(QuestSplitDiv, null, React__default.createElement("hr", {
15767
15670
  className: "golden"
15768
15671
  }))), React__default.createElement(Content, null, React__default.createElement("p", null, quests[0].description)), React__default.createElement(QuestColumn, {
@@ -15866,7 +15769,7 @@ var NoQuestContainer = /*#__PURE__*/styled.div.withConfig({
15866
15769
  componentId: "sc-1a2vx6q-3"
15867
15770
  })(["text-align:center;p{margin-top:5px;}"]);
15868
15771
 
15869
- var InputRadio = function InputRadio(_ref) {
15772
+ var InputRadio$1 = function InputRadio(_ref) {
15870
15773
  var name = _ref.name,
15871
15774
  items = _ref.items,
15872
15775
  onChange = _ref.onChange;
@@ -15953,9 +15856,7 @@ var Shortcuts = function Shortcuts(_ref) {
15953
15856
  }
15954
15857
  });
15955
15858
  }
15956
- var totalQty = itemsFromEquipment.reduce(function (acc, item) {
15957
- return acc + ((item == null ? void 0 : item.stackQty) || 1);
15958
- }, 0);
15859
+ var totalQty = _payload && inventory ? countItemFromInventory(_payload.key, inventory) : 0;
15959
15860
  return React__default.createElement(StyledShortcut$1, {
15960
15861
  key: i,
15961
15862
  onPointerDown: onShortcutCast.bind(null, i),
@@ -16014,7 +15915,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
16014
15915
  bgColor = _ref$bgColor === void 0 ? 'red' : _ref$bgColor,
16015
15916
  _ref$margin = _ref.margin,
16016
15917
  margin = _ref$margin === void 0 ? 20 : _ref$margin;
16017
- return React__default.createElement(Container$l, {
15918
+ return React__default.createElement(Container$j, {
16018
15919
  className: "simple-progress-bar"
16019
15920
  }, React__default.createElement(ProgressBarContainer, {
16020
15921
  margin: margin
@@ -16023,7 +15924,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
16023
15924
  bgColor: bgColor
16024
15925
  }))));
16025
15926
  };
16026
- var Container$l = /*#__PURE__*/styled.div.withConfig({
15927
+ var Container$j = /*#__PURE__*/styled.div.withConfig({
16027
15928
  displayName: "SimpleProgressBar__Container",
16028
15929
  componentId: "sc-mbeil3-0"
16029
15930
  })(["display:flex;justify-content:center;align-items:center;width:100%;"]);
@@ -16250,13 +16151,13 @@ var Spell = function Spell(_ref) {
16250
16151
  manaCost = _ref.manaCost,
16251
16152
  charMana = _ref.charMana,
16252
16153
  charMagicLevel = _ref.charMagicLevel,
16253
- onPointerDown = _ref.onPointerDown,
16154
+ onPointerUp = _ref.onPointerUp,
16254
16155
  isSettingShortcut = _ref.isSettingShortcut,
16255
16156
  minMagicLevelRequired = _ref.minMagicLevelRequired;
16256
16157
  var disabled = isSettingShortcut ? charMagicLevel < minMagicLevelRequired : manaCost > charMana || charMagicLevel < minMagicLevelRequired;
16257
- return React__default.createElement(Container$m, {
16158
+ return React__default.createElement(Container$k, {
16258
16159
  disabled: disabled,
16259
- onPointerDown: onPointerDown == null ? void 0 : onPointerDown.bind(null, spellKey),
16160
+ onPointerUp: onPointerUp == null ? void 0 : onPointerUp.bind(null, spellKey),
16260
16161
  isSettingShortcut: isSettingShortcut && !disabled,
16261
16162
  className: "spell"
16262
16163
  }, disabled && React__default.createElement(Overlay, null, charMagicLevel < minMagicLevelRequired ? 'Low magic level' : manaCost > charMana && 'No mana'), React__default.createElement(SpellImage, null, magicWords.split(' ').map(function (word) {
@@ -16267,7 +16168,7 @@ var Spell = function Spell(_ref) {
16267
16168
  className: "mana"
16268
16169
  }, manaCost)));
16269
16170
  };
16270
- var Container$m = /*#__PURE__*/styled.button.withConfig({
16171
+ var Container$k = /*#__PURE__*/styled.button.withConfig({
16271
16172
  displayName: "Spell__Container",
16272
16173
  componentId: "sc-j96fa2-0"
16273
16174
  })(["display:block;background:none;border:2px solid transparent;border-radius:1rem;width:100%;display:flex;height:5rem;gap:1rem;align-items:center;padding:0 1rem;text-align:left;position:relative;animation:", ";@keyframes border-color-change{0%{border-color:", ";}50%{border-color:transparent;}100%{border-color:", ";}}&:hover,&:focus{background-color:", ";}&:active{background:none;}"], function (_ref2) {
@@ -16354,7 +16255,7 @@ var Spellbook = function Spellbook(_ref) {
16354
16255
  height: "inherit",
16355
16256
  cancelDrag: "#spellbook-search, #shortcuts_list, .spell",
16356
16257
  scale: scale
16357
- }, React__default.createElement(Container$n, null, React__default.createElement(Title$7, null, "Learned Spells"), React__default.createElement(ShortcutsSetter, {
16258
+ }, React__default.createElement(Container$l, null, React__default.createElement(Title$7, null, "Learned Spells"), React__default.createElement(ShortcutsSetter, {
16358
16259
  setSettingShortcutIndex: setSettingShortcutIndex,
16359
16260
  settingShortcutIndex: settingShortcutIndex,
16360
16261
  shortcuts: shortcuts,
@@ -16376,7 +16277,7 @@ var Spellbook = function Spellbook(_ref) {
16376
16277
  }, React__default.createElement(Spell, Object.assign({
16377
16278
  charMana: mana,
16378
16279
  charMagicLevel: magicLevel,
16379
- onPointerDown: settingShortcutIndex !== -1 ? setShortcut : onSpellClick,
16280
+ onPointerUp: settingShortcutIndex !== -1 ? setShortcut : onSpellClick,
16380
16281
  spellKey: spell.key,
16381
16282
  isSettingShortcut: settingShortcutIndex !== -1
16382
16283
  }, spell)));
@@ -16386,7 +16287,7 @@ var Title$7 = /*#__PURE__*/styled.h1.withConfig({
16386
16287
  displayName: "Spellbook__Title",
16387
16288
  componentId: "sc-r02nfq-0"
16388
16289
  })(["font-size:", " !important;margin-bottom:0 !important;"], uiFonts.size.large);
16389
- var Container$n = /*#__PURE__*/styled.div.withConfig({
16290
+ var Container$l = /*#__PURE__*/styled.div.withConfig({
16390
16291
  displayName: "Spellbook__Container",
16391
16292
  componentId: "sc-r02nfq-1"
16392
16293
  })(["width:100%;height:100%;color:white;display:flex;flex-direction:column;"]);
@@ -16400,16 +16301,16 @@ var TextArea = function TextArea(_ref) {
16400
16301
  return React__default.createElement("textarea", Object.assign({}, props));
16401
16302
  };
16402
16303
 
16403
- var img$9 = 'data:image/gif;base64,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';
16304
+ var img$8 = 'data:image/gif;base64,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';
16404
16305
 
16405
- var img$a = 'data:image/gif;base64,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';
16306
+ var img$9 = 'data:image/gif;base64,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';
16406
16307
 
16407
- var img$b = 'data:image/gif;base64,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';
16308
+ var img$a = 'data:image/gif;base64,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';
16408
16309
 
16409
16310
  var DayNightPeriod = function DayNightPeriod(_ref) {
16410
16311
  var _periodOfDaySrcFiles;
16411
16312
  var periodOfDay = _ref.periodOfDay;
16412
- var periodOfDaySrcFiles = (_periodOfDaySrcFiles = {}, _periodOfDaySrcFiles[shared.PeriodOfDay.Morning] = img$a, _periodOfDaySrcFiles[shared.PeriodOfDay.Afternoon] = img$9, _periodOfDaySrcFiles[shared.PeriodOfDay.Night] = img$b, _periodOfDaySrcFiles);
16313
+ var periodOfDaySrcFiles = (_periodOfDaySrcFiles = {}, _periodOfDaySrcFiles[shared.PeriodOfDay.Morning] = img$9, _periodOfDaySrcFiles[shared.PeriodOfDay.Afternoon] = img$8, _periodOfDaySrcFiles[shared.PeriodOfDay.Night] = img$a, _periodOfDaySrcFiles);
16413
16314
  return React__default.createElement(GifContainer, null, React__default.createElement("img", {
16414
16315
  src: periodOfDaySrcFiles[periodOfDay]
16415
16316
  }));
@@ -16419,7 +16320,7 @@ var GifContainer = /*#__PURE__*/styled.div.withConfig({
16419
16320
  componentId: "sc-10t97fw-0"
16420
16321
  })(["width:100%;img{width:67%;}"]);
16421
16322
 
16422
- 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';
16323
+ 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';
16423
16324
 
16424
16325
  var TimeWidget = function TimeWidget(_ref) {
16425
16326
  var onClose = _ref.onClose,
@@ -16437,7 +16338,7 @@ var TimeWidget = function TimeWidget(_ref) {
16437
16338
  var WidgetContainer = /*#__PURE__*/styled.div.withConfig({
16438
16339
  displayName: "TimeWidget__WidgetContainer",
16439
16340
  componentId: "sc-1ja236h-0"
16440
- })(["background-image:url(", ");background-size:10rem;background-repeat:no-repeat;width:10rem;position:absolute;height:100px;"], img$c);
16341
+ })(["background-image:url(", ");background-size:10rem;background-repeat:no-repeat;width:10rem;position:absolute;height:100px;"], img$b);
16441
16342
  var Time = /*#__PURE__*/styled.div.withConfig({
16442
16343
  displayName: "TimeWidget__Time",
16443
16344
  componentId: "sc-1ja236h-1"
@@ -16687,17 +16588,230 @@ var Truncate = function Truncate(_ref) {
16687
16588
  var _ref$maxLines = _ref.maxLines,
16688
16589
  maxLines = _ref$maxLines === void 0 ? 1 : _ref$maxLines,
16689
16590
  children = _ref.children;
16690
- return React__default.createElement(Container$o, {
16591
+ return React__default.createElement(Container$m, {
16691
16592
  maxLines: maxLines
16692
16593
  }, children);
16693
16594
  };
16694
- var Container$o = /*#__PURE__*/styled.div.withConfig({
16595
+ var Container$m = /*#__PURE__*/styled.div.withConfig({
16695
16596
  displayName: "Truncate__Container",
16696
16597
  componentId: "sc-6x00qb-0"
16697
16598
  })(["display:-webkit-box;max-width:100%;max-height:100%;-webkit-line-clamp:", ";-webkit-box-orient:vertical;overflow:hidden;"], function (props) {
16698
16599
  return props.maxLines;
16699
16600
  });
16700
16601
 
16602
+ var IS_MOBILE_OR_TABLET = /*#__PURE__*/shared.isMobileOrTablet();
16603
+
16604
+ var chunkString = function chunkString(str, length) {
16605
+ return str.match(new RegExp('.{1,' + length + '}', 'g'));
16606
+ };
16607
+
16608
+ var img$c = 'data:image/gif;base64,R0lGODlhEAAQAPIAAAAAABQYLiw1TUBJc2hvmQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAM9CLrc/lCFGSKYJJP5AhlguDnBMIVgxXgmJapSSp3mKs/pKrT0IMCXUk+2Cgh2oSOnaDz+lswZpSOFUq2KBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAIzhI+py90Bg4OjDrjCELxfFQhQx0mIJkaeaYRp5LJADMdnqXbyOJLYTdKBejjZoRaZJBMFACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAABAAEAAAAjKEj6nL7Y+CDE6OO+QKQ/ifKYEgfR4VddPohQe7lmR0xidNTib65uacYP2AQWGuMlEUAAA7';
16609
+
16610
+ var NPCDialogText = function NPCDialogText(_ref) {
16611
+ var text = _ref.text,
16612
+ onClose = _ref.onClose,
16613
+ onEndStep = _ref.onEndStep,
16614
+ onStartStep = _ref.onStartStep,
16615
+ type = _ref.type;
16616
+ var windowSize = React.useRef([window.innerWidth, window.innerHeight]);
16617
+ function maxCharacters(width) {
16618
+ // Set the font size to 16 pixels
16619
+ var fontSize = 11.2;
16620
+ // Calculate the number of characters that can fit in one line
16621
+ var charactersPerLine = Math.floor(width / 2 / fontSize);
16622
+ // Calculate the number of lines that can fit in the div
16623
+ var linesPerDiv = Math.floor(180 / fontSize);
16624
+ // Calculate the maximum number of characters that can fit in the div
16625
+ var maxCharacters = charactersPerLine * linesPerDiv;
16626
+ // Return the maximum number of characters
16627
+ return Math.round(maxCharacters / 5);
16628
+ }
16629
+ var textChunks = chunkString(text, maxCharacters(windowSize.current[0]));
16630
+ var _useState = React.useState(0),
16631
+ chunkIndex = _useState[0],
16632
+ setChunkIndex = _useState[1];
16633
+ var onHandleSpacePress = function onHandleSpacePress(event) {
16634
+ if (event.code === 'Space') {
16635
+ goToNextStep();
16636
+ }
16637
+ };
16638
+ var goToNextStep = function goToNextStep() {
16639
+ var hasNextChunk = (textChunks == null ? void 0 : textChunks[chunkIndex + 1]) || false;
16640
+ if (hasNextChunk) {
16641
+ setChunkIndex(function (prev) {
16642
+ return prev + 1;
16643
+ });
16644
+ } else {
16645
+ // if there's no more text chunks, close the dialog
16646
+ onClose();
16647
+ }
16648
+ };
16649
+ React.useEffect(function () {
16650
+ document.addEventListener('keydown', onHandleSpacePress);
16651
+ return function () {
16652
+ return document.removeEventListener('keydown', onHandleSpacePress);
16653
+ };
16654
+ }, [chunkIndex]);
16655
+ var _useState2 = React.useState(false),
16656
+ showGoNextIndicator = _useState2[0],
16657
+ setShowGoNextIndicator = _useState2[1];
16658
+ return React__default.createElement(Container$n, null, React__default.createElement(DynamicText, {
16659
+ text: (textChunks == null ? void 0 : textChunks[chunkIndex]) || '',
16660
+ onFinish: function onFinish() {
16661
+ setShowGoNextIndicator(true);
16662
+ onEndStep && onEndStep();
16663
+ },
16664
+ onStart: function onStart() {
16665
+ setShowGoNextIndicator(false);
16666
+ onStartStep && onStartStep();
16667
+ }
16668
+ }), showGoNextIndicator && React__default.createElement(PressSpaceIndicator$1, {
16669
+ right: type === exports.NPCDialogType.TextOnly ? '1rem' : '10.5rem',
16670
+ src: IS_MOBILE_OR_TABLET ? img$c : img$6,
16671
+ onPointerDown: function onPointerDown() {
16672
+ goToNextStep();
16673
+ }
16674
+ }));
16675
+ };
16676
+ var Container$n = /*#__PURE__*/styled.div.withConfig({
16677
+ displayName: "NPCDialogText__Container",
16678
+ componentId: "sc-1cxkdh9-0"
16679
+ })([""]);
16680
+ var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
16681
+ displayName: "NPCDialogText__PressSpaceIndicator",
16682
+ componentId: "sc-1cxkdh9-1"
16683
+ })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref2) {
16684
+ var right = _ref2.right;
16685
+ return right;
16686
+ });
16687
+
16688
+ (function (NPCDialogType) {
16689
+ NPCDialogType["TextOnly"] = "TextOnly";
16690
+ NPCDialogType["TextAndThumbnail"] = "TextAndThumbnail";
16691
+ })(exports.NPCDialogType || (exports.NPCDialogType = {}));
16692
+ var NPCDialog = function NPCDialog(_ref) {
16693
+ var text = _ref.text,
16694
+ type = _ref.type,
16695
+ _onClose = _ref.onClose,
16696
+ imagePath = _ref.imagePath,
16697
+ _ref$isQuestionDialog = _ref.isQuestionDialog,
16698
+ isQuestionDialog = _ref$isQuestionDialog === void 0 ? false : _ref$isQuestionDialog,
16699
+ questions = _ref.questions,
16700
+ answers = _ref.answers;
16701
+ return React__default.createElement(RPGUIContainer, {
16702
+ type: exports.RPGUIContainerTypes.FramedGold,
16703
+ width: isQuestionDialog ? '600px' : '80%',
16704
+ height: '180px'
16705
+ }, isQuestionDialog && questions && answers ? React__default.createElement(React__default.Fragment, null, React__default.createElement(TextContainer$2, {
16706
+ flex: type === exports.NPCDialogType.TextAndThumbnail ? '70%' : '100%'
16707
+ }, React__default.createElement(QuestionDialog, {
16708
+ questions: questions,
16709
+ answers: answers,
16710
+ onClose: function onClose() {
16711
+ if (_onClose) {
16712
+ _onClose();
16713
+ }
16714
+ }
16715
+ })), type === exports.NPCDialogType.TextAndThumbnail && React__default.createElement(ThumbnailContainer$1, null, React__default.createElement(NPCThumbnail$1, {
16716
+ src: imagePath || img$5
16717
+ }))) : React__default.createElement(React__default.Fragment, null, React__default.createElement(Container$o, null, React__default.createElement(TextContainer$2, {
16718
+ flex: type === exports.NPCDialogType.TextAndThumbnail ? '70%' : '100%'
16719
+ }, React__default.createElement(NPCDialogText, {
16720
+ type: type,
16721
+ text: text || 'No text provided.',
16722
+ onClose: function onClose() {
16723
+ if (_onClose) {
16724
+ _onClose();
16725
+ }
16726
+ }
16727
+ })), type === exports.NPCDialogType.TextAndThumbnail && React__default.createElement(ThumbnailContainer$1, null, React__default.createElement(NPCThumbnail$1, {
16728
+ src: imagePath || img$5
16729
+ })))));
16730
+ };
16731
+ var Container$o = /*#__PURE__*/styled.div.withConfig({
16732
+ displayName: "NPCDialog__Container",
16733
+ componentId: "sc-1b4aw74-0"
16734
+ })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
16735
+ var TextContainer$2 = /*#__PURE__*/styled.div.withConfig({
16736
+ displayName: "NPCDialog__TextContainer",
16737
+ componentId: "sc-1b4aw74-1"
16738
+ })(["flex:", " 0 0;width:355px;"], function (_ref2) {
16739
+ var flex = _ref2.flex;
16740
+ return flex;
16741
+ });
16742
+ var ThumbnailContainer$1 = /*#__PURE__*/styled.div.withConfig({
16743
+ displayName: "NPCDialog__ThumbnailContainer",
16744
+ componentId: "sc-1b4aw74-2"
16745
+ })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
16746
+ var NPCThumbnail$1 = /*#__PURE__*/styled.img.withConfig({
16747
+ displayName: "NPCDialog__NPCThumbnail",
16748
+ componentId: "sc-1b4aw74-3"
16749
+ })(["image-rendering:pixelated;height:128px;width:128px;"]);
16750
+
16751
+ var HistoryDialog = function HistoryDialog(_ref) {
16752
+ var backgroundImgPath = _ref.backgroundImgPath,
16753
+ fullCoverBackground = _ref.fullCoverBackground,
16754
+ questions = _ref.questions,
16755
+ answers = _ref.answers,
16756
+ text = _ref.text,
16757
+ imagePath = _ref.imagePath,
16758
+ textAndTypeArray = _ref.textAndTypeArray,
16759
+ onClose = _ref.onClose;
16760
+ var _useState = React.useState(0),
16761
+ img = _useState[0],
16762
+ setImage = _useState[1];
16763
+ var onHandleSpacePress = function onHandleSpacePress(event) {
16764
+ if (event.code === 'Space') {
16765
+ if (img < (backgroundImgPath == null ? void 0 : backgroundImgPath.length) - 1) {
16766
+ setImage(function (prev) {
16767
+ return prev + 1;
16768
+ });
16769
+ } else {
16770
+ // if there's no more text chunks, close the dialog
16771
+ onClose();
16772
+ }
16773
+ }
16774
+ };
16775
+ React.useEffect(function () {
16776
+ document.addEventListener('keydown', onHandleSpacePress);
16777
+ return function () {
16778
+ return document.removeEventListener('keydown', onHandleSpacePress);
16779
+ };
16780
+ }, [backgroundImgPath]);
16781
+ return React__default.createElement(BackgroundContainer, {
16782
+ imgPath: backgroundImgPath[img],
16783
+ fullImg: fullCoverBackground
16784
+ }, React__default.createElement(DialogContainer, null, textAndTypeArray ? React__default.createElement(NPCMultiDialog, {
16785
+ textAndTypeArray: textAndTypeArray,
16786
+ onClose: onClose
16787
+ }) : questions && answers ? React__default.createElement(QuestionDialog, {
16788
+ questions: questions,
16789
+ answers: answers,
16790
+ onClose: onClose
16791
+ }) : text && imagePath ? React__default.createElement(NPCDialog, {
16792
+ text: text,
16793
+ imagePath: imagePath,
16794
+ onClose: onClose,
16795
+ type: exports.NPCDialogType.TextAndThumbnail
16796
+ }) : React__default.createElement(NPCDialog, {
16797
+ text: text,
16798
+ onClose: onClose,
16799
+ type: exports.NPCDialogType.TextOnly
16800
+ })));
16801
+ };
16802
+ var BackgroundContainer = /*#__PURE__*/styled.div.withConfig({
16803
+ displayName: "HistoryDialog__BackgroundContainer",
16804
+ componentId: "sc-u6oe75-0"
16805
+ })(["width:100%;height:100%;background-image:url(", ");background-size:", ";display:flex;justify-content:space-evenly;align-items:center;"], function (props) {
16806
+ return props.imgPath;
16807
+ }, function (props) {
16808
+ return props.imgPath ? 'cover' : 'auto';
16809
+ });
16810
+ var DialogContainer = /*#__PURE__*/styled.div.withConfig({
16811
+ displayName: "HistoryDialog__DialogContainer",
16812
+ componentId: "sc-u6oe75-1"
16813
+ })(["display:flex;justify-content:center;padding-top:200px;"]);
16814
+
16701
16815
  exports.Button = Button;
16702
16816
  exports.CharacterSelection = CharacterSelection;
16703
16817
  exports.Chat = Chat;
@@ -16714,7 +16828,7 @@ exports.EquipmentSlotSpriteByType = EquipmentSlotSpriteByType;
16714
16828
  exports.ErrorBoundary = ErrorBoundary;
16715
16829
  exports.HistoryDialog = HistoryDialog;
16716
16830
  exports.Input = Input;
16717
- exports.InputRadio = InputRadio;
16831
+ exports.InputRadio = InputRadio$1;
16718
16832
  exports.ItemContainer = ItemContainer$1;
16719
16833
  exports.ItemSelector = ItemSelector;
16720
16834
  exports.ItemSlot = ItemSlot;