@rpg-engine/long-bow 0.4.82 → 0.4.84

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 (169) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +181 -181
  3. package/dist/components/SkillProgressBar.d.ts +1 -0
  4. package/dist/long-bow.cjs.development.js +1065 -1054
  5. package/dist/long-bow.cjs.development.js.map +1 -1
  6. package/dist/long-bow.cjs.production.min.js +1 -1
  7. package/dist/long-bow.cjs.production.min.js.map +1 -1
  8. package/dist/long-bow.esm.js +1067 -1056
  9. package/dist/long-bow.esm.js.map +1 -1
  10. package/package.json +100 -100
  11. package/src/components/Abstractions/ModalPortal.tsx +22 -22
  12. package/src/components/Abstractions/SlotsContainer.tsx +62 -62
  13. package/src/components/Arrow/SelectArrow.tsx +69 -69
  14. package/src/components/Arrow/img/arrow01-left-clicked.png +0 -0
  15. package/src/components/Arrow/img/arrow01-left.png +0 -0
  16. package/src/components/Arrow/img/arrow01-right-clicked.png +0 -0
  17. package/src/components/Arrow/img/arrow01-right.png +0 -0
  18. package/src/components/Arrow/img/arrow02-left-clicked.png +0 -0
  19. package/src/components/Arrow/img/arrow02-left.png +0 -0
  20. package/src/components/Arrow/img/arrow02-right-clicked.png +0 -0
  21. package/src/components/Arrow/img/arrow02-right.png +0 -0
  22. package/src/components/Button.tsx +40 -40
  23. package/src/components/Character/CharacterSelection.tsx +98 -98
  24. package/src/components/CharacterStatus/CharacterStatus.tsx +120 -120
  25. package/src/components/Chat/Chat.tsx +196 -196
  26. package/src/components/Chatdeprecated/ChatDeprecated.tsx +198 -198
  27. package/src/components/CheckButton.tsx +65 -65
  28. package/src/components/CircularController/CircularController.tsx +282 -282
  29. package/src/components/ConfirmModal.tsx +87 -87
  30. package/src/components/CraftBook/CraftBook.tsx +286 -286
  31. package/src/components/CraftBook/CraftingRecipe.tsx +161 -161
  32. package/src/components/CraftBook/MockItems.ts +101 -101
  33. package/src/components/DraggableContainer.tsx +183 -183
  34. package/src/components/Dropdown.tsx +114 -114
  35. package/src/components/DropdownSelectorContainer.tsx +42 -42
  36. package/src/components/Equipment/EquipmentSet.tsx +199 -199
  37. package/src/components/HistoryDialog.tsx +104 -104
  38. package/src/components/Input.tsx +15 -15
  39. package/src/components/InputRadio.tsx +41 -41
  40. package/src/components/Item/Cards/ItemInfo.tsx +298 -298
  41. package/src/components/Item/Cards/ItemInfoDisplay.tsx +135 -135
  42. package/src/components/Item/Cards/ItemInfoWrapper.tsx +62 -62
  43. package/src/components/Item/Cards/ItemTooltip.tsx +83 -83
  44. package/src/components/Item/Cards/MobileItemTooltip.tsx +149 -149
  45. package/src/components/Item/Inventory/ErrorBoundary.tsx +42 -42
  46. package/src/components/Item/Inventory/ItemContainer.tsx +231 -231
  47. package/src/components/Item/Inventory/ItemContainerTypes.ts +6 -6
  48. package/src/components/Item/Inventory/ItemQuantitySelector.tsx +138 -138
  49. package/src/components/Item/Inventory/ItemSlot.tsx +595 -595
  50. package/src/components/Item/Inventory/itemContainerHelper.ts +175 -175
  51. package/src/components/ListMenu.tsx +63 -63
  52. package/src/components/Marketplace/BuyPanel.tsx +304 -304
  53. package/src/components/Marketplace/ManagmentPanel.tsx +255 -255
  54. package/src/components/Marketplace/Marketplace.tsx +106 -106
  55. package/src/components/Marketplace/MarketplaceRows.tsx +177 -177
  56. package/src/components/Marketplace/filters/index.tsx +67 -67
  57. package/src/components/Multitab/Tab.tsx +66 -66
  58. package/src/components/Multitab/TabBody.tsx +13 -13
  59. package/src/components/Multitab/TabsContainer.tsx +97 -97
  60. package/src/components/NPCDialog/NPCDialog.tsx +121 -121
  61. package/src/components/NPCDialog/NPCDialogText.tsx +113 -113
  62. package/src/components/NPCDialog/NPCMultiDialog.tsx +159 -159
  63. package/src/components/NPCDialog/QuestionDialog/QuestionDialog.tsx +237 -237
  64. package/src/components/Pager.tsx +94 -94
  65. package/src/components/ProgressBar.tsx +102 -102
  66. package/src/components/PropertySelect/PropertySelect.tsx +106 -106
  67. package/src/components/QuestInfo/QuestInfo.tsx +233 -233
  68. package/src/components/QuestList.tsx +135 -135
  69. package/src/components/RPGUIContainer.tsx +47 -47
  70. package/src/components/RPGUIForceRenderStart.tsx +45 -45
  71. package/src/components/RPGUIRoot.tsx +14 -14
  72. package/src/components/RadioButton.tsx +53 -53
  73. package/src/components/RadioInput/RadioButton.tsx +96 -96
  74. package/src/components/RadioInput/RadioInput.tsx +102 -102
  75. package/src/components/RadioInput/instruments.ts +15 -15
  76. package/src/components/RangeSlider.tsx +78 -78
  77. package/src/components/RelativeListMenu.tsx +90 -90
  78. package/src/components/ScrollList.tsx +79 -79
  79. package/src/components/Shortcuts/Shortcuts.tsx +193 -193
  80. package/src/components/Shortcuts/ShortcutsSetter.tsx +139 -139
  81. package/src/components/Shortcuts/SingleShortcut.ts +82 -82
  82. package/src/components/Shortcuts/useShortcutCooldown.ts +23 -23
  83. package/src/components/SimpleProgressBar.tsx +62 -62
  84. package/src/components/SkillProgressBar.tsx +196 -206
  85. package/src/components/SkillsContainer.tsx +242 -213
  86. package/src/components/Spellbook/Spell.tsx +235 -235
  87. package/src/components/Spellbook/Spellbook.tsx +145 -145
  88. package/src/components/Spellbook/cards/MobileSpellTooltip.tsx +137 -137
  89. package/src/components/Spellbook/cards/SpellInfo.tsx +134 -134
  90. package/src/components/Spellbook/cards/SpellInfoDisplay.tsx +31 -31
  91. package/src/components/Spellbook/cards/SpellInfoWrapper.tsx +48 -48
  92. package/src/components/Spellbook/cards/SpellTooltip.tsx +70 -70
  93. package/src/components/Spellbook/constants.ts +7 -7
  94. package/src/components/Spellbook/mockSpells.ts +84 -84
  95. package/src/components/StaticBook/StaticBook.tsx +103 -103
  96. package/src/components/TextArea.tsx +11 -11
  97. package/src/components/TimeWidget/DayNightPeriod/DayNightPeriod.tsx +35 -35
  98. package/src/components/TimeWidget/TimeWidget.tsx +65 -65
  99. package/src/components/TradingMenu/TradingItemRow.tsx +199 -199
  100. package/src/components/TradingMenu/TradingMenu.tsx +219 -219
  101. package/src/components/TradingMenu/items.mock.ts +48 -48
  102. package/src/components/Truncate.tsx +25 -25
  103. package/src/components/itemSelector/ItemSelector.tsx +136 -136
  104. package/src/components/shared/Column.tsx +16 -16
  105. package/src/components/shared/Ellipsis.tsx +76 -76
  106. package/src/components/shared/SpriteFromAtlas.tsx +104 -104
  107. package/src/components/typography/DynamicText.tsx +49 -49
  108. package/src/constants/uiColors.ts +20 -20
  109. package/src/constants/uiDevices.ts +3 -3
  110. package/src/constants/uiFonts.ts +12 -12
  111. package/src/hooks/useEventListener.ts +21 -21
  112. package/src/hooks/useOutsideAlerter.ts +25 -25
  113. package/src/index.tsx +42 -42
  114. package/src/libs/CastingTypeHelper.ts +7 -7
  115. package/src/libs/StringHelpers.ts +3 -3
  116. package/src/libs/itemCounter.ts +21 -21
  117. package/src/mocks/atlas/entities/entities.json +20215 -20215
  118. package/src/mocks/atlas/icons/icons.json +735 -735
  119. package/src/mocks/atlas/items/items.json +12086 -12086
  120. package/src/mocks/equipmentSet.mocks.ts +391 -391
  121. package/src/mocks/itemContainer.mocks.ts +605 -605
  122. package/src/mocks/skills.mocks.ts +130 -130
  123. package/src/stories/Arrow.stories.tsx +26 -26
  124. package/src/stories/Button.stories.tsx +36 -36
  125. package/src/stories/CharacterSelection.stories.tsx +44 -44
  126. package/src/stories/CharacterStatus.stories.tsx +29 -29
  127. package/src/stories/Chat.stories.tsx +187 -187
  128. package/src/stories/ChatDeprecated.stories.tsx +170 -170
  129. package/src/stories/CheckButton.stories.tsx +48 -48
  130. package/src/stories/CircullarController.stories.tsx +37 -37
  131. package/src/stories/CraftBook.stories.tsx +42 -42
  132. package/src/stories/DayNightPeriod.stories.tsx +27 -27
  133. package/src/stories/DraggableContainer.stories.tsx +28 -28
  134. package/src/stories/Dropdown.stories.tsx +46 -46
  135. package/src/stories/DropdownSelectorContainer.stories.tsx +41 -41
  136. package/src/stories/EquipmentSet.stories.tsx +65 -65
  137. package/src/stories/HistoryDialog.stories.tsx +61 -61
  138. package/src/stories/ItemContainer.stories.tsx +201 -201
  139. package/src/stories/ItemInfoDisplay.stories.tsx +33 -33
  140. package/src/stories/ItemQuantitySelector.stories.tsx +26 -26
  141. package/src/stories/ItemSelector.stories.tsx +77 -77
  142. package/src/stories/ItemTradingComponent.stories.tsx +35 -35
  143. package/src/stories/ListMenu.stories.tsx +56 -56
  144. package/src/stories/Marketplace.stories.tsx +57 -57
  145. package/src/stories/MarketplaceRows.stories.tsx +27 -27
  146. package/src/stories/Multitab.stories.tsx +51 -51
  147. package/src/stories/NPCDialog.stories.tsx +130 -130
  148. package/src/stories/NPCMultiDialog.stories.tsx +71 -71
  149. package/src/stories/ProgressBar.stories.tsx +24 -24
  150. package/src/stories/PropertySelect.stories.tsx +40 -40
  151. package/src/stories/QuestInfo.stories.tsx +107 -107
  152. package/src/stories/QuestList.stories.tsx +82 -82
  153. package/src/stories/RPGUIContainers.stories.tsx +42 -42
  154. package/src/stories/RadioButton.stories.tsx +49 -49
  155. package/src/stories/RadioInput.stories.tsx +34 -34
  156. package/src/stories/RangeSlider.stories.tsx +64 -64
  157. package/src/stories/ScrollList.stories.tsx +85 -85
  158. package/src/stories/Shortcuts.stories.tsx +39 -39
  159. package/src/stories/SimpleProgressBar.stories.tsx +22 -22
  160. package/src/stories/SkillProgressBar.stories.tsx +34 -34
  161. package/src/stories/SkillsContainer.stories.tsx +35 -35
  162. package/src/stories/SpellInfoDisplay.stories.tsx +27 -27
  163. package/src/stories/Spellbook.stories.tsx +104 -104
  164. package/src/stories/StaticBook.stories.tsx +32 -32
  165. package/src/stories/Text.stories.tsx +42 -42
  166. package/src/stories/TimeWidget.stories.tsx +27 -27
  167. package/src/stories/TradingMenu.stories.tsx +47 -47
  168. package/src/types/eventTypes.ts +4 -4
  169. package/src/types/index.d.ts +2 -2
@@ -1,6 +1,6 @@
1
1
  import React, { Component, useState, useEffect, useRef, useMemo, Fragment } from 'react';
2
2
  import styled from 'styled-components';
3
- import { GRID_WIDTH, GRID_HEIGHT, ShortcutType, getItemTextureKeyPath, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemRarities, ItemSubType, ItemSlotType, getSPForLevel, PeriodOfDay, isMobileOrTablet } from '@rpg-engine/shared';
3
+ import { GRID_WIDTH, GRID_HEIGHT, ShortcutType, getItemTextureKeyPath, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemRarities, ItemSubType, ItemSlotType, isMobileOrTablet, getSPForLevel, getXPForLevel, PeriodOfDay } from '@rpg-engine/shared';
4
4
  import dayjs from 'dayjs';
5
5
  import { ErrorBoundary as ErrorBoundary$1 } from 'react-error-boundary';
6
6
  import { RxPaperPlane } from 'react-icons/rx';
@@ -14596,144 +14596,684 @@ var EquipmentColumn = /*#__PURE__*/styled.div.withConfig({
14596
14596
  componentId: "sc-1wuddg2-1"
14597
14597
  })(["display:flex;justify-content:center;flex-wrap:wrap;flex-direction:column;touch-action:none;"]);
14598
14598
 
14599
- var SlotsContainer = function SlotsContainer(_ref) {
14600
- var children = _ref.children,
14601
- title = _ref.title,
14602
- onClose = _ref.onClose,
14603
- _onPositionChange = _ref.onPositionChange,
14604
- _onPositionChangeEnd = _ref.onPositionChangeEnd,
14605
- _onPositionChangeStart = _ref.onPositionChangeStart,
14606
- onOutsideClick = _ref.onOutsideClick,
14607
- initialPosition = _ref.initialPosition,
14608
- scale = _ref.scale;
14609
- return React.createElement(DraggableContainer, {
14610
- title: title,
14611
- type: RPGUIContainerTypes.Framed,
14612
- onCloseButton: function onCloseButton() {
14613
- if (onClose) {
14614
- onClose();
14615
- }
14616
- },
14617
- width: "400px",
14618
- cancelDrag: ".item-container-body, #shortcuts_list",
14619
- onPositionChange: function onPositionChange(_ref2) {
14620
- var x = _ref2.x,
14621
- y = _ref2.y;
14622
- if (_onPositionChange) {
14623
- _onPositionChange({
14624
- x: x,
14625
- y: y
14626
- });
14627
- }
14628
- },
14629
- onPositionChangeEnd: function onPositionChangeEnd(_ref3) {
14630
- var x = _ref3.x,
14631
- y = _ref3.y;
14632
- if (_onPositionChangeEnd) {
14633
- _onPositionChangeEnd({
14634
- x: x,
14635
- y: y
14636
- });
14599
+ var IS_MOBILE_OR_TABLET = /*#__PURE__*/isMobileOrTablet();
14600
+
14601
+ var chunkString = function chunkString(str, length) {
14602
+ return str.match(new RegExp('.{1,' + length + '}', 'g'));
14603
+ };
14604
+
14605
+ var DynamicText = function DynamicText(_ref) {
14606
+ var text = _ref.text,
14607
+ onFinish = _ref.onFinish,
14608
+ onStart = _ref.onStart;
14609
+ var _useState = useState(''),
14610
+ textState = _useState[0],
14611
+ setTextState = _useState[1];
14612
+ useEffect(function () {
14613
+ var i = 0;
14614
+ var interval = setInterval(function () {
14615
+ // on every interval, show one more character
14616
+ if (i === 0) {
14617
+ if (onStart) {
14618
+ onStart();
14619
+ }
14637
14620
  }
14638
- },
14639
- onPositionChangeStart: function onPositionChangeStart(_ref4) {
14640
- var x = _ref4.x,
14641
- y = _ref4.y;
14642
- if (_onPositionChangeStart) {
14643
- _onPositionChangeStart({
14644
- x: x,
14645
- y: y
14646
- });
14621
+ if (i < text.length) {
14622
+ setTextState(text.substring(0, i + 1));
14623
+ i++;
14624
+ } else {
14625
+ clearInterval(interval);
14626
+ if (onFinish) {
14627
+ onFinish();
14628
+ }
14647
14629
  }
14648
- },
14649
- onOutsideClick: onOutsideClick,
14650
- initialPosition: initialPosition,
14651
- scale: scale
14652
- }, children);
14630
+ }, 50);
14631
+ return function () {
14632
+ clearInterval(interval);
14633
+ };
14634
+ }, [text]);
14635
+ return React.createElement(TextContainer, null, textState);
14653
14636
  };
14637
+ var TextContainer = /*#__PURE__*/styled.p.withConfig({
14638
+ displayName: "DynamicText__TextContainer",
14639
+ componentId: "sc-1ggl9nd-0"
14640
+ })(["font-size:0.7rem !important;color:white;text-shadow:1px 1px 0px #000000;letter-spacing:1.2px;word-break:normal;"]);
14654
14641
 
14655
- var RangeSliderType;
14656
- (function (RangeSliderType) {
14657
- RangeSliderType["Slider"] = "rpgui-slider";
14658
- RangeSliderType["GoldSlider"] = "rpgui-slider golden";
14659
- })(RangeSliderType || (RangeSliderType = {}));
14660
- var RangeSlider = function RangeSlider(_ref) {
14661
- var type = _ref.type,
14662
- valueMin = _ref.valueMin,
14663
- valueMax = _ref.valueMax,
14664
- width = _ref.width,
14665
- _onChange = _ref.onChange,
14666
- value = _ref.value;
14667
- var sliderId = v4();
14668
- var containerRef = useRef(null);
14642
+ var img$5 = 'data:image/gif;base64,R0lGODlhEAAQAPIAAAAAABQYLiw1TUBJc2hvmQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAM9CLrc/lCFGSKYJJP5AhlguDnBMIVgxXgmJapSSp3mKs/pKrT0IMCXUk+2Cgh2oSOnaDz+lswZpSOFUq2KBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAIzhI+py90Bg4OjDrjCELxfFQhQx0mIJkaeaYRp5LJADMdnqXbyOJLYTdKBejjZoRaZJBMFACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAABAAEAAAAjKEj6nL7Y+CDE6OO+QKQ/ifKYEgfR4VddPohQe7lmR0xidNTib65uacYP2AQWGuMlEUAAA7';
14643
+
14644
+ 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';
14645
+
14646
+ var NPCDialogText = function NPCDialogText(_ref) {
14647
+ var text = _ref.text,
14648
+ onClose = _ref.onClose,
14649
+ onEndStep = _ref.onEndStep,
14650
+ onStartStep = _ref.onStartStep,
14651
+ type = _ref.type;
14652
+ var windowSize = useRef([window.innerWidth, window.innerHeight]);
14653
+ function maxCharacters(width) {
14654
+ // Set the font size to 16 pixels
14655
+ var fontSize = 11.2;
14656
+ // Calculate the number of characters that can fit in one line
14657
+ var charactersPerLine = Math.floor(width / 2 / fontSize);
14658
+ // Calculate the number of lines that can fit in the div
14659
+ var linesPerDiv = Math.floor(180 / fontSize);
14660
+ // Calculate the maximum number of characters that can fit in the div
14661
+ var maxCharacters = charactersPerLine * linesPerDiv;
14662
+ // Return the maximum number of characters
14663
+ return Math.round(maxCharacters / 5);
14664
+ }
14665
+ var textChunks = chunkString(text, maxCharacters(windowSize.current[0]));
14669
14666
  var _useState = useState(0),
14670
- left = _useState[0],
14671
- setLeft = _useState[1];
14667
+ chunkIndex = _useState[0],
14668
+ setChunkIndex = _useState[1];
14669
+ var onHandleSpacePress = function onHandleSpacePress(event) {
14670
+ if (event.code === 'Space') {
14671
+ goToNextStep();
14672
+ }
14673
+ };
14674
+ var goToNextStep = function goToNextStep() {
14675
+ var hasNextChunk = (textChunks == null ? void 0 : textChunks[chunkIndex + 1]) || false;
14676
+ if (hasNextChunk) {
14677
+ setChunkIndex(function (prev) {
14678
+ return prev + 1;
14679
+ });
14680
+ } else {
14681
+ // if there's no more text chunks, close the dialog
14682
+ onClose();
14683
+ }
14684
+ };
14672
14685
  useEffect(function () {
14673
- var _containerRef$current;
14674
- var calculatedWidth = ((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.clientWidth) || 0;
14675
- setLeft(Math.max((value - valueMin) / (valueMax - valueMin) * (calculatedWidth - 35) + 10));
14676
- }, [value, valueMin, valueMax]);
14677
- var typeClass = type === RangeSliderType.GoldSlider ? 'golden' : '';
14678
- return React.createElement("div", {
14679
- style: {
14680
- width: width,
14681
- position: 'relative'
14686
+ document.addEventListener('keydown', onHandleSpacePress);
14687
+ return function () {
14688
+ return document.removeEventListener('keydown', onHandleSpacePress);
14689
+ };
14690
+ }, [chunkIndex]);
14691
+ var _useState2 = useState(false),
14692
+ showGoNextIndicator = _useState2[0],
14693
+ setShowGoNextIndicator = _useState2[1];
14694
+ return React.createElement(Container$e, null, React.createElement(DynamicText, {
14695
+ text: (textChunks == null ? void 0 : textChunks[chunkIndex]) || '',
14696
+ onFinish: function onFinish() {
14697
+ setShowGoNextIndicator(true);
14698
+ onEndStep && onEndStep();
14682
14699
  },
14683
- className: "rpgui-slider-container " + typeClass,
14684
- id: "rpgui-slider-" + sliderId,
14685
- ref: containerRef
14686
- }, React.createElement("div", {
14687
- style: {
14688
- pointerEvents: 'none'
14700
+ onStart: function onStart() {
14701
+ setShowGoNextIndicator(false);
14702
+ onStartStep && onStartStep();
14689
14703
  }
14690
- }, React.createElement("div", {
14691
- className: "rpgui-slider-track " + typeClass
14692
- }), React.createElement("div", {
14693
- className: "rpgui-slider-left-edge " + typeClass
14694
- }), React.createElement("div", {
14695
- className: "rpgui-slider-right-edge " + typeClass
14696
- }), React.createElement("div", {
14697
- className: "rpgui-slider-thumb " + typeClass,
14698
- style: {
14699
- left: left
14704
+ }), showGoNextIndicator && React.createElement(PressSpaceIndicator, {
14705
+ right: type === NPCDialogType.TextOnly ? '1rem' : '10.5rem',
14706
+ src: IS_MOBILE_OR_TABLET ? img$5 : img$6,
14707
+ onPointerDown: function onPointerDown() {
14708
+ goToNextStep();
14700
14709
  }
14701
- })), React.createElement(Input$1, {
14702
- type: "range",
14703
- style: {
14704
- width: width
14705
- },
14706
- min: valueMin,
14707
- max: valueMax,
14708
- onChange: function onChange(e) {
14709
- return _onChange(Number(e.target.value));
14710
- },
14711
- value: value,
14712
- className: "rpgui-cursor-point"
14713
14710
  }));
14714
14711
  };
14715
- var Input$1 = /*#__PURE__*/styled.input.withConfig({
14716
- displayName: "RangeSlider__Input",
14717
- componentId: "sc-v8mte9-0"
14718
- })(["opacity:0;position:absolute;width:100%;height:100%;top:0;left:0;margin-top:-5px;"]);
14712
+ var Container$e = /*#__PURE__*/styled.div.withConfig({
14713
+ displayName: "NPCDialogText__Container",
14714
+ componentId: "sc-1cxkdh9-0"
14715
+ })([""]);
14716
+ var PressSpaceIndicator = /*#__PURE__*/styled.img.withConfig({
14717
+ displayName: "NPCDialogText__PressSpaceIndicator",
14718
+ componentId: "sc-1cxkdh9-1"
14719
+ })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref2) {
14720
+ var right = _ref2.right;
14721
+ return right;
14722
+ });
14719
14723
 
14720
- var ItemQuantitySelector = function ItemQuantitySelector(_ref) {
14721
- var quantity = _ref.quantity,
14722
- onConfirm = _ref.onConfirm,
14724
+ //@ts-ignore
14725
+ var useEventListener = function useEventListener(type, handler, el) {
14726
+ if (el === void 0) {
14727
+ el = window;
14728
+ }
14729
+ var savedHandler = React.useRef();
14730
+ React.useEffect(function () {
14731
+ savedHandler.current = handler;
14732
+ }, [handler]);
14733
+ React.useEffect(function () {
14734
+ //@ts-ignore
14735
+ var listener = function listener(e) {
14736
+ return savedHandler.current(e);
14737
+ };
14738
+ el.addEventListener(type, listener);
14739
+ return function () {
14740
+ el.removeEventListener(type, listener);
14741
+ };
14742
+ }, [type, el]);
14743
+ };
14744
+
14745
+ var QuestionDialog = function QuestionDialog(_ref) {
14746
+ var questions = _ref.questions,
14747
+ answers = _ref.answers,
14723
14748
  onClose = _ref.onClose;
14724
- var _useState = useState(quantity),
14725
- value = _useState[0],
14726
- setValue = _useState[1];
14727
- var inputRef = useRef(null);
14728
- useEffect(function () {
14729
- if (inputRef.current) {
14730
- inputRef.current.focus();
14731
- inputRef.current.select();
14732
- var closeSelector = function closeSelector(e) {
14733
- if (e.key === 'Escape') {
14734
- onClose();
14735
- }
14736
- };
14749
+ var _useState = useState(questions[0]),
14750
+ currentQuestion = _useState[0],
14751
+ setCurrentQuestion = _useState[1];
14752
+ var _useState2 = useState(false),
14753
+ canShowAnswers = _useState2[0],
14754
+ setCanShowAnswers = _useState2[1];
14755
+ var onGetFirstAnswer = function onGetFirstAnswer() {
14756
+ if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {
14757
+ return null;
14758
+ }
14759
+ var firstAnswerId = currentQuestion.answerIds[0];
14760
+ return answers.find(function (answer) {
14761
+ return answer.id === firstAnswerId;
14762
+ });
14763
+ };
14764
+ var _useState3 = useState(onGetFirstAnswer()),
14765
+ currentAnswer = _useState3[0],
14766
+ setCurrentAnswer = _useState3[1];
14767
+ useEffect(function () {
14768
+ setCurrentAnswer(onGetFirstAnswer());
14769
+ }, [currentQuestion]);
14770
+ var onGetAnswers = function onGetAnswers(answerIds) {
14771
+ return answerIds.map(function (answerId) {
14772
+ return answers.find(function (answer) {
14773
+ return answer.id === answerId;
14774
+ });
14775
+ });
14776
+ };
14777
+ var onKeyPress = function onKeyPress(e) {
14778
+ switch (e.key) {
14779
+ case 'ArrowDown':
14780
+ // select next answer, if any.
14781
+ // if no next answer, select first answer
14782
+ // const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(
14783
+ // (answer) => answer?.id === currentAnswer!.id + 1
14784
+ // );
14785
+ var nextAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
14786
+ return (answer == null ? void 0 : answer.id) === currentAnswer.id + 1;
14787
+ });
14788
+ var nextAnswerID = currentQuestion.answerIds[nextAnswerIndex];
14789
+ var nextAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
14790
+ return (answer == null ? void 0 : answer.id) === nextAnswerID;
14791
+ });
14792
+ setCurrentAnswer(nextAnswer || onGetFirstAnswer());
14793
+ break;
14794
+ case 'ArrowUp':
14795
+ // select previous answer, if any.
14796
+ // if no previous answer, select last answer
14797
+ var previousAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
14798
+ return (answer == null ? void 0 : answer.id) === currentAnswer.id - 1;
14799
+ });
14800
+ var previousAnswerID = currentQuestion.answerIds && currentQuestion.answerIds[previousAnswerIndex];
14801
+ var previousAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
14802
+ return (answer == null ? void 0 : answer.id) === previousAnswerID;
14803
+ });
14804
+ if (previousAnswer) {
14805
+ setCurrentAnswer(previousAnswer);
14806
+ } else {
14807
+ setCurrentAnswer(onGetAnswers(currentQuestion.answerIds).pop());
14808
+ }
14809
+ break;
14810
+ case 'Enter':
14811
+ setCanShowAnswers(false);
14812
+ if (!(currentAnswer != null && currentAnswer.nextQuestionId)) {
14813
+ onClose();
14814
+ return;
14815
+ } else {
14816
+ setCurrentQuestion(questions.find(function (question) {
14817
+ return question.id === currentAnswer.nextQuestionId;
14818
+ }));
14819
+ }
14820
+ break;
14821
+ }
14822
+ };
14823
+ useEventListener('keydown', onKeyPress);
14824
+ var onAnswerClick = function onAnswerClick(answer) {
14825
+ setCanShowAnswers(false);
14826
+ if (answer.nextQuestionId) {
14827
+ // if there is a next question, go to it
14828
+ setCurrentQuestion(questions.find(function (question) {
14829
+ return question.id === answer.nextQuestionId;
14830
+ }));
14831
+ } else {
14832
+ // else, finish dialog!
14833
+ onClose();
14834
+ }
14835
+ };
14836
+ var onRenderCurrentAnswers = function onRenderCurrentAnswers() {
14837
+ var answerIds = currentQuestion.answerIds;
14838
+ if (!answerIds) {
14839
+ return null;
14840
+ }
14841
+ var answers = onGetAnswers(answerIds);
14842
+ if (!answers) {
14843
+ return null;
14844
+ }
14845
+ return answers.map(function (answer) {
14846
+ var isSelected = (currentAnswer == null ? void 0 : currentAnswer.id) === (answer == null ? void 0 : answer.id);
14847
+ var selectedColor = isSelected ? 'yellow' : 'white';
14848
+ if (answer) {
14849
+ return React.createElement(AnswerRow, {
14850
+ key: "answer_" + answer.id
14851
+ }, React.createElement(AnswerSelectedIcon, {
14852
+ color: selectedColor
14853
+ }, isSelected ? 'X' : null), React.createElement(Answer, {
14854
+ key: answer.id,
14855
+ onPointerDown: function onPointerDown() {
14856
+ return onAnswerClick(answer);
14857
+ },
14858
+ color: selectedColor
14859
+ }, answer.text));
14860
+ }
14861
+ return null;
14862
+ });
14863
+ };
14864
+ return React.createElement(Container$f, null, React.createElement(QuestionContainer, null, React.createElement(DynamicText, {
14865
+ text: currentQuestion.text,
14866
+ onStart: function onStart() {
14867
+ return setCanShowAnswers(false);
14868
+ },
14869
+ onFinish: function onFinish() {
14870
+ return setCanShowAnswers(true);
14871
+ }
14872
+ })), canShowAnswers && React.createElement(AnswersContainer, null, onRenderCurrentAnswers()));
14873
+ };
14874
+ var Container$f = /*#__PURE__*/styled.div.withConfig({
14875
+ displayName: "QuestionDialog__Container",
14876
+ componentId: "sc-bxc5u0-0"
14877
+ })(["display:flex;word-break:break-all;box-sizing:border-box;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;"]);
14878
+ var QuestionContainer = /*#__PURE__*/styled.div.withConfig({
14879
+ displayName: "QuestionDialog__QuestionContainer",
14880
+ componentId: "sc-bxc5u0-1"
14881
+ })(["flex:100%;width:100%;"]);
14882
+ var AnswersContainer = /*#__PURE__*/styled.div.withConfig({
14883
+ displayName: "QuestionDialog__AnswersContainer",
14884
+ componentId: "sc-bxc5u0-2"
14885
+ })(["flex:100%;"]);
14886
+ var Answer = /*#__PURE__*/styled.p.withConfig({
14887
+ displayName: "QuestionDialog__Answer",
14888
+ componentId: "sc-bxc5u0-3"
14889
+ })(["flex:auto;color:", " !important;font-size:0.65rem !important;background:inherit;border:none;"], function (props) {
14890
+ return props.color;
14891
+ });
14892
+ var AnswerSelectedIcon = /*#__PURE__*/styled.span.withConfig({
14893
+ displayName: "QuestionDialog__AnswerSelectedIcon",
14894
+ componentId: "sc-bxc5u0-4"
14895
+ })(["flex:5% 0 0;color:", " !important;"], function (props) {
14896
+ return props.color;
14897
+ });
14898
+ var AnswerRow = /*#__PURE__*/styled.div.withConfig({
14899
+ displayName: "QuestionDialog__AnswerRow",
14900
+ componentId: "sc-bxc5u0-5"
14901
+ })(["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;}"]);
14902
+
14903
+ var img$7 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAP1BMVEUAAAA7FyVxQTsUEBPj5v////+5v/tCJDOOUlIiHBr1oJfptaO6dWr61rhzFy1bMTjoanMUNGQoXMQkn97+88DQ3IhAAAAAAXRSTlMAQObYZgAAAAFiS0dEBfhv6ccAAAAHdElNRQfmAw4VOBC7c5LYAAABM0lEQVQ4y3XRi5KDIAwFUAUkbrBgpP//rZsHVHQ009qZ3tPboNN0zmwzvcw8O5sX4y0NOg/Et3jRCXF+ziULorjkOQ9gE24dvuUAzq08DiCO4pe3WN7zCP56vmpubBReQYC11YPS86ySxxCsAABTSgjb5m4g8nfbxvFHBkH2OEEvAItVuCuIsgGgl+Gcr7kDXxhEAx55A2SQEEeQeZwUaIP8Tbo05B0RFPhItAjgj1w6cDnhLluDj+Egkh3pCCP4pKQAw1IPO0W9Nti5gW9RP2dKA3BZd2Dw+baYX+Nt4GM00O4S3kEpF6Alb2Bv4LeC3kkGfAW0/p0RPoJVKr63ghHsKuRh5DIUKOAlGOwrtt9fQekAEfmhZslHUDoglB0zjfkJigN7UnTQQ4GBWomoVhEN/AOPSBh38gy+fwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wMy0xNFQyMTo1NTo1MSswMDowMJcc0eEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDMtMTRUMjE6NTU6NTErMDA6MDDmQWldAAAAAElFTkSuQmCC';
14904
+
14905
+ var NPCDialogType;
14906
+ (function (NPCDialogType) {
14907
+ NPCDialogType["TextOnly"] = "TextOnly";
14908
+ NPCDialogType["TextAndThumbnail"] = "TextAndThumbnail";
14909
+ })(NPCDialogType || (NPCDialogType = {}));
14910
+ var NPCDialog = function NPCDialog(_ref) {
14911
+ var text = _ref.text,
14912
+ type = _ref.type,
14913
+ _onClose = _ref.onClose,
14914
+ imagePath = _ref.imagePath,
14915
+ _ref$isQuestionDialog = _ref.isQuestionDialog,
14916
+ isQuestionDialog = _ref$isQuestionDialog === void 0 ? false : _ref$isQuestionDialog,
14917
+ questions = _ref.questions,
14918
+ answers = _ref.answers;
14919
+ return React.createElement(RPGUIContainer, {
14920
+ type: RPGUIContainerTypes.FramedGold,
14921
+ width: isQuestionDialog ? '600px' : '80%',
14922
+ height: '180px'
14923
+ }, isQuestionDialog && questions && answers ? React.createElement(React.Fragment, null, React.createElement(TextContainer$1, {
14924
+ flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
14925
+ }, React.createElement(QuestionDialog, {
14926
+ questions: questions,
14927
+ answers: answers,
14928
+ onClose: function onClose() {
14929
+ if (_onClose) {
14930
+ _onClose();
14931
+ }
14932
+ }
14933
+ })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
14934
+ src: imagePath || img$7
14935
+ }))) : React.createElement(React.Fragment, null, React.createElement(Container$g, null, React.createElement(TextContainer$1, {
14936
+ flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
14937
+ }, React.createElement(NPCDialogText, {
14938
+ type: type,
14939
+ text: text || 'No text provided.',
14940
+ onClose: function onClose() {
14941
+ if (_onClose) {
14942
+ _onClose();
14943
+ }
14944
+ }
14945
+ })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
14946
+ src: imagePath || img$7
14947
+ })))));
14948
+ };
14949
+ var Container$g = /*#__PURE__*/styled.div.withConfig({
14950
+ displayName: "NPCDialog__Container",
14951
+ componentId: "sc-1b4aw74-0"
14952
+ })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
14953
+ var TextContainer$1 = /*#__PURE__*/styled.div.withConfig({
14954
+ displayName: "NPCDialog__TextContainer",
14955
+ componentId: "sc-1b4aw74-1"
14956
+ })(["flex:", " 0 0;width:355px;"], function (_ref2) {
14957
+ var flex = _ref2.flex;
14958
+ return flex;
14959
+ });
14960
+ var ThumbnailContainer = /*#__PURE__*/styled.div.withConfig({
14961
+ displayName: "NPCDialog__ThumbnailContainer",
14962
+ componentId: "sc-1b4aw74-2"
14963
+ })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
14964
+ var NPCThumbnail = /*#__PURE__*/styled.img.withConfig({
14965
+ displayName: "NPCDialog__NPCThumbnail",
14966
+ componentId: "sc-1b4aw74-3"
14967
+ })(["image-rendering:pixelated;height:128px;width:128px;"]);
14968
+
14969
+ var ImgSide;
14970
+ (function (ImgSide) {
14971
+ ImgSide["right"] = "right";
14972
+ ImgSide["left"] = "left";
14973
+ })(ImgSide || (ImgSide = {}));
14974
+ var NPCMultiDialog = function NPCMultiDialog(_ref) {
14975
+ var _textAndTypeArray$sli;
14976
+ var _onClose = _ref.onClose,
14977
+ textAndTypeArray = _ref.textAndTypeArray;
14978
+ var _useState = useState(false),
14979
+ showGoNextIndicator = _useState[0],
14980
+ setShowGoNextIndicator = _useState[1];
14981
+ var _useState2 = useState(0),
14982
+ slide = _useState2[0],
14983
+ setSlide = _useState2[1];
14984
+ var onHandleSpacePress = function onHandleSpacePress(event) {
14985
+ if (event.code === 'Space') {
14986
+ if (slide < (textAndTypeArray == null ? void 0 : textAndTypeArray.length) - 1) {
14987
+ setSlide(function (prev) {
14988
+ return prev + 1;
14989
+ });
14990
+ } else {
14991
+ // if there's no more text chunks, close the dialog
14992
+ _onClose();
14993
+ }
14994
+ }
14995
+ };
14996
+ useEffect(function () {
14997
+ document.addEventListener('keydown', onHandleSpacePress);
14998
+ return function () {
14999
+ return document.removeEventListener('keydown', onHandleSpacePress);
15000
+ };
15001
+ }, [slide]);
15002
+ return React.createElement(RPGUIContainer, {
15003
+ type: RPGUIContainerTypes.FramedGold,
15004
+ width: '50%',
15005
+ height: '180px'
15006
+ }, React.createElement(React.Fragment, null, React.createElement(Container$h, null, ((_textAndTypeArray$sli = textAndTypeArray[slide]) == null ? void 0 : _textAndTypeArray$sli.imageSide) === 'right' && React.createElement(React.Fragment, null, React.createElement(TextContainer$2, {
15007
+ flex: '70%'
15008
+ }, React.createElement(NPCDialogText, {
15009
+ onStartStep: function onStartStep() {
15010
+ return setShowGoNextIndicator(false);
15011
+ },
15012
+ onEndStep: function onEndStep() {
15013
+ return setShowGoNextIndicator(true);
15014
+ },
15015
+ text: textAndTypeArray[slide].text || 'No text provided.',
15016
+ onClose: function onClose() {
15017
+ if (_onClose) {
15018
+ _onClose();
15019
+ }
15020
+ }
15021
+ })), React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
15022
+ src: textAndTypeArray[slide].imagePath || img$7
15023
+ })), showGoNextIndicator && React.createElement(PressSpaceIndicator$1, {
15024
+ right: '10.5rem',
15025
+ src: img$6
15026
+ })), textAndTypeArray[slide].imageSide === 'left' && React.createElement(React.Fragment, null, React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
15027
+ src: textAndTypeArray[slide].imagePath || img$7
15028
+ })), React.createElement(TextContainer$2, {
15029
+ flex: '70%'
15030
+ }, React.createElement(NPCDialogText, {
15031
+ onStartStep: function onStartStep() {
15032
+ return setShowGoNextIndicator(false);
15033
+ },
15034
+ onEndStep: function onEndStep() {
15035
+ return setShowGoNextIndicator(true);
15036
+ },
15037
+ text: textAndTypeArray[slide].text || 'No text provided.',
15038
+ onClose: function onClose() {
15039
+ if (_onClose) {
15040
+ _onClose();
15041
+ }
15042
+ }
15043
+ })), showGoNextIndicator && React.createElement(PressSpaceIndicator$1, {
15044
+ right: '1rem',
15045
+ src: img$6
15046
+ }))), ")"));
15047
+ };
15048
+ var Container$h = /*#__PURE__*/styled.div.withConfig({
15049
+ displayName: "NPCMultiDialog__Container",
15050
+ componentId: "sc-rvu5wg-0"
15051
+ })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
15052
+ var TextContainer$2 = /*#__PURE__*/styled.div.withConfig({
15053
+ displayName: "NPCMultiDialog__TextContainer",
15054
+ componentId: "sc-rvu5wg-1"
15055
+ })(["flex:", " 0 0;width:355px;"], function (_ref2) {
15056
+ var flex = _ref2.flex;
15057
+ return flex;
15058
+ });
15059
+ var ThumbnailContainer$1 = /*#__PURE__*/styled.div.withConfig({
15060
+ displayName: "NPCMultiDialog__ThumbnailContainer",
15061
+ componentId: "sc-rvu5wg-2"
15062
+ })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
15063
+ var NPCThumbnail$1 = /*#__PURE__*/styled.img.withConfig({
15064
+ displayName: "NPCMultiDialog__NPCThumbnail",
15065
+ componentId: "sc-rvu5wg-3"
15066
+ })(["image-rendering:pixelated;height:128px;width:128px;"]);
15067
+ var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
15068
+ displayName: "NPCMultiDialog__PressSpaceIndicator",
15069
+ componentId: "sc-rvu5wg-4"
15070
+ })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref3) {
15071
+ var right = _ref3.right;
15072
+ return right;
15073
+ });
15074
+
15075
+ var HistoryDialog = function HistoryDialog(_ref) {
15076
+ var backgroundImgPath = _ref.backgroundImgPath,
15077
+ fullCoverBackground = _ref.fullCoverBackground,
15078
+ questions = _ref.questions,
15079
+ answers = _ref.answers,
15080
+ text = _ref.text,
15081
+ imagePath = _ref.imagePath,
15082
+ textAndTypeArray = _ref.textAndTypeArray,
15083
+ onClose = _ref.onClose;
15084
+ var _useState = useState(0),
15085
+ img = _useState[0],
15086
+ setImage = _useState[1];
15087
+ var onHandleSpacePress = function onHandleSpacePress(event) {
15088
+ if (event.code === 'Space') {
15089
+ if (img < (backgroundImgPath == null ? void 0 : backgroundImgPath.length) - 1) {
15090
+ setImage(function (prev) {
15091
+ return prev + 1;
15092
+ });
15093
+ } else {
15094
+ // if there's no more text chunks, close the dialog
15095
+ onClose();
15096
+ }
15097
+ }
15098
+ };
15099
+ useEffect(function () {
15100
+ document.addEventListener('keydown', onHandleSpacePress);
15101
+ return function () {
15102
+ return document.removeEventListener('keydown', onHandleSpacePress);
15103
+ };
15104
+ }, [backgroundImgPath]);
15105
+ return React.createElement(BackgroundContainer, {
15106
+ imgPath: backgroundImgPath[img],
15107
+ fullImg: fullCoverBackground
15108
+ }, React.createElement(DialogContainer, null, textAndTypeArray ? React.createElement(NPCMultiDialog, {
15109
+ textAndTypeArray: textAndTypeArray,
15110
+ onClose: onClose
15111
+ }) : questions && answers ? React.createElement(QuestionDialog, {
15112
+ questions: questions,
15113
+ answers: answers,
15114
+ onClose: onClose
15115
+ }) : text && imagePath ? React.createElement(NPCDialog, {
15116
+ text: text,
15117
+ imagePath: imagePath,
15118
+ onClose: onClose,
15119
+ type: NPCDialogType.TextAndThumbnail
15120
+ }) : React.createElement(NPCDialog, {
15121
+ text: text,
15122
+ onClose: onClose,
15123
+ type: NPCDialogType.TextOnly
15124
+ })));
15125
+ };
15126
+ var BackgroundContainer = /*#__PURE__*/styled.div.withConfig({
15127
+ displayName: "HistoryDialog__BackgroundContainer",
15128
+ componentId: "sc-u6oe75-0"
15129
+ })(["width:100%;height:100%;background-image:url(", ");background-size:", ";display:flex;justify-content:space-evenly;align-items:center;"], function (props) {
15130
+ return props.imgPath;
15131
+ }, function (props) {
15132
+ return props.imgPath ? 'cover' : 'auto';
15133
+ });
15134
+ var DialogContainer = /*#__PURE__*/styled.div.withConfig({
15135
+ displayName: "HistoryDialog__DialogContainer",
15136
+ componentId: "sc-u6oe75-1"
15137
+ })(["display:flex;justify-content:center;padding-top:200px;"]);
15138
+
15139
+ var SlotsContainer = function SlotsContainer(_ref) {
15140
+ var children = _ref.children,
15141
+ title = _ref.title,
15142
+ onClose = _ref.onClose,
15143
+ _onPositionChange = _ref.onPositionChange,
15144
+ _onPositionChangeEnd = _ref.onPositionChangeEnd,
15145
+ _onPositionChangeStart = _ref.onPositionChangeStart,
15146
+ onOutsideClick = _ref.onOutsideClick,
15147
+ initialPosition = _ref.initialPosition,
15148
+ scale = _ref.scale;
15149
+ return React.createElement(DraggableContainer, {
15150
+ title: title,
15151
+ type: RPGUIContainerTypes.Framed,
15152
+ onCloseButton: function onCloseButton() {
15153
+ if (onClose) {
15154
+ onClose();
15155
+ }
15156
+ },
15157
+ width: "400px",
15158
+ cancelDrag: ".item-container-body, #shortcuts_list",
15159
+ onPositionChange: function onPositionChange(_ref2) {
15160
+ var x = _ref2.x,
15161
+ y = _ref2.y;
15162
+ if (_onPositionChange) {
15163
+ _onPositionChange({
15164
+ x: x,
15165
+ y: y
15166
+ });
15167
+ }
15168
+ },
15169
+ onPositionChangeEnd: function onPositionChangeEnd(_ref3) {
15170
+ var x = _ref3.x,
15171
+ y = _ref3.y;
15172
+ if (_onPositionChangeEnd) {
15173
+ _onPositionChangeEnd({
15174
+ x: x,
15175
+ y: y
15176
+ });
15177
+ }
15178
+ },
15179
+ onPositionChangeStart: function onPositionChangeStart(_ref4) {
15180
+ var x = _ref4.x,
15181
+ y = _ref4.y;
15182
+ if (_onPositionChangeStart) {
15183
+ _onPositionChangeStart({
15184
+ x: x,
15185
+ y: y
15186
+ });
15187
+ }
15188
+ },
15189
+ onOutsideClick: onOutsideClick,
15190
+ initialPosition: initialPosition,
15191
+ scale: scale
15192
+ }, children);
15193
+ };
15194
+
15195
+ var RangeSliderType;
15196
+ (function (RangeSliderType) {
15197
+ RangeSliderType["Slider"] = "rpgui-slider";
15198
+ RangeSliderType["GoldSlider"] = "rpgui-slider golden";
15199
+ })(RangeSliderType || (RangeSliderType = {}));
15200
+ var RangeSlider = function RangeSlider(_ref) {
15201
+ var type = _ref.type,
15202
+ valueMin = _ref.valueMin,
15203
+ valueMax = _ref.valueMax,
15204
+ width = _ref.width,
15205
+ _onChange = _ref.onChange,
15206
+ value = _ref.value;
15207
+ var sliderId = v4();
15208
+ var containerRef = useRef(null);
15209
+ var _useState = useState(0),
15210
+ left = _useState[0],
15211
+ setLeft = _useState[1];
15212
+ useEffect(function () {
15213
+ var _containerRef$current;
15214
+ var calculatedWidth = ((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.clientWidth) || 0;
15215
+ setLeft(Math.max((value - valueMin) / (valueMax - valueMin) * (calculatedWidth - 35) + 10));
15216
+ }, [value, valueMin, valueMax]);
15217
+ var typeClass = type === RangeSliderType.GoldSlider ? 'golden' : '';
15218
+ return React.createElement("div", {
15219
+ style: {
15220
+ width: width,
15221
+ position: 'relative'
15222
+ },
15223
+ className: "rpgui-slider-container " + typeClass,
15224
+ id: "rpgui-slider-" + sliderId,
15225
+ ref: containerRef
15226
+ }, React.createElement("div", {
15227
+ style: {
15228
+ pointerEvents: 'none'
15229
+ }
15230
+ }, React.createElement("div", {
15231
+ className: "rpgui-slider-track " + typeClass
15232
+ }), React.createElement("div", {
15233
+ className: "rpgui-slider-left-edge " + typeClass
15234
+ }), React.createElement("div", {
15235
+ className: "rpgui-slider-right-edge " + typeClass
15236
+ }), React.createElement("div", {
15237
+ className: "rpgui-slider-thumb " + typeClass,
15238
+ style: {
15239
+ left: left
15240
+ }
15241
+ })), React.createElement(Input$1, {
15242
+ type: "range",
15243
+ style: {
15244
+ width: width
15245
+ },
15246
+ min: valueMin,
15247
+ max: valueMax,
15248
+ onChange: function onChange(e) {
15249
+ return _onChange(Number(e.target.value));
15250
+ },
15251
+ value: value,
15252
+ className: "rpgui-cursor-point"
15253
+ }));
15254
+ };
15255
+ var Input$1 = /*#__PURE__*/styled.input.withConfig({
15256
+ displayName: "RangeSlider__Input",
15257
+ componentId: "sc-v8mte9-0"
15258
+ })(["opacity:0;position:absolute;width:100%;height:100%;top:0;left:0;margin-top:-5px;"]);
15259
+
15260
+ var ItemQuantitySelector = function ItemQuantitySelector(_ref) {
15261
+ var quantity = _ref.quantity,
15262
+ onConfirm = _ref.onConfirm,
15263
+ onClose = _ref.onClose;
15264
+ var _useState = useState(quantity),
15265
+ value = _useState[0],
15266
+ setValue = _useState[1];
15267
+ var inputRef = useRef(null);
15268
+ useEffect(function () {
15269
+ if (inputRef.current) {
15270
+ inputRef.current.focus();
15271
+ inputRef.current.select();
15272
+ var closeSelector = function closeSelector(e) {
15273
+ if (e.key === 'Escape') {
15274
+ onClose();
15275
+ }
15276
+ };
14737
15277
  document.addEventListener('keydown', closeSelector);
14738
15278
  return function () {
14739
15279
  document.removeEventListener('keydown', closeSelector);
@@ -14842,7 +15382,7 @@ var ShortcutsSetter = function ShortcutsSetter(_ref) {
14842
15382
  return word[0];
14843
15383
  }));
14844
15384
  };
14845
- return React.createElement(Container$e, null, React.createElement("p", null, "Shortcuts:"), React.createElement(List, {
15385
+ return React.createElement(Container$i, null, React.createElement("p", null, "Shortcuts:"), React.createElement(List, {
14846
15386
  id: "shortcuts_list"
14847
15387
  }, Array.from({
14848
15388
  length: 6
@@ -14860,7 +15400,7 @@ var ShortcutsSetter = function ShortcutsSetter(_ref) {
14860
15400
  }, getContent(i));
14861
15401
  })));
14862
15402
  };
14863
- var Container$e = /*#__PURE__*/styled.div.withConfig({
15403
+ var Container$i = /*#__PURE__*/styled.div.withConfig({
14864
15404
  displayName: "ShortcutsSetter__Container",
14865
15405
  componentId: "sc-xuouuf-0"
14866
15406
  })(["p{margin:0;margin-left:0.5rem;}"]);
@@ -15107,7 +15647,7 @@ var ListMenu = function ListMenu(_ref) {
15107
15647
  onSelected = _ref.onSelected,
15108
15648
  x = _ref.x,
15109
15649
  y = _ref.y;
15110
- return React.createElement(Container$f, {
15650
+ return React.createElement(Container$j, {
15111
15651
  x: x,
15112
15652
  y: y
15113
15653
  }, React.createElement("ul", {
@@ -15124,7 +15664,7 @@ var ListMenu = function ListMenu(_ref) {
15124
15664
  }, (params == null ? void 0 : params.text) || 'No text');
15125
15665
  })));
15126
15666
  };
15127
- var Container$f = /*#__PURE__*/styled.div.withConfig({
15667
+ var Container$j = /*#__PURE__*/styled.div.withConfig({
15128
15668
  displayName: "ListMenu__Container",
15129
15669
  componentId: "sc-i9097t-0"
15130
15670
  })(["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) {
@@ -15143,7 +15683,7 @@ var Pager = function Pager(_ref) {
15143
15683
  itemsPerPage = _ref.itemsPerPage,
15144
15684
  onPageChange = _ref.onPageChange;
15145
15685
  var totalPages = Math.ceil(totalItems / itemsPerPage);
15146
- return React.createElement(Container$g, null, React.createElement("p", null, "Total items: ", totalItems), React.createElement(PagerContainer, null, React.createElement("button", {
15686
+ return React.createElement(Container$k, null, React.createElement("p", null, "Total items: ", totalItems), React.createElement(PagerContainer, null, React.createElement("button", {
15147
15687
  disabled: currentPage === 1,
15148
15688
  onPointerDown: function onPointerDown() {
15149
15689
  return onPageChange(Math.max(currentPage - 1, 1));
@@ -15157,7 +15697,7 @@ var Pager = function Pager(_ref) {
15157
15697
  }
15158
15698
  }, '>')));
15159
15699
  };
15160
- var Container$g = /*#__PURE__*/styled.div.withConfig({
15700
+ var Container$k = /*#__PURE__*/styled.div.withConfig({
15161
15701
  displayName: "Pager__Container",
15162
15702
  componentId: "sc-1ekmf50-0"
15163
15703
  })(["display:flex;flex-direction:column;align-items:center;p{margin:0;font-size:", ";}"], uiFonts.size.xsmall);
@@ -15170,7 +15710,7 @@ var ConfirmModal = function ConfirmModal(_ref) {
15170
15710
  var onConfirm = _ref.onConfirm,
15171
15711
  onClose = _ref.onClose,
15172
15712
  message = _ref.message;
15173
- return React.createElement(ModalPortal, null, React.createElement(Background, null), React.createElement(Container$h, {
15713
+ return React.createElement(ModalPortal, null, React.createElement(Background, null), React.createElement(Container$l, {
15174
15714
  onPointerDown: onClose
15175
15715
  }, React.createElement(DraggableContainer, {
15176
15716
  width: "auto",
@@ -15193,7 +15733,7 @@ var Background = /*#__PURE__*/styled.div.withConfig({
15193
15733
  displayName: "ConfirmModal__Background",
15194
15734
  componentId: "sc-11qkyu1-0"
15195
15735
  })(["position:absolute;width:100%;height:100%;background-color:#000000;opacity:0.5;left:0;top:0;z-index:1000;"]);
15196
- var Container$h = /*#__PURE__*/styled.div.withConfig({
15736
+ var Container$l = /*#__PURE__*/styled.div.withConfig({
15197
15737
  displayName: "ConfirmModal__Container",
15198
15738
  componentId: "sc-11qkyu1-1"
15199
15739
  })(["position:absolute;width:100%;height:100%;left:0;top:0;display:flex;justify-content:center;align-items:center;z-index:1001;"]);
@@ -15320,258 +15860,78 @@ var itemTypeOptions = /*#__PURE__*/['Type'].concat(Object.keys(ItemSubType)).fil
15320
15860
  var itemRarityOptions = /*#__PURE__*/['Rarity'].concat(Object.values(ItemRarities)).map(function (itemRarity, index) {
15321
15861
  return {
15322
15862
  id: index + 1,
15323
- value: itemRarity,
15324
- option: itemRarity
15325
- };
15326
- });
15327
- var orderByOptions = /*#__PURE__*/Object.values(OrderByType).flatMap(function (orderBy, index) {
15328
- return [{
15329
- id: index * 2 + 1,
15330
- value: orderBy.toLowerCase(),
15331
- option: React.createElement(React.Fragment, null, orderBy, ' ', React.createElement("span", {
15332
- style: {
15333
- transform: 'translateY(-2px)',
15334
- display: 'inline-block'
15335
- }
15336
- }, "\u2191"))
15337
- }, {
15338
- id: index * 2 + 2,
15339
- value: '-' + orderBy.toLowerCase(),
15340
- option: React.createElement(React.Fragment, null, orderBy, ' ', React.createElement("span", {
15341
- style: {
15342
- transform: 'translateY(-2px)',
15343
- display: 'inline-block'
15344
- }
15345
- }, "\u2193"))
15346
- }];
15347
- });
15348
-
15349
- var BuyPanel = function BuyPanel(_ref) {
15350
- var items = _ref.items,
15351
- atlasIMG = _ref.atlasIMG,
15352
- atlasJSON = _ref.atlasJSON,
15353
- onChangeType = _ref.onChangeType,
15354
- onChangeRarity = _ref.onChangeRarity,
15355
- onChangeOrder = _ref.onChangeOrder,
15356
- onChangeNameInput = _ref.onChangeNameInput,
15357
- onChangeMainLevelInput = _ref.onChangeMainLevelInput,
15358
- onChangeSecondaryLevelInput = _ref.onChangeSecondaryLevelInput,
15359
- onChangePriceInput = _ref.onChangePriceInput,
15360
- equipmentSet = _ref.equipmentSet,
15361
- onMarketPlaceItemBuy = _ref.onMarketPlaceItemBuy,
15362
- characterId = _ref.characterId,
15363
- enableHotkeys = _ref.enableHotkeys,
15364
- disableHotkeys = _ref.disableHotkeys,
15365
- currentPage = _ref.currentPage;
15366
- var _useState = useState(''),
15367
- name = _useState[0],
15368
- setName = _useState[1];
15369
- var _useState2 = useState([undefined, undefined]),
15370
- mainLevel = _useState2[0],
15371
- setMainLevel = _useState2[1];
15372
- var _useState3 = useState([undefined, undefined]),
15373
- secondaryLevel = _useState3[0],
15374
- setSecondaryLevel = _useState3[1];
15375
- var _useState4 = useState([undefined, undefined]),
15376
- price = _useState4[0],
15377
- setPrice = _useState4[1];
15378
- var _useState5 = useState(null),
15379
- buyingItemId = _useState5[0],
15380
- setBuyingItemId = _useState5[1];
15381
- var itemsContainer = useRef(null);
15382
- useEffect(function () {
15383
- var _itemsContainer$curre;
15384
- (_itemsContainer$curre = itemsContainer.current) == null ? void 0 : _itemsContainer$curre.scrollTo(0, 0);
15385
- }, [currentPage]);
15386
- return React.createElement(React.Fragment, null, buyingItemId && React.createElement(ConfirmModal, {
15387
- onClose: setBuyingItemId.bind(null, null),
15388
- onConfirm: function onConfirm() {
15389
- onMarketPlaceItemBuy == null ? void 0 : onMarketPlaceItemBuy(buyingItemId);
15390
- setBuyingItemId(null);
15391
- enableHotkeys == null ? void 0 : enableHotkeys();
15392
- },
15393
- message: "Are you sure to buy this item?"
15394
- }), React.createElement(InputWrapper, null, React.createElement("p", null, "Search By Name"), React.createElement(Input, {
15395
- onChange: function onChange(e) {
15396
- setName(e.target.value);
15397
- onChangeNameInput(e.target.value);
15398
- },
15399
- value: name,
15400
- placeholder: "Enter name...",
15401
- onBlur: enableHotkeys,
15402
- onFocus: disableHotkeys
15403
- })), React.createElement(OptionsWrapper, null, React.createElement(FilterInputsWrapper, null, React.createElement("div", null, React.createElement("p", null, "Main level"), React.createElement(Input, {
15404
- onChange: function onChange(e) {
15405
- setMainLevel([Number(e.target.value), mainLevel[1]]);
15406
- onChangeMainLevelInput([Number(e.target.value), mainLevel[1]]);
15407
- },
15408
- placeholder: "Min",
15409
- type: "number",
15410
- min: 0,
15411
- onBlur: enableHotkeys,
15412
- onFocus: disableHotkeys
15413
- }), React.createElement(AiFillCaretRight, null), React.createElement(Input, {
15414
- onChange: function onChange(e) {
15415
- setMainLevel([mainLevel[0], Number(e.target.value)]);
15416
- onChangeMainLevelInput([mainLevel[0], Number(e.target.value)]);
15417
- },
15418
- placeholder: "Max",
15419
- type: "number",
15420
- min: 0,
15421
- onBlur: enableHotkeys,
15422
- onFocus: disableHotkeys
15423
- })), React.createElement("div", null, React.createElement("p", null, "Secondary level"), React.createElement(Input, {
15424
- onChange: function onChange(e) {
15425
- setSecondaryLevel([Number(e.target.value), secondaryLevel[1]]);
15426
- onChangeSecondaryLevelInput([Number(e.target.value), secondaryLevel[1]]);
15427
- },
15428
- placeholder: "Min",
15429
- type: "number",
15430
- min: 0,
15431
- onBlur: enableHotkeys,
15432
- onFocus: disableHotkeys
15433
- }), React.createElement(AiFillCaretRight, null), React.createElement(Input, {
15434
- onChange: function onChange(e) {
15435
- setSecondaryLevel([secondaryLevel[0], Number(e.target.value)]);
15436
- onChangeSecondaryLevelInput([secondaryLevel[0], Number(e.target.value)]);
15437
- },
15438
- placeholder: "Max",
15439
- type: "number",
15440
- min: 0,
15441
- onBlur: enableHotkeys,
15442
- onFocus: disableHotkeys
15443
- })), React.createElement("div", null, React.createElement("p", null, "Price"), React.createElement(Input, {
15444
- onChange: function onChange(e) {
15445
- setPrice([Number(e.target.value), price[1]]);
15446
- onChangePriceInput([Number(e.target.value), price[1]]);
15447
- },
15448
- placeholder: "Min",
15449
- type: "number",
15450
- min: 0,
15451
- className: "big-input",
15452
- onBlur: enableHotkeys,
15453
- onFocus: disableHotkeys
15454
- }), React.createElement(AiFillCaretRight, null), React.createElement(Input, {
15455
- onChange: function onChange(e) {
15456
- setPrice([price[0], Number(e.target.value)]);
15457
- onChangePriceInput([price[0], Number(e.target.value)]);
15458
- },
15459
- placeholder: "Max",
15460
- type: "number",
15461
- min: 0,
15462
- className: "big-input",
15463
- onBlur: enableHotkeys,
15464
- onFocus: disableHotkeys
15465
- }))), React.createElement(WrapperContainer, null, React.createElement(StyledDropdown, {
15466
- options: itemTypeOptions,
15467
- onChange: onChangeType,
15468
- width: "95%"
15469
- }), React.createElement(StyledDropdown, {
15470
- options: itemRarityOptions,
15471
- onChange: onChangeRarity,
15472
- width: "95%"
15473
- }), React.createElement(StyledDropdown, {
15474
- options: orderByOptions,
15475
- onChange: onChangeOrder,
15476
- width: "100%"
15477
- }))), React.createElement(ItemComponentScrollWrapper, {
15478
- id: "MarketContainer",
15479
- ref: itemsContainer
15480
- }, items == null ? void 0 : items.map(function (_ref2, index) {
15481
- var item = _ref2.item,
15482
- price = _ref2.price,
15483
- _id = _ref2._id,
15484
- owner = _ref2.owner;
15485
- return React.createElement(MarketplaceRows, {
15486
- key: item.key + "_" + index,
15487
- atlasIMG: atlasIMG,
15488
- atlasJSON: atlasJSON,
15489
- item: item,
15490
- itemPrice: price,
15491
- equipmentSet: equipmentSet,
15492
- onMarketPlaceItemBuy: setBuyingItemId.bind(null, _id),
15493
- disabled: owner === characterId
15494
- });
15495
- })));
15496
- };
15497
- var InputWrapper = /*#__PURE__*/styled.div.withConfig({
15498
- displayName: "BuyPanel__InputWrapper",
15499
- componentId: "sc-1si8t7i-0"
15500
- })(["width:95%;display:flex !important;justify-content:flex-start;align-items:center;margin:auto;p{width:auto;margin-right:20px;}input{width:68%;height:10px;}"]);
15501
- var OptionsWrapper = /*#__PURE__*/styled.div.withConfig({
15502
- displayName: "BuyPanel__OptionsWrapper",
15503
- componentId: "sc-1si8t7i-1"
15504
- })(["width:100%;height:100px;"]);
15505
- var FilterInputsWrapper = /*#__PURE__*/styled.div.withConfig({
15506
- displayName: "BuyPanel__FilterInputsWrapper",
15507
- componentId: "sc-1si8t7i-2"
15508
- })(["width:95%;display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;margin-left:10px;gap:5px;color:white;flex-wrap:wrap;p{width:auto;margin:0;}input{width:75px;height:10px;}.big-input{width:130px;}"]);
15509
- var WrapperContainer = /*#__PURE__*/styled.div.withConfig({
15510
- displayName: "BuyPanel__WrapperContainer",
15511
- componentId: "sc-1si8t7i-3"
15512
- })(["display:grid;grid-template-columns:40% 30% 30%;justify-content:space-between;width:calc(100% - 40px);margin-left:10px;.rpgui-content .rpgui-dropdown-imp-header{padding:0px 10px 0 !important;}"]);
15513
- var ItemComponentScrollWrapper = /*#__PURE__*/styled.div.withConfig({
15514
- displayName: "BuyPanel__ItemComponentScrollWrapper",
15515
- componentId: "sc-1si8t7i-4"
15516
- })(["overflow-y:scroll;height:390px;width:100%;margin-top:1rem;@media (max-width:950px){height:250px;}"]);
15517
- var StyledDropdown = /*#__PURE__*/styled(Dropdown).withConfig({
15518
- displayName: "BuyPanel__StyledDropdown",
15519
- componentId: "sc-1si8t7i-5"
15520
- })(["margin:3px !important;width:170px !important;"]);
15863
+ value: itemRarity,
15864
+ option: itemRarity
15865
+ };
15866
+ });
15867
+ var orderByOptions = /*#__PURE__*/Object.values(OrderByType).flatMap(function (orderBy, index) {
15868
+ return [{
15869
+ id: index * 2 + 1,
15870
+ value: orderBy.toLowerCase(),
15871
+ option: React.createElement(React.Fragment, null, orderBy, ' ', React.createElement("span", {
15872
+ style: {
15873
+ transform: 'translateY(-2px)',
15874
+ display: 'inline-block'
15875
+ }
15876
+ }, "\u2191"))
15877
+ }, {
15878
+ id: index * 2 + 2,
15879
+ value: '-' + orderBy.toLowerCase(),
15880
+ option: React.createElement(React.Fragment, null, orderBy, ' ', React.createElement("span", {
15881
+ style: {
15882
+ transform: 'translateY(-2px)',
15883
+ display: 'inline-block'
15884
+ }
15885
+ }, "\u2193"))
15886
+ }];
15887
+ });
15521
15888
 
15522
- var ManagmentPanel = function ManagmentPanel(_ref) {
15889
+ var BuyPanel = function BuyPanel(_ref) {
15523
15890
  var items = _ref.items,
15524
15891
  atlasIMG = _ref.atlasIMG,
15525
15892
  atlasJSON = _ref.atlasJSON,
15893
+ onChangeType = _ref.onChangeType,
15894
+ onChangeRarity = _ref.onChangeRarity,
15895
+ onChangeOrder = _ref.onChangeOrder,
15526
15896
  onChangeNameInput = _ref.onChangeNameInput,
15897
+ onChangeMainLevelInput = _ref.onChangeMainLevelInput,
15898
+ onChangeSecondaryLevelInput = _ref.onChangeSecondaryLevelInput,
15899
+ onChangePriceInput = _ref.onChangePriceInput,
15527
15900
  equipmentSet = _ref.equipmentSet,
15528
- availableGold = _ref.availableGold,
15529
- onMarketPlaceItemRemove = _ref.onMarketPlaceItemRemove,
15530
- selectedItemToSell = _ref.selectedItemToSell,
15531
- onSelectedItemToSellRemove = _ref.onSelectedItemToSellRemove,
15532
- onAddItemToMarketplace = _ref.onAddItemToMarketplace,
15901
+ onMarketPlaceItemBuy = _ref.onMarketPlaceItemBuy,
15902
+ characterId = _ref.characterId,
15533
15903
  enableHotkeys = _ref.enableHotkeys,
15534
15904
  disableHotkeys = _ref.disableHotkeys,
15535
- onMoneyWithdraw = _ref.onMoneyWithdraw,
15536
15905
  currentPage = _ref.currentPage;
15537
15906
  var _useState = useState(''),
15538
15907
  name = _useState[0],
15539
15908
  setName = _useState[1];
15540
- var _useState2 = useState(''),
15541
- price = _useState2[0],
15542
- setPrice = _useState2[1];
15543
- var _useState3 = useState(false),
15544
- isCreatingOffer = _useState3[0],
15545
- setIsCreatingOffer = _useState3[1];
15546
- var _useState4 = useState(null),
15547
- removingItemId = _useState4[0],
15548
- setRemovingItemId = _useState4[1];
15909
+ var _useState2 = useState([undefined, undefined]),
15910
+ mainLevel = _useState2[0],
15911
+ setMainLevel = _useState2[1];
15912
+ var _useState3 = useState([undefined, undefined]),
15913
+ secondaryLevel = _useState3[0],
15914
+ setSecondaryLevel = _useState3[1];
15915
+ var _useState4 = useState([undefined, undefined]),
15916
+ price = _useState4[0],
15917
+ setPrice = _useState4[1];
15918
+ var _useState5 = useState(null),
15919
+ buyingItemId = _useState5[0],
15920
+ setBuyingItemId = _useState5[1];
15549
15921
  var itemsContainer = useRef(null);
15550
15922
  useEffect(function () {
15551
15923
  var _itemsContainer$curre;
15552
15924
  (_itemsContainer$curre = itemsContainer.current) == null ? void 0 : _itemsContainer$curre.scrollTo(0, 0);
15553
15925
  }, [currentPage]);
15554
- return React.createElement(React.Fragment, null, isCreatingOffer && React.createElement(ConfirmModal, {
15555
- onClose: setIsCreatingOffer.bind(null, false),
15556
- onConfirm: function onConfirm() {
15557
- if (selectedItemToSell && price && Number(price)) {
15558
- onAddItemToMarketplace(selectedItemToSell, Number(price));
15559
- setPrice('');
15560
- onSelectedItemToSellRemove(selectedItemToSell);
15561
- setIsCreatingOffer(false);
15562
- enableHotkeys == null ? void 0 : enableHotkeys();
15563
- }
15564
- },
15565
- message: "Are you sure to create this offer?"
15566
- }), removingItemId && React.createElement(ConfirmModal, {
15567
- onClose: setRemovingItemId.bind(null, null),
15926
+ return React.createElement(React.Fragment, null, buyingItemId && React.createElement(ConfirmModal, {
15927
+ onClose: setBuyingItemId.bind(null, null),
15568
15928
  onConfirm: function onConfirm() {
15569
- onMarketPlaceItemRemove == null ? void 0 : onMarketPlaceItemRemove(removingItemId);
15570
- setRemovingItemId(null);
15929
+ onMarketPlaceItemBuy == null ? void 0 : onMarketPlaceItemBuy(buyingItemId);
15930
+ setBuyingItemId(null);
15571
15931
  enableHotkeys == null ? void 0 : enableHotkeys();
15572
15932
  },
15573
- message: "Are you sure to remove this item?"
15574
- }), React.createElement(InputWrapper$1, null, React.createElement("p", null, "Search By Name"), React.createElement(Input, {
15933
+ message: "Are you sure to buy this item?"
15934
+ }), React.createElement(InputWrapper, null, React.createElement("p", null, "Search By Name"), React.createElement(Input, {
15575
15935
  onChange: function onChange(e) {
15576
15936
  setName(e.target.value);
15577
15937
  onChangeNameInput(e.target.value);
@@ -15580,456 +15940,310 @@ var ManagmentPanel = function ManagmentPanel(_ref) {
15580
15940
  placeholder: "Enter name...",
15581
15941
  onBlur: enableHotkeys,
15582
15942
  onFocus: disableHotkeys
15583
- })), React.createElement(OptionsWrapper$1, null, React.createElement(InnerOptionsWrapper, null, React.createElement(SellDescription, null, "Click on item in inventory to sell it"), React.createElement(Flex$2, null, React.createElement(ItemSlot, {
15584
- slotIndex: 0,
15585
- atlasIMG: atlasIMG,
15586
- atlasJSON: atlasJSON,
15587
- onPointerDown: function onPointerDown(_, __, item) {
15588
- return onSelectedItemToSellRemove(item);
15589
- },
15590
- item: selectedItemToSell
15591
- }), React.createElement(PriceInputWrapper, null, React.createElement("p", null, "Enter price"), React.createElement(Flex$2, null, React.createElement(Input, {
15943
+ })), React.createElement(OptionsWrapper, null, React.createElement(FilterInputsWrapper, null, React.createElement("div", null, React.createElement("p", null, "Main level"), React.createElement(Input, {
15592
15944
  onChange: function onChange(e) {
15593
- setPrice(e.target.value);
15945
+ setMainLevel([Number(e.target.value), mainLevel[1]]);
15946
+ onChangeMainLevelInput([Number(e.target.value), mainLevel[1]]);
15594
15947
  },
15595
- value: price,
15596
- placeholder: "Enter price...",
15948
+ placeholder: "Min",
15597
15949
  type: "number",
15598
- disabled: !selectedItemToSell,
15599
- onBlur: enableHotkeys,
15600
- onFocus: disableHotkeys
15601
- }), React.createElement(Button, {
15602
- buttonType: ButtonTypes.RPGUIButton,
15603
- disabled: !selectedItemToSell || !price,
15604
- onPointerDown: function onPointerDown() {
15605
- if (selectedItemToSell && price && Number(price)) {
15606
- setIsCreatingOffer(true);
15607
- }
15608
- }
15609
- }, "Create offer"))))), React.createElement(InnerOptionsWrapper, null, React.createElement(AvailableGold, {
15610
- "$disabled": availableGold === 0
15611
- }, React.createElement("p", null, "Available gold"), React.createElement("p", {
15612
- className: "center"
15613
- }, "$", availableGold), React.createElement(Button, {
15614
- buttonType: ButtonTypes.RPGUIButton,
15615
- disabled: availableGold === 0,
15616
- onPointerDown: function onPointerDown() {
15617
- return availableGold > 0 && onMoneyWithdraw();
15618
- }
15619
- }, "Withdraw")))), React.createElement(ItemComponentScrollWrapper$1, {
15620
- id: "MarketContainer",
15621
- ref: itemsContainer
15622
- }, items == null ? void 0 : items.map(function (_ref2, index) {
15623
- var item = _ref2.item,
15624
- price = _ref2.price,
15625
- _id = _ref2._id;
15626
- return React.createElement(MarketplaceRows, {
15627
- key: item.key + "_" + index,
15628
- atlasIMG: atlasIMG,
15629
- atlasJSON: atlasJSON,
15630
- item: item,
15631
- itemPrice: price,
15632
- equipmentSet: equipmentSet,
15633
- onMarketPlaceItemRemove: setRemovingItemId.bind(null, _id)
15634
- });
15635
- })));
15636
- };
15637
- var Flex$2 = /*#__PURE__*/styled.div.withConfig({
15638
- displayName: "ManagmentPanel__Flex",
15639
- componentId: "sc-1yyi6jn-0"
15640
- })(["display:flex;gap:5px;align-items:center;"]);
15641
- var InputWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15642
- displayName: "ManagmentPanel__InputWrapper",
15643
- componentId: "sc-1yyi6jn-1"
15644
- })(["width:95%;display:flex !important;justify-content:flex-start;align-items:center;margin:auto;p{width:auto;margin-right:20px;}input{width:68%;height:10px;}"]);
15645
- var OptionsWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15646
- displayName: "ManagmentPanel__OptionsWrapper",
15647
- componentId: "sc-1yyi6jn-2"
15648
- })(["width:100%;height:100px;display:flex;align-items:center;justify-content:space-around;"]);
15649
- var InnerOptionsWrapper = /*#__PURE__*/styled.div.withConfig({
15650
- displayName: "ManagmentPanel__InnerOptionsWrapper",
15651
- componentId: "sc-1yyi6jn-3"
15652
- })(["display:flex;justify-content:space-between;flex-direction:column;height:100%;"]);
15653
- var ItemComponentScrollWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15654
- displayName: "ManagmentPanel__ItemComponentScrollWrapper",
15655
- componentId: "sc-1yyi6jn-4"
15656
- })(["overflow-y:scroll;height:390px;width:100%;margin-top:1rem;@media (max-width:950px){height:250px;}"]);
15657
- var PriceInputWrapper = /*#__PURE__*/styled.div.withConfig({
15658
- displayName: "ManagmentPanel__PriceInputWrapper",
15659
- componentId: "sc-1yyi6jn-5"
15660
- })(["p{margin:0;}input{width:200px;}"]);
15661
- var SellDescription = /*#__PURE__*/styled.p.withConfig({
15662
- displayName: "ManagmentPanel__SellDescription",
15663
- componentId: "sc-1yyi6jn-6"
15664
- })(["margin:0;font-size:", " !important;"], uiFonts.size.xsmall);
15665
- var AvailableGold = /*#__PURE__*/styled.div.withConfig({
15666
- displayName: "ManagmentPanel__AvailableGold",
15667
- componentId: "sc-1yyi6jn-7"
15668
- })(["height:100%;display:flex;flex-direction:column;justify-content:space-between;p{margin:0;color:", " !important;}.center{text-align:center;font-size:", " !important;color:", " !important;}"], function (props) {
15669
- return props.$disabled ? uiColors.lightGray : 'white';
15670
- }, uiFonts.size.large, function (props) {
15671
- return props.$disabled ? uiColors.lightGray : uiColors.lightGreen;
15672
- });
15673
-
15674
- var Marketplace = function Marketplace(props) {
15675
- var onClose = props.onClose,
15676
- scale = props.scale,
15677
- onYourPanelToggle = props.onYourPanelToggle;
15678
- var _useState = useState(false),
15679
- isYourPanel = _useState[0],
15680
- setIsYourPanel = _useState[1];
15681
- return React.createElement(DraggableContainer, {
15682
- type: RPGUIContainerTypes.Framed,
15683
- onCloseButton: function onCloseButton() {
15684
- if (onClose) onClose();
15685
- },
15686
- width: "800px",
15687
- cancelDrag: "#MarketContainer, .rpgui-dropdown-imp, input, .empty-slot, button",
15688
- scale: scale
15689
- }, isYourPanel && React.createElement(React.Fragment, null, React.createElement(ManagmentPanel, Object.assign({}, props)), React.createElement(PagerContainer$1, null, React.createElement(Button, {
15690
- buttonType: ButtonTypes.RPGUIButton,
15691
- onPointerDown: function onPointerDown() {
15692
- onYourPanelToggle(false);
15693
- setIsYourPanel(false);
15694
- }
15695
- }, "Go to marketplace"), React.createElement(Pager, Object.assign({}, props)))), !isYourPanel && React.createElement(React.Fragment, null, React.createElement(BuyPanel, Object.assign({}, props)), React.createElement(PagerContainer$1, null, React.createElement(Button, {
15696
- buttonType: ButtonTypes.RPGUIButton,
15697
- onPointerDown: function onPointerDown() {
15698
- onYourPanelToggle(true);
15699
- setIsYourPanel(true);
15700
- }
15701
- }, "Go to your panel"), React.createElement(Pager, Object.assign({}, props)))));
15702
- };
15703
- var PagerContainer$1 = /*#__PURE__*/styled.div.withConfig({
15704
- displayName: "Marketplace__PagerContainer",
15705
- componentId: "sc-h904b1-0"
15706
- })(["display:flex;justify-content:space-between;align-items:center;width:calc(100% - 30px);"]);
15707
-
15708
- var img$5 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAP1BMVEUAAAA7FyVxQTsUEBPj5v////+5v/tCJDOOUlIiHBr1oJfptaO6dWr61rhzFy1bMTjoanMUNGQoXMQkn97+88DQ3IhAAAAAAXRSTlMAQObYZgAAAAFiS0dEBfhv6ccAAAAHdElNRQfmAw4VOBC7c5LYAAABM0lEQVQ4y3XRi5KDIAwFUAUkbrBgpP//rZsHVHQ009qZ3tPboNN0zmwzvcw8O5sX4y0NOg/Et3jRCXF+ziULorjkOQ9gE24dvuUAzq08DiCO4pe3WN7zCP56vmpubBReQYC11YPS86ySxxCsAABTSgjb5m4g8nfbxvFHBkH2OEEvAItVuCuIsgGgl+Gcr7kDXxhEAx55A2SQEEeQeZwUaIP8Tbo05B0RFPhItAjgj1w6cDnhLluDj+Egkh3pCCP4pKQAw1IPO0W9Nti5gW9RP2dKA3BZd2Dw+baYX+Nt4GM00O4S3kEpF6Alb2Bv4LeC3kkGfAW0/p0RPoJVKr63ghHsKuRh5DIUKOAlGOwrtt9fQekAEfmhZslHUDoglB0zjfkJigN7UnTQQ4GBWomoVhEN/AOPSBh38gy+fwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wMy0xNFQyMTo1NTo1MSswMDowMJcc0eEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDMtMTRUMjE6NTU6NTErMDA6MDDmQWldAAAAAElFTkSuQmCC';
15709
-
15710
- 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';
15711
-
15712
- var ImgSide;
15713
- (function (ImgSide) {
15714
- ImgSide["right"] = "right";
15715
- ImgSide["left"] = "left";
15716
- })(ImgSide || (ImgSide = {}));
15717
- var NPCMultiDialog = function NPCMultiDialog(_ref) {
15718
- var _textAndTypeArray$sli;
15719
- var _onClose = _ref.onClose,
15720
- textAndTypeArray = _ref.textAndTypeArray;
15721
- var _useState = useState(false),
15722
- showGoNextIndicator = _useState[0],
15723
- setShowGoNextIndicator = _useState[1];
15724
- var _useState2 = useState(0),
15725
- slide = _useState2[0],
15726
- setSlide = _useState2[1];
15727
- var onHandleSpacePress = function onHandleSpacePress(event) {
15728
- if (event.code === 'Space') {
15729
- if (slide < (textAndTypeArray == null ? void 0 : textAndTypeArray.length) - 1) {
15730
- setSlide(function (prev) {
15731
- return prev + 1;
15732
- });
15733
- } else {
15734
- // if there's no more text chunks, close the dialog
15735
- _onClose();
15736
- }
15737
- }
15738
- };
15739
- useEffect(function () {
15740
- document.addEventListener('keydown', onHandleSpacePress);
15741
- return function () {
15742
- return document.removeEventListener('keydown', onHandleSpacePress);
15743
- };
15744
- }, [slide]);
15745
- return React.createElement(RPGUIContainer, {
15746
- type: RPGUIContainerTypes.FramedGold,
15747
- width: '50%',
15748
- height: '180px'
15749
- }, React.createElement(React.Fragment, null, React.createElement(Container$i, null, ((_textAndTypeArray$sli = textAndTypeArray[slide]) == null ? void 0 : _textAndTypeArray$sli.imageSide) === 'right' && React.createElement(React.Fragment, null, React.createElement(TextContainer, {
15750
- flex: '70%'
15751
- }, React.createElement(NPCDialogText, {
15752
- onStartStep: function onStartStep() {
15753
- return setShowGoNextIndicator(false);
15950
+ min: 0,
15951
+ onBlur: enableHotkeys,
15952
+ onFocus: disableHotkeys
15953
+ }), React.createElement(AiFillCaretRight, null), React.createElement(Input, {
15954
+ onChange: function onChange(e) {
15955
+ setMainLevel([mainLevel[0], Number(e.target.value)]);
15956
+ onChangeMainLevelInput([mainLevel[0], Number(e.target.value)]);
15754
15957
  },
15755
- onEndStep: function onEndStep() {
15756
- return setShowGoNextIndicator(true);
15958
+ placeholder: "Max",
15959
+ type: "number",
15960
+ min: 0,
15961
+ onBlur: enableHotkeys,
15962
+ onFocus: disableHotkeys
15963
+ })), React.createElement("div", null, React.createElement("p", null, "Secondary level"), React.createElement(Input, {
15964
+ onChange: function onChange(e) {
15965
+ setSecondaryLevel([Number(e.target.value), secondaryLevel[1]]);
15966
+ onChangeSecondaryLevelInput([Number(e.target.value), secondaryLevel[1]]);
15757
15967
  },
15758
- text: textAndTypeArray[slide].text || 'No text provided.',
15759
- onClose: function onClose() {
15760
- if (_onClose) {
15761
- _onClose();
15762
- }
15763
- }
15764
- })), React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
15765
- src: textAndTypeArray[slide].imagePath || img$5
15766
- })), showGoNextIndicator && React.createElement(PressSpaceIndicator, {
15767
- right: '10.5rem',
15768
- src: img$6
15769
- })), textAndTypeArray[slide].imageSide === 'left' && React.createElement(React.Fragment, null, React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
15770
- src: textAndTypeArray[slide].imagePath || img$5
15771
- })), React.createElement(TextContainer, {
15772
- flex: '70%'
15773
- }, React.createElement(NPCDialogText, {
15774
- onStartStep: function onStartStep() {
15775
- return setShowGoNextIndicator(false);
15968
+ placeholder: "Min",
15969
+ type: "number",
15970
+ min: 0,
15971
+ onBlur: enableHotkeys,
15972
+ onFocus: disableHotkeys
15973
+ }), React.createElement(AiFillCaretRight, null), React.createElement(Input, {
15974
+ onChange: function onChange(e) {
15975
+ setSecondaryLevel([secondaryLevel[0], Number(e.target.value)]);
15976
+ onChangeSecondaryLevelInput([secondaryLevel[0], Number(e.target.value)]);
15776
15977
  },
15777
- onEndStep: function onEndStep() {
15778
- return setShowGoNextIndicator(true);
15978
+ placeholder: "Max",
15979
+ type: "number",
15980
+ min: 0,
15981
+ onBlur: enableHotkeys,
15982
+ onFocus: disableHotkeys
15983
+ })), React.createElement("div", null, React.createElement("p", null, "Price"), React.createElement(Input, {
15984
+ onChange: function onChange(e) {
15985
+ setPrice([Number(e.target.value), price[1]]);
15986
+ onChangePriceInput([Number(e.target.value), price[1]]);
15779
15987
  },
15780
- text: textAndTypeArray[slide].text || 'No text provided.',
15781
- onClose: function onClose() {
15782
- if (_onClose) {
15783
- _onClose();
15784
- }
15785
- }
15786
- })), showGoNextIndicator && React.createElement(PressSpaceIndicator, {
15787
- right: '1rem',
15788
- src: img$6
15789
- }))), ")"));
15790
- };
15791
- var Container$i = /*#__PURE__*/styled.div.withConfig({
15792
- displayName: "NPCMultiDialog__Container",
15793
- componentId: "sc-rvu5wg-0"
15794
- })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
15795
- var TextContainer = /*#__PURE__*/styled.div.withConfig({
15796
- displayName: "NPCMultiDialog__TextContainer",
15797
- componentId: "sc-rvu5wg-1"
15798
- })(["flex:", " 0 0;width:355px;"], function (_ref2) {
15799
- var flex = _ref2.flex;
15800
- return flex;
15801
- });
15802
- var ThumbnailContainer = /*#__PURE__*/styled.div.withConfig({
15803
- displayName: "NPCMultiDialog__ThumbnailContainer",
15804
- componentId: "sc-rvu5wg-2"
15805
- })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
15806
- var NPCThumbnail = /*#__PURE__*/styled.img.withConfig({
15807
- displayName: "NPCMultiDialog__NPCThumbnail",
15808
- componentId: "sc-rvu5wg-3"
15809
- })(["image-rendering:pixelated;height:128px;width:128px;"]);
15810
- var PressSpaceIndicator = /*#__PURE__*/styled.img.withConfig({
15811
- displayName: "NPCMultiDialog__PressSpaceIndicator",
15812
- componentId: "sc-rvu5wg-4"
15813
- })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref3) {
15814
- var right = _ref3.right;
15815
- return right;
15816
- });
15817
-
15818
- //@ts-ignore
15819
- var useEventListener = function useEventListener(type, handler, el) {
15820
- if (el === void 0) {
15821
- el = window;
15822
- }
15823
- var savedHandler = React.useRef();
15824
- React.useEffect(function () {
15825
- savedHandler.current = handler;
15826
- }, [handler]);
15827
- React.useEffect(function () {
15828
- //@ts-ignore
15829
- var listener = function listener(e) {
15830
- return savedHandler.current(e);
15831
- };
15832
- el.addEventListener(type, listener);
15833
- return function () {
15834
- el.removeEventListener(type, listener);
15835
- };
15836
- }, [type, el]);
15988
+ placeholder: "Min",
15989
+ type: "number",
15990
+ min: 0,
15991
+ className: "big-input",
15992
+ onBlur: enableHotkeys,
15993
+ onFocus: disableHotkeys
15994
+ }), React.createElement(AiFillCaretRight, null), React.createElement(Input, {
15995
+ onChange: function onChange(e) {
15996
+ setPrice([price[0], Number(e.target.value)]);
15997
+ onChangePriceInput([price[0], Number(e.target.value)]);
15998
+ },
15999
+ placeholder: "Max",
16000
+ type: "number",
16001
+ min: 0,
16002
+ className: "big-input",
16003
+ onBlur: enableHotkeys,
16004
+ onFocus: disableHotkeys
16005
+ }))), React.createElement(WrapperContainer, null, React.createElement(StyledDropdown, {
16006
+ options: itemTypeOptions,
16007
+ onChange: onChangeType,
16008
+ width: "95%"
16009
+ }), React.createElement(StyledDropdown, {
16010
+ options: itemRarityOptions,
16011
+ onChange: onChangeRarity,
16012
+ width: "95%"
16013
+ }), React.createElement(StyledDropdown, {
16014
+ options: orderByOptions,
16015
+ onChange: onChangeOrder,
16016
+ width: "100%"
16017
+ }))), React.createElement(ItemComponentScrollWrapper, {
16018
+ id: "MarketContainer",
16019
+ ref: itemsContainer
16020
+ }, items == null ? void 0 : items.map(function (_ref2, index) {
16021
+ var item = _ref2.item,
16022
+ price = _ref2.price,
16023
+ _id = _ref2._id,
16024
+ owner = _ref2.owner;
16025
+ return React.createElement(MarketplaceRows, {
16026
+ key: item.key + "_" + index,
16027
+ atlasIMG: atlasIMG,
16028
+ atlasJSON: atlasJSON,
16029
+ item: item,
16030
+ itemPrice: price,
16031
+ equipmentSet: equipmentSet,
16032
+ onMarketPlaceItemBuy: setBuyingItemId.bind(null, _id),
16033
+ disabled: owner === characterId
16034
+ });
16035
+ })));
15837
16036
  };
16037
+ var InputWrapper = /*#__PURE__*/styled.div.withConfig({
16038
+ displayName: "BuyPanel__InputWrapper",
16039
+ componentId: "sc-1si8t7i-0"
16040
+ })(["width:95%;display:flex !important;justify-content:flex-start;align-items:center;margin:auto;p{width:auto;margin-right:20px;}input{width:68%;height:10px;}"]);
16041
+ var OptionsWrapper = /*#__PURE__*/styled.div.withConfig({
16042
+ displayName: "BuyPanel__OptionsWrapper",
16043
+ componentId: "sc-1si8t7i-1"
16044
+ })(["width:100%;height:100px;"]);
16045
+ var FilterInputsWrapper = /*#__PURE__*/styled.div.withConfig({
16046
+ displayName: "BuyPanel__FilterInputsWrapper",
16047
+ componentId: "sc-1si8t7i-2"
16048
+ })(["width:95%;display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;margin-left:10px;gap:5px;color:white;flex-wrap:wrap;p{width:auto;margin:0;}input{width:75px;height:10px;}.big-input{width:130px;}"]);
16049
+ var WrapperContainer = /*#__PURE__*/styled.div.withConfig({
16050
+ displayName: "BuyPanel__WrapperContainer",
16051
+ componentId: "sc-1si8t7i-3"
16052
+ })(["display:grid;grid-template-columns:40% 30% 30%;justify-content:space-between;width:calc(100% - 40px);margin-left:10px;.rpgui-content .rpgui-dropdown-imp-header{padding:0px 10px 0 !important;}"]);
16053
+ var ItemComponentScrollWrapper = /*#__PURE__*/styled.div.withConfig({
16054
+ displayName: "BuyPanel__ItemComponentScrollWrapper",
16055
+ componentId: "sc-1si8t7i-4"
16056
+ })(["overflow-y:scroll;height:390px;width:100%;margin-top:1rem;@media (max-width:950px){height:250px;}"]);
16057
+ var StyledDropdown = /*#__PURE__*/styled(Dropdown).withConfig({
16058
+ displayName: "BuyPanel__StyledDropdown",
16059
+ componentId: "sc-1si8t7i-5"
16060
+ })(["margin:3px !important;width:170px !important;"]);
15838
16061
 
15839
- var DynamicText = function DynamicText(_ref) {
15840
- var text = _ref.text,
15841
- onFinish = _ref.onFinish,
15842
- onStart = _ref.onStart;
16062
+ var ManagmentPanel = function ManagmentPanel(_ref) {
16063
+ var items = _ref.items,
16064
+ atlasIMG = _ref.atlasIMG,
16065
+ atlasJSON = _ref.atlasJSON,
16066
+ onChangeNameInput = _ref.onChangeNameInput,
16067
+ equipmentSet = _ref.equipmentSet,
16068
+ availableGold = _ref.availableGold,
16069
+ onMarketPlaceItemRemove = _ref.onMarketPlaceItemRemove,
16070
+ selectedItemToSell = _ref.selectedItemToSell,
16071
+ onSelectedItemToSellRemove = _ref.onSelectedItemToSellRemove,
16072
+ onAddItemToMarketplace = _ref.onAddItemToMarketplace,
16073
+ enableHotkeys = _ref.enableHotkeys,
16074
+ disableHotkeys = _ref.disableHotkeys,
16075
+ onMoneyWithdraw = _ref.onMoneyWithdraw,
16076
+ currentPage = _ref.currentPage;
15843
16077
  var _useState = useState(''),
15844
- textState = _useState[0],
15845
- setTextState = _useState[1];
15846
- useEffect(function () {
15847
- var i = 0;
15848
- var interval = setInterval(function () {
15849
- // on every interval, show one more character
15850
- if (i === 0) {
15851
- if (onStart) {
15852
- onStart();
15853
- }
15854
- }
15855
- if (i < text.length) {
15856
- setTextState(text.substring(0, i + 1));
15857
- i++;
15858
- } else {
15859
- clearInterval(interval);
15860
- if (onFinish) {
15861
- onFinish();
15862
- }
15863
- }
15864
- }, 50);
15865
- return function () {
15866
- clearInterval(interval);
15867
- };
15868
- }, [text]);
15869
- return React.createElement(TextContainer$1, null, textState);
15870
- };
15871
- var TextContainer$1 = /*#__PURE__*/styled.p.withConfig({
15872
- displayName: "DynamicText__TextContainer",
15873
- componentId: "sc-1ggl9nd-0"
15874
- })(["font-size:0.7rem !important;color:white;text-shadow:1px 1px 0px #000000;letter-spacing:1.2px;word-break:normal;"]);
15875
-
15876
- var QuestionDialog = function QuestionDialog(_ref) {
15877
- var questions = _ref.questions,
15878
- answers = _ref.answers,
15879
- onClose = _ref.onClose;
15880
- var _useState = useState(questions[0]),
15881
- currentQuestion = _useState[0],
15882
- setCurrentQuestion = _useState[1];
15883
- var _useState2 = useState(false),
15884
- canShowAnswers = _useState2[0],
15885
- setCanShowAnswers = _useState2[1];
15886
- var onGetFirstAnswer = function onGetFirstAnswer() {
15887
- if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {
15888
- return null;
15889
- }
15890
- var firstAnswerId = currentQuestion.answerIds[0];
15891
- return answers.find(function (answer) {
15892
- return answer.id === firstAnswerId;
15893
- });
15894
- };
15895
- var _useState3 = useState(onGetFirstAnswer()),
15896
- currentAnswer = _useState3[0],
15897
- setCurrentAnswer = _useState3[1];
16078
+ name = _useState[0],
16079
+ setName = _useState[1];
16080
+ var _useState2 = useState(''),
16081
+ price = _useState2[0],
16082
+ setPrice = _useState2[1];
16083
+ var _useState3 = useState(false),
16084
+ isCreatingOffer = _useState3[0],
16085
+ setIsCreatingOffer = _useState3[1];
16086
+ var _useState4 = useState(null),
16087
+ removingItemId = _useState4[0],
16088
+ setRemovingItemId = _useState4[1];
16089
+ var itemsContainer = useRef(null);
15898
16090
  useEffect(function () {
15899
- setCurrentAnswer(onGetFirstAnswer());
15900
- }, [currentQuestion]);
15901
- var onGetAnswers = function onGetAnswers(answerIds) {
15902
- return answerIds.map(function (answerId) {
15903
- return answers.find(function (answer) {
15904
- return answer.id === answerId;
15905
- });
15906
- });
15907
- };
15908
- var onKeyPress = function onKeyPress(e) {
15909
- switch (e.key) {
15910
- case 'ArrowDown':
15911
- // select next answer, if any.
15912
- // if no next answer, select first answer
15913
- // const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(
15914
- // (answer) => answer?.id === currentAnswer!.id + 1
15915
- // );
15916
- var nextAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
15917
- return (answer == null ? void 0 : answer.id) === currentAnswer.id + 1;
15918
- });
15919
- var nextAnswerID = currentQuestion.answerIds[nextAnswerIndex];
15920
- var nextAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
15921
- return (answer == null ? void 0 : answer.id) === nextAnswerID;
15922
- });
15923
- setCurrentAnswer(nextAnswer || onGetFirstAnswer());
15924
- break;
15925
- case 'ArrowUp':
15926
- // select previous answer, if any.
15927
- // if no previous answer, select last answer
15928
- var previousAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
15929
- return (answer == null ? void 0 : answer.id) === currentAnswer.id - 1;
15930
- });
15931
- var previousAnswerID = currentQuestion.answerIds && currentQuestion.answerIds[previousAnswerIndex];
15932
- var previousAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
15933
- return (answer == null ? void 0 : answer.id) === previousAnswerID;
15934
- });
15935
- if (previousAnswer) {
15936
- setCurrentAnswer(previousAnswer);
15937
- } else {
15938
- setCurrentAnswer(onGetAnswers(currentQuestion.answerIds).pop());
15939
- }
15940
- break;
15941
- case 'Enter':
15942
- setCanShowAnswers(false);
15943
- if (!(currentAnswer != null && currentAnswer.nextQuestionId)) {
15944
- onClose();
15945
- return;
15946
- } else {
15947
- setCurrentQuestion(questions.find(function (question) {
15948
- return question.id === currentAnswer.nextQuestionId;
15949
- }));
15950
- }
15951
- break;
15952
- }
15953
- };
15954
- useEventListener('keydown', onKeyPress);
15955
- var onAnswerClick = function onAnswerClick(answer) {
15956
- setCanShowAnswers(false);
15957
- if (answer.nextQuestionId) {
15958
- // if there is a next question, go to it
15959
- setCurrentQuestion(questions.find(function (question) {
15960
- return question.id === answer.nextQuestionId;
15961
- }));
15962
- } else {
15963
- // else, finish dialog!
15964
- onClose();
15965
- }
15966
- };
15967
- var onRenderCurrentAnswers = function onRenderCurrentAnswers() {
15968
- var answerIds = currentQuestion.answerIds;
15969
- if (!answerIds) {
15970
- return null;
15971
- }
15972
- var answers = onGetAnswers(answerIds);
15973
- if (!answers) {
15974
- return null;
15975
- }
15976
- return answers.map(function (answer) {
15977
- var isSelected = (currentAnswer == null ? void 0 : currentAnswer.id) === (answer == null ? void 0 : answer.id);
15978
- var selectedColor = isSelected ? 'yellow' : 'white';
15979
- if (answer) {
15980
- return React.createElement(AnswerRow, {
15981
- key: "answer_" + answer.id
15982
- }, React.createElement(AnswerSelectedIcon, {
15983
- color: selectedColor
15984
- }, isSelected ? 'X' : null), React.createElement(Answer, {
15985
- key: answer.id,
15986
- onPointerDown: function onPointerDown() {
15987
- return onAnswerClick(answer);
15988
- },
15989
- color: selectedColor
15990
- }, answer.text));
16091
+ var _itemsContainer$curre;
16092
+ (_itemsContainer$curre = itemsContainer.current) == null ? void 0 : _itemsContainer$curre.scrollTo(0, 0);
16093
+ }, [currentPage]);
16094
+ return React.createElement(React.Fragment, null, isCreatingOffer && React.createElement(ConfirmModal, {
16095
+ onClose: setIsCreatingOffer.bind(null, false),
16096
+ onConfirm: function onConfirm() {
16097
+ if (selectedItemToSell && price && Number(price)) {
16098
+ onAddItemToMarketplace(selectedItemToSell, Number(price));
16099
+ setPrice('');
16100
+ onSelectedItemToSellRemove(selectedItemToSell);
16101
+ setIsCreatingOffer(false);
16102
+ enableHotkeys == null ? void 0 : enableHotkeys();
15991
16103
  }
15992
- return null;
15993
- });
15994
- };
15995
- return React.createElement(Container$j, null, React.createElement(QuestionContainer, null, React.createElement(DynamicText, {
15996
- text: currentQuestion.text,
15997
- onStart: function onStart() {
15998
- return setCanShowAnswers(false);
15999
16104
  },
16000
- onFinish: function onFinish() {
16001
- return setCanShowAnswers(true);
16105
+ message: "Are you sure to create this offer?"
16106
+ }), removingItemId && React.createElement(ConfirmModal, {
16107
+ onClose: setRemovingItemId.bind(null, null),
16108
+ onConfirm: function onConfirm() {
16109
+ onMarketPlaceItemRemove == null ? void 0 : onMarketPlaceItemRemove(removingItemId);
16110
+ setRemovingItemId(null);
16111
+ enableHotkeys == null ? void 0 : enableHotkeys();
16112
+ },
16113
+ message: "Are you sure to remove this item?"
16114
+ }), React.createElement(InputWrapper$1, null, React.createElement("p", null, "Search By Name"), React.createElement(Input, {
16115
+ onChange: function onChange(e) {
16116
+ setName(e.target.value);
16117
+ onChangeNameInput(e.target.value);
16118
+ },
16119
+ value: name,
16120
+ placeholder: "Enter name...",
16121
+ onBlur: enableHotkeys,
16122
+ onFocus: disableHotkeys
16123
+ })), React.createElement(OptionsWrapper$1, null, React.createElement(InnerOptionsWrapper, null, React.createElement(SellDescription, null, "Click on item in inventory to sell it"), React.createElement(Flex$2, null, React.createElement(ItemSlot, {
16124
+ slotIndex: 0,
16125
+ atlasIMG: atlasIMG,
16126
+ atlasJSON: atlasJSON,
16127
+ onPointerDown: function onPointerDown(_, __, item) {
16128
+ return onSelectedItemToSellRemove(item);
16129
+ },
16130
+ item: selectedItemToSell
16131
+ }), React.createElement(PriceInputWrapper, null, React.createElement("p", null, "Enter price"), React.createElement(Flex$2, null, React.createElement(Input, {
16132
+ onChange: function onChange(e) {
16133
+ setPrice(e.target.value);
16134
+ },
16135
+ value: price,
16136
+ placeholder: "Enter price...",
16137
+ type: "number",
16138
+ disabled: !selectedItemToSell,
16139
+ onBlur: enableHotkeys,
16140
+ onFocus: disableHotkeys
16141
+ }), React.createElement(Button, {
16142
+ buttonType: ButtonTypes.RPGUIButton,
16143
+ disabled: !selectedItemToSell || !price,
16144
+ onPointerDown: function onPointerDown() {
16145
+ if (selectedItemToSell && price && Number(price)) {
16146
+ setIsCreatingOffer(true);
16147
+ }
16002
16148
  }
16003
- })), canShowAnswers && React.createElement(AnswersContainer, null, onRenderCurrentAnswers()));
16149
+ }, "Create offer"))))), React.createElement(InnerOptionsWrapper, null, React.createElement(AvailableGold, {
16150
+ "$disabled": availableGold === 0
16151
+ }, React.createElement("p", null, "Available gold"), React.createElement("p", {
16152
+ className: "center"
16153
+ }, "$", availableGold), React.createElement(Button, {
16154
+ buttonType: ButtonTypes.RPGUIButton,
16155
+ disabled: availableGold === 0,
16156
+ onPointerDown: function onPointerDown() {
16157
+ return availableGold > 0 && onMoneyWithdraw();
16158
+ }
16159
+ }, "Withdraw")))), React.createElement(ItemComponentScrollWrapper$1, {
16160
+ id: "MarketContainer",
16161
+ ref: itemsContainer
16162
+ }, items == null ? void 0 : items.map(function (_ref2, index) {
16163
+ var item = _ref2.item,
16164
+ price = _ref2.price,
16165
+ _id = _ref2._id;
16166
+ return React.createElement(MarketplaceRows, {
16167
+ key: item.key + "_" + index,
16168
+ atlasIMG: atlasIMG,
16169
+ atlasJSON: atlasJSON,
16170
+ item: item,
16171
+ itemPrice: price,
16172
+ equipmentSet: equipmentSet,
16173
+ onMarketPlaceItemRemove: setRemovingItemId.bind(null, _id)
16174
+ });
16175
+ })));
16004
16176
  };
16005
- var Container$j = /*#__PURE__*/styled.div.withConfig({
16006
- displayName: "QuestionDialog__Container",
16007
- componentId: "sc-bxc5u0-0"
16008
- })(["display:flex;word-break:break-all;box-sizing:border-box;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;"]);
16009
- var QuestionContainer = /*#__PURE__*/styled.div.withConfig({
16010
- displayName: "QuestionDialog__QuestionContainer",
16011
- componentId: "sc-bxc5u0-1"
16012
- })(["flex:100%;width:100%;"]);
16013
- var AnswersContainer = /*#__PURE__*/styled.div.withConfig({
16014
- displayName: "QuestionDialog__AnswersContainer",
16015
- componentId: "sc-bxc5u0-2"
16016
- })(["flex:100%;"]);
16017
- var Answer = /*#__PURE__*/styled.p.withConfig({
16018
- displayName: "QuestionDialog__Answer",
16019
- componentId: "sc-bxc5u0-3"
16020
- })(["flex:auto;color:", " !important;font-size:0.65rem !important;background:inherit;border:none;"], function (props) {
16021
- return props.color;
16022
- });
16023
- var AnswerSelectedIcon = /*#__PURE__*/styled.span.withConfig({
16024
- displayName: "QuestionDialog__AnswerSelectedIcon",
16025
- componentId: "sc-bxc5u0-4"
16026
- })(["flex:5% 0 0;color:", " !important;"], function (props) {
16027
- return props.color;
16177
+ var Flex$2 = /*#__PURE__*/styled.div.withConfig({
16178
+ displayName: "ManagmentPanel__Flex",
16179
+ componentId: "sc-1yyi6jn-0"
16180
+ })(["display:flex;gap:5px;align-items:center;"]);
16181
+ var InputWrapper$1 = /*#__PURE__*/styled.div.withConfig({
16182
+ displayName: "ManagmentPanel__InputWrapper",
16183
+ componentId: "sc-1yyi6jn-1"
16184
+ })(["width:95%;display:flex !important;justify-content:flex-start;align-items:center;margin:auto;p{width:auto;margin-right:20px;}input{width:68%;height:10px;}"]);
16185
+ var OptionsWrapper$1 = /*#__PURE__*/styled.div.withConfig({
16186
+ displayName: "ManagmentPanel__OptionsWrapper",
16187
+ componentId: "sc-1yyi6jn-2"
16188
+ })(["width:100%;height:100px;display:flex;align-items:center;justify-content:space-around;"]);
16189
+ var InnerOptionsWrapper = /*#__PURE__*/styled.div.withConfig({
16190
+ displayName: "ManagmentPanel__InnerOptionsWrapper",
16191
+ componentId: "sc-1yyi6jn-3"
16192
+ })(["display:flex;justify-content:space-between;flex-direction:column;height:100%;"]);
16193
+ var ItemComponentScrollWrapper$1 = /*#__PURE__*/styled.div.withConfig({
16194
+ displayName: "ManagmentPanel__ItemComponentScrollWrapper",
16195
+ componentId: "sc-1yyi6jn-4"
16196
+ })(["overflow-y:scroll;height:390px;width:100%;margin-top:1rem;@media (max-width:950px){height:250px;}"]);
16197
+ var PriceInputWrapper = /*#__PURE__*/styled.div.withConfig({
16198
+ displayName: "ManagmentPanel__PriceInputWrapper",
16199
+ componentId: "sc-1yyi6jn-5"
16200
+ })(["p{margin:0;}input{width:200px;}"]);
16201
+ var SellDescription = /*#__PURE__*/styled.p.withConfig({
16202
+ displayName: "ManagmentPanel__SellDescription",
16203
+ componentId: "sc-1yyi6jn-6"
16204
+ })(["margin:0;font-size:", " !important;"], uiFonts.size.xsmall);
16205
+ var AvailableGold = /*#__PURE__*/styled.div.withConfig({
16206
+ displayName: "ManagmentPanel__AvailableGold",
16207
+ componentId: "sc-1yyi6jn-7"
16208
+ })(["height:100%;display:flex;flex-direction:column;justify-content:space-between;p{margin:0;color:", " !important;}.center{text-align:center;font-size:", " !important;color:", " !important;}"], function (props) {
16209
+ return props.$disabled ? uiColors.lightGray : 'white';
16210
+ }, uiFonts.size.large, function (props) {
16211
+ return props.$disabled ? uiColors.lightGray : uiColors.lightGreen;
16028
16212
  });
16029
- var AnswerRow = /*#__PURE__*/styled.div.withConfig({
16030
- displayName: "QuestionDialog__AnswerRow",
16031
- componentId: "sc-bxc5u0-5"
16032
- })(["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;}"]);
16213
+
16214
+ var Marketplace = function Marketplace(props) {
16215
+ var onClose = props.onClose,
16216
+ scale = props.scale,
16217
+ onYourPanelToggle = props.onYourPanelToggle;
16218
+ var _useState = useState(false),
16219
+ isYourPanel = _useState[0],
16220
+ setIsYourPanel = _useState[1];
16221
+ return React.createElement(DraggableContainer, {
16222
+ type: RPGUIContainerTypes.Framed,
16223
+ onCloseButton: function onCloseButton() {
16224
+ if (onClose) onClose();
16225
+ },
16226
+ width: "800px",
16227
+ cancelDrag: "#MarketContainer, .rpgui-dropdown-imp, input, .empty-slot, button",
16228
+ scale: scale
16229
+ }, isYourPanel && React.createElement(React.Fragment, null, React.createElement(ManagmentPanel, Object.assign({}, props)), React.createElement(PagerContainer$1, null, React.createElement(Button, {
16230
+ buttonType: ButtonTypes.RPGUIButton,
16231
+ onPointerDown: function onPointerDown() {
16232
+ onYourPanelToggle(false);
16233
+ setIsYourPanel(false);
16234
+ }
16235
+ }, "Go to marketplace"), React.createElement(Pager, Object.assign({}, props)))), !isYourPanel && React.createElement(React.Fragment, null, React.createElement(BuyPanel, Object.assign({}, props)), React.createElement(PagerContainer$1, null, React.createElement(Button, {
16236
+ buttonType: ButtonTypes.RPGUIButton,
16237
+ onPointerDown: function onPointerDown() {
16238
+ onYourPanelToggle(true);
16239
+ setIsYourPanel(true);
16240
+ }
16241
+ }, "Go to your panel"), React.createElement(Pager, Object.assign({}, props)))));
16242
+ };
16243
+ var PagerContainer$1 = /*#__PURE__*/styled.div.withConfig({
16244
+ displayName: "Marketplace__PagerContainer",
16245
+ componentId: "sc-h904b1-0"
16246
+ })(["display:flex;justify-content:space-between;align-items:center;width:calc(100% - 30px);"]);
16033
16247
 
16034
16248
  var ProgressBar = function ProgressBar(_ref) {
16035
16249
  var max = _ref.max,
@@ -16051,7 +16265,7 @@ var ProgressBar = function ProgressBar(_ref) {
16051
16265
  }
16052
16266
  return value * 100 / max;
16053
16267
  };
16054
- return React.createElement(Container$k, {
16268
+ return React.createElement(Container$m, {
16055
16269
  className: "rpgui-progress",
16056
16270
  "data-value": calculatePercentageValue(max, value) / 100,
16057
16271
  "data-rpguitype": "progress",
@@ -16081,7 +16295,7 @@ var TextOverlay$1 = /*#__PURE__*/styled.div.withConfig({
16081
16295
  displayName: "ProgressBar__TextOverlay",
16082
16296
  componentId: "sc-qa6fzh-1"
16083
16297
  })(["width:100%;position:relative;"]);
16084
- var Container$k = /*#__PURE__*/styled.div.withConfig({
16298
+ var Container$m = /*#__PURE__*/styled.div.withConfig({
16085
16299
  displayName: "ProgressBar__Container",
16086
16300
  componentId: "sc-qa6fzh-2"
16087
16301
  })(["display:flex;flex-direction:column;min-width:", "px;width:", "%;justify-content:start;align-items:flex-start;", " @media (max-width:950px){transform:scale(", ");}"], function (props) {
@@ -16094,7 +16308,7 @@ var Container$k = /*#__PURE__*/styled.div.withConfig({
16094
16308
  return props.mobileScale;
16095
16309
  });
16096
16310
 
16097
- var img$7 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAEZ0FNQQAAsY58+1GTAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAHcSURBVHja7Ji/agJBEId/K/cCdoKFFjZCbGxCekmVOunzCil8hhS+gr3WVmIvKbQxIILFKQjXhCPkASZN5tjd27ud9SRYOKV3u/ftN7P/VESEa4gariRuIHZEkpeUUkYhEZEKbeNrG0mJJ/MlOq0m9odTKRg/W+2OaDfqRh9xkmbPbaBIMrLJfInB/R0AoN2o4+v7B3GSAkAOzAXAwW0XH59QSpEOIzLCEHanuq31Zot+r1sIYcdwNDZgahIblww2GTxrXDb02B9OAIB+r4tOqymCYXtspRQkxMZ6s82lK8SG14jPBnccYmM6W6Df62ZWSkGkNjgt59p4eXyAt1h9NvSoasMJcs5MqWqj0IjEBncuNVdmIwcSYmN/OIlSUjZTnCD2Ui7pXLqK+tKSgTCEtOikBcrAvrQAQE2HkIwwTlJj2l7CBgBERKSUUrTaHQ3lcZI6t3G2IZ0pEhvZ7ssww9E4Wym5YUi6qoQioqDZwmB6emxDtg3ej97fXv0nNN64OHQrutbpbGG8o//2/DRwpsyXFsOI9DDjCv0j+oCkNowakR6iXSks+rjURtDhWS9q+1DtMiL5eC41lar9D8w2pQMVrR1nGym7p9hA/25EcrESXchu/wbcQDzxOwDLF0pIXBCe1wAAAABJRU5ErkJggg==';
16311
+ var img$8 = 'data:image/png;base64,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';
16098
16312
 
16099
16313
  var QuestInfo = function QuestInfo(_ref) {
16100
16314
  var quests = _ref.quests,
@@ -16138,7 +16352,7 @@ var QuestInfo = function QuestInfo(_ref) {
16138
16352
  }), React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
16139
16353
  className: "drag-handler"
16140
16354
  }, React.createElement(Title$4, null, React.createElement(Thumbnail, {
16141
- src: quests[currentIndex].thumbnail || img$7
16355
+ src: quests[currentIndex].thumbnail || img$8
16142
16356
  }), quests[currentIndex].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
16143
16357
  className: "golden"
16144
16358
  }))), React.createElement(Content, null, React.createElement("p", null, quests[currentIndex].description)), React.createElement(QuestColumn, {
@@ -16157,7 +16371,7 @@ var QuestInfo = function QuestInfo(_ref) {
16157
16371
  })))) : React.createElement(QuestsContainer, null, React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
16158
16372
  className: "drag-handler"
16159
16373
  }, React.createElement(Title$4, null, React.createElement(Thumbnail, {
16160
- src: quests[0].thumbnail || img$7
16374
+ src: quests[0].thumbnail || img$8
16161
16375
  }), quests[0].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
16162
16376
  className: "golden"
16163
16377
  }))), React.createElement(Content, null, React.createElement("p", null, quests[0].description)), React.createElement(QuestColumn, {
@@ -16422,7 +16636,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
16422
16636
  bgColor = _ref$bgColor === void 0 ? 'red' : _ref$bgColor,
16423
16637
  _ref$margin = _ref.margin,
16424
16638
  margin = _ref$margin === void 0 ? 20 : _ref$margin;
16425
- return React.createElement(Container$l, {
16639
+ return React.createElement(Container$n, {
16426
16640
  className: "simple-progress-bar"
16427
16641
  }, React.createElement(ProgressBarContainer, {
16428
16642
  margin: margin
@@ -16431,7 +16645,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
16431
16645
  bgColor: bgColor
16432
16646
  }))));
16433
16647
  };
16434
- var Container$l = /*#__PURE__*/styled.div.withConfig({
16648
+ var Container$n = /*#__PURE__*/styled.div.withConfig({
16435
16649
  displayName: "SimpleProgressBar__Container",
16436
16650
  componentId: "sc-mbeil3-0"
16437
16651
  })(["display:flex;justify-content:center;align-items:center;width:100%;"]);
@@ -16465,20 +16679,11 @@ var SkillProgressBar = function SkillProgressBar(_ref) {
16465
16679
  showSkillPoints = _ref$showSkillPoints === void 0 ? true : _ref$showSkillPoints,
16466
16680
  atlasIMG = _ref.atlasIMG,
16467
16681
  atlasJSON = _ref.atlasJSON,
16468
- buffAndDebuff = _ref.buffAndDebuff;
16682
+ buffAndDebuff = _ref.buffAndDebuff,
16683
+ ratio = _ref.ratio;
16469
16684
  if (!skillPointsToNextLevel) {
16470
16685
  skillPointsToNextLevel = getSPForLevel(level + 1);
16471
16686
  }
16472
- var SPLevelActual = getSPForLevel(level + 1);
16473
- var SPLevelBefore = getSPForLevel(level);
16474
- var SPcalc = SPLevelActual - SPLevelBefore;
16475
- var ratio = function ratio() {
16476
- if (level === 1) {
16477
- return skillPoints / SPLevelActual * 100;
16478
- }
16479
- return (skillPoints - SPLevelBefore) / SPcalc * 100;
16480
- };
16481
- //const ratio = ((skillPoints - SPLevelBefore) / SPcalc) * 100;
16482
16687
  var skillsBuffsCalc = function skillsBuffsCalc() {
16483
16688
  if (buffAndDebuff) {
16484
16689
  return 1 + buffAndDebuff / 100;
@@ -16493,9 +16698,9 @@ var SkillProgressBar = function SkillProgressBar(_ref) {
16493
16698
  grayScale: true,
16494
16699
  opacity: 0.5
16495
16700
  }))) : React.createElement(React.Fragment, null)), React.createElement(ProgressBarContainer$1, null, React.createElement(SimpleProgressBar, {
16496
- value: ratio(),
16701
+ value: ratio,
16497
16702
  bgColor: bgColor
16498
- }))), showSkillPoints && React.createElement(SkillDisplayContainer, null, React.createElement(SkillPointsDisplay, null, skillPoints, "/", getSPForLevel(level + 1))));
16703
+ }))), showSkillPoints && React.createElement(SkillDisplayContainer, null, React.createElement(SkillPointsDisplay, null, skillPoints, "/", skillPointsToNextLevel)));
16499
16704
  };
16500
16705
  var ProgressBarContainer$1 = /*#__PURE__*/styled.div.withConfig({
16501
16706
  displayName: "SkillProgressBar__ProgressBarContainer",
@@ -16617,6 +16822,24 @@ var SkillsContainer = function SkillsContainer(_ref) {
16617
16822
  atlasIMG = _ref.atlasIMG,
16618
16823
  atlasJSON = _ref.atlasJSON,
16619
16824
  scale = _ref.scale;
16825
+ var SPRatio = function SPRatio(level, skillPoints) {
16826
+ var SPLevelActual = getSPForLevel(level + 1);
16827
+ var SPLevelBefore = getSPForLevel(level);
16828
+ var SPCalc = SPLevelActual - SPLevelBefore;
16829
+ if (level === 1) {
16830
+ return skillPoints / SPLevelActual * 100;
16831
+ }
16832
+ return (skillPoints - SPLevelBefore) / SPCalc * 100;
16833
+ };
16834
+ var XPRatio = function XPRatio(level, skillPoints) {
16835
+ var XPLevelActual = getXPForLevel(level + 1);
16836
+ var XPLevelBefore = getXPForLevel(level);
16837
+ var XPCalc = XPLevelActual - XPLevelBefore;
16838
+ if (level === 1) {
16839
+ return skillPoints / XPLevelActual * 100;
16840
+ }
16841
+ return (skillPoints - XPLevelBefore) / XPCalc * 100;
16842
+ };
16620
16843
  var onRenderSkillCategory = function onRenderSkillCategory(category) {
16621
16844
  var skillCategory = skillProps[category];
16622
16845
  var skillCategoryColor = skillCategory.color;
@@ -16636,11 +16859,12 @@ var SkillsContainer = function SkillsContainer(_ref) {
16636
16859
  bgColor: skillCategoryColor,
16637
16860
  level: skillDetails.level || 0,
16638
16861
  skillPoints: Math.round(skillDetails.skillPoints) || 0,
16639
- skillPointsToNextLevel: Math.round(skillDetails.skillPointsToNextLevel) || 0,
16862
+ skillPointsToNextLevel: Math.round(getSPForLevel(skillDetails.level + 1)) || 0,
16640
16863
  texturePath: value,
16641
16864
  atlasIMG: atlasIMG,
16642
16865
  atlasJSON: atlasJSON,
16643
- buffAndDebuff: skillDetails.buffAndDebuff
16866
+ buffAndDebuff: skillDetails.buffAndDebuff,
16867
+ ratio: SPRatio(skillDetails.level, skillDetails.skillPoints)
16644
16868
  }));
16645
16869
  }
16646
16870
  return output;
@@ -16661,10 +16885,11 @@ var SkillsContainer = function SkillsContainer(_ref) {
16661
16885
  bgColor: uiColors.navyBlue,
16662
16886
  level: Math.round(skill.level) || 0,
16663
16887
  skillPoints: Math.round(skill.experience) || 0,
16664
- skillPointsToNextLevel: Math.round(skill.xpToNextLevel) || 0,
16888
+ skillPointsToNextLevel: Math.round(getXPForLevel(skill.level + 1)) || 0,
16665
16889
  texturePath: 'swords/broad-sword.png',
16666
16890
  atlasIMG: atlasIMG,
16667
- atlasJSON: atlasJSON
16891
+ atlasJSON: atlasJSON,
16892
+ ratio: XPRatio(skill.level, skill.experience)
16668
16893
  }), React.createElement("p", null, "Combat Skills"), React.createElement("hr", {
16669
16894
  className: "golden"
16670
16895
  })), onRenderSkillCategory('combat'), React.createElement(SkillSplitDiv, null, React.createElement("p", null, "Crafting Skills"), React.createElement("hr", {
@@ -16707,7 +16932,7 @@ var SpellInfo = function SpellInfo(_ref) {
16707
16932
  castingType = spell.castingType,
16708
16933
  cooldown = spell.cooldown,
16709
16934
  maxDistanceGrid = spell.maxDistanceGrid;
16710
- return React.createElement(Container$m, null, React.createElement(Header$1, null, React.createElement("div", null, React.createElement(Title$6, null, name), React.createElement(Type$1, null, magicWords))), React.createElement(Statistic$1, null, React.createElement("div", {
16935
+ return React.createElement(Container$o, null, React.createElement(Header$1, null, React.createElement("div", null, React.createElement(Title$6, null, name), React.createElement(Type$1, null, magicWords))), React.createElement(Statistic$1, null, React.createElement("div", {
16711
16936
  className: "label"
16712
16937
  }, "Casting Type:"), React.createElement("div", {
16713
16938
  className: "value"
@@ -16733,7 +16958,7 @@ var SpellInfo = function SpellInfo(_ref) {
16733
16958
  className: "value"
16734
16959
  }, requiredItem))), React.createElement(Description$1, null, description));
16735
16960
  };
16736
- var Container$m = /*#__PURE__*/styled.div.withConfig({
16961
+ var Container$o = /*#__PURE__*/styled.div.withConfig({
16737
16962
  displayName: "SpellInfo__Container",
16738
16963
  componentId: "sc-4hbw3q-0"
16739
16964
  })(["color:white;background-color:#222;border-radius:5px;padding:0.5rem;font-size:", ";border:3px solid ", ";height:max-content;width:30rem;@media (max-width:580px){width:80vw;}"], uiFonts.size.small, uiColors.lightGray);
@@ -16787,7 +17012,7 @@ var MobileSpellTooltip = function MobileSpellTooltip(_ref) {
16787
17012
  var _ref$current;
16788
17013
  (_ref$current = ref.current) == null ? void 0 : _ref$current.classList.add('fadeOut');
16789
17014
  };
16790
- return React.createElement(ModalPortal, null, React.createElement(Container$n, {
17015
+ return React.createElement(ModalPortal, null, React.createElement(Container$p, {
16791
17016
  ref: ref,
16792
17017
  onTouchEnd: function onTouchEnd() {
16793
17018
  handleFadeOut();
@@ -16812,7 +17037,7 @@ var MobileSpellTooltip = function MobileSpellTooltip(_ref) {
16812
17037
  }, option.text);
16813
17038
  }))));
16814
17039
  };
16815
- var Container$n = /*#__PURE__*/styled.div.withConfig({
17040
+ var Container$p = /*#__PURE__*/styled.div.withConfig({
16816
17041
  displayName: "MobileSpellTooltip__Container",
16817
17042
  componentId: "sc-6p7uvr-0"
16818
17043
  })(["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;}"]);
@@ -16853,13 +17078,13 @@ var MagicTooltip = function MagicTooltip(_ref) {
16853
17078
  }
16854
17079
  return;
16855
17080
  }, []);
16856
- return React.createElement(ModalPortal, null, React.createElement(Container$o, {
17081
+ return React.createElement(ModalPortal, null, React.createElement(Container$q, {
16857
17082
  ref: ref
16858
17083
  }, React.createElement(SpellInfoDisplay, {
16859
17084
  spell: spell
16860
17085
  })));
16861
17086
  };
16862
- var Container$o = /*#__PURE__*/styled.div.withConfig({
17087
+ var Container$q = /*#__PURE__*/styled.div.withConfig({
16863
17088
  displayName: "SpellTooltip__Container",
16864
17089
  componentId: "sc-1go0gwg-0"
16865
17090
  })(["position:absolute;z-index:100;pointer-events:none;left:0;top:0;opacity:0;transition:opacity 0.08s;"]);
@@ -16911,7 +17136,7 @@ var Spell = function Spell(_ref) {
16911
17136
  var disabled = isSettingShortcut ? charMagicLevel < minMagicLevelRequired : manaCost > charMana || charMagicLevel < minMagicLevelRequired;
16912
17137
  return React.createElement(SpellInfoWrapper, {
16913
17138
  spell: spell
16914
- }, React.createElement(Container$p, {
17139
+ }, React.createElement(Container$r, {
16915
17140
  onPointerUp: onPointerUp == null ? void 0 : onPointerUp.bind(null, spellKey),
16916
17141
  isSettingShortcut: isSettingShortcut && !disabled,
16917
17142
  className: "spell"
@@ -16925,7 +17150,7 @@ var Spell = function Spell(_ref) {
16925
17150
  className: "mana"
16926
17151
  }, manaCost))));
16927
17152
  };
16928
- var Container$p = /*#__PURE__*/styled.button.withConfig({
17153
+ var Container$r = /*#__PURE__*/styled.button.withConfig({
16929
17154
  displayName: "Spell__Container",
16930
17155
  componentId: "sc-j96fa2-0"
16931
17156
  })(["display:block;background:none;border:2px solid transparent;border-radius:1rem;width:100%;display:flex;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) {
@@ -17002,7 +17227,7 @@ var Spellbook = function Spellbook(_ref) {
17002
17227
  height: "inherit",
17003
17228
  cancelDrag: "#spellbook-search, #shortcuts_list, .spell",
17004
17229
  scale: scale
17005
- }, React.createElement(Container$q, null, React.createElement(Title$8, null, "Learned Spells"), React.createElement(ShortcutsSetter, {
17230
+ }, React.createElement(Container$s, null, React.createElement(Title$8, null, "Learned Spells"), React.createElement(ShortcutsSetter, {
17006
17231
  setSettingShortcutIndex: setSettingShortcutIndex,
17007
17232
  settingShortcutIndex: settingShortcutIndex,
17008
17233
  shortcuts: shortcuts,
@@ -17036,7 +17261,7 @@ var Title$8 = /*#__PURE__*/styled.h1.withConfig({
17036
17261
  displayName: "Spellbook__Title",
17037
17262
  componentId: "sc-r02nfq-0"
17038
17263
  })(["font-size:", " !important;margin-bottom:0 !important;"], uiFonts.size.large);
17039
- var Container$q = /*#__PURE__*/styled.div.withConfig({
17264
+ var Container$s = /*#__PURE__*/styled.div.withConfig({
17040
17265
  displayName: "Spellbook__Container",
17041
17266
  componentId: "sc-r02nfq-1"
17042
17267
  })(["width:100%;height:100%;color:white;display:flex;flex-direction:column;"]);
@@ -17050,16 +17275,16 @@ var TextArea = function TextArea(_ref) {
17050
17275
  return React.createElement("textarea", Object.assign({}, props));
17051
17276
  };
17052
17277
 
17053
- var img$8 = 'data:image/gif;base64,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';
17278
+ var img$9 = 'data:image/gif;base64,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';
17054
17279
 
17055
- var img$9 = 'data:image/gif;base64,R0lGODlhTgBNAPMAAAAAALcILyZ31ESZ+lrC/1Ds//vvpv3wo4G8//////38+QAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAAIf4gQ3JlYXRlZCB3aXRoIGV6Z2lmLmNvbSBHSUYgbWFrZXIALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQfIpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2yL+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlAgHm5ybmZV2KHh0naWcepYlo22mradzqUUClK61nJSxIJiMrgm+v664oSKrXqa/yMmmbrkexVXHydK+y2bNULON0dPTppLXGs9UpdzlCaVt4FpsZuTm5ejWwx3iU53v753p89jtnPj49JVRZ2ELgYMFoP0DaE6gF4JjBBycSCChEncMucV7yC+DQYoI/y8uzAjvFUddEkGGRHKPZMlN8lCqXDmgpctuJs90XDdzpc2bynJWgSjh40yLP4ECE1pHZs8CB5MqPcd0ClEARlVCjTpy6kadTrWC7KpU4NaDVndeyNqT64GpSzedBblHbcGUbSmSddlprsokV7HizUtAKsO+hAkMCCw48UTD+RAnZsw2L0aApfy2pTw48eWGczX3ZNzYsdtNAf2KVkm6tOnC2+JqXg2ytWBStiSLzWv7dh5XBnS/Pti7nj9TW2kT7u1bT03dBZSPtuuMnfMkqqXXpl79uhLR2icyj+gdSfjN3FF6Pz89kXU3itnPHO/xfXlm6VXZv3+ShnH+gOUnikAUAFpFny7/XYeGGBOssR8qQjBYQRQPpoOGgHc4WOEeYGAYB4VBBDGEhMTkYCKJKKao4oostujiizDGKOOMF0QAACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAAE4ATQAABP8QyEmrvTjrzbv/YCiOZGmeaKqubOu+cCzPa2DfuE2ruOD/QB9uN7IBB8ikEgnUETk333JKZQpuT0zgV+1Sf4Esxegtd6/h7FZgbn+vz617/k3P5PS8Ei7bIv6AgYKDhIWBfC9+houMjIgsio2Sk4CPKZGUmY2WJnh6B6ChoHpMdieec6KqoXqcRQKaq7Khmq4gmI2zurSUth6oZbMJw8Szc74dwF2rxM3Oq27IG7iGzM7Xw6uT0hnKVNbY2NBm3Bfe36Lh6gmq0aa/bGaq6+vt5O/J8cGh9PSibeUqbCFAoMAyfv38sSoTcMJAggQNTkmXsN5Chvg0PIRYcMm8iur/7HlpCGAjR4lIKIIMefFMxm4COEJEOUDlSnEtq5A0eTKJzZvPcta5FVNmRJ8IgV77h5Go0YgEayZV2ozpyJdaihotAPEnVXZCp+zUepLjx69gF3KFuGTsU6Negf5bazSJ27dmp1IVRfdpqRA838YFyRcvRJISAj89e1NV37eIS5I1zLiiY8OHscLEnFevP7oHHkPWvJkzwcohH4s2GjnxZMyol4peLbO161SyloKiTZug7du4dRkobLo26Wn6gs9a29vwb+B5ls9s/vS5w+R0Lp+kztH6dVJTVnP3ffzDOTrjR7c43yZ99fIi2FchMMA9a/ivwIP3jlx/Hv5QYOefQUtxSDGgTgCaJx8paIhxnYH+geGgQEYIGA0a+NFQIYRngJGhGlEEIeIQE8aXw4klpqjiiiy26OKLMMYo44w0XhABACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAAE4ATQAABP8QyEmrvTjrzbv/YCiOZGmeaKqubOu+cCzPa2DfuE2ruOD/QB9uN7IBB8ikEgnUETk333JKZQpuT0zgV+1Sf4Esxegtd6/h7FZgbn+vz617/k3P5PS8Ei7bIv6AgYKDhIWBfC9+houMjIgsio2Sk4CPKZGUmY2WJnh6n2d2J555B6anpqCcRQKaf6iwp64IqyCYk7G5spq1HqRmusGndL0dv166CcrLunPFG7eLscvU1bGUzxnHVdPV3sqxbtkX21Td39/hbeMV5VOw6PEJsOKivmzAqPLy9GbsYwIIFCijbx+/Yf7sQQlIoOFAc6cMGkS1TqGGLQ0zPlxSUGI8ign/bTHMKJBjR4/pQHr5BwAjyZJKTqJMmaoMS5cvNw6QOdMawpUWtY0kqZNnT2Y/Q4l86bAhEqNH5yWtcnOoxow7I0b1plLpB5xXSUI9qrIAyT1BtVhlSgDeVqTDzLJlkpbcWrZjUVKUy5bAAJYt777M6xEV376AA/cdrHXr3sUNE4Nd7JasYciR66rFnLGyXr4DDiPWvJnzOYkHRItmmljCZMqe+a1e/bK1a3z5CM+jLXCx7dtzklFTcJlzbdIXcbcRVpw35N/A6TDnW8A5W+gT3HXRpdo6SezZlUuHRdt75hriQZkf3UJ7m/XXkYtwX8UvfNbyWYFSlZ8E/f1LgGdMRXoAUtXfKFIUSJWAtvyXBxpihJcggGBE2I4RBK6DxoF9rDHhGWBwSEQPQZQ4hIXz5aAiiiy26OKLMMYo44w01mjjjRdEAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQfIpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2yL+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlJmNliZ4ep9ndieeoKV7oiWYmgesrayah6giqpSutq2wf5wgpG63v616ux+9ZcDHwXPDHbSLwAnQ0cCZyxvFXbfR2tu3yrLMbL622+TStt6z4WbZ5e3dbdVa6sau7fYJ5/Df1gIF6/X37OUrE8/CFgII/WFrFTCgKzcFxwhAmLAKwIb3HpqJOOEgRQIK/5dcxOguGcF98j6CnDKOpECNXjhK8PgxJJKRLsvBDMVrokqbA3Dm5GaSJzGfNREmETrUHKuNKC/QpFiA4k2GTXUWrSITwFSQKoNizUr0aZKqVplENYhU5UemWTWidTug61e3BFqShXZuLt6uXtvizTt270O/bgEHHvy2MNnDjAkovosXLknIkScLHqx36IG5AxAnXpsyMsLOlxGL/qh45ubKqB2KXk2xtes27Bp+Hkzb9m3csaMp4LvbtErfgec8I4qWNmPkycUhYzW3gPPRl+b9O6b6em3SHq7R+7Xau2Tw4bVLd2X+L/qjppC0x+5CvBkCoY27j2E/Ptf3JPTn30cpOwg4IHQ9qTdgXQiGQMaCSaAhRkdcxAfGhBVEoSA8aAB4xxpSEASGh3FoGEQQQ2A4Sw4squjiizDGKOOMNNZo44045nhBBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQfIpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2yL+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlJmNliZ4ep9ndieeoKV7oiWYmgesrayah6giqpSutq2wf5wgpG63v616ux+9ZcDHwXPDHbSLwAnQ0cCZyxvFXbfR2tu3yrLMbL622+TStt6z4WbZ5e3dbdVa6sau7fYJ5/Df1gIF6/X37OUrE8/CFgII/WFrFTCgKzcFxwhAmLAKwIb3HpqJOOEgRQIK/5dcxOguGcF98j6CnDKOpECNXjhK8PgxJJKRLsvBDMVrokqbA3Dm5GaSJzGfNREmETrUHKuNKC/QpFiA4k2GTXUWrSITwFSQKoNizUr0aZKqVplENYhU5UemWTWidTug61e3BFqShXZuLt6uXtvizTt270O/bgEHHvy2MNnDjAkovosXLknIkScLHqx36IG5AxAnXpsyMsLOlxGL/qh45ubKqB2KXk2xtes27Bp+Hkzb9m3csaMp4LvbtErfgec8I4qWNmPkycUhYzW3gPPRl+b9O6b6em3SHq7R+7Xau2Tw4bVLd2X+L/qjppC0x+5CvBkCoY27j2E/Ptf3JPTn30cpOwg4IHQ9qTdgXQiGQMaCSaAhRkdcxAfGhBVEoSA8aAB4xxpSEASGh3FoGEQQQ2A4Sw4squjiizDGKOOMNNZo44045nhBBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQfIpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2yL+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlJmNliZ4ep9ndieeeQemp6agnEUCmn+osKeuCKsgmJOxubKatR6kZrrBp3S9Hb9eugnKy7pzxRu3i7HL1NWxlM8Zx1XT1d7KsW7ZF9tU3d/f4W3jFeVTsOjxCbDior5swKjy8vRm7GMCCBQoo28fv2H+7EEJSKDhQHOnDBpEtU6hhi0NMz5cUlBiPIoJ/20xzCiQY0eP6UB6+QcAI8mSSk6iTJmqDEuXLzcOkDnTGsKVFrWNJKmTZ09mP0OJfOmwIRKjR+clrXJzqMaMOyNG9aZS6QecV0lCPaqyAMk9QbVYZUoA3lakw8yyZZKW3Fq2Y1FSlMuWwACWLe++zOsRFd++gAP3Hax1697FDRODXeyWrGHIkeuqxZyxsl6+Aw4j1ryZ8zmJB0SLZppYwmTKnvmtXv2ytWt8+QjPoy1wse3bc5JRU3CZc23SF3G3EVacN+TfwOkw51vAOVvoE9x10aXaOkns2ZVLh0Xbe+Ya4kGZH91Ce5v115GLcF/FL3zW8lmBUpWfBP39S4BnTEV6AFLV3yhSFEiVgLb8lwcaYoSXIIBgRNiOEQSug8aBfawx4RlgcEhED0GUOISF8+WgIoostujiizDGKOOMNNZo440XRAAAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAE/xDISau9OOvNu/9gKI5kaZ5oqq5s675wLM9rYN+4Tau44P9AH243sgEHyKQSCdQROTffckplCm5PTOBX7VJ/gSzF6C13r+HsVmBuf6/PrXv+Tc/k9LwSLtsi/oCBgoOEhYF8L36Gi4yMiCyKjZKTgI8pkZSZjZYmeHoHoKGgekx2J55zoqqhepxFApqrsqGariCYjbO6tJS2HqhlswnDxLNzvh3AXavEzc6rbsgbuIbMztfDq5PSGcpU1tjY0GbcF97fouHqCarRpr9sZqrr6+3k78nxwaH09KJt5SpsIUCgwDJ+/fyxKhNwwkCCBA1OSZew3kKG+DQ8hFhwybyK6v/seWkIYCNHiUgoggx58UzGbgI4QkQ5QOVKcS2rkDR5MonNm89y1rkVU2ZEnwiBXvuHkajRiARrJlXajOnIl1qKGi0A8SdVdkKn7NR6kuPHr2AXcoW4ZOxTo16B/ltrNInbt2anUhVF92mpEDzfxgXJFy9EkhICPz17U1Xft4hLkjXMuKJjw4exwsTctbI/ugceQ9a8mTMBcJ9lijYaOfFkyp6Xil4ts7XrVLKWgqJNm6Dt27h1GShsujbpafqCz1rb2/Bv4HmWz2z+9LnD5HQun6TO0fp1UlNWc/d9/MM5OuNHtzjfJn318iLYVyEwwD1r+K/Ag/eOXH8e/lBg559BS3FIMaBOAJonHyloiHGdgf6B4aBARggYDRr40VAhhGeAkaEaUQQh4hATxpfDiSWmqOKKLLbo4oswxijjjDReEAEAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAE/xDISau9OOvNu/9gKI5kaZ5oqq5s675wLM9rYN+4Tau44P9AH243sgEHyKQSCdQROTffckplCm5PTOBX7VJ/gSzF6C13r+HsVmBuf6/PrXv+Tc/k9LwSLtsi/oCBgoOEhYF8L36Gi4yMiCyKjZKTgI8pkZQIB5ucm5mVdih4dJ2lnHqWJaNtpq2nc6lFApSutZyUsSCYjK4Jvr+uuKEiq16mv8jJpm65HsVVx8nSvstmzVCzjdHT06aS1xrPVKXc5QmlbeBabGbk5uXo1sMd4lOd7++d6fPY7Zz4+PSVUWdhC4GDBaD9A2hOoBeCYwQcnEggoRJ3DLnFe8gvg0GKCP8vLswI7xVHXRJBhkRyj2TJTfJQqlw5oKXLbibPdFw3c6XNm8pyVoEo4eNMiz+BAhNaR2bPAgeTKj3HdApRAEZVQo06cupGnU61guyqVODWg1Z3Xsjak+uBqUs3nQW5R23BlG0pknXZaa7KJFex4s1LQCrDvoQJDAgsOPFEw/kQJ2bMNi9GgKX8tqU8OPHlhnM192Tc2LHbTQH9ilZJurTpwtvial4NsrVgUrYki81r+3YeVwZ0vz7Yu54/U1tpE+7tW09N3QWUj7brjJ3zJKql16Ze/boS0donMo/oHUn4zdxRej8/PZF1N4rZzxzv8X15ZulV2b9/koZx/oDlJ4pAFABaRZ8u/12HhhgTrLEfKkIwWEEUD6aDhoB3OFjhHmBgGAeFQQQxhITE5GAiiSimqOKKLLbo4oswxijjjBdEAAA7';
17280
+ var img$a = 'data:image/gif;base64,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';
17056
17281
 
17057
- var img$a = 'data:image/gif;base64,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';
17282
+ var img$b = 'data:image/gif;base64,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';
17058
17283
 
17059
17284
  var DayNightPeriod = function DayNightPeriod(_ref) {
17060
17285
  var _periodOfDaySrcFiles;
17061
17286
  var periodOfDay = _ref.periodOfDay;
17062
- var periodOfDaySrcFiles = (_periodOfDaySrcFiles = {}, _periodOfDaySrcFiles[PeriodOfDay.Morning] = img$9, _periodOfDaySrcFiles[PeriodOfDay.Afternoon] = img$8, _periodOfDaySrcFiles[PeriodOfDay.Night] = img$a, _periodOfDaySrcFiles);
17287
+ var periodOfDaySrcFiles = (_periodOfDaySrcFiles = {}, _periodOfDaySrcFiles[PeriodOfDay.Morning] = img$a, _periodOfDaySrcFiles[PeriodOfDay.Afternoon] = img$9, _periodOfDaySrcFiles[PeriodOfDay.Night] = img$b, _periodOfDaySrcFiles);
17063
17288
  return React.createElement(GifContainer, null, React.createElement("img", {
17064
17289
  src: periodOfDaySrcFiles[periodOfDay]
17065
17290
  }));
@@ -17069,7 +17294,7 @@ var GifContainer = /*#__PURE__*/styled.div.withConfig({
17069
17294
  componentId: "sc-10t97fw-0"
17070
17295
  })(["width:100%;img{width:67%;}"]);
17071
17296
 
17072
- 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';
17297
+ 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';
17073
17298
 
17074
17299
  var TimeWidget = function TimeWidget(_ref) {
17075
17300
  var onClose = _ref.onClose,
@@ -17087,7 +17312,7 @@ var TimeWidget = function TimeWidget(_ref) {
17087
17312
  var WidgetContainer = /*#__PURE__*/styled.div.withConfig({
17088
17313
  displayName: "TimeWidget__WidgetContainer",
17089
17314
  componentId: "sc-1ja236h-0"
17090
- })(["background-image:url(", ");background-size:10rem;background-repeat:no-repeat;width:10rem;position:absolute;height:100px;"], img$b);
17315
+ })(["background-image:url(", ");background-size:10rem;background-repeat:no-repeat;width:10rem;position:absolute;height:100px;"], img$c);
17091
17316
  var Time = /*#__PURE__*/styled.div.withConfig({
17092
17317
  displayName: "TimeWidget__Time",
17093
17318
  componentId: "sc-1ja236h-1"
@@ -17337,230 +17562,16 @@ var Truncate = function Truncate(_ref) {
17337
17562
  var _ref$maxLines = _ref.maxLines,
17338
17563
  maxLines = _ref$maxLines === void 0 ? 1 : _ref$maxLines,
17339
17564
  children = _ref.children;
17340
- return React.createElement(Container$r, {
17565
+ return React.createElement(Container$t, {
17341
17566
  maxLines: maxLines
17342
17567
  }, children);
17343
17568
  };
17344
- var Container$r = /*#__PURE__*/styled.div.withConfig({
17569
+ var Container$t = /*#__PURE__*/styled.div.withConfig({
17345
17570
  displayName: "Truncate__Container",
17346
17571
  componentId: "sc-6x00qb-0"
17347
17572
  })(["display:-webkit-box;max-width:100%;max-height:100%;-webkit-line-clamp:", ";-webkit-box-orient:vertical;overflow:hidden;"], function (props) {
17348
17573
  return props.maxLines;
17349
17574
  });
17350
17575
 
17351
- var IS_MOBILE_OR_TABLET = /*#__PURE__*/isMobileOrTablet();
17352
-
17353
- var chunkString = function chunkString(str, length) {
17354
- return str.match(new RegExp('.{1,' + length + '}', 'g'));
17355
- };
17356
-
17357
- var img$c = 'data:image/gif;base64,R0lGODlhEAAQAPIAAAAAABQYLiw1TUBJc2hvmQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAM9CLrc/lCFGSKYJJP5AhlguDnBMIVgxXgmJapSSp3mKs/pKrT0IMCXUk+2Cgh2oSOnaDz+lswZpSOFUq2KBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAIzhI+py90Bg4OjDrjCELxfFQhQx0mIJkaeaYRp5LJADMdnqXbyOJLYTdKBejjZoRaZJBMFACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAABAAEAAAAjKEj6nL7Y+CDE6OO+QKQ/ifKYEgfR4VddPohQe7lmR0xidNTib65uacYP2AQWGuMlEUAAA7';
17358
-
17359
- var NPCDialogText = function NPCDialogText(_ref) {
17360
- var text = _ref.text,
17361
- onClose = _ref.onClose,
17362
- onEndStep = _ref.onEndStep,
17363
- onStartStep = _ref.onStartStep,
17364
- type = _ref.type;
17365
- var windowSize = useRef([window.innerWidth, window.innerHeight]);
17366
- function maxCharacters(width) {
17367
- // Set the font size to 16 pixels
17368
- var fontSize = 11.2;
17369
- // Calculate the number of characters that can fit in one line
17370
- var charactersPerLine = Math.floor(width / 2 / fontSize);
17371
- // Calculate the number of lines that can fit in the div
17372
- var linesPerDiv = Math.floor(180 / fontSize);
17373
- // Calculate the maximum number of characters that can fit in the div
17374
- var maxCharacters = charactersPerLine * linesPerDiv;
17375
- // Return the maximum number of characters
17376
- return Math.round(maxCharacters / 5);
17377
- }
17378
- var textChunks = chunkString(text, maxCharacters(windowSize.current[0]));
17379
- var _useState = useState(0),
17380
- chunkIndex = _useState[0],
17381
- setChunkIndex = _useState[1];
17382
- var onHandleSpacePress = function onHandleSpacePress(event) {
17383
- if (event.code === 'Space') {
17384
- goToNextStep();
17385
- }
17386
- };
17387
- var goToNextStep = function goToNextStep() {
17388
- var hasNextChunk = (textChunks == null ? void 0 : textChunks[chunkIndex + 1]) || false;
17389
- if (hasNextChunk) {
17390
- setChunkIndex(function (prev) {
17391
- return prev + 1;
17392
- });
17393
- } else {
17394
- // if there's no more text chunks, close the dialog
17395
- onClose();
17396
- }
17397
- };
17398
- useEffect(function () {
17399
- document.addEventListener('keydown', onHandleSpacePress);
17400
- return function () {
17401
- return document.removeEventListener('keydown', onHandleSpacePress);
17402
- };
17403
- }, [chunkIndex]);
17404
- var _useState2 = useState(false),
17405
- showGoNextIndicator = _useState2[0],
17406
- setShowGoNextIndicator = _useState2[1];
17407
- return React.createElement(Container$s, null, React.createElement(DynamicText, {
17408
- text: (textChunks == null ? void 0 : textChunks[chunkIndex]) || '',
17409
- onFinish: function onFinish() {
17410
- setShowGoNextIndicator(true);
17411
- onEndStep && onEndStep();
17412
- },
17413
- onStart: function onStart() {
17414
- setShowGoNextIndicator(false);
17415
- onStartStep && onStartStep();
17416
- }
17417
- }), showGoNextIndicator && React.createElement(PressSpaceIndicator$1, {
17418
- right: type === NPCDialogType.TextOnly ? '1rem' : '10.5rem',
17419
- src: IS_MOBILE_OR_TABLET ? img$c : img$6,
17420
- onPointerDown: function onPointerDown() {
17421
- goToNextStep();
17422
- }
17423
- }));
17424
- };
17425
- var Container$s = /*#__PURE__*/styled.div.withConfig({
17426
- displayName: "NPCDialogText__Container",
17427
- componentId: "sc-1cxkdh9-0"
17428
- })([""]);
17429
- var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
17430
- displayName: "NPCDialogText__PressSpaceIndicator",
17431
- componentId: "sc-1cxkdh9-1"
17432
- })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref2) {
17433
- var right = _ref2.right;
17434
- return right;
17435
- });
17436
-
17437
- var NPCDialogType;
17438
- (function (NPCDialogType) {
17439
- NPCDialogType["TextOnly"] = "TextOnly";
17440
- NPCDialogType["TextAndThumbnail"] = "TextAndThumbnail";
17441
- })(NPCDialogType || (NPCDialogType = {}));
17442
- var NPCDialog = function NPCDialog(_ref) {
17443
- var text = _ref.text,
17444
- type = _ref.type,
17445
- _onClose = _ref.onClose,
17446
- imagePath = _ref.imagePath,
17447
- _ref$isQuestionDialog = _ref.isQuestionDialog,
17448
- isQuestionDialog = _ref$isQuestionDialog === void 0 ? false : _ref$isQuestionDialog,
17449
- questions = _ref.questions,
17450
- answers = _ref.answers;
17451
- return React.createElement(RPGUIContainer, {
17452
- type: RPGUIContainerTypes.FramedGold,
17453
- width: isQuestionDialog ? '600px' : '80%',
17454
- height: '180px'
17455
- }, isQuestionDialog && questions && answers ? React.createElement(React.Fragment, null, React.createElement(TextContainer$2, {
17456
- flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
17457
- }, React.createElement(QuestionDialog, {
17458
- questions: questions,
17459
- answers: answers,
17460
- onClose: function onClose() {
17461
- if (_onClose) {
17462
- _onClose();
17463
- }
17464
- }
17465
- })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
17466
- src: imagePath || img$5
17467
- }))) : React.createElement(React.Fragment, null, React.createElement(Container$t, null, React.createElement(TextContainer$2, {
17468
- flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
17469
- }, React.createElement(NPCDialogText, {
17470
- type: type,
17471
- text: text || 'No text provided.',
17472
- onClose: function onClose() {
17473
- if (_onClose) {
17474
- _onClose();
17475
- }
17476
- }
17477
- })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
17478
- src: imagePath || img$5
17479
- })))));
17480
- };
17481
- var Container$t = /*#__PURE__*/styled.div.withConfig({
17482
- displayName: "NPCDialog__Container",
17483
- componentId: "sc-1b4aw74-0"
17484
- })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
17485
- var TextContainer$2 = /*#__PURE__*/styled.div.withConfig({
17486
- displayName: "NPCDialog__TextContainer",
17487
- componentId: "sc-1b4aw74-1"
17488
- })(["flex:", " 0 0;width:355px;"], function (_ref2) {
17489
- var flex = _ref2.flex;
17490
- return flex;
17491
- });
17492
- var ThumbnailContainer$1 = /*#__PURE__*/styled.div.withConfig({
17493
- displayName: "NPCDialog__ThumbnailContainer",
17494
- componentId: "sc-1b4aw74-2"
17495
- })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
17496
- var NPCThumbnail$1 = /*#__PURE__*/styled.img.withConfig({
17497
- displayName: "NPCDialog__NPCThumbnail",
17498
- componentId: "sc-1b4aw74-3"
17499
- })(["image-rendering:pixelated;height:128px;width:128px;"]);
17500
-
17501
- var HistoryDialog = function HistoryDialog(_ref) {
17502
- var backgroundImgPath = _ref.backgroundImgPath,
17503
- fullCoverBackground = _ref.fullCoverBackground,
17504
- questions = _ref.questions,
17505
- answers = _ref.answers,
17506
- text = _ref.text,
17507
- imagePath = _ref.imagePath,
17508
- textAndTypeArray = _ref.textAndTypeArray,
17509
- onClose = _ref.onClose;
17510
- var _useState = useState(0),
17511
- img = _useState[0],
17512
- setImage = _useState[1];
17513
- var onHandleSpacePress = function onHandleSpacePress(event) {
17514
- if (event.code === 'Space') {
17515
- if (img < (backgroundImgPath == null ? void 0 : backgroundImgPath.length) - 1) {
17516
- setImage(function (prev) {
17517
- return prev + 1;
17518
- });
17519
- } else {
17520
- // if there's no more text chunks, close the dialog
17521
- onClose();
17522
- }
17523
- }
17524
- };
17525
- useEffect(function () {
17526
- document.addEventListener('keydown', onHandleSpacePress);
17527
- return function () {
17528
- return document.removeEventListener('keydown', onHandleSpacePress);
17529
- };
17530
- }, [backgroundImgPath]);
17531
- return React.createElement(BackgroundContainer, {
17532
- imgPath: backgroundImgPath[img],
17533
- fullImg: fullCoverBackground
17534
- }, React.createElement(DialogContainer, null, textAndTypeArray ? React.createElement(NPCMultiDialog, {
17535
- textAndTypeArray: textAndTypeArray,
17536
- onClose: onClose
17537
- }) : questions && answers ? React.createElement(QuestionDialog, {
17538
- questions: questions,
17539
- answers: answers,
17540
- onClose: onClose
17541
- }) : text && imagePath ? React.createElement(NPCDialog, {
17542
- text: text,
17543
- imagePath: imagePath,
17544
- onClose: onClose,
17545
- type: NPCDialogType.TextAndThumbnail
17546
- }) : React.createElement(NPCDialog, {
17547
- text: text,
17548
- onClose: onClose,
17549
- type: NPCDialogType.TextOnly
17550
- })));
17551
- };
17552
- var BackgroundContainer = /*#__PURE__*/styled.div.withConfig({
17553
- displayName: "HistoryDialog__BackgroundContainer",
17554
- componentId: "sc-u6oe75-0"
17555
- })(["width:100%;height:100%;background-image:url(", ");background-size:", ";display:flex;justify-content:space-evenly;align-items:center;"], function (props) {
17556
- return props.imgPath;
17557
- }, function (props) {
17558
- return props.imgPath ? 'cover' : 'auto';
17559
- });
17560
- var DialogContainer = /*#__PURE__*/styled.div.withConfig({
17561
- displayName: "HistoryDialog__DialogContainer",
17562
- componentId: "sc-u6oe75-1"
17563
- })(["display:flex;justify-content:center;padding-top:200px;"]);
17564
-
17565
17576
  export { Button, ButtonTypes, CharacterSelection, Chat, ChatDeprecated, CheckButton, CircularController, CraftBook, DraggableContainer, Dropdown, DropdownSelectorContainer, DynamicText, EquipmentSet, EquipmentSlotSpriteByType, ErrorBoundary, HistoryDialog, ImgSide, Input, InputRadio$1 as InputRadio, ItemContainer$1 as ItemContainer, ItemSelector, ItemSlot, ListMenu, Marketplace, MarketplaceRows, NPCDialog, NPCDialogType, NPCMultiDialog, ProgressBar, PropertySelect, QuestInfo, QuestList, QuestionDialog, RPGUIContainer, RPGUIContainerTypes, RPGUIRoot, RangeSlider, RangeSliderType, Shortcuts, SkillProgressBar, SkillsContainer, Spellbook, SpriteFromAtlas, TextArea, TimeWidget, TradingMenu, Truncate, _RPGUI, rarityColor, useEventListener };
17566
17577
  //# sourceMappingURL=long-bow.esm.js.map