@rpg-engine/long-bow 0.3.94 → 0.3.96

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