@rpg-engine/long-bow 0.2.27 → 0.2.29

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 (34) hide show
  1. package/dist/components/SkillProgressBar.d.ts +2 -0
  2. package/dist/components/SkillsContainer.d.ts +2 -0
  3. package/dist/components/TradingMenu/TrandingMenu.d.ts +12 -0
  4. package/dist/components/TradingMenu/itemComponent.d.ts +9 -0
  5. package/dist/components/TradingMenu/items.mock.d.ts +2 -0
  6. package/dist/index.d.ts +1 -0
  7. package/dist/long-bow.cjs.development.js +408 -414
  8. package/dist/long-bow.cjs.development.js.map +1 -1
  9. package/dist/long-bow.cjs.production.min.js +1 -1
  10. package/dist/long-bow.cjs.production.min.js.map +1 -1
  11. package/dist/long-bow.esm.js +407 -418
  12. package/dist/long-bow.esm.js.map +1 -1
  13. package/dist/stories/ItemTradingComponent.stories.d.ts +5 -0
  14. package/dist/stories/TrandingMenu.stories.d.ts +5 -0
  15. package/package.json +2 -2
  16. package/src/components/Character/CharacterSelection.tsx +1 -1
  17. package/src/components/Item/Inventory/ItemSlot.tsx +6 -4
  18. package/src/components/NPCDialog/.DS_Store +0 -0
  19. package/src/components/ScrollList.tsx +2 -1
  20. package/src/components/SkillProgressBar.tsx +4 -2
  21. package/src/components/SkillsContainer.tsx +8 -37
  22. package/src/components/TradingMenu/TrandingMenu.tsx +190 -0
  23. package/src/components/TradingMenu/itemComponent.tsx +158 -0
  24. package/src/components/TradingMenu/items.mock.ts +87 -0
  25. package/src/index.tsx +1 -0
  26. package/src/mocks/.DS_Store +0 -0
  27. package/src/mocks/equipmentSet.mocks.ts +3 -5
  28. package/src/mocks/itemContainer.mocks.ts +20 -32
  29. package/src/stories/ItemTradingComponent.stories.tsx +39 -0
  30. package/src/stories/SkillProgressBar.stories.tsx +4 -0
  31. package/src/stories/SkillsContainer.stories.tsx +4 -0
  32. package/src/stories/TrandingMenu.stories.tsx +38 -0
  33. package/dist/libs/ItemSlotHelper.d.ts +0 -2
  34. package/src/libs/ItemSlotHelper.ts +0 -25
@@ -21,26 +21,21 @@ function _extends() {
21
21
  _extends = Object.assign ? Object.assign.bind() : function (target) {
22
22
  for (var i = 1; i < arguments.length; i++) {
23
23
  var source = arguments[i];
24
-
25
24
  for (var key in source) {
26
25
  if (Object.prototype.hasOwnProperty.call(source, key)) {
27
26
  target[key] = source[key];
28
27
  }
29
28
  }
30
29
  }
31
-
32
30
  return target;
33
31
  };
34
32
  return _extends.apply(this, arguments);
35
33
  }
36
-
37
34
  function _inheritsLoose(subClass, superClass) {
38
35
  subClass.prototype = Object.create(superClass.prototype);
39
36
  subClass.prototype.constructor = subClass;
40
-
41
37
  _setPrototypeOf(subClass, superClass);
42
38
  }
43
-
44
39
  function _setPrototypeOf(o, p) {
45
40
  _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
46
41
  o.__proto__ = p;
@@ -48,36 +43,33 @@ function _setPrototypeOf(o, p) {
48
43
  };
49
44
  return _setPrototypeOf(o, p);
50
45
  }
51
-
46
+ function _objectDestructuringEmpty(obj) {
47
+ if (obj == null) throw new TypeError("Cannot destructure " + obj);
48
+ }
52
49
  function _objectWithoutPropertiesLoose(source, excluded) {
53
50
  if (source == null) return {};
54
51
  var target = {};
55
52
  var sourceKeys = Object.keys(source);
56
53
  var key, i;
57
-
58
54
  for (i = 0; i < sourceKeys.length; i++) {
59
55
  key = sourceKeys[i];
60
56
  if (excluded.indexOf(key) >= 0) continue;
61
57
  target[key] = source[key];
62
58
  }
63
-
64
59
  return target;
65
60
  }
66
61
 
67
62
  var _excluded = ["disabled", "children", "buttonType"];
68
-
69
63
  (function (ButtonTypes) {
70
64
  ButtonTypes["RPGUIButton"] = "rpgui-button";
71
65
  ButtonTypes["RPGUIGoldButton"] = "rpgui-button golden";
72
66
  })(exports.ButtonTypes || (exports.ButtonTypes = {}));
73
-
74
67
  var Button = function Button(_ref) {
75
68
  var _ref$disabled = _ref.disabled,
76
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
77
- children = _ref.children,
78
- buttonType = _ref.buttonType,
79
- props = _objectWithoutPropertiesLoose(_ref, _excluded);
80
-
69
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
70
+ children = _ref.children,
71
+ buttonType = _ref.buttonType,
72
+ props = _objectWithoutPropertiesLoose(_ref, _excluded);
81
73
  return React__default.createElement(ButtonContainer, Object.assign({
82
74
  className: "" + buttonType,
83
75
  disabled: disabled
@@ -90,21 +82,21 @@ var ButtonContainer = /*#__PURE__*/styled.button.withConfig({
90
82
 
91
83
  var SpriteFromAtlas = function SpriteFromAtlas(_ref) {
92
84
  var atlasJSON = _ref.atlasJSON,
93
- atlasIMG = _ref.atlasIMG,
94
- spriteKey = _ref.spriteKey,
95
- _ref$width = _ref.width,
96
- width = _ref$width === void 0 ? shared.GRID_WIDTH : _ref$width,
97
- _ref$height = _ref.height,
98
- height = _ref$height === void 0 ? shared.GRID_HEIGHT : _ref$height,
99
- _ref$imgScale = _ref.imgScale,
100
- imgScale = _ref$imgScale === void 0 ? 2 : _ref$imgScale,
101
- imgStyle = _ref.imgStyle,
102
- onClick = _ref.onClick,
103
- containerStyle = _ref.containerStyle,
104
- _ref$grayScale = _ref.grayScale,
105
- grayScale = _ref$grayScale === void 0 ? false : _ref$grayScale,
106
- _ref$opacity = _ref.opacity,
107
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity;
85
+ atlasIMG = _ref.atlasIMG,
86
+ spriteKey = _ref.spriteKey,
87
+ _ref$width = _ref.width,
88
+ width = _ref$width === void 0 ? shared.GRID_WIDTH : _ref$width,
89
+ _ref$height = _ref.height,
90
+ height = _ref$height === void 0 ? shared.GRID_HEIGHT : _ref$height,
91
+ _ref$imgScale = _ref.imgScale,
92
+ imgScale = _ref$imgScale === void 0 ? 2 : _ref$imgScale,
93
+ imgStyle = _ref.imgStyle,
94
+ onClick = _ref.onClick,
95
+ containerStyle = _ref.containerStyle,
96
+ _ref$grayScale = _ref.grayScale,
97
+ grayScale = _ref$grayScale === void 0 ? false : _ref$grayScale,
98
+ _ref$opacity = _ref.opacity,
99
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity;
108
100
  //! If an item is not showing, remember that you MUST run yarn atlas:copy everytime you add a new item to the atlas (it will sync our public folder atlas with src/atlas).
109
101
  //!Due to React's limitations, we cannot import it from the public folder directly!
110
102
  var spriteData = atlasJSON.frames[spriteKey];
@@ -27261,34 +27253,27 @@ var img$1 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAFACAMAAAD6TlWYA
27261
27253
 
27262
27254
  var ErrorBoundary = /*#__PURE__*/function (_Component) {
27263
27255
  _inheritsLoose(ErrorBoundary, _Component);
27264
-
27265
27256
  function ErrorBoundary() {
27266
27257
  var _this;
27267
-
27268
27258
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
27269
27259
  args[_key] = arguments[_key];
27270
27260
  }
27271
-
27272
27261
  _this = _Component.call.apply(_Component, [this].concat(args)) || this;
27273
27262
  _this.state = {
27274
27263
  hasError: false
27275
27264
  };
27276
27265
  return _this;
27277
27266
  }
27278
-
27279
27267
  ErrorBoundary.getDerivedStateFromError = function getDerivedStateFromError(_) {
27280
27268
  // Update state so the next render will show the fallback UI.
27281
27269
  return {
27282
27270
  hasError: true
27283
27271
  };
27284
27272
  };
27285
-
27286
27273
  var _proto = ErrorBoundary.prototype;
27287
-
27288
27274
  _proto.componentDidCatch = function componentDidCatch(error, errorInfo) {
27289
27275
  console.error('Uncaught error:', error, errorInfo);
27290
27276
  };
27291
-
27292
27277
  _proto.render = function render() {
27293
27278
  if (this.state.hasError) {
27294
27279
  return React__default.createElement(SpriteFromAtlas, {
@@ -27298,16 +27283,14 @@ var ErrorBoundary = /*#__PURE__*/function (_Component) {
27298
27283
  imgScale: 3
27299
27284
  });
27300
27285
  }
27301
-
27302
27286
  return this.props.children;
27303
27287
  };
27304
-
27305
27288
  return ErrorBoundary;
27306
27289
  }(React.Component);
27307
27290
 
27308
27291
  var Ellipsis = function Ellipsis(_ref) {
27309
27292
  var children = _ref.children,
27310
- maxLines = _ref.maxLines;
27293
+ maxLines = _ref.maxLines;
27311
27294
  return React__default.createElement(Container$1, null, React__default.createElement("div", {
27312
27295
  className: "ellipsis-" + maxLines + "-lines"
27313
27296
  }, children));
@@ -27327,43 +27310,34 @@ var img$5 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0A
27327
27310
 
27328
27311
  var PropertySelect = function PropertySelect(_ref) {
27329
27312
  var availableProperties = _ref.availableProperties,
27330
- onChange = _ref.onChange;
27331
-
27313
+ onChange = _ref.onChange;
27332
27314
  var _useState = React.useState(0),
27333
- currentIndex = _useState[0],
27334
- setCurrentIndex = _useState[1];
27335
-
27315
+ currentIndex = _useState[0],
27316
+ setCurrentIndex = _useState[1];
27336
27317
  var propertiesLength = availableProperties.length - 1;
27337
-
27338
27318
  var onLeftClick = function onLeftClick() {
27339
27319
  if (currentIndex === 0) setCurrentIndex(propertiesLength);else setCurrentIndex(function (index) {
27340
27320
  return index - 1;
27341
27321
  });
27342
27322
  };
27343
-
27344
27323
  var onRightClick = function onRightClick() {
27345
27324
  if (currentIndex === propertiesLength) setCurrentIndex(0);else setCurrentIndex(function (index) {
27346
27325
  return index + 1;
27347
27326
  });
27348
27327
  };
27349
-
27350
27328
  React.useEffect(function () {
27351
27329
  onChange(availableProperties[currentIndex]);
27352
27330
  }, [currentIndex]);
27353
27331
  React.useEffect(function () {
27354
27332
  setCurrentIndex(0);
27355
27333
  }, [JSON.stringify(availableProperties)]);
27356
-
27357
27334
  var getCurrentSelectionName = function getCurrentSelectionName() {
27358
27335
  var item = availableProperties[currentIndex];
27359
-
27360
27336
  if (item) {
27361
27337
  return item.name;
27362
27338
  }
27363
-
27364
27339
  return '';
27365
27340
  };
27366
-
27367
27341
  return React__default.createElement(Container$2, null, React__default.createElement(TextOverlay, null, React__default.createElement(Item, null, React__default.createElement(Ellipsis, {
27368
27342
  maxLines: 1
27369
27343
  }, getCurrentSelectionName()))), React__default.createElement("div", {
@@ -27399,34 +27373,28 @@ var RightArrow = /*#__PURE__*/styled.div.withConfig({
27399
27373
 
27400
27374
  var CharacterSelection = function CharacterSelection(_ref) {
27401
27375
  var availableCharacters = _ref.availableCharacters,
27402
- onChange = _ref.onChange;
27376
+ onChange = _ref.onChange;
27403
27377
  var propertySelectValues = availableCharacters.map(function (item) {
27404
27378
  return {
27405
27379
  id: item.textureKey,
27406
27380
  name: item.name
27407
27381
  };
27408
27382
  });
27409
-
27410
27383
  var _useState = React.useState(),
27411
- selectedValue = _useState[0],
27412
- setSelectedValue = _useState[1];
27413
-
27384
+ selectedValue = _useState[0],
27385
+ setSelectedValue = _useState[1];
27414
27386
  var _useState2 = React.useState(''),
27415
- selectedSpriteKey = _useState2[0],
27416
- setSelectedSpriteKey = _useState2[1];
27417
-
27387
+ selectedSpriteKey = _useState2[0],
27388
+ setSelectedSpriteKey = _useState2[1];
27418
27389
  var onSelectedValueChange = function onSelectedValueChange() {
27419
27390
  var textureKey = selectedValue ? selectedValue.id : '';
27420
27391
  var spriteKey = textureKey ? textureKey + '/down/standing/0.png' : '';
27421
-
27422
- if (spriteKey == selectedSpriteKey) {
27392
+ if (spriteKey === selectedSpriteKey) {
27423
27393
  return;
27424
27394
  }
27425
-
27426
27395
  setSelectedSpriteKey(spriteKey);
27427
27396
  onChange(textureKey);
27428
27397
  };
27429
-
27430
27398
  React.useEffect(function () {
27431
27399
  onSelectedValueChange();
27432
27400
  }, [selectedValue]);
@@ -27472,8 +27440,7 @@ var colors = {
27472
27440
  };
27473
27441
 
27474
27442
  var Input = function Input(_ref) {
27475
- var props = _extends({}, _ref);
27476
-
27443
+ var props = _extends({}, (_objectDestructuringEmpty(_ref), _ref));
27477
27444
  return React__default.createElement("input", Object.assign({}, props));
27478
27445
  };
27479
27446
 
@@ -27483,14 +27450,13 @@ var Input = function Input(_ref) {
27483
27450
  RPGUIContainerTypes["FramedGold2"] = "framed-golden-2";
27484
27451
  RPGUIContainerTypes["FramedGrey"] = "framed-grey";
27485
27452
  })(exports.RPGUIContainerTypes || (exports.RPGUIContainerTypes = {}));
27486
-
27487
27453
  var RPGUIContainer = function RPGUIContainer(_ref) {
27488
27454
  var children = _ref.children,
27489
- type = _ref.type,
27490
- _ref$width = _ref.width,
27491
- width = _ref$width === void 0 ? '50%' : _ref$width,
27492
- height = _ref.height,
27493
- className = _ref.className;
27455
+ type = _ref.type,
27456
+ _ref$width = _ref.width,
27457
+ width = _ref$width === void 0 ? '50%' : _ref$width,
27458
+ height = _ref.height,
27459
+ className = _ref.className;
27494
27460
  return React__default.createElement(Container$4, {
27495
27461
  width: width,
27496
27462
  height: height || 'auto',
@@ -27522,60 +27488,51 @@ var Column = /*#__PURE__*/styled.div.withConfig({
27522
27488
 
27523
27489
  var Chat = function Chat(_ref) {
27524
27490
  var chatMessages = _ref.chatMessages,
27525
- onSendChatMessage = _ref.onSendChatMessage,
27526
- _ref$opacity = _ref.opacity,
27527
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
27528
- _ref$width = _ref.width,
27529
- width = _ref$width === void 0 ? '100%' : _ref$width,
27530
- _ref$height = _ref.height,
27531
- height = _ref$height === void 0 ? '250px' : _ref$height,
27532
- onCloseButton = _ref.onCloseButton;
27533
-
27491
+ onSendChatMessage = _ref.onSendChatMessage,
27492
+ _ref$opacity = _ref.opacity,
27493
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
27494
+ _ref$width = _ref.width,
27495
+ width = _ref$width === void 0 ? '100%' : _ref$width,
27496
+ _ref$height = _ref.height,
27497
+ height = _ref$height === void 0 ? '250px' : _ref$height,
27498
+ onCloseButton = _ref.onCloseButton;
27534
27499
  var _useState = React.useState(''),
27535
- message = _useState[0],
27536
- setMessage = _useState[1];
27537
-
27500
+ message = _useState[0],
27501
+ setMessage = _useState[1];
27538
27502
  React.useEffect(function () {
27539
27503
  scrollChatToBottom();
27540
27504
  }, []);
27541
27505
  React.useEffect(function () {
27542
27506
  scrollChatToBottom();
27543
27507
  }, [chatMessages]);
27544
-
27545
27508
  var scrollChatToBottom = function scrollChatToBottom() {
27546
27509
  var scrollingElement = document.querySelector('.chat-body');
27547
-
27548
27510
  if (scrollingElement) {
27549
27511
  scrollingElement.scrollTop = scrollingElement.scrollHeight;
27550
27512
  }
27551
27513
  };
27552
-
27553
27514
  var handleSubmit = function handleSubmit(event) {
27554
27515
  event.preventDefault();
27555
27516
  onSendChatMessage(message);
27556
27517
  setMessage('');
27557
27518
  };
27558
-
27559
27519
  var getInputValue = function getInputValue(value) {
27560
27520
  setMessage(value);
27561
27521
  };
27562
-
27563
27522
  var onRenderMessageLines = function onRenderMessageLines(emitter, createdAt, message) {
27564
27523
  return dayjs(createdAt || new Date()).format('HH:mm') + " " + (emitter != null && emitter.name ? emitter.name + ": " : 'Unknown: ') + " " + message;
27565
27524
  };
27566
-
27567
27525
  var onRenderChatMessages = function onRenderChatMessages(chatMessages) {
27568
27526
  return chatMessages != null && chatMessages.length ? chatMessages == null ? void 0 : chatMessages.map(function (_ref2, index) {
27569
27527
  var _id = _ref2._id,
27570
- createdAt = _ref2.createdAt,
27571
- emitter = _ref2.emitter,
27572
- message = _ref2.message;
27528
+ createdAt = _ref2.createdAt,
27529
+ emitter = _ref2.emitter,
27530
+ message = _ref2.message;
27573
27531
  return React__default.createElement(MessageText, {
27574
27532
  key: _id + "_" + index
27575
27533
  }, onRenderMessageLines(emitter, createdAt, message));
27576
27534
  }) : React__default.createElement(MessageText, null, "No messages available.");
27577
27535
  };
27578
-
27579
27536
  return React__default.createElement(Container$5, null, React__default.createElement(CustomContainer, {
27580
27537
  type: exports.RPGUIContainerTypes.FramedGrey,
27581
27538
  width: width,
@@ -27642,8 +27599,7 @@ var MessageText = /*#__PURE__*/styled.p.withConfig({
27642
27599
 
27643
27600
  var CheckButton = function CheckButton(_ref) {
27644
27601
  var items = _ref.items,
27645
- onChange = _ref.onChange;
27646
-
27602
+ onChange = _ref.onChange;
27647
27603
  var generateSelectedValuesList = function generateSelectedValuesList() {
27648
27604
  var selectedValues = {};
27649
27605
  items.forEach(function (item) {
@@ -27651,17 +27607,13 @@ var CheckButton = function CheckButton(_ref) {
27651
27607
  });
27652
27608
  return selectedValues;
27653
27609
  };
27654
-
27655
27610
  var _useState = React.useState(generateSelectedValuesList()),
27656
- selectedValues = _useState[0],
27657
- setSelectedValues = _useState[1];
27658
-
27611
+ selectedValues = _useState[0],
27612
+ setSelectedValues = _useState[1];
27659
27613
  var handleClick = function handleClick(label) {
27660
27614
  var _extends2;
27661
-
27662
27615
  setSelectedValues(_extends({}, selectedValues, (_extends2 = {}, _extends2[label] = !selectedValues[label], _extends2)));
27663
27616
  };
27664
-
27665
27617
  React.useEffect(function () {
27666
27618
  if (selectedValues) {
27667
27619
  onChange(selectedValues);
@@ -27697,12 +27649,10 @@ function useOutsideClick(ref, id) {
27697
27649
  id: id
27698
27650
  }
27699
27651
  });
27700
-
27701
27652
  document.dispatchEvent(_event);
27702
27653
  }
27703
- } // Bind the event listener
27704
-
27705
-
27654
+ }
27655
+ // Bind the event listener
27706
27656
  document.addEventListener('mousedown', handleClickOutside);
27707
27657
  return function () {
27708
27658
  // Unbind the event listener on clean up
@@ -27713,26 +27663,25 @@ function useOutsideClick(ref, id) {
27713
27663
 
27714
27664
  var DraggableContainer = function DraggableContainer(_ref) {
27715
27665
  var children = _ref.children,
27716
- _ref$width = _ref.width,
27717
- width = _ref$width === void 0 ? '50%' : _ref$width,
27718
- height = _ref.height,
27719
- className = _ref.className,
27720
- _ref$type = _ref.type,
27721
- type = _ref$type === void 0 ? exports.RPGUIContainerTypes.FramedGold : _ref$type,
27722
- onCloseButton = _ref.onCloseButton,
27723
- title = _ref.title,
27724
- imgSrc = _ref.imgSrc,
27725
- _ref$imgWidth = _ref.imgWidth,
27726
- imgWidth = _ref$imgWidth === void 0 ? '20px' : _ref$imgWidth,
27727
- cancelDrag = _ref.cancelDrag,
27728
- onPositionChange = _ref.onPositionChange,
27729
- onOutsideClick = _ref.onOutsideClick;
27666
+ _ref$width = _ref.width,
27667
+ width = _ref$width === void 0 ? '50%' : _ref$width,
27668
+ height = _ref.height,
27669
+ className = _ref.className,
27670
+ _ref$type = _ref.type,
27671
+ type = _ref$type === void 0 ? exports.RPGUIContainerTypes.FramedGold : _ref$type,
27672
+ onCloseButton = _ref.onCloseButton,
27673
+ title = _ref.title,
27674
+ imgSrc = _ref.imgSrc,
27675
+ _ref$imgWidth = _ref.imgWidth,
27676
+ imgWidth = _ref$imgWidth === void 0 ? '20px' : _ref$imgWidth,
27677
+ cancelDrag = _ref.cancelDrag,
27678
+ onPositionChange = _ref.onPositionChange,
27679
+ onOutsideClick = _ref.onOutsideClick;
27730
27680
  var draggableRef = React.useRef(null);
27731
27681
  useOutsideClick(draggableRef, 'item-container');
27732
27682
  React.useEffect(function () {
27733
27683
  document.addEventListener('clickOutside', function (event) {
27734
27684
  var e = event;
27735
-
27736
27685
  if (e.detail.id === 'item-container') {
27737
27686
  if (onOutsideClick) {
27738
27687
  onOutsideClick();
@@ -27797,6 +27746,7 @@ var Icon = /*#__PURE__*/styled.img.withConfig({
27797
27746
  return props.width;
27798
27747
  });
27799
27748
 
27749
+ //@ts-ignore
27800
27750
  var _RPGUI = RPGUI;
27801
27751
  var RPGUIRoot = function RPGUIRoot(_ref) {
27802
27752
  var children = _ref.children;
@@ -27807,19 +27757,15 @@ var RPGUIRoot = function RPGUIRoot(_ref) {
27807
27757
 
27808
27758
  var Dropdown = function Dropdown(_ref) {
27809
27759
  var options = _ref.options,
27810
- width = _ref.width,
27811
- onChange = _ref.onChange;
27760
+ width = _ref.width,
27761
+ onChange = _ref.onChange;
27812
27762
  var dropdownId = uuid.v4();
27813
-
27814
27763
  var _useState = React.useState(''),
27815
- selectedValue = _useState[0],
27816
- setSelectedValue = _useState[1];
27817
-
27764
+ selectedValue = _useState[0],
27765
+ setSelectedValue = _useState[1];
27818
27766
  React.useEffect(function () {
27819
27767
  var element = document.getElementById("rpgui-dropdown-" + dropdownId);
27820
-
27821
27768
  var dropdownValue = _RPGUI.get_value(element);
27822
-
27823
27769
  setSelectedValue(dropdownValue);
27824
27770
  element == null ? void 0 : element.addEventListener('change', function (event) {
27825
27771
  setSelectedValue(event == null ? void 0 : event.target.value);
@@ -27844,41 +27790,17 @@ var Dropdown = function Dropdown(_ref) {
27844
27790
  }));
27845
27791
  };
27846
27792
 
27847
- var getItemTextureKeyPath = function getItemTextureKeyPath(itemToRender, atlasJSON) {
27848
- var _itemToRender$stackQt;
27849
-
27850
- var stackQty = (_itemToRender$stackQt = itemToRender == null ? void 0 : itemToRender.stackQty) != null ? _itemToRender$stackQt : 0;
27851
- var itemTexturePath = itemToRender.texturePath;
27852
-
27853
- if (itemToRender && stackQty >= 1) {
27854
- var idx = stackQty >= 5 ? '5' : stackQty;
27855
- var textureBreakPath = itemTexturePath.split('.');
27856
- var txtPrefix = textureBreakPath[0];
27857
- var txtExtension = textureBreakPath[1];
27858
- console.log(txtPrefix + "-qty-" + idx + "." + txtExtension);
27859
- var newTexturePath = txtPrefix + "-qty-" + idx + "." + txtExtension;
27860
- var spriteData = atlasJSON.frames[newTexturePath];
27861
-
27862
- if (spriteData !== undefined) {
27863
- return newTexturePath;
27864
- }
27865
- }
27866
-
27867
- return itemTexturePath;
27868
- };
27869
-
27870
27793
  var RelativeListMenu = function RelativeListMenu(_ref) {
27871
27794
  var options = _ref.options,
27872
- onSelected = _ref.onSelected,
27873
- onOutsideClick = _ref.onOutsideClick,
27874
- _ref$fontSize = _ref.fontSize,
27875
- fontSize = _ref$fontSize === void 0 ? 0.8 : _ref$fontSize;
27795
+ onSelected = _ref.onSelected,
27796
+ onOutsideClick = _ref.onOutsideClick,
27797
+ _ref$fontSize = _ref.fontSize,
27798
+ fontSize = _ref$fontSize === void 0 ? 0.8 : _ref$fontSize;
27876
27799
  var ref = React.useRef(null);
27877
27800
  useOutsideClick(ref, 'relative-context-menu');
27878
27801
  React.useEffect(function () {
27879
27802
  document.addEventListener('clickOutside', function (event) {
27880
27803
  var e = event;
27881
-
27882
27804
  if (e.detail.id === 'relative-context-menu') {
27883
27805
  if (onOutsideClick) {
27884
27806
  onOutsideClick();
@@ -27935,10 +27857,8 @@ var generateContextMenuListOptions = function generateContextMenuListOptions(act
27935
27857
  });
27936
27858
  return contextMenu;
27937
27859
  };
27938
-
27939
27860
  var generateContextMenu = function generateContextMenu(itemType, itemContainerType) {
27940
27861
  var contextActionMenu = [];
27941
-
27942
27862
  if (itemContainerType === shared.ItemContainerType.Inventory) {
27943
27863
  switch (itemType) {
27944
27864
  case shared.ItemType.Weapon:
@@ -27947,40 +27867,32 @@ var generateContextMenu = function generateContextMenu(itemType, itemContainerTy
27947
27867
  case shared.ItemType.Jewelry:
27948
27868
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForInventory.Equipment);
27949
27869
  break;
27950
-
27951
27870
  case shared.ItemType.Container:
27952
27871
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForInventory.Container);
27953
27872
  break;
27954
-
27955
27873
  case shared.ItemType.Consumable:
27956
27874
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForInventory.Consumable);
27957
27875
  break;
27958
-
27959
27876
  case shared.ItemType.CraftMaterial:
27960
27877
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForInventory.CraftMaterial);
27961
27878
  break;
27962
-
27963
27879
  case shared.ItemType.Tool:
27964
27880
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForInventory.Tool);
27965
27881
  break;
27966
-
27967
27882
  default:
27968
27883
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForInventory.Other);
27969
27884
  break;
27970
27885
  }
27971
27886
  }
27972
-
27973
27887
  if (itemContainerType === shared.ItemContainerType.Equipment) {
27974
27888
  switch (itemType) {
27975
27889
  case shared.ItemType.Container:
27976
27890
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForEquipmentSet.Container);
27977
27891
  break;
27978
-
27979
27892
  default:
27980
27893
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForEquipmentSet.Equipment);
27981
27894
  }
27982
27895
  }
27983
-
27984
27896
  if (itemContainerType === shared.ItemContainerType.Loot) {
27985
27897
  switch (itemType) {
27986
27898
  case shared.ItemType.Weapon:
@@ -27989,25 +27901,20 @@ var generateContextMenu = function generateContextMenu(itemType, itemContainerTy
27989
27901
  case shared.ItemType.Jewelry:
27990
27902
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForLoot.Equipment);
27991
27903
  break;
27992
-
27993
27904
  case shared.ItemType.Consumable:
27994
27905
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForLoot.Consumable);
27995
27906
  break;
27996
-
27997
27907
  case shared.ItemType.CraftMaterial:
27998
27908
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForLoot.CraftMaterial);
27999
27909
  break;
28000
-
28001
27910
  case shared.ItemType.Tool:
28002
27911
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForLoot.Tool);
28003
27912
  break;
28004
-
28005
27913
  default:
28006
27914
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForLoot.Other);
28007
27915
  break;
28008
27916
  }
28009
27917
  }
28010
-
28011
27918
  if (itemContainerType === shared.ItemContainerType.MapContainer) {
28012
27919
  switch (itemType) {
28013
27920
  case shared.ItemType.Weapon:
@@ -28016,25 +27923,20 @@ var generateContextMenu = function generateContextMenu(itemType, itemContainerTy
28016
27923
  case shared.ItemType.Jewelry:
28017
27924
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForMapContainer.Equipment);
28018
27925
  break;
28019
-
28020
27926
  case shared.ItemType.Consumable:
28021
27927
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForMapContainer.Consumable);
28022
27928
  break;
28023
-
28024
27929
  case shared.ItemType.CraftMaterial:
28025
27930
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForMapContainer.CraftMaterial);
28026
27931
  break;
28027
-
28028
27932
  case shared.ItemType.Tool:
28029
27933
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForMapContainer.Tool);
28030
27934
  break;
28031
-
28032
27935
  default:
28033
27936
  contextActionMenu = generateContextMenuListOptions(shared.ActionsForMapContainer.Other);
28034
27937
  break;
28035
27938
  }
28036
27939
  }
28037
-
28038
27940
  return contextActionMenu;
28039
27941
  };
28040
27942
 
@@ -28052,39 +27954,33 @@ var EquipmentSlotSpriteByType = {
28052
27954
  };
28053
27955
  var ItemSlot = /*#__PURE__*/mobxReactLite.observer(function (_ref) {
28054
27956
  var slotIndex = _ref.slotIndex,
28055
- item = _ref.item,
28056
- containerType = _ref.itemContainerType,
28057
- slotSpriteMask = _ref.slotSpriteMask,
28058
- _onMouseOver = _ref.onMouseOver,
28059
- _onMouseOut = _ref.onMouseOut,
28060
- _onClick = _ref.onClick,
28061
- _onSelected = _ref.onSelected,
28062
- atlasJSON = _ref.atlasJSON,
28063
- atlasIMG = _ref.atlasIMG;
28064
-
27957
+ item = _ref.item,
27958
+ containerType = _ref.itemContainerType,
27959
+ slotSpriteMask = _ref.slotSpriteMask,
27960
+ _onMouseOver = _ref.onMouseOver,
27961
+ _onMouseOut = _ref.onMouseOut,
27962
+ _onClick = _ref.onClick,
27963
+ _onSelected = _ref.onSelected,
27964
+ atlasJSON = _ref.atlasJSON,
27965
+ atlasIMG = _ref.atlasIMG;
28065
27966
  var _useState = React.useState(false),
28066
- isTooltipVisible = _useState[0],
28067
- setTooltipVisible = _useState[1];
28068
-
27967
+ isTooltipVisible = _useState[0],
27968
+ setTooltipVisible = _useState[1];
28069
27969
  var _useState2 = React.useState(false),
28070
- isContextMenuVisible = _useState2[0],
28071
- setIsContextMenuVisible = _useState2[1];
28072
-
27970
+ isContextMenuVisible = _useState2[0],
27971
+ setIsContextMenuVisible = _useState2[1];
28073
27972
  var _useState3 = React.useState([]),
28074
- contextActions = _useState3[0],
28075
- setContextActions = _useState3[1];
28076
-
27973
+ contextActions = _useState3[0],
27974
+ setContextActions = _useState3[1];
28077
27975
  React.useEffect(function () {
28078
27976
  if (item) {
28079
27977
  setContextActions(generateContextMenu(item.type, containerType));
28080
27978
  }
28081
27979
  }, [item]);
28082
-
28083
27980
  var getLeftPositionValue = function getLeftPositionValue(quantity) {
28084
27981
  if (quantity > 0 && quantity < 10) return '2.5rem';else if (quantity > 9 && quantity < 100) return '2.0rem';else if (quantity > 99) return '1rem';
28085
27982
  return '2.5rem';
28086
27983
  };
28087
-
28088
27984
  var getStackInfo = function getStackInfo(itemId, stackQty) {
28089
27985
  // if (itemToRender?.isStackable && itemToRender?.stackQty) {
28090
27986
  if (stackQty > 1) {
@@ -28093,57 +27989,52 @@ var ItemSlot = /*#__PURE__*/mobxReactLite.observer(function (_ref) {
28093
27989
  key: "qty-" + itemId
28094
27990
  }, ' ', stackQty, ' ');
28095
27991
  }
28096
-
28097
27992
  return undefined;
28098
27993
  };
28099
-
28100
27994
  var renderItem = function renderItem(itemToRender) {
28101
27995
  var _itemToRender$_id, _itemToRender$stackQt;
28102
-
28103
27996
  var element = [];
28104
-
28105
27997
  if (itemToRender != null && itemToRender.texturePath) {
28106
- element.push(React__default.createElement(ErrorBoundary, null, React__default.createElement(SpriteFromAtlas, {
27998
+ element.push(React__default.createElement(ErrorBoundary, {
27999
+ key: itemToRender._id
28000
+ }, React__default.createElement(SpriteFromAtlas, {
28107
28001
  key: itemToRender._id,
28108
28002
  atlasIMG: atlasIMG,
28109
28003
  atlasJSON: atlasJSON,
28110
- spriteKey: getItemTextureKeyPath(itemToRender, atlasJSON),
28004
+ spriteKey: shared.getItemTextureKeyPath(itemToRender, atlasJSON),
28111
28005
  imgScale: 3
28112
28006
  })));
28113
28007
  }
28114
-
28115
28008
  var stackInfo = getStackInfo((_itemToRender$_id = itemToRender == null ? void 0 : itemToRender._id) != null ? _itemToRender$_id : '', (_itemToRender$stackQt = itemToRender == null ? void 0 : itemToRender.stackQty) != null ? _itemToRender$stackQt : 0);
28116
-
28117
28009
  if (stackInfo) {
28118
28010
  element.push(stackInfo);
28119
28011
  }
28120
-
28121
28012
  return element;
28122
28013
  };
28123
-
28124
28014
  var renderEquipment = function renderEquipment(itemToRender) {
28125
28015
  var _itemToRender$allowed;
28126
-
28127
28016
  if (itemToRender != null && itemToRender.texturePath && (_itemToRender$allowed = itemToRender.allowedEquipSlotType) != null && _itemToRender$allowed.includes(slotSpriteMask)) {
28128
28017
  var _itemToRender$_id2, _itemToRender$stackQt2;
28129
-
28130
28018
  var element = [];
28131
- element.push(React__default.createElement(ErrorBoundary, null, React__default.createElement(SpriteFromAtlas, {
28019
+ element.push(React__default.createElement(ErrorBoundary, {
28020
+ key: itemToRender._id
28021
+ }, React__default.createElement(SpriteFromAtlas, {
28132
28022
  key: itemToRender._id,
28133
28023
  atlasIMG: atlasIMG,
28134
28024
  atlasJSON: atlasJSON,
28135
- spriteKey: getItemTextureKeyPath(itemToRender, atlasJSON),
28025
+ spriteKey: shared.getItemTextureKeyPath(itemToRender, atlasJSON),
28136
28026
  imgScale: 3
28137
28027
  })));
28138
28028
  var stackInfo = getStackInfo((_itemToRender$_id2 = itemToRender == null ? void 0 : itemToRender._id) != null ? _itemToRender$_id2 : '', (_itemToRender$stackQt2 = itemToRender == null ? void 0 : itemToRender.stackQty) != null ? _itemToRender$stackQt2 : 0);
28139
-
28140
28029
  if (stackInfo) {
28141
28030
  element.push(stackInfo);
28142
28031
  }
28143
-
28144
28032
  return element;
28145
28033
  } else {
28146
- return React__default.createElement(ErrorBoundary, null, React__default.createElement(SpriteFromAtlas, {
28034
+ return React__default.createElement(ErrorBoundary, {
28035
+ key: uuid.v4()
28036
+ }, React__default.createElement(SpriteFromAtlas, {
28037
+ key: uuid.v4(),
28147
28038
  atlasIMG: atlasIMG,
28148
28039
  atlasJSON: atlasJSON,
28149
28040
  spriteKey: EquipmentSlotSpriteByType[slotSpriteMask],
@@ -28153,20 +28044,16 @@ var ItemSlot = /*#__PURE__*/mobxReactLite.observer(function (_ref) {
28153
28044
  }));
28154
28045
  }
28155
28046
  };
28156
-
28157
28047
  var onRenderSlot = function onRenderSlot(itemToRender) {
28158
28048
  switch (containerType) {
28159
28049
  case shared.ItemContainerType.Equipment:
28160
28050
  return renderEquipment(itemToRender);
28161
-
28162
28051
  case shared.ItemContainerType.Inventory:
28163
28052
  return renderItem(itemToRender);
28164
-
28165
28053
  default:
28166
28054
  return renderItem(itemToRender);
28167
28055
  }
28168
28056
  };
28169
-
28170
28057
  return React__default.createElement(Container$9, {
28171
28058
  className: "rpgui-icon empty-slot",
28172
28059
  onMouseOver: function onMouseOver(event) {
@@ -28183,10 +28070,8 @@ var ItemSlot = /*#__PURE__*/mobxReactLite.observer(function (_ref) {
28183
28070
  },
28184
28071
  onClick: function onClick() {
28185
28072
  setTooltipVisible(false);
28186
-
28187
28073
  if (item) {
28188
28074
  setIsContextMenuVisible(!isContextMenuVisible);
28189
-
28190
28075
  _onClick(item.type, containerType, item);
28191
28076
  }
28192
28077
  }
@@ -28194,7 +28079,6 @@ var ItemSlot = /*#__PURE__*/mobxReactLite.observer(function (_ref) {
28194
28079
  options: contextActions,
28195
28080
  onSelected: function onSelected(optionId) {
28196
28081
  setIsContextMenuVisible(false);
28197
-
28198
28082
  if (item) {
28199
28083
  _onSelected(optionId, item);
28200
28084
  }
@@ -28219,31 +28103,29 @@ var ItemQty = /*#__PURE__*/styled.span.withConfig({
28219
28103
 
28220
28104
  var EquipmentSet = function EquipmentSet(_ref) {
28221
28105
  var equipmentSet = _ref.equipmentSet,
28222
- onClose = _ref.onClose,
28223
- _onMouseOver = _ref.onMouseOver,
28224
- _onSelected = _ref.onSelected,
28225
- onItemClick = _ref.onItemClick,
28226
- atlasIMG = _ref.atlasIMG,
28227
- atlasJSON = _ref.atlasJSON;
28106
+ onClose = _ref.onClose,
28107
+ _onMouseOver = _ref.onMouseOver,
28108
+ _onSelected = _ref.onSelected,
28109
+ onItemClick = _ref.onItemClick,
28110
+ atlasIMG = _ref.atlasIMG,
28111
+ atlasJSON = _ref.atlasJSON;
28228
28112
  var neck = equipmentSet.neck,
28229
- leftHand = equipmentSet.leftHand,
28230
- ring = equipmentSet.ring,
28231
- head = equipmentSet.head,
28232
- armor = equipmentSet.armor,
28233
- legs = equipmentSet.legs,
28234
- boot = equipmentSet.boot,
28235
- inventory = equipmentSet.inventory,
28236
- rightHand = equipmentSet.rightHand,
28237
- accessory = equipmentSet.accessory;
28113
+ leftHand = equipmentSet.leftHand,
28114
+ ring = equipmentSet.ring,
28115
+ head = equipmentSet.head,
28116
+ armor = equipmentSet.armor,
28117
+ legs = equipmentSet.legs,
28118
+ boot = equipmentSet.boot,
28119
+ inventory = equipmentSet.inventory,
28120
+ rightHand = equipmentSet.rightHand,
28121
+ accessory = equipmentSet.accessory;
28238
28122
  var equipmentData = [neck, leftHand, ring, head, armor, legs, boot, inventory, rightHand, accessory];
28239
28123
  var equipmentMaskSlots = [shared.ItemSlotType.Neck, shared.ItemSlotType.LeftHand, shared.ItemSlotType.Ring, shared.ItemSlotType.Head, shared.ItemSlotType.Torso, shared.ItemSlotType.Legs, shared.ItemSlotType.Feet, shared.ItemSlotType.Inventory, shared.ItemSlotType.RightHand, shared.ItemSlotType.Accessory];
28240
-
28241
28124
  var onRenderEquipmentSlotRange = function onRenderEquipmentSlotRange(start, end) {
28242
28125
  var equipmentRange = equipmentData.slice(start, end);
28243
28126
  var slotMaksRange = equipmentMaskSlots.slice(start, end);
28244
28127
  return equipmentRange.map(function (data, i) {
28245
28128
  var _ref2;
28246
-
28247
28129
  var item = data;
28248
28130
  var itemContainer = (_ref2 = item && item.itemContainer) != null ? _ref2 : null;
28249
28131
  return React__default.createElement(ItemSlot, {
@@ -28267,7 +28149,6 @@ var EquipmentSet = function EquipmentSet(_ref) {
28267
28149
  });
28268
28150
  });
28269
28151
  };
28270
-
28271
28152
  return React__default.createElement(DraggableContainer, {
28272
28153
  title: 'Equipments',
28273
28154
  type: exports.RPGUIContainerTypes.Framed,
@@ -28291,10 +28172,10 @@ var EquipmentColumn = /*#__PURE__*/styled.div.withConfig({
28291
28172
 
28292
28173
  var SlotsContainer = function SlotsContainer(_ref) {
28293
28174
  var children = _ref.children,
28294
- title = _ref.title,
28295
- onClose = _ref.onClose,
28296
- _onPositionChange = _ref.onPositionChange,
28297
- onOutsideClick = _ref.onOutsideClick;
28175
+ title = _ref.title,
28176
+ onClose = _ref.onClose,
28177
+ _onPositionChange = _ref.onPositionChange,
28178
+ onOutsideClick = _ref.onOutsideClick;
28298
28179
  return React__default.createElement(DraggableContainer, {
28299
28180
  title: title,
28300
28181
  type: exports.RPGUIContainerTypes.Framed,
@@ -28307,8 +28188,7 @@ var SlotsContainer = function SlotsContainer(_ref) {
28307
28188
  cancelDrag: ".item-container-body",
28308
28189
  onPositionChange: function onPositionChange(_ref2) {
28309
28190
  var x = _ref2.x,
28310
- y = _ref2.y;
28311
-
28191
+ y = _ref2.y;
28312
28192
  if (_onPositionChange) {
28313
28193
  _onPositionChange({
28314
28194
  x: x,
@@ -28322,20 +28202,17 @@ var SlotsContainer = function SlotsContainer(_ref) {
28322
28202
 
28323
28203
  var ItemContainer = function ItemContainer(_ref) {
28324
28204
  var itemContainer = _ref.itemContainer,
28325
- onClose = _ref.onClose,
28326
- _onMouseOver = _ref.onMouseOver,
28327
- _onSelected = _ref.onSelected,
28328
- onItemClick = _ref.onItemClick,
28329
- type = _ref.type,
28330
- atlasJSON = _ref.atlasJSON,
28331
- atlasIMG = _ref.atlasIMG;
28332
-
28205
+ onClose = _ref.onClose,
28206
+ _onMouseOver = _ref.onMouseOver,
28207
+ _onSelected = _ref.onSelected,
28208
+ onItemClick = _ref.onItemClick,
28209
+ type = _ref.type,
28210
+ atlasJSON = _ref.atlasJSON,
28211
+ atlasIMG = _ref.atlasIMG;
28333
28212
  var onRenderSlots = function onRenderSlots() {
28334
28213
  var slots = [];
28335
-
28336
28214
  for (var i = 0; i < itemContainer.slotQty; i++) {
28337
28215
  var _itemContainer$slots;
28338
-
28339
28216
  slots.push(React__default.createElement(ItemSlot, {
28340
28217
  key: i,
28341
28218
  slotIndex: i,
@@ -28354,10 +28231,8 @@ var ItemContainer = function ItemContainer(_ref) {
28354
28231
  atlasJSON: atlasJSON
28355
28232
  }));
28356
28233
  }
28357
-
28358
28234
  return slots;
28359
28235
  };
28360
-
28361
28236
  return React__default.createElement(SlotsContainer, {
28362
28237
  title: itemContainer.name || 'Container',
28363
28238
  onClose: onClose
@@ -28372,11 +28247,11 @@ var ItemsContainer = /*#__PURE__*/styled.div.withConfig({
28372
28247
 
28373
28248
  var ListMenu = function ListMenu(_ref) {
28374
28249
  var options = _ref.options,
28375
- onSelected = _ref.onSelected,
28376
- x = _ref.x,
28377
- y = _ref.y,
28378
- _ref$fontSize = _ref.fontSize,
28379
- fontSize = _ref$fontSize === void 0 ? 0.8 : _ref$fontSize;
28250
+ onSelected = _ref.onSelected,
28251
+ x = _ref.x,
28252
+ y = _ref.y,
28253
+ _ref$fontSize = _ref.fontSize,
28254
+ fontSize = _ref$fontSize === void 0 ? 0.8 : _ref$fontSize;
28380
28255
  return React__default.createElement(Container$a, {
28381
28256
  x: x,
28382
28257
  y: y,
@@ -28420,13 +28295,11 @@ var chunkString = function chunkString(str, length) {
28420
28295
 
28421
28296
  var DynamicText = function DynamicText(_ref) {
28422
28297
  var text = _ref.text,
28423
- onFinish = _ref.onFinish,
28424
- onStart = _ref.onStart;
28425
-
28298
+ onFinish = _ref.onFinish,
28299
+ onStart = _ref.onStart;
28426
28300
  var _useState = React.useState(''),
28427
- textState = _useState[0],
28428
- setTextState = _useState[1];
28429
-
28301
+ textState = _useState[0],
28302
+ setTextState = _useState[1];
28430
28303
  React.useEffect(function () {
28431
28304
  var i = 0;
28432
28305
  var interval = setInterval(function () {
@@ -28436,13 +28309,11 @@ var DynamicText = function DynamicText(_ref) {
28436
28309
  onStart();
28437
28310
  }
28438
28311
  }
28439
-
28440
28312
  if (i < text.length) {
28441
28313
  setTextState(text.substring(0, i + 1));
28442
28314
  i++;
28443
28315
  } else {
28444
28316
  clearInterval(interval);
28445
-
28446
28317
  if (onFinish) {
28447
28318
  onFinish();
28448
28319
  }
@@ -28461,19 +28332,16 @@ var TextContainer = /*#__PURE__*/styled.p.withConfig({
28461
28332
 
28462
28333
  var NPCDialogText = function NPCDialogText(_ref) {
28463
28334
  var text = _ref.text,
28464
- onClose = _ref.onClose,
28465
- onEndStep = _ref.onEndStep,
28466
- onStartStep = _ref.onStartStep;
28335
+ onClose = _ref.onClose,
28336
+ onEndStep = _ref.onEndStep,
28337
+ onStartStep = _ref.onStartStep;
28467
28338
  var textChunks = chunkString(text, 85);
28468
-
28469
28339
  var _useState = React.useState(0),
28470
- chunkIndex = _useState[0],
28471
- setChunkIndex = _useState[1];
28472
-
28340
+ chunkIndex = _useState[0],
28341
+ setChunkIndex = _useState[1];
28473
28342
  var onHandleSpacePress = function onHandleSpacePress(event) {
28474
28343
  if (event.code === 'Space') {
28475
28344
  var hasNextChunk = (textChunks == null ? void 0 : textChunks[chunkIndex + 1]) || false;
28476
-
28477
28345
  if (hasNextChunk) {
28478
28346
  setChunkIndex(function (prev) {
28479
28347
  return prev + 1;
@@ -28484,7 +28352,6 @@ var NPCDialogText = function NPCDialogText(_ref) {
28484
28352
  }
28485
28353
  }
28486
28354
  };
28487
-
28488
28355
  React.useEffect(function () {
28489
28356
  document.addEventListener('keydown', onHandleSpacePress);
28490
28357
  return function () {
@@ -28502,11 +28369,11 @@ var Container$b = /*#__PURE__*/styled.div.withConfig({
28502
28369
  componentId: "sc-1cxkdh9-0"
28503
28370
  })([""]);
28504
28371
 
28372
+ //@ts-ignore
28505
28373
  var useEventListener = function useEventListener(type, handler, el) {
28506
28374
  if (el === void 0) {
28507
28375
  el = window;
28508
28376
  }
28509
-
28510
28377
  var savedHandler = React__default.useRef();
28511
28378
  React__default.useEffect(function () {
28512
28379
  savedHandler.current = handler;
@@ -28516,7 +28383,6 @@ var useEventListener = function useEventListener(type, handler, el) {
28516
28383
  var listener = function listener(e) {
28517
28384
  return savedHandler.current(e);
28518
28385
  };
28519
-
28520
28386
  el.addEventListener(type, listener);
28521
28387
  return function () {
28522
28388
  el.removeEventListener(type, listener);
@@ -28526,36 +28392,29 @@ var useEventListener = function useEventListener(type, handler, el) {
28526
28392
 
28527
28393
  var QuestionDialog = function QuestionDialog(_ref) {
28528
28394
  var questions = _ref.questions,
28529
- answers = _ref.answers,
28530
- onClose = _ref.onClose;
28531
-
28395
+ answers = _ref.answers,
28396
+ onClose = _ref.onClose;
28532
28397
  var _useState = React.useState(questions[0]),
28533
- currentQuestion = _useState[0],
28534
- setCurrentQuestion = _useState[1];
28535
-
28398
+ currentQuestion = _useState[0],
28399
+ setCurrentQuestion = _useState[1];
28536
28400
  var _useState2 = React.useState(false),
28537
- canShowAnswers = _useState2[0],
28538
- setCanShowAnswers = _useState2[1];
28539
-
28401
+ canShowAnswers = _useState2[0],
28402
+ setCanShowAnswers = _useState2[1];
28540
28403
  var onGetFirstAnswer = function onGetFirstAnswer() {
28541
28404
  if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {
28542
28405
  return null;
28543
28406
  }
28544
-
28545
28407
  var firstAnswerId = currentQuestion.answerIds[0];
28546
28408
  return answers.find(function (answer) {
28547
28409
  return answer.id === firstAnswerId;
28548
28410
  });
28549
28411
  };
28550
-
28551
28412
  var _useState3 = React.useState(onGetFirstAnswer()),
28552
- currentAnswer = _useState3[0],
28553
- setCurrentAnswer = _useState3[1];
28554
-
28413
+ currentAnswer = _useState3[0],
28414
+ setCurrentAnswer = _useState3[1];
28555
28415
  React.useEffect(function () {
28556
28416
  setCurrentAnswer(onGetFirstAnswer());
28557
28417
  }, [currentQuestion]);
28558
-
28559
28418
  var onGetAnswers = function onGetAnswers(answerIds) {
28560
28419
  return answerIds.map(function (answerId) {
28561
28420
  return answers.find(function (answer) {
@@ -28563,7 +28422,6 @@ var QuestionDialog = function QuestionDialog(_ref) {
28563
28422
  });
28564
28423
  });
28565
28424
  };
28566
-
28567
28425
  var onKeyPress = function onKeyPress(e) {
28568
28426
  switch (e.key) {
28569
28427
  case 'ArrowDown':
@@ -28581,7 +28439,6 @@ var QuestionDialog = function QuestionDialog(_ref) {
28581
28439
  });
28582
28440
  setCurrentAnswer(nextAnswer || onGetFirstAnswer());
28583
28441
  break;
28584
-
28585
28442
  case 'ArrowUp':
28586
28443
  // select previous answer, if any.
28587
28444
  // if no previous answer, select last answer
@@ -28592,18 +28449,14 @@ var QuestionDialog = function QuestionDialog(_ref) {
28592
28449
  var previousAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
28593
28450
  return (answer == null ? void 0 : answer.id) === previousAnswerID;
28594
28451
  });
28595
-
28596
28452
  if (previousAnswer) {
28597
28453
  setCurrentAnswer(previousAnswer);
28598
28454
  } else {
28599
28455
  setCurrentAnswer(onGetAnswers(currentQuestion.answerIds).pop());
28600
28456
  }
28601
-
28602
28457
  break;
28603
-
28604
28458
  case 'Enter':
28605
28459
  setCanShowAnswers(false);
28606
-
28607
28460
  if (!(currentAnswer != null && currentAnswer.nextQuestionId)) {
28608
28461
  onClose();
28609
28462
  return;
@@ -28612,16 +28465,12 @@ var QuestionDialog = function QuestionDialog(_ref) {
28612
28465
  return question.id === currentAnswer.nextQuestionId;
28613
28466
  }));
28614
28467
  }
28615
-
28616
28468
  break;
28617
28469
  }
28618
28470
  };
28619
-
28620
28471
  useEventListener('keydown', onKeyPress);
28621
-
28622
28472
  var onAnswerClick = function onAnswerClick(answer) {
28623
28473
  setCanShowAnswers(false);
28624
-
28625
28474
  if (answer.nextQuestionId) {
28626
28475
  // if there is a next question, go to it
28627
28476
  setCurrentQuestion(questions.find(function (question) {
@@ -28632,24 +28481,18 @@ var QuestionDialog = function QuestionDialog(_ref) {
28632
28481
  onClose();
28633
28482
  }
28634
28483
  };
28635
-
28636
28484
  var onRenderCurrentAnswers = function onRenderCurrentAnswers() {
28637
28485
  var answerIds = currentQuestion.answerIds;
28638
-
28639
28486
  if (!answerIds) {
28640
28487
  return null;
28641
28488
  }
28642
-
28643
28489
  var answers = onGetAnswers(answerIds);
28644
-
28645
28490
  if (!answers) {
28646
28491
  return null;
28647
28492
  }
28648
-
28649
28493
  return answers.map(function (answer) {
28650
28494
  var isSelected = (currentAnswer == null ? void 0 : currentAnswer.id) === (answer == null ? void 0 : answer.id);
28651
28495
  var selectedColor = isSelected ? 'yellow' : 'white';
28652
-
28653
28496
  if (answer) {
28654
28497
  return React__default.createElement(AnswerRow, {
28655
28498
  key: "answer_" + answer.id
@@ -28663,11 +28506,9 @@ var QuestionDialog = function QuestionDialog(_ref) {
28663
28506
  color: selectedColor
28664
28507
  }, answer.text));
28665
28508
  }
28666
-
28667
28509
  return null;
28668
28510
  });
28669
28511
  };
28670
-
28671
28512
  return React__default.createElement(Container$c, null, React__default.createElement(QuestionContainer, null, React__default.createElement(DynamicText, {
28672
28513
  text: currentQuestion.text,
28673
28514
  onStart: function onStart() {
@@ -28711,21 +28552,18 @@ var AnswerRow = /*#__PURE__*/styled.div.withConfig({
28711
28552
  NPCDialogType["TextOnly"] = "TextOnly";
28712
28553
  NPCDialogType["TextAndThumbnail"] = "TextAndThumbnail";
28713
28554
  })(exports.NPCDialogType || (exports.NPCDialogType = {}));
28714
-
28715
28555
  var NPCDialog = function NPCDialog(_ref) {
28716
28556
  var text = _ref.text,
28717
- type = _ref.type,
28718
- _onClose = _ref.onClose,
28719
- imagePath = _ref.imagePath,
28720
- _ref$isQuestionDialog = _ref.isQuestionDialog,
28721
- isQuestionDialog = _ref$isQuestionDialog === void 0 ? false : _ref$isQuestionDialog,
28722
- questions = _ref.questions,
28723
- answers = _ref.answers;
28724
-
28557
+ type = _ref.type,
28558
+ _onClose = _ref.onClose,
28559
+ imagePath = _ref.imagePath,
28560
+ _ref$isQuestionDialog = _ref.isQuestionDialog,
28561
+ isQuestionDialog = _ref$isQuestionDialog === void 0 ? false : _ref$isQuestionDialog,
28562
+ questions = _ref.questions,
28563
+ answers = _ref.answers;
28725
28564
  var _useState = React.useState(false),
28726
- showGoNextIndicator = _useState[0],
28727
- setShowGoNextIndicator = _useState[1];
28728
-
28565
+ showGoNextIndicator = _useState[0],
28566
+ setShowGoNextIndicator = _useState[1];
28729
28567
  return React__default.createElement(RPGUIContainer, {
28730
28568
  type: exports.RPGUIContainerTypes.FramedGold,
28731
28569
  width: isQuestionDialog ? '600px' : '50%',
@@ -28793,24 +28631,21 @@ var PressSpaceIndicator = /*#__PURE__*/styled.img.withConfig({
28793
28631
 
28794
28632
  var ProgressBar = function ProgressBar(_ref) {
28795
28633
  var max = _ref.max,
28796
- value = _ref.value,
28797
- color = _ref.color,
28798
- _ref$displayText = _ref.displayText,
28799
- displayText = _ref$displayText === void 0 ? true : _ref$displayText,
28800
- _ref$percentageWidth = _ref.percentageWidth,
28801
- percentageWidth = _ref$percentageWidth === void 0 ? 40 : _ref$percentageWidth,
28802
- _ref$minWidth = _ref.minWidth,
28803
- minWidth = _ref$minWidth === void 0 ? 100 : _ref$minWidth,
28804
- style = _ref.style;
28805
-
28634
+ value = _ref.value,
28635
+ color = _ref.color,
28636
+ _ref$displayText = _ref.displayText,
28637
+ displayText = _ref$displayText === void 0 ? true : _ref$displayText,
28638
+ _ref$percentageWidth = _ref.percentageWidth,
28639
+ percentageWidth = _ref$percentageWidth === void 0 ? 40 : _ref$percentageWidth,
28640
+ _ref$minWidth = _ref.minWidth,
28641
+ minWidth = _ref$minWidth === void 0 ? 100 : _ref$minWidth,
28642
+ style = _ref.style;
28806
28643
  var calculatePercentageValue = function calculatePercentageValue(max, value) {
28807
28644
  if (value > max) {
28808
28645
  value = max;
28809
28646
  }
28810
-
28811
28647
  return value * 100 / max;
28812
28648
  };
28813
-
28814
28649
  return React__default.createElement(Container$e, {
28815
28650
  className: "rpgui-progress",
28816
28651
  "data-value": calculatePercentageValue(max, value) / 100,
@@ -28855,33 +28690,28 @@ var img$8 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCA
28855
28690
 
28856
28691
  var QuestInfo = function QuestInfo(_ref) {
28857
28692
  var quests = _ref.quests,
28858
- onClose = _ref.onClose,
28859
- buttons = _ref.buttons,
28860
- onChangeQuest = _ref.onChangeQuest;
28861
-
28693
+ onClose = _ref.onClose,
28694
+ buttons = _ref.buttons,
28695
+ onChangeQuest = _ref.onChangeQuest;
28862
28696
  var _useState = React.useState(0),
28863
- currentIndex = _useState[0],
28864
- setCurrentIndex = _useState[1];
28865
-
28697
+ currentIndex = _useState[0],
28698
+ setCurrentIndex = _useState[1];
28866
28699
  var questsLength = quests.length - 1;
28867
28700
  React.useEffect(function () {
28868
28701
  if (onChangeQuest) {
28869
28702
  onChangeQuest(currentIndex, quests[currentIndex]._id);
28870
28703
  }
28871
28704
  }, [currentIndex]);
28872
-
28873
28705
  var onLeftClick = function onLeftClick() {
28874
28706
  if (currentIndex === 0) setCurrentIndex(questsLength);else setCurrentIndex(function (index) {
28875
28707
  return index - 1;
28876
28708
  });
28877
28709
  };
28878
-
28879
28710
  var onRightClick = function onRightClick() {
28880
28711
  if (currentIndex === questsLength) setCurrentIndex(0);else setCurrentIndex(function (index) {
28881
28712
  return index + 1;
28882
28713
  });
28883
28714
  };
28884
-
28885
28715
  return React__default.createElement(QuestDraggableContainer, {
28886
28716
  type: exports.RPGUIContainerTypes.Framed,
28887
28717
  onCloseButton: function onCloseButton() {
@@ -28984,7 +28814,7 @@ var RightArrow$1 = /*#__PURE__*/styled.div.withConfig({
28984
28814
 
28985
28815
  var QuestList = function QuestList(_ref) {
28986
28816
  var quests = _ref.quests,
28987
- onClose = _ref.onClose;
28817
+ onClose = _ref.onClose;
28988
28818
  return React__default.createElement(QuestDraggableContainer$1, {
28989
28819
  type: exports.RPGUIContainerTypes.Framed,
28990
28820
  onCloseButton: function onCloseButton() {
@@ -29031,19 +28861,16 @@ var NoQuestContainer = /*#__PURE__*/styled.div.withConfig({
29031
28861
 
29032
28862
  var InputRadio = function InputRadio(_ref) {
29033
28863
  var name = _ref.name,
29034
- items = _ref.items,
29035
- onChange = _ref.onChange;
29036
-
28864
+ items = _ref.items,
28865
+ onChange = _ref.onChange;
29037
28866
  var _useState = React.useState(),
29038
- selectedValue = _useState[0],
29039
- setSelectedValue = _useState[1];
29040
-
28867
+ selectedValue = _useState[0],
28868
+ setSelectedValue = _useState[1];
29041
28869
  var handleClick = function handleClick() {
29042
28870
  var element = document.querySelector("input[name=" + name + "]:checked");
29043
28871
  var elementValue = element.value;
29044
28872
  setSelectedValue(elementValue);
29045
28873
  };
29046
-
29047
28874
  React.useEffect(function () {
29048
28875
  if (selectedValue) {
29049
28876
  onChange(selectedValue);
@@ -29068,23 +28895,18 @@ var InputRadio = function InputRadio(_ref) {
29068
28895
  RangeSliderType["Slider"] = "rpgui-slider";
29069
28896
  RangeSliderType["GoldSlider"] = "rpgui-slider golden";
29070
28897
  })(exports.RangeSliderType || (exports.RangeSliderType = {}));
29071
-
29072
28898
  var RangeSlider = function RangeSlider(_ref) {
29073
28899
  var type = _ref.type,
29074
- valueMin = _ref.valueMin,
29075
- valueMax = _ref.valueMax,
29076
- width = _ref.width,
29077
- onChange = _ref.onChange;
28900
+ valueMin = _ref.valueMin,
28901
+ valueMax = _ref.valueMax,
28902
+ width = _ref.width,
28903
+ onChange = _ref.onChange;
29078
28904
  var sliderId = uuid.v4();
29079
-
29080
28905
  var onHandleMouseUp = function onHandleMouseUp() {
29081
28906
  var rpguiSlider = document.getElementById("rpgui-slider-" + sliderId);
29082
-
29083
28907
  var value = _RPGUI.get_value(rpguiSlider);
29084
-
29085
28908
  onChange(Number(value));
29086
28909
  };
29087
-
29088
28910
  return React__default.createElement("div", {
29089
28911
  onMouseUp: onHandleMouseUp
29090
28912
  }, React__default.createElement(Input$1, {
@@ -29105,10 +28927,10 @@ var Input$1 = /*#__PURE__*/styled.input.withConfig({
29105
28927
 
29106
28928
  var SimpleProgressBar = function SimpleProgressBar(_ref) {
29107
28929
  var value = _ref.value,
29108
- _ref$bgColor = _ref.bgColor,
29109
- bgColor = _ref$bgColor === void 0 ? 'red' : _ref$bgColor,
29110
- _ref$margin = _ref.margin,
29111
- margin = _ref$margin === void 0 ? 20 : _ref$margin;
28930
+ _ref$bgColor = _ref.bgColor,
28931
+ bgColor = _ref$bgColor === void 0 ? 'red' : _ref$bgColor,
28932
+ _ref$margin = _ref.margin,
28933
+ margin = _ref$margin === void 0 ? 20 : _ref$margin;
29112
28934
  return React__default.createElement(Container$f, {
29113
28935
  className: "simple-progress-bar"
29114
28936
  }, React__default.createElement(ProgressBarContainer, {
@@ -29143,16 +28965,18 @@ var ProgressBarContainer = /*#__PURE__*/styled.div.withConfig({
29143
28965
 
29144
28966
  var SkillProgressBar = function SkillProgressBar(_ref) {
29145
28967
  var bgColor = _ref.bgColor,
29146
- skillName = _ref.skillName,
29147
- level = _ref.level,
29148
- skillPoints = _ref.skillPoints,
29149
- texturePath = _ref.texturePath,
29150
- _ref$showSkillPoints = _ref.showSkillPoints,
29151
- showSkillPoints = _ref$showSkillPoints === void 0 ? true : _ref$showSkillPoints;
28968
+ skillName = _ref.skillName,
28969
+ level = _ref.level,
28970
+ skillPoints = _ref.skillPoints,
28971
+ texturePath = _ref.texturePath,
28972
+ _ref$showSkillPoints = _ref.showSkillPoints,
28973
+ showSkillPoints = _ref$showSkillPoints === void 0 ? true : _ref$showSkillPoints,
28974
+ atlasIMG = _ref.atlasIMG,
28975
+ atlasJSON = _ref.atlasJSON;
29152
28976
  var spForNextLevel = shared.getSPForLevel(level + 1);
29153
28977
  var ratio = skillPoints / spForNextLevel * 100;
29154
- return React__default.createElement(React__default.Fragment, null, React__default.createElement(ProgressTitle, null, React__default.createElement(TitleName, null, skillName), React__default.createElement(ValueDisplay, null, "lv ", level)), React__default.createElement(ProgressBody, null, React__default.createElement(ProgressIconContainer, null, atlasJSON ? React__default.createElement(SpriteContainer, null, React__default.createElement(ErrorBoundary, null, React__default.createElement(SpriteFromAtlas, {
29155
- atlasIMG: img$1,
28978
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(ProgressTitle, null, React__default.createElement(TitleName, null, skillName), React__default.createElement(ValueDisplay, null, "lv ", level)), React__default.createElement(ProgressBody, null, React__default.createElement(ProgressIconContainer, null, atlasIMG && atlasJSON ? React__default.createElement(SpriteContainer, null, React__default.createElement(ErrorBoundary, null, React__default.createElement(SpriteFromAtlas, {
28979
+ atlasIMG: atlasIMG,
29156
28980
  atlasJSON: atlasJSON,
29157
28981
  spriteKey: texturePath,
29158
28982
  imgScale: 1,
@@ -29237,17 +29061,17 @@ var skillProps = {
29237
29061
  };
29238
29062
  var SkillsContainer = function SkillsContainer(_ref) {
29239
29063
  var onCloseButton = _ref.onCloseButton,
29240
- skill = _ref.skill;
29241
-
29064
+ skill = _ref.skill,
29065
+ atlasIMG = _ref.atlasIMG,
29066
+ atlasJSON = _ref.atlasJSON;
29242
29067
  var onRenderSkillCategory = function onRenderSkillCategory(category) {
29243
29068
  var skillCategory = skillProps[category];
29244
29069
  var skillCategoryColor = skillCategory.color;
29245
29070
  var output = [];
29246
-
29247
29071
  for (var _i = 0, _Object$entries = Object.entries(skillCategory.values); _i < _Object$entries.length; _i++) {
29248
29072
  var _Object$entries$_i = _Object$entries[_i],
29249
- key = _Object$entries$_i[0],
29250
- value = _Object$entries$_i[1];
29073
+ key = _Object$entries$_i[0],
29074
+ value = _Object$entries$_i[1];
29251
29075
  //@ts-ignore
29252
29076
  var skillDetails = skill[key];
29253
29077
  output.push(React__default.createElement(SkillProgressBar, {
@@ -29257,13 +29081,13 @@ var SkillsContainer = function SkillsContainer(_ref) {
29257
29081
  level: skillDetails.level || 0,
29258
29082
  skillPoints: Math.round(skillDetails.skillPoints) || 0,
29259
29083
  skillPointsToNextLevel: Math.round(skillDetails.skillPointsToNextLevel) || 0,
29260
- texturePath: value
29084
+ texturePath: value,
29085
+ atlasIMG: atlasIMG,
29086
+ atlasJSON: atlasJSON
29261
29087
  }));
29262
29088
  }
29263
-
29264
29089
  return output;
29265
29090
  };
29266
-
29267
29091
  return React__default.createElement(SkillsDraggableContainer, {
29268
29092
  title: "Skills"
29269
29093
  }, onCloseButton && React__default.createElement(CloseButton$2, {
@@ -29277,7 +29101,9 @@ var SkillsContainer = function SkillsContainer(_ref) {
29277
29101
  level: Math.round(skill.level) || 0,
29278
29102
  skillPoints: Math.round(skill.experience) || 0,
29279
29103
  skillPointsToNextLevel: Math.round(skill.xpToNextLevel) || 0,
29280
- texturePath: 'swords/broad-sword.png'
29104
+ texturePath: 'swords/broad-sword.png',
29105
+ atlasIMG: atlasIMG,
29106
+ atlasJSON: atlasJSON
29281
29107
  }), React__default.createElement("p", null, "Combat Skills"), React__default.createElement("hr", {
29282
29108
  className: "golden"
29283
29109
  })), onRenderSkillCategory('combat'), React__default.createElement(SkillSplitDiv, null, React__default.createElement("p", null, "Crafting Skills"), React__default.createElement("hr", {
@@ -29300,16 +29126,15 @@ var CloseButton$2 = /*#__PURE__*/styled.div.withConfig({
29300
29126
  })(["position:absolute;top:2px;right:2px;color:white;z-index:22;font-size:0.7rem;"]);
29301
29127
 
29302
29128
  var TextArea = function TextArea(_ref) {
29303
- var props = _extends({}, _ref);
29304
-
29129
+ var props = _extends({}, (_objectDestructuringEmpty(_ref), _ref));
29305
29130
  return React__default.createElement("textarea", Object.assign({}, props));
29306
29131
  };
29307
29132
 
29308
29133
  /* eslint-disable react/require-default-props */
29309
29134
  var Truncate = function Truncate(_ref) {
29310
29135
  var _ref$maxLines = _ref.maxLines,
29311
- maxLines = _ref$maxLines === void 0 ? 1 : _ref$maxLines,
29312
- children = _ref.children;
29136
+ maxLines = _ref$maxLines === void 0 ? 1 : _ref$maxLines,
29137
+ children = _ref.children;
29313
29138
  return React__default.createElement(Container$g, {
29314
29139
  maxLines: maxLines
29315
29140
  }, children);
@@ -29325,21 +29150,16 @@ var Container$g = /*#__PURE__*/styled.div.withConfig({
29325
29150
  ImgSide["right"] = "right";
29326
29151
  ImgSide["left"] = "left";
29327
29152
  })(exports.ImgSide || (exports.ImgSide = {}));
29328
-
29329
29153
  var NPCMultiDialog = function NPCMultiDialog(_ref) {
29330
29154
  var _textAndTypeArray$sli;
29331
-
29332
29155
  var _onClose = _ref.onClose,
29333
- textAndTypeArray = _ref.textAndTypeArray;
29334
-
29156
+ textAndTypeArray = _ref.textAndTypeArray;
29335
29157
  var _useState = React.useState(false),
29336
- showGoNextIndicator = _useState[0],
29337
- setShowGoNextIndicator = _useState[1];
29338
-
29158
+ showGoNextIndicator = _useState[0],
29159
+ setShowGoNextIndicator = _useState[1];
29339
29160
  var _useState2 = React.useState(0),
29340
- slide = _useState2[0],
29341
- setSlide = _useState2[1];
29342
-
29161
+ slide = _useState2[0],
29162
+ setSlide = _useState2[1];
29343
29163
  var onHandleSpacePress = function onHandleSpacePress(event) {
29344
29164
  if (event.code === 'Space') {
29345
29165
  if (slide < (textAndTypeArray == null ? void 0 : textAndTypeArray.length) - 1) {
@@ -29352,7 +29172,6 @@ var NPCMultiDialog = function NPCMultiDialog(_ref) {
29352
29172
  }
29353
29173
  }
29354
29174
  };
29355
-
29356
29175
  React.useEffect(function () {
29357
29176
  document.addEventListener('keydown', onHandleSpacePress);
29358
29177
  return function () {
@@ -29434,18 +29253,16 @@ var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
29434
29253
 
29435
29254
  var HistoryDialog = function HistoryDialog(_ref) {
29436
29255
  var backgroundImgPath = _ref.backgroundImgPath,
29437
- fullCoverBackground = _ref.fullCoverBackground,
29438
- questions = _ref.questions,
29439
- answers = _ref.answers,
29440
- text = _ref.text,
29441
- imagePath = _ref.imagePath,
29442
- textAndTypeArray = _ref.textAndTypeArray,
29443
- onClose = _ref.onClose;
29444
-
29256
+ fullCoverBackground = _ref.fullCoverBackground,
29257
+ questions = _ref.questions,
29258
+ answers = _ref.answers,
29259
+ text = _ref.text,
29260
+ imagePath = _ref.imagePath,
29261
+ textAndTypeArray = _ref.textAndTypeArray,
29262
+ onClose = _ref.onClose;
29445
29263
  var _useState = React.useState(0),
29446
- img = _useState[0],
29447
- setImage = _useState[1];
29448
-
29264
+ img = _useState[0],
29265
+ setImage = _useState[1];
29449
29266
  var onHandleSpacePress = function onHandleSpacePress(event) {
29450
29267
  if (event.code === 'Space') {
29451
29268
  if (img < (backgroundImgPath == null ? void 0 : backgroundImgPath.length) - 1) {
@@ -29458,7 +29275,6 @@ var HistoryDialog = function HistoryDialog(_ref) {
29458
29275
  }
29459
29276
  }
29460
29277
  };
29461
-
29462
29278
  React.useEffect(function () {
29463
29279
  document.addEventListener('keydown', onHandleSpacePress);
29464
29280
  return function () {
@@ -29499,6 +29315,183 @@ var DialogContainer = /*#__PURE__*/styled.div.withConfig({
29499
29315
  componentId: "sc-u6oe75-1"
29500
29316
  })(["display:flex;justify-content:center;padding-top:200px;"]);
29501
29317
 
29318
+ var ItemTradingComponent = function ItemTradingComponent(_ref) {
29319
+ var atlasIMG = _ref.atlasIMG,
29320
+ atlasJSON = _ref.atlasJSON,
29321
+ updateChartTotals = _ref.updateChartTotals,
29322
+ traderItem = _ref.traderItem;
29323
+ var _useState = React.useState(0),
29324
+ itemQuantity = _useState[0],
29325
+ setItemQuantity = _useState[1];
29326
+ var onLeftClick = function onLeftClick() {
29327
+ if (itemQuantity > 0) {
29328
+ var newQuantity = itemQuantity - 1;
29329
+ setItemQuantity(newQuantity);
29330
+ updateChartTotals({
29331
+ key: traderItem.key,
29332
+ itemId: traderItem.itemId,
29333
+ qty: newQuantity,
29334
+ price: traderItem.price,
29335
+ texturePath: traderItem.texturePath,
29336
+ name: traderItem.name
29337
+ });
29338
+ }
29339
+ };
29340
+ var onRightClick = function onRightClick() {
29341
+ var newQuantity = itemQuantity + 1;
29342
+ setItemQuantity(newQuantity);
29343
+ updateChartTotals({
29344
+ key: traderItem.key,
29345
+ itemId: traderItem.itemId,
29346
+ qty: newQuantity,
29347
+ price: traderItem.price,
29348
+ texturePath: traderItem.texturePath,
29349
+ name: traderItem.name
29350
+ });
29351
+ };
29352
+ return React__default.createElement(ItemWrapper, null, React__default.createElement(IconContainer, null, React__default.createElement(SpriteContainer$1, null, React__default.createElement(SpriteFromAtlas, {
29353
+ atlasIMG: atlasIMG,
29354
+ atlasJSON: atlasJSON,
29355
+ spriteKey: traderItem.texturePath,
29356
+ imgScale: 2.5
29357
+ }))), React__default.createElement(NameValue, null, React__default.createElement("p", null, traderItem.name), React__default.createElement("p", null, "$", traderItem.price)), React__default.createElement(Container$i, null, React__default.createElement(TextOverlay$2, null, React__default.createElement(Item$1, null, itemQuantity)), React__default.createElement(LeftArrow$2, {
29358
+ onClick: onLeftClick,
29359
+ onTouchStart: onLeftClick
29360
+ }), React__default.createElement(RightArrow$2, {
29361
+ onClick: onRightClick,
29362
+ onTouchStart: onRightClick
29363
+ })));
29364
+ };
29365
+ var ItemWrapper = /*#__PURE__*/styled.div.withConfig({
29366
+ displayName: "itemComponent__ItemWrapper",
29367
+ componentId: "sc-nc2o41-0"
29368
+ })(["width:80%;margin:auto;display:flex;justify-content:space-between;"]);
29369
+ var IconContainer = /*#__PURE__*/styled.div.withConfig({
29370
+ displayName: "itemComponent__IconContainer",
29371
+ componentId: "sc-nc2o41-1"
29372
+ })(["display:flex;justify-content:center;align-items:center;"]);
29373
+ var SpriteContainer$1 = /*#__PURE__*/styled.div.withConfig({
29374
+ displayName: "itemComponent__SpriteContainer",
29375
+ componentId: "sc-nc2o41-2"
29376
+ })(["position:relative;top:-3px;left:0;"]);
29377
+ var NameValue = /*#__PURE__*/styled.div.withConfig({
29378
+ displayName: "itemComponent__NameValue",
29379
+ componentId: "sc-nc2o41-3"
29380
+ })([""]);
29381
+ var Item$1 = /*#__PURE__*/styled.span.withConfig({
29382
+ displayName: "itemComponent__Item",
29383
+ componentId: "sc-nc2o41-4"
29384
+ })(["font-size:1rem;color:white;text-align:center;z-index:1;position:absolute;top:-12px;width:100%;"]);
29385
+ var TextOverlay$2 = /*#__PURE__*/styled.div.withConfig({
29386
+ displayName: "itemComponent__TextOverlay",
29387
+ componentId: "sc-nc2o41-5"
29388
+ })(["width:100%;position:relative;"]);
29389
+ var Container$i = /*#__PURE__*/styled.div.withConfig({
29390
+ displayName: "itemComponent__Container",
29391
+ componentId: "sc-nc2o41-6"
29392
+ })(["position:relative;display:flex;flex-direction:column;justify-content:space-around;align-items:flex-start;min-width:100px;width:40%;"]);
29393
+ var LeftArrow$2 = /*#__PURE__*/styled.div.withConfig({
29394
+ displayName: "itemComponent__LeftArrow",
29395
+ componentId: "sc-nc2o41-7"
29396
+ })(["background-image:url(", ");background-size:100% 100%;left:0;position:absolute;width:40px;height:42px;:active{background-image:url(", ");}z-index:2;"], img$3, img$2);
29397
+ var RightArrow$2 = /*#__PURE__*/styled.div.withConfig({
29398
+ displayName: "itemComponent__RightArrow",
29399
+ componentId: "sc-nc2o41-8"
29400
+ })(["background-image:url(", ");right:0;position:absolute;width:40px;background-size:100% 100%;height:42px;:active{background-image:url(", ");}z-index:2;"], img$5, img$4);
29401
+
29402
+ var TrandingMenu = function TrandingMenu(_ref) {
29403
+ var traderItems = _ref.traderItems,
29404
+ onClose = _ref.onClose,
29405
+ type = _ref.type,
29406
+ atlasJSON = _ref.atlasJSON,
29407
+ atlasIMG = _ref.atlasIMG,
29408
+ characterAvailableGold = _ref.characterAvailableGold,
29409
+ onChangeTraderItems = _ref.onChangeTraderItems;
29410
+ var _useState = React.useState(0),
29411
+ sum = _useState[0],
29412
+ setSum = _useState[1];
29413
+ var newSumArray = 0;
29414
+ var updateChartTotals = function updateChartTotals(item) {
29415
+ var itemIndex = traderItems.findIndex(function (itemArray) {
29416
+ return itemArray.itemId === item.itemId;
29417
+ });
29418
+ traderItems[itemIndex] = item;
29419
+ traderItems.forEach(function (item) {
29420
+ if (item.qty) newSumArray += item.qty * item.price;
29421
+ setSum(newSumArray);
29422
+ });
29423
+ };
29424
+ React.useEffect(function () {
29425
+ if (onChangeTraderItems) {
29426
+ onChangeTraderItems(traderItems);
29427
+ }
29428
+ }, [traderItems]);
29429
+ var Capitalize = function Capitalize(word) {
29430
+ return word[0].toUpperCase() + word.substring(1);
29431
+ };
29432
+ return React__default.createElement(TradingMenuDraggableContainer, {
29433
+ type: exports.RPGUIContainerTypes.Framed,
29434
+ onCloseButton: function onCloseButton() {
29435
+ if (onClose) onClose();
29436
+ },
29437
+ width: "500px",
29438
+ cancelDrag: ".equipment-container-body .arrow-selector"
29439
+ }, React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
29440
+ style: {
29441
+ width: '100%'
29442
+ }
29443
+ }, React__default.createElement(Title$3, null, Capitalize(type)), React__default.createElement("hr", {
29444
+ className: "golden"
29445
+ })), React__default.createElement(TrandingComponentScrollWrapper, null, traderItems.map(function (tradeItem) {
29446
+ return React__default.createElement(ItemWrapper$1, {
29447
+ key: uuid.v4()
29448
+ }, React__default.createElement(ItemTradingComponent, {
29449
+ key: uuid.v4(),
29450
+ atlasIMG: atlasIMG,
29451
+ atlasJSON: atlasJSON,
29452
+ updateChartTotals: updateChartTotals,
29453
+ traderItem: tradeItem
29454
+ }));
29455
+ })), React__default.createElement(GoldWrapper, null, React__default.createElement("p", null, "Available Gold:"), React__default.createElement("p", null, "$", characterAvailableGold)), React__default.createElement(TotalWrapper, null, React__default.createElement("p", null, "Total:"), React__default.createElement("p", null, "$", sum)), sum > characterAvailableGold ? React__default.createElement(AlertWrapper, null, React__default.createElement("p", null, " Sorry, not enough money.")) : React__default.createElement(GoldWrapper, null, React__default.createElement("p", null, "Final Gold:"), React__default.createElement("p", null, "$", characterAvailableGold - sum)), React__default.createElement(ButtonWrapper, null, React__default.createElement(Button, {
29456
+ buttonType: exports.ButtonTypes.RPGUIButton,
29457
+ disabled: sum > characterAvailableGold
29458
+ }, "Confirm"), React__default.createElement(Button, {
29459
+ buttonType: exports.ButtonTypes.RPGUIButton
29460
+ }, "Cancel"))));
29461
+ };
29462
+ var TradingMenuDraggableContainer = /*#__PURE__*/styled(DraggableContainer).withConfig({
29463
+ displayName: "TrandingMenu__TradingMenuDraggableContainer",
29464
+ componentId: "sc-1lbop40-0"
29465
+ })([".container-close{top:10px;right:10px;}.quest-title{text-align:left;margin-left:44px;margin-top:20px;color:yellow;}.quest-desc{margin-top:12px;margin-left:44px;}.rpgui-progress{min-width:80%;margin:0 auto;}"]);
29466
+ var Title$3 = /*#__PURE__*/styled.h1.withConfig({
29467
+ displayName: "TrandingMenu__Title",
29468
+ componentId: "sc-1lbop40-1"
29469
+ })(["z-index:22;font-size:0.6rem;color:yellow !important;"]);
29470
+ var TrandingComponentScrollWrapper = /*#__PURE__*/styled.div.withConfig({
29471
+ displayName: "TrandingMenu__TrandingComponentScrollWrapper",
29472
+ componentId: "sc-1lbop40-2"
29473
+ })(["overflow-y:scroll;height:500px;width:100%;"]);
29474
+ var ItemWrapper$1 = /*#__PURE__*/styled.div.withConfig({
29475
+ displayName: "TrandingMenu__ItemWrapper",
29476
+ componentId: "sc-1lbop40-3"
29477
+ })(["width:80%;margin:auto;display:flex;justify-content:space-between;"]);
29478
+ var TotalWrapper = /*#__PURE__*/styled.div.withConfig({
29479
+ displayName: "TrandingMenu__TotalWrapper",
29480
+ componentId: "sc-1lbop40-4"
29481
+ })(["width:80%;display:flex;margin:auto;justify-content:space-between;height:20px;"]);
29482
+ var GoldWrapper = /*#__PURE__*/styled.div.withConfig({
29483
+ displayName: "TrandingMenu__GoldWrapper",
29484
+ componentId: "sc-1lbop40-5"
29485
+ })(["width:80%;display:flex;margin:auto;justify-content:space-between;height:20px;p{color:yellow !important;}"]);
29486
+ var AlertWrapper = /*#__PURE__*/styled.div.withConfig({
29487
+ displayName: "TrandingMenu__AlertWrapper",
29488
+ componentId: "sc-1lbop40-6"
29489
+ })(["width:80%;display:flex;margin:auto;justify-content:center;height:20px;p{color:red !important;}"]);
29490
+ var ButtonWrapper = /*#__PURE__*/styled.div.withConfig({
29491
+ displayName: "TrandingMenu__ButtonWrapper",
29492
+ componentId: "sc-1lbop40-7"
29493
+ })(["width:80%;margin:auto;display:flex;justify-content:space-around;padding-top:20px;"]);
29494
+
29502
29495
  exports.Button = Button;
29503
29496
  exports.CharacterSelection = CharacterSelection;
29504
29497
  exports.Chat = Chat;
@@ -29527,6 +29520,7 @@ exports.SkillProgressBar = SkillProgressBar;
29527
29520
  exports.SkillsContainer = SkillsContainer;
29528
29521
  exports.SpriteFromAtlas = SpriteFromAtlas;
29529
29522
  exports.TextArea = TextArea;
29523
+ exports.TrandingMenu = TrandingMenu;
29530
29524
  exports.Truncate = Truncate;
29531
29525
  exports._RPGUI = _RPGUI;
29532
29526
  exports.useEventListener = useEventListener;