@eveshipfit/ui-ingame 1.11.2 → 1.13.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.
- package/dist/index.d.mts +3 -1
- package/dist/index.mjs +2198 -777
- package/dist/style.css +399 -1
- package/dist/theme.css +1 -0
- package/package.json +4 -4
package/dist/index.mjs
CHANGED
|
@@ -2,8 +2,8 @@ import './style.css';
|
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
3
|
import { Activity, Fragment, createContext, useContext, useDeferredValue, useEffect, useEffectEvent, useId, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
4
4
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
-
import { UNIFORM, formatClock, formatDuration, formatNumber, useAttribute, useAttributeTooltip, useBayContents, useBayUsage, useBoosters, useBrowse, useCanFit, useChargeSearch, useChargeTree, useChargedModules, useCharges, useDamageProfiles, useDrag, useDroneRoom, useEngine, useFighterTubeUsage, useFighterTubes, useFit, useFitHistory, useFitPrice, useFitStore, useHardpoints, useHasRoom, useHullRefuses, useHullTree, useImages, useImplantSearch, useImplantTree, useImplants, useInfo, useLocalFits, useMissingSkills, useModes, useModuleSearch, useModuleTree, usePersonalFits, usePlacement, usePreview, useRackUsage, useRefusal, useSde, useShowInfo, useShownSnapshot, useSlots, useSnapshot, useStats, useType, useTypeBonuses, useTypePrice } from "@eveshipfit/react-hooks";
|
|
6
|
-
import { baseValue, squadronSize, tubeTakes } from "@eveshipfit/fitting";
|
|
5
|
+
import { UNIFORM, formatAttribute, formatClock, formatDuration, formatNumber, useAttribute, useAttributeTooltip, useBayContents, useBayUsage, useBoosters, useBrowse, useCanFit, useChargeSearch, useChargeTree, useChargedModules, useCharges, useDamageProfiles, useDrag, useDroneRoom, useEngine, useFighterTubeUsage, useFighterTubes, useFit, useFitHistory, useFitPrice, useFitStore, useHardpoints, useHasRoom, useHullRefuses, useHullTree, useImages, useImplantSearch, useImplantTree, useImplants, useInfo, useLocalFits, useMissingSkills, useModes, useModuleSearch, useModuleTree, useMutate, usePersonalFits, usePlacement, usePreview, useRackUsage, useRefusal, useSde, useShowInfo, useShownSnapshot, useSlots, useSnapshot, useStats, useType, useTypeBonuses, useTypePrice } from "@eveshipfit/react-hooks";
|
|
6
|
+
import { baseValue, canMutate, mutaplasmidsOf, mutationRanges, mutationRollOf, parseItemLink, parseMutationText, rollFits, rollMutation, squadronSize, tubeTakes } from "@eveshipfit/fitting";
|
|
7
7
|
// src/primitives/Dialog/Dialog.module.css
|
|
8
8
|
var Dialog_module_default = {
|
|
9
9
|
"close": "kwi1cG_close",
|
|
@@ -978,7 +978,7 @@ function SlotPress(t0) {
|
|
|
978
978
|
className,
|
|
979
979
|
"aria-label": label,
|
|
980
980
|
onClick: onPress,
|
|
981
|
-
onKeyDown: _temp$
|
|
981
|
+
onKeyDown: _temp$23
|
|
982
982
|
});
|
|
983
983
|
$[0] = className;
|
|
984
984
|
$[1] = label;
|
|
@@ -987,7 +987,7 @@ function SlotPress(t0) {
|
|
|
987
987
|
} else t1 = $[3];
|
|
988
988
|
return t1;
|
|
989
989
|
}
|
|
990
|
-
function _temp$
|
|
990
|
+
function _temp$23(event) {
|
|
991
991
|
if (event.key !== "Enter" && event.key !== " ") return;
|
|
992
992
|
event.preventDefault();
|
|
993
993
|
event.currentTarget.dispatchEvent(new MouseEvent("click", {
|
|
@@ -1008,6 +1008,7 @@ var WheelSlot_module_default = {
|
|
|
1008
1008
|
"frame": "T6VD6G_frame",
|
|
1009
1009
|
"icon": "T6VD6G_icon",
|
|
1010
1010
|
"module": "T6VD6G_module",
|
|
1011
|
+
"mutated": "T6VD6G_mutated",
|
|
1011
1012
|
"press": "T6VD6G_press",
|
|
1012
1013
|
"slot": "T6VD6G_slot"
|
|
1013
1014
|
};
|
|
@@ -1031,7 +1032,7 @@ const ammoBars = [
|
|
|
1031
1032
|
3.6
|
|
1032
1033
|
];
|
|
1033
1034
|
const emptyIconScale = { rig: 1.2 };
|
|
1034
|
-
function WheelSlot({ rack, angle, typeId, typeName, chargeTypeId, chargeable = false, state = "online", activatable = false, available = true, preview = false, tooltip, onPress, onDragStart, onDragEnd, label, actions: showActions = true, onUnfit, onRemoveCharge, onTogglePower, onShowInfo, onShowChargeInfo, className, style, ...props }) {
|
|
1035
|
+
function WheelSlot({ rack, angle, typeId, typeName, chargeTypeId, chargeable = false, state = "online", activatable = false, available = true, preview = false, mutated = false, tooltip, onPress, onDragStart, onDragEnd, label, actions: showActions = true, onUnfit, onRemoveCharge, onTogglePower, onShowInfo, onShowChargeInfo, className, style, ...props }) {
|
|
1035
1036
|
const images = useImages();
|
|
1036
1037
|
const texture = (name) => ({ "--texture": `url(${images.uiTexture(name)})` });
|
|
1037
1038
|
const fitted = typeId !== void 0;
|
|
@@ -1106,6 +1107,7 @@ function WheelSlot({ rack, angle, typeId, typeName, chargeTypeId, chargeable = f
|
|
|
1106
1107
|
className: WheelSlot_module_default.frame,
|
|
1107
1108
|
style: texture(frameTexture(fitted, preview, state, activatable))
|
|
1108
1109
|
}),
|
|
1110
|
+
fitted && mutated && /* @__PURE__ */ jsx("span", { className: WheelSlot_module_default.mutated }),
|
|
1109
1111
|
fitted && chargeable && ammoBars.map((offset) => /* @__PURE__ */ jsx("span", {
|
|
1110
1112
|
className: WheelSlot_module_default.ammo,
|
|
1111
1113
|
style: { "--offset": `${offset}deg` },
|
|
@@ -1401,7 +1403,7 @@ function useDecoded(src) {
|
|
|
1401
1403
|
image.decode().then(() => {
|
|
1402
1404
|
decoded.add(src);
|
|
1403
1405
|
setReady(src);
|
|
1404
|
-
}, _temp$
|
|
1406
|
+
}, _temp$22);
|
|
1405
1407
|
};
|
|
1406
1408
|
t1 = [src];
|
|
1407
1409
|
$[0] = src;
|
|
@@ -1421,7 +1423,7 @@ function useDecoded(src) {
|
|
|
1421
1423
|
} else t2 = $[5];
|
|
1422
1424
|
return t2;
|
|
1423
1425
|
}
|
|
1424
|
-
function _temp$
|
|
1426
|
+
function _temp$22() {}
|
|
1425
1427
|
function WheelGauge(t0) {
|
|
1426
1428
|
const $ = c(15);
|
|
1427
1429
|
const { resource, used, total, valueText } = t0;
|
|
@@ -1896,18 +1898,18 @@ function Menu(t0) {
|
|
|
1896
1898
|
role: "menu",
|
|
1897
1899
|
tabIndex: -1,
|
|
1898
1900
|
onToggle: t4,
|
|
1899
|
-
onKeyDown: _temp$
|
|
1901
|
+
onKeyDown: _temp$21,
|
|
1900
1902
|
onClick: stopped,
|
|
1901
1903
|
onDoubleClick: stopped,
|
|
1902
1904
|
onPointerDown: stopped,
|
|
1903
1905
|
onMouseDown: stopped,
|
|
1904
|
-
onContextMenu: _temp2$
|
|
1906
|
+
onContextMenu: _temp2$11,
|
|
1905
1907
|
children: opened.entries.map((entry, index) => entry === "separator" ? /* @__PURE__ */ jsx("hr", { className: ContextMenu_module_default.separator }, index) : /* @__PURE__ */ jsxs("button", {
|
|
1906
1908
|
type: "button",
|
|
1907
1909
|
role: "menuitem",
|
|
1908
1910
|
tabIndex: -1,
|
|
1909
1911
|
onClick: () => select(entry),
|
|
1910
|
-
onPointerMove: _temp3$
|
|
1912
|
+
onPointerMove: _temp3$6,
|
|
1911
1913
|
children: [/* @__PURE__ */ jsx("span", {
|
|
1912
1914
|
className: ContextMenu_module_default.icon,
|
|
1913
1915
|
children: entry.icon && /* @__PURE__ */ jsx(Icon, { name: entry.icon })
|
|
@@ -1920,14 +1922,14 @@ function Menu(t0) {
|
|
|
1920
1922
|
} else t3 = $[7];
|
|
1921
1923
|
return t3;
|
|
1922
1924
|
}
|
|
1923
|
-
function _temp3$
|
|
1925
|
+
function _temp3$6(event_2) {
|
|
1924
1926
|
return event_2.currentTarget.focus();
|
|
1925
1927
|
}
|
|
1926
|
-
function _temp2$
|
|
1928
|
+
function _temp2$11(event_1) {
|
|
1927
1929
|
event_1.preventDefault();
|
|
1928
1930
|
event_1.stopPropagation();
|
|
1929
1931
|
}
|
|
1930
|
-
function _temp$
|
|
1932
|
+
function _temp$21(event_0) {
|
|
1931
1933
|
event_0.stopPropagation();
|
|
1932
1934
|
walk(event_0);
|
|
1933
1935
|
}
|
|
@@ -2779,8 +2781,8 @@ function RemoteCapacitorTransmitter(props) {
|
|
|
2779
2781
|
return t2;
|
|
2780
2782
|
}
|
|
2781
2783
|
// src/components/FittingWheel/ModuleLines/parts/Bonus.tsx
|
|
2782
|
-
const percent = unit("%");
|
|
2783
|
-
function useBonus(name, itemRef, { decimals = 0, fixed, format = percent } = {}) {
|
|
2784
|
+
const percent$1 = unit("%");
|
|
2785
|
+
function useBonus(name, itemRef, { decimals = 0, fixed, format = percent$1 } = {}) {
|
|
2784
2786
|
const { value, text } = useAttribute(name, {
|
|
2785
2787
|
of: itemRef,
|
|
2786
2788
|
decimals,
|
|
@@ -2804,7 +2806,7 @@ function BonusLine$1(t0) {
|
|
|
2804
2806
|
itemRef,
|
|
2805
2807
|
name,
|
|
2806
2808
|
decimals: 0,
|
|
2807
|
-
format: percent,
|
|
2809
|
+
format: percent$1,
|
|
2808
2810
|
hideZero: true
|
|
2809
2811
|
});
|
|
2810
2812
|
$[0] = itemRef;
|
|
@@ -2825,7 +2827,7 @@ function SensorStrengths(t0) {
|
|
|
2825
2827
|
if ($[0] !== strengths) {
|
|
2826
2828
|
t4 = Symbol.for("react.early_return_sentinel");
|
|
2827
2829
|
bb0: {
|
|
2828
|
-
const shown = strengths.filter(_temp$
|
|
2830
|
+
const shown = strengths.filter(_temp$20);
|
|
2829
2831
|
if (shown.length === 0) {
|
|
2830
2832
|
t4 = null;
|
|
2831
2833
|
break bb0;
|
|
@@ -2833,7 +2835,7 @@ function SensorStrengths(t0) {
|
|
|
2833
2835
|
T0 = Attribute;
|
|
2834
2836
|
t3 = "ECMResistance";
|
|
2835
2837
|
t1 = ModuleTooltip_module_default.block;
|
|
2836
|
-
t2 = shown.map(_temp2$
|
|
2838
|
+
t2 = shown.map(_temp2$10);
|
|
2837
2839
|
}
|
|
2838
2840
|
$[0] = strengths;
|
|
2839
2841
|
$[1] = T0;
|
|
@@ -2873,14 +2875,14 @@ function SensorStrengths(t0) {
|
|
|
2873
2875
|
return t6;
|
|
2874
2876
|
}
|
|
2875
2877
|
/** The four ECM jammer strengths, like "5.8 Gravimetric ECM Jammer Strength". */
|
|
2876
|
-
function _temp2$
|
|
2878
|
+
function _temp2$10(strength) {
|
|
2877
2879
|
return /* @__PURE__ */ jsxs("span", { children: [
|
|
2878
2880
|
strength.text,
|
|
2879
2881
|
" ",
|
|
2880
2882
|
strength.displayName
|
|
2881
2883
|
] }, strength.name);
|
|
2882
2884
|
}
|
|
2883
|
-
function _temp$
|
|
2885
|
+
function _temp$20(t0) {
|
|
2884
2886
|
const { value } = t0;
|
|
2885
2887
|
return value;
|
|
2886
2888
|
}
|
|
@@ -2927,15 +2929,15 @@ function Cloak(t0) {
|
|
|
2927
2929
|
itemRef,
|
|
2928
2930
|
name: "maxVelocityModifier",
|
|
2929
2931
|
decimals: 0,
|
|
2930
|
-
format: _temp$
|
|
2932
|
+
format: _temp$19
|
|
2931
2933
|
});
|
|
2932
2934
|
$[0] = itemRef;
|
|
2933
2935
|
$[1] = t1;
|
|
2934
2936
|
} else t1 = $[1];
|
|
2935
2937
|
return t1;
|
|
2936
2938
|
}
|
|
2937
|
-
function _temp$
|
|
2938
|
-
return percent((value - 1) * 100, format);
|
|
2939
|
+
function _temp$19(value, format) {
|
|
2940
|
+
return percent$1((value - 1) * 100, format);
|
|
2939
2941
|
}
|
|
2940
2942
|
// src/components/FittingWheel/ModuleLines/CommandBonus.tsx
|
|
2941
2943
|
function CommandBonus(t0) {
|
|
@@ -2948,7 +2950,7 @@ function CommandBonus(t0) {
|
|
|
2948
2950
|
name: "commandBonus",
|
|
2949
2951
|
decimals: 2,
|
|
2950
2952
|
fixed: true,
|
|
2951
|
-
format: percent,
|
|
2953
|
+
format: percent$1,
|
|
2952
2954
|
layout: nameFirst
|
|
2953
2955
|
});
|
|
2954
2956
|
$[0] = itemRef;
|
|
@@ -3668,7 +3670,7 @@ function Resistance$1(t0) {
|
|
|
3668
3670
|
const t1 = useLayers(itemRef);
|
|
3669
3671
|
let t2;
|
|
3670
3672
|
if ($[0] !== t1) {
|
|
3671
|
-
const layers = t1.filter(_temp2$
|
|
3673
|
+
const layers = t1.filter(_temp2$9);
|
|
3672
3674
|
t2 = layers.map((layer) => /* @__PURE__ */ jsx(Layer, {
|
|
3673
3675
|
...layer,
|
|
3674
3676
|
withIcon: layers.length > 1
|
|
@@ -3679,11 +3681,11 @@ function Resistance$1(t0) {
|
|
|
3679
3681
|
return t2;
|
|
3680
3682
|
}
|
|
3681
3683
|
/** The resistances a module gives, for every layer. */
|
|
3682
|
-
function _temp2$
|
|
3684
|
+
function _temp2$9(t0) {
|
|
3683
3685
|
const { resistances } = t0;
|
|
3684
|
-
return resistances.some(_temp$
|
|
3686
|
+
return resistances.some(_temp$18);
|
|
3685
3687
|
}
|
|
3686
|
-
function _temp$
|
|
3688
|
+
function _temp$18(t0) {
|
|
3687
3689
|
const { value } = t0;
|
|
3688
3690
|
return value !== 1;
|
|
3689
3691
|
}
|
|
@@ -3693,13 +3695,13 @@ function DamageControl(t0) {
|
|
|
3693
3695
|
const t1 = useLayers(itemRef);
|
|
3694
3696
|
let t2;
|
|
3695
3697
|
if ($[0] !== t1) {
|
|
3696
|
-
t2 = t1.map(_temp3$
|
|
3698
|
+
t2 = t1.map(_temp3$5);
|
|
3697
3699
|
$[0] = t1;
|
|
3698
3700
|
$[1] = t2;
|
|
3699
3701
|
} else t2 = $[1];
|
|
3700
3702
|
return t2;
|
|
3701
3703
|
}
|
|
3702
|
-
function _temp3$
|
|
3704
|
+
function _temp3$5(layer) {
|
|
3703
3705
|
return /* @__PURE__ */ jsx(Layer, {
|
|
3704
3706
|
...layer,
|
|
3705
3707
|
withIcon: true
|
|
@@ -3864,7 +3866,7 @@ function useResistance(name, itemRef) {
|
|
|
3864
3866
|
return t1;
|
|
3865
3867
|
}
|
|
3866
3868
|
function _temp5$1(resonance, format) {
|
|
3867
|
-
return percent((1 - resonance) * 100, format);
|
|
3869
|
+
return percent$1((1 - resonance) * 100, format);
|
|
3868
3870
|
}
|
|
3869
3871
|
// src/components/FittingWheel/ModuleLines/ResistanceBonus.tsx
|
|
3870
3872
|
function ResistanceBonus(t0) {
|
|
@@ -3890,7 +3892,7 @@ function ResistanceBonus(t0) {
|
|
|
3890
3892
|
t3,
|
|
3891
3893
|
t4,
|
|
3892
3894
|
t5
|
|
3893
|
-
].filter(_temp$
|
|
3895
|
+
].filter(_temp$17);
|
|
3894
3896
|
const [first] = bonuses;
|
|
3895
3897
|
if (first === void 0) {
|
|
3896
3898
|
t6 = null;
|
|
@@ -3900,7 +3902,7 @@ function ResistanceBonus(t0) {
|
|
|
3900
3902
|
t6 = /* @__PURE__ */ jsxs(Attribute, {
|
|
3901
3903
|
name: first.name,
|
|
3902
3904
|
children: [
|
|
3903
|
-
percent(first.value ?? 0, { decimals: 0 }),
|
|
3905
|
+
percent$1(first.value ?? 0, { decimals: 0 }),
|
|
3904
3906
|
" ",
|
|
3905
3907
|
first.displayName
|
|
3906
3908
|
]
|
|
@@ -3925,7 +3927,7 @@ function ResistanceBonus(t0) {
|
|
|
3925
3927
|
className: ModuleTooltip_module_default.block,
|
|
3926
3928
|
children: ["Resistance Bonus:", /* @__PURE__ */ jsx("span", {
|
|
3927
3929
|
className: ModuleTooltip_module_default.bonuses,
|
|
3928
|
-
children: bonuses.map(_temp2$
|
|
3930
|
+
children: bonuses.map(_temp2$8)
|
|
3929
3931
|
})]
|
|
3930
3932
|
});
|
|
3931
3933
|
$[7] = bonuses;
|
|
@@ -3933,14 +3935,14 @@ function ResistanceBonus(t0) {
|
|
|
3933
3935
|
} else t7 = $[8];
|
|
3934
3936
|
return t7;
|
|
3935
3937
|
}
|
|
3936
|
-
function _temp2$
|
|
3938
|
+
function _temp2$8(t0) {
|
|
3937
3939
|
const { name, text } = t0;
|
|
3938
3940
|
return /* @__PURE__ */ jsx(Bonus, {
|
|
3939
3941
|
name,
|
|
3940
3942
|
text
|
|
3941
3943
|
}, name);
|
|
3942
3944
|
}
|
|
3943
|
-
function _temp$
|
|
3945
|
+
function _temp$17(bonus) {
|
|
3944
3946
|
return bonus.value;
|
|
3945
3947
|
}
|
|
3946
3948
|
// src/components/FittingWheel/ModuleLines/SensorBooster.tsx
|
|
@@ -4041,15 +4043,15 @@ function SignatureSuppressor(t0) {
|
|
|
4041
4043
|
itemRef,
|
|
4042
4044
|
name: "signatureSuppressorSignatureRadiusBonusPassive",
|
|
4043
4045
|
decimals: 0,
|
|
4044
|
-
format: _temp$
|
|
4046
|
+
format: _temp$16
|
|
4045
4047
|
});
|
|
4046
4048
|
$[0] = itemRef;
|
|
4047
4049
|
$[1] = t1;
|
|
4048
4050
|
} else t1 = $[1];
|
|
4049
4051
|
return t1;
|
|
4050
4052
|
}
|
|
4051
|
-
function _temp$
|
|
4052
|
-
return percent((1 - value) * 100, format);
|
|
4053
|
+
function _temp$16(value, format) {
|
|
4054
|
+
return percent$1((1 - value) * 100, format);
|
|
4053
4055
|
}
|
|
4054
4056
|
// src/components/FittingWheel/ModuleLines/Smartbomb.tsx
|
|
4055
4057
|
const hp = unit(" HP");
|
|
@@ -4149,7 +4151,7 @@ function StasisWebifier(props) {
|
|
|
4149
4151
|
t0 = {
|
|
4150
4152
|
of: props.itemRef,
|
|
4151
4153
|
decimals: 0,
|
|
4152
|
-
format: _temp$
|
|
4154
|
+
format: _temp$15
|
|
4153
4155
|
};
|
|
4154
4156
|
$[0] = props.itemRef;
|
|
4155
4157
|
$[1] = t0;
|
|
@@ -4179,8 +4181,8 @@ function StasisWebifier(props) {
|
|
|
4179
4181
|
} else t3 = $[8];
|
|
4180
4182
|
return t3;
|
|
4181
4183
|
}
|
|
4182
|
-
function _temp$
|
|
4183
|
-
return percent(-value, format);
|
|
4184
|
+
function _temp$15(value, format) {
|
|
4185
|
+
return percent$1(-value, format);
|
|
4184
4186
|
}
|
|
4185
4187
|
// src/components/FittingWheel/ModuleLines/TrackingComputer.tsx
|
|
4186
4188
|
function TrackingComputer(props) {
|
|
@@ -4242,7 +4244,7 @@ function BonusLine(t0) {
|
|
|
4242
4244
|
name,
|
|
4243
4245
|
decimals: 0,
|
|
4244
4246
|
fallback: 0,
|
|
4245
|
-
format: percent,
|
|
4247
|
+
format: percent$1,
|
|
4246
4248
|
layout: nameFirst
|
|
4247
4249
|
});
|
|
4248
4250
|
$[0] = itemRef;
|
|
@@ -4516,8 +4518,8 @@ function ModuleLines(props) {
|
|
|
4516
4518
|
// src/components/FittingWheel/ModuleTooltip.tsx
|
|
4517
4519
|
/** What EVE shows when hovering a fitted module. */
|
|
4518
4520
|
function ModuleTooltip(t0) {
|
|
4519
|
-
const $ = c(
|
|
4520
|
-
const { rack, itemRef, typeId, chargeTypeId, state, maxState } = t0;
|
|
4521
|
+
const $ = c(24);
|
|
4522
|
+
const { rack, itemRef, typeId, mutatedFrom, chargeTypeId, state, maxState } = t0;
|
|
4521
4523
|
let t1;
|
|
4522
4524
|
if ($[0] !== maxState || $[1] !== rack || $[2] !== state) {
|
|
4523
4525
|
t1 = moduleStatus(rack, state, maxState);
|
|
@@ -4534,56 +4536,64 @@ function ModuleTooltip(t0) {
|
|
|
4534
4536
|
$[5] = t2;
|
|
4535
4537
|
} else t2 = $[5];
|
|
4536
4538
|
let t3;
|
|
4537
|
-
if ($[6] !==
|
|
4538
|
-
t3 =
|
|
4539
|
+
if ($[6] !== mutatedFrom) {
|
|
4540
|
+
t3 = mutatedFrom !== void 0 && /* @__PURE__ */ jsx(MutatedFrom, { typeId: mutatedFrom });
|
|
4541
|
+
$[6] = mutatedFrom;
|
|
4542
|
+
$[7] = t3;
|
|
4543
|
+
} else t3 = $[7];
|
|
4544
|
+
let t4;
|
|
4545
|
+
if ($[8] !== chargeTypeId || $[9] !== itemRef) {
|
|
4546
|
+
t4 = chargeTypeId !== void 0 && /* @__PURE__ */ jsx(ChargeRow, {
|
|
4539
4547
|
itemRef,
|
|
4540
4548
|
typeId: chargeTypeId
|
|
4541
4549
|
});
|
|
4542
|
-
$[
|
|
4543
|
-
$[
|
|
4544
|
-
$[
|
|
4545
|
-
} else
|
|
4546
|
-
let
|
|
4547
|
-
if ($[
|
|
4548
|
-
|
|
4550
|
+
$[8] = chargeTypeId;
|
|
4551
|
+
$[9] = itemRef;
|
|
4552
|
+
$[10] = t4;
|
|
4553
|
+
} else t4 = $[10];
|
|
4554
|
+
let t5;
|
|
4555
|
+
if ($[11] !== itemRef || $[12] !== state || $[13] !== typeId) {
|
|
4556
|
+
t5 = /* @__PURE__ */ jsx(ModuleLines, {
|
|
4549
4557
|
typeId,
|
|
4550
4558
|
itemRef,
|
|
4551
4559
|
state
|
|
4552
4560
|
});
|
|
4553
|
-
$[
|
|
4554
|
-
$[
|
|
4555
|
-
$[
|
|
4556
|
-
$[
|
|
4557
|
-
} else
|
|
4558
|
-
let
|
|
4559
|
-
if ($[
|
|
4560
|
-
|
|
4561
|
+
$[11] = itemRef;
|
|
4562
|
+
$[12] = state;
|
|
4563
|
+
$[13] = typeId;
|
|
4564
|
+
$[14] = t5;
|
|
4565
|
+
} else t5 = $[14];
|
|
4566
|
+
let t6;
|
|
4567
|
+
if ($[15] !== status.text || $[16] !== status.tone) {
|
|
4568
|
+
t6 = /* @__PURE__ */ jsx("span", {
|
|
4561
4569
|
className: ModuleTooltip_module_default.status,
|
|
4562
4570
|
"data-tone": status.tone,
|
|
4563
4571
|
children: status.text
|
|
4564
4572
|
});
|
|
4565
|
-
$[
|
|
4566
|
-
$[
|
|
4567
|
-
$[
|
|
4568
|
-
} else
|
|
4569
|
-
let
|
|
4570
|
-
if ($[
|
|
4571
|
-
|
|
4573
|
+
$[15] = status.text;
|
|
4574
|
+
$[16] = status.tone;
|
|
4575
|
+
$[17] = t6;
|
|
4576
|
+
} else t6 = $[17];
|
|
4577
|
+
let t7;
|
|
4578
|
+
if ($[18] !== t2 || $[19] !== t3 || $[20] !== t4 || $[21] !== t5 || $[22] !== t6) {
|
|
4579
|
+
t7 = /* @__PURE__ */ jsxs("span", {
|
|
4572
4580
|
className: ModuleTooltip_module_default.tooltip,
|
|
4573
4581
|
children: [
|
|
4574
4582
|
t2,
|
|
4575
4583
|
t3,
|
|
4576
4584
|
t4,
|
|
4577
|
-
t5
|
|
4585
|
+
t5,
|
|
4586
|
+
t6
|
|
4578
4587
|
]
|
|
4579
4588
|
});
|
|
4580
|
-
$[
|
|
4581
|
-
$[
|
|
4582
|
-
$[
|
|
4583
|
-
$[
|
|
4584
|
-
$[
|
|
4585
|
-
|
|
4586
|
-
|
|
4589
|
+
$[18] = t2;
|
|
4590
|
+
$[19] = t3;
|
|
4591
|
+
$[20] = t4;
|
|
4592
|
+
$[21] = t5;
|
|
4593
|
+
$[22] = t6;
|
|
4594
|
+
$[23] = t7;
|
|
4595
|
+
} else t7 = $[23];
|
|
4596
|
+
return t7;
|
|
4587
4597
|
}
|
|
4588
4598
|
function TypeRow(t0) {
|
|
4589
4599
|
const $ = c(5);
|
|
@@ -4614,6 +4624,24 @@ function TypeRow(t0) {
|
|
|
4614
4624
|
} else t3 = $[4];
|
|
4615
4625
|
return t3;
|
|
4616
4626
|
}
|
|
4627
|
+
function MutatedFrom(t0) {
|
|
4628
|
+
const $ = c(2);
|
|
4629
|
+
const { typeId } = t0;
|
|
4630
|
+
const base = useType(typeId);
|
|
4631
|
+
if (base === void 0) return null;
|
|
4632
|
+
const t1 = `Mutated ${base.name}`;
|
|
4633
|
+
let t2;
|
|
4634
|
+
if ($[0] !== t1) {
|
|
4635
|
+
t2 = /* @__PURE__ */ jsx("span", {
|
|
4636
|
+
className: `${ModuleTooltip_module_default.iconless} ${ModuleTooltip_module_default.status}`,
|
|
4637
|
+
"data-tone": "muted",
|
|
4638
|
+
children: t1
|
|
4639
|
+
});
|
|
4640
|
+
$[0] = t1;
|
|
4641
|
+
$[1] = t2;
|
|
4642
|
+
} else t2 = $[1];
|
|
4643
|
+
return t2;
|
|
4644
|
+
}
|
|
4617
4645
|
/** The loaded charge, with how many; crystals and scripts without. */
|
|
4618
4646
|
function ChargeRow(t0) {
|
|
4619
4647
|
const $ = c(5);
|
|
@@ -4712,7 +4740,7 @@ const rackNames = {
|
|
|
4712
4740
|
};
|
|
4713
4741
|
/** What a slot of the fit shows, and what clicking, dragging and dropping on it does. */
|
|
4714
4742
|
function useFittingSlot(rack, index, content, available, t0) {
|
|
4715
|
-
const $ = c(
|
|
4743
|
+
const $ = c(144);
|
|
4716
4744
|
const readOnly = t0 === void 0 ? false : t0;
|
|
4717
4745
|
const store = useFitStore();
|
|
4718
4746
|
const sde = useSde();
|
|
@@ -4724,6 +4752,7 @@ function useFittingSlot(rack, index, content, available, t0) {
|
|
|
4724
4752
|
const shownCopy = useRef(false);
|
|
4725
4753
|
const { browse } = useBrowse();
|
|
4726
4754
|
const { show: showInfo } = useShowInfo();
|
|
4755
|
+
const { show: showMutate } = useMutate();
|
|
4727
4756
|
const { open, menu } = useContextMenu();
|
|
4728
4757
|
const item = content?.item;
|
|
4729
4758
|
const stats = content?.stats;
|
|
@@ -4785,16 +4814,18 @@ function useFittingSlot(rack, index, content, available, t0) {
|
|
|
4785
4814
|
const t4 = content?.preview;
|
|
4786
4815
|
const t5 = item?.type_id;
|
|
4787
4816
|
const t6 = type?.name;
|
|
4788
|
-
const t7 =
|
|
4789
|
-
const t8 =
|
|
4790
|
-
const t9 = stats?.
|
|
4791
|
-
const t10 =
|
|
4792
|
-
|
|
4817
|
+
const t7 = item?.mutation !== void 0;
|
|
4818
|
+
const t8 = charges.length > 0;
|
|
4819
|
+
const t9 = stats?.state;
|
|
4820
|
+
const t10 = stats?.maxState === "active" || stats?.maxState === "overload";
|
|
4821
|
+
const t11 = empty ? `Empty ${rackNames[rack]}` : type && stats && `${type.name}, ${stats.state}`;
|
|
4822
|
+
let t12;
|
|
4793
4823
|
if ($[18] !== content || $[19] !== item || $[20] !== rack || $[21] !== ref || $[22] !== stats) {
|
|
4794
|
-
|
|
4824
|
+
t12 = item && stats && ref !== void 0 && !content.preview ? /* @__PURE__ */ jsx(ModuleTooltip, {
|
|
4795
4825
|
rack,
|
|
4796
4826
|
itemRef: ref,
|
|
4797
4827
|
typeId: item.type_id,
|
|
4828
|
+
mutatedFrom: item.mutation?.base,
|
|
4798
4829
|
chargeTypeId: item.charge?.type_id,
|
|
4799
4830
|
state: stats.state,
|
|
4800
4831
|
maxState: stats.maxState
|
|
@@ -4804,108 +4835,150 @@ function useFittingSlot(rack, index, content, available, t0) {
|
|
|
4804
4835
|
$[20] = rack;
|
|
4805
4836
|
$[21] = ref;
|
|
4806
4837
|
$[22] = stats;
|
|
4807
|
-
$[23] =
|
|
4808
|
-
} else
|
|
4809
|
-
let
|
|
4810
|
-
if ($[24] !== available || $[25] !== chargeTypeId || $[26] !== t10 || $[27] !== t11 || $[28] !==
|
|
4811
|
-
|
|
4838
|
+
$[23] = t12;
|
|
4839
|
+
} else t12 = $[23];
|
|
4840
|
+
let t13;
|
|
4841
|
+
if ($[24] !== available || $[25] !== chargeTypeId || $[26] !== t10 || $[27] !== t11 || $[28] !== t12 || $[29] !== t4 || $[30] !== t5 || $[31] !== t6 || $[32] !== t7 || $[33] !== t8 || $[34] !== t9) {
|
|
4842
|
+
t13 = {
|
|
4812
4843
|
available,
|
|
4813
4844
|
preview: t4,
|
|
4814
4845
|
typeId: t5,
|
|
4815
4846
|
typeName: t6,
|
|
4847
|
+
mutated: t7,
|
|
4816
4848
|
chargeTypeId,
|
|
4817
|
-
chargeable:
|
|
4818
|
-
state:
|
|
4819
|
-
activatable:
|
|
4820
|
-
label:
|
|
4821
|
-
tooltip:
|
|
4849
|
+
chargeable: t8,
|
|
4850
|
+
state: t9,
|
|
4851
|
+
activatable: t10,
|
|
4852
|
+
label: t11,
|
|
4853
|
+
tooltip: t12
|
|
4822
4854
|
};
|
|
4823
4855
|
$[24] = available;
|
|
4824
4856
|
$[25] = chargeTypeId;
|
|
4825
4857
|
$[26] = t10;
|
|
4826
4858
|
$[27] = t11;
|
|
4827
|
-
$[28] =
|
|
4828
|
-
$[29] =
|
|
4829
|
-
$[30] =
|
|
4830
|
-
$[31] =
|
|
4831
|
-
$[32] =
|
|
4832
|
-
$[33] =
|
|
4833
|
-
$[34] =
|
|
4834
|
-
|
|
4835
|
-
|
|
4859
|
+
$[28] = t12;
|
|
4860
|
+
$[29] = t4;
|
|
4861
|
+
$[30] = t5;
|
|
4862
|
+
$[31] = t6;
|
|
4863
|
+
$[32] = t7;
|
|
4864
|
+
$[33] = t8;
|
|
4865
|
+
$[34] = t9;
|
|
4866
|
+
$[35] = t13;
|
|
4867
|
+
} else t13 = $[35];
|
|
4868
|
+
const shown = t13;
|
|
4836
4869
|
if (readOnly) {
|
|
4837
|
-
let
|
|
4838
|
-
if ($[
|
|
4839
|
-
|
|
4870
|
+
let t14;
|
|
4871
|
+
if ($[36] !== shown) {
|
|
4872
|
+
t14 = {
|
|
4840
4873
|
...shown,
|
|
4841
4874
|
actions: false
|
|
4842
4875
|
};
|
|
4843
|
-
$[
|
|
4844
|
-
$[
|
|
4845
|
-
} else
|
|
4846
|
-
return
|
|
4876
|
+
$[36] = shown;
|
|
4877
|
+
$[37] = t14;
|
|
4878
|
+
} else t14 = $[37];
|
|
4879
|
+
return t14;
|
|
4847
4880
|
}
|
|
4848
|
-
let t13;
|
|
4849
|
-
if ($[37] !== ref || $[38] !== store) {
|
|
4850
|
-
t13 = ref === void 0 ? void 0 : () => store.remove(ref);
|
|
4851
|
-
$[37] = ref;
|
|
4852
|
-
$[38] = store;
|
|
4853
|
-
$[39] = t13;
|
|
4854
|
-
} else t13 = $[39];
|
|
4855
|
-
const unfit = t13;
|
|
4856
4881
|
let t14;
|
|
4857
|
-
if ($[
|
|
4858
|
-
t14 =
|
|
4882
|
+
if ($[38] !== ref || $[39] !== store) {
|
|
4883
|
+
t14 = ref === void 0 ? void 0 : () => store.remove(ref);
|
|
4884
|
+
$[38] = ref;
|
|
4885
|
+
$[39] = store;
|
|
4886
|
+
$[40] = t14;
|
|
4887
|
+
} else t14 = $[40];
|
|
4888
|
+
const unfit = t14;
|
|
4889
|
+
let t15;
|
|
4890
|
+
if ($[41] !== item || $[42] !== ref || $[43] !== showInfo || $[44] !== side) {
|
|
4891
|
+
t15 = item && ref !== void 0 ? (element) => showInfo({
|
|
4859
4892
|
typeId: item.type_id,
|
|
4860
4893
|
ref
|
|
4861
4894
|
}, {
|
|
4862
4895
|
element,
|
|
4863
4896
|
side
|
|
4864
4897
|
}) : void 0;
|
|
4865
|
-
$[
|
|
4866
|
-
$[
|
|
4867
|
-
$[
|
|
4868
|
-
$[
|
|
4869
|
-
$[
|
|
4870
|
-
} else
|
|
4871
|
-
const showModuleInfo =
|
|
4872
|
-
let
|
|
4873
|
-
if ($[
|
|
4874
|
-
|
|
4898
|
+
$[41] = item;
|
|
4899
|
+
$[42] = ref;
|
|
4900
|
+
$[43] = showInfo;
|
|
4901
|
+
$[44] = side;
|
|
4902
|
+
$[45] = t15;
|
|
4903
|
+
} else t15 = $[45];
|
|
4904
|
+
const showModuleInfo = t15;
|
|
4905
|
+
let t16;
|
|
4906
|
+
if ($[46] !== chargeTypeId || $[47] !== ref || $[48] !== showInfo || $[49] !== side) {
|
|
4907
|
+
t16 = chargeTypeId !== void 0 && ref !== void 0 ? (element_0) => showInfo({
|
|
4875
4908
|
typeId: chargeTypeId,
|
|
4876
4909
|
ref
|
|
4877
4910
|
}, {
|
|
4878
4911
|
element: element_0,
|
|
4879
4912
|
side
|
|
4880
4913
|
}) : void 0;
|
|
4881
|
-
$[
|
|
4882
|
-
$[
|
|
4883
|
-
$[
|
|
4884
|
-
$[
|
|
4885
|
-
$[
|
|
4886
|
-
} else
|
|
4887
|
-
const showChargeInfo =
|
|
4888
|
-
let t16;
|
|
4889
|
-
if ($[50] !== ref || $[51] !== store) {
|
|
4890
|
-
t16 = ref === void 0 ? void 0 : () => store.setCharge(ref, void 0);
|
|
4891
|
-
$[50] = ref;
|
|
4892
|
-
$[51] = store;
|
|
4893
|
-
$[52] = t16;
|
|
4894
|
-
} else t16 = $[52];
|
|
4895
|
-
const removeCharge = t16;
|
|
4914
|
+
$[46] = chargeTypeId;
|
|
4915
|
+
$[47] = ref;
|
|
4916
|
+
$[48] = showInfo;
|
|
4917
|
+
$[49] = side;
|
|
4918
|
+
$[50] = t16;
|
|
4919
|
+
} else t16 = $[50];
|
|
4920
|
+
const showChargeInfo = t16;
|
|
4896
4921
|
let t17;
|
|
4897
|
-
if ($[
|
|
4898
|
-
t17 =
|
|
4899
|
-
$[
|
|
4900
|
-
$[
|
|
4901
|
-
$[
|
|
4902
|
-
|
|
4903
|
-
|
|
4904
|
-
} else t17 = $[57];
|
|
4905
|
-
const togglePower = t17;
|
|
4922
|
+
if ($[51] !== ref || $[52] !== store) {
|
|
4923
|
+
t17 = ref === void 0 ? void 0 : () => store.setCharge(ref, void 0);
|
|
4924
|
+
$[51] = ref;
|
|
4925
|
+
$[52] = store;
|
|
4926
|
+
$[53] = t17;
|
|
4927
|
+
} else t17 = $[53];
|
|
4928
|
+
const removeCharge = t17;
|
|
4906
4929
|
let t18;
|
|
4907
|
-
|
|
4908
|
-
|
|
4930
|
+
let unmutated;
|
|
4931
|
+
if ($[54] !== item || $[55] !== sde) {
|
|
4932
|
+
unmutated = sde.type(item?.mutation?.base ?? item?.type_id ?? -1);
|
|
4933
|
+
t18 = item !== void 0 && unmutated !== void 0 && canMutate(sde, unmutated) && (item.mutation === void 0 || mutationRollOf(sde, item) !== void 0);
|
|
4934
|
+
$[54] = item;
|
|
4935
|
+
$[55] = sde;
|
|
4936
|
+
$[56] = t18;
|
|
4937
|
+
$[57] = unmutated;
|
|
4938
|
+
} else {
|
|
4939
|
+
t18 = $[56];
|
|
4940
|
+
unmutated = $[57];
|
|
4941
|
+
}
|
|
4942
|
+
const mutable = t18;
|
|
4943
|
+
let t19;
|
|
4944
|
+
if ($[58] !== index || $[59] !== item || $[60] !== mutable || $[61] !== rack || $[62] !== ref || $[63] !== sde || $[64] !== showMutate || $[65] !== side || $[66] !== store || $[67] !== unmutated) {
|
|
4945
|
+
t19 = mutable && ref !== void 0 ? (element_1) => {
|
|
4946
|
+
const slot_0 = {
|
|
4947
|
+
type: rack,
|
|
4948
|
+
index
|
|
4949
|
+
};
|
|
4950
|
+
if (item.mutation === void 0) store.setMutation(ref, rollMutation(sde, unmutated.id, mutaplasmidsOf(sde, unmutated.id)[0].id, "base"));
|
|
4951
|
+
showMutate(slot_0, {
|
|
4952
|
+
element: element_1,
|
|
4953
|
+
side
|
|
4954
|
+
});
|
|
4955
|
+
} : void 0;
|
|
4956
|
+
$[58] = index;
|
|
4957
|
+
$[59] = item;
|
|
4958
|
+
$[60] = mutable;
|
|
4959
|
+
$[61] = rack;
|
|
4960
|
+
$[62] = ref;
|
|
4961
|
+
$[63] = sde;
|
|
4962
|
+
$[64] = showMutate;
|
|
4963
|
+
$[65] = side;
|
|
4964
|
+
$[66] = store;
|
|
4965
|
+
$[67] = unmutated;
|
|
4966
|
+
$[68] = t19;
|
|
4967
|
+
} else t19 = $[68];
|
|
4968
|
+
const mutate = t19;
|
|
4969
|
+
let t20;
|
|
4970
|
+
if ($[69] !== ref || $[70] !== stats || $[71] !== store || $[72] !== switchable) {
|
|
4971
|
+
t20 = switchable && stats.maxState !== "offline" ? () => store.setState(ref, stats.state === "offline" ? "online" : "offline") : void 0;
|
|
4972
|
+
$[69] = ref;
|
|
4973
|
+
$[70] = stats;
|
|
4974
|
+
$[71] = store;
|
|
4975
|
+
$[72] = switchable;
|
|
4976
|
+
$[73] = t20;
|
|
4977
|
+
} else t20 = $[73];
|
|
4978
|
+
const togglePower = t20;
|
|
4979
|
+
let t21;
|
|
4980
|
+
if ($[74] !== available || $[75] !== browse || $[76] !== chargeTypeId || $[77] !== content?.preview || $[78] !== item?.mutation || $[79] !== mutate || $[80] !== open || $[81] !== rack || $[82] !== ref || $[83] !== removeCharge || $[84] !== showChargeInfo || $[85] !== showModuleInfo || $[86] !== stats?.state || $[87] !== store || $[88] !== togglePower || $[89] !== unfit) {
|
|
4981
|
+
t21 = (event) => {
|
|
4909
4982
|
if (!available || content?.preview) return;
|
|
4910
4983
|
const anchor = event.currentTarget.querySelector("[data-slot-anchor]") ?? event.currentTarget;
|
|
4911
4984
|
open(event, [
|
|
@@ -4926,6 +4999,15 @@ function useFittingSlot(rack, index, content, available, t0) {
|
|
|
4926
4999
|
onSelect: removeCharge
|
|
4927
5000
|
},
|
|
4928
5001
|
"separator",
|
|
5002
|
+
mutate && {
|
|
5003
|
+
label: item?.mutation ? "Edit Mutation" : "Mutate",
|
|
5004
|
+
onSelect: () => mutate(anchor)
|
|
5005
|
+
},
|
|
5006
|
+
item?.mutation && ref !== void 0 && {
|
|
5007
|
+
label: "Remove Mutation",
|
|
5008
|
+
onSelect: () => store.setMutation(ref, void 0)
|
|
5009
|
+
},
|
|
5010
|
+
"separator",
|
|
4929
5011
|
{
|
|
4930
5012
|
label: "Set Filter for Slot",
|
|
4931
5013
|
onSelect: () => browse(rack)
|
|
@@ -4942,36 +5024,40 @@ function useFittingSlot(rack, index, content, available, t0) {
|
|
|
4942
5024
|
}
|
|
4943
5025
|
]);
|
|
4944
5026
|
};
|
|
4945
|
-
$[
|
|
4946
|
-
$[
|
|
4947
|
-
$[
|
|
4948
|
-
$[
|
|
4949
|
-
$[
|
|
4950
|
-
$[
|
|
4951
|
-
$[
|
|
4952
|
-
$[
|
|
4953
|
-
$[
|
|
4954
|
-
$[
|
|
4955
|
-
$[
|
|
4956
|
-
$[
|
|
4957
|
-
$[
|
|
4958
|
-
|
|
4959
|
-
|
|
4960
|
-
|
|
4961
|
-
|
|
4962
|
-
|
|
4963
|
-
|
|
4964
|
-
|
|
4965
|
-
|
|
4966
|
-
|
|
4967
|
-
$[
|
|
4968
|
-
$[
|
|
4969
|
-
$[
|
|
4970
|
-
$[
|
|
4971
|
-
|
|
4972
|
-
|
|
4973
|
-
|
|
4974
|
-
|
|
5027
|
+
$[74] = available;
|
|
5028
|
+
$[75] = browse;
|
|
5029
|
+
$[76] = chargeTypeId;
|
|
5030
|
+
$[77] = content?.preview;
|
|
5031
|
+
$[78] = item?.mutation;
|
|
5032
|
+
$[79] = mutate;
|
|
5033
|
+
$[80] = open;
|
|
5034
|
+
$[81] = rack;
|
|
5035
|
+
$[82] = ref;
|
|
5036
|
+
$[83] = removeCharge;
|
|
5037
|
+
$[84] = showChargeInfo;
|
|
5038
|
+
$[85] = showModuleInfo;
|
|
5039
|
+
$[86] = stats?.state;
|
|
5040
|
+
$[87] = store;
|
|
5041
|
+
$[88] = togglePower;
|
|
5042
|
+
$[89] = unfit;
|
|
5043
|
+
$[90] = t21;
|
|
5044
|
+
} else t21 = $[90];
|
|
5045
|
+
const t22 = dragging === void 0;
|
|
5046
|
+
let t23;
|
|
5047
|
+
if ($[91] !== browse || $[92] !== empty || $[93] !== rack || $[94] !== ref || $[95] !== stats || $[96] !== store || $[97] !== switchable) {
|
|
5048
|
+
t23 = switchable ? (event_0) => store.setState(ref, nextState(stats.state, stats.maxState, event_0.shiftKey)) : empty ? () => browse(rack) : void 0;
|
|
5049
|
+
$[91] = browse;
|
|
5050
|
+
$[92] = empty;
|
|
5051
|
+
$[93] = rack;
|
|
5052
|
+
$[94] = ref;
|
|
5053
|
+
$[95] = stats;
|
|
5054
|
+
$[96] = store;
|
|
5055
|
+
$[97] = switchable;
|
|
5056
|
+
$[98] = t23;
|
|
5057
|
+
} else t23 = $[98];
|
|
5058
|
+
let t24;
|
|
5059
|
+
if ($[99] !== ref || $[100] !== start || $[101] !== type?.name) {
|
|
5060
|
+
t24 = ref === void 0 ? void 0 : (event_1) => {
|
|
4975
5061
|
event_1.dataTransfer.effectAllowed = "copyMove";
|
|
4976
5062
|
event_1.dataTransfer.setData("text/plain", type?.name ?? "");
|
|
4977
5063
|
start({
|
|
@@ -4979,14 +5065,14 @@ function useFittingSlot(rack, index, content, available, t0) {
|
|
|
4979
5065
|
ref
|
|
4980
5066
|
});
|
|
4981
5067
|
};
|
|
4982
|
-
$[
|
|
4983
|
-
$[
|
|
4984
|
-
$[
|
|
4985
|
-
$[
|
|
4986
|
-
} else
|
|
4987
|
-
let
|
|
4988
|
-
if ($[
|
|
4989
|
-
|
|
5068
|
+
$[99] = ref;
|
|
5069
|
+
$[100] = start;
|
|
5070
|
+
$[101] = type?.name;
|
|
5071
|
+
$[102] = t24;
|
|
5072
|
+
} else t24 = $[102];
|
|
5073
|
+
let t25;
|
|
5074
|
+
if ($[103] !== dragging || $[104] !== index || $[105] !== rack || $[106] !== show || $[107] !== showItem || $[108] !== takes || $[109] !== target) {
|
|
5075
|
+
t25 = (event_2) => {
|
|
4990
5076
|
if (!takes(dragging)) return;
|
|
4991
5077
|
if (dragging.type === "item") {
|
|
4992
5078
|
showItem(dragging.ref, copies(event_2));
|
|
@@ -4998,28 +5084,28 @@ function useFittingSlot(rack, index, content, available, t0) {
|
|
|
4998
5084
|
index
|
|
4999
5085
|
}), target);
|
|
5000
5086
|
};
|
|
5001
|
-
$[
|
|
5002
|
-
$[
|
|
5003
|
-
$[
|
|
5004
|
-
$[
|
|
5005
|
-
$[
|
|
5006
|
-
$[
|
|
5007
|
-
$[
|
|
5008
|
-
$[
|
|
5009
|
-
} else
|
|
5010
|
-
let
|
|
5011
|
-
if ($[
|
|
5012
|
-
|
|
5087
|
+
$[103] = dragging;
|
|
5088
|
+
$[104] = index;
|
|
5089
|
+
$[105] = rack;
|
|
5090
|
+
$[106] = show;
|
|
5091
|
+
$[107] = showItem;
|
|
5092
|
+
$[108] = takes;
|
|
5093
|
+
$[109] = target;
|
|
5094
|
+
$[110] = t25;
|
|
5095
|
+
} else t25 = $[110];
|
|
5096
|
+
let t26;
|
|
5097
|
+
if ($[111] !== clear || $[112] !== target) {
|
|
5098
|
+
t26 = (event_3) => {
|
|
5013
5099
|
if (event_3.currentTarget.contains(event_3.relatedTarget)) return;
|
|
5014
5100
|
clear(target);
|
|
5015
5101
|
};
|
|
5016
|
-
$[
|
|
5017
|
-
$[
|
|
5018
|
-
$[
|
|
5019
|
-
} else
|
|
5020
|
-
let
|
|
5021
|
-
if ($[
|
|
5022
|
-
|
|
5102
|
+
$[111] = clear;
|
|
5103
|
+
$[112] = target;
|
|
5104
|
+
$[113] = t26;
|
|
5105
|
+
} else t26 = $[113];
|
|
5106
|
+
let t27;
|
|
5107
|
+
if ($[114] !== dragging || $[115] !== showItem || $[116] !== takes) {
|
|
5108
|
+
t27 = (event_4) => {
|
|
5023
5109
|
if (!takes(dragging)) return;
|
|
5024
5110
|
allowDrop(event_4, dragging);
|
|
5025
5111
|
if (dragging.type !== "item") return;
|
|
@@ -5027,14 +5113,14 @@ function useFittingSlot(rack, index, content, available, t0) {
|
|
|
5027
5113
|
if (copy_0) event_4.dataTransfer.dropEffect = "copy";
|
|
5028
5114
|
if (copy_0 !== shownCopy.current) showItem(dragging.ref, copy_0);
|
|
5029
5115
|
};
|
|
5030
|
-
$[
|
|
5031
|
-
$[
|
|
5032
|
-
$[
|
|
5033
|
-
$[
|
|
5034
|
-
} else
|
|
5035
|
-
let
|
|
5036
|
-
if ($[
|
|
5037
|
-
|
|
5116
|
+
$[114] = dragging;
|
|
5117
|
+
$[115] = showItem;
|
|
5118
|
+
$[116] = takes;
|
|
5119
|
+
$[117] = t27;
|
|
5120
|
+
} else t27 = $[117];
|
|
5121
|
+
let t28;
|
|
5122
|
+
if ($[118] !== clear || $[119] !== dragging || $[120] !== end || $[121] !== index || $[122] !== rack || $[123] !== store || $[124] !== takes || $[125] !== target) {
|
|
5123
|
+
t28 = (event_5) => {
|
|
5038
5124
|
if (!takes(dragging)) return;
|
|
5039
5125
|
event_5.preventDefault();
|
|
5040
5126
|
clear(target);
|
|
@@ -5052,55 +5138,55 @@ function useFittingSlot(rack, index, content, available, t0) {
|
|
|
5052
5138
|
});
|
|
5053
5139
|
end();
|
|
5054
5140
|
};
|
|
5055
|
-
$[
|
|
5056
|
-
$[
|
|
5057
|
-
$[
|
|
5058
|
-
$[
|
|
5059
|
-
$[
|
|
5060
|
-
$[
|
|
5061
|
-
$[
|
|
5062
|
-
$[
|
|
5063
|
-
$[
|
|
5064
|
-
} else
|
|
5065
|
-
let
|
|
5066
|
-
if ($[
|
|
5067
|
-
|
|
5141
|
+
$[118] = clear;
|
|
5142
|
+
$[119] = dragging;
|
|
5143
|
+
$[120] = end;
|
|
5144
|
+
$[121] = index;
|
|
5145
|
+
$[122] = rack;
|
|
5146
|
+
$[123] = store;
|
|
5147
|
+
$[124] = takes;
|
|
5148
|
+
$[125] = target;
|
|
5149
|
+
$[126] = t28;
|
|
5150
|
+
} else t28 = $[126];
|
|
5151
|
+
let t29;
|
|
5152
|
+
if ($[127] !== end || $[128] !== menu || $[129] !== removeCharge || $[130] !== showChargeInfo || $[131] !== showModuleInfo || $[132] !== shown || $[133] !== t21 || $[134] !== t22 || $[135] !== t23 || $[136] !== t24 || $[137] !== t25 || $[138] !== t26 || $[139] !== t27 || $[140] !== t28 || $[141] !== togglePower || $[142] !== unfit) {
|
|
5153
|
+
t29 = {
|
|
5068
5154
|
...shown,
|
|
5069
5155
|
menu,
|
|
5070
|
-
onContextMenu:
|
|
5071
|
-
actions:
|
|
5072
|
-
onPress:
|
|
5073
|
-
onDragStart:
|
|
5156
|
+
onContextMenu: t21,
|
|
5157
|
+
actions: t22,
|
|
5158
|
+
onPress: t23,
|
|
5159
|
+
onDragStart: t24,
|
|
5074
5160
|
onDragEnd: end,
|
|
5075
|
-
onDragEnter:
|
|
5076
|
-
onDragLeave:
|
|
5077
|
-
onDragOver:
|
|
5078
|
-
onDrop:
|
|
5161
|
+
onDragEnter: t25,
|
|
5162
|
+
onDragLeave: t26,
|
|
5163
|
+
onDragOver: t27,
|
|
5164
|
+
onDrop: t28,
|
|
5079
5165
|
onUnfit: unfit,
|
|
5080
5166
|
onShowInfo: showModuleInfo,
|
|
5081
5167
|
onShowChargeInfo: showChargeInfo,
|
|
5082
5168
|
onRemoveCharge: removeCharge,
|
|
5083
5169
|
onTogglePower: togglePower
|
|
5084
5170
|
};
|
|
5085
|
-
$[
|
|
5086
|
-
$[
|
|
5087
|
-
$[
|
|
5088
|
-
$[
|
|
5089
|
-
$[
|
|
5090
|
-
$[
|
|
5091
|
-
$[
|
|
5092
|
-
$[
|
|
5093
|
-
$[
|
|
5094
|
-
$[
|
|
5095
|
-
$[
|
|
5096
|
-
$[
|
|
5097
|
-
$[
|
|
5098
|
-
$[
|
|
5099
|
-
$[
|
|
5100
|
-
$[
|
|
5101
|
-
$[
|
|
5102
|
-
} else
|
|
5103
|
-
return
|
|
5171
|
+
$[127] = end;
|
|
5172
|
+
$[128] = menu;
|
|
5173
|
+
$[129] = removeCharge;
|
|
5174
|
+
$[130] = showChargeInfo;
|
|
5175
|
+
$[131] = showModuleInfo;
|
|
5176
|
+
$[132] = shown;
|
|
5177
|
+
$[133] = t21;
|
|
5178
|
+
$[134] = t22;
|
|
5179
|
+
$[135] = t23;
|
|
5180
|
+
$[136] = t24;
|
|
5181
|
+
$[137] = t25;
|
|
5182
|
+
$[138] = t26;
|
|
5183
|
+
$[139] = t27;
|
|
5184
|
+
$[140] = t28;
|
|
5185
|
+
$[141] = togglePower;
|
|
5186
|
+
$[142] = unfit;
|
|
5187
|
+
$[143] = t29;
|
|
5188
|
+
} else t29 = $[143];
|
|
5189
|
+
return t29;
|
|
5104
5190
|
}
|
|
5105
5191
|
function allowDrop(event, dragging) {
|
|
5106
5192
|
event.preventDefault();
|
|
@@ -5125,7 +5211,7 @@ function FittingAugmentations(t0) {
|
|
|
5125
5211
|
const boosters = useBoosters();
|
|
5126
5212
|
let t1;
|
|
5127
5213
|
if ($[0] !== implants || $[1] !== readOnly) {
|
|
5128
|
-
t1 = !readOnly || implants.some(_temp$
|
|
5214
|
+
t1 = !readOnly || implants.some(_temp$14);
|
|
5129
5215
|
$[0] = implants;
|
|
5130
5216
|
$[1] = readOnly;
|
|
5131
5217
|
$[2] = t1;
|
|
@@ -5180,7 +5266,7 @@ function FittingAugmentations(t0) {
|
|
|
5180
5266
|
} else t5 = $[15];
|
|
5181
5267
|
return t5;
|
|
5182
5268
|
}
|
|
5183
|
-
function _temp$
|
|
5269
|
+
function _temp$14(slot) {
|
|
5184
5270
|
return slot.item !== void 0;
|
|
5185
5271
|
}
|
|
5186
5272
|
function FittingAugmentation(t0) {
|
|
@@ -5620,9 +5706,9 @@ function FittingCentre() {
|
|
|
5620
5706
|
})
|
|
5621
5707
|
},
|
|
5622
5708
|
"separator",
|
|
5623
|
-
fit.items.some(_temp$
|
|
5709
|
+
fit.items.some(_temp$13) && {
|
|
5624
5710
|
label: "Strip Fitting",
|
|
5625
|
-
onSelect: () => store.remove(...store.getSnapshot().fit.items.flatMap(_temp2$
|
|
5711
|
+
onSelect: () => store.remove(...store.getSnapshot().fit.items.flatMap(_temp2$7))
|
|
5626
5712
|
}
|
|
5627
5713
|
]);
|
|
5628
5714
|
};
|
|
@@ -5714,10 +5800,10 @@ function FittingCentre() {
|
|
|
5714
5800
|
} else t8 = $[43];
|
|
5715
5801
|
return t8;
|
|
5716
5802
|
}
|
|
5717
|
-
function _temp2$
|
|
5803
|
+
function _temp2$7(item_0, ref) {
|
|
5718
5804
|
return keptOnStrip.has(item_0.slot.type) ? [] : [ref];
|
|
5719
5805
|
}
|
|
5720
|
-
function _temp$
|
|
5806
|
+
function _temp$13(item_1) {
|
|
5721
5807
|
return !keptOnStrip.has(item_1.slot.type);
|
|
5722
5808
|
}
|
|
5723
5809
|
const copiedRacks = [
|
|
@@ -5831,7 +5917,7 @@ function FittingModes(t0) {
|
|
|
5831
5917
|
if (modes.length === 0) return null;
|
|
5832
5918
|
let t1;
|
|
5833
5919
|
if ($[0] !== modes) {
|
|
5834
|
-
t1 = modes.map(_temp3$
|
|
5920
|
+
t1 = modes.map(_temp3$4);
|
|
5835
5921
|
$[0] = modes;
|
|
5836
5922
|
$[1] = t1;
|
|
5837
5923
|
} else t1 = $[1];
|
|
@@ -5856,7 +5942,7 @@ function FittingModes(t0) {
|
|
|
5856
5942
|
} else t3 = $[8];
|
|
5857
5943
|
return t3;
|
|
5858
5944
|
}
|
|
5859
|
-
function _temp3$
|
|
5945
|
+
function _temp3$4(t0) {
|
|
5860
5946
|
const { id, name } = t0;
|
|
5861
5947
|
return {
|
|
5862
5948
|
typeId: id,
|
|
@@ -6017,6 +6103,107 @@ function ServiceSlot({ typeId, typeName, state = "online", available = true, pre
|
|
|
6017
6103
|
})]
|
|
6018
6104
|
});
|
|
6019
6105
|
}
|
|
6106
|
+
// src/components/ItemInfo/anchoredCard.ts
|
|
6107
|
+
/** Opens a popover card next to `anchor`; closes it when the anchor goes away or the page scrolls under it. */
|
|
6108
|
+
function useAnchoredCard(anchor, onClose) {
|
|
6109
|
+
const $ = c(18);
|
|
6110
|
+
const card = useRef(null);
|
|
6111
|
+
const t0 = useId();
|
|
6112
|
+
let t1;
|
|
6113
|
+
if ($[0] !== t0) {
|
|
6114
|
+
let t2;
|
|
6115
|
+
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
6116
|
+
t2 = /[^\w-]/g;
|
|
6117
|
+
$[2] = t2;
|
|
6118
|
+
} else t2 = $[2];
|
|
6119
|
+
t1 = t0.replace(t2, "");
|
|
6120
|
+
$[0] = t0;
|
|
6121
|
+
$[1] = t1;
|
|
6122
|
+
} else t1 = $[1];
|
|
6123
|
+
const anchorName = `--item-info-${t1}`;
|
|
6124
|
+
const close = useEffectEvent(onClose);
|
|
6125
|
+
let t2;
|
|
6126
|
+
if ($[3] !== anchor?.element || $[4] !== anchorName) {
|
|
6127
|
+
t2 = () => {
|
|
6128
|
+
const element = anchor?.element;
|
|
6129
|
+
if (!(element instanceof HTMLElement)) return;
|
|
6130
|
+
const inline = element.style.getPropertyValue("anchor-name");
|
|
6131
|
+
const own = getComputedStyle(element).getPropertyValue("anchor-name");
|
|
6132
|
+
element.style.setProperty("anchor-name", own && own !== "none" ? `${own}, ${anchorName}` : anchorName);
|
|
6133
|
+
return () => element.style.setProperty("anchor-name", inline);
|
|
6134
|
+
};
|
|
6135
|
+
$[3] = anchor?.element;
|
|
6136
|
+
$[4] = anchorName;
|
|
6137
|
+
$[5] = t2;
|
|
6138
|
+
} else t2 = $[5];
|
|
6139
|
+
let t3;
|
|
6140
|
+
if ($[6] !== anchor || $[7] !== anchorName) {
|
|
6141
|
+
t3 = [anchor, anchorName];
|
|
6142
|
+
$[6] = anchor;
|
|
6143
|
+
$[7] = anchorName;
|
|
6144
|
+
$[8] = t3;
|
|
6145
|
+
} else t3 = $[8];
|
|
6146
|
+
useLayoutEffect(t2, t3);
|
|
6147
|
+
let t4;
|
|
6148
|
+
if ($[9] !== anchor?.element || $[10] !== close) {
|
|
6149
|
+
t4 = () => {
|
|
6150
|
+
card.current?.showPopover();
|
|
6151
|
+
const element_0 = anchor?.element;
|
|
6152
|
+
if (element_0 === void 0) return;
|
|
6153
|
+
const gone = new MutationObserver(() => {
|
|
6154
|
+
if (!element_0.isConnected) close();
|
|
6155
|
+
});
|
|
6156
|
+
gone.observe(document.body, {
|
|
6157
|
+
childList: true,
|
|
6158
|
+
subtree: true
|
|
6159
|
+
});
|
|
6160
|
+
const hidden = new ResizeObserver((t5) => {
|
|
6161
|
+
const [entry] = t5;
|
|
6162
|
+
if (entry?.contentRect.width === 0 && entry.contentRect.height === 0) close();
|
|
6163
|
+
});
|
|
6164
|
+
hidden.observe(element_0);
|
|
6165
|
+
const onScroll = (event) => {
|
|
6166
|
+
if (!(event.target instanceof Node && card.current?.contains(event.target))) close();
|
|
6167
|
+
};
|
|
6168
|
+
document.addEventListener("scroll", onScroll, {
|
|
6169
|
+
capture: true,
|
|
6170
|
+
passive: true
|
|
6171
|
+
});
|
|
6172
|
+
return () => {
|
|
6173
|
+
gone.disconnect();
|
|
6174
|
+
hidden.disconnect();
|
|
6175
|
+
document.removeEventListener("scroll", onScroll, { capture: true });
|
|
6176
|
+
};
|
|
6177
|
+
};
|
|
6178
|
+
$[9] = anchor?.element;
|
|
6179
|
+
$[10] = close;
|
|
6180
|
+
$[11] = t4;
|
|
6181
|
+
} else t4 = $[11];
|
|
6182
|
+
let t5;
|
|
6183
|
+
if ($[12] !== anchor) {
|
|
6184
|
+
t5 = [anchor];
|
|
6185
|
+
$[12] = anchor;
|
|
6186
|
+
$[13] = t5;
|
|
6187
|
+
} else t5 = $[13];
|
|
6188
|
+
useEffect(t4, t5);
|
|
6189
|
+
let t6;
|
|
6190
|
+
if ($[14] !== anchorName) {
|
|
6191
|
+
t6 = { "--item-info-anchor": anchorName };
|
|
6192
|
+
$[14] = anchorName;
|
|
6193
|
+
$[15] = t6;
|
|
6194
|
+
} else t6 = $[15];
|
|
6195
|
+
const t7 = t6;
|
|
6196
|
+
let t8;
|
|
6197
|
+
if ($[16] !== t7) {
|
|
6198
|
+
t8 = {
|
|
6199
|
+
card,
|
|
6200
|
+
style: t7
|
|
6201
|
+
};
|
|
6202
|
+
$[16] = t7;
|
|
6203
|
+
$[17] = t8;
|
|
6204
|
+
} else t8 = $[17];
|
|
6205
|
+
return t8;
|
|
6206
|
+
}
|
|
6020
6207
|
// src/components/ItemInfo/ItemInfo.module.css
|
|
6021
6208
|
var ItemInfo_module_default = {
|
|
6022
6209
|
"card": "TufZMa_card",
|
|
@@ -6038,7 +6225,7 @@ var ItemInfo_module_default = {
|
|
|
6038
6225
|
"variationIcon": "TufZMa_variationIcon",
|
|
6039
6226
|
"variations": "TufZMa_variations"
|
|
6040
6227
|
};
|
|
6041
|
-
// src/components/ItemInfo/
|
|
6228
|
+
// src/components/ItemInfo/slotName.ts
|
|
6042
6229
|
const slotNames$1 = {
|
|
6043
6230
|
high: "High Slot",
|
|
6044
6231
|
medium: "Mid Slot",
|
|
@@ -6053,6 +6240,13 @@ const slotNames$1 = {
|
|
|
6053
6240
|
booster: "Booster Slot",
|
|
6054
6241
|
cargo: "Cargo"
|
|
6055
6242
|
};
|
|
6243
|
+
/** A slot as EVE names it, like "Mid Slot 2". */
|
|
6244
|
+
function slotName(slot) {
|
|
6245
|
+
const name = slotNames$1[slot.type] ?? slot.type;
|
|
6246
|
+
if (!("index" in slot)) return name;
|
|
6247
|
+
return `${name} ${slot.type === "implant" || slot.type === "booster" ? slot.index : slot.index + 1}`;
|
|
6248
|
+
}
|
|
6249
|
+
// src/components/ItemInfo/ItemInfo.tsx
|
|
6056
6250
|
/** EVE's Show Info of what `useShowInfo` shows, next to what asked for it. */
|
|
6057
6251
|
function ItemInfo() {
|
|
6058
6252
|
const $ = c(4);
|
|
@@ -6074,207 +6268,133 @@ function ItemInfo() {
|
|
|
6074
6268
|
return t1;
|
|
6075
6269
|
}
|
|
6076
6270
|
function InfoCard(t0) {
|
|
6077
|
-
const $ = c(
|
|
6271
|
+
const $ = c(50);
|
|
6078
6272
|
const { shown: t1, onClose } = t0;
|
|
6079
6273
|
const { target, anchor } = t1;
|
|
6080
6274
|
const info = useInfo(target);
|
|
6081
6275
|
const { type, fitted, ship, variations } = info;
|
|
6082
6276
|
const price = useTypePrice(target.typeId);
|
|
6083
|
-
const card =
|
|
6084
|
-
const t2 = useId();
|
|
6085
|
-
let t3;
|
|
6086
|
-
if ($[0] !== t2) {
|
|
6087
|
-
let t4;
|
|
6088
|
-
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
6089
|
-
t4 = /[^\w-]/g;
|
|
6090
|
-
$[2] = t4;
|
|
6091
|
-
} else t4 = $[2];
|
|
6092
|
-
t3 = t2.replace(t4, "");
|
|
6093
|
-
$[0] = t2;
|
|
6094
|
-
$[1] = t3;
|
|
6095
|
-
} else t3 = $[1];
|
|
6096
|
-
const anchorName = `--item-info-${t3}`;
|
|
6277
|
+
const { card, style } = useAnchoredCard(anchor, onClose);
|
|
6097
6278
|
const tabId = useId();
|
|
6098
6279
|
const [picked, setPicked] = useState("attributes");
|
|
6099
|
-
let
|
|
6100
|
-
if ($[
|
|
6101
|
-
|
|
6102
|
-
$[
|
|
6103
|
-
$[
|
|
6104
|
-
} else
|
|
6105
|
-
const tabs =
|
|
6280
|
+
let t2;
|
|
6281
|
+
if ($[0] !== variations.length) {
|
|
6282
|
+
t2 = variations.length > 1 ? ["attributes", "variations"] : ["attributes"];
|
|
6283
|
+
$[0] = variations.length;
|
|
6284
|
+
$[1] = t2;
|
|
6285
|
+
} else t2 = $[1];
|
|
6286
|
+
const tabs = t2;
|
|
6106
6287
|
const tab = tabs.includes(picked) ? picked : "attributes";
|
|
6107
|
-
let
|
|
6108
|
-
if ($[
|
|
6109
|
-
|
|
6110
|
-
|
|
6111
|
-
if (!(element instanceof HTMLElement)) return;
|
|
6112
|
-
const inline = element.style.getPropertyValue("anchor-name");
|
|
6113
|
-
const own = getComputedStyle(element).getPropertyValue("anchor-name");
|
|
6114
|
-
element.style.setProperty("anchor-name", own && own !== "none" ? `${own}, ${anchorName}` : anchorName);
|
|
6115
|
-
return () => element.style.setProperty("anchor-name", inline);
|
|
6288
|
+
let t3;
|
|
6289
|
+
if ($[2] !== onClose) {
|
|
6290
|
+
t3 = (event) => {
|
|
6291
|
+
if (event.newState === "closed") onClose();
|
|
6116
6292
|
};
|
|
6117
|
-
$[
|
|
6118
|
-
$[
|
|
6119
|
-
|
|
6120
|
-
|
|
6293
|
+
$[2] = onClose;
|
|
6294
|
+
$[3] = t3;
|
|
6295
|
+
} else t3 = $[3];
|
|
6296
|
+
const t4 = `Info on ${type?.name ?? ""}`;
|
|
6297
|
+
const t5 = anchor?.side;
|
|
6121
6298
|
let t6;
|
|
6122
|
-
if ($[
|
|
6123
|
-
t6 =
|
|
6124
|
-
$[
|
|
6125
|
-
|
|
6126
|
-
$[10] = t6;
|
|
6127
|
-
} else t6 = $[10];
|
|
6128
|
-
useLayoutEffect(t5, t6);
|
|
6299
|
+
if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
|
|
6300
|
+
t6 = /* @__PURE__ */ jsx(Icon, { name: "close" });
|
|
6301
|
+
$[4] = t6;
|
|
6302
|
+
} else t6 = $[4];
|
|
6129
6303
|
let t7;
|
|
6130
|
-
if ($[
|
|
6131
|
-
t7 = (
|
|
6132
|
-
|
|
6133
|
-
|
|
6134
|
-
|
|
6135
|
-
|
|
6136
|
-
|
|
6137
|
-
|
|
6138
|
-
|
|
6139
|
-
|
|
6140
|
-
|
|
6141
|
-
});
|
|
6142
|
-
const hidden = new ResizeObserver((t8) => {
|
|
6143
|
-
const [entry] = t8;
|
|
6144
|
-
if (entry?.contentRect.width === 0 && entry.contentRect.height === 0) onClose();
|
|
6145
|
-
});
|
|
6146
|
-
hidden.observe(element_0);
|
|
6147
|
-
const onScroll = (event) => {
|
|
6148
|
-
if (!(event.target instanceof Node && card.current?.contains(event.target))) onClose();
|
|
6149
|
-
};
|
|
6150
|
-
document.addEventListener("scroll", onScroll, {
|
|
6151
|
-
capture: true,
|
|
6152
|
-
passive: true
|
|
6153
|
-
});
|
|
6154
|
-
return () => {
|
|
6155
|
-
gone.disconnect();
|
|
6156
|
-
hidden.disconnect();
|
|
6157
|
-
document.removeEventListener("scroll", onScroll, { capture: true });
|
|
6158
|
-
};
|
|
6159
|
-
};
|
|
6160
|
-
$[11] = anchor?.element;
|
|
6161
|
-
$[12] = onClose;
|
|
6162
|
-
$[13] = t7;
|
|
6163
|
-
} else t7 = $[13];
|
|
6304
|
+
if ($[5] !== onClose) {
|
|
6305
|
+
t7 = /* @__PURE__ */ jsx("button", {
|
|
6306
|
+
type: "button",
|
|
6307
|
+
className: ItemInfo_module_default.close,
|
|
6308
|
+
"aria-label": "Close",
|
|
6309
|
+
onClick: onClose,
|
|
6310
|
+
children: t6
|
|
6311
|
+
});
|
|
6312
|
+
$[5] = onClose;
|
|
6313
|
+
$[6] = t7;
|
|
6314
|
+
} else t7 = $[6];
|
|
6164
6315
|
let t8;
|
|
6165
|
-
if ($[
|
|
6166
|
-
t8 =
|
|
6167
|
-
$[14] = anchor;
|
|
6168
|
-
$[15] = onClose;
|
|
6169
|
-
$[16] = t8;
|
|
6170
|
-
} else t8 = $[16];
|
|
6171
|
-
useEffect(t7, t8);
|
|
6172
|
-
let t9;
|
|
6173
|
-
if ($[17] !== onClose) {
|
|
6174
|
-
t9 = (event_0) => {
|
|
6175
|
-
if (event_0.newState === "closed") onClose();
|
|
6176
|
-
};
|
|
6177
|
-
$[17] = onClose;
|
|
6178
|
-
$[18] = t9;
|
|
6179
|
-
} else t9 = $[18];
|
|
6180
|
-
const t10 = `Info on ${type?.name ?? ""}`;
|
|
6181
|
-
const t11 = anchor?.side;
|
|
6182
|
-
let t12;
|
|
6183
|
-
if ($[19] !== anchorName) {
|
|
6184
|
-
t12 = { "--item-info-anchor": anchorName };
|
|
6185
|
-
$[19] = anchorName;
|
|
6186
|
-
$[20] = t12;
|
|
6187
|
-
} else t12 = $[20];
|
|
6188
|
-
const t13 = t12;
|
|
6189
|
-
let t14;
|
|
6190
|
-
if ($[21] === Symbol.for("react.memo_cache_sentinel")) {
|
|
6191
|
-
t14 = /* @__PURE__ */ jsx(Icon, { name: "close" });
|
|
6192
|
-
$[21] = t14;
|
|
6193
|
-
} else t14 = $[21];
|
|
6194
|
-
let t15;
|
|
6195
|
-
if ($[22] !== onClose) {
|
|
6196
|
-
t15 = /* @__PURE__ */ jsx("button", {
|
|
6197
|
-
type: "button",
|
|
6198
|
-
className: ItemInfo_module_default.close,
|
|
6199
|
-
"aria-label": "Close",
|
|
6200
|
-
onClick: onClose,
|
|
6201
|
-
children: t14
|
|
6202
|
-
});
|
|
6203
|
-
$[22] = onClose;
|
|
6204
|
-
$[23] = t15;
|
|
6205
|
-
} else t15 = $[23];
|
|
6206
|
-
let t16;
|
|
6207
|
-
if ($[24] !== target.typeId) {
|
|
6208
|
-
t16 = /* @__PURE__ */ jsx("span", {
|
|
6316
|
+
if ($[7] !== target.typeId) {
|
|
6317
|
+
t8 = /* @__PURE__ */ jsx("span", {
|
|
6209
6318
|
className: ItemInfo_module_default.typeIcon,
|
|
6210
6319
|
children: /* @__PURE__ */ jsx(TypeIcon, {
|
|
6211
6320
|
typeId: target.typeId,
|
|
6212
6321
|
size: 64
|
|
6213
6322
|
})
|
|
6214
6323
|
});
|
|
6215
|
-
$[
|
|
6216
|
-
$[
|
|
6217
|
-
} else
|
|
6218
|
-
const
|
|
6219
|
-
let
|
|
6220
|
-
if ($[
|
|
6221
|
-
|
|
6324
|
+
$[7] = target.typeId;
|
|
6325
|
+
$[8] = t8;
|
|
6326
|
+
} else t8 = $[8];
|
|
6327
|
+
const t9 = type?.name;
|
|
6328
|
+
let t10;
|
|
6329
|
+
if ($[9] !== t9) {
|
|
6330
|
+
t10 = /* @__PURE__ */ jsx("h2", {
|
|
6222
6331
|
className: ItemInfo_module_default.name,
|
|
6223
|
-
children:
|
|
6332
|
+
children: t9
|
|
6224
6333
|
});
|
|
6225
|
-
$[
|
|
6226
|
-
$[
|
|
6227
|
-
} else
|
|
6228
|
-
let
|
|
6229
|
-
if ($[
|
|
6230
|
-
|
|
6334
|
+
$[9] = t9;
|
|
6335
|
+
$[10] = t10;
|
|
6336
|
+
} else t10 = $[10];
|
|
6337
|
+
let t11;
|
|
6338
|
+
if ($[11] !== info.mutatedFrom) {
|
|
6339
|
+
t11 = info.mutatedFrom !== void 0 && /* @__PURE__ */ jsxs("span", {
|
|
6340
|
+
className: ItemInfo_module_default.muted,
|
|
6341
|
+
children: ["Mutated ", info.mutatedFrom.name]
|
|
6342
|
+
});
|
|
6343
|
+
$[11] = info.mutatedFrom;
|
|
6344
|
+
$[12] = t11;
|
|
6345
|
+
} else t11 = $[12];
|
|
6346
|
+
let t12;
|
|
6347
|
+
if ($[13] !== price) {
|
|
6348
|
+
t12 = price !== void 0 && /* @__PURE__ */ jsxs("span", {
|
|
6231
6349
|
className: ItemInfo_module_default.muted,
|
|
6232
6350
|
children: [formatNumber(price, { decimals: 0 }), " ISK Est. price"]
|
|
6233
6351
|
});
|
|
6234
|
-
$[
|
|
6235
|
-
$[
|
|
6236
|
-
} else
|
|
6237
|
-
let
|
|
6238
|
-
if ($[
|
|
6239
|
-
|
|
6240
|
-
$[
|
|
6241
|
-
$[
|
|
6242
|
-
$[
|
|
6243
|
-
} else
|
|
6244
|
-
let
|
|
6245
|
-
if ($[
|
|
6246
|
-
|
|
6247
|
-
$[
|
|
6248
|
-
$[
|
|
6249
|
-
} else
|
|
6250
|
-
let
|
|
6251
|
-
if ($[
|
|
6252
|
-
|
|
6352
|
+
$[13] = price;
|
|
6353
|
+
$[14] = t12;
|
|
6354
|
+
} else t12 = $[14];
|
|
6355
|
+
let t13;
|
|
6356
|
+
if ($[15] !== fitted || $[16] !== ship) {
|
|
6357
|
+
t13 = ship ? "Hull" : fitted === void 0 ? "Not fitted" : `${fitted.charge ? "Loaded" : "Fitted"} · ${slotName(fitted.slot)}`;
|
|
6358
|
+
$[15] = fitted;
|
|
6359
|
+
$[16] = ship;
|
|
6360
|
+
$[17] = t13;
|
|
6361
|
+
} else t13 = $[17];
|
|
6362
|
+
let t14;
|
|
6363
|
+
if ($[18] !== t13) {
|
|
6364
|
+
t14 = /* @__PURE__ */ jsx("span", { children: t13 });
|
|
6365
|
+
$[18] = t13;
|
|
6366
|
+
$[19] = t14;
|
|
6367
|
+
} else t14 = $[19];
|
|
6368
|
+
let t15;
|
|
6369
|
+
if ($[20] !== t10 || $[21] !== t11 || $[22] !== t12 || $[23] !== t14) {
|
|
6370
|
+
t15 = /* @__PURE__ */ jsxs("div", {
|
|
6253
6371
|
className: ItemInfo_module_default.title,
|
|
6254
6372
|
children: [
|
|
6255
|
-
|
|
6256
|
-
|
|
6257
|
-
|
|
6373
|
+
t10,
|
|
6374
|
+
t11,
|
|
6375
|
+
t12,
|
|
6376
|
+
t14
|
|
6258
6377
|
]
|
|
6259
6378
|
});
|
|
6260
|
-
$[
|
|
6261
|
-
$[
|
|
6262
|
-
$[
|
|
6263
|
-
$[
|
|
6264
|
-
|
|
6265
|
-
|
|
6266
|
-
|
|
6267
|
-
|
|
6379
|
+
$[20] = t10;
|
|
6380
|
+
$[21] = t11;
|
|
6381
|
+
$[22] = t12;
|
|
6382
|
+
$[23] = t14;
|
|
6383
|
+
$[24] = t15;
|
|
6384
|
+
} else t15 = $[24];
|
|
6385
|
+
let t16;
|
|
6386
|
+
if ($[25] !== t15 || $[26] !== t8) {
|
|
6387
|
+
t16 = /* @__PURE__ */ jsxs("header", {
|
|
6268
6388
|
className: ItemInfo_module_default.header,
|
|
6269
|
-
children: [
|
|
6389
|
+
children: [t8, t15]
|
|
6270
6390
|
});
|
|
6271
|
-
$[
|
|
6272
|
-
$[
|
|
6273
|
-
$[
|
|
6274
|
-
} else
|
|
6275
|
-
let
|
|
6276
|
-
if ($[
|
|
6277
|
-
|
|
6391
|
+
$[25] = t15;
|
|
6392
|
+
$[26] = t8;
|
|
6393
|
+
$[27] = t16;
|
|
6394
|
+
} else t16 = $[27];
|
|
6395
|
+
let t17;
|
|
6396
|
+
if ($[28] !== tab || $[29] !== tabId || $[30] !== tabs) {
|
|
6397
|
+
t17 = /* @__PURE__ */ jsx("div", {
|
|
6278
6398
|
className: ItemInfo_module_default.tabs,
|
|
6279
6399
|
role: "tablist",
|
|
6280
6400
|
children: tabs.map((name) => /* @__PURE__ */ jsx("button", {
|
|
@@ -6284,72 +6404,73 @@ function InfoCard(t0) {
|
|
|
6284
6404
|
role: "tab",
|
|
6285
6405
|
"aria-selected": name === tab,
|
|
6286
6406
|
onClick: () => setPicked(name),
|
|
6287
|
-
children: tabLabels[name]
|
|
6407
|
+
children: tabLabels$1[name]
|
|
6288
6408
|
}, name))
|
|
6289
6409
|
});
|
|
6290
|
-
$[
|
|
6291
|
-
$[
|
|
6292
|
-
$[
|
|
6293
|
-
$[
|
|
6294
|
-
} else
|
|
6295
|
-
const
|
|
6296
|
-
let
|
|
6297
|
-
if ($[
|
|
6298
|
-
|
|
6410
|
+
$[28] = tab;
|
|
6411
|
+
$[29] = tabId;
|
|
6412
|
+
$[30] = tabs;
|
|
6413
|
+
$[31] = t17;
|
|
6414
|
+
} else t17 = $[31];
|
|
6415
|
+
const t18 = `${tabId}-${tab}`;
|
|
6416
|
+
let t19;
|
|
6417
|
+
if ($[32] !== anchor || $[33] !== info || $[34] !== tab || $[35] !== target) {
|
|
6418
|
+
t19 = tab === "attributes" ? /* @__PURE__ */ jsx(Attributes, { attributes: info.attributes }) : /* @__PURE__ */ jsx(Variations, {
|
|
6299
6419
|
shown: {
|
|
6300
6420
|
target,
|
|
6301
6421
|
anchor
|
|
6302
6422
|
},
|
|
6303
6423
|
info
|
|
6304
6424
|
});
|
|
6305
|
-
$[
|
|
6306
|
-
$[
|
|
6307
|
-
$[
|
|
6308
|
-
$[
|
|
6309
|
-
$[
|
|
6310
|
-
} else
|
|
6311
|
-
let
|
|
6312
|
-
if ($[
|
|
6313
|
-
|
|
6425
|
+
$[32] = anchor;
|
|
6426
|
+
$[33] = info;
|
|
6427
|
+
$[34] = tab;
|
|
6428
|
+
$[35] = target;
|
|
6429
|
+
$[36] = t19;
|
|
6430
|
+
} else t19 = $[36];
|
|
6431
|
+
let t20;
|
|
6432
|
+
if ($[37] !== t18 || $[38] !== t19) {
|
|
6433
|
+
t20 = /* @__PURE__ */ jsx("div", {
|
|
6314
6434
|
className: ItemInfo_module_default.panel,
|
|
6315
6435
|
role: "tabpanel",
|
|
6316
|
-
"aria-labelledby":
|
|
6317
|
-
children:
|
|
6436
|
+
"aria-labelledby": t18,
|
|
6437
|
+
children: t19
|
|
6318
6438
|
});
|
|
6319
|
-
$[
|
|
6320
|
-
$[
|
|
6321
|
-
$[
|
|
6322
|
-
} else
|
|
6323
|
-
let
|
|
6324
|
-
if ($[
|
|
6325
|
-
|
|
6439
|
+
$[37] = t18;
|
|
6440
|
+
$[38] = t19;
|
|
6441
|
+
$[39] = t20;
|
|
6442
|
+
} else t20 = $[39];
|
|
6443
|
+
let t21;
|
|
6444
|
+
if ($[40] !== card || $[41] !== style || $[42] !== t16 || $[43] !== t17 || $[44] !== t20 || $[45] !== t3 || $[46] !== t4 || $[47] !== t5 || $[48] !== t7) {
|
|
6445
|
+
t21 = /* @__PURE__ */ jsxs("section", {
|
|
6326
6446
|
ref: card,
|
|
6327
6447
|
className: ItemInfo_module_default.card,
|
|
6328
6448
|
popover: "auto",
|
|
6329
|
-
onToggle:
|
|
6330
|
-
"aria-label":
|
|
6331
|
-
"data-side":
|
|
6332
|
-
style
|
|
6449
|
+
onToggle: t3,
|
|
6450
|
+
"aria-label": t4,
|
|
6451
|
+
"data-side": t5,
|
|
6452
|
+
style,
|
|
6333
6453
|
children: [
|
|
6334
|
-
|
|
6335
|
-
|
|
6336
|
-
|
|
6337
|
-
|
|
6454
|
+
t7,
|
|
6455
|
+
t16,
|
|
6456
|
+
t17,
|
|
6457
|
+
t20
|
|
6338
6458
|
]
|
|
6339
6459
|
});
|
|
6340
|
-
$[
|
|
6341
|
-
$[
|
|
6342
|
-
$[
|
|
6343
|
-
$[
|
|
6344
|
-
$[
|
|
6345
|
-
$[
|
|
6346
|
-
$[
|
|
6347
|
-
$[
|
|
6348
|
-
$[
|
|
6349
|
-
|
|
6350
|
-
|
|
6460
|
+
$[40] = card;
|
|
6461
|
+
$[41] = style;
|
|
6462
|
+
$[42] = t16;
|
|
6463
|
+
$[43] = t17;
|
|
6464
|
+
$[44] = t20;
|
|
6465
|
+
$[45] = t3;
|
|
6466
|
+
$[46] = t4;
|
|
6467
|
+
$[47] = t5;
|
|
6468
|
+
$[48] = t7;
|
|
6469
|
+
$[49] = t21;
|
|
6470
|
+
} else t21 = $[49];
|
|
6471
|
+
return t21;
|
|
6351
6472
|
}
|
|
6352
|
-
const tabLabels = {
|
|
6473
|
+
const tabLabels$1 = {
|
|
6353
6474
|
attributes: "Attributes",
|
|
6354
6475
|
variations: "Variations"
|
|
6355
6476
|
};
|
|
@@ -6394,7 +6515,7 @@ function Attributes(t0) {
|
|
|
6394
6515
|
} else t2 = $[6];
|
|
6395
6516
|
return t2;
|
|
6396
6517
|
}
|
|
6397
|
-
const PREVIEW_TARGET = "item-info";
|
|
6518
|
+
const PREVIEW_TARGET$1 = "item-info";
|
|
6398
6519
|
/** By meta group; when fitted, hovering one previews it in place of the fitted one, and double clicking fits it there. */
|
|
6399
6520
|
function Variations(t0) {
|
|
6400
6521
|
const $ = c(25);
|
|
@@ -6411,7 +6532,7 @@ function Variations(t0) {
|
|
|
6411
6532
|
let t3;
|
|
6412
6533
|
if ($[0] !== preview || $[1] !== release) {
|
|
6413
6534
|
t3 = () => {
|
|
6414
|
-
preview.clear(PREVIEW_TARGET);
|
|
6535
|
+
preview.clear(PREVIEW_TARGET$1);
|
|
6415
6536
|
release();
|
|
6416
6537
|
};
|
|
6417
6538
|
$[0] = preview;
|
|
@@ -6446,8 +6567,8 @@ function Variations(t0) {
|
|
|
6446
6567
|
const swap = (draft) => fitted.charge ? draft.setCharge(ref, type.id) : draft.setType(ref, type.id);
|
|
6447
6568
|
return {
|
|
6448
6569
|
hover: (hovering_0) => {
|
|
6449
|
-
if (hovering_0) preview.show(swap, PREVIEW_TARGET);
|
|
6450
|
-
else preview.clear(PREVIEW_TARGET);
|
|
6570
|
+
if (hovering_0) preview.show(swap, PREVIEW_TARGET$1);
|
|
6571
|
+
else preview.clear(PREVIEW_TARGET$1);
|
|
6451
6572
|
},
|
|
6452
6573
|
activate: () => {
|
|
6453
6574
|
swap(store);
|
|
@@ -6475,7 +6596,7 @@ function Variations(t0) {
|
|
|
6475
6596
|
const swapper = t6;
|
|
6476
6597
|
let t7;
|
|
6477
6598
|
if ($[18] !== anchor || $[19] !== sde || $[20] !== show || $[21] !== swapper || $[22] !== target.typeId || $[23] !== variations) {
|
|
6478
|
-
const groups = Map.groupBy(variations, _temp$
|
|
6599
|
+
const groups = Map.groupBy(variations, _temp$12);
|
|
6479
6600
|
t7 = /* @__PURE__ */ jsx("ul", {
|
|
6480
6601
|
className: ItemInfo_module_default.list,
|
|
6481
6602
|
children: [...groups].map((t8) => {
|
|
@@ -6508,100 +6629,1309 @@ function Variations(t0) {
|
|
|
6508
6629
|
} else t7 = $[24];
|
|
6509
6630
|
return t7;
|
|
6510
6631
|
}
|
|
6511
|
-
function _temp$
|
|
6632
|
+
function _temp$12(type_0) {
|
|
6512
6633
|
return type_0.metaGroupId;
|
|
6513
6634
|
}
|
|
6514
6635
|
function Variation(t0) {
|
|
6515
6636
|
const $ = c(20);
|
|
6516
6637
|
const { type, current, onHover, onActivate, onInfo } = t0;
|
|
6517
6638
|
let t1;
|
|
6518
|
-
if ($[0] !== type.id) {
|
|
6519
|
-
t1 = /* @__PURE__ */ jsx("span", {
|
|
6520
|
-
className: ItemInfo_module_default.variationIcon,
|
|
6521
|
-
children: /* @__PURE__ */ jsx(TypeIcon, { typeId: type.id })
|
|
6522
|
-
});
|
|
6523
|
-
$[0] = type.id;
|
|
6524
|
-
$[1] = t1;
|
|
6525
|
-
} else t1 = $[1];
|
|
6639
|
+
if ($[0] !== type.id) {
|
|
6640
|
+
t1 = /* @__PURE__ */ jsx("span", {
|
|
6641
|
+
className: ItemInfo_module_default.variationIcon,
|
|
6642
|
+
children: /* @__PURE__ */ jsx(TypeIcon, { typeId: type.id })
|
|
6643
|
+
});
|
|
6644
|
+
$[0] = type.id;
|
|
6645
|
+
$[1] = t1;
|
|
6646
|
+
} else t1 = $[1];
|
|
6647
|
+
let t2;
|
|
6648
|
+
if ($[2] !== type.name) {
|
|
6649
|
+
t2 = /* @__PURE__ */ jsx("span", { children: type.name });
|
|
6650
|
+
$[2] = type.name;
|
|
6651
|
+
$[3] = t2;
|
|
6652
|
+
} else t2 = $[3];
|
|
6653
|
+
let t3;
|
|
6654
|
+
if ($[4] !== t1 || $[5] !== t2) {
|
|
6655
|
+
t3 = /* @__PURE__ */ jsxs(Fragment$1, { children: [t1, t2] });
|
|
6656
|
+
$[4] = t1;
|
|
6657
|
+
$[5] = t2;
|
|
6658
|
+
$[6] = t3;
|
|
6659
|
+
} else t3 = $[6];
|
|
6660
|
+
const label = t3;
|
|
6661
|
+
const t4 = current || void 0;
|
|
6662
|
+
let t5;
|
|
6663
|
+
if ($[7] !== current || $[8] !== label || $[9] !== onActivate || $[10] !== onHover) {
|
|
6664
|
+
t5 = current || onActivate === void 0 ? /* @__PURE__ */ jsx("div", {
|
|
6665
|
+
className: ItemInfo_module_default.variation,
|
|
6666
|
+
children: label
|
|
6667
|
+
}) : /* @__PURE__ */ jsx("button", {
|
|
6668
|
+
type: "button",
|
|
6669
|
+
className: ItemInfo_module_default.variation,
|
|
6670
|
+
title: "Double click to fit this instead",
|
|
6671
|
+
onDoubleClick: onActivate,
|
|
6672
|
+
onKeyDown: (event) => {
|
|
6673
|
+
if (event.key !== "Enter") return;
|
|
6674
|
+
event.preventDefault();
|
|
6675
|
+
onActivate();
|
|
6676
|
+
},
|
|
6677
|
+
onMouseEnter: () => onHover?.(true),
|
|
6678
|
+
onMouseLeave: () => onHover?.(false),
|
|
6679
|
+
onFocus: () => onHover?.(true),
|
|
6680
|
+
onBlur: () => onHover?.(false),
|
|
6681
|
+
children: label
|
|
6682
|
+
});
|
|
6683
|
+
$[7] = current;
|
|
6684
|
+
$[8] = label;
|
|
6685
|
+
$[9] = onActivate;
|
|
6686
|
+
$[10] = onHover;
|
|
6687
|
+
$[11] = t5;
|
|
6688
|
+
} else t5 = $[11];
|
|
6689
|
+
const t6 = `Show Info on ${type.name}`;
|
|
6690
|
+
let t7;
|
|
6691
|
+
if ($[12] === Symbol.for("react.memo_cache_sentinel")) {
|
|
6692
|
+
t7 = /* @__PURE__ */ jsx(Icon, { name: "module-info" });
|
|
6693
|
+
$[12] = t7;
|
|
6694
|
+
} else t7 = $[12];
|
|
6695
|
+
let t8;
|
|
6696
|
+
if ($[13] !== onInfo || $[14] !== t6) {
|
|
6697
|
+
t8 = /* @__PURE__ */ jsx("button", {
|
|
6698
|
+
type: "button",
|
|
6699
|
+
className: ItemInfo_module_default.info,
|
|
6700
|
+
"aria-label": t6,
|
|
6701
|
+
onClick: onInfo,
|
|
6702
|
+
children: t7
|
|
6703
|
+
});
|
|
6704
|
+
$[13] = onInfo;
|
|
6705
|
+
$[14] = t6;
|
|
6706
|
+
$[15] = t8;
|
|
6707
|
+
} else t8 = $[15];
|
|
6708
|
+
let t9;
|
|
6709
|
+
if ($[16] !== t4 || $[17] !== t5 || $[18] !== t8) {
|
|
6710
|
+
t9 = /* @__PURE__ */ jsxs("li", {
|
|
6711
|
+
className: ItemInfo_module_default.row,
|
|
6712
|
+
"aria-current": t4,
|
|
6713
|
+
children: [t5, t8]
|
|
6714
|
+
});
|
|
6715
|
+
$[16] = t4;
|
|
6716
|
+
$[17] = t5;
|
|
6717
|
+
$[18] = t8;
|
|
6718
|
+
$[19] = t9;
|
|
6719
|
+
} else t9 = $[19];
|
|
6720
|
+
return t9;
|
|
6721
|
+
}
|
|
6722
|
+
// src/components/Mutate/Mutate.module.css
|
|
6723
|
+
var Mutate_module_default = {
|
|
6724
|
+
"button": "yNZdnG_button",
|
|
6725
|
+
"card": "yNZdnG_card",
|
|
6726
|
+
"caret": "yNZdnG_caret",
|
|
6727
|
+
"change": "yNZdnG_change",
|
|
6728
|
+
"chart": "yNZdnG_chart",
|
|
6729
|
+
"chartAxis": "yNZdnG_chartAxis",
|
|
6730
|
+
"chartBar": "yNZdnG_chartBar",
|
|
6731
|
+
"chartBase": "yNZdnG_chartBase",
|
|
6732
|
+
"chartBehind": "yNZdnG_chartBehind",
|
|
6733
|
+
"chartName": "yNZdnG_chartName",
|
|
6734
|
+
"chartRange": "yNZdnG_chartRange",
|
|
6735
|
+
"chartRoll": "yNZdnG_chartRoll",
|
|
6736
|
+
"chartRow": "yNZdnG_chartRow",
|
|
6737
|
+
"chartTitle": "yNZdnG_chartTitle",
|
|
6738
|
+
"dice": "yNZdnG_dice",
|
|
6739
|
+
"error": "yNZdnG_error",
|
|
6740
|
+
"field": "yNZdnG_field",
|
|
6741
|
+
"icon": "yNZdnG_icon",
|
|
6742
|
+
"import": "yNZdnG_import",
|
|
6743
|
+
"label": "yNZdnG_label",
|
|
6744
|
+
"menu": "yNZdnG_menu",
|
|
6745
|
+
"more": "yNZdnG_more",
|
|
6746
|
+
"name": "yNZdnG_name",
|
|
6747
|
+
"option": "yNZdnG_option",
|
|
6748
|
+
"options": "yNZdnG_options",
|
|
6749
|
+
"panel": "yNZdnG_panel",
|
|
6750
|
+
"picker": "yNZdnG_picker",
|
|
6751
|
+
"roll": "yNZdnG_roll",
|
|
6752
|
+
"select": "yNZdnG_select",
|
|
6753
|
+
"selected": "yNZdnG_selected",
|
|
6754
|
+
"slider": "yNZdnG_slider",
|
|
6755
|
+
"stat": "yNZdnG_stat",
|
|
6756
|
+
"stats": "yNZdnG_stats",
|
|
6757
|
+
"toolbar": "yNZdnG_toolbar",
|
|
6758
|
+
"value": "yNZdnG_value"
|
|
6759
|
+
};
|
|
6760
|
+
// src/components/Mutate/MutaplasmidPicker.tsx
|
|
6761
|
+
/** A dropdown of mutaplasmids, with a chart of how far the one pointed at rolls each stat. */
|
|
6762
|
+
function MutaplasmidPicker(t0) {
|
|
6763
|
+
const $ = c(25);
|
|
6764
|
+
const { mutaplasmids, roll, onChoose } = t0;
|
|
6765
|
+
const sde = useSde();
|
|
6766
|
+
const id = useId();
|
|
6767
|
+
const root = useRef(null);
|
|
6768
|
+
const list = useRef(null);
|
|
6769
|
+
const button = useRef(null);
|
|
6770
|
+
const [open, setOpen] = useState(false);
|
|
6771
|
+
const [active, setActive] = useState(roll.mutaplasmid);
|
|
6772
|
+
let t1;
|
|
6773
|
+
if ($[0] !== sde) {
|
|
6774
|
+
t1 = (mutaplasmid) => sde.type(mutaplasmid.id)?.name ?? String(mutaplasmid.id);
|
|
6775
|
+
$[0] = sde;
|
|
6776
|
+
$[1] = t1;
|
|
6777
|
+
} else t1 = $[1];
|
|
6778
|
+
const names = shortNames(mutaplasmids.map(t1));
|
|
6779
|
+
const nameOf = (mutaplasmidId) => names[mutaplasmids.findIndex((t2) => {
|
|
6780
|
+
const { id: other } = t2;
|
|
6781
|
+
return other === mutaplasmidId;
|
|
6782
|
+
})];
|
|
6783
|
+
let t3;
|
|
6784
|
+
let t4;
|
|
6785
|
+
if ($[2] !== open) {
|
|
6786
|
+
t3 = () => {
|
|
6787
|
+
if (!open) return;
|
|
6788
|
+
list.current?.querySelector("[aria-checked=true]")?.focus();
|
|
6789
|
+
const outside = (event) => {
|
|
6790
|
+
if (!(event.target instanceof Node && root.current?.contains(event.target))) setOpen(false);
|
|
6791
|
+
};
|
|
6792
|
+
document.addEventListener("pointerdown", outside);
|
|
6793
|
+
return () => document.removeEventListener("pointerdown", outside);
|
|
6794
|
+
};
|
|
6795
|
+
t4 = [open];
|
|
6796
|
+
$[2] = open;
|
|
6797
|
+
$[3] = t3;
|
|
6798
|
+
$[4] = t4;
|
|
6799
|
+
} else {
|
|
6800
|
+
t3 = $[3];
|
|
6801
|
+
t4 = $[4];
|
|
6802
|
+
}
|
|
6803
|
+
useEffect(t3, t4);
|
|
6804
|
+
let t5;
|
|
6805
|
+
if ($[5] !== roll.mutaplasmid) {
|
|
6806
|
+
t5 = () => {
|
|
6807
|
+
setActive(roll.mutaplasmid);
|
|
6808
|
+
setOpen(true);
|
|
6809
|
+
};
|
|
6810
|
+
$[5] = roll.mutaplasmid;
|
|
6811
|
+
$[6] = t5;
|
|
6812
|
+
} else t5 = $[6];
|
|
6813
|
+
const show = t5;
|
|
6814
|
+
const close = () => {
|
|
6815
|
+
setOpen(false);
|
|
6816
|
+
button.current?.focus();
|
|
6817
|
+
};
|
|
6818
|
+
const choose = (mutaplasmidId_0) => {
|
|
6819
|
+
close();
|
|
6820
|
+
onChoose(mutaplasmidId_0);
|
|
6821
|
+
};
|
|
6822
|
+
const onMenuKey = (event_0) => {
|
|
6823
|
+
const items = [...event_0.currentTarget.querySelectorAll("[role=menuitemradio]")];
|
|
6824
|
+
const index = items.indexOf(document.activeElement);
|
|
6825
|
+
if (event_0.key === "ArrowDown" || event_0.key === "ArrowUp") {
|
|
6826
|
+
event_0.preventDefault();
|
|
6827
|
+
const step = event_0.key === "ArrowDown" ? 1 : -1;
|
|
6828
|
+
items[Math.min(items.length - 1, Math.max(0, index + step))]?.focus();
|
|
6829
|
+
} else if (event_0.key === "Escape" || event_0.key === "Tab") {
|
|
6830
|
+
event_0.preventDefault();
|
|
6831
|
+
event_0.stopPropagation();
|
|
6832
|
+
close();
|
|
6833
|
+
}
|
|
6834
|
+
};
|
|
6835
|
+
const t6 = Mutate_module_default;
|
|
6836
|
+
const t7 = `${id}-menu`;
|
|
6837
|
+
let t8;
|
|
6838
|
+
if ($[7] !== open || $[8] !== show) {
|
|
6839
|
+
t8 = () => open ? setOpen(false) : show();
|
|
6840
|
+
$[7] = open;
|
|
6841
|
+
$[8] = show;
|
|
6842
|
+
$[9] = t8;
|
|
6843
|
+
} else t8 = $[9];
|
|
6844
|
+
let t9;
|
|
6845
|
+
if ($[10] !== show) {
|
|
6846
|
+
t9 = (event_1) => {
|
|
6847
|
+
if (event_1.key !== "ArrowDown" && event_1.key !== "ArrowUp") return;
|
|
6848
|
+
event_1.preventDefault();
|
|
6849
|
+
show();
|
|
6850
|
+
};
|
|
6851
|
+
$[10] = show;
|
|
6852
|
+
$[11] = t9;
|
|
6853
|
+
} else t9 = $[11];
|
|
6854
|
+
const t10 = nameOf(roll.mutaplasmid);
|
|
6855
|
+
let t11;
|
|
6856
|
+
if ($[12] !== t10) {
|
|
6857
|
+
t11 = /* @__PURE__ */ jsx("span", {
|
|
6858
|
+
className: Mutate_module_default.selected,
|
|
6859
|
+
children: t10
|
|
6860
|
+
});
|
|
6861
|
+
$[12] = t10;
|
|
6862
|
+
$[13] = t11;
|
|
6863
|
+
} else t11 = $[13];
|
|
6864
|
+
let t12;
|
|
6865
|
+
if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
|
|
6866
|
+
t12 = /* @__PURE__ */ jsx("span", {
|
|
6867
|
+
className: Mutate_module_default.caret,
|
|
6868
|
+
"aria-hidden": true,
|
|
6869
|
+
children: "▾"
|
|
6870
|
+
});
|
|
6871
|
+
$[14] = t12;
|
|
6872
|
+
} else t12 = $[14];
|
|
6873
|
+
let t13;
|
|
6874
|
+
if ($[15] !== open || $[16] !== t11 || $[17] !== t7 || $[18] !== t8 || $[19] !== t9) {
|
|
6875
|
+
t13 = /* @__PURE__ */ jsxs("button", {
|
|
6876
|
+
ref: button,
|
|
6877
|
+
type: "button",
|
|
6878
|
+
className: Mutate_module_default.select,
|
|
6879
|
+
"aria-haspopup": "menu",
|
|
6880
|
+
"aria-expanded": open,
|
|
6881
|
+
"aria-controls": t7,
|
|
6882
|
+
onClick: t8,
|
|
6883
|
+
onKeyDown: t9,
|
|
6884
|
+
children: [t11, t12]
|
|
6885
|
+
});
|
|
6886
|
+
$[15] = open;
|
|
6887
|
+
$[16] = t11;
|
|
6888
|
+
$[17] = t7;
|
|
6889
|
+
$[18] = t8;
|
|
6890
|
+
$[19] = t9;
|
|
6891
|
+
$[20] = t13;
|
|
6892
|
+
} else t13 = $[20];
|
|
6893
|
+
const t14 = open && /* @__PURE__ */ jsxs("div", {
|
|
6894
|
+
className: Mutate_module_default.menu,
|
|
6895
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
6896
|
+
ref: list,
|
|
6897
|
+
id: `${id}-menu`,
|
|
6898
|
+
className: Mutate_module_default.options,
|
|
6899
|
+
role: "menu",
|
|
6900
|
+
"aria-label": "Mutaplasmid",
|
|
6901
|
+
tabIndex: -1,
|
|
6902
|
+
onKeyDown: onMenuKey,
|
|
6903
|
+
children: mutaplasmids.map((mutaplasmid_0, index_0) => /* @__PURE__ */ jsx("button", {
|
|
6904
|
+
type: "button",
|
|
6905
|
+
className: Mutate_module_default.option,
|
|
6906
|
+
role: "menuitemradio",
|
|
6907
|
+
"aria-checked": mutaplasmid_0.id === roll.mutaplasmid,
|
|
6908
|
+
tabIndex: -1,
|
|
6909
|
+
"data-active": mutaplasmid_0.id === active || void 0,
|
|
6910
|
+
onFocus: () => setActive(mutaplasmid_0.id),
|
|
6911
|
+
onPointerMove: _temp$11,
|
|
6912
|
+
onClick: () => choose(mutaplasmid_0.id),
|
|
6913
|
+
children: names[index_0]
|
|
6914
|
+
}, mutaplasmid_0.id))
|
|
6915
|
+
}), /* @__PURE__ */ jsx(RangeChart, {
|
|
6916
|
+
mutaplasmids,
|
|
6917
|
+
shown: active,
|
|
6918
|
+
roll,
|
|
6919
|
+
names
|
|
6920
|
+
})]
|
|
6921
|
+
});
|
|
6922
|
+
let t15;
|
|
6923
|
+
if ($[21] !== t13 || $[22] !== t14 || $[23] !== t6.picker) {
|
|
6924
|
+
t15 = /* @__PURE__ */ jsxs("div", {
|
|
6925
|
+
ref: root,
|
|
6926
|
+
className: t6.picker,
|
|
6927
|
+
children: [t13, t14]
|
|
6928
|
+
});
|
|
6929
|
+
$[21] = t13;
|
|
6930
|
+
$[22] = t14;
|
|
6931
|
+
$[23] = t6.picker;
|
|
6932
|
+
$[24] = t15;
|
|
6933
|
+
} else t15 = $[24];
|
|
6934
|
+
return t15;
|
|
6935
|
+
}
|
|
6936
|
+
function _temp$11(event_2) {
|
|
6937
|
+
return event_2.currentTarget.focus();
|
|
6938
|
+
}
|
|
6939
|
+
/** Each stat's range under one mutaplasmid, the widest one's behind it, and the roll. */
|
|
6940
|
+
function RangeChart(t0) {
|
|
6941
|
+
const $ = c(49);
|
|
6942
|
+
const { mutaplasmids, shown, roll, names } = t0;
|
|
6943
|
+
const sde = useSde();
|
|
6944
|
+
let t1;
|
|
6945
|
+
if ($[0] !== roll.base || $[1] !== sde) {
|
|
6946
|
+
t1 = (mutaplasmid) => mutationRanges(sde, roll.base, mutaplasmid);
|
|
6947
|
+
$[0] = roll.base;
|
|
6948
|
+
$[1] = sde;
|
|
6949
|
+
$[2] = t1;
|
|
6950
|
+
} else t1 = $[2];
|
|
6951
|
+
const rangesOf = t1;
|
|
6952
|
+
let low;
|
|
6953
|
+
let t2;
|
|
6954
|
+
if ($[3] !== mutaplasmids || $[4] !== rangesOf) {
|
|
6955
|
+
let t3;
|
|
6956
|
+
if ($[7] !== rangesOf) {
|
|
6957
|
+
t3 = (t4) => {
|
|
6958
|
+
const { id } = t4;
|
|
6959
|
+
return rangesOf(id).flatMap(_temp2$6);
|
|
6960
|
+
};
|
|
6961
|
+
$[7] = rangesOf;
|
|
6962
|
+
$[8] = t3;
|
|
6963
|
+
} else t3 = $[8];
|
|
6964
|
+
const all = mutaplasmids.flatMap(t3);
|
|
6965
|
+
low = Math.min(1, ...all);
|
|
6966
|
+
t2 = Math.max(1, ...all);
|
|
6967
|
+
$[3] = mutaplasmids;
|
|
6968
|
+
$[4] = rangesOf;
|
|
6969
|
+
$[5] = low;
|
|
6970
|
+
$[6] = t2;
|
|
6971
|
+
} else {
|
|
6972
|
+
low = $[5];
|
|
6973
|
+
t2 = $[6];
|
|
6974
|
+
}
|
|
6975
|
+
const high = t2;
|
|
6976
|
+
let t3;
|
|
6977
|
+
if ($[9] !== high || $[10] !== low) {
|
|
6978
|
+
t3 = (value) => `${(value - low) / (high - low || 1) * 100}%`;
|
|
6979
|
+
$[9] = high;
|
|
6980
|
+
$[10] = low;
|
|
6981
|
+
$[11] = t3;
|
|
6982
|
+
} else t3 = $[11];
|
|
6983
|
+
const at = t3;
|
|
6984
|
+
let t4;
|
|
6985
|
+
let t5;
|
|
6986
|
+
let t6;
|
|
6987
|
+
let t7;
|
|
6988
|
+
if ($[12] !== at || $[13] !== mutaplasmids || $[14] !== names || $[15] !== rangesOf || $[16] !== roll.attributes || $[17] !== sde || $[18] !== shown) {
|
|
6989
|
+
const widest = mutaplasmids.at(-1)?.id ?? shown;
|
|
6990
|
+
const behind = new Map(rangesOf(widest).map(_temp3$3));
|
|
6991
|
+
let t8;
|
|
6992
|
+
if ($[23] !== mutaplasmids || $[24] !== names) {
|
|
6993
|
+
t8 = (mutaplasmidId) => names[mutaplasmids.findIndex((t9) => {
|
|
6994
|
+
const { id: id_0 } = t9;
|
|
6995
|
+
return id_0 === mutaplasmidId;
|
|
6996
|
+
})];
|
|
6997
|
+
$[23] = mutaplasmids;
|
|
6998
|
+
$[24] = names;
|
|
6999
|
+
$[25] = t8;
|
|
7000
|
+
} else t8 = $[25];
|
|
7001
|
+
const nameOf = t8;
|
|
7002
|
+
t4 = Mutate_module_default.chart;
|
|
7003
|
+
t5 = true;
|
|
7004
|
+
let t9;
|
|
7005
|
+
if ($[26] !== nameOf || $[27] !== shown) {
|
|
7006
|
+
t9 = nameOf(shown);
|
|
7007
|
+
$[26] = nameOf;
|
|
7008
|
+
$[27] = shown;
|
|
7009
|
+
$[28] = t9;
|
|
7010
|
+
} else t9 = $[28];
|
|
7011
|
+
if ($[29] !== t9) {
|
|
7012
|
+
t6 = /* @__PURE__ */ jsx("span", {
|
|
7013
|
+
className: Mutate_module_default.chartTitle,
|
|
7014
|
+
children: t9
|
|
7015
|
+
});
|
|
7016
|
+
$[29] = t9;
|
|
7017
|
+
$[30] = t6;
|
|
7018
|
+
} else t6 = $[30];
|
|
7019
|
+
t7 = rangesOf(shown).map((range_1) => {
|
|
7020
|
+
const attribute = sde.attribute(range_1.attributeId);
|
|
7021
|
+
const widestRange = behind.get(range_1.attributeId);
|
|
7022
|
+
const [from, to] = ends(range_1);
|
|
7023
|
+
const rolled = roll.attributes[range_1.attributeId];
|
|
7024
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
7025
|
+
className: Mutate_module_default.chartRow,
|
|
7026
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
7027
|
+
className: Mutate_module_default.chartName,
|
|
7028
|
+
children: attribute?.displayName ?? attribute?.name
|
|
7029
|
+
}), /* @__PURE__ */ jsxs("span", {
|
|
7030
|
+
className: Mutate_module_default.chartBar,
|
|
7031
|
+
children: [
|
|
7032
|
+
shown !== widest && widestRange !== void 0 && /* @__PURE__ */ jsx("span", {
|
|
7033
|
+
className: Mutate_module_default.chartBehind,
|
|
7034
|
+
style: span(at, ...ends(widestRange))
|
|
7035
|
+
}),
|
|
7036
|
+
/* @__PURE__ */ jsx("span", {
|
|
7037
|
+
className: Mutate_module_default.chartRange,
|
|
7038
|
+
style: {
|
|
7039
|
+
...span(at, from, to),
|
|
7040
|
+
"--neutral": `${(1 - from) / (to - from || 1) * 100}%`
|
|
7041
|
+
},
|
|
7042
|
+
"data-up-is-good": upIsGood(range_1) || void 0
|
|
7043
|
+
}),
|
|
7044
|
+
/* @__PURE__ */ jsx("span", {
|
|
7045
|
+
className: Mutate_module_default.chartBase,
|
|
7046
|
+
style: { left: at(1) }
|
|
7047
|
+
}),
|
|
7048
|
+
rolled !== void 0 && /* @__PURE__ */ jsx("span", {
|
|
7049
|
+
className: Mutate_module_default.chartRoll,
|
|
7050
|
+
style: { left: at(ratio(range_1, rolled)) }
|
|
7051
|
+
})
|
|
7052
|
+
]
|
|
7053
|
+
})]
|
|
7054
|
+
}, range_1.attributeId);
|
|
7055
|
+
});
|
|
7056
|
+
$[12] = at;
|
|
7057
|
+
$[13] = mutaplasmids;
|
|
7058
|
+
$[14] = names;
|
|
7059
|
+
$[15] = rangesOf;
|
|
7060
|
+
$[16] = roll.attributes;
|
|
7061
|
+
$[17] = sde;
|
|
7062
|
+
$[18] = shown;
|
|
7063
|
+
$[19] = t4;
|
|
7064
|
+
$[20] = t5;
|
|
7065
|
+
$[21] = t6;
|
|
7066
|
+
$[22] = t7;
|
|
7067
|
+
} else {
|
|
7068
|
+
t4 = $[19];
|
|
7069
|
+
t5 = $[20];
|
|
7070
|
+
t6 = $[21];
|
|
7071
|
+
t7 = $[22];
|
|
7072
|
+
}
|
|
7073
|
+
let t8;
|
|
7074
|
+
if ($[31] !== low) {
|
|
7075
|
+
t8 = percent(low);
|
|
7076
|
+
$[31] = low;
|
|
7077
|
+
$[32] = t8;
|
|
7078
|
+
} else t8 = $[32];
|
|
7079
|
+
let t9;
|
|
7080
|
+
if ($[33] !== t8) {
|
|
7081
|
+
t9 = /* @__PURE__ */ jsx("span", { children: t8 });
|
|
7082
|
+
$[33] = t8;
|
|
7083
|
+
$[34] = t9;
|
|
7084
|
+
} else t9 = $[34];
|
|
7085
|
+
let t10;
|
|
7086
|
+
if ($[35] === Symbol.for("react.memo_cache_sentinel")) {
|
|
7087
|
+
t10 = /* @__PURE__ */ jsx("span", { children: "base" });
|
|
7088
|
+
$[35] = t10;
|
|
7089
|
+
} else t10 = $[35];
|
|
7090
|
+
let t11;
|
|
7091
|
+
if ($[36] !== high) {
|
|
7092
|
+
t11 = percent(high);
|
|
7093
|
+
$[36] = high;
|
|
7094
|
+
$[37] = t11;
|
|
7095
|
+
} else t11 = $[37];
|
|
7096
|
+
let t12;
|
|
7097
|
+
if ($[38] !== t11) {
|
|
7098
|
+
t12 = /* @__PURE__ */ jsx("span", { children: t11 });
|
|
7099
|
+
$[38] = t11;
|
|
7100
|
+
$[39] = t12;
|
|
7101
|
+
} else t12 = $[39];
|
|
7102
|
+
let t13;
|
|
7103
|
+
if ($[40] !== t12 || $[41] !== t9) {
|
|
7104
|
+
t13 = /* @__PURE__ */ jsxs("div", {
|
|
7105
|
+
className: Mutate_module_default.chartAxis,
|
|
7106
|
+
children: [
|
|
7107
|
+
t9,
|
|
7108
|
+
t10,
|
|
7109
|
+
t12
|
|
7110
|
+
]
|
|
7111
|
+
});
|
|
7112
|
+
$[40] = t12;
|
|
7113
|
+
$[41] = t9;
|
|
7114
|
+
$[42] = t13;
|
|
7115
|
+
} else t13 = $[42];
|
|
7116
|
+
let t14;
|
|
7117
|
+
if ($[43] !== t13 || $[44] !== t4 || $[45] !== t5 || $[46] !== t6 || $[47] !== t7) {
|
|
7118
|
+
t14 = /* @__PURE__ */ jsxs("div", {
|
|
7119
|
+
className: t4,
|
|
7120
|
+
"aria-hidden": t5,
|
|
7121
|
+
children: [
|
|
7122
|
+
t6,
|
|
7123
|
+
t7,
|
|
7124
|
+
t13
|
|
7125
|
+
]
|
|
7126
|
+
});
|
|
7127
|
+
$[43] = t13;
|
|
7128
|
+
$[44] = t4;
|
|
7129
|
+
$[45] = t5;
|
|
7130
|
+
$[46] = t6;
|
|
7131
|
+
$[47] = t7;
|
|
7132
|
+
$[48] = t14;
|
|
7133
|
+
} else t14 = $[48];
|
|
7134
|
+
return t14;
|
|
7135
|
+
}
|
|
7136
|
+
function _temp3$3(range_0) {
|
|
7137
|
+
return [range_0.attributeId, range_0];
|
|
7138
|
+
}
|
|
7139
|
+
function _temp2$6(range) {
|
|
7140
|
+
return [ratio(range, range.min), ratio(range, range.max)];
|
|
7141
|
+
}
|
|
7142
|
+
function percent(value) {
|
|
7143
|
+
return `${value > 1 ? "+" : value < 1 ? "−" : ""}${formatNumber(Math.abs(value - 1) * 100, { decimals: 0 })}%`;
|
|
7144
|
+
}
|
|
7145
|
+
function ratio(range, value) {
|
|
7146
|
+
return range.base === 0 ? 1 : value / range.base;
|
|
7147
|
+
}
|
|
7148
|
+
function ends(range) {
|
|
7149
|
+
const a = ratio(range, range.min);
|
|
7150
|
+
const b = ratio(range, range.max);
|
|
7151
|
+
return [Math.min(a, b), Math.max(a, b)];
|
|
7152
|
+
}
|
|
7153
|
+
function span(at, from, to) {
|
|
7154
|
+
return {
|
|
7155
|
+
left: at(from),
|
|
7156
|
+
right: `calc(100% - ${at(to)})`
|
|
7157
|
+
};
|
|
7158
|
+
}
|
|
7159
|
+
/** Whether a bigger multiplier makes the stat better. */
|
|
7160
|
+
function upIsGood(range) {
|
|
7161
|
+
return range.highIsGood === range.base >= 0;
|
|
7162
|
+
}
|
|
7163
|
+
/** The names without the words they all end in, like "Large Shield Extender Mutaplasmid". */
|
|
7164
|
+
function shortNames(names) {
|
|
7165
|
+
const words = names.map((name) => name.split(" "));
|
|
7166
|
+
let shared = 0;
|
|
7167
|
+
while (words.every((name) => name.length > shared + 1) && words.every((name) => name.at(-1 - shared) === words[0].at(-1 - shared))) shared++;
|
|
7168
|
+
if (names.length === 1) shared = words[0].at(-1) === "Mutaplasmid" ? 1 : 0;
|
|
7169
|
+
return words.map((name) => name.slice(0, name.length - shared).join(" "));
|
|
7170
|
+
}
|
|
7171
|
+
// src/components/Mutate/Mutate.tsx
|
|
7172
|
+
const PREVIEW_TARGET = "mutate";
|
|
7173
|
+
/** The window to roll a fitted module's mutation in, next to what asked for it. */
|
|
7174
|
+
function Mutate() {
|
|
7175
|
+
const $ = c(20);
|
|
7176
|
+
const { shown, close } = useMutate();
|
|
7177
|
+
const fit = useFit();
|
|
7178
|
+
const sde = useSde();
|
|
7179
|
+
let t0;
|
|
7180
|
+
if ($[0] !== fit || $[1] !== shown) {
|
|
7181
|
+
t0 = shown === void 0 ? -1 : refIn(fit, shown.slot);
|
|
7182
|
+
$[0] = fit;
|
|
7183
|
+
$[1] = shown;
|
|
7184
|
+
$[2] = t0;
|
|
7185
|
+
} else t0 = $[2];
|
|
7186
|
+
const ref = t0;
|
|
7187
|
+
const item = fit.items[ref];
|
|
7188
|
+
let t1;
|
|
7189
|
+
if ($[3] !== item || $[4] !== sde) {
|
|
7190
|
+
t1 = item && mutationRollOf(sde, item);
|
|
7191
|
+
$[3] = item;
|
|
7192
|
+
$[4] = sde;
|
|
7193
|
+
$[5] = t1;
|
|
7194
|
+
} else t1 = $[5];
|
|
7195
|
+
const roll = t1;
|
|
7196
|
+
const gone = shown !== void 0 && roll === void 0;
|
|
7197
|
+
const closeWhenGone = useEffectEvent(close);
|
|
7198
|
+
let t2;
|
|
7199
|
+
if ($[6] !== closeWhenGone || $[7] !== gone) {
|
|
7200
|
+
t2 = () => {
|
|
7201
|
+
if (gone) closeWhenGone();
|
|
7202
|
+
};
|
|
7203
|
+
$[6] = closeWhenGone;
|
|
7204
|
+
$[7] = gone;
|
|
7205
|
+
$[8] = t2;
|
|
7206
|
+
} else t2 = $[8];
|
|
7207
|
+
let t3;
|
|
7208
|
+
if ($[9] !== gone) {
|
|
7209
|
+
t3 = [gone];
|
|
7210
|
+
$[9] = gone;
|
|
7211
|
+
$[10] = t3;
|
|
7212
|
+
} else t3 = $[10];
|
|
7213
|
+
useEffect(t2, t3);
|
|
7214
|
+
if (shown === void 0 || item === void 0 || roll === void 0) return null;
|
|
7215
|
+
const t4 = shown.slot.type;
|
|
7216
|
+
let t5;
|
|
7217
|
+
if ($[11] !== shown.slot) {
|
|
7218
|
+
t5 = slotIndex(shown.slot);
|
|
7219
|
+
$[11] = shown.slot;
|
|
7220
|
+
$[12] = t5;
|
|
7221
|
+
} else t5 = $[12];
|
|
7222
|
+
const t6 = `${t4} ${t5}`;
|
|
7223
|
+
let t7;
|
|
7224
|
+
if ($[13] !== close || $[14] !== item.type_id || $[15] !== ref || $[16] !== roll || $[17] !== shown || $[18] !== t6) {
|
|
7225
|
+
t7 = /* @__PURE__ */ jsx(MutateCard, {
|
|
7226
|
+
shown,
|
|
7227
|
+
itemRef: ref,
|
|
7228
|
+
typeId: item.type_id,
|
|
7229
|
+
roll,
|
|
7230
|
+
onClose: close
|
|
7231
|
+
}, t6);
|
|
7232
|
+
$[13] = close;
|
|
7233
|
+
$[14] = item.type_id;
|
|
7234
|
+
$[15] = ref;
|
|
7235
|
+
$[16] = roll;
|
|
7236
|
+
$[17] = shown;
|
|
7237
|
+
$[18] = t6;
|
|
7238
|
+
$[19] = t7;
|
|
7239
|
+
} else t7 = $[19];
|
|
7240
|
+
return t7;
|
|
7241
|
+
}
|
|
7242
|
+
function MutateCard(t0) {
|
|
7243
|
+
const $ = c(42);
|
|
7244
|
+
const { shown: t1, itemRef: ref, typeId, roll: fitted, onClose } = t0;
|
|
7245
|
+
const { slot, anchor } = t1;
|
|
7246
|
+
const sde = useSde();
|
|
7247
|
+
const store = useFitStore();
|
|
7248
|
+
const preview = usePreview();
|
|
7249
|
+
const { card, style } = useAnchoredCard(anchor, onClose);
|
|
7250
|
+
const { open: openMenu, menu } = useContextMenu();
|
|
7251
|
+
const tabId = useId();
|
|
7252
|
+
const [tab, setTab] = useState("attributes");
|
|
7253
|
+
const [chosen, setChosen] = useState();
|
|
7254
|
+
const [dragged, setDragged] = useState();
|
|
7255
|
+
let t2;
|
|
7256
|
+
if ($[0] !== fitted.base || $[1] !== sde) {
|
|
7257
|
+
t2 = mutaplasmidsOf(sde, fitted.base);
|
|
7258
|
+
$[0] = fitted.base;
|
|
7259
|
+
$[1] = sde;
|
|
7260
|
+
$[2] = t2;
|
|
7261
|
+
} else t2 = $[2];
|
|
7262
|
+
const mutaplasmids = t2;
|
|
7263
|
+
let t3;
|
|
7264
|
+
if ($[3] !== chosen || $[4] !== fitted || $[5] !== sde) {
|
|
7265
|
+
t3 = chosen !== void 0 && rollFits(sde, {
|
|
7266
|
+
...fitted,
|
|
7267
|
+
mutaplasmid: chosen
|
|
7268
|
+
}) ? chosen : fitted.mutaplasmid;
|
|
7269
|
+
$[3] = chosen;
|
|
7270
|
+
$[4] = fitted;
|
|
7271
|
+
$[5] = sde;
|
|
7272
|
+
$[6] = t3;
|
|
7273
|
+
} else t3 = $[6];
|
|
7274
|
+
const mutaplasmid = t3;
|
|
7275
|
+
const roll = dragged ?? {
|
|
7276
|
+
...fitted,
|
|
7277
|
+
mutaplasmid
|
|
7278
|
+
};
|
|
7279
|
+
const ranges = mutationRanges(sde, roll.base, roll.mutaplasmid);
|
|
7280
|
+
const base = sde.type(roll.base);
|
|
7281
|
+
let t4;
|
|
7282
|
+
if ($[7] !== preview) {
|
|
7283
|
+
t4 = () => preview.clear(PREVIEW_TARGET);
|
|
7284
|
+
$[7] = preview;
|
|
7285
|
+
$[8] = t4;
|
|
7286
|
+
} else t4 = $[8];
|
|
7287
|
+
const clearPreview = useEffectEvent(t4);
|
|
7288
|
+
let t5;
|
|
7289
|
+
if ($[9] !== clearPreview) {
|
|
7290
|
+
t5 = () => () => clearPreview();
|
|
7291
|
+
$[9] = clearPreview;
|
|
7292
|
+
$[10] = t5;
|
|
7293
|
+
} else t5 = $[10];
|
|
7294
|
+
let t6;
|
|
7295
|
+
if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
|
|
7296
|
+
t6 = [];
|
|
7297
|
+
$[11] = t6;
|
|
7298
|
+
} else t6 = $[11];
|
|
7299
|
+
useEffect(t5, t6);
|
|
7300
|
+
let t7;
|
|
7301
|
+
if ($[12] !== preview || $[13] !== ref || $[14] !== store) {
|
|
7302
|
+
t7 = (next) => {
|
|
7303
|
+
preview.clear(PREVIEW_TARGET);
|
|
7304
|
+
setDragged(void 0);
|
|
7305
|
+
setChosen(next.mutaplasmid);
|
|
7306
|
+
store.setMutation(ref, next);
|
|
7307
|
+
};
|
|
7308
|
+
$[12] = preview;
|
|
7309
|
+
$[13] = ref;
|
|
7310
|
+
$[14] = store;
|
|
7311
|
+
$[15] = t7;
|
|
7312
|
+
} else t7 = $[15];
|
|
7313
|
+
const commit = t7;
|
|
7314
|
+
let t8;
|
|
7315
|
+
if ($[16] !== preview || $[17] !== ref) {
|
|
7316
|
+
t8 = (next_0) => {
|
|
7317
|
+
setDragged(next_0);
|
|
7318
|
+
preview.show((draft) => draft.setMutation(ref, next_0), PREVIEW_TARGET);
|
|
7319
|
+
};
|
|
7320
|
+
$[16] = preview;
|
|
7321
|
+
$[17] = ref;
|
|
7322
|
+
$[18] = t8;
|
|
7323
|
+
} else t8 = $[18];
|
|
7324
|
+
const drag = t8;
|
|
7325
|
+
const setValue = (range, value) => drag({
|
|
7326
|
+
...roll,
|
|
7327
|
+
attributes: {
|
|
7328
|
+
...roll.attributes,
|
|
7329
|
+
[range.attributeId]: clamp(value, range)
|
|
7330
|
+
}
|
|
7331
|
+
});
|
|
7332
|
+
let t9;
|
|
7333
|
+
if ($[19] !== commit || $[20] !== dragged) {
|
|
7334
|
+
t9 = () => {
|
|
7335
|
+
if (dragged !== void 0) commit(dragged);
|
|
7336
|
+
};
|
|
7337
|
+
$[19] = commit;
|
|
7338
|
+
$[20] = dragged;
|
|
7339
|
+
$[21] = t9;
|
|
7340
|
+
} else t9 = $[21];
|
|
7341
|
+
const finish = t9;
|
|
7342
|
+
const reroll = (kind) => commit(rollMutation(sde, roll.base, roll.mutaplasmid, kind));
|
|
7343
|
+
const choose = (picked) => {
|
|
7344
|
+
const attributes = {};
|
|
7345
|
+
for (const range_0 of mutationRanges(sde, roll.base, picked)) attributes[range_0.attributeId] = clamp(roll.attributes[range_0.attributeId] ?? range_0.base, range_0);
|
|
7346
|
+
commit({
|
|
7347
|
+
base: roll.base,
|
|
7348
|
+
mutaplasmid: picked,
|
|
7349
|
+
attributes
|
|
7350
|
+
});
|
|
7351
|
+
};
|
|
7352
|
+
let t10;
|
|
7353
|
+
if ($[22] !== onClose) {
|
|
7354
|
+
t10 = (event) => {
|
|
7355
|
+
if (event.target === event.currentTarget && event.newState === "closed") onClose();
|
|
7356
|
+
};
|
|
7357
|
+
$[22] = onClose;
|
|
7358
|
+
$[23] = t10;
|
|
7359
|
+
} else t10 = $[23];
|
|
7360
|
+
let t11;
|
|
7361
|
+
if ($[24] === Symbol.for("react.memo_cache_sentinel")) {
|
|
7362
|
+
t11 = /* @__PURE__ */ jsx(Icon, { name: "close" });
|
|
7363
|
+
$[24] = t11;
|
|
7364
|
+
} else t11 = $[24];
|
|
7365
|
+
let t12;
|
|
7366
|
+
if ($[25] !== onClose) {
|
|
7367
|
+
t12 = /* @__PURE__ */ jsx("button", {
|
|
7368
|
+
type: "button",
|
|
7369
|
+
className: ItemInfo_module_default.close,
|
|
7370
|
+
"aria-label": "Close",
|
|
7371
|
+
onClick: onClose,
|
|
7372
|
+
children: t11
|
|
7373
|
+
});
|
|
7374
|
+
$[25] = onClose;
|
|
7375
|
+
$[26] = t12;
|
|
7376
|
+
} else t12 = $[26];
|
|
7377
|
+
let t13;
|
|
7378
|
+
if ($[27] !== typeId) {
|
|
7379
|
+
t13 = /* @__PURE__ */ jsx("span", {
|
|
7380
|
+
className: ItemInfo_module_default.typeIcon,
|
|
7381
|
+
children: /* @__PURE__ */ jsx(TypeIcon, {
|
|
7382
|
+
typeId,
|
|
7383
|
+
size: 64
|
|
7384
|
+
})
|
|
7385
|
+
});
|
|
7386
|
+
$[27] = typeId;
|
|
7387
|
+
$[28] = t13;
|
|
7388
|
+
} else t13 = $[28];
|
|
7389
|
+
let t14;
|
|
7390
|
+
if ($[29] !== slot) {
|
|
7391
|
+
t14 = slotName(slot);
|
|
7392
|
+
$[29] = slot;
|
|
7393
|
+
$[30] = t14;
|
|
7394
|
+
} else t14 = $[30];
|
|
7395
|
+
let t15;
|
|
7396
|
+
if ($[31] !== t14) {
|
|
7397
|
+
t15 = /* @__PURE__ */ jsxs("span", { children: ["Fitted · ", t14] });
|
|
7398
|
+
$[31] = t14;
|
|
7399
|
+
$[32] = t15;
|
|
7400
|
+
} else t15 = $[32];
|
|
7401
|
+
let t16;
|
|
7402
|
+
if ($[33] !== tab || $[34] !== tabId) {
|
|
7403
|
+
t16 = tabs.map((name) => /* @__PURE__ */ jsx("button", {
|
|
7404
|
+
type: "button",
|
|
7405
|
+
id: `${tabId}-${name}`,
|
|
7406
|
+
className: ItemInfo_module_default.tab,
|
|
7407
|
+
role: "tab",
|
|
7408
|
+
"aria-selected": name === tab,
|
|
7409
|
+
onClick: () => setTab(name),
|
|
7410
|
+
children: tabLabels[name]
|
|
7411
|
+
}, name));
|
|
7412
|
+
$[33] = tab;
|
|
7413
|
+
$[34] = tabId;
|
|
7414
|
+
$[35] = t16;
|
|
7415
|
+
} else t16 = $[35];
|
|
7416
|
+
let t17;
|
|
7417
|
+
if ($[36] !== t16) {
|
|
7418
|
+
t17 = /* @__PURE__ */ jsx("div", {
|
|
7419
|
+
className: ItemInfo_module_default.tabs,
|
|
7420
|
+
role: "tablist",
|
|
7421
|
+
children: t16
|
|
7422
|
+
});
|
|
7423
|
+
$[36] = t16;
|
|
7424
|
+
$[37] = t17;
|
|
7425
|
+
} else t17 = $[37];
|
|
7426
|
+
const t18 = Mutate_module_default;
|
|
7427
|
+
const t19 = "tabpanel";
|
|
7428
|
+
const t20 = `${tabId}-${tab}`;
|
|
7429
|
+
const t21 = tab === "attributes" ? /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
7430
|
+
/* @__PURE__ */ jsxs("div", {
|
|
7431
|
+
className: Mutate_module_default.toolbar,
|
|
7432
|
+
children: [/* @__PURE__ */ jsx(MutaplasmidPicker, {
|
|
7433
|
+
mutaplasmids,
|
|
7434
|
+
roll,
|
|
7435
|
+
onChoose: choose
|
|
7436
|
+
}), /* @__PURE__ */ jsxs("span", {
|
|
7437
|
+
className: Mutate_module_default.roll,
|
|
7438
|
+
children: [/* @__PURE__ */ jsx("button", {
|
|
7439
|
+
type: "button",
|
|
7440
|
+
className: Mutate_module_default.dice,
|
|
7441
|
+
"aria-label": "Roll",
|
|
7442
|
+
title: "Roll",
|
|
7443
|
+
onClick: () => reroll("random"),
|
|
7444
|
+
children: /* @__PURE__ */ jsx(Dice, {})
|
|
7445
|
+
}), /* @__PURE__ */ jsx("button", {
|
|
7446
|
+
type: "button",
|
|
7447
|
+
className: Mutate_module_default.more,
|
|
7448
|
+
"aria-label": "More Rolls",
|
|
7449
|
+
"aria-haspopup": "menu",
|
|
7450
|
+
onClick: (event_0) => openMenu(event_0, [{
|
|
7451
|
+
label: "Best Roll",
|
|
7452
|
+
onSelect: () => reroll("best")
|
|
7453
|
+
}, {
|
|
7454
|
+
label: "Worst Roll",
|
|
7455
|
+
onSelect: () => reroll("worst")
|
|
7456
|
+
}]),
|
|
7457
|
+
children: "▾"
|
|
7458
|
+
})]
|
|
7459
|
+
})]
|
|
7460
|
+
}),
|
|
7461
|
+
menu,
|
|
7462
|
+
/* @__PURE__ */ jsx("div", {
|
|
7463
|
+
className: Mutate_module_default.stats,
|
|
7464
|
+
children: ranges.map((range_1) => /* @__PURE__ */ jsx(Stat$1, {
|
|
7465
|
+
range: range_1,
|
|
7466
|
+
value: roll.attributes[range_1.attributeId] ?? range_1.base,
|
|
7467
|
+
onChange: (value_0) => setValue(range_1, value_0),
|
|
7468
|
+
onFinish: finish
|
|
7469
|
+
}, range_1.attributeId))
|
|
7470
|
+
})
|
|
7471
|
+
] }) : /* @__PURE__ */ jsx(Import, {
|
|
7472
|
+
slot,
|
|
7473
|
+
current: fitted,
|
|
7474
|
+
onFound: (found) => {
|
|
7475
|
+
setChosen(found.mutaplasmid);
|
|
7476
|
+
setTab("attributes");
|
|
7477
|
+
}
|
|
7478
|
+
});
|
|
7479
|
+
let t22;
|
|
7480
|
+
if ($[38] !== t18.panel || $[39] !== t20 || $[40] !== t21) {
|
|
7481
|
+
t22 = /* @__PURE__ */ jsx("div", {
|
|
7482
|
+
className: t18.panel,
|
|
7483
|
+
role: t19,
|
|
7484
|
+
"aria-labelledby": t20,
|
|
7485
|
+
children: t21
|
|
7486
|
+
});
|
|
7487
|
+
$[38] = t18.panel;
|
|
7488
|
+
$[39] = t20;
|
|
7489
|
+
$[40] = t21;
|
|
7490
|
+
$[41] = t22;
|
|
7491
|
+
} else t22 = $[41];
|
|
7492
|
+
return /* @__PURE__ */ jsxs("section", {
|
|
7493
|
+
ref: card,
|
|
7494
|
+
className: `${ItemInfo_module_default.card} ${Mutate_module_default.card}`,
|
|
7495
|
+
popover: "auto",
|
|
7496
|
+
onToggle: t10,
|
|
7497
|
+
"aria-label": `Mutate ${base?.name ?? ""}`,
|
|
7498
|
+
"data-side": anchor?.side,
|
|
7499
|
+
style,
|
|
7500
|
+
children: [
|
|
7501
|
+
t12,
|
|
7502
|
+
/* @__PURE__ */ jsxs("header", {
|
|
7503
|
+
className: ItemInfo_module_default.header,
|
|
7504
|
+
children: [t13, /* @__PURE__ */ jsxs("div", {
|
|
7505
|
+
className: ItemInfo_module_default.title,
|
|
7506
|
+
children: [
|
|
7507
|
+
/* @__PURE__ */ jsxs("h2", {
|
|
7508
|
+
className: ItemInfo_module_default.name,
|
|
7509
|
+
children: ["Mutate ", base?.name]
|
|
7510
|
+
}),
|
|
7511
|
+
/* @__PURE__ */ jsx("span", {
|
|
7512
|
+
className: ItemInfo_module_default.muted,
|
|
7513
|
+
children: sde.type(roll.mutaplasmid)?.name
|
|
7514
|
+
}),
|
|
7515
|
+
t15
|
|
7516
|
+
]
|
|
7517
|
+
})]
|
|
7518
|
+
}),
|
|
7519
|
+
t17,
|
|
7520
|
+
t22
|
|
7521
|
+
]
|
|
7522
|
+
});
|
|
7523
|
+
}
|
|
7524
|
+
const tabs = ["attributes", "import"];
|
|
7525
|
+
const tabLabels = {
|
|
7526
|
+
attributes: "Attributes",
|
|
7527
|
+
import: "Import"
|
|
7528
|
+
};
|
|
7529
|
+
function Stat$1(t0) {
|
|
7530
|
+
const $ = c(49);
|
|
7531
|
+
const { range, value, onChange, onFinish } = t0;
|
|
7532
|
+
const sde = useSde();
|
|
7533
|
+
let t1;
|
|
7534
|
+
if ($[0] !== range.attributeId || $[1] !== sde) {
|
|
7535
|
+
t1 = sde.attribute(range.attributeId);
|
|
7536
|
+
$[0] = range.attributeId;
|
|
7537
|
+
$[1] = sde;
|
|
7538
|
+
$[2] = t1;
|
|
7539
|
+
} else t1 = $[2];
|
|
7540
|
+
const attribute = t1;
|
|
7541
|
+
const name = attribute?.displayName ?? attribute?.name ?? String(range.attributeId);
|
|
7542
|
+
const t2 = useImages();
|
|
7543
|
+
let t3;
|
|
7544
|
+
if ($[3] !== range.attributeId || $[4] !== t2) {
|
|
7545
|
+
t3 = t2.attributeIcon(range.attributeId);
|
|
7546
|
+
$[3] = range.attributeId;
|
|
7547
|
+
$[4] = t2;
|
|
7548
|
+
$[5] = t3;
|
|
7549
|
+
} else t3 = $[5];
|
|
7550
|
+
const icon = t3;
|
|
7551
|
+
const span = range.max - range.min;
|
|
7552
|
+
const base = `${span === 0 ? 50 : (range.base - range.min) / span * 100}%`;
|
|
7553
|
+
const change = range.base === 0 ? 0 : value / range.base - 1;
|
|
7554
|
+
const t4 = Math.abs(change) * 100;
|
|
7555
|
+
let t5;
|
|
7556
|
+
if ($[6] !== t4) {
|
|
7557
|
+
t5 = formatNumber(t4, { decimals: 1 });
|
|
7558
|
+
$[6] = t4;
|
|
7559
|
+
$[7] = t5;
|
|
7560
|
+
} else t5 = $[7];
|
|
7561
|
+
const percent = t5;
|
|
7562
|
+
const unchanged = Number(percent) === 0;
|
|
7563
|
+
const better = value > range.base === range.highIsGood;
|
|
7564
|
+
let t6;
|
|
7565
|
+
if ($[8] !== range.attributeId || $[9] !== sde || $[10] !== value) {
|
|
7566
|
+
t6 = formatAttribute(sde, range.attributeId, value);
|
|
7567
|
+
$[8] = range.attributeId;
|
|
7568
|
+
$[9] = sde;
|
|
7569
|
+
$[10] = value;
|
|
7570
|
+
$[11] = t6;
|
|
7571
|
+
} else t6 = $[11];
|
|
7572
|
+
const text = t6;
|
|
7573
|
+
const slider = useRef(null);
|
|
7574
|
+
const released = useEffectEvent(onFinish);
|
|
7575
|
+
let t7;
|
|
7576
|
+
if ($[12] !== released) {
|
|
7577
|
+
t7 = () => {
|
|
7578
|
+
const input = slider.current;
|
|
7579
|
+
const listener = () => released();
|
|
7580
|
+
input?.addEventListener("change", listener);
|
|
7581
|
+
return () => input?.removeEventListener("change", listener);
|
|
7582
|
+
};
|
|
7583
|
+
$[12] = released;
|
|
7584
|
+
$[13] = t7;
|
|
7585
|
+
} else t7 = $[13];
|
|
7586
|
+
let t8;
|
|
7587
|
+
if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
|
|
7588
|
+
t8 = [];
|
|
7589
|
+
$[14] = t8;
|
|
7590
|
+
} else t8 = $[14];
|
|
7591
|
+
useEffect(t7, t8);
|
|
7592
|
+
let t9;
|
|
7593
|
+
if ($[15] !== icon) {
|
|
7594
|
+
t9 = icon === void 0 ? /* @__PURE__ */ jsx("span", { className: Mutate_module_default.icon }) : /* @__PURE__ */ jsx("img", {
|
|
7595
|
+
className: Mutate_module_default.icon,
|
|
7596
|
+
src: icon,
|
|
7597
|
+
alt: ""
|
|
7598
|
+
});
|
|
7599
|
+
$[15] = icon;
|
|
7600
|
+
$[16] = t9;
|
|
7601
|
+
} else t9 = $[16];
|
|
7602
|
+
let t10;
|
|
7603
|
+
if ($[17] !== name) {
|
|
7604
|
+
t10 = /* @__PURE__ */ jsx("span", {
|
|
7605
|
+
className: Mutate_module_default.label,
|
|
7606
|
+
children: name
|
|
7607
|
+
});
|
|
7608
|
+
$[17] = name;
|
|
7609
|
+
$[18] = t10;
|
|
7610
|
+
} else t10 = $[18];
|
|
7611
|
+
let t11;
|
|
7612
|
+
if ($[19] !== name || $[20] !== t10 || $[21] !== t9) {
|
|
7613
|
+
t11 = /* @__PURE__ */ jsxs("span", {
|
|
7614
|
+
className: Mutate_module_default.name,
|
|
7615
|
+
title: name,
|
|
7616
|
+
children: [t9, t10]
|
|
7617
|
+
});
|
|
7618
|
+
$[19] = name;
|
|
7619
|
+
$[20] = t10;
|
|
7620
|
+
$[21] = t9;
|
|
7621
|
+
$[22] = t11;
|
|
7622
|
+
} else t11 = $[22];
|
|
7623
|
+
let t12;
|
|
7624
|
+
if ($[23] !== base) {
|
|
7625
|
+
t12 = { "--base": base };
|
|
7626
|
+
$[23] = base;
|
|
7627
|
+
$[24] = t12;
|
|
7628
|
+
} else t12 = $[24];
|
|
7629
|
+
const t13 = t12;
|
|
7630
|
+
const t14 = range.highIsGood || void 0;
|
|
7631
|
+
let t15;
|
|
7632
|
+
if ($[25] !== onChange) {
|
|
7633
|
+
t15 = (event) => onChange(Number(event.currentTarget.value));
|
|
7634
|
+
$[25] = onChange;
|
|
7635
|
+
$[26] = t15;
|
|
7636
|
+
} else t15 = $[26];
|
|
7637
|
+
let t16;
|
|
7638
|
+
if ($[27] !== name || $[28] !== onFinish || $[29] !== range.max || $[30] !== range.min || $[31] !== t15 || $[32] !== text || $[33] !== value) {
|
|
7639
|
+
t16 = /* @__PURE__ */ jsx("input", {
|
|
7640
|
+
ref: slider,
|
|
7641
|
+
type: "range",
|
|
7642
|
+
"aria-label": name,
|
|
7643
|
+
min: range.min,
|
|
7644
|
+
max: range.max,
|
|
7645
|
+
step: "any",
|
|
7646
|
+
value,
|
|
7647
|
+
"aria-valuetext": text,
|
|
7648
|
+
onChange: t15,
|
|
7649
|
+
onPointerUp: onFinish,
|
|
7650
|
+
onBlur: onFinish
|
|
7651
|
+
});
|
|
7652
|
+
$[27] = name;
|
|
7653
|
+
$[28] = onFinish;
|
|
7654
|
+
$[29] = range.max;
|
|
7655
|
+
$[30] = range.min;
|
|
7656
|
+
$[31] = t15;
|
|
7657
|
+
$[32] = text;
|
|
7658
|
+
$[33] = value;
|
|
7659
|
+
$[34] = t16;
|
|
7660
|
+
} else t16 = $[34];
|
|
7661
|
+
let t17;
|
|
7662
|
+
if ($[35] !== t13 || $[36] !== t14 || $[37] !== t16) {
|
|
7663
|
+
t17 = /* @__PURE__ */ jsx("span", {
|
|
7664
|
+
className: Mutate_module_default.slider,
|
|
7665
|
+
style: t13,
|
|
7666
|
+
"data-high-is-good": t14,
|
|
7667
|
+
children: t16
|
|
7668
|
+
});
|
|
7669
|
+
$[35] = t13;
|
|
7670
|
+
$[36] = t14;
|
|
7671
|
+
$[37] = t16;
|
|
7672
|
+
$[38] = t17;
|
|
7673
|
+
} else t17 = $[38];
|
|
7674
|
+
let t18;
|
|
7675
|
+
if ($[39] !== text) {
|
|
7676
|
+
t18 = /* @__PURE__ */ jsx("span", {
|
|
7677
|
+
className: Mutate_module_default.value,
|
|
7678
|
+
children: text
|
|
7679
|
+
});
|
|
7680
|
+
$[39] = text;
|
|
7681
|
+
$[40] = t18;
|
|
7682
|
+
} else t18 = $[40];
|
|
7683
|
+
const t19 = unchanged ? void 0 : better ? "better" : "worse";
|
|
7684
|
+
const t20 = unchanged ? "0%" : `${change > 0 ? "+" : "-"}${percent}%`;
|
|
7685
|
+
let t21;
|
|
7686
|
+
if ($[41] !== t19 || $[42] !== t20) {
|
|
7687
|
+
t21 = /* @__PURE__ */ jsx("span", {
|
|
7688
|
+
className: Mutate_module_default.change,
|
|
7689
|
+
"data-change": t19,
|
|
7690
|
+
children: t20
|
|
7691
|
+
});
|
|
7692
|
+
$[41] = t19;
|
|
7693
|
+
$[42] = t20;
|
|
7694
|
+
$[43] = t21;
|
|
7695
|
+
} else t21 = $[43];
|
|
7696
|
+
let t22;
|
|
7697
|
+
if ($[44] !== t11 || $[45] !== t17 || $[46] !== t18 || $[47] !== t21) {
|
|
7698
|
+
t22 = /* @__PURE__ */ jsxs("div", {
|
|
7699
|
+
className: Mutate_module_default.stat,
|
|
7700
|
+
children: [
|
|
7701
|
+
t11,
|
|
7702
|
+
t17,
|
|
7703
|
+
t18,
|
|
7704
|
+
t21
|
|
7705
|
+
]
|
|
7706
|
+
});
|
|
7707
|
+
$[44] = t11;
|
|
7708
|
+
$[45] = t17;
|
|
7709
|
+
$[46] = t18;
|
|
7710
|
+
$[47] = t21;
|
|
7711
|
+
$[48] = t22;
|
|
7712
|
+
} else t22 = $[48];
|
|
7713
|
+
return t22;
|
|
7714
|
+
}
|
|
7715
|
+
/** Rolls this module like one pasted from Pyfa, or one in game looked up by its link or IDs. */
|
|
7716
|
+
function Import(t0) {
|
|
7717
|
+
const $ = c(39);
|
|
7718
|
+
const { slot, current, onFound } = t0;
|
|
7719
|
+
const engine = useEngine();
|
|
7720
|
+
const store = useFitStore();
|
|
7721
|
+
const sde = useSde();
|
|
7722
|
+
const fieldId = useId();
|
|
7723
|
+
const [text, setText] = useState("");
|
|
7724
|
+
const [status, setStatus] = useState();
|
|
7725
|
+
let t1;
|
|
7726
|
+
if ($[0] !== sde || $[1] !== text) {
|
|
7727
|
+
t1 = parseMutationText(sde, text);
|
|
7728
|
+
$[0] = sde;
|
|
7729
|
+
$[1] = text;
|
|
7730
|
+
$[2] = t1;
|
|
7731
|
+
} else t1 = $[2];
|
|
7732
|
+
const pasted = t1;
|
|
6526
7733
|
let t2;
|
|
6527
|
-
if ($[
|
|
6528
|
-
t2 =
|
|
6529
|
-
$[
|
|
6530
|
-
$[
|
|
6531
|
-
} else t2 = $[3];
|
|
6532
|
-
let t3;
|
|
6533
|
-
if ($[4] !== t1 || $[5] !== t2) {
|
|
6534
|
-
t3 = /* @__PURE__ */ jsxs(Fragment$1, { children: [t1, t2] });
|
|
6535
|
-
$[4] = t1;
|
|
7734
|
+
if ($[3] !== engine.esi || $[4] !== text) {
|
|
7735
|
+
t2 = engine.esi === void 0 ? void 0 : parseItemLink(text);
|
|
7736
|
+
$[3] = engine.esi;
|
|
7737
|
+
$[4] = text;
|
|
6536
7738
|
$[5] = t2;
|
|
6537
|
-
|
|
6538
|
-
|
|
6539
|
-
|
|
6540
|
-
|
|
7739
|
+
} else t2 = $[5];
|
|
7740
|
+
const ids = t2;
|
|
7741
|
+
let t3;
|
|
7742
|
+
if ($[6] !== onFound || $[7] !== sde || $[8] !== slot || $[9] !== store) {
|
|
7743
|
+
t3 = (roll) => {
|
|
7744
|
+
const { fit } = store.getSnapshot();
|
|
7745
|
+
const ref = refIn(fit, slot);
|
|
7746
|
+
const base = fit.items[ref]?.mutation?.base;
|
|
7747
|
+
if (base !== roll.base) {
|
|
7748
|
+
const name = (typeId) => typeId === void 0 ? "module" : sde.type(typeId)?.name;
|
|
7749
|
+
setStatus({ error: `That is a ${name(roll.base)}, not a ${name(base)}` });
|
|
7750
|
+
return;
|
|
7751
|
+
}
|
|
7752
|
+
store.setMutation(ref, roll);
|
|
7753
|
+
setStatus(void 0);
|
|
7754
|
+
onFound(roll);
|
|
7755
|
+
};
|
|
7756
|
+
$[6] = onFound;
|
|
7757
|
+
$[7] = sde;
|
|
7758
|
+
$[8] = slot;
|
|
7759
|
+
$[9] = store;
|
|
7760
|
+
$[10] = t3;
|
|
7761
|
+
} else t3 = $[10];
|
|
7762
|
+
const apply = t3;
|
|
7763
|
+
let t4;
|
|
7764
|
+
if ($[11] !== apply || $[12] !== engine || $[13] !== ids || $[14] !== pasted) {
|
|
7765
|
+
t4 = async () => {
|
|
7766
|
+
if (pasted !== void 0) {
|
|
7767
|
+
apply(pasted);
|
|
7768
|
+
return;
|
|
7769
|
+
}
|
|
7770
|
+
if (ids === void 0) return;
|
|
7771
|
+
setStatus({ busy: true });
|
|
7772
|
+
try {
|
|
7773
|
+
apply(await engine.loadMutation(ids.typeId, ids.itemId));
|
|
7774
|
+
} catch (t5) {
|
|
7775
|
+
const failure = t5;
|
|
7776
|
+
setStatus({ error: failure instanceof Error ? failure.message : String(failure) });
|
|
7777
|
+
}
|
|
7778
|
+
};
|
|
7779
|
+
$[11] = apply;
|
|
7780
|
+
$[12] = engine;
|
|
7781
|
+
$[13] = ids;
|
|
7782
|
+
$[14] = pasted;
|
|
7783
|
+
$[15] = t4;
|
|
7784
|
+
} else t4 = $[15];
|
|
7785
|
+
const lookUp = t4;
|
|
6541
7786
|
let t5;
|
|
6542
|
-
if ($[
|
|
6543
|
-
t5 =
|
|
6544
|
-
|
|
6545
|
-
|
|
6546
|
-
}
|
|
6547
|
-
|
|
6548
|
-
|
|
6549
|
-
|
|
6550
|
-
|
|
6551
|
-
onKeyDown: (event) => {
|
|
6552
|
-
if (event.key !== "Enter") return;
|
|
6553
|
-
event.preventDefault();
|
|
6554
|
-
onActivate();
|
|
6555
|
-
},
|
|
6556
|
-
onMouseEnter: () => onHover?.(true),
|
|
6557
|
-
onMouseLeave: () => onHover?.(false),
|
|
6558
|
-
onFocus: () => onHover?.(true),
|
|
6559
|
-
onBlur: () => onHover?.(false),
|
|
6560
|
-
children: label
|
|
6561
|
-
});
|
|
6562
|
-
$[7] = current;
|
|
6563
|
-
$[8] = label;
|
|
6564
|
-
$[9] = onActivate;
|
|
6565
|
-
$[10] = onHover;
|
|
6566
|
-
$[11] = t5;
|
|
6567
|
-
} else t5 = $[11];
|
|
6568
|
-
const t6 = `Show Info on ${type.name}`;
|
|
7787
|
+
if ($[16] !== lookUp) {
|
|
7788
|
+
t5 = (event) => {
|
|
7789
|
+
event.preventDefault();
|
|
7790
|
+
lookUp();
|
|
7791
|
+
};
|
|
7792
|
+
$[16] = lookUp;
|
|
7793
|
+
$[17] = t5;
|
|
7794
|
+
} else t5 = $[17];
|
|
7795
|
+
const t6 = engine.esi === void 0 ? "Paste the module from Pyfa." : "Paste the module from Pyfa or its item link from EVE, or type its type ID and item ID.";
|
|
6569
7796
|
let t7;
|
|
6570
|
-
if ($[
|
|
6571
|
-
t7 = /* @__PURE__ */ jsx(
|
|
6572
|
-
|
|
6573
|
-
|
|
6574
|
-
let t8;
|
|
6575
|
-
if ($[13] !== onInfo || $[14] !== t6) {
|
|
6576
|
-
t8 = /* @__PURE__ */ jsx("button", {
|
|
6577
|
-
type: "button",
|
|
6578
|
-
className: ItemInfo_module_default.info,
|
|
6579
|
-
"aria-label": t6,
|
|
6580
|
-
onClick: onInfo,
|
|
6581
|
-
children: t7
|
|
7797
|
+
if ($[18] !== fieldId || $[19] !== t6) {
|
|
7798
|
+
t7 = /* @__PURE__ */ jsx("label", {
|
|
7799
|
+
htmlFor: fieldId,
|
|
7800
|
+
children: t6
|
|
6582
7801
|
});
|
|
6583
|
-
$[
|
|
6584
|
-
$[
|
|
6585
|
-
$[
|
|
6586
|
-
} else
|
|
7802
|
+
$[18] = fieldId;
|
|
7803
|
+
$[19] = t6;
|
|
7804
|
+
$[20] = t7;
|
|
7805
|
+
} else t7 = $[20];
|
|
7806
|
+
let t8;
|
|
7807
|
+
if ($[21] !== current || $[22] !== sde) {
|
|
7808
|
+
t8 = pyfaText(sde, current);
|
|
7809
|
+
$[21] = current;
|
|
7810
|
+
$[22] = sde;
|
|
7811
|
+
$[23] = t8;
|
|
7812
|
+
} else t8 = $[23];
|
|
6587
7813
|
let t9;
|
|
6588
|
-
if ($[
|
|
6589
|
-
t9 =
|
|
6590
|
-
|
|
6591
|
-
|
|
6592
|
-
|
|
7814
|
+
if ($[24] === Symbol.for("react.memo_cache_sentinel")) {
|
|
7815
|
+
t9 = (event_0) => {
|
|
7816
|
+
setText(event_0.currentTarget.value);
|
|
7817
|
+
setStatus(void 0);
|
|
7818
|
+
};
|
|
7819
|
+
$[24] = t9;
|
|
7820
|
+
} else t9 = $[24];
|
|
7821
|
+
let t10;
|
|
7822
|
+
if ($[25] !== fieldId || $[26] !== t8 || $[27] !== text) {
|
|
7823
|
+
t10 = /* @__PURE__ */ jsx("textarea", {
|
|
7824
|
+
id: fieldId,
|
|
7825
|
+
className: Mutate_module_default.field,
|
|
7826
|
+
rows: 5,
|
|
7827
|
+
placeholder: t8,
|
|
7828
|
+
value: text,
|
|
7829
|
+
onChange: t9
|
|
6593
7830
|
});
|
|
6594
|
-
$[
|
|
6595
|
-
$[
|
|
6596
|
-
$[
|
|
6597
|
-
$[
|
|
6598
|
-
} else
|
|
6599
|
-
|
|
7831
|
+
$[25] = fieldId;
|
|
7832
|
+
$[26] = t8;
|
|
7833
|
+
$[27] = text;
|
|
7834
|
+
$[28] = t10;
|
|
7835
|
+
} else t10 = $[28];
|
|
7836
|
+
const t11 = pasted === void 0 && ids === void 0 || status !== void 0 && "busy" in status;
|
|
7837
|
+
let t12;
|
|
7838
|
+
if ($[29] !== t11) {
|
|
7839
|
+
t12 = /* @__PURE__ */ jsx("button", {
|
|
7840
|
+
type: "submit",
|
|
7841
|
+
className: Mutate_module_default.button,
|
|
7842
|
+
disabled: t11,
|
|
7843
|
+
children: "Apply"
|
|
7844
|
+
});
|
|
7845
|
+
$[29] = t11;
|
|
7846
|
+
$[30] = t12;
|
|
7847
|
+
} else t12 = $[30];
|
|
7848
|
+
let t13;
|
|
7849
|
+
if ($[31] !== status) {
|
|
7850
|
+
t13 = status !== void 0 && "error" in status && /* @__PURE__ */ jsx("p", {
|
|
7851
|
+
className: Mutate_module_default.error,
|
|
7852
|
+
role: "alert",
|
|
7853
|
+
children: status.error
|
|
7854
|
+
});
|
|
7855
|
+
$[31] = status;
|
|
7856
|
+
$[32] = t13;
|
|
7857
|
+
} else t13 = $[32];
|
|
7858
|
+
let t14;
|
|
7859
|
+
if ($[33] !== t10 || $[34] !== t12 || $[35] !== t13 || $[36] !== t5 || $[37] !== t7) {
|
|
7860
|
+
t14 = /* @__PURE__ */ jsxs("form", {
|
|
7861
|
+
className: Mutate_module_default.import,
|
|
7862
|
+
onSubmit: t5,
|
|
7863
|
+
children: [
|
|
7864
|
+
t7,
|
|
7865
|
+
t10,
|
|
7866
|
+
t12,
|
|
7867
|
+
t13
|
|
7868
|
+
]
|
|
7869
|
+
});
|
|
7870
|
+
$[33] = t10;
|
|
7871
|
+
$[34] = t12;
|
|
7872
|
+
$[35] = t13;
|
|
7873
|
+
$[36] = t5;
|
|
7874
|
+
$[37] = t7;
|
|
7875
|
+
$[38] = t14;
|
|
7876
|
+
} else t14 = $[38];
|
|
7877
|
+
return t14;
|
|
6600
7878
|
}
|
|
6601
|
-
|
|
6602
|
-
|
|
6603
|
-
|
|
6604
|
-
return `${name}
|
|
7879
|
+
/** A roll as Pyfa copies a mutated module. */
|
|
7880
|
+
function pyfaText(sde, roll) {
|
|
7881
|
+
const values = Object.entries(roll.attributes).map(([id, value]) => `${sde.attribute(Number(id))?.name ?? id} ${Number(value.toFixed(4))}`).join(", ");
|
|
7882
|
+
return `${sde.type(roll.base)?.name ?? roll.base}\n${sde.type(roll.mutaplasmid)?.name ?? roll.mutaplasmid}\n${values}`;
|
|
7883
|
+
}
|
|
7884
|
+
function refIn(fit, slot) {
|
|
7885
|
+
return fit.items.findIndex((item) => item.slot.type === slot.type && slotIndex(item.slot) === slotIndex(slot));
|
|
7886
|
+
}
|
|
7887
|
+
function slotIndex(slot) {
|
|
7888
|
+
return "index" in slot ? slot.index : void 0;
|
|
7889
|
+
}
|
|
7890
|
+
function clamp(value, range) {
|
|
7891
|
+
return Math.min(range.max, Math.max(range.min, value));
|
|
7892
|
+
}
|
|
7893
|
+
function Dice() {
|
|
7894
|
+
const $ = c(1);
|
|
7895
|
+
let t0;
|
|
7896
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
7897
|
+
t0 = /* @__PURE__ */ jsxs("svg", {
|
|
7898
|
+
viewBox: "0 0 16 16",
|
|
7899
|
+
width: "16",
|
|
7900
|
+
height: "16",
|
|
7901
|
+
"aria-hidden": true,
|
|
7902
|
+
children: [
|
|
7903
|
+
/* @__PURE__ */ jsx("rect", {
|
|
7904
|
+
x: "1.5",
|
|
7905
|
+
y: "1.5",
|
|
7906
|
+
width: "13",
|
|
7907
|
+
height: "13",
|
|
7908
|
+
rx: "2.5",
|
|
7909
|
+
fill: "none",
|
|
7910
|
+
stroke: "currentColor"
|
|
7911
|
+
}),
|
|
7912
|
+
/* @__PURE__ */ jsx("circle", {
|
|
7913
|
+
cx: "5",
|
|
7914
|
+
cy: "5",
|
|
7915
|
+
r: "1.3",
|
|
7916
|
+
fill: "currentColor"
|
|
7917
|
+
}),
|
|
7918
|
+
/* @__PURE__ */ jsx("circle", {
|
|
7919
|
+
cx: "8",
|
|
7920
|
+
cy: "8",
|
|
7921
|
+
r: "1.3",
|
|
7922
|
+
fill: "currentColor"
|
|
7923
|
+
}),
|
|
7924
|
+
/* @__PURE__ */ jsx("circle", {
|
|
7925
|
+
cx: "11",
|
|
7926
|
+
cy: "11",
|
|
7927
|
+
r: "1.3",
|
|
7928
|
+
fill: "currentColor"
|
|
7929
|
+
})
|
|
7930
|
+
]
|
|
7931
|
+
});
|
|
7932
|
+
$[0] = t0;
|
|
7933
|
+
} else t0 = $[0];
|
|
7934
|
+
return t0;
|
|
6605
7935
|
}
|
|
6606
7936
|
// src/components/ShipBonuses/ShipBonuses.module.css
|
|
6607
7937
|
var ShipBonuses_module_default = {
|
|
@@ -8185,6 +9515,7 @@ function FittingWindow({ label = "Fitting Window", browser, statistics: givenSta
|
|
|
8185
9515
|
"data-statistics": statisticsShown || void 0,
|
|
8186
9516
|
children: [
|
|
8187
9517
|
!preview && /* @__PURE__ */ jsx(ItemInfo, {}),
|
|
9518
|
+
!preview && /* @__PURE__ */ jsx(Mutate, {}),
|
|
8188
9519
|
browser !== void 0 && /* @__PURE__ */ jsx("div", {
|
|
8189
9520
|
id: browserId,
|
|
8190
9521
|
className: FittingWindow_module_default.browser,
|
|
@@ -8204,10 +9535,7 @@ function FittingWindow({ label = "Fitting Window", browser, statistics: givenSta
|
|
|
8204
9535
|
credit: preview
|
|
8205
9536
|
}) : /* @__PURE__ */ jsx(Wheel, {
|
|
8206
9537
|
label: "Fitting",
|
|
8207
|
-
children: /* @__PURE__ */ jsx(
|
|
8208
|
-
className: FittingWindow_module_default.placeholder,
|
|
8209
|
-
children: placeholder
|
|
8210
|
-
})
|
|
9538
|
+
children: /* @__PURE__ */ jsx(Placeholder, { text: placeholder })
|
|
8211
9539
|
})
|
|
8212
9540
|
}),
|
|
8213
9541
|
preview && placeholder === void 0 && /* @__PURE__ */ jsx(PreviewName, {}),
|
|
@@ -8302,6 +9630,58 @@ function FittingWindow({ label = "Fitting Window", browser, statistics: givenSta
|
|
|
8302
9630
|
})
|
|
8303
9631
|
});
|
|
8304
9632
|
}
|
|
9633
|
+
/** Picks a hull dropped on the empty wheel. */
|
|
9634
|
+
function Placeholder(t0) {
|
|
9635
|
+
const $ = c(12);
|
|
9636
|
+
const { text } = t0;
|
|
9637
|
+
const store = useFitStore();
|
|
9638
|
+
const { dragging, end } = useDrag();
|
|
9639
|
+
const hull = dragging?.type === "hull" ? dragging.typeId : void 0;
|
|
9640
|
+
let t1;
|
|
9641
|
+
if ($[0] !== dragging) {
|
|
9642
|
+
t1 = (event) => {
|
|
9643
|
+
if (dragging?.type === "hull") allowDrop(event, dragging);
|
|
9644
|
+
};
|
|
9645
|
+
$[0] = dragging;
|
|
9646
|
+
$[1] = t1;
|
|
9647
|
+
} else t1 = $[1];
|
|
9648
|
+
let t2;
|
|
9649
|
+
if ($[2] !== end || $[3] !== hull || $[4] !== store) {
|
|
9650
|
+
t2 = (event_0) => {
|
|
9651
|
+
if (hull === void 0) return;
|
|
9652
|
+
event_0.preventDefault();
|
|
9653
|
+
store.replace({
|
|
9654
|
+
ship: { type_id: hull },
|
|
9655
|
+
items: []
|
|
9656
|
+
});
|
|
9657
|
+
end();
|
|
9658
|
+
};
|
|
9659
|
+
$[2] = end;
|
|
9660
|
+
$[3] = hull;
|
|
9661
|
+
$[4] = store;
|
|
9662
|
+
$[5] = t2;
|
|
9663
|
+
} else t2 = $[5];
|
|
9664
|
+
let t3;
|
|
9665
|
+
if ($[6] !== text) {
|
|
9666
|
+
t3 = /* @__PURE__ */ jsx("p", { children: text });
|
|
9667
|
+
$[6] = text;
|
|
9668
|
+
$[7] = t3;
|
|
9669
|
+
} else t3 = $[7];
|
|
9670
|
+
let t4;
|
|
9671
|
+
if ($[8] !== t1 || $[9] !== t2 || $[10] !== t3) {
|
|
9672
|
+
t4 = /* @__PURE__ */ jsx("div", {
|
|
9673
|
+
className: FittingWindow_module_default.placeholder,
|
|
9674
|
+
onDragOver: t1,
|
|
9675
|
+
onDrop: t2,
|
|
9676
|
+
children: t3
|
|
9677
|
+
});
|
|
9678
|
+
$[8] = t1;
|
|
9679
|
+
$[9] = t2;
|
|
9680
|
+
$[10] = t3;
|
|
9681
|
+
$[11] = t4;
|
|
9682
|
+
} else t4 = $[11];
|
|
9683
|
+
return t4;
|
|
9684
|
+
}
|
|
8305
9685
|
function popover(id) {
|
|
8306
9686
|
const element = document.getElementById(id);
|
|
8307
9687
|
return element?.matches(":popover-open") ? null : element;
|
|
@@ -9191,7 +10571,7 @@ const folders = {
|
|
|
9191
10571
|
};
|
|
9192
10572
|
/** Previews a type on hover, fits it on double click, drags it to the wheel, shows its info and its menu; render `overlays` once. */
|
|
9193
10573
|
function useTypeActions(noHullSelected) {
|
|
9194
|
-
const $ = c(
|
|
10574
|
+
const $ = c(57);
|
|
9195
10575
|
const store = useFitStore();
|
|
9196
10576
|
const sde = useSde();
|
|
9197
10577
|
const refuses = useHullRefuses();
|
|
@@ -9200,6 +10580,7 @@ function useTypeActions(noHullSelected) {
|
|
|
9200
10580
|
const { show, clear } = usePreview();
|
|
9201
10581
|
const { start, end } = useDrag();
|
|
9202
10582
|
const { show: showInfo } = useShowInfo();
|
|
10583
|
+
const { show: showMutate } = useMutate();
|
|
9203
10584
|
const { open, menu } = useContextMenu();
|
|
9204
10585
|
const [hovered, setHovered] = useState();
|
|
9205
10586
|
const dragImage = useRef(null);
|
|
@@ -9216,22 +10597,22 @@ function useTypeActions(noHullSelected) {
|
|
|
9216
10597
|
} else t0 = $[3];
|
|
9217
10598
|
const refused = t0;
|
|
9218
10599
|
let actions;
|
|
9219
|
-
if ($[4] !== clear || $[5] !== end || $[6] !== hold || $[7] !== noHullSelected || $[8] !== open || $[9] !== refuse || $[10] !== refused || $[11] !== release || $[12] !==
|
|
10600
|
+
if ($[4] !== clear || $[5] !== end || $[6] !== hold || $[7] !== noHullSelected || $[8] !== open || $[9] !== refuse || $[10] !== refused || $[11] !== release || $[12] !== sde || $[13] !== show || $[14] !== showInfo || $[15] !== showMutate || $[16] !== start || $[17] !== store) {
|
|
9220
10601
|
let t1;
|
|
9221
|
-
if ($[
|
|
10602
|
+
if ($[19] !== noHullSelected || $[20] !== refuse || $[21] !== refused || $[22] !== store) {
|
|
9222
10603
|
t1 = (typeId_0) => {
|
|
9223
10604
|
if (noHullSelected) return;
|
|
9224
10605
|
if (refused(typeId_0)) refuse(typeId_0);
|
|
9225
10606
|
else store.fit(typeId_0);
|
|
9226
10607
|
};
|
|
9227
|
-
$[
|
|
9228
|
-
$[
|
|
9229
|
-
$[
|
|
9230
|
-
$[
|
|
9231
|
-
$[
|
|
9232
|
-
} else t1 = $[
|
|
10608
|
+
$[19] = noHullSelected;
|
|
10609
|
+
$[20] = refuse;
|
|
10610
|
+
$[21] = refused;
|
|
10611
|
+
$[22] = store;
|
|
10612
|
+
$[23] = t1;
|
|
10613
|
+
} else t1 = $[23];
|
|
9233
10614
|
let t2;
|
|
9234
|
-
if ($[
|
|
10615
|
+
if ($[24] !== clear || $[25] !== hold || $[26] !== noHullSelected || $[27] !== refused || $[28] !== release || $[29] !== show) {
|
|
9235
10616
|
t2 = (typeId_1, hovering) => {
|
|
9236
10617
|
if (noHullSelected) return;
|
|
9237
10618
|
if (hovering) {
|
|
@@ -9243,25 +10624,25 @@ function useTypeActions(noHullSelected) {
|
|
|
9243
10624
|
release();
|
|
9244
10625
|
}
|
|
9245
10626
|
};
|
|
9246
|
-
$[
|
|
9247
|
-
$[
|
|
9248
|
-
$[
|
|
9249
|
-
$[
|
|
9250
|
-
$[
|
|
9251
|
-
$[
|
|
9252
|
-
$[
|
|
9253
|
-
} else t2 = $[
|
|
10627
|
+
$[24] = clear;
|
|
10628
|
+
$[25] = hold;
|
|
10629
|
+
$[26] = noHullSelected;
|
|
10630
|
+
$[27] = refused;
|
|
10631
|
+
$[28] = release;
|
|
10632
|
+
$[29] = show;
|
|
10633
|
+
$[30] = t2;
|
|
10634
|
+
} else t2 = $[30];
|
|
9254
10635
|
let t3;
|
|
9255
|
-
if ($[
|
|
10636
|
+
if ($[31] !== showInfo) {
|
|
9256
10637
|
t3 = (typeId_2, element) => showInfo({ typeId: typeId_2 }, {
|
|
9257
10638
|
element,
|
|
9258
10639
|
side: "right"
|
|
9259
10640
|
});
|
|
9260
|
-
$[
|
|
9261
|
-
$[
|
|
9262
|
-
} else t3 = $[
|
|
10641
|
+
$[31] = showInfo;
|
|
10642
|
+
$[32] = t3;
|
|
10643
|
+
} else t3 = $[32];
|
|
9263
10644
|
let t4;
|
|
9264
|
-
if ($[
|
|
10645
|
+
if ($[33] !== clear || $[34] !== noHullSelected || $[35] !== release || $[36] !== start) {
|
|
9265
10646
|
t4 = (event, type_0) => {
|
|
9266
10647
|
if (noHullSelected) {
|
|
9267
10648
|
event.preventDefault();
|
|
@@ -9278,24 +10659,24 @@ function useTypeActions(noHullSelected) {
|
|
|
9278
10659
|
typeId: type_0.id
|
|
9279
10660
|
});
|
|
9280
10661
|
};
|
|
9281
|
-
$[
|
|
9282
|
-
$[
|
|
9283
|
-
$[
|
|
9284
|
-
$[
|
|
9285
|
-
$[
|
|
9286
|
-
} else t4 = $[
|
|
10662
|
+
$[33] = clear;
|
|
10663
|
+
$[34] = noHullSelected;
|
|
10664
|
+
$[35] = release;
|
|
10665
|
+
$[36] = start;
|
|
10666
|
+
$[37] = t4;
|
|
10667
|
+
} else t4 = $[37];
|
|
9287
10668
|
let t5;
|
|
9288
|
-
if ($[
|
|
10669
|
+
if ($[38] !== clear || $[39] !== end || $[40] !== release) {
|
|
9289
10670
|
t5 = () => {
|
|
9290
10671
|
end();
|
|
9291
10672
|
clear();
|
|
9292
10673
|
release();
|
|
9293
10674
|
};
|
|
9294
|
-
$[
|
|
9295
|
-
$[
|
|
9296
|
-
$[
|
|
9297
|
-
$[
|
|
9298
|
-
} else t5 = $[
|
|
10675
|
+
$[38] = clear;
|
|
10676
|
+
$[39] = end;
|
|
10677
|
+
$[40] = release;
|
|
10678
|
+
$[41] = t5;
|
|
10679
|
+
} else t5 = $[41];
|
|
9299
10680
|
actions = {
|
|
9300
10681
|
fit: t1,
|
|
9301
10682
|
hover: t2,
|
|
@@ -9314,6 +10695,21 @@ function useTypeActions(noHullSelected) {
|
|
|
9314
10695
|
!noHullSelected && {
|
|
9315
10696
|
label: "Fit to Ship",
|
|
9316
10697
|
onSelect: () => actions.fit(type_1.id)
|
|
10698
|
+
},
|
|
10699
|
+
!noHullSelected && canMutate(sde, type_1) && {
|
|
10700
|
+
label: "Fit Mutated",
|
|
10701
|
+
onSelect: () => {
|
|
10702
|
+
if (refused(type_1.id)) {
|
|
10703
|
+
refuse(type_1.id);
|
|
10704
|
+
return;
|
|
10705
|
+
}
|
|
10706
|
+
const ref = store.fitMutated(rollMutation(sde, type_1.id, mutaplasmidsOf(sde, type_1.id)[0].id, "base"));
|
|
10707
|
+
const slot = ref === void 0 ? void 0 : store.getSnapshot().fit.items[ref]?.slot;
|
|
10708
|
+
if (slot !== void 0) showMutate(slot, {
|
|
10709
|
+
element: anchor,
|
|
10710
|
+
side: "right"
|
|
10711
|
+
});
|
|
10712
|
+
}
|
|
9317
10713
|
}
|
|
9318
10714
|
]);
|
|
9319
10715
|
}
|
|
@@ -9326,37 +10722,39 @@ function useTypeActions(noHullSelected) {
|
|
|
9326
10722
|
$[9] = refuse;
|
|
9327
10723
|
$[10] = refused;
|
|
9328
10724
|
$[11] = release;
|
|
9329
|
-
$[12] =
|
|
9330
|
-
$[13] =
|
|
9331
|
-
$[14] =
|
|
9332
|
-
$[15] =
|
|
9333
|
-
$[16] =
|
|
9334
|
-
|
|
10725
|
+
$[12] = sde;
|
|
10726
|
+
$[13] = show;
|
|
10727
|
+
$[14] = showInfo;
|
|
10728
|
+
$[15] = showMutate;
|
|
10729
|
+
$[16] = start;
|
|
10730
|
+
$[17] = store;
|
|
10731
|
+
$[18] = actions;
|
|
10732
|
+
} else actions = $[18];
|
|
9335
10733
|
const releaseOnUnmount = useEffectEvent(release);
|
|
9336
10734
|
let t1;
|
|
9337
|
-
if ($[
|
|
10735
|
+
if ($[42] !== releaseOnUnmount) {
|
|
9338
10736
|
t1 = () => () => releaseOnUnmount();
|
|
9339
|
-
$[
|
|
9340
|
-
$[
|
|
9341
|
-
} else t1 = $[
|
|
10737
|
+
$[42] = releaseOnUnmount;
|
|
10738
|
+
$[43] = t1;
|
|
10739
|
+
} else t1 = $[43];
|
|
9342
10740
|
let t2;
|
|
9343
|
-
if ($[
|
|
10741
|
+
if ($[44] === Symbol.for("react.memo_cache_sentinel")) {
|
|
9344
10742
|
t2 = [];
|
|
9345
|
-
$[
|
|
9346
|
-
} else t2 = $[
|
|
10743
|
+
$[44] = t2;
|
|
10744
|
+
} else t2 = $[44];
|
|
9347
10745
|
useEffect(t1, t2);
|
|
9348
10746
|
let t3;
|
|
9349
|
-
if ($[
|
|
10747
|
+
if ($[45] !== clear || $[46] !== release) {
|
|
9350
10748
|
t3 = () => {
|
|
9351
10749
|
clear();
|
|
9352
10750
|
release();
|
|
9353
10751
|
};
|
|
9354
|
-
$[
|
|
9355
|
-
$[
|
|
9356
|
-
$[
|
|
9357
|
-
} else t3 = $[
|
|
10752
|
+
$[45] = clear;
|
|
10753
|
+
$[46] = release;
|
|
10754
|
+
$[47] = t3;
|
|
10755
|
+
} else t3 = $[47];
|
|
9358
10756
|
let t4;
|
|
9359
|
-
if ($[
|
|
10757
|
+
if ($[48] !== hovered) {
|
|
9360
10758
|
t4 = hovered !== void 0 && /* @__PURE__ */ jsx("span", {
|
|
9361
10759
|
ref: dragImage,
|
|
9362
10760
|
className: ItemBrowser_module_default.dragImage,
|
|
@@ -9368,28 +10766,28 @@ function useTypeActions(noHullSelected) {
|
|
|
9368
10766
|
loading: "eager"
|
|
9369
10767
|
})
|
|
9370
10768
|
});
|
|
9371
|
-
$[
|
|
9372
|
-
$[
|
|
9373
|
-
} else t4 = $[
|
|
10769
|
+
$[48] = hovered;
|
|
10770
|
+
$[49] = t4;
|
|
10771
|
+
} else t4 = $[49];
|
|
9374
10772
|
let t5;
|
|
9375
|
-
if ($[
|
|
10773
|
+
if ($[50] !== menu || $[51] !== t4) {
|
|
9376
10774
|
t5 = /* @__PURE__ */ jsxs(Fragment$1, { children: [t4, menu] });
|
|
9377
|
-
$[
|
|
9378
|
-
$[
|
|
9379
|
-
$[
|
|
9380
|
-
} else t5 = $[
|
|
10775
|
+
$[50] = menu;
|
|
10776
|
+
$[51] = t4;
|
|
10777
|
+
$[52] = t5;
|
|
10778
|
+
} else t5 = $[52];
|
|
9381
10779
|
let t6;
|
|
9382
|
-
if ($[
|
|
10780
|
+
if ($[53] !== actions || $[54] !== t3 || $[55] !== t5) {
|
|
9383
10781
|
t6 = {
|
|
9384
10782
|
actions,
|
|
9385
10783
|
clear: t3,
|
|
9386
10784
|
overlays: t5
|
|
9387
10785
|
};
|
|
9388
|
-
$[
|
|
9389
|
-
$[
|
|
9390
|
-
$[
|
|
9391
|
-
$[
|
|
9392
|
-
} else t6 = $[
|
|
10786
|
+
$[53] = actions;
|
|
10787
|
+
$[54] = t3;
|
|
10788
|
+
$[55] = t5;
|
|
10789
|
+
$[56] = t6;
|
|
10790
|
+
} else t6 = $[56];
|
|
9393
10791
|
return t6;
|
|
9394
10792
|
}
|
|
9395
10793
|
function TypeLeaf({ type, actions, icon = false }) {
|
|
@@ -9902,7 +11300,7 @@ function _temp$6(event) {
|
|
|
9902
11300
|
const FLASH_MS = 2e3;
|
|
9903
11301
|
/** The buttons under the `ItemBrowser`: save the fit in the browser, import one, or copy it out. */
|
|
9904
11302
|
function FitActions(t0) {
|
|
9905
|
-
const $ = c(
|
|
11303
|
+
const $ = c(80);
|
|
9906
11304
|
const { noHullSelected, pasteToOpen } = t0;
|
|
9907
11305
|
const engine = useEngine();
|
|
9908
11306
|
const fit = useFit();
|
|
@@ -9943,7 +11341,7 @@ function FitActions(t0) {
|
|
|
9943
11341
|
const trySave = t2;
|
|
9944
11342
|
let t3;
|
|
9945
11343
|
let t4;
|
|
9946
|
-
if ($[7] !== engine || $[8] !==
|
|
11344
|
+
if ($[7] !== engine || $[8] !== noHullSelected || $[9] !== pasteToOpen || $[10] !== store) {
|
|
9947
11345
|
t3 = () => {
|
|
9948
11346
|
if (!pasteToOpen) return;
|
|
9949
11347
|
const onPaste = (event) => {
|
|
@@ -9954,13 +11352,29 @@ function FitActions(t0) {
|
|
|
9954
11352
|
const text = event.clipboardData?.getData("text/plain").trim() ?? "";
|
|
9955
11353
|
if (text === "") return;
|
|
9956
11354
|
event.preventDefault();
|
|
11355
|
+
const pasted = noHullSelected ? void 0 : parseMutationText(engine.sde, text);
|
|
11356
|
+
if (pasted !== void 0) {
|
|
11357
|
+
if (store.fitMutated(pasted) === void 0) setImporting({
|
|
11358
|
+
text,
|
|
11359
|
+
error: "This module does not fit on the ship"
|
|
11360
|
+
});
|
|
11361
|
+
return;
|
|
11362
|
+
}
|
|
11363
|
+
const item = engine.esi === void 0 || noHullSelected ? void 0 : parseItemLink(text);
|
|
11364
|
+
if (item !== void 0) {
|
|
11365
|
+
fitMutated(engine, store, item.typeId, item.itemId).catch((failure) => setImporting({
|
|
11366
|
+
text,
|
|
11367
|
+
error: failure instanceof Error ? failure.message : String(failure)
|
|
11368
|
+
}));
|
|
11369
|
+
return;
|
|
11370
|
+
}
|
|
9957
11371
|
try {
|
|
9958
11372
|
store.replace(engine.loadText(text, store.character));
|
|
9959
11373
|
} catch (t5) {
|
|
9960
|
-
const
|
|
11374
|
+
const failure_0 = t5;
|
|
9961
11375
|
setImporting({
|
|
9962
11376
|
text,
|
|
9963
|
-
error:
|
|
11377
|
+
error: failure_0 instanceof Error ? failure_0.message : String(failure_0)
|
|
9964
11378
|
});
|
|
9965
11379
|
}
|
|
9966
11380
|
};
|
|
@@ -9970,41 +11384,43 @@ function FitActions(t0) {
|
|
|
9970
11384
|
t4 = [
|
|
9971
11385
|
engine,
|
|
9972
11386
|
store,
|
|
9973
|
-
pasteToOpen
|
|
11387
|
+
pasteToOpen,
|
|
11388
|
+
noHullSelected
|
|
9974
11389
|
];
|
|
9975
11390
|
$[7] = engine;
|
|
9976
|
-
$[8] =
|
|
9977
|
-
$[9] =
|
|
9978
|
-
$[10] =
|
|
9979
|
-
$[11] =
|
|
11391
|
+
$[8] = noHullSelected;
|
|
11392
|
+
$[9] = pasteToOpen;
|
|
11393
|
+
$[10] = store;
|
|
11394
|
+
$[11] = t3;
|
|
11395
|
+
$[12] = t4;
|
|
9980
11396
|
} else {
|
|
9981
|
-
t3 = $[
|
|
9982
|
-
t4 = $[
|
|
11397
|
+
t3 = $[11];
|
|
11398
|
+
t4 = $[12];
|
|
9983
11399
|
}
|
|
9984
11400
|
useEffect(t3, t4);
|
|
9985
11401
|
let t5;
|
|
9986
|
-
if ($[
|
|
11402
|
+
if ($[13] !== copyFit || $[14] !== fit || $[15] !== flashCopied || $[16] !== menu) {
|
|
9987
11403
|
t5 = (format) => {
|
|
9988
11404
|
document.getElementById(menu)?.hidePopover();
|
|
9989
11405
|
copyFit(fit, format, flashCopied);
|
|
9990
11406
|
};
|
|
9991
|
-
$[
|
|
9992
|
-
$[
|
|
9993
|
-
$[
|
|
9994
|
-
$[
|
|
9995
|
-
$[
|
|
9996
|
-
} else t5 = $[
|
|
11407
|
+
$[13] = copyFit;
|
|
11408
|
+
$[14] = fit;
|
|
11409
|
+
$[15] = flashCopied;
|
|
11410
|
+
$[16] = menu;
|
|
11411
|
+
$[17] = t5;
|
|
11412
|
+
} else t5 = $[17];
|
|
9997
11413
|
const copy = t5;
|
|
9998
11414
|
let t6;
|
|
9999
|
-
if ($[
|
|
11415
|
+
if ($[18] !== fit || $[19] !== trySave) {
|
|
10000
11416
|
t6 = () => fit.name ? trySave(fit) : setNaming(true);
|
|
10001
|
-
$[
|
|
10002
|
-
$[
|
|
10003
|
-
$[
|
|
10004
|
-
} else t6 = $[
|
|
11417
|
+
$[18] = fit;
|
|
11418
|
+
$[19] = trySave;
|
|
11419
|
+
$[20] = t6;
|
|
11420
|
+
} else t6 = $[20];
|
|
10005
11421
|
const t7 = saved ? "Saved" : "Save";
|
|
10006
11422
|
let t8;
|
|
10007
|
-
if ($[
|
|
11423
|
+
if ($[21] !== noHullSelected || $[22] !== t6 || $[23] !== t7) {
|
|
10008
11424
|
t8 = /* @__PURE__ */ jsx("button", {
|
|
10009
11425
|
type: "button",
|
|
10010
11426
|
className: ItemBrowser_module_default.action,
|
|
@@ -10012,31 +11428,31 @@ function FitActions(t0) {
|
|
|
10012
11428
|
onClick: t6,
|
|
10013
11429
|
children: t7
|
|
10014
11430
|
});
|
|
10015
|
-
$[
|
|
10016
|
-
$[
|
|
10017
|
-
$[
|
|
10018
|
-
$[
|
|
10019
|
-
} else t8 = $[
|
|
11431
|
+
$[21] = noHullSelected;
|
|
11432
|
+
$[22] = t6;
|
|
11433
|
+
$[23] = t7;
|
|
11434
|
+
$[24] = t8;
|
|
11435
|
+
} else t8 = $[24];
|
|
10020
11436
|
let t9;
|
|
10021
|
-
if ($[
|
|
11437
|
+
if ($[25] === Symbol.for("react.memo_cache_sentinel")) {
|
|
10022
11438
|
t9 = /* @__PURE__ */ jsx("button", {
|
|
10023
11439
|
type: "button",
|
|
10024
11440
|
className: ItemBrowser_module_default.action,
|
|
10025
11441
|
onClick: () => setImporting({ text: "" }),
|
|
10026
11442
|
children: "Import…"
|
|
10027
11443
|
});
|
|
10028
|
-
$[
|
|
10029
|
-
} else t9 = $[
|
|
11444
|
+
$[25] = t9;
|
|
11445
|
+
} else t9 = $[25];
|
|
10030
11446
|
const t10 = copied ? "Copied" : "Copy";
|
|
10031
11447
|
const t11 = copied ? "checkmark" : "export";
|
|
10032
11448
|
let t12;
|
|
10033
|
-
if ($[
|
|
11449
|
+
if ($[26] !== t11) {
|
|
10034
11450
|
t12 = /* @__PURE__ */ jsx(Icon, { name: t11 });
|
|
10035
|
-
$[
|
|
10036
|
-
$[
|
|
10037
|
-
} else t12 = $[
|
|
11451
|
+
$[26] = t11;
|
|
11452
|
+
$[27] = t12;
|
|
11453
|
+
} else t12 = $[27];
|
|
10038
11454
|
let t13;
|
|
10039
|
-
if ($[
|
|
11455
|
+
if ($[28] !== menu || $[29] !== noHullSelected || $[30] !== t12) {
|
|
10040
11456
|
t13 = /* @__PURE__ */ jsx("button", {
|
|
10041
11457
|
type: "button",
|
|
10042
11458
|
className: `${ItemBrowser_module_default.action} ${ItemBrowser_module_default.copy}`,
|
|
@@ -10045,13 +11461,13 @@ function FitActions(t0) {
|
|
|
10045
11461
|
disabled: noHullSelected,
|
|
10046
11462
|
children: t12
|
|
10047
11463
|
});
|
|
10048
|
-
$[
|
|
10049
|
-
$[
|
|
10050
|
-
$[
|
|
10051
|
-
$[
|
|
10052
|
-
} else t13 = $[
|
|
11464
|
+
$[28] = menu;
|
|
11465
|
+
$[29] = noHullSelected;
|
|
11466
|
+
$[30] = t12;
|
|
11467
|
+
$[31] = t13;
|
|
11468
|
+
} else t13 = $[31];
|
|
10053
11469
|
let t14;
|
|
10054
|
-
if ($[
|
|
11470
|
+
if ($[32] !== t10 || $[33] !== t13) {
|
|
10055
11471
|
t14 = /* @__PURE__ */ jsx("span", {
|
|
10056
11472
|
className: ItemBrowser_module_default.copyAnchor,
|
|
10057
11473
|
children: /* @__PURE__ */ jsx(Tooltip, {
|
|
@@ -10059,34 +11475,34 @@ function FitActions(t0) {
|
|
|
10059
11475
|
children: t13
|
|
10060
11476
|
})
|
|
10061
11477
|
});
|
|
10062
|
-
$[
|
|
10063
|
-
$[
|
|
10064
|
-
$[
|
|
10065
|
-
} else t14 = $[
|
|
11478
|
+
$[32] = t10;
|
|
11479
|
+
$[33] = t13;
|
|
11480
|
+
$[34] = t14;
|
|
11481
|
+
} else t14 = $[34];
|
|
10066
11482
|
let t15;
|
|
10067
|
-
if ($[
|
|
11483
|
+
if ($[35] !== copy) {
|
|
10068
11484
|
t15 = /* @__PURE__ */ jsx("button", {
|
|
10069
11485
|
type: "button",
|
|
10070
11486
|
role: "menuitem",
|
|
10071
11487
|
onClick: () => copy("eft"),
|
|
10072
11488
|
children: "Copy as EFT"
|
|
10073
11489
|
});
|
|
10074
|
-
$[
|
|
10075
|
-
$[
|
|
10076
|
-
} else t15 = $[
|
|
11490
|
+
$[35] = copy;
|
|
11491
|
+
$[36] = t15;
|
|
11492
|
+
} else t15 = $[36];
|
|
10077
11493
|
let t16;
|
|
10078
|
-
if ($[
|
|
11494
|
+
if ($[37] !== copy) {
|
|
10079
11495
|
t16 = /* @__PURE__ */ jsx("button", {
|
|
10080
11496
|
type: "button",
|
|
10081
11497
|
role: "menuitem",
|
|
10082
11498
|
onClick: () => copy("esf"),
|
|
10083
11499
|
children: "Copy as esf/1"
|
|
10084
11500
|
});
|
|
10085
|
-
$[
|
|
10086
|
-
$[
|
|
10087
|
-
} else t16 = $[
|
|
11501
|
+
$[37] = copy;
|
|
11502
|
+
$[38] = t16;
|
|
11503
|
+
} else t16 = $[38];
|
|
10088
11504
|
let t17;
|
|
10089
|
-
if ($[
|
|
11505
|
+
if ($[39] !== menu || $[40] !== t15 || $[41] !== t16) {
|
|
10090
11506
|
t17 = /* @__PURE__ */ jsxs("div", {
|
|
10091
11507
|
id: menu,
|
|
10092
11508
|
className: ItemBrowser_module_default.menu,
|
|
@@ -10094,23 +11510,23 @@ function FitActions(t0) {
|
|
|
10094
11510
|
role: "menu",
|
|
10095
11511
|
children: [t15, t16]
|
|
10096
11512
|
});
|
|
10097
|
-
$[
|
|
10098
|
-
$[
|
|
10099
|
-
$[
|
|
10100
|
-
$[
|
|
10101
|
-
} else t17 = $[
|
|
11513
|
+
$[39] = menu;
|
|
11514
|
+
$[40] = t15;
|
|
11515
|
+
$[41] = t16;
|
|
11516
|
+
$[42] = t17;
|
|
11517
|
+
} else t17 = $[42];
|
|
10102
11518
|
let t18;
|
|
10103
|
-
if ($[
|
|
11519
|
+
if ($[43] === Symbol.for("react.memo_cache_sentinel")) {
|
|
10104
11520
|
t18 = () => setNaming(false);
|
|
10105
|
-
$[
|
|
10106
|
-
} else t18 = $[
|
|
11521
|
+
$[43] = t18;
|
|
11522
|
+
} else t18 = $[43];
|
|
10107
11523
|
let t19;
|
|
10108
|
-
if ($[
|
|
11524
|
+
if ($[44] === Symbol.for("react.memo_cache_sentinel")) {
|
|
10109
11525
|
t19 = () => setNaming(false);
|
|
10110
|
-
$[
|
|
10111
|
-
} else t19 = $[
|
|
11526
|
+
$[44] = t19;
|
|
11527
|
+
} else t19 = $[44];
|
|
10112
11528
|
let t20;
|
|
10113
|
-
if ($[
|
|
11529
|
+
if ($[45] !== trySave) {
|
|
10114
11530
|
t20 = /* @__PURE__ */ jsx(NameForm, {
|
|
10115
11531
|
onCancel: t19,
|
|
10116
11532
|
onSave: (named_1) => {
|
|
@@ -10118,50 +11534,50 @@ function FitActions(t0) {
|
|
|
10118
11534
|
trySave(named_1);
|
|
10119
11535
|
}
|
|
10120
11536
|
});
|
|
10121
|
-
$[
|
|
10122
|
-
$[
|
|
10123
|
-
} else t20 = $[
|
|
11537
|
+
$[45] = trySave;
|
|
11538
|
+
$[46] = t20;
|
|
11539
|
+
} else t20 = $[46];
|
|
10124
11540
|
let t21;
|
|
10125
|
-
if ($[
|
|
11541
|
+
if ($[47] !== naming || $[48] !== t20) {
|
|
10126
11542
|
t21 = /* @__PURE__ */ jsx(Dialog, {
|
|
10127
11543
|
open: naming,
|
|
10128
11544
|
title: "Save Fit",
|
|
10129
11545
|
onClose: t18,
|
|
10130
11546
|
children: t20
|
|
10131
11547
|
});
|
|
10132
|
-
$[
|
|
10133
|
-
$[
|
|
10134
|
-
$[
|
|
10135
|
-
} else t21 = $[
|
|
11548
|
+
$[47] = naming;
|
|
11549
|
+
$[48] = t20;
|
|
11550
|
+
$[49] = t21;
|
|
11551
|
+
} else t21 = $[49];
|
|
10136
11552
|
const t22 = overwriting !== void 0;
|
|
10137
11553
|
let t23;
|
|
10138
|
-
if ($[
|
|
11554
|
+
if ($[50] === Symbol.for("react.memo_cache_sentinel")) {
|
|
10139
11555
|
t23 = () => setOverwriting(void 0);
|
|
10140
|
-
$[
|
|
10141
|
-
} else t23 = $[
|
|
11556
|
+
$[50] = t23;
|
|
11557
|
+
} else t23 = $[50];
|
|
10142
11558
|
const t24 = overwriting?.name;
|
|
10143
11559
|
let t25;
|
|
10144
|
-
if ($[
|
|
11560
|
+
if ($[51] !== t24) {
|
|
10145
11561
|
t25 = /* @__PURE__ */ jsxs("p", { children: [
|
|
10146
11562
|
"A fit named \"",
|
|
10147
11563
|
t24,
|
|
10148
11564
|
"\" is already saved for this hull. Overwrite it?"
|
|
10149
11565
|
] });
|
|
10150
|
-
$[
|
|
10151
|
-
$[
|
|
10152
|
-
} else t25 = $[
|
|
11566
|
+
$[51] = t24;
|
|
11567
|
+
$[52] = t25;
|
|
11568
|
+
} else t25 = $[52];
|
|
10153
11569
|
let t26;
|
|
10154
|
-
if ($[
|
|
11570
|
+
if ($[53] === Symbol.for("react.memo_cache_sentinel")) {
|
|
10155
11571
|
t26 = /* @__PURE__ */ jsx("button", {
|
|
10156
11572
|
type: "button",
|
|
10157
11573
|
className: ItemBrowser_module_default.action,
|
|
10158
11574
|
onClick: () => setOverwriting(void 0),
|
|
10159
11575
|
children: "Cancel"
|
|
10160
11576
|
});
|
|
10161
|
-
$[
|
|
10162
|
-
} else t26 = $[
|
|
11577
|
+
$[53] = t26;
|
|
11578
|
+
} else t26 = $[53];
|
|
10163
11579
|
let t27;
|
|
10164
|
-
if ($[
|
|
11580
|
+
if ($[54] !== overwriting || $[55] !== saveNow) {
|
|
10165
11581
|
t27 = /* @__PURE__ */ jsxs("div", {
|
|
10166
11582
|
className: ItemBrowser_module_default.dialogButtons,
|
|
10167
11583
|
children: [t26, /* @__PURE__ */ jsx("button", {
|
|
@@ -10171,72 +11587,72 @@ function FitActions(t0) {
|
|
|
10171
11587
|
children: "Overwrite"
|
|
10172
11588
|
})]
|
|
10173
11589
|
});
|
|
10174
|
-
$[
|
|
10175
|
-
$[
|
|
10176
|
-
$[
|
|
10177
|
-
} else t27 = $[
|
|
11590
|
+
$[54] = overwriting;
|
|
11591
|
+
$[55] = saveNow;
|
|
11592
|
+
$[56] = t27;
|
|
11593
|
+
} else t27 = $[56];
|
|
10178
11594
|
let t28;
|
|
10179
|
-
if ($[
|
|
11595
|
+
if ($[57] !== t25 || $[58] !== t27) {
|
|
10180
11596
|
t28 = /* @__PURE__ */ jsxs("div", {
|
|
10181
11597
|
className: ItemBrowser_module_default.confirm,
|
|
10182
11598
|
children: [t25, t27]
|
|
10183
11599
|
});
|
|
10184
|
-
$[
|
|
10185
|
-
$[
|
|
10186
|
-
$[
|
|
10187
|
-
} else t28 = $[
|
|
11600
|
+
$[57] = t25;
|
|
11601
|
+
$[58] = t27;
|
|
11602
|
+
$[59] = t28;
|
|
11603
|
+
} else t28 = $[59];
|
|
10188
11604
|
let t29;
|
|
10189
|
-
if ($[
|
|
11605
|
+
if ($[60] !== t22 || $[61] !== t28) {
|
|
10190
11606
|
t29 = /* @__PURE__ */ jsx(Dialog, {
|
|
10191
11607
|
open: t22,
|
|
10192
11608
|
title: "Overwrite Fit?",
|
|
10193
11609
|
onClose: t23,
|
|
10194
11610
|
children: t28
|
|
10195
11611
|
});
|
|
10196
|
-
$[
|
|
10197
|
-
$[
|
|
10198
|
-
$[
|
|
10199
|
-
} else t29 = $[
|
|
11612
|
+
$[60] = t22;
|
|
11613
|
+
$[61] = t28;
|
|
11614
|
+
$[62] = t29;
|
|
11615
|
+
} else t29 = $[62];
|
|
10200
11616
|
const t30 = importing !== void 0;
|
|
10201
11617
|
let t31;
|
|
10202
|
-
if ($[
|
|
11618
|
+
if ($[63] === Symbol.for("react.memo_cache_sentinel")) {
|
|
10203
11619
|
t31 = () => setImporting(void 0);
|
|
10204
|
-
$[
|
|
10205
|
-
} else t31 = $[
|
|
11620
|
+
$[63] = t31;
|
|
11621
|
+
} else t31 = $[63];
|
|
10206
11622
|
let t32;
|
|
10207
|
-
if ($[
|
|
11623
|
+
if ($[64] !== importing) {
|
|
10208
11624
|
t32 = importing ?? { text: "" };
|
|
10209
|
-
$[
|
|
10210
|
-
$[
|
|
10211
|
-
} else t32 = $[
|
|
11625
|
+
$[64] = importing;
|
|
11626
|
+
$[65] = t32;
|
|
11627
|
+
} else t32 = $[65];
|
|
10212
11628
|
let t33;
|
|
10213
|
-
if ($[
|
|
11629
|
+
if ($[66] === Symbol.for("react.memo_cache_sentinel")) {
|
|
10214
11630
|
t33 = () => setImporting(void 0);
|
|
10215
|
-
$[
|
|
10216
|
-
} else t33 = $[
|
|
11631
|
+
$[66] = t33;
|
|
11632
|
+
} else t33 = $[66];
|
|
10217
11633
|
let t34;
|
|
10218
|
-
if ($[
|
|
11634
|
+
if ($[67] !== t32) {
|
|
10219
11635
|
t34 = /* @__PURE__ */ jsx(ImportForm, {
|
|
10220
11636
|
draft: t32,
|
|
10221
11637
|
onDone: t33
|
|
10222
11638
|
});
|
|
10223
|
-
$[
|
|
10224
|
-
$[
|
|
10225
|
-
} else t34 = $[
|
|
11639
|
+
$[67] = t32;
|
|
11640
|
+
$[68] = t34;
|
|
11641
|
+
} else t34 = $[68];
|
|
10226
11642
|
let t35;
|
|
10227
|
-
if ($[
|
|
11643
|
+
if ($[69] !== t30 || $[70] !== t34) {
|
|
10228
11644
|
t35 = /* @__PURE__ */ jsx(Dialog, {
|
|
10229
11645
|
open: t30,
|
|
10230
11646
|
title: "Import Fit",
|
|
10231
11647
|
onClose: t31,
|
|
10232
11648
|
children: t34
|
|
10233
11649
|
});
|
|
10234
|
-
$[
|
|
10235
|
-
$[
|
|
10236
|
-
$[
|
|
10237
|
-
} else t35 = $[
|
|
11650
|
+
$[69] = t30;
|
|
11651
|
+
$[70] = t34;
|
|
11652
|
+
$[71] = t35;
|
|
11653
|
+
} else t35 = $[71];
|
|
10238
11654
|
let t36;
|
|
10239
|
-
if ($[
|
|
11655
|
+
if ($[72] !== copyDialog || $[73] !== t14 || $[74] !== t17 || $[75] !== t21 || $[76] !== t29 || $[77] !== t35 || $[78] !== t8) {
|
|
10240
11656
|
t36 = /* @__PURE__ */ jsxs("div", {
|
|
10241
11657
|
className: ItemBrowser_module_default.actions,
|
|
10242
11658
|
children: [
|
|
@@ -10250,15 +11666,15 @@ function FitActions(t0) {
|
|
|
10250
11666
|
copyDialog
|
|
10251
11667
|
]
|
|
10252
11668
|
});
|
|
10253
|
-
$[
|
|
10254
|
-
$[
|
|
10255
|
-
$[
|
|
10256
|
-
$[
|
|
10257
|
-
$[
|
|
10258
|
-
$[
|
|
10259
|
-
$[
|
|
10260
|
-
$[
|
|
10261
|
-
} else t36 = $[
|
|
11669
|
+
$[72] = copyDialog;
|
|
11670
|
+
$[73] = t14;
|
|
11671
|
+
$[74] = t17;
|
|
11672
|
+
$[75] = t21;
|
|
11673
|
+
$[76] = t29;
|
|
11674
|
+
$[77] = t35;
|
|
11675
|
+
$[78] = t8;
|
|
11676
|
+
$[79] = t36;
|
|
11677
|
+
} else t36 = $[79];
|
|
10262
11678
|
return t36;
|
|
10263
11679
|
}
|
|
10264
11680
|
function NameForm(t0) {
|
|
@@ -10565,6 +11981,11 @@ function useFlash() {
|
|
|
10565
11981
|
} else t4 = $[5];
|
|
10566
11982
|
return t4;
|
|
10567
11983
|
}
|
|
11984
|
+
/** Fits a mutated item from the game in the first free slot of its rack, rolled as it is. */
|
|
11985
|
+
async function fitMutated(engine, store, typeId, itemId) {
|
|
11986
|
+
const roll = await engine.loadMutation(typeId, itemId);
|
|
11987
|
+
if (store.fitMutated(roll) === void 0) throw new Error("This item does not fit on the ship");
|
|
11988
|
+
}
|
|
10568
11989
|
// src/components/ItemBrowser/HullsAndFits.tsx
|
|
10569
11990
|
const noFits = [];
|
|
10570
11991
|
const SHIPS_MARKET_GROUP_ID = 4;
|