bnstooltips 1.5.0 → 1.6.2

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.
package/build/index.js CHANGED
@@ -167,8 +167,19 @@ styleInject(css_248z$5);
167
167
  function BuildIconPath(iconPath, iconIndex) {
168
168
  if (iconPath == null)
169
169
  return "";
170
- iconPath = iconPath.replace("/Game/Art/UI/GameUI/Resource/GameUI_Icon/Skill_Icon_DualBlader_2", "00008758");
171
- iconPath = iconPath.replace("/Game/Art/UI/GameUI/Resource/GameUI_Icon/Skill_Icon_Shooter_2", "00008758");
170
+ if (iconPath.startsWith("//")) {
171
+ iconPath = iconPath.substring(1);
172
+ }
173
+ if (iconPath.startsWith("/Game/")) {
174
+ var split = iconPath.split('/');
175
+ var last = split[split.length - 1];
176
+ var penultimate = split[split.length - 2];
177
+ if (last === penultimate) {
178
+ iconPath = iconPath.replace("/".concat(penultimate, "/"), "/");
179
+ }
180
+ }
181
+ iconPath = iconPath.replace("/Game/Art/UI/GameUI/Resource/GameUI_Icon/Skill_Icon_DualBlader_2", "/00008758/Skill_Icon_DualBlader_2");
182
+ iconPath = iconPath.replace("/Game/Art/UI/GameUI/Resource/GameUI_Icon/Skill_Icon_Shooter_2", "/00008758/Skill_Icon_Shooter_2");
172
183
  iconPath = ReplacePoharanSS(iconPath);
173
184
  var urlBase = "https://lean.bns.tools/bns/icons";
174
185
  if (!iconPath.startsWith("/"))
@@ -4948,6 +4959,184 @@ Object.assign({}, applyStyles$1, {
4948
4959
  }
4949
4960
  });
4950
4961
 
4962
+ var mouseCoords = {
4963
+ clientX: 0,
4964
+ clientY: 0
4965
+ };
4966
+ var activeInstances = [];
4967
+
4968
+ function storeMouseCoords(_ref) {
4969
+ var clientX = _ref.clientX,
4970
+ clientY = _ref.clientY;
4971
+ mouseCoords = {
4972
+ clientX: clientX,
4973
+ clientY: clientY
4974
+ };
4975
+ }
4976
+
4977
+ function addMouseCoordsListener(doc) {
4978
+ doc.addEventListener('mousemove', storeMouseCoords);
4979
+ }
4980
+
4981
+ function removeMouseCoordsListener(doc) {
4982
+ doc.removeEventListener('mousemove', storeMouseCoords);
4983
+ }
4984
+
4985
+ var followCursor = {
4986
+ name: 'followCursor',
4987
+ defaultValue: false,
4988
+ fn: function fn(instance) {
4989
+ var reference = instance.reference;
4990
+ var doc = getOwnerDocument(instance.props.triggerTarget || reference);
4991
+ var isInternalUpdate = false;
4992
+ var wasFocusEvent = false;
4993
+ var isUnmounted = true;
4994
+ var prevProps = instance.props;
4995
+
4996
+ function getIsInitialBehavior() {
4997
+ return instance.props.followCursor === 'initial' && instance.state.isVisible;
4998
+ }
4999
+
5000
+ function addListener() {
5001
+ doc.addEventListener('mousemove', onMouseMove);
5002
+ }
5003
+
5004
+ function removeListener() {
5005
+ doc.removeEventListener('mousemove', onMouseMove);
5006
+ }
5007
+
5008
+ function unsetGetReferenceClientRect() {
5009
+ isInternalUpdate = true;
5010
+ instance.setProps({
5011
+ getReferenceClientRect: null
5012
+ });
5013
+ isInternalUpdate = false;
5014
+ }
5015
+
5016
+ function onMouseMove(event) {
5017
+ // If the instance is interactive, avoid updating the position unless it's
5018
+ // over the reference element
5019
+ var isCursorOverReference = event.target ? reference.contains(event.target) : true;
5020
+ var followCursor = instance.props.followCursor;
5021
+ var clientX = event.clientX,
5022
+ clientY = event.clientY;
5023
+ var rect = reference.getBoundingClientRect();
5024
+ var relativeX = clientX - rect.left;
5025
+ var relativeY = clientY - rect.top;
5026
+
5027
+ if (isCursorOverReference || !instance.props.interactive) {
5028
+ instance.setProps({
5029
+ // @ts-ignore - unneeded DOMRect properties
5030
+ getReferenceClientRect: function getReferenceClientRect() {
5031
+ var rect = reference.getBoundingClientRect();
5032
+ var x = clientX;
5033
+ var y = clientY;
5034
+
5035
+ if (followCursor === 'initial') {
5036
+ x = rect.left + relativeX;
5037
+ y = rect.top + relativeY;
5038
+ }
5039
+
5040
+ var top = followCursor === 'horizontal' ? rect.top : y;
5041
+ var right = followCursor === 'vertical' ? rect.right : x;
5042
+ var bottom = followCursor === 'horizontal' ? rect.bottom : y;
5043
+ var left = followCursor === 'vertical' ? rect.left : x;
5044
+ return {
5045
+ width: right - left,
5046
+ height: bottom - top,
5047
+ top: top,
5048
+ right: right,
5049
+ bottom: bottom,
5050
+ left: left
5051
+ };
5052
+ }
5053
+ });
5054
+ }
5055
+ }
5056
+
5057
+ function create() {
5058
+ if (instance.props.followCursor) {
5059
+ activeInstances.push({
5060
+ instance: instance,
5061
+ doc: doc
5062
+ });
5063
+ addMouseCoordsListener(doc);
5064
+ }
5065
+ }
5066
+
5067
+ function destroy() {
5068
+ activeInstances = activeInstances.filter(function (data) {
5069
+ return data.instance !== instance;
5070
+ });
5071
+
5072
+ if (activeInstances.filter(function (data) {
5073
+ return data.doc === doc;
5074
+ }).length === 0) {
5075
+ removeMouseCoordsListener(doc);
5076
+ }
5077
+ }
5078
+
5079
+ return {
5080
+ onCreate: create,
5081
+ onDestroy: destroy,
5082
+ onBeforeUpdate: function onBeforeUpdate() {
5083
+ prevProps = instance.props;
5084
+ },
5085
+ onAfterUpdate: function onAfterUpdate(_, _ref2) {
5086
+ var followCursor = _ref2.followCursor;
5087
+
5088
+ if (isInternalUpdate) {
5089
+ return;
5090
+ }
5091
+
5092
+ if (followCursor !== undefined && prevProps.followCursor !== followCursor) {
5093
+ destroy();
5094
+
5095
+ if (followCursor) {
5096
+ create();
5097
+
5098
+ if (instance.state.isMounted && !wasFocusEvent && !getIsInitialBehavior()) {
5099
+ addListener();
5100
+ }
5101
+ } else {
5102
+ removeListener();
5103
+ unsetGetReferenceClientRect();
5104
+ }
5105
+ }
5106
+ },
5107
+ onMount: function onMount() {
5108
+ if (instance.props.followCursor && !wasFocusEvent) {
5109
+ if (isUnmounted) {
5110
+ onMouseMove(mouseCoords);
5111
+ isUnmounted = false;
5112
+ }
5113
+
5114
+ if (!getIsInitialBehavior()) {
5115
+ addListener();
5116
+ }
5117
+ }
5118
+ },
5119
+ onTrigger: function onTrigger(_, event) {
5120
+ if (isMouseEvent(event)) {
5121
+ mouseCoords = {
5122
+ clientX: event.clientX,
5123
+ clientY: event.clientY
5124
+ };
5125
+ }
5126
+
5127
+ wasFocusEvent = event.type === 'focus';
5128
+ },
5129
+ onHidden: function onHidden() {
5130
+ if (instance.props.followCursor) {
5131
+ unsetGetReferenceClientRect();
5132
+ removeListener();
5133
+ isUnmounted = true;
5134
+ }
5135
+ }
5136
+ };
5137
+ }
5138
+ };
5139
+
4951
5140
  tippy.setDefaultProps({
4952
5141
  render: render
4953
5142
  });
@@ -5340,9 +5529,9 @@ var css_248z$3 = ".tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[
5340
5529
  styleInject(css_248z$3);
5341
5530
 
5342
5531
  var ItemTooltipWrapper = function (_a) {
5343
- var data = _a.data, region = _a.region, children = _a.children, client = _a.client, _b = _a.offline, offline = _b === void 0 ? false : _b, _c = _a.interactive, interactive = _c === void 0 ? true : _c, _d = _a.placement, placement = _d === void 0 ? "right" : _d, _e = _a.debug, debug = _e === void 0 ? false : _e, jobstyleOverride = _a.jobstyleOverride;
5532
+ var data = _a.data, region = _a.region, children = _a.children, client = _a.client, _b = _a.offline, offline = _b === void 0 ? false : _b, _c = _a.interactive, interactive = _c === void 0 ? true : _c, _d = _a.placement, placement = _d === void 0 ? "right" : _d, _e = _a.debug, debug = _e === void 0 ? false : _e, jobstyleOverride = _a.jobstyleOverride, _f = _a.followCursor, followCursor$1 = _f === void 0 ? false : _f, _g = _a.trigger, trigger = _g === void 0 ? "mouseenter focus" : _g, _h = _a.showArrow, showArrow = _h === void 0 ? true : _h;
5344
5533
  var spanRef = React.useRef(null);
5345
- var _f = React.useState(null), childRef = _f[0], setChildRef = _f[1];
5534
+ var _j = React.useState(null), childRef = _j[0], setChildRef = _j[1];
5346
5535
  /**
5347
5536
  * Mount the temporary span element.
5348
5537
  * retrieve and store the target element's reference.
@@ -5353,10 +5542,10 @@ var ItemTooltipWrapper = function (_a) {
5353
5542
  }
5354
5543
  return function () { return setChildRef(null); };
5355
5544
  }, []);
5356
- var _g = React.useState(true), isOffline = _g[0], setIsOffline = _g[1];
5545
+ var _k = React.useState(true), isOffline = _k[0], setIsOffline = _k[1];
5357
5546
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
5358
5547
  children,
5359
- childRef ? (React__default["default"].createElement(Tippy, { appendTo: document.body, onMount: function () { return setIsOffline(offline); }, placement: placement, animation: "fade", interactive: interactive, content: React__default["default"].createElement(ItemTooltip, { region: region, jobstyleOverride: jobstyleOverride, data: data, offline: isOffline, client: client, debug: debug }), theme: "grade" + data.grade, reference: childRef })) : (React__default["default"].createElement("span", { ref: spanRef, style: { display: "none" } }))));
5548
+ childRef ? (React__default["default"].createElement(Tippy, { arrow: showArrow, trigger: trigger, plugins: [followCursor], followCursor: followCursor$1 && !interactive, appendTo: document.body, onMount: function () { return setIsOffline(offline); }, placement: placement, animation: "fade", interactive: interactive, content: React__default["default"].createElement(ItemTooltip, { region: region, jobstyleOverride: jobstyleOverride, data: data, offline: isOffline, client: client, debug: debug }), theme: "grade" + data.grade, reference: childRef })) : (React__default["default"].createElement("span", { ref: spanRef, style: { display: "none" } }))));
5360
5549
  };
5361
5550
 
5362
5551
  function ItemIconNameDiv(_a) {
@@ -6098,9 +6287,9 @@ var css_248z = ".tippy-box {\n max-width: none !important;\n background-color:
6098
6287
  styleInject(css_248z);
6099
6288
 
6100
6289
  var SkillTooltipWrapper = function (_a) {
6101
- var data = _a.data, children = _a.children, _b = _a.interactive, interactive = _b === void 0 ? false : _b, _c = _a.placement, placement = _c === void 0 ? "right" : _c;
6290
+ var data = _a.data, children = _a.children, _b = _a.interactive, interactive = _b === void 0 ? false : _b, _c = _a.placement, placement = _c === void 0 ? "right" : _c, _d = _a.followCursor, followCursor$1 = _d === void 0 ? false : _d, _e = _a.trigger, trigger = _e === void 0 ? "mouseenter focus" : _e, _f = _a.showArrow, showArrow = _f === void 0 ? true : _f;
6102
6291
  var spanRef = React.useRef(null);
6103
- var _d = React.useState(null), childRef = _d[0], setChildRef = _d[1];
6292
+ var _g = React.useState(null), childRef = _g[0], setChildRef = _g[1];
6104
6293
  /**
6105
6294
  * Mount the temporary span element.
6106
6295
  * retrieve and store the target element's reference.
@@ -6113,7 +6302,7 @@ var SkillTooltipWrapper = function (_a) {
6113
6302
  }, []);
6114
6303
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
6115
6304
  children,
6116
- childRef ? (React__default["default"].createElement(Tippy, { appendTo: document.body, placement: placement, animation: "fade", interactive: interactive, content: React__default["default"].createElement(SkillTooltip, { data: data, debug: false }), theme: "grade" + 4, reference: childRef })) : (React__default["default"].createElement("span", { ref: spanRef, style: { display: "none" } }))));
6305
+ childRef ? (React__default["default"].createElement(Tippy, { arrow: showArrow, trigger: trigger, plugins: [followCursor], followCursor: followCursor$1 && !interactive, appendTo: document.body, placement: placement, animation: "fade", interactive: interactive, content: React__default["default"].createElement(SkillTooltip, { data: data, debug: false }), theme: "grade" + 4, reference: childRef })) : (React__default["default"].createElement("span", { ref: spanRef, style: { display: "none" } }))));
6117
6306
  };
6118
6307
 
6119
6308
  exports.ServerRegion = void 0;