@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
@@ -1,14 +1,14 @@
1
1
  import React, { Component, useState, useEffect, useRef, useMemo, Fragment } from 'react';
2
2
  import styled from 'styled-components';
3
- import { GRID_WIDTH, GRID_HEIGHT, ShortcutType, getItemTextureKeyPath, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemRarities, ItemSubType, ItemSlotType, isMobileOrTablet, getSPForLevel, PeriodOfDay } from '@rpg-engine/shared';
3
+ import { GRID_WIDTH, GRID_HEIGHT, ShortcutType, getItemTextureKeyPath, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemRarities, ItemSubType, ItemSlotType, getSPForLevel, PeriodOfDay, isMobileOrTablet } from '@rpg-engine/shared';
4
4
  import dayjs from 'dayjs';
5
5
  import { ErrorBoundary as ErrorBoundary$1 } from 'react-error-boundary';
6
6
  import { RxPaperPlane } from 'react-icons/rx';
7
7
  import Draggable from 'react-draggable';
8
- import { v4 } from 'uuid';
9
8
  import ReactDOM from 'react-dom';
10
9
  import { camelCase } from 'lodash-es';
11
10
  import { observer } from 'mobx-react-lite';
11
+ import { v4 } from 'uuid';
12
12
  import 'rpgui/rpgui.min.css';
13
13
  import 'rpgui/rpgui.min.js';
14
14
  import capitalize from 'lodash-es/capitalize';
@@ -12628,7 +12628,7 @@ var Button$1 = /*#__PURE__*/styled.button.withConfig({
12628
12628
  });
12629
12629
 
12630
12630
  var uiColors = {
12631
- lightGray: '#757161',
12631
+ lightGray: '#888',
12632
12632
  gray: '#4E4A4E',
12633
12633
  darkGray: '#3e3e3e',
12634
12634
  darkYellow: '#FFC857',
@@ -12644,7 +12644,7 @@ var uiColors = {
12644
12644
  blue: '#597DCE',
12645
12645
  darkBlue: '#30346D',
12646
12646
  brown: '#854C30',
12647
- lightGreen: '#6DAA2C',
12647
+ lightGreen: '#88ed1c',
12648
12648
  brownGreen: '#346524'
12649
12649
  };
12650
12650
 
@@ -13099,96 +13099,54 @@ var Icon = /*#__PURE__*/styled.img.withConfig({
13099
13099
  return props.width;
13100
13100
  });
13101
13101
 
13102
- var Dropdown = function Dropdown(_ref) {
13103
- var options = _ref.options,
13104
- width = _ref.width,
13105
- onChange = _ref.onChange;
13106
- var dropdownId = v4();
13107
- var _useState = useState(''),
13108
- selectedValue = _useState[0],
13109
- setSelectedValue = _useState[1];
13110
- var _useState2 = useState(''),
13111
- selectedOption = _useState2[0],
13112
- setSelectedOption = _useState2[1];
13113
- var _useState3 = useState(false),
13114
- opened = _useState3[0],
13115
- setOpened = _useState3[1];
13116
- useEffect(function () {
13117
- var firstOption = options[0];
13118
- if (firstOption) {
13119
- var change = !selectedValue;
13120
- if (!change) {
13121
- change = options.filter(function (o) {
13122
- return o.value === selectedValue;
13123
- }).length < 1;
13124
- }
13125
- /**
13126
- * make a selection if there is no selected value already present
13127
- * or if there is a selected value but its not in new options
13128
- */
13129
- if (change) {
13130
- setSelectedValue(firstOption.value);
13131
- setSelectedOption(firstOption.option);
13132
- }
13133
- }
13134
- }, [options]);
13135
- useEffect(function () {
13136
- if (selectedValue) {
13137
- onChange(selectedValue);
13138
- }
13139
- }, [selectedValue]);
13140
- return React.createElement(Container$7, {
13141
- onMouseLeave: function onMouseLeave() {
13142
- return setOpened(false);
13143
- },
13144
- width: width
13145
- }, React.createElement(DropdownSelect, {
13146
- id: "dropdown-" + dropdownId,
13147
- className: "rpgui-dropdown-imp rpgui-dropdown-imp-header",
13148
- onPointerDown: function onPointerDown() {
13149
- return setOpened(function (prev) {
13150
- return !prev;
13151
- });
13152
- }
13153
- }, React.createElement("label", null, "\u25BC"), " ", selectedOption), React.createElement(DropdownOptions, {
13154
- className: "rpgui-dropdown-imp",
13155
- opened: opened
13156
- }, options.map(function (option) {
13157
- return React.createElement("li", {
13158
- key: option.id,
13159
- onPointerDown: function onPointerDown() {
13160
- setSelectedValue(option.value);
13161
- setSelectedOption(option.option);
13162
- setOpened(false);
13102
+ var InputRadio = function InputRadio(_ref) {
13103
+ var label = _ref.label,
13104
+ name = _ref.name,
13105
+ value = _ref.value,
13106
+ isChecked = _ref.isChecked,
13107
+ onRadioSelect = _ref.onRadioSelect;
13108
+ var onRadioClick = function onRadioClick() {
13109
+ onRadioSelect(value);
13110
+ };
13111
+ return React.createElement("div", {
13112
+ onPointerUp: onRadioClick
13113
+ }, React.createElement("input", {
13114
+ className: "rpgui-radio",
13115
+ name: name,
13116
+ value: value,
13117
+ type: "radio",
13118
+ "data-rpguitype": "radio",
13119
+ checked: isChecked,
13120
+ // rpgui breaks onChange on this input (doesn't work). That's why I had to wrap it with a div and a onClick listener.
13121
+ readOnly: true
13122
+ }), React.createElement("label", null, label));
13123
+ };
13124
+
13125
+ var countItemFromInventory = function countItemFromInventory(itemKey, inventory) {
13126
+ var itemsFromInventory = [];
13127
+ if (inventory) {
13128
+ Object.keys(inventory.slots).forEach(function (i) {
13129
+ var _inventory$slots$inde;
13130
+ var index = parseInt(i);
13131
+ if (((_inventory$slots$inde = inventory.slots[index]) == null ? void 0 : _inventory$slots$inde.key) === itemKey) {
13132
+ itemsFromInventory.push(inventory.slots[index]);
13163
13133
  }
13164
- }, option.option);
13165
- })));
13134
+ });
13135
+ }
13136
+ var totalQty = itemsFromInventory.reduce(function (acc, item) {
13137
+ return acc + ((item == null ? void 0 : item.stackQty) || 1);
13138
+ }, 0);
13139
+ return totalQty;
13166
13140
  };
13167
- var Container$7 = /*#__PURE__*/styled.div.withConfig({
13168
- displayName: "Dropdown__Container",
13169
- componentId: "sc-8arn65-0"
13170
- })(["position:relative;width:", ";"], function (props) {
13171
- return props.width || '100%';
13172
- });
13173
- var DropdownSelect = /*#__PURE__*/styled.p.withConfig({
13174
- displayName: "Dropdown__DropdownSelect",
13175
- componentId: "sc-8arn65-1"
13176
- })(["width:100%;box-sizing:border-box;"]);
13177
- var DropdownOptions = /*#__PURE__*/styled.ul.withConfig({
13178
- displayName: "Dropdown__DropdownOptions",
13179
- componentId: "sc-8arn65-2"
13180
- })(["position:absolute;width:100%;display:", ";box-sizing:border-box;@media (max-width:768px){padding:8px 0;}"], function (props) {
13181
- return props.opened ? 'block' : 'none';
13182
- });
13183
13141
 
13184
13142
  var modalRoot = /*#__PURE__*/document.getElementById('modal-root');
13185
13143
  var ModalPortal = function ModalPortal(_ref) {
13186
13144
  var children = _ref.children;
13187
- return ReactDOM.createPortal(React.createElement(Container$8, {
13145
+ return ReactDOM.createPortal(React.createElement(Container$7, {
13188
13146
  className: "rpgui-content"
13189
13147
  }, children), modalRoot);
13190
13148
  };
13191
- var Container$8 = /*#__PURE__*/styled.div.withConfig({
13149
+ var Container$7 = /*#__PURE__*/styled.div.withConfig({
13192
13150
  displayName: "ModalPortal__Container",
13193
13151
  componentId: "sc-dgmp04-0"
13194
13152
  })(["position:static !important;"]);
@@ -13215,7 +13173,7 @@ var RelativeListMenu = function RelativeListMenu(_ref) {
13215
13173
  document.removeEventListener('clickOutside', function (_e) {});
13216
13174
  };
13217
13175
  }, []);
13218
- return React.createElement(ModalPortal, null, React.createElement(Container$9, Object.assign({
13176
+ return React.createElement(ModalPortal, null, React.createElement(Container$8, Object.assign({
13219
13177
  fontSize: fontSize,
13220
13178
  ref: ref
13221
13179
  }, pos), React.createElement("ul", {
@@ -13232,7 +13190,7 @@ var RelativeListMenu = function RelativeListMenu(_ref) {
13232
13190
  }, (params == null ? void 0 : params.text) || 'No text');
13233
13191
  }))));
13234
13192
  };
13235
- var Container$9 = /*#__PURE__*/styled.div.withConfig({
13193
+ var Container$8 = /*#__PURE__*/styled.div.withConfig({
13236
13194
  displayName: "RelativeListMenu__Container",
13237
13195
  componentId: "sc-7hohf-0"
13238
13196
  })(["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) {
@@ -13262,7 +13220,7 @@ var MobileItemTooltip = function MobileItemTooltip(_ref) {
13262
13220
  var _ref$current;
13263
13221
  (_ref$current = ref.current) == null ? void 0 : _ref$current.classList.add('fadeOut');
13264
13222
  };
13265
- return React.createElement(ModalPortal, null, React.createElement(Container$a, {
13223
+ return React.createElement(ModalPortal, null, React.createElement(Container$9, {
13266
13224
  ref: ref,
13267
13225
  onTouchEnd: function onTouchEnd() {
13268
13226
  handleFadeOut();
@@ -13290,7 +13248,7 @@ var MobileItemTooltip = function MobileItemTooltip(_ref) {
13290
13248
  }, option.text);
13291
13249
  }))));
13292
13250
  };
13293
- var Container$a = /*#__PURE__*/styled.div.withConfig({
13251
+ var Container$9 = /*#__PURE__*/styled.div.withConfig({
13294
13252
  displayName: "MobileItemTooltip__Container",
13295
13253
  componentId: "sc-ku4p1j-0"
13296
13254
  })(["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;}"]);
@@ -13615,7 +13573,7 @@ var ItemSlot = /*#__PURE__*/observer(function (_ref) {
13615
13573
  onDragEnd(quantity);
13616
13574
  }
13617
13575
  };
13618
- return React.createElement(Container$b, {
13576
+ return React.createElement(Container$a, {
13619
13577
  item: item,
13620
13578
  className: "rpgui-icon empty-slot",
13621
13579
  onMouseUp: function onMouseUp() {
@@ -13783,7 +13741,7 @@ var rarityColor = function rarityColor(item) {
13783
13741
  return null;
13784
13742
  }
13785
13743
  };
13786
- var Container$b = /*#__PURE__*/styled.div.withConfig({
13744
+ var Container$a = /*#__PURE__*/styled.div.withConfig({
13787
13745
  displayName: "ItemSlot__Container",
13788
13746
  componentId: "sc-l2j5ef-0"
13789
13747
  })(["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) {
@@ -13894,13 +13852,13 @@ var ItemInfo = function ItemInfo(_ref) {
13894
13852
  }));
13895
13853
  });
13896
13854
  };
13897
- return React.createElement(Container$c, {
13855
+ return React.createElement(Container$b, {
13898
13856
  item: item
13899
13857
  }, React.createElement(Header, null, React.createElement("div", null, React.createElement(Title$1, null, item.name), item.rarity !== 'Common' && React.createElement(Rarity, {
13900
13858
  item: item
13901
13859
  }, item.rarity), React.createElement(Type, null, item.subType)), React.createElement(AllowedSlots, null, renderAvaibleSlots())), renderStatistics(), item.isTwoHanded && React.createElement(Statistic, null, "Two handed"), React.createElement(Description, null, item.description), item.maxStackSize && item.maxStackSize !== 1 && React.createElement(StackInfo, null, "x", Math.round(((_item$stackQty = item.stackQty) != null ? _item$stackQty : 1) * 100) / 100, "(", item.maxStackSize, ")"), renderMissingStatistic().length > 0 && React.createElement(MissingStatistics, null, React.createElement(Statistic, null, "Equipped Diff"), itemToCompare && renderMissingStatistic()));
13902
13860
  };
13903
- var Container$c = /*#__PURE__*/styled.div.withConfig({
13861
+ var Container$b = /*#__PURE__*/styled.div.withConfig({
13904
13862
  displayName: "ItemInfo__Container",
13905
13863
  componentId: "sc-1xm4q8k-0"
13906
13864
  })(["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) {
@@ -14035,7 +13993,7 @@ var ItemTooltip = function ItemTooltip(_ref) {
14035
13993
  }
14036
13994
  return;
14037
13995
  }, []);
14038
- return React.createElement(ModalPortal, null, React.createElement(Container$d, {
13996
+ return React.createElement(ModalPortal, null, React.createElement(Container$c, {
14039
13997
  ref: ref
14040
13998
  }, React.createElement(ItemInfoDisplay, {
14041
13999
  item: item,
@@ -14044,7 +14002,7 @@ var ItemTooltip = function ItemTooltip(_ref) {
14044
14002
  equipmentSet: equipmentSet
14045
14003
  })));
14046
14004
  };
14047
- var Container$d = /*#__PURE__*/styled.div.withConfig({
14005
+ var Container$c = /*#__PURE__*/styled.div.withConfig({
14048
14006
  displayName: "ItemTooltip__Container",
14049
14007
  componentId: "sc-11d9r7x-0"
14050
14008
  })(["position:absolute;z-index:100;pointer-events:none;left:0;top:0;opacity:0;transition:opacity 0.08s;"]);
@@ -14089,41 +14047,17 @@ var ItemInfoWrapper = function ItemInfoWrapper(_ref) {
14089
14047
  }));
14090
14048
  };
14091
14049
 
14092
- var CraftBook = function CraftBook(_ref) {
14050
+ var CraftingRecipe = function CraftingRecipe(_ref) {
14051
+ var _skills$level, _skills, _recipe$minCraftingRe, _recipe$minCraftingRe2, _recipe$levelIsOk, _recipe$minCraftingRe3, _recipe$minCraftingRe4, _recipe$minCraftingRe5, _recipe$minCraftingRe6;
14093
14052
  var atlasIMG = _ref.atlasIMG,
14094
14053
  atlasJSON = _ref.atlasJSON,
14095
- onClose = _ref.onClose,
14096
- onSelect = _ref.onSelect,
14097
- onCraftItem = _ref.onCraftItem,
14098
- craftablesItems = _ref.craftablesItems,
14099
14054
  equipmentSet = _ref.equipmentSet,
14100
- scale = _ref.scale;
14101
- var optionsId = 0;
14102
- var _useState = useState({
14103
- show: false,
14104
- index: 200
14105
- }),
14106
- isShown = _useState[0],
14107
- setIsShown = _useState[1];
14108
- var _useState2 = useState(),
14109
- craftItem = _useState2[0],
14110
- setCraftItem = _useState2[1];
14111
- var getDropdownOptions = function getDropdownOptions() {
14112
- var options = [];
14113
- Object.keys(ItemSubType).forEach(function (key) {
14114
- if (key === 'DeadBody') {
14115
- return; // we can't craft crafting resouces...
14116
- }
14117
-
14118
- options.push({
14119
- id: optionsId,
14120
- value: key,
14121
- option: key
14122
- });
14123
- optionsId += 1;
14124
- });
14125
- return options;
14126
- };
14055
+ recipe = _ref.recipe,
14056
+ scale = _ref.scale,
14057
+ handleRecipeSelect = _ref.handleRecipeSelect,
14058
+ selectedCraftItemKey = _ref.selectedCraftItemKey,
14059
+ inventory = _ref.inventory,
14060
+ skills = _ref.skills;
14127
14061
  var modifyString = function modifyString(str) {
14128
14062
  // Split the string by "/" and "."
14129
14063
  var parts = str.split('/');
@@ -14139,12 +14073,180 @@ var CraftBook = function CraftBook(_ref) {
14139
14073
  name = modifiedWords.join(' ');
14140
14074
  return name;
14141
14075
  };
14142
- var handleClick = function handleClick(value) {
14143
- setCraftItem(value);
14076
+ 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;
14077
+ return React.createElement(RadioOptionsWrapper, null, React.createElement(SpriteAtlasWrapper, null, React.createElement(ItemInfoWrapper, {
14078
+ item: recipe,
14079
+ atlasIMG: atlasIMG,
14080
+ atlasJSON: atlasJSON,
14081
+ equipmentSet: equipmentSet,
14082
+ scale: scale
14083
+ }, React.createElement(SpriteFromAtlas, {
14084
+ atlasIMG: atlasIMG,
14085
+ atlasJSON: atlasJSON,
14086
+ spriteKey: recipe.texturePath,
14087
+ imgScale: 3,
14088
+ grayScale: !recipe.canCraft
14089
+ }))), React.createElement("div", null, React.createElement("div", {
14090
+ onPointerUp: recipe.canCraft ? handleRecipeSelect : undefined
14091
+ }, React.createElement("input", {
14092
+ className: "rpgui-radio",
14093
+ type: "radio",
14094
+ value: recipe.name,
14095
+ name: "test",
14096
+ disabled: !recipe.canCraft,
14097
+ checked: selectedCraftItemKey === recipe.key,
14098
+ onChange: handleRecipeSelect
14099
+ }), React.createElement("label", {
14100
+ style: {
14101
+ display: 'flex',
14102
+ alignItems: 'center'
14103
+ }
14104
+ }, modifyString(recipe.name))), React.createElement(MinCraftingRequirementsText, {
14105
+ levelIsOk: (_recipe$levelIsOk = recipe == null ? void 0 : recipe.levelIsOk) != null ? _recipe$levelIsOk : false
14106
+ }, 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) {
14107
+ var itemQtyInInventory = !inventory ? 0 : countItemFromInventory(ingredient.key, inventory);
14108
+ return React.createElement(Recipe, {
14109
+ key: index
14110
+ }, React.createElement(SpriteFromAtlas, {
14111
+ atlasIMG: atlasIMG,
14112
+ atlasJSON: atlasJSON,
14113
+ spriteKey: ingredient.texturePath,
14114
+ imgScale: 1.2
14115
+ }), React.createElement(Ingredient, {
14116
+ isQuantityOk: ingredient.qty <= itemQtyInInventory
14117
+ }, modifyString(ingredient.key), " x", ingredient.qty, " (", itemQtyInInventory, ")"));
14118
+ })));
14119
+ };
14120
+ var Ingredient = /*#__PURE__*/styled.p.withConfig({
14121
+ displayName: "CraftingRecipe__Ingredient",
14122
+ componentId: "sc-1fe04wz-0"
14123
+ })(["margin:0;margin-left:14px;color:", " !important;"], function (_ref2) {
14124
+ var isQuantityOk = _ref2.isQuantityOk;
14125
+ return isQuantityOk ? uiColors.lightGreen : uiColors.lightGray;
14126
+ });
14127
+ var Recipe = /*#__PURE__*/styled.div.withConfig({
14128
+ displayName: "CraftingRecipe__Recipe",
14129
+ componentId: "sc-1fe04wz-1"
14130
+ })(["font-size:0.6rem;margin-bottom:3px;display:flex;align-items:center;margin-left:4px;.sprite-from-atlas-img{top:0px;left:0px;}"]);
14131
+ var SpriteAtlasWrapper = /*#__PURE__*/styled.div.withConfig({
14132
+ displayName: "CraftingRecipe__SpriteAtlasWrapper",
14133
+ componentId: "sc-1fe04wz-2"
14134
+ })(["margin-right:40px;"]);
14135
+ var RadioOptionsWrapper = /*#__PURE__*/styled.div.withConfig({
14136
+ displayName: "CraftingRecipe__RadioOptionsWrapper",
14137
+ componentId: "sc-1fe04wz-3"
14138
+ })(["display:flex;align-items:stretch;margin-bottom:40px;"]);
14139
+ var MinCraftingRequirementsText = /*#__PURE__*/styled.p.withConfig({
14140
+ displayName: "CraftingRecipe__MinCraftingRequirementsText",
14141
+ componentId: "sc-1fe04wz-4"
14142
+ })(["font-size:0.6rem !important;margin:0 5px 0 35px;color:", " !important;"], function (_ref3) {
14143
+ var levelIsOk = _ref3.levelIsOk;
14144
+ return levelIsOk ? uiColors.lightGreen : uiColors.lightGray;
14145
+ });
14146
+
14147
+ var desktop = {
14148
+ width: 'min(900px, 80%)',
14149
+ height: 'min(700px, 80%)'
14150
+ };
14151
+ var mobileLanscape = {
14152
+ width: '800px',
14153
+ height: '500px'
14154
+ };
14155
+ var mobilePortrait = {
14156
+ width: '500px',
14157
+ height: '700px'
14158
+ };
14159
+ var CraftBook = function CraftBook(_ref) {
14160
+ var atlasIMG = _ref.atlasIMG,
14161
+ atlasJSON = _ref.atlasJSON,
14162
+ onClose = _ref.onClose,
14163
+ onSelect = _ref.onSelect,
14164
+ onCraftItem = _ref.onCraftItem,
14165
+ craftablesItems = _ref.craftablesItems,
14166
+ equipmentSet = _ref.equipmentSet,
14167
+ scale = _ref.scale,
14168
+ inventory = _ref.inventory,
14169
+ skills = _ref.skills,
14170
+ savedSelectedType = _ref.savedSelectedType;
14171
+ var _useState = useState(),
14172
+ craftItemKey = _useState[0],
14173
+ setCraftItemKey = _useState[1];
14174
+ var _useState2 = useState(savedSelectedType != null ? savedSelectedType : Object.keys(ItemSubType)[0]),
14175
+ selectedType = _useState2[0],
14176
+ setSelectedType = _useState2[1];
14177
+ var _useState3 = useState(),
14178
+ size = _useState3[0],
14179
+ setSize = _useState3[1];
14180
+ useEffect(function () {
14181
+ var handleResize = function handleResize() {
14182
+ if (window.innerWidth < 500 && (size == null ? void 0 : size.width) !== mobilePortrait.width && (!scale || scale < 1)) {
14183
+ setSize(mobilePortrait);
14184
+ } else if ((!scale || scale < 1) && (size == null ? void 0 : size.width) !== mobileLanscape.width) {
14185
+ setSize(mobileLanscape);
14186
+ } else if ((size == null ? void 0 : size.width) !== desktop.width) {
14187
+ setSize(desktop);
14188
+ }
14189
+ };
14190
+ handleResize();
14191
+ window.addEventListener('resize', handleResize);
14192
+ return function () {
14193
+ return window.removeEventListener('resize', handleResize);
14194
+ };
14195
+ }, [scale]);
14196
+ var renderItemTypes = function renderItemTypes() {
14197
+ var itemTypes = ['Suggested'].concat(Object.keys(ItemSubType)).filter(function (type) {
14198
+ return type !== 'DeadBody';
14199
+ }).sort(function (a, b) {
14200
+ if (a === 'Suggested') return -1;
14201
+ if (b === 'Suggested') return 1;
14202
+ return a.localeCompare(b);
14203
+ });
14204
+ if (window.innerWidth > parseInt(mobilePortrait.width)) {
14205
+ return itemTypes.map(function (type) {
14206
+ return React.createElement(InputRadio, {
14207
+ key: type,
14208
+ value: type,
14209
+ label: type,
14210
+ name: type,
14211
+ isChecked: selectedType === type,
14212
+ onRadioSelect: function onRadioSelect(value) {
14213
+ setSelectedType(value);
14214
+ onSelect(value);
14215
+ }
14216
+ });
14217
+ });
14218
+ }
14219
+ var rows = [[], []];
14220
+ itemTypes.forEach(function (type, index) {
14221
+ var row = 0;
14222
+ if (index % 2 === 1) row = 1;
14223
+ rows[row].push(React.createElement(InputRadio, {
14224
+ key: type,
14225
+ value: type,
14226
+ label: type,
14227
+ name: type,
14228
+ isChecked: selectedType === type,
14229
+ onRadioSelect: function onRadioSelect(value) {
14230
+ setSelectedType(value);
14231
+ onSelect(value);
14232
+ }
14233
+ }));
14234
+ });
14235
+ return rows.map(function (row, index) {
14236
+ return React.createElement("div", {
14237
+ key: index,
14238
+ style: {
14239
+ display: 'flex',
14240
+ gap: '10px'
14241
+ }
14242
+ }, row);
14243
+ });
14144
14244
  };
14245
+ if (!size) return null;
14145
14246
  return React.createElement(DraggableContainer, {
14146
14247
  type: RPGUIContainerTypes.Framed,
14147
- width: "500px",
14248
+ width: size.width,
14249
+ height: size.height,
14148
14250
  cancelDrag: ".inputRadioCraftBook",
14149
14251
  onCloseButton: function onCloseButton() {
14150
14252
  if (onClose) {
@@ -14152,168 +14254,182 @@ var CraftBook = function CraftBook(_ref) {
14152
14254
  }
14153
14255
  },
14154
14256
  scale: scale
14155
- }, React.createElement("div", {
14257
+ }, React.createElement(Wrapper, null, React.createElement("div", {
14156
14258
  style: {
14157
14259
  width: '100%'
14158
14260
  }
14159
14261
  }, React.createElement(Title$2, null, "Craftbook"), React.createElement(Subtitle, null, "Select an item to craft"), React.createElement("hr", {
14160
14262
  className: "golden"
14161
- })), React.createElement(Dropdown, {
14162
- options: getDropdownOptions(),
14163
- onChange: function onChange(value) {
14164
- return onSelect(value);
14165
- }
14166
- }), React.createElement(RadioInputScroller, {
14263
+ })), React.createElement(ContentContainer, null, React.createElement(ItemTypes, {
14167
14264
  className: "inputRadioCraftBook"
14168
- }, craftablesItems == null ? void 0 : craftablesItems.map(function (option, index) {
14169
- var _option$levelIsOk, _option$minCraftingRe, _option$minCraftingRe2, _option$minCraftingRe3, _option$minCraftingRe4;
14170
- return React.createElement(RadioOptionsWrapper, {
14171
- key: index
14172
- }, React.createElement(SpriteAtlasWrapper, null, React.createElement(ItemInfoWrapper, {
14173
- item: option,
14265
+ }, renderItemTypes()), React.createElement(RadioInputScroller, {
14266
+ className: "inputRadioCraftBook"
14267
+ }, craftablesItems == null ? void 0 : craftablesItems.map(function (item) {
14268
+ return React.createElement(CraftingRecipe, {
14269
+ key: item.key,
14174
14270
  atlasIMG: atlasIMG,
14175
14271
  atlasJSON: atlasJSON,
14176
14272
  equipmentSet: equipmentSet,
14177
- scale: scale
14178
- }, React.createElement(SpriteFromAtlas, {
14179
- atlasIMG: atlasIMG,
14180
- atlasJSON: atlasJSON,
14181
- spriteKey: option.texturePath,
14182
- imgScale: 3,
14183
- grayScale: !option.canCraft
14184
- }))), React.createElement("div", null, React.createElement("div", {
14185
- onPointerDown: function onPointerDown() {
14186
- return handleClick(option.key);
14187
- }
14188
- }, React.createElement("input", {
14189
- className: "rpgui-radio",
14190
- type: "radio",
14191
- value: option.name,
14192
- name: "test",
14193
- disabled: !option.canCraft,
14194
- checked: craftItem === option.key,
14195
- onChange: function onChange() {
14196
- return handleClick(option.key);
14197
- }
14198
- }), React.createElement("label", {
14199
- onPointerDown: function onPointerDown() {
14200
- handleClick(option.key);
14201
- },
14202
- onTouchEnd: function onTouchEnd() {
14203
- setIsShown({
14204
- show: true,
14205
- index: index
14206
- });
14207
- },
14208
- style: {
14209
- display: 'flex',
14210
- alignItems: 'center'
14211
- },
14212
- onMouseEnter: function onMouseEnter() {
14213
- return setIsShown({
14214
- show: true,
14215
- index: index
14216
- });
14217
- },
14218
- onMouseLeave: function onMouseLeave() {
14219
- return setIsShown({
14220
- show: false,
14221
- index: index
14222
- });
14223
- }
14224
- }, modifyString(option.name))), isShown && isShown.index === index && option.ingredients.map(function (option, index) {
14225
- return React.createElement(Recipes, {
14226
- key: index
14227
- }, React.createElement(SpriteFromAtlas, {
14228
- atlasIMG: atlasIMG,
14229
- atlasJSON: atlasJSON,
14230
- spriteKey: option.texturePath,
14231
- imgScale: 1
14232
- }), React.createElement(StyledItem, null, modifyString(option.key), " (", option.qty, "x)"));
14233
- }), isShown && isShown.index === index && React.createElement(MinCraftingRequirementsText, {
14234
- levelIsOk: (_option$levelIsOk = option == null ? void 0 : option.levelIsOk) != null ? _option$levelIsOk : false
14235
- }, 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 : '')))));
14236
- })), React.createElement(ButtonWrapper, null, React.createElement(Button, {
14273
+ recipe: item,
14274
+ scale: scale,
14275
+ handleRecipeSelect: setCraftItemKey.bind(null, item.key),
14276
+ selectedCraftItemKey: craftItemKey,
14277
+ inventory: inventory,
14278
+ skills: skills
14279
+ });
14280
+ }))), React.createElement(ButtonWrapper, null, React.createElement(Button, {
14237
14281
  buttonType: ButtonTypes.RPGUIButton,
14238
14282
  onPointerDown: onClose
14239
14283
  }, "Cancel"), React.createElement(Button, {
14284
+ disabled: !craftItemKey,
14240
14285
  buttonType: ButtonTypes.RPGUIButton,
14241
14286
  onPointerDown: function onPointerDown() {
14242
- return onCraftItem(craftItem);
14287
+ return onCraftItem(craftItemKey);
14243
14288
  }
14244
- }, "Craft")));
14289
+ }, "Craft"))));
14245
14290
  };
14246
- var StyledItem = /*#__PURE__*/styled.div.withConfig({
14247
- displayName: "CraftBook__StyledItem",
14291
+ var Wrapper = /*#__PURE__*/styled.div.withConfig({
14292
+ displayName: "CraftBook__Wrapper",
14248
14293
  componentId: "sc-19q95ue-0"
14249
- })(["margin-left:10px;"]);
14250
- var Recipes = /*#__PURE__*/styled.div.withConfig({
14251
- displayName: "CraftBook__Recipes",
14252
- componentId: "sc-19q95ue-1"
14253
- })(["font-size:0.6rem;color:yellow !important;margin-bottom:3px;display:flex;align-items:center;.sprite-from-atlas-img{top:0px;left:0px;}"]);
14294
+ })(["display:flex;flex-direction:column;width:100%;height:100%;"]);
14254
14295
  var Title$2 = /*#__PURE__*/styled.h1.withConfig({
14255
14296
  displayName: "CraftBook__Title",
14256
- componentId: "sc-19q95ue-2"
14257
- })(["font-size:0.6rem;color:yellow !important;"]);
14297
+ componentId: "sc-19q95ue-1"
14298
+ })(["font-size:0.6rem;color:", " !important;"], uiColors.yellow);
14258
14299
  var Subtitle = /*#__PURE__*/styled.h1.withConfig({
14259
14300
  displayName: "CraftBook__Subtitle",
14260
- componentId: "sc-19q95ue-3"
14261
- })(["font-size:0.4rem;color:yellow !important;"]);
14301
+ componentId: "sc-19q95ue-2"
14302
+ })(["font-size:0.4rem;color:", " !important;"], uiColors.yellow);
14262
14303
  var RadioInputScroller = /*#__PURE__*/styled.div.withConfig({
14263
14304
  displayName: "CraftBook__RadioInputScroller",
14305
+ componentId: "sc-19q95ue-3"
14306
+ })(["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);
14307
+ var ButtonWrapper = /*#__PURE__*/styled.div.withConfig({
14308
+ displayName: "CraftBook__ButtonWrapper",
14264
14309
  componentId: "sc-19q95ue-4"
14265
- })(["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;"]);
14266
- var SpriteAtlasWrapper = /*#__PURE__*/styled.div.withConfig({
14267
- displayName: "CraftBook__SpriteAtlasWrapper",
14310
+ })(["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);
14311
+ var ContentContainer = /*#__PURE__*/styled.div.withConfig({
14312
+ displayName: "CraftBook__ContentContainer",
14268
14313
  componentId: "sc-19q95ue-5"
14269
- })(["margin-right:40px;"]);
14270
- var RadioOptionsWrapper = /*#__PURE__*/styled.div.withConfig({
14271
- displayName: "CraftBook__RadioOptionsWrapper",
14314
+ })(["display:flex;width:100%;min-height:0;flex:1;@media (max-width:", "){flex-direction:column;}"], mobilePortrait.width);
14315
+ var ItemTypes = /*#__PURE__*/styled.div.withConfig({
14316
+ displayName: "CraftBook__ItemTypes",
14272
14317
  componentId: "sc-19q95ue-6"
14273
- })(["display:flex;align-items:stretch;margin-bottom:40px;"]);
14274
- var ButtonWrapper = /*#__PURE__*/styled.div.withConfig({
14275
- displayName: "CraftBook__ButtonWrapper",
14276
- componentId: "sc-19q95ue-7"
14277
- })(["display:flex;justify-content:space-around;padding-top:20px;width:100%;button{padding:0px 50px;}"]);
14278
- var MinCraftingRequirementsText = /*#__PURE__*/styled.div.withConfig({
14279
- displayName: "CraftBook__MinCraftingRequirementsText",
14280
- componentId: "sc-19q95ue-8"
14281
- })(["font-size:0.6rem;font-weight:bold;color:", ";"], function (_ref2) {
14282
- var levelIsOk = _ref2.levelIsOk;
14283
- return levelIsOk ? '#72f100' : 'gray';
14284
- });
14285
-
14286
- var DropdownSelectorContainer = function DropdownSelectorContainer(_ref) {
14287
- var title = _ref.title,
14288
- onChange = _ref.onChange,
14289
- options = _ref.options,
14290
- details = _ref.details;
14291
- return React.createElement("div", null, React.createElement("p", null, title), React.createElement(Dropdown, {
14292
- options: options.map(function (option, index) {
14293
- return {
14294
- option: option.name,
14295
- value: option.id,
14296
- id: index
14297
- };
14298
- }),
14299
- onChange: onChange
14300
- }), React.createElement(Details, null, details));
14301
- };
14302
- var Details = /*#__PURE__*/styled.p.withConfig({
14303
- displayName: "DropdownSelectorContainer__Details",
14304
- componentId: "sc-kaa0h9-0"
14305
- })(["font-size:", " !important;"], uiFonts.size.xsmall);
14318
+ })(["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);
14306
14319
 
14307
- var EquipmentSet = function EquipmentSet(_ref) {
14308
- var equipmentSet = _ref.equipmentSet,
14309
- onClose = _ref.onClose,
14310
- _onMouseOver = _ref.onMouseOver,
14311
- _onSelected = _ref.onSelected,
14312
- onItemClick = _ref.onItemClick,
14313
- atlasIMG = _ref.atlasIMG,
14314
- atlasJSON = _ref.atlasJSON,
14315
- onItemDragEnd = _ref.onItemDragEnd,
14316
- onItemDragStart = _ref.onItemDragStart,
14320
+ var Dropdown = function Dropdown(_ref) {
14321
+ var options = _ref.options,
14322
+ width = _ref.width,
14323
+ onChange = _ref.onChange;
14324
+ var dropdownId = v4();
14325
+ var _useState = useState(''),
14326
+ selectedValue = _useState[0],
14327
+ setSelectedValue = _useState[1];
14328
+ var _useState2 = useState(''),
14329
+ selectedOption = _useState2[0],
14330
+ setSelectedOption = _useState2[1];
14331
+ var _useState3 = useState(false),
14332
+ opened = _useState3[0],
14333
+ setOpened = _useState3[1];
14334
+ useEffect(function () {
14335
+ var firstOption = options[0];
14336
+ if (firstOption) {
14337
+ var change = !selectedValue;
14338
+ if (!change) {
14339
+ change = options.filter(function (o) {
14340
+ return o.value === selectedValue;
14341
+ }).length < 1;
14342
+ }
14343
+ /**
14344
+ * make a selection if there is no selected value already present
14345
+ * or if there is a selected value but its not in new options
14346
+ */
14347
+ if (change) {
14348
+ setSelectedValue(firstOption.value);
14349
+ setSelectedOption(firstOption.option);
14350
+ }
14351
+ }
14352
+ }, [options]);
14353
+ useEffect(function () {
14354
+ if (selectedValue) {
14355
+ onChange(selectedValue);
14356
+ }
14357
+ }, [selectedValue]);
14358
+ return React.createElement(Container$d, {
14359
+ onMouseLeave: function onMouseLeave() {
14360
+ return setOpened(false);
14361
+ },
14362
+ width: width
14363
+ }, React.createElement(DropdownSelect, {
14364
+ id: "dropdown-" + dropdownId,
14365
+ className: "rpgui-dropdown-imp rpgui-dropdown-imp-header",
14366
+ onPointerDown: function onPointerDown() {
14367
+ return setOpened(function (prev) {
14368
+ return !prev;
14369
+ });
14370
+ }
14371
+ }, React.createElement("label", null, "\u25BC"), " ", selectedOption), React.createElement(DropdownOptions, {
14372
+ className: "rpgui-dropdown-imp",
14373
+ opened: opened
14374
+ }, options.map(function (option) {
14375
+ return React.createElement("li", {
14376
+ key: option.id,
14377
+ onPointerDown: function onPointerDown() {
14378
+ setSelectedValue(option.value);
14379
+ setSelectedOption(option.option);
14380
+ setOpened(false);
14381
+ }
14382
+ }, option.option);
14383
+ })));
14384
+ };
14385
+ var Container$d = /*#__PURE__*/styled.div.withConfig({
14386
+ displayName: "Dropdown__Container",
14387
+ componentId: "sc-8arn65-0"
14388
+ })(["position:relative;width:", ";"], function (props) {
14389
+ return props.width || '100%';
14390
+ });
14391
+ var DropdownSelect = /*#__PURE__*/styled.p.withConfig({
14392
+ displayName: "Dropdown__DropdownSelect",
14393
+ componentId: "sc-8arn65-1"
14394
+ })(["width:100%;box-sizing:border-box;"]);
14395
+ var DropdownOptions = /*#__PURE__*/styled.ul.withConfig({
14396
+ displayName: "Dropdown__DropdownOptions",
14397
+ componentId: "sc-8arn65-2"
14398
+ })(["position:absolute;width:100%;display:", ";box-sizing:border-box;@media (max-width:768px){padding:8px 0;}"], function (props) {
14399
+ return props.opened ? 'block' : 'none';
14400
+ });
14401
+
14402
+ var DropdownSelectorContainer = function DropdownSelectorContainer(_ref) {
14403
+ var title = _ref.title,
14404
+ onChange = _ref.onChange,
14405
+ options = _ref.options,
14406
+ details = _ref.details;
14407
+ return React.createElement("div", null, React.createElement("p", null, title), React.createElement(Dropdown, {
14408
+ options: options.map(function (option, index) {
14409
+ return {
14410
+ option: option.name,
14411
+ value: option.id,
14412
+ id: index
14413
+ };
14414
+ }),
14415
+ onChange: onChange
14416
+ }), React.createElement(Details, null, details));
14417
+ };
14418
+ var Details = /*#__PURE__*/styled.p.withConfig({
14419
+ displayName: "DropdownSelectorContainer__Details",
14420
+ componentId: "sc-kaa0h9-0"
14421
+ })(["font-size:", " !important;"], uiFonts.size.xsmall);
14422
+
14423
+ var EquipmentSet = function EquipmentSet(_ref) {
14424
+ var equipmentSet = _ref.equipmentSet,
14425
+ onClose = _ref.onClose,
14426
+ _onMouseOver = _ref.onMouseOver,
14427
+ _onSelected = _ref.onSelected,
14428
+ onItemClick = _ref.onItemClick,
14429
+ atlasIMG = _ref.atlasIMG,
14430
+ atlasJSON = _ref.atlasJSON,
14431
+ onItemDragEnd = _ref.onItemDragEnd,
14432
+ onItemDragStart = _ref.onItemDragStart,
14317
14433
  onItemPlaceDrop = _ref.onItemPlaceDrop,
14318
14434
  onItemOutsideDrop = _ref.onItemOutsideDrop,
14319
14435
  checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
@@ -14405,1134 +14521,594 @@ var EquipmentColumn = /*#__PURE__*/styled.div.withConfig({
14405
14521
  componentId: "sc-1wuddg2-1"
14406
14522
  })(["display:flex;justify-content:center;flex-wrap:wrap;flex-direction:column;touch-action:none;"]);
14407
14523
 
14408
- var IS_MOBILE_OR_TABLET = /*#__PURE__*/isMobileOrTablet();
14409
-
14410
- var chunkString = function chunkString(str, length) {
14411
- return str.match(new RegExp('.{1,' + length + '}', 'g'));
14412
- };
14413
-
14414
- var DynamicText = function DynamicText(_ref) {
14415
- var text = _ref.text,
14416
- onFinish = _ref.onFinish,
14417
- onStart = _ref.onStart;
14418
- var _useState = useState(''),
14419
- textState = _useState[0],
14420
- setTextState = _useState[1];
14421
- useEffect(function () {
14422
- var i = 0;
14423
- var interval = setInterval(function () {
14424
- // on every interval, show one more character
14425
- if (i === 0) {
14426
- if (onStart) {
14427
- onStart();
14428
- }
14524
+ var SlotsContainer = function SlotsContainer(_ref) {
14525
+ var children = _ref.children,
14526
+ title = _ref.title,
14527
+ onClose = _ref.onClose,
14528
+ _onPositionChange = _ref.onPositionChange,
14529
+ _onPositionChangeEnd = _ref.onPositionChangeEnd,
14530
+ _onPositionChangeStart = _ref.onPositionChangeStart,
14531
+ onOutsideClick = _ref.onOutsideClick,
14532
+ initialPosition = _ref.initialPosition,
14533
+ scale = _ref.scale;
14534
+ return React.createElement(DraggableContainer, {
14535
+ title: title,
14536
+ type: RPGUIContainerTypes.Framed,
14537
+ onCloseButton: function onCloseButton() {
14538
+ if (onClose) {
14539
+ onClose();
14429
14540
  }
14430
- if (i < text.length) {
14431
- setTextState(text.substring(0, i + 1));
14432
- i++;
14433
- } else {
14434
- clearInterval(interval);
14435
- if (onFinish) {
14436
- onFinish();
14437
- }
14541
+ },
14542
+ width: "400px",
14543
+ cancelDrag: ".item-container-body, #shortcuts_list",
14544
+ onPositionChange: function onPositionChange(_ref2) {
14545
+ var x = _ref2.x,
14546
+ y = _ref2.y;
14547
+ if (_onPositionChange) {
14548
+ _onPositionChange({
14549
+ x: x,
14550
+ y: y
14551
+ });
14438
14552
  }
14439
- }, 50);
14440
- return function () {
14441
- clearInterval(interval);
14442
- };
14443
- }, [text]);
14444
- return React.createElement(TextContainer, null, textState);
14553
+ },
14554
+ onPositionChangeEnd: function onPositionChangeEnd(_ref3) {
14555
+ var x = _ref3.x,
14556
+ y = _ref3.y;
14557
+ if (_onPositionChangeEnd) {
14558
+ _onPositionChangeEnd({
14559
+ x: x,
14560
+ y: y
14561
+ });
14562
+ }
14563
+ },
14564
+ onPositionChangeStart: function onPositionChangeStart(_ref4) {
14565
+ var x = _ref4.x,
14566
+ y = _ref4.y;
14567
+ if (_onPositionChangeStart) {
14568
+ _onPositionChangeStart({
14569
+ x: x,
14570
+ y: y
14571
+ });
14572
+ }
14573
+ },
14574
+ onOutsideClick: onOutsideClick,
14575
+ initialPosition: initialPosition,
14576
+ scale: scale
14577
+ }, children);
14445
14578
  };
14446
- var TextContainer = /*#__PURE__*/styled.p.withConfig({
14447
- displayName: "DynamicText__TextContainer",
14448
- componentId: "sc-1ggl9nd-0"
14449
- })(["font-size:0.7rem !important;color:white;text-shadow:1px 1px 0px #000000;letter-spacing:1.2px;word-break:normal;"]);
14450
-
14451
- var img$5 = 'data:image/gif;base64,R0lGODlhEAAQAPIAAAAAABQYLiw1TUBJc2hvmQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAM9CLrc/lCFGSKYJJP5AhlguDnBMIVgxXgmJapSSp3mKs/pKrT0IMCXUk+2Cgh2oSOnaDz+lswZpSOFUq2KBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAIzhI+py90Bg4OjDrjCELxfFQhQx0mIJkaeaYRp5LJADMdnqXbyOJLYTdKBejjZoRaZJBMFACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAABAAEAAAAjKEj6nL7Y+CDE6OO+QKQ/ifKYEgfR4VddPohQe7lmR0xidNTib65uacYP2AQWGuMlEUAAA7';
14452
-
14453
- 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';
14454
14579
 
14455
- var NPCDialogText = function NPCDialogText(_ref) {
14456
- var text = _ref.text,
14457
- onClose = _ref.onClose,
14458
- onEndStep = _ref.onEndStep,
14459
- onStartStep = _ref.onStartStep,
14460
- type = _ref.type;
14461
- var windowSize = useRef([window.innerWidth, window.innerHeight]);
14462
- function maxCharacters(width) {
14463
- // Set the font size to 16 pixels
14464
- var fontSize = 11.2;
14465
- // Calculate the number of characters that can fit in one line
14466
- var charactersPerLine = Math.floor(width / 2 / fontSize);
14467
- // Calculate the number of lines that can fit in the div
14468
- var linesPerDiv = Math.floor(180 / fontSize);
14469
- // Calculate the maximum number of characters that can fit in the div
14470
- var maxCharacters = charactersPerLine * linesPerDiv;
14471
- // Return the maximum number of characters
14472
- return Math.round(maxCharacters / 5);
14473
- }
14474
- var textChunks = chunkString(text, maxCharacters(windowSize.current[0]));
14580
+ var RangeSliderType;
14581
+ (function (RangeSliderType) {
14582
+ RangeSliderType["Slider"] = "rpgui-slider";
14583
+ RangeSliderType["GoldSlider"] = "rpgui-slider golden";
14584
+ })(RangeSliderType || (RangeSliderType = {}));
14585
+ var RangeSlider = function RangeSlider(_ref) {
14586
+ var type = _ref.type,
14587
+ valueMin = _ref.valueMin,
14588
+ valueMax = _ref.valueMax,
14589
+ width = _ref.width,
14590
+ _onChange = _ref.onChange,
14591
+ value = _ref.value;
14592
+ var sliderId = v4();
14593
+ var containerRef = useRef(null);
14475
14594
  var _useState = useState(0),
14476
- chunkIndex = _useState[0],
14477
- setChunkIndex = _useState[1];
14478
- var onHandleSpacePress = function onHandleSpacePress(event) {
14479
- if (event.code === 'Space') {
14480
- goToNextStep();
14481
- }
14482
- };
14483
- var goToNextStep = function goToNextStep() {
14484
- var hasNextChunk = (textChunks == null ? void 0 : textChunks[chunkIndex + 1]) || false;
14485
- if (hasNextChunk) {
14486
- setChunkIndex(function (prev) {
14487
- return prev + 1;
14488
- });
14489
- } else {
14490
- // if there's no more text chunks, close the dialog
14491
- onClose();
14492
- }
14493
- };
14595
+ left = _useState[0],
14596
+ setLeft = _useState[1];
14494
14597
  useEffect(function () {
14495
- document.addEventListener('keydown', onHandleSpacePress);
14496
- return function () {
14497
- return document.removeEventListener('keydown', onHandleSpacePress);
14498
- };
14499
- }, [chunkIndex]);
14500
- var _useState2 = useState(false),
14501
- showGoNextIndicator = _useState2[0],
14502
- setShowGoNextIndicator = _useState2[1];
14503
- return React.createElement(Container$e, null, React.createElement(DynamicText, {
14504
- text: (textChunks == null ? void 0 : textChunks[chunkIndex]) || '',
14505
- onFinish: function onFinish() {
14506
- setShowGoNextIndicator(true);
14507
- onEndStep && onEndStep();
14598
+ var _containerRef$current;
14599
+ var calculatedWidth = ((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.clientWidth) || 0;
14600
+ setLeft(Math.max((value - valueMin) / (valueMax - valueMin) * (calculatedWidth - 35) + 10));
14601
+ }, [value, valueMin, valueMax]);
14602
+ var typeClass = type === RangeSliderType.GoldSlider ? 'golden' : '';
14603
+ return React.createElement("div", {
14604
+ style: {
14605
+ width: width,
14606
+ position: 'relative'
14508
14607
  },
14509
- onStart: function onStart() {
14510
- setShowGoNextIndicator(false);
14511
- onStartStep && onStartStep();
14608
+ className: "rpgui-slider-container " + typeClass,
14609
+ id: "rpgui-slider-" + sliderId,
14610
+ ref: containerRef
14611
+ }, React.createElement("div", {
14612
+ style: {
14613
+ pointerEvents: 'none'
14512
14614
  }
14513
- }), showGoNextIndicator && React.createElement(PressSpaceIndicator, {
14514
- right: type === NPCDialogType.TextOnly ? '1rem' : '10.5rem',
14515
- src: IS_MOBILE_OR_TABLET ? img$5 : img$6,
14516
- onPointerDown: function onPointerDown() {
14517
- goToNextStep();
14615
+ }, React.createElement("div", {
14616
+ className: "rpgui-slider-track " + typeClass
14617
+ }), React.createElement("div", {
14618
+ className: "rpgui-slider-left-edge " + typeClass
14619
+ }), React.createElement("div", {
14620
+ className: "rpgui-slider-right-edge " + typeClass
14621
+ }), React.createElement("div", {
14622
+ className: "rpgui-slider-thumb " + typeClass,
14623
+ style: {
14624
+ left: left
14518
14625
  }
14626
+ })), React.createElement(Input$1, {
14627
+ type: "range",
14628
+ style: {
14629
+ width: width
14630
+ },
14631
+ min: valueMin,
14632
+ max: valueMax,
14633
+ onChange: function onChange(e) {
14634
+ return _onChange(Number(e.target.value));
14635
+ },
14636
+ value: value,
14637
+ className: "rpgui-cursor-point"
14519
14638
  }));
14520
14639
  };
14521
- var Container$e = /*#__PURE__*/styled.div.withConfig({
14522
- displayName: "NPCDialogText__Container",
14523
- componentId: "sc-1cxkdh9-0"
14524
- })([""]);
14525
- var PressSpaceIndicator = /*#__PURE__*/styled.img.withConfig({
14526
- displayName: "NPCDialogText__PressSpaceIndicator",
14527
- componentId: "sc-1cxkdh9-1"
14528
- })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref2) {
14529
- var right = _ref2.right;
14530
- return right;
14531
- });
14532
-
14533
- //@ts-ignore
14534
- var useEventListener = function useEventListener(type, handler, el) {
14535
- if (el === void 0) {
14536
- el = window;
14537
- }
14538
- var savedHandler = React.useRef();
14539
- React.useEffect(function () {
14540
- savedHandler.current = handler;
14541
- }, [handler]);
14542
- React.useEffect(function () {
14543
- //@ts-ignore
14544
- var listener = function listener(e) {
14545
- return savedHandler.current(e);
14546
- };
14547
- el.addEventListener(type, listener);
14548
- return function () {
14549
- el.removeEventListener(type, listener);
14550
- };
14551
- }, [type, el]);
14552
- };
14640
+ var Input$1 = /*#__PURE__*/styled.input.withConfig({
14641
+ displayName: "RangeSlider__Input",
14642
+ componentId: "sc-v8mte9-0"
14643
+ })(["opacity:0;position:absolute;width:100%;height:100%;top:0;left:0;margin-top:-5px;"]);
14553
14644
 
14554
- var QuestionDialog = function QuestionDialog(_ref) {
14555
- var questions = _ref.questions,
14556
- answers = _ref.answers,
14645
+ var ItemQuantitySelector = function ItemQuantitySelector(_ref) {
14646
+ var quantity = _ref.quantity,
14647
+ onConfirm = _ref.onConfirm,
14557
14648
  onClose = _ref.onClose;
14558
- var _useState = useState(questions[0]),
14559
- currentQuestion = _useState[0],
14560
- setCurrentQuestion = _useState[1];
14561
- var _useState2 = useState(false),
14562
- canShowAnswers = _useState2[0],
14563
- setCanShowAnswers = _useState2[1];
14564
- var onGetFirstAnswer = function onGetFirstAnswer() {
14565
- if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {
14566
- return null;
14567
- }
14568
- var firstAnswerId = currentQuestion.answerIds[0];
14569
- return answers.find(function (answer) {
14570
- return answer.id === firstAnswerId;
14571
- });
14572
- };
14573
- var _useState3 = useState(onGetFirstAnswer()),
14574
- currentAnswer = _useState3[0],
14575
- setCurrentAnswer = _useState3[1];
14649
+ var _useState = useState(quantity),
14650
+ value = _useState[0],
14651
+ setValue = _useState[1];
14652
+ var inputRef = useRef(null);
14576
14653
  useEffect(function () {
14577
- setCurrentAnswer(onGetFirstAnswer());
14578
- }, [currentQuestion]);
14579
- var onGetAnswers = function onGetAnswers(answerIds) {
14580
- return answerIds.map(function (answerId) {
14581
- return answers.find(function (answer) {
14582
- return answer.id === answerId;
14583
- });
14584
- });
14585
- };
14586
- var onKeyPress = function onKeyPress(e) {
14587
- switch (e.key) {
14588
- case 'ArrowDown':
14589
- // select next answer, if any.
14590
- // if no next answer, select first answer
14591
- // const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(
14592
- // (answer) => answer?.id === currentAnswer!.id + 1
14593
- // );
14594
- var nextAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
14595
- return (answer == null ? void 0 : answer.id) === currentAnswer.id + 1;
14596
- });
14597
- var nextAnswerID = currentQuestion.answerIds[nextAnswerIndex];
14598
- var nextAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
14599
- return (answer == null ? void 0 : answer.id) === nextAnswerID;
14600
- });
14601
- setCurrentAnswer(nextAnswer || onGetFirstAnswer());
14602
- break;
14603
- case 'ArrowUp':
14604
- // select previous answer, if any.
14605
- // if no previous answer, select last answer
14606
- var previousAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
14607
- return (answer == null ? void 0 : answer.id) === currentAnswer.id - 1;
14608
- });
14609
- var previousAnswerID = currentQuestion.answerIds && currentQuestion.answerIds[previousAnswerIndex];
14610
- var previousAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
14611
- return (answer == null ? void 0 : answer.id) === previousAnswerID;
14612
- });
14613
- if (previousAnswer) {
14614
- setCurrentAnswer(previousAnswer);
14615
- } else {
14616
- setCurrentAnswer(onGetAnswers(currentQuestion.answerIds).pop());
14617
- }
14618
- break;
14619
- case 'Enter':
14620
- setCanShowAnswers(false);
14621
- if (!(currentAnswer != null && currentAnswer.nextQuestionId)) {
14654
+ if (inputRef.current) {
14655
+ inputRef.current.focus();
14656
+ inputRef.current.select();
14657
+ var closeSelector = function closeSelector(e) {
14658
+ if (e.key === 'Escape') {
14622
14659
  onClose();
14623
- return;
14624
- } else {
14625
- setCurrentQuestion(questions.find(function (question) {
14626
- return question.id === currentAnswer.nextQuestionId;
14627
- }));
14628
14660
  }
14629
- break;
14630
- }
14631
- };
14632
- useEventListener('keydown', onKeyPress);
14633
- var onAnswerClick = function onAnswerClick(answer) {
14634
- setCanShowAnswers(false);
14635
- if (answer.nextQuestionId) {
14636
- // if there is a next question, go to it
14637
- setCurrentQuestion(questions.find(function (question) {
14638
- return question.id === answer.nextQuestionId;
14639
- }));
14640
- } else {
14641
- // else, finish dialog!
14642
- onClose();
14643
- }
14644
- };
14645
- var onRenderCurrentAnswers = function onRenderCurrentAnswers() {
14646
- var answerIds = currentQuestion.answerIds;
14647
- if (!answerIds) {
14648
- return null;
14649
- }
14650
- var answers = onGetAnswers(answerIds);
14651
- if (!answers) {
14652
- return null;
14661
+ };
14662
+ document.addEventListener('keydown', closeSelector);
14663
+ return function () {
14664
+ document.removeEventListener('keydown', closeSelector);
14665
+ };
14653
14666
  }
14654
- return answers.map(function (answer) {
14655
- var isSelected = (currentAnswer == null ? void 0 : currentAnswer.id) === (answer == null ? void 0 : answer.id);
14656
- var selectedColor = isSelected ? 'yellow' : 'white';
14657
- if (answer) {
14658
- return React.createElement(AnswerRow, {
14659
- key: "answer_" + answer.id
14660
- }, React.createElement(AnswerSelectedIcon, {
14661
- color: selectedColor
14662
- }, isSelected ? 'X' : null), React.createElement(Answer, {
14663
- key: answer.id,
14664
- onPointerDown: function onPointerDown() {
14665
- return onAnswerClick(answer);
14666
- },
14667
- color: selectedColor
14668
- }, answer.text));
14667
+ return function () {};
14668
+ }, []);
14669
+ return React.createElement(StyledContainer, {
14670
+ type: RPGUIContainerTypes.Framed,
14671
+ width: "25rem"
14672
+ }, React.createElement(CloseButton$2, {
14673
+ className: "container-close",
14674
+ onPointerDown: onClose
14675
+ }, "X"), React.createElement("h2", null, "Select quantity to move"), React.createElement(StyledForm, {
14676
+ style: {
14677
+ width: '100%'
14678
+ },
14679
+ onSubmit: function onSubmit(e) {
14680
+ e.preventDefault();
14681
+ var numberValue = Number(value);
14682
+ if (Number.isNaN(numberValue)) {
14683
+ return;
14669
14684
  }
14670
- return null;
14671
- });
14672
- };
14673
- return React.createElement(Container$f, null, React.createElement(QuestionContainer, null, React.createElement(DynamicText, {
14674
- text: currentQuestion.text,
14675
- onStart: function onStart() {
14676
- return setCanShowAnswers(false);
14685
+ onConfirm(Math.max(1, Math.min(quantity, numberValue)));
14677
14686
  },
14678
- onFinish: function onFinish() {
14679
- return setCanShowAnswers(true);
14680
- }
14681
- })), canShowAnswers && React.createElement(AnswersContainer, null, onRenderCurrentAnswers()));
14682
- };
14683
- var Container$f = /*#__PURE__*/styled.div.withConfig({
14684
- displayName: "QuestionDialog__Container",
14685
- componentId: "sc-bxc5u0-0"
14686
- })(["display:flex;word-break:break-all;box-sizing:border-box;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;"]);
14687
- var QuestionContainer = /*#__PURE__*/styled.div.withConfig({
14688
- displayName: "QuestionDialog__QuestionContainer",
14689
- componentId: "sc-bxc5u0-1"
14690
- })(["flex:100%;width:100%;"]);
14691
- var AnswersContainer = /*#__PURE__*/styled.div.withConfig({
14692
- displayName: "QuestionDialog__AnswersContainer",
14693
- componentId: "sc-bxc5u0-2"
14694
- })(["flex:100%;"]);
14695
- var Answer = /*#__PURE__*/styled.p.withConfig({
14696
- displayName: "QuestionDialog__Answer",
14697
- componentId: "sc-bxc5u0-3"
14698
- })(["flex:auto;color:", " !important;font-size:0.65rem !important;background:inherit;border:none;"], function (props) {
14699
- return props.color;
14700
- });
14701
- var AnswerSelectedIcon = /*#__PURE__*/styled.span.withConfig({
14702
- displayName: "QuestionDialog__AnswerSelectedIcon",
14703
- componentId: "sc-bxc5u0-4"
14704
- })(["flex:5% 0 0;color:", " !important;"], function (props) {
14705
- return props.color;
14706
- });
14707
- var AnswerRow = /*#__PURE__*/styled.div.withConfig({
14708
- displayName: "QuestionDialog__AnswerRow",
14709
- componentId: "sc-bxc5u0-5"
14710
- })(["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;}"]);
14711
-
14712
- var img$7 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAP1BMVEUAAAA7FyVxQTsUEBPj5v////+5v/tCJDOOUlIiHBr1oJfptaO6dWr61rhzFy1bMTjoanMUNGQoXMQkn97+88DQ3IhAAAAAAXRSTlMAQObYZgAAAAFiS0dEBfhv6ccAAAAHdElNRQfmAw4VOBC7c5LYAAABM0lEQVQ4y3XRi5KDIAwFUAUkbrBgpP//rZsHVHQ009qZ3tPboNN0zmwzvcw8O5sX4y0NOg/Et3jRCXF+ziULorjkOQ9gE24dvuUAzq08DiCO4pe3WN7zCP56vmpubBReQYC11YPS86ySxxCsAABTSgjb5m4g8nfbxvFHBkH2OEEvAItVuCuIsgGgl+Gcr7kDXxhEAx55A2SQEEeQeZwUaIP8Tbo05B0RFPhItAjgj1w6cDnhLluDj+Egkh3pCCP4pKQAw1IPO0W9Nti5gW9RP2dKA3BZd2Dw+baYX+Nt4GM00O4S3kEpF6Alb2Bv4LeC3kkGfAW0/p0RPoJVKr63ghHsKuRh5DIUKOAlGOwrtt9fQekAEfmhZslHUDoglB0zjfkJigN7UnTQQ4GBWomoVhEN/AOPSBh38gy+fwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wMy0xNFQyMTo1NTo1MSswMDowMJcc0eEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDMtMTRUMjE6NTU6NTErMDA6MDDmQWldAAAAAElFTkSuQmCC';
14713
-
14714
- var NPCDialogType;
14715
- (function (NPCDialogType) {
14716
- NPCDialogType["TextOnly"] = "TextOnly";
14717
- NPCDialogType["TextAndThumbnail"] = "TextAndThumbnail";
14718
- })(NPCDialogType || (NPCDialogType = {}));
14719
- var NPCDialog = function NPCDialog(_ref) {
14720
- var text = _ref.text,
14721
- type = _ref.type,
14722
- _onClose = _ref.onClose,
14723
- imagePath = _ref.imagePath,
14724
- _ref$isQuestionDialog = _ref.isQuestionDialog,
14725
- isQuestionDialog = _ref$isQuestionDialog === void 0 ? false : _ref$isQuestionDialog,
14726
- questions = _ref.questions,
14727
- answers = _ref.answers;
14728
- return React.createElement(RPGUIContainer, {
14729
- type: RPGUIContainerTypes.FramedGold,
14730
- width: isQuestionDialog ? '600px' : '80%',
14731
- height: '180px'
14732
- }, isQuestionDialog && questions && answers ? React.createElement(React.Fragment, null, React.createElement(TextContainer$1, {
14733
- flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
14734
- }, React.createElement(QuestionDialog, {
14735
- questions: questions,
14736
- answers: answers,
14737
- onClose: function onClose() {
14738
- if (_onClose) {
14739
- _onClose();
14740
- }
14741
- }
14742
- })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
14743
- src: imagePath || img$7
14744
- }))) : React.createElement(React.Fragment, null, React.createElement(Container$g, null, React.createElement(TextContainer$1, {
14745
- flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
14746
- }, React.createElement(NPCDialogText, {
14747
- type: type,
14748
- text: text || 'No text provided.',
14749
- onClose: function onClose() {
14750
- if (_onClose) {
14751
- _onClose();
14687
+ noValidate: true
14688
+ }, React.createElement(StyledInput, {
14689
+ innerRef: inputRef,
14690
+ placeholder: "Enter quantity",
14691
+ type: "number",
14692
+ min: 1,
14693
+ max: quantity,
14694
+ value: value,
14695
+ onChange: function onChange(e) {
14696
+ if (Number(e.target.value) >= quantity) {
14697
+ setValue(quantity);
14698
+ return;
14752
14699
  }
14700
+ setValue(e.target.value);
14701
+ },
14702
+ onBlur: function onBlur(e) {
14703
+ var newValue = Math.max(1, Math.min(quantity, Number(e.target.value)));
14704
+ setValue(newValue);
14753
14705
  }
14754
- })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
14755
- src: imagePath || img$7
14756
- })))));
14706
+ }), React.createElement(RangeSlider, {
14707
+ type: RangeSliderType.Slider,
14708
+ valueMin: 1,
14709
+ valueMax: quantity,
14710
+ width: "100%",
14711
+ onChange: setValue,
14712
+ value: value
14713
+ }), React.createElement(Button, {
14714
+ buttonType: ButtonTypes.RPGUIButton,
14715
+ type: "submit"
14716
+ }, "Confirm")));
14757
14717
  };
14758
- var Container$g = /*#__PURE__*/styled.div.withConfig({
14759
- displayName: "NPCDialog__Container",
14760
- componentId: "sc-1b4aw74-0"
14761
- })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
14762
- var TextContainer$1 = /*#__PURE__*/styled.div.withConfig({
14763
- displayName: "NPCDialog__TextContainer",
14764
- componentId: "sc-1b4aw74-1"
14765
- })(["flex:", " 0 0;width:355px;"], function (_ref2) {
14766
- var flex = _ref2.flex;
14767
- return flex;
14768
- });
14769
- var ThumbnailContainer = /*#__PURE__*/styled.div.withConfig({
14770
- displayName: "NPCDialog__ThumbnailContainer",
14771
- componentId: "sc-1b4aw74-2"
14772
- })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
14773
- var NPCThumbnail = /*#__PURE__*/styled.img.withConfig({
14774
- displayName: "NPCDialog__NPCThumbnail",
14775
- componentId: "sc-1b4aw74-3"
14776
- })(["image-rendering:pixelated;height:128px;width:128px;"]);
14718
+ var StyledContainer = /*#__PURE__*/styled(RPGUIContainer).withConfig({
14719
+ displayName: "ItemQuantitySelector__StyledContainer",
14720
+ componentId: "sc-yfdtpn-0"
14721
+ })(["display:flex;flex-direction:column;align-items:center;"]);
14722
+ var StyledForm = /*#__PURE__*/styled.form.withConfig({
14723
+ displayName: "ItemQuantitySelector__StyledForm",
14724
+ componentId: "sc-yfdtpn-1"
14725
+ })(["display:flex;flex-direction:column;align-items:center;width:100%;"]);
14726
+ var StyledInput = /*#__PURE__*/styled(Input).withConfig({
14727
+ displayName: "ItemQuantitySelector__StyledInput",
14728
+ componentId: "sc-yfdtpn-2"
14729
+ })(["text-align:center;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}"]);
14730
+ var CloseButton$2 = /*#__PURE__*/styled.div.withConfig({
14731
+ displayName: "ItemQuantitySelector__CloseButton",
14732
+ componentId: "sc-yfdtpn-3"
14733
+ })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:0.8rem;"]);
14777
14734
 
14778
- var ImgSide;
14779
- (function (ImgSide) {
14780
- ImgSide["right"] = "right";
14781
- ImgSide["left"] = "left";
14782
- })(ImgSide || (ImgSide = {}));
14783
- var NPCMultiDialog = function NPCMultiDialog(_ref) {
14784
- var _textAndTypeArray$sli;
14785
- var _onClose = _ref.onClose,
14786
- textAndTypeArray = _ref.textAndTypeArray;
14787
- var _useState = useState(false),
14788
- showGoNextIndicator = _useState[0],
14789
- setShowGoNextIndicator = _useState[1];
14790
- var _useState2 = useState(0),
14791
- slide = _useState2[0],
14792
- setSlide = _useState2[1];
14793
- var onHandleSpacePress = function onHandleSpacePress(event) {
14794
- if (event.code === 'Space') {
14795
- if (slide < (textAndTypeArray == null ? void 0 : textAndTypeArray.length) - 1) {
14796
- setSlide(function (prev) {
14797
- return prev + 1;
14798
- });
14799
- } else {
14800
- // if there's no more text chunks, close the dialog
14801
- _onClose();
14802
- }
14735
+ var ShortcutsSetter = function ShortcutsSetter(_ref) {
14736
+ var setSettingShortcutIndex = _ref.setSettingShortcutIndex,
14737
+ settingShortcutIndex = _ref.settingShortcutIndex,
14738
+ shortcuts = _ref.shortcuts,
14739
+ removeShortcut = _ref.removeShortcut,
14740
+ atlasJSON = _ref.atlasJSON,
14741
+ atlasIMG = _ref.atlasIMG;
14742
+ var getContent = function getContent(index) {
14743
+ var _shortcuts$index, _shortcuts$index3;
14744
+ if (((_shortcuts$index = shortcuts[index]) == null ? void 0 : _shortcuts$index.type) === ShortcutType.Item) {
14745
+ var _shortcuts$index2;
14746
+ var _payload = (_shortcuts$index2 = shortcuts[index]) == null ? void 0 : _shortcuts$index2.payload;
14747
+ if (!_payload) return null;
14748
+ return React.createElement(SpriteFromAtlas, {
14749
+ atlasIMG: atlasIMG,
14750
+ atlasJSON: atlasJSON,
14751
+ spriteKey: getItemTextureKeyPath({
14752
+ key: _payload.texturePath,
14753
+ texturePath: _payload.texturePath,
14754
+ stackQty: _payload.stackQty || 1,
14755
+ isStackable: _payload.isStackable
14756
+ }, atlasJSON),
14757
+ width: 32,
14758
+ height: 32,
14759
+ imgScale: 1.6,
14760
+ imgStyle: {
14761
+ left: '5px'
14762
+ }
14763
+ });
14803
14764
  }
14765
+ var payload = (_shortcuts$index3 = shortcuts[index]) == null ? void 0 : _shortcuts$index3.payload;
14766
+ return React.createElement("span", null, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
14767
+ return word[0];
14768
+ }));
14804
14769
  };
14805
- useEffect(function () {
14806
- document.addEventListener('keydown', onHandleSpacePress);
14807
- return function () {
14808
- return document.removeEventListener('keydown', onHandleSpacePress);
14809
- };
14810
- }, [slide]);
14811
- return React.createElement(RPGUIContainer, {
14812
- type: RPGUIContainerTypes.FramedGold,
14813
- width: '50%',
14814
- height: '180px'
14815
- }, React.createElement(React.Fragment, null, React.createElement(Container$h, null, ((_textAndTypeArray$sli = textAndTypeArray[slide]) == null ? void 0 : _textAndTypeArray$sli.imageSide) === 'right' && React.createElement(React.Fragment, null, React.createElement(TextContainer$2, {
14816
- flex: '70%'
14817
- }, React.createElement(NPCDialogText, {
14818
- onStartStep: function onStartStep() {
14819
- return setShowGoNextIndicator(false);
14820
- },
14821
- onEndStep: function onEndStep() {
14822
- return setShowGoNextIndicator(true);
14823
- },
14824
- text: textAndTypeArray[slide].text || 'No text provided.',
14825
- onClose: function onClose() {
14826
- if (_onClose) {
14827
- _onClose();
14828
- }
14829
- }
14830
- })), React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
14831
- src: textAndTypeArray[slide].imagePath || img$7
14832
- })), showGoNextIndicator && React.createElement(PressSpaceIndicator$1, {
14833
- right: '10.5rem',
14834
- src: img$6
14835
- })), textAndTypeArray[slide].imageSide === 'left' && React.createElement(React.Fragment, null, React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
14836
- src: textAndTypeArray[slide].imagePath || img$7
14837
- })), React.createElement(TextContainer$2, {
14838
- flex: '70%'
14839
- }, React.createElement(NPCDialogText, {
14840
- onStartStep: function onStartStep() {
14841
- return setShowGoNextIndicator(false);
14842
- },
14843
- onEndStep: function onEndStep() {
14844
- return setShowGoNextIndicator(true);
14845
- },
14846
- text: textAndTypeArray[slide].text || 'No text provided.',
14847
- onClose: function onClose() {
14848
- if (_onClose) {
14849
- _onClose();
14850
- }
14851
- }
14852
- })), showGoNextIndicator && React.createElement(PressSpaceIndicator$1, {
14853
- right: '1rem',
14854
- src: img$6
14855
- }))), ")"));
14770
+ return React.createElement(Container$e, null, React.createElement("p", null, "Shortcuts:"), React.createElement(List, {
14771
+ id: "shortcuts_list"
14772
+ }, Array.from({
14773
+ length: 6
14774
+ }).map(function (_, i) {
14775
+ return React.createElement(Shortcut, {
14776
+ key: i,
14777
+ onPointerDown: function onPointerDown() {
14778
+ if (settingShortcutIndex !== -1) setSettingShortcutIndex(-1);
14779
+ removeShortcut(i);
14780
+ if (settingShortcutIndex === -1 && (!shortcuts[i] || shortcuts[i].type === ShortcutType.None)) setSettingShortcutIndex(i);
14781
+ },
14782
+ disabled: settingShortcutIndex !== -1 && settingShortcutIndex !== i,
14783
+ isBeingSet: settingShortcutIndex === i,
14784
+ id: "shortcutSetter_" + i
14785
+ }, getContent(i));
14786
+ })));
14856
14787
  };
14857
- var Container$h = /*#__PURE__*/styled.div.withConfig({
14858
- displayName: "NPCMultiDialog__Container",
14859
- componentId: "sc-rvu5wg-0"
14860
- })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
14861
- var TextContainer$2 = /*#__PURE__*/styled.div.withConfig({
14862
- displayName: "NPCMultiDialog__TextContainer",
14863
- componentId: "sc-rvu5wg-1"
14864
- })(["flex:", " 0 0;width:355px;"], function (_ref2) {
14865
- var flex = _ref2.flex;
14866
- return flex;
14867
- });
14868
- var ThumbnailContainer$1 = /*#__PURE__*/styled.div.withConfig({
14869
- displayName: "NPCMultiDialog__ThumbnailContainer",
14870
- componentId: "sc-rvu5wg-2"
14871
- })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
14872
- var NPCThumbnail$1 = /*#__PURE__*/styled.img.withConfig({
14873
- displayName: "NPCMultiDialog__NPCThumbnail",
14874
- componentId: "sc-rvu5wg-3"
14875
- })(["image-rendering:pixelated;height:128px;width:128px;"]);
14876
- var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
14877
- displayName: "NPCMultiDialog__PressSpaceIndicator",
14878
- componentId: "sc-rvu5wg-4"
14879
- })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref3) {
14880
- var right = _ref3.right;
14881
- return right;
14882
- });
14788
+ var Container$e = /*#__PURE__*/styled.div.withConfig({
14789
+ displayName: "ShortcutsSetter__Container",
14790
+ componentId: "sc-xuouuf-0"
14791
+ })(["p{margin:0;margin-left:0.5rem;}"]);
14792
+ var Shortcut = /*#__PURE__*/styled.button.withConfig({
14793
+ displayName: "ShortcutsSetter__Shortcut",
14794
+ componentId: "sc-xuouuf-1"
14795
+ })(["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) {
14796
+ var isBeingSet = _ref2.isBeingSet;
14797
+ return isBeingSet ? uiColors.yellow : uiColors.darkGray;
14798
+ }, uiColors.darkGray, uiColors.gray);
14799
+ var List = /*#__PURE__*/styled.div.withConfig({
14800
+ displayName: "ShortcutsSetter__List",
14801
+ componentId: "sc-xuouuf-2"
14802
+ })(["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;"]);
14883
14803
 
14884
- var HistoryDialog = function HistoryDialog(_ref) {
14885
- var backgroundImgPath = _ref.backgroundImgPath,
14886
- fullCoverBackground = _ref.fullCoverBackground,
14887
- questions = _ref.questions,
14888
- answers = _ref.answers,
14889
- text = _ref.text,
14890
- imagePath = _ref.imagePath,
14891
- textAndTypeArray = _ref.textAndTypeArray,
14892
- onClose = _ref.onClose;
14893
- var _useState = useState(0),
14894
- img = _useState[0],
14895
- setImage = _useState[1];
14896
- var onHandleSpacePress = function onHandleSpacePress(event) {
14897
- if (event.code === 'Space') {
14898
- if (img < (backgroundImgPath == null ? void 0 : backgroundImgPath.length) - 1) {
14899
- setImage(function (prev) {
14900
- return prev + 1;
14901
- });
14902
- } else {
14903
- // if there's no more text chunks, close the dialog
14904
- onClose();
14905
- }
14804
+ var ItemContainer$1 = function ItemContainer(_ref) {
14805
+ var itemContainer = _ref.itemContainer,
14806
+ onClose = _ref.onClose,
14807
+ _onMouseOver = _ref.onMouseOver,
14808
+ _onSelected = _ref.onSelected,
14809
+ onItemClick = _ref.onItemClick,
14810
+ type = _ref.type,
14811
+ atlasJSON = _ref.atlasJSON,
14812
+ atlasIMG = _ref.atlasIMG,
14813
+ _ref$disableContextMe = _ref.disableContextMenu,
14814
+ disableContextMenu = _ref$disableContextMe === void 0 ? false : _ref$disableContextMe,
14815
+ onItemDragEnd = _ref.onItemDragEnd,
14816
+ onItemDragStart = _ref.onItemDragStart,
14817
+ onItemPlaceDrop = _ref.onItemPlaceDrop,
14818
+ _onOutsideDrop = _ref.onOutsideDrop,
14819
+ checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
14820
+ initialPosition = _ref.initialPosition,
14821
+ checkIfItemShouldDragEnd = _ref.checkIfItemShouldDragEnd,
14822
+ scale = _ref.scale,
14823
+ shortcuts = _ref.shortcuts,
14824
+ setItemShortcut = _ref.setItemShortcut,
14825
+ removeShortcut = _ref.removeShortcut,
14826
+ equipmentSet = _ref.equipmentSet,
14827
+ isDepotSystem = _ref.isDepotSystem,
14828
+ onPositionChangeEnd = _ref.onPositionChangeEnd,
14829
+ onPositionChangeStart = _ref.onPositionChangeStart;
14830
+ var _useState = useState({
14831
+ isOpen: false,
14832
+ maxQuantity: 1,
14833
+ callback: function callback(_quantity) {}
14834
+ }),
14835
+ quantitySelect = _useState[0],
14836
+ setQuantitySelect = _useState[1];
14837
+ var _useState2 = useState(-1),
14838
+ settingShortcutIndex = _useState2[0],
14839
+ setSettingShortcutIndex = _useState2[1];
14840
+ var handleSetShortcut = function handleSetShortcut(item, index) {
14841
+ if (item.type === ItemType.Consumable || item.type === ItemType.Tool) {
14842
+ setItemShortcut == null ? void 0 : setItemShortcut(item.key, index);
14906
14843
  }
14907
14844
  };
14908
- useEffect(function () {
14909
- document.addEventListener('keydown', onHandleSpacePress);
14910
- return function () {
14911
- return document.removeEventListener('keydown', onHandleSpacePress);
14912
- };
14913
- }, [backgroundImgPath]);
14914
- return React.createElement(BackgroundContainer, {
14915
- imgPath: backgroundImgPath[img],
14916
- fullImg: fullCoverBackground
14917
- }, React.createElement(DialogContainer, null, textAndTypeArray ? React.createElement(NPCMultiDialog, {
14918
- textAndTypeArray: textAndTypeArray,
14919
- onClose: onClose
14920
- }) : questions && answers ? React.createElement(QuestionDialog, {
14921
- questions: questions,
14922
- answers: answers,
14923
- onClose: onClose
14924
- }) : text && imagePath ? React.createElement(NPCDialog, {
14925
- text: text,
14926
- imagePath: imagePath,
14927
- onClose: onClose,
14928
- type: NPCDialogType.TextAndThumbnail
14929
- }) : React.createElement(NPCDialog, {
14930
- text: text,
14845
+ var onRenderSlots = function onRenderSlots() {
14846
+ var slots = [];
14847
+ for (var i = 0; i < itemContainer.slotQty; i++) {
14848
+ var _itemContainer$slots;
14849
+ slots.push(React.createElement(ItemSlot, {
14850
+ isContextMenuDisabled: disableContextMenu,
14851
+ key: i,
14852
+ slotIndex: i,
14853
+ item: ((_itemContainer$slots = itemContainer.slots) == null ? void 0 : _itemContainer$slots[i]) || null,
14854
+ itemContainerType: type,
14855
+ onMouseOver: function onMouseOver(event, slotIndex, item) {
14856
+ if (_onMouseOver) _onMouseOver(event, slotIndex, item);
14857
+ },
14858
+ onPointerDown: function onPointerDown(itemType, containerType, item) {
14859
+ if (settingShortcutIndex !== -1) {
14860
+ setSettingShortcutIndex(-1);
14861
+ handleSetShortcut(item, settingShortcutIndex);
14862
+ } else if (onItemClick) onItemClick(item, itemType, containerType);
14863
+ },
14864
+ onSelected: function onSelected(optionId, item) {
14865
+ if (_onSelected) _onSelected(optionId, item);
14866
+ },
14867
+ onDragStart: function onDragStart(item, slotIndex, itemContainerType) {
14868
+ if (onItemDragStart) onItemDragStart(item, slotIndex, itemContainerType);
14869
+ },
14870
+ onDragEnd: function onDragEnd(quantity) {
14871
+ if (onItemDragEnd) onItemDragEnd(quantity);
14872
+ },
14873
+ dragScale: scale,
14874
+ checkIfItemCanBeMoved: checkIfItemCanBeMoved,
14875
+ checkIfItemShouldDragEnd: checkIfItemShouldDragEnd,
14876
+ openQuantitySelector: function openQuantitySelector(maxQuantity, callback) {
14877
+ setQuantitySelect({
14878
+ isOpen: true,
14879
+ maxQuantity: maxQuantity,
14880
+ callback: callback
14881
+ });
14882
+ },
14883
+ onPlaceDrop: function onPlaceDrop(item, slotIndex, itemContainerType) {
14884
+ if (onItemPlaceDrop) onItemPlaceDrop(item, slotIndex, itemContainerType);
14885
+ },
14886
+ onOutsideDrop: function onOutsideDrop(item, position) {
14887
+ if (_onOutsideDrop) _onOutsideDrop(item, position);
14888
+ },
14889
+ atlasIMG: atlasIMG,
14890
+ atlasJSON: atlasJSON,
14891
+ isSelectingShortcut: settingShortcutIndex !== -1,
14892
+ equipmentSet: equipmentSet,
14893
+ setItemShortcut: type === ItemContainerType.Inventory ? handleSetShortcut : undefined,
14894
+ isDepotSystem: isDepotSystem
14895
+ }));
14896
+ }
14897
+ return slots;
14898
+ };
14899
+ return React.createElement(React.Fragment, null, React.createElement(SlotsContainer, {
14900
+ title: itemContainer.name || 'Container',
14931
14901
  onClose: onClose,
14932
- type: NPCDialogType.TextOnly
14933
- })));
14902
+ initialPosition: initialPosition,
14903
+ scale: scale,
14904
+ onPositionChangeEnd: onPositionChangeEnd,
14905
+ onPositionChangeStart: onPositionChangeStart
14906
+ }, type === ItemContainerType.Inventory && shortcuts && removeShortcut && React.createElement(ShortcutsSetter, {
14907
+ setSettingShortcutIndex: setSettingShortcutIndex,
14908
+ settingShortcutIndex: settingShortcutIndex,
14909
+ shortcuts: shortcuts,
14910
+ removeShortcut: removeShortcut,
14911
+ atlasIMG: atlasIMG,
14912
+ atlasJSON: atlasJSON
14913
+ }), React.createElement(ItemsContainer, {
14914
+ className: "item-container-body"
14915
+ }, onRenderSlots())), quantitySelect.isOpen && React.createElement(ModalPortal, null, React.createElement(QuantitySelectorContainer, null, React.createElement(ItemQuantitySelector, {
14916
+ quantity: quantitySelect.maxQuantity,
14917
+ onConfirm: function onConfirm(quantity) {
14918
+ quantitySelect.callback(quantity);
14919
+ setQuantitySelect({
14920
+ isOpen: false,
14921
+ maxQuantity: 1,
14922
+ callback: function callback() {}
14923
+ });
14924
+ },
14925
+ onClose: function onClose() {
14926
+ quantitySelect.callback(-1);
14927
+ setQuantitySelect({
14928
+ isOpen: false,
14929
+ maxQuantity: 1,
14930
+ callback: function callback() {}
14931
+ });
14932
+ }
14933
+ }))));
14934
14934
  };
14935
- var BackgroundContainer = /*#__PURE__*/styled.div.withConfig({
14936
- displayName: "HistoryDialog__BackgroundContainer",
14937
- componentId: "sc-u6oe75-0"
14938
- })(["width:100%;height:100%;background-image:url(", ");background-size:", ";display:flex;justify-content:space-evenly;align-items:center;"], function (props) {
14939
- return props.imgPath;
14940
- }, function (props) {
14941
- return props.imgPath ? 'cover' : 'auto';
14942
- });
14943
- var DialogContainer = /*#__PURE__*/styled.div.withConfig({
14944
- displayName: "HistoryDialog__DialogContainer",
14945
- componentId: "sc-u6oe75-1"
14946
- })(["display:flex;justify-content:center;padding-top:200px;"]);
14935
+ var ItemsContainer = /*#__PURE__*/styled.div.withConfig({
14936
+ displayName: "ItemContainer__ItemsContainer",
14937
+ componentId: "sc-15y5p9l-0"
14938
+ })(["display:flex;justify-content:center;flex-wrap:wrap;"]);
14939
+ var QuantitySelectorContainer = /*#__PURE__*/styled.div.withConfig({
14940
+ displayName: "ItemContainer__QuantitySelectorContainer",
14941
+ componentId: "sc-15y5p9l-1"
14942
+ })(["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);"]);
14947
14943
 
14948
- var SlotsContainer = function SlotsContainer(_ref) {
14949
- var children = _ref.children,
14950
- title = _ref.title,
14944
+ var ItemSelector = function ItemSelector(_ref) {
14945
+ var atlasIMG = _ref.atlasIMG,
14946
+ atlasJSON = _ref.atlasJSON,
14947
+ options = _ref.options,
14951
14948
  onClose = _ref.onClose,
14952
- _onPositionChange = _ref.onPositionChange,
14953
- _onPositionChangeEnd = _ref.onPositionChangeEnd,
14954
- _onPositionChangeStart = _ref.onPositionChangeStart,
14955
- onOutsideClick = _ref.onOutsideClick,
14956
- initialPosition = _ref.initialPosition,
14957
- scale = _ref.scale;
14949
+ onSelect = _ref.onSelect;
14950
+ var _useState = useState(),
14951
+ selectedValue = _useState[0],
14952
+ setSelectedValue = _useState[1];
14953
+ var handleClick = function handleClick() {
14954
+ var element = document.querySelector("input[name='test']:checked");
14955
+ var elementValue = element.value;
14956
+ setSelectedValue(elementValue);
14957
+ };
14958
+ useEffect(function () {
14959
+ if (selectedValue) {
14960
+ onSelect(selectedValue);
14961
+ }
14962
+ }, [selectedValue]);
14958
14963
  return React.createElement(DraggableContainer, {
14959
- title: title,
14960
14964
  type: RPGUIContainerTypes.Framed,
14965
+ width: "500px",
14966
+ cancelDrag: ".equipment-container-body .arrow-selector",
14961
14967
  onCloseButton: function onCloseButton() {
14962
14968
  if (onClose) {
14963
14969
  onClose();
14964
14970
  }
14965
- },
14966
- width: "400px",
14967
- cancelDrag: ".item-container-body, #shortcuts_list",
14968
- onPositionChange: function onPositionChange(_ref2) {
14969
- var x = _ref2.x,
14970
- y = _ref2.y;
14971
- if (_onPositionChange) {
14972
- _onPositionChange({
14973
- x: x,
14974
- y: y
14975
- });
14976
- }
14977
- },
14978
- onPositionChangeEnd: function onPositionChangeEnd(_ref3) {
14979
- var x = _ref3.x,
14980
- y = _ref3.y;
14981
- if (_onPositionChangeEnd) {
14982
- _onPositionChangeEnd({
14983
- x: x,
14984
- y: y
14985
- });
14986
- }
14987
- },
14988
- onPositionChangeStart: function onPositionChangeStart(_ref4) {
14989
- var x = _ref4.x,
14990
- y = _ref4.y;
14991
- if (_onPositionChangeStart) {
14992
- _onPositionChangeStart({
14993
- x: x,
14994
- y: y
14995
- });
14996
- }
14997
- },
14998
- onOutsideClick: onOutsideClick,
14999
- initialPosition: initialPosition,
15000
- scale: scale
15001
- }, children);
15002
- };
15003
-
15004
- var RangeSliderType;
15005
- (function (RangeSliderType) {
15006
- RangeSliderType["Slider"] = "rpgui-slider";
15007
- RangeSliderType["GoldSlider"] = "rpgui-slider golden";
15008
- })(RangeSliderType || (RangeSliderType = {}));
15009
- var RangeSlider = function RangeSlider(_ref) {
15010
- var type = _ref.type,
15011
- valueMin = _ref.valueMin,
15012
- valueMax = _ref.valueMax,
15013
- width = _ref.width,
15014
- _onChange = _ref.onChange,
15015
- value = _ref.value;
15016
- var sliderId = v4();
15017
- var containerRef = useRef(null);
15018
- var _useState = useState(0),
15019
- left = _useState[0],
15020
- setLeft = _useState[1];
15021
- useEffect(function () {
15022
- var _containerRef$current;
15023
- var calculatedWidth = ((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.clientWidth) || 0;
15024
- setLeft(Math.max((value - valueMin) / (valueMax - valueMin) * (calculatedWidth - 35) + 10));
15025
- }, [value, valueMin, valueMax]);
15026
- var typeClass = type === RangeSliderType.GoldSlider ? 'golden' : '';
15027
- return React.createElement("div", {
15028
- style: {
15029
- width: width,
15030
- position: 'relative'
15031
- },
15032
- className: "rpgui-slider-container " + typeClass,
15033
- id: "rpgui-slider-" + sliderId,
15034
- ref: containerRef
15035
- }, React.createElement("div", {
15036
- style: {
15037
- pointerEvents: 'none'
15038
14971
  }
15039
14972
  }, React.createElement("div", {
15040
- className: "rpgui-slider-track " + typeClass
15041
- }), React.createElement("div", {
15042
- className: "rpgui-slider-left-edge " + typeClass
15043
- }), React.createElement("div", {
15044
- className: "rpgui-slider-right-edge " + typeClass
15045
- }), React.createElement("div", {
15046
- className: "rpgui-slider-thumb " + typeClass,
15047
14973
  style: {
15048
- left: left
14974
+ width: '100%'
15049
14975
  }
15050
- })), React.createElement(Input$1, {
15051
- type: "range",
15052
- style: {
15053
- width: width
15054
- },
15055
- min: valueMin,
15056
- max: valueMax,
15057
- onChange: function onChange(e) {
15058
- return _onChange(Number(e.target.value));
15059
- },
15060
- value: value,
15061
- className: "rpgui-cursor-point"
15062
- }));
14976
+ }, React.createElement(Title$3, null, 'Harvesting instruments'), React.createElement(Subtitle$1, null, 'Use the tool, you need it'), React.createElement("hr", {
14977
+ className: "golden"
14978
+ })), React.createElement(RadioInputScroller$1, null, options == null ? void 0 : options.map(function (option, index) {
14979
+ return React.createElement(RadioOptionsWrapper$1, {
14980
+ key: index
14981
+ }, React.createElement(SpriteAtlasWrapper$1, null, React.createElement(SpriteFromAtlas, {
14982
+ atlasIMG: atlasIMG,
14983
+ atlasJSON: atlasJSON,
14984
+ spriteKey: option.imageKey,
14985
+ imgScale: 3
14986
+ })), React.createElement("div", null, React.createElement("input", {
14987
+ className: "rpgui-radio",
14988
+ type: "radio",
14989
+ value: option.name,
14990
+ name: "test"
14991
+ }), React.createElement("label", {
14992
+ onPointerDown: handleClick,
14993
+ style: {
14994
+ display: 'flex',
14995
+ alignItems: 'center'
14996
+ }
14997
+ }, option.name, " ", React.createElement("br", null), option.description)));
14998
+ })), React.createElement(ButtonWrapper$1, null, React.createElement(Button, {
14999
+ buttonType: ButtonTypes.RPGUIButton,
15000
+ onPointerDown: onClose
15001
+ }, "Cancel"), React.createElement(Button, {
15002
+ buttonType: ButtonTypes.RPGUIButton
15003
+ }, "Select")));
15063
15004
  };
15064
- var Input$1 = /*#__PURE__*/styled.input.withConfig({
15065
- displayName: "RangeSlider__Input",
15066
- componentId: "sc-v8mte9-0"
15067
- })(["opacity:0;position:absolute;width:100%;height:100%;top:0;left:0;margin-top:-5px;"]);
15005
+ var Title$3 = /*#__PURE__*/styled.h1.withConfig({
15006
+ displayName: "ItemSelector__Title",
15007
+ componentId: "sc-gptoxp-0"
15008
+ })(["font-size:0.6rem;color:yellow !important;"]);
15009
+ var Subtitle$1 = /*#__PURE__*/styled.h1.withConfig({
15010
+ displayName: "ItemSelector__Subtitle",
15011
+ componentId: "sc-gptoxp-1"
15012
+ })(["font-size:0.4rem;color:yellow !important;"]);
15013
+ var RadioInputScroller$1 = /*#__PURE__*/styled.div.withConfig({
15014
+ displayName: "ItemSelector__RadioInputScroller",
15015
+ componentId: "sc-gptoxp-2"
15016
+ })(["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;"]);
15017
+ var SpriteAtlasWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15018
+ displayName: "ItemSelector__SpriteAtlasWrapper",
15019
+ componentId: "sc-gptoxp-3"
15020
+ })(["margin-right:40px;"]);
15021
+ var RadioOptionsWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15022
+ displayName: "ItemSelector__RadioOptionsWrapper",
15023
+ componentId: "sc-gptoxp-4"
15024
+ })(["display:flex;align-items:stretch;margin-bottom:40px;"]);
15025
+ var ButtonWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15026
+ displayName: "ItemSelector__ButtonWrapper",
15027
+ componentId: "sc-gptoxp-5"
15028
+ })(["display:flex;justify-content:space-around;padding-top:20px;width:100%;"]);
15068
15029
 
15069
- var ItemQuantitySelector = function ItemQuantitySelector(_ref) {
15070
- var quantity = _ref.quantity,
15071
- onConfirm = _ref.onConfirm,
15072
- onClose = _ref.onClose;
15073
- var _useState = useState(quantity),
15074
- value = _useState[0],
15075
- setValue = _useState[1];
15076
- var inputRef = useRef(null);
15077
- useEffect(function () {
15078
- if (inputRef.current) {
15079
- inputRef.current.focus();
15080
- inputRef.current.select();
15081
- var closeSelector = function closeSelector(e) {
15082
- if (e.key === 'Escape') {
15083
- onClose();
15084
- }
15085
- };
15086
- document.addEventListener('keydown', closeSelector);
15087
- return function () {
15088
- document.removeEventListener('keydown', closeSelector);
15089
- };
15090
- }
15091
- return function () {};
15092
- }, []);
15093
- return React.createElement(StyledContainer, {
15094
- type: RPGUIContainerTypes.Framed,
15095
- width: "25rem"
15096
- }, React.createElement(CloseButton$2, {
15097
- className: "container-close",
15098
- onPointerDown: onClose
15099
- }, "X"), React.createElement("h2", null, "Select quantity to move"), React.createElement(StyledForm, {
15030
+ var ListMenu = function ListMenu(_ref) {
15031
+ var options = _ref.options,
15032
+ onSelected = _ref.onSelected,
15033
+ x = _ref.x,
15034
+ y = _ref.y;
15035
+ return React.createElement(Container$f, {
15036
+ x: x,
15037
+ y: y
15038
+ }, React.createElement("ul", {
15039
+ className: "rpgui-list-imp",
15100
15040
  style: {
15101
- width: '100%'
15102
- },
15103
- onSubmit: function onSubmit(e) {
15104
- e.preventDefault();
15105
- var numberValue = Number(value);
15106
- if (Number.isNaN(numberValue)) {
15107
- return;
15108
- }
15109
- onConfirm(Math.max(1, Math.min(quantity, numberValue)));
15110
- },
15111
- noValidate: true
15112
- }, React.createElement(StyledInput, {
15113
- innerRef: inputRef,
15114
- placeholder: "Enter quantity",
15115
- type: "number",
15116
- min: 1,
15117
- max: quantity,
15118
- value: value,
15119
- onChange: function onChange(e) {
15120
- if (Number(e.target.value) >= quantity) {
15121
- setValue(quantity);
15122
- return;
15123
- }
15124
- setValue(e.target.value);
15125
- },
15126
- onBlur: function onBlur(e) {
15127
- var newValue = Math.max(1, Math.min(quantity, Number(e.target.value)));
15128
- setValue(newValue);
15041
+ overflow: 'hidden'
15129
15042
  }
15130
- }), React.createElement(RangeSlider, {
15131
- type: RangeSliderType.Slider,
15132
- valueMin: 1,
15133
- valueMax: quantity,
15134
- width: "100%",
15135
- onChange: setValue,
15136
- value: value
15137
- }), React.createElement(Button, {
15138
- buttonType: ButtonTypes.RPGUIButton,
15139
- type: "submit"
15140
- }, "Confirm")));
15043
+ }, options.map(function (params, index) {
15044
+ return React.createElement(ListElement$1, {
15045
+ key: (params == null ? void 0 : params.id) || index,
15046
+ onPointerDown: function onPointerDown() {
15047
+ onSelected(params == null ? void 0 : params.id);
15048
+ }
15049
+ }, (params == null ? void 0 : params.text) || 'No text');
15050
+ })));
15141
15051
  };
15142
- var StyledContainer = /*#__PURE__*/styled(RPGUIContainer).withConfig({
15143
- displayName: "ItemQuantitySelector__StyledContainer",
15144
- componentId: "sc-yfdtpn-0"
15145
- })(["display:flex;flex-direction:column;align-items:center;"]);
15146
- var StyledForm = /*#__PURE__*/styled.form.withConfig({
15147
- displayName: "ItemQuantitySelector__StyledForm",
15148
- componentId: "sc-yfdtpn-1"
15149
- })(["display:flex;flex-direction:column;align-items:center;width:100%;"]);
15150
- var StyledInput = /*#__PURE__*/styled(Input).withConfig({
15151
- displayName: "ItemQuantitySelector__StyledInput",
15152
- componentId: "sc-yfdtpn-2"
15153
- })(["text-align:center;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}"]);
15154
- var CloseButton$2 = /*#__PURE__*/styled.div.withConfig({
15155
- displayName: "ItemQuantitySelector__CloseButton",
15156
- componentId: "sc-yfdtpn-3"
15157
- })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:0.8rem;"]);
15158
-
15159
- var ShortcutsSetter = function ShortcutsSetter(_ref) {
15160
- var setSettingShortcutIndex = _ref.setSettingShortcutIndex,
15161
- settingShortcutIndex = _ref.settingShortcutIndex,
15162
- shortcuts = _ref.shortcuts,
15163
- removeShortcut = _ref.removeShortcut,
15164
- atlasJSON = _ref.atlasJSON,
15165
- atlasIMG = _ref.atlasIMG;
15166
- var getContent = function getContent(index) {
15167
- var _shortcuts$index, _shortcuts$index3;
15168
- if (((_shortcuts$index = shortcuts[index]) == null ? void 0 : _shortcuts$index.type) === ShortcutType.Item) {
15169
- var _shortcuts$index2;
15170
- var _payload = (_shortcuts$index2 = shortcuts[index]) == null ? void 0 : _shortcuts$index2.payload;
15171
- if (!_payload) return null;
15172
- return React.createElement(SpriteFromAtlas, {
15173
- atlasIMG: atlasIMG,
15174
- atlasJSON: atlasJSON,
15175
- spriteKey: getItemTextureKeyPath({
15176
- key: _payload.texturePath,
15177
- texturePath: _payload.texturePath,
15178
- stackQty: _payload.stackQty || 1,
15179
- isStackable: _payload.isStackable
15180
- }, atlasJSON),
15181
- width: 32,
15182
- height: 32,
15183
- imgScale: 1.6,
15184
- imgStyle: {
15185
- left: '5px'
15186
- }
15187
- });
15188
- }
15189
- var payload = (_shortcuts$index3 = shortcuts[index]) == null ? void 0 : _shortcuts$index3.payload;
15190
- return React.createElement("span", null, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
15191
- return word[0];
15192
- }));
15193
- };
15194
- return React.createElement(Container$i, null, React.createElement("p", null, "Shortcuts:"), React.createElement(List, {
15195
- id: "shortcuts_list"
15196
- }, Array.from({
15197
- length: 6
15198
- }).map(function (_, i) {
15199
- return React.createElement(Shortcut, {
15200
- key: i,
15201
- onPointerDown: function onPointerDown() {
15202
- if (settingShortcutIndex !== -1) setSettingShortcutIndex(-1);
15203
- removeShortcut(i);
15204
- if (settingShortcutIndex === -1 && (!shortcuts[i] || shortcuts[i].type === ShortcutType.None)) setSettingShortcutIndex(i);
15205
- },
15206
- disabled: settingShortcutIndex !== -1 && settingShortcutIndex !== i,
15207
- isBeingSet: settingShortcutIndex === i,
15208
- id: "shortcutSetter_" + i
15209
- }, getContent(i));
15210
- })));
15211
- };
15212
- var Container$i = /*#__PURE__*/styled.div.withConfig({
15213
- displayName: "ShortcutsSetter__Container",
15214
- componentId: "sc-xuouuf-0"
15215
- })(["p{margin:0;margin-left:0.5rem;}"]);
15216
- var Shortcut = /*#__PURE__*/styled.button.withConfig({
15217
- displayName: "ShortcutsSetter__Shortcut",
15218
- componentId: "sc-xuouuf-1"
15219
- })(["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) {
15220
- var isBeingSet = _ref2.isBeingSet;
15221
- return isBeingSet ? uiColors.yellow : uiColors.darkGray;
15222
- }, uiColors.darkGray, uiColors.gray);
15223
- var List = /*#__PURE__*/styled.div.withConfig({
15224
- displayName: "ShortcutsSetter__List",
15225
- componentId: "sc-xuouuf-2"
15226
- })(["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;"]);
15052
+ var Container$f = /*#__PURE__*/styled.div.withConfig({
15053
+ displayName: "ListMenu__Container",
15054
+ componentId: "sc-i9097t-0"
15055
+ })(["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) {
15056
+ return props.y || 0;
15057
+ }, function (props) {
15058
+ return props.x || 0;
15059
+ }, uiFonts.size.xsmall);
15060
+ var ListElement$1 = /*#__PURE__*/styled.li.withConfig({
15061
+ displayName: "ListMenu__ListElement",
15062
+ componentId: "sc-i9097t-1"
15063
+ })(["margin-right:0.5rem;"]);
15227
15064
 
15228
- var ItemContainer$1 = function ItemContainer(_ref) {
15229
- var itemContainer = _ref.itemContainer,
15230
- onClose = _ref.onClose,
15231
- _onMouseOver = _ref.onMouseOver,
15232
- _onSelected = _ref.onSelected,
15233
- onItemClick = _ref.onItemClick,
15234
- type = _ref.type,
15235
- atlasJSON = _ref.atlasJSON,
15065
+ var MarketplaceRows = function MarketplaceRows(_ref) {
15066
+ var atlasJSON = _ref.atlasJSON,
15236
15067
  atlasIMG = _ref.atlasIMG,
15237
- _ref$disableContextMe = _ref.disableContextMenu,
15238
- disableContextMenu = _ref$disableContextMe === void 0 ? false : _ref$disableContextMe,
15239
- onItemDragEnd = _ref.onItemDragEnd,
15240
- onItemDragStart = _ref.onItemDragStart,
15241
- onItemPlaceDrop = _ref.onItemPlaceDrop,
15242
- _onOutsideDrop = _ref.onOutsideDrop,
15243
- checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
15244
- initialPosition = _ref.initialPosition,
15245
- checkIfItemShouldDragEnd = _ref.checkIfItemShouldDragEnd,
15246
- scale = _ref.scale,
15247
- shortcuts = _ref.shortcuts,
15248
- setItemShortcut = _ref.setItemShortcut,
15249
- removeShortcut = _ref.removeShortcut,
15068
+ item = _ref.item,
15069
+ itemPrice = _ref.itemPrice,
15250
15070
  equipmentSet = _ref.equipmentSet,
15251
- isDepotSystem = _ref.isDepotSystem,
15252
- onPositionChangeEnd = _ref.onPositionChangeEnd,
15253
- onPositionChangeStart = _ref.onPositionChangeStart;
15254
- var _useState = useState({
15255
- isOpen: false,
15256
- maxQuantity: 1,
15257
- callback: function callback(_quantity) {}
15258
- }),
15259
- quantitySelect = _useState[0],
15260
- setQuantitySelect = _useState[1];
15261
- var _useState2 = useState(-1),
15262
- settingShortcutIndex = _useState2[0],
15263
- setSettingShortcutIndex = _useState2[1];
15264
- var handleSetShortcut = function handleSetShortcut(item, index) {
15265
- if (item.type === ItemType.Consumable || item.type === ItemType.Tool) {
15266
- setItemShortcut == null ? void 0 : setItemShortcut(item.key, index);
15267
- }
15268
- };
15269
- var onRenderSlots = function onRenderSlots() {
15270
- var slots = [];
15271
- for (var i = 0; i < itemContainer.slotQty; i++) {
15272
- var _itemContainer$slots;
15273
- slots.push(React.createElement(ItemSlot, {
15274
- isContextMenuDisabled: disableContextMenu,
15275
- key: i,
15276
- slotIndex: i,
15277
- item: ((_itemContainer$slots = itemContainer.slots) == null ? void 0 : _itemContainer$slots[i]) || null,
15278
- itemContainerType: type,
15279
- onMouseOver: function onMouseOver(event, slotIndex, item) {
15280
- if (_onMouseOver) _onMouseOver(event, slotIndex, item);
15281
- },
15282
- onPointerDown: function onPointerDown(itemType, containerType, item) {
15283
- if (settingShortcutIndex !== -1) {
15284
- setSettingShortcutIndex(-1);
15285
- handleSetShortcut(item, settingShortcutIndex);
15286
- } else if (onItemClick) onItemClick(item, itemType, containerType);
15287
- },
15288
- onSelected: function onSelected(optionId, item) {
15289
- if (_onSelected) _onSelected(optionId, item);
15290
- },
15291
- onDragStart: function onDragStart(item, slotIndex, itemContainerType) {
15292
- if (onItemDragStart) onItemDragStart(item, slotIndex, itemContainerType);
15293
- },
15294
- onDragEnd: function onDragEnd(quantity) {
15295
- if (onItemDragEnd) onItemDragEnd(quantity);
15296
- },
15297
- dragScale: scale,
15298
- checkIfItemCanBeMoved: checkIfItemCanBeMoved,
15299
- checkIfItemShouldDragEnd: checkIfItemShouldDragEnd,
15300
- openQuantitySelector: function openQuantitySelector(maxQuantity, callback) {
15301
- setQuantitySelect({
15302
- isOpen: true,
15303
- maxQuantity: maxQuantity,
15304
- callback: callback
15305
- });
15306
- },
15307
- onPlaceDrop: function onPlaceDrop(item, slotIndex, itemContainerType) {
15308
- if (onItemPlaceDrop) onItemPlaceDrop(item, slotIndex, itemContainerType);
15309
- },
15310
- onOutsideDrop: function onOutsideDrop(item, position) {
15311
- if (_onOutsideDrop) _onOutsideDrop(item, position);
15312
- },
15313
- atlasIMG: atlasIMG,
15314
- atlasJSON: atlasJSON,
15315
- isSelectingShortcut: settingShortcutIndex !== -1,
15316
- equipmentSet: equipmentSet,
15317
- setItemShortcut: type === ItemContainerType.Inventory ? handleSetShortcut : undefined,
15318
- isDepotSystem: isDepotSystem
15319
- }));
15320
- }
15321
- return slots;
15322
- };
15323
- return React.createElement(React.Fragment, null, React.createElement(SlotsContainer, {
15324
- title: itemContainer.name || 'Container',
15325
- onClose: onClose,
15326
- initialPosition: initialPosition,
15327
- scale: scale,
15328
- onPositionChangeEnd: onPositionChangeEnd,
15329
- onPositionChangeStart: onPositionChangeStart
15330
- }, type === ItemContainerType.Inventory && shortcuts && removeShortcut && React.createElement(ShortcutsSetter, {
15331
- setSettingShortcutIndex: setSettingShortcutIndex,
15332
- settingShortcutIndex: settingShortcutIndex,
15333
- shortcuts: shortcuts,
15334
- removeShortcut: removeShortcut,
15071
+ scale = _ref.scale,
15072
+ onHandleClick = _ref.onHandleClick;
15073
+ return React.createElement(MarketPlaceWrapper, null, React.createElement(ItemIconContainer, null, React.createElement(SpriteContainer, null, React.createElement(ItemInfoWrapper, {
15074
+ item: item,
15335
15075
  atlasIMG: atlasIMG,
15336
- atlasJSON: atlasJSON
15337
- }), React.createElement(ItemsContainer, {
15338
- className: "item-container-body"
15339
- }, onRenderSlots())), quantitySelect.isOpen && React.createElement(ModalPortal, null, React.createElement(QuantitySelectorContainer, null, React.createElement(ItemQuantitySelector, {
15340
- quantity: quantitySelect.maxQuantity,
15341
- onConfirm: function onConfirm(quantity) {
15342
- quantitySelect.callback(quantity);
15343
- setQuantitySelect({
15344
- isOpen: false,
15345
- maxQuantity: 1,
15346
- callback: function callback() {}
15347
- });
15348
- },
15349
- onClose: function onClose() {
15350
- quantitySelect.callback(-1);
15351
- setQuantitySelect({
15352
- isOpen: false,
15353
- maxQuantity: 1,
15354
- callback: function callback() {}
15355
- });
15076
+ atlasJSON: atlasJSON,
15077
+ equipmentSet: equipmentSet,
15078
+ scale: scale
15079
+ }, React.createElement(SpriteFromAtlas, {
15080
+ atlasIMG: atlasIMG,
15081
+ atlasJSON: atlasJSON,
15082
+ spriteKey: getItemTextureKeyPath({
15083
+ key: item.key,
15084
+ stackQty: item.stackQty || 1,
15085
+ texturePath: item.texturePath,
15086
+ isStackable: item.isStackable
15087
+ }, atlasJSON),
15088
+ imgScale: 2
15089
+ }))), React.createElement(PriceValue, null, React.createElement("p", null, React.createElement(Ellipsis, {
15090
+ maxLines: 1,
15091
+ maxWidth: "150px",
15092
+ fontSize: "10px"
15093
+ }, item.name)))), React.createElement(QuantityContainer, null, React.createElement(QuantityDisplay, null, React.createElement(TextOverlay$1, null, React.createElement(Item$1, null, React.createElement(Ellipsis, {
15094
+ maxLines: 1,
15095
+ maxWidth: "150px",
15096
+ fontSize: "10px"
15097
+ }, item.rarity))))), React.createElement(ItemIconContainer, null, React.createElement(SpriteContainer, null, React.createElement(SpriteFromAtlas, {
15098
+ atlasIMG: atlasIMG,
15099
+ atlasJSON: atlasJSON,
15100
+ spriteKey: 'others/gold-coin-qty-4.png',
15101
+ imgScale: 2
15102
+ })), React.createElement(PriceValue, null, React.createElement("p", null, React.createElement(Ellipsis, {
15103
+ maxLines: 1,
15104
+ maxWidth: "150px",
15105
+ fontSize: "10px"
15106
+ }, "$", itemPrice)))), React.createElement(ButtonContainer$1, null, React.createElement(Button, {
15107
+ buttonType: ButtonTypes.RPGUIButton,
15108
+ onClick: function onClick() {
15109
+ return onHandleClick(item.name);
15356
15110
  }
15357
- }))));
15358
- };
15359
- var ItemsContainer = /*#__PURE__*/styled.div.withConfig({
15360
- displayName: "ItemContainer__ItemsContainer",
15361
- componentId: "sc-15y5p9l-0"
15362
- })(["display:flex;justify-content:center;flex-wrap:wrap;"]);
15363
- var QuantitySelectorContainer = /*#__PURE__*/styled.div.withConfig({
15364
- displayName: "ItemContainer__QuantitySelectorContainer",
15365
- componentId: "sc-15y5p9l-1"
15366
- })(["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);"]);
15367
-
15368
- var ItemSelector = function ItemSelector(_ref) {
15369
- var atlasIMG = _ref.atlasIMG,
15370
- atlasJSON = _ref.atlasJSON,
15371
- options = _ref.options,
15372
- onClose = _ref.onClose,
15373
- onSelect = _ref.onSelect;
15374
- var _useState = useState(),
15375
- selectedValue = _useState[0],
15376
- setSelectedValue = _useState[1];
15377
- var handleClick = function handleClick() {
15378
- var element = document.querySelector("input[name='test']:checked");
15379
- var elementValue = element.value;
15380
- setSelectedValue(elementValue);
15381
- };
15382
- useEffect(function () {
15383
- if (selectedValue) {
15384
- onSelect(selectedValue);
15385
- }
15386
- }, [selectedValue]);
15387
- return React.createElement(DraggableContainer, {
15388
- type: RPGUIContainerTypes.Framed,
15389
- width: "500px",
15390
- cancelDrag: ".equipment-container-body .arrow-selector",
15391
- onCloseButton: function onCloseButton() {
15392
- if (onClose) {
15393
- onClose();
15394
- }
15395
- }
15396
- }, React.createElement("div", {
15397
- style: {
15398
- width: '100%'
15399
- }
15400
- }, React.createElement(Title$3, null, 'Harvesting instruments'), React.createElement(Subtitle$1, null, 'Use the tool, you need it'), React.createElement("hr", {
15401
- className: "golden"
15402
- })), React.createElement(RadioInputScroller$1, null, options == null ? void 0 : options.map(function (option, index) {
15403
- return React.createElement(RadioOptionsWrapper$1, {
15404
- key: index
15405
- }, React.createElement(SpriteAtlasWrapper$1, null, React.createElement(SpriteFromAtlas, {
15406
- atlasIMG: atlasIMG,
15407
- atlasJSON: atlasJSON,
15408
- spriteKey: option.imageKey,
15409
- imgScale: 3
15410
- })), React.createElement("div", null, React.createElement("input", {
15411
- className: "rpgui-radio",
15412
- type: "radio",
15413
- value: option.name,
15414
- name: "test"
15415
- }), React.createElement("label", {
15416
- onPointerDown: handleClick,
15417
- style: {
15418
- display: 'flex',
15419
- alignItems: 'center'
15420
- }
15421
- }, option.name, " ", React.createElement("br", null), option.description)));
15422
- })), React.createElement(ButtonWrapper$1, null, React.createElement(Button, {
15423
- buttonType: ButtonTypes.RPGUIButton,
15424
- onPointerDown: onClose
15425
- }, "Cancel"), React.createElement(Button, {
15426
- buttonType: ButtonTypes.RPGUIButton
15427
- }, "Select")));
15428
- };
15429
- var Title$3 = /*#__PURE__*/styled.h1.withConfig({
15430
- displayName: "ItemSelector__Title",
15431
- componentId: "sc-gptoxp-0"
15432
- })(["font-size:0.6rem;color:yellow !important;"]);
15433
- var Subtitle$1 = /*#__PURE__*/styled.h1.withConfig({
15434
- displayName: "ItemSelector__Subtitle",
15435
- componentId: "sc-gptoxp-1"
15436
- })(["font-size:0.4rem;color:yellow !important;"]);
15437
- var RadioInputScroller$1 = /*#__PURE__*/styled.div.withConfig({
15438
- displayName: "ItemSelector__RadioInputScroller",
15439
- componentId: "sc-gptoxp-2"
15440
- })(["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;"]);
15441
- var SpriteAtlasWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15442
- displayName: "ItemSelector__SpriteAtlasWrapper",
15443
- componentId: "sc-gptoxp-3"
15444
- })(["margin-right:40px;"]);
15445
- var RadioOptionsWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15446
- displayName: "ItemSelector__RadioOptionsWrapper",
15447
- componentId: "sc-gptoxp-4"
15448
- })(["display:flex;align-items:stretch;margin-bottom:40px;"]);
15449
- var ButtonWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15450
- displayName: "ItemSelector__ButtonWrapper",
15451
- componentId: "sc-gptoxp-5"
15452
- })(["display:flex;justify-content:space-around;padding-top:20px;width:100%;"]);
15453
-
15454
- var ListMenu = function ListMenu(_ref) {
15455
- var options = _ref.options,
15456
- onSelected = _ref.onSelected,
15457
- x = _ref.x,
15458
- y = _ref.y;
15459
- return React.createElement(Container$j, {
15460
- x: x,
15461
- y: y
15462
- }, React.createElement("ul", {
15463
- className: "rpgui-list-imp",
15464
- style: {
15465
- overflow: 'hidden'
15466
- }
15467
- }, options.map(function (params, index) {
15468
- return React.createElement(ListElement$1, {
15469
- key: (params == null ? void 0 : params.id) || index,
15470
- onPointerDown: function onPointerDown() {
15471
- onSelected(params == null ? void 0 : params.id);
15472
- }
15473
- }, (params == null ? void 0 : params.text) || 'No text');
15474
- })));
15475
- };
15476
- var Container$j = /*#__PURE__*/styled.div.withConfig({
15477
- displayName: "ListMenu__Container",
15478
- componentId: "sc-i9097t-0"
15479
- })(["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) {
15480
- return props.y || 0;
15481
- }, function (props) {
15482
- return props.x || 0;
15483
- }, uiFonts.size.xsmall);
15484
- var ListElement$1 = /*#__PURE__*/styled.li.withConfig({
15485
- displayName: "ListMenu__ListElement",
15486
- componentId: "sc-i9097t-1"
15487
- })(["margin-right:0.5rem;"]);
15488
-
15489
- var MarketplaceRows = function MarketplaceRows(_ref) {
15490
- var atlasJSON = _ref.atlasJSON,
15491
- atlasIMG = _ref.atlasIMG,
15492
- item = _ref.item,
15493
- itemPrice = _ref.itemPrice,
15494
- equipmentSet = _ref.equipmentSet,
15495
- scale = _ref.scale,
15496
- onHandleClick = _ref.onHandleClick;
15497
- return React.createElement(MarketPlaceWrapper, null, React.createElement(ItemIconContainer, null, React.createElement(SpriteContainer, null, React.createElement(ItemInfoWrapper, {
15498
- item: item,
15499
- atlasIMG: atlasIMG,
15500
- atlasJSON: atlasJSON,
15501
- equipmentSet: equipmentSet,
15502
- scale: scale
15503
- }, React.createElement(SpriteFromAtlas, {
15504
- atlasIMG: atlasIMG,
15505
- atlasJSON: atlasJSON,
15506
- spriteKey: getItemTextureKeyPath({
15507
- key: item.key,
15508
- stackQty: item.stackQty || 1,
15509
- texturePath: item.texturePath,
15510
- isStackable: item.isStackable
15511
- }, atlasJSON),
15512
- imgScale: 2
15513
- }))), React.createElement(PriceValue, null, React.createElement("p", null, React.createElement(Ellipsis, {
15514
- maxLines: 1,
15515
- maxWidth: "150px",
15516
- fontSize: "10px"
15517
- }, item.name)))), React.createElement(QuantityContainer, null, React.createElement(QuantityDisplay, null, React.createElement(TextOverlay$1, null, React.createElement(Item$1, null, React.createElement(Ellipsis, {
15518
- maxLines: 1,
15519
- maxWidth: "150px",
15520
- fontSize: "10px"
15521
- }, item.rarity))))), React.createElement(ItemIconContainer, null, React.createElement(SpriteContainer, null, React.createElement(SpriteFromAtlas, {
15522
- atlasIMG: atlasIMG,
15523
- atlasJSON: atlasJSON,
15524
- spriteKey: 'others/gold-coin-qty-4.png',
15525
- imgScale: 2
15526
- })), React.createElement(PriceValue, null, React.createElement("p", null, React.createElement(Ellipsis, {
15527
- maxLines: 1,
15528
- maxWidth: "150px",
15529
- fontSize: "10px"
15530
- }, "$", itemPrice)))), React.createElement(ButtonContainer$1, null, React.createElement(Button, {
15531
- buttonType: ButtonTypes.RPGUIButton,
15532
- onClick: function onClick() {
15533
- return onHandleClick(item.name);
15534
- }
15535
- }, "Buy")));
15111
+ }, "Buy")));
15536
15112
  };
15537
15113
  var MarketPlaceWrapper = /*#__PURE__*/styled.div.withConfig({
15538
15114
  displayName: "MarketplaceRows__MarketPlaceWrapper",
@@ -15640,6 +15216,332 @@ var StyledDropdown = /*#__PURE__*/styled(Dropdown).withConfig({
15640
15216
  componentId: "sc-h904b1-3"
15641
15217
  })(["margin:3px !important;width:170px !important;"]);
15642
15218
 
15219
+ var img$5 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAP1BMVEUAAAA7FyVxQTsUEBPj5v////+5v/tCJDOOUlIiHBr1oJfptaO6dWr61rhzFy1bMTjoanMUNGQoXMQkn97+88DQ3IhAAAAAAXRSTlMAQObYZgAAAAFiS0dEBfhv6ccAAAAHdElNRQfmAw4VOBC7c5LYAAABM0lEQVQ4y3XRi5KDIAwFUAUkbrBgpP//rZsHVHQ009qZ3tPboNN0zmwzvcw8O5sX4y0NOg/Et3jRCXF+ziULorjkOQ9gE24dvuUAzq08DiCO4pe3WN7zCP56vmpubBReQYC11YPS86ySxxCsAABTSgjb5m4g8nfbxvFHBkH2OEEvAItVuCuIsgGgl+Gcr7kDXxhEAx55A2SQEEeQeZwUaIP8Tbo05B0RFPhItAjgj1w6cDnhLluDj+Egkh3pCCP4pKQAw1IPO0W9Nti5gW9RP2dKA3BZd2Dw+baYX+Nt4GM00O4S3kEpF6Alb2Bv4LeC3kkGfAW0/p0RPoJVKr63ghHsKuRh5DIUKOAlGOwrtt9fQekAEfmhZslHUDoglB0zjfkJigN7UnTQQ4GBWomoVhEN/AOPSBh38gy+fwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wMy0xNFQyMTo1NTo1MSswMDowMJcc0eEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDMtMTRUMjE6NTU6NTErMDA6MDDmQWldAAAAAElFTkSuQmCC';
15220
+
15221
+ 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';
15222
+
15223
+ var ImgSide;
15224
+ (function (ImgSide) {
15225
+ ImgSide["right"] = "right";
15226
+ ImgSide["left"] = "left";
15227
+ })(ImgSide || (ImgSide = {}));
15228
+ var NPCMultiDialog = function NPCMultiDialog(_ref) {
15229
+ var _textAndTypeArray$sli;
15230
+ var _onClose = _ref.onClose,
15231
+ textAndTypeArray = _ref.textAndTypeArray;
15232
+ var _useState = useState(false),
15233
+ showGoNextIndicator = _useState[0],
15234
+ setShowGoNextIndicator = _useState[1];
15235
+ var _useState2 = useState(0),
15236
+ slide = _useState2[0],
15237
+ setSlide = _useState2[1];
15238
+ var onHandleSpacePress = function onHandleSpacePress(event) {
15239
+ if (event.code === 'Space') {
15240
+ if (slide < (textAndTypeArray == null ? void 0 : textAndTypeArray.length) - 1) {
15241
+ setSlide(function (prev) {
15242
+ return prev + 1;
15243
+ });
15244
+ } else {
15245
+ // if there's no more text chunks, close the dialog
15246
+ _onClose();
15247
+ }
15248
+ }
15249
+ };
15250
+ useEffect(function () {
15251
+ document.addEventListener('keydown', onHandleSpacePress);
15252
+ return function () {
15253
+ return document.removeEventListener('keydown', onHandleSpacePress);
15254
+ };
15255
+ }, [slide]);
15256
+ return React.createElement(RPGUIContainer, {
15257
+ type: RPGUIContainerTypes.FramedGold,
15258
+ width: '50%',
15259
+ height: '180px'
15260
+ }, React.createElement(React.Fragment, null, React.createElement(Container$g, null, ((_textAndTypeArray$sli = textAndTypeArray[slide]) == null ? void 0 : _textAndTypeArray$sli.imageSide) === 'right' && React.createElement(React.Fragment, null, React.createElement(TextContainer, {
15261
+ flex: '70%'
15262
+ }, React.createElement(NPCDialogText, {
15263
+ onStartStep: function onStartStep() {
15264
+ return setShowGoNextIndicator(false);
15265
+ },
15266
+ onEndStep: function onEndStep() {
15267
+ return setShowGoNextIndicator(true);
15268
+ },
15269
+ text: textAndTypeArray[slide].text || 'No text provided.',
15270
+ onClose: function onClose() {
15271
+ if (_onClose) {
15272
+ _onClose();
15273
+ }
15274
+ }
15275
+ })), React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
15276
+ src: textAndTypeArray[slide].imagePath || img$5
15277
+ })), showGoNextIndicator && React.createElement(PressSpaceIndicator, {
15278
+ right: '10.5rem',
15279
+ src: img$6
15280
+ })), textAndTypeArray[slide].imageSide === 'left' && React.createElement(React.Fragment, null, React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
15281
+ src: textAndTypeArray[slide].imagePath || img$5
15282
+ })), React.createElement(TextContainer, {
15283
+ flex: '70%'
15284
+ }, React.createElement(NPCDialogText, {
15285
+ onStartStep: function onStartStep() {
15286
+ return setShowGoNextIndicator(false);
15287
+ },
15288
+ onEndStep: function onEndStep() {
15289
+ return setShowGoNextIndicator(true);
15290
+ },
15291
+ text: textAndTypeArray[slide].text || 'No text provided.',
15292
+ onClose: function onClose() {
15293
+ if (_onClose) {
15294
+ _onClose();
15295
+ }
15296
+ }
15297
+ })), showGoNextIndicator && React.createElement(PressSpaceIndicator, {
15298
+ right: '1rem',
15299
+ src: img$6
15300
+ }))), ")"));
15301
+ };
15302
+ var Container$g = /*#__PURE__*/styled.div.withConfig({
15303
+ displayName: "NPCMultiDialog__Container",
15304
+ componentId: "sc-rvu5wg-0"
15305
+ })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
15306
+ var TextContainer = /*#__PURE__*/styled.div.withConfig({
15307
+ displayName: "NPCMultiDialog__TextContainer",
15308
+ componentId: "sc-rvu5wg-1"
15309
+ })(["flex:", " 0 0;width:355px;"], function (_ref2) {
15310
+ var flex = _ref2.flex;
15311
+ return flex;
15312
+ });
15313
+ var ThumbnailContainer = /*#__PURE__*/styled.div.withConfig({
15314
+ displayName: "NPCMultiDialog__ThumbnailContainer",
15315
+ componentId: "sc-rvu5wg-2"
15316
+ })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
15317
+ var NPCThumbnail = /*#__PURE__*/styled.img.withConfig({
15318
+ displayName: "NPCMultiDialog__NPCThumbnail",
15319
+ componentId: "sc-rvu5wg-3"
15320
+ })(["image-rendering:pixelated;height:128px;width:128px;"]);
15321
+ var PressSpaceIndicator = /*#__PURE__*/styled.img.withConfig({
15322
+ displayName: "NPCMultiDialog__PressSpaceIndicator",
15323
+ componentId: "sc-rvu5wg-4"
15324
+ })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref3) {
15325
+ var right = _ref3.right;
15326
+ return right;
15327
+ });
15328
+
15329
+ //@ts-ignore
15330
+ var useEventListener = function useEventListener(type, handler, el) {
15331
+ if (el === void 0) {
15332
+ el = window;
15333
+ }
15334
+ var savedHandler = React.useRef();
15335
+ React.useEffect(function () {
15336
+ savedHandler.current = handler;
15337
+ }, [handler]);
15338
+ React.useEffect(function () {
15339
+ //@ts-ignore
15340
+ var listener = function listener(e) {
15341
+ return savedHandler.current(e);
15342
+ };
15343
+ el.addEventListener(type, listener);
15344
+ return function () {
15345
+ el.removeEventListener(type, listener);
15346
+ };
15347
+ }, [type, el]);
15348
+ };
15349
+
15350
+ var DynamicText = function DynamicText(_ref) {
15351
+ var text = _ref.text,
15352
+ onFinish = _ref.onFinish,
15353
+ onStart = _ref.onStart;
15354
+ var _useState = useState(''),
15355
+ textState = _useState[0],
15356
+ setTextState = _useState[1];
15357
+ useEffect(function () {
15358
+ var i = 0;
15359
+ var interval = setInterval(function () {
15360
+ // on every interval, show one more character
15361
+ if (i === 0) {
15362
+ if (onStart) {
15363
+ onStart();
15364
+ }
15365
+ }
15366
+ if (i < text.length) {
15367
+ setTextState(text.substring(0, i + 1));
15368
+ i++;
15369
+ } else {
15370
+ clearInterval(interval);
15371
+ if (onFinish) {
15372
+ onFinish();
15373
+ }
15374
+ }
15375
+ }, 50);
15376
+ return function () {
15377
+ clearInterval(interval);
15378
+ };
15379
+ }, [text]);
15380
+ return React.createElement(TextContainer$1, null, textState);
15381
+ };
15382
+ var TextContainer$1 = /*#__PURE__*/styled.p.withConfig({
15383
+ displayName: "DynamicText__TextContainer",
15384
+ componentId: "sc-1ggl9nd-0"
15385
+ })(["font-size:0.7rem !important;color:white;text-shadow:1px 1px 0px #000000;letter-spacing:1.2px;word-break:normal;"]);
15386
+
15387
+ var QuestionDialog = function QuestionDialog(_ref) {
15388
+ var questions = _ref.questions,
15389
+ answers = _ref.answers,
15390
+ onClose = _ref.onClose;
15391
+ var _useState = useState(questions[0]),
15392
+ currentQuestion = _useState[0],
15393
+ setCurrentQuestion = _useState[1];
15394
+ var _useState2 = useState(false),
15395
+ canShowAnswers = _useState2[0],
15396
+ setCanShowAnswers = _useState2[1];
15397
+ var onGetFirstAnswer = function onGetFirstAnswer() {
15398
+ if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {
15399
+ return null;
15400
+ }
15401
+ var firstAnswerId = currentQuestion.answerIds[0];
15402
+ return answers.find(function (answer) {
15403
+ return answer.id === firstAnswerId;
15404
+ });
15405
+ };
15406
+ var _useState3 = useState(onGetFirstAnswer()),
15407
+ currentAnswer = _useState3[0],
15408
+ setCurrentAnswer = _useState3[1];
15409
+ useEffect(function () {
15410
+ setCurrentAnswer(onGetFirstAnswer());
15411
+ }, [currentQuestion]);
15412
+ var onGetAnswers = function onGetAnswers(answerIds) {
15413
+ return answerIds.map(function (answerId) {
15414
+ return answers.find(function (answer) {
15415
+ return answer.id === answerId;
15416
+ });
15417
+ });
15418
+ };
15419
+ var onKeyPress = function onKeyPress(e) {
15420
+ switch (e.key) {
15421
+ case 'ArrowDown':
15422
+ // select next answer, if any.
15423
+ // if no next answer, select first answer
15424
+ // const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(
15425
+ // (answer) => answer?.id === currentAnswer!.id + 1
15426
+ // );
15427
+ var nextAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
15428
+ return (answer == null ? void 0 : answer.id) === currentAnswer.id + 1;
15429
+ });
15430
+ var nextAnswerID = currentQuestion.answerIds[nextAnswerIndex];
15431
+ var nextAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
15432
+ return (answer == null ? void 0 : answer.id) === nextAnswerID;
15433
+ });
15434
+ setCurrentAnswer(nextAnswer || onGetFirstAnswer());
15435
+ break;
15436
+ case 'ArrowUp':
15437
+ // select previous answer, if any.
15438
+ // if no previous answer, select last answer
15439
+ var previousAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
15440
+ return (answer == null ? void 0 : answer.id) === currentAnswer.id - 1;
15441
+ });
15442
+ var previousAnswerID = currentQuestion.answerIds && currentQuestion.answerIds[previousAnswerIndex];
15443
+ var previousAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
15444
+ return (answer == null ? void 0 : answer.id) === previousAnswerID;
15445
+ });
15446
+ if (previousAnswer) {
15447
+ setCurrentAnswer(previousAnswer);
15448
+ } else {
15449
+ setCurrentAnswer(onGetAnswers(currentQuestion.answerIds).pop());
15450
+ }
15451
+ break;
15452
+ case 'Enter':
15453
+ setCanShowAnswers(false);
15454
+ if (!(currentAnswer != null && currentAnswer.nextQuestionId)) {
15455
+ onClose();
15456
+ return;
15457
+ } else {
15458
+ setCurrentQuestion(questions.find(function (question) {
15459
+ return question.id === currentAnswer.nextQuestionId;
15460
+ }));
15461
+ }
15462
+ break;
15463
+ }
15464
+ };
15465
+ useEventListener('keydown', onKeyPress);
15466
+ var onAnswerClick = function onAnswerClick(answer) {
15467
+ setCanShowAnswers(false);
15468
+ if (answer.nextQuestionId) {
15469
+ // if there is a next question, go to it
15470
+ setCurrentQuestion(questions.find(function (question) {
15471
+ return question.id === answer.nextQuestionId;
15472
+ }));
15473
+ } else {
15474
+ // else, finish dialog!
15475
+ onClose();
15476
+ }
15477
+ };
15478
+ var onRenderCurrentAnswers = function onRenderCurrentAnswers() {
15479
+ var answerIds = currentQuestion.answerIds;
15480
+ if (!answerIds) {
15481
+ return null;
15482
+ }
15483
+ var answers = onGetAnswers(answerIds);
15484
+ if (!answers) {
15485
+ return null;
15486
+ }
15487
+ return answers.map(function (answer) {
15488
+ var isSelected = (currentAnswer == null ? void 0 : currentAnswer.id) === (answer == null ? void 0 : answer.id);
15489
+ var selectedColor = isSelected ? 'yellow' : 'white';
15490
+ if (answer) {
15491
+ return React.createElement(AnswerRow, {
15492
+ key: "answer_" + answer.id
15493
+ }, React.createElement(AnswerSelectedIcon, {
15494
+ color: selectedColor
15495
+ }, isSelected ? 'X' : null), React.createElement(Answer, {
15496
+ key: answer.id,
15497
+ onPointerDown: function onPointerDown() {
15498
+ return onAnswerClick(answer);
15499
+ },
15500
+ color: selectedColor
15501
+ }, answer.text));
15502
+ }
15503
+ return null;
15504
+ });
15505
+ };
15506
+ return React.createElement(Container$h, null, React.createElement(QuestionContainer, null, React.createElement(DynamicText, {
15507
+ text: currentQuestion.text,
15508
+ onStart: function onStart() {
15509
+ return setCanShowAnswers(false);
15510
+ },
15511
+ onFinish: function onFinish() {
15512
+ return setCanShowAnswers(true);
15513
+ }
15514
+ })), canShowAnswers && React.createElement(AnswersContainer, null, onRenderCurrentAnswers()));
15515
+ };
15516
+ var Container$h = /*#__PURE__*/styled.div.withConfig({
15517
+ displayName: "QuestionDialog__Container",
15518
+ componentId: "sc-bxc5u0-0"
15519
+ })(["display:flex;word-break:break-all;box-sizing:border-box;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;"]);
15520
+ var QuestionContainer = /*#__PURE__*/styled.div.withConfig({
15521
+ displayName: "QuestionDialog__QuestionContainer",
15522
+ componentId: "sc-bxc5u0-1"
15523
+ })(["flex:100%;width:100%;"]);
15524
+ var AnswersContainer = /*#__PURE__*/styled.div.withConfig({
15525
+ displayName: "QuestionDialog__AnswersContainer",
15526
+ componentId: "sc-bxc5u0-2"
15527
+ })(["flex:100%;"]);
15528
+ var Answer = /*#__PURE__*/styled.p.withConfig({
15529
+ displayName: "QuestionDialog__Answer",
15530
+ componentId: "sc-bxc5u0-3"
15531
+ })(["flex:auto;color:", " !important;font-size:0.65rem !important;background:inherit;border:none;"], function (props) {
15532
+ return props.color;
15533
+ });
15534
+ var AnswerSelectedIcon = /*#__PURE__*/styled.span.withConfig({
15535
+ displayName: "QuestionDialog__AnswerSelectedIcon",
15536
+ componentId: "sc-bxc5u0-4"
15537
+ })(["flex:5% 0 0;color:", " !important;"], function (props) {
15538
+ return props.color;
15539
+ });
15540
+ var AnswerRow = /*#__PURE__*/styled.div.withConfig({
15541
+ displayName: "QuestionDialog__AnswerRow",
15542
+ componentId: "sc-bxc5u0-5"
15543
+ })(["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;}"]);
15544
+
15643
15545
  var ProgressBar = function ProgressBar(_ref) {
15644
15546
  var max = _ref.max,
15645
15547
  value = _ref.value,
@@ -15657,7 +15559,7 @@ var ProgressBar = function ProgressBar(_ref) {
15657
15559
  }
15658
15560
  return value * 100 / max;
15659
15561
  };
15660
- return React.createElement(Container$k, {
15562
+ return React.createElement(Container$i, {
15661
15563
  className: "rpgui-progress",
15662
15564
  "data-value": calculatePercentageValue(max, value) / 100,
15663
15565
  "data-rpguitype": "progress",
@@ -15686,7 +15588,7 @@ var TextOverlay$2 = /*#__PURE__*/styled.div.withConfig({
15686
15588
  displayName: "ProgressBar__TextOverlay",
15687
15589
  componentId: "sc-qa6fzh-1"
15688
15590
  })(["width:100%;position:relative;"]);
15689
- var Container$k = /*#__PURE__*/styled.div.withConfig({
15591
+ var Container$i = /*#__PURE__*/styled.div.withConfig({
15690
15592
  displayName: "ProgressBar__Container",
15691
15593
  componentId: "sc-qa6fzh-2"
15692
15594
  })(["display:flex;flex-direction:column;min-width:", "px;width:", "%;justify-content:start;align-items:flex-start;", ""], function (props) {
@@ -15697,7 +15599,7 @@ var Container$k = /*#__PURE__*/styled.div.withConfig({
15697
15599
  return props.style;
15698
15600
  });
15699
15601
 
15700
- var img$8 = 'data:image/png;base64,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';
15602
+ var img$7 = 'data:image/png;base64,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';
15701
15603
 
15702
15604
  var QuestInfo = function QuestInfo(_ref) {
15703
15605
  var quests = _ref.quests,
@@ -15741,7 +15643,7 @@ var QuestInfo = function QuestInfo(_ref) {
15741
15643
  }), React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
15742
15644
  className: "drag-handler"
15743
15645
  }, React.createElement(Title$4, null, React.createElement(Thumbnail, {
15744
- src: quests[currentIndex].thumbnail || img$8
15646
+ src: quests[currentIndex].thumbnail || img$7
15745
15647
  }), quests[currentIndex].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
15746
15648
  className: "golden"
15747
15649
  }))), React.createElement(Content, null, React.createElement("p", null, quests[currentIndex].description)), React.createElement(QuestColumn, {
@@ -15760,7 +15662,7 @@ var QuestInfo = function QuestInfo(_ref) {
15760
15662
  })))) : React.createElement(QuestsContainer, null, React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
15761
15663
  className: "drag-handler"
15762
15664
  }, React.createElement(Title$4, null, React.createElement(Thumbnail, {
15763
- src: quests[0].thumbnail || img$8
15665
+ src: quests[0].thumbnail || img$7
15764
15666
  }), quests[0].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
15765
15667
  className: "golden"
15766
15668
  }))), React.createElement(Content, null, React.createElement("p", null, quests[0].description)), React.createElement(QuestColumn, {
@@ -15864,7 +15766,7 @@ var NoQuestContainer = /*#__PURE__*/styled.div.withConfig({
15864
15766
  componentId: "sc-1a2vx6q-3"
15865
15767
  })(["text-align:center;p{margin-top:5px;}"]);
15866
15768
 
15867
- var InputRadio = function InputRadio(_ref) {
15769
+ var InputRadio$1 = function InputRadio(_ref) {
15868
15770
  var name = _ref.name,
15869
15771
  items = _ref.items,
15870
15772
  onChange = _ref.onChange;
@@ -15951,9 +15853,7 @@ var Shortcuts = function Shortcuts(_ref) {
15951
15853
  }
15952
15854
  });
15953
15855
  }
15954
- var totalQty = itemsFromEquipment.reduce(function (acc, item) {
15955
- return acc + ((item == null ? void 0 : item.stackQty) || 1);
15956
- }, 0);
15856
+ var totalQty = _payload && inventory ? countItemFromInventory(_payload.key, inventory) : 0;
15957
15857
  return React.createElement(StyledShortcut$1, {
15958
15858
  key: i,
15959
15859
  onPointerDown: onShortcutCast.bind(null, i),
@@ -16012,7 +15912,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
16012
15912
  bgColor = _ref$bgColor === void 0 ? 'red' : _ref$bgColor,
16013
15913
  _ref$margin = _ref.margin,
16014
15914
  margin = _ref$margin === void 0 ? 20 : _ref$margin;
16015
- return React.createElement(Container$l, {
15915
+ return React.createElement(Container$j, {
16016
15916
  className: "simple-progress-bar"
16017
15917
  }, React.createElement(ProgressBarContainer, {
16018
15918
  margin: margin
@@ -16021,7 +15921,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
16021
15921
  bgColor: bgColor
16022
15922
  }))));
16023
15923
  };
16024
- var Container$l = /*#__PURE__*/styled.div.withConfig({
15924
+ var Container$j = /*#__PURE__*/styled.div.withConfig({
16025
15925
  displayName: "SimpleProgressBar__Container",
16026
15926
  componentId: "sc-mbeil3-0"
16027
15927
  })(["display:flex;justify-content:center;align-items:center;width:100%;"]);
@@ -16248,13 +16148,13 @@ var Spell = function Spell(_ref) {
16248
16148
  manaCost = _ref.manaCost,
16249
16149
  charMana = _ref.charMana,
16250
16150
  charMagicLevel = _ref.charMagicLevel,
16251
- onPointerDown = _ref.onPointerDown,
16151
+ onPointerUp = _ref.onPointerUp,
16252
16152
  isSettingShortcut = _ref.isSettingShortcut,
16253
16153
  minMagicLevelRequired = _ref.minMagicLevelRequired;
16254
16154
  var disabled = isSettingShortcut ? charMagicLevel < minMagicLevelRequired : manaCost > charMana || charMagicLevel < minMagicLevelRequired;
16255
- return React.createElement(Container$m, {
16155
+ return React.createElement(Container$k, {
16256
16156
  disabled: disabled,
16257
- onPointerDown: onPointerDown == null ? void 0 : onPointerDown.bind(null, spellKey),
16157
+ onPointerUp: onPointerUp == null ? void 0 : onPointerUp.bind(null, spellKey),
16258
16158
  isSettingShortcut: isSettingShortcut && !disabled,
16259
16159
  className: "spell"
16260
16160
  }, disabled && React.createElement(Overlay, null, charMagicLevel < minMagicLevelRequired ? 'Low magic level' : manaCost > charMana && 'No mana'), React.createElement(SpellImage, null, magicWords.split(' ').map(function (word) {
@@ -16265,7 +16165,7 @@ var Spell = function Spell(_ref) {
16265
16165
  className: "mana"
16266
16166
  }, manaCost)));
16267
16167
  };
16268
- var Container$m = /*#__PURE__*/styled.button.withConfig({
16168
+ var Container$k = /*#__PURE__*/styled.button.withConfig({
16269
16169
  displayName: "Spell__Container",
16270
16170
  componentId: "sc-j96fa2-0"
16271
16171
  })(["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) {
@@ -16352,7 +16252,7 @@ var Spellbook = function Spellbook(_ref) {
16352
16252
  height: "inherit",
16353
16253
  cancelDrag: "#spellbook-search, #shortcuts_list, .spell",
16354
16254
  scale: scale
16355
- }, React.createElement(Container$n, null, React.createElement(Title$7, null, "Learned Spells"), React.createElement(ShortcutsSetter, {
16255
+ }, React.createElement(Container$l, null, React.createElement(Title$7, null, "Learned Spells"), React.createElement(ShortcutsSetter, {
16356
16256
  setSettingShortcutIndex: setSettingShortcutIndex,
16357
16257
  settingShortcutIndex: settingShortcutIndex,
16358
16258
  shortcuts: shortcuts,
@@ -16374,7 +16274,7 @@ var Spellbook = function Spellbook(_ref) {
16374
16274
  }, React.createElement(Spell, Object.assign({
16375
16275
  charMana: mana,
16376
16276
  charMagicLevel: magicLevel,
16377
- onPointerDown: settingShortcutIndex !== -1 ? setShortcut : onSpellClick,
16277
+ onPointerUp: settingShortcutIndex !== -1 ? setShortcut : onSpellClick,
16378
16278
  spellKey: spell.key,
16379
16279
  isSettingShortcut: settingShortcutIndex !== -1
16380
16280
  }, spell)));
@@ -16384,7 +16284,7 @@ var Title$7 = /*#__PURE__*/styled.h1.withConfig({
16384
16284
  displayName: "Spellbook__Title",
16385
16285
  componentId: "sc-r02nfq-0"
16386
16286
  })(["font-size:", " !important;margin-bottom:0 !important;"], uiFonts.size.large);
16387
- var Container$n = /*#__PURE__*/styled.div.withConfig({
16287
+ var Container$l = /*#__PURE__*/styled.div.withConfig({
16388
16288
  displayName: "Spellbook__Container",
16389
16289
  componentId: "sc-r02nfq-1"
16390
16290
  })(["width:100%;height:100%;color:white;display:flex;flex-direction:column;"]);
@@ -16398,16 +16298,16 @@ var TextArea = function TextArea(_ref) {
16398
16298
  return React.createElement("textarea", Object.assign({}, props));
16399
16299
  };
16400
16300
 
16401
- var img$9 = 'data:image/gif;base64,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';
16301
+ var img$8 = 'data:image/gif;base64,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';
16402
16302
 
16403
- var img$a = 'data:image/gif;base64,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';
16303
+ var img$9 = 'data:image/gif;base64,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';
16404
16304
 
16405
- var img$b = 'data:image/gif;base64,R0lGODlhTgBNAPIAAAAAAAgIMhkZS2tsbbcIL4zZ98jh6////yH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAAIf4gQ3JlYXRlZCB3aXRoIGV6Z2lmLmNvbSBHSUYgbWFrZXIALAAAAABOAE0AAAP/CLrc/jDKSau9OOvNu/9gKI5kaZ5oqq4j4b6wy4qwYN+4Dc+biwfAoBCIk/EoL9twySQKXkcI4dasMm+EKMNnDRiA327wmY1OBeLA4ZAW6o7TtpotH5dX8XY4XA888QIDgoOEhYaHiIR/KFOJjo+QiyWNkJWWinc0gZecjgaDkiB5fV4Gpqd8XQYHfKEeo2pppmu0tKaybpkdlJeztb9rpp2uGryVvsDJrJ+XxBiwqsrStnLOF9BVq9PbqVbWFcae27SGtcyRutdoYtrbVtRi3xLYTe3Kbaxt8lLr0dN1+eKlQ9LPij1gpLo12feA3pCDv0hVGzivYLZ/EvVR5McO/2PGNAy3WGQCsdZHjc9GLim5JmGfkAscCmFJp47CLjAVyAxCk1SBlxsbjuzWs06BAz8npnwYEIw0PQaOrilwKxuRoA6wEX1qFGnHLzkB7OTJVU5SdleXdrxnE2iGsU7Z6qkTVqfKlWVPLsQqVE9evUPqir2L9y/gtMUIMzWsV7BdOTRbHvbDNwJcsu6GBFO6S/HKyMCqvrPzyjNJ0MtIORYpEdkv0XQrEwRDWxaqUxlXZ+0neTLnEHl6+xY4ScCe4cRNXG5dRfds5KtuOgdnWjjaJdMtjLWuWjZwJcideKexPPZ4EmdMx3ujpUES9VfInFfhgwpOLPN51MjBf0f7HhYxBPjfgAQWaOCBCCao4IIMNuggBwkAACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAAE4ATQAAA/8Iutz+MMpJq7046827/2AojmRpnmiqriPhvrDLirBg37gNz5uLB8CgEIiT8Sgv23DJJApeRwjhxjQIrU3nM8rwZb/gJ4E7FYCBh8N5qDtO12g1XLhlvef4ZT01Hfj/gIEGgIOBhod7Jn2HjI2OggOJLQKPlZaMkiCLl5yPhZFjNGZ5pFcBBgdWVpkcd3FwBrGysXNYRKEfm35plbFpv7+xnX+sGLqXvsDKacKOn8S4PaOwqMvWzLZrxRauZ9XX4Klz20iUyOHoqZzkEt1f3+hLwNlf7FLTYPDgX8Fw9g7usuhbBkectmjc8AmMN8dgGIQVAlYJR4pek39dFDYZCKz/1DiI7TRO3OfxoDGRQzj+KukPZASJKSmyPINRQUB6KuXgsfjwpDeSO2Hd8pky5jVSBfLUBOBKlTgsOfMUOJDU29ALN41aozY1TQFaS5yucnnv51E8U6vmu5owbFigcNS2zADzCtw1PKsEWGoTpVaCtfDwZerX7tmZF8m+LGx4K2Imgwnjlfk4SGTJk+8ivozZrGaPnDt71swMTBq20nbmtAaWn5zQmLPlPbUam1LFWBlXUdn6o6ggp6nN6i0YN9HglYHMRh2ibvLEJ5o+nw07pNVTVlGpYmM8l27keCF318QYfKnquVFCDWwZvTHnoI1wIaxk5o3xfHzovigGv50yI/XVc59/UdSQw4E7zNdDDAwq6OCDEEYo4YQUVmjhhRhmyEECACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAAE4ATQAAA/8Iutz+MMpJq7046827/2AojmRpnmiqriPhvrDLirBg37gNz5uLB8CgEIiT8Sgv23DJJApeRwjh1qwyb4Qow2ftVp/Z6FTgDRzKQ91xim5fwyu2ey58xgWDvH7P7/v/egZ2KFOAhoeIgyWFiI2OAwZ5ijR4j5aGkZJwIHIBBkCfdGWfBgYHpZ6THp1mZ6JzoUSbHYx6BweOpbq6j5l6qhq1eZm+f6W3yMill7+zGaxox8nTt6hWsUHAGNBd0tTfp9he2hbCiKbg6dWW5Ehk0erxp23tEtxV6PJLyeJW9VLvvORTZ0UZmn8P7jEZ+A3NvDIIHSgcwpCam4ddIm4J2I3/IKyDzuxxxOfx1biQESYKqZjMJESUAJeIY4nM5cttIxeWtClTFs6eK9PR6ZcRZsKcM4V+HOXzghxSplCRUuqmQLSm5ZBSpIqmwAGrTaCG06iAW1Jw0Qx4vVXAWlisFVSC4lrGK9hucOOO7EfTVZu7N5/llElX4FWyC+TORduG6BejMQUW5pkNcuSOjCnXsXz52k7NiBso9vR5KKgAoUUP1ln6oqvUGxvrG1Kty628wVYv7PvN7dtUnN258ZbO90lKQfx2o2nc8eYWuq/t0iUKtkjNC/0FF2w4iHOKj1OMvnpM6nMVim83fjNDrvqrabZzUoK9jnVaZlfCR21EC4AxMdEdpIZ/W/gQ4BdgyBcHgAcWoeAaSeQg4Q4EBhPDhRVmqOGGHHbo4YcghijiiCQ+kAAAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAD/wi63P4wykmrvTjrzbv/YCiOZGmeaKquI+G+sMuKsGDfuA3Pm4sHwKAQiJPxKC/bcMkkCl5HCOHWrDJvhCjDZ+1Wn9noVOANHA5loe44TZvR7uBz1o7b1eHUdMDv+/+AgYJ+cyh7g4iJiYUlh4qPkH2MNAIDBn6XkZqBkx91d6BCcER5nmRBZ6GqAZ0cjnxnm7KCrRmvsga5urmzkqUanwEGQsNVuWfIyLmhtRfBacfJ0mfLds0Vt4rR09wHvJrXE89dBt3mynHhEeNW5efvxWnqD+xN7u+jqOjyv9inXvfOWdnnZZ6DeksCckvjjZ+tf+TexWlYxuAChEMUSrsTr/+LRQUYg2hMtqpgPwkhgYxEVtLjyXUQ7QlsaeUjgJQrU9H88lJKTCY5OVrrSe9nPmHmhKYjevBnwqR2CjAkhQEnVDcFDkh1Y9NqN2gGsp4pUM3lw4hf42TdWpFpUYBX07BtC8xpxrhlOpqsmxcvuaU97BLzu9PmFsGD067qOMzwYbiEVzl+DFmxKp2TLyJOHJkhnMyaoeFbQs0hiJQqc3IrC1SOWwufdBpTTU2vWUpAZLdbyZouCdQZd+m6Axrl5p1Dios7Duqo6xUpnYNSDpt5SerOlCBXg70q8KWvT4yxXnONlgZJyCcHE57O+ONF2mupkaP+jvM9YujHz7+///8NAAYo4IAEFmjggRwkAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAABOAE0AAAP/CLrc/jDKSau9OOvNu/9gKI5kaZ5oqq4j4b6wy4qwYN+4Dc+biwfAoBCIk/EoL9twySQKXkcI4dasMm+EKMNnDRiA327wmY1OBeLA4ZAW6o7TtpotH5dX8XY4XA888QIDgoOEhYaHiIR/KFOJjo+QiyWNkJWWinc0gZecjgaDkiB5faRDBgd8oR6jaqWlfH6ZHZSdtZWqGrS2Bry9vLagshmsdbxrx8e8rrgYxGnGyNFryn3MFrqV0NLbqJ+c1khocqfc5dN14BLOVuTm5rBi6VLiz+7HS8jwVvIP60zt5qwka8PPgb8lALe1QUVQ2ISDptzVYZim4AKIQhJGI6Wv/4lFBRjBBHRV0WGEkF5GkuzyEUBIjchWlmxGrwrMezJZmpyHMCI3jtV29quZEtZNOsX0EBFqkKgXnwr7FKj3peXLclIPTBUTxqpThFifGShwrAA1ncO+Zgwrh+zWmWm5sm3zFi5NuT+TymkJUi1UaXob9vAb5GhOj0xPEi489/DSWYtTNs7JtwHKo0hJIq28JbJIlTI5d9ZjDx/FeIkr5NnTRJu9boJDjFrTxTW3s3ZFiaPN9Sbu3LIFsBbr6zdwTY57Ik6Bss+pjqIvhOStdEn0uwIzl7qe1vN27rmaozOixSWV0G/Kb/Hh3TqZ1DzYK2GJBX75Gjny71AfPkYM/hIABijggAQWaOCBCCao4IIPJAAAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAD/wi63P4wykmrvTjrzbv/YCiOZGmeaKquI+G+sMuKsGDfuA3Pm4sHwKAQiJPxKC/bcMkkCl5HCOHGNAitTeczyvBlv+AngTsVgIGHw3moO07XaDVcuGW95/hlPTUd+P+AgQaAg4GGh3smfYeMjY6CA4ktAo+VloySIIuXnI+FkWM0ZnmkVwEGB1ZWmRx3caWkWEShH5t+aZcGuru6nYGsGLadumnFxb2Vn3/AFq5zxMbRabqkzBXOZ9DS26mya9YTwp7c5Med4BHYX6jl7d5htMGja+ztckLG71/oDupN9eW+HIPDr4G/Ku3gpCIYr9m8dQnnLDxTcMHBJQClxWIoj/9eQFjfGoZ7mCVjNJAhO4IxaQxlygvq3rEs5pKiSAkXg8y89wwOlooAYg7ZuREPUFeqFmIhmqeAz1kqTV0h1/SA05KnFh4liZCbTwMFihWghjXAVoxDqeIJe5Vj1JJq57RdafbmyGxxn84BqiCnzrzZjNrFybXrtppZ+PYtjBEw4rqtGKd1XFOxRclTKYO0fNlnRFhpoHbwm/kjvolZQkP2cMebvlM7t5F9WQszxtjTXicenMGV6pUzZ+/l3XvU72y8dlWBV4L0Yz3EI+t8fmo3H9vVs6/LqopN9NpnjgeGPsOv+GrfRTFe2jNImyheqNdNr4iKyxv0USTB3kSHES4mUpShRBj45QfffjnksAOAPcTgIIMQRijhhBRWaOGFGGao4YYcJAAAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAD/wi63P4wykmrvTjrzbv/YCiOZGmeaKquI+G+sMuKsGDfuA3Pm4sHwKAQiJPxKC/bcMkkCl5HCOHWrDJvhCjDZ+1Wn9noVOANHMpD3XGKbl/DK7Z7LnzGBYO8fs/v+/96BnYoU4CGh4iDJYWIjY4DBnmKNHiPloaRknAgcgEGQJ90ZZ8GBgelnpMenWZno6WwqGihRJsdjHoHB4ilur6+pY2ZeqoauHmZw329v826wZfFGKxezM7Xp7RL2rWrZLPY4cBt0hbHh6bi6sqH5Ujf1eq+S7/cX7bm8F3p6lbjZe4iUKvCDxuaU2gCStFHsF8bhF4UPhjIpKAzOvbeZKC4Tf+cKHL4JHAcYrHZx4QhBTKs6PEkwJQLt5Fs6bKLxC0rOxqck7FitwsDuZWcx3POzQVBZ+50U2DWz3ygPJlCRSrcnAIHmlZ7WiGpkKG6ZhnAqquArK9Ssx1V4DUIWFdtsGrdx/XdKKtMnQZYy5ahvbdFQRrLqfOam54y+fa9u7Smxo2EC190/Bgy48aU98KcMFIpZseKcYKjiTFqaNGjSQN51iWsZm+H3147W8X1adRtrIWjTRDU7Qadm+iuh/gepSBwX8XiHdXmZsuZRf2OGZ2klekqt7rVW9lE8MNpqdZ5ziky8uTa05APEdw19yDYpympDj/+xraeuIPRgpRKTSwv/AHng3nXgbEeDwPOV6AOB/JXQw4Q7hCgMTFUOOGFGGao4YYcdujhhyCGKOIDCQAAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAD/wi63P4wykmrvTjrzbv/YCiOZGmeaKquI+G+sMuKsGDfuA3Pm4sHwKAQiJPxKC/bcMkkCl5HCOHWrDJvhCjDZ+1Wn9noVOANHA5loe44TZvR7uBz1o7b1eHUdMDv+/+AgYJ+cyh7g4iJiYUlh4qPkH2MNAIDBn6XkZqBkx91dwahoqFucER5nmRBZ16hZ6+vpHadHI58Z4iusLtnoZu0GbaKurzFB76RwBefAQZCzs/G0rFuyhbMVgbT28dp1kiVj9rcB4CwmYrfEthN49tW1F7qUqqt72XdZfMO7EzuxnHyddnXoN+Sf7xA6UN1rV4VhLvuVGMIrgxEWBInYjAYTf9aRo3LHLab9tEbxXUi/Xm0Aw1kQ3sAWc46GYFjkIus7BSYuTHlwZVuChzY6bICO1NAcCLNZkDomQKyBtKkB7OYzqH4TvW0CDQN0aIVqyaM09JkMJ8/Y6YpK29qTbRDlJaUqsFmR6tzmxDcAjcuybxL9vJd+xew1h59/RaWeTOA4IKJ73YF0gvsWbJKi0WtkvMxZFCZe7HlDMfzZ9DGNltGnHHUKLJy3G6lvNRw2xaqctpe2Cjybjwn7P4+HNz3ndrEDUVGfsd0XeMlnSOGPkt6LeHNjWgBMIa63jXbt/jwLgeMbDHdIxc5H557khzwd7QPFqP+/Pv48+vfz7+///8FAAbIXwIAOw==';
16305
+ var img$a = 'data:image/gif;base64,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';
16406
16306
 
16407
16307
  var DayNightPeriod = function DayNightPeriod(_ref) {
16408
16308
  var _periodOfDaySrcFiles;
16409
16309
  var periodOfDay = _ref.periodOfDay;
16410
- var periodOfDaySrcFiles = (_periodOfDaySrcFiles = {}, _periodOfDaySrcFiles[PeriodOfDay.Morning] = img$a, _periodOfDaySrcFiles[PeriodOfDay.Afternoon] = img$9, _periodOfDaySrcFiles[PeriodOfDay.Night] = img$b, _periodOfDaySrcFiles);
16310
+ var periodOfDaySrcFiles = (_periodOfDaySrcFiles = {}, _periodOfDaySrcFiles[PeriodOfDay.Morning] = img$9, _periodOfDaySrcFiles[PeriodOfDay.Afternoon] = img$8, _periodOfDaySrcFiles[PeriodOfDay.Night] = img$a, _periodOfDaySrcFiles);
16411
16311
  return React.createElement(GifContainer, null, React.createElement("img", {
16412
16312
  src: periodOfDaySrcFiles[periodOfDay]
16413
16313
  }));
@@ -16417,7 +16317,7 @@ var GifContainer = /*#__PURE__*/styled.div.withConfig({
16417
16317
  componentId: "sc-10t97fw-0"
16418
16318
  })(["width:100%;img{width:67%;}"]);
16419
16319
 
16420
- 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';
16320
+ 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';
16421
16321
 
16422
16322
  var TimeWidget = function TimeWidget(_ref) {
16423
16323
  var onClose = _ref.onClose,
@@ -16435,7 +16335,7 @@ var TimeWidget = function TimeWidget(_ref) {
16435
16335
  var WidgetContainer = /*#__PURE__*/styled.div.withConfig({
16436
16336
  displayName: "TimeWidget__WidgetContainer",
16437
16337
  componentId: "sc-1ja236h-0"
16438
- })(["background-image:url(", ");background-size:10rem;background-repeat:no-repeat;width:10rem;position:absolute;height:100px;"], img$c);
16338
+ })(["background-image:url(", ");background-size:10rem;background-repeat:no-repeat;width:10rem;position:absolute;height:100px;"], img$b);
16439
16339
  var Time = /*#__PURE__*/styled.div.withConfig({
16440
16340
  displayName: "TimeWidget__Time",
16441
16341
  componentId: "sc-1ja236h-1"
@@ -16685,16 +16585,230 @@ var Truncate = function Truncate(_ref) {
16685
16585
  var _ref$maxLines = _ref.maxLines,
16686
16586
  maxLines = _ref$maxLines === void 0 ? 1 : _ref$maxLines,
16687
16587
  children = _ref.children;
16688
- return React.createElement(Container$o, {
16588
+ return React.createElement(Container$m, {
16689
16589
  maxLines: maxLines
16690
16590
  }, children);
16691
16591
  };
16692
- var Container$o = /*#__PURE__*/styled.div.withConfig({
16592
+ var Container$m = /*#__PURE__*/styled.div.withConfig({
16693
16593
  displayName: "Truncate__Container",
16694
16594
  componentId: "sc-6x00qb-0"
16695
16595
  })(["display:-webkit-box;max-width:100%;max-height:100%;-webkit-line-clamp:", ";-webkit-box-orient:vertical;overflow:hidden;"], function (props) {
16696
16596
  return props.maxLines;
16697
16597
  });
16698
16598
 
16699
- export { Button, ButtonTypes, CharacterSelection, Chat, ChatDeprecated, CheckButton, CircularController, CraftBook, DraggableContainer, Dropdown, DropdownSelectorContainer, DynamicText, EquipmentSet, EquipmentSlotSpriteByType, ErrorBoundary, HistoryDialog, ImgSide, Input, InputRadio, ItemContainer$1 as ItemContainer, ItemSelector, ItemSlot, ListMenu, Marketplace, MarketplaceRows, NPCDialog, NPCDialogType, NPCMultiDialog, ProgressBar, PropertySelect, QuestInfo, QuestList, QuestionDialog, RPGUIContainer, RPGUIContainerTypes, RPGUIRoot, RangeSlider, RangeSliderType, Shortcuts, SkillProgressBar, SkillsContainer, Spellbook, SpriteFromAtlas, TextArea, TimeWidget, TradingMenu, Truncate, _RPGUI, rarityColor, useEventListener };
16599
+ var IS_MOBILE_OR_TABLET = /*#__PURE__*/isMobileOrTablet();
16600
+
16601
+ var chunkString = function chunkString(str, length) {
16602
+ return str.match(new RegExp('.{1,' + length + '}', 'g'));
16603
+ };
16604
+
16605
+ var img$c = 'data:image/gif;base64,R0lGODlhEAAQAPIAAAAAABQYLiw1TUBJc2hvmQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAM9CLrc/lCFGSKYJJP5AhlguDnBMIVgxXgmJapSSp3mKs/pKrT0IMCXUk+2Cgh2oSOnaDz+lswZpSOFUq2KBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAIzhI+py90Bg4OjDrjCELxfFQhQx0mIJkaeaYRp5LJADMdnqXbyOJLYTdKBejjZoRaZJBMFACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAABAAEAAAAjKEj6nL7Y+CDE6OO+QKQ/ifKYEgfR4VddPohQe7lmR0xidNTib65uacYP2AQWGuMlEUAAA7';
16606
+
16607
+ var NPCDialogText = function NPCDialogText(_ref) {
16608
+ var text = _ref.text,
16609
+ onClose = _ref.onClose,
16610
+ onEndStep = _ref.onEndStep,
16611
+ onStartStep = _ref.onStartStep,
16612
+ type = _ref.type;
16613
+ var windowSize = useRef([window.innerWidth, window.innerHeight]);
16614
+ function maxCharacters(width) {
16615
+ // Set the font size to 16 pixels
16616
+ var fontSize = 11.2;
16617
+ // Calculate the number of characters that can fit in one line
16618
+ var charactersPerLine = Math.floor(width / 2 / fontSize);
16619
+ // Calculate the number of lines that can fit in the div
16620
+ var linesPerDiv = Math.floor(180 / fontSize);
16621
+ // Calculate the maximum number of characters that can fit in the div
16622
+ var maxCharacters = charactersPerLine * linesPerDiv;
16623
+ // Return the maximum number of characters
16624
+ return Math.round(maxCharacters / 5);
16625
+ }
16626
+ var textChunks = chunkString(text, maxCharacters(windowSize.current[0]));
16627
+ var _useState = useState(0),
16628
+ chunkIndex = _useState[0],
16629
+ setChunkIndex = _useState[1];
16630
+ var onHandleSpacePress = function onHandleSpacePress(event) {
16631
+ if (event.code === 'Space') {
16632
+ goToNextStep();
16633
+ }
16634
+ };
16635
+ var goToNextStep = function goToNextStep() {
16636
+ var hasNextChunk = (textChunks == null ? void 0 : textChunks[chunkIndex + 1]) || false;
16637
+ if (hasNextChunk) {
16638
+ setChunkIndex(function (prev) {
16639
+ return prev + 1;
16640
+ });
16641
+ } else {
16642
+ // if there's no more text chunks, close the dialog
16643
+ onClose();
16644
+ }
16645
+ };
16646
+ useEffect(function () {
16647
+ document.addEventListener('keydown', onHandleSpacePress);
16648
+ return function () {
16649
+ return document.removeEventListener('keydown', onHandleSpacePress);
16650
+ };
16651
+ }, [chunkIndex]);
16652
+ var _useState2 = useState(false),
16653
+ showGoNextIndicator = _useState2[0],
16654
+ setShowGoNextIndicator = _useState2[1];
16655
+ return React.createElement(Container$n, null, React.createElement(DynamicText, {
16656
+ text: (textChunks == null ? void 0 : textChunks[chunkIndex]) || '',
16657
+ onFinish: function onFinish() {
16658
+ setShowGoNextIndicator(true);
16659
+ onEndStep && onEndStep();
16660
+ },
16661
+ onStart: function onStart() {
16662
+ setShowGoNextIndicator(false);
16663
+ onStartStep && onStartStep();
16664
+ }
16665
+ }), showGoNextIndicator && React.createElement(PressSpaceIndicator$1, {
16666
+ right: type === NPCDialogType.TextOnly ? '1rem' : '10.5rem',
16667
+ src: IS_MOBILE_OR_TABLET ? img$c : img$6,
16668
+ onPointerDown: function onPointerDown() {
16669
+ goToNextStep();
16670
+ }
16671
+ }));
16672
+ };
16673
+ var Container$n = /*#__PURE__*/styled.div.withConfig({
16674
+ displayName: "NPCDialogText__Container",
16675
+ componentId: "sc-1cxkdh9-0"
16676
+ })([""]);
16677
+ var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
16678
+ displayName: "NPCDialogText__PressSpaceIndicator",
16679
+ componentId: "sc-1cxkdh9-1"
16680
+ })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref2) {
16681
+ var right = _ref2.right;
16682
+ return right;
16683
+ });
16684
+
16685
+ var NPCDialogType;
16686
+ (function (NPCDialogType) {
16687
+ NPCDialogType["TextOnly"] = "TextOnly";
16688
+ NPCDialogType["TextAndThumbnail"] = "TextAndThumbnail";
16689
+ })(NPCDialogType || (NPCDialogType = {}));
16690
+ var NPCDialog = function NPCDialog(_ref) {
16691
+ var text = _ref.text,
16692
+ type = _ref.type,
16693
+ _onClose = _ref.onClose,
16694
+ imagePath = _ref.imagePath,
16695
+ _ref$isQuestionDialog = _ref.isQuestionDialog,
16696
+ isQuestionDialog = _ref$isQuestionDialog === void 0 ? false : _ref$isQuestionDialog,
16697
+ questions = _ref.questions,
16698
+ answers = _ref.answers;
16699
+ return React.createElement(RPGUIContainer, {
16700
+ type: RPGUIContainerTypes.FramedGold,
16701
+ width: isQuestionDialog ? '600px' : '80%',
16702
+ height: '180px'
16703
+ }, isQuestionDialog && questions && answers ? React.createElement(React.Fragment, null, React.createElement(TextContainer$2, {
16704
+ flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
16705
+ }, React.createElement(QuestionDialog, {
16706
+ questions: questions,
16707
+ answers: answers,
16708
+ onClose: function onClose() {
16709
+ if (_onClose) {
16710
+ _onClose();
16711
+ }
16712
+ }
16713
+ })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
16714
+ src: imagePath || img$5
16715
+ }))) : React.createElement(React.Fragment, null, React.createElement(Container$o, null, React.createElement(TextContainer$2, {
16716
+ flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
16717
+ }, React.createElement(NPCDialogText, {
16718
+ type: type,
16719
+ text: text || 'No text provided.',
16720
+ onClose: function onClose() {
16721
+ if (_onClose) {
16722
+ _onClose();
16723
+ }
16724
+ }
16725
+ })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
16726
+ src: imagePath || img$5
16727
+ })))));
16728
+ };
16729
+ var Container$o = /*#__PURE__*/styled.div.withConfig({
16730
+ displayName: "NPCDialog__Container",
16731
+ componentId: "sc-1b4aw74-0"
16732
+ })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
16733
+ var TextContainer$2 = /*#__PURE__*/styled.div.withConfig({
16734
+ displayName: "NPCDialog__TextContainer",
16735
+ componentId: "sc-1b4aw74-1"
16736
+ })(["flex:", " 0 0;width:355px;"], function (_ref2) {
16737
+ var flex = _ref2.flex;
16738
+ return flex;
16739
+ });
16740
+ var ThumbnailContainer$1 = /*#__PURE__*/styled.div.withConfig({
16741
+ displayName: "NPCDialog__ThumbnailContainer",
16742
+ componentId: "sc-1b4aw74-2"
16743
+ })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
16744
+ var NPCThumbnail$1 = /*#__PURE__*/styled.img.withConfig({
16745
+ displayName: "NPCDialog__NPCThumbnail",
16746
+ componentId: "sc-1b4aw74-3"
16747
+ })(["image-rendering:pixelated;height:128px;width:128px;"]);
16748
+
16749
+ var HistoryDialog = function HistoryDialog(_ref) {
16750
+ var backgroundImgPath = _ref.backgroundImgPath,
16751
+ fullCoverBackground = _ref.fullCoverBackground,
16752
+ questions = _ref.questions,
16753
+ answers = _ref.answers,
16754
+ text = _ref.text,
16755
+ imagePath = _ref.imagePath,
16756
+ textAndTypeArray = _ref.textAndTypeArray,
16757
+ onClose = _ref.onClose;
16758
+ var _useState = useState(0),
16759
+ img = _useState[0],
16760
+ setImage = _useState[1];
16761
+ var onHandleSpacePress = function onHandleSpacePress(event) {
16762
+ if (event.code === 'Space') {
16763
+ if (img < (backgroundImgPath == null ? void 0 : backgroundImgPath.length) - 1) {
16764
+ setImage(function (prev) {
16765
+ return prev + 1;
16766
+ });
16767
+ } else {
16768
+ // if there's no more text chunks, close the dialog
16769
+ onClose();
16770
+ }
16771
+ }
16772
+ };
16773
+ useEffect(function () {
16774
+ document.addEventListener('keydown', onHandleSpacePress);
16775
+ return function () {
16776
+ return document.removeEventListener('keydown', onHandleSpacePress);
16777
+ };
16778
+ }, [backgroundImgPath]);
16779
+ return React.createElement(BackgroundContainer, {
16780
+ imgPath: backgroundImgPath[img],
16781
+ fullImg: fullCoverBackground
16782
+ }, React.createElement(DialogContainer, null, textAndTypeArray ? React.createElement(NPCMultiDialog, {
16783
+ textAndTypeArray: textAndTypeArray,
16784
+ onClose: onClose
16785
+ }) : questions && answers ? React.createElement(QuestionDialog, {
16786
+ questions: questions,
16787
+ answers: answers,
16788
+ onClose: onClose
16789
+ }) : text && imagePath ? React.createElement(NPCDialog, {
16790
+ text: text,
16791
+ imagePath: imagePath,
16792
+ onClose: onClose,
16793
+ type: NPCDialogType.TextAndThumbnail
16794
+ }) : React.createElement(NPCDialog, {
16795
+ text: text,
16796
+ onClose: onClose,
16797
+ type: NPCDialogType.TextOnly
16798
+ })));
16799
+ };
16800
+ var BackgroundContainer = /*#__PURE__*/styled.div.withConfig({
16801
+ displayName: "HistoryDialog__BackgroundContainer",
16802
+ componentId: "sc-u6oe75-0"
16803
+ })(["width:100%;height:100%;background-image:url(", ");background-size:", ";display:flex;justify-content:space-evenly;align-items:center;"], function (props) {
16804
+ return props.imgPath;
16805
+ }, function (props) {
16806
+ return props.imgPath ? 'cover' : 'auto';
16807
+ });
16808
+ var DialogContainer = /*#__PURE__*/styled.div.withConfig({
16809
+ displayName: "HistoryDialog__DialogContainer",
16810
+ componentId: "sc-u6oe75-1"
16811
+ })(["display:flex;justify-content:center;padding-top:200px;"]);
16812
+
16813
+ export { Button, ButtonTypes, CharacterSelection, Chat, ChatDeprecated, CheckButton, CircularController, CraftBook, DraggableContainer, Dropdown, DropdownSelectorContainer, DynamicText, EquipmentSet, EquipmentSlotSpriteByType, ErrorBoundary, HistoryDialog, ImgSide, Input, InputRadio$1 as InputRadio, ItemContainer$1 as ItemContainer, ItemSelector, ItemSlot, ListMenu, Marketplace, MarketplaceRows, NPCDialog, NPCDialogType, NPCMultiDialog, ProgressBar, PropertySelect, QuestInfo, QuestList, QuestionDialog, RPGUIContainer, RPGUIContainerTypes, RPGUIRoot, RangeSlider, RangeSliderType, Shortcuts, SkillProgressBar, SkillsContainer, Spellbook, SpriteFromAtlas, TextArea, TimeWidget, TradingMenu, Truncate, _RPGUI, rarityColor, useEventListener };
16700
16814
  //# sourceMappingURL=long-bow.esm.js.map