@rpg-engine/long-bow 0.2.86 → 0.2.88

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 +382 -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 +383 -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 +37 -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 +142 -0
  23. package/src/components/Item/Inventory/ItemSlot.tsx +147 -24
  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,105 @@ 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
+ }, React__default.createElement(Draggable, {
33639
+ defaultClassName: item ? 'draggable' : 'empty-slot',
33640
+ onStop: function onStop() {
33641
+ if (!item) {
33642
+ return;
33643
+ }
33644
+ if (wasDragged) {
33645
+ setWasDragged(false);
33646
+ var target = dragContainer.current;
33647
+ if (!target || !wasDragged) return;
33648
+ var style = window.getComputedStyle(target);
33649
+ var matrix = new DOMMatrixReadOnly(style.transform);
33650
+ var x = matrix.m41;
33651
+ var y = matrix.m42;
33652
+ setDragPosition({
33653
+ x: x,
33654
+ y: y
33655
+ });
33656
+ setTimeout(function () {
33657
+ if (checkIfItemCanBeMoved()) {
33658
+ if (item.stackQty && item.stackQty !== 1 && openQuantitySelector) openQuantitySelector(item.stackQty, onSuccesfulDrag);else onSuccesfulDrag(item.stackQty);
33659
+ } else {
33660
+ resetItem();
33661
+ setDragPosition({
33662
+ x: 0,
33663
+ y: 0
33664
+ });
33665
+ }
33666
+ }, 100);
33667
+ } else if (item) {
33668
+ if (!isContextMenuDisabled) setIsContextMenuVisible(!isContextMenuVisible);
33669
+ onClick(item.type, containerType, item);
33670
+ }
33671
+ },
33672
+ onStart: function onStart() {
33673
+ if (!item) {
33674
+ return;
33675
+ }
33676
+ if (onDragStart) {
33677
+ onDragStart(item, slotIndex, containerType);
33678
+ }
33679
+ },
33680
+ onDrag: function onDrag() {
33681
+ setWasDragged(true);
33682
+ setIsFocused(true);
33683
+ },
33684
+ position: dragPosition,
33685
+ cancel: ".empty-slot"
33686
+ }, React__default.createElement(ItemContainer, {
33687
+ ref: dragContainer,
33688
+ isFocused: isFocused,
33575
33689
  onMouseOver: function onMouseOver(event) {
33576
- return _onMouseOver(event, slotIndex, item, event.clientX, event.clientY);
33690
+ _onMouseOver(event, slotIndex, item, event.clientX, event.clientY);
33577
33691
  },
33578
33692
  onMouseOut: function onMouseOut() {
33579
33693
  if (_onMouseOut) _onMouseOut();
33580
33694
  },
33581
33695
  onMouseEnter: function onMouseEnter() {
33582
- return setTooltipVisible(true);
33696
+ setTooltipVisible(true);
33583
33697
  },
33584
33698
  onMouseLeave: function onMouseLeave() {
33585
- return setTooltipVisible(false);
33586
- },
33587
- onClick: function onClick() {
33588
33699
  setTooltipVisible(false);
33589
- if (item) {
33590
- if (!isContextMenuDisabled) {
33591
- setIsContextMenuVisible(!isContextMenuVisible);
33592
- }
33593
- _onClick(item.type, containerType, item);
33594
- }
33595
33700
  }
33596
- }, !isContextMenuDisabled && isContextMenuVisible && contextActions && React__default.createElement(RelativeListMenu, {
33701
+ }, onRenderSlot(item))), isTooltipVisible && item && React__default.createElement(ItemTooltip, {
33702
+ label: item.name
33703
+ }), !isContextMenuDisabled && isContextMenuVisible && contextActions && React__default.createElement(RelativeListMenu, {
33597
33704
  options: contextActions,
33598
33705
  onSelected: function onSelected(optionId) {
33599
33706
  setIsContextMenuVisible(false);
@@ -33604,21 +33711,25 @@ var ItemSlot = /*#__PURE__*/mobxReactLite.observer(function (_ref) {
33604
33711
  onOutsideClick: function onOutsideClick() {
33605
33712
  setIsContextMenuVisible(false);
33606
33713
  }
33607
- }), isTooltipVisible && item && React__default.createElement(ItemTooltip, {
33608
- label: item.name
33609
- }), onRenderSlot(item));
33714
+ }));
33610
33715
  });
33611
33716
  var Container$a = /*#__PURE__*/styled.div.withConfig({
33612
33717
  displayName: "ItemSlot__Container",
33613
33718
  componentId: "sc-l2j5ef-0"
33614
33719
  })(["margin:0.1rem;.sprite-from-atlas-img{position:relative;top:1.5rem;left:1.5rem;}position:relative;"]);
33720
+ var ItemContainer = /*#__PURE__*/styled.div.withConfig({
33721
+ displayName: "ItemSlot__ItemContainer",
33722
+ componentId: "sc-l2j5ef-1"
33723
+ })(["width:100%;height:100%;position:relative;", ""], function (props) {
33724
+ return props.isFocused && 'z-index: 100; pointer-events: none;';
33725
+ });
33615
33726
  var ItemQtyContainer = /*#__PURE__*/styled.div.withConfig({
33616
33727
  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;"]);
33728
+ componentId: "sc-l2j5ef-2"
33729
+ })(["position:relative;width:85%;height:16px;top:25px;left:2px;pointer-events:none;display:flex;justify-content:flex-end;"]);
33619
33730
  var ItemQty = /*#__PURE__*/styled.span.withConfig({
33620
33731
  displayName: "ItemSlot__ItemQty",
33621
- componentId: "sc-l2j5ef-2"
33732
+ componentId: "sc-l2j5ef-3"
33622
33733
  })(["&.regular{font-size:", ";}&.small{font-size:", ";}"], uiFonts.size.small, uiFonts.size.xsmall);
33623
33734
 
33624
33735
  var EquipmentSet = function EquipmentSet(_ref) {
@@ -33628,7 +33739,11 @@ var EquipmentSet = function EquipmentSet(_ref) {
33628
33739
  _onSelected = _ref.onSelected,
33629
33740
  onItemClick = _ref.onItemClick,
33630
33741
  atlasIMG = _ref.atlasIMG,
33631
- atlasJSON = _ref.atlasJSON;
33742
+ atlasJSON = _ref.atlasJSON,
33743
+ onItemDragEnd = _ref.onItemDragEnd,
33744
+ onItemDragStart = _ref.onItemDragStart,
33745
+ onItemPlaceDrop = _ref.onItemPlaceDrop,
33746
+ checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved;
33632
33747
  var neck = equipmentSet.neck,
33633
33748
  leftHand = equipmentSet.leftHand,
33634
33749
  ring = equipmentSet.ring,
@@ -33664,6 +33779,22 @@ var EquipmentSet = function EquipmentSet(_ref) {
33664
33779
  onSelected: function onSelected(optionId) {
33665
33780
  if (_onSelected) _onSelected(optionId);
33666
33781
  },
33782
+ onDragStart: function onDragStart(item, slotIndex, itemContainerType) {
33783
+ if (!item) {
33784
+ return;
33785
+ }
33786
+ if (onItemDragStart) onItemDragStart(item, slotIndex, itemContainerType);
33787
+ },
33788
+ onDragEnd: function onDragEnd(quantity) {
33789
+ if (onItemDragEnd) onItemDragEnd(quantity);
33790
+ },
33791
+ checkIfItemCanBeMoved: checkIfItemCanBeMoved,
33792
+ onPlaceDrop: function onPlaceDrop(item, slotIndex, itemContainerType) {
33793
+ if (!item) {
33794
+ return;
33795
+ }
33796
+ if (onItemPlaceDrop) onItemPlaceDrop(item, slotIndex, itemContainerType);
33797
+ },
33667
33798
  atlasIMG: atlasIMG,
33668
33799
  atlasJSON: atlasJSON
33669
33800
  });
@@ -33684,11 +33815,11 @@ var EquipmentSet = function EquipmentSet(_ref) {
33684
33815
  var EquipmentSetContainer = /*#__PURE__*/styled.div.withConfig({
33685
33816
  displayName: "EquipmentSet__EquipmentSetContainer",
33686
33817
  componentId: "sc-1wuddg2-0"
33687
- })(["width:inherit;display:flex;justify-content:center;flex-wrap:wrap;flex-direction:row;"]);
33818
+ })(["width:inherit;display:flex;justify-content:center;flex-wrap:wrap;flex-direction:row;touch-action:none;"]);
33688
33819
  var EquipmentColumn = /*#__PURE__*/styled.div.withConfig({
33689
33820
  displayName: "EquipmentSet__EquipmentColumn",
33690
33821
  componentId: "sc-1wuddg2-1"
33691
- })(["display:flex;justify-content:center;flex-wrap:wrap;flex-direction:column;"]);
33822
+ })(["display:flex;justify-content:center;flex-wrap:wrap;flex-direction:column;touch-action:none;"]);
33692
33823
 
33693
33824
  var IS_MOBILE_OR_TABLET = /*#__PURE__*/isMobile({
33694
33825
  tablet: true
@@ -34235,7 +34366,8 @@ var SlotsContainer = function SlotsContainer(_ref) {
34235
34366
  title = _ref.title,
34236
34367
  onClose = _ref.onClose,
34237
34368
  _onPositionChange = _ref.onPositionChange,
34238
- onOutsideClick = _ref.onOutsideClick;
34369
+ onOutsideClick = _ref.onOutsideClick,
34370
+ initialPosition = _ref.initialPosition;
34239
34371
  return React__default.createElement(DraggableContainer, {
34240
34372
  title: title,
34241
34373
  type: exports.RPGUIContainerTypes.Framed,
@@ -34256,11 +34388,167 @@ var SlotsContainer = function SlotsContainer(_ref) {
34256
34388
  });
34257
34389
  }
34258
34390
  },
34259
- onOutsideClick: onOutsideClick
34391
+ onOutsideClick: onOutsideClick,
34392
+ initialPosition: initialPosition
34260
34393
  }, children);
34261
34394
  };
34262
34395
 
34263
- var ItemContainer = function ItemContainer(_ref) {
34396
+ (function (RangeSliderType) {
34397
+ RangeSliderType["Slider"] = "rpgui-slider";
34398
+ RangeSliderType["GoldSlider"] = "rpgui-slider golden";
34399
+ })(exports.RangeSliderType || (exports.RangeSliderType = {}));
34400
+ var RangeSlider = function RangeSlider(_ref) {
34401
+ var type = _ref.type,
34402
+ valueMin = _ref.valueMin,
34403
+ valueMax = _ref.valueMax,
34404
+ width = _ref.width,
34405
+ _onChange = _ref.onChange,
34406
+ value = _ref.value;
34407
+ var sliderId = uuid.v4();
34408
+ var containerRef = React.useRef(null);
34409
+ var _useState = React.useState(0),
34410
+ left = _useState[0],
34411
+ setLeft = _useState[1];
34412
+ React.useEffect(function () {
34413
+ var _containerRef$current;
34414
+ var calculatedWidth = ((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.clientWidth) || 0;
34415
+ setLeft(Math.max((value - valueMin) / (valueMax - valueMin) * (calculatedWidth - 35) + 10));
34416
+ }, [value, valueMin, valueMax]);
34417
+ var typeClass = type === exports.RangeSliderType.GoldSlider ? 'golden' : '';
34418
+ return React__default.createElement("div", {
34419
+ style: {
34420
+ width: width,
34421
+ position: 'relative'
34422
+ },
34423
+ className: "rpgui-slider-container " + typeClass,
34424
+ id: "rpgui-slider-" + sliderId,
34425
+ ref: containerRef
34426
+ }, React__default.createElement("div", {
34427
+ style: {
34428
+ pointerEvents: 'none'
34429
+ }
34430
+ }, React__default.createElement("div", {
34431
+ className: "rpgui-slider-track " + typeClass
34432
+ }), React__default.createElement("div", {
34433
+ className: "rpgui-slider-left-edge " + typeClass
34434
+ }), React__default.createElement("div", {
34435
+ className: "rpgui-slider-right-edge " + typeClass
34436
+ }), React__default.createElement("div", {
34437
+ className: "rpgui-slider-thumb " + typeClass,
34438
+ style: {
34439
+ left: left
34440
+ }
34441
+ })), React__default.createElement(Input$1, {
34442
+ type: "range",
34443
+ style: {
34444
+ width: width
34445
+ },
34446
+ min: valueMin,
34447
+ max: valueMax,
34448
+ onChange: function onChange(e) {
34449
+ return _onChange(Number(e.target.value));
34450
+ },
34451
+ value: value,
34452
+ className: "rpgui-cursor-point"
34453
+ }));
34454
+ };
34455
+ var Input$1 = /*#__PURE__*/styled.input.withConfig({
34456
+ displayName: "RangeSlider__Input",
34457
+ componentId: "sc-v8mte9-0"
34458
+ })(["opacity:0;position:absolute;width:100%;height:100%;top:0;left:0;margin-top:-5px;"]);
34459
+
34460
+ var ItemQuantitySelector = function ItemQuantitySelector(_ref) {
34461
+ var quantity = _ref.quantity,
34462
+ onConfirm = _ref.onConfirm,
34463
+ onClose = _ref.onClose;
34464
+ var _useState = React.useState(quantity),
34465
+ value = _useState[0],
34466
+ setValue = _useState[1];
34467
+ var inputRef = React.useRef(null);
34468
+ React.useEffect(function () {
34469
+ if (inputRef.current) {
34470
+ inputRef.current.focus();
34471
+ inputRef.current.select();
34472
+ var closeSelector = function closeSelector(e) {
34473
+ if (e.key === 'Escape') {
34474
+ onClose();
34475
+ }
34476
+ };
34477
+ document.addEventListener('keydown', closeSelector);
34478
+ return function () {
34479
+ document.removeEventListener('keydown', closeSelector);
34480
+ };
34481
+ }
34482
+ return function () {};
34483
+ }, []);
34484
+ return React__default.createElement(StyledContainer, {
34485
+ type: exports.RPGUIContainerTypes.Framed,
34486
+ width: "25rem"
34487
+ }, React__default.createElement(CloseButton$2, {
34488
+ className: "container-close",
34489
+ onClick: onClose,
34490
+ onTouchStart: onClose
34491
+ }, "X"), React__default.createElement("h2", null, "Select quantity to move"), React__default.createElement(StyledForm, {
34492
+ style: {
34493
+ width: '100%'
34494
+ },
34495
+ onSubmit: function onSubmit(e) {
34496
+ e.preventDefault();
34497
+ var numberValue = Number(value);
34498
+ if (Number.isNaN(numberValue)) {
34499
+ return;
34500
+ }
34501
+ onConfirm(Math.max(1, Math.min(quantity, numberValue)));
34502
+ },
34503
+ noValidate: true
34504
+ }, React__default.createElement(StyledInput, {
34505
+ innerRef: inputRef,
34506
+ placeholder: "Enter quantity",
34507
+ type: "number",
34508
+ min: 1,
34509
+ max: quantity,
34510
+ value: value,
34511
+ onChange: function onChange(e) {
34512
+ if (Number(e.target.value) >= quantity) {
34513
+ setValue(quantity);
34514
+ return;
34515
+ }
34516
+ setValue(e.target.value);
34517
+ },
34518
+ onBlur: function onBlur(e) {
34519
+ var newValue = Math.max(1, Math.min(quantity, Number(e.target.value)));
34520
+ setValue(newValue);
34521
+ }
34522
+ }), React__default.createElement(RangeSlider, {
34523
+ type: exports.RangeSliderType.Slider,
34524
+ valueMin: 1,
34525
+ valueMax: quantity,
34526
+ width: "100%",
34527
+ onChange: setValue,
34528
+ value: value
34529
+ }), React__default.createElement(Button, {
34530
+ buttonType: exports.ButtonTypes.RPGUIButton,
34531
+ type: "submit"
34532
+ }, "Confirm")));
34533
+ };
34534
+ var StyledContainer = /*#__PURE__*/styled(RPGUIContainer).withConfig({
34535
+ displayName: "ItemQuantitySelector__StyledContainer",
34536
+ componentId: "sc-yfdtpn-0"
34537
+ })(["display:flex;flex-direction:column;align-items:center;"]);
34538
+ var StyledForm = /*#__PURE__*/styled.form.withConfig({
34539
+ displayName: "ItemQuantitySelector__StyledForm",
34540
+ componentId: "sc-yfdtpn-1"
34541
+ })(["display:flex;flex-direction:column;align-items:center;width:100%;"]);
34542
+ var StyledInput = /*#__PURE__*/styled(Input).withConfig({
34543
+ displayName: "ItemQuantitySelector__StyledInput",
34544
+ componentId: "sc-yfdtpn-2"
34545
+ })(["text-align:center;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}"]);
34546
+ var CloseButton$2 = /*#__PURE__*/styled.div.withConfig({
34547
+ displayName: "ItemQuantitySelector__CloseButton",
34548
+ componentId: "sc-yfdtpn-3"
34549
+ })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:0.8rem;"]);
34550
+
34551
+ var ItemContainer$1 = function ItemContainer(_ref) {
34264
34552
  var itemContainer = _ref.itemContainer,
34265
34553
  onClose = _ref.onClose,
34266
34554
  _onMouseOver = _ref.onMouseOver,
@@ -34270,7 +34558,19 @@ var ItemContainer = function ItemContainer(_ref) {
34270
34558
  atlasJSON = _ref.atlasJSON,
34271
34559
  atlasIMG = _ref.atlasIMG,
34272
34560
  _ref$disableContextMe = _ref.disableContextMenu,
34273
- disableContextMenu = _ref$disableContextMe === void 0 ? false : _ref$disableContextMe;
34561
+ disableContextMenu = _ref$disableContextMe === void 0 ? false : _ref$disableContextMe,
34562
+ onItemDragEnd = _ref.onItemDragEnd,
34563
+ onItemDragStart = _ref.onItemDragStart,
34564
+ onItemPlaceDrop = _ref.onItemPlaceDrop,
34565
+ checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
34566
+ initialPosition = _ref.initialPosition;
34567
+ var _useState = React.useState({
34568
+ isOpen: false,
34569
+ maxQuantity: 1,
34570
+ callback: function callback(_quantity) {}
34571
+ }),
34572
+ quantitySelect = _useState[0],
34573
+ setQuantitySelect = _useState[1];
34274
34574
  var onRenderSlots = function onRenderSlots() {
34275
34575
  var slots = [];
34276
34576
  for (var i = 0; i < itemContainer.slotQty; i++) {
@@ -34290,23 +34590,63 @@ var ItemContainer = function ItemContainer(_ref) {
34290
34590
  onSelected: function onSelected(optionId, item) {
34291
34591
  if (_onSelected) _onSelected(optionId, item);
34292
34592
  },
34593
+ onDragStart: function onDragStart(item, slotIndex, itemContainerType) {
34594
+ if (onItemDragStart) onItemDragStart(item, slotIndex, itemContainerType);
34595
+ },
34596
+ onDragEnd: function onDragEnd(quantity) {
34597
+ if (onItemDragEnd) onItemDragEnd(quantity);
34598
+ },
34599
+ checkIfItemCanBeMoved: checkIfItemCanBeMoved,
34600
+ openQuantitySelector: function openQuantitySelector(maxQuantity, callback) {
34601
+ setQuantitySelect({
34602
+ isOpen: true,
34603
+ maxQuantity: maxQuantity,
34604
+ callback: callback
34605
+ });
34606
+ },
34607
+ onPlaceDrop: function onPlaceDrop(item, slotIndex, itemContainerType) {
34608
+ if (onItemPlaceDrop) onItemPlaceDrop(item, slotIndex, itemContainerType);
34609
+ },
34293
34610
  atlasIMG: atlasIMG,
34294
34611
  atlasJSON: atlasJSON
34295
34612
  }));
34296
34613
  }
34297
34614
  return slots;
34298
34615
  };
34299
- return React__default.createElement(SlotsContainer, {
34616
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(SlotsContainer, {
34300
34617
  title: itemContainer.name || 'Container',
34301
- onClose: onClose
34618
+ onClose: onClose,
34619
+ initialPosition: initialPosition
34302
34620
  }, React__default.createElement(ItemsContainer, {
34303
34621
  className: "item-container-body"
34304
- }, onRenderSlots()));
34622
+ }, onRenderSlots())), quantitySelect.isOpen && React__default.createElement(QuantitySelectorContainer, null, React__default.createElement(ItemQuantitySelector, {
34623
+ quantity: quantitySelect.maxQuantity,
34624
+ onConfirm: function onConfirm(quantity) {
34625
+ quantitySelect.callback(quantity);
34626
+ setQuantitySelect({
34627
+ isOpen: false,
34628
+ maxQuantity: 1,
34629
+ callback: function callback() {}
34630
+ });
34631
+ },
34632
+ onClose: function onClose() {
34633
+ quantitySelect.callback(-1);
34634
+ setQuantitySelect({
34635
+ isOpen: false,
34636
+ maxQuantity: 1,
34637
+ callback: function callback() {}
34638
+ });
34639
+ }
34640
+ })));
34305
34641
  };
34306
34642
  var ItemsContainer = /*#__PURE__*/styled.div.withConfig({
34307
34643
  displayName: "ItemContainer__ItemsContainer",
34308
34644
  componentId: "sc-15y5p9l-0"
34309
34645
  })(["max-width:280px;display:flex;justify-content:center;flex-wrap:wrap;"]);
34646
+ var QuantitySelectorContainer = /*#__PURE__*/styled.div.withConfig({
34647
+ displayName: "ItemContainer__QuantitySelectorContainer",
34648
+ componentId: "sc-15y5p9l-1"
34649
+ })(["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
34650
 
34311
34651
  var ListMenu = function ListMenu(_ref) {
34312
34652
  var options = _ref.options,
@@ -34324,8 +34664,7 @@ var ListMenu = function ListMenu(_ref) {
34324
34664
  }, options.map(function (params, index) {
34325
34665
  return React__default.createElement(ListElement$1, {
34326
34666
  key: (params == null ? void 0 : params.id) || index,
34327
- onClick: function onClick(e) {
34328
- e.stopPropagation();
34667
+ onClick: function onClick() {
34329
34668
  onSelected(params == null ? void 0 : params.id);
34330
34669
  }
34331
34670
  }, (params == null ? void 0 : params.text) || 'No text');
@@ -34607,40 +34946,6 @@ var InputRadio = function InputRadio(_ref) {
34607
34946
  }));
34608
34947
  };
34609
34948
 
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
34949
  var SimpleProgressBar = function SimpleProgressBar(_ref) {
34645
34950
  var value = _ref.value,
34646
34951
  _ref$bgColor = _ref.bgColor,
@@ -34810,7 +35115,7 @@ var SkillsContainer = function SkillsContainer(_ref) {
34810
35115
  };
34811
35116
  return React__default.createElement(SkillsDraggableContainer, {
34812
35117
  title: "Skills"
34813
- }, onCloseButton && React__default.createElement(CloseButton$2, {
35118
+ }, onCloseButton && React__default.createElement(CloseButton$3, {
34814
35119
  onClick: onCloseButton,
34815
35120
  onTouchStart: onCloseButton
34816
35121
  }, "X"), React__default.createElement(SkillSplitDiv, null, React__default.createElement("p", null, "General"), React__default.createElement("hr", {
@@ -34840,7 +35145,7 @@ var SkillSplitDiv = /*#__PURE__*/styled.div.withConfig({
34840
35145
  displayName: "SkillsContainer__SkillSplitDiv",
34841
35146
  componentId: "sc-1g0c67q-1"
34842
35147
  })(["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({
35148
+ var CloseButton$3 = /*#__PURE__*/styled.div.withConfig({
34844
35149
  displayName: "SkillsContainer__CloseButton",
34845
35150
  componentId: "sc-1g0c67q-2"
34846
35151
  })(["position:absolute;top:2px;right:2px;color:white;z-index:22;font-size:0.7rem;"]);
@@ -34875,7 +35180,7 @@ var TimeWidget = function TimeWidget(_ref) {
34875
35180
  var onClose = _ref.onClose,
34876
35181
  TimeClock = _ref.TimeClock,
34877
35182
  periodOfDay = _ref.periodOfDay;
34878
- return React__default.createElement(Draggable, null, React__default.createElement(WidgetContainer, null, React__default.createElement(CloseButton$3, {
35183
+ return React__default.createElement(Draggable, null, React__default.createElement(WidgetContainer, null, React__default.createElement(CloseButton$4, {
34879
35184
  onClick: onClose
34880
35185
  }, "X"), React__default.createElement(DayNightContainer, null, React__default.createElement(DayNightPeriod, {
34881
35186
  periodOfDay: periodOfDay
@@ -34889,7 +35194,7 @@ var Time = /*#__PURE__*/styled.div.withConfig({
34889
35194
  displayName: "TimeWidget__Time",
34890
35195
  componentId: "sc-1ja236h-1"
34891
35196
  })(["top:0.75rem;right:0.5rem;position:absolute;font-size:", ";color:white;"], uiFonts.size.small);
34892
- var CloseButton$3 = /*#__PURE__*/styled.p.withConfig({
35197
+ var CloseButton$4 = /*#__PURE__*/styled.p.withConfig({
34893
35198
  displayName: "TimeWidget__CloseButton",
34894
35199
  componentId: "sc-1ja236h-2"
34895
35200
  })(["position:absolute;top:-0.5rem;margin:0;right:-0.2rem;font-size:", " !important;z-index:1;"], uiFonts.size.small);
@@ -35216,7 +35521,7 @@ exports.ErrorBoundary = ErrorBoundary;
35216
35521
  exports.HistoryDialog = HistoryDialog;
35217
35522
  exports.Input = Input;
35218
35523
  exports.InputRadio = InputRadio;
35219
- exports.ItemContainer = ItemContainer;
35524
+ exports.ItemContainer = ItemContainer$1;
35220
35525
  exports.ItemSelector = ItemSelector;
35221
35526
  exports.ItemSlot = ItemSlot;
35222
35527
  exports.ListMenu = ListMenu;