bnstooltips 2.0.2 → 2.1.0

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.
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import { ItemTooltipProps } from "./ItemTooltip.types";
3
3
  import "./ItemTooltip.scss";
4
- declare function ItemTooltip({ settings, jobstyleOverride }: ItemTooltipProps): JSX.Element;
5
- export default ItemTooltip;
4
+ declare function ItemTooltipComponent({ settings, jobstyleOverride, }: ItemTooltipProps): JSX.Element;
5
+ export default ItemTooltipComponent;
@@ -1,6 +1,7 @@
1
1
  import { BnsItemDto } from "../itemapiclient";
2
2
  import { ItemDownloadClient } from "../Utilities/ItemDownloadClient";
3
- import { ServerRegion, TooltipWithNetworkSettings } from "../Utilities/Models";
3
+ import { ServerRegion } from "../Utilities/Models";
4
+ import { TooltipWithNetworkSettings } from "../Utilities/TooltipSettingsBase";
4
5
  export interface ItemTooltipProps {
5
6
  settings: ItemTooltipSettings;
6
7
  jobstyleOverride?: string;
@@ -1,6 +1,7 @@
1
1
  import { INpc } from "../Utilities/INpc";
2
2
  import { ItemDownloadClient } from "../Utilities/ItemDownloadClient";
3
- import { ServerRegion, TooltipWithNetworkSettings } from "../Utilities/Models";
3
+ import { ServerRegion } from "../Utilities/Models";
4
+ import { TooltipWithNetworkSettings } from "../Utilities/TooltipSettingsBase";
4
5
  export interface NpcTooltipProps {
5
6
  settings: NpcTooltipSettings;
6
7
  }
@@ -1,5 +1,5 @@
1
1
  import { Skill } from "../Utilities/ISkill";
2
- import { TooltipSettingsBase } from "../Utilities/Models";
2
+ import { TooltipSettingsBase } from "../Utilities/TooltipSettingsBase";
3
3
  export interface SkillTooltipProps {
4
4
  settings: SkillTooltipSettings;
5
5
  }
@@ -2,5 +2,5 @@
2
2
  import "tippy.js/dist/tippy.css";
3
3
  import { TooltipWrapperProps } from "./TooltipWrapper.types";
4
4
  import "./TooltipWrapper.scss";
5
- declare function TooltipWrapper({ settings, tooltipSettings, children, jobstyleOverride, }: TooltipWrapperProps): JSX.Element;
5
+ declare function TooltipWrapper({ targetSettings, contentSettings, children, jobstyleOverride, }: TooltipWrapperProps): JSX.Element;
6
6
  export default TooltipWrapper;
@@ -1,9 +1,9 @@
1
1
  import { ReactNode } from "react";
2
2
  import { Placement } from "tippy.js";
3
- import { TooltipSettingsBase } from "../Utilities/Models";
3
+ import { TooltipSettingsBase } from "../Utilities/TooltipSettingsBase";
4
4
  export interface TooltipWrapperProps {
5
- settings?: TooltipWrapperSettings | undefined;
6
- tooltipSettings: TooltipSettingsBase;
5
+ targetSettings?: TooltipWrapperSettings | undefined;
6
+ contentSettings: TooltipSettingsBase;
7
7
  children?: ReactNode | undefined;
8
8
  jobstyleOverride?: string;
9
9
  }
@@ -1,4 +1,3 @@
1
- import { ItemDownloadClient } from "./ItemDownloadClient";
2
1
  export interface PatchesList {
3
2
  patches: {
4
3
  [key: string]: PatchesListPatch;
@@ -20,20 +19,3 @@ export declare enum ServerRegion {
20
19
  Korea = "Korea",
21
20
  KoreaTest = "KoreaTest"
22
21
  }
23
- export declare enum TooltipType {
24
- Item = 0,
25
- Skill = 1,
26
- Npc = 2
27
- }
28
- export declare abstract class TooltipSettingsBase {
29
- constructor(offline?: boolean);
30
- debug?: boolean;
31
- fullHeight?: boolean;
32
- offline?: boolean;
33
- type: TooltipType;
34
- }
35
- export declare abstract class TooltipWithNetworkSettings extends TooltipSettingsBase {
36
- constructor(region?: ServerRegion, client?: ItemDownloadClient, offline?: boolean);
37
- region?: ServerRegion;
38
- client?: ItemDownloadClient;
39
- }
@@ -0,0 +1,13 @@
1
+ import { ItemDownloadClient } from "./ItemDownloadClient";
2
+ import { ServerRegion } from "./Models";
3
+ export declare abstract class TooltipSettingsBase {
4
+ constructor();
5
+ debug?: boolean;
6
+ fullHeight?: boolean;
7
+ }
8
+ export declare abstract class TooltipWithNetworkSettings extends TooltipSettingsBase {
9
+ constructor(region?: ServerRegion, client?: ItemDownloadClient, offline?: boolean);
10
+ region?: ServerRegion;
11
+ client?: ItemDownloadClient;
12
+ offline?: boolean;
13
+ }
package/build/index.es.js CHANGED
@@ -5613,6 +5613,50 @@ var TooltipWrapperSettings = /** @class */ (function () {
5613
5613
  var css_248z$3 = ".tippy-box {\n max-width: none !important;\n background-color: transparent !important;\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3) !important;\n transition: 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important; }\n .tippy-box:hover {\n box-shadow: black 0px 20px 60px 0px !important; }\n\n.tippy-content {\n padding: 0 !important; }\n\n.tippy-box[data-theme~=\"grade1\"][data-placement^=\"bottom\"]\n.tippy-arrow::before {\n border-bottom-color: #6c6c6c !important; }\n\n.tippy-box[data-theme~=\"grade1\"][data-placement^=\"top\"]\n.tippy-arrow::before {\n border-top-color: #6c6c6c !important; }\n\n.tippy-box[data-theme~=\"grade1\"][data-placement^=\"left\"]\n.tippy-arrow::before {\n border-left-color: #6c6c6c !important; }\n\n.tippy-box[data-theme~=\"grade1\"][data-placement^=\"right\"]\n.tippy-arrow::before {\n border-right-color: #6c6c6c !important; }\n\n.tippy-box[data-theme~=\"grade2\"][data-placement^=\"bottom\"]\n.tippy-arrow::before {\n border-bottom-color: #ffffff !important; }\n\n.tippy-box[data-theme~=\"grade2\"][data-placement^=\"top\"]\n.tippy-arrow::before {\n border-top-color: #ffffff !important; }\n\n.tippy-box[data-theme~=\"grade2\"][data-placement^=\"left\"]\n.tippy-arrow::before {\n border-left-color: #ffffff !important; }\n\n.tippy-box[data-theme~=\"grade2\"][data-placement^=\"right\"]\n.tippy-arrow::before {\n border-right-color: #ffffff !important; }\n\n.tippy-box[data-theme~=\"grade3\"][data-placement^=\"bottom\"]\n.tippy-arrow::before {\n border-bottom-color: #58ff77 !important; }\n\n.tippy-box[data-theme~=\"grade3\"][data-placement^=\"top\"]\n.tippy-arrow::before {\n border-top-color: #58ff77 !important; }\n\n.tippy-box[data-theme~=\"grade3\"][data-placement^=\"left\"]\n.tippy-arrow::before {\n border-left-color: #58ff77 !important; }\n\n.tippy-box[data-theme~=\"grade3\"][data-placement^=\"right\"]\n.tippy-arrow::before {\n border-right-color: #58ff77 !important; }\n\n.tippy-box[data-theme~=\"grade4\"][data-placement^=\"bottom\"]\n.tippy-arrow::before {\n border-bottom-color: #46bee1 !important; }\n\n.tippy-box[data-theme~=\"grade4\"][data-placement^=\"top\"]\n.tippy-arrow::before {\n border-top-color: #46bee1 !important; }\n\n.tippy-box[data-theme~=\"grade4\"][data-placement^=\"left\"]\n.tippy-arrow::before {\n border-left-color: #46bee1 !important; }\n\n.tippy-box[data-theme~=\"grade4\"][data-placement^=\"right\"]\n.tippy-arrow::before {\n border-right-color: #46bee1 !important; }\n\n.tippy-box[data-theme~=\"grade5\"][data-placement^=\"bottom\"]\n.tippy-arrow::before {\n border-bottom-color: #d739ff !important; }\n\n.tippy-box[data-theme~=\"grade5\"][data-placement^=\"top\"]\n.tippy-arrow::before {\n border-top-color: #d739ff !important; }\n\n.tippy-box[data-theme~=\"grade5\"][data-placement^=\"left\"]\n.tippy-arrow::before {\n border-left-color: #d739ff !important; }\n\n.tippy-box[data-theme~=\"grade5\"][data-placement^=\"right\"]\n.tippy-arrow::before {\n border-right-color: #d739ff !important; }\n\n.tippy-box[data-theme~=\"grade6\"][data-placement^=\"bottom\"]\n.tippy-arrow::before {\n border-bottom-color: #f1b248 !important; }\n\n.tippy-box[data-theme~=\"grade6\"][data-placement^=\"top\"]\n.tippy-arrow::before {\n border-top-color: #f1b248 !important; }\n\n.tippy-box[data-theme~=\"grade6\"][data-placement^=\"left\"]\n.tippy-arrow::before {\n border-left-color: #f1b248 !important; }\n\n.tippy-box[data-theme~=\"grade6\"][data-placement^=\"right\"]\n.tippy-arrow::before {\n border-right-color: #f1b248 !important; }\n\n.tippy-box[data-theme~=\"grade7\"][data-placement^=\"bottom\"]\n.tippy-arrow::before {\n border-bottom-color: #ff770a !important; }\n\n.tippy-box[data-theme~=\"grade7\"][data-placement^=\"top\"]\n.tippy-arrow::before {\n border-top-color: #ff770a !important; }\n\n.tippy-box[data-theme~=\"grade7\"][data-placement^=\"left\"]\n.tippy-arrow::before {\n border-left-color: #ff770a !important; }\n\n.tippy-box[data-theme~=\"grade7\"][data-placement^=\"right\"]\n.tippy-arrow::before {\n border-right-color: #ff770a !important; }\n\n.tippy-box[data-theme~=\"grade8\"][data-placement^=\"bottom\"]\n.tippy-arrow::before {\n border-bottom-color: #ff0084 !important; }\n\n.tippy-box[data-theme~=\"grade8\"][data-placement^=\"top\"]\n.tippy-arrow::before {\n border-top-color: #ff0084 !important; }\n\n.tippy-box[data-theme~=\"grade8\"][data-placement^=\"left\"]\n.tippy-arrow::before {\n border-left-color: #ff0084 !important; }\n\n.tippy-box[data-theme~=\"grade8\"][data-placement^=\"right\"]\n.tippy-arrow::before {\n border-right-color: #ff0084 !important; }\n";
5614
5614
  styleInject(css_248z$3);
5615
5615
 
5616
+ var TooltipSettingsBase = /** @class */ (function () {
5617
+ function TooltipSettingsBase() {
5618
+ this.debug = false;
5619
+ this.fullHeight = false;
5620
+ }
5621
+ return TooltipSettingsBase;
5622
+ }());
5623
+ var TooltipWithNetworkSettings = /** @class */ (function (_super) {
5624
+ __extends(TooltipWithNetworkSettings, _super);
5625
+ function TooltipWithNetworkSettings(region, client, offline) {
5626
+ if (offline === void 0) { offline = false; }
5627
+ var _this = this;
5628
+ var l_offline = offline;
5629
+ if (region == null)
5630
+ l_offline = true;
5631
+ _this = _super.call(this) || this;
5632
+ _this.region = region;
5633
+ _this.client = client;
5634
+ _this.offline = l_offline;
5635
+ return _this;
5636
+ }
5637
+ return TooltipWithNetworkSettings;
5638
+ }(TooltipSettingsBase));
5639
+
5640
+ var ItemTooltipSettings = /** @class */ (function (_super) {
5641
+ __extends(ItemTooltipSettings, _super);
5642
+ function ItemTooltipSettings(data, region, client, offline) {
5643
+ var _this = _super.call(this, region, client, offline) || this;
5644
+ _this.data = data;
5645
+ return _this;
5646
+ }
5647
+ return ItemTooltipSettings;
5648
+ }(TooltipWithNetworkSettings));
5649
+
5650
+ var SkillTooltipSettings = /** @class */ (function (_super) {
5651
+ __extends(SkillTooltipSettings, _super);
5652
+ function SkillTooltipSettings(data) {
5653
+ var _this = _super.call(this) || this;
5654
+ _this.data = data;
5655
+ return _this;
5656
+ }
5657
+ return SkillTooltipSettings;
5658
+ }(TooltipSettingsBase));
5659
+
5616
5660
  var css_248z$2 = ".SkillTooltip_skillIconContainer {\n width: 60px;\n height: 60px;\n padding: 0;\n float: left;\n position: relative; }\n\n.SkillTooltip_skillIcon {\n width: 60px;\n height: 60px; }\n\n.SkillTooltip_buttonIcon {\n position: absolute;\n right: 1px;\n bottom: 1px;\n height: 18px;\n opacity: 0.9; }\n\n.SkillTooltip_buttonIconMouse {\n background-color: rgba(0, 0, 0, 0.8); }\n\n.SkillTooltip_mainText {\n font-weight: 500; }\n\n.SkillTooltip_smallText {\n font-size: 12px; }\n\n.SkillTooltip_subTextMargin {\n margin-bottom: 0.3rem; }\n\n.SkillTooltip_boundaryContainer {\n display: flex;\n width: 100%;\n margin-bottom: 0.5rem;\n line-height: 17px; }\n\n.SkillTooltip_boundary {\n flex: 1;\n flex-basis: 0px;\n min-width: 0;\n display: flex;\n flex-direction: column;\n color: black;\n margin: 0.15rem; }\n\n.SkillTooltip_boundary:first-of-type > .SkillTooltip_boundaryHead {\n border-radius: 3px 0 0 0; }\n\n.SkillTooltip_boundary:last-of-type > .SkillTooltip_boundaryHead {\n border-radius: 0 3px 0 0; }\n\n.SkillTooltip_boundary:first-of-type > .SkillTooltip_boundaryBody {\n border-radius: 0 0 0 3px; }\n\n.SkillTooltip_boundary:last-of-type > .SkillTooltip_boundaryBody {\n border-radius: 0 0 3px 0; }\n\n.SkillTooltip_boundaryHead {\n color: white;\n font-weight: 500;\n font-size: 12px;\n text-overflow: ellipsis;\n overflow: hidden;\n padding: 0.3rem;\n text-align: center;\n flex: 1;\n min-height: 26px;\n background-color: rgba(127, 127, 127, 0.4); }\n\n.SkillTooltip_boundaryBody {\n color: white;\n padding: 0.5rem 0.3rem;\n margin-top: 0.15rem;\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 40px;\n flex: 2;\n background-color: rgba(127, 127, 127, 0.4); }\n\n.SkillTooltip_boundaryBodyModifier {\n min-height: 33px !important; }\n\n.SkillTooltip_boundaryHasIcon {\n min-height: 50px !important; }\n\n.SkillTooltip_conditionRow {\n display: flex;\n align-items: center;\n font-size: 12px; }\n\n.SkillTooltip_conditionRow:not(:last-of-type) {\n margin-bottom: 0.1rem; }\n\n.SkillTooltip_conditionIcon {\n width: 20px;\n height: 20px;\n margin-right: 0.33rem; }\n\n.SkillTooltip_conditionIconSmall {\n width: 12px;\n height: 12px;\n margin-right: 0.22rem; }\n\n.tooltipArg {\n color: #46bee1;\n font-weight: 600; }\n\n.target-360 {\n background-image: url(\"./360.png\");\n background-repeat: no-repeat;\n background-position: 50% 60%;\n background-size: auto 64px; }\n\n.target-front-180 {\n background-image: url(\"./180.png\");\n background-repeat: no-repeat;\n background-position: 50% 70%;\n background-size: auto 64px; }\n\n.laser {\n background-image: url(\"./laser.png\");\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: auto 64px; }\n";
5617
5661
  styleInject(css_248z$2);
5618
5662
 
@@ -5891,6 +5935,18 @@ function AddIds(subInfoGroups, skill) {
5891
5935
  });
5892
5936
  }
5893
5937
 
5938
+ var NpcTooltipSettings = /** @class */ (function (_super) {
5939
+ __extends(NpcTooltipSettings, _super);
5940
+ function NpcTooltipSettings(npc, region, grade, client, offline) {
5941
+ if (grade === void 0) { grade = 4; }
5942
+ var _this = _super.call(this, region, client, offline) || this;
5943
+ _this.npc = npc;
5944
+ _this.grade = grade;
5945
+ return _this;
5946
+ }
5947
+ return NpcTooltipSettings;
5948
+ }(TooltipWithNetworkSettings));
5949
+
5894
5950
  var css_248z$1 = ".NpcTooltip_toggleBarContainer {\n display: flex; }\n\n.NpcTooltip_toggleButton {\n border: none;\n padding: 0.33rem;\n margin: 0 0.1rem;\n border-radius: 0;\n background-color: rgba(233, 233, 233, 0.1);\n color: #fff;\n opacity: 0.8;\n cursor: pointer;\n transition: background-color 0.1s; }\n .NpcTooltip_toggleButton:hover {\n background-color: rgba(255, 255, 255, 0.2);\n opacity: 1; }\n .NpcTooltip_toggleButton-active {\n background-color: rgba(255, 255, 255, 0.3) !important;\n color: #fff;\n opacity: 1; }\n .NpcTooltip_toggleButton img {\n width: 32px;\n height: 32px; }\n\n.NpcTooltip_storeEntry {\n display: flex;\n align-items: stretch;\n background-color: rgba(233, 233, 233, 0.1);\n padding: 0.33rem;\n font-size: 14px; }\n .NpcTooltip_storeEntry:not(:last-child) {\n margin-bottom: 0.2rem; }\n\n.NpcTooltip_storeEntryItemNameLimit {\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center; }\n\n.NpcTooltip_storeEntryItemLimit {\n font-size: 12px; }\n\n.NpcTooltip_storeEntryItemName {\n flex: 1;\n display: flex;\n align-items: center; }\n\n.NpcTooltip_storeEntryItemIconName {\n display: flex;\n align-items: center; }\n .NpcTooltip_storeEntryItemIconName img {\n width: 48px;\n height: 48px;\n margin-right: 0.33rem; }\n\n.NpcTooltip_itemBuyPriceEntriesContainer {\n display: flex;\n flex-direction: column;\n flex: 1;\n align-items: flex-end;\n justify-content: center;\n padding-left: 2rem; }\n\n.NpcTooltip_itemBuyPriceEntries {\n display: flex; }\n .NpcTooltip_itemBuyPriceEntries-moneyMargin {\n margin-bottom: 0.2rem; }\n\n.NpcTooltip_itemBuyPriceEntry:not(:first-child) {\n margin-left: 0.33rem; }\n\n.NpcTooltip_itemBuyPriceEntryContainer {\n position: relative;\n height: 32px; }\n .NpcTooltip_itemBuyPriceEntryContainer img {\n width: 32px;\n height: 32px; }\n .NpcTooltip_itemBuyPriceEntryContainer-shadow {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 0 2px 0px #000000; }\n\n.NpcTooltip_itemBuyPriceEntryCount {\n position: absolute;\n bottom: 0;\n left: 0;\n color: #ffffff;\n background-color: rgba(0, 0, 0, 0.4);\n width: 32px;\n line-height: 12px;\n text-align: center; }\n\n.NpcTooltip_moneyContainer {\n display: flex;\n align-items: center;\n justify-content: flex-end; }\n .NpcTooltip_moneyContainer > span {\n display: flex;\n align-items: center; }\n .NpcTooltip_moneyContainer > span:not(:first-child) {\n margin-left: 0.1rem; }\n .NpcTooltip_moneyContainer > span > img {\n width: 16px;\n height: 16px; }\n";
5895
5951
  styleInject(css_248z$1);
5896
5952
 
@@ -5905,54 +5961,6 @@ function StoreToggleBar(_a) {
5905
5961
  return (React.createElement("div", { className: "NpcTooltip_toggleBarContainer" }, stores.map(function (store, i) { return (React.createElement(StoreToggle, { key: i, store: store, isActive: activeTab === i, setActive: function () { return setActiveTab(i); } })); })));
5906
5962
  }
5907
5963
 
5908
- var ServerRegion;
5909
- (function (ServerRegion) {
5910
- ServerRegion["EUNA"] = "EUNA";
5911
- ServerRegion["Korea"] = "Korea";
5912
- ServerRegion["KoreaTest"] = "KoreaTest";
5913
- })(ServerRegion || (ServerRegion = {}));
5914
- var TooltipType;
5915
- (function (TooltipType) {
5916
- TooltipType[TooltipType["Item"] = 0] = "Item";
5917
- TooltipType[TooltipType["Skill"] = 1] = "Skill";
5918
- TooltipType[TooltipType["Npc"] = 2] = "Npc";
5919
- })(TooltipType || (TooltipType = {}));
5920
- var TooltipSettingsBase = /** @class */ (function () {
5921
- function TooltipSettingsBase(offline) {
5922
- if (offline === void 0) { offline = false; }
5923
- this.debug = false;
5924
- this.fullHeight = false;
5925
- this.offline = offline;
5926
- }
5927
- return TooltipSettingsBase;
5928
- }());
5929
- var TooltipWithNetworkSettings = /** @class */ (function (_super) {
5930
- __extends(TooltipWithNetworkSettings, _super);
5931
- function TooltipWithNetworkSettings(region, client, offline) {
5932
- if (offline === void 0) { offline = false; }
5933
- var _this = this;
5934
- var l_offline = offline;
5935
- if (region == null)
5936
- l_offline = true;
5937
- _this = _super.call(this, l_offline) || this;
5938
- _this.region = region;
5939
- _this.client = client;
5940
- return _this;
5941
- }
5942
- return TooltipWithNetworkSettings;
5943
- }(TooltipSettingsBase));
5944
-
5945
- var ItemTooltipSettings = /** @class */ (function (_super) {
5946
- __extends(ItemTooltipSettings, _super);
5947
- function ItemTooltipSettings(data, region, client, offline) {
5948
- var _this = _super.call(this, region, client, offline) || this;
5949
- _this.data = data;
5950
- _this.type = TooltipType.Item;
5951
- return _this;
5952
- }
5953
- return ItemTooltipSettings;
5954
- }(TooltipWithNetworkSettings));
5955
-
5956
5964
  var BuyLimitReset;
5957
5965
  (function (BuyLimitReset) {
5958
5966
  BuyLimitReset[BuyLimitReset["Day"] = 0] = "Day";
@@ -6039,7 +6047,7 @@ function StoreItemBuyPriceEntry(_a) {
6039
6047
  }, [itemRef, client]);
6040
6048
  var tooltipItemSettings = new ItemTooltipSettings(item, client.region, client);
6041
6049
  var wrapperSettings = new TooltipWrapperSettings(undefined, undefined, undefined, "click", undefined);
6042
- return (React.createElement("div", { className: "NpcTooltip_itemBuyPriceEntry" }, item ? (React.createElement(TooltipWrapper, { settings: wrapperSettings, tooltipSettings: tooltipItemSettings },
6050
+ return (React.createElement("div", { className: "NpcTooltip_itemBuyPriceEntry" }, item ? (React.createElement(TooltipWrapper, { targetSettings: wrapperSettings, contentSettings: tooltipItemSettings },
6043
6051
  React.createElement("div", { className: "NpcTooltip_itemBuyPriceEntryContainer" },
6044
6052
  React.createElement("div", { className: "NpcTooltip_itemBuyPriceEntryContainer-shadow" }),
6045
6053
  React.createElement("img", { className: "TooltipBase_iconbg-grade-" + item.grade, src: BuildIconPath(item.icon.iconPath), alt: "" }),
@@ -6073,7 +6081,7 @@ function NpcStoreEntry(_a) {
6073
6081
  var wrapperSettings = new TooltipWrapperSettings(undefined, undefined, undefined, "click", undefined);
6074
6082
  return (React.createElement("div", { className: "NpcTooltip_storeEntry" },
6075
6083
  React.createElement("div", { className: "NpcTooltip_storeEntryItemIconName" },
6076
- React.createElement(TooltipWrapper, { settings: wrapperSettings, tooltipSettings: tooltipItemSettings },
6084
+ React.createElement(TooltipWrapper, { targetSettings: wrapperSettings, contentSettings: tooltipItemSettings },
6077
6085
  React.createElement("img", { className: "TooltipBase_iconbg-grade-" + item.grade, src: BuildIconPath(item.icon.iconPath), alt: "" })),
6078
6086
  React.createElement("div", { className: "NpcTooltip_storeEntryItemNameLimit" },
6079
6087
  React.createElement("div", { className: "NpcTooltip_storeEntryItemName TooltipBase_grade-" + item.grade, dangerouslySetInnerHTML: { __html: item.name } }),
@@ -6153,14 +6161,15 @@ function AddStores(subInfoGroups, activeTab, client, Stores) {
6153
6161
  }
6154
6162
 
6155
6163
  function TooltipWrapper(_a) {
6156
- var settings = _a.settings, tooltipSettings = _a.tooltipSettings, children = _a.children, jobstyleOverride = _a.jobstyleOverride;
6157
- if (settings == undefined) {
6158
- settings = new TooltipWrapperSettings();
6164
+ var targetSettings = _a.targetSettings, contentSettings = _a.contentSettings, children = _a.children, jobstyleOverride = _a.jobstyleOverride;
6165
+ if (targetSettings == undefined) {
6166
+ targetSettings = new TooltipWrapperSettings();
6159
6167
  }
6160
- if (settings == null || tooltipSettings == null)
6168
+ if (targetSettings == null || contentSettings == null)
6161
6169
  return null;
6162
6170
  var spanRef = useRef(null);
6163
6171
  var _b = useState(null), childRef = _b[0], setChildRef = _b[1];
6172
+ var _c = useState(true), origOffline = _c[0], setOrigOffline = _c[1];
6164
6173
  /**
6165
6174
  * Mount the temporary span element.
6166
6175
  * retrieve and store the target element's reference.
@@ -6169,37 +6178,41 @@ function TooltipWrapper(_a) {
6169
6178
  if (spanRef.current) {
6170
6179
  setChildRef(spanRef.current.previousElementSibling);
6171
6180
  }
6181
+ var offline = contentSettings instanceof TooltipWithNetworkSettings
6182
+ ? contentSettings.offline
6183
+ : true;
6184
+ setOrigOffline(offline);
6172
6185
  return function () { return setChildRef(null); };
6173
6186
  }, []);
6174
- var _c = useState(true), isOffline = _c[0], setIsOffline = _c[1];
6175
- var _d = useState(4), grade = _d[0], setGrade = _d[1];
6176
- var _e = useState(null), content = _e[0], setContent = _e[1];
6187
+ var _d = useState(true), isOffline = _d[0], setIsOffline = _d[1];
6188
+ var _e = useState(4), grade = _e[0], setGrade = _e[1];
6189
+ var _f = useState(null), content = _f[0], setContent = _f[1];
6177
6190
  useEffect(function () {
6178
6191
  var _a;
6179
- if (tooltipSettings.type == TooltipType.Item) {
6180
- setContent(React.createElement(ItemTooltip, { jobstyleOverride: jobstyleOverride, settings: tooltipSettings }));
6181
- setGrade(tooltipSettings.data.grade);
6192
+ if (contentSettings == null)
6193
+ return;
6194
+ if (contentSettings instanceof TooltipWithNetworkSettings)
6195
+ contentSettings.offline = isOffline;
6196
+ if (contentSettings instanceof ItemTooltipSettings) {
6197
+ setContent(React.createElement(ItemTooltipComponent, { jobstyleOverride: jobstyleOverride, settings: contentSettings }));
6198
+ setGrade(contentSettings.data.grade);
6182
6199
  }
6183
- else if (tooltipSettings.type == TooltipType.Skill) {
6184
- setContent(React.createElement(SkillTooltip, { settings: tooltipSettings }));
6200
+ if (contentSettings instanceof SkillTooltipSettings) {
6201
+ setContent(React.createElement(SkillTooltip, { settings: contentSettings }));
6185
6202
  setGrade(4);
6186
6203
  }
6187
- else if (tooltipSettings.type == TooltipType.Npc) {
6188
- setContent(React.createElement(NpcTooltip, { settings: tooltipSettings }));
6189
- setGrade((_a = tooltipSettings.grade) !== null && _a !== void 0 ? _a : 4);
6204
+ if (contentSettings instanceof NpcTooltipSettings) {
6205
+ setContent(React.createElement(NpcTooltip, { settings: contentSettings }));
6206
+ setGrade((_a = contentSettings.grade) !== null && _a !== void 0 ? _a : 4);
6190
6207
  }
6191
- }, [tooltipSettings]);
6192
- useEffect(function () {
6193
- if (content != null)
6194
- setContent(function (prev) {
6195
- var newSettings = JSON.parse(JSON.stringify(tooltipSettings));
6196
- newSettings.offline = isOffline;
6197
- return React.cloneElement(prev, { tooltipSettings: newSettings });
6198
- });
6199
- }, [isOffline]);
6208
+ }, [contentSettings, isOffline]);
6209
+ function mountOfflineState() {
6210
+ if (origOffline != isOffline)
6211
+ setIsOffline(origOffline);
6212
+ }
6200
6213
  return (React.createElement(React.Fragment, null,
6201
6214
  children,
6202
- childRef && content ? (React.createElement(Tippy, { arrow: settings.showArrow, trigger: settings.trigger, plugins: [followCursor], followCursor: settings.followCursor && !settings.interactive, appendTo: document.body, onMount: function () { return setIsOffline(tooltipSettings.offline); }, placement: settings.placement, animation: "fade", interactive: settings.interactive, content: content, theme: "grade" + grade, reference: childRef })) : (React.createElement("span", { "data-testid": "TooltipWrapper", ref: spanRef, style: { display: "none" } }))));
6215
+ childRef && content ? (React.createElement(Tippy, { arrow: targetSettings.showArrow, trigger: targetSettings.trigger, plugins: [followCursor], followCursor: targetSettings.followCursor && !targetSettings.interactive, appendTo: document.body, onMount: function () { return mountOfflineState(); }, placement: targetSettings.placement, animation: "fade", interactive: targetSettings.interactive, content: content, theme: "grade" + grade, reference: childRef })) : (React.createElement("span", { "data-testid": "TooltipWrapper", ref: spanRef, style: { display: "none" } }))));
6203
6216
  }
6204
6217
 
6205
6218
  function ItemIconNameDiv(_a) {
@@ -6225,11 +6238,9 @@ function ItemIconNameDiv(_a) {
6225
6238
  }, [item, client]);
6226
6239
  if (itemData) {
6227
6240
  if (itemData.grade != 0) {
6228
- var itemSettings = new ItemTooltipSettings(itemData);
6229
- itemSettings.client = client;
6230
- itemSettings.region = region;
6241
+ var itemSettings = new ItemTooltipSettings(itemData, region, client);
6231
6242
  return (React.createElement("div", { className: "ItemTooltip_itemiconnamediv" },
6232
- React.createElement(TooltipWrapper, { settings: new TooltipWrapperSettings(), tooltipSettings: itemSettings },
6243
+ React.createElement(TooltipWrapper, { targetSettings: new TooltipWrapperSettings(), contentSettings: itemSettings },
6233
6244
  React.createElement("img", { className: "ItemTooltip_itemIconSmall", alt: "", src: BuildIconPath((_b = itemData.icon) === null || _b === void 0 ? void 0 : _b.iconPath) })),
6234
6245
  React.createElement("div", { className: "ItemTooltip_itemNameRandomDiv" },
6235
6246
  React.createElement("span", { className: "TooltipBase_grade-" + itemData.grade, dangerouslySetInnerHTML: { __html: itemData.name } }),
@@ -6330,7 +6341,7 @@ function AccountTransfer(_a) {
6330
6341
  "\u00A0copper")) : null));
6331
6342
  }
6332
6343
 
6333
- function ItemTooltip(_a) {
6344
+ function ItemTooltipComponent(_a) {
6334
6345
  var _this = this;
6335
6346
  var _b, _c, _d;
6336
6347
  var settings = _a.settings, jobstyleOverride = _a.jobstyleOverride;
@@ -6684,29 +6695,12 @@ function JsonArrayToJsxArray(stringArray) {
6684
6695
  return jsxArray;
6685
6696
  }
6686
6697
 
6687
- var NpcTooltipSettings = /** @class */ (function (_super) {
6688
- __extends(NpcTooltipSettings, _super);
6689
- function NpcTooltipSettings(npc, region, grade, client, offline) {
6690
- if (grade === void 0) { grade = 4; }
6691
- var _this = _super.call(this, region, client, offline) || this;
6692
- _this.npc = npc;
6693
- _this.grade = grade;
6694
- _this.type = TooltipType.Npc;
6695
- return _this;
6696
- }
6697
- return NpcTooltipSettings;
6698
- }(TooltipWithNetworkSettings));
6699
-
6700
- var SkillTooltipSettings = /** @class */ (function (_super) {
6701
- __extends(SkillTooltipSettings, _super);
6702
- function SkillTooltipSettings(data) {
6703
- var _this = _super.call(this) || this;
6704
- _this.data = data;
6705
- _this.type = TooltipType.Skill;
6706
- return _this;
6707
- }
6708
- return SkillTooltipSettings;
6709
- }(TooltipSettingsBase));
6698
+ var ServerRegion;
6699
+ (function (ServerRegion) {
6700
+ ServerRegion["EUNA"] = "EUNA";
6701
+ ServerRegion["Korea"] = "Korea";
6702
+ ServerRegion["KoreaTest"] = "KoreaTest";
6703
+ })(ServerRegion || (ServerRegion = {}));
6710
6704
 
6711
- export { GetCooldownString, ItemTooltip, ItemTooltipSettings, JsonTooltip, NpcTooltip, NpcTooltipSettings, ServerRegion, SkillTooltip, SkillTooltipSettings, TooltipBase, TooltipWrapper, TooltipWrapperSettings };
6705
+ export { GetCooldownString, ItemTooltipComponent as ItemTooltip, ItemTooltipSettings, JsonTooltip, NpcTooltip, NpcTooltipSettings, ServerRegion, SkillTooltip, SkillTooltipSettings, TooltipBase, TooltipWrapper, TooltipWrapperSettings };
6712
6706
  //# sourceMappingURL=index.es.js.map