@rpg-engine/long-bow 0.2.86 → 0.2.87

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 (35) hide show
  1. package/dist/components/Abstractions/SlotsContainer.d.ts +1 -0
  2. package/dist/components/DraggableContainer.d.ts +1 -0
  3. package/dist/components/Equipment/EquipmentSet.d.ts +4 -0
  4. package/dist/components/Input.d.ts +1 -0
  5. package/dist/components/Item/Inventory/ItemContainer.d.ts +8 -0
  6. package/dist/components/Item/Inventory/ItemQuantitySelector.d.ts +7 -0
  7. package/dist/components/Item/Inventory/ItemSlot.d.ts +5 -0
  8. package/dist/components/RangeSlider.d.ts +1 -0
  9. package/dist/long-bow.cjs.development.js +362 -77
  10. package/dist/long-bow.cjs.development.js.map +1 -1
  11. package/dist/long-bow.cjs.production.min.js +1 -1
  12. package/dist/long-bow.cjs.production.min.js.map +1 -1
  13. package/dist/long-bow.esm.js +363 -78
  14. package/dist/long-bow.esm.js.map +1 -1
  15. package/dist/stories/ItemQuantitySelector.stories.d.ts +5 -0
  16. package/package.json +1 -1
  17. package/src/components/Abstractions/SlotsContainer.tsx +3 -0
  18. package/src/components/DraggableContainer.tsx +3 -0
  19. package/src/components/Equipment/EquipmentSet.tsx +30 -0
  20. package/src/components/Input.tsx +6 -2
  21. package/src/components/Item/Inventory/ItemContainer.tsx +92 -6
  22. package/src/components/Item/Inventory/ItemQuantitySelector.tsx +137 -0
  23. package/src/components/Item/Inventory/ItemSlot.tsx +144 -25
  24. package/src/components/ListMenu.tsx +1 -2
  25. package/src/components/RangeSlider.tsx +37 -14
  26. package/src/mocks/itemContainer.mocks.ts +1 -1
  27. package/src/stories/EquipmentSet.stories.tsx +4 -0
  28. package/src/stories/ItemContainer.stories.tsx +82 -15
  29. package/src/stories/ItemQuantitySelector.stories.tsx +26 -0
  30. package/src/stories/RangeSlider.stories.tsx +10 -9
  31. package/src/.DS_Store +0 -0
  32. package/src/components/NPCDialog/.DS_Store +0 -0
  33. package/src/components/NPCDialog/img/.DS_Store +0 -0
  34. package/src/mocks/.DS_Store +0 -0
  35. package/src/mocks/atlas/.DS_Store +0 -0
@@ -32724,9 +32724,13 @@ var uiColors = {
32724
32724
  brownGreen: '#346524'
32725
32725
  };
32726
32726
 
32727
+ var _excluded$2 = ["innerRef"];
32727
32728
  var Input = function Input(_ref) {
32728
32729
  var props = _extends({}, (_objectDestructuringEmpty(_ref), _ref));
32729
- return React__default.createElement("input", Object.assign({}, props));
32730
+ var rest = _objectWithoutPropertiesLoose(props, _excluded$2);
32731
+ return React__default.createElement("input", Object.assign({}, rest, {
32732
+ ref: props.innerRef
32733
+ }));
32730
32734
  };
32731
32735
 
32732
32736
  (function (RPGUIContainerTypes) {
@@ -32965,7 +32969,12 @@ var DraggableContainer = function DraggableContainer(_ref) {
32965
32969
  imgWidth = _ref$imgWidth === void 0 ? '20px' : _ref$imgWidth,
32966
32970
  cancelDrag = _ref.cancelDrag,
32967
32971
  onPositionChange = _ref.onPositionChange,
32968
- onOutsideClick = _ref.onOutsideClick;
32972
+ onOutsideClick = _ref.onOutsideClick,
32973
+ _ref$initialPosition = _ref.initialPosition,
32974
+ initialPosition = _ref$initialPosition === void 0 ? {
32975
+ x: 0,
32976
+ y: 0
32977
+ } : _ref$initialPosition;
32969
32978
  var draggableRef = React.useRef(null);
32970
32979
  useOutsideClick(draggableRef, 'item-container');
32971
32980
  React.useEffect(function () {
@@ -32990,7 +32999,8 @@ var DraggableContainer = function DraggableContainer(_ref) {
32990
32999
  y: data.y
32991
33000
  });
32992
33001
  }
32993
- }
33002
+ },
33003
+ defaultPosition: initialPosition
32994
33004
  }, React__default.createElement(Container$6, {
32995
33005
  ref: draggableRef,
32996
33006
  width: width,
@@ -33463,22 +33473,44 @@ var ItemSlot = /*#__PURE__*/mobxReactLite.observer(function (_ref) {
33463
33473
  slotSpriteMask = _ref.slotSpriteMask,
33464
33474
  _onMouseOver = _ref.onMouseOver,
33465
33475
  _onMouseOut = _ref.onMouseOut,
33466
- _onClick = _ref.onClick,
33476
+ onClick = _ref.onClick,
33467
33477
  _onSelected = _ref.onSelected,
33468
33478
  atlasJSON = _ref.atlasJSON,
33469
33479
  atlasIMG = _ref.atlasIMG,
33470
33480
  _ref$isContextMenuDis = _ref.isContextMenuDisabled,
33471
- isContextMenuDisabled = _ref$isContextMenuDis === void 0 ? false : _ref$isContextMenuDis;
33481
+ isContextMenuDisabled = _ref$isContextMenuDis === void 0 ? false : _ref$isContextMenuDis,
33482
+ onDragEnd = _ref.onDragEnd,
33483
+ onDragStart = _ref.onDragStart,
33484
+ onPlaceDrop = _ref.onPlaceDrop,
33485
+ checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
33486
+ openQuantitySelector = _ref.openQuantitySelector;
33472
33487
  var _useState = React.useState(false),
33473
33488
  isTooltipVisible = _useState[0],
33474
33489
  setTooltipVisible = _useState[1];
33475
33490
  var _useState2 = React.useState(false),
33476
33491
  isContextMenuVisible = _useState2[0],
33477
33492
  setIsContextMenuVisible = _useState2[1];
33478
- var _useState3 = React.useState([]),
33479
- contextActions = _useState3[0],
33480
- setContextActions = _useState3[1];
33493
+ var _useState3 = React.useState(false),
33494
+ isFocused = _useState3[0],
33495
+ setIsFocused = _useState3[1];
33496
+ var _useState4 = React.useState(false),
33497
+ wasDragged = _useState4[0],
33498
+ setWasDragged = _useState4[1];
33499
+ var _useState5 = React.useState({
33500
+ x: 0,
33501
+ y: 0
33502
+ }),
33503
+ dragPosition = _useState5[0],
33504
+ setDragPosition = _useState5[1];
33505
+ var dragContainer = React.useRef(null);
33506
+ var _useState6 = React.useState([]),
33507
+ contextActions = _useState6[0],
33508
+ setContextActions = _useState6[1];
33481
33509
  React.useEffect(function () {
33510
+ setDragPosition({
33511
+ x: 0,
33512
+ y: 0
33513
+ });
33482
33514
  if (item) {
33483
33515
  setContextActions(generateContextMenu(item, containerType));
33484
33516
  }
@@ -33570,30 +33602,95 @@ var ItemSlot = /*#__PURE__*/mobxReactLite.observer(function (_ref) {
33570
33602
  return renderItem(itemToRender);
33571
33603
  }
33572
33604
  };
33605
+ var resetItem = function resetItem() {
33606
+ setTooltipVisible(false);
33607
+ setIsFocused(false);
33608
+ setWasDragged(false);
33609
+ };
33610
+ var onSuccesfulDrag = function onSuccesfulDrag(quantity) {
33611
+ resetItem();
33612
+ if (quantity === -1) setDragPosition({
33613
+ x: 0,
33614
+ y: 0
33615
+ });else if (item) {
33616
+ onDragEnd(quantity);
33617
+ resetItem();
33618
+ }
33619
+ };
33573
33620
  return React__default.createElement(Container$a, {
33574
33621
  className: "rpgui-icon empty-slot",
33622
+ onMouseUp: function onMouseUp() {
33623
+ var data = item ? item : null;
33624
+ if (onPlaceDrop) onPlaceDrop(data, slotIndex, containerType);
33625
+ },
33626
+ onTouchEnd: function onTouchEnd(e) {
33627
+ var _document$elementFrom;
33628
+ var _e$changedTouches$ = e.changedTouches[0],
33629
+ clientX = _e$changedTouches$.clientX,
33630
+ clientY = _e$changedTouches$.clientY;
33631
+ var simulatedEvent = new MouseEvent('mouseup', {
33632
+ clientX: clientX,
33633
+ clientY: clientY,
33634
+ bubbles: true
33635
+ });
33636
+ (_document$elementFrom = document.elementFromPoint(clientX, clientY)) == null ? void 0 : _document$elementFrom.dispatchEvent(simulatedEvent);
33637
+ }
33638
+ }, item && React__default.createElement(Draggable, {
33639
+ onStop: function onStop() {
33640
+ if (wasDragged) {
33641
+ setWasDragged(false);
33642
+ var target = dragContainer.current;
33643
+ if (!target || !wasDragged) return;
33644
+ var style = window.getComputedStyle(target);
33645
+ var matrix = new DOMMatrixReadOnly(style.transform);
33646
+ var x = matrix.m41;
33647
+ var y = matrix.m42;
33648
+ setDragPosition({
33649
+ x: x,
33650
+ y: y
33651
+ });
33652
+ setTimeout(function () {
33653
+ if (checkIfItemCanBeMoved()) {
33654
+ if (item.stackQty && item.stackQty !== 1 && openQuantitySelector) openQuantitySelector(item.stackQty, onSuccesfulDrag);else onSuccesfulDrag(item.stackQty);
33655
+ } else {
33656
+ resetItem();
33657
+ setDragPosition({
33658
+ x: 0,
33659
+ y: 0
33660
+ });
33661
+ }
33662
+ }, 100);
33663
+ } else if (item) {
33664
+ if (!isContextMenuDisabled) setIsContextMenuVisible(!isContextMenuVisible);
33665
+ onClick(item.type, containerType, item);
33666
+ }
33667
+ },
33668
+ onStart: function onStart() {
33669
+ if (onDragStart) onDragStart(item, slotIndex, containerType);
33670
+ },
33671
+ onDrag: function onDrag() {
33672
+ setWasDragged(true);
33673
+ setIsFocused(true);
33674
+ },
33675
+ position: dragPosition
33676
+ }, React__default.createElement(ItemContainer, {
33677
+ ref: dragContainer,
33678
+ isFocused: isFocused,
33575
33679
  onMouseOver: function onMouseOver(event) {
33576
- return _onMouseOver(event, slotIndex, item, event.clientX, event.clientY);
33680
+ _onMouseOver(event, slotIndex, item, event.clientX, event.clientY);
33577
33681
  },
33578
33682
  onMouseOut: function onMouseOut() {
33579
33683
  if (_onMouseOut) _onMouseOut();
33580
33684
  },
33581
33685
  onMouseEnter: function onMouseEnter() {
33582
- return setTooltipVisible(true);
33686
+ setTooltipVisible(true);
33583
33687
  },
33584
33688
  onMouseLeave: function onMouseLeave() {
33585
- return setTooltipVisible(false);
33586
- },
33587
- onClick: function onClick() {
33588
33689
  setTooltipVisible(false);
33589
- if (item) {
33590
- if (!isContextMenuDisabled) {
33591
- setIsContextMenuVisible(!isContextMenuVisible);
33592
- }
33593
- _onClick(item.type, containerType, item);
33594
- }
33595
33690
  }
33596
- }, !isContextMenuDisabled && isContextMenuVisible && contextActions && React__default.createElement(RelativeListMenu, {
33691
+ }, onRenderSlot(item))), isTooltipVisible && item && React__default.createElement(ItemTooltip, {
33692
+ label: item.name
33693
+ }), !isContextMenuDisabled && isContextMenuVisible && contextActions && React__default.createElement(RelativeListMenu, {
33597
33694
  options: contextActions,
33598
33695
  onSelected: function onSelected(optionId) {
33599
33696
  setIsContextMenuVisible(false);
@@ -33604,21 +33701,25 @@ var ItemSlot = /*#__PURE__*/mobxReactLite.observer(function (_ref) {
33604
33701
  onOutsideClick: function onOutsideClick() {
33605
33702
  setIsContextMenuVisible(false);
33606
33703
  }
33607
- }), isTooltipVisible && item && React__default.createElement(ItemTooltip, {
33608
- label: item.name
33609
- }), onRenderSlot(item));
33704
+ }));
33610
33705
  });
33611
33706
  var Container$a = /*#__PURE__*/styled.div.withConfig({
33612
33707
  displayName: "ItemSlot__Container",
33613
33708
  componentId: "sc-l2j5ef-0"
33614
33709
  })(["margin:0.1rem;.sprite-from-atlas-img{position:relative;top:1.5rem;left:1.5rem;}position:relative;"]);
33710
+ var ItemContainer = /*#__PURE__*/styled.div.withConfig({
33711
+ displayName: "ItemSlot__ItemContainer",
33712
+ componentId: "sc-l2j5ef-1"
33713
+ })(["width:100%;height:100%;position:relative;", ""], function (props) {
33714
+ return props.isFocused && 'z-index: 100; pointer-events: none;';
33715
+ });
33615
33716
  var ItemQtyContainer = /*#__PURE__*/styled.div.withConfig({
33616
33717
  displayName: "ItemSlot__ItemQtyContainer",
33617
- componentId: "sc-l2j5ef-1"
33618
- })(["position:relative;width:85%;height:16px;top:25px;left:2px;display:flex;justify-content:flex-end;"]);
33718
+ componentId: "sc-l2j5ef-2"
33719
+ })(["position:relative;width:85%;height:16px;top:25px;left:2px;pointer-events:none;display:flex;justify-content:flex-end;"]);
33619
33720
  var ItemQty = /*#__PURE__*/styled.span.withConfig({
33620
33721
  displayName: "ItemSlot__ItemQty",
33621
- componentId: "sc-l2j5ef-2"
33722
+ componentId: "sc-l2j5ef-3"
33622
33723
  })(["&.regular{font-size:", ";}&.small{font-size:", ";}"], uiFonts.size.small, uiFonts.size.xsmall);
33623
33724
 
33624
33725
  var EquipmentSet = function EquipmentSet(_ref) {
@@ -33628,7 +33729,11 @@ var EquipmentSet = function EquipmentSet(_ref) {
33628
33729
  _onSelected = _ref.onSelected,
33629
33730
  onItemClick = _ref.onItemClick,
33630
33731
  atlasIMG = _ref.atlasIMG,
33631
- atlasJSON = _ref.atlasJSON;
33732
+ atlasJSON = _ref.atlasJSON,
33733
+ onItemDragEnd = _ref.onItemDragEnd,
33734
+ onItemDragStart = _ref.onItemDragStart,
33735
+ onItemPlaceDrop = _ref.onItemPlaceDrop,
33736
+ checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved;
33632
33737
  var neck = equipmentSet.neck,
33633
33738
  leftHand = equipmentSet.leftHand,
33634
33739
  ring = equipmentSet.ring,
@@ -33664,6 +33769,16 @@ var EquipmentSet = function EquipmentSet(_ref) {
33664
33769
  onSelected: function onSelected(optionId) {
33665
33770
  if (_onSelected) _onSelected(optionId);
33666
33771
  },
33772
+ onDragStart: function onDragStart(item, slotIndex, itemContainerType) {
33773
+ if (onItemDragStart) onItemDragStart(item, slotIndex, itemContainerType);
33774
+ },
33775
+ onDragEnd: function onDragEnd(quantity) {
33776
+ if (onItemDragEnd) onItemDragEnd(quantity);
33777
+ },
33778
+ checkIfItemCanBeMoved: checkIfItemCanBeMoved,
33779
+ onPlaceDrop: function onPlaceDrop(item, slotIndex, itemContainerType) {
33780
+ if (onItemPlaceDrop) onItemPlaceDrop(item, slotIndex, itemContainerType);
33781
+ },
33667
33782
  atlasIMG: atlasIMG,
33668
33783
  atlasJSON: atlasJSON
33669
33784
  });
@@ -33684,11 +33799,11 @@ var EquipmentSet = function EquipmentSet(_ref) {
33684
33799
  var EquipmentSetContainer = /*#__PURE__*/styled.div.withConfig({
33685
33800
  displayName: "EquipmentSet__EquipmentSetContainer",
33686
33801
  componentId: "sc-1wuddg2-0"
33687
- })(["width:inherit;display:flex;justify-content:center;flex-wrap:wrap;flex-direction:row;"]);
33802
+ })(["width:inherit;display:flex;justify-content:center;flex-wrap:wrap;flex-direction:row;touch-action:none;"]);
33688
33803
  var EquipmentColumn = /*#__PURE__*/styled.div.withConfig({
33689
33804
  displayName: "EquipmentSet__EquipmentColumn",
33690
33805
  componentId: "sc-1wuddg2-1"
33691
- })(["display:flex;justify-content:center;flex-wrap:wrap;flex-direction:column;"]);
33806
+ })(["display:flex;justify-content:center;flex-wrap:wrap;flex-direction:column;touch-action:none;"]);
33692
33807
 
33693
33808
  var IS_MOBILE_OR_TABLET = /*#__PURE__*/isMobile({
33694
33809
  tablet: true
@@ -34235,7 +34350,8 @@ var SlotsContainer = function SlotsContainer(_ref) {
34235
34350
  title = _ref.title,
34236
34351
  onClose = _ref.onClose,
34237
34352
  _onPositionChange = _ref.onPositionChange,
34238
- onOutsideClick = _ref.onOutsideClick;
34353
+ onOutsideClick = _ref.onOutsideClick,
34354
+ initialPosition = _ref.initialPosition;
34239
34355
  return React__default.createElement(DraggableContainer, {
34240
34356
  title: title,
34241
34357
  type: exports.RPGUIContainerTypes.Framed,
@@ -34256,11 +34372,163 @@ var SlotsContainer = function SlotsContainer(_ref) {
34256
34372
  });
34257
34373
  }
34258
34374
  },
34259
- onOutsideClick: onOutsideClick
34375
+ onOutsideClick: onOutsideClick,
34376
+ initialPosition: initialPosition
34260
34377
  }, children);
34261
34378
  };
34262
34379
 
34263
- var ItemContainer = function ItemContainer(_ref) {
34380
+ (function (RangeSliderType) {
34381
+ RangeSliderType["Slider"] = "rpgui-slider";
34382
+ RangeSliderType["GoldSlider"] = "rpgui-slider golden";
34383
+ })(exports.RangeSliderType || (exports.RangeSliderType = {}));
34384
+ var RangeSlider = function RangeSlider(_ref) {
34385
+ var type = _ref.type,
34386
+ valueMin = _ref.valueMin,
34387
+ valueMax = _ref.valueMax,
34388
+ width = _ref.width,
34389
+ _onChange = _ref.onChange,
34390
+ value = _ref.value;
34391
+ var sliderId = uuid.v4();
34392
+ var containerRef = React.useRef(null);
34393
+ var _useState = React.useState(0),
34394
+ left = _useState[0],
34395
+ setLeft = _useState[1];
34396
+ React.useEffect(function () {
34397
+ var _containerRef$current;
34398
+ var calculatedWidth = ((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.clientWidth) || 0;
34399
+ setLeft(Math.max((value - valueMin) / (valueMax - valueMin) * (calculatedWidth - 35) + 10));
34400
+ }, [value, valueMin, valueMax]);
34401
+ var typeClass = type === exports.RangeSliderType.GoldSlider ? 'golden' : '';
34402
+ return React__default.createElement("div", {
34403
+ style: {
34404
+ width: width,
34405
+ position: 'relative'
34406
+ },
34407
+ className: "rpgui-slider-container " + typeClass,
34408
+ id: "rpgui-slider-" + sliderId,
34409
+ ref: containerRef
34410
+ }, React__default.createElement("div", {
34411
+ style: {
34412
+ pointerEvents: 'none'
34413
+ }
34414
+ }, React__default.createElement("div", {
34415
+ className: "rpgui-slider-track " + typeClass
34416
+ }), React__default.createElement("div", {
34417
+ className: "rpgui-slider-left-edge " + typeClass
34418
+ }), React__default.createElement("div", {
34419
+ className: "rpgui-slider-right-edge " + typeClass
34420
+ }), React__default.createElement("div", {
34421
+ className: "rpgui-slider-thumb " + typeClass,
34422
+ style: {
34423
+ left: left
34424
+ }
34425
+ })), React__default.createElement(Input$1, {
34426
+ type: "range",
34427
+ style: {
34428
+ width: width
34429
+ },
34430
+ min: valueMin,
34431
+ max: valueMax,
34432
+ onChange: function onChange(e) {
34433
+ return _onChange(Number(e.target.value));
34434
+ },
34435
+ value: value,
34436
+ className: "rpgui-cursor-point"
34437
+ }));
34438
+ };
34439
+ var Input$1 = /*#__PURE__*/styled.input.withConfig({
34440
+ displayName: "RangeSlider__Input",
34441
+ componentId: "sc-v8mte9-0"
34442
+ })(["opacity:0;position:absolute;width:100%;height:100%;top:0;left:0;margin-top:-5px;"]);
34443
+
34444
+ var ItemQuantitySelector = function ItemQuantitySelector(_ref) {
34445
+ var quantity = _ref.quantity,
34446
+ onConfirm = _ref.onConfirm,
34447
+ onClose = _ref.onClose;
34448
+ var _useState = React.useState(quantity),
34449
+ value = _useState[0],
34450
+ setValue = _useState[1];
34451
+ var inputRef = React.useRef(null);
34452
+ React.useEffect(function () {
34453
+ if (inputRef.current) {
34454
+ inputRef.current.focus();
34455
+ inputRef.current.select();
34456
+ var closeSelector = function closeSelector(e) {
34457
+ if (e.key === 'Escape') {
34458
+ onClose();
34459
+ }
34460
+ };
34461
+ document.addEventListener('keydown', closeSelector);
34462
+ return function () {
34463
+ document.removeEventListener('keydown', closeSelector);
34464
+ };
34465
+ }
34466
+ return function () {};
34467
+ }, []);
34468
+ return React__default.createElement(StyledContainer, {
34469
+ type: exports.RPGUIContainerTypes.Framed,
34470
+ width: "25rem"
34471
+ }, React__default.createElement(CloseButton$2, {
34472
+ className: "container-close",
34473
+ onClick: onClose,
34474
+ onTouchStart: onClose
34475
+ }, "X"), React__default.createElement("h2", null, "Select quantity to move"), React__default.createElement(StyledForm, {
34476
+ style: {
34477
+ width: '100%'
34478
+ },
34479
+ onSubmit: function onSubmit(e) {
34480
+ e.preventDefault();
34481
+ var numberValue = Number(value);
34482
+ if (Number.isNaN(numberValue)) {
34483
+ return;
34484
+ }
34485
+ onConfirm(Math.max(1, Math.min(quantity, numberValue)));
34486
+ },
34487
+ noValidate: true
34488
+ }, React__default.createElement(StyledInput, {
34489
+ innerRef: inputRef,
34490
+ placeholder: "Enter quantity",
34491
+ type: "number",
34492
+ min: 1,
34493
+ max: quantity,
34494
+ value: value,
34495
+ onChange: function onChange(e) {
34496
+ setValue(e.target.value);
34497
+ },
34498
+ onBlur: function onBlur(e) {
34499
+ var newValue = Math.max(1, Math.min(quantity, Number(e.target.value)));
34500
+ setValue(newValue);
34501
+ }
34502
+ }), React__default.createElement(RangeSlider, {
34503
+ type: exports.RangeSliderType.Slider,
34504
+ valueMin: 1,
34505
+ valueMax: quantity,
34506
+ width: "100%",
34507
+ onChange: setValue,
34508
+ value: value
34509
+ }), React__default.createElement(Button, {
34510
+ buttonType: exports.ButtonTypes.RPGUIButton,
34511
+ type: "submit"
34512
+ }, "Confirm")));
34513
+ };
34514
+ var StyledContainer = /*#__PURE__*/styled(RPGUIContainer).withConfig({
34515
+ displayName: "ItemQuantitySelector__StyledContainer",
34516
+ componentId: "sc-yfdtpn-0"
34517
+ })(["display:flex;flex-direction:column;align-items:center;"]);
34518
+ var StyledForm = /*#__PURE__*/styled.form.withConfig({
34519
+ displayName: "ItemQuantitySelector__StyledForm",
34520
+ componentId: "sc-yfdtpn-1"
34521
+ })(["display:flex;flex-direction:column;align-items:center;width:100%;"]);
34522
+ var StyledInput = /*#__PURE__*/styled(Input).withConfig({
34523
+ displayName: "ItemQuantitySelector__StyledInput",
34524
+ componentId: "sc-yfdtpn-2"
34525
+ })(["text-align:center;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}"]);
34526
+ var CloseButton$2 = /*#__PURE__*/styled.div.withConfig({
34527
+ displayName: "ItemQuantitySelector__CloseButton",
34528
+ componentId: "sc-yfdtpn-3"
34529
+ })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:0.8rem;"]);
34530
+
34531
+ var ItemContainer$1 = function ItemContainer(_ref) {
34264
34532
  var itemContainer = _ref.itemContainer,
34265
34533
  onClose = _ref.onClose,
34266
34534
  _onMouseOver = _ref.onMouseOver,
@@ -34270,7 +34538,19 @@ var ItemContainer = function ItemContainer(_ref) {
34270
34538
  atlasJSON = _ref.atlasJSON,
34271
34539
  atlasIMG = _ref.atlasIMG,
34272
34540
  _ref$disableContextMe = _ref.disableContextMenu,
34273
- disableContextMenu = _ref$disableContextMe === void 0 ? false : _ref$disableContextMe;
34541
+ disableContextMenu = _ref$disableContextMe === void 0 ? false : _ref$disableContextMe,
34542
+ onItemDragEnd = _ref.onItemDragEnd,
34543
+ onItemDragStart = _ref.onItemDragStart,
34544
+ onItemPlaceDrop = _ref.onItemPlaceDrop,
34545
+ checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
34546
+ initialPosition = _ref.initialPosition;
34547
+ var _useState = React.useState({
34548
+ isOpen: false,
34549
+ maxQuantity: 1,
34550
+ callback: function callback(_quantity) {}
34551
+ }),
34552
+ quantitySelect = _useState[0],
34553
+ setQuantitySelect = _useState[1];
34274
34554
  var onRenderSlots = function onRenderSlots() {
34275
34555
  var slots = [];
34276
34556
  for (var i = 0; i < itemContainer.slotQty; i++) {
@@ -34290,23 +34570,63 @@ var ItemContainer = function ItemContainer(_ref) {
34290
34570
  onSelected: function onSelected(optionId, item) {
34291
34571
  if (_onSelected) _onSelected(optionId, item);
34292
34572
  },
34573
+ onDragStart: function onDragStart(item, slotIndex, itemContainerType) {
34574
+ if (onItemDragStart) onItemDragStart(item, slotIndex, itemContainerType);
34575
+ },
34576
+ onDragEnd: function onDragEnd(quantity) {
34577
+ if (onItemDragEnd) onItemDragEnd(quantity);
34578
+ },
34579
+ checkIfItemCanBeMoved: checkIfItemCanBeMoved,
34580
+ openQuantitySelector: function openQuantitySelector(maxQuantity, callback) {
34581
+ setQuantitySelect({
34582
+ isOpen: true,
34583
+ maxQuantity: maxQuantity,
34584
+ callback: callback
34585
+ });
34586
+ },
34587
+ onPlaceDrop: function onPlaceDrop(item, slotIndex, itemContainerType) {
34588
+ if (onItemPlaceDrop) onItemPlaceDrop(item, slotIndex, itemContainerType);
34589
+ },
34293
34590
  atlasIMG: atlasIMG,
34294
34591
  atlasJSON: atlasJSON
34295
34592
  }));
34296
34593
  }
34297
34594
  return slots;
34298
34595
  };
34299
- return React__default.createElement(SlotsContainer, {
34596
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(SlotsContainer, {
34300
34597
  title: itemContainer.name || 'Container',
34301
- onClose: onClose
34598
+ onClose: onClose,
34599
+ initialPosition: initialPosition
34302
34600
  }, React__default.createElement(ItemsContainer, {
34303
34601
  className: "item-container-body"
34304
- }, onRenderSlots()));
34602
+ }, onRenderSlots())), quantitySelect.isOpen && React__default.createElement(QuantitySelectorContainer, null, React__default.createElement(ItemQuantitySelector, {
34603
+ quantity: quantitySelect.maxQuantity,
34604
+ onConfirm: function onConfirm(quantity) {
34605
+ quantitySelect.callback(quantity);
34606
+ setQuantitySelect({
34607
+ isOpen: false,
34608
+ maxQuantity: 1,
34609
+ callback: function callback() {}
34610
+ });
34611
+ },
34612
+ onClose: function onClose() {
34613
+ quantitySelect.callback(-1);
34614
+ setQuantitySelect({
34615
+ isOpen: false,
34616
+ maxQuantity: 1,
34617
+ callback: function callback() {}
34618
+ });
34619
+ }
34620
+ })));
34305
34621
  };
34306
34622
  var ItemsContainer = /*#__PURE__*/styled.div.withConfig({
34307
34623
  displayName: "ItemContainer__ItemsContainer",
34308
34624
  componentId: "sc-15y5p9l-0"
34309
34625
  })(["max-width:280px;display:flex;justify-content:center;flex-wrap:wrap;"]);
34626
+ var QuantitySelectorContainer = /*#__PURE__*/styled.div.withConfig({
34627
+ displayName: "ItemContainer__QuantitySelectorContainer",
34628
+ componentId: "sc-15y5p9l-1"
34629
+ })(["position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:100;display:flex;justify-content:center;align-items:center;background-color:rgba(0,0,0,0.5);"]);
34310
34630
 
34311
34631
  var ListMenu = function ListMenu(_ref) {
34312
34632
  var options = _ref.options,
@@ -34324,8 +34644,7 @@ var ListMenu = function ListMenu(_ref) {
34324
34644
  }, options.map(function (params, index) {
34325
34645
  return React__default.createElement(ListElement$1, {
34326
34646
  key: (params == null ? void 0 : params.id) || index,
34327
- onClick: function onClick(e) {
34328
- e.stopPropagation();
34647
+ onClick: function onClick() {
34329
34648
  onSelected(params == null ? void 0 : params.id);
34330
34649
  }
34331
34650
  }, (params == null ? void 0 : params.text) || 'No text');
@@ -34607,40 +34926,6 @@ var InputRadio = function InputRadio(_ref) {
34607
34926
  }));
34608
34927
  };
34609
34928
 
34610
- (function (RangeSliderType) {
34611
- RangeSliderType["Slider"] = "rpgui-slider";
34612
- RangeSliderType["GoldSlider"] = "rpgui-slider golden";
34613
- })(exports.RangeSliderType || (exports.RangeSliderType = {}));
34614
- var RangeSlider = function RangeSlider(_ref) {
34615
- var type = _ref.type,
34616
- valueMin = _ref.valueMin,
34617
- valueMax = _ref.valueMax,
34618
- width = _ref.width,
34619
- onChange = _ref.onChange;
34620
- var sliderId = uuid.v4();
34621
- var onHandleMouseUp = function onHandleMouseUp() {
34622
- var rpguiSlider = document.getElementById("rpgui-slider-" + sliderId);
34623
- var value = _RPGUI.get_value(rpguiSlider);
34624
- onChange(Number(value));
34625
- };
34626
- return React__default.createElement("div", {
34627
- onMouseUp: onHandleMouseUp
34628
- }, React__default.createElement(Input$1, {
34629
- className: type === exports.RangeSliderType.Slider ? exports.RangeSliderType.Slider : exports.RangeSliderType.GoldSlider,
34630
- type: "range",
34631
- style: {
34632
- width: width
34633
- },
34634
- min: valueMin,
34635
- max: valueMax,
34636
- id: "rpgui-slider-" + sliderId
34637
- }));
34638
- };
34639
- var Input$1 = /*#__PURE__*/styled.input.withConfig({
34640
- displayName: "RangeSlider__Input",
34641
- componentId: "sc-v8mte9-0"
34642
- })(["opacity:0;"]);
34643
-
34644
34929
  var SimpleProgressBar = function SimpleProgressBar(_ref) {
34645
34930
  var value = _ref.value,
34646
34931
  _ref$bgColor = _ref.bgColor,
@@ -34810,7 +35095,7 @@ var SkillsContainer = function SkillsContainer(_ref) {
34810
35095
  };
34811
35096
  return React__default.createElement(SkillsDraggableContainer, {
34812
35097
  title: "Skills"
34813
- }, onCloseButton && React__default.createElement(CloseButton$2, {
35098
+ }, onCloseButton && React__default.createElement(CloseButton$3, {
34814
35099
  onClick: onCloseButton,
34815
35100
  onTouchStart: onCloseButton
34816
35101
  }, "X"), React__default.createElement(SkillSplitDiv, null, React__default.createElement("p", null, "General"), React__default.createElement("hr", {
@@ -34840,7 +35125,7 @@ var SkillSplitDiv = /*#__PURE__*/styled.div.withConfig({
34840
35125
  displayName: "SkillsContainer__SkillSplitDiv",
34841
35126
  componentId: "sc-1g0c67q-1"
34842
35127
  })(["width:100%;font-size:11px;hr{margin:0;margin-bottom:1rem;padding:0px;}p{margin-bottom:0px;}"]);
34843
- var CloseButton$2 = /*#__PURE__*/styled.div.withConfig({
35128
+ var CloseButton$3 = /*#__PURE__*/styled.div.withConfig({
34844
35129
  displayName: "SkillsContainer__CloseButton",
34845
35130
  componentId: "sc-1g0c67q-2"
34846
35131
  })(["position:absolute;top:2px;right:2px;color:white;z-index:22;font-size:0.7rem;"]);
@@ -34875,7 +35160,7 @@ var TimeWidget = function TimeWidget(_ref) {
34875
35160
  var onClose = _ref.onClose,
34876
35161
  TimeClock = _ref.TimeClock,
34877
35162
  periodOfDay = _ref.periodOfDay;
34878
- return React__default.createElement(Draggable, null, React__default.createElement(WidgetContainer, null, React__default.createElement(CloseButton$3, {
35163
+ return React__default.createElement(Draggable, null, React__default.createElement(WidgetContainer, null, React__default.createElement(CloseButton$4, {
34879
35164
  onClick: onClose
34880
35165
  }, "X"), React__default.createElement(DayNightContainer, null, React__default.createElement(DayNightPeriod, {
34881
35166
  periodOfDay: periodOfDay
@@ -34889,7 +35174,7 @@ var Time = /*#__PURE__*/styled.div.withConfig({
34889
35174
  displayName: "TimeWidget__Time",
34890
35175
  componentId: "sc-1ja236h-1"
34891
35176
  })(["top:0.75rem;right:0.5rem;position:absolute;font-size:", ";color:white;"], uiFonts.size.small);
34892
- var CloseButton$3 = /*#__PURE__*/styled.p.withConfig({
35177
+ var CloseButton$4 = /*#__PURE__*/styled.p.withConfig({
34893
35178
  displayName: "TimeWidget__CloseButton",
34894
35179
  componentId: "sc-1ja236h-2"
34895
35180
  })(["position:absolute;top:-0.5rem;margin:0;right:-0.2rem;font-size:", " !important;z-index:1;"], uiFonts.size.small);
@@ -35216,7 +35501,7 @@ exports.ErrorBoundary = ErrorBoundary;
35216
35501
  exports.HistoryDialog = HistoryDialog;
35217
35502
  exports.Input = Input;
35218
35503
  exports.InputRadio = InputRadio;
35219
- exports.ItemContainer = ItemContainer;
35504
+ exports.ItemContainer = ItemContainer$1;
35220
35505
  exports.ItemSelector = ItemSelector;
35221
35506
  exports.ItemSlot = ItemSlot;
35222
35507
  exports.ListMenu = ListMenu;