@discretize/gw2-ui-new
Version:
React components and API wrapper for Guild Wars 2
1 lines • 93.9 kB
JavaScript
import*as e from"react";import t,{useRef as n,useState as i,useMemo as o,cloneElement as r,useLayoutEffect as a,useEffect as s,Fragment as l,createElement as d}from"react";import{jsx as c,Fragment as u,jsxs as m}from"react/jsx-runtime";import{offset as g,flip as h,shift as f,useFloating as E}from"@floating-ui/react-dom";import{createPortal as _}from"react-dom";const A=["de","en","es","fr","zh"];function b(e){return A.includes(e)}const p=e.createContext(function(){if("undefined"==typeof navigator)return"en";const e=navigator.languages||[navigator.language];for(let t of e)if(t=t?.split("-")[0].toLowerCase(),b(t))return t;return"en"}()),C=p.Provider;function y(){return e.useContext(p)}function I(e,t,n){const i=e[t];return i&&(i[n]||i.en)||t}function S(e,t){return I(e,t,y())}function R(e){var t,n,i="";if("string"==typeof e||"number"==typeof e)i+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=R(e[t]))&&(i&&(i+=" "),i+=n)}else for(n in e)e[n]&&(i&&(i+=" "),i+=n);return i}function k(){for(var e,t,n=0,i="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=R(e))&&(i&&(i+=" "),i+=t);return i}var N="TooltipContainer-module_root__tEG8L";const T=({children:e,className:t})=>c("div",{className:k(N,t),children:e});var P="Tooltip-module_root__U84l8";const D=[g(5),h(),f()];function w(e,t){return{width:0,height:0,x:e,y:t,top:t,left:e,right:e,bottom:t}}const O=w(0,0),v="undefined"!=typeof document?a:s,B=({children:e,content:t,render:a,containerProps:s,disabled:l})=>{const{x:d,y:g,strategy:h,update:f,reference:A,floating:b}=E({middleware:D}),p=n(null),C=n(O),[y,I]=i(!1),S=!l&&y,R=o(()=>c(u,{children:r(e,{ref:p})}),[e]),k=o(()=>S?t?c(T,{...s,children:t}):"function"==typeof a?a():null!==a?a:null:null,[S,t,a]);return v(()=>{const e=p.current;if(e)return e.addEventListener("pointerover",n),e.addEventListener("pointerout",i),e.addEventListener("pointermove",o),()=>{e.removeEventListener("pointerover",n),e.removeEventListener("pointerout",i),e.removeEventListener("pointermove",o)};function t(e){C.current=w(e.clientX,e.clientY),f()}function n(e){I(!0),t(e)}function i(){I(!1),C.current=O}function o(e){t(e)}},[R,f]),v(()=>{if(!S)return void A(null);A({getBoundingClientRect:()=>C.current})},[S]),m(u,{children:[R,S?_(c("div",{className:P,ref:b,style:{position:h,top:g??"",left:d??""},children:k}),(p.current?.ownerDocument||document).body):null]})};var L="DetailsHeaderTitle-module_root__sKlvB";const M=({children:e,className:t})=>c("div",{className:k(L,t),children:e});var x="Spinner-module_root__trcUV",F="Spinner-module_inline__Aancd";const G=({inline:e,className:t})=>c("div",{className:k(t,e&&F,x)});var H={root:"Icon-module_root__HPbvW",rootBgSizeCover:"Icon-module_rootBgSizeCover__u8GhM",rootHexagon:"Icon-module_rootHexagon__85u21",gutterRight:"Icon-module_gutterRight__xNKbU",gutterLeft:"Icon-module_gutterLeft__vwF0u",inline:"Icon-module_inline__XXSzF",hexagon:"Icon-module_hexagon__G-XBu",inactive:"Icon-module_inactive__4sGhD",applyCount:"Icon-module_applyCount__HLFuM",imageEmpty:"Icon-module_imageEmpty__szyOO",imageLock:"Icon-module_imageLock__jaltv",imageReset:"Icon-module_imageReset__t2Xd-",imageWeaponSwap:"Icon-module_imageWeaponSwap__-CbgI"};const W=({name:e,loading:t=!1,spinnerProps:n={},src:i,zoom:o,inline:r=!0,gutterRight:a=!1,gutterLeft:s=!1,hexagon:l=!1,applyCount:d=1,inactive:u=!1,applyCountProps:m={},className:g,onClick:h})=>{const f=k(a&&H.gutterRight,s&&H.gutterLeft,r&&H.inline,l&&H.hexagon,u&&H.inactive,g);if(t)return c(G,{inline:r,className:f,...n});let E={};return i&&(E={...E,backgroundImage:`url('${i}')`}),o&&!l&&(E={...E,backgroundSize:`${100+o}%`}),c("span",{onClick:h,className:k(f,H.root,(!o||l)&&H.rootBgSizeCover,l&&H.rootHexagon,e&&H[`image${e}`]),style:E,children:d>1&&c("span",{...m,className:k(H.applyCount,m?.className),children:d})})};var z="DetailsHeader-module_root__N683A",V="DetailsHeader-module_icon__2-W9B",U="DetailsHeader-module_flagsRoot__fTdWG",$="DetailsHeader-module_flagsIcon__WVfMg";const X=({icon:e,iconProps:t,titleClassName:n,flags:i,children:o,className:r})=>m("div",{className:k(r,z),children:["string"==typeof e||t?.src||t?.iconViaClassname?c(W,{src:e,...t,className:k(V,t?.className)}):e,c(M,{className:n,children:o}),i&&c("div",{className:U,children:i.map(({icon:e,value:t})=>m("span",{children:[t,e&&c(W,{src:e,className:$})]},`${e}-${t}`))})]});function Y(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}var j={colorAbilitytype:"DetailsText-module_colorAbilitytype__CmqxS",colorAbility:"DetailsText-module_colorAbility__nhE6H",colorMuted:"DetailsText-module_colorMuted__ubxMP",colorFlavor:"DetailsText-module_colorFlavor__yJWOz"};const q=new RegExp("<c=@([^>]+?>[^<>]+?)(?:</c>|$)","g"),Z=e=>{const t=e.replace(/<br\s*?\/?\s*?>/g,"\n").split(q);for(let e=1;e<t.length;e+=2){const[n,i]=t[e].split(">");if(n){let o;switch(n){case"ability":o=null;break;case"abilitytype":o="abilityType";break;case"reminder":o="muted";break;default:o=n}t[e]=[i,o||""]}else t[e]=i}return c(u,{children:t.filter(e=>!!e).map((e,t)=>{if(Array.isArray(e)){const[n,i]=e;return i?(j[`color${Y(i)}`]||console.error(`Missing color type: ${i}`),c("span",{className:j[`color${Y(i)}`],children:n},`flavour-${n}-${t.toString()}`)):n}return e})})},K=({lines:e,lineProps:n,className:i})=>c("div",{className:i,children:e.filter(e=>!!e).map((e,i)=>c("div",{...n,children:t.isValidElement(e)?e:Z(e)},`DetailsText${i.toString()}`))});var J="Progress-module_root__uwNGo",Q="Progress-module_inline__PN5rq";const ee=({inline:e})=>c("div",{className:k(J,e&&Q)});var te="IconWithText-module_root__6Xhy6";const ne=t.forwardRef(function({icon:e,text:t,disableIcon:n,disableText:i,inline:o,iconProps:r,textProps:a,progressProps:s,loading:l,style:d,className:u,onClick:g},h){return m("span",{ref:h,className:k(te,u),style:d,onClick:g,children:[!n&&(l||e||r?.src||r?.iconViaClassname)&&c(W,{src:e,gutterRight:!i,inline:!i||o,loading:l,...r}),!i&&(l?c(ee,{inline:!i||o,...s}):c("span",{...a,children:t}))]})});var ie="WikiLink-module_default__CAL4k",oe="WikiLink-module_root__UqVc-";const re=({component:e="a",to:t,text:n,lang:i="en",style:o,className:r})=>c(e,{className:k(r||ie,oe),href:`https://wiki-${i}.guildwars2.com/wiki/Special:Search/${encodeURIComponent(t)}`,target:"_blank",rel:"noreferrer noopener nofollow",style:o,children:n||t});var ae="Error-module_errorColor__FQaiP",se="Error-module_imageError404__o8sTc",le="Error-module_imageError500__sP0Xz";const de=({code:e,id:t,name:n,message:i,disableIcon:o,disableText:r,disableTooltip:a,inline:s,tooltipProps:l,className:d,style:g})=>{const h=y(),f=404===e?se:le;function E(n){let i,o;i="string"!=typeof n&&"function"!=typeof n?n[e]:n,o="string"!=typeof i&&"function"!=typeof i?i[h]||i.en:i;return void 0===o?"":"string"==typeof o?o:void 0!==t?o(t):""}const _=E(n),A=E(i);return c(B,{content:m(u,{children:[c(X,{iconProps:{className:f,iconViaClassname:!0},titleClassName:ae,children:_}),c(K,{lines:[A]})]}),disabled:a,...l,children:c(ne,{text:_,disableIcon:o,disableText:r,inline:s,iconProps:{className:f,iconViaClassname:!0},className:k(d,ae),style:g})})},ce={Power:{de:"Kraft"},Precision:{de:"Präzision"},Toughness:{de:"Zähigkeit"},Vitality:{de:"Vitalität"},Concentration:{de:"Konzentration"},"Condition Damage":{de:"Zustandsschaden"},Expertise:{de:"Fachkenntnis"},Ferocity:{de:"Wildheit"},"Healing Power":{de:"Heilkraft"},Armor:{de:"Rüstung"},"Boon Duration":{de:"Segensdauer"},"Critical Chance":{de:"Kritische Trefferchance"},"Critical Damage":{de:"Kritischer Schaden"},"Condition Duration":{de:"Zustandsdauer"},Health:{de:"Lebenspunkte"},"Agony Resistance":{de:"Qual-Widerstand"},"Gold Find":{de:"Goldgespür"},"Karma Gain":{de:"Karmazuwachs"},"Magic Find":{de:"Magisches Gespür"},"XP Gain":{de:"EP-Zuwachs"}},ue={Power:{en:"Increases attack",de:"Erhöht den Angriff"},Precision:{en:"Increases critical-hit chance",de:"Erhöht die Chance auf kritische Treffer"},Toughness:{en:"Increases armor",de:"Erhöht die Rüstung"},Vitality:{en:"Increases maximum health",de:"Erhöht die maximalen Lebenspunkte"},Concentration:{en:"Increases Your Boon Duration",de:"Erhöht Eure Segensdauer"},"Condition Damage":{en:"Increases condition damage",de:"Erhöht Zustandsschaden"},Expertise:{en:"Increases Your Condition Duration",de:"Erhöht Eure Zustandsdauer"},Ferocity:{en:"Increases critical damage.",de:"Erhöht den kritischen Schaden"},"Healing Power":{en:"Increases healing power",de:"Erhöht Heilfähigkeiten"},Armor:{en:"Combines item defense and toughness; reduces incoming damage",de:"Fasst Ausrüstungsverteidigung und Zähigkeit zusammen; reduziert erlittenen Schaden"},"Boon Duration":{en:"Increases duration of your applied boons",de:"Erhöht die Dauer Eurer verwendeten Segen"},"Critical Chance":{en:"Chance to deal critical-hit damage",de:"Chance, kritischen Trefferschaden zu verursachen"},"Critical Damage":{en:"Percentage of additional damage inflicted by dealing a critical hit.",de:"Prozentsatz des zusätzlichen Schadens, der bei einem kritischen Treffer zugefügt wird"},"Condition Duration":{en:"Increases duration of your applied conditions",de:"Erhöht die Dauer Eurer verwendeten Zustände"},Health:{en:"Increased by vitality",de:"Werden durch Vitalität erhöht"},"Agony Resistance":{en:"Reduces agony damage",de:"Reduziert Qual-Schaden"},"Gold Find":{en:"Increases the amount of gold gained from killing enemies.",de:"Erhöht die Menge an Gold, die Ihr für das Besiegen von Feinden erhaltet."},"Karma Gain":{en:"Increases the amount of karma gained from completing events.",de:"Erhöht die Menge an Karma, die Ihr für das Abschließen von Events erhaltet."},"Magic Find":{en:"Increases chance to find rare items",de:"Erhöht die Chance, seltene Gegenstände zu finden"},"XP Gain":{en:"Increases the amount of experience gained from killing enemies.",de:"Erhöht die Menge an Erfahrungspunkten, die Ihr für das Besiegen von Feinden erhaltet."}};var me={wikiLink:"Attribute-module_wikiLink__uRBl1",iconWithText:"Attribute-module_iconWithText__dmQnD",imageAttributePower:"Attribute-module_imageAttributePower__93hJz",imageAttributePrecision:"Attribute-module_imageAttributePrecision__v-AtH",imageAttributeToughness:"Attribute-module_imageAttributeToughness__kI-jX",imageAttributeVitality:"Attribute-module_imageAttributeVitality__6Q7TZ",imageAttributeConcentration:"Attribute-module_imageAttributeConcentration__hv0rN",imageAttributeConditionDamage:"Attribute-module_imageAttributeConditionDamage__5JKey",imageAttributeExpertise:"Attribute-module_imageAttributeExpertise__SLJ2A",imageAttributeFerocity:"Attribute-module_imageAttributeFerocity__TxpUO",imageAttributeHealingPower:"Attribute-module_imageAttributeHealingPower__UkLmy",imageAttributeArmor:"Attribute-module_imageAttributeArmor__Q3Ikh",imageAttributeBoonDuration:"Attribute-module_imageAttributeBoonDuration__82MuO",imageAttributeCriticalChance:"Attribute-module_imageAttributeCriticalChance__YgMX5",imageAttributeCriticalDamage:"Attribute-module_imageAttributeCriticalDamage__SkGbT",imageAttributeConditionDuration:"Attribute-module_imageAttributeConditionDuration__yB-C6",imageAttributeHealth:"Attribute-module_imageAttributeHealth__M8wiL",imageAttributeAgonyResistance:"Attribute-module_imageAttributeAgonyResistance__wGlo-",imageAttributeGoldFind:"Attribute-module_imageAttributeGoldFind__GEBLD",imageAttributeKarmaGain:"Attribute-module_imageAttributeKarmaGain__7GXy9",imageAttributeMagicFind:"Attribute-module_imageAttributeMagicFind__h-2qk",imageAttributeXPGain:"Attribute-module_imageAttributeXPGain__bBsD6"};const ge=({name:e,text:t,disableTooltip:n,disableIcon:i,disableText:o,disableLink:r,inline:a,style:s,className:l})=>{const d=y();if(!e||!ce[e])return c(de,{code:404,name:`Invalid Attribute ${e||""}`,message:`Error: No data for Attribute ${e||""}`,disableTooltip:n,disableIcon:i,disableText:o,inline:a});const g=I(ce,e,d),h=I(ue,e,d);return c(B,{content:m(u,{children:[c(X,{children:g}),c(K,{lines:[h]})]}),disabled:n,children:c(ne,{text:r?t||g:c(re,{to:e,text:t||g,className:me.wikiLink}),disableIcon:i,disableText:o,inline:a,iconProps:{className:me[`imageAttribute${e.replaceAll(" ","")}`],iconViaClassname:!0},style:s,className:k(l,me.iconWithText)})})},he={"Mist Attunement 1":{de:"Nebeleinstimmung 1"},"Mist Attunement 2":{de:"Nebeleinstimmung 2"},"Mist Attunement 3":{de:"Nebeleinstimmung 3"},"Mist Attunement 4":{de:"Nebeleinstimmung 4"}},fe={"Mist Attunement 1":{en:"Gain 5 agony resistance, 1% outgoing damage, and 10 health per second.",de:"Erhaltet 5 Qual-Widerstand, 1% zugefügten Schaden und 10 Lebenspunkte pro Sekunde."},"Mist Attunement 2":{en:"Gain 10 agony resistance, 2% outgoing damage, and 20 health per second.",de:"Erhaltet 10 Qual-Widerstand, 2% zugefügten Schaden und 20 Lebenspunkte pro Sekunde."},"Mist Attunement 3":{en:"Gain 15 agony resistance, 4% outgoing damage, and 50 health per second.",de:"Erhaltet 15 Qual-Widerstand, 4% zugefügten Schaden und 50 Lebenspunkte pro Sekunde."},"Mist Attunement 4":{en:"Gain 25 agony resistance, 7% outgoing damage, and 100 health per second.",de:"Erhaltet 25 Qual-Widerstand, 7% zugefügten Schaden und 100 Lebenspunkte pro Sekunde."}};var Ee={colorAugmentationMain:"Effect-module_colorAugmentationMain__732rS",colorAugmentationDark:"Effect-module_colorAugmentationDark__8hI28",colorAugmentationLight:"Effect-module_colorAugmentationLight__rpLbQ",colorAuraMain:"Effect-module_colorAuraMain__EWwfR",colorAuraDark:"Effect-module_colorAuraDark__gtPNq",colorAuraLight:"Effect-module_colorAuraLight__yPoqy",colorBoonMain:"Effect-module_colorBoonMain__suFWf",colorBoonDark:"Effect-module_colorBoonDark__R0NUn",colorBoonLight:"Effect-module_colorBoonLight__gGSGn",colorConditionMain:"Effect-module_colorConditionMain__gh9xb",colorConditionDark:"Effect-module_colorConditionDark__2ULz-",colorConditionLight:"Effect-module_colorConditionLight__VvUmp",colorControlMain:"Effect-module_colorControlMain__pwqNb",colorControlDark:"Effect-module_colorControlDark__nDYnV",colorControlLight:"Effect-module_colorControlLight__Bfw-X",colorConsumableMain:"Effect-module_colorConsumableMain__g--Ww",colorConsumableDark:"Effect-module_colorConsumableDark__WSlP0",colorConsumableLight:"Effect-module_colorConsumableLight__LJJer",colorCommonMain:"Effect-module_colorCommonMain__17G-j",colorCommonDark:"Effect-module_colorCommonDark__QHqSu",colorCommonLight:"Effect-module_colorCommonLight__mDke-",colorMistlockinstabilityMain:"Effect-module_colorMistlockinstabilityMain__2LPML",colorMistlockinstabilityDark:"Effect-module_colorMistlockinstabilityDark__mIm3w",colorMistlockinstabilityLight:"Effect-module_colorMistlockinstabilityLight__ZSSiy",imageBoonAegis:"Effect-module_imageBoonAegis__qrNsH",imageBoonAlacrity:"Effect-module_imageBoonAlacrity__gw0Rz",imageBoonFury:"Effect-module_imageBoonFury__VEdEz",imageBoonMight:"Effect-module_imageBoonMight__QUIMP",imageBoonProtection:"Effect-module_imageBoonProtection__wEAu9",imageBoonQuickness:"Effect-module_imageBoonQuickness__zYD8U",imageBoonRegeneration:"Effect-module_imageBoonRegeneration__JScG1",imageBoonResistance:"Effect-module_imageBoonResistance__-BdeE",imageBoonResolution:"Effect-module_imageBoonResolution__J5j7Z",imageBoonStability:"Effect-module_imageBoonStability__ZWUUx",imageBoonSwiftness:"Effect-module_imageBoonSwiftness__cMXn5",imageBoonVigor:"Effect-module_imageBoonVigor__VTgIy",imageAugmentationMistAttunement1:"Effect-module_imageAugmentationMistAttunement1__Fj4Pz",imageAugmentationMistAttunement2:"Effect-module_imageAugmentationMistAttunement2__5UhdF",imageAugmentationMistAttunement3:"Effect-module_imageAugmentationMistAttunement3__fHlqf",imageAugmentationMistAttunement4:"Effect-module_imageAugmentationMistAttunement4__gmddt",imageConditionBleeding:"Effect-module_imageConditionBleeding__M5NLb",imageConditionBlinded:"Effect-module_imageConditionBlinded__ifIew",imageConditionBurning:"Effect-module_imageConditionBurning__FSCSN",imageConditionChilled:"Effect-module_imageConditionChilled__gddPe",imageConditionConfusion:"Effect-module_imageConditionConfusion__kKcDg",imageConditionCrippled:"Effect-module_imageConditionCrippled__DpVbA",imageConditionFear:"Effect-module_imageConditionFear__8bqAw",imageConditionImmobile:"Effect-module_imageConditionImmobile__ZiDMk",imageConditionPoisoned:"Effect-module_imageConditionPoisoned__jzYkh",imageConditionSlow:"Effect-module_imageConditionSlow__efqdw",imageConditionTaunt:"Effect-module_imageConditionTaunt__OlAmZ",imageConditionTorment:"Effect-module_imageConditionTorment__H-7vQ",imageConditionVulnerability:"Effect-module_imageConditionVulnerability__I6dSe",imageConditionWeakness:"Effect-module_imageConditionWeakness__oCM0I",imageControlDaze:"Effect-module_imageControlDaze__KiBNC",imageControlFloat:"Effect-module_imageControlFloat__8Lq8H",imageControlKnockback:"Effect-module_imageControlKnockback__Y6i-Y",imageControlKnockdown:"Effect-module_imageControlKnockdown__VQEtX",imageControlLaunch:"Effect-module_imageControlLaunch__JO-V9",imageControlPull:"Effect-module_imageControlPull__PZ-i1",imageControlSink:"Effect-module_imageControlSink__3QSD2",imageControlStun:"Effect-module_imageControlStun__Nc0H6",imageAuraChaos:"Effect-module_imageAuraChaos__tPaQ8",imageAuraDark:"Effect-module_imageAuraDark__jz-V2",imageAuraFire:"Effect-module_imageAuraFire__n2doe",imageAuraFrost:"Effect-module_imageAuraFrost__SMQIN",imageAuraLight:"Effect-module_imageAuraLight__9SE-Z",imageAuraMagnetic:"Effect-module_imageAuraMagnetic__fJO44",imageAuraShocking:"Effect-module_imageAuraShocking__VW5gN",imageCommonAgony:"Effect-module_imageCommonAgony__uZwH5",imageCommonBarrier:"Effect-module_imageCommonBarrier__LKWE3",imageCommonBlight:"Effect-module_imageCommonBlight__Nn8hM",imageCommonExposed:"Effect-module_imageCommonExposed__W70K5",imageCommonInvulnerability:"Effect-module_imageCommonInvulnerability__Vf8v2",imageCommonReinforcedArmor:"Effect-module_imageCommonReinforcedArmor__cU6En",imageCommonRevealed:"Effect-module_imageCommonRevealed__FevKY",imageCommonRigorousCertainty:"Effect-module_imageCommonRigorousCertainty__QxtJh",imageCommonStealth:"Effect-module_imageCommonStealth__kPIew",imageCommonStunBreak:"Effect-module_imageCommonStunBreak__DILJl",imageCommonSuperspeed:"Effect-module_imageCommonSuperspeed__OJMZT",imageCommonUnblockable:"Effect-module_imageCommonUnblockable__YOmYS",imageConsumableNourishment:"Effect-module_imageConsumableNourishment__WArSv",imageConsumableEnhancement:"Effect-module_imageConsumableEnhancement__H8AYB",imageMistlockInstabilityAdrenalineRush:"Effect-module_imageMistlockInstabilityAdrenalineRush__jnKol",imageMistlockInstabilityAfflicted:"Effect-module_imageMistlockInstabilityAfflicted__KByPS",imageMistlockInstabilityBoonOverload:"Effect-module_imageMistlockInstabilityBoonOverload__x1qD8",imageMistlockInstabilityFluxBomb:"Effect-module_imageMistlockInstabilityFluxBomb__mzOk3",imageMistlockInstabilityFractalVindicators:"Effect-module_imageMistlockInstabilityFractalVindicators__u7qR0",imageMistlockInstabilityFrailty:"Effect-module_imageMistlockInstabilityFrailty__LJsxm",imageMistlockInstabilityHamstrung:"Effect-module_imageMistlockInstabilityHamstrung__7XjVR",imageMistlockInstabilityLastLaugh:"Effect-module_imageMistlockInstabilityLastLaugh__p-UBa",imageMistlockInstabilityMistsConvergence:"Effect-module_imageMistlockInstabilityMistsConvergence__diYSa",imageMistlockInstabilityNoPainNoGain:"Effect-module_imageMistlockInstabilityNoPainNoGain__2bzUP",imageMistlockInstabilityOutflanked:"Effect-module_imageMistlockInstabilityOutflanked__ThqWV",imageMistlockInstabilitySocialAwkwardness:"Effect-module_imageMistlockInstabilitySocialAwkwardness__JE8re",imageMistlockInstabilityStickTogether:"Effect-module_imageMistlockInstabilityStickTogether__049uF",imageMistlockInstabilitySugarRush:"Effect-module_imageMistlockInstabilitySugarRush__t735I",imageMistlockInstabilityToxicTrail:"Effect-module_imageMistlockInstabilityToxicTrail__XwroT",imageMistlockInstabilityVengeance:"Effect-module_imageMistlockInstabilityVengeance__iCLkC",imageMistlockInstabilityWeBleedFire:"Effect-module_imageMistlockInstabilityWeBleedFire__X4LpC",imageMistlockInstabilityToxicSickness:"Effect-module_imageMistlockInstabilityToxicSickness__tDtu3"};const _e=({type:e,name:t,displayName:n,description:i,disableTooltip:o=!1,disableText:r=!1,disableLink:a=!1,disableIcon:s=!1,inline:l,tooltipProps:d,wikiLinkProps:g,errorProps:h,iconProps:f,className:E,style:_})=>e&&t&&void 0!==i?c(B,{content:m(u,{children:[c(X,{children:n||t}),i&&c(K,{lines:[i]})]}),disabled:o,...d,children:c(ne,{text:a?n||t:c(re,{to:t,text:n,...g,className:k(g?.className,Ee[`color${Y(e)}Main`])}),disableIcon:s,disableText:r,inline:l,iconProps:{...f,className:Ee[`image${e}${t.replaceAll(" ","").replaceAll(",","")}`],iconViaClassname:!0},style:_,className:k(E,Ee[`color${Y(e)}Main`])})}):c(de,{code:404,name:`Invalid ${e||"Effect"}${t?` ${t}`:""}`,message:`Error: No data for ${e||"Effect"}${t?` ${t}`:""}`,disableTooltip:o,disableIcon:s,disableText:r,inline:l,...h,className:k(E,h?.className),style:{..._,...h?.style}}),Ae=e=>{const{name:t}=e,n=y(),i=I(he,t,n),o=I(fe,t,n);return c(_e,{...e,type:"Augmentation",name:t,displayName:i,description:o})},be={Chaos:{de:"Chaos"},Dark:{de:"Dunkel"},Fire:{de:"Feuer"},Frost:{de:"Frost"},Light:{de:"Licht"},Magnetic:{de:"Magnet"},Shocking:{de:"Schock"}},pe={Chaos:{en:"Give yourself random boons and your foe random conditions whenever you are struck.",de:"Gewährt Euch zufällige Segen und belegt Gegner mit zufälligen Zuständen, wann immer Ihr getroffen werdet."},Dark:{en:"Surrounded by a dark aura that reduces incoming condition damage and causes torment each time you are struck (1-second cooldown per attacker).",de:"Umgeben von einer Dunkelaura, die erlittenen Zustandsschaden verringert und jedes Mal, wenn Ihr getroffen werdet, Pein verursacht (1 Sekunde Erholzeit pro Angreifer)."},Fire:{en:"Enveloped in a fiery shield that burns foes, grants might each time you are struck (1-second cooldown per attacker).",de:"In einen feurigen Schild gehüllt, der Gegner verbrennt; gewährt jedes Mal Macht, wenn Ihr getroffen werdet (1 Sekunde Erholzeit pro Angreifer)."},Frost:{en:"Chill foes that strike you (only once per second for each attacker); incoming damage is reduced by 10%.",de:"Fügt Gegnern, die Euch treffen, Kühle zu (nur einmal pro Sekunde je Angreifer); Erlittener Schaden ist um 10% reduziert."},Light:{en:"When struck, you gain resolution. Incoming condition damage is reduced by 10%. (Cooldown 1s)",de:"Wenn Ihr getroffen werdet, erhaltet Ihr Entschlossenheit. Erlittener Zustandsschaden wird um 10% verringert. (Erholzeit: 1 Sekunde)"},Magnetic:{en:"Reflect projectiles with magnetic energy.",de:"Reflektiert Projektile mithilfe magnetischer Energie."},Shocking:{en:"Stun nearby attacking foes with an electric shock (only once per 2 seconds for each attacker).",de:"Betäubt Gegner in der Nähe durch einen elektrischen Schock (nur einmal alle 2 Sekunden je Angreifer)."}},Ce=e=>{const{name:t}=e,n=y(),i=I(be,t,n),o=I(pe,t,n);return c(_e,{...e,type:"Aura",name:t,displayName:i,description:o})},ye={Aegis:{de:"Aegis"},Alacrity:{de:"Tatendrang"},Fury:{de:"Wut"},Might:{de:"Macht"},Protection:{de:"Schutz"},Quickness:{de:"Schnelligkeit"},Regeneration:{de:"Regeneration"},Resistance:{de:"Widerstand"},Resolution:{de:"Entschlossenheit"},Stability:{de:"Stabilität"},Swiftness:{de:"Eile"},Vigor:{de:"Elan"}},Ie={Aegis:{en:"Block the next incoming attack; stacks duration.",de:"Blockt den nächsten Angriff; Dauer summiert sich."},Alacrity:{en:"Skills recharge faster.",de:"Fertigkeiten laden sich schneller wieder auf."},Fury:{en:"Critical Chance increased by 25%; stacks duration.",de:"Erhöht die Chance auf kritischen Treffer um 25%; Dauer summiert sich."},Might:{en:"Increased outgoing damage; stacks intensity.",de:"Erhöht zugefügten Schaden; Intensität summiert sich."},Protection:{en:"Incoming damage decreased by 33%; stacks duration.",de:"Reduziert erlittenen Schlagschaden um 33%; Dauer summiert sich."},Quickness:{en:"Skills and actions are faster.",de:"Fertigkeiten und Aktionen sind schneller."},Regeneration:{en:"Gain health every second; stacks duration.",de:"Erhaltet jede Sekunde Lebenspunkte; Dauer summiert sich."},Resistance:{en:"Nondamaging conditions currently on you are ineffective; stacks duration.",de:"Zustände, die Euch zum gegenwärtigen Zeitpunkt betreffen und die keinen Schaden verursachen, haben keine Wirkung; Dauer summiert sich."},Resolution:{en:"Incoming condition damage decreased by 33%; stacks duration.",de:"Reduziert erlittenen Zustandsschaden um 33%; Dauer summiert sich."},Stability:{en:"Cannot be knocked down, pushed back, pulled, launched, stunned, dazed, floated, sunk, feared or taunted.",de:"Immun gegen Niederschlag, Hoch- und Zurückschleudern, Ziehen, Betäubung, Benommenheit, Schweben, Sinken, Furcht oder Provozieren."},Swiftness:{en:"Movement speed increased by 33%; stacks duration.",de:"Erhöht Bewegungsgeschwindigkeit um 33%; Dauer summiert sich."},Vigor:{en:"Endurance regeneration increased by 50%; stacks duration.",de:"Erhöht Ausdauerregeneration um 50%; Dauer summiert sich."}},Se=e=>{const{name:t,count:n=1}=e,i=y(),o=I(ye,t,i),r=I(Ie,t,i);return c(_e,{...e,type:"Boon",name:t,displayName:o,description:r,iconProps:{applyCount:n}})};var Re="Coin-module_root__ZbW9A",ke="Coin-module_gold__Lou79",Ne="Coin-module_silver__sLknm",Te="Coin-module_copper__L02E-";const Pe=({value:e,className:t,style:n})=>{let i=e;const o=Math.floor(i/1e4);i%=1e4;const r=Math.floor(i/100);return i%=100,m("span",{style:n,className:k(t,Re),children:[o>0&&m(u,{children:[c("span",{className:ke,children:o&&o.toLocaleString()||0}),c(W,{src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAACFlBMVEXAu6XBvqzOyLLQy7Tb1r/x8Oby8Obz8eX19Oz29Oj39u739u/59+z9/fb9/ff+/vj///9SQgRqXCZYTBuIfVR6b0NaTRpxZjpvYi51a0BrYDJkWCd6b0SBdkpfUh5gVCBQRBFcTxpmWiZTRhBSRxJcThZVSBVxZDNnWSVtYCxaTRdbTx1VSBFjVR9SRAxVRw9WRxNOQAlTRA1TRQ1ZSw5WRw1RQgZXSA1TQwldThRgURlaSxFlVyFRQgRSQgVeUBZqXShtYCtuWwxwXAxyWAZzWAhzYRh1WwR3aBR5YAh5aRh8Ygt+aRCAahCCZRCDaRiDbhOFaBKFbBqFbB2HcRKJdhuKdyWMcyCNdRmNeCaObg2PeBSRehWSehySfCOSfy2ThEaUdBOUfhiVgjGXgymagReagjWbgzGdgRSeiCGeijmejDyfiz+gghKhhBuhijqikUukihqkk0umhiOmjBqmlEqohRmolkaskhywoGCxlh2xpGy0kCC0oFu1kRi1mB+3nUS5nR+6lR66niC7nyC8nDG8oCK8pVS/pCy/pS6/pzzBnBvBrE3DqjrDsV7EsXPHuX7ItnXIt3zJrD/Js1DMsTLMuHLMvHrNqSDNuGnNuV7Ptj3Pw5DQsTHRt1zSvXPSxIPUulXUwGbUwnLUyJPWvl3WxXfZvDrZvynZxELawWraxXfay4Xczo3gvTPkxjfnyjjn0EYVvr+2AAAAPXRSTlMAAAAAAAAAAAAAAAAAAAAAAAMHEBMWIiMzN11lbnJ3d32Yr7S7vsHCxsfL0dbe4+nr8fX1+Pr8/P39/f7+hZB6/QAAAOBJREFUCB0FwctOg0AABdA7D4ZXWsCEJkXTsND4A5qu/QP3bv1Yu3ahG9MwqClQUaECA0PGc0gIALB8IYb+b544ALBwfXlmHfPynZIQWF7cXbG+IdPTXnIgSh+iUuquMje6ZU6QPi4+5qE1pmabA7WTe0cuEo/pwWS+y5fbVen5rRqOiia94sFGB7po2vJk4vSlob5QP8KbWegGfM6/ue5i49j1qIh1vSs6FlGxNuXXb3Ub77LDyKtXPqt6Ol9lb5/FSTAo0/oe5PNeSkUZscc4toVSbe4qwiwSAgAAAADwDxrAZ/fRn0ixAAAAAElFTkSuQmCC",gutterLeft:!0,gutterRight:!0})]}),(o>0||r>0)&&m(u,{children:[c("span",{className:Ne,children:r&&r.toLocaleString()||0}),c(W,{src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAABs1BMVEXKysrZ2dnd3d3g4ODq6ur+/v7///9IR0diYWFaWlqDgoJ8e3tWVVV4d3hoZ2d0dHRsbGxsbGx5eXl7e3tfX19kZGROTU1eXl5oZ2dRUVFNTExfXl5TUlJsa2tjYmJtbGxWVVVXV1dSUVFeXV1PT09TUlJSUlJIR0dNTExTUlJPTk5IR0dPT09LSkpXVlZYV1dSUVFeXV1IR0dJSEhVVFRjYmJlZWVoaGdpaWlqaWltbGxubm52dnZ4eHh5eXl7enp8fHt8fHyAgH+BgYGDg4OFhISJiYmLi4uNjYyPj4+Qj4+QkI+QkJCSkZGSkpKTk5OUk5Oampmbm5udnZ2enp6fn5+gn5+goJ+hoaGioaGjo6OkpKSlpaSmpqanp6anp6eoqKeoqKipqaivrq6vr66vr6+ysrK0tLS1tbS1tbW3t7e4uLi7u7u9vby+vr6/v77AwL/AwMDBwcHCwsHCwsLDw8PExMPExMTGxsbHx8bHx8fLy8vNzczNzc3Pz87Pz8/Q0NDR0dDS0tLU1NPV1dTV1dXW1tbX19bX19fZ2djZ2dnd3dzd3d3f397f39/j4+Pl5eXNhw8uAAAAMnRSTlMAAAAAAAAAAwcQExYiIzM3XWVucnd3fZivtLu+wcLGx8vR1t7j6evx9fj6/Pz9/f3+/gaBBrQAAADaSURBVHgBY2ADA24xGSUpQTY2VjCfU9LQMzLO10qNiw3EF9FPbu5orKwqdVJlB/LFzep669PiI9zcC+wlGNhETVt6qxuyQ6KD7BJTtBh49Sq7y1v7S6Kifayd840ZpMM6G+p7WnNCXWxtkjJ0GDTL29uaijJDHS2sQwo85BlMairy6itSo/xcfAJzjfgYDIrbanu6crLc3f0LHGTZGFS8yib0VaTHuhfk2ytzsDLwawcUZocH5xcEmsuxg9wrYOSakBHjbakhxMIM4jPyKGroqisIM7AxgfmoAABFZDceH74clQAAAABJRU5ErkJggg==",gutterLeft:!0,gutterRight:!0})]}),m(u,{children:[c("span",{className:Te,children:i&&i.toLocaleString()||0}),c(W,{src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAACK1BMVEWtopWtpJq0qJu3qp7Btaji2tHi29Pj3NTl3dXo4Njp49zs5t/z7ebz7ufz7uj///9CJgxaQSpHMR16ZlRoUz9JMxxhTjtgSDFlU0BaRjJSPCdrVkNxXElNNiBONyE/KRRLMhxWPihCKxRDLRdJMBhFLhhiSzVVPSddRS9JMRpMNSBFLRZSOSJBKRFFKxRGLhc/JxBDKhJJLhRGLBNBJw1HLBNDKA9NMhpRNx9LMBdXPyhBJgxCJg1PNBxQLg9RLxFZLAlZLgtZNBJaLQtaNRNbOx5dMQ1dOhhdRS5eOhZfRzFgMxBhOhZjOhNkPRllPBVmNBJmOhNnORlnPRZpPh1rPx5rRBxsOhdtPxlwORJwSCVxRCJxSyhyRB12Pxh2RRh4US15UCl6USl7RRV8SBl8TiJ8WDZ9RBV9Shp9TSB/RxZ/SRiASRaAZUqBSh2BVTWCRRWCVTODSxuDTxyEUyOEXTqFSheGYD6IXjyIYkOJTSGKUiqOUxuObk+QVyKQbEqQbU6RcFKSUyOTUR2TWiaaWiKbWiibZTOcbEacfmKeeVufZTegWiOghm6keFaqdEOqelCrYiWtdEWvdDqwbjCxkHaycTmzhl20fEO0knW2l363hFy3jWu3knO5hli6dzK6lHC6mXu7fEG8fj28h1C8kmu8noO8oIa9jGC9lXTAdjjBhkbBkWrBqJPDezjDmHTHlmrIgT3IiUXIr5nKl2PLp4jMq47NpH/PrZBy/iAhAAAAO3RSTlMAAAAAAAAAAAAAAAAAAAAAAwcQExYiIzM3XWVucnd3fZivtLu+wcLGx8vR1t7j6evx9fj6/Pz9/f3+/kfuU3oAAADhSURBVAgdBcG7TsMwGAbQL/afxlXUOIGCKNChEgusSDwEOzMDGy/KKyAkVGhuTajSSrk4dm6cY0kAgO3OZq2qh5EAgPtXjz5Lt3nUEQDv5mVllPY3H9OOgODhbf6XKRWbp7HkQt6/i7DX1dAW023GnNUr+5aXNJmu3U1z8p79xOEHo5PGvq418+60y5JTmRT1ch2X5Mqok1RNzoJ4fDxSfzqvpGhEx2jxlTc8MOtgiOtDs6HPbN9zpkYniosz9vObpg3nQ2f2RpTJNg9DzZll98sLxza6jISxiCwJAAAAAMA/7KBtyaLzlLgAAAAASUVORK5CYII=",gutterLeft:!0})]})]})},De={Agony:{de:"Qual"},Barrier:{de:"Barriere"},Blight:{de:"Verschandelung"},Exposed:{de:"Entblößt"},Invulnerability:{de:"Unverwundbarkeit"},"Reinforced Armor":{de:"Verstärkte Rüstung"},Revealed:{de:"Enthüllt"},"Rigorous Certainty":{de:"Strikte Gewissheit"},Stealth:{de:"Tarnung"},"Stun Break":{de:"Betäubungsbrecher"},Superspeed:{de:"Supergeschwindigkeit"},Unblockable:{de:"Kann nicht geblockt werden"}},we={Agony:{en:"Deals damage every second; stacks intensity; reduces incoming healing and barrier application by 70% per stack; damage is reduced by agony resistance.",de:"Richtet jede Sekunde Schaden an; Intensität summiert sich; reduziert erhaltene Heilung und Anwendung von Barriere um 70% pro Stapel; Schaden wird durch Qual-Widerstand reduziert."},Barrier:{en:"Creates a health barrier that takes damage prior to the health bar.",de:"Erschafft eine Lebensbarriere die vor der Lebensanzeige Schaden nimmt."},Blight:{en:"Reduces your maximum health. Stacks intensity.",de:"Verringert Eure maximalen lebenspunkte. Stapelt Intensität."},Exposed:{en:"Takes additional damage.",de:"Erleidet zusätzlichen Schaden."},Invulnerability:{en:"Immune to conditions and damage.",de:"Immun gegen Zustände und Schäden."},"Reinforced Armor":{en:"Increases Health and Defense.",de:"Erhöht Lebenspunkte und Verteidigung."},Revealed:{en:"You cannot stealth",de:"Tarnung nicht möglich"},"Rigorous Certainty":{en:"+5 Agony Resistance\nThe next time you would be downed, instead heal 25% of your total health.",de:"+5 Qual-Widerstand\nWenn ihr das nächste Mal angeschlagen seid, werdet Ihr stattdessen um 25% Eurer maximalenLebenspunkte geheilt."},Stealth:{en:"Currently invisible. Ends if you deal damage.",de:"Derzeit unsichtbar. Endet, wenn Ihr Schaden zufügt."},"Stun Break":{en:"Breaks stun.",de:"Hebt Betäubung auf."},Superspeed:{en:"Movement speed is greatly increased.",de:"Bewegungsgeschwindigkeit ist deutlich erhöht."},Unblockable:{en:"Your attacks are unblockable",de:"Eure Angriffe können nicht geblockt werden."}},Oe=({name:e,disableTooltip:t,disableText:n,disableLink:i,disableIcon:o,className:r,style:a})=>{const s="Mistlock Singularity"===e?"Rigorous Certainty":e,l=S(De,s),d=S(we,s);return c(_e,{type:"Common",name:s,displayName:l,description:d,disableTooltip:t,disableText:n,disableLink:i,disableIcon:o,className:r,style:a})},ve={Bleeding:{de:"Blutung"},Blinded:{de:"Geblendet"},Burning:{de:"Brennen"},Chilled:{de:"Kühle"},Confusion:{de:"Konfusion"},Crippled:{de:"Verkrüppelung"},Fear:{de:"Furcht einflößen"},Immobile:{de:"Immobilisiert"},Poisoned:{de:"Vergiftet"},Slow:{de:"Langsam"},Taunt:{de:"Provozieren"},Torment:{de:"Pein"},Vulnerability:{de:"Verwundbarkeit"},Weakness:{de:"Schwäche"}},Be={Bleeding:{en:"Deals damage every second; stacks intensity.",de:"Bewirkt jede Sekunde Schaden; Intensität summiert sich."},Blinded:{en:"Next outgoing attack misses; stacks duration.",de:"Der nächste Angriff schlägt fehl; Dauer summiert sich."},Burning:{en:"Deals damage every second; stacks intensity.",de:"Bewirkt jede Sekunde Schaden; Intensität summiert sich."},Chilled:{en:"Movement speed decreased by 66%; skill cooldown increased by 66%; stacks duration.",de:"Reduziert Bewegungsgeschwindigkeit um 66%; erhöht Erholzeit von Fertigkeiten um 66%; Dauer summiert sich."},Confusion:{en:"Damage received on skill activation; stacks intensity.",de:"Erleidet Schaden bei Aktivieren von Fertigkeiten; Intensität summiert sich."},Crippled:{en:"Movement speed decreased by 50%; stacks duration.",de:"Bewegungsgeschwindigkeit um 50% verringert; Dauer summiert sich."},Fear:{en:"Involuntary retreat; unable to act; stacks duration.",de:"Unfreiwilliger Rückzug; handlungsunfähig; Dauer summiert sich."},Immobile:{en:"Unable to move; stacks duration.",de:"Bewegungsunfähig; Dauer summiert sich."},Poisoned:{en:"Deals damage every second; decreases healing effectiveness 33%; damage stacks intensity.",de:"Bewirkt jede Sekunde Schaden; verringert Heilungswirksamkeit um 33%; Intensität summiert sich durch Schaden."},Slow:{en:"Skills and actions are slower.",de:"Fertigkeiten und Aktionen sind langsamer."},Taunt:{en:"Involuntarily attack foes.",de:"Greift unfreiwillig Gegner an."},Torment:{en:"Deals damage every second. Deals additional damage to foes that aren't moving. Stacks intensity.",de:"Bewirkt jede Sekunde Schaden. Bewirkt zusätzlichen Schaden bei Gegnern, die sich nicht bewegen. Die Intensität stapelt sich."},Vulnerability:{en:"Damage and condition damage taken are increased; stacks intensity.",de:"Schaden und erlittener Zustandsschaden sind erhöht; Intensität summiert sich."},Weakness:{en:"Endurance regeneration decreased by 50%. 50% of hits are Glancing Blows (50% damage). Stacks duration.",de:"Verringert Ausdauerregeneration um 50%. 50% aller Treffer sind Streiftreffer (50% Schaden). Dauer summiert sich."}},Le=({name:e,count:t=1,disableTooltip:n,disableText:i,disableLink:o,disableIcon:r,className:a,style:s})=>{const l=S(ve,e),d=S(Be,e);return c(_e,{type:"Condition",name:e,displayName:l,description:d,iconProps:{applyCount:t},disableTooltip:n,disableText:i,disableLink:o,disableIcon:r,className:a,style:s})},Me={Enhancement:"",Nourishment:""},xe=({name:e,text:t,disableTooltip:n=!0,disableText:i,disableLink:o,disableIcon:r,className:a,style:s})=>c(_e,{type:"Consumable",name:e,displayName:t,description:Me[e],disableTooltip:n,disableText:i,disableLink:o,disableIcon:r,className:a,style:s}),Fe={Daze:{de:"Benommenheit"},Float:{de:"Float"},Knockback:{de:"Rückschlag"},Knockdown:{de:"Niederschlag"},Launch:{de:"Hochschleudern"},Pull:{de:"Ziehen"},Sink:{de:"Sinken"},Stun:{de:"Betäubung"}},Ge={Daze:{en:"Disables all skills for a short duration.",de:"Fertigkeiten können nicht aktiviert werden; Dauer summiert sich."},Float:{en:"Causes the underwater target to move upwards.",de:"Schweben ist ein Unterwasser-Effekt, der das Ziel oder sich selbst in Richtung Wasseroberfläche bewegt."},Knockback:{en:"Knocks back the target away and on the ground, preventing movement and actions for a short duration.",de:"Rückschlag ist ein Status-Effekt, der zu Folge hat, dass man vom Verursacher weggestoßen wird"},Knockdown:{en:"Knocks the target on ground, preventing movement and actions for a short duration.",de:"Niederschlag wirft den Gegner zu Boden, wodurch er für kurze Zeit bewegungsunfähig ist und keine Fertigkeiten verwenden kann."},Launch:{en:"Throws the target in the air over a short distance, preventing movement and actions for a short duration. Can move Downed targets.",de:"Durch Hochschleudern wird das Ziel unterbrochen und in die Luft geworfen."},Pull:{en:"Pulls the caster to the target or the target to a specific location and disables them for a short duration.",de:"Ziehen unterbricht Fertigkeiten mit Wirkzeit. Ziehen reduziert die Trotzleiste von Kreaturen abhängig von der aufgerundeten angewendeten Dauer."},Sink:{en:"Causes the underwater target to move downwards.",de:"Sinken verhindert Bewegung und Fertigkeitsaktivierung und lässt Betroffene sinken."},Stun:{en:"Prevents movement and actions for a short duration.",de:"Handlungsunfähig; Dauer summiert sich."}},He=({name:e,disableTooltip:t,disableText:n,disableLink:i,disableIcon:o,className:r,style:a})=>{const s=S(Fe,e),l=S(Ge,e);return c(_e,{type:"Control",name:e,displayName:s,description:l,disableTooltip:t,disableText:n,disableLink:i,disableIcon:o,className:r,style:a})},We={HEAVY:"Heavy",MEDIUM:"Medium",LIGHT:"Light"},ze="Armor",Ve="Trinket",Ue="Back",$e="Weapon",Xe={HELM:"Helm",SHOULDERS:"Shoulders",COAT:"Coat",GLOVES:"Gloves",LEGGINGS:"Leggings",BOOTS:"Boots",ACCESSORY:"Accessory",AMULET:"Amulet",RING:"Ring",BACK_ITEM:"Back Item",GREATSWORD:"Greatsword",HAMMER:"Hammer",LONGBOW:"Longbow",RIFLE:"Rifle",SHORT_BOW:"Short Bow",STAFF:"Staff",AXE:"Axe",DAGGER:"Dagger",MACE:"Mace",PISTOL:"Pistol",SWORD:"Sword",SCEPTER:"Scepter",FOCUS:"Focus",SHIELD:"Shield",TORCH:"Torch",WARHORN:"Warhorn",HARPOON:"Harpoon",SPEARGUN:"Speargun",TRIDENT:"Trident"},Ye={[ze]:[Xe.HELM,Xe.SHOULDERS,Xe.COAT,Xe.GLOVES,Xe.LEGGINGS,Xe.BOOTS],[Ve]:[Xe.ACCESSORY,Xe.AMULET,Xe.RING],[Ue]:[Xe.BACK_ITEM],[$e]:[Xe.GREATSWORD,Xe.HAMMER,Xe.LONGBOW,Xe.RIFLE,Xe.SHORT_BOW,Xe.STAFF,Xe.AXE,Xe.DAGGER,Xe.MACE,Xe.PISTOL,Xe.SWORD,Xe.SCEPTER,Xe.FOCUS,Xe.SHIELD,Xe.TORCH,Xe.WARHORN,Xe.HARPOON,Xe.SPEARGUN,Xe.TRIDENT]},je={ASCENDED:"Ascended",EXOTIC:"Exotic"},qe="Triple",Ze="Quadruple",Ke="All",Je={[ze]:{[Xe.HELM]:{[je.ASCENDED]:{attributes:{[qe]:[63,45],[Ze]:[54,30],[Ke]:[30]},defense:{[We.LIGHT]:77,[We.MEDIUM]:102,[We.HEAVY]:127}},[je.EXOTIC]:{attributes:{[qe]:[60,43],[Ze]:[51,28],[Ke]:[28]},defense:{[We.LIGHT]:73,[We.MEDIUM]:97,[We.HEAVY]:121}}},[Xe.SHOULDERS]:{[je.ASCENDED]:{attributes:{[qe]:[47,34],[Ze]:[40,22],[Ke]:[22]},defense:{[We.LIGHT]:77,[We.MEDIUM]:102,[We.HEAVY]:127}},[je.EXOTIC]:{attributes:{[qe]:[45,32],[Ze]:[38,21],[Ke]:[21]},defense:{[We.LIGHT]:73,[We.MEDIUM]:97,[We.HEAVY]:121}}},[Xe.COAT]:{[je.ASCENDED]:{attributes:{[qe]:[141,101],[Ze]:[121,67],[Ke]:[67]},defense:{[We.LIGHT]:330,[We.MEDIUM]:355,[We.HEAVY]:381}},[je.EXOTIC]:{attributes:{[qe]:[134,96],[Ze]:[115,63],[Ke]:[63]},defense:{[We.LIGHT]:314,[We.MEDIUM]:338,[We.HEAVY]:363}}},[Xe.GLOVES]:{[je.ASCENDED]:{attributes:{[qe]:[47,34],[Ze]:[40,22],[Ke]:[22]},defense:{[We.LIGHT]:140,[We.MEDIUM]:165,[We.HEAVY]:191}},[je.EXOTIC]:{attributes:{[qe]:[45,32],[Ze]:[38,21],[Ke]:[21]},defense:{[We.LIGHT]:133,[We.MEDIUM]:157,[We.HEAVY]:182}}},[Xe.LEGGINGS]:{[je.ASCENDED]:{attributes:{[qe]:[94,67],[Ze]:[81,44],[Ke]:[44]},defense:{[We.LIGHT]:203,[We.MEDIUM]:229,[We.HEAVY]:254}},[je.EXOTIC]:{attributes:{[qe]:[90,64],[Ze]:[77,42],[Ke]:[42]},defense:{[We.LIGHT]:194,[We.MEDIUM]:218,[We.HEAVY]:242}}},[Xe.BOOTS]:{[je.ASCENDED]:{attributes:{[qe]:[47,34],[Ze]:[40,22],[Ke]:[22]},defense:{[We.LIGHT]:140,[We.MEDIUM]:165,[We.HEAVY]:191}},[je.EXOTIC]:{attributes:{[qe]:[45,32],[Ze]:[38,21],[Ke]:[21]},defense:{[We.LIGHT]:133,[We.MEDIUM]:157,[We.HEAVY]:182}}}},[Ve]:{[Xe.ACCESSORY]:{[je.ASCENDED]:{attributes:{[qe]:[110,74],[Ze]:[92,49],[Ke]:[50]}},[je.EXOTIC]:{attributes:{[qe]:[100,68],[Ze]:[84,45],[Ke]:[47]}}},[Xe.AMULET]:{[je.ASCENDED]:{attributes:{[qe]:[157,108],[Ze]:[133,71],[Ke]:[72]}},[je.EXOTIC]:{attributes:{[qe]:[145,100],[Ze]:[122,66],[Ke]:[68]}}},[Xe.RING]:{[je.ASCENDED]:{attributes:{[qe]:[126,85],[Ze]:[106,56],[Ke]:[57]}},[je.EXOTIC]:{attributes:{[qe]:[115,79],[Ze]:[97,52],[Ke]:[54]}}}},[Ue]:{[Xe.BACK_ITEM]:{[je.ASCENDED]:{attributes:{[qe]:[63,40],[Ze]:[52,27],[Ke]:[28]}},[je.EXOTIC]:{attributes:{[qe]:[55,36],[Ze]:[46,24],[Ke]:[26]}}}},[$e]:{[Xe.GREATSWORD]:{[je.ASCENDED]:{attributes:{[qe]:[251,179],[Ze]:[215,118],[Ke]:[118]},minPower:1045,maxPower:1155},[je.EXOTIC]:{attributes:{[qe]:[239,171],[Ze]:[205,113],[Ke]:[113]},minPower:995,maxPower:1100}},[Xe.HAMMER]:{[je.ASCENDED]:{attributes:{[qe]:[251,179],[Ze]:[215,118],[Ke]:[118]},minPower:1034,maxPower:1166},[je.EXOTIC]:{attributes:{[qe]:[239,171],[Ze]:[205,113],[Ke]:[113]},minPower:985,maxPower:1111}},[Xe.LONGBOW]:{[je.ASCENDED]:{attributes:{[qe]:[251,179],[Ze]:[215,118],[Ke]:[118]},minPower:966,maxPower:1134},[je.EXOTIC]:{attributes:{[qe]:[239,171],[Ze]:[205,113],[Ke]:[113]},minPower:920,maxPower:1080}},[Xe.RIFLE]:{[je.ASCENDED]:{attributes:{[qe]:[251,179],[Ze]:[215,118],[Ke]:[118]},minPower:1035,maxPower:1265},[je.EXOTIC]:{attributes:{[qe]:[239,171],[Ze]:[205,113],[Ke]:[113]},minPower:986,maxPower:1205}},[Xe.SHORT_BOW]:{[je.ASCENDED]:{attributes:{[qe]:[251,179],[Ze]:[215,118],[Ke]:[118]},minPower:950,maxPower:1050},[je.EXOTIC]:{attributes:{[qe]:[239,171],[Ze]:[205,113],[Ke]:[113]},minPower:905,maxPower:1e3}},[Xe.STAFF]:{[je.ASCENDED]:{attributes:{[qe]:[251,179],[Ze]:[215,118],[Ke]:[118]},minPower:1034,maxPower:1166},[je.EXOTIC]:{attributes:{[qe]:[239,171],[Ze]:[205,113],[Ke]:[113]},minPower:985,maxPower:1111}},[Xe.AXE]:{[je.ASCENDED]:{attributes:{[qe]:[125,90],[Ze]:[108,59],[Ke]:[59]},minPower:900,maxPower:1100},[je.EXOTIC]:{attributes:{[qe]:[120,85],[Ze]:[102,56],[Ke]:[56]},minPower:857,maxPower:1048}},[Xe.DAGGER]:{[je.ASCENDED]:{attributes:{[qe]:[125,90],[Ze]:[108,59],[Ke]:[59]},minPower:970,maxPower:1030},[je.EXOTIC]:{attributes:{[qe]:[120,85],[Ze]:[102,56],[Ke]:[56]},minPower:924,maxPower:981}},[Xe.MACE]:{[je.ASCENDED]:{attributes:{[qe]:[125,90],[Ze]:[108,59],[Ke]:[59]},minPower:940,maxPower:1060},[je.EXOTIC]:{attributes:{[qe]:[120,85],[Ze]:[102,56],[Ke]:[56]},minPower:895,maxPower:1010}},[Xe.PISTOL]:{[je.ASCENDED]:{attributes:{[qe]:[125,90],[Ze]:[108,59],[Ke]:[59]}},[je.EXOTIC]:{attributes:{[qe]:[120,85],[Ze]:[102,56],[Ke]:[56]},minPower:876,maxPower:1029}},[Xe.SWORD]:{[je.ASCENDED]:{attributes:{[qe]:[125,90],[Ze]:[108,59],[Ke]:[59]},minPower:950,maxPower:1050},[je.EXOTIC]:{attributes:{[qe]:[120,85],[Ze]:[102,56],[Ke]:[56]},minPower:905,maxPower:1e3}},[Xe.SCEPTER]:{[je.ASCENDED]:{attributes:{[qe]:[125,90],[Ze]:[108,59],[Ke]:[59]},minPower:940,maxPower:1060},[je.EXOTIC]:{attributes:{[qe]:[120,85],[Ze]:[102,56],[Ke]:[56]},minPower:895,maxPower:1010}},[Xe.FOCUS]:{[je.ASCENDED]:{attributes:{[qe]:[125,90],[Ze]:[108,59],[Ke]:[59]},minPower:873,maxPower:927},[je.EXOTIC]:{attributes:{[qe]:[120,85],[Ze]:[102,56],[Ke]:[56]},minPower:832,maxPower:883}},[Xe.SHIELD]:{[je.ASCENDED]:{attributes:{[qe]:[125,90],[Ze]:[108,59],[Ke]:[59]},defense:64,minPower:846,maxPower:954},[je.EXOTIC]:{attributes:{[qe]:[120,85],[Ze]:[102,56],[Ke]:[56]},defense:61,minPower:806,maxPower:909}},[Xe.TORCH]:{[je.ASCENDED]:{attributes:{[qe]:[125,90],[Ze]:[108,59],[Ke]:[59]},minPower:828,maxPower:972},[je.EXOTIC]:{attributes:{[qe]:[120,85],[Ze]:[102,56],[Ke]:[56]},minPower:789,maxPower:926}},[Xe.WARHORN]:{[je.ASCENDED]:{attributes:{[qe]:[125,90],[Ze]:[108,59],[Ke]:[59]},minPower:855,maxPower:945},[je.EXOTIC]:{attributes:{[qe]:[120,85],[Ze]:[102,56],[Ke]:[56]},minPower:814,maxPower:900}},[Xe.TRIDENT]:{[je.ASCENDED]:{attributes:{[qe]:[251,179],[Ze]:[215,118],[Ke]:[118]},minPower:950,maxPower:1050},[je.EXOTIC]:{attributes:{[qe]:[239,171],[Ze]:[205,113],[Ke]:[113]},minPower:905,maxPower:1e3}},[Xe.HARPOON]:{[je.ASCENDED]:{attributes:{[qe]:[251,179],[Ze]:[215,118],[Ke]:[118]},minPower:950,maxPower:1050},[je.EXOTIC]:{attributes:{[qe]:[239,171],[Ze]:[205,113],[Ke]:[113]},minPower:905,maxPower:1e3}},[Xe.SPEARGUN]:{[je.ASCENDED]:{attributes:{[qe]:[251,179],[Ze]:[215,118],[Ke]:[118]},minPower:950,maxPower:1050},[je.EXOTIC]:{attributes:{[qe]:[239,171],[Ze]:[205,113],[Ke]:[113]},minPower:905,maxPower:1e3}}}},Qe={BERSERKER:"Berserker",ZEALOT:"Zealot",SOLDIER:"Soldier",FORSAKEN:"Forsaken",VALKYRIE:"Valkyrie",HARRIER:"Harrier",PALADIN:"Paladin",COMMANDER:"Commander",DEMOLISHER:"Demolisher",SWASHBUCKLER:"Swashbuckler",MARAUDER:"Marauder",AVATAR:"Avatar",SEEKER:"Seeker",DESTROYER:"Destroyer",VIGILANT:"Vigilant",CRUSADER:"Crusader",WANDERER:"Wanderer",DIVINER:"Diviner",WIZARD:"Wizard",VIPER:"Viper",GRIEVING:"Grieving",SAGE:"Sage",MARSHAL:"Marshal",MENDER:"Mender",CAPTAIN:"Captain",RAMPAGER:"Rampager",ASSASSIN:"Assassin",DEADSHOT:"Deadshot",SERAPH:"Seraph",KNIGHT:"Knight",CAVALIER:"Cavalier",NOMAD:"Nomad",SETTLER:"Settler",GIVER:"Giver",TRAILBLAZER:"Trailblazer",MINSTREL:"Minstrel",BARBARIAN:"Barbarian",SENTINEL:"Sentinel",SHAMAN:"Shaman",SINISTER:"Sinister",CARRION:"Carrion",RABID:"Rabid",DIRE:"Dire",APOSTATE:"Apostate",PLAGUEDOCTOR:"Plaguedoctor",BRINGER:"Bringer",CLERIC:"Cleric",MAGI:"Magi",APOTHECARY:"Apothecary",CELESTIAL:"Celestial",DRAGON:"Dragon",RITUALIST:"Ritualist"},et={POWER:"Power",PRECISION:"Precision",TOUGHNESS:"Toughness",VITALITY:"Vitality",CONCENTRATION:"BoonDuration",CONDITION_DAMAGE:"ConditionDamage",EXPERTISE:"ConditionDuration",FEROCITY:"CritDamage",HEALING_POWER:"Healing"},tt={[Qe.BERSERKER]:{type:qe,bonuses:[[et.POWER],[et.PRECISION,et.FEROCITY]]},[Qe.ZEALOT]:{type:qe,bonuses:[[et.POWER],[et.PRECISION,et.HEALING_POWER]]},[Qe.SOLDIER]:{type:qe,bonuses:[[et.POWER],[et.TOUGHNESS,et.VITALITY]]},[Qe.FORSAKEN]:{type:qe,bonuses:[[et.POWER],[et.TOUGHNESS,et.HEALING_POWER]]},[Qe.VALKYRIE]:{type:qe,bonuses:[[et.POWER],[et.VITALITY,et.FEROCITY]]},[Qe.HARRIER]:{type:qe,bonuses:[[et.POWER],[et.HEALING_POWER,et.CONCENTRATION]]},[Qe.PALADIN]:{type:Ze,bonuses:[[et.POWER,et.PRECISION],[et.TOUGHNESS,et.VITALITY]]},[Qe.COMMANDER]:{type:Ze,bonuses:[[et.POWER,et.PRECISION],[et.TOUGHNESS,et.CONCENTRATION]]},[Qe.DEMOLISHER]:{type:Ze,bonuses:[[et.POWER,et.PRECISION],[et.TOUGHNESS,et.FEROCITY]]},[Qe.SWASHBUCKLER]:{type:Ze,bonuses:[[et.POWER,et.PRECISION],[et.VITALITY,et.CONDITION_DAMAGE]]},[Qe.MARAUDER]:{type:Ze,bonuses:[[et.POWER,et.PRECISION],[et.VITALITY,et.FEROCITY]]},[Qe.AVATAR]:{type:Ze,bonuses:[[et.POWER,et.PRECISION],[et.VITALITY,et.HEALING_POWER]]},[Qe.SEEKER]:{type:Ze,bonuses:[[et.POWER,et.PRECISION],[et.CONCENTRATION,et.FEROCITY]]},[Qe.DESTROYER]:{type:Ze,bonuses:[[et.POWER,et.PRECISION],[et.CONDITION_DAMAGE,et.FEROCITY]]},[Qe.VIGILANT]:{type:Ze,bonuses:[[et.POWER,et.TOUGHNESS],[et.CONCENTRATION,et.EXPERTISE]]},[Qe.CRUSADER]:{type:Ze,bonuses:[[et.POWER,et.TOUGHNESS],[et.FEROCITY,et.HEALING_POWER]]},[Qe.WANDERER]:{type:Ze,bonuses:[[et.POWER,et.VITALITY],[et.TOUGHNESS,et.CONCENTRATION]]},[Qe.DIVINER]:{type:Ze,bonuses:[[et.POWER,et.CONCENTRATION],[et.PRECISION,et.FEROCITY]]},[Qe.WIZARD]:{type:Ze,bonuses:[[et.POWER,et.CONDITION_DAMAGE],[et.PRECISION,et.VITALITY]]},[Qe.VIPER]:{type:Ze,bonuses:[[et.POWER,et.CONDITION_DAMAGE],[et.PRECISION,et.EXPERTISE]]},[Qe.GRIEVING]:{type:Ze,bonuses:[[et.POWER,et.CONDITION_DAMAGE],[et.PRECISION,et.FEROCITY]]},[Qe.SAGE]:{type:Ze,bonuses:[[et.POWER,et.CONDITION_DAMAGE],[et.VITALITY,et.HEALING_POWER]]},[Qe.MARSHAL]:{type:Ze,bonuses:[[et.POWER,et.HEALING_POWER],[et.PRECISION,et.CONDITION_DAMAGE]]},[Qe.MENDER]:{type:Ze,bonuses:[[et.POWER,et.HEALING_POWER],[et.PRECISION,et.VITALITY]]},[Qe.CAPTAIN]:{type:qe,bonuses:[[et.PRECISION],[et.POWER,et.TOUGHNESS]]},[Qe.RAMPAGER]:{type:qe,bonuses:[[et.PRECISION],[et.POWER,et.CONDITION_DAMAGE]]},[Qe.ASSASSIN]:{type:qe,bonuses:[[et.PRECISION],[et.POWER,et.FEROCITY]]},[Qe.DEADSHOT]:{type:Ze,bonuses:[[et.PRECISION,et.CONDITION_DAMAGE],[et.VITALITY,et.EXPERTISE]]},[Qe.SERAPH]:{type:Ze,bonuses:[[et.PRECISION,et.CONDITION_DAMAGE],[et.CONCENTRATION,et.HEALING_POWER]]},[Qe.KNIGHT]:{type:qe,bonuses:[[et.TOUGHNESS],[et.POWER,et.PRECISION]]},[Qe.CAVALIER]:{type:qe,bonuses:[[et.TOUGHNESS],[et.POWER,et.FEROCITY]]},[Qe.NOMAD]:{type:qe,bonuses:[[et.TOUGHNESS],[et.VITALITY,et.HEALING_POWER]]},[Qe.SETTLER]:{type:qe,bonuses:[[et.TOUGHNESS],[et.CONDITION_DAMAGE,et.HEALING_POWER]]},[Qe.GIVER]:{type:qe,bonuses:[[et.TOUGHNESS],[et.HEALING_POWER,et.CONCENTRATION]]},[Qe.TRAILBLAZER]:{type:Ze,bonuses:[[et.TOUGHNESS,et.CONDITION_DAMAGE],[et.VITALITY,et.EXPERTISE]]},[Qe.MINSTREL]:{type:Ze,bonuses:[[et.TOUGHNESS,et.HEALING_POWER],[et.VITALITY,et.CONCENTRATION]]},[Qe.BARBARIAN]:{type:qe,bonuses:[[et.VITALITY],[et.POWER,et.PRECISION]]},[Qe.SENTINEL]:{type:qe,bonuses:[[et.VITALITY],[et.POWER,et.TOUGHNESS]]},[Qe.SHAMAN]:{type:qe,bonuses:[[et.VITALITY],[et.CONDITION_DAMAGE,et.HEALING_POWER]]},[Qe.SINISTER]:{type:qe,bonuses:[[et.CONDITION_DAMAGE],[et.POWER,et.PRECISION]]},[Qe.CARRION]:{type:qe,bonuses:[[et.CONDITION_DAMAGE],[et.VITALITY,et.POWER]]},[Qe.RABID]:{type:qe,bonuses:[[et.CONDITION_DAMAGE],[et.PRECISION,et.TOUGHNESS]]},[Qe.DIRE]:{type:qe,bonuses:[[et.CONDITION_DAMAGE],[et.TOUGHNESS,et.VITALITY]]},[Qe.APOSTATE]:{type:qe,bonuses:[[et.CONDITION_DAMAGE],[et.TOUGHNESS,et.HEALING_POWER]]},[Qe.PLAGUEDOCTOR]:{type:Ze,bonuses:[[et.CONDITION_DAMAGE,et.VITALITY],[et.HEALING_POWER,et.CONCENTRATION]]},[Qe.BRINGER]:{type:qe,bonuses:[[et.EXPERTISE],[et.PRECISION,et.VITALITY]]},[Qe.CLERIC]:{type:qe,bonuses:[[et.HEALING_POWER],[et.POWER,et.TOUGHNESS]]},[Qe.MAGI]:{type:qe,bonuses:[[et.HEALING_POWER],[et.PRECISION,et.VITALITY]]},[Qe.APOTHECARY]:{type:qe,bonuses:[[et.HEALING_POWER],[et.TOUGHNESS,et.CONDITION_DAMAGE]]},[Qe.CELESTIAL]:{type:Ke,bonuses:[[et.POWER,et.TOUGHNESS,et.VITALITY,et.PRECISION,et.FEROCITY,et.CONDITION_DAMAGE,et.HEALING_POWER,et.CONCENTRATION,et.EXPERTISE]]},[Qe.RITUALIST]:{type:Ze,bonuses:[[et.CONDITION_DAMAGE,et.VITALITY],[et.CONCENTRATION,et.EXPERTISE]]},[Qe.DRAGON]:{type:Ze,bonuses:[[et.POWER,et.FEROCITY],[et.PRECISION,et.VITALITY]]}},nt=({rarity:e=je.ASCENDED,level:t=80,type:n,stat:i,weight:o,nameSuffix:r=n,name:a=`${i}'s ${r}`})=>{if(!e)throw new Error("Missing item rarity");if(![je.ASCENDED,je.EXOTIC].includes(e))throw new Error(`Invalid item rarity '${e}', only '${je.ASCENDED}' and '${je.EXOTIC}' are supported`);if(!t)throw new Error("Missing item level");if(80!==t)throw new Error(`Invalid item level ${t}, only level 80 is supported`);if(!n)throw new Error("Missing item type");if(!Object.values(Xe).includes(n))throw new Error(`Invalid item type '${n}'`);if(!i)throw new Error("Mis